top of page

Detaillierte Erklärung des Modbus-Protokolls: Von Hintergrund, Entwicklung, Prinzipien bis zur Konfiguration in der Praxis

23. Nov. 2025
25 Min. Lesezeit

Aktualisiert: 12. Okt.

Detaillierte Erklärung des Modbus-Protokolls: Von Hintergrund, Entwicklung, Prinzipien bis zur Konfiguration in der Praxis

Einleitung: Warum wird Modbus noch immer eingesetzt?

Modbus wird seit seiner Einführung durch Modicon im Jahr 1979 in der industriellen Kommunikation eingesetzt. Sein Anfrage-/Antwortmodell ist weiterhin nützlich, um Messwerte, Gerätestatus und Steuerregister in Energieversorgung, Wasserwirtschaft, Prozessindustrie und Fertigung auszulesen. Die fortdauernde Nutzung erklärt sich eher durch installierte Geräte, zugängliche Spezifikationen und eine einfache Implementierung als durch unbelegte Marktanteils- oder Gerätezahlenschätzungen.

Modbus konzentriert sich auf den Austausch einer kleinen Menge Gerätedaten über definierte Funktionscodes. Diese Einfachheit kann Implementierungs- und Integrationsaufwand verringern, sofern der Ingenieur auch die physische Schnittstelle, die Registerzuordnung des Geräts und die Anwendungsanforderungen prüft. Zu den praktischen Stärken gehören:

  • Einfaches Kommunikationsmodell: Ein serieller Client plant Anfragen, ein Server antwortet; TCP nutzt dasselbe Anwendungsmodell über eine Netzwerkverbindung.

  • Öffentliche Spezifikationen: Implementierer können die Protokolldokumente bei der Modbus Organization beziehen. Eine offene Spezifikation ist von der Lizenz eines bestimmten Software-Stacks oder Produkts zu unterscheiden.

  • Breite Auswahl an Implementierungen: Steuerungen, Messgeräte und Gateways verschiedener Hersteller können Daten austauschen, wenn ihre unterstützten Funktionen und gerätespezifischen Zuordnungen übereinstimmen.

  • Geringe Anforderungen an die Implementierung: Kleine eingebettete Geräte können die benötigten Funktionen implementieren; tatsächlicher Speicherbedarf, Energieverbrauch und Bauteilkosten hängen vom Design ab.

  • Praktische RS-485-Busverdrahtung: Mehrere adressierte Geräte können sich einen sachgerecht ausgelegten Bus teilen. Auf seriellem Modbus sind die Adressen 1–247 verfügbar; elektrische Last, Topologie und Timing bestimmen jedoch, wie viele Geräte ein Segment unterstützen kann.

  • Etablierte installierte Basis: Der Austausch funktionierender Feldgeräte kann erheblichen Integrationsaufwand verursachen. Gateways können vorhandene Modbus-Daten für neuere Leitsysteme verfügbar machen.

Ein Gateway, das ausdrücklich Protokollumsetzung oder Datenerfassung unterstützt, kann Modbus-Geräte abfragen und ausgewählte Werte per MQTT, HTTP oder OPC UA bereitstellen. Registerzuordnung, Einheiten, Aktualisierungsintervall und unterstützte Gateway-Funktionen müssen konfiguriert werden; eine gewöhnliche IP-Verbindung stellt sie nicht automatisch bereit. Dieser Leitfaden behandelt Modbus von Hintergrund und Datenmodell über Rahmen bis zu Einsatz und Konfiguration und kann zusammen mit den Handbüchern der konkreten Geräte verwendet werden.

Modbus ist ein Client/Server-Kommunikationsprotokoll zum Lesen und Schreiben von Coils und Registern. RTU und ASCII verwenden serielle Nachrichtenrahmen; Modbus TCP nutzt TCP/IP. Prüfen Sie vor der Konfiguration die Registerliste des Geräts und die Adresskonvention des Clients.

Bei der Nachrüstung spricht eine Steuerung möglicherweise Modbus RTU über eine serielle Leitung, während das übergeordnete System Modbus TCP erwartet. Der gemeinsame Name „Modbus“ sagt weder aus, ob ein Gateway die Nachrichten umsetzt, noch welche Adresse zu einer Registerbezeichnung gehört.

Dieser Leitfaden trennt Datenmodell, Übertragungsweg und Nachrichtenrahmen. Er vergleicht RTU, ASCII und TCP und zeigt, warum eine Referenz wie 40001 nicht immer die Adresse ist, die ein Client erwartet. Eine kleine Zuordnungstabelle unterstützt die Inbetriebnahme.

Historischer Hintergrund und Entwicklung von Modbus

Entstehungshintergrund

Mit der Verbreitung speicherprogrammierbarer Steuerungen benötigten Steuerungen und Feldgeräte eine praktische Möglichkeit, Messwerte und Befehle auszutauschen. Herstellerspezifische Schnittstellen erschwerten die Integration. Modbus entstand bei Modicon in diesem Umfeld als Anfrage-/Antwortprotokoll für Industrieanlagen; das Protokoll macht nicht jede Gerätezuordnung und elektrische Schnittstelle austauschbar.

Modicon führte Modbus 1979 ein. Ein Client sendet einen Funktionscode und Anfragedaten; der adressierte Server gibt die angeforderten Daten zurück oder eine Ausnahme, wenn er die Anfrage nicht verarbeiten kann. Auf einem seriellen Bus steuert der Client den Austausch. Dieses wiederverwendbare Modell ermöglicht Steuerungen und Messgeräten, definierte Operationen auszutauschen, während die konkrete Gerätezuordnung dem Hersteller überlassen bleibt.

Entwicklungsgeschichte

Die wichtigste Entwicklung ist die Wiederverwendung eines gemeinsamen Anwendungsprotokolls für serielle und TCP/IP-Kommunikation. Die folgenden Meilensteine unterscheiden den Protokollursprung, dokumentierte Spezifikationsfassungen und heutige Integrationspraxis:

Zeitraum / Dokumentdatum

Meilenstein

Bedeutung für die Technik

1979

Modicon führt Modbus ein

Anfrage-/Antwortprotokoll für industrielle Steuerungen und Geräte.

Serielle Implementierungen

RTU- und ASCII-Rahmung

Ein gemeinsames Anwendungsmodell kann kompakte binäre RTU-Rahmen oder ASCII-kodierte serielle Rahmen verwenden.

Ethernet-Integration

Modbus TCP/IP

Die Anwendungs-PDU wird über eine TCP-Verbindung mit MBAP-Header übertragen; es handelt sich nicht um einen unverändert übermittelten RTU-Rahmen.

24. Oktober 2006

TCP/IP Implementation Guide V1.0b

Dokumentiert Client/Server-Kommunikation und die Integration über TCP/IP- und Gateway-Systeme.

20. Dezember 2006

Serial Line Guide V1.02

Dokumentiert serielle Adressierung, Rahmung, Timing und Implementierungsanforderungen.

26. April 2012

Application Protocol Specification V1.1b3

Definiert das Datenmodell, die Adressierung, Funktionscodes und das Ausnahmeverhalten in diesem Leitfaden.

Heutige Integrationspraxis

Polling und Protokoll-Gateways

Ausgewählte Gerätewerte können MQTT oder OPC UA zugeordnet werden, wenn Gateway und Anwendung diese Funktionen ausdrücklich unterstützen.

Diese Entwicklungen ermöglichen es bestehenden Feldgeräten, an neueren Systemen teilzunehmen, ohne die Bedeutung der Anwendungsanfragen zu ändern. Transport, Gateway-Verhalten und Registerinterpretation müssen weiterhin unabhängig geprüft werden.

Warum wurde Modbus nicht abgelöst?

Modbus bleibt nützlich, wenn Geräte bereits eine bekannte Registerzuordnung bereitstellen und die Anwendung einfache Datenerfassung oder Steuerung benötigt. Ein Ersatz dieser Geräte kann Änderungen an der Verdrahtung, Validierung und Softwareintegration erfordern. Ressourcenbedarf und Migrationskosten hängen von der konkreten Implementierung ab; pauschale Aussagen zu Codegröße, Anteil älterer Geräte und Kostenverhältnissen sind keine verlässliche Grundlage für die Auswahl.

Modbus kann MQTT oder OPC UA in einer IIoT-Architektur ergänzen. Ein Gateway kann einen Zähler per Modbus abfragen, dessen Register interpretieren und die resultierenden Messwerte einer Leitebene oder Cloud-Anwendung bereitstellen. Diese Protokolle haben unterschiedliche Kommunikations- und Informationsmodelle; eine solche Zuordnung ist eine Anwendungsfunktion und keine automatische Funktion von Modbus.

Protokollarchitektur von Modbus

