ホーム >ニュース スパークプラグ MQTT データデータ

MQTTの特長 IoTシミュレータを用いたスパークプラグデータシミュレーション

バイ Ponlakshmi


sparkplug B

MQTTの特長 Sparkplug は、オープンで自由に利用できる仕様を提供します。 ネットワーク(EoN)ゲートウェイまたはネイティブMQTTのエッジ 有効エンドデバイスとMQTTアプリケーションが双方向通信 MQTTインフラ内 ユニークな側面の一つMQTTプロトコルもともとあった 設計設計 リアルタイムSCADA システム 帯域幅制限と信頼性の低いネットワークインフラ上のデータレイテンシを削減するのに役立ちます。 同様に、Sparkplug 仕様の意図は、MQTT のネイティブを最大限に活用することです。 SCADA/IIoT ソリューションのリアルタイムに適用されるセッションの継続的意識機能。

この記事では、IoTシミュレータでSparkplug Bエンコーディングをシミュレートするのに役立ちます。 学ぶことが非常に重要です。MQTTの特長 Sparkplug トピック名空間要素そして、スパークプラグ MQTT メッセージの種類データをシミュレートするために。

Sparkplug MQTT トピックとメッセージ


Sparkplug トピック名空間要素:


Sparkplug 仕様を使用するすべてのクライアントは、このデフォルト UTF-8 フォーマット トピック名空間を使用します。

名前空間/group_id/message_type/edge_node_id/[device_id]

  • 名前空間:両方の構造を定義するルート要素です。 お問い合わせ 残りの名前空間要素とエンコーディング 関連するペイロードデータに使用されます。 名前空間の形式はUTF-8 文字列定数使用する必要があります。 同様に、 現在の位置 Sparkplug 仕様は 2 つの名前空間を定義します。
  • Sparkplugペイロード定義
  • 名前空間要素は"spAv1.0" は、
  • Sparkplugペイロード定義
  • 名前空間要素は「spBv1.0」とは
  • グループ_id:MQTT EoNノードのユニークな論理グループIDを提供します。 のために group_id 形式は UTF-8 英数字の文字列は「+」(プラス)、'/'(フォワードスラッシュ)、および 「#」 (ナンバーサイン) [group_id] が異なる Cement 業界に MQTT EoN ノードを使用する場合の例 部門は持っています 別の[group_id]。
  • メッセージタイプ 要素:指示を、いかに扱うかとして提供します MQTTの特長 メッセージのペイロード。 以下の message_type 要素は Sparkplug Topic Namespace で定義されます。
  • ログイン- MQTT EoNノードの出生証明書。
  • ノーダース- MQTT EoNノードの死亡証明書。
  • ガバナンス– デバイスの出生証明書。
  • ダース– デバイスの死亡証明書。
  • ログイン– ノードのデータメッセージ。
  • ダータ– デバイスデータメッセージ
  • NCMDシリーズ- Nodeコマンドメッセージ。
  • DCMDの– デバイスコマンドメッセージ。
  • スタンダード- 重要なアプリケーションの状態メッセージ。
  • エッジ_node_id:内のMQTT EoNノードの識別が不要 インフラ Edge_node_id の場合、このフォーマットは UTF-8 英数字文字列で、予約された文字を除きます。 「+」 (プラス), ‘/’ (フォワードスラッシュ), と ‘#’ (番号記号). end_node_id はすべてのメッセージが公開されているので、できるだけ短くする必要があります。
  • デバイス_id:付属のデバイスを識別するために使用される不要なID MQTTの特長 EoN ノード。 device_id はオプションの要素です 一部のメッセージは、デバイスの場所にあるedge_node_id に発信またはdestined されるためです。 ログイン ない お問い合わせ device_id の形式は、予約済み以外の有効な UTF-8 英数字文字列です。 「+」の文字 (プラス), '/' (forward slash), ‘#’ (number Sign). device_id はすべてのメッセージが公開されているので、 お問い合わせ ショート 可能です。

Sparkplug MQTT デバイスとネットワークのシミュレーション

スパークプラグ MQTT メッセージの種類

