In der modernen Fabrik gewinnt die nahtlose Integration von OT und IT zunehmend an Bedeutung. In diesem Kontext ist auch die Anbindung von Beckhoff TwinCAT Steuerungen an MQTT Netzwerke eine immer häufigere Anforderung. TwinCAT-Systeme sind durch ihre PC-basierte Architektur und die Offenheit für verschiedene Programmiersprachen besonders geeignet für flexible Lösungen in der Automatisierungtechnik. MQTT hingegen bietet die event-basierte und skalierbare Schnittstelle zwischen OT und IT. Aufgrund der Beliebtheit der Beckhoff Steuerung 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 Beckhoff TwinCAT zu MQTT gelingt.
Optionen für die Integration von Beckhoff TwinCat und MQTT
Die Anbindung von Beckhoff TwinCat an einen MQTT-Broker erfolgt in der Praxis auf 3 Wege: über ein Gateway, auf Basis einer direkten Kommunikation mittels integrierter “Tc3_IotBase“ Bibliothek 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 gängigsten Methoden für die Integration von Beckhoff TwinCAT und MQTT ist die Verwendung eines Gateways (Software- oder Hardware-Gateway). Hierbei dient das Gateway als Brücke zwischen der Steuerung und dem MQTT-Broker. Das Gateway extrahiert die Daten aus der TwinCAT Steuerung, wandelt sie in MQTT-Nachrichten um und veröffentlicht diese dann im MQTT-Broker. Diese Methode eignet sich besonders gut für die Integration von Beckhoff TwinCAT Steuerungen, die keine direkte Unterstützung für OPC UA bzw. spezielle MQTT-Bibliotheken bieten.
2. Option: Integration mittels Beckhoff „Tc3_IotBase“ Bibliothek
Eine weitere effektive Methode zur Integration von Beckhoff TwinCAT Steuerungen in MQTT-Netzwerke ist die Verwendung der „Tc3_IotBase“ Bibliothek. Diese Bibliothek ermöglicht eine direkte Kommunikation zwischen der TwinCAT Steuerung und dem MQTT-Broker, ohne dass ein zusätzliches Gateway erforderlich ist. Die Steuerung nutzt dabei die „Tc3_IotBase“ Bibliothek, um Daten direkt als MQTT-Nachrichten zu formatieren und zu senden.
3. Option: Integration mittels OPC UA Server
Sofern die Beckhoff Steuerung den TwinCAT OPC UA Server unterstützt, kann die Integration zu MQTT auf Basis von OPC UA 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 hierzu sowie eine Schritt für Schritt Anleitung finden Sie hier.
Schritt-für-Schritt zur Integration von TwinCAT zu MQTT via Gateway
Folgende Schritte müssen durchlaufen werden, um die Anbindung der Steuerung an den MQTT Broker mittels eines Gateways zu realisieren.
Schritt 1: Auswahl des Gateways
Stellen Sie sicher, dass das Gateway MQTT nativ unterstützt und die von ihnen bevorzugte Schnittstelle für TwinCAT bereitstellt. Dabei können abhängig von den Use-Case Anforderungen sowie den Fähigkeiten der Steuerung verschiedene Kommunikationsprotokolle genutzt werden. Neben OPC UA sind die gängigsten:
-
- ADS (Automation Device Specification): ADS ist Beckhoffs eigenes Protokoll für die Kommunikation zwischen Beckhoff-Steuerungen und Software. Es ermöglicht den direkten Zugriff auf die TwinCAT Systemfunktionalitäten, einschließlich Lesen und Schreiben von PLC-Variablen, Starten oder Stoppen von Programmen und Diagnosefunktionen.
- Modbus: Modbus ist ein einfach zu implementierendes Kommunikationsprotokoll, das sowohl in TCP/IP- als auch in seriellen Versionen verfügbar ist.
- EtherCAT: EtherCAT hauptsächlich ein Netzwerkprotokoll für die Kommunikation auf der Feldebene. Es kann allerdings auch für den Zugriff auf Steuerungssysteme über Drittsoftware verwendet werden, insbesondere wenn Echtzeitdatenaustausch erforderlich ist.
- TCP/IP: TCP/IP ist ein grundlegendes Internetprotokolle und kann für den direkten Datenaustausch mit TwinCAT-Steuerungen genutzt werden. TCP kann bei hoher Netzwerklast Latenzprobleme aufweisen etwa für benutzerdefinierte Kommunikationslösungen oder für die Integration in IT-Netzwerke.
Stellen Sie zudem sicher, dass das Gateway die erforderlichen Sicherheitsfeatures bietet. Je nach Anwendungsfall sollte das Gateway zusätzlichen Anforderungen standhalten (z.B. Redundanz, Skalierbarkeit).
Schritt 2: Ü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.
Infrastruktur prüfen: Überprüfen Sie, ob die TwinCAT-Steuerung und der 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 TwinCAT-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 3: Identifikation der relevanten TwinCAT Variablen
Überprüfen Sie Ihre Steuerung, um sicherzustellen, dass die Steuerung die relevanten Variablen zuverlässig zur Verfügung stellt. Dies umfasst auch die Identifikation der für den Use-Case relevanten Variablen in der Steuerung.
TwinCAT Variablen identifizieren: Bestimmen Sie, welche TwinCAT Variablen (Datenpunkte wie z.B. Sensordaten, Statusinformationen) für Ihren Use-Case relevant sind.
Variablen-Typen und Attribute überprüfen: Überprüfen Sie, ob den Variablen die richtigen Typen (z.B. INT, REAL, BOOL) und Attribute (z.B. Adresse, Länge, Zugriffsrechte) zugewiesen sind. Stellen Sie sicher, dass diese korrekt in der Steuerung konfiguriert sind.
Schritt 4: Definition des MQTT Namespace
In Beckhoff TwinCAT-Steuerungen wird der Namespace (Adressraum) auf der Steuerungsebene durch das Konfigurationsmanagement von symbolischen Adressen und Variablen definiert. 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 unter anderem die beiden folgenden Punkte.
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 5: Mapping von TwinCAT Datenbausteinen und MQTT Namespace
In diesem Schritt etablieren Sie eine Verbindung zwischen dem Gateway, der TwinCAT Steuerung und dem MQTT Broker. Das Gateway fungiert dabei als Brücke zwischen den beiden Protokollen und übersetzt TwinCAT Variablen in standardisierte MQTT-Nachrichten.
Verbindungstest: Überprüfen Sie die Konnektivität zwischen der TwinCAT Steuerung, dem Gateway und dem MQTT-Broker. Achten Sie dabei besonders auf die Einhaltung der Sicherheitsrichtlinien, einschließlich der korrekten Einrichtung von Authentifizierungs- und Verschlüsselungsmethoden.
Mapping des MQTT Payloads: Mappen Sie die relevanten TwinCAT Variablen auf das in Schritt 3 definierte Datenmodell. Ergänzen 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 Anforderungen des Use-Cases, 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 6: Integration von Beckhoff TwinCAT 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 Variablen (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 7: Inbetriebnahme und Monitoring
Inbetriebnahme: Nach erfolgreichem Test können Sie die Beckhoff TwinCAT 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 zur Integration von TwinCAT zu MQTT mittels „Tc3_IotBase“ Bibliothek
Da sich die grundlegenden Schritte decken, werden die spezifischen Schritte für die Beckhoff TwinCat zu MQTT Integration mittels der „Tc3_IotBase“ Bibliothek im Folgenden vereinfacht dargestellt.
- Voraussetzungen prüfen: Für die Implementierung der Bibliothek sind neben der entsprechenden Lizenz „TF6701 TC3 IoT Communication“ folgende Voraussetzungen erforderlich.
- Verfügbarkeit von SPS-Programmierern: Für die Implementierung und Konfiguration der Bibliothek auf der Steuerung sind entsprechende Programmierressourcen notwendig.
- Betriebssysteme: Windows 7/10, Windows Embedded Standard 7, Windows CE 7, oder TwinCAT/BSD.
- TwinCAT Version: Mindestens TwinCAT 3.1 Build 4022.0 für MQTTv3 und TwinCAT 3.1 Build 4026.0 für MQTTv5.
- TwinCAT Setup-Level: Erforderlich sind TwinCAT 3 XAE oder XAR.
- Hardware: Kompatible PC-Architektur (x86, x64, ARM).
- Installation der Tc3_IotBase:
- TwinCAT 3 Setup: Installieren Sie das TwinCAT 3 XAE oder XAR Setup, welches die notwendigen Treiber und die SPS-Bibliothek Tc3_IotBase enthält.
- Installation über TwinCAT Package Manager: Verwenden Sie den TwinCAT Package Manager, um die Tc3_IotBase zu installieren. Dies kann über das Kommando tcpkg install TF6701.IotCommunication.XAE erfolgen.
- Konfiguration der Tc3_IotBase:
- Projekteinstellungen in TwinCAT: Öffnen Sie Ihr TwinCAT Projekt und fügen Sie die Tc3_IotBase zu Ihren Bibliotheken hinzu.
- SPS-Programmierung: Erstellen Sie einen neuen SPS-Programmbaustein, in dem Sie eine Instanz von FB_IotMqttClient sowie notwendige Hilfsvariablen deklarieren.
- Einrichten der MQTT-Verbindung:
- Konfigurieren des FB_IotMqttClient: Setzen Sie die MQTT-Client-Parameter, wie sHostName (der Hostname des MQTT-Brokers), nHostPort (der Port des Brokers) und gegebenenfalls Authentifizierungsdetails.
- Konfigurieren Sie das Topic und die Payload für die zu sendenden und zu empfangenden Nachrichten.
- Nachrichten senden und empfangen:
-
- Verbindung zum Broker testen: Implementieren Sie Logik in Ihrem SPS-Programm, um die Verbindung zum Broker herzustellen, Nachrichten zu senden und zu empfangen. Nutzen Sie den Execute-Aufruf des FB_IotMqttClient, um die Verbindung zu initiieren.
- Testen der Pub/Sub-Funktionalität: Überprüfen Sie, ob das Senden und Empfangen von Nachrichten wie erwartet funktioniert.
-
Hinweis: Die Verfügbarkeit von SPS-Programmierern und die Kompatibilitätsanforderungen können die Integration in einem Brownfield-Projekt einschränken. Daher sollte die Eignung der „Tc3_IotBase“ Bibliothek sorgfältig abgewägt werden.
Fazit
Die Kombination von Beckhoff TwinCAT 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 TwinCAT Variablen 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.