Modbus ist ein Protokoll der Anwendungsschicht im Client/Server-Modell, das auf Anfragen und Antworten basiert. Auf einer seriellen Verbindung initiiert der Client (traditionell Master genannt) Transaktionen, während der adressierte Server (Slave) antwortet. Ein gemeinsam genutzter serieller Bus hat normalerweise einen Client. Modbus TCP kann mehrere Clientverbindungen innerhalb der vom Server unterstützten Grenzen zulassen. Keine der beiden Varianten garantiert eine feste Antwortzeit; Abfragezeit, Verbindungsgeschwindigkeit, Verarbeitung, Zeitüberschreitungen und Netzwerklast sind relevant.

Grundlegende Architektur

Client (PLC / gateway / HMI)  -- request -->  Server (instrument / controller)
Client                        <-- response --  Server

Serial bus: one client schedules transactions.
TCP: client connections depend on the server implementation.
  • Client: initiiert Anfragen und plant Abfragen sowie Wiederholungen. Mehrere unabhängige serielle Clients dürfen nicht ohne eigens ausgelegtes Koordinierungssystem auf denselben Bus senden.

  • Serieller Server: verwendet eine individuelle Adresse von 1 bis 247. Adresse 0 ist für unterstützte Broadcast-Schreibvorgänge reserviert; Server antworten nicht auf Broadcasts.

  • Kommunikationspfad: RTU- oder ASCII-Rahmung auf einer unterstützten seriellen Schnittstelle oder die Modbus-Anwendungs-PDU über TCP/IP.

Datenmodell

Modbus abstrahiert Geräte als "Registerkarte":

  • Bitgruppen: Coils sind Einzelbitwerte, die gelesen und geschrieben werden können; diskrete Eingänge sind Einzelbitwerte, die der Client ausliest.

  • Registergruppen: Holding Register sind 16-Bit-Wörter, die gelesen und geschrieben werden können; Input Register sind 16-Bit-Wörter, die der Client ausliest. Ein Gerät kann unterstützte Operationen und Zugriffsmöglichkeiten einschränken.

Trennen Sie die Anwendungsnachricht von ihrer Rahmung und der physischen Verbindung:

  • Anwendung: Die Protokolldateneinheit (PDU) enthält einen Funktionscode und dessen Daten.

  • Serielle Rahmung: Adresse und Prüffeld umgeben die PDU; RTU und ASCII kodieren und begrenzen den Rahmen unterschiedlich.

  • TCP/IP-Rahmung: Der MBAP-Header steht im TCP-Bytestrom vor der PDU. Ethernet ist eine gängige zugrunde liegende Netzwerkverbindung; RS-485 eine gängige elektrische Schnittstelle für serielle Verbindungen.

Die Anwendungs-PDU ist auf 253 Byte begrenzt. Eine RTU-ADU kann einschließlich ihrer Rahmung höchstens 256 Byte, eine TCP-ADU höchstens 260 Byte umfassen. Die tatsächliche Länge von Anfrage und Antwort hängt von Funktion und Menge ab. Diese Größenbegrenzungen garantieren weder eine bestimmte Zustellrate noch einen bestimmten Zuverlässigkeitsprozentsatz.

Modbus beschreibt Anfragen und Antworten zwischen Client und Server. Das Anwendungsprotokoll gliedert die Daten in vier Gruppen:

Datengruppe

Einheit

Typischer Zugriff

Coils

Einzelne Bits

Lesen und Schreiben

Discrete Inputs

Einzelne Bits

Lesen

Input Registers

16-Bit-Wörter

Lesen

Holding Registers

16-Bit-Wörter

Lesen und Schreiben

Funktionscodes legen Vorgänge wie das Lesen von Coils oder Registern und das Schreiben von Werten fest. Ein Gerät muss nicht jeden Funktionscode unterstützen. Sein Handbuch enthält die gerätespezifische Registertabelle: unterstützte Funktionen, Bedeutung der Adressen, Schreibrechte und Kodierung der Werte.

Auch ein 16-Bit-Register erklärt den technischen Wert nicht allein.

Eine größere Zahl kann mehrere Register belegen. Vorzeichen, Byte- und Wortreihenfolge, Skalierung und Einheit müssen aus dem Gerätehandbuch übernommen und zusammen mit der Registerreferenz dokumentiert werden.

Die Modbus Application Protocol Specification definiert Datenmodell und Funktionscodes, jedoch keine Registertabelle für ein bestimmtes Produkt.

Lese- und Schreibfunktionscodes unterscheiden

Die Modbus-Anwendungsspezifikation ordnet 0x01 und 0x02 dem Lesen von Coils und diskreten Eingängen zu, 0x03 und 0x04 dem Lesen von Holding- und Eingangsregistern. Schreiben nutzt andere Funktionen, darunter 0x05 für ein Coil, 0x06 für ein Register, 0x0F für mehrere Coils und 0x10 für mehrere Register. Ein Gerät kann nur einen Teil unterstützen. Wählen Sie den im Gerätehandbuch für den Datenpunkt angegebenen Code und prüfen Sie die Schreibberechtigung, bevor ein Client einen Schreibzugriff erhält.

Eine erfolgreiche Antwort zeigt, dass die Anfrage verarbeitet wurde, bestätigt aber nicht automatisch den angezeigten technischen Wert. Die vier Datengruppen beschreiben die Adressierung; Vorzeichen, Skalierung, Einheit und Wortreihenfolge bei Werten über mehrere Register sind gerätespezifisch. Lesen Sie zunächst einen bekannten, schreibgeschützten Wert. Bei einer Modbus-Exception prüfen Sie Funktion und Adresse, bevor Sie Verkabelung oder IP-Routen ändern.

Modbus drei Hauptversionen: RTU / ASCII / TCP

RTU, ASCII und TCP verwenden dasselbe Modbus-Anwendungsdatenmodell, unterscheiden sich jedoch in Nachrichtenrahmung und Verhalten der Verbindung. Wählen Sie die Variante, die von den konkreten Geräten und dem Integrationspfad unterstützt wird, statt einen bestimmten Marktanteil oder eine allgemeine Produktunterstützung anzunehmen.

Modbus RTU (Klassisch & Häufigst)

Betriebsumgebung: eine vom Gerät unterstützte serielle Verbindung. Der Serial Line Guide beschreibt RS-485-Schnittstellen; manche Geräte bieten zusätzlich RS-232 oder andere ausdrücklich dokumentierte serielle Schnittstellen. Halbduplex und differentieller Betrieb sind für zweiadriges RS-485 typisch, jedoch keine Eigenschaften jeder seriellen Schnittstelle.

Merkmale:

  • Binärübertragung: Adresse, Funktion und Daten sind Binärbytes. RTU-Rahmen sind durch mindestens 3,5 Zeichenzeiten getrennt; oberhalb von 19.200 bit/s empfiehlt der Serial Line Guide feste Timerwerte.

  • Fehlererkennung: Der RTU-Rahmen endet mit einer 16-Bit-CRC. Sie erkennt Übertragungsfehler; sie authentifiziert den Absender nicht und garantiert keine fehlerfreie Zustellung.

  • Serielle Einstellungen: Verwenden Sie die in den Handbüchern unterstützte Baudrate, Parität und Anzahl der Stoppbits. Alle kommunizierenden Geräte müssen übereinstimmen; nehmen Sie keinen universellen Standardwert an.

  • Reichweite und Buslast: Kabeltyp, Baudrate, Transceiver, Unit Loads, Abschluss und Topologie bestimmen das zulässige Segment. Die 247 seriellen Adressen garantieren keine Segmentkapazität der elektrischen Schnittstelle.

  • Vorteile: kompakte Rahmen und einfache Feldbusintegration, wenn die Geräte bereits dieselbe serielle Schnittstelle unterstützen.

  • Einschränkungen: Abfragen auf einem gemeinsam genutzten Bus und serielle Timing-Anforderungen begrenzen den Durchsatz; zur Diagnose können Frame-Mitschnitte und geeignete serielle Werkzeuge erforderlich sein.

Typische Topologie:

RS-485 trunk (termination at the two physical ends, as specified):
[Client] =======+==========+==========+======= [end]
               |          |          |
           [Server 1] [Server 2] [Server 3]

Keep device drops short and follow the equipment wiring guide.
Match documented signal polarity; A/B labels vary between vendors.

Anwendbar: Altsysteme, Fernüberwachung.

Modbus ASCII (Frühe Version)

Betriebsumgebung: eine unterstützte serielle Verbindung. Jedes Binärbyte in Adresse, Funktion und Daten wird durch zwei hexadezimale ASCII-Zeichen dargestellt (0–9 und A–F).

