MINATAと学ぶオートメーション #76:産業用IoTのMQTT — 送る前に、話題と中身と溜め置きを設計する
産業用IoTのMQTT:送る前に、話題と中身と溜め置きを設計する
MQTTは軽く、柔らかい。機械から産業用IoTの仕組みへデータを上げるのに向いている。そしてその柔らかさゆえに、機械へつなぐ前にデータの取り決めが要る。取り決めがなければ、外の仕組みに届いたデータは使いにくく、保守しにくいものになる。
話題に構造を与える
話題の名前は、範囲と持ち主を階層で表す。拠点、ライン、機械、データの種類。ただし、変わり続ける細部まで名前に詰め込まない。構造が安定していれば、まとめて受け取ることも、枝ごとに権限を与えることもできる。名前が変わり続ければ、受け取る側は追えなくなる。
中身には版数と文脈を持たせる
送る中身には、版数、時刻の印、品質 の表し、単位、そして必要なら並び順や事象の識別を入れる。時刻の印のない整った中身は、回線が不安定なときにはほとんど役に立たない。受け取る側は、新しいのか古いのか判断できないからだ。版数は最初から入れておく。あとで構造を変えても、受け取る側を壊さずに済む。
事象か、標本か、まとめか
データの種類ごとに、送り方を決める。
| 種類 | 使いどころ | 送り方 |
|---|
| 事象 | 機械の状態の変化、警報 | 起きたときに送る |
| 標本 | 見張っている測定値 | 周期ごとに。頻度に上限を置く |
| まとめ | 電力、生産数 | 区間ごとに集計して |
受け取る人も、費用の見積もりも、保管の計画もないまま、あらゆるタグを高い頻度で流さない。
回線が切れたときの溜め置き
ゲートウェイには 溜め置きと再送 が要る。切れているあいだは溜め、戻ったら送る。もとの時刻の印を添えて、受け取る側が正しい順に並べられるようにする。大事なデータには、それに見合った到達の保証を選ぶ。状態の事象を落とさないために。
参考になる現場の一場面
あるゲートウェイは、機械の状態が変わったときに事象を送り、電力は区間ごとのまとめで送り、速く動く値には頻度の上限を置いている。中身には版数と時刻の印がある。回線が途切れたときはデータを溜め、戻ってから正しい順で送り直す。外の画面は事象を落とさず、古いデータを新しいものと取り違えることもない。
話題の構造、中身、送る方針は、受け取る側の必要と、費用と、保管の計画に従う。
よくある間違い
- 変わり続ける細部を話題の名前に詰め込み、受け取りにくくする。
- 版数も時刻の印もない中身を送り、切断のあとに使えなくなる。
- 受け取る人もいないのに、あらゆるタグを高い頻度で流す。
- 溜め置きがなく、回線が切れるたびにデータを失う。
- 到達の保証を選び違え、大事な状態の事象を落とす。
チェックリスト
- [ ] 話題が、範囲と持ち主を表す安定した階層になっている。
- [ ] 中身に版数、時刻の印、品質、単位がある。
- [ ] データの種類ごとに、事象か標本かまとめかを決めた。
- [ ] 溜め置きが切断を吸収し、もとの時刻の印を保っている。
- [ ] 到達の保証が、データの重さに見合っている。
最初の送信の前に決めた取り決めが、一年後もデータを使えるものにする。次の #77 では、制御系のネットワークを分ける話に移る。
MINATAで自動化の知識をもっと読む:https://minatavn.com/ja/blog/industrial-automation
前の記事 — #75:OPC UAによるデータ統合:https://minatavn.com/ja/blog/automation-75-opc-ua-data-integration-ja
次の記事 — #77:制御系ネットワークの分離:https://minatavn.com/ja/blog/automation-77-ot-network-segmentation-ja
MINATAの技術記事をすべて見る