Temperaturmessungen mit RevPi Core als Modbus-TCP-Master

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 Core 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 Core und Modbus-TCP-Slaves befinden sich im selben Netz.
  • Modbus-TCP-Slaves haben statische IP-Adressen.

Slave an das RevPi Core anschließen

  • Verbinde den Slave über die RJ45-Buchse mit Deinem RevPi Core.
  • Schließe Dein RevPi Core 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 Core 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

  • Öffne Deinen Webbrowser.
  • Gib die IP-Adresse Deines RevPi Cores in die Adresszeile Deines Browsers ein.

Das Anmelde-Fenster öffnet sich.

Login Webstatus Screenshot
  • Melde Dich mit dem Benutzernamen „admin“ an.
  • Gib Dein Passwort ein. Du findest es auf dem Aufkleber an der Seite Deines RevPi Cores.
  • Klicke auf „Login“.

Du siehst jetzt den aktuellen Gerätestatus Deines RevPi Cores.

  • Klicke auf das Register „Services“.
  • Klicke auf “Enabled” in der Zeile Enable/Disable Modbus Master.
  • Klicke auf den Button “save all”.
Services Reiter Screenshot

Tipp!: Du kannst die Master-Funktion auch in der Kommandozeile aktivieren. Gib dazu folgendes Kommando ein:  „sudo revpi-config enable pimodbus-master”

  • Klicke auf das Register “Apps”.
  • Klicke auf den Start-Button hinter dem Eintrag “PiCtory”.
Apps Reiter Screenshot

PiCtory öffnet sich.

Modbus-TCP-Master konfigurieren

  • Öffne im Device Catalog den Ordner “Virtual Devices”.
  • Wähle den Modbus TCP-Master aus.
  • Halte die link Maustaste gedrückt und ziehe den Modbus TCP-Master auf Dein RevPi Core.

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.
HINWEIS
Für jeden Slave, den Du verwenden möchtest, brauchst Du einen virtuellen Master.
  • 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.