Merkmale:

  • Fehlererkennung: ASCII verwendet eine Längsparitätsprüfung (LRC) statt der RTU-CRC.

  • Rahmenbegrenzung: Ein Doppelpunkt beginnt den Rahmen, CR/LF beendet ihn.

  • Kodierungsaufwand: Zwei Zeichen stellen jedes kodierte Byte dar; für dieselbe Anwendungsnutzlast werden daher mehr Zeichen als bei RTU übertragen.

  • Inspektion: Der Strom hexadezimaler Zeichen lässt sich in einem seriellen Mitschnitt untersuchen; zur Interpretation der Daten wird weiterhin eine Geräte-Registerzuordnung benötigt.

  • Kompatibilität: Wählen Sie ASCII nur, wenn beide Endpunkte es ausdrücklich unterstützen und entsprechend konfiguriert sind.

Geeignet für: Wartung oder Integration von Geräten, die Modbus ASCII erfordern. Auch ein Lehr- oder Testaufbau kann es verwenden; die Unterstützung muss jedoch geprüft und darf nicht allein aus der Bezeichnung Modbus abgeleitet werden.

Modbus TCP (Ethernet-Version)

Betriebsumgebung: ein verbindungsorientiertes TCP/IP-Netzwerk. Modbus TCP verwendet üblicherweise Server-Port 502; bestätigen Sie den konfigurierten Port und die unterstützten Client-/Serverrollen.

  • MBAP-Header: sieben Byte mit Transaction Identifier, Protocol Identifier, Length und Unit Identifier.

  • Rahmung: Die Modbus-TCP-ADU enthält keine serielle RTU-CRC. Prüfungen und Wiederholungen des TCP-Transports sind von der Validierung auf Anwendungsebene getrennt.

  • Netzwerkdesign: Verbindungsgeschwindigkeit und Reichweite hängen von Ethernet oder anderen Netzwerkmedien und dem gesamten gerouteten Pfad ab; sie sind keine Modbus-Garantien für Durchsatz oder Latenz.

  • Gleichzeitige Verbindungen: Geräte können mehrere TCP-Clients unterstützen, doch Verbindungsgrenzen, Anfrageplanung und Transaktionsbehandlung hängen von der Implementierung ab. Eine UDP-basierte Variante ist nicht der hier beschriebene TCP-Transport.

  • Vorteile: lässt sich in bestehende IP-Netze integrieren und kann Leitsystem-Clients mit Gateways oder nativen TCP-Servern verbinden.

  • Sicherheit: Einfaches Modbus TCP bietet weder Benutzerauthentifizierung noch Verschlüsselung. Verwenden Sie einen geeigneten geschützten Netzwerkpfad und eine Zugriffspolitik; TLS lässt sich nicht auf einem Endpunkt aktivieren, der es nicht implementiert.

Ein Protokoll-Gateway kann zwischen unterstützten RTU- und TCP-Transaktionen übersetzen. Prüfen Sie Betriebsmodus, nachgelagerte Adressierung und Einschränkungen; ein Ethernet-Anschluss allein belegt keine Unterstützung der Protokollumsetzung.

RTU und ASCII sind serielle Nachrichtenformate. Modbus TCP transportiert die Anwendungsanfrage über TCP/IP und verwendet einen anderen Header. RS-485 ist eine häufige physikalische Schnittstelle für serielles Modbus, aber selbst kein Modbus-Nachrichtenformat.

Modbus RTU: Binärer serieller Rahmen mit Geräteadresse, Funktionscode, Daten und CRC; Serielle Schnittstelle, Geräteadresse, Baudrate, Parität, Stoppbits und Zeitvorgaben des Geräts

Modbus ASCII: Serieller Rahmen mit hexadezimalen Daten als ASCII-Zeichen, Startzeichen, LRC und Zeilenende; Ob das Gerät ASCII tatsächlich unterstützt und welche seriellen Einstellungen gelten

Modbus TCP: Anwendungsanfrage in einer TCP-Nachricht mit MBAP-Header; Server-IP, TCP-Port, Client-/Server-Rolle und gegebenenfalls Verwendung des Unit Identifier für ein nachgeschaltetes Gerät

Der Leitfaden für serielle Modbus-Leitungen beschreibt RTU- und ASCII-Rahmen. Der Modbus-TCP/IP-Leitfaden beschreibt den MBAP-Header. TCP-Port 502 ist verbreitet; maßgeblich ist der am Gerät konfigurierte Port.

Funktionscodes und Datenmodell können bei den Varianten gleich erscheinen, die Rahmen sind aber nicht austauschbar. Ein serieller Client kann einen RTU-Rahmen nicht einfach an einen TCP-Server senden. Dafür braucht es ein Gateway oder einen ausdrücklich vorgesehenen Betriebsmodus.

Vor der Nutzlast den Nachrichtenrahmen prüfen

Ein serieller RTU-Rahmen enthält Geräteadresse, Funktion und Daten, gefolgt von einer CRC. ASCII bildet Hexadezimaldaten als Zeichen ab, beginnt mit einer Startmarkierung und nutzt LRC sowie Zeilenende. Modbus TCP setzt die Anwendungsanfrage hinter einen MBAP-Header mit unter anderem Transaktionskennung, Protokollkennung, Länge und Unit Identifier. Der RTU-CRC wird nicht in den TCP-Rahmen übernommen. Die Unterscheidung bestimmt, welches Mitschnittwerkzeug und welcher Gateway-Modus passen.

Für serielle Verbindungen stimmen Port, Verdrahtung und Einstellungen beider Seiten überein: Geräteadresse, Baudrate, Parität, Stoppbits und gerätespezifisches Timing. Ein RS-485-Bus benötigt zudem eine zur Hardware passende Topologie und Terminierung. Bei TCP prüfen Sie Serveradresse und Port, Listener, Route und Firewall. Port 502 ist üblich; ein antwortender TCP-Socket beweist aber keinen vorhandenen Modbus-Datenpunkt.

Nachrichtenstruktur und Funktionscodes im Detail

Das "Herz" von Modbus ist sein Frame, Standardisierung gewährleistet Interoperabilität. Alle Versionen teilen sich die PDU (Anwendungsdaten), unterschiedliche Kapselung.

Modbus RTU Nachrichtenstruktur

Eine RTU-ADU enthält ein Adressbyte, die Anwendungs-PDU und zwei CRC-Bytes; sie umfasst höchstens 256 Byte. Die Datenlänge variiert je nach Funktion. Rahmen müssen durch mindestens 3,5 Zeichenzeiten getrennt sein. Oberhalb von 19.200 bit/s empfiehlt der Serial Line Guide eine feste Zwischenrahmenverzögerung von 1,750 ms; dieser Wert darf nicht als Berechnung der Zeichenzeit bei 9.600 bit/s dargestellt werden.

Feld

Byte

Bedeutung

Beispiel einer 0x03-Anfrage

Serveradresse

1

Serielles Ziel 1–247; 0 ist Broadcast für unterstützte Schreibvorgänge

01

Funktionscode

1

Operation auf Anwendungsebene; 0x03 liest Holding Register

03

Daten

Funktionsabhängig; höchstens 252

Diese Anfrage verwendet zwei Byte für die Startadresse und zwei Byte für die Menge

00 0A 00 01

CRC

2

RTU-Prüffeld; zuerst niederwertiges, dann höherwertiges Byte

<CRC low> <CRC high>

Beispielanfrage: Server 1, Funktion 0x03, nullbasierte Startadresse 10, Menge 1: 01 03 00 0A 00 01 <CRC low> <CRC high>. Eine beispielhafte normale Antwort mit dem vorzeichenlosen Wert 100 lautet 01 03 02 00 64 <CRC low> <CRC high>. Die CRC-Felder sind absichtlich Platzhalter; diese Zeichenfolgen sind daher keine vollständigen, direkt sendbaren Testframes.

Eine Ausnahmerückmeldung setzt das höchste Bit des angefragten Funktionscodes, zum Beispiel wird aus 0x03 der Code 0x83, und enthält einen Ausnahmecode. Häufige Beispiele sind 0x01 (Illegal Function), 0x02 (Illegal Data Address) und 0x03 (Illegal Data Value). Ein serieller Rahmen, der wegen eines Übertragungsfehlers verworfen wird, kann ganz ohne Antwort bleiben.

Modbus TCP Nachrichtenstruktur

Modbus TCP stellt der Anwendungs-PDU den sieben Byte langen MBAP-Header voran. Die Gesamtlänge hängt von Funktion und Antwort ab; eine normale 0x03-Anfrage für ein Register umfasst 12 Byte, die normale Antwort 11 Byte. 12 Byte sind kein allgemeingültiger Mindestwert.

Feld

Byte

Bedeutung

Transaction Identifier

2

Ordnet auf der Verbindung eine Antwort einer Anfrage zu

