Conversor de float Modbus

Un registro Modbus tiene 16 bits, así que un float o un entero de 32 bits ocupa dos, y los equipos no se ponen de acuerdo en el orden. Ingrese los dos registros y vea el valor en todos los órdenes a la vez; el correcto suele saltar a la vista.

Hexadecimal (0x41A4) o decimal (16804).

Codificar un valor

Por qué los mismos registros se decodifican de cuatro formas

Dos registros, cuatro bytes

Llame A B C D a los cuatro bytes, el más significativo primero, como los define IEEE 754. El estándar Modbus fija el orden de los bytes dentro de un registro (big-endian) pero no dice qué registro va primero, y algunos equipos además intercambian los bytes.

Los cuatro órdenes

ABCD es big-endian en todo. CDAB intercambia los dos registros, que es la alternativa más común y se suele llamar intercambio de palabras. BADC intercambia los bytes dentro de cada registro. DCBA invierte todo.

Cómo encontrar el correcto

Lea un valor que conozca, como la temperatura ambiente o un punto de ajuste, y elija el orden que lo reproduce. Luego configure ese orden una vez en el sistema que lee el equipo. La hoja de datos debería indicarlo, y a menudo no lo hace.

Preguntas frecuentes

¿Qué significa "word swap" o "CDAB"?

El equipo envía los 16 bits bajos del valor en el primer registro y los 16 bits altos en el segundo. Los bytes dentro de cada registro siguen en orden normal.

¿Por qué obtengo un número enorme o diminuto como 1.4e-41?

Casi siempre es el orden de palabras equivocado. Un float pequeño leído con los registros invertidos cae en el rango desnormalizado o muy fuera de escala. Pruebe los otros órdenes.

¿Cómo se decodifican los valores de 16 bits con signo?

En complemento a dos: un registro por encima de 32767 es negativo, así que 0xFF9F es -97. Muchos sensores envían el valor multiplicado por 10 o por 100, así que -97 puede significar -9.7.

¿Lee sensores Modbus en campo?

Genesis lee sensores RS485 Modbus, transductores analógicos y sondas 1-Wire en los mismos cuatro puertos y los reporta por red celular. Cuéntenos qué necesita leer.

Hablemos →