Zum Hauptinhalt springen

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.

Project Setting

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:

  1. Bearbeite die Konfigurationsdatei:

    sudo nano /etc/CODESYSControl_User
  2. Füge folgende Zeile hinzu:

    [SysCom]  
    Linux.Devicefile=/dev/ttyUSB
  3. 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.

    Project Setting

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

Project Setting

  1. Richte den RTU-Slave wie folgt ein:
    • Kanal 1: Lese Halteregister
    • Kanal 2: Schreibe mehrere Register

Project Setting

  1. Stelle sicher, dass die Standardwerte für die ersten 10 Halteregister 12 sind.

Project Setting

  1. Ordne diese Kanäle in der POU_Modbus-Logik für den Zugriff auf Anwendungsebene zu.

Project Setting

Schritt 3: Konfigurieren des Modbus TCP-Slaves

  1. Gib die Modbus TCP-Slave-Adresse in der CODESYS-Konfiguration an.

Project Setting

  1. 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

Project Setting

Project Setting

Schritt 5: Bereitstellen und Testen

  1. Lade das kompilierte Projekt auf das RevPi-Gerät hoch.
  2. Führe die Anwendung auf deinem RevPi-Basismodul aus.
  3. 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.