SUMO AUTOMATION

Blog de divulgación técnica. Artículos basados en FAQs referentes al campo de la automatización industrial.

martes, 14 de diciembre de 2021

COMMS - Protocolo Modbus

El protocolo de comunicaciones Modbus fue desarrollado y publicado por la empresa Modicon en 1979 (posteriormente absorbida por Schneider Electric).

Comunicaciones industriales

Se trata de un estándar abierto respaldado por muchos fabricantes del mundo de la automatización, lo que permite integrar distintos dispositivos de terceros en una misma red.

Este protocolo se utiliza sobre distintos medios físicos, tanto serie (Modbus RTU) como Ethernet (Modbus TCP)
Vía serie, el interface RS-422/485 es el más común, puesto que admite conexiones multipunto a mayores distancias y más velocidad (que, por ejemplo RS-232).
En la actualidad, el Modbus TCP es el más utilizado. Pues una red Ethernet resulta mucho más flexible, eficiente y fiable. 

Este artículo pretende presentar este protocolo tan comunmente utilizado, con el objetivo de exponer las nociones básicas para saber como funciona y poder utilizarlo. 

¿CÓMO FUNCIONA?

Es una tecnología con una arquitectura maestro-esclavo o cliente-servidor
Este protocolo no admite más de un maestro y, por regla general, permite la conexión de hasta 255 esclavos.

Cada uno de los esclavos se identifica mediante una dirección de esclavo (número). 
El ID de esclavo debe ser único para cada uno de los dispositivos de la red.

Dichos esclavos, tienen un mapeado de objetos Modbus.
Esos objetos pueden ser tanto a nivel de bit (Output Coils e Input Contacts), como de canal (Holding Registers e Inlput Registers). 

El maestro hace las peticiones de lectura y escritura de esos datos mediante distintas funciones Modbus como las que se muestran en la siguiente tabla:Comunicaciones industriales


¿PASOS EN LA COMUNICACIÓN
?

Una vez se han configurado el maestro (cliente) y esclavo (servidor), este es el procedimiento que se sigue para establecer comunicaciones:

1) El maestro envía la petición de lectura/escritura al esclavo. Tiene el siguiente formato:
    - Dirección de esclavo: Indica que esclavo recibe la petición.
    - Código de función: Confirma que acción se llevará a cabo.
    - Datos a leer/escribir: Referente a los objetos Modbus del esclavo.
    - Comprobación de errores: Verifica la trama.

2) El esclavo envía una respuesta acorde a la petición del cliente.
El formato de trama es muy similar al del envío. 

3) El cliente verifica que el contenido de la respuesta es correcto. 
La detección de error se hace mediante un código CRC.

Dejo aquí un enlace donde, a parte de profundizar en el funcionamiento de este protocolo, detalla ejemplos de tramas (envíos y respuestas) de las funciones Modbus más comunes.

Comunicaciones industriales
No obstante, se debe precisar que el Modbus TCP (por Ethernet) presenta ciertas peculiaridades...

- Se debe establecer conexión con la IP del esclavo. También se puede cerrar.
Normalmente, los equipos utilizan el puerto 502 (TCP) para este protocolo.

- El formato de trama es similar y tiene la misma filosofía, pero guarda diferencias.
Los mensajes Modbus se integran en paquetes Ethernet con el formato prescrito para este medio físico.


¿PRECAUCIONES?

Muchas veces se requiere programar los maestros y esclavos para usar el protocolo Modbus. Si son PLCs, normalmente se hace mediante FBs desarrollados por el fabricante.
Aún así, ciertos equipos ya incorporan Modbus de forma inherente.

Es un protocolo poco eficiente... No se suele recomendar para el intercambio de grandes cantidades de datos o altas velocidades de comunicación.
El maestro se limita a enviar peticiones y recibir la respuesta. 

El Modbus no es un protocolo seguro.
No soporta ningún tipo de seguridad, por lo que cualquiera que tenga acceso a la red podría interceptar los datos transmitidos.

Hay variantes de Modbus no estándares (adaptadas para productos/fabricantes concretos). No todas ellas son compatibles con el estándar abierto de Modbus.
Entre ellas, se puede destacar el Modbus UDP, Modbus Plus, Pemex Modbus o Enron Modbus. 

¿CONCLUSIONES?

El Modbus es un protocolo muy útil para comunicaciones simples. Y suele ser una de las pocas alternativas viables cuando hay que interconectar equipos de distintos fabricantes.

Dada su sencillez, los errores de comunicaciones con este protocolo suelen ser de fácil diagnóstico

Además, es un protocolo fácil de entender y que todo el mundo (quien más, quien menos) conoce. Esto hace que sea muy utilizado y demandado en el mercado, pese a sus carencias.

No hay comentarios:

Publicar un comentario