Technical FAQs

Ask a Question

How are floating point values converted in Schneider Electric energy meters?

Issue
Some Powerlogic meters represent 32-bit Modbus registers as an IEEE 754 floating point data type 

Product Line
PowerLogic and ION Meters that support IEEE 754 floating point data types in Modbus registers

Environment
Modbus Floating Point Data Type

Cause
Internally, most Schneider PowerLogic meters use floating point representations (conforming to IEEE floating point standards) to represent large numbers (i.e. ones that don't fit easily into integer formats). The most common format is a 4 byte floating point (IEEE 754) representation. Some meters allow reading of values directly using Modbus protocol that are in this format (see specific meter’s Modbus Register Map for more details).

Resolution
The architecture of this number format is the following:

S E F
0 1_______8 9_______________________31

S: sign
E: exponent
F: faction (also referred to as the mantissa or significand)

calculation would be = (-1)^S * 2^(E [dec format]-127) * (1.F)

Take frequency reading of PM700 as an example. If the frequency reading in floating point registers are:
1020: 0100001001000111
1021: 0000000000000000

Combine 2 registers in binary format to become:
01000010010001110000000000000000

According to the IEEE Floating Point Standard, split the combined value according to the structure:
 
S E F
0 10000100 10001110000000000000000


When S=0, it is a positive number (i.e. S=1 means the value is negative).
The value in E is 10000100, which is 132 in decimal.
The remaining portion is placed in F, which is 0.10001110000000000000000.
Placing this in the formula results in (-1)^(0) * 2^(132-127) * (1.10001110000000000000000) = 49.75


For more information, a general explanation can be found on Wikipedia at: http://en.wikipedia.org/wiki/IEEE_floating-point_standard

Attached to this article is an Excel based 32-bit floating point calculator
 

Was this helpful?
What can we do to improve the information ?