Interfaces de contadores

Modbus TCP frente a Modbus RTU

Diferencias entre Modbus TCP y RTU: transporte, tramas, direcciones, puerto 502, tiempos, pasarelas y seguridad, y cómo elegir en una instalación existente.

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 RTUModbus TCP
TransporteLínea serie: RS-485 o RS-232 para un solo dispositivoTCP/IP por Ethernet o Wi-Fi
Dirección del dispositivoDe 1 a 247 en el bus; 0 para difusiónDirección IP y un identificador de unidad para dispositivos detrás de una pasarela
TramaDirección, código de función, datos y CRC de 16 bitsCabecera MBAP (7 bytes), código de función y datos
Detección de erroresCRC en cada tramaSumas de comprobación TCP; sin CRC Modbus
Separación de tramasSilencio de al menos 3,5 tiempos de carácterCampo de longitud en la cabecera
Peticiones simultáneasUna cada vez en el busVarias conexiones; el identificador de transacción asocia cada respuesta
Configuración habitualVelocidad, paridad, bits de parada y direcciónDirección IP, puerto 502 e identificador de unidad
CableadoPar trenzado en cadena, terminado en ambos extremosRed 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:

VarianteBytes (hexadecimales)
Modbus RTU11 03 00 6B 00 03, seguido del CRC de 2 bytes
Modbus TCP00 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ónOpción habitual
Contadores con bornes RS-485 solamente, en uno o dos cuadrosModbus RTU en un bus corto o una interfaz local
Equipo con puerto Ethernet en una red gestionadaModbus TCP, con un plan de direcciones acordado con el equipo de TI de la instalación
Bus RTU existente consultado por un BMSLeer desde el BMS o una pasarela; no añadir otro maestro
Muchos dispositivos serie que deben leer varios sistemasPasarela Modbus TCP delante del bus
Contadores serie lejos del Gateway y sin ruta de cableInterfaz 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.