Modbus

Bei Modbus handelt es sich um ein Kommunikationsprotokoll, welches den Datenaustausch zwischen einem Master und mehreren Slaves ermöglicht. 1979 wurde das Protokoll von Gould-Modicon entwickelt, damit speicherprogrammierbare Steuerungen untereinander kommunizieren können. Das offene Protokoll gehört heutzutage zum Industriestandard für die Verbindung von Computern mit Mess- und Regelsystemen. Die Version Modbus TCP ist Teil der Norm IEC 61158.

Wie funktioniert Modbus?

Das Master-Gerät, welches meist ein Computer ist, und die Slave-Geräte, wie Mess- und Steuereinheiten, werden miteinander verbunden. Als Übertragungssystem wird dabei meist Ethernet genutzt oder die etwas ältere Variante über den seriellen Anschluss. Das Modbus-Protokoll ermöglicht nun die Steuerung der angeschlossenen Geräte und eine Übermittelung der Messdaten von den Slaves an den Master. Jeder Busteilnehmer muss dabei eine eindeutige Adresse besitzen, wobei die Adresse 0 für den Broadcast reserviert ist. Grundsätzlich kann jeder Teilnehmer Nachrichten über den Bus senden, wobei eine Kommunikation meist durch den Master initiiert wird.
Für die Übertragung gibt es dabei drei Betriebsarten.

Betriebsarten von Modbus: TCP, RTU und ASCII

Modbus TCP

Bei diesem Betriebsmodus werden die Daten über TCP/IP-Pakete versendet. Modbus TCP ist dabei für die Übertragung über Ethernet gedacht, für den der TCP-Port 502 reserviert ist. Der Datendurchsatz geschieht dabei in binärer Form. Bei dem TCP-Betrieb müssen keine Kontrollbytes berechnet werden, was die Handhabung und Installation von Treibern einfach macht.
Die TCP-Nachricht beginnt mit einer Transaktionsnummer, welche 2 Byte groß ist. Darauf folgt das Protokollzeichen (0x0000) und die Zahl der folgenden Bytes. Nach der Adresse und dem Funktionsfeld folgen die Daten, welche je nach Länge der Nachricht unterschiedlich groß sind.

Transaktionsnummer, Größe: 2 Byte

Protokollkennzeichen, Größe: 2 Byte

Zahl der noch folgenden Bytes, Größe: 2 Byte + n

Adresse, Größe: 1 Byte

Funktion, Größe: 1 Byte

Daten, n Byte

Modbus RTU

Bei dem Modbus Remote Terminal Unit werden die Daten auch binär übertragen, welche für Menschen nicht einfach lesbar sind. Im Gegensatz zu Modbus TCP wird dafür aber nicht Ethernet verwendet, sondern eine serielle Schnittstelle, wie etwa EIA-232 und EIA-485.

Jeder Modbus RTU Code beginnt mit einer mindestens 3,5 Zeichen langen Pause an, welche von der Übertragungsgeschwindigkeit abhängt. Adresse des Empfängers und Funktionscode bestehen aus 8 Bit. Bei einer korrekten Übertragung werden die Felder unverändert von dem Slave-Gerät an den Master zurückgesendet. In dem Datenfeld sind die gemessenen Daten des Slave enthalten. Eine zyklische Redundanzprüfung (CR-Check) vermeidet Fehler bei den Prüfwerten. Am Ende steht wieder eine Wartezeit von mindestens 3,5 Zeichen. Der Informationsverlauf sollte bei dem RTU-Modus nicht unterbrochen werden.

Start Adresse Funktion Daten CR-Check Ende
Wartezeit 1 Byte 1 Byte n Byte 2 Byte Wartezeit

Modbus ASCII

Bei diesem Modus wird nicht die Binärfolge, sondern ein ASCII-Code übermittelt. Der Datendurchsatz ist bei diesem Modus geringer, dafür sind die Daten direkt für Menschen lesbar.

Der Aufbau des übermittelten Codes ist immer gleich: Die Nachricht beginnt mit einem Doppelpunkt und der Adresse. Darauf folgen der auszuführende Befehl und die eigentlichen Daten, die in ihrer Zeichenanzahl variieren. Bei dem ASCII-Modus wird zur Fehlerprüfung ein LRC-Befehl angehängt. Mit den Zeichen CRLF wird die Nachricht beendet.

Start Adresse Funktion Daten LRC Ende
Zeichenanzahl 1 Zeichen (:) 2 Zeichen 2 Zeichen n Zeichen 2 Zeichen 2 Zeichen (CRLF)

Modbus TCP: Universelles System unter den Feldbussen

Für die Automatisierungstechnik ist Modbus essentiell für die simple Kommunikation zwischen Master- und Slavegeräten. Wegen seiner Client-Server-Struktur wird Modbus in Klein- und Großindustrie eingesetzt. Vor allem die Übertragung via Ethernet hat sich zum De-facto-Standard entwickelt.

Die Modbus-Technik gewährleistet einen universellen Übertragungsweg für Mess- und Regelgeräte für die Industrie. So ist das Protokoll unabhängig und lässt sich flexibel einsetzen. Der Master kann eine Anfrage senden und die Slaves antworten einheitlich und schnell.

Mit einem Protokollumsetzer können auch Geräte mit den älteren seriellen Schnittstellen in ein TCP-System integriert werden.