Technical FAQs

Ask a Question

The use of floating point values in Schneider PowerLogic power and energy meters

Issue
Some powerlogic meters represent 32 bit modbus registers as an IEEE 751 floating point data type 

Resolution
Internally, most Schneider PowerLogic digital 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 4 byte floating point (IEEE 754) representation. Some Schneider Electric meters such as the PM700 and the PM200 allow reading of values directly using Modbus protocol that are in this 4 byte IEEE 754 number format.
Please find below a brief outline of how this number format works.

The architecture of this number format is like this:

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 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 splite the combined value according to the structure:
 
S
E
F
0
10000100
10001110000000000000000

When S=0, means it is a positive number (i.e. S=1, means the value is in negative)
As for E, now the value is 10000100, i.e. 132 in Dec.
For F, which is the value in faction, i.e. 0.10001110000000000000000
Then, the calculation would be = (-1)^(0) * 2^(132-127) * (1.10001110000000000000000) = 49.75

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

For more information, there is a good general explanation in wikipedia: http://en.wikipedia.org/wiki/IEEE_floating-point_standard

 

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