Protocol Identifier

2

0x0000 kennzeichnet das Modbus-Protokoll

Length

2

Anzahl der nachfolgenden Byte: Unit Identifier plus PDU

Unit Identifier

1

Kann über ein Gateway ein nachgelagertes serielles Gerät auswählen; beachten Sie das Gerätehandbuch

PDU

Bis zu 253

Funktionscode plus funktionsspezifische Anfrage-, normale Antwort- oder Ausnahmedaten

Bei derselben Anwendungsanfrage überträgt TCP Funktionscode und Daten nach dem MBAP-Header, statt die RTU-Adress-/CRC-Rahmung hinzuzufügen. Da TCP ein Bytestrom ist, entspricht ein Netzwerkpaket nicht garantiert genau einer Modbus-ADU; der Empfänger ermittelt die Nachrichtengrenze anhand der MBAP-Längenangabe.

Wichtige Funktionscodes (Wichtigstes Wissen)

Funktionscodes kennzeichnen Operationen. Die Spezifikation unterscheidet öffentliche, benutzerdefinierte und reservierte Bereiche für Funktionscodes. Das höchste Bit wird in Ausnahmerückmeldungen verwendet; die Codes 128–255 bilden keinen allgemeinen Bereich für private Funktionen. In der folgenden Tabelle zählen die Längen nur die funktionsspezifischen Daten nach dem ein Byte langen Funktionscode; RTU- oder MBAP-Rahmung ist nicht enthalten. N bezeichnet die angeforderte Anzahl von Bits oder Registern; ceil(N/8) ist die Zahl der Byte, die N Bits aufnehmen.

Dezimal

Hex

Funktion

Daten / Operation

Anfragedaten in Byte

Daten einer normalen Antwort in Byte

Beispielanwendung

1

0x01

Read Coils

Bitwerte lesen

4

1 + ceil(N/8)

Dokumentierte Coil-Zustände lesen

2

0x02

Read Discrete Inputs

Eingangs-Bitwerte lesen

4

1 + ceil(N/8)

Dokumentierten Eingangsstatus lesen

3

0x03

Read Holding Registers

16-Bit-Registerwörter lesen

4

1 + 2N

Einen dokumentierten Messwert lesen

4

0x04

Read Input Registers

Input-Registerwörter lesen

4

1 + 2N

Einen dokumentierten Eingangswert lesen

5

0x05

Write Single Coil

0xFF00 = EIN; 0x0000 = AUS

4

4 (Echo)

Einen genehmigten Steuerpunkt schreiben

6

0x06

Write Single Register

Ein 16-Bit-Wert

4

4 (Echo)

Einen genehmigten Sollwert schreiben

15

0x0F

Write Multiple Coils

Gepackte Bitwerte

5 + ceil(N/8)

4

Einen genehmigten Coil-Bereich schreiben

16

0x10

Write Multiple Registers

Mehrere 16-Bit-Wörter

5 + 2N

4

Einen genehmigten Registerbereich schreiben

17

0x11

Report Server ID

Servertyp, Betriebsanzeige und gerätespezifische Daten (seriell)

0

Variabel

Servertyp und Betriebsstatus lesen

43 / 14

0x2B / 0x0E

Read Device Identification

MEI-Typ, Read Code und Object Identifier

3

Variabel

Unterstützte Identifizierungsobjekte auslesen

Die funktionsspezifischen Grenzen unterscheiden sich: 0x01/0x02 können bis zu 2.000 Bits lesen; 0x03/0x04 bis zu 125 Register; 0x0F bis zu 1.968 Coils und 0x10 bis zu 123 Register schreiben. Geräte können niedrigere Grenzen festlegen. Der angeforderte Bereich muss vorhanden und die Operation unterstützt sein; siehe die jeweiligen Funktionsabschnitte und Exception Responses in der Anwendungsspezifikation.

Registeradress-Definitionstabelle (Wichtig)

Bezeichnungen wie 00001, 10001, 30001 und 40001 sind konventionelle Labels für getrennte Datengruppen. Das Gruppenpräfix wird nicht als Teil der PDU-Adresse übertragen. Eine Anfrage enthält innerhalb der ausgewählten Gruppe eine nullbasierte 16-Bit-Adresse; ein Clienttool kann den Benutzer jedoch nach einem Label, einer einsbasierten Nummer oder einem Offset fragen. Bestätigen Sie vor der Eingabe die Angaben im Handbuch und die Konvention des Clients.

Konventionelles Label

Datengruppe

Lese-Funktion

Typischer Zugriff

Erster Punkt in konventioneller Notation

Übertragene Adresse

0xxxx

Coils

0x01

Bit lesen/schreiben, sofern unterstützt

00001

0x0000

1xxxx

Discrete Inputs

0x02

Bit nur lesen

10001

0x0000

3xxxx

Input Registers

0x04

16-Bit-Wort nur lesen

30001

0x0000

4xxxx

Holding Registers

0x03

16-Bit-Wort lesen/schreiben, sofern unterstützt

40001

0x0000

Die Beispiele für den jeweils ersten Punkt setzen die in der Tabelle gezeigten konventionellen einsbasierten Labels voraus; sie sind keine universellen Gerätezuordnungen. Ein Temperaturwert kann an einem beliebigen dokumentierten Punkt liegen. Ein 32-Bit-FLOAT belegt im Allgemeinen zwei aufeinanderfolgende 16-Bit-Register; ein Client muss seine IEEE-754-Darstellung anhand der dokumentierten Byte- und Wortreihenfolge des Geräts dekodieren. Modbus überträgt das höherwertige Byte eines 16-Bit-Registers zuerst; Bedeutung und Reihenfolge von Werten über mehrere Register hinweg sind gerätespezifisch.

Handbücher und Engineering-Programme zeigen oft Referenzen wie 00001, 10001, 30001 und 40001. Solche Bezeichnungen kennzeichnen häufig Datengruppe und eine für Menschen lesbare Registernummer. Die Modbus-Anfrage enthält dagegen ein numerisches Adressfeld. Beide Angaben sind nicht automatisch identisch.

40001 bezeichnet häufig das erste Holding Register, dessen Anfrageadresse oft null ist. Das ist eine verbreitete Konvention, aber keine Regel für jedes Handbuch und jeden Treiber. Manche Programme erwarten die Referenznummer, andere einen nullbasierten Offset oder eine einsbasierte Adresse.

Vor dem ersten Leseversuch festhalten:

  • Datengruppe: Coil, Discrete Input, Input Register oder Holding Register.

  • Den vom Gerät benötigten Funktionscode.

  • Die genaue Registerbezeichnung im Gerätehandbuch.

  • Adresse oder Offset, den die Client-Software erwartet.

  • Datentyp, Vorzeichen, Byte- und Wortreihenfolge, Skalierung und Einheit.

Nicht pauschal von jeder Nummer eins abziehen. Zuerst das Beispiel im Gerätehandbuch mit der Adresskonvention des Clients oder Gateways abgleichen, dann einen bekannten schreibgeschützten Wert lesen. Adressfeld und Funktionscodes sind in der Modbus-Spezifikation definiert.

Ein Registerbeispiel vollständig durchgehen

Angenommen, ein Handbuch bezeichnet einen Temperaturwert als Holding-Register 40001 und gibt 0,1 Einheit pro Zählschritt an. Viele Clients würden für das erste Holding-Register Funktion 0x03 mit Anfrageadresse null senden; andere Werkzeuge verlangen die angezeigte Referenz. Notieren Sie Handbuchbezeichnung und tatsächlich gesendete Adresse. Ein Rohwert 253 bedeutet nur dann 25,3 Einheiten, wenn das Handbuch Skalierung und angenommenen Zahlentyp bestätigt. Das ist ein Beispiel, keine allgemeine Gerätemap.

Bei 32-Bit-Werten über zwei 16-Bit-Register muss die Gerätebeschreibung außerdem Byte- und Wortreihenfolge festlegen. Eine plausible, aber falsche Zahl ist häufig ein Darstellungsproblem statt eines Netzwerkfehlers. Prüfen Sie Adresskonvention und Kodierung an einem schreibgeschützten Wert, der unabhängig gemessen werden kann, bevor Sie eine größere Registerliste auswerten.

Vergleichen Sie den Handbuchverweis, den Funktionscode und die tatsächlich übertragene Adresse gemeinsam; 40001 ist keine universelle Eingabe für Clienttools.

Technische Unterschiede zwischen Modbus RTU und TCP

Wählen Sie RTU oder TCP anhand der vorhandenen Geräteschnittstellen, Verdrahtung, Abfragelast, Netzwerkauslegung und Schutzanforderungen. Der folgende Vergleich beschreibt technische Aspekte, keine gemessene Benchmark von 2025 oder garantierten Leistungsgrenzen:

