Un contador conectado a un bus RS-485 y el mismo modelo con puerto Ethernet responden a las mismas peticiones Modbus según el mismo mapa de registros. Solo cambia el transporte: Modbus RTU por la línea serie y Modbus TCP por la red IP. En una instalación existente, la elección suele depender de la interfaz que ya tiene el equipo.
Esta guía forma parte de la serie sobre Modbus y RS-485.
Comparación
| Modbus RTU | Modbus TCP | |
|---|---|---|
| Transporte | Línea serie: RS-485 o RS-232 para un solo dispositivo | TCP/IP por Ethernet o Wi-Fi |
| Dirección del dispositivo | De 1 a 247 en el bus; 0 para difusión | Dirección IP y un identificador de unidad para dispositivos detrás de una pasarela |
| Trama | Dirección, código de función, datos y CRC de 16 bits | Cabecera MBAP (7 bytes), código de función y datos |
| Detección de errores | CRC en cada trama | Sumas de comprobación TCP; sin CRC Modbus |
| Separación de tramas | Silencio de al menos 3,5 tiempos de carácter | Campo de longitud en la cabecera |
| Peticiones simultáneas | Una cada vez en el bus | Varias conexiones; el identificador de transacción asocia cada respuesta |
| Configuración habitual | Velocidad, paridad, bits de parada y dirección | Dirección IP, puerto 502 e identificador de unidad |
| Cableado | Par trenzado en cadena, terminado en ambos extremos | Red de la instalación |
La guía de RS-485 frente a Modbus explica la capa serie de Modbus RTU y cómo difiere RS-232. Los códigos de función son iguales en ambos: 03 lee registros de retención, 04 lee registros de entrada, y 06 y 16 escriben. También se conservan tipos de datos, orden de palabras y escalas. La guía de mapas de registros los explica.
Comparación de tramas
Una petición para leer tres registros de retención desde la dirección 0x006B en el dispositivo 17 tiene este aspecto:
| Variante | Bytes (hexadecimales) |
|---|---|
| Modbus RTU | 11 03 00 6B 00 03, seguido del CRC de 2 bytes |
| Modbus TCP | 00 01 00 00 00 06 11 03 00 6B 00 03 |
En la trama TCP, los primeros siete bytes forman la cabecera MBAP: identificador de transacción (0x0001), identificador de protocolo (siempre 0 en Modbus), longitud del resto (6 bytes) e identificador de unidad (0x11). La unidad de datos del protocolo que sigue a la cabecera es idéntica. La calculadora de CRC y LRC Modbus calcula los bytes de comprobación RTU:
Tiempos y capacidad
En un bus RTU solo hay una petición activa cada vez. Su duración suma el tiempo en el cable de petición y respuesta, el tiempo de respuesta del dispositivo y el silencio entre tramas. A 9.600 baudios con paridad par, cada carácter ocupa 11 bits: un byte tarda unos 1,15 ms. La guía de línea serie Modbus fija el silencio entre tramas en 1,75 ms por encima de 19.200 baudios. La calculadora de tiempos Modbus RTU suma el ciclo completo de un bus:
La guía de consultas y reintentos muestra el efecto de un dispositivo desconectado en ese ciclo. En Modbus TCP, la red rara vez es el límite. Suelen limitar el tiempo de procesamiento del dispositivo y el número de conexiones simultáneas que admite. Muchos contadores aceptan pocas conexiones TCP; algunos, solo una. Compruebe el límite antes de que varios sistemas consulten el mismo contador.
Identificadores de unidad y pasarelas
Una pasarela serie a Ethernet permite que clientes Modbus TCP accedan a dispositivos RTU. El cliente envía la petición TCP a la dirección IP de la pasarela y coloca la dirección del dispositivo serie en el identificador de unidad. La pasarela la envía al bus, espera la respuesta y la devuelve por TCP.
Tres aspectos requieren atención:
- Identificador de unidad en dispositivos TCP directos. La guía Modbus TCP indica que no se utiliza si el servidor se identifica por su IP y recomienda 0xFF. Muchos dispositivos lo ignoran; algunos exigen 1 o su dirección serie. Use el valor del manual del equipo.
- Plazos de espera. El plazo TCP del cliente debe superar el plazo serie de la pasarela más el tiempo que su petición espera detrás de otras en el bus. De lo contrario, el cliente abandona mientras la pasarela sigue esperando.
- RTU sobre TCP. Algunos conversores transportan tramas RTU con su CRC y sin cabecera MBAP directamente por una conexión TCP. Eso no es Modbus TCP y el cliente debe configurarse en el modo correspondiente. La guía de pasarelas de protocolos explica la diferencia entre un puente y una pasarela que traduce.
Registre para cada punto dirección IP, puerto, identificador de unidad y dispositivo físico que responde. Tras sustituir una pasarela, compruebe primero ese encaminamiento.
Elección para una instalación
Elija el transporte que ya ofrece el equipo:
| Situación | Opción habitual |
|---|---|
| Contadores con bornes RS-485 solamente, en uno o dos cuadros | Modbus RTU en un bus corto o una interfaz local |
| Equipo con puerto Ethernet en una red gestionada | Modbus TCP, con un plan de direcciones acordado con el equipo de TI de la instalación |
| Bus RTU existente consultado por un BMS | Leer desde el BMS o una pasarela; no añadir otro maestro |
| Muchos dispositivos serie que deben leer varios sistemas | Pasarela Modbus TCP delante del bus |
| Contadores serie lejos del Gateway y sin ruta de cable | Interfaz Modbus inalámbrica junto a los contadores |
Para ambas variantes, obtenga el mapa de registros del modelo y firmware exactos antes de elegir el hardware. «Compatible con Modbus» no indica qué valores publica el dispositivo.
Seguridad
Modbus TCP y RTU no tienen autenticación ni cifrado. Cualquier cliente que pueda acceder al puerto 502 puede leer y, si el dispositivo lo permite, escribir. Protéjalos mediante el diseño de red: red o VLAN separada para equipos de control, reglas de cortafuegos limitadas a los sistemas necesarios y ninguna exposición a Internet.
Modbus Organization publica un protocolo Modbus Security aparte, que incorpora TLS con certificados X.509 en el puerto 802. Ambos extremos deben admitirlo. Una pasarela delante de un dispositivo Modbus sin protección no protege al propio dispositivo; solo desplaza el límite de seguridad.
Pruebe las lecturas antes de escribir. Trate las escrituras como un paso independiente y aprobado por el responsable del equipo.
Modbus TCP y RTU con Edge
Edge en el Gateway ZGW-20 es cliente Modbus de ambas variantes. Consulta dispositivos Modbus TCP de la red de la instalación, incluidos conversores RTU sobre TCP, y dispositivos Modbus RTU conectados a un puerto serie del Gateway. Cada conexión tiene su propia cola, plazos y ritmo de consultas. Para un contador al que no llega un cable de datos desde el Gateway, una interfaz Modbus ZMB lo lee por RS-485 y envía los registros por la red Zigbee. Edge también incluye un servidor Modbus: un BMS o SCADA puede leer datos de la instalación desde el Gateway como registros Modbus TCP. La guía de puesta en marcha de Modbus RS-485 explica la conexión serie.
Preguntas frecuentes
¿Qué diferencia hay entre Modbus TCP y Modbus RTU?
Modbus RTU funciona en una línea serie como RS-485: tramas binarias, CRC para detectar errores y un maestro que consulta dispositivos por dirección. Modbus TCP funciona en una red IP: las mismas peticiones en una cabecera MBAP de 7 bytes, enviadas por TCP al puerto 502; TCP comprueba los errores. Códigos de función y mapas de registros son iguales.
¿Qué puerto utiliza Modbus TCP?
El puerto TCP 502. El protocolo Modbus Security, que encapsula Modbus en TLS, utiliza el puerto 802.
¿Qué es el ID de unidad en Modbus TCP?
Es un campo de un byte en la cabecera MBAP. Una pasarela lo usa para dirigir la petición a un dispositivo serie situado detrás y lleva la dirección de ese dispositivo. Para un equipo que habla Modbus TCP directamente, la guía recomienda 0xFF; muchos esperan 1 o aceptan cualquier valor.
¿Qué es Modbus RTU sobre TCP?
Una trama RTU, con dirección y CRC, enviada sin cambios por una conexión TCP y sin cabecera MBAP. Algunos conversores serie a Ethernet funcionan así. No es Modbus TCP; el cliente debe configurarse en el modo correcto para cada dispositivo.