WagoAppMQTT: Wofür die Bibliothek da ist und wie du sie nutzt

WagoAppMQTT ist eine Applikations-Bibliothek von WAGO für CODESYS 3 / e!COCKPIT, mit der eine WAGO-Steuerung als MQTT-Client arbeitet. Du bindest sie in dein SPS-Projekt ein und kannst damit Prozessdaten an einen MQTT-Broker senden (Publish) und Topics abonnieren (Subscribe).
Die Bibliothek stellt Funktionsbausteine bereit, mit denen deine WAGO-SPS eine Verbindung zu einem MQTT-Broker (z. B. Mosquitto, HiveMQ oder eine Cloud-Plattform) aufbaut. Über diese Bausteine veröffentlichst du Variablenwerte als MQTT-Nachrichten und empfängst umgekehrt Befehle oder Sollwerte. So bekommst du deine Anlage ohne Zusatzhardware ins IoT- bzw. MQTT-Ökosystem.

WagoAppMQTT ist für die programmierbaren WAGO-Controller gedacht, die mit e!COCKPIT/CODESYS 3 programmiert werden – typischerweise die PFC100- und PFC200-Reihe sowie neuere Compact- und Edge-Controller. Klassische 750-Feldbuskoppler ohne eigene CPU können die Bibliothek nicht ausführen. Prüfe im Zweifel im WAGO-Katalog, ob dein Gerät e!COCKPIT-programmierbar ist.

1) Öffne dein Projekt in e!COCKPIT (bzw. CODESYS). 2) Füge über den Bibliotheksverwalter die WagoAppMQTT-Bibliothek hinzu; ist sie nicht vorhanden, lädst du sie über den WAGO-Installer/das WAGO-Portal nach. 3) Lege eine Instanz des Client-Bausteins an und parametrierst Broker-Adresse, Port und ggf. Zugangsdaten. 4) Ruf die Instanz zyklisch auf und ergänzt Publish-/Subscribe-Bausteine für deine Topics.

Kern ist der MQTT-Client-Baustein, der die Verbindung zum Broker verwaltet (Aufbau, Halten, Wiederverbindung, Status). Dazu kommen Bausteine zum Publizieren einzelner Topics und zum Abonnieren. Über Ein- und Ausgänge steuerst du Topic-Name, Nutzdaten (Payload als String/Byte-Array), QoS-Stufe und das Retain-Flag; ein Status-/Fehler-Ausgang zeigt dir, ob die Aktion erfolgreich war.