Aspekt

Modbus RTU

Modbus TCP

Auswahl / Validierung

Zugrunde liegende Verbindung

Unterstützte serielle Schnittstelle, häufig RS-485

TCP/IP, häufig über Ethernet

Prüfen Sie Geräteschnittstelle und Gateway-Modus.

Reichweite

Hängt von Kabel, Baudrate, Transceivern und Topologie ab

Hängt von Netzwerkmedien und geroutetem Pfad ab

Gerätespezifikationen verwenden; keine universelle Ende-zu-Ende-Reichweite.

Durchsatz

Serielle Rate plus Rahmenabstände und Abfrageaufwand

Netzwerk- und Serververarbeitung plus Anfrageplanung

Messen Sie den vollständigen Abfragezyklus unter erwarteter Last.

Störungen / Isolation

Verdrahtung, Erdung, Isolation und Abschluss sind relevant

Medien, Isolation, Schirmung und Installation sind relevant

Keine der Rahmenvarianten garantiert Störfestigkeit.

Anzahl der Geräte

Adressen 1–247; elektrische Segmentkapazität kann geringer sein

Begrenzt durch Verbindungen, Serverressourcen und Netzwerkauslegung

Prüfen Sie elektrische Last und Anwendungsgrenzen.

Konfiguration

Serielle Einstellungen, Verdrahtung, Adresse und Registerzuordnung

IP, Port, Rollen, Unit Identifier und Registerzuordnung

Ein erfolgreicher Ping oder offener Port ist kein Anwendungstest.

Energie / Kosten

Abhängig von Implementierung und Hardware

Abhängig von Implementierung und Hardware

Vergleichen Sie konkrete Gerätespezifikationen und Projektkosten.

Sicherheit

Keine native Benutzerauthentifizierung oder Verschlüsselung bei einfachem RTU

Keine native Benutzerauthentifizierung oder Verschlüsselung bei einfachem TCP

Verwenden Sie eine geschützte Architektur; prüfen Sie jede zusätzliche Sicherheitsimplementierung.

Antwortzeit

Geräteverarbeitung, serielle Rate, Abfragen und Wiederholungen

Geräteverarbeitung, Last, Netzwerklatenz und Parallelität

Keines der Verfahren garantiert harte Echtzeit.

Praktische Anwendungsszenarien in der Industrie

Modbus wird in vielen industriellen Umgebungen zur Datenerfassung und überwachten Steuerung eingesetzt. Die folgenden Beispiele zeigen mögliche Anwendungsmuster, keine verifizierten Kundeneinsätze oder allgemein gültigen Registerzuordnungen von Herstellern. Jede Adresse, Skalierung und zulässige Schreiboperation muss dem Handbuch des konkreten Geräts entnommen werden.

Energiewirtschaft

  • Zähler und Schaltanlagen: dokumentierte Spannungs-, Strom-, Energie- oder Statuspunkte über die unterstützten Lesefunktionen auslesen.

  • Schutz- und Steuergeräte: unterstützte Diagnosedaten erfassen; ein Reset oder ein anderer Schreibvorgang erfordert die dokumentierte Operation und die Freigabe des Prozessverantwortlichen.

  • Umgebungsüberwachung: dokumentierte Gas- oder Schaltschrankmesswerte und Alarmstatus auslesen. Eine Bezeichnung der Datengruppe allein definiert keinen Messwert.

Umwelt- und Wasserwirtschaft

  • Pumpen und Füllstandsmessgeräte: Füllstand und Betriebsstatus erfassen; Schreibzugriffe auf Drehzahl oder Steuerung hängen von der dokumentierten Schreibzuordnung des Geräts ab.

  • Druck- und Durchflussmessumformer: genaues Modell, Registeradresse, Datentyp, Skalierung und Einheit bestätigen. Eine allgemeine Druckzuordnung zu 40001 gilt nicht für alle Messumformer.

  • Ein möglicher Einsatz nutzt ein fachgerecht ausgelegtes RS-485-Segment und ein Protokoll-Gateway für einen SCADA-Client. Segmentkapazität und Umsetzungsfunktionen müssen für den konkreten Einsatz geprüft werden.

Erdöl-/Petrochemie

  • Prozessmessgeräte: unterstützte Messwerte über mehrere Register mit der dokumentierten FLOAT- oder Integer-Interpretation und Wortreihenfolge auslesen.

  • Leitsystemintegration: Ein Modbus-TCP-Server oder RTU/TCP-Gateway kann ausgewählte Punkte einem DCS- oder Leitsystem-Client bereitstellen, wenn Funktionen und Leistung überprüft wurden.

  • Steuerparameter: Massen-Schreibvorgänge wie 0x10 müssen einen genehmigten, dokumentierten Bereich und die erwartete Wirkung verwenden; das Prozessergebnis ist nach einem vereinbarten Verfahren zu prüfen.

Fabrikautomation

  • Gerätedatenerfassung: dokumentierte Zählerstände, Statuswerte und Messwerte von Steuerungen erfassen, die Modbus unterstützen, oder über ein geprüftes Schnittstellen-Gateway.

  • Die Integration in ein anderes industrielles Netzwerk erfordert eine Anwendung oder ein Gateway, das beide Protokolle implementiert und eine konfigurierte Zuordnung bereitstellt. Sie darf nicht aus einem gewöhnlichen Router oder einem ungeprüften Fabrikbeispiel abgeleitet werden.

Photovoltaik/Erneuerbare Energien

  • Wechselrichter und Generatoranschlusskästen: dokumentierte Betriebswerte und Alarme über die Modbus-Zuordnung des genauen Modells erfassen.

  • Umweltmessgeräte: Einstrahlungs-, Wetter- oder Alarmwerte anhand des Sensorhandbuchs zuordnen, statt eine allgemeine Registerzuweisung anzunehmen.

  • Eine mögliche Solarstandort-Architektur kombiniert lokale serielle Erfassung mit einem IP-verbundenen Gateway und einer Leitebene. Link-Budget, Aktualisierungsintervalle und unterstützte Cloud-Veröffentlichung müssen projektspezifisch geprüft werden.

Typische Bereitstellung von Modbus in Industriegateways/-routern

Ein Modbus-fähiges Industrie-Gateway kann serielle Feldgeräte mit einem IP-Leitsystem verbinden oder ausgewählte Register für eine andere Anwendung erfassen. Der Nutzen hängt von den Funktionen ab, die das genaue Modell und die Firmware implementieren. RTU/TCP-Umsetzung, transparenter serieller Transport, IP-Routing und MQTT-Veröffentlichung sind getrennte Funktionen mit jeweils eigenen Konfigurations- und Validierungsanforderungen.

Typische Architektur

[Serial field devices] -- RTU / RS-485 -- [RTU/TCP protocol gateway] -- Modbus TCP -- [Client]

Optional, only if supported and configured:
[Polling / data application] -- mapped MQTT data --> [Broker / cloud]
[Polling / data application] -- mapped OPC UA data --> [Supervisory system]
  • Protokollumsetzung: Ein RTU/TCP-Gateway ordnet TCP-Transaktionen und Unit Identifier dem seriellen Bus zu. Transparenter Serial-over-IP-Transport ist ein anderer Betriebsmodus.

  • IP-Routing: leitet IP-Verkehr zwischen Netzen weiter; es liest nicht von selbst Register aus und setzt RTU nicht in TCP um. Prüfen Sie Modbus-Filterung oder VPN-Funktionen anhand der Dokumentation des genauen Produkts.

  • Datenerfassung und Edge-Logik: Eine unterstützte Anwendung kann Register abfragen, Einheiten interpretieren, Daten veröffentlichen oder eine Alarmregel auswerten. Skriptsprachen, MQTT-Nutzdaten und unterstützte Operationen hängen vom Produkt ab.

Ein IP-Router leitet IP-Verkehr zwischen Netzschnittstellen weiter. Daraus folgt nicht, dass er Modbus-Register liest oder serielle RTU-Rahmen in Modbus-TCP-Anfragen umwandelt. Die Umsetzung findet auf Anwendungsebene statt und erfordert ein dafür ausgelegtes Gateway oder einen entsprechenden Gerätemodus. RFC 1812 beschreibt die Weiterleitungsaufgaben eines IPv4-Routers.

Das ist wichtig, wenn eine SPS seriell angeschlossen ist, der Monitoring-Client aber im IP-Netz sitzt. Ein Serial Device Server kann serielle Bytes über eine IP-Verbindung transportieren und das serielle Protokoll dabei unverändert lassen. Ein Protokoll-Gateway beendet dagegen eine Modbus-Variante und erzeugt Anfragen der anderen Variante.

