LMQTT auf der Siemens SPS konfigurieren

LMQTT ist die kostenlose MQTT-Client-Bibliothek von Siemens für S7-1200 und S7-1500. Damit spricht deine SPS direkt mit einem MQTT-Broker, ohne dass du das Protokoll selbst programmieren musst.
LMQTT (oft als LMQTT_Client bezeichnet) ist ein fertiger Funktionsbaustein, den Siemens im Industry Online Support (SIOS) gratis anbietet. Er läuft auf S7-1200 und S7-1500 und macht die SPS zum MQTT-Client: Sie kann Werte an einen Broker senden (publish) und Nachrichten empfangen (subscribe). Du bindest ihn in TIA Portal ein und rufst ihn im Programm auf – eigenen Protokoll-Code brauchst du nicht.

1) Bibliothek aus dem Siemens SIOS herunterladen und in TIA Portal als globale Bibliothek öffnen. 2) Den Baustein LMQTT_Client per Drag-and-drop in dein Projekt kopieren. 3) Ihn als Instanz-DB in einem zyklischen Baustein (z. B. OB1 oder Weckalarm-OB) aufrufen – der FB muss in jedem Zyklus laufen. 4) Die Ethernet-/PROFINET-Verbindung über die Verbindungsparameter (TCON_IP_v4) mit Broker-IP und Port festlegen. 5) Client-ID, Topics und QoS setzen. 6) Programm in die SPS laden und den Verbindungsstatus am Baustein prüfen.

Du brauchst eine S7-1200 oder S7-1500 mit integrierter Ethernet-Schnittstelle und eine passende TIA-Portal-Version (die LMQTT-Bibliothek nennt im SIOS die unterstützten TIA- und Firmware-Stände – halte dich an diese Angabe). Außerdem muss ein MQTT-Broker erreichbar sein, z. B. Mosquitto im eigenen Netz oder ein Broker in der Cloud. Notiere dir vorab: Broker-IP, Port (Standard 1883 unverschlüsselt), Benutzer/Passwort falls gefordert und die Topic-Struktur.

Trag die Broker-IP und den Port in die Verbindungsparameter des Bausteins ein – 1883 für unverschlüsselt, 8883 für TLS. Vergib eine eindeutige Client-ID (sonst wirft der Broker doppelte Verbindungen). Für das Senden definierst du ein Publish-Topic (z. B. sps/halle1/temperatur) und legst QoS 0, 1 oder 2 fest; zum Empfangen abonnierst du ein Subscribe-Topic. Achte auf saubere, eindeutige Topic-Pfade – so wie bei anderen Anlagen im Stromfee-Umfeld (z. B. Loxone-Broker mit Topic-Präfix je Gerät).

Für eine gesicherte Verbindung nutzt du die TLS-Variante des Bausteins (LMQTT-Client mit Zertifikats-Unterstützung) über Port 8883. Dafür hinterlegst du das Zertifikat des Brokers im Zertifikatsmanager der CPU. TLS ist rechenintensiver – für stabilen verschlüsselten Betrieb ist die S7-1500 in der Regel die bessere Wahl. Prüfe im SIOS, welche Firmware-Version dein CPU-Typ für TLS mitbringen muss.
Verbindung kommt nicht zustande? Meist ist der FB nicht in jedem Zyklus aufgerufen, die Client-ID doppelt vergeben, eine Firewall blockiert Port 1883/8883, oder Broker-Zugangsdaten fehlen. Prüfe den Status- und Fehler-Ausgang des Bausteins – dort steht der konkrete Fehlercode. Halte außerdem die Keep-Alive-Zeit realistisch, damit der Broker die Verbindung nicht vorzeitig trennt, und teste zuerst unverschlüsselt, bevor du auf TLS umstellst.