Sparkplug は、接続状態を管理するために使用される MQTT メッセージのセットの Topic Namespace を定義します。 として 双方向性 一般的なリアルタイムSCADA/IIoT、モニタリング、データに適用するメトリック情報交換 収集システムの使用 場合。 定義されたメッセージタイプには、以下が含まれます。


  • ログイン- MQTT EoNノードの出生証明書。
  • ノーダース- MQTT EoNノードの死亡証明書。
  • ガバナンス– デバイスの出生証明書。
  • ダース– デバイスの死亡証明書。
  • ログイン– ノードのデータメッセージ。
  • ダータ– デバイスデータメッセージ
  • NCMDシリーズ- Nodeコマンドメッセージ。
  • DCMDの– デバイスコマンドメッセージ。
  • スタンダード- 重要なアプリケーションの状態メッセージ。

これらの定義されたメッセージの使用の利点:

これらの定義されたメッセージを使用して、SCADA/IIOT アプリケーションは、次のことができます。


  • 当初MQTTに接続されたEoN/Deviceのすべてのメタデータとモニターの状態を発見 インフラ
  • その後、すべての診断、特性、メタデータ、および現在の状態を含むすべてのメトリックを発見 値。
  • EoN/Device メトリックに書き込み/コマンドメッセージを発行します。

スパークプラグの作成 MQTTの特長 IoTシミュレータのメッセージタイプ

MQTT EoN NBIRTHおよびNDeathの証明書:EoN の最初の MQTT メッセージ ノード 成功を収めた上で公開しなければならない MQTT セッションの設立は、EoN BIRTH 証明書です。

NBIRTHの作成: [namespace/group_id/NBIRTH/edge_node_id]


  • spBv1.0 をクリックし、
  • 作成する MQTTイベントお問い合わせ「一日ごと」5秒間隔ごとに設定します。
  • そのように、トピックの名前空間を与える

spBv1.0/キルン/NBIRTH/1

  • 1 に QoS を選び、1 として保持して下さい
  • 「NBIRTH」としてメッセージを与え、保存します

NDEATHの作成: [namespace/group_id/NDEATH/edge_node_id]

spBv1.0/キルン/NDEATH/1

  • 1 に QoS を選び、1 として保持して下さい
  • 「NDEATH」にメッセージを伝え、保存します。

MQTT EoN ノードデータ (NDATA)

  • MQTT EoN ノードが適切な NBIRTH でオンラインの場合、NDATA が公開されます。
  • これにより、MQTTのネイティブな連続セッション意識の優位性が監視できます。 新着情報 すべての接続された MQTT EoN ノードと、例外 (RBE) のメッセージによるレポートに依存 MQTT セッション接続上のメトリック状態が変更されます。
  • NDATAメッセージのペイロードには、RBEまたはタイムベースが含まれます。 任意のサブスクライブに報告する必要があるメトリックEoNノード値MQTTクライアントお問い合わせ

NDATAの作成:[namespace/group_id/NDATA/edge_node_id]

  • spBv1.0 をクリックし、
  • + アイコンをクリックし、選択ビーキャビア
  • その中で、コマンドのトピックを次のようにします。「NBIRTH トピック名空間」コマンド“NBIRTH”のコンセプト
  • 次に、イベントの NDATA トピック名空間を与え、イベントデータを現在の時刻に表示し、保存をクリックします。

spBv1.0/キルン/NDATA/1

  • 今NDATAは、NDATAトピック名空間を購読すると、購読者に公開されます。

デバイス出生証明書[DBRITH]

  • MQTT EoN ノードは、付随する物理および/または論理デバイスの管理を担当しています。 EoN ノードが NBIRTH を公開したら、EoN ノードがオンラインであることを確認します。
  • しかし、このノードに接続された各物理的および/または論理的なデバイスは、このノードを提供する必要があります。 ガバナンス 前へ 消費者アプリケーションはメトリック構造を作成/更新します(このデバイスが初めての場合) 最近の投稿 見ました) アプリケーションに関連付けられたメトリックを設定して、「良い」ステート。

