User manual
Table Of Contents

13
2 Protokoll
2.7 Übertragungsformat
2.7.1 Integer-Werte
Bei Integer-Werten wird zuerst das High-Byte übertragen, dann das Low-Byte.
Beispiel
Abfrage des Integer-Werts von Adresse 0x0021; unter dieser Adresse steht der Wert "4" (Wort-
wert 0x0004)
Anfrage: 01 03 0021 0001 (+ 2 Bytes CRC16)
Antwort: 01 03 02 0004 (+ 2 Bytes CRC16)
2.7.2 Float-Werte
Float-Werte werden im IEEE-754-Standard-Format (32 Bits) übertragen, allerdings mit dem Un-
terschied, dass Byte 1 und 2 mit Byte 3 und 4 vertauscht sind.
Single-float-Format (32 Bits) nach Standard IEEE 754
S = Vorzeichen-Bit
E = Exponent (2er-Komplement)
M = Normalisierte Mantisse (23 Bits)
Modbus-float-Format
Beispiel
Abfrage des Float-Werts von Adresse 0x0035; unter dieser Adresse steht der Wert 550.0
(0x44098000 im IEEE-754-Format)
Anfrage: 01 03 0035 0002 (+ 2 Bytes CRC16)
Antwort: 01 03 04 8000 4409 (+ 2 Bytes CRC16)
Nach der Übertragung vom Gerät müssen die Bytes des Float-Werts entsprechend vertauscht
werden.
Viele Compiler (z. B. Microsoft Visual C++) legen die Float-Werte in folgender Reihenfolge ab:
SEEEEEEE EMMMMMMM MMMMMMMM MMMMMMMM
Byte 1 Byte 2 Byte 3 Byte 4
Modbus-Adresse x Modbus-Adresse x+1
MMMMMMMM MMMMMMMM SEEEEEEE EMMMMMMM
Byte 3 Byte 4 Byte 1 Byte 2
Adresse x Adresse x+1 Adresse x+2 Adresse x+3
MMMMMMMM MMMMMMMM SEEEEEEE EMMMMMMM
Byte 4 Byte 3 Byte 2 Byte 1
HINWEIS!
Bitte ermitteln Sie, wie in Ihrer Anwendung Float-Werte gespeichert werden. Ggf. müssen
die Bytes nach der Abfrage in Ihrem Schnittstellenprogramm entsprechend getauscht wer-
den.