今回はModbusのTCP通信を試していこうと思います。
ツールのダウンロード
今回使うのはQModMaster(マスター)と
Modbus TCP/IP PLC Simulator(スレーブ)を使用します。
- ダウンロードページ
- QModMaster
https://sourceforge.net/projects/qmodmaster/
Modbus TCP/IP PLC Simulator
https://sourceforge.net/projects/modrssim2/
ツールのセットアップ
Modbus TCP/IP PLC Simulator
- 「Modbus TCP/IP PLC Simulator(ModRSsim2.exe)」を起動
- 起動後、左上に「Unloaded, click open port to simulate.」となっていたら、まだ待機していない状態です。→この状態なら、上部の一番右「🔌コンセントアイコン(Open Port)」をクリックしてください!
- 成功すると
「Serv. listening.
と表示されます(スレーブがポート502で待機)」
「画面上部のRx
/Tx
ランプが赤で点灯(通信準備完了)」
この2つの状態になります。
QModMaster
- 「qmodmaster.exe」を起動
- 上部メニューから「Options → Modbus TCP Settings」を開く
- Slave IDに自身のPCのIPアドレスを入力。
(TCP Portは502になっていれば変更なし) - 上部タブのコンセントをつなぐようなアイコンをクリックしつながった状態にする。

画像と同じように設定して、下部に自身のIPアドレスがあり、左の色が赤→緑になればOK
通信の確認
読み込み処理
QModMaster側で

画像の◯で囲ってある部分の左をクリックすると、一度のみ書き込み。
右をクリックするとScan Rate(ms)で指定した時間で自動書き込みを行ってくれます。
画面下部の白紙にSimulator側と同じ数値が出力されていれば成功です。
書き込み処理
Function Codeの部分をWrite Single Register(0x06)に切り替えて画面下部の白紙をクリックし好きな数値を入力、読み込みと同じようにどちらかをクリックするとSimulator側の数値が入力した数値と同じになっていれば成功です。
まとめ
このような仮想環境での通信の処理は初めてでした。
わからないところも多くかなり手こずりましたが無事に設定できました、
次はNode-redでの可視化などにチャレンジしていきたいと思います。