Dieses Tutorial gilt ab dem Image Jessie. Für Wheezy gilt es leider nicht.
Im folgenden Beispiel messen wir mit einem Sensor die Temperatur und verwenden unseren RevPi als Modbus-TCP-Master.
Du hast gerade ein ähnliches Projekt? Prima, dann mach unser Beispiel doch einfach gleich mit! Die Daten Deines Sensors musst Du natürlich anpassen.
Voraussetzungen:
- RevPi Basismodul und Modbus-TCP-Slaves befinden sich im selben Netz.
- Modbus-TCP-Slaves haben statische IP-Adressen.
Slave an das RevPi anschließen
- Verbinde den Slave über die RJ45-Buchse mit Deinem RevPi Basismodul.
- Schließe Dein RevPi Basismodul an die Spannungsversorgung an.
Modbus-TCP-Netzwerk-Daten ermitteln
Um den Slave zu konfigurieren, benötigen wir vorab einige Daten, damit wir den Sensor über unseren RevPi ansprechen können. Diese Daten finden wir im Handbuch unseres Slaves.
In diesem Beispiel verwenden wir den Temperatursensor “Inveo NANO TEMP” als Slave.
- Notiere Dir folgende Daten aus dem Handbuch Deines Slaves:
Was | Wert (Beispieldaten für den Temperatursensor) |
IP Adresse | 192.168.0.103 |
Port | 502 |
Modbus Register Temperatur x10 | 4004 |
Modbus Funktion | „Read Holding Registers“ |
Slave Adresse | 1 |
Modbus-TCP-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-TCP-Master konfigurieren
- Starte PiCtory.
- Öffne im Device Catalog den Ordner Virtual Devices.
- Wähle den Modbus TCP-Master aus.
- Halte die linke Maustaste gedrückt und ziehe den Modbus TCP-Master auf Dein RevPi.
Dein Modbus-TCP-Master erscheint jetzt ganz außen auf dem Configuration Board.

- 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.
- Im “Value Editor” legen wir die Einstellungen für die TCP-Verbindung fest. Die Werte haben wir bereits aus der Bedienungsanleitung des Sensors ermittelt:

- Klicke mit der rechten Maustaste auf den Modbus TCP-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 Temperaturwerte des Sensors liest. Die nötigen Informationen dazu haben wir bereits aus der Bedienungsanleitung des Sensors ermittelt:
Slave Addr.: 1
Function Code: READ_HOLING_REGISTERS
Register Addr.: 4004
Quantity of Registers: 1
Action Interval (ms): 1000
Device Value: Input_Word_1

Konfiguration speichern
- Klicke auf „File>Save“ um die Datei zu speichern.
- 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 -r Input_Word_1
Du erhältst die Daten Deines Slaves:
2 Byte-Value of Input_Word_1: 284 dez (=011c hex)
In unserem Beispiel erhalten wir die Temperaturangaben. Der Wert 284 entspricht 28,4 °C.