El protocolo Modbus RTU es como un "lenguaje común" entre dispositivos industriales, permitiendo una "comunicación" fluida entre dispositivos como contadores de electricidad y sensores de diferentes marcas.
Demostración de la aplicación del protocolo de comunicación Modbus
Este artículo le guiará a través de la aplicación de Modbus RTU en contadores de energía de la forma más sencilla y comprensible. Incluso si es un completo novato sin conocimientos técnicos, puede comprender fácilmente los puntos centrales de este importante protocolo de comunicación industrial.

¿Qué es el protocolo Modbus RTU?
Modbus RTU es un protocolo de comunicación serie desarrollado originalmente por Modicon (ahora parte de Schneider Electric) en 1979 para sus PLC (controladores lógicos programables).
Hoy en día, se ha convertido en uno de los protocolos más utilizados en la automatización industrial, respaldado por más de 400 fabricantes en todo el mundo.
¿Por qué se llama "RTU"? RTU es una abreviatura de "Unidad terminal remota", lo que indica que este protocolo se utiliza principalmente para la comunicación entre dispositivos remotos. Es como un "sistema de mensajes de texto" entre equipos eléctricos, intercambiando datos a través de un mecanismo simple de solicitud y respuesta.
¿Cómo funciona Modbus RTU?
Modbus RTU utiliza una arquitectura de comunicación maestra-esclava, como la de un profesor y sus alumnos en un aula.
- Maestro: El "maestro", típicamente una computadora, PLC o concentrador, es responsable de iniciar preguntas y comandos.
- Esclavo: El "estudiante", como un medidor o sensor de electricidad, sólo puede responder a las preguntas del profesor y no puede hablar de forma independiente. (En aplicaciones de contadores de electricidad...)

Formato de mensaje Modbus RTU
"Plantilla de SMS" entre dispositivos
Los mensajes de comunicación Modbus RTU son como mensajes de texto cuidadosamente elaborados, con requisitos de formato fijos.
Un mensaje Modbus RTU completo contiene las siguientes partes:
| Código de dirección | Código de función | Campo de datos | Verificar código |
|---|---|---|---|
| 8 bits | 8 bits | N × 8 bits | 16 bits |
- Código de dirección (1 byte): equivalente a un "número de teléfono del destinatario", que identifica la dirección del medidor de energía objetivo (1-247), con 0 para una dirección de transmisión.
- Código de función (1 byte): equivalente a un "tipo de mensaje de texto", que indica al medidor de energía la operación que debe realizar (p. ej., leer datos, escribir datos, etc.).
- Campo de datos (N bytes): la información específica que se transmitirá, como la dirección de registro, el valor de los datos, etc.
- Suma de comprobación CRC (2 bytes): equivalente a un "código anti-falsificación", utilizado para comprobar si hay errores durante la transmisión.
Un mensaje típico para leer datos de energía activa positiva total de un contador de energía UBS es el siguiente:
[Dirección 00][Código de función 03][Dirección inicial 00 0C][Longitud de lectura 00 02][Suma de comprobación CRC 05 D9]
Esto equivale a decir: "Todos los medidores, lean los datos del registro 000C, comenzando con el registro 1".
Después de recibir el mensaje, el medidor #1 responderá con:
[Dirección 01][Código de función 03][Longitud de datos 04][Datos 00 00 00 00][Suma de comprobación CRC FA 33]
Esto significa: "El medidor n.° 1 respondió: El valor de datos de energía activa positiva total leído es 00 00 00 00 (hexadecimal)" (Nota: este medidor n.° 1 es un medidor nuevo y sin usar). La siguiente imagen es una demostración de prueba:

