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 |