HomeBlog Sparkplug MQTT Daten

MQT Sparkplug Data Simulation mit IoT Simulator

von Ponlakshmi


sparkplug B

MQT Sparkplug bietet eine offene und frei verfügbare Spezifikation, wie Edge of Network (EoN) Gateways oder native MQTT aktivierte Endgeräte und MQTT Applications kommunizieren bidirektional innerhalb einer MQTT-Infrastruktur. Einer der einzigartigen AspekteMQTT Protokolles war ursprünglich mit einer Leistung von mehr als 20 kW für Echtzeit SCADA Systeme zu helfen, die Datenlatenz über Bandbreite begrenzt und oft unzuverlässig Netzwerkinfrastruktur zu reduzieren. In ähnlicher Weise ist die Absicht der Sparkplug-Spezifikation, die Vorteile von MQTTs Mutterschaft zu nutzen Kontinuierliche Session Awareness-Fähigkeit, wie es für Echtzeit SCADA/IIoT Lösungen gilt.

Dieser Artikel hilft Ihnen, die Sparkplug B Kodierung im IoT Simulator zu simulieren. Es ist entscheidend, über dieMQT Sparkplug Topic Namespace ElementsundSparkplug MQTT Das ist ein Problem.zur Simulation der Daten.

Sparkplug MQTT Themen und Nachrichten

Sparkplug Topic Namespace Elements:


Alle Clients, die die Sparkplug-Spezifikation verwenden, verwenden diesen standardmäßigen UTF-8 Format Thema Namespace.

Namespace/group_id/message_type/edge_node_id/[device_id]

  • Namespace:Es ist das Wurzelelement, das sowohl die Struktur der die restliche Namespace-Elemente sowie die Codierung für die zugehörigen Nutzdaten verwendet. Format für Namespace istUTF-8 String Konstantesollte verwendet werden. In ähnlicher Weise Strom Sparkplug-Spezifikation definiert zwei Namespaces:
  • Sparkplug Payload Definition A
  • Namespace-Element sollte‚spAv1.0‘
  • Sparkplug Payload Definition B.
  • Namespace-Element sollte‚spBv1.0‘
  • Gruppe_id:Dies bietet eine einzigartige logische Gruppen-ID von MQTT EoN-Knoten. Für group_id das Format sollte UTF-8 alphanumerische Zeichenfolge mit Ausnahme der reservierten Zeichen von „+“ (plus), „/“ (forward slash) und „#“ (Zahlenzeichen). Beispiele dafür, wo das [group_id] verwendet werden könnte, sind die Zementindustrie, in der MQTT EoN-Knoten auf verschiedenen haben die unterschiedliche [group_id].
  • Passwort vergessen?Es gibt die Anzeige, wie man die MQT Nutzlast der Nachricht. Für den Sparkplug Topic Namespace sind folgende Message_type-Elemente definiert:
  • NBIRTH– Geburtsurkunde für MQTT EoN-Knoten.
  • NTEAT– Todesfallanzeige für MQTT EoN-Knoten.
  • DBIRTH– Geburtsurkunde für Geräte.
  • DTEATH– Todesfallanzeige für Geräte.
  • NDATA– Keine Datennachricht.
  • DATEN– Gerätedatennachricht.
  • NCMD- Keine Befehlsnachricht.
  • DCMD– Befehlsnachricht für Geräte.
  • STAAT– Critical Application State Message.
  • englisch:Unquie Identifikation für die MQTT EoN-Knoten innerhalb der Infrastruktur. Für edge_node_id sollte das Format UTF-8 alphanumerische Zeichenfolge sein, mit Ausnahme der reservierten Zeichen von „+“ (plus), „/“ (vorwärts geschlagen) und „#“ (Nummernschild). Die edge_node_id fährt mit jeder veröffentlichten Nachricht, so dass es so kurz wie möglich sein sollte
  • Benachrichtigung:Unquie ID, die das Gerät an der MQT EoN Knoten. device_id ist ein optionales Element da einige Meldungen entweder mit Ursprung oder zum Edge_node_id bestimmt werden, an diesem Ort Gerät_ id würde nicht erforderlich. Das Format der device_id ist ein gültiger UTF-8 alphanumerischer String mit Ausnahme des reservierten Zeichen von „+“ (plus), „/“ (Forward Slash) und „#“ (Nummernschild). Das device_id fährt mit jeder veröffentlichten Nachricht, so dass es sollte als kurz wie möglich.

