CODESYS-Beispiel: Modbus TCP RTU Master
Dieses Tutorial zeigt dir, wie du Modbus TCP- und Modbus RTU-Master auf einem RevPi Connect+ mit CODESYS Control für Linux ARM oder ARM64 konfigurierst. Die Anwendung liest die Halteregister (0–9) der angeschlossenen Modbus-Slaves aus und schreibt ihre Werte zurück in die Halteregister (10–19).
Voraussetzungen
Hardware
✓ RevPi Connect+
✓ 1 Modbus TCP-Slave
✓ 1 Modbus RTU-Slave
Für detaillierte Anleitungen zur Einrichtung deines Systems, sieh dir den Getting Started-Leitfaden an.
Software
✓ CODESYS Development System, installiert auf deinem PC
Um ein kompatibles System mit geeigneter Software sicherzustellen, beachte bitte die CODESYS Systemanforderungen.
Überblick
Der Gerätebaum in CODESYS wird wie folgt konfiguriert:
- Modbus TCP-Master: Liest und schreibt auf ein TCP-Slave-Gerät.
- Modbus RTU-Master: Kommuniziert mit einem seriellen RTU-Slave-Gerät.
- POU_Modbus: Verarbeitet die Anwendungslogik für das Lesen und Schreiben von Daten.
Anpassung für RevPi Core oder Compact
Um das Projekt für RevPi Core oder RevPi Compact anzupassen:
▷ Klicke mit der rechten Maustaste auf RevPi Connect im CODESYS-Gerätebaum.
▷ Wähle "Gerät aktualisieren" aus.
▷ Wähle RevPi Core oder RevPi Compact als Ersatz und benenne das Gerät entsprechend um.
Schritt 1: Konfigurieren des Modbus RTU-Serienanschlusses
Für RevPi Connect oder RevPi Core:
-
Bearbeite die Konfigurationsdatei:
sudo nano /etc/CODESYSControl_User
-
Füge folgende Zeile hinzu:
[SysCom]
Linux.Devicefile=/dev/ttyUSB -
Weise die COM-Ports in CODESYS wie folgt zu:
- /dev/ttyUSB0 → COM-Port 1
- /dev/ttyUSB1 → COM-Port 2
- /dev/ttyUSBn → COM-Port n
Wenn ein zusätzlicher USB-485-Konverter angeschlossen ist, muss der korrekte COM-Port identifiziert werden.
Für RevPi Compact:
- Standard-RS485-Anschluss:
▷ Bearbeite/etc/CODESYSControl_User
und füge hinzu:[SysCom]
Linux.Devicefile=/dev/ttyAMA - USB-485-Konverter verwenden:
▷ Füge stattdessen folgende Zeile hinzu:[SysCom]
Linux.Devicefile=/dev/ttyUSB
Schritt 2: Konfigurieren des Modbus RTU-Slaves
- Richte den RTU-Slave wie folgt ein:
- Kanal 1: Lese Halteregister
- Kanal 2: Schreibe mehrere Register
- Stelle sicher, dass die Standardwerte für die ersten 10 Halteregister 12 sind.
- Ordne diese Kanäle in der POU_Modbus-Logik für den Zugriff auf Anwendungsebene zu.
Schritt 3: Konfigurieren des Modbus TCP-Slaves
- Gib die Modbus TCP-Slave-Adresse in der CODESYS-Konfiguration an.
- Verwende dieselbe Mapping-Logik wie bei Modbus RTU für die Halteregister 0–9 und 10–19.
Schritt 4: Modbus-Slaves simulieren
Um Modbus TCP- und RTU-Slaves zu simulieren, verwende ModRSsim2:
- Lade die Anwendung von ModRSsim2 auf SourceForge herunter.
- Konfiguriere Modbus TCP/RTU-Slaves mit Halteregistern:
- 40001–40010 für Quellendaten
- 40010–40020 für Ziel-Daten
Schritt 5: Bereitstellen und Testen
- Lade das kompilierte Projekt auf das RevPi-Gerät hoch.
- Führe die Anwendung auf deinem RevPi-Basismodul aus.
- Verifiziere, dass:
- Daten korrekt aus Halteregistern 0–9 gelesen werden.
- Daten zurück in Halteregister 10–19 geschrieben werden.
Hinweise
- Standard-RTU-Slave-Konfiguration: Stelle sicher, dass die Slaves mit eindeutigen IDs und konsistenten Kommunikationseinstellungen konfiguriert sind.
- Fehlerbehebung: Verwende die CODESYS-Überwachungstools, um den Echtzeitaustausch zwischen Master und Slaves zu überprüfen.
- Simulation: Nutze ModRSsim2 für Tests, bevor du physische Geräte anschließt.
Dieses Setup ermöglicht es, Modbus TCP- und RTU-Master gleichzeitig zu betreiben, wodurch ein robuster Datenaustausch mit Modbus-fähigen Geräten gewährleistet wird.