Zum Hauptinhalt springen

Sparkplug B — IIoT-Standard (MQTT-basiert)

Sparkplug B ist ein von Eclipse Tahu / Cirrus Link definierter IIoT-Messaging-Standard (industrielles IoT). Er setzt auf einen MQTT-Broker eine standardisierte Topic-Struktur sowie Google-Protobuf-Payloads auf, sodass Geräte unterschiedlicher Hersteller interoperabel sind. PlantPulse Edge abonniert die Sparkplug-Topics des Brokers, cacht die Metriken automatisch und stellt sie über den Tag-read() unmittelbar bereit.


Eingabefelder bei der Registrierung

EingabefeldWas wird eingetragenBeispiel
IP-AdresseMQTT-Broker192.168.10.50
PortMQTT-Broker-Port1883 (unverschlüsselt) / 8883 (TLS, künftig unterstützt)
Group ID (group-id)Sparkplug Group — Einheit Werk/StandortFactoryA, Plant01
Edge Node ID (edge-node-id)Einzelner Knoten oder + (alle Knoten)+ (Standard), edge-01
Keep Alive (keep-alive)MQTT-Keep-Alive in Sekunden60 (Standard)
Connect Timeout (connect-timeout)Timeout der MQTT-Verbindung in ms5000 (Standard)
Group / Edge Node ID müssen mit dem Publisher (NBIRTH) auf Broker-Seite übereinstimmen

Prüfen Sie, mit welcher Group- bzw. Edge-ID die Senderseite (Eclipse Tahu / Ignition / Cirrus Link MQTT Engine usw.) die NBIRTH-Nachricht sendet, und tragen Sie denselben Wert ein. Mit edge-node-id=+ abonnieren Sie alle Knoten der Gruppe auf einmal.


PLC-Adressnotation der Tags

Vom Sparkplug-Metrik-Bezeichner wird nur der Teil nach der Group verwendet (die Group wird über die Treiberoption separat gesetzt).

NotationBedeutung
edge1/TemperatureNode-Level-Metrik Temperature des Edge Node edge1
edge1/motor1/RPMMetrik RPM des Device motor1 unter Edge Node edge1
edge1/dev2/StatusBeispiel: Gerätestatus als Boolean
Name vs. Alias

Die Sparkplug-Senderseite veröffentlicht bei NBIRTH/DBIRTH den Metriknamen zusammen mit einem Alias (numerisch). Danach senden NDATA/DDATA nur noch den Alias, um die Payload-Größe zu reduzieren. Der PlantPulse-Treiber pflegt die Zuordnung Alias↔Name automatisch, daher muss stets nur der Name eingegeben werden.


Automatische Datentyperkennung

Die Sparkplug-B-Payload gibt für jede Metrik den Datentyp an (Int8/16/32/64, UInt8/16/32/64, Float, Double, Boolean, String, DateTime, Bytes usw.). Der Treiber konvertiert entsprechend dem Datentyp auf der Leitung in den passenden Typ und cacht ihn als String; ordnen Sie data_type des Tags daher wie folgt zu.

Sparkplug-DatentypEmpfohlen data_type
Int8 / Int16 / Int32 / UInt8 / UInt16 / UInt32Integer
Int64 / UInt64 / DateTimeLong
FloatFloat
DoubleDouble
BooleanBoolean
String / Text / UUIDString

Schreiben (NCMD / DCMD)

Der Schreibvorgang von PlantPulse verzweigt automatisch nach NCMD/DCMD.

  • edge1/SetPoint (Segment 2) → NCMD-Publish (Befehl auf Node-Ebene)
  • edge1/dev1/SetPoint (Segment 3+) → DCMD-Publish (Befehl auf Device-Ebene)

In der aktuellen Phase werden alle Befehlswerte als String-Datentyp publiziert. Da die Senderseite (Tahu / Ignition) den Datentyp der Metrik kennt, erfolgt die Umwandlung in der Regel automatisch.


  • Eclipse Tahu — <https://eclipse.dev/tahu/>
  • Sparkplug Spec v3.0 — <https://sparkplug.eclipse.org/specification/>
  • Cirrus Link MQTT Engine — <https://www.cirrus-link.com/mqtt-engine/>