El "Libro de datos" en un contador de electricidad: el registro explicado
En el protocolo Modbus RTU, todos los datos de un medidor de electricidad se almacenan en una "hoja de cálculo"-el registro. Los registros se dividen principalmente en cuatro tipos:
| Tipo de registro | Permiso de lectura/escritura | Códigos de función | Contenido almacenado típico |
|---|---|---|---|
| Registro de bobina | Leer/Escribir | 01, 05 | Estado del relé, control del interruptor |
| Registro de entrada discreta | Sólo lectura- | 02 | Entrada digital (p. ej., señales de alarma) |
| Registro de entrada | Sólo lectura- | 04 | Datos de medición-en tiempo real (voltaje, corriente, etc.) |
| Registro de explotación | Leer/Escribir | 03, 06 | Parámetros del dispositivo, energía acumulada, etc. |
En aplicaciones de contadores de electricidad, los registros más habituales son:
Registro de entrada
(Código de función 04H): almacena datos medidos en tiempo real-como voltaje, corriente y potencia.
Registro de explotación
(Código de función 03H): Almacena el consumo eléctrico acumulado, parámetros del dispositivo, etc.
Tabla de información de dirección de registro Modbus del medidor de energía UBS
La dirección de transmisión del protocolo Modbus es 0x00. Para obtener información detallada sobre la dirección de registro del protocolo Modbus para medidores de energía UBS, consulte la siguiente tabla:
| Registro (hexadecimal) | Nombre de la variable | Atributo (Unidad / R/W) | Tipo de datos | Contar | Observaciones |
|---|---|---|---|---|---|
| 0x0000 | Voltaje CC | Unidad: V, R/W: RO | S16 | 1 | Rango: -9999~9999; Lectura=Valor efectivo × 10^(Punto decimal) |
| 0x0001 | Punto decimal de voltaje | Unidad: Ninguna, R/W: RO | U16 | 1 | Valor fijo: 0 |
| 0x0002 | Valor de corriente CC | Unidad: A, R/W: RO | S16 | 1 | Rango: -9999~9999 |
| 0x0003 | Punto decimal actual | Unidad: Ninguna, R/W: RO | U16 | 1 | Valor fijo: 1 |
| 0x0008 | Valor de potencia | Unidad: kW, R/W: RO | S16 | 1 | Rango: -9999~9999 |
| 0x0009 | Punto decimal de potencia | Unidad: Ninguna, R/W: RO | U16 | 1 | Valor fijo: 1 |
| 0x000C | Energía activa total hacia adelante | Unidad: 0,001 kWh, R/W: RO | U32 | 2 | El byte alto primero, el byte bajo al final; Ejemplo: si los datos se leen=5000, punto decimal=2 → Valor real=5000 × 10^(2-3)=500.0 |
| 0x203C | Voltaje del canal 1 | Unidad: 0,0001 V, R/W: RO | I32 | 2 | Byte alto primero, byte bajo último |
| 0x203E | Voltaje del canal 2 | Unidad: 0,0001 V, R/W: RO | I32 | 2 | Siempre 0 |
| 0x2040 | Canal 1 actual | Unidad: 0,0001A, R/W: RO | I32 | 2 | Byte alto primero, byte bajo último |
| 0x2042 | Canal 2 actual | Unidad: 0,0001A, R/W: RO | I32 | 2 | Siempre 0 |
| 0x2044 | Alimentación del canal 1 | Unidad: 0,0001kW, R/W: RO | I32 | 2 | Byte alto primero, byte bajo último |
| 0x2046 | Alimentación del canal 2 | Unidad: 0,0001kW, R/W: RO | I32 | 2 | Siempre 0 |
| 0x9A00 | Energía Total Activa Hacia Adelante | Unidad: kWh, R/W: RO | flotar | 2 | |
| 0xA001/0x8900 | Dirección del dispositivo | Unidad: Ninguna, R/W: RW | U16 | 1 | Rango: 0~247 |
Demostración de lectura de mensajes del contador de energía UBS
Usando el software de la computadora host del medidor de energía UBS, lea los siguientes datos del medidor de energía inteligente de CC DJZ1226: energía activa positiva total, voltaje, corriente, potencia y dirección del medidor.

Como se muestra en el diagrama anterior, el contenido detallado del mensaje enviado y recibido por la computadora host es el siguiente:
13:25:30.229 Energía activa positiva total (000C0002) ...
13:25:30.256 ▼Enviar:00 03 00 0C 00 02 05 D9
13:25:30.344 ▲Recibir:01 03 04 00 00 00 00 FA 33
13:25:30.359 Voltaje CC (00000002) ...
13:25:30.424 ▼Enviar:00 03 00 00 00 02 C5 DA
13:25:30.428 ▲Recibir:01 03 04 00 17 00 03 0A 36
13:25:30.494 Corriente continua (00020002) ...
13:25:30.522 ▼Enviar:00 03 00 02 00 02 64 1A
13:25:30.610 ▲Recibir:01 03 04 00 30 00 02 7B FD
13:25:30.621 Potencia(00080002) ...
13:25:30.682 ▼Enviar:00 03 00 08 00 02 44 18
13:25:30.690 ▲Recibir:01 03 04 00 01 00 02 2A 32
13:25:30.702 Dirección de comunicación 2(A0010001) ...
13:25:30.779 ▼Enviar:00 03 A0 01 00 01 F6 1B
13:25:30.783 ▲Recibir:01 03 02 00 01 79 84
13:25:30.795 Fin de la lectura de datos.
Problemas comunes y técnicas de solución de problemas
Aunque el protocolo Modbus RTU es relativamente simple, aún pueden surgir varios problemas en aplicaciones prácticas. Las siguientes son fallas y soluciones comunes en la comunicación del medidor de electricidad:
Sin respuesta de comunicación
● Verifique las conexiones físicas:
▪ ¿Es correcto el cableado RS-485 (líneas A/B invertidas)?
▪ ¿Las resistencias terminales coinciden (generalmente, conecte resistencias de 120 Ω en cada extremo del bus)?
▪ ¿Se ha excedido el límite de la distancia de comunicación (en teoría, RS-485 puede alcanzar los 1200 metros, pero las distancias reales se ven afectadas por factores ambientales)?
● Verificar la configuración de los parámetros:
▪ ¿Las configuraciones de velocidad en baudios, bits de datos, bits de parada y paridad son consistentes con el medidor de electricidad?
▪ ¿Está configurada correctamente la dirección del dispositivo (sin direcciones duplicadas)?
Comunicación intermitente
● Verifique si hay interferencias en la línea:
▪ Utilice un cable blindado de par-trenzado y asegúrese de que el blindaje esté conectado a tierra en un extremo.
▪ Evite tender el cable paralelo a cables de alto-voltaje.
● Prueba de dispositivos individuales:
▪ Conecte cada medidor de electricidad individualmente para solucionar problemas de dispositivos defectuosos.
▪ Utilice el software informático host dedicado de UBS Electronics (como AMS) para comunicarse directamente con el medidor de electricidad e identificar el problema.
Errores de datos
● Verificación de verificación CRC:
▪ Comprobar si los códigos CRC enviados y recibidos son consistentes.
▪ Confirme el orden de los bytes de datos (Modbus RTU suele ser little-endian).
● Comprobar la asignación de registros:
▪ Confirmar que las direcciones de registro utilizadas sean consistentes con el manual del medidor de electricidad.
▪ Tenga en cuenta el desplazamiento de la dirección del registro.
Si necesita utilizar el software del ordenador host UBS (protocolo Modbus RTU) mencionado en este artículo, póngase en contacto con la persona a cargo de su pedido de medidor de electricidad UBS y obtenga más soporte técnico postventa.