Unverschlüsseltes MQTT läuft üblicherweise über Port 1883, TLS-gesichertes MQTT über Port 8883. Für TLS musst du in der Steuerung die passenden Zertifikate hinterlegen und den Client entsprechend parametrieren. Nutze in produktiven Anlagen möglichst TLS und Benutzer/Passwort oder Zertifikats-Authentifizierung, statt Daten offen über 1883 zu senden.
Prüfe der Reihe nach: Ist die Broker-IP/der Hostname von der SPS aus erreichbar (Netzwerk, Firewall)? Stimmen Port (1883 vs. 8883) und Zugangsdaten? Passen bei TLS die Zertifikate und die Uhrzeit der Steuerung? Der Status- bzw. Fehler-Ausgang des Client-Bausteins liefert dir einen Code, mit dem du in der WAGO-Doku die genaue Ursache nachschlägst.
Ja. Eine WAGO-SPS aus der PFC-Reihe (PFC100/PFC200) sowie die Touch-Panels und Edge-Controller können MQTT direkt sprechen — der Controller ist dabei der MQTT-Client, nicht der Broker. Er verbindet sich also mit einem externen Broker (z. B. Mosquitto oder einem Cloud-Endpunkt), veröffentlicht seine Prozesswerte (Publish) und/oder abonniert Befehls-Topics (Subscribe). Genau dafür ist die Bibliothek gedacht, um die es auf dieser Seite geht: die WagoAppMQTT im e!COCKPIT-/CODESYS-Umfeld. Sie kapselt Verbindungsaufbau, Topics, QoS und Payload, sodass du im SPS-Programm nur noch Funktionsbausteine aufrufst, statt das Protokoll selbst zu implementieren.
Konkret gehst du so vor: (1) In e!COCKPIT/CODESYS die WagoAppMQTT-Bibliothek einbinden. (2) Einen Client-Baustein (Connect) mit Broker-Adresse, Port und — falls nötig — Zugangsdaten und TLS parametrieren. (3) Für jeden Wert, den du sendest, ein Publish auf ein Topic wie z. B. „anlage/bhkw/leistung“ mit deiner Payload (üblich ist JSON) anlegen; für Befehle von außen ein Subscribe auf das passende Topic. (4) Auf der Gegenseite läuft der Broker, an den sich Auswertung, Datenbank oder Dashboard anhängen. In der Energie-Praxis ist genau das der übliche Weg, WAGO-Anlagendaten in Echtzeit an ein Energiemonitoring zu übergeben, weil MQTT ereignisbasiert, leichtgewichtig und für viele parallele Datenpunkte gut geeignet ist. Wichtig: Ohne erreichbaren Broker läuft keine MQTT-Kommunikation — die WAGO-Steuerung liefert die Daten, der Broker verteilt sie.
MQTT ist ein Publish-/Subscribe-Protokoll: Ein Teilnehmer schickt Daten unter einem Thema (Topic) an einen Broker, andere Teilnehmer abonnieren dieses Topic und bekommen die Werte zugestellt. Wichtig für die Einordnung: Ein WAGO-Controller (etwa PFC100/PFC200 oder ein Touch Panel) ist in dieser Kette der Client, nicht der Broker — den Broker brauchst du zusätzlich, entweder im eigenen Netz (z. B. Mosquitto auf einem Server oder Industrie-PC) oder als Cloud-Dienst. Auf den Controller kommt MQTT auf zwei Wegen: erstens über die Weboberfläche des Geräts (Web-Based Management), wo die Cloud-/MQTT-Anbindung ohne eine Zeile SPS-Code konfiguriert wird, zweitens direkt im Steuerungsprogramm über die MQTT-Bibliothek in e!COCKPIT bzw. CODESYS, die Funktionsbausteine zum Verbinden, Publizieren und Abonnieren mitbringt. Beide Wege reden dasselbe Protokoll — sie unterscheiden sich darin, wer die Topics und den Nachrichteninhalt bestimmt.
Praktisch gehst du so vor: 1) Broker klären — Hostname oder IP, Port (1883 unverschlüsselt, 8883 für TLS), Benutzername/Passwort und bei TLS das CA-Zertifikat, das du auf den Controller hochlädst. 2) Firmware-Stand des Controllers prüfen, denn die MQTT-Funktion hängt an der Geräte-Firmware und an der passenden Bibliotheksversion. 3) Verbindung anlegen: im Web-Based Management unter der Cloud-/MQTT-Konfiguration Broker, Port, Client-ID und Zugangsdaten eintragen — oder im Programm den Verbindungsbaustein mit denselben Angaben parametrieren. 4) Topic-Struktur festlegen, bevor du Daten schickst (z. B. anlage/standort/messgroesse), sonst wird das Aufräumen später teuer. 5) Die Prozesswerte aus der Steuerung an den Publish-Baustein übergeben und zyklisch oder bei Änderung senden. Die Ja-Nein-Frage dahinter: Reicht dir die Weboberfläche? Ja — wenn du nur Prozessdaten in fester Struktur an einen Broker oder Cloud-Dienst weitergeben willst. Nein, dann nimm die Bibliothek — nämlich sobald du Topic-Namen und Nachrichtenaufbau (etwa eigenes JSON) selbst bestimmen, mehrere Ziele bedienen oder eingehende Nachrichten abonnieren und in der Steuerung verarbeiten willst. Für Befehle aus dem Netz zurück in die Anlage brauchst du in jedem Fall den Weg über das Programm plus eine saubere Freigabe- und Sicherheitslogik in der Steuerung selbst.
→ Vertiefung: WAGO SPS programmieren: So starten Sie mit e!COCKPIT
→ Ausführlich zu ki mqtt: MQTT Broker – was er macht und wie du ihn einrichtest