Modbus - Allgemeine Informationen
Protokollbe-
Die MODBUS-ADU wird vom Client aufgebaut, der die MODBUS-Transaktion in-
schreibung
itiiert. Über die Funktion erfährt der Server, welche Aktion auszuführen ist. Das
MODBUS-Anwendungsprotokoll legt das Format der von einem Client initiierten
Anforderung fest.
Das Funktionscode-Feld einer MODBUS-Dateneinheit ist auf einem Byte codiert.
Gültige Codes liegen im Dezimalbereich von 1... 255 (128-255 sind für Ausnah-
meantworten reserviert). Wenn das Servergerät eine Nachricht von einem Client
erhält, gibt das Funktionscode-Feld dem Server an, welche Aktion auszuführen
ist.
Wenn mehrere Aktionen auszuführen sind, werden einige Funktionscodes um
Sub‑Funktionscodes ergänzt. Im Datenfeld von Nachrichten, die von einem Cli-
ent an Servergeräte gesendet werden, sind zusätzliche Informationen enthalten,
anhand derer der Server die im Funktionscode definierte Aktion ausführt. Das
können Elemente wie diskrete Adressen, Register-Adressen, die zu handhabende
Menge oder die Anzahl der tatsächlichen Datenbytes im Feld sein.
Bei bestimmten Anforderungsarten kann kein Datenfeld (Länge Null) vorhanden
sein. In diesem Fall benötigt der Server keine weiteren Informationen, da der
Funktionscode allein die Aktion spezifiziert.
Wenn in einer ordnungsgemäß empfangenen MODBUS ADU in Verbindung mit
der angeforderten MODBUS-Funktion kein Fehler auftritt, enthält das Datenfeld
einer Antwort von einem Server an einen Client die angeforderten Daten. Wenn
in Verbindung mit der angeforderten MODBUS-Funktion ein Fehler auftritt,
enthält das Feld einen Ausnahmecode, anhand dessen die Serveranwendung die
nächste auszuführende Aktion bestimmen kann.
So kann beispielsweise ein Client die Status ON/OFF einer Gruppe diskreter Ein-
oder Ausgänge lesen oder er kann die Dateninhalte einer Registergruppe lesen/
schreiben.
In der Antwort an den Client gibt der Server im Funktionscode-Feld entweder ei-
ne normale (fehlerfreie) Antwort an oder er teilt mit, dass ein Fehler vorliegt (ei-
ne solche Antwort wird als Ausnahmeantwort bezeichnet). Bei einer normalen
Antwort wiederholt der Server einfach den ursprünglichen Funktionscode.
Datencodierung
MODBUS verwendet für Adressen und Datenelemente eine Big-Endian-Darstel-
lung. Das bedeutet, wenn eine numerische Anzahl übertragen wird, die größer als
ein einzelnes Byte ist, wird das bedeutendste Byte zuerst gesendet.
Registergröße
16 Bit 1234
Application Data
In diesem Abschnitt wird beschrieben, wie eine MODBUS-Anforderung oder -
Unit (ADU)
Antwort bei der Übertragung in einem MODBUS TCP-Netzwerk gekapselt wird.
30
Wert
das erste gesendete Byte ist 12
hex
MPAP Header
, dann 34
hex
hex
Funktionscode
Daten