# Beckhoff und IOT (MQTT)



## philipp00 (15 November 2020)

Hallo zusammen

Hat jemand erfahrung im MQTT Bereich mit Beckhoff?
Kann diese mit jeder CX und Twincat 3 gemacht werden oder benötigt man eine spezielle CX?
Ich möchte einen kleinen Versuch starten und ein paar Datenpunkte aus einem Gebäude in die Cloud bringen und dies, dann dort auch darzustellen in einem Dashboard und dort eine Archivierung zu machen.


----------



## trobo (16 November 2020)

Ahoi!

Im Prinzip brauchst du nur als Basis eien Runtime wie z.B. Twincat 3 auf Basis von Windows 7/8/10, Windows CE und die TF6701 | TC3 IoT Communication (MQTT) Erweiterung
, mit der du dann direkt aus deinem Programm eine MQTT Verbindung herstellen kannst.

Die Anforderungen und Beispiele kannst du den Links entnehmen:

https://www.beckhoff.ch/default.asp?twincat/tf6701.htm?id=1890643770678926

https://infosys.beckhoff.de/index.p...45035999793499275.html&id=7599399970075164030

Als Gegenpart zur Darstellung und Archivierung würde sich eventuell Grafana mit InfluxDB anbieten. Da beides erstmal kostenlos ist und leicht zu handlen. (Gedankenanstoß -> https://diyi0t.com/visualize-mqtt-data-with-influxdb-and-grafana/ )

Alternativ kann man natürlich auch in der Beckhoff Welt bleiben, da gbit es auch Datenbank und Dasboard für IoT.

Viele Grüße


----------



## philipp00 (16 November 2020)

Danke für dein Feedback.
Wie sieht es bei der Version mit Grafana aus, wird da noch ein Broker benötigt?
Hast du schon eine dieser Varianten ausprobiert?


----------



## trobo (16 November 2020)

Ich habe eine Grafana InfluxDB Instanz mit einem quelloffenen mqtt broker realisiert, ja.

Mit Beckhoff direkt hab ich es noch nicht probiert, steht noch auf meiner Liste.

Man benötigt grundsätzlich einen MQTT Broker, ja. Soweit ich aber weis kann dieser auch lokal auf der CX/SPS laufen. Welchen du da nimmst ist dir überlassen.


----------



## philipp00 (16 November 2020)

Dann wäre es möglich z.B mosquitto auf meiner CX zu installieren und von da die Daten zu versenden oder empfangen.
Wird der Broker auch benötigt im zusammenspiel mit IOT Hub von Azure oder ist dieser bereits dort integriert?


----------



## trobo (16 November 2020)

Auch das kannst du direkt über den TF 6701 realisieren, da ja der IoT Hub MQTT anbietet:

https://infosys.beckhoff.de/index.p...communication_mqtt/63050398311355531.html&id=

Also: mit dem IoT Hub von Azure benötigst du keinen Broker!


----------



## Guga (16 November 2020)

Cloud hört sich immer super an ist aber ein verdammt unpräziser Ausdruck.
Es gibt bei Beckhoff die Möglichkeit zu einem Broker zu sprechen (TF6701) oder aber dann integrationen zu bekannten Clouds (TF671x).

Das "wie" kann man aber erst sagen wenn man weiss wohin und was. Also sprich!

Guga


----------



## philipp00 (28 November 2020)

Habe heute wieder mal mit MQTT rumgespielt, dabei ist bei mir die Frage aufgetaucht ob Beckhoff einen eingenen Broker hat oder ob es sinn macht einen Broker auf der CX zu installieren um MQTT Signale von IOT Geräten zu empfangen.

Wenn ja welchen Broker würded ihr empfehlen? mosquitto?

Gruss


----------



## Guga (29 November 2020)

Mosquitto = Freie Software und die Standardantwort auf die Frage.
Wo du ihn installierst hängt von der Architekturfrage ab. Wenn du nur "klein" "klein" arbeitest ist er lokal.
"Gross" "gross" ist dann die Variante das du in einer UnternehmensIT (mit vielen! Geräten) einen entsprechenden globalen Broker hast... Eventuell dann noch eine eigene Cloud...

Guga


----------



## PT1 (29 November 2020)

Ich hab mein eigenes Hausprojekt relativ neu aufgesetzt.
Wago PFC100
Mosquitto MQTT Broker (Docker)
Openhab (Docker)
Node Red (Docker)
Influx DB & Grafana (Docker)
Die Wago hat den Hut auf und generell immer das letzte Wort. MQTT Befehle welche per Node-Red (Getriggert durch Openhab) kommen werden erst durch die SPS bestätigt und dann wird das item update durchgeführt in OH.
Ist jetzt zwar keine Beckhoff, aber Wago ist ja auch Beckhoff. 

Die aktuellen CX Controller können meines Wissens nach alle MQTT - Fakto jede CX welche einen Webserver an Bord hat kann das.
Die aktuellen CX kernel basieren alle auf Linux.

Grüße PT1


----------



## PT1 (29 November 2020)

@philipp00
Ich hab mein eigenes Hausprojekt relativ neu aufgesetzt.
Wago PFC100
Mosquitto MQTT Broker (Docker)
Openhab (Docker)
Node Red (Docker)
Influx DB & Grafana (Docker)
Die gesamte Kommunikation zwischen OpenHab/NodeRed und der SPS ist mittels MQTT realisiert.
Die Wago hat den Hut auf und generell immer das letzte Wort. MQTT Befehle welche per Node-Red (getriggert durch Openhab) kommen werden erst durch die SPS bestätigt und dann wird das item update durchgeführt in OH.
Ist jetzt zwar keine Beckhoff, aber Wago ist ja auch Beckhoff. 

Die aktuellen CX Controller können meines Wissens nach alle MQTT - Fakto jede CX welche einen Webserver an Bord hat kann das.
Die aktuellen CX kernel basieren alle auf Linux.

Grüße PT1


----------



## philipp00 (30 November 2020)

Hallo PT1 
Danke für dein Feedback, hört sich schon mal ganz gut an.
Was ich noch nicht ganz verstehe ist wieso du alles in Docker verpackst, ich könnte ja einfach den Mosquitto auf der CX installieren und von der CX Daten auf den Brocker senden und Empfangen?
Die Docker sind mir noch etwas fremd, daher vielleicht auch die Frage.

Gruss


----------



## PT1 (30 November 2020)

Das geht natürlich auch ohne Docker Container.
Ich hab das ganze in Container verpackt, da ich so die ganze Distribution einfach sichern und auch umziehen kann.
Aktuell läuft das ganze auf einem Intel Nuc mit Ubuntu Server. RasperrbyPi empfehle ich hier nicht. Der hat schlicht zu wenig Power.
Habs mit dem größten Rpi4 probiert. Mit dem Nuc geht die Kommunikation fast in Echtzeit.
Das merkt man vor allem, wenn man mal veruscht, übers Handy Jalousien im Winkel zu verstellen.

Bei der CX weiss ichs jetzt nicht genau ob sie von Werk aus einen MQTT Client dabei haben. Die Wago PFC haben schon einen MQTT Client integriert.
Auf der Beckhoff Seite gibt es zumindest anleitung wie man einen MQTT Client für Twincat installiert

Grüße


----------



## philipp00 (30 November 2020)

Danke für deine Erklärung, evtl. macht es trotzdem Sinn, sich mit der Docker geschichte etwas vertraut zu machen.
So wie ich das sehe sollte es möglich sein einen MQTT Client auf TWINCAT zu erstellen.


----------



## NieZuSpaet (2 Dezember 2020)

Auf GitHub gibt es ein Projekt "twincat2mqtt" Läuft bei mir recht gut auf einem CX9010 und einem Raps-B als MQTT_Server...
Gruß
H.


----------



## philipp00 (4 Dezember 2020)

Danke für das Feedback.
Aber ich denke immer wenn ein Raspi ins Spiel kommt ist es schwierig dies für den kommerzionellen gebrauch zu verwenden.


----------



## Blockmove (4 Dezember 2020)

philipp00 schrieb:


> Danke für das Feedback.
> Aber ich denke immer wenn ein Raspi ins Spiel kommt ist es schwierig dies für den kommerzionellen gebrauch zu verwenden.



Du musst den Raspi überhaupt nicht ins Spiel bringen.
Für MQTT brauchst du einfach einen Broker. Ob der nun lokal auf der SPS, auf einem Raspi, einem PC, in einem Container oder in der Cloud läuft ist egal.
Im industriellen Einsatz ist es einfach eine Frage wer das System betreut.
Ein "normaler" Instandhalter wird von MQTT sicher nicht begeistert sein. Vorallem wenn man MQTT sicher umsetzt (z.B. Authentifizierung mit Zertifikaten).
Dann bleibt nämlich nicht mehr viel übrig von den Marketing-Sprüchen wie "In 10min. haben Sie ihre Sensordaten in der Cloud".

Gruß
Blockmove


----------



## NieZuSpaet (4 Dezember 2020)

philipp00 schrieb:


> Danke für das Feedback.
> Aber ich denke immer wenn ein Raspi ins Spiel kommt ist es schwierig dies für den kommerzionellen gebrauch zu verwenden.



Sehe ich auch so. Mir ging es auch eher darum, dass es einen Client gibt, der auf der SPS läuft...


----------



## philipp00 (4 Dezember 2020)

Da habt ihr recht.
Mit der Frage der Sicherheit habe ich micht noch nicht wirklich auseinander gesetzt, kennst du dich damit etwas aus?


----------



## NieZuSpaet (4 Dezember 2020)

Leider nein. Mein System läuft hier nur lokal und ohne Authentifizierung.


----------