Prüfen Sie den tatsächlichen Betriebsmodus, wo die Abfrage stattfindet und wie Gerätekennungen und Registerreferenzen zugeordnet werden. Aus „Industrierouter“ oder „Modbus-kompatibel“ allein lassen sich weder eine serielle Schnittstelle noch eine Umsetzungsfunktion ableiten. Entscheidend sind das konkrete Modell und seine Firmware-Dokumentation.

Die Gateway-Rolle zwischen seriell und IP festlegen

Ein serieller Server kann serielle Bytes über IP transportieren, ohne RTU-Anfragen in Modbus TCP umzusetzen. Ein Protokoll-Gateway beendet eine Seite und erzeugt Nachrichten für die andere. Seine Konfiguration muss Client-/Server-Rollen, nachgeschaltete Gerätekennung, Zeitüberschreitungen und Adresskonventionen zuordnen. Der Unit Identifier in Modbus TCP kann hinter einem Gateway ein serielles Gerät auswählen; seine Bedeutung bei einem direkten TCP-Server hängt vom Gerät ab. Maßgeblich ist der genaue Gerätemodus im Handbuch.

Liegt der Polling-Client im Zentralnetz, verfolgen Sie Client, IP-Route und Firewall, Gateway-Listener, seriellen Bus, Zielgerät und Rückantwort. Halten Sie fest, wo Polling stattfindet und wer Wiederholungen und Timeouts steuert. Die Verbindung kann aktiv sein, obwohl das Gateway eine falsche serielle Adresse oder einen ungeeigneten Registeroffset nutzt. Weder Ethernet-Port noch die Aufschrift „Modbus-kompatibel“ belegen eine Protokollumsetzung.

IP-Routing, transparenter serieller Transport und RTU/TCP-Protokollumsetzung sind getrennte Funktionen. Prüfen Sie den genauen Gateway-Modus.

Bereitstellungsschritte Überblick

  1. Wählen Sie die Hardware nach den tatsächlichen seriellen Schnittstellen, Ethernet-Anforderungen, Umgebungsbedingungen, Montage- und Stromversorgungsanforderungen aus; Anzahl der seriellen Ports und Schutzart sind modellspezifisch.

  2. Wählen Sie den richtigen Betriebsmodus und dokumentieren Sie Client-/Serverrollen, serielle Adressen, TCP-Unit-Identifier, Registerzuordnungen, Zeitüberschreitungen und Aktualisierungsintervalle.

  3. Stellen Sie einen geeigneten geschützten Netzwerkpfad und eine Zugriffspolitik bereit. Einfaches Modbus ist keine AES-Sicherheitserweiterung; verwenden Sie Sicherheitsfunktionen nur, wenn sie von allen erforderlichen Endpunkten implementiert und korrekt konfiguriert sind.

  4. Aktivieren Sie unterstützte Diagnoseprotokolle und Überwachung und prüfen Sie zunächst eine dokumentierte schreibgeschützte Transaktion, bevor Sie die Abfrageliste erweitern.

Dokumentieren Sie bei einem entfernten Feldeinsatz, welches Gerät die seriellen Messgeräte abfragt, welches System die Werte empfängt und wie der Rückweg geschützt wird. Ein Einsatzergebnis oder eine Wartungskosteneinsparung darf nur behauptet werden, wenn Messungen des jeweiligen Projekts dies belegen; diese beispielhafte Architektur behauptet keine solche Einsparung.

Vor der Konfiguration genügt zunächst eine Seite mit Geräten und den benötigten Datenpunkten:

Eintrag

Dokumentieren

Endpunkt

Gerätemodell, Firmware und Client- oder Server-Rolle

Variante

RTU, ASCII oder TCP

Verbindung

Serielle Parameter und Geräteadresse oder IP-Adresse und konfigurierter TCP-Port

Datenpunkt

Datengruppe, Funktionscode, Handbuchreferenz und Client-Adresse/-Offset

Interpretation

Datentyp, Vorzeichen, Byte-/Wortreihenfolge, Skalierung und Einheit

Zugriff

Schreibgeschützt oder beschreibbar laut Gerätehandbuch

Konfigurationsablauf (sehr detailliert)

Die Konfiguration beginnt mit den Handbüchern von Gerät und Client. Halten Sie vor dem Test die unterstützte Variante, elektrische Schnittstelle, seriellen oder IP-Einstellungen, Konvention für die Anfrageadresse und Dateninterpretation fest. Ein Simulator kann bei der Validierung einer Clientkonfiguration helfen; eine erfolgreiche Simulation beweist jedoch nicht, dass ein reales Gerät dieselbe Zuordnung oder dasselbe Verhalten hat.

Konfiguration Modbus RTU (RS485)

Schritt 1: Kommunikationsparameter bestimmen

Übernehmen Sie die folgenden Parameter aus dem Handbuch des genauen Servers und seinen konfigurierten Einstellungen. Die Werte unten sind Beispiele und keine universellen Standardwerte:

Parameter

Beispieleinstellung

Zu prüfen

Baudrate

9.600 bit/s

Die Rate wird unterstützt und stimmt bei den kommunizierenden Geräten überein.

Datenbits

8 bei RTU

RTU verwendet acht Datenbits pro Zeichen.

Parität

Gerade (Even)

Der Serial Line Guide nennt gerade Parität als Standard; Endpunkte können weitere konfigurierte Modi unterstützen.

Stoppbits

1 mit gerader/ungerader Parität; 2 ohne Parität

Der Modus ohne Parität im Serial Line Guide fügt ein Stoppbit hinzu. Wenn ein Gerät 8N1 dokumentiert, folgen Sie seiner unterstützten Implementierung und konfigurieren Sie beide Enden einheitlich.

Serveradresse

1–247; Beispiel 1

Verwenden Sie die konfigurierte eindeutige Adresse und keinen angenommenen Werksstandard.

Verwenden Sie einen seriellen Mitschnitt oder die Diagnoseoberfläche des Geräts, um die tatsächliche Rahmung und Antworten zu prüfen. Ein allgemeines Terminalprogramm ist nur dann hilfreich, wenn es das benötigte serielle Byteformat und Timing senden und anzeigen kann.

Schritt 2: Verkabelung & Hardware

  • Gleichen Sie Signalpolarität und Bezugspotential anhand der Handbücher beider Geräte ab. Die Bezeichnungen A/B sind herstellerübergreifend nicht einheitlich; behandeln Sie A+ und B− nicht als universelle Kennzeichnungen.

  • Verwenden Sie eine Bus-/Stammleitungstopologie mit kurzen Abzweigungen und Abschlüssen an den beiden physischen Enden, wie für Kabel und Geräte erforderlich. Legen Sie Biasing, Schirmung und Erdung gemäß Installationsdesign fest.

  • Prüfen Sie zuerst Durchgang, Kurzschlüsse, Versorgung und dokumentierte Isolation. Bewerten Sie die Signalqualität mit geeigneten Messgeräten; ein einzelner Grenzwert für die Leerlaufspannung validiert keine vollständige RS-485-Installation.

Schritt 3: Registertabelle eingeben

Erstellen Sie anhand der Herstellerdokumentation eine Projektzuordnung. Die folgenden erfundenen Punkte veranschaulichen die zu dokumentierenden Felder; sie sind keine verwendbare Zuordnung für ein genanntes Produkt:

Punkt

Handbuchreferenz

Anfrageadresse / Funktion

Typ / Wörter

Skalierung

Einheit

Temperatur

40001

0 / 0x03, wenn der Client nullbasierte Offsets verwendet

UINT16 / 1

Rohwert ÷ 10

°C

Luftfeuchtigkeit

40002

1 / 0x03, nach derselben Konvention

UINT16 / 1

Rohwert ÷ 10

% rF

Status

00001

0 / 0x01, nach derselben Konvention

Coil / 1 Bit

Dokumentierte Bitbedeutung

—

Schritt 4: Polling im Master konfigurieren

  • Wählen Sie einen SPS- oder Gateway-Client, der die benötigte Modbus-Variante unterstützt, und lesen Sie die Dokumentation des konkreten Funktionsbausteins oder der Anwendung.

  • Nur für die beispielhafte Zuordnung: serieller Server 1, Funktion 0x03, nullbasierte Startadresse 0, Menge 2. Wählen Sie ein anfängliches Intervall wie 1 s nur, wenn Geräteverarbeitungszeit und Buslast es zulassen.

  • Die allgemeine Anfrage unten zeigt die erforderlichen Konzepte; sie ist Pseudocode und weder ein Siemens-Funktionsbaustein-Aufruf noch eine validierte API einer Softwarebibliothek.

request = {
    variant: "RTU",
    server_address: 1,
    function_code: 0x03,
    start_address: 0,   // only for the illustrative map
    quantity: 2
}
response = modbus_client.read(request)
verify_normal_response(response, expected_registers=2)

