Modbus

Wichtige Punkte im Überblick

  • Modbus ist ein Kommunikationsprotokoll für Steuerungen (SPS), Datenlogger, usw., das auf einer Client/Server-Architektur basiert.
  • Als Verkabelungsmethoden stehen serielle RS‑232C/RS‑485 oder Ethernet-Verbindungen zur Verfügung.
  • Es gibt drei unterschiedliche Betriebsarten: ASCII, RTU oder TCP. Alle Teilnehmer im Netzwerk müssen die gleiche Betriebsart nutzen.
  • Die Datenadressierung funktioniert über verschiedene Funktionscodes: "Coils", "Discrete Inputs", "Input Register", "Holding Register".

Der folgende Abschnitt erklärt die Modbus-Kommunikation im Detail:

Übersicht

Modbus ist ein Kommunikationsprotokoll, das vom US-amerikanischen Unternehmen, Modicon Inc., speziell für die Kommunikation mit Steuerungen entwickelt wurde. Die öffentliche Verfügbarkeit der Spezifikation ermöglicht den umfassenden Einsatz des Kommunikationsprotokolls in verschiedenen Industrien und Anwendungen. Im Gegensatz zu anderen Kommunikationsstandards wird Modbus von keiner Organisation verwaltet. Daher ist es notwendig die Kommunikation, Verbindungsmöglichkeit und Kompatibilität der Geräte untereinander sicherzustellen, indem man dies durch Tests mit realer Hardware verifiziert.

Verkabelungsmethode und Kommunikationsprotokoll

Verkabelungsmethode

Modbus definiert ausschließlich das Kommunikationsprotokoll, nicht jedoch die Verkabelung. Wenn lediglich „Modbus“ angegeben ist, erfolgt die Verkabelung typischerweise über serielle Schnittstellen wie RS‑232C oder RS‑485. Für ethernetbasierte Kommunikation wird dagegen das Protokoll „Modbus TCP“ genutzt.

Kommunikationsprotokoll

Die Kommunikation erfolgt nach dem Client/Server-Prinzip, bei dem nur der Client die Kommunikation starten kann. Es können mehrere Server verbunden werden, wobei ein Befehl gleichzeitig an alle übermittelt werden kann. Server antworten nur dann, wenn der Befehl an sie adressiert ist; in allen anderen Fällen erfolgt keine Antwort. Das Übertragungsformat besteht aus einer Stationsnummer, den Daten und einer Prüfsumme.
Die Übertragungsdaten bestehen entweder aus ASCII-Zeichenketten oder aus Binärdaten, abhängig vom gewählten Übertragungsmodus. Der ASCII-Modus (American Standard Code for Information Interchange) wird verwendet, um ASCII-Zeichenketten zu übertragen, während der RTU-Modus (Remote Terminal Unit) für die Übertragung von Binärdaten genutzt wird. Unter allen verbundenen Server-Stationen muss derselbe Übertragungsmodus verwendet werden.

Funktionscodes

Typischerweise werden die Lese- und Schreibbefehle in vier Funktionscodes unterteilt: Coils, Discrete Inputs, Holding Register und Input Register. Zusätzlich können auch benutzerdefinierte Funktionscodes verwendet werden.

Beispiel für Funktionscodes

Funktionscode Funktion
01 Coil-Lesen
02 Discrete Inputs-Lesen
03 Holding Register-Lesen
04 Input Register-Lesen