Ziel: ein RevPi Basismodul als Modbus RTU Client verwenden, um Daten von Server-Geräten zu lesen oder zu schreiben. Die Konfiguration erfolgt in der RevPi Applikation PiCtory.
Die Verwendung des RevPi als Modbus RTU Client eignet sich für Szenarien, in denen Geräte wie Sensoren, Aktoren oder andere Industriegeräte über eine serielle RS485-Verbindung gesteuert oder überwacht werden müssen.
Dieses Tutorial ist mit allen RevPi Basismodulen anwendbar. Basismodule ohne integrierte RS485-Schnittstelle können über einen USB-RS485-Adapter verbunden werden.
Voraussetzungen #
Geräte
✓ Modbus Server-Gerät(e)
✓ Optional: USB-RS485-Adapter
Hardware-Installation
✓ RevPi Basismodul ist mit dem Netzwerk verbunden.
✓ RevPi Basismodul ist an die Spannungsversorgung angeschlossen.
✓ Die Server-Geräte sind über die RS485-Schnittstelle oder einen USB-RS485-Adapter mit dem RevPi verbunden.
Siehe auch:
-
RevPi Connect 5: Serielle Schnittstelle RS485
-
RevPi Connect 4: Serielle Schnittstelle RS485
-
RevPi Connect S/SE: Serielle Schnittstelle RS485
-
RevPi Flat S: Serielle Schnittstelle RS485
USB-RS485-Adapter anschließen:
▷ Schließe einen USB-RS485-Adapter an den USB-Anschluss des RevPi an.
▷ Schließe einen D-Sub-9-Stecker an den Adapter an, um ihn mit den Server-Geräten zu verbinden.
| Signal | Sub-D Pin |
|---|---|
RS485- |
1 |
RS485+ |
2 |
GND |
5 |
+5V |
6 |
Bei einigen USB-RS485-Adapter werden nur die RS485-Datensignalleitungen (D+ und D-) angeschlossen.
Software-Installation
✓ Webbrowser (z. B. Chrome, Firefox oder Edge)
✓ RevPi und die Server-Geräte befinden sich im selben Netzwerk.
✓ Jedes Server-Gerät hat eine eindeutige Adresse.
✓ Adresse, Baudrate, Parität, Datenbits und Stoppbits aller Server-Geräte gemäß den Herstellerangaben sind dokumentiert.
|
Note
|
Mehrere Server-Geräte sollten nicht dieselbe Adresse am gleichen RS485-Bus haben, da dies zu Kommunikationsfehlern führt. |
|
Note
|
Ab RevPi Bookworm (08/2025) muss zusätzlich die Firewall des RevPi für die Standard-Ports des Modbus Server freigegeben werden: ▷ Füge den Service revpi-modbus-default zu den Firewall-Einstellungen in Cockpit hinzu, siehe Firewall. |
1. Modbus RTU Client in PiCtory konfigurieren #
▷ Starte PiCtory.
▷ Ziehe das RevPi Basismodul aus dem Gerätekatalog auf den leeren Slot im Konfigurationsbereich mit der Positionsnummer 0.
▷ Ziehe einen Modbus RTU Client aus den Virtual Modbus Devices im Gerätekatalog auf das Basismodul im Konfigurationsbereich.
▷ Optional: Füge mehrere Modbus RTU Clients hinzu, um die Kapazität für zusätzliche Werte zu erweitern.
❯ Der Modbus RTU Client wird nun im Konfigurationsbereich angezeigt.
▷ Wähle den Modbus RTU Client im Konfigurationsbereich aus.
▷ Konfiguriere im Werte Editor ganz unten in der Liste die folgenden Parameter:
| Parameter | Beschreibung |
|---|---|
Input |
Bis zu 32 Eingabewerte, jeweils 16 Bit breit. |
Output |
Bis zu 32 Ausgabewerte, jeweils 16 Bit breit. |
device_path |
Pfad zur Linux-Gerätedatei. Standardmäßig wird |
baud_rate |
Geschwindigkeit der seriellen Verbindung. Standardmäßig wird |
parity |
Paritätsbit-Konfiguration: |
data_bits |
Anzahl der Datenbits. Standardmäßig wird |
stop_bits |
Anzahl der Stoppbits. Standardmäßig wird |
|
Note
|
Konfiguriere |
▷ Im Werte Editor kannst du passende I/O-Namen für eine einfachere Referenz zuweisen, z. B. Modbus_Input_1.
Siehe auch Werte konfigurieren.
▷ Wähle , um die Konfiguration zu speichern.
▷ Wähle , um die Konfiguration anzuwenden.
2. Modbus-Befehle konfigurieren #
▷ Öffne das Kontextmenü des Modbus RTU Client im Konfigurationsbereich.
▷ Wähle Erweiterte Daten, um das Fenster für die Befehlskonfiguration zu öffnen.
▷ Konfiguriere die Befehle mit den folgenden Parametern:
| Parameter | Beschreibung |
|---|---|
Slave Addr. |
Diese Adresse kann dem Handbuch des Servers entnommen werden. |
Function Code |
|
Register Addr. |
Modbus-Register- oder Bit-Adresse definieren, auf die zugegriffen werden soll. |
Quantity of Registers |
Anzahl der zu lesenden/schreibenden Register oder Bits. |
Action Interval (ms) |
Zeitintervall für das Senden des Befehls in Millisekunden. |
Device Value |
Name der Variablen im Prozessabbild. |
|
Note
|
Bei Geräten, die eine 0-basierte Adressierung verwenden, muss die Registeradresse während der Konfiguration um 1 erhöht werden. |
▷ Wähle , um die Konfiguration zu speichern.
▷ Wähle , um die Konfiguration anzuwenden.
Fehlercodes #
▷ Falls Kommunikationsprobleme auftreten, prüfe im Werte Editor das Register Modbus_Client_Status.
▷ Schreibe zum Zurücksetzen eines Fehlers manuell 1 in das Client_Status_Reset- oder Action_Status_Reset-Register.
Häufige Fehlercodes:
| Code | Beschreibung |
|---|---|
|
Serielles Gerät konnte nicht geöffnet oder gefunden werden. Prüfe |
|
Keine gültige Antwort vom Modbus-Server erhalten. |
|
ILLEGAL FUNCTION: Ungültiger Funktionscode. |
|
ILLEGAL DATA ADDRESS: Ungültige oder schreibgeschützte Registeradresse. |
|
INVALID CRC: Beschädigtes Paket. Prüfe Verkabelung, Verbindung und serielle Parameter. |
|
Verbindungs-Timeout. |
Mögliche Fehlerursachen:
-
RS485-Verbindung unterbrochen oder A/B-Leitungen vertauscht
-
Falscher Pfad in
device_path_ -
Falsche Server-Adresse, Baudrate, Parität, Datenbits oder Stoppbits
-
Ungültige Registeradresse
-
Überlappende oder widersprüchliche Modbus-Befehle
-
Zu kurzes Aktionsintervall bei hoher Bus- oder Systemlast