Protocolo Modbus

Adquisición y transmisión de datos en buses de campo

09-10-2018

Tras la llegada de la industria 4.0, se han incorporado varios sensores y dispositivos embebidos de automatización que proveen o requieren de interacción por un protocolo común. 


niveles


Aunque ya existen nuevos sistemas de desarrollo en el cual se integran controles supervisores y controladores de automatización programables, los consumidores suelen seguir apostando por una comunicación simple, fiable y eficiente como Modbus.

En este protocolo, utilizado para algunos diseños debido a su duradera popularidad y flexibilidad, se pueden introducir varias opciones para el enlace de comunicación entre el SCADA y el PAC o PLC, o entre el PLC o PAC y sus periféricos, como sensores, válvulas, motores o cualquier otro dispositivo embebido.


modbus


El protocolo industrial Modbus, desarrollado en 1979, fue creado para permitir la comunicación entre dispositivos de automatización. Utilizado hoy en día por innumerables dispositivos como un protocolo común, el Modbus destaca por una comunicación simple, fiable y eficiente en una variedad de redes modernas.

Originalmente implementado como un protocolo a nivel de aplicación para transferir datos en una capa serial, Modbus se ha expandido para incluir implementaciones a través de protocolo serial, TCP/IP y UDP.

Para cumplir estas necesidades, Modbus fue diseñado como un protocolo de solicitud y respuesta con un modelo flexible de datos y funciones; características que son parte de la razón por la que hoy en día aún sigue en uso.


Ciclo Solicitud-Respuesta

El protocolo Modbus sigue una arquitectura de maestro y esclavo, en la que un maestro transmite una solicitud a un esclavo y espera la respuesta. Por lo general, el maestro es una interfaz humano-máquina (HMI) o sistema SCADA y el esclavo es un sensor, controlador lógico programable (PLC) o controlador de automatización programable (PAC). 

fdatawyg5871526514498411034

Esta arquitectura brinda al maestro control completo sobre el flujo de información, lo cual tiene beneficios en redes seriales multipunto. El contenido de estas solicitudes, respuestas y las capas de la red a través de las cuales se envían estos mensajes son definidos por las diferentes capas del protocolo.


Capas de Protocolo Modbus

Inicialmente, Modbus solo era un protocolo construido en base a serial por lo que no podía ser dividido en múltiples capas. Con el tiempo, diferentes unidades de datos de aplicación fueron introducidos, ya sea para cambiar el formato del paquete utilizado a través de serial, o para permitir el uso de redes TCP/IP y UDP. Esto llevó a una separación del protocolo principal, el cual define la unidad de datos de protocolo (PDU) y la capa de red, que define la unidad de datos de aplicación (ADU).


pdu


1. PDU

El formato de Modbus PDU está definido como un código de función seguido por un conjunto de datos asociado. El tamaño y el contenido de estos datos son definidos por el código de función y toda la PDU completa no puede exceder los 253 bytes de tamaño. Cada código de función tiene un comportamiento específico que los esclavos pueden implementar de manera flexible en base al comportamiento de la aplicación deseada.

La especificación de la PDU define conceptos básicos para el acceso y manipulación de datos; sin embargo, un esclavo puede manejar datos de una manera que no esté definida explícitamente y mediante esta especificación especificación el maestro puede saber lo que pasó.Hoy en día la mayoría de los controladores utilizan esto en una forma que tenga sentido para el lenguaje o la aplicación en uso. 

Además de la funcionalidad definida en la PDU principal del protocolo Modbus, se pueden utilizar varios protocolos de red. Para transmitir los datos necesarios para Modbus a través de estas capas, incluye un conjunto de variantes ADU que son diseñadas para cada protocolo de red.


2. ADU

Modbus requiere ciertas características para proporcionar una comunicación confiable. El número de unidad o de dirección es usado en cada formato de ADU para proporcionar información de enrutado a la capa de aplicación.

En dicha ADU, también existe una unidad de datos de protocolo (PDU) que es el núcleo del protocolo, el cual contiene un código de función y datos asociados. Para mayor fiabilidad, cada mensaje incluye la información de comprobación de errores y un mecanismo para determinar el comienzo y el final de un marco de solicitud, pero ambos se implementan de manera diferente.

Para la mayoría de las aplicaciones, el ADU preferido depende de la red física deseada (Ethernet, serial o alguna otra), el número de dispositivos en la red y los ADUs soportados por los dispositivos maestros y esclavos en la red.

Los tres formatos ADU estándares son TCP, unidad terminal remota (RTU) y ASCII. RTU y ASCII normalmente son usados a través de una línea serial, mientras que el TCP es usado a través de redes TCP/IP o UDP/IP modernas.


  • TCP/IP

TCP es un formato moderno que permite un manejo eficiente de las solicitudes y respuestas Modbus en software, así como un sistema de red más eficiente a través del uso de conexiones e identificadores dedicados para cada solicitud.

Su protocolo se basa en la comunicación sobre Ethernet y utiliza cables de Ethernet regulares conmutando la comunicación con otros usuarios. Las direcciones IP de dicha comunicación TCP son utilizadas principalmente para comunicarse con los esclavos.

  • RTU

RTU es un formato antiguo serial que utiliza representación binaria compacta. Su comunicación es medio serial como RS485, RS422, RS232.

RS232 se conoce como un arreglo simple de punto a punto. Se utiliza si solo se necesita conectar un dispositivo a otro y la distancia entre ambos dispositivos es menor de 15 metros.

RS485/RS422 permiten conectar más de dos dispositivos y si la distancia es mayor de 15 metros, se debe usar RS485 o RS422. En RS485 es el protocolo más popular y se basa en un maestro que puede comunicarse con múltiples dispositivos esclavos. Dichos esclavos deben tener una identificación única y pueden ser hasta 247. Aun así, el RS485 no admite más de 32 nodos en un rango de 1,2 Km y necesita del uso de repetidores.

  • ASCII  

Es un formato antiguo serial que envía todas las solicitudes como cadenas de carácteres ASCII. Modbus fue desarrollado originalmente como carácter ASCII para decodificar un mensaje. 
Esta versión todavía se usa hoy, aunque hay que destacar que es incompatible con Modbus RTU, ya que el Modbus RTU comunica a 8 bits de datos mientras que Modbus ASCII a 7 bits además de otros factores.


En Monolitic recomendamos el uso de dispositivos que admiten el Protocolo Modbus como los gateways, los módulos de comunicación o los convertidores de medio de nuestra representada ICPDAS, y te ayudamos a crear soluciones optimas para tu diseño escogiendo la tecnología que te permita el construir el  mejor camino para el envío de tus comunicaciones.

Más información

¿Te ha parecido interesante? ¡Compártelo! Compartir Google Plus Compartir Linkedin Compartir Twitter