DatenBerg Logo

Modbus: Aufbau, Funktion und Beispiel

Lesedauer: 5min Veröffentlicht am: 1. August 2023. Zuletzt überarbeitet am: 13. Oktober 2026 Der Autor des Beitrages ist Maximilian Backenstos.
Modbus ist ein offenes Kommunikationsprotokoll für den Datenaustausch zwischen elektronischen Geräten in industriellen Systemen. Es wurde 1979 von Modicon (heute Schneider Electric) entwickelt und existiert heute in den Varianten Modbus RTU für serielle Verbindungen sowie Modbus TCP/IP für Ethernet-Netzwerke.
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 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 Partner in Client und Server unterschieden, in älterer Terminologie Master und Slave. Der Client sendet eine Anfrage an den Server. Ist sie korrekt, verarbeitet der Server die Anfrage und gibt eine Antwort zurück, z. B. einen Prozesswert. Neben reinen Leseoperationen können auch Funktionen ausgelöst werden.

Schema zum Aufbau von Modbus: Ein Modbus Client oder Master, z. B. eine Software, sendet eine Anfrage zum Lesen eines Holding Registers an einen Modbus Server oder Slave, z. B. einen Kompressor. Der Server gibt den Wert des Registers 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. Als Kabel wird ein zweiadriges Kabel mit + und - bzw. A und B-Pol verwendet.

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.

Es ist auch möglich, Modbus RTU und TCP zu kombinieren. Oft können bis zu 32 Modbus-RTU-Geräte in Reihe geschaltet werden. Ein Gateway setzt die Kommunikation dann auf TCP um, sodass die einzelnen Geräte erreicht werden können. Beim letzten RTU-Gerät wird im Normalfall ein Abschlusswiderstand von 120 Ohm eingebaut.

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
  • Steuerungstechnik

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. Dadurch ist es möglich, das Protokoll in verschiedenen Netzwerktopologien einzusetzen.

Nachteile:

  • Sicherheit: Das ursprüngliche Protokoll hat keine eingebauten Sicherheitsmechanismen wie Benutzer- oder Passwortschutz. Das kann in vernetzten Umgebungen ein Risiko darstellen. Mit dem Modbus/TCP Security Protocol gibt es eine abgesicherte Variante, die die Kommunikation per TLS verschlüsselt und Geräte über Zertifikate authentifiziert. Sie läuft über Port 802 und wird nur von neueren Geräten unterstützt.
  • Datenmenge: Die Datenkapazität pro Nachricht ist begrenzt, was die Übertragung großer Datenmengen ineffizient machen kann.
  • Fehlerbehandlung: Modbus erkennt Übertragungsfehler über Prüfsummen, bei RTU per CRC, bei ASCII per LRC und bei TCP über die Prüfmechanismen von Ethernet und TCP. Eine Fehlerkorrektur gibt es nicht. Fehlerhafte Nachrichten werden verworfen, und der Master muss die Anfrage nach Ablauf eines Timeouts wiederholen. Vor allem bei RTU-Verbindungen hängt die Zuverlässigkeit deshalb stark von Verkabelung und Abschluss der Leitung ab.
  • 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: Modbus RTU ist durch die serielle Übertragung mit typischerweise 9600 oder 19200 Baud vergleichsweise langsam. Modbus TCP ist über Ethernet deutlich schneller. Für Anwendungen mit sehr hohen Geschwindigkeitsanforderungen kann Modbus trotzdem ungeeignet sein.

Datenmodell

In der Modbus-Spezifikation sind vier verschiedene Tabellentypen definiert. Diese werden in der folgenden Tabelle beschrieben. Allerdings definiert der Gerätehersteller auf Basis dieser vier Grundkategorien eigene Tabellen (siehe nächster Abschnitt). Mit anderen Worten: Die Kategorien können je nach Umsetzung des Protokolls existieren, müssen aber nicht.

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

Modbus Register

Für die Konfiguration einer Kommunikation stellt der Maschinenhersteller eine Tabelle (auch Register oder Prozessabbild genannt) bereit, die beschreibt an welcher Stelle, welche Information vorliegt. Der Client fragt dann mit der Software gezielt die gewünschten Informationen ab. Dieser robuste und einfache Aufbau, macht den Modbus beliebt.

Input RegisterDatenformatBezeichnungEinheit
30054IntegerGesamtstundenh

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.

Datentypen im Modbus

Zu den einzelnen Register im Modbus werden oft direkt die dazugehörigen Datenpunkte angegeben. Typische Datentypen umfassen:

  • BOOL/BITMAP: Bits oder 16-Bit-Bitfelder
  • INT16: Vorzeichenbehaftete Ganzzahl (-32768 bis 32767).
  • UINT16: Vorzeichenlose Ganzzahl (0 bis 65535).
  • INT32/Float32: 32-Bit-Werte über zwei Register.​

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 offenes Kommunikationsprotokoll für den Datenaustausch zwischen Geräten in industriellen Anlagen. Ein Client (Master) sendet eine Anfrage an einen Server (Slave). Ist die Anfrage korrekt, antwortet der Server, z. B. mit einem Prozesswert. Welche Daten abgefragt werden können, legt der Gerätehersteller in einer Registertabelle fest.

Was kann man mit Modbus machen?

Mit Modbus tauschen Geräte in industriellen Anlagen Daten aus. Typisch ist das Auslesen von Messwerten und Zuständen aus Sensoren, Steuerungen, Energiezählern oder Druckluftkompressoren, etwa Netzdruck, Betriebsstunden oder Energieverbrauch. Über Schreibfunktionen lassen sich außerdem Werte in Register schreiben und digitale Ausgänge schalten. Die ausgelesenen Daten können an ein Überwachungssystem übertragen und dort visualisiert, gespeichert und automatisch überwacht werden.

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 ist der Anschluss eines Gerätes (z.B. Kompressoranlage) direkt an ein Ethernet-basiertes Maschinennetzwerk. Modbus TCP nutzt standardmäßig den Port 502.

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.

Welches Kabel verwendet man für Modbus?

Das kommt auf den Modbus Typ an. Bei Modbus TCP ist ein Ethernet-Kabel mit RJ45 Anschluss im Einsatz. Bei Modbus RTU nutzt man ein 2-adriges Kabel, als Farbe bietet sich Lila zur Kennzeichnung an.

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

linkedin facebook pinterest youtube rss twitter instagram facebook-blank rss-blank linkedin-blank pinterest youtube twitter instagram