5.3.1.4 Read Holding Register (Funktionscode 0x03)
Mit dieser Funktion werden die binären Inhalte von Holding Registern in den Slaves
ausgelesen. Broadcast wird nicht unterstützt. Die maximale Anzahl ist auf 128 Register
in einem frame begrenzt.
Anfrage:
Die Anfrage bestimmt die Adresse des Startwortes (Startregister) und die Anzahl der
Register, die gelesen werden sollen.
Die Adressierung beginnt mit 0. Bei Modicon startet die Adressierung mit 1 (0x01).
Beispiel für eine Abfrage der Register 0 und 1 von Slave 11:
Feldname
Start of frame
Slave address
Function code
Starting address high
Starting address low
Number of points high
Number of points low
Error Check (LRC / CRC)
End of frame
Tabelle 5.34: Beispiel Anfrage, Read Holding Register
Antwort:
Die Registerdaten der Antwort werden als 2 Bytes pro Register gepackt. Das erste Byte
enthält dabei die höherwertigen Bits, das zweite die niederwertigen. Eine Antwort auf
die obige Anfrage sieht wie folgt aus:
Feldname
Start of frame
Slave address
Function code
Byte Count
Data Hi (Register 0)
Data Lo (Register 0)
Data Hi (Register 1)
Data Lo (Register 1)
Error Check (LRC / CRC)
End of frame
Tabelle 5.35: Beispiel Antwort, Read Holding Register
Die Inhalte von Register 0 werden durch zwei Bytewerte hexadezimal angezeigt: 0x3F
und 0xFB oder 16379 dezimal. Die Inhalte von Register 1 sind 0x00 und0x00 oder
0 dezimal.
MODBUS / Konfiguration
01.10.99
Beispiel
RTU
-
t1-t2-t3
0x0B
0x0B
0x03
0x03
0x00
0x00
0x00
0x00
0x00
0x00
0x02
0x02
-
0xC4
0xA1
t1-t2-t3
Beispiel
RTU
-
t1-t2-t3
0x0B
0x0B
0x03
0x03
0x04
0x04
0x3F
0x3F
0xFB
0xFB
0x00
0x00
0x00
0x00
-
0x2D
0x61
-
t1-t2-t3
59
ASCII
":"
0x3a
"0B"
0x30, 0x42
"03"
0x30, 0x33
"00"
0x30, 0x30
"00"
0x30, 0x30
"00"
0x30, 0x30
"02"
0x30, 0x32
"F0"
0x46, 0x30
-
0xD, 0xA
ASCII
":"
0x3A
"0B"
0x30, 0x42
"03"
0x30, 0x33
"04"
0x30, 0x34
"3F"
0x33, 0x46
"FB"
0x46, 0x42
"00"
0x30, 0x30
"00"
0x30, 0x30
"B4"
0x42, 0x34
-
0xD, 0xA