5.3.1
Bildungsvorschriften für die Aufspaltung eines (4 Byte IEEE) REAL-Wertes in 2 Registerwerten à 16-Bit
(Mantisse und Exponent):
// Rundungsfehler berücksichtigen
data[0] = mantisse
data[1] = exponent
Diese Werte müssen mit zwei Telegrammen mit der Funktion 05 oder einem Telegramm mit der Funktion
15 gesendet werden.
Dabei muss die Mantisse immer vor dem Exponent gesendet werden.
5.3.2
In den dafür vorgesehenen MODBUS-Adressen stehen die Werte in der Mantisse-Exponent-Darstellung
zum Lesen bereit.
Mit einen Telegramm mit der Funktion 03 können die Werte ausgelesen werden.
Bildungsvorschrift für das Zusammenfügen von 2 16-Bit-Registerwerten (Mantisse und Exponent) in ein
(4 Byte IEEE) REAL-Wert:
42/62-50040 DE
Protronic 100/500/550, Digitric 500, MODBUS-Schnittstellenbeschreibung
Senden von Mantisse und Exponent an Protronic/Digitric
exponent = 0
while (abs(realwert) >= 1.0 ) {
realwert = realwert / 10
exponent = exponent + 1
}
realwert = realwert * 10000.0
wert = (int)realwert
if (wert > 0)
wert = wert + 0.5;
else
wert = wert - 0.5;
mantisse = (int)wert;
Lesen von Mantisse und Exponent aus Protronic/Digitric
realwert = mantisse
realwert = realwert / 10000.0
for(i=0;i < exponent; i=i+1)
realwert = realwert * 10.0
Berechnung der Daten
17