Beschreibung der mbap kopfzeile, Tabelle 2. mbap kopfzeilenfelder – Basler Electric DGC-2020HD Modbus Protocol Benutzerhandbuch
Seite 10
4
9469375991 Rev A
Allgemeine Informationen
DGC-2020HD Modbus
™ Protokoll
Über TCP/IP wird eine dedizierte Kopfzeile verwendet, um die Modbus Anwendungsdateneinheit zu
identifizieren. Sie wird als MBAP Kopfzeile (Modbus Application Protocol Header) bezeichnet.
Diese Kopfzeile weist einige Unterschiede im Vergleich zur RTU Anwendungsdateneinheit auf, die für
eine serielle Leitung verwendet wird:
•
Das Feld 'Slave Adresse' des Modbus, das normalerweise auf einer seriellen Modbus Leitung
verwendet wird, wird durch eine 1-Byte 'Gerätekennung' (Unit Identifier) in der MBAP Kopfzeile
ersetzt. Die 'Gerätekennung' wird dazu verwendet, über Geräte wie Brücken, Router und
Gateways zu kommunizieren, die eine einzelne IP Adresse verwenden, um mehrere
unabhängige Modbus Endgeräte zu unterstützen.
•
Alle Modbus Anforderungen und Antworten wurden so entworfen, dass der Empfänger
verifizieren kann, dass die Nachricht abgeschlossen ist. Für Funktionscodes, bei denen die
Modbus PDU eine feste Länge hat, reicht der Funktionscode alleine aus. Für Funktionscodes, die
in Anforderung und Antwort eine variable Menge an Daten transportieren, beinhaltet das
Datenfeld eine Byte-Zählung.
•
Wird Modbus über TCP übertragen, werden von der MBAP Kopfzeile zusätzliche
Längeninformationen transportiert, die es dem Empfänger ermöglichen, die Grenzen der
Nachricht zu erkennen, auch wenn die Nachricht für den Transport in mehrere Pakete aufgeteilt
wurde. Die Existenz von expliziten und implizierten Längenregeln und die Verwendung einer
CRC-32 Fehlerprüfung (im Ethernet) führt zu einer an infinitesimalen Chance einer unerkannten
Datenkorruption an einer Anforderungs- oder Antwortnachricht.
Beschreibung der MBAP Kopfzeile
Die MBAP Kopfzeile beinhaltet die in Tabelle 2 aufgelisteten Felder.
Tabelle 2. MBAP Kopfzeilenfelder
Felder
Länge
Beschreibung
Client
Server
Transaktionskennung 2 Bytes Identifikation einer
Modbus
Anforderung/Antwort
Transaktion.
Initiiert vom
Client.
Vom Server
wieder aus der
erhaltenen
Anforderung
kopiert.
Protokollkennung
2 Bytes 0 = Modbus-Protokoll.
Initiiert vom
Client.
Vom Server
wieder aus der
erhaltenen
Anforderung
kopiert.
Länge
2 Bytes Anzahl der folgenden
Bytes.
Initiiert vom
Client
(Anforderung).
Initialisiert vom
Server
(Antwort).
Gerätekennung
1 Byte
Identifizierung eines
externen Slave,
angeschlossen über
eine serielle Verbindung
oder andere Busse.
Initiiert vom
Client.
Vom Server
wieder aus der
erhaltenen
Anforderung
kopiert.
Die Kopfzeile hat eine Länge von 7 Byte:
•
Transaktionskennung – Verwendet für die Bildung von Transaktionspaaren; der Modbus Server
kopiert die Transaktionskennung der Anforderung in die Antwort.
•
Protokollkennung - Verwendet für Multiplexing innerhalb des Systems. Das Modbus-Protokoll
wird durch den Wert 0 identifiziert.
•
Länge – Eine Byte-Zählung der folgenden Felder, einschließlich der Gerätekennung und der
Datenfelder.