Rasp 4, S7<>Mosquitto<>Node Red : MQTT Kommunikation

Oest

Level-2
Beiträge
168
Reaktionspunkte
2
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,

ich habe eine Verbindung zwischen S7(TIA) und Mosquitto aufgebaut (erfolgreich getestet) und versuche nun, im Node Red die Daten von der SPS zu empfangen.
Mosquitto und Node Red befinden sich auf einem Rasperry Pi 4 mit Bookworm. In der Mosquitto.conf ist die ip der SPS als "listener" am Port 1883 eingetragen.
Im ersten Schritt habe ich im Node Red ein MQTT In erzeugt, und dort auf die IP der SPS am Port 1883 geschaut(neuer MQTT Broker). Leider keine Verbindung.
Wenn ich auf Locelhost schaue, gibt es eine Verbindung. Nun publishe ich etwas von der SPS. Dies kommt im Mosquitto an ( sehe ich in der Konsole ) aber nicht im Node Red.
Laut verschiedener Anleitungen, sollte das Node Red auf der selben Maschine problemlos auf den Broker Mosquitto zugreifen können.
Hat jemand einen Tip, wo es klemmen könnte?

Vielen Dank!







PS: Bitte keine Debatte über den Aufbau an sich, und alternative Ideen.
 
Eigentlich müsste es doch so aussehen, oder irre ich mich?

SPS> - <Mosquitto> - <NodeRed

Du musst ja nicht auf die SPS schauen, sondern nur auf die Topics welche du benötigst.
In welchem Dateiformat übergibst du denn die Daten? Wir machen das im JSON Format.

Verwendest du die aktuellen Bausteine der Siemens Bibliothek?

TLS oder kein TLS?
Hast du mal versucht über MQTT Explorer zB dir die Messages und Topics auf dem Broker anzuschauen?

Schau mal hier:
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
Eigentlich müsste es doch so aussehen, oder irre ich mich?

SPS> - <Mosquitto> - <NodeRed
sieht es doch

Kein TLS: wollte erstmal grundsätzlich testen.

Hast du mal versucht über MQTT Explorer zB dir die Messages und Topics auf dem Broker anzuschauen?
Wie gesagt, ich kann in der Konsole auf dem Raspi sehen, dass von der SPS "published" Daten ankommen.
Das Format im Node Red steht auf Auto detect. Das Topic heisst so, wie in der SPS.

Scheint aber raspi intern vom Mosqitto zum Node Red nicht mehr weiterzugehen. Ich vermute mal, dass ich etwas sinnloses übersehe.
Die IP muss stimmen, der Port, das Topic...
Dieses MQTT Protokoll steht auf 3.1.1. Muss das bei allen Teilnehmern geprüft werden?
 
Scheint aber raspi intern vom Mosqitto zum Node Red nicht mehr weiterzugehen. Ich vermute mal, dass ich etwas sinnloses übersehe.
Ich hab dir oben ja das Elko verlinkt, dort sind Anleitungen zum Einrichten vom Broker und von NodeRed auf dem gleichen Raspi.

sieht es doch

Kein TLS: wollte erstmal grundsätzlich testen.


Wie gesagt, ich kann in der Konsole auf dem Raspi sehen, dass von der SPS "published" Daten ankommen.
Das Format im Node Red steht auf Auto detect. Das Topic heisst so, wie in der SPS.
Solange du kein Format im Bytestream welches du an den Broker sendest vorgibst, kann auch kein Format erkannt werden.
Wir übergeben von allen Teilnehmern an den Broker im JSON Format, egal ob SPS, oder Softwareapplikationen etc.

Welches Format der Nachrichten braucht den NodeRed?

In der Mosquitto.conf ist die ip der SPS als "listener" am Port 1883 eingetragen.
Im ersten Schritt habe ich im Node Red ein MQTT In erzeugt, und dort auf die IP der SPS am Port 1883 geschaut(neuer MQTT Broker). Leider keine Verbindung.

Wenn du ja gerade eh nur am testen bist, wieso dann nicht:
Vorsicht, die folgende Konfiguration ermöglicht es ohne Authentifizierung mit dem MQTT-Broker über das Netzwerk zu kommunizieren.

Zuerst öffnen wir die Konfigurationsdatei von Mosquitto:
sudo nano /etc/mosquitto/conf.d/local.conf

In die Datei fügen wir folgende Zeilen ein:
listener 1883
allow_anonymous true

Anschließend die Datei speichern und schließen: Strg + O, Return, Strg + X.

Damit die Konfiguration wirksam wird, muss Mosquitto neu gestartet werden.
sudo systemctl restart mosquitto

Hinweis: Wenn der Mosquitto neu gestartet wird, werden dabei alle MQTT-Verbindungen beendet und müssen neu hergestellt werden.
 
Ist das Format so wichtig?
Ich habe das Format auf auto detect im Node red.

MQTT Explorer hast du auf dem raspi installiert oder auf dem laptop?
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ist das Format so wichtig?
Ich habe das Format auf auto detect im Node red.

MQTT Explorer hast du auf dem raspi installiert oder auf dem laptop?
Auf dem Laptop, Mosquitto läuft bei uns im Netzwerk im Container.

Ich kann nicht beurteilen wie wichtig Dateiformate für dich und deine Anwendung sind, für uns sind sie es schon. Daten aus meinem S7 Projekt, welche ich ans MQTT sende, werden zB im NodeRed weiterverarbeitet und wie gesagt, wir haben uns bei uns generell darauf geeinigt, alles im JSON Format zu publishen.

Niemand kennt bisher deinen Anwendungsfall, die Hardware die du einsetzt, die Software (TIA Version?), welche Bausteine du zur Kommunikation auf der Steuerung verwendest und was du eigentlich vorhast.
 
Rasp Pi 4 mit bookworm
TIA 17 (fand ich wenig interessant, da die Kommunikation zwischen TIA und Mosquitto läuft)

Vielleicht habe ich mich falsch ausgedrückt oder es ist mehr eine Frage an ein Raspberry Forum:
Ich will wissen, was auf dem Raspberry zwischen Mosquitto und Node Red schief gehen kann.

Ich werde mir MQTT Explorer mal anschauen, um ein klareres Bild zu bekommen.
 
Hallo,

nach einem Neustart aller Teilnehmer, hat es plötzlich funktioniert...
Komischer Fehler...der vermutlich wiederkommt.

Was bedeutet denn, Mosquitto läuft im Netzwerk im Container?
 
Zurück
Oben