Schritt 5: Datentypen interpretieren

  • Beispiel für Skalierung: Der Rohwert 256 bedeutet nur dann 25,6 °C, wenn die dokumentierte Skalierung Rohwert ÷ 10 lautet.

  • Werte über mehrere Register: Stellen Sie die dokumentierte Bytefolge wieder her und dekodieren Sie den angegebenen Datentyp. Eine Bitverschiebung mit ODER-Verknüpfung erzeugt ein Integer-Bitmuster, aber für sich genommen keine FLOAT-Umwandlung.

  • Der folgende schreibgeschützte Pseudocode vermeidet die Annahme einer bestimmten Bibliotheksversion. Produktivcode muss Verbindungsfehler, Ausnahmen, Antwortlänge und Freigabe von Ressourcen behandeln.

Beispielhafter Pseudocode:

response = serial_client.read_holding_registers(
    server_address=1, start_address=0, quantity=1
)
if response.is_normal and len(response.registers) == 1:
    temperature_c = response.registers[0] / 10.0  # illustrative scale
else:
    record_error(response)

Konfiguration Modbus TCP

Eine erfolgreiche TCP-Verbindung zu Port 502 belegt weder eine gültige Modbus-Transaktion noch einen korrekt interpretierten Messwert.

Schritt 1: Slave-IP bestätigen

  • Bestätigen Sie die konfigurierte IP-Adresse und Subnetzmaske des Servers, zum Beispiel 192.168.1.10/24. Ein Standard-Gateway wird für Verkehr außerhalb des Subnetzes benötigt und muss zur tatsächlichen Netzwerkauslegung passen.

  • Bestätigen Sie den konfigurierten Modbus-TCP-Listener und erlauben Sie nur den vorgesehenen Clientpfad durch die Firewall; Port 502 ist üblich.

  • Ein Ping- oder TCP-Verbindungstest prüft nur einen Teil des Pfads. Senden Sie eine dokumentierte schreibgeschützte Modbus-Anfrage, um die Anwendung zu verifizieren.

Schritt 2: Verbindungsparameter setzen

  • Legen Sie Zeitüberschreitungen, Wiederholungen, Abfrageintervalle und zulässige Verbindungszahlen innerhalb der Client- und Servergrenzen fest und validieren Sie sie unter erwarteter Last.

  • TCP-Keep-Alive kann helfen, eine ausgefallene Verbindung zu erkennen, bietet aber keine Anwendungsauthentifizierung. Einfaches Modbus TCP erhält nicht dadurch TLS, dass eine allgemeine Clientoption gesetzt wird; verwenden Sie einen unterstützten sicheren Endpunkt oder einen geschützten Netzwerkpfad.

Schritt 3: Registerlesen konfigurieren

Verwenden Sie dieselbe dokumentierte Funktion und Registerinterpretation wie beim Server, soweit passend; konfigurieren Sie außerdem dessen TCP-Endpunkt und den vom Endpunkt oder Gateway benötigten Unit Identifier. Dies ist konzeptioneller Pseudocode und keine Python-API für eine bestimmte Version:

Beispielhafter Pseudocode:

client = tcp_modbus_client(host="192.168.1.10", port=502)
response = client.read_holding_registers(
    unit_identifier=1, start_address=0, quantity=1
)
verify_normal_response(response, expected_registers=1)
client.close()
# Address 0 and Unit Identifier 1 are illustrative, not universal settings.

Beispiel: Konfigurationsfallbeispiel für Modbus RTU/TCP vor Ort in der Automatisierungstechnik

Beispielszenario: Eine Wasseraufbereitungsanlage erfasst Temperatur- und pH-Messwerte von einem seriellen Gerät und stellt die zugeordneten Werte einer autorisierten MQTT-Anwendung bereit. Ein optionaler Modbus-TCP-Pfad bedient einen Leitsystem-Client. Ziel ist die Validierung der gesamten Erfassungs- und Interpretationskette; es handelt sich nicht um einen gemessenen Kundeneinsatz.

Geräte:

  • Feldgerät: ein Messgerät, für das die Unterstützung der benötigten Modbus-RTU-Punkte dokumentiert ist; beispielhaft Adresse 5, 9.600 bit/s, 8E1. Prüfen Sie tatsächliche Schnittstelle und Einstellungen anhand des Handbuchs.

  • Gateway oder Edge-Controller: unterstützt ausdrücklich RTU-Abfragen, die erforderliche Dateninterpretation und MQTT-Veröffentlichung; optionale RTU/TCP-Umsetzung oder ein TCP-Server müssen separat geprüft werden.

  • Anwendungsendpunkt: ein autorisierter MQTT-Broker und Subscriber mit für den Einsatz geeigneter Netzanbindung und Transportabsicherung.

Detaillierter Ablauf:

  1. Verbinden Sie das Feldgerät mit den dokumentierten seriellen Anschlüssen des Gateways und dessen Ethernet-Schnittstelle mit dem vorgesehenen Netz. Beachten Sie Polarität, Abschluss, Bezugspotential und Isolationsanforderungen.

  2. Konfigurieren Sie den seriellen Port passend zum Gerät; verwenden Sie 9.600 bit/s, 8E1 und Serveradresse 5 nur dann als Beispiel, wenn das Handbuch diese Einstellungen zulässt.

  3. Richten Sie eine schreibgeschützte Abfrageaufgabe für die dokumentierte Registerzuordnung ein. Für eine beispielhafte nullbasierte Zuordnung lesen Funktion 0x03, Startadresse 0 und Menge 2 die Temperatur- und pH-Wörter aus. Bestätigen Sie die tatsächliche Zuordnung und das unterstützte Intervall, bevor Sie einen Zeitplan von 5 s verwenden.

  4. Dekodieren Sie die beispielhaften UINT16-Werte mit dokumentierter Skalierung: Temperatur = erstes Wort ÷ 10 und pH = zweites Wort ÷ 100. Prüfen Sie einen bekannten physikalischen Wert unabhängig.

  5. Konfigurieren Sie Broker, Zugangsdaten, Transport und Topic in der Anwendung, die MQTT tatsächlich unterstützt. Ordnen Sie Messwerte mit Namen und, sofern verfügbar, einem gültigen Erfassungszeitstempel einer Nutzlast zu; nehmen Sie nicht an, dass jedes RTU/TCP-Gateway MQTT veröffentlicht.

  6. Falls erforderlich und unterstützt, richten Sie die separate Modbus-TCP-Freigabe mit dokumentiertem Unit Identifier und Registerzuordnung ein. Beschränken Sie den Zugriff und validieren Sie das schreibgeschützte Verhalten vor genehmigten Schreibvorgängen.

  7. Testen Sie serielle Antworten, zugeordnete Werte, MQTT-Zustellung und die Interpretation durch den Subscriber. Bewerten Sie beobachtete Zeitüberschreitungen und Übertragungsfehler anhand der Projekt-Abnahmekriterien statt eines erfundenen universellen Fehlerquotenziels.

Ausgabebeispiel (MQTT-Nachricht):

Beispielhafte JSON-Nutzlast:

{
  "device": "PH001",
  "temperature_c": 23.6,
  "ph": 7.12,
  "status": "OK"
}

Häufige Fehler und Lösungsansätze

Gehen Sie bei der Fehlersuche vom beobachteten Ergebnis und nicht von angenommenen Fehlerwahrscheinlichkeiten aus. Die Tabelle trennt Pfadfehler, Übertragungsfehler, Ausnahmen auf Anwendungsebene und die Interpretation von Werten. Halten Sie nach Möglichkeit die genaue Anfrage, Antwort und Gerätekonfiguration fest:

Symptom

Mögliche Ursachen

Prüfung / Maßnahme

Hilfreiche Nachweise

Keine Antwort / Zeitüberschreitung

Falscher Endpunkt oder serielle Adresse; Verdrahtung, serielle Einstellungen, Listener, Route oder Firewall

Prüfen Sie den relevanten Pfad und die dokumentierten Einstellungen. Prüfen Sie bei RS-485 die Polarität anhand der Handbücher, bevor Sie die Verdrahtung ändern.

Gerätediagnose, Anfrage-Mitschnitt, Netzwerk-/serieller Trace

CRC-/LRC-Fehler

Beschädigte oder gestörte serielle Verbindung, falsche Rahmung, Abschluss- oder Biasing-Problem

Prüfen Sie Baudrate, Parität, Stoppbits, Verkabelung, Topologie und Isolation. Verwenden Sie Abschluss und Erdung gemäß Geräteanforderung.

Serieller Mitschnitt, bei Bedarf Oszilloskop

Modbus-Ausnahme

