Modbus マスターシミュレーター
最近、Modbusを使う必要がでてきたためModbusのマスターやスレーブとして使えそうなModbusToolというソフトウェアを検証してみました。
(Windows用)
ダウンロード
下記リンクからmsiファイルをダウンロードしてインストール。
Releases · ClassicDIY/ModbusTool · GitHub
インストール方法はこちら。
Home · ClassicDIY/ModbusTool Wiki · GitHub
ModbusMasterとMosbusSlave
![2022-06-15 18.57.17.jpg 2022 06 15 18 57 17](https://digital-light.jp/wp-content/uploads/2022/06/2022-06-15-18.57.17.jpg)
インストールすると、ModbusMaster(Active)とModbusSlave(Active)というアイコンが生成されます。
MasterとSlaveなのでそれぞれを立ち上げます。
Modbus Master
![2022-06-15 18.59.24 (1).jpg 2022 06 15 18 59 24 1](https://digital-light.jp/wp-content/uploads/2022/06/2022-06-15-18.59.24-1.jpg)
Masterの画面はこちら。今回は同じPCで立ち上げるModbusSlaveに接続するので、CommunicationのModeをTCPにして、IP Addressは同じPCを意味する127.0.0.1(デフォルト)にします。
Modbus Slave
![2022-06-15 19.01.21 (1).jpg 2022 06 15 19 01 21 1](https://digital-light.jp/wp-content/uploads/2022/06/2022-06-15-19.01.21-1.jpg)
Modbus Slaveを立ち上げた後、右上のListenボタンを押します。
こうすることで、MasterがSlaveに接続することができます。
![2022-06-15 19.02.34 (1).jpg 2022 06 15 19 02 34 1](https://digital-light.jp/wp-content/uploads/2022/06/2022-06-15-19.02.34-1.jpg)
これでListening状態になりました。
Modbus MasterからSlaveに接続
![2022-06-15 19.03.26 (1).jpg 2022 06 15 19 03 26 1](https://digital-light.jp/wp-content/uploads/2022/06/2022-06-15-19.03.26-1.jpg)
Masterの右上のConnectボタンを押すと、Communication Log画面に接続されたと表示されました。
Slaveに書き込んでMasterでRead Coils
![2022-06-15 19.15.17 (1).jpg 2022 06 15 19 15 17 1](https://digital-light.jp/wp-content/uploads/2022/06/2022-06-15-19.15.17-1.jpg)
Slaveにて、0に100と入力してからApplyを押します。
![2022-06-15 19.16.52 (1).jpg 2022 06 15 19 16 52 1](https://digital-light.jp/wp-content/uploads/2022/06/2022-06-15-19.16.52-1.jpg)
Start とSizeを上記の様に設定し、FunctionsにあるRead Coilsを押すと、Slaveの0に記載した100がMasterにも読み込まれます。
![2022-06-15 19.19.06.jpg 2022 06 15 19 19 06](https://digital-light.jp/wp-content/uploads/2022/06/2022-06-15-19.19.06.jpg)
このときMasterから送られたのはTXのコマンド。
ここでRXでくるのは、
![2022-06-15 19.20.11.jpg 2022 06 15 19 20 11](https://digital-light.jp/wp-content/uploads/2022/06/2022-06-15-19.20.11.jpg)
SlaveからはTXで送られたものが、MasterのRXと一致しているのがわかります。
Pollにチェックをいれる
![2022-06-15 19.21.24 (1).jpg 2022 06 15 19 21 24 1](https://digital-light.jp/wp-content/uploads/2022/06/2022-06-15-19.21.24-1.jpg)
Master側でPollにチェックをいれると定期的にMasterからTXを送信し、Slave側のデータを読み込みます。
Slaveにて複数のデータを書き込み
![2022-06-15 19.23.41.jpg 2022 06 15 19 23 41](https://digital-light.jp/wp-content/uploads/2022/06/2022-06-15-19.23.41.jpg)
Slave側で1と2に100を入力。
![2022-06-15 19.24.22.jpg 2022 06 15 19 24 22](https://digital-light.jp/wp-content/uploads/2022/06/2022-06-15-19.24.22.jpg)
Master側でRead Coilsを送ると、Slaveの0と1に記載した100が反映されます。
![2022-06-15 19.25.16 (1).jpg 2022 06 15 19 25 16 1](https://digital-light.jp/wp-content/uploads/2022/06/2022-06-15-19.25.16-1.jpg)
Masterが受けるRXには、100の16進数の値 64が2箇所あるのでこれSlaveに書き込んだ100のようです。
まとめ
Modbusについて、フリーのソフトウェアを使ってMasterとSlaveそれぞれの通信ができることがわかりました。
次回はNode-REDのModbusのライブラリを使って、Modbus通信の検証をしてみたいとおもいます。