DBRITHの作成:[namespace/group_id/DBIRTH/edge_node_id]

  • spBv1.0 をクリックし、
  • + アイコンをクリックし、選択ビーキャビア
  • その中で、「NBIRTH トピック名空間」と「NBIRTH」コマンドとしてコマンドトピックを付与します。
  • 次に、イベントのDBIRTHトピック名空間を与え、イベントデータをDBIRTHとして表示し、保存をクリックします。

spBv1.0/キルン/DBIRTH/1

  • DBIRTH は、DBIRTH トピックの名前空間を購読すると、購読者に公開されます。

デバイスデータメッセージ(DDATA):

  • MQTT EoN ノードと関連デバイスが適切な出生証明書ですべてオンラインである場合 モードで キルセントの 変更するメトリックの例外(RBE)レポート。
  • すべての接続されたデバイスのSTATEを監視し、レポートに依存することができます 例外(RBE) メッセージ MQTT セッション接続で任意のメトリック値が変更されます。
  • DDATAの作成:[名前空間/group_id/DDATA/edge_node_id/device_id]
  • spBv1.0 をクリックし、
  • 10秒間隔で20分間隔で「特定の期間」でイベントをクリックします。
  • そのようにトピックを与える

spBv1.0/キルン/DDATA/1/LSM213


  • 1 に QoS を選び、1 として保持して下さい
  • 「ON|OFF」としてランダムなメッセージを発信し、保存をクリックします。

デバイス死亡証明書[DDEATH]

  • 何らかの理由でデバイスが利用できなくなった場合 (応答なし、CRCのエラーなど) EoN ノードが DDEATH を代わって公開する責任です。 お問い合わせ エンドデバイス。
  • DDEATH 証明書が公開されたら、MQTT クライアントはこれを購読します デバイスは、すべてのメトリックのデータ品質を設定する必要があります「セール」お問い合わせ

ダースの作成:

[名前空間/group_id/DDEATH/edge_node_id/device_id]

  • spBv1.0 をクリックし、
  • + アイコンをクリックし、選択ビーキャビア
  • その中で、コマンドのトピックを「DDATAトピック名空間」とし「OFF」コマンドとして付与します。
  • 次に、イベントのDBIRTHトピック名空間を与え、イベントデータをDDEATHとして表示し、保存をクリックします。

spBv1.0/キルン/DDEATH/1

  • DDEATH は、DBIRTH トピックの名前空間を購読すると、購読者に公開されます。

SCADA/IIoTホスト誕生と死亡証明書

  • SCADA/IIoTホストノードは、メッセージの購読と公開を行うMQTTクライアントアプリケーションです。
  • インフラでは、mulitple MQTT Serversは、MQTT EoNの冗長性と拡張性を提供します。 ノード 注意する必要があります お問い合わせ「状態」プライマリSCADA/IIoTホストアプリケーション
  • SCADA/IIoTホストの誕生/出産証明書のユニークなセットで「state」をキャッシュできます。 MQTTの特長 クライアント 必須 新しいMQTTセッションが確立されたときに公開します。
  • SCADA/IIOTのトピック名空間 ホスト:STATE/scada_host_idの一覧
  • MQTT トランスポートの側面は、「続ける」公開する プライマリの現在の状態を維持する ホスト MQTT クライアント セッションの状態をすべての利用可能な状態にMQTT サーバーお問い合わせ
  • scada_host_id の形式は、予約された文字の例外で String が有効です。 「+」 (プラス), '/' (forward slash), ‘#’ (number Sign).

SCADA/I 出産 IoT 証明書ペイロードの作成(STATE):

  • SCADA/IIOT をクリックし、
  • 「On Connect」設定でイベントを作成します。
  • SCADA/IIOT ホストのトピック名空間として話題を出す/scada_host_id:: STATE/SCADABIRTH(スケート/スキャダブラッシュ)
  • セットウィル フラグを「1」と「1」として保持
  • 「Text」と「Constant」としてメッセージタイプを選択します。
  • ペイロードやメッセージをそのままに「オンライン」お問い合わせ

SCADA/IIoTホスト死亡証明書ペイロード(STATE):

  • SCADA/IIoT ホスト MQTT クライアントが MQTT セッションを MQTT Server(s) に確立する場合、 死亡証明書は、死証明書の一部になりますトピックそして、ペイロード登録済み MQTT CONNECTトランザクション。
  • ウィールトピックは以下のとおりです。STATE/scada_host_idの一覧

