Das Modbus-Protokoll (Modbus/TCP)
I
8
Protokollaufbau
0 0
8.2
Protokollaufbau
8.2.1
Header
68
Das Modbus-Protokoll besteht aus einem Header und den Function Code-Daten. Der
Header ist für alle Request- und Response-Telegramme sowie Fehlermeldungen
(Exceptions) gleich, daran angehängt sind je nach Function Code eine unterschiedlich
große Anzahl Daten (siehe folgendes Bild).
MBAP Header
Transaction-ID
Protocol-ID
In der folgenden Tabelle sind die Protokollbytes des Headers beschrieben.
Byte
Bezeichnung
0
Transaction Identifier
1
2
Protocol Identifier
3
4
Length field (upper byte)
5
Length field (lower byte)
6
Unit Identifier (Slave
Address)
7
Function Code
8 ...
Data
•
Der Transaction Identifier (Byte 0 und 1) wird einfach vom Slave kopiert. Er kann
dem Master dazu dienen, zusammenhängende Aktionen zu identifizieren.
•
Der Protocol Identifier (Byte 2 und 3) muss immer "0" sein.
•
Die Längenbytes (Byte 4 und 5) geben die Anzahl der auf das Length field folgenden
Bytes an. Da die maximale Telegramnmlänge 255 Bytes beträgt, muss das "upper
byte" "0" sein.
•
Der Unit Identifier (Byte 6) kann dazu genutzt werden, mehrere angeschlossene Teil-
nehmer (z. B. Bridges oder Gateways) zu unterscheiden. Er hat die Funktion einer
Subadresse, die bei SEW-Geräten nur für den Parameterzugriff genutzt wird. Die
Prozessdaten werden immer im Gerät abgebildet, das über den Unit Identifier 0 oder
FF
angesprochen wird.
hex
•
Nach den 7 Bytes des Headers folgen Function Code und Daten.
Handbuch – MOVI-PLC® advanced DHR41B Feldbusschnittstelle EtherNet/IP, Modbus/TCP und
Length (1+1+N)
UI-D
FC
Bedeutung
Oft "0", wird vom Server (Slave) einfach kopiert
0
0
Anzahl der Function Codes Data Bytes + 1 (Unit identifier)
Dies ist die Slave-Adresse. Sie muss für den Zugriff auf die
Prozessdaten der DHR41B auf "0" (0x00) oder 255 (0xFF)
eingestellt werden.
Beim Zugriff auf den Parameterkanal (Offset 200 – 203
folgende Adresszuweisungen:
•
0 oder 254 für Parameter der DHR41B
•
1 – 253 für Parameter eines unterlagerten Geräts an der
DHR41B. Die Zuordnung von Unit-Identifier zu den Geräten
an den Systembussen wird über die Routing-Tabelle auf der
Speicherkarte der DHR41B festgelegt (siehe Kap. "Anhang").
Gewünschter Dienst
Daten je nach gewünschtem Dienst
Function Code-Data
N Data
64064AXX
hex
PROFINET IO
) gelten