Animación Hover

Explicación detallada de la diferencia entre los protocolos Modbus RTU y Modbus TCP

El protocolo de comunicación Modbus fue inventado por Modicon en 1979 y es el primer protocolo de bus del mundo utilizado en campos industriales. Debido a su liberación pública gratuita, los fabricantes que utilizan el protocolo no tienen que pagar ninguna cuota, por lo que el protocolo Modbus se ha utilizado ampliamente en todo el mundo.

El protocolo de comunicación Modbus tiene múltiples variantes, siendo las más comunes los protocolos Modbus RTU y Modbus TCP.

Ambos protocolos son muy similares. Tomemos como ejemplo la lectura de múltiples registros de retención para ilustrar la diferencia entre ellos:

El formato de envío de la comunicación Modbus RTU es: dirección del esclavo 01 (indica la dirección del esclavo) código de función 03 (lectura de registros de retención simples/múltiples) dirección de inicio de datos 00 00 (indica el inicio desde 40001) número de datos 00 02 (indica la lectura de dos palabras) código de comprobación CRC xx xx (el código de comprobación CRC aquí es C4 0B), que juntos son 01 03 00 00 00 02 C4 0B. Después de enviarlo, la estación esclava devolverá los datos. El formato de los datos es: 01 03 04 01 02 03 04 5B 3C, donde 01 dirección de la estación esclava, 03 código de función de lectura, 04 número de bytes de datos, 01 02 03 04 contenido de los datos, 5B 3C es el código de comprobación CRC.

El protocolo Modbus TCP añade una cabecera MBAP al protocolo Modbus RTU. Dado que TCP es un servicio basado en conexiones fiables, el código de comprobación CRC del protocolo RTU ya no es necesario, por lo que no hay comprobación CRC en el protocolo Modbus TCP. La verificación muestra que la cabecera MBAP tiene siete bytes de longitud. Exceptuando el quinto y sexto bytes, el resto permanece básicamente inalterado. Por ejemplo, utilizando Modbus TCP para completar la operación anterior es enviar 00 01 00 00 00 06 ff 03 00 00 00 02. El quinto y sexto bytes son 00 06, lo que significa que hay 6 bytes después de 00 06.Véase la figura siguiente para operaciones específicas

El valor de retorno es 00 01 00 00 00 07 ff 03 04 01 02 03 04. Los primeros 7 bytes son la cabecera del mensaje MBAP, 03 lectura del código de función, 04 bytes de datos, 01 02 03 04 representa el contenido de los datos.

Así que el protocolo Modbus TCP es en realidad el protocolo Modbus RTU con el código de comprobación CRC eliminado, el código de dirección de esclavo anterior eliminado, y luego un encabezado MBAP de 7 bytes añadido al frente.

Modbus TCP evolucionó basándose en Ethernet, y la interfaz física determina su velocidad de comunicación y su método de verificación.

Lo anterior es la diferencia básica entre los protocolos Modbus RTU y Modbus TCP. Se describe más claramente y espero que pueda resolver las dudas de todos.

Póngase en contacto con nosotros