{}

Impact-Company-Logo-English Black-01-177x54
Share Price 
Impact-Company-Logo-English Black-01-177x54

Welcome to the Schneider Electric corporate Website

Search FAQs

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

Article available in these languages: Czech

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:

SEF
01_______89_______________________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)[Base 10]

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:
SEF
01000010010001110000000000000000


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 (Base 2).
1.F is 1.10001110000000000000000 in base 2, which equals to 1.55468750000000000000000 in Base 10
1.554687500000000000000001.55468750000000000000000
Placing this in the formula results in (-1)^(0) * 2^(132-127) * (1.55468750000000000000000) = 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

Schneider Electric Global

Attachment(s)

IEEE751-floatingPoint calculator.xlsxIEEE751-floatingPoint calculator.xlsx [19.73 KB]
Explore more
Range:
Users group

Discuss this topic with experts

Visit our Community for first-hand insights from experts and peers on this topic and more.
Explore more
Range: