Conexión · Sparkplug B
MQTT Sparkplug B en una sola plataforma de IoT industrial
Sparkplug B es la especificación abierta de Eclipse que convierte el MQTT estándar en un protocolo autodescriptivo y consciente del estado para el internet industrial de las cosas. Kilo lo habla de forma nativa, como Sparkplug Host Application (aplicación host) y como Edge Node (nodo de borde), sobre MQTT 3.1.1 y 5.0, probado con el TCK oficial de Sparkplug 3.0.0.
Supera el TCK oficial de Sparkplug 3.0.0 · ver los resultados
Sparkplug B · fundamentos
¿Qué es MQTT Sparkplug B?
MQTT mueve mensajes a través de un broker, pero deja tres preguntas abiertas: qué significa un topic, qué contiene un payload y si el emisor sigue vivo. Sparkplug B, la especificación abierta de Eclipse para el internet industrial de las cosas, responde a las tres.
Un único namespace de topics
Cada mensaje vive bajo spBv1.0/group/type/edge-node/device, así que cualquier host sabe de dónde viene un valor sin el manual del fabricante.
Payload Protocol Buffers
La «B» es la codificación: un esquema protobuf compacto de Eclipse Tahu donde cada métrica lleva nombre o alias, tipo de dato, marca de tiempo y valor.
Reglas de estado de sesión
Certificados birth y death, números de secuencia y peticiones de Rebirth indican a cada host qué está online, así que un dato obsoleto nunca se muestra como actual.
Sparkplug B · comparativa
Sparkplug B vs MQTT: ¿qué añade Sparkplug?
Sparkplug B no sustituye a MQTT: funciona sobre cualquier broker MQTT 3.1.1 o 5.0 y añade el acuerdo que MQTT a secas deja en manos de cada fabricante.
Sparkplug B · topics
¿Cómo funciona el namespace de topics de Sparkplug B?
Todos los topics de Sparkplug tienen las mismas cinco partes. El tipo de mensaje, en el centro, dice qué es el mensaje; una Host Application se anuncia en spBv1.0/STATE/host_id.
Un Edge Node se conecta y lista todas sus métricas.
Un dispositivo detrás del nodo se conecta con sus métricas.
Solo los valores que cambian, envío por cambio.
Un nodo o dispositivo pasa a offline; sus datos quedan obsoletos.
Comandos de un host de vuelta a un nodo o dispositivo.
Una Primary Host Application anuncia que está online.
Sparkplug B · estado de sesión
¿Cómo funcionan los certificados birth y death de Sparkplug?
Los certificados birth describen todo lo que enviará un nodo; los certificados death, que el broker entrega como Will de MQTT, lo marcan offline en cuanto cae la conexión.
- CONNECT
NDEATH registrado como Will
El Edge Node se conecta con su certificado death como Will de MQTT, con un número bdSeq.
- NBIRTH
Certificado birth del nodo
Cada métrica del nodo con su tipo de dato y valor actual, el mismo bdSeq y seq 0.
- DBIRTH
Births de dispositivos
Uno por dispositivo tras el nodo: el host conoce cada métrica antes de que llegue un dato.
- DATA
Solo cambios
NDATA y DDATA llevan valores cambiados; seq va de 0 a 255 para detectar cualquier hueco.
- NDEATH
Death o Rebirth
Si cae el enlace, el broker publica el NDEATH. Ante un hueco, un host envía Rebirth.
Sparkplug B · roles
¿Qué es un Edge Node y una Host Application de Sparkplug?
Un Edge Node posee la sesión MQTT en el borde; una Host Application consume los datos. Kilo cumple ambos roles, sobre el broker que elijas.
Gateway, PLC o software edge
- Publica births, datos y deaths
- Ejecuta NCMD y DCMD
- Espera al host primario si se configura
Cualquier broker MQTT 3.1.1 o 5.0
- Enruta los topics spBv1.0
- Entrega el Will NDEATH
- Guarda el STATE retenido
Plataforma IIoT Kilo
- Publica STATE como Primary Host
- Sigue bdSeq, seq y Rebirth
- Convierte métricas en dispositivos, reglas y alarmas
Sparkplug B · arquitectura
¿Cómo crear un Unified Namespace con MQTT Sparkplug?
Un unified namespace (UNS) es una arquitectura IIoT en la que cada sistema publica su estado actual en una única jerarquía compartida, normalmente un broker MQTT, en lugar de integraciones punto a punto.
- Traslada la jerarquía de la planta a los IDs de Sparkplug: el grupo para un sitio o área, el Edge Node para una línea o celda, el dispositivo para una máquina.
- Los certificados birth hacen que cada nodo se describa a sí mismo, así que un equipo nuevo aparece en el namespace sin mapeo manual.
- Los certificados death mantienen el namespace fiel: en cuanto muere un nodo, cada valor que posee se marca como obsoleto.
- Kilo consume ese mismo namespace, así que paneles, reglas y alarmas ven la planta exactamente como se publica.
Sparkplug B · comparativa
OPC UA vs MQTT Sparkplug B
Son complementarios, no rivales: una arquitectura IIoT habitual lee los equipos por OPC UA en el borde y los publica como Sparkplug B en el broker que alimenta el unified namespace.
Sparkplug B · brokers
¿Qué broker MQTT funciona con Sparkplug B?
Cualquier broker que implemente MQTT correctamente puede transportar Sparkplug B. Kilo funciona con el broker que ya operas, por mqtt:// o mqtts://, o con un endpoint Cloud MQTT gestionado.
Broker Sparkplug Compliant
Cualquier broker MQTT 3.1.1 o 5.0 con QoS 0 y 1, mensajes retenidos y el Will. Es todo lo que necesitan Edge Nodes y hosts.
Broker Sparkplug Aware
Además guarda los últimos certificados birth para quienes se conectan tarde. Útil, pero ni hosts ni Edge Nodes dependen de él.
Tu broker o Cloud MQTT
Apunta Kilo al broker que ya usan tus Edge Nodes, o deja que la plataforma cree un endpoint gestionado con sus propias credenciales.
Sparkplug B · ejemplo
Ejemplo de MQTT Sparkplug B
Una línea de llenado en un sitio, del primer certificado birth a una conexión perdida, tal como aparecen los mensajes en el broker.
- El Edge Node line-3 registra su NDEATH como Will y luego publica su NBIRTH y un DBIRTH para el dispositivo filler.
- A partir de ahí solo viajan los cambios: un DDATA por cambio, cada uno con el siguiente número seq.
- Los comandos bajan por el mismo árbol como DCMD.
- Si el gateway se queda sin energía, el broker publica el NDEATH y todos los hosts marcan line-3 y filler como offline.
Sparkplug B · conformidad
¿Qué es el TCK de Eclipse Sparkplug?
El Technology Compatibility Kit es el conjunto de pruebas oficial de la Eclipse Foundation para la especificación. La implementación de Sparkplug B de Kilo supera el TCK 3.0.0 firmado para los perfiles Edge Node y Host Application, sobre MQTT 5.0 y 3.1.1, y todos los resultados son públicos.
- 28/28
- Ejecuciones del TCK superadas
- 273
- Requisitos superados
- 2
- Perfiles probados
- 6/6
- Grupos opcionales superados
Conexión · Sparkplug B
¿Cómo conectar dispositivos Sparkplug B a una plataforma IoT?
Apunta Kilo a tu broker
Añade un conector Sparkplug B al broker que ya usan tus Edge Nodes, o a un endpoint Cloud MQTT, y elige los grupos a los que suscribirte.
Los births se convierten en dispositivos
Cada NBIRTH y DBIRTH registra su nodo o dispositivo con cada métrica, tipo de dato y unidad, así que no hace falta mapear payloads.
Datos, deaths y comandos
Los cambios fluyen a paneles, reglas y alarmas; los deaths marcan los valores como obsoletos al instante; los comandos vuelven como NCMD y DCMD.
Conexión · Sparkplug B
¿Qué debe soportar una plataforma IIoT para Sparkplug B?
- Sparkplug 3.0.0
- Perfiles Edge Node y Host Application, sobre MQTT 3.1.1 y MQTT 5.0, probados con el TCK oficial de Sparkplug 3.0.0.
- Estado de sesión completo
- Seguimiento de bdSeq y seq, deaths entregados por el Will, peticiones de Rebirth ante cualquier hueco y marcado como obsoleto en cuanto muere un nodo o dispositivo.
- STATE del host principal
- Un STATE birth retenido y un STATE death como Will, para que los Edge Nodes que esperan al host principal sepan cuándo Kilo está escuchando.
- Reordenación de mensajes
- Los mensajes que llegan desordenados se retienen y reordenan dentro de un plazo antes de pedir un Rebirth, así que un breve tropiezo del broker no es pérdida de datos.
- Todos los tipos de datos
- Todos los tipos escalares y de array de Sparkplug B, datasets, plantillas, propiedades y alias de métricas, decodificados según lo que declaró cada birth.
- Comandos en ambos sentidos
- Escrituras NCMD y DCMD en métricas de nodos y dispositivos, incluido Node Control/Rebirth, desde paneles, reglas o la API.
Conexión · Sparkplug B
¿Qué se puede hacer con los datos de Sparkplug B?
Conexión · Sparkplug B
Preguntas frecuentes sobre Sparkplug B
¿Sparkplug B es lo mismo que MQTT?
No. MQTT es el transporte; Sparkplug B es una especificación encima de él que fija el namespace de topics, el payload Protocol Buffers y las reglas de estado de sesión. Todo mensaje Sparkplug B es un mensaje MQTT, pero la mayor parte del tráfico MQTT no es Sparkplug.
¿Qué versiones de MQTT soporta Sparkplug B?
Sparkplug 3.0.0 funciona sobre MQTT 3.1.1 y MQTT 5.0. Kilo soporta ambas y se probó en ambas con el TCK oficial.
¿Necesito un broker especial para Sparkplug B?
No. Sirve cualquier broker MQTT 3.1.1 o 5.0 que gestione correctamente QoS 1, los mensajes retenidos y el Will. Un broker Sparkplug Aware es opcional.
¿Sparkplug B es open source?
La especificación es un estándar abierto de la Eclipse Foundation bajo la Eclipse Public License, y el esquema del payload está publicado en Eclipse Tahu. Los productos la implementan de forma independiente; la implementación de Kilo es propia.
¿Cuál es la diferencia entre IIoT e IoT?
El IIoT, el internet industrial de las cosas, es el IoT aplicado a plantas, servicios públicos e infraestructuras, donde los datos vienen de PLCs, contadores y máquinas y deben ser fiables, llevar marca de tiempo y ser conscientes del estado. Esa fiabilidad es justo lo que Sparkplug B añade a MQTT.
¿Puedo seguir usando JSON sobre MQTT?
Sí. El conector MQTT de Kilo sigue parseando payloads JSON, así que dispositivos Sparkplug B y dispositivos MQTT normales pueden convivir en una misma organización.
Conexión · Sparkplug B
Más formas de conectar equipos industriales
Conectar dispositivos Sparkplug B a Kilo
Empieza gratis y apunta Kilo a tu broker, o reserva una llamada y mapeamos juntos tus grupos Sparkplug, Edge Nodes y dispositivos.