// Herramienta gratuita · Modbus RTU y TCP
Conversor de registros Modbus
Pegá los registros que leíste del equipo y mirá el valor como entero o float, en los 4 órdenes de bytes: ABCD, CDAB, BADC y DCBA. Si cargás lo que marca el display, se resalta la interpretación correcta.
Los registros se calculan en tu navegador y no se envían a ningún servidor.
17253) o hex (4365, 0x4365).
// 16 bits
Cada registro
// 32 bits · 2 registros
Float32, int32 y uint32
El mismo par de registros leído en los 4 órdenes. Solo uno es el que usa tu equipo.
// 64 bits · 4 registros
Float64, int64 y uint64
Típico de contadores de energía. Con 4 registros el orden se escribe con 8 letras.
Qué significan ABCD, CDAB, BADC y DCBA
Un float o un entero de 32 bits ocupa 4 bytes, o sea 2 registros. Modbus define que cada registro viaja con el byte alto primero, pero no dice en qué orden van los dos registros de un valor de 32 bits. Lo elige cada fabricante. Si tu software los arma en otro orden, el número sale loco.
La letra A es el byte más significativo. Ejemplo con 229,8 V, que en float32 es 43 65 CC CD:
| Orden | Registro 1 | Registro 2 | Otros nombres |
|---|---|---|---|
| ABCD | 4365 | CCCD | Big-endian, palabra alta primero |
| CDAB | CCCD | 4365 | Word swap, palabra baja primero, little-endian byte swap |
| BADC | 6543 | CDCC | Byte swap, big-endian byte swap |
| DCBA | CDCC | 6543 | Little-endian |
Leído con el orden equivocado, ese mismo 229,8 V da -107617064, 5,78e+22 o -428648544. Si ningún orden da algo razonable, el problema no es el orden: es la dirección (corrida un registro) o el tipo de dato.
40001 no es 40001: el corrimiento de dirección
Los manuales numeran los registros desde 1 y con un prefijo que indica el tipo. En la trama, en cambio, la dirección arranca en 0. El 40001 del manual es la dirección 0 en el protocolo, y el 40101 es la 100.
| En el manual | Tipo | Se lee con | Dirección |
|---|---|---|---|
| 4xxxx | Holding registers | 03 | número − 40001 |
| 3xxxx | Input registers | 04 | número − 30001 |
| 1xxxx | Entradas discretas | 02 | número − 10001 |
| 0xxxx | Coils (bobinas) | 01 | número − 1 |
Con 6 dígitos (400001) es lo mismo, con lugar para 65536 registros. Algunos programas piden la dirección del protocolo (base 0) y otros el número del manual (base 1). Si leés con un registro de diferencia, te llega el valor de al lado o medio float de cada uno: basura que ningún orden de bytes arregla.
El video: Modbus RTU con un medidor real
Cableado RS-485, configuración serie y los tres errores que hacen que la lectura dé números locos, con un medidor de energía en el banco.
// Próximamente
El video donde usamos este conversor con un medidor real está en camino. Suscribite al canal para verlo apenas salga.
Ir a youtube.com/@FaifexChecklist: cuando no comunica
En este orden. Cada paso descarta una causa, y los primeros son los que más fallan.
Timeout no es lo mismo que excepción. Timeout: nadie respondió, el problema está en los pasos 1 a 5. Excepción: el equipo te escuchó y rechazó la consulta, mirá los pasos 6 y 7. Errores de CRC o tramas cortadas: baudios, paridad, terminación o ruido.
// De la prueba al sistema
¿Tenés que llevar esos medidores a un sistema?
SCADA Faifex lee medidores por Modbus RTU y TCP y muestra los 54 parámetros eléctricos de cada uno en tiempo real, con histórico y alarmas. Lo instalamos en tu planta, sin cambiar los equipos que ya tenés.