Formato de datos de punto flotante (float) – Basler Electric DGC-2020HD Modbus Protocol Manual del usuario

Página 15

Advertising
background image

9469372991 Rev A

9

DGC-2020HD Protocolo Modbus

General Information

Formato de datos de punto flotante (Float)

El formato de datos de punto flotante de Modbus utiliza dos registros de retención consecutivos para
representar un valor de datos. El primer registro contiene los 16 bits de valor inferior del siguiente formato
de 32 bits:

El MSB es el bit del signo para el valor de punto flotante (0 = positivo).

Los siguientes 8 bits son el exponente sesgado por el decimal 127.

Los 23 LSB comprenden la mantisa normalizada. El bit más significativo de la mantisa siempre
se supone que es 1 y no se almacena explícitamente, produciendo una precisión efectiva de
24 bits.

El valor del número de punto flotante se obtiene multiplicando la mantisa binaria por dos elevado a la
potencia del exponente no sesgado. El bit supuesto de la mantisa binaria tiene el valor 1,0, con los
23 bits restantes proporcionando un valor fraccionario. La Tabla 4 muestra el formato de punto flotante.

Tabla 4. Formato de punto flotante

Signo

Exponente + 127

Mantisa

1 bit

8 bits

23 bits

El formato de punto flotante permite valores que varían aproximadamente de 8,43×10^

-37

a 3,38×10^

38

. Un

valor de punto flotante con todos ceros es el valor cero. Un valor de punto flotante con todos unos (no un
número) significa un valor que actualmente no se aplica o está inhabilitado.

Ejemplo: el valor 95 800 representado en el formato de punto flotante es hexadecimal 47BB1C00.
Este número se leerá de la siguiente manera desde los dos registros de retención consecutivos:

Registro de retención

Valor

K (Byte alto)

hex 1C

K (Byte bajo)

hex 00

K+1

(Byte alto)

hex 47

K+1

(Byte bajo)

hex BB

Se requieren las mismas alineaciones de bytes para la escritura.

Formato de datos enteros largo (Uint32, Int32 e IP Address)

El formato de datos enteros largo de Modbus utiliza dos registros de retención consecutivos para representar
un valor de datos de 32 bits. El primer registro contiene los 16 bits de valor inferior y el segundo registro
contiene los 16 bits de valor superior.

Ejemplo: el valor 95 800 representado en el formato de enteros largo es hexadecimal 0x00017638.
Este número se leerá de la siguiente manera desde los dos registros de retención consecutivos:

Registro de retención

Valor

K (Byte alto)

hex 76

K (Byte bajo)

hex 38

K+1

(Byte alto)

hex 00

K+1

(Byte bajo)

hex 01

Se requieren las mismas alineaciones de bytes para la escritura.

Formato de datos enteros (Uint16) o variables de mapa de bits en formato Uint16

El formato de datos enteros de Modbus utiliza un único registro de retención para representar un valor
de datos de 16 bits.

Ejemplo: el valor 4660 representado en el formato de enteros es hexadecimal 0×1234. Este número
se leerá de la siguiente manera desde el registro de retención:

Advertising