Prohledejte časté dotazy
Jak se převádějí hodnoty s plovoucí desetinnou čárkou v měřičích energie Schneider Electric?
Některé měřiče Powerlogic představují 32bitové registry Modbus jako datový typ s plovoucí desetinnou čárkou dle normy IEEE 754.
Interně většina měřičů Schneider PowerLogic používá zobrazení s pohyblivou řádovou čárkou (v souladu se standardy IEEE s pohyblivou řádovou čárkou) k reprezentaci velkých čísel (tj. takových, která se nevejdou snadno do celočíselných formátů). Nejběžnějším formátem je 4bajtová reprezentace s plovoucí desetinnou čárkou (IEEE 754). Některé měřiče umožňují přímé čtení hodnot pomocí protokolu Modbus, který je v tomto formátu (více podrobností viz mapa registru Modbus konkrétního měřiče).
Architektura tohoto číselného formátu je následující:
S | E | F |
0 | 1_______8 | 9_______________________31 |
S: znaménko
E: exponent
F: základ (také označovaná jako mantissa)
výpočet by byl = (-1)^S * 2^(E [dec format]-127) * (1.F)[Základ 10]
Jako příklad je uvedeno odečtení hodnoty frekvence u PM700. Pokud jsou četnosti v registrech s plovoucí desetinnou čárkou:
1020: 0100001001000111
1021: 0000000000000000
Zkombinujte 2 registry v binárním formátu:
01000010010001110000000000000000
Podle standardu IEEE pro plovoucí desetinnou čárku rozdělte zkombinovanou hodnotu podle struktury:
S | E | F |
0 | 10000100 | 10001110000000000000000 |
Když S=0, jedná se o kladné číslo (tj. S=1 znamená, že hodnota je záporná).
Hodnota v E je 10000100, což je 132 dekadických.
Zbývající část se umístí do F, což je 0,10001110000000000000000 (základ 2).
1.F je 1,10001110000000000000000 v základně 2, což se rovná 1,55468750000000000000000 v Base 101,55468750000000000000000
Vložení tohoto vzorce do výsledku vzorce je (-1)^(0) * 2^(132-127) * (1,55468750000000000000000) = 49,75
Další informace naleznete v obecném vysvětlení na Wikipedii na adrese: http://en.wikipedia.org/wiki/IEEE_floating-point_standard
K tomuto článku je připojen 32bitový kalkulátor s plovoucí desetinnou čárkou založený na aplikaci Excel.