- Veröffentlicht auf
MQTT vs. Sparkplug B: Vergleich der Kommunikationsprotokolle Teil I
- Autoren
- Name
- Martin Szerment
Einführung
In der Welt des industriellen Internets der Dinge (IIoT) ist die Wahl des richtigen Kommunikationsprotokolls entscheidend.
Zwei beliebte Protokolle sind MQTT und Sparkplug B. Beide haben ihre einzigartigen Merkmale und Anwendungen. In diesem Artikel werden wir diese Protokolle, ihre Ursprünge, Funktionsweise, Dienstgüte, Nachrichtenaufbewahrung und die Unterschiede zwischen ihnen besprechen. Zusätzlich werden wir die Anwendung von Sparkplug B im Omnimes-System von Multiprojekt vorstellen.
Ursprung von MQTT
Das MQTT-Protokoll wurde 1999 von Andy Stanford-Clark von IBM und Arlen Nipper von Arcom (heute Cirrus Link) entwickelt. Seine Hauptprinzipien sind:
- Einfache Implementierung
- Bereitstellung von Dienstgütedaten (QoS)
- Leichtgewichtig und bandbreiteneffizient
- Datenunabhängigkeit
- Sitzungsfortsetzung (Nachrichtenaufbewahrung)
Funktionsweise von MQTT
MQTT arbeitet in einem Publish/Subscribe-Modell, bei dem ein Client bestimmte Themen abonniert und Nachrichten empfängt. Ein Beispielthema könnte switch/light/
sein, und die Nutzlast könnte ein JSON-Dokument sein:
{status: "ON", color:"red", date:"2023-01-08", time:"10:23"}

Dienstgüte (Quality of Service, QoS) in MQTT
MQTT bietet drei QoS-Stufen:
- QoS 0: "Höchstens einmal" - Die Nachricht wird einmal geliefert, ohne Bestätigung.
- QoS 1: "Mindestens einmal" - Die Nachricht wird mindestens einmal geliefert, mit Empfangsbestätigung.
- QoS 2: "Genau einmal" - Die Nachricht wird genau einmal geliefert, mit Empfangsbestätigung und Rückmeldung an den Sender.
Nachrichtenaufbewahrung (Message Retention) in MQTT
Die Nachrichtenaufbewahrung ermöglicht es, den letzten Zustand einer Nachricht zu speichern, was nützlich ist für Benachrichtigungen über den Status von Geräten. Auf diese Weise kann ein neuer Benutzer den letzten bekannten Zustand der Maschine erfahren.
Ursprung von Sparkplug B
Sparkplug B ist ein auf MQTT basierendes Protokoll, das von Arlen Nipper (Gründer von Cirrus Link) entwickelt wurde. Es wurde als Reaktion auf die Anforderungen der Industrie geschaffen und bietet im Vergleich zu OPC UA ein standardisierteres und weniger komplexes Protokoll.
Unterschiede zwischen MQTT und Sparkplug B
-
Kanal- und Nutzlastschema:
-
Sparkplug B: Standardisiertes Thema und Nutzlastschema. Beispielthema:
spBv1.0/switch/light/#
. Beispiel-Nutzlast:{ "timestamp": 1673262477011, "metrics": [ { "name": "status", "timestamp": 1673262477011, "dataType": "Int16", "value": "ON" }, { "name": "color", "timestamp": 1673262477011, "dataType": "Int16", "value": "red" } ], "seq": 9 } -
MQTT: Flexibility in der Gestaltung von Themen und Nutzlasten. Beispielthema:
switch/light/
. Beispiel-Nutzlast:
{ "status": "ON", "color": "red", "date": "2023-01-08", "time": "10:23" } -
-
Nachrichtenaufbewahrung:
- Sparkplug B: Keine natürliche Nachrichtenaufbewahrung. Es ist notwendig, einen Datenspeicher zu erstellen, der die letzten Zustände/Informationen eines bestimmten Geräts aufrechterhält.
- MQTT: Eingebaute Nachrichtenaufbewahrungsfunktionalität.
Anwendung von Sparkplug B im Omnimes System von Multiprojekt
Die Implementierung von Sparkplug B im Omnimes System hat mehrere Vorteile gebracht:
- Erstellung eines Konfigurationsassistenten
- Vereinfachte Verbindungseinrichtung
- Keine Vorgabe der Datenstruktur für den Benutzer
- Verlagerung der Verantwortung für die Konfiguration auf den Benutzer

Zusammenfassung
Die Wahl zwischen MQTT und Sparkplug B hängt von den spezifischen Bedürfnissen und Anforderungen der Anwendung ab.
- MQTT: Flexibler mit nativer Nachrichtenaufbewahrung.
- Sparkplug B: Bietet standardisierte Strukturen und ist besser für industrielle Anwendungen optimiert.
Beide Protokolle haben ihren Platz im IIoT-Ökosystem, und es ist wichtig, sorgfältig zu analysieren, welches am besten die Anforderungen Ihres Projekts erfüllt.
← Zurück zum Blog