Simulieren von Sparkplug MQTT Device & Network

Sparkplug MQTT Nachrichtentypen

Sparkplug definiert den Thema Namespace für Satz von MQTT-Nachrichten, die verwendet werden, um den Verbindungszustand zu verwalten wie sowie bidirektional metrischer Informationsaustausch, der für viele typische Echtzeit-SCADA/IIoT, Überwachung und Daten gelten würde Nutzung des Systems Fälle. Die definierten Nachrichtentypen umfassen:


  • NBIRTH– Geburtsurkunde für MQTT EoN-Knoten.
  • NTEAT– Todesfallanzeige für MQTT EoN-Knoten.
  • DBIRTH– Geburtsurkunde für Geräte.
  • DTEATH– Todesfallanzeige für Geräte.
  • NDATA– Keine Datennachricht.
  • DATEN– Gerätedatennachricht.
  • NCMD- Keine Befehlsnachricht.
  • DCMD– Befehlsnachricht für Geräte.
  • STAAT– Critical Application State Message.

Vorteil Verwendung dieser Nachrichten:

Mit diesen definierten Nachrichten kann die SCADA/IIOT Anwendung:


  • Entdecken Sie zunächst alle Metadaten und überwachen Zustand jedes EoN/Gerätes, das mit dem MQTT verbunden ist Infrastruktur.
  • Entdecken Sie dann alle Metriken, die alle Diagnosen, Eigenschaften, Metadaten und aktuellen Zustand enthalten Werte.
  • Schreib-/Befehlsnachrichten an jede EoN/Gerät-Metriktik ausgeben.

Sparkplug erstellen MQT Nachrichtentypen im IoT-Simulator

MQTT EoN NBIRTH und NDeath Certificate:Die erste MQTT-Nachricht, die ein EoN Knotenpunkt MUSS veröffentlichen Die Einrichtung einer MQTT-Sitzung ist ein EoN-BIRTH-Zertifikat.

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


  • Klicken Sie auf spBv1.0 und
  • Der Präsident MQT Veranstaltungmit„ Ganzer Tag“Konfiguration mit jedem 5 sec Zeitintervall.
  • In diesem geben Sie das Thema Namespace als

SpBv1.0/kiln/NBIRTH/1

  • Wählen Sie QoS als 1 und behalten Sie 1
  • Nachricht als “NBIRTH” geben und speichern

NDEATH erstellen: [namespace/group_id/NDEATH/edge_node_id]

  • Klicken Sie auf spBv1.0 und
  • MQ erstellen Veranstaltungmit„Über die Verbindung“Konfiguration.
  • In diesem Zusammenhang das Thema als

SpBv1.0/kiln/NDEATH/1

  • Wählen Sie QoS als 1 und behalten Sie 1
  • Nachricht als „NDEATH“ geben und speichern.

MQTT EoN Node Data (NDATA)

  • Sobald ein MQTT EoN-Knoten mit einer richtigen NBIRTH online ist, wird die NDATA veröffentlicht.
  • Dies ermöglicht die Vorteile der nativen Continuous Session Awareness von MQTT, um die STAAT alle angeschlossenen MQTT EoN-Knoten und auf Report by Exception (RBE)-Nachrichten für metrische Zustandsänderungen über die MQTT-Sitzungsverbindung.
  • Die Nutzlast von NDATA-Nachrichten enthält jede RBE oder Zeit basiert metrische EoN-Knotenwerte, die einer Anmeldung gemeldet werden müssenMQTT Kunden.

