Modbus TCP frente a Modbus RTU
Modbus es un solo protocolo con varias maneras de poner sus mensajes en el cable, y las dos más comunes - RTU y TCP - no difieren en lo que dicen sino en cómo lo empaquetan. RTU es binario compacto sobre una línea serial, protegido por una suma de verificación; TCP es el mismo mensaje envuelto en un encabezado para Ethernet y llevado por una red IP, con la suma de verificación eliminada porque la red aporta la suya. Esta guía compara Modbus RTU, Modbus TCP y Modbus ASCII, y muestra cómo un gateway puentea un dispositivo serial RTU legado hacia la red IP de un SCADA en la nube.
Modbus TCP vs Modbus RTU en una línea: Modbus RTU es la forma serial: mensajes binarios compactos enviados por RS-485 o RS-232, cada uno terminado en una suma de verificación CRC que permite al receptor detectar corrupción en la línea. Modbus TCP lleva los mismos mensajes Modbus sobre Ethernet, envueltos en un encabezado MBAP y apoyados en la verificación de errores propia de TCP/IP, así que elimina el CRC. Modbus ASCII es una forma serial más antigua que codifica los mensajes como caracteres legibles con una suma de verificación más simple. Un gateway puentea dispositivos seriales RTU hacia una red IP traduciendo entre el entramado RTU y Modbus TCP.
Modbus RTU: binario sobre serial con CRC
Modbus RTU es la forma serial original y todavía la más común. Envía cada mensaje como binario compacto - una dirección de esclavo, un código de función, los datos y un CRC de dos bytes - directamente sobre una capa física serial, casi siempre RS-485, que permite que muchos dispositivos compartan un bus. El CRC, o verificación de redundancia cíclica, se calcula sobre el mensaje completo para que el dispositivo receptor pueda detectar si algún bit se corrompió en tránsito y descartar una trama dañada en lugar de actuar sobre datos malos. En una línea serial sin otra protección de errores, ese CRC es esencial.
RTU no tiene direccionamiento más allá del byte de dirección de esclavo, porque un bus serial es un único medio compartido donde esa dirección es todo lo que se necesita para señalar a un dispositivo. El entramado depende de la temporización: un hueco de silencio en la línea marca la frontera entre mensajes, así que un dispositivo RTU sabe que una trama terminó cuando el cable queda quieto el tiempo suficiente. Eso hace a RTU eficiente - muy poco encabezado por mensaje - pero atado a las características del enlace serial, incluida su temporización y su topología de un maestro con muchos dispositivos.
Las RTU de pozo legadas y los instrumentos de campo viejos hablan Modbus RTU con muchísima frecuencia, porque precedió por mucho al Ethernet industrial barato y encajaba con el cableado serial ya tendido hacia los sitios remotos. Un dispositivo instalado hace años en una localización de pozo o una batería de tanques es mucho más probable que ofrezca un puerto RS-485 hablando Modbus RTU que un puerto Ethernet nativo, que es exactamente por lo que puentear RTU a redes IP modernas es parte tan rutinaria de conectar equipo de campo antiguo a un SCADA en la nube.
Modbus TCP y Modbus ASCII
Modbus TCP lleva los mismos datos de protocolo Modbus - el código de función y los datos que definen la solicitud - pero los envuelve en un encabezado MBAP y los envía por una conexión TCP/IP en una red Ethernet. El encabezado MBAP agrega campos como un identificador de transacción, un identificador de protocolo, una longitud y un identificador de unidad, reemplazando el direccionamiento y el entramado seriales con algo adecuado para una red de paquetes donde varias solicitudes pueden estar en vuelo. De forma crucial, Modbus TCP elimina el CRC de RTU, porque TCP/IP ya aporta sus propias sumas de verificación y entrega confiable, así que un CRC redundante a nivel Modbus no agregaría nada.
Las ganancias prácticas de Modbus TCP son las de Ethernet en general: cada dispositivo tiene una dirección IP, muchos maestros y dispositivos pueden coexistir en la misma red, y el alcance ya no se limita a un bus serial. El costo es que el modelo de direccionamiento cambia: la IP identifica al dispositivo, y el identificador de unidad del encabezado MBAP cobra sentido principalmente cuando un gateway se interpone entre la red IP y dispositivos seriales. Un dispositivo TCP nativo se alcanza por su IP, mientras que el identificador de unidad suele llevar un valor de relleno.
Modbus ASCII es una tercera forma serial, más antigua, que convive con RTU. En lugar de binario compacto, codifica cada mensaje como caracteres ASCII legibles, con una verificación por redundancia longitudinal en lugar de un CRC y caracteres explícitos de inicio y fin entramando cada mensaje. Eso hace a ASCII más fácil de leer y depurar y más tolerante a huecos de temporización, pero duplica aproximadamente el tamaño del mensaje respecto a RTU y es más lento, así que hoy es mucho menos común. La mayoría del Modbus serial en campo es RTU, con ASCII encontrado sobre todo en equipo legado o especializado.
Puentear RTU serial hacia la red IP de un SCADA en la nube
Como tantos dispositivos de campo hablan Modbus RTU por serial mientras el SCADA en la nube vive en redes IP, un gateway que traduce entre los dos es la conexión estándar. El gateway presenta una interfaz Modbus TCP con una dirección IP hacia el lado de red y maneja un bus RS-485 de dispositivos RTU en el lado de campo. A las solicitudes Modbus TCP entrantes les quita el encabezado MBAP, las reemite como tramas RTU con la dirección de esclavo apropiada y un CRC recién calculado sobre el bus serial, y las respuestas RTU se envuelven de regreso en Modbus TCP para el viaje de vuelta.
El gateway hace por lo tanto más que cambiar conectores: convierte el entramado y la verificación de errores entre las dos formas, agregando el CRC en el camino hacia los dispositivos seriales y apoyándose en TCP en el camino de regreso a la red. El identificador de unidad de la trama Modbus TCP es lo que le dice al gateway qué dirección de esclavo serial apuntar, así que una sola IP de gateway puede dar frente a toda una cadena de dispositivos RTU, cada uno direccionado por su identificador de unidad. Así es como una RTU serial legada sin concepto alguno de Ethernet termina siendo legible por una plataforma al otro lado de internet.
Para un SCADA en la nube como Merobix, este puenteo es lo que hace visible el equipo de campo antiguo sin reemplazarlo. La plataforma sondea la IP del gateway por Modbus TCP, direccionando cada dispositivo serial por su identificador de unidad, mientras el gateway maneja la conversación RTU en el bus RS-485. El resultado es que una RTU de pozo hablando Modbus serial de hace décadas y un SCADA moderno en la nube terminan en el mismo flujo de datos, con el gateway absorbiendo la diferencia entre el entramado serial binario con CRC y el Modbus TCP entramado para Ethernet.
Preguntas frecuentes
¿Cuál es la diferencia principal entre Modbus RTU y Modbus TCP?
Llevan los mismos mensajes Modbus pero los empaquetan distinto. RTU envía binario compacto por una línea serial, casi siempre RS-485, y termina cada mensaje con una suma de verificación CRC para detectar errores. TCP envuelve el mismo mensaje en un encabezado MBAP y lo envía por una red Ethernet TCP/IP, eliminando el CRC porque TCP/IP aporta su propia verificación. RTU conviene en buses seriales compartidos, mientras que TCP conviene en redes IP donde cada dispositivo tiene una dirección IP.
¿Por qué Modbus TCP no usa un CRC como RTU?
Porque la capa TCP/IP subyacente ya provee detección de errores y entrega confiable mediante sus propias sumas de verificación y retransmisión. El CRC de RTU existe para atrapar corrupción en una línea serial cruda sin otra protección, pero en una red Ethernet esa protección es redundante. Por eso Modbus TCP reemplaza el entramado serial y el CRC con un encabezado MBAP y deja que TCP/IP garantice la integridad de los datos.
¿Cómo conecta un gateway un dispositivo Modbus RTU serial a una red IP?
Un gateway serial a Ethernet presenta una interfaz Modbus TCP en el lado de red y un bus RS-485 de dispositivos RTU en el lado de campo. Quita el encabezado MBAP de las solicitudes TCP entrantes, las reemite como tramas RTU con la dirección de esclavo correcta y un CRC nuevo sobre el bus serial, y envuelve las respuestas de regreso en Modbus TCP. El identificador de unidad de cada trama TCP le dice al gateway qué dispositivo serial alcanzar, así que una sola IP puede servir a muchos dispositivos RTU.
Servicios de automatización
¿Necesita convertir esta información en un sistema que funcione?
Merobix integra SCADA, programa PLC Allen-Bradley y Siemens, y diseña y fabrica tableros de control industrial.
Las solicitudes de reunión se revisan antes de confirmarse.