Modbus: Aufbau, Funktion und Beispiel

Lesedauer: 5min Veröffentlicht am: August 1, 2023. Der Autor des Beitrages ist Maximilian Backenstos.
Modbus ist ein Kommunikationsprotokoll für den Datenaustausch zwischen industriellen Systemen. In diesem Fachartikel erfahren Sie mehr über den Aufbau, die Funktionsweise und die Anwendung von Modbus anhand eines konkreten Beispiels.
Inhalte auf dieser Seite
Primary Item (H2)Sub Item 1 (H3)

Was ist das Modbus Protokoll?

Modbus ist ein weit verbreitetes Kommunikationsprotokoll in der Industrieautomatisierung und Prozesssteuerung. Es ermöglicht den Austausch von Daten zwischen elektronischen Geräten und Systemen, die in industriellen Umgebungen im Einsatz sind.

Das Modbus-Protokoll wurde in den späten 1970er Jahren von Modicon (gehört heute zu Schneider Electric) entwickelt und besteht aus mehreren Varianten, darunter die Varianten RTU (Remote Terminal Unit) und TCP/IP (Transmission Control Protocol/Internet Protocol). Es ist ein offenes Protokoll und daher sehr flexibel und einfach in der Implementierung.

Bei der Kommunikation werden die Kommunikationspartner in "Client" und "Server" oder alternativ "Slave" und "Master" unterschieden. Der Client führt auf dem Master einen bestimmten Befehl aus. Ist dieser korrekt, verarbeitet der Master die Anfrage und gibt eine Antwort (z.B. einen Prozesswert) zurück. Für die Konfiguration einer Kommunikation stellt der Maschinenhersteller eine Tabelle bereit, die beschreibt an welcher Stelle, welche Information vorliegt. Der Client-Programmierer frägt dann mit der Software gezielt die gewünschten Informationen ab. Dieser robuste und einfache Aufbau, macht den Modbus beliebt.

Aufbau des Modbus Protokolls. Ein Client (z.B. Software) sendet eine Anfrage an den Master. Dieser prüft die Anfrage und gibt ein Ergebnis zurück.

Unterschied Modbus RTU und TCP/IP

RTU ist eine serielle Kommunikationsvariante, die üblicherweise über RS-485- oder RS-232-Schnittstellen läuft. Es verwendet eine binäre Datenrepräsentation, um Informationen zwischen Geräten zu übertragen.

TCP/IP hingegen ist eine Variante, die über Ethernet-Netzwerke läuft und auf dem Internet Protocol (IP) basiert. Diese Version erlaubt die Kommunikation über IP-Netzwerke, was sie in modernen industriellen Umgebungen sehr beliebt macht.

Anwendungsfälle von Modbus

Modbus wird häufig in verschiedenen industriellen Anwendungen eingesetzt, um Daten von Sensoren, Steuerungen und anderen Geräten zu sammeln und an eine zentrale Steuerungseinheit oder ein Überwachungssystem, wie die DatenBerg smartPLAZA, zu übertragen. Es ist weit verbreitet und wird von vielen Herstellern unterstützt.

Beispiele für Anwendungen:

  • Energiezähler
  • Druckluftkompressoren
  • Speicherprogrammierbare Steuerungen (SPS, z.B. Siemens Logo)

Vor- und Nachteile von Modbus

In der industriellen Automatisierung und Prozesssteuerung ist Modbus ein weit verbreitetes Protokoll. Es bietet verschiedene Vor- und Nachteile, die berücksichtigt werden müssen, um zu entscheiden, welches Protokoll zum Einsatz kommt:

Vorteile:

  • Einfachheit: Modbus ist ein vergleichsweise einfaches Protokoll, das leicht zu implementieren und zu verstehen ist. Die einfache Struktur erleichtert die Integration in verschiedene Geräte und Systeme.
  • Weit verbreitet: Modbus ist ein offenes Protokoll und wird von einer Vielzahl von Herstellern unterstützt. Dies führt zu einer hohen Interoperabilität zwischen verschiedenen Geräten und ermöglicht es, Komponenten verschiedener Hersteller in einem System zu integrieren.
  • Kosten: Aufgrund seiner Einfachheit und langjährigen Verbreitung ist Modbus oft kostengünstiger als andere komplexe Protokolle.
  • Flexibilität: Modbus bietet sowohl serielle (Modbus RTU) als auch TCP/IP-basierte (Modbus TCP/IP) Kommunikationsvarianten, was es ermöglicht, das Protokoll in verschiedenen Netzwerktopologien einzusetzen.