ND erstellenATA:[namespace/group_id/NDATA/edge_node_id]

  • Klicken Sie auf spBv1.0 und
  • Klicken Sie auf das +-Symbol und wählen SieVerhalten
  • Geben Sie das Kommandothema als„NBIRTH Thema Namespace“und Befehl„NBIRTH“.
  • Geben Sie anschließend den Namensbereich des NDATA-Themens in Event und geben Sie Ereignisdaten als aktuelle Zeit und klicken Sie auf Speichern.

SpBv1.0/Kiln/NDATA/1

  • Nun wird NDATA beim Abonnenten veröffentlicht, sobald sie den NDATA-Themennamenraum abonnieren.

Geräte-Geborenzertifikat[DBRITH]

  • Der MQTT EoN-Knoten ist für die Verwaltung aller angeschlossenen physikalischen und/oder logischen Geräte verantwortlich. Sobald der EoN-Knoten seine NBIRTH veröffentlicht hat, stellt die Kunden-Anwendung sicher, dass EoN Node ONLINE ist
  • Aber jedes physikalische und/oder logische Gerät, das mit diesem Knoten verbunden ist, muss noch diese bereitstellen DBIRTH vor Verbraucheranwendungen erstellen/aktualisieren die metrische Struktur (wenn dies das erste Mal ist, dass dieses Gerät werdest ausgeschüttet haben gesehen) und alle zugehörigen Metriken in der Anwendung auf eine‚GOOD‘Zustand.

Erstellung der DBRITH:[namespace/group_id/DBIRTH/edge_node_id]

  • Klicken Sie auf spBv1.0 und
  • Klicken Sie auf das +-Symbol und wählen SieVerhalten
  • Geben Sie dazu das Kommandothema „NBIRTH-Themennamespace“ und den Befehl „NBIRTH“.
  • Geben Sie anschließend den DBIRTH-Themennamenraum in Event und geben Sie Eventdaten als DBIRTH und klicken Sie auf Speichern.

SpBv1.0/Kiln/DBIRTH/1

  • Nun wird DBIRTH beim Abonnenten veröffentlicht, sobald sie den DBIRTH-Themennamenraum abonnieren.

Gerätedaten-Nachrichten (DDATA):

  • Sobald ein MQTT EoN-Knoten und zugehörige Geräte alle online mit richtigen Geburtsurkunden sind, ist es in einem Modus von Quiescent Bericht von Ausnahme (RBE) über jede Änderung der Metrik.
  • Es nutzt die Möglichkeit, die STATE aller angeschlossenen Geräte zu überwachen und kann sich auf Report by Ausnahme (RBE) Nachrichten für jede Metrikwertänderung über die MQTT-Sitzungsverbindung.
  • DDATA erstellen:[Namespace/group_id/DDATA/edge_node_id/device_id]
  • Klicken Sie auf spBv1.0 und
  • Klicken Sie auf Ereignis mit “Specific Duration” für 20 min Dauer mit 10 sec Intervall.
  • In diesem Zusammenhang das Thema als

SpBv1.0/kiln/DDATA/1/LSM213


  • Wählen Sie QoS als 1 und behalten Sie 1
  • Geben Sie Random-Nachricht als “ON|OFF” und klicken Sie auf Speichern.

Geräte-Todeszertifikat[DDEATH]

  • Wenn das Gerät aus irgendeinem Grund nicht verfügbar wird (keine Antwort, CRC-Fehler usw.) ist es die Aufgabe des EoN-Knotens, eine DDEATH im Auftrag zu veröffentlichen. von Endeinrichtung.
  • Sobald das DDEATH-Zertifikat veröffentlicht wurde, abonnierte jeder MQTT-Client diese Gerät sollte die Datenqualität aller Metriken auf„STALE“.

