Modbus マスターシミュレーター
最近、Modbusを使う必要がでてきたためModbusのマスターやスレーブとして使えそうなModbusToolというソフトウェアを検証してみました。
(Windows用)
ダウンロード
下記リンクからmsiファイルをダウンロードしてインストール。
Releases · ClassicDIY/ModbusTool · GitHub
インストール方法はこちら。
Home · ClassicDIY/ModbusTool Wiki · GitHub
ModbusMasterとMosbusSlave

インストールすると、ModbusMaster(Active)とModbusSlave(Active)というアイコンが生成されます。
MasterとSlaveなのでそれぞれを立ち上げます。
Modbus Master

Masterの画面はこちら。今回は同じPCで立ち上げるModbusSlaveに接続するので、CommunicationのModeをTCPにして、IP Addressは同じPCを意味する127.0.0.1(デフォルト)にします。
Modbus Slave

Modbus Slaveを立ち上げた後、右上のListenボタンを押します。
こうすることで、MasterがSlaveに接続することができます。

これでListening状態になりました。
Modbus MasterからSlaveに接続

Masterの右上のConnectボタンを押すと、Communication Log画面に接続されたと表示されました。
Slaveに書き込んでMasterでRead Coils

Slaveにて、0に100と入力してからApplyを押します。

Start とSizeを上記の様に設定し、FunctionsにあるRead Coilsを押すと、Slaveの0に記載した100がMasterにも読み込まれます。

このときMasterから送られたのはTXのコマンド。
ここでRXでくるのは、

SlaveからはTXで送られたものが、MasterのRXと一致しているのがわかります。
Pollにチェックをいれる

Master側でPollにチェックをいれると定期的にMasterからTXを送信し、Slave側のデータを読み込みます。
Slaveにて複数のデータを書き込み

Slave側で1と2に100を入力。

Master側でRead Coilsを送ると、Slaveの0と1に記載した100が反映されます。

Masterが受けるRXには、100の16進数の値 64が2箇所あるのでこれSlaveに書き込んだ100のようです。
まとめ
Modbusについて、フリーのソフトウェアを使ってMasterとSlaveそれぞれの通信ができることがわかりました。
次回はNode-REDのModbusのライブラリを使って、Modbus通信の検証をしてみたいとおもいます。