Modbus

Das Kommunikationsprotokoll für die Industrie

In modernen Unternehmen läuft alles über die Kommunikation. Dabei geht es allerdings nicht nur um die Kommunikation auf der menschlichen Ebene – ohne Kommunikation zwischen einzelnen Computern und anderen technischen Systemen funktioniert nichts. Damit sich die verschiedenen Geräte miteinander austauschen können, gibt es verschiedene Kommunikationsprotokolle. Das wohl am häufigsten verwendete Protokoll ist Modbus. Erfinder des Protokolls ist die Firma Gould-Modicon, welche im Jahre 1979 einen Weg suchte, auf dem Rechner mit SPS-Systemen kommunizieren können. Seit 2007 gehört Modbus TCP (eine spezielle Version des Protokolls) zur industriellen Norm ICE 61158. Es gibt daher kaum einen Industriezweig, der nicht mit dem Modbus-Protokoll arbeitet.

Modbus – Wie funktioniert das Protokoll?

Die prinzipielle Funktionsweise des Protokolls ist simpel. Das Informationsprotokoll sorgt dafür, dass ein Master-Gerät (hierbei handelt es sich zumeist um einen Computer) und ein oder mehrere Slave-Geräte miteinander verbunden werden. So lassen sich zum Beispiel verschiedene Messgeräte durch einen Computer steuern, bzw. können Daten zurück an diesen übertragen werden. Die Datenübertragung funktioniert dabei über drei verschiedene Wege, ASCII, RTU und TCP, welche sich für unterschiedliche Zwecke eignen. Die Übertragungssysteme können entweder Ethernet sein oder die etwas ältere Variante der seriellen Verbindung.

ASCII
Dieser Modus zeichnet sich vor allem dadurch aus, dass er anstatt im Binär-Code zu übertragen, seine Daten in ASCII sendet, so dass sie von Menschen gelesen werden können. Dies ist bei dem Senden von binär verschlüsselten Codes wesentlich schwieriger zu bewerkstelligen. Der Aufbau des Codes ist immer gleich: Die Nachricht beginnt mit einem Doppelpunkt, gefolgt von der Adresse des Empfängers (in ASCII). Danach wird der auszuführende Befehl dargestellt, woraufhin die eigentliche Nachricht folgt. Diese kann in der Länge variieren. Zur Fehlerprüfung wird ein sogenannter LRC-Befehl angehängt. Jede ASCII-Nachricht endet mit den Zeichen CRLF.

RTU
Der sogenannte Remote Terminal Unit Modus sendet im Gegensatz zum ASCII-Modus binäre Codes, welche vom Menschen nicht einfach lesbar sind. Allerdings ist der Datendurchsatz bei dieser Methode weitaus besser. Jeder Modbus RTU Code fängt mit einer mindestens 3,5 Zeichen langen Pause an, variiert jedoch mit der Übertragungsgeschwindigkeit. Danach folgen die Adresse des Empfängers, welche in 8 Bit dargestellt wird sowie der Funktionscode, welcher ebenfalls aus 8 Bit besteht. Bei einer korrekten Übertragung werden die Felder vom Master an den Slave und dann unverändert wieder zurückgesendet. Bei Fehlern kommt es zu Codeänderungen. Das folgende Datenfeld ist da, damit der Slave die gemessenen Daten an den Master senden kann. Überprüft wird die ganze Nachricht via CRC. Das Ende einer jeden RTU-Nachricht wird durch eine weitere Wartezeit von mindestens 3,5 Zeichen gekennzeichnet. Generell gilt, dass es zu keinen Unterbrechungen im Informationslauf kommen sollte, um die angeforderten Informationen vollständig zu erhalten. Wenn der Datenstrom zwischendurch unterbrochen wird, dann wird meist dazu geraten, sich nicht auf die Nachricht zu verlassen, da sie unvollständig sein könnte. Der RTU-Modbus überträgt seine Daten über eine serielle Schnittstelle.

TCP
Dieser Modus ist speziell für das Ethernet gedacht. Er ist dem RTU-Modus sehr ähnlich, da auch er in binären Codes sendet, allerdings müssen bei TCP-Modbus keine Kontrollbytes berechnet werden, so dass die Handhabung und Implementierung von TCP-Treibern einfacher zu bewerkstelligen sind. Der Aufbau des Protokolls unterscheidet sich allerdings ein wenig vom Aufbau der RTU-Codes. Am Start jeder TCP-Nachricht steht die Transaktionsnummer, welche 2 Byte groß ist. Darauf folgt das Protokollzeichen. Dieses hat immer den gleichen Aufbau: 0x0000. Danach kommen die Zahl der noch folgenden Bytes sowie die Adresse und das Funktionsfeld. Am Ende der Nachricht stehen dann die Daten, welche immer unterschiedlich groß sind, je nach Länge der Nachricht. Generell ist der TCP-Port 502 für den Modbus TCP reserviert.

Modbus – ein universelles System

In der Automatisierungstechnik ist Modbus fast nicht mehr wegzudenken. Vor allem die Übertragung via Ethernet (also das TCP-Protokoll) gilt als De-facto-Standard. Auch das Internet basiert auf dieser Client-Server-Struktur. Der praktische Vorteil dieser Methode ist einfach, dass die verschiedenen Modbus-Varianten alle ein gemeinsames Anwendungsprotokoll nutzen, welches die Kommunikationsprozesse in der Industrie wesentlich einfacherer macht. Durch diese Technik wird ein universelles für die Kommunikation automatisierungstechnischer Geräte gewährleistet. Dabei kommt es überhaupt gar nicht auf das verwendete Übertragungsmedium an. Das Anwendungsprotokoll funktioniert vollkommen unabhängig und ist damit vielseitig einsetzbar. In den verschiedensten Bereichen der Groß- und Kleinindustrie wird mit SPS gearbeitet. Ein einheitlicher Kommunikationsweg ist daher essentiell. Modbus sendet eine Anfrage vom Master an den oder die Slaves und kann so auf eine einheitliche Art und Weise schnell und sicher Daten übertragen. Moderne Techniken machen es zudem möglich, dass man die verschiedenen Arten der Übertragung miteinander verbinden kann. So können zum Beispiel durch entsprechende Protokollumsetzer Geräte mit seriellen Schnittstellen in Systeme integriert werden, die vor allem über das Ethernet laufen, also TCP.