5.3.1.5 Read Input Register (Funktionscode 0x04)
Diese Funktion dient dazu, eine Anzahl von Eingangsworten (auch "Eingangsregister")
zu lesen. Broadcast wird nicht unterstützt und 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.36: Beispiel Anfrage, Read Input 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.37: Beispiel Antwort, Read Input 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.
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
60
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
MODBUS / Konfiguration
01.10.99