メインコンテンツまでスキップ

Sparkplug B — IIoT標準(MQTTベース)

Sparkplug B は、Eclipse Tahu / Cirrus Link が定義した IIoT(産業用IoT)メッセージング標準 です。MQTT broker 上に標準的な topic 構造と Google Protobuf payload を載せることで、さまざまなベンダーの機器を相互運用できるようにします。PlantPulse Edge は broker の Sparkplug topic を購読して metric を自動キャッシュし、タグの read() で即座に参照できるようにします。


登録フォームの入力値

入力欄記入内容
IPアドレスMQTT broker192.168.10.50
ポートMQTT broker port1883(平文)/ 8883(TLS、今後対応)
Group ID (group-id)Sparkplug Group — 工場/事業所単位FactoryA, Plant01
Edge Node ID (edge-node-id)単一ノードまたは +(すべてのノード)+(デフォルト), edge-01
Keep Alive (keep-alive)MQTT keep-alive 秒60(デフォルト)
Connect Timeout (connect-timeout)MQTT接続タイムアウト ms5000(デフォルト)
Group / Edge Node ID は broker 側の発行者(NBIRTH)と一致させる必要があります

送信側(Eclipse Tahu / Ignition / Cirrus Link MQTT Engine など)がどの group / edge ID で NBIRTH を送信しているかを確認し、同じ値を入力してください。edge-node-id=+ にすると、グループ内のすべてのノードを一括で購読します。


タグのPLCアドレス表記

Sparkplug の metric 識別子は group 以降の部分のみを使用します(group はドライバオプションで分離)。

表記意味
edge1/TemperatureEdge node edge1 の node-level metric Temperature
edge1/motor1/RPMEdge node edge1 配下の device motor1 の metric RPM
edge1/dev2/Status例:デバイス状態 boolean
名前 vs alias

Sparkplug の送信側は NBIRTH/DBIRTH 時に metric 名と alias(数値)を併せて発行します。以降の NDATA/DDATA は alias のみを送信してペイロードサイズを削減します。PlantPulse ドライバが alias↔名前のマップを自動的に維持するため、ユーザーは常に 名前 のみを入力すればよいです。


データ型の自動判別

Sparkplug B Payload は metric ごとに datatype を明示します(Int8/16/32/64、UInt8/16/32/64、Float、Double、Boolean、String、DateTime、Bytes など)。ドライバが wire 上の datatype に応じて適切な型に変換し String としてキャッシュするため、タグの data_type は以下のように合わせてください。

Sparkplug datatype推奨 data_type
Int8 / Int16 / Int32 / UInt8 / UInt16 / UInt32Integer
Int64 / UInt64 / DateTimeLong
FloatFloat
DoubleDouble
BooleanBoolean
String / Text / UUIDString

書き込み(NCMD / DCMD)

PlantPulse の write は自動的に NCMD/DCMD へ振り分けられます。

  • edge1/SetPoint(segment 2)→ NCMD publish(node レベル命令)
  • edge1/dev1/SetPoint(segment 3以上)→ DCMD publish(device レベル命令)

現在の phase では、すべての命令値を String datatype で publish します。送信側(Tahu / Ignition)が metric の datatype を把握しているため、通常は自動的に変換されます。


参考リンク

  • Eclipse Tahu — <https://eclipse.dev/tahu/>
  • Sparkplug Spec v3.0 — <https://sparkplug.eclipse.org/specification/>
  • Cirrus Link MQTT Engine — <https://www.cirrus-link.com/mqtt-engine/>