Connessione · Sparkplug B

MQTT Sparkplug B su un’unica piattaforma IoT industriale

Sparkplug B è la specifica aperta di Eclipse che trasforma il semplice MQTT in un protocollo autodescrittivo e consapevole dello stato per l’internet delle cose industriale. Kilo lo parla nativamente, come Sparkplug Host Application (applicazione host) e come Edge Node (nodo edge), su MQTT 3.1.1 e 5.0, testato con il TCK ufficiale di Sparkplug 3.0.0.

SPARKPLUG ONLINE

Supera il TCK ufficiale di Sparkplug 3.0.0 · vedi i risultati

Sparkplug B · basi

Cos’è MQTT Sparkplug B?

MQTT sposta messaggi attraverso un broker ma lascia aperte tre domande: cosa significa un topic, cosa contiene un payload e se il mittente è ancora vivo. Sparkplug B, la specifica aperta di Eclipse per l’internet delle cose industriale, risponde a tutte e tre.

Topic

Un unico namespace dei topic

Ogni messaggio vive sotto spBv1.0/group/type/edge-node/device, così ogni host sa da dove arriva un valore senza il manuale del produttore.

Payload

Payload Protocol Buffers

La «B» è la codifica: uno schema protobuf compatto di Eclipse Tahu in cui ogni metrica porta nome o alias, tipo di dato, timestamp e valore.

Stato

Regole sullo stato di sessione

Certificati birth e death, numeri di sequenza e richieste di Rebirth dicono a ogni host cosa è online, così un dato obsoleto non appare mai come attuale.

Sparkplug B · confronto

Sparkplug B vs MQTT: cosa aggiunge Sparkplug?

Sparkplug B non sostituisce MQTT: funziona su qualsiasi broker MQTT 3.1.1 o 5.0 e aggiunge l’accordo che il semplice MQTT lascia a ogni produttore.

MQTT semplice MQTT Sparkplug B
Topic Scelti da ogni produttore Namespace spBv1.0 fisso per ogni dispositivo
Payload Qualsiasi formato, spesso JSON proprio Metriche Protocol Buffers tipizzate
Scoperta Leggere il manuale del produttore Il certificato birth elenca ogni metrica
Stato online Ignoto, a meno di costruirlo Death tramite il Will MQTT, subito
Store and forward Dati persi se ogni client non li bufferizza Salvati con timestamp all’edge, inviati come storico alla riconnessione
Banda Payload completo a ogni publish Invio su variazione, alias delle metriche
Integrazione Parsing su misura per dispositivo Configurazione, non codice

Sparkplug B · topic

Come funziona il namespace dei topic Sparkplug B?

Ogni topic Sparkplug ha le stesse cinque parti. Il tipo di messaggio, al centro, dice cos’è il messaggio; una Host Application si annuncia su spBv1.0/STATE/host_id.

spBv1.0 Namespace e versione
/
group_id Un sito, una linea o un’area
/
message_type Cos’è il messaggio
/
edge_node_id Gateway o controllore
/
device_id Macchina o sensore (facoltativo)
NBIRTH

Un Edge Node va online ed elenca tutte le sue metriche.

DBIRTH

Un dispositivo dietro il nodo va online con le sue metriche.

NDATA · DDATA

Solo i valori cambiati, invio su variazione.

NDEATH · DDEATH

Un nodo o dispositivo va offline; i suoi dati diventano obsoleti.

NCMD · DCMD

Comandi da un host verso un nodo o un dispositivo.

STATE

Una Primary Host Application annuncia di essere online.

Sparkplug B · stato di sessione

Come funzionano i certificati birth e death di Sparkplug?

I certificati birth descrivono tutto ciò che un nodo invierà; i certificati death, consegnati dal broker come Will MQTT, lo segnano offline nel momento in cui la connessione cade.

  1. CONNECT

    NDEATH registrato come Will

    L’Edge Node si connette con il suo certificato death come Will MQTT, con un numero bdSeq.

  2. NBIRTH

    Certificato birth del nodo

    Ogni metrica del nodo con tipo di dato e valore attuale, lo stesso bdSeq e seq 0.

  3. DBIRTH

    Birth dei dispositivi

    Uno per dispositivo dietro il nodo, così l’host conosce ogni metrica prima di qualsiasi dato.

  4. DATA

    Solo variazioni

    NDATA e DDATA portano i valori cambiati; seq va da 0 a 255 così l’host nota ogni buco.

  5. NDEATH

    Death o Rebirth

    Se il collegamento cade, il broker pubblica l’NDEATH. Davanti a un buco, l’host invia Rebirth.

Sparkplug B · ruoli

Cosa sono Edge Node e Host Application in Sparkplug?

