MODBUS-Funktionen • 163
Beschreibung der MODBUS-Funktionen
6.3.11Funktionscode FC23 (Read/Write multiple registers)
Diese Funktion liest Registerwerte aus und schreibt Werte in eine Anzahl von Ausgangsworten (auch ”Ausgangsregister”).
Aufbau des Requests
Das erste Register wird mit 0 adressiert.
Die Anfragenachricht bestimmt die Register, die gelesen und gesetzt werden sollen. Die Daten werden als 2 Bytes pro Register gesendet.
Beispiel: Die Daten in dem Register 3 werden auf den Wert 0x0123 gesetzt und aus den beiden Registern 0 und 1 werden die Werte 0x0004 und 0x5678 gelesen.
Byte |
|
Feldname |
Beispiel |
Byte 0, 1 |
|
Transaction identifier |
0x0000 |
|
|
|
|
|
Byte 2, 3 |
|
protocol identifier |
0x0000 |
|
|
|
|
|
Byte 4, 5 |
|
length field |
0x000F |
|
|
|
|
|
Byte 6 |
|
Unit identifier |
0x01 nicht verwendet |
|
|
|
|
|
Byte 7 |
|
MODBUS function code |
0x17 |
|
|
|
|
|
Byte 8-9 |
|
reference number for read |
0x0000 |
|
|
|
|
|
Byte 10-11 |
|
Word count for read (1-125) |
0x0002 |
|
|
|
|
|
Byte 12-13 |
|
reference number for write |
0x0003 |
|
|
|
|
|
Byte 14-15 |
|
Word count for write (1-100) |
0x0001 |
|
|
|
|
|
Byte 16 |
|
Byte Count |
0x02 |
|
|
(B = 2 x word count for write) |
|
|
|
|
|
|
|
Byte |
|
Register Values |
0x0123 |
17-(B+16) |
|
|
|
|
|
|
|
|
|
Aufbau der Response |
|
|
|
|
|
|
Byte |
Feldname |
Beispiel |
|
.... |
|
|
|
|
|
|
|
|
Byte 7 |
MODBUS function code |
0x17 |
|
|
|
|
|
Byte 8 |
Byte Count |
0x04 |
|
|
(B = 2 x word count for read) |
|
|
|
|
|
|
Byte 9- |
Register Values |
0x0004 |
|
(B+1) |
|
|
0x5678 |
|
|
|
|
|
|
WAGO-I/O-SYSTEM 750 ETHERNET TCP/IP