In der modernen Fabrik spielt die Kombination aus Siemens S7 Steuerungen und MQTT eine immer entscheidendere Rolle bei der nahtlosen Vernetzung von OT und IT Systemen. Dabei sind S7 Steuerungen für ihre Zuverlässigkeit und Leistungsfähigkeit in der Automatisierung bekannt. MQTT hingegen bietet die event-basierte und skalierbare Schnittstelle zwischen OT und IT. Aufgrund der Beliebtheit der Siemens Steuerungen und der zunehmenden Verbreitung von MQTT wächst die Notwendigkeit einer nahtlosen Integration beider Technologien. Zudem wird die Integration im Kontext der Industrial Unified Namespace Architektur immer bedeutender. Der folgende Schritt für Schritt Guide führt durch den Prozess, wie die Integration von Siemens S7 und MQTT gelingt.
Optionen für die Integration von Siemens S7 und MQTT
Die Anbindung einer Siemens S7 Steuerung an einen MQTT-Broker kann auf 3 Wegen erfolgen: über ein Gateway, auf Basis einer direkten Kommunikation mittels integrierter “LMQTT” Bibliothek in der S7 oder über einen OPC UA Server. Die Auswahl der geeigneten Variante hängt dabei von den spezifischen Use-Case Anforderungen und der vorhandenen Infrastruktur ab.
1. Option: Integration via Gateway
Eine der häufigsten Methoden für die Integration von Siemens S7 und MQTT ist die Verwendung eines Gateways (Software- oder Hardware-Gateway). Dabei agiert das Gateway als Brücke zwischen der Steuerung und dem MQTT-Broker. Das Gateway liest die Daten aus der S7 Steuerung aus, transformiert die Daten in MQTT Nachrichten und veröffentlicht diese Nachrichten im MQTT Broker. Diese Methode ist insbesondere für die Integration von S7 Steuerungen geeignet, welche OPC UA bzw. die “LMQTT” Bibliothek nicht unterstützen.
2. Option: Integration mittels S7 „LMQTT“ Bibliothek
Eine weitere effektive Methode zur Integration von S7 Steuerungen in MQTT-Netzwerke ist die Verwendung der „LMQTT“ Bibliothek. Diese Bibliothek ermöglicht eine direkte Kommunikation zwischen der S7 Steuerung und dem MQTT-Broker, ohne dass ein zusätzliches Gateway erforderlich ist. Die Steuerung verwendet dabei die „LMQTT“ Bibliothek, um Daten direkt als MQTT-Nachrichten zu formatieren und zu senden.
3. Option: Integration mittels OPC UA Server
Sofern die S7 Steuerung eine OPC UA Server Schnittstelle unterstützt, kann die Integration von Siemens S7 und MQTT auf Basis dieser Schnittstelle erfolgen. Dabei wird die Anbindung von OPC UA und MQTT in der Praxis auf 2 Arten realisiert: über ein Gateway oder auf Basis einer direkten Kommunikation mittels “OPC UA over MQTT”. Detaillierte Informationen sowie eine Schritt für Schritt Anleitung finden Sie hier.
Schritt-für-Schritt Anleitung zur Integration via Gateway
Folgende Schritte müssen durchlaufen werden, um die Anbindung der Steuerung an den MQTT Broker mittels eines Gateways zu realisieren.
Schritt 1: Überprüfung der Voraussetzungen
Überprüfen Sie die vorhandene Infrastruktur und konfigurieren Sie notwendigen Zugriffsrechte auf die Systeme, um eine zuverlässige Integration zu gewährleisten.
Gateway auswählen: Stellen Sie sicher, dass Ihr Gateway S7- und MQTT-Protokolle nativ unterstützt. Überprüfen Sie die Kompatibilität mit weiteren relevanten Systemen (z.B. Steuerungen, ERP) Ihrer OT/IT Landschaft. Stellen Sie sicher, dass das Gateway die erforderlichen Sicherheitsfeatures bietet. Je nach Anwendungsfall sollte das Gateway zusätzlichen Anforderungen standhalten (z.B. Redundanz, Skalierbarkeit).
Infrastruktur prüfen: Überprüfen Sie, ob Steuerung und MQTT Broker voll funktionsfähig sind und richten Sie eine Testumgebung ein. So können Sie die Integration und spätere Anpassungen in einer kontrollierten Umgebung testen, bevor Sie Änderungen in der Produktionsumgebung vornehmen.
Netzwerk konfigurieren: Nehmen Sie die erforderlichen Anpassungen in Ihrer Netzwerktopologie vor. Dies beinhaltet die Konfiguration von Ports und Firewalls, um die Kommunikation zu ermöglichen und gleichzeitig unbefugten Zugriff zu verhindern.
Zugriff und Berechtigungen: Stellen Sie sicher, dass Sie Zugriff auf die Steuerung, den MQTT-Broker sowie das Gateway haben. Dies umfasst auch die erforderlichen Benutzerrechte und Berechtigungen, um Konfigurationen vornehmen zu können. Installieren Sie bei Bedarf die entsprechende Konfigurationssoftware der Systeme.
Schritt 2: Identifikation der relevanten S7 Datenbausteine
Überprüfen Sie Ihre Steuerung, um sicherzustellen, dass die Steuerung die relevanten Datenpunkte (Datenbausteine) zuverlässig zur Verfügung stellt. Dies umfasst die Identifikation der für den Use-Case relevanten Datenbausteine in der Steuerung.
S7 Datenbausteine identifizieren: Bestimmen Sie, welche S7 Datenbausteine (Datenpunkte wie z.B. Sensordaten, Statusinformationen) für Ihren Use-Case relevant sind.
Datenbaustein-Typen und Attribute überprüfen: Überprüfen Sie, ob den Datenbausteinen die richtigen Typen (z.B. DB, FB, FC) und Attribute (z.B. Startadresse, Länge, Zugriffsrechte) zugewiesen sind. Stellen Sie sicher, dass diese korrekt in der Steuerung konfiguriert sind.
Schritt 3: Definition des MQTT Namespace
In S7-Steuerungen wird der Namespace (Adressraum) auf der Steuerungsebene definiert, wobei die Konfiguration von Datenbausteinen (DBs) eine Schlüsselrolle spielt. Im Gegensatz dazu entsteht der MQTT Namespace in Kollaboration zwischen Publisher und Subscriber. Dabei ist die Einhaltung einer standardisierten Struktur entscheidend für eine effektive Kommunikation und Datenorganisation in MQTT. Dieser Schritt beinhaltet:
Standardisierung der MQTT Topic Hierarchie: Ein Topic ist ein UTF-8-String, der den Pfad angibt, unter dem eine Nachricht veröffentlicht wird. Clients können Nachrichten zu diesen Topics publizieren oder sich für Topics abonnieren, um Nachrichten zu empfangen. Legen Sie dabei Richtlinien für die Benennung dieser Topics unter Berücksichtigung von Best Practices fest, um Konsistenz zu gewährleisten.
Standardisierung des MQTT Nachrichteninhalts (Payload): Die Definition eines standardisierten Payloads ist für Interoperabilität und Skalierbarkeit, insbesondere bei einem heterogenen Maschinenpark, zwingend erforderlich. Erstellen Sie hierfür ein Datenmodell, welches die folgenden Komponenten umfasst:
-
- Einheitliche Struktur des Payloads, einschließlich Metadaten (z.B. Maschinentyp und ID) und deren Repräsentation innerhalb der MQTT-Topics
- Einheitliches Datenformat, beispielsweise JSON oder XML, um die Datenverarbeitung und -integration zu vereinfachen
- Einheitliche Datentypen und Benennungskonventionen, um die Eindeutigkeit und Verständlichkeit der Daten zu gewährleisten.
Schritt 4: Mapping von S7 Datenbausteinen und MQTT Namespace
In diesem Schritt etablieren Sie eine Verbindung zwischen dem Gateway, der S7 Steuerung und dem MQTT Broker. Das Gateway fungiert dabei als Brücke zwischen den beiden Protokollen und übersetzt S7-Datenbausteine in standardisierte MQTT-Nachrichten.
Verbindungstest: Überprüfen Sie die Konnektivität zwischen S7 Steuerung, Gateway und dem MQTT-Broker. Achten Sie dabei besonders auf die Einhaltung der Sicherheitsrichtlinien. Dies beinhaltet die korrekte Einrichtung von Authentifizierungs- und Verschlüsselungsmethoden.
Mapping des MQTT Payloads: Mappen Sie die relevanten Daten aus den S7 Datenbausteinen auf das in Schritt 3 definierte Datenmodell. Vervollständigen Sie bei Bedarf das Datenmodell mit statischen Inputs (z.B. für Metadaten wie Maschinentyp und ID).
Mapping der MQTT Topics: Legen Sie fest, wie die MQTT Payloads den MQTT-Topics zugeordnet werden. Dies kann einfache 1:1-Zuordnungen umfassen oder, je nach den Use-Case Anforderung, komplexere Transformationen erfordern.
Transformationslogik implementieren: Nutzen Sie die Funktionalitäten Ihres Gateways, um die erforderlichen Datenkonvertierungen durchzuführen. Dies kann die Skalierung von Messwerten, die Umwandlung von Datentypen oder die Aggregation von Datenpunkten beinhalten.
Schritt 5: Integration von S7 und MQTT in Testumgebung
Nachrichtenübermittlung definieren: Legen Sie fest, wann die Steuerungsdaten in MQTT aktualisiert werden sollen. Dabei kann die Aktualisierung bei Änderungen an spezifischen Datenbausteinen (Best Practice) oder gemäß einem vordefinierten Zyklus (z.B. jede Sekunde) erfolgen. Definieren Sie zudem wichtige MQTT Einstellungen wie Quality of Service (QoS), Retain und Report by Exception.
Datenintegrität prüfen: Stellen Sie sicher, dass die Daten in Ihrer Testumgebung korrekt von der Steuerung über das Gateway zum MQTT-Broker fließen und alle Sicherheitsmechanismen wie geplant funktionieren.
Schritt 6: Inbetriebnahme und Monitoring
Inbetriebnahme: Nach erfolgreichem Test können Sie die S7 zu MQTT Integration in Betrieb nehmen.
Monitoring einrichten: Implementieren Sie Überwachungs- und Alarmierungsfunktionen, um die Systemleistung und die Integrität der Datenübertragung kontinuierlich zu überwachen.
Logging und Diagnose: Stellen Sie sicher, dass detaillierte Protokolle für die Fehlerbehebung und Optimierung der Systemleistung verfügbar sind.
Schritt-für-Schritt Anleitung zur Integration mittels „LMQTT Bibliothek“
Da sich die grundlegenden Schritte decken, werden die spezifischen Schritte für die Siemens S7 zu MQTT Integration mittels der „LMQTT“ Bibliothek im Folgenden vereinfacht dargestellt.
1. Voraussetzung prüfen: Für die Implementierung der Bibliothek auf der Steuerung sind folgende Voraussetzungen erforderlich.
-
-
- Verfügbarkeit von SPS-Programmierern: Für die Implementierung und Konfiguration der Bibliothek auf der Steuerung sind entsprechende Programmierressourcen notwendig.
- Hardware und Firmware Kompatibilität: Prüfen Sie, ob die Steuerung (z.B. S7-1200, S7-1500) die nötigen Ressourcen für die Bibliothek bietet. Für eine gesicherte Kommunikation via TLS muss auf der CPU (S7-1500 oder S7-1200) mindestens Firmware Version 2.0 bzw. 4.4 installiert sein.
- Programmierumgebung: Es ist die Verwendung des TIA Portals erforderlich.
- Netzwerkschnittstelle: Die Steuerung muss über eine Ethernet-Schnittstelle verfügen, um den Nachrichtenaustausch über TCP/IP zu ermöglichen.
-
2. TIA Portal Projekt erstellen: Erstellen Sie ein neues Projekt im TIA Portal für S7-1200 oder S7-1500 CPU. Konfigurieren Sie die IP-Adresse der CPU-Ethernet-Schnittstelle, damit sie im gleichen Subnetz wie der MQTT-Broker liegt.
3. „LMQTT“ Bibliothek hinzufügen: Laden Sie die „LMQTT“-Bibliothek herunter und füge sie zum Projekt hinzu. Öffnen Sie die Bibliothek im „Globalen Bibliotheken“-Bereich und ziehen Sie den FB „LMQTT_Client“ in ihr Projekt.
4. Globalen Datenbaustein (DB) erstellen: Erstellen Sie einen neuen globalen DB für die TCP/MQTT-Verbindungsparameter und die zu sendenden/empfangenen Nachrichten.
5. FB „LMQTT_Client“ integrieren: Füge den FB „LMQTT_Client“ in das Hauptprogramm (z.B. OB1) ein und verknüpfen Sie die benötigten Tags aus dem globalen DB.
6. MQTT konfigurieren: Wenn eine gesicherte Verbindung (TLS) benötigt wird, importieren Sie das Zertifikat des MQTT-Brokers. Konfigurieren Sie den FB, um das Zertifikat zu verwenden.
7. S7 zu MQTT Integration testen: Stellen Sie alle notwendigen Verbindungsparameter im DB ein, laden Sie das Programm auf die CPU und starte die Verbindung zum MQTT-Broker.
Hinweis: Aufgrund der Kompatibilitätsbeschränkung sowie der meist begrenzten Verfügbarkeit von SPS-Programmierern ist die Integration über die LMQTT Bibliothek im Brownfield oftmals nur bedingt geeignet.
Fazit
Die Kombination von S7 Steuerungen und MQTT eröffnet neue Möglichkeiten für eine intelligente und vernetzte Fertigung. Hierbei ist die Wahl der richtigen Integrationsmethode entscheidend für den Erfolg. Durch die Implementierung einer nachhaltigen Integrationsstrategie können Unternehmen nachweislich die Effizienz steigern, die Produktivität erhöhen und letztlich ihre Wettbewerbsfähigkeit verbessern. Dabei ist das einheitliche Mapping der S7 Datenbausteine und des MQTT Namespace über Systeme und Fabriken hinweg ein Schlüsselaspekt für eine gelungene Integration. In bestehenden Anlagen (Brownfield) geschieht dies meist über ein Gateway, welches die Standardisierung und Skalierung des MQTT Namespace im gesamten Unternehmen zwingend unterstützen sollte.