Nicht unterstützte Funktion, nicht vorhandener Adressbereich oder ungültiger Anfragewert

Interpretieren Sie die Ausnahme und prüfen Sie Funktion, Bereich und Zugriffsrechte anhand des Handbuchs, bevor Sie das Netzwerk ändern.

Ausnahmecode, angefragte PDU, Geräte-Registerzuordnung

Falscher oder verschobener Wert

Adresskonvention, Vorzeichen, Skalierung, Einheiten oder Reihenfolge mehrerer Register

Lesen Sie einen bekannten Punkt aus; vergleichen Sie übertragene Adresse und dokumentierte Interpretation.

Rohwörter, Handbuch, unabhängig bekannter Messwert

Sporadischer Ausfall oder veralteter Wert

Last, Abfrage-/Wiederholungsverhalten, Stromversorgung, Anwendungscache oder Instabilität der physischen Verbindung

Zeitstempel und Fehler korrelieren, Aktualisierungsintervalle und Last prüfen und anschließend die fehlerhafte Stufe isolieren.

Gateway-Protokolle, Serverlast, Erfassungszeitstempel

Keine Broadcast-Antwort

Es wurde fälschlich eine Antwort für die serielle Adresse 0 erwartet

Unterstützte serielle Broadcast-Schreibvorgänge geben keine Antwort zurück; verwenden Sie Broadcast weder zum Lesen noch für erste Tests.

Spezifikation der seriellen Leitung und Gerätedokumentation

Erfassen Sie lokale rohe Anfragen und Antworten, sofern die Geräte dies unterstützen. Halten Sie Funktionscode, serielle Adresse oder Unit Identifier, Anfrageadresse, zurückgegebene Daten und relevantes Timing zusammen fest. Verwenden Sie vertrauenswürdige Diagnosewerkzeuge und die offiziellen Rahmendefinitionen; ein plausibel angezeigter Wert allein validiert die Transaktion nicht.

Beginnen Sie mit einem dokumentierten schreibgeschützten Punkt. Prüfen Sie Antwort und interpretierten Wert, bevor Sie weitere Punkte hinzufügen oder Schreibzugriffe zulassen. Trifft eine Antwort ein, aber der angezeigte Wert stimmt nicht, prüfen Sie zuerst Registerzuordnung und Datenformat, bevor Sie den Netzwerkpfad ändern.

Wenn ein SPS-, Antriebs- oder SCADA-Wert ausbleibt oder veraltet ist, hilft der separate Leitfaden zur PLC-/Modbus-Fehlersuche.

Nach beobachtetem Fehlerbild diagnostizieren

Bei keiner Antwort prüfen Sie Ziel, Listener, Route und Firewall für TCP oder Verdrahtung, serielle Einstellungen und Geräteadresse für RTU. Eine Exception bedeutet, dass ein Modbus-Endpunkt antwortete; kontrollieren Sie Funktion, Bereich und Zugriffsrecht. Ein falscher Wert verweist auf Adresskonvention, Vorzeichen, Skalierung oder Byte-/Wortreihenfolge. Ein veralteter Wert kann aus Polling-Intervall, Anwendungscache oder einem unveränderten Gerätewert stammen. Diese Fälle sollten getrennt bearbeitet werden.

Beginnen Sie die Inbetriebnahme mit einem dokumentierten schreibgeschützten Punkt und sichern Sie Anfrage und Antwort, falls die Hardware einen Mitschnitt erlaubt. Ergänzen Sie Punkte in kleinen Gruppen und bewahren Sie Registermap, Einheiten und getestete Client-Einstellungen auf. Schreibfunktionen erhalten erst nach Freigabe des Prozessverantwortlichen einen bekannten Zielpunkt und eine sichere Rückkehrmöglichkeit. Für Fernzugriff über nicht vertrauenswürdige Netze sind Transportschutz, Firewall und Benutzerberechtigung getrennt zu planen; einfaches Modbus liefert sie nicht.

Beginnen Sie mit einem dokumentierten schreibgeschützten Punkt. Prüfen Sie Antwort und Interpretation, bevor Sie die Abfrageliste erweitern oder einen genehmigten Schreibvorgang zulassen.

Zusammenfassung

Modbus wird seit seinem Ursprung 1979 weiter genutzt, weil es ein einfaches Anfrage-/Antwortdatenmodell bietet und von etablierter Industrieausrüstung unterstützt wird. Seine praktische Stärke ist kein allgemeiner Zuverlässigkeitsprozentsatz: Dokumentierte Punkte lassen sich austauschen, wenn Gerätezuordnung, Schnittstelle und Clientverhalten verstanden und geprüft sind.

Gateways können eine bestehende Modbus-Installation in eine IP-, Leitsystem- oder Cloud-Anwendung einbinden, wenn die erforderliche Umsetzung und Datenfunktion unterstützt werden. Schnellere Netze oder eine 5G-Verbindung verleihen Modbus weder eine garantierte Abfragezeit noch synchronisierte Zeitstempel oder TSN-Verhalten. Bewerten Sie für die Anwendung den vollständigen Erfassungspfad, die Interpretation und die Schutzanforderungen.

Verwenden Sie diesen Leitfaden zusammen mit den Anwendungs-, Serial-Line- und TCP/IP-Spezifikationen der Modbus Organization sowie den Handbüchern der konkreten Geräte. Beginnen Sie mit einem dokumentierten schreibgeschützten Punkt, prüfen Sie die tatsächliche Antwort und den technischen Messwert und erweitern Sie anschließend die Konfiguration. Eine klare Registerzuordnung und geprüfte Einstellungen sind hilfreicher als eine vermeintlich universelle Anleitung.

Häufige Fragen

Sind Modbus RTU und Modbus TCP dasselbe Protokoll?

Sie verwenden verwandte Modbus-Anwendungsdaten und Funktionscodes, unterscheiden sich aber in Rahmen und Übertragung. RTU verwendet einen seriellen Rahmen; Modbus TCP ergänzt einen MBAP-Header und läuft über TCP/IP.

Bedeutet Register 40001 immer Anfrageadresse null?

Nein. 40001 steht oft für das erste Holding Register, dessen Anfrageadresse häufig null ist. Handbücher, Treiber und Gateways können Adressen unterschiedlich darstellen oder erwarten. Die Konvention beider Enden muss geprüft werden.

Kann ein gewöhnlicher Industrierouter Modbus RTU in Modbus TCP umsetzen?

Nicht automatisch. IP-Routing und Modbus-Umsetzung sind unterschiedliche Funktionen. Das konkrete Gerät muss einen Gateway- oder Umsetzungsmodus bereitstellen; sein Handbuch muss die Zuordnung von seriellem Gerät und Registeranfragen erklären.

Welche Angaben werden für die Fehlersuche gebraucht?

Gerät und Firmware, RTU-/ASCII-/TCP-Modus, Client-/Server-Rollen, serielle oder IP-Einstellungen, Gerätekennung, Registertabelle, angefragter Funktionscode, Adresskonvention und Wertkodierung. Falls verfügbar, hilft ein kurzer Mitschnitt von Anfrage und Antwort.

Beweist eine Verbindung zu TCP-Port 502, dass Modbus bereit ist?

Nein. Sie zeigt nur einen erreichbaren TCP-Pfad und Listener. Senden Sie eine dokumentierte schreibgeschützte Modbus-Anfrage und prüfen Sie Funktion, gegebenenfalls Unit Identifier, Adresse und interpretierten Wert.

Was bedeutet eine Modbus-Exception?

Die Nachricht hat einen Modbus-Endpunkt erreicht. Prüfen Sie Exception, angefragte Funktion und Adressbereich, bevor Sie Routen ändern. Welche Funktionen und Datenpunkte vorhanden sind, bestimmt das Gerätehandbuch.

Darf ich bei der Inbetriebnahme mit einer Schreibfunktion testen?

Lesen Sie zuerst einen dokumentierten schreibgeschützten Punkt. Schreiben kann einen laufenden Prozess verändern und gehört nur zu einem vom Prozessverantwortlichen freigegebenen Test mit bekanntem Ziel, Ergebnisprüfung und sicherer Rückkehr.

Referenzen

MODBUS Application Protocol Specification V1.1b3 — Datenmodell, Adressierung, Formate der Funktionscodes, Mengenbegrenzungen und Ausnahmeantworten.

MODBUS over Serial Line Specification and Implementation Guide V1.02 — Serielle Adressierung, RTU-/ASCII-Rahmung, Timing, Parität, Stoppbits und physische Implementierung.

MODBUS Messaging on TCP/IP Implementation Guide V1.0b — MBAP-Header, TCP-Client/Server-Austausch und Gateway-Integration.

Aktuelle Beiträge

Alle ansehen
bottom of page