Programmierung des RevPi DIO mit Modbus und Python
Einleitung
Dieses Tutorial erklärt, wie man das RevPi Connect 4 als Modbus TCP Slave konfiguriert und eine LED über den digitalen Ausgang des RevPi DIO Moduls steuert. Der Modbus TCP Master wird mit QModMaster simuliert, und ein Python-Skript unter Verwendung der RevPiModIO-Bibliothek wird entwickelt, um Modbus-Daten an die digitalen Ausgänge zu übertragen.
Voraussetzungen
Hardware
- RevPi Basismodul (z.B. RevPi Connect 4)
- Master-Gerät oder Software: Zum Beispiel „qModMaster“, das auf einem Windows-PC läuft.
- Passende Kabel mit RJ45-Steckern
- Stromversorgung für RevPi Connect
Software
- Ein moderner Webbrowser (z. B. Google Chrome oder Mozilla Firefox).
- qModMaster: Herunterladbar von SourceForge für dieses Beispiel.
Systemeinrichtung
Stellen Sie sicher, dass:
- Das RevPi Basismodul und das Master-Gerät sich im selben Netzwerk befinden.
- Die IP-Adressen korrekt konfiguriert sind und die Geräte miteinander kommunizieren können.
Schritt 1: Hardware-Einrichtung
- Verbinden Sie das RevPi Connect mit dem Master-Gerät über ein RJ45-Kabel.
- Schalten Sie das RevPi Connect ein, indem Sie es an eine geeignete Stromversorgung anschließen.
Schritt 2: Konfigurieren des Modbus TCP Slaves in PiCtory
-
Ziehen Sie das Basismodul aus dem Gerätekatalog auf die virtuelle Hutschiene.
-
Öffnen Sie den Ordner Virtuelle Geräte im Gerätekatalog.
- Ziehen Sie Modbus TCP Slave auf das Basismodul auf der virtuellen Hutschiene.
➜ Der Modbus TCP Slave wird nun in der Konfiguration angezeigt
- Ziehen Sie Modbus TCP Slave auf das Basismodul auf der virtuellen Hutschiene.
▷ Konfigurieren Sie den Modbus TCP Slave
- Wählen Sie den Modbus TCP Slave in der Konfiguration aus.
- Stellen Sie die folgenden Parameter im Wert-Editor ein:
- TCP Port: '502' (Standardwert gemäß der Modbus-Spezifikation).
- Max. Modbus TCP Verbindungen: '10' (oder ein anderer geeigneter Wert).
Input_1
→ModbusInput1
Output_1
→ModbusOutput1
▷ Speichern Sie die Konfiguration und starten Sie den Treiber neu, um die Änderungen anzuwenden.
Schritt 1: Bereiten Sie die Hardware vor
- Verkabelung:
▷ Verbinden Sie das RevPi Connect 4 mit dem RevPi DIO Modul über die PiBridge.
- LED anschließen:
▷ Schließen Sie eine LED an einen der digitalen Ausgänge des RevPi DIO Moduls an (z.B. DIO Ausgang 1 oder O_1).
Schritt 3: QModMaster einrichten
Installieren Sie QModMaster
▷ Laden Sie QModMaster von der offiziellen Website herunter und installieren Sie es auf Ihrem Computer.
Verbindung herstellen
-
Starten Sie QModMaster.
-
Gehen Sie zu Optionen → Modbus TCP und geben Sie die folgenden Details ein:
- IP-Adresse: IP-Adresse des RevPi Connect 4
- Port: 502 (Standard für Modbus TCP)
- Bestätigen Sie die Einstellungen und stellen Sie die Verbindung her.
Modbus-Daten senden
-
Wählen Sie in QModMaster die Funktion „Write Single Register (0x06)“.
-
Geben Sie die Adresse des ersten Modbus-Registers ein (z.B. Adresse 0).
-
Schreiben Sie den Wert 7 (entspricht 0b0000111), um die ersten drei digitalen Ausgänge (DIO) auf HIGH zu setzen.
Schritt 4: Erstellen und Hochladen eines Python-Skripts mit RevPiModIO
Erstellen des Python-Skripts
Schreiben Sie das folgende Python-Skript, um Modbus-Daten zu verarbeiten und die LED zu steuern:
import revpimodio2
import time
# Initialisieren des RevPiModIO-Objekts
rpi = revpimodio2.RevPiModIO(autorefresh=True)
while True:
# Setzen des ModbusOutput1 Wertes auf den Wert von I_1
rpi.io.ModbusOutput_1.value = int(rpi.io.I_1.value)
# Setzen des O_1 Wertes auf den Wert von ModbusInput1
rpi.io.O_1.value = int(rpi.io.ModbusInput_1.value)
# Aktuelle Werte zur Überprüfung ausgeben
print(f"ModbusOutput_1: {rpi.io.ModbusOutput_1.value}, O_1: {rpi.io.O_1.value}")
time.sleep(0.02)
Das Skript auf das RevPi hochladen
Es gibt zwei Möglichkeiten, das Skript hochzuladen:
Option 1: Verwendung von RevPiCommander
Option 2: Manuell über das Terminal
-
Öffnen Sie ein Terminal auf dem RevPi oder verbinden Sie sich über SSH.
-
Erstellen Sie das Skript mit folgendem Befehl:
sudo nano Revpi_DIO_Modbus.py
-
Fügen Sie den Skriptcode ein und speichern Sie die Datei.
-
Führen Sie das Skript aus mit:
python3 Revpi_DIO_Modbus.py
Zusammenfassung
In diesem Tutorial haben Sie gelernt, wie Sie das RevPi Connect 4 als Modbus TCP Slave konfigurieren, eine LED mit dem RevPi DIO Modul steuern und Daten über QModMaster senden. Das Python-Skript nutzt die RevPiModIO-Bibliothek, um Modbus-Daten an die DIO-Ausgänge zu übertragen.
Nun sollten die ersten drei digitalen Ausgänge aktiviert werden, wenn der Wert 7 an das Modbus-Register gesendet wird – wodurch die LED aufleuchtet.