HomeBlog Sparkplug MQTT Datos

MQTT Simulación de datos Sparkplug con IoT Simulator

por Ponlakshmi


sparkplug B

MQTT Sparkplug proporciona una especificación abierta y libremente disponible para cómo Edge of Network (EoN) gateways or native MQTT dispositivos finales habilitados y aplicaciones MQTT comunican bidireccionalmente dentro de una infraestructura MQTT. Uno de los aspectos únicosProtocolo MQTTes que fue originalmente diseñado para tiempo realSCADAsistemas ayudar a reducir la latencia de datos sobre la infraestructura de red limitada y a menudo poco fiable. Del mismo modo, la intención de la especificación de Sparkplug es aprovechar plenamente el nativo de MQTT Capacidad de conciencia de sesión continua como se aplica a soluciones SCADA/IIoT en tiempo real.

Este artículo le ayuda a simular la codificación Sparkplug B en IoT Simulator. Es crucial aprender sobre elMQTT Sparkplug Elementos del espacio de nombresySparkplug MQTT Tipos de mensajepara simular los datos.

Sparkplug MQTT Temas y mensajes

Elementos del espacio de nombres temático Sparkplug:


Todos los clientes que usen la especificación Sparkplug utilizarán este espacio de nombres de formato UTF-8 predeterminado.

namespace/group_id/message_type/edge_node_id/[device_id]

  • namespace:Es el elemento raíz que definirá tanto la estructura el elementos del espacio de nombres restantes, así como la codificación utilizado para los datos de carga útil asociados. Formato para namespace esconstante de cadena UTF-8debería usarse. Del mismo modo corriente La especificación de Sparkplug define dos espacios de nombres:
  • Definición de la carga útil Sparkplug A
  • elemento namespace debe ser“spAv1.0”
  • Definición de la carga útil Sparkplug B
  • elemento namespace debe ser“spBv1.0”
  • group_id:Esto proporciona un ID de grupo lógico único de los nodos MQTT EoN. Para group_id el formato debe ser UTF-8 cadena alfanumérica, excepto para los caracteres reservados de ‘+’ (plus), ‘/’ (forward slash), y '# (número signo). Ejemplos de dónde se podría utilizar el [group_id] incluyen la industria del cemento donde los nodos MQTT EoN en diferentes Departamento los diferentes [group_id].
  • message_type Elemento:Proporciona la indicación de cómo manejar el MQTT carga del mensaje. Los siguientes elementos de mensaje_tipo se definen para el espacio de nombre del tema Sparkplug:
  • NBIRTH– Certificado de nacimiento para los nodos MQTT EoN.
  • NDEATH– Certificado de defunción para los nodos MQTT EoN.
  • DBIRTH– Certificado de nacimiento para dispositivos.
  • DDEATH– Certificado de defunción para Dispositivos.
  • NDATA– Mensaje de datos de nodos.
  • DDATA– Mensaje de datos del dispositivo.
  • NCMD– Mensaje de comando Node.
  • DCMD– Mensaje de comando del dispositivo.
  • ESTADO– Mensaje crítico del estado de aplicación.
  • edge_node_id:Identificación inquie para los nodos MQTT EoN dentro de los infraestructura. Para edge_node_id el formato debe ser cadena alfanumérica UTF-8, excepto para los caracteres reservados de ‘+’ (plus), ‘/’ (de frente), y "#" (número signo). El edge_node_id viaja con cada mensaje publicado, por lo que debe ser lo más corto posible
  • device_id:Unquie ID que utilizó para identificar el dispositivo conectado al MQTT Nodo EoN. device_id es un elemento opcional ya que algunos mensajes serán originarios o destinados al edge_node_id, en ese lugar dispositivo_ id no sería requerido. El formato del dispositivo_id es un anillo alfanumérico válido UTF-8 excepto para el reservado caracteres de ‘+’ (plus), ‘/’ (de frente), y ‘#’ (número signo). El dispositivo_id viaja con cada mensaje publicado, por lo que debería ser tan corto como sea posible.

Simulate Sparkplug MQTT Device & Network

Sparkplug MQTT Tipos de mensaje

