SPS als MQTT-Client – was ist das und wie richtest du ihn ein?

Ein SPS-MQTT-Client ist eine speicherprogrammierbare Steuerung (SPS/PLC), die Prozessdaten über das MQTT-Protokoll an einen Broker sendet oder von dort empfängt. Damit koppelst du deine Maschinensteuerung leichtgewichtig an IoT-Plattformen, Datenbanken oder Cloud-Dienste – ohne schwergewichtiges OPC-UA-Setup.
MQTT ist ein Publish/Subscribe-Protokoll über TCP (Standard-Port 1883, verschlüsselt 8883 via TLS). Deine SPS agiert als Client: Sie verbindet sich mit einem Broker und veröffentlicht Werte (z. B. Temperatur, Zählerstand, Status) unter einem Topic wie werk/linie1/temperatur. Andere Clients abonnieren dieses Topic und erhalten die Werte in Echtzeit. Umgekehrt kann die SPS Topics abonnieren und so Sollwerte oder Steuerbefehle empfangen.

1. Broker bereitstellen (z. B. Mosquitto oder HiveMQ, lokal oder auf einem Server). 2. In der SPS die MQTT-Client-Funktion/Bibliothek einbinden. 3. Verbindungsdaten setzen: Broker-IP, Port, Client-ID, ggf. Benutzer/Passwort und TLS-Zertifikat. 4. Topics und QoS-Stufe definieren. 5. Die SPS-Variablen den Topics zuordnen (Mapping). 6. Verbindung testen – abonniere das Topic mit einem Tool wie MQTT Explorer und prüfe, ob Werte ankommen.

Viele moderne Steuerungen bringen MQTT mit: Beckhoff TwinCAT (Funktion TF6701 / Tc3_IoT_MQTT), CODESYS-basierte Geräte über die MQTT-Bibliothek, WAGO PFC-Controller, Phoenix Contact PLCnext, B&R sowie Siemens S7-1200/1500 (per Bibliothek bzw. Firmware-Funktion). Ältere SPS ohne native Unterstützung koppelst du über ein Edge-Gateway (z. B. ein Raspberry Pi mit Node-RED), das die Steuerung per Modbus TCP ausliest und die Werte per MQTT weitergibt.

MQTT kennt drei Zustellgarantien: QoS 0 (höchstens einmal, ohne Bestätigung – schnell, aber Verlust möglich), QoS 1 (mindestens einmal – Werte kommen sicher an, können sich aber wiederholen) und QoS 2 (genau einmal – höchste Sicherheit, mehr Overhead). Für reine Monitoring-Werte reicht meist QoS 0 oder 1; für Steuerbefehle, bei denen jeder Befehl genau einmal wirken muss, ist QoS 2 die sichere Wahl.

Betreibe MQTT nie offen im Produktivnetz: Aktiviere TLS (Port 8883), vergib Benutzername/Passwort und schränke per Zugriffsrechten (ACL) ein, welcher Client welche Topics schreiben oder lesen darf. Trenne das Maschinennetz vom Büronetz und lasse den Broker nur über definierte Wege erreichbar sein. So verhinderst du, dass fremde Clients Steuerbefehle in deine SPS schreiben.
Für den industriellen Einsatz lohnt ein Blick auf Sparkplug B – eine Spezifikation, die auf MQTT aufsetzt und Topic-Struktur, Datentypen sowie einen Geräte-Lebenszyklus (Geburt/Tod von Knoten) einheitlich definiert. Das erleichtert es, Steuerungen verschiedener Hersteller sauber und selbstbeschreibend an eine zentrale Plattform anzubinden, statt jede Topic-Struktur einzeln zu erfinden.