MQTT Simulación de datos Sparkplug con IoT Simulator
por Ponlakshmi
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 real SCADA
sistemas
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: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
Descargar MQTT Simuladory es una herramienta de simulación que ayuda a los usuarios a probar y desarrollar el MQTT/IoT
Aplicaciones.
Para la instalación y configuración de Bevywise IoT Simulator, consulte nuestroayuda docSí.video tutorial.
En nueva red, crear tres nodos MQTT EoN a través deDispositivo MQTT
Creación:
spBv1.0, Nodo2, Nodo3.
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.
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]
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]
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”.
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
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 open source Google Protocol Buffer definición.
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 final
usuario
clientes usando MQTT.
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