Sparkplug define el espacio de nombres temático para el conjunto de mensajes MQTT que se utilizan para gestionar el estado de conexión como y bidireccional intercambio de información métrica que se aplicaría a muchos SCADA/IIoT en tiempo real típico, monitoreo y datos uso del sistema de recogida casos. Los tipos de mensajes definidos incluyen:


  • NBIRTH– Certificado de nacimiento para los nodos MQTT EoN.
  • NDEATH– Certificado de defunción para los nodos MQTT EoN.
  • DBIRTH– Certificado de nacimiento para dispositivos.
  • DDEATH– Certificado de defunción para Dispositivos.
  • NDATA– Mensaje de datos de nodos.
  • DDATA– Mensaje de datos del dispositivo.
  • NCMD– Mensaje de comando Node.
  • DCMD– Mensaje de comando del dispositivo.
  • ESTADO– Mensaje crítico del estado de aplicación.

Ventajas de usar estos mensajes definidos:

Utilizando estos mensajes definidos la aplicación SCADA/IIOT puede:


  • Descubrir inicialmente todos los metadatos y monitorizar el estado de cualquier EoN/Device conectado al MQTT infraestructura.
  • Descubre todas las métricas que incluyen todos los diagnósticos, propiedades, metadatos y estado actual valores.
  • Emitir mensajes de escritura/comandancia a cualquier métrica EoN/Device.

Creando Sparkplug MQTT Tipos de mensaje en IoT Simulator

MQTT EoN NBIRTH y NDeath Certificado:El primer mensaje de MQTT que un EoN nodos DEBE publicar sobre el éxito El establecimiento de una sesión MQTT es un certificado EoN BIRTH.

Crear NBIRTH: [namespace/group_id/NBIRTH/edge_node_id]


  • Click spBv1.0 y
  • Crear un Evento MQTTcon“Todo el día”configuración con cada intervalo de tiempo de 5 segundos.
  • En eso da el espacio de nombres de tema como

spBv1.0/kiln/NBIRTH/1

  • Seleccione QoS como 1 y conservar como 1
  • Dar mensaje como “NBIRTH” y guardarlo

Creación de NDEATH: [namespace/group_id/NDEATH/edge_node_id]

  • Click spBv1.0 y
  • Crear un MQTT eventocon“En desconexión”configuración.
  • En eso se da el tema como

spBv1.0/kiln/NDEATH/1

  • Seleccione QoS como 1 y conservar como 1
  • Dar el mensaje como "DENA" y guardarlo.

MQTT EoN Node Data (NDATA)

  • Una vez que un nodo MQTT EoN esté en línea con un NBIRTH adecuado, el NDATA se publicará.
  • Esto permite las ventajas de la conciencia de sesión continua nativa de MQTT para monitorear ESTADO todos los nodos MQTT EoN conectados y confiar en Report by Excepción (RBE) mensajes para cambios de estado métricos sobre la conexión de sesión del MQTT.
  • La carga útil de los mensajes NDATA contendrá cualquier RBE o tiempo basado valores métricos de los nodos EoN que necesitan ser reportados a cualquier subscripciónMQTT clientes.

Creación de NDATA:[namespace/group_id/NDATA/edge_node_id]

  • Click spBv1.0 y
  • Haga clic en el icono + y seleccioneComportamiento
  • En eso, dar el tema de comando como“NBIRTH topic namespace”y comando“NBIRTH”.
  • A continuación, da el espacio de nombres de tema NDATA en Event y da datos de evento como tiempo actual y haga clic en guardar.

spBv1.0/Kiln/NDATA/1

  • Ahora NDATA se publicará para suscriptor una vez que se suscriban el espacio de nombres de tema NDATA.

Certificado de nacimiento del dispositivo [DBRITH]

  • El nodo MQTT EoN es responsable de la gestión de todos los dispositivos físicos y/o lógicos adjuntos. Una vez que el nodo EoN ha publicado su NBIRTH, la aplicación de los clientes asegura que EoN Node es ONLINE
  • Pero cada dispositivo físico y/o lógico conectado a este nodo todavía necesita proporcionar este DBIRTH antes las aplicaciones de consumo crean/actualizan la estructura métrica (si es la primera vez que este dispositivo tiene han sido visto) y establecer cualquier métrica asociada en la aplicación a“GOOD”estado.

Creación del DBRITH:[namespace/group_id/DBIRTH/edge_node_id]

  • Click spBv1.0 y
  • Haga clic en el icono + y seleccioneComportamiento
  • En eso, dar tema de comando como “NBIRTH tema namespace” y comando “NBIRTH”.
  • A continuación, da el espacio de nombres de tema DBIRTH en Event y da datos de evento como DBIRTH y haga clic en guardar.

spBv1.0/Kiln/DBIRTH/1

  • Ahora DBIRTH se publicará a suscriptor una vez que se suscriba el espacio de nombres de tema DBIRTH.

