Ziel: ein RevPi Basismodul als Modbus RTU Server verwenden, damit ein Modbus RTU Client Daten des RevPi lesen oder schreiben kann. Die Konfiguration erfolgt in der RevPi Applikation PiCtory.
Die Verwendung des RevPi als Modbus RTU Server eignet sich für Szenarien, in denen ein übergeordneter Modbus RTU Client Prozessdaten über eine serielle RS485-Verbindung mit dem RevPi austauschen soll.
Dieses Tutorial ist anwendbar mit RevPi Basismodulen, die entweder eine integrierte RS485-Schnittstelle besitzen oder über einen USB-RS485-Adapter angebunden werden.
Voraussetzungen #
Geräte
✓ Modbus RTU Client, z. B. QModMaster auf einem Windows-PC
✓ Optional: USB-RS485-Adapter am Windows-PC, wenn QModMaster verwendet wird.
✓ Optional: USB-RS485-Adapter am RevPi, wenn keine RS485-Schnittstelle vorhanden ist.
Hardware-Installation
✓ RevPi Basismodul ist mit dem Netzwerk verbunden.
✓ RevPi Basismodul ist an die Spannungsversorgung angeschlossen.
✓ Modbus RTU Client ist über die RS485-Schnittstelle oder einen USB-RS485-Adapter mit dem RevPi verbunden.
| Signal | Pin |
|---|---|
RS485- |
D+ |
RS485+ |
D- |
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
Software-Installation
✓ Webbrowser (z. B. Chrome, Firefox oder Edge)
✓ QModMaster von SourceForge ist auf deinem Windows-PC installiert.
✓ RevPi und Modbus RTU Client befinden sich im selben Netzwerk.
✓ Adresse, Baudrate, Parität, Datenbits und Stoppbits des Modbus RTU Servers sind festgelegt.
1. Modbus RTU Server 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 Server aus den Virtual Modbus Devices im Gerätekatalog auf das Basismodul im Konfigurationsbereich.
❯ Der Modbus RTU Server wird nun im Konfigurationsbereich angezeigt.
▷ Wähle den Modbus RTU Server 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. Werte werden vom Modbus RTU Client geschrieben und können im Prozessabbild gelesen werden. |
Output_ |
Bis zu 32 Ausgabewerte, jeweils 16 Bit breit. Werte können vom Modbus RTU Client gelesen werden. |
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 |
modbus_address |
Adresse des Modbus RTU Servers am RS485-Bus. Standardmäßig wird |
|
Note
|
Konfiguriere |
▷ Im Werte Editor kannst du außerdem optional 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 RTU Client einrichten #
QModMaster konfigurieren
▷ Öffne QModMaster.
▷ Setze im Hauptfenster die folgenden Parameter:
-
Modbus Mode: RTU
-
Slave Addr: Wert aus modbus_address
-
Scan Rate (ms):
1000 -
Function Code: Write Multiple Registers (0x10)
-
Start Address:
0 -
Number of Registers:
3 -
Data Format: Dec
▷ Trage Werte in die Modbus-Register ein, z. B. 1, 2 und 3.
▷ Wähle .
▷ Setze die seriellen Parameter so, dass sie mit der Konfiguration des Modbus RTU Servers in PiCtory übereinstimmen:
-
Serial port: COM-Port des USB-RS485-Adapters
-
Baud: Wert aus baud_rate
-
Data Bits: Wert aus data_bits
-
Stop Bits: Wert aus stop_bits
-
Parity: Wert aus parity
Serielle Kommunikation starten
▷ Wähle , um die Kommunikation mit dem Modbus RTU Server zu starten.
▷ Wähle , um die Werte in die Modbus-Register zu schreiben.
3. Daten im Prozessabbild prüfen #
▷ Öffne ein Terminal.
▷ Frage die geschriebenen Werte mit piTest ab:
piTest -1 -r Input_1
piTest -1 -r Input_2
piTest -1 -r Input_3
❯ Ausgabe:
2 Byte-Wert von Input_1: 1 dez (=0001 hex)
2 Byte-Wert von Input_2: 2 dez (=0002 hex)
2 Byte-Wert von Input_3: 3 dez (=0003 hex)
Werte, die ein Modbus RTU Client in die Register ab Adresse 0 schreibt, werden im Prozessabbild des RevPi unter Input_* abgelegt.
Modbus-Funktionen #
Das Modbus-Server-Modul unterstützt die folgenden Modbus-Funktionen:
-
Read Holding Registers (0x03)
-
Read Input Registers (0x04)
-
Write Single Register (0x06)
-
Write Multiple Registers (0x10)