ModbusTcpMes
関連資料
Modbus通信の説明はModbusを参照してください
概略
ModbusTcpMesはModbusコマンドの作成を補助して相手機器にModbusコマンドを送信するアプリケーションです
動作確認環境: Win10
使い方

接続先とポート
接続先はModbus対応機器のIPアドレスを指定します
ポートはModbusは502固定です
ユニットID (HEX)
Modbus対応機器で指定されているユニットIDを16進で指定します
ファンクション
ファンクションを選択してオペランドを設定します
Modbus対応機器によって全てのファンクションに対応しているわけではありません 対応しているファンクションはマニュアルで確認してください
Modbus対応機器によって全てのファンクションに対応しているわけではありません 対応しているファンクションはマニュアルで確認してください
| FUNC | 名称 | 内容 | オペランド |
|---|---|---|---|
| 01 | Read Coil Status | コイルの読出 | アドレス, 個数 |
| 02 | Read Input Status | 入力ステータスの読出し | アドレス, 個数 |
| 03 | Read Holding Register | 保持レジスタの読出し | アドレス, 個数 |
| 04 | Read Input Register | 入力レジスタの読出し | アドレス, 個数 |
| 05 | Force Single Coil | コイルの書込み | アドレス, データ |
| 06 | Preset Single Register | 保持レジスタの書込み | アドレス, データ |
| 08 | Diagnostics | 通信の診断 | 診断サブコード,データ |
| 11 | Fetch Communication Event Counter | 通信イベントカウンタ読出し | なし |
| 12 | Fetch Communication Event Log | 通信イベントログ読出し | なし |
| 15 | Force Multiple Coils | 連続した複数のコイルの書込み | アドレス,個数,バイト数,データ |
| 16 | Preset Multiple Registers | 連続した複数のレジスタの書込み | アドレス,個数,バイト数,データ1... |
| 17 | Report Slave ID | スレーブ情報読出し | なし |
アドレスについて
コイルのアドレスを指定するときに20番地を指定したい場合は20から1引いた19を指定します
同様に入力ステータス、保持レジスタ、入力レジスタの指定も-1した数値で指定します
書込みデータのフォーマット
| コマンド | データの書き方 | 例 |
|---|---|---|
| (05) Force Single Coil | 0000 = OFF, FF00 = ON | FF00 |
| (06) Preset Single Register | 12AB(16進で表記) | 12AB |
| (15) Force Multiple Coils | 1100 0000 01 を書込む場合 0000 0011 10 (バイト単位で反対側からビットを並び替える) | 0000 0011 10 |
| (06) Preset Multiple Registers | 複数ワードを続けて記載 | 2ワード書き込む場合 1234ABCD |
手順
- ファンクションを選択します
- オペランドを入力します
-
[Create Command]ボタンを押すとコマンド枠にModbusコマンドが作成されます
コマンドはバイト単位で'-'を繋げて表示します
-
作成したコマンドはそのまま送信できますが、編集することもできます
編集する場合はバイト単位で'-'で区切ります
コマンドの送信
- [Send]を押すと送信コマンドのデータを送信します
送信したデータはDUMP枠に送信内容と受信内容を表示します
レスポンス
正常時
ファンクションに続いてデータ部分が付いて返信されます
(例)
(例)
| ファンクション | バイト数 | データ |
|---|---|---|
| 0x03 | 0x02 | 0x00 0x01 |
異常時
異常時の受信データではファンクションの最上位ビットがONした値で返信されます
(例)
(例)
| ファンクション | 異常コード |
|---|---|
| 0x83 | 0x02 |
