5
Berechnung der Daten
5.1 INT-, DINT-, LONG-Werte
INT- und DINT- Werte benötigen keine spezielle Umrechnung. INT-Werte werden als einzelnes Register
(= 2 Bytes) gelesen und geschrieben, DINT- und LONG Werte als Folge von zwei Registern (= 4 Bytes)
gelesen oder geschrieben.
5.2 REAL-Werte
Das MODBUS-Protokoll sieht nur 16-Bit vorzeichenbehaftete Ganzahlen als Übertragungswerte vor. Die
REAL-Zahlen des Reglers müssen daher entsprechend aufbereitet werden.
Das in den Reglern verwendete IEEE-Format entspricht dem in den PCs verwendetem Format.
|-----data[1]--------|------data[0]------|
31.30....23.22....16|15.................0
+-----------+---------------------------+
|s 8 bits |msb 23 bit mantisse lsb |
+-----------+---------------------------+
|
|
|
+---------------------------------Sign-Bit
Der wahre Exponent-Wert ist der Exponent minus 7Fh für das IEEE 4 byte REAL-Format.
Je nach der im PC verwendeten Programmiersprache kann direkt oder indirekt auf die einzelnen Bytes
der REAL-Werte zugegriffen werden. Für Rechnersysteme, die ein anderes Zahlenformat verwenden
oder keinen Zugriff auf die einzelnen Bestandteile der REAL-Werte zulassen, sind im Anhang Beispiel-
programme in C und Basic zur Wandlung von REAL-Zahlen in das Byt-Muster des IEEE-Formates an-
gegeben.
Für die Datenübertragung stehen zwei Datenformate zur Verfügung, die sich nur in der Genauigkeit des
Zahlenwertes unterscheiden.
Je nachdem welches dieser beiden Verfahren verwendet werden soll, sind die Variablen-Adressen aus-
zuwählen.
5.2.1
Um auch Gleitkomma-Zahlen in der maximalen Genauigkeit übertragen zu können, ist auf dem Protronic/
Digitric ein neues Verfahren zum Übertragen eines 32-Bit-Wertes implementiert worden.
Das Pair of Register Verfahren wird auch vom ABB-Leitsystem Freelance unterstützt. Dabei werden
REAL-Werte (4 Byte IEEE-Format) in zwei aufeinander folgenden 16-Bit-Registern übertragen, d.h. die
4 aufeinanderfolgenden Bytes die eine REAL-Zahl darstellen werden in 2 x 2 Bytes getrennt, es findet
keine Konvertierung von Formaten statt. Register mit gerader Adresse übertragen das niederwertige
WORD, Register mit ungerader Adresse (gerade + 1) das höherwertige WORD (16-Bit-Register). Um die
Konsistenz der Darstellung zu erhalten, müssen bei der Übertragung eines 32-Bit-Wertes stets beide Re-
gister aufeinanderfolgend übertragen werden:
42/62-50040 DE
Protronic 100/500/550, Digitric 500, MODBUS-Schnittstellenbeschreibung
|
|
|
+-------------Mantisse
+---------------------------Exponent (7fh)
(0=Pos,1=Neg)
Pair of Registers-Verfahren
data[0]
low word
HB
LB
HB
gerade
Berechnung der Daten
data[1]
hi word
LB
gerade+1
15