3
1

More than 1 year has passed since last update.

Modbusを使用したIoTデータ取得

Last updated at Posted at 2022-10-06

はじめに

Siemens社のPaaS(Platform as a Service)であるMindSphereへ汎用プロトコルを用いたデータのアップロードモデルを検討しました。

デモ機の構成

以前、本Qiitaで紹介しました二酸化炭素モニタリングシステムではSiemens社のIoTゲートウェイであるMindConnectNanoとSiemens社のPLCをSiemens社独自のプロトコルS7を使用してデータ通信を行っていました。これまでの構成図(一部抜粋)を図1に示します。

Modbus_図1.png

今回の構成

当社二酸化炭素濃度モニタリングシステムではPaaSのゲートウェイ(MindConnectNano)へデータを送っていました。このゲートウェイはS7プロトコルの他に汎用的なプロトコルにも対応しています。今回は汎用的なプロトコルの一つであるModbus RTUおよびModbus TCPを用いて各種センサーで取得したデータをPaaSへ送るための接続モデルを検討しました。
図2にその構成図を示します。

Modbus_図2.png

Modbus通信

Modbus通信はModicon社のPLC向けに同社が策定したシリアル通信プロトコルです。このプロトコルは仕様が公開されており、実装も容易であることから多くのファクトリ向けの機器で使用されております。
Modbus通信はシリアル通信とTCP/IP通信に分けられ、前者はModbus RTUおよびModbus ASCII、後者はModbus TCPと呼ばれるものが使われます。
MindConnectNanoにおいてシリアル通信はRS232、RS422、RS485に対応しておりその仕様は表1の通りです。

Modbus_表1.png

Modbus通信を使用する各機器には一意なアドレスが付与されます。Modbusコマンドにはこのアドレスが含まれており、アドレス指定された機器のみが通信を行います。Modbusプロトコルは​マスター/​スレーブ​アーキテクチャ​を​採用​し​て​おり、​一般的にマスタ​が​スレーブ​に​要求​を​送信​し​て応答​を​待ち​ます。図2の構成においてはマスターはMindConnectNano、スレーブはセンサー①~センサー④となります。

Modbus RTU設定

MindSphere、MindConnectNanoにおけるModbus RTU通信を設定パラメータについて以下に記述します。
①データソース設定
MindSphere、MindConnectNanoではセンサー、PLCなどデータの取得元のデバイスをデータソースと呼んでいます。データソースの設定ではシリアル通信のパラメータを指定します。標準のパラメータは表2、オプションのパラメータは表3の通りです。

Modbus_表2.png

Modbus_表3.png

②データポイント設定
データソース内のデータの所在地(アドレス)をデータポイントと呼んでいます。データポイントの設定ではデータに関わる各パラメータを指定します。データポイントの各パラメータを表4に示します。

Modbus_表4.png

Modbus_表5.png

Modbus_表6.png

Modbus_表7.png

情報は Modbus スレーブ デバイスの 4 つの異なるテーブルに保存されます。 2 つのテーブルにオン/オフの離散値 (コイル) が格納され、他の2 つのテーブルに数値 (レジスタ) が格納されます。 各コイルのサイズは 1 ビットで、0 ~ 65535 のデータ アドレスが割り当てられます。各レジスタのサイズは 1 ワード (16 ビット / 2 バイト) で、データ アドレスは 0 ~ 65535 となります。

③設定例
設定例を表8に示します。

Modbus_表8.png

Modbus TCP設定

MindSphere、MindConnectNanoにおけるModbus TCP通信を設定パラメータについて以下に記述します。
①データソース設定
Modbus RTUと同様にModbus TCPにおいてもデータソースの設定を行います。標準のパラメータは表9、オプションのパラメータは表10の通りです。

Modbus_表9.png

Modbus_表10.png

②データポイント設定
Modbus RTUと同様にModbus TCPにおいてもデータポイントの設定が必要です。データポイントの各パラメータを表11に示します。

Modbus_表11.png

Modbus_表12.png

Modbus_表13.png

Modbus_表14.png

情報は Modbus スレーブ デバイスの 4 つの異なるテーブルに保存されます。 2 つのテーブルにオン/オフの離散値 (コイル) が格納され、他の2 つのテーブルに数値 (レジスタ) が格納されます。 各コイルのサイズは 1 ビットで、0 ~ 65535 のデータ アドレスが割り当てられます。各レジスタのサイズは 1 ワード (16 ビット / 2 バイト) で、データ アドレスは 0 ~ 65535 となります。

③設定例
設定例を表15に示します。

Modbus_表15.png

おわりに

プログラマブルロジックコントローラ(PLC)で広く使われれているプロトコルであるModbusでPaaSへセンサーデータをアップロードする方法について検討しました。
イーサネット通信だけでなくシリアル通信にも対応できることから、旧型の装置、設備からも容易にDXを推進することが可能となります。
今後は実センサーを用いた環境の構築を検討したいと思います。

※SiemensおよびMindSphereは、Siemensの登録商標または商標です

3
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
1