Mensajes de datos del dispositivo (DDATA):

  • Una vez que un nodo MQTT EoN y dispositivos asociados están todos en línea con certificados de nacimiento adecuados es en un modo de quiescencia Report by Excepción (RBE) reporting of any métrica that changes.
  • Aprovecha para monitorear el STATE de todos los dispositivos conectados y puede confiar en Report by Excepción (RBE) mensajes para cualquier cambio de valor métrico sobre la conexión de sesión del MQTT.
  • Creación de DATOS:[namespace/group_id/DDATA/edge_node_id/device_id]
  • Click spBv1.0 y
  • Haga clic en el evento con “Duración Específica” durante 20 min de duración con intervalo de 10 segundos.
  • En eso se da el tema como

spBv1.0/kiln/DDATA/1/LSM213


  • Seleccione QoS como 1 y conservar como 1
  • Dar el mensaje aleatorio como “ON TOTENOFF” y haga clic en guardar.

Device Death Certificate [DDEATH]

  • Si el dispositivo se vuelve indisponible por cualquier motivo (sin respuesta, error de CRC, etc.) es responsabilidad del nodo EoN publicar un DDEATH en nombre de la Dispositivo final.
  • Una vez publicado el certificado DDEATH, cualquier cliente MQTT se suscribió a esto dispositivo debe establecer la calidad de los datos de todas las métricas“STALE”.

Creando DDEATH:

[namespace/group_id/DDEATH/edge_node_id/device_id]

  • Click spBv1.0 y
  • Haga clic en el icono + y seleccioneComportamiento
  • En eso, dar tema de comando como “DDDATA tema namespace” y comando “OFF”.
  • A continuación, da el espacio de nombres de tema DBIRTH en Event y da datos de evento como DDEATH y haga clic en guardar.

spBv1.0/Kiln/DDEATH/1

  • Ahora DDEATH se publicará a suscriptor una vez que se suscriba el espacio de nombres de tema DBIRTH basado en el DATOS.

SCADA/IIoT Certificados de Nacimiento y Muerte

  • El SCADA/IIoT Host Node es cualquier aplicación MQTT Client que se suscribe y publica mensajes.
  • En una infraestructura, los servidores MQTT mulitple proporcionan redundancia y escalabilidad, para ese MQTT EoN nodos necesita ser consciente de la“estado”de las principales aplicaciones SCADA/IIoT Host.
  • El “estado” puede ser aquejado por el conjunto único de certificados de nacimiento/muerte que el SCADA/IIoT Host MQTT Cliente publicar cuando se establezca una nueva sesión del MQTT.
  • Espacio de nombres para SCADA/IIOT Host :STATE/scada_host_id
  • Utiliza un aspecto del transporte MQTT llamado a"RETAINED"publicar mantener el estado actual de la primaria Host MQTT Cliente sesión estado a todos disponiblesServidores MQTT.
  • El formato de scada_host_id puede ser válido Estiramiento con la excepción de los caracteres reservados de ‘+’ (plus), ‘/’ (de frente), y ‘#’ (número signo).

Creación del certificado de nacimiento SCADA/IIoT

  • Haga clic en SCADA/IIOT y
  • Crear eventos con configuración “On Connect”.
  • En ese tema como SCADA/IIOT Host tema namespace/scada_host_id]: ESTADO/SCADABIRTH
  • Set Retener la bandera como “1” y QoS como “1”
  • Seleccione el tipo de mensaje como “Texto” y variante como “Constant”.
  • Dar carga o mensaje como"ONLINE".

SCADA/IIoT Certificado de Muerte Anfitriona Payload (STATE):

  • Cuando el cliente SCADA/IIoT Host MQTT establece una sesión MQTT al servidor(s), el Certificado de Muerte será parte delWill TopicyWill Payloadregistrados en el transacción MQTT CONNECT.
  • El tema de la voluntad debe ser:STATE/scada_host_id

Creación de SCADA/IIoT DEATHCertificate Payload (STATE):

  • Haga clic en SCADA/IIOT y
  • Haga clic en el botón de interruptor directamente paraLo sé.
  • En ese tema dan como:STATE/SCADADEATH
  • Dar mensaje o carga útil“OFFLINE”
  • Set Retener la bandera como “1” y QoS como “1”

MQTT EoN Node Command (NCMD)

  • El tema de comando NCMD proporciona el espacio de nombres del tema utilizado para enviar comandos a cualquier EoN conectado nodos.
  • Esto significa enviar un valor métrico actualizado a una métrica asociada incluida en la métrica NBIRTH lista.
  • Espacio de nombre del tema:namespace/group_id/NCMD/edge_node_id

Creación de MQTT EoN Node Command (NCMD)