Un Edge Node possiede la sessione MQTT all’edge; una Host Application consuma i dati. Kilo ricopre entrambi i ruoli, sul broker che scegli.

Edge Node

Gateway, PLC o software edge

  • Pubblica birth, dati e death
  • Esegue NCMD e DCMD
  • Attende l’host primario se configurato
Broker MQTT

Qualsiasi broker MQTT 3.1.1 o 5.0

  • Instrada i topic spBv1.0
  • Consegna il Will NDEATH
  • Conserva lo STATE retained
Host Application

Piattaforma IIoT Kilo

  • Pubblica STATE come Primary Host
  • Traccia bdSeq, seq e Rebirth
  • Trasforma le metriche in dispositivi, regole e allarmi

Sparkplug B · architettura

Come costruire un Unified Namespace con MQTT Sparkplug?

Uno unified namespace (UNS) è un’architettura IIoT in cui ogni sistema pubblica il proprio stato attuale in un’unica gerarchia condivisa, di solito un broker MQTT, invece di integrazioni punto a punto.

  • Riporta la gerarchia dello stabilimento sugli ID Sparkplug: il gruppo per un sito o un’area, l’Edge Node per una linea o una cella, il dispositivo per una macchina.
  • I certificati birth rendono ogni nodo autodescrittivo, così le nuove apparecchiature compaiono nel namespace senza mappatura manuale.
  • I certificati death mantengono il namespace fedele: appena un nodo muore, ogni valore che possiede viene segnato come obsoleto.
  • Kilo consuma lo stesso namespace, così dashboard, regole e allarmi vedono lo stabilimento esattamente come viene pubblicato.
Azienda broker / UNS mqtts://uns.example.com
Sito · area group_id plant-berlin
Linea · cella edge_node_id line-3
Macchina device_id filler
Metrica metric Motor/Temperature = 71.5 °C

Sparkplug B · confronto

OPC UA vs MQTT Sparkplug B

Sono complementari più che rivali: un’architettura IIoT comune legge le apparecchiature via OPC UA all’edge e le pubblica come Sparkplug B sul broker che alimenta lo unified namespace.

OPC UA MQTT Sparkplug B
Dove si colloca Livello di macchina e cella Dal sito all’azienda e al cloud
Schema Client/server (più PubSub) Publish/subscribe tramite broker
Modello dati Modello informativo ricco e tipizzato Metriche tipizzate, template, dataset
Traffico Polling o sottoscrizioni per client Invio su variazione, un flusso per tutti
Stato Per sessione Certificati birth e death per ogni nodo

Sparkplug B · broker

Quale broker MQTT funziona con Sparkplug B?

Qualsiasi broker che implementi MQTT correttamente può trasportare Sparkplug B. Kilo funziona con il broker che già gestisci, su mqtt:// o mqtts://, oppure con un endpoint Cloud MQTT gestito.

Richiesto

Broker Sparkplug Compliant

Qualsiasi broker MQTT 3.1.1 o 5.0 con QoS 0 e 1, messaggi retained e Will. È tutto ciò che serve a Edge Node e host.

Facoltativo

Broker Sparkplug Aware

Conserva inoltre gli ultimi certificati birth per chi si collega più tardi. Utile, ma né host né Edge Node dipendono da esso.

Kilo

Il tuo broker o Cloud MQTT

Punta Kilo al broker che i tuoi Edge Node usano già, o lascia che la piattaforma crei un endpoint gestito con credenziali proprie.

Sparkplug B · esempio

Esempio MQTT Sparkplug B

Una linea di riempimento in un sito, dal primo certificato birth a una connessione persa, così come i messaggi appaiono sul broker.

  • L’Edge Node line-3 registra il suo NDEATH come Will, poi pubblica il suo NBIRTH e un DBIRTH per il dispositivo filler.
  • Da quel momento viaggiano solo le variazioni: un DDATA per variazione, ognuno con il numero seq successivo.
  • I comandi scendono lungo lo stesso albero come DCMD.
  • Se il gateway perde l’alimentazione, il broker pubblica l’NDEATH e ogni host segna offline line-3 e filler.
spBv1.0 · plant-berlin
NBIRTH spBv1.0/plant-berlin/NBIRTH/line-3
bdSeq=4 · seq=0 · Node Control/Rebirth (Boolean)
DBIRTH spBv1.0/plant-berlin/DBIRTH/line-3/filler
Bottles/Count (UInt64) · Motor/Temperature (Float) · State (String)
DDATA spBv1.0/plant-berlin/DDATA/line-3/filler
seq=12 · Motor/Temperature = 71.5
DCMD spBv1.0/plant-berlin/DCMD/line-3/filler
Bottles/Count = 0
NDEATH spBv1.0/plant-berlin/NDEATH/line-3
bdSeq=4 · pubblicato dal broker come Will

