#NR4V1 : Kombination von S7 und MQTT

Applikationsbeschreibung: #NR4V1 : Kombination von S7 und MQTT

Zugehörige Dokumentation:

  • Applikationsbeschreibung: #NR0V1 : mbEDGE auf meinem Router einrichten
  • Applikationsbeschreibung: #NR1V1 : Hello World
  • https://nodered.org/docs/user-guide/
  • https://cookbook.nodered.org/mqtt/
  • https://flows.nodered.org/node/node-red-contrib-s7

Diese Applikation beschreibt, wie man mit einer S7 kommuniziert und den Wert in einem Node-RED Dashboard anzeigt. Der Sollwert eines Wertes wird an den MQTT Broker gesendet und auch der aktuelle Wert einer Variable wird an den MQTT Broker gesendet. Beide Werte werden dann vom Node-RED Dashboard angezeigt und vom MQTT Broker gelesen.

Für diese Applikation stellen wir einen Beispiel-Flow für Node-RED zur Verfügung, der Widgets anzeigt und Werte von einer S7-1200 Steuerung liest. Bitte beachten Sie, dass diese Applikation auf dem Router läuft und über http oder https://router-ip:1880/ui aufgerufen werden kann. Sie können auch von außerhalb über einen Web2Go-Link von Ihrem mbCONNECT24-Konto darauf zugreifen.

Beschreibung 1 – Dashboard

Dieses Dashboard zeigt Widgets zur Visualisierung von Daten und Steuersollwerten an. Der Sollwert "Room 1 Temperature" wird als Topic "RoomTemperature" an einen öffentlichen MQTT Broker gesendet. Dieses Topic wird dann wiederum vom Broker gelesen und im Widget "Set Temperature" angezeigt. Der Wert "temperature" wird von der S7-1200 Steuerung gelesen und als Topic "CurrentTemperature" an den öffentlichen MQTT Broker gesendet. Dieses Topic wird dann wiederum vom Broker gelesen und im Widget "Current Temperature" angezeigt.

Dieses Beispiel ist sehr einfach, da es keinen programmierten Code in einer Funktions Node benötigt.

Das folgende Bild zeigt den Ablauf und gibt einen Eindruck davon, wie es organisiert ist.

Beschreibung 2 - Node-RED Flow

Um mit einer S7-Steuerung zu kommunizieren, müssen Sie eine Eingangs- oder/und Ausgangs Node auswählen.

Beschreibung 3 - S7 Eingang und Ausgang

Verwenden Sie input, wenn Sie Werte lesen wollen, und output, wenn Sie Werte in eine S7-Steuerung schreiben wollen.

Schauen wir uns die Parameter einmal genauer an:

Beschreibung 4 - Konfiguration der S7 Verbindung

Die IP-Adresse sollte Ihre Steuerung sein.

  • Der Zugriff auf die S7-1200 und S7-1500 Steuerung erfordert den Zugriff über "Slot 1" und Sie müssen den optimierten Blockzugriff (im TIA Portal) für die von Ihnen verwendeten Blöcke deaktivieren. Außerdem müssen Sie in der S7-Steuerung im TIA Portal "GET/PUT-Zugriff aktivieren". Dadurch wird die Steuerung auch für den Zugriff durch andere Anwendungen geöffnet, so dass Sie sich der Auswirkungen auf die Sicherheit bewusst sein sollten.

Definieren Sie Ihre Variable auf der Registerkarte "Variablen".

Beschreibung 5 - Konfiguration der Variabeln

Syntax der S7-Adresse.

Beispiele:

  • MR30 - MD30 als REAL
  • DB10,INT6 - DB10.DBW6 als INT
  • DB10,I6 - gleich wie oben
  • DB10,INT6.2 - DB10.DBW6 und DB10.DBW8 in einem Array mit der Länge 2
  • PIW30 - PIW30 als INT
  • DB10,S20.30 - String an Offset 20 mit einer Länge von 30 (tatsächliche Array-Länge 32 aufgrund des Formats des String-Typs, Längenbyte wird gelesen/geschrieben)
  • DB10,S20.30.3 - Array mit 3 Strings an Offset 20, jeder mit einer Länge von 30 (tatsächliche Array-Länge 32 aufgrund des Formats des String-Typs, Längenbyte wird gelesen/geschrieben)
  • DB10,C22.30 - Zeichenarray an Offset 22 mit einer Länge von 30 (am besten nicht mit Strings verwenden, da das Längenbyte ignoriert wird)

Um mit MQTT zu kommunizieren, müssen Sie eine Eingangs- oder/und Ausgangs Node auswählen.

In diesem Beispiel verwenden wir einen öffentlichen MQTT-Broker: broker.mqttdashboard.com. Wir empfehlen, diesen nur für Tests und Tutorials zu verwenden - nicht für den produktiven Einsatz.

Beschreibung 6 - MQTT Server Konfiguration

Wenn Sie eine Serveradresse ausgewählt und eingerichtet haben, fahren Sie mit der Definition Ihres Topics Namens fort.

Beschreibung 7 - MQTT Topic Konfiguration

Den Flow als Datei zum Importieren in Ihre Applikation finden Sie unten.