spBv1.0/Kiln/NCMD/1

  • Establecer QoS a “1” y Retener a “1”
  • Seleccione el tipo de mensaje como JSON y haga clic en + botón.
  • En eso añadir NBIRTH métrica como:
  • ONLINE_STATE y TIEMPO ONLINE.
  • Dar la clave como ONLINE_STATE, seleccione “constant”, dar valor como TRUE y haga clic en ADD
  • Siguiente clic + botón y
  • Dar la llave como ONLINE_TIME, seleccione "variable sistema" y seleccione "$Current_time de la lista
  • siguiente clic ADD y guardar el JSON
  • Una vez que ocurrió el NBIRTH, publicar el NCMD haciendo clic en el icono de acción
  • en el lado izquierdo, ahora el NCMD enviará comandos a los nodos EoN conectados.
  • SiguienteSuscríbeteel tema NCMD en SCADA/IIOT para obtener la métrica de actualización de spBv1.0.

Comando de dispositivo (DCMD)

  • El tema DCMD proporciona el espacio de nombres temático utilizado para publicar métricas a cualquier dispositivo conectado.
  • Esto significa enviar un nuevo valor métrico a una métrica asociada incluida en la lista métrica DBIRTH.
  • Espacio de nombre del tema:namespace/group_id/DCMD/edge_node_id/device_id

Creación del Comando de Dispositivos (DCMD)

spBv1.0/Kiln/DCMD/1/LSM213

  • Establecer QoS a “1” y Retener a “1”
  • Seleccione el tipo de mensaje como JSON y haga clic en + botón.
  • En eso añadir NBIRTH métrica como:
  • ONLINE_STATE y TIEMPO ONLINE.
  • Dar la clave como ONLINE_STATE, seleccione “constant”, dar valor como TRUE y haga clic en ADD
  • Siguiente clic + botón y
  • Dar la llave como ONLINE_TIME, seleccione "variable sistema" y seleccione "$Current_time de la lista
  • siguiente clic ADD y guardar el JSON.
  • Una vez que ocurrió el DBIRTH, publicar el DCMD haciendo clic en el icono de acción
  • en el lado izquierdo, ahora el NCMD enviará comandos a los nodos EoN conectados.
  • SiguienteSuscríbeteel tema DCMD en SCADA/IIOT para obtener la métrica de actualización de spBv1.0.
  • Estos son el conjunto Sparkplug de MQTT Mensaje Tipos que se utilizan para gestionar el estado de conexión. Siguienteadjunto el Simulador de IoT Bevywisea incorporadoMQTT Brokero conectarse a cualquier MQTTBroker para iniciar la simulación Spatkplug. También crea el tipo de mensaje Sparkplug para otros Nodos.

Especificaciones de MQTT Sparkplug

Actualmente hay dos esquemas de codificación definidos Sparkplug que esta especificación soporta.


  • Primero elSparkplug A codificaciónesquema basado en la muy popular Kura código abierto Google Protocol definición Buffer.
  • Segundo,Sparkplug B codificaciónesquema que proporciona un modelo de datos más rico desarrollado con la retroalimentación de muchos integradores del sistema y clientes finales del usuario utilizando MQTT.

Con el rico modelo de datos y la mensajería estandarizada de Sparkplug B en su lugar, las organizaciones pueden ahora piensa más allá de los nodos y dispositivos individuales. Para aprovechar verdaderamente estos datos en tiempo real en toda una planta o empresa,Unified Namespace (UNS)proporciona una forma estructurada y centralizada de organizar, compartir y consumir todos los datos operativos sin problemas.

Unified Namespace (UNS) Integration with MQTT Sparkplug

Para ampliar la simulación Sparkplug MQTT y alinearse con IIoT moderno yIndustria 4.0arquitecturas, lasUnified Namespace (UNS) sirve como marco centralizado para gestionar e intercambiar datos.


El UNS actúa comocolumna vertebral de datos centralizadosde una empresa, reuniendo todo en tiempo real e información histórica desde el borde hasta la nube bajo una estructura jerárquica unificada.

¿Qué es un espacio de nombres unificado (UNS)?

AUnified Namespacees una arquitectura de datos basada en eventos donde todos los sistemas de planta-floor, equipo, y las aplicaciones empresariales se comunican a través decomúnMQTT brokerinfraestructura.


Representa a laestado actual del negocio en tiempo real,haciendo cada punto de datos disponibles y consumible por cualquier sistema o aplicación que se suscriba a él.

En esencia, el UNS proporciona:


Role of MQTT Sparkplug in UNS

