Dieses Tutorial erklärt, wie man ein RevPi Basismodul als Modbus-TCP-Slave konfiguriert, um mit einem Modbus-TCP-Master zu kommunizieren. Es enthält Schritt-für-Schritt-Anleitungen zur Einrichtung des RevPi und zum Abfragen von Daten über das Modbus-Protokoll. Dieses Tutorial richtet sich an Fachleute aus der Industrieautomatisierung, IoT-Entwickler und alle, die einen RevPi als Modbus-TCP-Slave in einer vernetzten Umgebung verwenden möchten. Die Konfiguration des RevPi als Modbus-TCP-Slave ermöglicht es externen Modbus-TCP-Mastern, auf die Datenregister des RevPi zuzugreifen und diese zu steuern.

Voraussetzungen #

Hardware #

  • RevPi Basismodul (z.B. RevPi Connect 4)

  • Master-Gerät oder Software: Zum Beispiel qModMaster, das auf einem Windows-PC läuft.

  • Passende Kabel mit RJ45-Steckern

  • Stromversorgung für RevPi Connect

Software #

  • Ein moderner Webbrowser (z. B. Google Chrome oder Mozilla Firefox).

  • qModMaster: Herunterladbar von SourceForge.

Systemeinrichtung #

Stelle sicher, dass:

  1. das RevPi Basismodul und das Master-Gerät sich im selben Netzwerk befinden.

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

Schritt 1: Hardware-Einrichtung #

  1. Verbinde den RevPi Connect mit dem Master-Gerät über ein RJ45-Kabel.

  2. Schalte den RevPi Connect ein, indem du ihn an eine geeignete Stromquelle anschließt.

Schritt 2: Konfiguration des Modbus TCP Slaves in PiCtory #

Webstatus login

▷ Ziehe das Basismodul aus dem Gerätekatalog auf die virtuelle Hutschiene.

▷ Öffne den Ordner Virtuelle Geräte im Gerätekatalog.

▷ Ziehe Modbus TCP Slave auf das Basismodul auf der virtuellen Hutschiene.

❯ Der Modbus TCP Slave wird nun in der Konfiguration angezeigt

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

PiCtory config

▷ Setze die folgenden Parameter im Wert-Editor:

  • TCP Port: 502 (Standardwert gemäß der Modbus-Spezifikation).

  • Max. Modbus TCP Verbindungen: 10 (oder ein anderer geeigneter Wert).

PiCtory config

Schritt 3: Abfragen der CPU-Temperatur #

Die CPU-Temperatur des RevPi Connect kann mit dem folgenden Befehl im Terminal abgefragt werden:

/usr/bin/vcgencmd measure_temp

Die Ausgabe zeigt die Temperatur an, zum Beispiel:

temp = 48.7'C

Um die Daten für die Modbus-Verarbeitung vorzubereiten, konvertiere die Temperatur in das Format x10 °C mit diesem Befehl:

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

❯ Dies gibt die Temperatur im geeigneten Format aus, z.B. 487 für 48.7 °C.

Schreiben von Daten in ein Modbus-Register #

Um die konvertierten Temperaturdaten in ein Modbus-Register zu schreiben, verwende den folgenden Befehl:

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

Für kontinuierliche Updates führe den Prozess in einer Schleife aus:

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.

Schritt 4: Abfragen von Daten mit qModMaster #

▷ Lade qModMaster auf einem Windows-PC herunter und installiere es.

▷ Setze die folgenden Parameter:

  • Modbus Mode: TCP

  • Unit ID: 1

  • Scan Rate (ms): 1000

  • Funktionscode: Read Input Registers (0x04)

  • Startadresse: 0

  • Anzahl der Register: 1

  • Format: Dezimal

qmodmaster config

qModMaster konfigurieren

▷ Wähle Menü  Optionen  ModbusTCP.

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

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

qmodmaster config

Mit dem Modbus verbinden

▷ Klicke auf Befehle  Verbinden, um eine Verbindung mit dem Modbus Slave herzustellen.

qmodmaster config

Daten abfragen

▷ Klicke auf Befehle  Lesen/Schreiben, um Daten abzurufen.

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

qmodmaster config

Modbus-Funktionen #

Das Modbus-Slave-Modul unterstützt die folgenden Modbus-Funktionen:

Funktion Beschreibung

Read Holding Registers (0x03)

Eingabedaten lesen.

Read Input Registers (0x04)

Ausgabedaten lesen.

Write Single Register (0x06)

In ein einzelnes Eingangsregister schreiben.

Write Multiple Registers (0x10)

In mehrere Eingangsregister schreiben.

Weitere Ressourcen #