Sparkplug B · conformità

Cos’è il TCK di Eclipse Sparkplug?

Il Technology Compatibility Kit è la suite di test ufficiale della Eclipse Foundation per la specifica. L’implementazione Sparkplug B di Kilo supera il TCK 3.0.0 firmato per i profili Edge Node e Host Application, su MQTT 5.0 e 3.1.1, e ogni risultato è pubblico.

28/28
Esecuzioni del TCK superate
273
Requisiti superati
2
Profili testati
6/6
Gruppi opzionali superati

Connessione · Sparkplug B

Come collegare dispositivi Sparkplug B a una piattaforma IoT?

1

Punta Kilo al tuo broker

Aggiungi un connettore Sparkplug B al broker che i tuoi Edge Node usano già, o a un endpoint Cloud MQTT, e scegli i gruppi a cui iscriverti.

2

I birth diventano dispositivi

Ogni NBIRTH e DBIRTH registra il suo nodo o dispositivo con ogni metrica, tipo di dato e unità, quindi non serve alcun mapping del payload.

3

Dati, death e comandi

Le variazioni affluiscono in dashboard, regole e allarmi; i death segnano subito i valori come obsoleti; i comandi tornano come NCMD e DCMD.

Connessione · Sparkplug B

Cosa deve supportare una piattaforma IIoT per Sparkplug B?

Sparkplug 3.0.0
Profili Edge Node e Host Application, su MQTT 3.1.1 e MQTT 5.0, testati con il TCK ufficiale di Sparkplug 3.0.0.
Stato di sessione completo
Tracciamento di bdSeq e seq, death consegnati dal Will, richieste di Rebirth a ogni buco e marcatura come obsoleto nel momento in cui un nodo o un dispositivo muore.
STATE dell’host primario
Uno STATE birth retained e uno STATE death come Will, così gli Edge Node che attendono l’host primario sanno quando Kilo è in ascolto.
Riordino dei messaggi
I messaggi fuori ordine vengono trattenuti e riordinati entro un timeout prima di richiedere un Rebirth, così un breve intoppo del broker non è perdita di dati.
Tutti i tipi di dato
Tutti i tipi scalari e array di Sparkplug B, dataset, template, proprietà e alias delle metriche, decodificati in base a ciò che ogni birth ha dichiarato.
Comandi in entrambe le direzioni
Scritture NCMD e DCMD sulle metriche di nodi e dispositivi, incluso Node Control/Rebirth, da dashboard, regole o API.

Connessione · Sparkplug B

Cosa si può fare con i dati Sparkplug B?

Connessione · Sparkplug B

Domande frequenti su Sparkplug B

Sparkplug B è la stessa cosa di MQTT?

No. MQTT è il trasporto; Sparkplug B è una specifica sopra di esso che fissa il namespace dei topic, il payload Protocol Buffers e le regole sullo stato di sessione. Ogni messaggio Sparkplug B è un messaggio MQTT, ma la maggior parte del traffico MQTT non è Sparkplug.

Quali versioni di MQTT supporta Sparkplug B?

Sparkplug 3.0.0 funziona su MQTT 3.1.1 e MQTT 5.0. Kilo supporta entrambe ed è stato testato su entrambe con il TCK ufficiale.

Serve un broker speciale per Sparkplug B?

No. Va bene qualsiasi broker MQTT 3.1.1 o 5.0 che gestisca correttamente QoS 1, i messaggi retained e il Will. Un broker Sparkplug Aware è facoltativo.

Sparkplug B è open source?

La specifica è uno standard aperto della Eclipse Foundation sotto Eclipse Public License, e lo schema del payload è pubblicato in Eclipse Tahu. I prodotti la implementano in modo indipendente; l’implementazione di Kilo è propria.

Qual è la differenza tra IIoT e IoT?

L’IIoT, l’internet delle cose industriale, è l’IoT applicato a stabilimenti, utility e infrastrutture, dove i dati arrivano da PLC, contatori e macchine e devono essere affidabili, con timestamp e consapevoli dello stato. Questa affidabilità è esattamente ciò che Sparkplug B aggiunge a MQTT.

Posso continuare a usare JSON su MQTT?

Sì. Il connettore MQTT di Kilo continua a fare il parsing dei payload JSON, così dispositivi Sparkplug B e dispositivi MQTT semplici possono convivere nella stessa organizzazione.

Collegare dispositivi Sparkplug B a Kilo

Inizia gratis e punta Kilo al tuo broker, oppure prenota una call: mappiamo insieme gruppi Sparkplug, Edge Node e dispositivi.