RevPi als Modbus RTU Master
Einleitung
Das RevPi Basismodul kann als Modbus RTU Master fungieren, sodass Sie mit verschiedenen Modbus RTU Slaves wie Temperatursensoren, Tasten und Bewegungsmeldern kommunizieren können. Diese Anleitung führt Sie durch das Einrichten und Konfigurieren Ihres RevPi als Modbus RTU Master für robuste industrielle Kommunikation.
Voraussetzungen
Hardwareanforderungen
- RevPi Basismodul (z.B. RevPi Connect 4)
- Modbus Slave Geräte (z.B. Sensoren, Aktuatoren)
- USB-RS485-Adapter (bei Verwendung der USB-Schnittstelle)
ODER
Eingebautes RS485 Terminal (auf RevPi Connect/Connect 4)
Softwareanforderungen
- Ein Webbrowser (z.B. Google Chrome oder Mozilla Firefox).
Vorbereitung
Für USB-Verbindung (RevPi Core oder RevPi Connect):
- Schließen Sie einen USB-Anschluss des RevPi Basismoduls an den Adapter an.
- Verwenden Sie einen D-Sub 9-Stecker, um den Adapter mit den Slave-Geräten zu verbinden.
- Weisen Sie die Adresse der Slaves zu und notieren Sie diese. Falls notwendig, können Sie dazu Informationen in den Herstelleranweisungen finden.
Wenn Sie mehrere Slaves verwenden, müssen Sie sicherstellen, dass jeder Slave eine eigene Adresse hat. Wenn zwei oder mehr Slaves dieselbe Adresse haben, treten Kommunikationsfehler auf.
Signal | Sub-D Pin |
---|---|
RS485- | 1 |
RS485+ | 2 |
GND | 5 |
+5V | 6 |
Einige USB-Serial-Adapter haben möglicherweise nur RS485-Datensignalleitungen (D+ und D-).
Für RS485 Terminal (RevPi Connect/Connect 4):
Die RevPi Connect-Modelle sind mit einem RS485-Schraubanschluss für den Direktanschluss ausgestattet. Der Anschluss verfügt über:
- A (+): Positive RS485-Leitung.
- B (-): Negative RS485-Leitung.
- GND: Erdung.
- Functional Earth: Sicherstellung der Signalintegrität.
Stellen Sie sicher, dass die Verkabelung korrekt ist, um eine robuste und kostengünstige Integration von RS485-Geräten zu ermöglichen.
Der Anschluss hat übliche A/B-Leitungsanschlüsse (besser markiert als D+ und D-) und Referenzanschlüsse (internes GND und Functional Earth über ein 1 MOhm RC-Netzwerk).
Verkabelungsbeispiel für RevPi Connect:
Verkabelungsbeispiel für RevPi Connect 4
Schritt 1: Konfigurieren der Hardwareverbindungen
- Schließen Sie das RS485-Netzwerk an:
Verkabeln Sie die A (+) und B (-) Leitungen vom RevPi RS485 Terminal (oder USB-RS485-Adapter) zu den Slave-Geräten. - Weisen Sie eindeutige Slave-Adressen zu:
Jeder Slave muss eine eindeutige Adresse haben. Entnehmen Sie das Handbuch des Geräts, um die Adresse zu konfigurieren.
Hinweis: Doppelte Slave-Adressen führen zu Kommunikationsfehlern.
Schritt 2: Konfigurieren des Modbus RTU Masters 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 RTU Slave auf das Basismodul auf der virtuellen Hutschiene.
➜ Der Modbus RTU Master wird nun in der Konfiguration angezeigt
▷ Konfigurieren Sie den Modbus RTU Master
- Wählen Sie den Modbus RTU Master in der Konfiguration aus.
- Stellen Sie die folgenden Parameter im Wert-Editor ein:
| Parameter | Beschreibung |
|----------------------|------------------------------------------------------------------------------------------------------------------------------|
| Input | Konfigurieren Sie bis zu 32 Eingabewerte (jeweils 16 Bits). |
| Output | Konfigurieren Sie bis zu 32 Ausgabewerte (jeweils 16 Bits). |
| device_path | Pfad zur Linux-Gerätedatei (Standard:
/dev/ttyRS485
). | | baud_rate | Geschwindigkeit der seriellen Verbindung (Standard:19200
). | | parity | Paritätsbit-Konfiguration: Keine, Gerade (Standard), Ungerade. | | data_bits | Anzahl der Datenbits (Standard:8
). | | stop_bits | Anzahl der Stopbits (Standard:1
). |
Konfigurieren Sie udev-Regeln für konsistente Gerätedateipfade bei der Verwendung mehrerer Geräte des gleichen Typs.
▷ Speichern Sie die Konfiguration und starten Sie den Treiber neu, um die Änderungen anzuwenden.
Schritt 3: Konfigurieren der Modbus-Befehle
-
Erweiterte Daten öffnen:
▷ Klicken Sie mit der rechten Maustaste auf den Modbus RTU Master in der Konfiguration und wählen Sie Erweiterte Daten. -
Modbus-Befehle hinzufügen:
➜ Definieren Sie in der Eingabemaske Befehle, um mit dem Slave zu kommunizieren:
Parameter | Beschreibung |
---|---|
Slave Addr. | Eindeutige Adresse des Slave-Geräts (stellen Sie sicher, dass keine Duplikate vorhanden sind). |
Funktionscode | Modbus-Funktion (z.B. READ_HOLDING_REGISTERS, WRITE_SINGLE_REGISTER). |
Registeradresse | Adresse des Modbus-Registers oder Bits (siehe Slave-Dokumentation). |
Menge | Anzahl der zu lesenden oder zu schreibenden Register/Bits. |
Aktionsintervall | Intervall zwischen den Befehlen (in Millisekunden). |
Gerätwert | Variablenname im RevPi-Prozessabbild für das erste Wort/Bit des Befehls. |
- Für Geräte mit 0-basierter Adressierung erhöhen Sie die Registeradresse um 1 während der Konfiguration.
- Stellen Sie sicher, dass die Befehle nicht im Prozessabbild überlappen.
- Speichern und Zurücksetzen:
▷ Klicken Sie auf Datei > Speichern.
▷ Klicken Sie auf Werkzeuge > Treiber zurücksetzen, um die Konfiguration anzuwenden.
Fehlerbehebung und Fehlercodes
Wenn Fehler auftreten, überprüfen Sie das Modbus_Master_Status-Register auf den Fehlercode:
Fehlercode | Bedeutung |
---|---|
0x10 | Gerät nicht gefunden. Überprüfen Sie die Verkabelung. |
0x11 | Gerät antwortet nicht. Überprüfen Sie die Konfiguration und Registeradresse. |
1 | ILLEGAL FUNCTION: Ungültiger Funktionscode. |
2 | ILLEGAL DATA ADDRESS: Ungültige oder schreibgeschützte Registeradresse. |
12 | INVALID CRC: Beschädigtes Paket. Überprüfen Sie die Verkabelung und Verbindungen. |
110 | CONNECTION TIMED OUT: Slave hat nicht geantwortet. |
Zum Zurücksetzen eines Fehlers schreiben Sie manuell 1
in das Master_Status_Reset- oder Action_Status_Reset-Register.
Hinweise und bewährte Verfahren
- Verwenden Sie ein höheres Aktionsintervall bei hoher Systemlast, um Kommunikationsverzögerungen zu vermeiden.
- Erweitern Sie die Kapazität des Modbus RTU Masters, indem Sie mehr Master für zusätzliche Werte hinzufügen.