Modbus MQTT変換とは、ゲートウェイがModbusマスタとしてPLCや計測器のレジスタを周期的に読み出し、値をJSONなどに整形してMQTTブローカーへパブリッシュする仕組みです。設計の要点はポーリング周期、レジスタとトピックの対応表、QoS、書き込みの可否、通信の暗号化の五つです。
本ガイドは、2012年創業で産業用ディスプレイ、組込みボード、HMIパネル、産業用ゲートウェイ、エッジAIコンピュータを設計・製造するBeijing Huamei Xuntong Technology Co., Ltd. (TouchVision)のエンジニアリングチームが執筆しました。
要点まとめ
- Modbus MQTT変換は、レジスタを周期的に読み、整形してMQTTでパブリッシュする仕組みです。
- 最初にレジスタマップとトピック設計を一枚の表にまとめます。
- 32ビット値はワード順を必ず確認します。
- ポーリング周期は業務上の許容遅れ、QoSはデータ欠落の許容度で決めます。
- Modbusは閉じたネットワーク内に置き、外部はMQTT over TLSで接続します。
なぜModbusのままではクラウドにつなぎにくいのですか?
Modbusは「聞かれたら答える」ポーリング型のプロトコルで、MQTTは「変化を配信する」パブリッシュ/サブスクライブ型のプロトコルだからです。Modbusでは上位機器(マスタ、クライアント)が下位機器(スレーブ、サーバ)に毎回問い合わせる必要があり、多数の拠点をインターネット越しに直接ポーリングするのは通信量とセキュリティの両面で現実的ではありません。
MQTTは軽量なメッセージングプロトコルで、OASIS標準として仕様が公開されています。機器側はブローカーにメッセージを送るだけで、受け取る側は必要なトピックを購読します。そこで現場側にゲートウェイを置き、Modbusで集めた値をMQTTに載せ替える「Modbus MQTT変換」が、工場やエネルギー設備のIoT化(IIoT)でよく使われる構成になっています。

