Modbus RTU (seriell)
Modbus RTU ist die serielle Variante (RS-485 / RS-232) von Modbus. Geräte, die nur über eine serielle Schnittstelle verfügen — Frequenzumrichter, Stromzähler, Umweltsensoren —, kommunizieren ausschließlich per RTU.
Dieses Gateway ist TCP/IP-basiert und spricht daher nicht direkt seriell, sondern kommuniziert über ein Modbus RTU-over-TCP-Gateway (RS-485 → Ethernet-Umsetzer).
PlantPulse Edge selbst besitzt keinen RS-485-Port. Um serielle Geräte anzubinden, benötigen Sie eines der folgenden Elemente:
- Modbus-Gateway (Umsetzer) — Moxa MGate, Advantech EKI, USR-TCP232, ICP DAS tGW usw.
- Serielles Modul der SPS — die SPS empfängt RTU seriell und stellt die Daten erneut als Modbus TCP bereit
Unterschied RTU vs. TCP
| Punkt | Modbus TCP | Modbus RTU |
|---|---|---|
| Physikalische Schicht | Ethernet | RS-485 / RS-232 |
| Übertragungseinheit | TCP segment | Serieller Frame |
| Slave-Identifikation | IP + (Unit ID) | Unit ID |
| Zuordnung über Gateway | direkt | 1 TCP-IP + mehrere Unit IDs |
| Antwortgeschwindigkeit | schnell | begrenzt durch Baudrate (typisch 9600–115200 bps) |
→ Am häufigsten ist die Struktur, bei der mehrere Slaves an einer RS-485-Leitung (= einer Umsetzer-IP) hängen. Registrieren Sie jeden Slave als eigene Verbindung mit unterschiedlicher Unit ID.
Eingabewerte im Registrierungsformular
| Eingabefeld | Was wird eingetragen | Beispiel |
|---|---|---|
| IP-Adresse | IP des RTU-over-TCP-Gateways | 192.168.0.55 |
| Port | TCP-Port des Gateways | 502 (oder 8899, 4001 usw. je nach Umsetzer) |
| Unit ID (slave-id) | Adresse des seriellen Slaves (1–247) | 1 |
| Antwort-Timeout (request-timeout) | Wartezeit auf Antwort (ms) | 5000 (seriell länger als TCP) |
Anders als bei Modbus TCP hängen bei RTU mehrere Slaves hinter derselben IP. Ist die Unit ID falsch, erhalten Sie „Werte eines anderen Geräts“. Prüfen Sie Handbuch und DIP-Schalter-Einstellung jedes Slaves.
Checkliste für die Umsetzer-Einstellungen
| Punkt | Empfohlener Wert |
|---|---|
| Modus | Transparent / Modbus TCP-RTU gateway |
| Baudrate | identisch mit Slave (9600 / 19200 / 38400 usw.) |
| Datenbits / Stoppbits / Parität | identisch mit Slave (meist 8N1) |
| RTU response timeout | 1000–3000 ms |
| Inter-frame delay | automatisch oder 5–10 ms |
PLC-Adressnotation der Tags
Das Adressformat der Tags ist identisch mit Modbus TCP (siehe Seite Modbus TCP).
| Notation | Bedeutung |
|---|---|
holding-register:1 | Holding Register 1 (16-bit) |
holding-register:1:REAL | Holding Register 1–2 (32-bit float) |
coil:1 | Coil 1 (1 Bit) |
input-register:1 | Input Register 1 (16-bit, nur lesend) |
Auch die 5- bzw. 6-stellige Notation (40001, 400001) wird unverändert akzeptiert.
| 5-stellig | Bedeutung |
|---|---|
1xxxx | Discrete Input |
0xxxx | Coil |
3xxxx | Input Register |
4xxxx | Holding Register |
Zuordnung der Datenformate
Verwenden Sie die Tabelle aus Modbus TCP unverändert. Für RTU sind keine gesonderten Formate erforderlich.
Häufige Probleme und Lösungen
| Symptom | Mögliche Ursache | Lösung |
|---|---|---|
| „Read timeout“ | RTU-Baudrate / Parität stimmen nicht überein | Serielle Parameter von Umsetzer und Slave angleichen |
| Nur ein Slave antwortet, übrige „Slave not present“ | RS-485-Abschlusswiderstand / Verdrahtung / Unit-ID-Konflikt | Abschlusswiderstand (120 Ω) am Leitungsende und doppelte Unit IDs prüfen |
| Kein Slave antwortet | Umsetzer nicht im Modus „TCP server“ | In den Umsetzer-Einstellungen den Modus Modbus TCP-RTU gateway wählen |
| Sporadische Timeouts | Serieller Konflikt (mehrere Master) | Nur ein RS-485-Master zulässig |
| 32-bit-Gleitkommawerte verfälscht | Byte-/Word-Reihenfolge (gleiches Thema wie bei Modbus TCP) | Varianten wie :UDINT_LSWORD_FIRST ausprobieren |
Nächste Schritte
- Adress- und Formattabellen aus Modbus TCP unverändert verwenden
- Modbus-Beispiele unter Fortgeschritten — REST API (gleicher Aufruf auch für RTU)