// herramientas / modbus

// 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.

2 registros para 32 bits, 4 para 64. Separados por espacio, coma o enter. Decimal (17253) o hex (4365, 0x4365).
Formato
Lo que marca el display del equipo o tu instrumento, en la misma unidad. Sirve para resaltar la interpretación correcta.
Probá con:

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:

OrdenRegistro 1Registro 2Otros nombres
ABCD4365CCCDBig-endian, palabra alta primero
CDABCCCD4365Word swap, palabra baja primero, little-endian byte swap
BADC6543CDCCByte swap, big-endian byte swap
DCBACDCC6543Little-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 manualTipoSe lee conDirección
4xxxxHolding registers03número − 40001
3xxxxInput registers04número − 30001
1xxxxEntradas discretas02número − 10001
0xxxxCoils (bobinas)01nú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.

Escribí el número tal como figura en el mapa de registros.

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/@Faifex

Checklist: 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.