SCADA/IIoT DEATHCertificateペイロードの作成(STATE):

  • SCADA/IIOT をクリックし、
  • スイッチボタンを直接クリックして、ログイン
  • そのようにトピックを与える:ステート/SCADADEATH
  • メッセージまたはペイロードをとして与える「オフライン」
  • セットウィル フラグを「1」と「1」として保持

MQTT EoN ノードコマンド (NCMD)

  • NCMDコマンドのトピックは、接続されたEoNにコマンドを送信するために使用されるTopic Namespaceを提供します ノード。
  • これは、NBIRTHメトリックに含まれる関連するメトリックに更新されたメトリック値を送信することを意味します リスト。
  • トピックの名前空間:名前空間/group_id/NCMD/edge_node_id

MQTT EoN ノードコマンドの作成 (NCMD)

spBv1.0/キルン/NCMD/1

  • 「1」にQoSを設定し、「1」に保持
  • JSON でメッセージタイプを選択し、[+] ボタンをクリックします。
  • このようにNBIRTHメトリックを追加します。
  • ONLINE_STATEとオンラインタイム。
  • 鍵を「Online_STATE」として指定し、「constant」を選択し、TRUE として値を指定し、ADD をクリック
  • 次 クリック + ボタンと
  • 「システム変数」を選択し、リストから「$Current_time」を選択します。
  • 次に ADD をクリックし JSON を保存します。
  • NBIRTHが発生したら、アクションアイコンをクリックしてNCMDを公開します。
  • 左側にNCMDが接続されたEoNノードにコマンドを送信します。
  • 次へサインアップSCADA/IIOT の NCMD トピックでは、spBv1.0 から更新メトリックを取得できます。

デバイスコマンド(DCMD)

  • DCMDのトピックは、接続されたデバイスにメトリックを公開するために使用されるトピック名空間を提供します。
  • つまり、DBIRTH メトリックリストに含まれている関連するメトリックに新しいメトリック値を送信します。
  • トピックの名前空間:名前空間/group_id/DCMD/edge_node_id/device_id

デバイスコマンドの作成(DCMD)

spBv1.0/キルン/DCMD/1/LSM213

  • 「1」にQoSを設定し、「1」に保持
  • JSON でメッセージタイプを選択し、[+] ボタンをクリックします。
  • このようにNBIRTHメトリックを追加します。
  • ONLINE_STATEとオンラインタイム。
  • 鍵を「Online_STATE」として指定し、「constant」を選択し、TRUE として値を指定し、ADD をクリック
  • 次 クリック + ボタンと
  • 「システム変数」を選択し、リストから「$Current_time」を選択します。
  • 次に ADD をクリックし JSON を保存します。
  • DBIRTHが発生したら、アクションアイコンをクリックすることでDCMDを公開
  • 左側にNCMDが接続されたEoNノードにコマンドを送信します。
  • 次へサインアップSCADA/IIOT の DCMD トピックでは、spBv1.0 から更新メトリックを取得できます。
  • これらは、接続状態を管理するために使用されるMQTTメッセージタイプのSparkplugセットです。 次へログイン Bevywise IoTシミュレータお問い合わせ 組み込みMQTTブローカーまたは接続する その他のMQTTBroker Spatkplug シミュレーションを開始する。 同様に他のノードの Sparkplug メッセージタイプを作成します。

MQTTスパークプラグの仕様

現在、この仕様がサポートする2つのSparkplugのエンコーディングスキームがあります。


  • まずはスパークプラグA ログインスキーム 非常に人気のあるKuraオープンソースのGoogleプロトコルバッファ定義に基づく。
  • 第二にスパークプラグ B ログイン多くのシステムインテグレータとエンドのフィードバックで開発された豊富なデータモデルを提供するスキーム ユーザー MQTT をご利用のお客様

環境を検証する

コードなしでデータを生成

EoN ノードとデバイスのシミュレーションを簡単なユーザーインターフェイスで簡素化