Modbus – ein vielseitiges und bewährtes Kommunikationsprotokoll
BITMOTECO Factory Data Hub
Das modulare Factory Data Hub für Ihre Produktion unterstützt eine Vielzahl von Kommunikationsprotokollen und Industriestandards.
Jetzt Demo-Termin zur Abstimmung Ihres Testbetriebs vereinbaren.
Zwei verschiedene Kommunikationsschnittstellen
Modbus ist ein vielseitiges und bewährtes Kommunikationsprotokoll, das in der industriellen Automatisierung sowie anderen Anwendungsbereichen weit verbreitet ist, da es den einfachen und effizienten Datenaustausch zwischen Geräten in einem Netzwerk ermöglicht. Die beiden Hauptvarianten, Modbus TCP und Modbus RTU, unterscheiden sich in der Übertragungstechnologie und der Rahmenstruktur, sodass sie unterschiedlichen Anwendungsbereichen gerecht werden können.
Modbus TCP
Die Kommunikationsschnittstelle „Modbus Transmission Control Protocol“ und ist eine Variante, die auf dem Internet Protocol (IP) basiert. Es nutzt dabei das standardmäßige TCP/IP-Netzwerk, das in den meisten modernen industriellen und kommerziellen Netzwerken vorhanden ist. Zudem ist das Übertragen von Daten über Ethernet- oder drahtlose WLAN-Verbindungen möglich, was folglich eine schnelle und zuverlässige Kommunikation gewährleistet. Im Protokoll der Schnittstelle erfolgt die Übertragung der Daten Im Server-Client-Model in Form von Ethernet-Frames. Diese Frames enthalten die Befehle und Daten der Schnitstelle, die zwischen einem Client (z. B. einem PC), welcher die Daten anfordert, und einem Server (z. B. einer Steuerung) ausgetauscht werden. Die Datenübertragung erfolgt über Port 502, was eine einfache Integration in bestehende Netzwerkinfrastrukturen ermöglicht.
Der Vorteil von Modbus TCP liegt in seiner Einfachheit und Interoperabilität. Da es auf TCP/IP basiert, kann es leicht über LANs, WANs oder das Internet kommunizieren. Es ist ebenfalls gut geeignet für Anwendungen, bei denen eine schnelle und zuverlässige Datenübertragung erforderlich ist, wie beispielsweise in der industriellen Automatisierung und der Gebäudeautomation.
Modbus RTU
Eine weitere Kommunikationsschnittstelle, die „Modbus Remote Terminal Unit“, ist eine serielle Variante des Protokolls. Im Gegensatz zu Modbus TCP, das Ethernet nutzt, verwendet Modbus RTU eine serielle Schnittstelle wie z.B. RS-232 oder RS-485 für die Datenkommunikation. Bei dieser findet die Übertragung von Daten in Form von binären Werten statt. Dies macht diese effizienter, da keine umfangreichen Header-Informationen, wie bei Modbus TCP, notwendig sind. Die Kommunikation erfolgt in einem Master-Slave-Modell, wobei der Master die Befehle sendet und die Slaves die Daten empfangen oder auf die Befehle mit Daten antworten.
Einer der Hauptvorteile dieser Kommunikationsschnittstelle liegt in der Robustheit der seriellen Kommunikation, die folglich in rauen Industrieumgebungen von Vorteil ist. Die geringe Datenübertragungszeit und die einfache Verkabelung machen es zu einer praktischen Wahl für Anwendungen, in denen z.B. eine längere Entfernung zwischen den Geräten erforderlich ist, wie beispielsweise in großen Fabriken oder Gebäuden.
Modbus RTU-over-TCP
Die dritte in diesem Artikel vorgestellte Kommunikationsschnittstelle nennt sich „Modbus RTU encapsulated in TCP“ und ist eine weitere Variante des Modbus-Protokolls. Ihr Hauptzweck besteht darin, den seriellen RTU-Datenverkehr über ein TCP/IP-Netzwerk zu transportieren. Dabei erfolgt die Einkapselung der seriellen Daten in TCP/IP-Pakete, um sie anschließend über das Ethernet zu senden. Dieser Ansatz ermöglicht die Nutzung der Vorteile beider Protokollvarianten. Um diese Schnittstelle zu verwenden, kommt normalerweise ein sogenanntes „Modbus Gateway“ zum Einsatz. Ein Gateway ist ein Gerät oder auch eine Software, die zwischen dem Modbus TCP-Master und den seriellen RTU-Slaves positioniert ist. Er übernimmt die Aufgabe, die RTU-Nachrichten in TCP/IP-Pakete umzuwandeln und umgekehrt. Dadurch erfolgt die nahtlose Integration von RTU-Geräten in ein TCP-Netzwerk, ohne dass dabei eine komplette Umstellung auf Modbus TCP erforderlich ist.
Die Verwendung dieser Kommunikationsschnittstelle bietet somit einige Vorteile. Zum einen können bestehende Modbus RTU-Geräte weiterhin verwendet werden, ohne dass sie durch Modbus TCP-fähige Geräte ersetzt werden müssen. Dies spart dementsprechend Zeit und somit folglich auch Kosten für eine vollständige Migration. Zum anderen kommunizieren RTU-Geräte über weite Entfernungen in einem TCP/IP-Netzwerk, da die Kommunikation über Ethernet erfolgt. Dies ist insbesondere in großen Industrieanlagen von Vorteil, in denen sich die Verkabelung von rein seriellen Schnittstellen als problematisch erweist. Es ist jedoch wichtig zu beachten, dass Modbus RTU-over-TCP möglicherweise nicht so effizient arbeitet wie z.B. ein reines Modbus TCP, da zusätzliche Overhead-Daten durch die TCP/IP-Verpackung entstehen. Daher ist es ratsam, die Leistungsfähigkeit sowie Latenzzeiten bei der Implementierung von Modbus RTU-over-TCP zu berücksichtigen und gegebenenfalls geeignete Maßnahmen zu ergreifen, um schließlich die Effizienz zu optimieren.
Welche Variante ist zu bevorzugen?
Die Wahl zwischen den verschiedenen Varianten hängt hauptsächlich von der bereits verfügbaren Netzwerkinfrastruktur sowie den spezifischen Anforderungen einer Anwendung ab. Wenn z.B. eine schnelle und zuverlässige Kommunikation über Ethernet oder einen der IEEE-802.11-WiFi-Standards (WLAN) erforderlich ist, ist demgemäß Modbus TCP die geeignete Wahl. Wenn hingegen eine robuste serielle Kommunikation in einer industriellen Umgebung über weite Distanzen benötigt wird, ist Modbus RTU möglicherweise die bessere Option. Für die einfache Anbindung von seriellen Geräten in ein bestehendes TCP/IP-Netzwerk lohnt die Betrachtung von einfachen Gateways sowie Modbus RTU-over-TCP.
Befehle und Aufbau der Datenpakete
Das Modbus-Protokoll unterstützt verschiedene Funktionen, die es ermöglichen, Daten zwischen einem Master-/Client-Gerät und Slave-/Server-Geräten auszutauschen. Diese können je nach ihrer Art in zwei Kategorien unterteilt werden:
Lesende Funktionen:
- Funktion 01 (0x01) – Read Coil Status: Liest den Status von digitalen Ausgängen (Coil-Registern).
- Funktion 02 (0x02) – Read Discrete Input Status: Liest den Status von digitalen Eingängen (Diskrete Eingangsregistern).
- Funktion 03 (0x03) – Read Holding Registers: Liest die Werte von Holding-Registern, die zur Speicherung von Konfigurationsdaten und Steuerungsparametern verwendet werden.
- Funktion 04 (0x04) – Read Input Registers: Liest die Werte von Eingangsregistern, die für analoge Eingangswerte oder andere Statusinformationen verwendet werden.
Schreibende Funktionen:
- Funktion 05 (0x05) – Write Single Coil: Schreibt einen einzelnen digitalen Ausgang (Coil-Register).
- Funktion 06 (0x06) – Write Single Register: Schreibt einen einzelnen Wert in ein Holding-Register.
- Funktion 15 (0x0F) – Write Multiple Coils: Schreibt mehrere Werte in aufeinanderfolgende digitale Ausgänge (Coil-Register).
- Funktion 16 (0x10) – Write Multiple Registers: Schreibt mehrere Werte in aufeinanderfolgende Holding-Register.
RTU Frame-Aufbau
Bei diesem Aufbau erfolgt die Kommunikation über eine serielle Schnittstelle wie z.B. RS-232 oder RS-485. Das RTU-Protokoll ist binär und besteht dabei aus den folgenden Teilen:
[ Slave-Adresse ][ Funktionscode ][ Daten ][ CRC ]
Der erste Teil mit der Slave-Adresse identifiziert das Zielgerät, das auf die Anfrage reagieren soll. Der Funktionscode gibt an, welche Funktion ausgeführt werden soll (z. B. Lesen oder Schreiben von Daten). Bei einer Anfrage folgen anschließend die Parameter, die für die spezifische Funktion benötigt werden, wie beispielsweise die gewünschte Registeradresse oder die zu schreibenden Daten. Bei einer Antwort befinden sich dort dann die angeforderten Daten. Abschließend wird zur Sicherstellung der Datenintegrität ein mit dem zyklische Redundanzprüfungsverfahren (CRC – Cyclic Redundancy Check) erzeugter Prüfwert übertragen.
TCP Frame-Aufbau
Bei diesem Aufbau erfolgt die Kommunikation in Form von Ethernet-Frames. Ein Modbus TCP-Paket besteht aus einem Ethernet-Header, einem IP-Header, einem TCP-Header sowie dem Modbus-Datenblock, dessen Aufbau dem Modbus RTU Frame ohne den Prüfwert entspricht. Der Aufbau sieht somit folgendermaßen aus:
[ Ethernet Header ][ IP Header ][ TCP Header ][ Modbus Datenblock ]
Der Ethernet-Header enthält die MAC-Adressen des Quell- und Zielgeräts. Der IP-Header enthält zudem die IP-Adressen des Quell- und Zielgeräts. Der TCP-Header enthält die Port-Nummern des Quell- und Zielgeräts, wobei Port 502 dabei häufig für Modbus TCP verwendet wird. Der Datenblock der Schnittstelle enthält schließlich die Modbus-Funktion, Datenadresse, Datenlänge sowie gegebenenfalls die Daten selbst.
Wie erfolgt die Kommunikation zwischen dem BITMOTECOsystem und den Geräten?
Das BITMOTECOsystem kann über Node-RED und dem darin verfügbaren Modbus-Node direkt über TCP/IP bidirektional mit allen Modbus TCP fähigen Geräten kommunizieren. Für die serielle Kommunikation mit Geräten die Modbus RTU unterstützen, ist ein externes Gateway notwendig. Dieses übersetzt dann zwischen dem seriellen Protokoll und einem IP-basierten Netzwerkprotokoll. Dazu kann z.B. Modbus RTU-over-TCP verwendet werden.
Mehr zum Thema:
Hannover | Niedersachsen | Oldenburg | Osnabrück | Göttingen | Celle | Lüneburg | Hameln | Aurich | Leer | Diepholz | Emsland | Gifhorn | Uelzen | Cuxhaven | Hamburg | Bremen | Braunschweig |