Nachteile:

  • Sicherheit: Das Protokoll wurde ursprünglich nicht mit Sicherheitsmerkmalen (z.B. User-/Passwortschutz) entwickelt, und die älteren Versionen des Protokolls haben keine eingebauten Sicherheitsmechanismen. Dies kann in modernen Umgebungen ein Sicherheitsrisiko darstellen. Seit 2019 existiert zwar eine Spezifikation für den Einsatz des Verschlüsselungsprotokoll TLS, dies betrifft jedoch nur Geräte neueres Baujahres.
  • Datenmenge: Die Datenkapazität pro Nachricht ist begrenzt, was die Übertragung großer Datenmengen ineffizient machen kann.
  • Fehlererkennung: Im Protokoll ist keine Fehlererkennung oder Fehlerkorrekturmechanismen integriert, was bedeutet, dass die Zuverlässigkeit der Datenübertragung in hohem Maße von der zugrunde liegenden physischen Verbindung abhängt.
  • Keine Adressenvergabe: Das Protokoll bietet keine dynamische Adressvergabe für Geräte, was in großen Netzwerken oder bei der Hinzufügung neuer Geräte problematisch sein kann.
  • Geschwindigkeit: Obwohl RTU schneller als TCP/IP sein kann, ist es im Vergleich zu einigen modernen Protokollen langsam und könnte für Anwendungen mit sehr hohen Geschwindigkeitsanforderungen ungeeignet sein.

Datenmodell

In der Modbus-Spezifikation sind vier verschiedene Tabellentypen definiert. Diese werden in der folgenden Tabelle beschrieben. Jeder Anwender des Protokolls (z.B. Gerätehersteller) definiert auf Basis dieses Basisdatenmodells eigene Tabellen. Diese werden dann dem Endanwender in einem Handbuch zur Verfügung gestellt.

Primäre TabellenObjekttypZugriffstyp
Discrete Inputs (Einzelner Eingang)Single bitLesezugriff
Coils (Einzelner Ein-/Ausgang)Single bitLese-/Schreibzugriff
Input Registers (Eingänge)16-bit wordLesezugriff
Holding Registers (Ein-/Ausgänge)16-bit wordLese-/Schreibzugriff

Funktionsbausteine

Zur Erfüllung definierter Aufgaben existieren im Protokoll verschiedene Funktionen bzw. Funktionsbausteine. Die Funktionsbausteine haben eine numerische Kodierung und werden als Modbus Funktionen bezeichnet. Die gebräuchlichsten Funktionsbausteine im Protokoll sind:

  1. Funktion 01 (0x01) - Read Coils: Diese Funktion wird verwendet, um Ausgangszustände (Coils) von einem Server zu einem Client zu lesen. Der Client kann den Zustand von mehreren Ausgängen gleichzeitig anfordern.
  2. Funktion 02 (0x02) - Read Discrete Inputs: Diese Funktion ermöglicht es dem Client, den Zustand von digitalen Eingängen (discrete inputs) von einem Server zu lesen.
  3. Funktion 03 (0x03) - Read Holding Registers: Mit dieser Funktion kann der Client Holding-Register von einem Server lesen.
  4. Funktion 04 (0x04) - Read Input Registers: Diese Funktion erlaubt es dem Client, Input-Register von einem Server zu lesen.
  5. Funktion 05 (0x05) - Write Single Coil: Mit dieser Funktion kann der Client einen einzelnen digitalen Ausgangszustand (Coil) in einem Server setzen oder zurücksetzen.
  6. Funktion 06 (0x06) - Write Single Register: Diese Funktion ermöglicht es dem Client, einen einzelnen Wert in ein Holding-Register auf einem Server zu schreiben.
  7. Funktion 15 (0x0F) - Write Multiple Coils: Mit dieser Funktion kann der Client mehrere digitale Ausgangszustände (Coils) in einem Server gleichzeitig setzen oder zurücksetzen.
  8. Funktion 16 (0x10) - Write Multiple Registers: Diese Funktion erlaubt es dem Client, mehrere Werte in aufeinanderfolgende Holding-Register auf einem Server zu schreiben.

Die Verfügbarkeit und Unterstützung bestimmter Funktionen kann von der Protokoll-Variante (RTU oder TCP/IP) und den verwendeten Geräten abhängen. Jede Funktion hat eine spezifische Datenstruktur und verwendet spezifische Modbus-Registeradressen, um zu kommunizieren.

Praxisbeispiel: Modbus TCP auslesen

