ModbusTcpMes

ダウンロード

ダウンロードされたときは利用規約に同意したものとみなします

ModbusTcpMes.zip

関連資料

Modbus通信の説明はModbusを参照してください


使い方

ModbusTcpMesはModbusコマンドの作成を補助して相手機器にModbusコマンドを送信するアプリケーションです
動作環境: Win10以降, .NET6.0



接続先とポート
接続先はModbus対応機器のIPアドレスを指定します
ポートはModbusは502固定です

ユニットID (HEX)
Modbus対応機器で指定されているユニットIDを16進で指定します

ファンクション
ファンクションを選択してオペランドを設定します
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

手順
  1. ファンクションを選択します
  2. オペランドを入力します
  3. [Create Command]ボタンを押すとコマンド枠にModbusコマンドが作成されます
    コマンドはバイト単位で'-'を繋げて表示します
  4. 作成したコマンドはそのまま送信できますが、編集することもできます
    編集する場合はバイト単位で'-'で区切ります

コマンドの送信
手順
  1. [Send]を押すと送信コマンドのデータを送信します

送信したデータはDUMP枠に送信内容と受信内容を表示します

レスポンス

正常時

ファンクションに続いてデータ部分が付いて返信されます
(例)
ファンクション バイト数 データ
0x03 0x02 0x00 0x01

異常時

異常時の受信データではファンクションの最上位ビットがONした値で返信されます
(例)
ファンクション 異常コード
0x83 0x02