Floating point data format (float) – Basler Electric BE1-11 Modbus Protocol User Manual

Page 15

Advertising
background image

9424200774 Rev B

9

Signed Integer 8 (Int8)

Strings maximum 2 characters long (String)

Data types mapped to more than 2 registers

Strings longer than 4 characters (String)

Floating Point Data Format (Float)

The Modbus floating point data format uses two consecutive holding registers to represent a data value.
The first register contains the low-order 16 bits of the following 32-bit format:

MSB is the sign bit for the floating-point value (0 = positive).

The next 8 bits are the exponent biased by 127 decimal.

The 23 LSBs comprise the normalized mantissa. The most-significant bit of the mantissa is
always assumed to be 1 and is not explicitly stored, yielding an effective precision of 24 bits.

The value of the floating-point number is obtained by multiplying the binary mantissa times two raised to
the power of the unbiased exponent. The assumed bit of the binary mantissa has the value of 1.0, with
the remaining 23 bits providing a fractional value. Table 4 shows the floating-point format.

Table 4. Floating Point Format

Sign

Exponent + 127

Mantissa

1 Bit

8 Bits

23 Bits

The floating-point format allows for values ranging from approximately 8.43X10

37

to 3.38X10

38

. A floating-

point value of all zeroes is the value zero. A floating-point value of all ones (not a number) signifies a
value currently not applicable or disabled.

Example: The value 95,800 represented in floating-point format is hexadecimal 47BB1C00. This number
will read from two consecutive holding registers as follows:
Holding Register

Value

K (Hi Byte)

hex 1C

K (Lo Byte)

hex 00

K+1 (Hi Byte)

hex 47

K+1 (Lo Byte)

hex BB

The same byte alignments are required to write.

Long Integer Data Format (Uint32, Int32, and IP Address)

The Modbus long integer data format uses two consecutive holding registers to represent a 32-bit data
value. The first register contains the low-order 16 bits and the second register contains the high-order 16
bits.

Example: The value 95,800 represented in long integer format is hexadecimal 0x00017638. This number
will read from two consecutive holding registers as follows:

Holding Register

Value

K (Hi Byte)

hex 76

K (Lo Byte)

hex 38

K+1 (Hi Byte)

hex 00

K+1 (Lo Byte)

hex 01

The same byte alignments are required to write.

Integer Data Format (Uint16 and Int16) or Bit-Mapped Variables in Uint16 Format

The Modbus integer data format uses a single holding register to represent a 16-bit data value.

Example: The value 4660 represented in integer format is hexadecimal 0x1234. This number will read from
a holding register as follows:

BE1-11

General Information

Advertising