ElMQTT Sparkplug B specificationnaturalmente encaja como elmensajería y capa de definición de datospara el UNS.


Si bien el UNS define cómo se organizan los datos, el Sparkplug define la forma en que se comunican los datos: mensajería confiable, consciente del estado y estructurada entre todos los componentes IIoT.


Combinando UNS y Sparkplug B:


  • Todos los nodos, dispositivos y aplicaciones comparten un tema común y estructura de carga útil.
  • El contexto en tiempo real se mantiene a través de mensajes de nacimiento/muerte y datos.
  • Los sistemas pueden descubrir métricas, propiedades y estado sin integración personalizada.
  • Las empresas pueden escalar horizontalmente a través de múltiples plantas y redes de bordes.

Típico ONUS Jerarquía temática con Sparkplug B

Una estructura bien diseñada del UNS suele reflejar el diseño físico de la empresa:


UNS/
- Planta
Zona 1/
- Línea 1/
- Máquina01/
- spBv1.0/PlantA/DBIRTH/Machine01
- spBv1.0/PlantA/DDATA/Machine01
- spBv1.0/PlantA/DCMD/Machine01
- Máquina02/
- Línea 2/
Àrea2/
- PlantB/

Descripción de la Arquitectura

  • UNS (Universal Namespace)

    • Piénsalo como unsistema de carpetas para su fábrica.
    • Se organizaplantas, áreas, líneas y máquinasAsí que todo tiene su lugar.
  • Niveles de Jerarquía

    • PlantA / PlantB→ Cada ubicación de la fábrica.
    • Zona1 / Área2→ Diferentes secciones dentro de la planta.
    • Línea 1 / Línea 2→ Líneas de producción en cada área.
    • Machine01 / Machine02→ Máquinas individuales en línea.
  • Temas Sparkplug en cada máquina

    • DBIRTH→ La máquina anuncia que está en línea.
    • DDATA→ La máquina envía sus datos (temperatura, velocidad, etc.).
    • DCMD→ La máquina recibe comandos del sistema de control.
    • Estos temas se clasifican bajo spBv1.0 y coinciden con la ruta del UNS asídata and commands go to la máquina correcta.
  • Por esta arquitectura importa

    • Los espejosdiseño físicode la empresa, facilitando el seguimiento y la gestión de máquinas.
    • LetsSCADA, MES y herramientas de análisisactualizar datos en contexto (ya saben exactamente de qué planta, área, línea y máquina provienen los datos).
    • Mantienescomunicación organizada, escalable y fácil de alcanzar.

En resumen, la estructura de la UNS en Sparkplug B es como unsistema de presentación bien etiquetadopara todas tus máquinas. Cada dispositivo tiene un lugar claro para enviar y recibir mensajes, por lo que su sistema de control y análisis Siempre sepan de dónde vienen los datos y dónde deben ir los comandos.

UNS y Sparkplug B Architecture Overview

El siguiente diagrama ilustra cómoUNS integrado con MQTT Sparkplug Bdentro de un ecosistema IIoT.

UNS & Sparkplug Architecture

Ventajas de integrar el UNS con Sparkplug B


  • Visibilidad centralizada:Todos los datos en tiempo real se publican en un solo espacio de nombres accesible a cada sistema.
  • Escalabilidad de plug-and-play:Se pueden añadir nuevos equipos o aplicaciones sin reorganizar los oleoductos de datos.
  • Normalización:Unificado tema y estructura de carga útil en todas las plantas y sistemas.
  • Baja latencia: MQTTproporciona una transferencia de datos eficiente y basada en eventos con una sobrecarga mínima.
  • Resiliencia:La conciencia de la sesión de Sparkplug asegura un seguimiento preciso del estado online/offline.

Empodere a su empresa con datos unificados

MQTT Sparkplug B combinado con un espacio de nombres unificado proporciona una visión estructurada en tiempo real de todo datos operativos en toda su empresa. Este enfoque permite una escalabilidad perfecta, plug-and-play integración y toma de decisiones más rápida en todas las plantas y sistemas.


Con nuestra MQTT broker, usted puede implementar esta arquitectura sin esfuerzo, asegurando confiable, mensajería de estado para cada dispositivo y aplicación. Conecta tus sistemas, simplifica las operaciones, y desbloquear información práctica a través de todo su ecosistema IIoT.


Descargar nuestro bróker MQTTy traer sus sistemas IIoT a la vida hoy.

Consigue que tu entorno sea validado

Generar datos sin código

simplifica la simulación del Nodo y dispositivos EoN con un fácil interfaz de usuario