Zum Hauptinhalt springen

RevPi als Modbus TCP Slave

Einleitung

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 ein RevPi-Modul 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

Stellen Sie 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. Verbinden Sie den RevPi Connect mit dem Master-Gerät über ein RJ45-Kabel.
  2. Schalten Sie den RevPi Connect ein, indem Sie ihn an eine geeignete Stromquelle anschließen.

Schritt 2: Konfiguration des Modbus TCP Slaves in PiCtory

Starten Sie PiCtory.

Webstatus login

Fügen Sie das Basismodul hinzu und fügen Sie den virtuellen Modbus TCP Slave zu Ihrer Konfiguration hinzu.

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

▷ Öffnen Sie den Ordner Virtuelle Geräte im Gerätekatalog.

  • Ziehen Sie Modbus TCP Slave auf das Basismodul auf der virtuellen Hutschiene.
    ➜ Der Modbus TCP Slave wird nun in der Konfiguration angezeigt

Konfigurieren Sie den Modbus TCP Slave

  • Wählen Sie den Modbus TCP Slave in der Konfiguration aus.

PiCtory config

  • Setzen Sie 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

Speichern Sie die Konfiguration und starten Sie den Treiber neu, um die Änderungen anzuwenden.

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, konvertieren Sie 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, verwenden Sie 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ühren Sie 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

  1. Laden Sie qModMaster auf einem Windows-PC herunter und installieren Sie es.

    • Setzen Sie 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

  2. qModMaster konfigurieren

▷ Klicken Sie auf Menü > Optionen und wählen Sie ModbusTCP aus.

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

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

qmodmaster config

  1. Mit dem Modbus verbinden
    ▷ Klicken Sie auf Befehle > Verbinden, um eine Verbindung mit dem Modbus Slave herzustellen.

    qmodmaster config

  2. Daten abfragen
    ▷ Klicken Sie 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:

FunktionBeschreibung
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