Modbus TCP
Modbus ist das älteste und am weitesten verbreitete industrielle Kommunikationsprotokoll. Nahezu alle Messgeräte, Frequenzumrichter und allgemeinen Industriegeräte unterstützen Modbus.
Dieses Gateway unterstützt Modbus TCP (Ethernet) und Modbus UDP. Geräte mit reiner Serienschnittstelle (RS-485) müssen über ein Modbus-Gateway (RS-485 → Ethernet) angebunden werden.
Eingabefelder des Registrierungsformulars
| Eingabefeld | Was wird eingetragen | Beispiel |
|---|---|---|
| IP-Adresse | IP des Modbus-Slaves | 192.168.0.50 |
| Port | Modbus-Port | 502 (Standard) |
| Antwort-Timeout (request-timeout) | Maximale Wartezeit auf die Slave-Antwort (ms) | 5000 (5 Sekunden) |
Modbus kennt kein Benutzer-/Passwortkonzept. Wer die IP erreicht, kann Werte lesen.
PLC-Adressnotation der Tags
Modbus unterscheidet die folgenden 4 Speicherbereiche.
| Bereich | Notationsbeginn | Bedeutung |
|---|---|---|
| Holding Register | holding-register:N | 16 Bit, Lesen/Schreiben — am häufigsten |
| Input Register | input-register:N | 16 Bit, nur Lesen |
| Coil | coil:N | 1 Bit, Lesen/Schreiben |
| Discrete Input | discrete-input:N | 1 Bit, nur Lesen |
N ist die im Slave-Handbuch angegebene Adressnummer (beginnt meist bei 1).
Notation mit Angabe des Datentyps
Auch innerhalb desselben Speicherbereichs kann die Interpretation als 16 Bit / 32 Bit / Gleitkommazahl / Zeichenkette usw. unterschiedlich sein, daher lässt sich der Datentyp mit angeben.
| Notation | Bedeutung |
|---|---|
holding-register:1 | einfache 16-Bit-Ganzzahl (signed) |
holding-register:1:UINT | 16-Bit-Ganzzahl ohne Vorzeichen |
holding-register:1:DINT | 32-Bit-Ganzzahl (belegt zwei Speicherstellen) |
holding-register:1:REAL | 32-Bit-Gleitkommazahl (belegt zwei Speicherstellen) |
holding-register:1:LREAL | 64-Bit-Gleitkommazahl (belegt vier Speicherstellen) |
holding-register:100:STRING[10] | ASCII-Zeichenkette aus 100–109 |
coil:1 | Coil Nr. 1 (1 Bit) |
Ohne Angabe des Datentyps wird der Wert als 16-Bit-Ganzzahl interpretiert. Bei Werten ab 32 Bit ist die Angabe zwingend erforderlich.
Datenformat / Formatzusatz
Die Felder [Datenformat] und [Formatzusatz] unter Tag-Registrierung ordnen Sie am besten wie folgt zu.
| Wert im PLC | Datenformat | Formatzusatz | Beispiel PLC-Adresse |
|---|---|---|---|
| Coil / Bit-Eingang | Boolean | (leer) | coil:1 oder discrete-input:1 |
| 16-Bit-Ganzzahl | Integer | (leer) | holding-register:1 |
| 16-Bit-Ganzzahl ohne Vorzeichen | Integer | UI | holding-register:1:UINT |
| 32-Bit-Ganzzahl | Integer | DW | holding-register:1:DINT |
| 32-Bit-Gleitkommazahl (am häufigsten) | Float | REAL | holding-register:1:REAL |
| 64-Bit-Gleitkommazahl | Double | LREAL | holding-register:1:LREAL |
| Zeichenkette mit N Zeichen | String | STR[N] | holding-register:10:STRING[N] |
Häufige Probleme und Lösungen
| Symptom / Meldung | Mögliche Ursache | Lösung |
|---|---|---|
| „Read timeout" / verzögerte Antwort | Verzögerte Slave-Antwort, Kabel / Firewall / Port (502) blockiert | Erreichbarkeit mit ping, telnet <ip> 502 prüfen. Antwort-Timeout erhöhen und erneut versuchen |
| Falsche Adressnotation (Invalid address) | Tippfehler im Format | Doppelpunkt exakt setzen, z. B. holding-register:1 |
Es erscheint immer nur 0 | Falscher Bereichstyp (z. B. Holding-Register wird als Input gelesen) | Im Slave-Handbuch prüfen, ob „FC 03 / 04 / 01 / 02" zutrifft |
| 32-Bit-Gleitkommazahl wird verfälscht dargestellt | Abweichende Byte-/Word-Reihenfolge des Slaves | Ist der Slave Little-Endian, den Datentyp auf :UDINT_LSWORD_FIRST o. Ä. ändern |
Probleme mit der Byte-Reihenfolge sind herstellerabhängig; am schnellsten kommen Sie über das Handbuch oder einen Vergleich mit einem anderen Werkzeug (z. B. Modbus Poll) weiter.
Test mit dem Simulator
Auch ohne PLC lässt sich die Funktion mit einem Modbus-Simulator überprüfen.
- Wählen Sie bei [Verbindung hinzufügen] in der Kartenliste Simulator → Modbus-Simulator, startet das Gateway den Simulatorprozess automatisch und stellt die Verbindung her.
- Ohne externes Zusatzwerkzeug erscheinen sofort Testwerte in den Holding-Registern.
Ausführlichere Beispiele / automatisierte Registrierung
Siehe die Modbus-Beispiele unter Erweitert — REST API.