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
| Eingabefeld | Was wird eingetragen | Beispiel |
|---|---|---|
| IP-Adresse | MQTT-Broker | 192.168.10.50 |
| Port | MQTT-Broker-Port | 1883 (unverschlüsselt) / 8883 (TLS, künftig unterstützt) |
| Group ID (group-id) | Sparkplug Group — Einheit Werk/Standort | FactoryA, Plant01 |
| Edge Node ID (edge-node-id) | Einzelner Knoten oder + (alle Knoten) | + (Standard), edge-01 |
| Keep Alive (keep-alive) | MQTT-Keep-Alive in Sekunden | 60 (Standard) |
| Connect Timeout (connect-timeout) | Timeout der MQTT-Verbindung in ms | 5000 (Standard) |
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).
| Notation | Bedeutung |
|---|---|
edge1/Temperature | Node-Level-Metrik Temperature des Edge Node edge1 |
edge1/motor1/RPM | Metrik RPM des Device motor1 unter Edge Node edge1 |
edge1/dev2/Status | Beispiel: Gerätestatus als Boolean |
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-Datentyp | Empfohlen data_type |
|---|---|
| Int8 / Int16 / Int32 / UInt8 / UInt16 / UInt32 | Integer |
| Int64 / UInt64 / DateTime | Long |
| Float | Float |
| Double | Double |
| Boolean | Boolean |
| String / Text / UUID | String |
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.
Weiterführende Links
- 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/>