Modbus MQTT変換はどのような流れで動きますか?
基本の流れは「読む、整える、送る」の三段階です。
- 読む:ゲートウェイがRS-485(Modbus RTU)またはイーサネット(Modbus TCP)で、保持レジスタ(ファンクションコード03)や入力レジスタ(04)を決まった周期で読み出します。
- 整える:生のレジスタ値にスケールや単位、データ型(16ビット整数、32ビット浮動小数点など)を適用し、タイムスタンプ付きのJSONに変換します。
- 送る:決めたトピック名でMQTTブローカーへパブリッシュします。逆方向に、特定トピックのメッセージを受けてレジスタへ書き込む(06や16)設定もできます。
ModbusとMQTTの違いを表で比べると?
両者は競合ではなく役割が違うため、現場はModbus、上位はMQTTと分担させるのが一般的です。
| 項目 | Modbus(RTU/TCP) | MQTT |
|---|---|---|
| 通信モデル | マスタ/スレーブ(クライアント/サーバ)のポーリング | パブリッシュ/サブスクライブ(ブローカー経由) |
| 主な用途 | PLC、インバータ、電力量計など現場機器 | クラウド、SCADA、データ基盤への配信 |
| データの意味 | レジスタ番号だけ。意味は別資料で管理 | トピック名とJSONで意味を持たせやすい |
| 到達保証 | 応答の有無で判断 | QoS 0/1/2を選択 |
| 暗号化 | 標準仕様には含まれない | TLSで暗号化しやすい |
| 接続方向 | 上位から現場へ問い合わせ | 現場から外へ接続(受信ポート開放が不要) |
レジスタとトピックはどう対応づければよいですか?
最初に「レジスタマップ」と「トピック設計」を一枚の表にまとめておくことが、Modbus MQTT変換で最も効果のある作業です。例えば「拠点/ライン/機器/項目」のような階層でトピック名を決め、各レジスタのアドレス、データ型、倍率、単位、読み出し周期を同じ行に書きます。
32ビット値は二つのレジスタにまたがるため、ワード順(ビッグエンディアンかリトルエンディアンか)を機器の取扱説明書で必ず確認してください。ここを間違えると、値が桁違いになる典型的な不具合になります。RS-485側では、スレーブアドレスの重複と通信速度・パリティの不一致も、つながらない原因として多く見られます。
ポーリング周期とQoSはどう決めますか?
ポーリング周期は「その値が業務で何秒遅れても困らないか」で決め、QoSは「欠けてよいデータか」で決めます。温度や電力量のような値は数秒から数十秒の周期で十分なことが多く、RS-485の帯域と機器の負荷を抑えられます。
値が変化したときだけ送る「変化時送信」と、一定周期で送る「定期送信」を組み合わせると通信量をさらに減らせます。QoSは計測値の連続送信ならQoS 0か1、警報やカウント値のように欠落が困るものはQoS 1以上を選ぶのが目安です。回線断に備えて、ゲートウェイ側で一時的にデータを蓄積する機能があるかも確認しましょう。エッジ側で処理を完結させるか、クラウドに送るかの考え方はエッジとクラウドの比較記事も参考になります。
セキュリティはどこに注意すべきですか?
Modbus自体には認証も暗号化もないため、Modbusは現場の閉じたネットワーク内にとどめ、外に出るのはMQTT over TLSだけにするのが基本です。
ブローカーへの接続にはユーザー認証またはクライアント証明書を使い、書き込みを許可するトピックは必要最小限にします。初期パスワードの変更やファームウェア更新の手順も、導入前に決めておきましょう。IoT機器の設計・運用時の考え方は、IPA(情報処理推進機構)のIoTセキュリティ関連資料や、総務省・経済産業省のIoTセキュリティガイドラインが参考になります。
TouchVisionのゲートウェイは何に対応していますか?
TouchVisionのTV-IS013は、Modbus、MQTT、OPC UA、HTTPに対応した産業用IoTゲートウェイです。STM32MP135(Cortex-A7 1 GHz)、4Gb DDR3、8 GB eMMCを搭載し、GbE×2、RS-485×2、CAN、4G/Wi-Fiを備えます。電源は5 V DC、動作温度は-20〜+70 °Cで、卓上または壁掛けで設置できます。
CAN J1939や4〜20 mA入力、LoRa/NB-IoTが必要な屋外設備には、18〜36 V DC入力で-25〜+85 °Cに対応するTV-W-GYWGがあります。集めたデータの画面化にはHMaker SCADA HMIソフトウェアやクラウド構成・可視化プラットフォームを組み合わせられます。適用例は産業オートメーションとエネルギー・電力のページをご覧ください。
導入前チェックリスト:ModbusデータをMQTTに載せる前に
次の項目を事前に決めておくと、ゲートウェイの設定と試運転が短く済みます。
- 接続する機器の台数、Modbus RTUかTCPか、スレーブアドレスと通信速度
- 読み出すレジスタのアドレス、データ型、ワード順、倍率と単位
- 項目ごとのポーリング周期と、変化時送信か定期送信か
- トピック名の命名規則とJSONの形式
- QoS、保持メッセージ(retain)、回線断時のデータ蓄積
- 書き込みを許可するレジスタと、その操作権限
- ブローカーの場所(社内/クラウド)、TLSと認証方式
- 電源電圧、設置場所の温度、4G/Wi-Fiなどの回線
TouchVisionについて TouchVisionは2012年から、産業用タッチディスプレイ、組込みボード、パネルPC、IoTゲートウェイ、エッジAIコンピュータを、標準品からOEM/ODM案件まで設計・製造しています。標準品には納品日から3年間の保証が付きます。カスタム開発についてはTouchVision OEM/ODMサイトの産業用IoTゲートウェイのカスタム開発、または会社概要をご覧ください。
よくあるご質問
Modbus RTUとModbus TCPのどちらでもMQTTに変換できますか?
はい。ゲートウェイがRS-485ならRTU、イーサネットならTCPで機器を読み出し、どちらの値も同じ形式でMQTTに送れます。両方を同時に扱える機種も一般的です。
MQTTブローカーは何を使えばよいですか?
社内サーバに置くオープンソースのブローカーでも、クラウドのマネージドサービスでも構いません。重要なのはTLSと認証に対応し、運用体制に合っていることです。
MQTTからModbus機器に書き込みはできますか?
できます。特定トピックへのメッセージをレジスタ書き込みに変換する設定を使います。誤操作を防ぐため、書き込み可能な項目と権限は最小限にしてください。
OPC UAとMQTTはどちらを選ぶべきですか?
工場内でSCADAやMESとデータモデルごと連携するならOPC UA、多拠点からクラウドへ軽く配信するならMQTTが向いています。両方に対応したゲートウェイなら併用もできます。
4G回線でもModbus MQTT変換は使えますか?
使えます。MQTTは軽量なので、モバイル回線の現場でも、変化時送信や周期の調整で通信量を抑えられます。回線断に備えて、データを一時蓄積する機能も確認してください。