ApprendreSparkplug B
Linter Sparkplug gratuit
Sparkplug B

MQTT déplace des octets. Sparkplug B leur donne un sens.

Sparkplug B est une spécification ouverte, maintenue au sein de la Fondation Eclipse, qui définit comment les équipements industriels doivent utiliser MQTT : un espace de topics fixe, un encodage compact Protocol Buffers et un modèle d'état de session bâti sur des certificats de naissance et de mort. Elle rend les données MQTT auto-descriptives et indique à chaque consommateur quels éditeurs sont en ligne et quelles valeurs sont actuelles.

Fonctionnement

Une forme de topics fixe, des messages qui portent la logique du protocole.

spBv1.0/groupe/…
Forme des topics : spBv1.0/{group_id}/{message_type}/{edge_node_id}/[{device_id}] — l'espace de nommage est fixé par la spécification, pas inventé projet par projet.
NBIRTH / DBIRTH
Un nœud de périphérie ou un équipement se met en ligne et déclare son jeu complet de métriques : noms, alias, types de données, unités.
NDATA / DDATA
Les changements seulement — report by exception, avec des charges utiles minuscules par alias, puisque le certificat de naissance a déjà tout déclaré.
NDEATH / STATE
Le broker lui-même annonce un nœud perdu via son testament enregistré ; les consommateurs doivent marquer ces métriques comme périmées au lieu de se fier à la dernière valeur.

Forces

Interopérabilité entre outils conformes sans analyse sur mesure, faible bande passante sur réseaux contraints, types et unités explicites, sémantique en ligne/périmé fiable d'emblée.

Limites

L'espace de topics reflète le réseau — groupes, nœuds, équipements — pas le métier. Le mappage vers un UNS structuré selon ISA-95 reste votre travail de modélisation.

Binaire

Les charges utiles sont en Protobuf, pas en JSON. Un consommateur MQTT générique ne peut pas lire des topics Sparkplug sans décodeur — par conception, pas par accident.

Pièges typiques en déploiement réel.

  • Confondre Sparkplug B et UNS. Il normalise charges utiles et état de session ; il ne conçoit ni votre hiérarchie métier ni votre gouvernance.
  • Pointer des consommateurs MQTT/JSON ordinaires vers des topics Sparkplug et s'étonner du charabia.
  • Ignorer les alias et le « rebirth » : un consommateur qui rejoint le flux en cours doit demander une renaissance pour apprendre la carte des métriques, pas la deviner.
  • Choisir les identifiants de groupe et de nœud à la légère — ils forment le sommet de votre espace de nommage, et les renommer casse tous les abonnés.
Notions Liées

La place de Sparkplug B dans la pile.

Sparkplug B est la couche charge utile et état sur laquelle tournent nombre de déploiements UNS, et un ajustement naturel aux exigences techniques minimales — edge driven, report by exception, ouvert, léger. ISA-95 apporte la hiérarchie métier qui manque à ses topics centrés équipement, la contextualisation prend le relais là où s'arrêtent ses unités et propriétés, et des données fiables et conscientes de leur fraîcheur comptent parmi les marqueurs que vérifie le travail de maturité IA. Vous pouvez analyser vos propres topics et charges utiles avec le linter Sparkplug B gratuit.

Questions fréquentes

Quelle est la différence entre Sparkplug B et MQTT seul ?

MQTT est un transport : il déplace des octets opaques entre éditeurs et abonnés et n'impose rien sur les topics ni les charges utiles. Sparkplug B ajoute les conventions manquantes — un espace de topics défini, un format binaire typé et une sémantique de session naissance/mort — pour que les outils conformes interopèrent sans code d'intégration sur mesure.

Sparkplug B est-il obligatoire pour un Unified Namespace ?

Non. C'est une option courante pour la couche charge utile et état. Certaines conceptions d'UNS utilisent plutôt des charges utiles JSON structurées sur des topics de type ISA-95, échangeant la compacité et le modèle d'état intégré de Sparkplug contre la lisibilité humaine et une consommation ad hoc plus simple. Ce qu'un UNS ne peut pas éluder, c'est une convention documentée unique.

Que se passe-t-il quand un équipement disparaît du réseau ?

Le broker publie le NDEATH du nœud de périphérie — enregistré d'avance comme testament MQTT — et les consommateurs doivent marquer comme périmées toutes les métriques de ce nœud et de ses équipements. Les valeurs fraîches reprennent avec un nouveau NBIRTH/DBIRTH. Les consommateurs continuent d'afficher les données, mais signalées comme non actuelles.