Comunicar 2 Raspberry Pi via Modbus TCP (Master/Slave)
hace 3 años · Actualizado hace 2 años
MODBUS
Modbus es un protocolo de comunicaciones, basado en la arquitectura Maestro / Esclavo o Cliente / Servidor, diseñado para trabajar con controladores lógicos programables (PLCs).
Convertido en un protocolo de comunicaciones estándar en la industria es el que goza de mayor disponibilidad para la conexión de dispositivos electrónicos industriales. Las razones por las cuales el uso de Modbus es superior a otros protocolos de comunicaciones son:
- Es público
- Su implementación es fácil y requiere poco desarrollo
- Maneja bloques de datos sin suponer restricciones
Cada intercambio de datos consiste en una solicitud del maestro, seguida de una respuesta del esclavo. Cada paquete de datos, ya sea una solicitud o una respuesta, comienza con la dirección del dispositivo o la dirección del esclavo, seguida del código de función, seguido de los parámetros que definen lo que se solicita o se proporciona. Los formatos exactos de la solicitud y la respuesta se documentan en detalle en la especificación del protocolo Modbus.
Tipos de Registros en MODBUS
Los tipos de registros o parámetros a los que se hace referencia en los dispositivos Modbus incluyen los siguientes:
• Bobina (salida discreta)
• Entrada discreta (o entrada de estado)
• Registro de entrada
• Registro de tenencia
Códigos de Función de Modbus
El protocolo Modbus define varios códigos de función para acceder a los registros Modbus. Hay cuatro bloques de datos diferentes definidos por Modbus, y las direcciones o números de registro en cada uno de ellos se superponen. Por lo tanto, una definición completa de dónde encontrar un dato requiere tanto la dirección (o número de registro) como el código de función (o tipo de registro). Los códigos de función más comúnmente reconocidos por los dispositivos Modbus se indican en la siguiente tabla. Este es solo un subconjunto de los códigos disponibles; varios de los códigos tienen aplicaciones especiales que la mayoría de las veces no se aplican.
MODBUS TCP Master en Raspberry Pi
La Raspberry Pi 3B+ soporta el protocolo de MODBUS TCP, pudiendo configurarse con ayuda de CODESYS 3.5.16, es posible trabajar en modo maestro o esclavo. Para lograr una comunicación exitosa es importante saber que la configuración de los canales debe ser idéntica en ambos proyectos.
Después de crear un proyecto en Codesys y elegir el dispositivo CODESYS Control for Raspberry Pi se debe de agregar un dispositivo Ethernet-->Modbus_TCP_Master-->Modbus_TCP_Slave.
Los puntos mas importante en la configuración es la dirección IP del esclavo además de la creación de los canales, los cuales corresponden a los registros o coils que deseamos enviar/recibir con el dispositivo Slave.
Como se puede apreciar en la imagen, se utilizan los códigos de función 16, 04, 15 y 02.
MODBUS TCP SLAVE en Raspberry PI
Ahora hay que crear un nuevo proyecto, seleccionar el dispositivo CODESYS Control for Raspberry Pi y agregar un dispositivo Ethernet-->Modbus_TCP_Slave.
Los puntos mas importantes dentro de la configuración del "Slave" es definir la cantidad correcta de Registros Holding, Registros Input, Bobinas y Entradas Discretas.
Enlace para visualizar el procedimiento paso a paso
En el siguiente video se muestra paso a paso como realizar la configuración para poder establecer una comunicación entre 2 dispositivos Raspberry Pi 3B+, lo interesante es que realizando los mismos pasos es posible establecer la comunicación con cualquier otro dispositivos que soporte este protocolo.
Descarga de programas
Les comparto el link para poder descargar los proyectos creados durante esta práctica:
⭐️ Si quieres saber más de otros artículos parecidos a Comunicar 2 Raspberry Pi via Modbus TCP (Master/Slave) puedes visitar nuestra categoría Raspberry PI. Te esperamos dentro 👍
Deja una respuesta
Entradas de Interes