DDEATH:

[Namespace/group_id/DDEATH/edge_node_id/device_id]

  • Klicken Sie auf spBv1.0 und
  • Klicken Sie auf das +-Symbol und wählen SieVerhalten
  • Geben Sie dazu das Kommandothema als „DDATA-Themennamespace“ und Befehl „OFF“.
  • Geben Sie anschließend den DBIRTH-Themennamenraum in Event und geben Sie Eventdaten als DDEATH und klicken Sie auf Speichern.

SpBv1.0/Kiln/DDEATH/1

  • Nun wird DDEATH beim Abonnenten veröffentlicht, sobald sie den DBIRTH-Themennamenraum basierend auf dem DDATA.

SCADA/IIoT Host Geburt und Tod Zertifikate

  • Der SCADA/IIoT Host Node ist jede MQTT Client-Anwendung, die Nachrichten abonniert und veröffentlicht.
  • In einer Infrastruktur bieten mulitple MQTT Server Redundanz und Skalierbarkeit, für das MQTT EoN Knoten muss bewusst sein von‚State‘der primären SCADA/IIoT Host-Anwendung(en).
  • Der „Zustand“ kann durch den einzigartigen Satz von Birth/Death-Zertifikaten, die der SCADA/IIoT Host MQT Client MUST veröffentlichen, wenn eine neue MQTT-Sitzung eingerichtet wird.
  • Topic namespace for SCADA/IIOT Host :STATE/Scada_host_id
  • Es verwendet einen Aspekt des MQTT-Transports namens a‚RETAINE‘veröffentlichen den aktuellen Zustand des Primars beibehalten Host MQTT Client Session Zustand für alle verfügbarenMQTT Server.
  • Das Format der scada_host_id kann gültig sein String mit Ausnahme der reservierten Zeichen von „+“ (plus) „/“ (Forward Slash) und „#“ (Nummernschild).

Erstellung von SCADA/IIoT Birth Certificate Payload (STATE):

  • Klicken Sie auf SCADA/IIOT und
  • Erstellen Sie Veranstaltungen mit der Konfiguration „On Connect“.
  • In diesem Beitrag als SCADA/IIOT Host Thema Namespace/scada_host_id]: STAAT/SCADABIRTH
  • Set WILL Flagge als “1” und QoS als “1” halten
  • Wählen Sie den Nachrichtentyp als „Text“ und Variante als „Constant“.
  • Payload oder Nachricht als„ONLINE“.

SCADA/IIoT Host Death Certificate Payload (STATE):

  • Wenn der SCADA/IIoT Host MQTT-Client eine MQTT-Sitzung auf den MQTT Server(s) erstellt, die Todesurkunde wird Teil derWill TopicundDas ist nicht möglich.in der MQTT CONNECT Transaktion.
  • Das Thema Will sollte sein:STATE/Scada_host_id

Erstellung von SCADA/IIoT DEATHZertifikat Payload (STATE):

  • Klicken Sie auf SCADA/IIOT und
  • Klicken Sie auf die Schaltfläche Schalter direktWILL
  • In diesem Beitrag als :STAAT/SCADADEATH
  • Nachricht oder Payload als„OFFLINE“
  • Set WILL Flagge als “1” und QoS als “1” halten

MQTT EoN Node Command (NCMD)

  • Das NCMD-Befehlsthema liefert den Topic Namespace, der verwendet wird, um Befehle an jedes angeschlossene EoN zu senden Knoten.
  • Dies bedeutet, dass ein aktualisierter Metrikwert auf eine zugehörige Metrik übertragen wird, die in der NBIRTH-Metrik enthalten ist Liste.
  • Topic namespace:Namespace/group_id/NCMD/edge_node_id

Kommentare von MQTT EoN Node Command (NCMD)

