2
Protokollbeschreibung
2.7
Übertragungsformat (Integer-, Float- und Text-Werte)
Integer-Werte
I nteger-Werte werden über Modbus im folgenden Format übertragen:
Zuerst das High-, dann das Low-Byte.
Beispiel
A bfrage des Integer-Wertes von Adresse 0x0021, wenn unter dieser Adresse der Wert "4"
(Wortwert 0x0004) steht.
Anfrage: 01 03 0021 0001 (+ 2 Byte CRC16)
Antwort: 01 03 02 0004 (+ 2 Byte CRC16)
Float-Werte
B ei Float-Werten wird im Modbus mit dem IEEE-754-Standard-Format (32bit)gearbeitet,
allerdings mit dem Unterschied, dass Byte 1 und 2 mit Byte 3 und 4 vertauscht sind.
Single-float-Format (32bit) nach Standard IEEE 754
SEEEEEEE
Byte 1
S - Vorzeichen-Bit
E - Exponent (2er-Komplement)
M - 23Bit normalisierte Mantisse
Modbus-float-Format
Modbus-Adresse x
MMMMMMMM
Byte 3
Beispiel
A bfrage des Float-Wertes von Adresse 0x0035, wenn unter dieser Adresse der Wert 550.0
(0x44098000 im IEEE-754-Format) steht.
Anfrage: 01 03 0035 0002 (+ 2 Byte CRC16)
Antwort: 01 03 04 8000 4409 (+ 2 Byte CRC16)
N ach der Übertragung vom Gerät müssen die Bytes des Float-Wertes entspre c hend
vertauscht werden.
F
V iele Compiler (z. B. Microsoft Visual C++) legen die Float-Werte in folgender
Reihenfolge ab:
Float-Wert
Adresse x
MMMMMMMM
Byte 4
F
B itte ermitteln Sie, wie in Ihrer Anwendung Float-Werte gespeichert werden. Ggf.
müssen die Bytes nach der Abfrage in Ihrem Schnittstel l enprogramm entsprechend
getauscht werden.
EMMMMMMM
MMMMMMMM
Byte 2
MMMMMMMM
Byte 4
Adresse x+1
MMMMMMMM
Byte 3
MMMMMMMM
Byte 3
Modbus-Adresse x+1
SEEEEEEE
EMMMMMMM
Byte 1
Adresse x+2
EMMMMMMM
Byte 2
Byte 4
Byte 2
Adresse x+3
SEEEEEEE
Byte 1
nVent.com | 61