Índice
ToggleEl protocolo Modbus es un protocolo de comunicación desarrollado por la empresa estadounidense Modicon (actualmente Schneider Electric) en 1979. Su objetivo es utilizar un par trenzado para establecer la comunicación entre varios dispositivos. Modbus se convirtió rápidamente en el estándar de facto en el sector de la automatización, y Modicon lo puso a disposición del público sin cobrar ninguna tasa de patente. A través del protocolo Modbus, se puede establecer fácilmente la comunicación entre dispositivos de control (como PLC, convertidores de frecuencia y DCS) de diferentes fabricantes.

Método de comunicación mediante el protocolo Modbus
El protocolo Modbus utiliza un método de comunicación basado en preguntas y respuestas, que presenta las ventajas de ser sencillo, requerir un hardware económico, ofrecer una gran versatilidad, ser fácil de usar y permitir un desarrollo y una implementación sencillos. Modbus RTU se ha convertido prácticamente en el protocolo de comunicación preferido para los PLC y los convertidores de frecuencia de uso doméstico.
El protocolo Modbus no requiere un módulo de comunicación especializado. La pila y los mecanismos de protocolo necesarios para la comunicación están implementados en software y pertenecen a la capa 7 del modelo de referencia ISO-OSI. Otra ventaja es que puede comunicarse a través de cualquier medio de transmisión, incluidos pares trenzados, comunicaciones inalámbricas, fibra óptica, Ethernet, módems telefónicos, teléfonos móviles y microondas. Esto facilita el establecimiento de una conexión Modbus en una planta nueva o ya existente.
Modbus ASCII, Modbus RTU y Modbus TCP
Actualmente se utilizan tres versiones de Modbus: Modbus ASCII, Modbus RTU y Modbus TCP. El protocolo Modbus ASCII debe convertir un byte de datos en dos bytes de código ASCII antes de enviarlo. Los datos del protocolo Modbus RTU se codifican en binario, y cada byte de datos requiere solo un byte de comunicación.
La comunicación Modbus RTU funciona en modo maestro-esclavo y puede transmitir hasta 255 bytes de datos. Un dispositivo maestro se comunica con uno o varios dispositivos esclavos. Los dispositivos maestros más habituales son los PLC, los PC, los DCS (sistemas de control distribuido) o las RTU (unidades terminales remotas). Los dispositivos esclavos Modbus RTU suelen ser dispositivos de campo.
Cuando un dispositivo maestro Modbus RTU desea obtener datos de un dispositivo esclavo, el dispositivo maestro envía un mensaje que contiene la dirección de estación del dispositivo esclavo, los datos solicitados y un código de comprobación CRC utilizado para detectar errores. Todos los demás dispositivos de la red pueden recibir este mensaje, pero solo responderá el dispositivo esclavo cuya dirección se haya especificado. Los dispositivos esclavos de una red Modbus no pueden iniciar la comunicación, sino que solo pueden responder cuando el dispositivo maestro se dirige a ellos.

Modbus TCP puede entenderse como Modbus sobre Ethernet. Modbus TCP se basa simplemente en el estándar TCP/IP para empaquetar y comprimir de forma sencilla los paquetes de información Modbus. Esto permite que los dispositivos Modbus TCP se conecten y se comuniquen a través de redes Ethernet y de fibra óptica. En comparación con la interfaz RS-485, Modbus TCP también permite el uso de un mayor número de direcciones, puede adoptar una arquitectura multimaster y la velocidad de transmisión puede alcanzar el nivel de GB/s. El número de estaciones esclavas en la red Modbus TCP solo está limitado por las capacidades de la capa física de la red. Por lo general, el número de estaciones esclavas ronda las 1024.
Modbus RTU utiliza un código de comprobación de redundancia cíclica (CRC) de 16 bits. Mediante un complejo procedimiento de operaciones OR y desplazamientos de los datos, el dispositivo maestro genera el CRC y el dispositivo receptor lo comprueba. Si los valores del CRC calculados por ambas partes no coinciden, el dispositivo esclavo solicitará que se vuelva a transmitir la información. El protocolo Modbus RTU se divide en el protocolo Modbus RTU maestro y el protocolo Modbus RTU esclavo. Comunicación Modbus se controla mediante códigos de función, y la estación maestra accede directamente al área de datos de la estación esclava.
Método de cálculo del código de comprobación CRC de Modbus RTU
En el cálculo del CRC solo se utilizan 8 bits de datos, el bit de inicio y el bit de parada. Si hay un bit de paridad, este no se tiene en cuenta en el cálculo del CRC.
El método de cálculo del CRC es el siguiente:
- Carga un registro de 16 bits con el valor 0XFFFF. Este registro es el registro CRC.
- Se realiza una operación XOR entre los primeros 8 bits de datos binarios (es decir, el primer byte de la trama de información de comunicación) y el registro CRC de 16 bits, y el resultado de la operación XOR se sigue almacenando en el registro CRC.
- Desplaza el contenido del registro CRC un bit hacia la derecha, rellena el bit más significativo con un 0 y comprueba si el bit desplazado es un 0 o un 1.
- Si el bit desplazado es cero, repite el tercer paso (vuelve a desplazar un bit hacia la derecha); si el bit desplazado es 1, se realiza una operación XOR entre el registro CRC y 0XA001.
- Repite los pasos 3 y 4 hasta que se haya realizado el desplazamiento a la derecha 8 veces, de modo que se procesen los 8 bits de datos completos.
- Repite los pasos 2 y 5 para procesar el siguiente byte de la trama de información de comunicación.
- Una vez calculados todos los bytes de la trama de información de comunicación siguiendo los pasos anteriores, se intercambian los bytes alto y bajo del registro CRC de 16 bits obtenido.
- El contenido final del registro CRC es: código de comprobación CRC.
- iot-es



