IoT-Protokoll für die Industrie
Was ist MQTT?
MQTT ist ein ressourcensparendes Netzwerkprotokoll für die IoT-Kommunikation zwischen Geräten.
1. Was ist MQTT?
Bei MQTT handelt es sich um ein offenes Netzwerkprotokoll für den Datenaustausch zwischen Geräten, Maschinen, Cloud-Plattformen und anderen Anwendungen.
Die Kommunikation über MQTT ist im Gegensatz zu anderen Protokollen sehr ressourcensparend und zuverlässig (siehe auch Abschnitt „Wie funktioniert MQTT?“). Aus diesem Grund eignet sich MQTT für die (drahtlose) Datenübertragung in instabilen Netzwerken sowie für die Kommunikation mit kleineren Geräten wie Sensoren oder Mobiltelefonen.
Aufgrund seiner Leichtgewichtigkeit und Zuverlässigkeit hat sich MQTT als eines der wichtigsten Protokolle für das Internet of Things (IoT) und das Industrial Internet of Things (IIoT) etabliert. MQTT findet sowohl in der Industrie als auch in der Heim- und Städteautomatisierung vielerorts Anwendung.
MQTT war ursprünglich ein Akronym für „Message Queuing Telemetry Transport“. Seit MQTT v3.1.1 wird jedoch nur noch die Bezeichnung MQTT verwendet.
2. Wie funktioniert MQTT?
Bei MQTT findet die Kommunikation nicht direkt zwischen einem Sender und einem Empfänger statt, sondern über einen zentralen MQTT-Broker. Das funktioniert folgendermaßen:
- Geräte oder Anwendungen (Publisher) senden Daten an einen Server, welcher als MQTT-Broker agiert. Diese Daten werden mit einem Topic (Thema) versehen.
- Andere Geräte oder Anwendungen (Subscriber) abonnieren eines oder mehrere Topics bei dem MQTT-Broker.
- Der MQTT-Broker übermittelt Daten zu einem Topic automatisch an alle Anwendungen, welche dieses Topic abonniert haben.
Die Systeme, die als Publisher oder Subscriber agieren und Daten an den Broker senden oder von ihm abrufen, werden auch als MQTT-Clients bezeichnet (genau genommen sind MQTT-Clients kleine Programme, die auf verschiedensten Systemen laufen und die Schnittstelle zu MQTT implementieren). Der MQTT-Broker agiert als zentraler Vermittler zwischen diesen MQTT-Clients.
Im Vergleich mit anderen Protokollen stellt MQTT geringe Anforderungen an die Netzwerkbandbreite und die Systemressourcen der beteiligten Geräte. Die ressourcensparende Kommunikation wird u.a. dadurch ermöglicht, dass der MQTT-Broker alle Daten zwischenspeichert. Dadurch muss diese Aufgabe nicht mehr von den Geräten übernommen werden. MQTT-Broker befinden sich oft in der Cloud und sind daher in der Regel besonders leistungsfähig und skalierbar.
Gerade in der Industrie handelt es sich bei den MQTT-Publishern oft um Sensoren, die verschiedenste Daten erfassen und nach Topics strukturiert an den Broker übermitteln. Typische MQTT-Subscriber sind IoT-Plattformen, Big Data-Anwendungen, Analyse- und Enterprise-Software, Datenbanken und sogar Social Media-Plattformen. Auch IoT-Geräte, die Systemupdates über MQTT erhalten, treten als Subscriber auf.
Wie ist ein MQTT Topic aufgebaut?
MQTT-Topics folgen einer hierarchischen Struktur, vergleichbar mit Dateiverzeichnissen auf einem Rechner.
Ein MQTT-Topic könnte z.B folgendermaßen aufgebaut sein:
standort / produktionshalle / anlage / messung
Subscriber (Anwendungen, die Daten vom MQTT-Broker abrufen) können sowohl das gesamte Topic als auch eine einzelne Hierarchieebene abonnieren.
Was ist die MQTT Payload?
Eine MQTT-Nachricht enthält sowohl das Topic als auch den eigentlichen Dateninhalt. Letzterer wird als Payload bezeichnet. Die Datenstruktur der Payload ist nicht vorgegeben. In der Praxis werden z.B. JSON und OPC UA verwendet.
Was passiert bei einem Verbindungsabbruch?
Wenn die Verbindung zwischen einem Publisher und dem MQTT-Broker unterbrochen wird, kann der Broker die Abonnenten darüber informieren. Publisher können eine sogenannte „Last Will“-Nachricht zu einem Topic defnieren, die vom Broker gespeichert und im Fall eines unerwarteten Verbindungsabbruchs an alle Abonnenten des entsprechenden Topics versendet wird.
Bei einem Verbindungsausfall zwischen Broker und Abonnent kann der Broker die Nachrichten zwischenspeichern und an den Abonnenten senden, sobald dieser wieder verfügbar ist.
MQTT Quality of Service – Optionen für die Nachrichtenübermittlung
MQTT-Publisher können ihre Nachrichten an den MQTT-Broker mit einem bestimmten „Quality of Service“ (QoS) verschicken. Diese legt u.a. fest, wie oft die Nachricht verschickt werden soll und ob der Broker mit einer Empfangsbestätigung antwortet.
Bei der Quality of Service einer Nachricht gibt es folgende Abstufungen:
- Stufe 0: Eine Nachricht wird genau einmal zugestellt. Eine Bestätigung der erfolgreichen Zustellung durch den Broker erfolgt nicht.
- Stufe 1: Der Client sendet die Nachricht in bestimmten Zeitabständen solange, bis er eine Empfangsbestätigung des Brokers erhält-
- Stufe 2: Client und Broker tauschen Datenpakete aus, um sicherzustellen, dass jede Nachricht genau einmal gesendet und vom Broker empfangen wird.
Quality of Service Stufe 2 ist die zuverlässigste, aber gleichzeitig auch ressourcenintensivste Methode.
3. Wie sicher ist MQTT?
Das MQTT-Protokoll selbst definiert nur wenige Sicherheitsmaßnahmen. Durch seine Kompatibilität mit gängigen Sicherheitsstandards wie TLS wird MQTT jedoch zu einer sicheren Kommunikationsmethode, die auch für Umgebungen mit hohen Sicherheitsanforderungen geeignet ist.
Die Sicherheit der MQTT-Kommunikation beruht vor allem auf folgenden Konzepten/Technologien:
- Verschlüsselung des Datentransports: Die sichere Kommunikation auf der Transportschicht wird vor allem über die TLS-Verschlüsselung der Nachrichten erreicht, die zwischen dem MQTT-Broker und den Clients versendet werden.
- Client-Authentifizierung: Clients authentifizieren sich gegenüber dem Broker mit Benutzernamen und Passwort.
- Client-Berechtigungen: MQTTT-Broker legen fest, welche Berechtigungen einzelne Clients haben.
Gerade im Hinblick auf die Authentifizierung und die Berechtigungsverwaltung ist die richtige Konfiguration des MQTT-Brokers essenziell.
4. Wo wird MQTT eingesetzt? | Anwendungsfälle in der Industrie
Als leichtgewichtiges, zuverlässiges und sicheres IoT-Protokoll kommt MQTT in vielen Industrieumgebungen zum Einsatz.
Einige grundlegende Anwendungsfälle werden im Folgenden erläutert:
Integration von Sensoren in das IIoT: Mithilfe von MQTT können Sensoren und andere Kleinstgeräte verschiedenste Daten über das industrielle IoT an übergeordnete Anwendungen übermitteln, darunter z.B. Temperatur- oder Emissionswerte. Während viele andere Protokolle zu hohe Anforderungen an die Geräteressourcen stellen, wird bei MQTT ein großer Teil der Kommunikationsaufgaben durch den Broker übernommen, was die beteiligten Geräte entlastet und in vielen Fällen eine IIoT-Integration erst möglich macht.
Senden von Updates an IoT-Geräte: MQTT ist oft das Protokoll der Wahl, wenn es darum geht, Konfigurationsdaten und Systemupdates an mehrere verteilte IoT-Geräte zu senden. Die Geräte können als MQTT-Subscriber bestimmte Topics abonnieren und erhalten die entsprechenden Daten automatisiert und zuverlässig.
Asset Tracking: Mithilfe von IoT-Technologie sind Logistikunternehmen in der Lage, den Transport bestimmter Assets über weite Entfernungen zu verfolgen und zu überwachen. Durch seine Zuverlässigkeit, u.a. bedingt durch den Umgang mit Verbindungsabbrüchen, ist MQTT für solche Szenarien besonders gut geeignet.
Gezielte Übermittlung von Maschinendaten in die Cloud per IoT Gateway: Mit einem OPC UA Server wie dem KEPServerEX können Daten von Maschinen herstellerunabhängig abgerufen und im OPC UA Standard zur Verfügung gestellt werden. Mit seinem IoT Gateway bietet der KEPServerEX zusätzlich die Möglichkeit, diese Daten per MQTT in die Cloud zu senden. Somit kann eine IIoT-Infrastruktur geschaffen werden, die sämtliche Systeme auf einheitliche Weise integriert.
5. Welche-MQTT Broker gibt es?
Der MQTT-Broker dient als Vermittler zwischen den einzelnen MQTT-Kommunikationsteilnehmern (Clients). Er empfängt, speichert und verbreitet Nachrichten zu verschiedenen Topics und bildet somit das Kernstück des Publish-Subscribe-Modells von MQTT.
Bei der Auswahl eines MQTT-Brokers besteht die Option, einen externen, cloudbasierten Anbieter zu nutzen („Managed“, erfordert minimale Konfiguration) oder den Broker selbst zu hosten und zu verwalten.
Ein weit verbreiteter MQTT-Broker ist der HiveMQ Broker. HiveMQ ist als Enterprise-Lösung in vielen Unternehmen im Einsatz und bietet neben allen Vorteilen des MQTT-Protokolls auch Skalierbarkeit, eine einfache Integration in Backend-Systeme und ein Dashboard zum Verwalten der MQTT-Clients. Auch bekannte Cloud-Anbieter wie Amazon und Microsoft verfügen mit AWS IoT Core und Azure IoT Hub über eigene MQTT-Broker.
Beispiele für bekannte Open Source MQTT-Broker sind EMQX und Mosquitto.
Weitere Informationen
Was ist OPC UA?
OPC UA ist das führende Standardprotokoll für industrielle Kommunikation. Als solches ermöglicht es den herstellerunabhängigen Datenaustausch zwischen Steuerungen, Geräten, Software und zahlreichen anderen Systemen. Erfahren Sie in unserem Beitrag „Was ist OPC UA“ alles Wichtige über die Funktionsweise des industriellen Kommunikationsstandards, seine Vorteile sowie das umfangreiche Sicherheitskonzept.
Das Kepware IoT Gateway
Mit dem Kepware IoT Gateway des KEPServerEX streamen Sie Daten angebundener Maschinen und Geräte direkt in die Cloud. Dabei nutzt das Kepware IoT Gateway die IoT-Standardprotokolle MQTT und REST. In Verbindung mit den zahlreichen Treibern und Suiten des KEPServerEX integrieren Sie auf diese Weise auch ältere Anlagen in eine moderne IIoT-Infrastruktur.
KEPServerEX – Die industrielle Konnektivitätsplattform
Der KEPServerEX ist die ideale Lösung, wenn es um die Anbindung älterer Anlagen sowie Maschinen unterschiedlicher Hersteller geht. Mit über 160 Treibern und 34 Suiten ist er in der Lage, eine Verbindung zu verschiedensten Systemen herzustellen und deren Daten im OPC UA Format bereitzustellen. Darüber hinaus überzeugt der OPC Server von Kepware mit seinem umfangreichen Sicherheitskonzept sowie erweiterten Plug-ins, die unter anderem eine IIoT-Konnektivität unterstützen.
Sie können den KEPServerEX kostenlos und unverbindlich testen. Fordern Sie noch heute Ihre persönliche Demo an.