SpBv1.0/Kiln/NCMD/1

  • Setzen Sie QoS auf “1” und halten Sie “1”
  • Wählen Sie den Nachrichtentyp als JSON und klicken Sie auf + Taste.
  • In diesem Fügen Sie NBIRTH metrisch wie:
  • ONLINE_STATE und ONLINE TIME.
  • Geben Sie den Schlüssel als ONLINE_STATE, wählen Sie “constant”, geben Sie Wert als TRUE und klicken Sie auf ADD
  • Nächster Klick + Taste und
  • Geben Sie Schlüssel als ONLINE_TIME, wählen Sie “Systemvariable” und wählen Sie “$Current_time aus der Liste
  • nächster Klick ADD und speichern Sie den JSON
  • Sobald die NBIRTH aufgetreten ist, veröffentlichen Sie die NCMD, indem Sie auf das Aktionssymbol klicken
  • auf der linken Seite wird nun der NCMD Befehle an angeschlossene EoN-Knoten senden.
  • Der Nächsteabonnierendas NCMD-Thema in SCADA/IIOT, um die Update Metrik von spBv1.0 zu erhalten.

Gerätekommando (DCMD)

  • Das DCMD-Thema bietet den Thema Namespace, der verwendet wird, um Metriken an jedes angeschlossene Gerät zu veröffentlichen.
  • Dies bedeutet, einen neuen Metrikwert an eine zugehörige Metrik zu senden, die in der DBIRTH Metrikliste enthalten ist.
  • Topic namespace:Namespace/group_id/DCMD/edge_node_id/device_id

Gerätekomman erstellendo (DCMD)

  • Klicken Sie auf spBv1.0 und
  • Veranstaltung mit„Instant Befehl
  • In diesem Beitrag als

SpBv1.0/Kiln/DCMD/1/LSM213

  • Setzen Sie QoS auf “1” und halten Sie “1”
  • Wählen Sie den Nachrichtentyp als JSON und klicken Sie auf + Taste.
  • In diesem Fügen Sie NBIRTH metrisch wie:
  • ONLINE_STATE und ONLINE TIME.
  • Geben Sie den Schlüssel als ONLINE_STATE, wählen Sie “constant”, geben Sie Wert als TRUE und klicken Sie auf ADD
  • Nächster Klick + Taste und
  • Geben Sie Schlüssel als ONLINE_TIME, wählen Sie “Systemvariable” und wählen Sie “$Current_time aus der Liste
  • klicken Sie auf ADD und speichern Sie den JSON.
  • Sobald die DBIRTH aufgetreten ist, veröffentlichen Sie die DCMD, indem Sie auf das Aktionssymbol klicken
  • auf der linken Seite wird nun der NCMD Befehle an angeschlossene EoN-Knoten senden.
  • Der Nächsteabonnierendas DCMD-Thema in SCADA/IIOT, um die Update Metrik von spBv1.0 zu erhalten.
  • Dies sind die Sparkplug-Set von MQTT Message Types, die zur Verwaltung des Verbindungszustands verwendet werden. Nächste) Der Bevywise IoT Simulatorbis eingebautMQTT Brokeroder anschließen andere MQTTBroker um die Spatkplug Simulation zu starten. Ebenso erstellen Sie Sparkplug Nachrichtentyp für andere Nodes.

Spezifikationen von MQTT Sparkplug

Derzeit gibt es zwei Sparkplug definierte Codiersysteme, die diese Spezifikation unterstützt.


  • Erstens:Sparkplug A KodierungRegelung basierend auf der sehr beliebten Kura Open Source Google Protocol Buffer Definition.
  • Zweitens:Sparkplug B KodierungSystem, das ein reicheres Datenmodell bietet, das mit dem Feedback vieler Systemintegratoren entwickelt wurde und das Ende Benutzer Kunden mit MQTT.

Erhalten Sie Ihre Umwelt validiert

Daten mit keinem Code generieren

vereinfacht die Simulation der EoN Node und Geräte mit einer einfachen Benutzeroberfläche