Im folgenden Beispiel verwenden unseren RevPi Connect als Modbus-RTU-Master und schließen daran einen RFID-Kartenleser an.
Du benötigst dazu:
- RevPi Connect
- Slave
- Passende Kabel mit D-Sub 9-Steckern
- Adapter (z. B. Shopartikel 200018 oder 200019)
- Internetverbindung
Voraussetzungen:
- Du hast einen Webbrowser auf Deinem PC installiert (z. B. Google Chrome oder Mozilla Firefox).
- RevPi Connect befindet sich in Deinem Netzwerk.
Slave an das RevPi Connect anschließen
- Verbinde die eine USB-Buchse mit dem Adapter.
- Verbinde den Adapter über die D-Sub-9-Buchse mit dem Slave.
- Schließe Dein RevPi Connect an die Spannungsversorgung an.
ModbusRTU-Netzwerk-Daten ermitteln
Um den Slave zu konfigurieren, benötigen wir vorab einige Daten, damit wir den Slave über unseren RevPi Connect ansprechen können. Diese Daten finden wir im Handbuch unseres Slaves.
In diesem Beispiel verwenden wir den RFID-Kartenleser “Iveno RFID MODBUS Reader RFID-MB-10” als Slave.
- Notiere Dir folgende Daten aus dem Handbuch Deines Slaves:
Was | Wert (Beispieldaten für den RFID Kartenleser) |
Schnittstelle | /dev/ttyUSB0 |
Baudrate | 9600 |
Datenbits | 8 |
Stoppbits | 1 |
Parität | Keine |
Slave Adresse | 1 |
Modbus Funktion | Read Holding Registers |
Modbus Register Transponder code [0] | 1000 |
Modbus Register Transponder code [1] | 1001 |
Modbus Register Transponder code [2] | 1002 |
Modbus Register Transponder code [3] | 1003 |
Modbus Register Transponder code [4] | 1004 |
Modbus-RTU-Master-Funktion aktivieren
- Starte RevPi Status.
- Klicke auf das Register SERVICES.
- Aktiviere Modbus Master.
- Klicke Button Save All.
Du kannst die Master-Funktion auch in der Kommandozeile aktivieren. Gib dazu folgendes Kommando ein: sudo revpi-config enable pimodbus-master
.
Modbus-RTU-Master konfigurieren
- Starte PiCtory.
- Öffne im Device Catalog den Ordner Virtual Devices.
- Wähle den Modbus RTU-Master aus.
- Halte die link Maustaste gedrückt und ziehe den Modbus RTU-Master auf Dein RevPi Connect.
Lege im Bereich „Device Data“ die Grundeinstellungen für Deine Adapter fest. Diese Eingabe ist optional. Wenn Du viele Geräte verwendest und die Daten später in einem anderen Programm weiterverarbeiten möchtest, kann diese Eingabe sehr hilfreich sein.
Lege im “Value Editor” die Einstellungen für die serielle Verbindung fest. Die Werte für unseren Slave haben wir bereits aus der Bedienungsanleitung des Sensors ermittelt:
- device_path: USB Gerätepfad (siehe lsusb –v und ls /dev/ttyU*)
- baud_rate: 9600
- parity: None
- data_bits: 8
- stop_bits: 1
- Klicke mit der rechten Maustaste auf den Modbus-RTU-Master auf dem Configuration Board.
- Ein Kontextmenü öffnet sich.
- Wähle den Eintrag “Extended Data”.
Eine Eingabemaske öffnet sich.
Hier stellen wir die Modbusbefehle ein. In diesem Beispiel benötigen wir einen Befehl, der die Werte des RFID-Sensors liest. Die nötigen Informationen dazu haben wir bereits aus der Bedienungsanleitung des Sensors ermittelt:
Slave Addr: 1
Function Code: READ_INPUT_REGISTERS
Register Addr.: 1000
Quantity of Registers: 5
Konfiguration speichern
Klicke auf „File>Save“. Damit speicherst Du Deine Datei.
Klicke auf „Tools>Reset Driver“. Damit aktivierst Du die Änderungen für den Adapter.
Werte im Prozessabbild abfragen
- Öffne die Kommandozeile.
- Gib folgenden Befehl ein:
piTest -v Input_Word_1
- Du erhältst als Ausgabe die Information, wo Deine Werte im Prozessabbild stehen:
variable name: Input_Word_1 offset: 11 length: 16 bit
Die Werte stehen ab Adresse 16 im Prozessabbild. Wir müssen 10 Bytes lesen.
Wir geben den folgenden Befehl ein und sehen unsere Werte: “piTest -r 11,10,h”. Wenn wir jetzt die RFID-Karte an den Kartenleser halten, können wir die Veränderung der Werte im Prozessabbild beobachten.
piTest -r 11,10,h 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 04 00 00 00 1b 00 87 00 2b 00 04 00 00 00 1b 00 87 00 2b 00 04 00 00 00 1b 00 87 00 2b 00 [...]