Ziel: ein RevPi Basismodul als Modbus TCP Server konfigurieren, damit externe Modbus TCP Clients auf Daten des RevPi zugreifen können.

Die Konfiguration erfolgt in der Applikation PiCtory. Anschließend werden Prozessdaten des RevPi in Modbus-Register geschrieben und mit einem Modbus TCP Client ausgelesen.

Das Tutorial eignet sich für Anwendungen in der Industrieautomatisierung, Fernüberwachung und IoT-Kommunikation.

Dieses Tutorial ist anwendbar mit allen RevPi Basismodulen.

Voraussetzungen #

Geräte

✓ Client-Gerät oder Software, z. B. QModmaster auf einem Windows-PC

✓ Kabel mit RJ45-Steckern

Hardware-Installation

✓ RevPi Basismodul ist mit dem Netzwerk verbunden.

✓ RevPi Basismodul ist an die Spannungsversorgung angeschlossen.

✓ Client-Gerät ist über den RJ45-Anschluss an den RevPi angeschlossen.

Software-Installation

✓ Webbrowser (z. B. Chrome, Firefox oder Edge)

✓ QModMaster von SourceForge ist auf deinem Windows-PC installiert.

✓ RevPi und Client-Gerät befinden sich im selben Netzwerk.

✓ IP-Adressen sind korrekt konfiguriert und die Geräte können miteinander kommunizieren.

1. Modbus TCP Server in PiCtory konfigurieren #

❯ Die Applikation Cockpit ist geöffnet.

▷ Öffne die App PiCtory.

▷ Ziehe das RevPi Basismodul aus dem Gerätekatalog auf den leeren Slot im Konfigurationsbereich mit der Positionsnummer 0.

▷ Ziehe einen ModbusTCP Slave [1] aus den Virtual Modbus Devices im Gerätekatalog auf das Basismodul im Konfigurationsbereich.

❯ Das virtuelle Gerät wird nun im Konfigurationsbereich angezeigt.

▷ Wähle den Modbus TCP Server in der Konfiguration aus.

▷ Konfiguriere im Werte Editor ganz unten in der Liste die folgenden Parameter:

  • TCP_port: 502 (Standardwert gemäß der Modbus-Spezifikation)

  • max._modbus_TCP: 10 (oder ein anderer geeigneter Wert)

Siehe auch Werte konfigurieren.

PiCtory config

▷ Wähle Datei  Speichern als Start-Konfig., um die Konfiguration zu speichern.

▷ Wähle Extras  Treiber zurücksetzen, um die Konfiguration anzuwenden.

2. CPU-Temperatur abfragen #

▷ Öffne ein Terminal.

▷ Frage die CPU-Temperatur des RevPi ab:

/usr/bin/vcgencmd measure_temp

❯ Die Ausgabe zeigt die Temperatur an, z. B.:

temp = 48.7'C

▷ Skaliere die Temperatur mit dem Faktor 10, um den Wert als Integer für die Modbus-Kommunikation bereitzustellen:

/usr/bin/vcgencmd measure_temp | awk ' { print substr($0,6,2) substr($0,9,1) } '
487

❯ Die Temperatur wird als Ganzzahl mit einer Nachkommastelle dargestellt, z. B. 487 für 48.7 °C.

Daten in ein Modbus-Register schreiben

Der Modbus TCP Server stellt Daten aus dem Prozessabbild als Modbus-Register bereit.

Die Prozessabbildvariablen Output_* und Input_* werden dabei automatisch den Modbus-Registern zugeordnet.

▷ Schreibe die konvertierten Temperaturdaten in ein Modbus-Register:

piTest -w Output_1,$(/usr/bin/vcgencmd measure_temp | awk ' { print substr($0,6,2) substr($0,9,1) } ')

▷ Führe den Prozess in einer Schleife aus, um kontinuierlich zu aktualisieren:

while true; do piTest -w Output_1,$(/usr/bin/vcgencmd measure_temp | awk ' { print substr($0,6,2) substr($0,9,1) } '); sleep 1; done &

❯ Ausgabe:

Write value 492 dez (=01ec hex) to offset 11.

Write value 498 dez (=01f2 hex) to offset 11.

Write value 492 dez (=01ec hex) to offset 11.

3. Daten mit QModMaster abfragen #

Werte, die in Output_* geschrieben werden, können vom Modbus TCP Client über die Funktion Read Input Registers (0x04) gelesen werden.

QModMaster konfigurieren

▷ Öffne den QModMaster.

▷ Setze die folgenden Parameter:

  • Modbus Mode: TCP

  • Unit ID: 1

  • Scan Rate (ms): 1000

  • Function Code: Read Input Registers (0x04)

  • Start Address: 0

  • Number of Registers: 1

  • Data Format: Dec

qmodmaster config
Note

Die Registeradressierung kann je nach Modbus-Client unterschiedlich dargestellt werden.

Einige Tools verwenden Registeradressen ab 0, andere verwenden Modbus-Referenznummern wie 30001 oder 40001.

▷ Wähle Options  Modbus TCP.

▷ Gib die IP-Adresse des RevPi im Feld Slave IP ein.

▷ Setze den TCP Port auf 502 (Standard für Modbus-TCP-Verbindungen).

Verbindung mit dem Modbus TCP Server herstellen

▷ Wähle Commands  Connect, um eine Verbindung mit dem Modbus Server herzustellen.

Daten abfragen

▷ Wähle Commands  Read / Write, um Daten abzurufen.

▷ Die CPU-Temperatur wird in Dezimalform angezeigt, z. B. 487 für 48.7 °C.

qmodmaster config

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)

Weitere Ressourcen #


1. In PiCtory wird der Modbus TCP Server als ModbusTCP Slave bezeichnet.