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+
✓ Ein Modbus TCP-Slave
✓ Ein Modbus RTU-Slave

Für detaillierte Anleitungen zur Einrichtung deines Systems, siehe Getting Started.

Software #

✓ CODESYS Development System, installiert auf deinem PC

Um ein kompatibles System mit geeigneter Software sicherzustellen, beachte bitte die CODESYS-Systemvoraussetzungen.

Ü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 RevPi 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.

    + image::revpi-tutorial-codesys-modbus-tcp-rtu-master-2.png[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.

Note

Standard-RTU-Slave-Konfiguration
Stelle sicher, dass die Slaves mit eindeutigen IDs und konsistenten Kommunikationseinstellungen konfiguriert sind.

Note

Fehlerbehebung
Verwende die CODESYS-Überwachungstools, um den Echtzeitaustausch zwischen Master und Slaves zu überprüfen.

Note

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.