Principal Technical Engineer
こんにちは、テクニカルエンジニアの望月です。
今回はTXOne ネットワーク防御ソリューション ”Edgeシリーズ”の検証等にも活用できるOTプロトコルの通信シミュレータのModbusToolの使い方をご紹介します。
ModbusToolとは
ModbusToolとは、産業用デバイス間のデータをやり取りするために使われている通信プロトコル“Modbus”のシミュレーションに用いることができるWindows用ソフトウェアです。
なお、Modbusプロトコルの通信方式がマスタ・スレーブ方式であるため、ModbusToolもマスタ用PCとスレーブ用PCにそれぞれにインストールして使用します。
※同一PCでマスタ用プログラムとスレーブ用プログラムを起動して、一台のPCでシミュレーションを行う事も可能です。
今回構築する環境の構成
VMware上にWindows仮想マシンを二つデプロイして、それぞれModbusToolのマスタ端末、スレーブ端末として使用します。
図:環境構成図
ModbusToolの入手
ModbusToolのインストーラ”ModbusTool.msi”は、GitHubから入手することができます。
ModbusToolのインストール
GitHubから入手したインストーラ”ModbusTool.msi”をマスタ端末、スレーブ端末にて、それぞれで実行してインストールを行います。
図:ModbusToolインストーラ
インストーラ実行後、ウィザードに沿ってインストールを行います。
*ここでは詳細な手順は割愛します。
図:ModbusToolインストールウィザード
インストールが完了すると、デスクトップ上に”ModbusMaster(Active)”と”ModbusSlave(Active)”の二つのアイコンが表示されます。
図:インストール完了後のデスクトップ
ModbusToolを用いた通信
ModbusToolを用いた通信は、次の流れで確立します。
- マスタ端末でマスタサービスを起動
- スレーブ端末でスレーブサービスを起動
- スレーブ端末をリッスン状態に設定
- マスタ端末からスレーブ端末に接続
- Read coilを実行し、スレーブ端末からマスタ端末に読み込み
1 ModbusToolを用いて通信するときは、マスタ端末で”ModbusMaster(Active)”アイコンをダブルクリックしてマスタサービスを起動します。
図:マスタ端末で実行するアイコン
2 スレーブ端末では”ModbusSlave(Active)”アイコンをダブルクリックしてスレーブサービスを起動します。
図:スレーブ端末で実行するアイコン
3 スレーブ端末をリッスン状態に設定するために、スレーブ端末の操作画面、右上の”Listen”(赤枠箇所)をクリックします。
図:スレーブ端末操作画面 その1
4 マスタ端末からスレーブ端末に接続するために、マスタ端末の操作画面 左上の”IP Address”(緑枠箇所)にスレーブ端末のIPアドレスを入力し、右上の”Connect”(赤枠箇所)をクリックします。
図:マスタ端末操作画面 その1
5 実際にRead Coilコマンドを実行して通信を行ってみます。
最初にスレーブ端末側にCoil値を設定します。ここでは、0番フィールドに”22”という値を入力(緑枠箇所)し、”Apply”(赤枠箇所)をクリックします。
図:スレーブ端末側操作画面 その2
次に、マスタ端末にて”Read coils”(赤枠箇所)をクリックします。するといかがでしょうか、マスタ端末側の0番フィールドの値(緑枠箇所)が”0”→”22”に変わったかと思います。これはスレーブ端末側の値を通信して読み込んだためです。
図:マスタ端末側操作画面 その2
まとめ
今回ご紹介した通り、ModbusToolを用いると簡単にModbus通信のシミュレートを行うことができます。今回は”Read coils”コマンドを用いたシミュレーション方法を用いましたが、他にも”Write single coil”等、Modbusのいくつかのコマンドを模すことができるので、これらの通信制御を実装しているTXOne Edgeシリーズの評価・検証にもご利用いただけるツールの一つと考えております。
次回は、実際にEdgeシリーズを接続して制御するケースをご紹介させていただきたいと思いますので、お楽しみに!