In einer Lebensmittelproduktion soll der Druckluftkompressor überwacht werden. Der Hersteller bietet hierfür das Modbus-Protokoll an. Zunächst wird der Kompressor über ein Ethernetkabel in das Maschinennetz eingebunden. In der Steuerung wird die IP-Adresse eingestellt, die für Zugriff relevant ist.

In der Anleitung des Herstellers finden sich folgende Hinweise:

  • Schreiben der Register mit der Funktion 16 "Write Multiple Registers" oder 06 "Write Single Register".
  • Lesen der Register mit der Funktion 03 "Read Holding Registers". Nicht beschriebene Register haben den Inhalt "0".

Damit ist klar, mit welcher Funktion auf die Daten zugegriffen werden kann. Der Anwender möchte nur Daten lesen, daher wird nur die Funktion 03 weiter betrachtet. Der aktuelle Netzdruck und der Energiezähler sollen überwacht werden. Dazu stehen folgende Angaben zur Verfügung:

  • Netzdruck; Protokolladresse: 41; Holding Register: 40298; Einheit: mbar, Format: Int
  • Energiezähler; Protokolladresse: 46; Holding Register: 40323; Einheit: kWh; Format: Int

Mit diesen Informationen kann das DatenBerg Gateway konfiguriert werden. Zusätzlich wird das Abfrageintervall (in Sekunden) definiert. Das Gateway fragt dann z.B. alle 60 Sekunden die Daten ab und liest die Holding Register aus. Der Wert wird dann direkt an das Data Warehouse der smartPLAZA gesendet und kann dort auf Dashboards visualisiert oder mit Hilfe des Monitorings überwacht werden.

Q&A Modbus

Was ist das Modbus Protokoll?

Modbus ist ein industrielles Kommunikationsprotokoll, das die Kommunikation zwischen einem "Master" und einem "Client" ermöglicht. Der Client sendet eine Anfrage an den Master, der bei korrekter Formulierung der Anfrage z.B. einen Prozesswert zurücksendet. Die möglichen Anfragen werden vom Anlagenhersteller festgelegt und sind in der Regel in einer Tabelle hinterlegt.

Was ist Modbus RTU?

Modbus RTU ist eine Variante des Modbus-Protokolls. RTU steht für Remote Terminal Unit. Die Kommunikation erfolgt über ein mehradriges Kabel im Binärformat. RTU bietet sich z.B. bei der Verbindung zwischen einer SPS und einer dezentralen Anlage an.

Was ist Modbus TCP?

Modbus TCP ist eine Variante des Modbus-Protokolls. TCP ist die Abkürzung für Transmission Control Protocol. Die Kommunikation erfolgt über ein Ethernetkabel (RJ45). Ein Anwendungsfall für Modbus TCP bist der Anschluss eines Gerätes (z.B. Kompressoranlage) direkt an ein Ethernet-basiertes Maschinennetzwerk.

Welche Software eignet sich für das Auslesen von Modbus TCP?

Für Prototypenanwendungen kann das Signal über ein Python-Skript oder eine Node-Red-Anwendung ausgelesen werden. Für den produktiven Einsatz mit direkter Datenspeicherung und -auswertung empfehlen wir die DatenBerg smartPLAZA.

Gibt es eine Modbus Spezifikation?

Es gibt eine offizielle Dokumentation der Modbus-Organisation, das "MODBUS APPLICATION PROTOCOL". Jeder Hersteller von Geräten, die Modbus implementieren, kann diese jedoch mehr oder weniger implementieren. Bei der Implementierung ist daher die implementierte Modbus-Spezifikation beim Gerätehersteller zu erfragen.

Was ist der Unterschied zwischen Modbus RTU und TCP?

Bei Modbus RTU wird ein mehradriges Kabel verwendet, bei Modbus TCP ein Ethernet-Kabel. Die Signalübertragung erfolgt bei RTU über eine binäre Schnittstelle, bei TCP über ein Ethernet-basiertes System.

Weitere Quellen

Sie möchten mehr zum Thema Modbus: Aufbau, Funktion und Beispiel erfahren?
Der Autor Maximilian ist Geschäftsführer bei DatenBerg. Er begleitet Kunden von der Datenerfassung bis hin zur automatisierten Auswertung. Ist er nicht bei Kunden im Einsatz, hält er Vorträge zu den Themen Daten nutzen in der Produktion, Anwendungsfälle von Industrie 4.0 und automatisierte Auswertung von Produktionsdaten. Gerne besprechen wir mit Ihnen, wie das Thema Modbus: Aufbau, Funktion und Beispiel in Ihrer Produktion umgesetzt werden kann. Kontaktieren Sie uns hier.

Ähnliche Beiträge