QModMasterチュートリアル:無料でオープンソースのModbusデバッグツールTCP/RTUフル機能コードとバスモニタ

無料無料技术资料

这篇内容可直接阅读,适合用于基础学习和検索引流。

QModMasterはQtフレームワークに基づいて開発された無料でオープンソースのModbusマスターデバッグツールで、Modbus TCPとModbus RTUの2つのプロトコルをサポートし、内蔵のバスモニタ(Bus Monitor)はリアルタイムで元のHEXデータパケットを表示でき、産業オートメーションエンジニアがModbus機器をデバッグするために必要なツールです。この記事では、QModMasterのダウンロードインストール、インターフェイス操作、TCP/RTU接続設定、レジスタの読み書き、データフォーマット設定、バス監視、よくある問題のトラブルシューティングについて詳しく説明し、エンジニアがこの強力なModbusデバッグツールをすばやく習得できるようにします。

I. QModMasterの概要

1.1 QModMasterとは

QModMasterは、libmodbus通信ライブラリに基づいてQtフレームワークによって開発された無料のオープンソースのModbusマスターシミュレーションソフトウェアです。直感的なグラフィカルインターフェイスを提供し、コードを記述せずにModbusスレーブデバイスと通信テストを実行でき、読み書きコイル、ディスクリート入力、ホールドレジスタ、入力レジスタの4つの標準Modbusデータタイプをサポートしています。

1.2 核心功能特性

  • デュアルプロトコルサポート:同时サポートModbus TCP(イーサネット(イーサネット))和Modbus RTU(シリアルポートRS485/RS232)
  • 全機能コードカバー機能コード0 1 - 0 6、15、16などのすべての標準Modbus機能コードをサポートします。
  • バスモニター Bus Monitor生のHEXパケットをリアルタイムで表示し、スレーブID、機能コード、データ負荷、CRCチェックを自動的に解析します。
  • 複数のデータ形式10进数、16进数、符号付き/符号なし16ビット整数、32ビット整数、32ビット整数、32ビット
  • 連続スキャン。:可設定扫描間隔,自动周期性読み取り設備のデータ
  • クロスプラットフォームWindows、Linux、macOSオペレーティングシステムをサポート
  • 完全に無料。:开源無料,无功能限制,无使用时长限制
  • 軽量軽量化:単一ファイルグリーンバージョン、インストール不要、解凍すぐに使用

1.3他のModbusデバッグツールとの比較

工具オープンソースソースTCPRTUはバスの監視データ形式価格は
QModMasterはい。サポートサポートする。サポートする。Int/Float/Hex無料です。
Modbus Pollいいえ、いいえサポートする。サポートする。サポートする。豊かな豊かさ支払い($129)
Modbus Slaveいいえ、いいえサポートする。サポートする。サポートする。豊かな豊かさ支払い($129)
ModScanいいえ、いいえサポートする。サポートする。サポートなし。一般支払いは
CAS Modbusスキャナいいえ、いいえサポートする。サポートサポートなし。一般に無料です。
pymodbus REPL是サポートする。サポートする。サポートなし。コードコード。無料です。

二、下载与インストール

2.1公式ダウンロードアドレス

  • 公式サイトqmodmaster.com/
  • SourceForge下载:https://sourceforge.net/projects/qmodmaster/
  • GitHubのソースコードgithub.com/mirror/qmodmaster

2.2 Windowsインストール

# Windowsのインストール手順
1. https://sourceforge.net/projects/qmodmaster/を参照
2.“Download”をクリックして最新バージョンをダウンロードします通常はqmodmaster-x.x.x.zip
3.任意のディレクトリCToolsQModMasterなどに解凍します。
4. qmodmaster.exeをダブルクリックしてプログラムを起動する
5. VC++ランタイムが見つからない場合は、Microsoft Visual C++ Redistributableをインストールします。

# 注意:QModMasterはグリーンソフトウェアで、インストールは不要で、解凍することができます。

2.3 Linuxのインストール

# Ubuntu/Debianインストール依存関係
sudo apt-get updateをする
sudo apt-get install libqt5core 5a libqt5gui5 libqt5widgets5 libmodbus 5

#ダウンロードと解凍
wget https://sourceforge.net/projects/qmodmaster/files/latest/download-O qmodmaster.zip
unzip qmodmaster.zip-d qmodmaster
CD QModmaster

#実行します
chmod +x qmodmaster
./ Qmodmasterさん

#またはソースコードからコンパイル
sudo apt-get install qt 5-default libmodbus-dev
git clone https://github.com/mirror/qmodmaster.git
CD Qmodmaster
Qmakeは
makeする
sudo make installを実行

3.インターフェースの詳細

QModMaster主界面分为四个主要エリア,了解各エリア功能是高效使用的基础。

3.1 Menu Barの

Menuメニュー機能性は
File新建连接、保存設定、加载設定、退出
オプションオプションModbus TCPまたはModbus RTUモードを選択し、接続パラメータを設定する
Viewビュー表示/非表示Bus Monitor、設定データ表示格式
助けてください概要、バージョン情報

3.2ツールバーツールバー

  • 接続/切断Modbusデバイスの接続/切断
  • Read/Write:読み取りまたは書き込み操作を1回実行
  • Scanスキャン連続スキャンモードのオン/オフ
  • アイコンの設定:接続設定ダイアログをすばやく開く

3.3データ表示エリア

メイン領域には、レジスタデータが表形式で表示され、以下の列があります。

  • アドレスアドレスレジスタアドレス(0ベース)
  • Value Hex:16進値
  • Value Dec:10進数の値
  • Value Float:浮動小数点値(手動で有効にする必要があります)
  • Description:説明ユーザー定義の説明

3.4 Bus Monitor(バス监视器)

下部領域には、QModMasterの最も強力な機能の1つであるリアルタイム通信パケットが表示されます。View → Bus Monitorを起動します。各レコードの内容:

  • タイムスタンプタイム:ミリ秒までの正確な送受信時間
  • 方向Tx(送信)またはRx(受信)
  • オリジナルHEXデータ:完全なModbus ADUパケット
  • 自動解析です。:スレーブID、機能コード、データフィールド、CRCチェックコード

4. Modbus TCP接続構成

4.1設定手順

# Modbus TCP接続の設定手順

1.オプション→ Modbus TCP..。
2.ポップアップしたダイアログボックスで次のように入力します。
   - IPアドレス:デバイスのIPアドレス(例:192.168.1.100)
   - Portポート番号、デフォルト502
   - Slave IDスレーブアドレスUnit ID、通常は1
   - Timeoutタイムアウト時間ミリ秒、デフォルトは1000
3. OKをクリックして保存
4.ツールバーのConnectボタンをクリックして接続を
5.接続が成功すると、ステータスバーに“Connected”と表示されます。

# 注意事項
- コンピュータと機器が同じネットワークにあることを確認する
- ファイアウォールを閉じるかポート502を解放する
- デバイス側でModbus TCP機能を有効にする必要があるデバイスもあります。
- Slave ID Unit IDは通常、プレーンTCPデバイスのは0または1で、
  ゲートウェイを介してRTU機器を接続する場合、対応するRTUスレーブアドレスを記入する

4.2 TCP接続のトラブルシューティング

障害現象考えられる原因チェック方法
接続タイムアウトIPエラー/ネットワーク障害デバイスIPをpingし、ネットワークケーブルとスイッチを確認します
接続拒否です。ポートエラー/サービスがしませんtelnetでポート502をテストする:telnet 192.168.1.100 502
接続は成功したがデータなしSlave IDエラーSlave ID= 0,1,255を試して、デバイスマニュアルを見る
背番号は0 2。範囲外のアドレスデバイスでサポートされているレジスタ·アドレス範囲の確認
背番号は0 1。機能コード未対応デバイスが機能コードをサポートすることを確認する

5. Modbus RTU接続構成

5.1ハードウェアの準備

Modbus RTU需要USB转RS485変換器です。(如CH340、FT232芯片的モジュール),将电脑的USB接口转换为RS485バス信号。

#ハードウェア配(USBから485モジュールへ)
USB-RS 485モジュールA端子--デバイスRS 485 A端子(D+ / + / 非反転)
USB-RS485モジュールB端子--デバイスRS485 B端子D-/ - /反転
USB-RS 485モジュールGND--デバイスGND(推奨接続、コモンモード干渉低減)

#ご注意
- A/Bラインは反転しないでください。反転すると応答がなくなります。
- バスの両端に120Ωの終端抵抗
- シールド付きツイストペアを使用したシールド層シングルエンドアース
- 複数のデバイスがバス上に並列に接続され、手をつないでデイジーチェーントポロジ

5.2ソフトウェアの構成

# Modbus RTU连接設定步骤

1. 插入USB转RS485変換器です。,在デバイスマネージャ(device manager)中表示COM口号
   (Windows:デバイスマネージャ(device manager) → ポート(COM和LPT))
   (Linux:ls /dev/ttyUSB* 或 /dev/ttyACM*)

2. 打开 Options → Modbus RTU...
3. 設定シリアルパラメータ:
   - Port:COMポート番号,例如 COM3 或 /dev/ttyUSB0
   - Baud Rate:ボーレート,必须与デバイス一致(9600/19200/38400/115200)
   - Data Bits:データ·ビット,通常为 8
   - Stop Bits:ストップ·ビット,通常为 1
   - Parity:チェックビット,None/Even/Odd,必须与デバイス一致
   - Slave ID:駅からの住所,1-247
   - Timeout:タイムアウト時間,建议 1000-3000ms

4. 点击 OK 保存
5. 点击 Connect 连接

# 常见シリアルパラメータ组合
- 9600, 8, N, 1(最も一般的な)
- 9600, 8, E, 1(部分PLC)
- 19200, 8, N, 1
- 38400, 8, N, 1
- 115200, 8, N, 1(短距離·高速)

5.3 RTU接続のトラブルシューティング

障害現象考えられる原因解決策は
シリアルポート打不开COMポート占有/未搭載他のシリアルポートソフトウェアを閉じてCH340ドライバを再インストールする
完全に無反応。A/BラインバックA/Bラインの交換
完全に無反応。アドレスの誤り。デバイスのダイヤルスイッチまたはソフトウェア設定の表示
CRCエラーボーレート/チェックビットの不一致シリアル·パラメータを項目ごとにチェックし、設備と完全に一致する
時折の損失。干渉/終端抵抗なしバスの両端に120Ω抵抗、シールド線を使用
データの文字化けストップビットの不一致停止ビットが1か2かを確認する

六、リードホールドレジスタ(機能コード03)

保持レジスタ(Holding Registers)はModbusで最も一般的に使用されるデータ型であり、関数コード03であり、アドレス範囲は通常40001 〜 49999(0 − basedアドレス0 〜 9998に対応)である。

#読み込みホールドレジスタ操作手顺

1.デバイスに接続されていることを確認しますステータスバーにConnectedが表示されます
2.メイン·インタフェースで読み取りパラメータを設定するには、次の手順に従います。
   - スレーブID:スレーブアドレス(接続設定で設定されている場合は省略可能)
   - Function Code“Read Holding Registers 03”を選択します。
   - 開始アドレス:開始アドレス(0ベース、例:0)
   - Quantity読取り数量(10など)
3. Read/Writeボタンをクリックして読み取りを実行します。
4.データテーブルに読み込まれたレジスタ値を表示

#アドレスの説明
- QModMasterは0ベースのアドレスを使用します(0から始まる)
- デバイスマニュアルの40001はQModMasterアドレス0に対応します。
- デバイスマニュアルの40010はQModMasterアドレス9に対応しています。
- 変换式QModMasterアドレス=マニュアルドレス- 40001

#例を挙げる
温度センサーデータの読み取り:
- マニュアルの説明:温度は40101で、2レジスタ、浮動小数点
- QModMasterの設定Start Address=100、Quantity=2
- 読み取り後のアドレス100と101は元の値を表示
- Floatビューに切り替えて実際の温度値を確認する

7.リードコイルと離散入力

7.1リードコイル(機能コード0 1)

#コイルの読み取りCoils-关数コード01
#コイルは読み書き可能なブール値で、アドレス範囲は00001- 0 9999です。

操作手順:
1.“Function Code”“Read Coils 01”
2.開始アドレス:開始アドレス(0ベース)
3. Quantity:読み取り数(最大2,000個)
4. Read/Writeを選択
5.各コイルのON/OFFを表に表示

#アドレスの変換
- マニュアル00001 → QModMasterアドレス0
- マニュアル00010 → QModMasterアドレス9

7.2離散入力の読み取り(機能コード0 2)

# 離散入力の読み取り(Discrete Inputs)- 機能コード02
# ショップ型入力是読み取り専用布尔量,アドレス範囲10001-19999

操作步骤:
1. Function Code 選択 "Read Discrete Inputs (02)"
2. Start Address:開始アドレス
3. Quantity:読み取り数
4. 点击 Read/Write

# 典型用途
- 読み取り开关ステータス、按钮ステータス、限位开关
- 読み取りデバイス运行/故障ステータス
- 読み取り门禁、センサーは触发ステータス

# アドレス変換
- 手册10001 → QModMasterアドレス0
- 手册10005 → QModMasterアドレス4

7.3入力レジスタの読み出し(コード04)

#入力レジスタの読み出しRegisters-コード04
入力レジスタは読み取り専用の16ビットデータで、アドレス範囲は300 01 ~ 39999です。

操作手順:
1.“コード选択”“Read Registers 04”
2. Start Address:開始アドレス
3. Quantity読取り数量
4. Read/Writeを選択

# 典型的な利用
- アナログ入力(AI)の読み取り:温度、圧力、トラフィック
- ADCサンプル値の読み込み
- デバイス内部ステータスパラメータの読み取り

#アドレスの変換
- マニュアル300 01 → QModMasterアドレス0
- マニュアル30100 → QModMasterアドレス99

8.書き込み操作

8.1単一コイルの書き込み(関数コード0 5)

#シングルコイルを書くForce Single Coil-ファンクションコード05

操作手順:
1.“Code选択”“Single Coil 05”
2. Start Address:コイルアドレス
3.データテーブルで対応するアドレス行を見つけました
4. Value 列をダブルクリックして、次のように入力します。
   - 0 x FF 00はON(吸引)を意味します。
   - 0 x 0000はオフを意味する。
5. Read/Writeを選択します
6.書き込み要求とデバイス応答をBus Monitorで確認

#ご注意
- QModMasterの書き込みコイルは0 x FF 00/0 x 0000を使用します。
  Modbusプロトコル規格で定められた値
- 書き込みが成功すると、デバイスは同じ要求フレームをエコーする

8.2単一レジスタへの書き込み(関数コード0 6)

#単一レジスタへの書き込みPreset Single Register-機能コード06

操作手順:
1.“Function Code選択”“Write Single Register 06”
2. Start Address:レジスタのアドレス
3.データテーブル内の対応する行のValue 列をダブルクリックします
4.书き込む値を入力します10进数または16进数
5. Read/Writeを選択します

#例:温度の設定
- 温度設定値は40100、範囲0-100、分解能0.1
- 25.5°Cに設定するには、書き込み値=255
- 開始アドレス=99、値=255
- 書き込みをクリック。

8.3複数のコイルを書く(関数コード15)

#複数のコイルを書き込むForce Multiple Coils-機能コード15

操作手順:
1. Function Code選択“Write Multiple Coils 15”
2. Start Address:開始アドレス
3. Quantity書込み数量
4.各コイルの値をデータテーブルで1つずつ設定します(0 x FF 00/0 x 0000)
5. Read/Writeをクリックする

#ご注意
- 一度に最大1968個のコイルを書き込む
- すべてのコイル値が一度にデバイスに送信される

8.4複数のレジスタを書き込む(関数コード16)

# 複数のレジスタを書く。(Preset Multiple Registers)- 機能コード16

操作步骤:
1. Function Code 選択 "Write Multiple Registers (16)"
2. Start Address:開始アドレス
3. Quantity:写入数量
4. 在データ表格中逐个設定すべてのレジスタ。的值
5. 点击 Read/Write 一括書き込みき込み入

# サンプル:批量設定PID参数
- P在40200,I在40201,D在40202
- Start Address=199, Quantity=3
- 分别設定P=100, I=50, D=20
- 点击写入,一次性更新三个参数

IX.データフォーマット

QModMasterサポート多种データ表示格式,経由 View 菜单切换。正确設定データ格式是解读設備のデータ的关键。

9.1サポートされるデータ形式

格式説明書は適用可能なシーン
Unsigned Int 1616ビット符号なし整数(0-65535)ステータスワード、カウント、生ADC値
タグ:Int 1616ビット符号付き整数(-32 7 6 8 ~ 32 7 6 7)温度、圧力などが负になり得る量
Unsigned Int 3232ビット符号なし整数(2レジスタ)カウント数、累積量
タグ:Int 3232ビット符号付き整数(占21つのレジスタ)大規模なシミュレーション
フロート32IEEE 75 4単精度浮動小数点数(2レジスタ)温度、圧力、トラフィックなどの物理量
ヘックスは16進プリミティブ値デバッグ、プロトコル解析
Binaryより二进制位表示ステータスワードのビットごとの解析

9.2 浮動小数点数表示方法

#32ビット浮動小数点数を見る

1. 2つの连続する保持レジスタを先に読み込む(コード03).
2.表示メニューを開く
3.“Float”または“32-bit Float”を选択
4.データテーブルは自動的に隣接する2つのレジスタを
   1つの浮動小数点数としての結合

#浮動小数点数の順序
浮動小数点数の格納順序は、デバイスによって異なる場合があります。
- ABCDビッグエンディアンreg[0]=上位16ビット、reg[1]=下位16ビット最も一般的
- CDABワードスワップreg[0]=下位16ビット、reg[1]=上位16ビット
- DCBAリトルエンディアン完全反転

Floatが明らかに間違った値を表示した場合(NaN、sumableなど)、
説明エンディアンが一致しないため、次のことが必要です。
1.電卓を使用した手動変換検証
2.またはModbus Pollなどの他のツールを使用してエンディアンを切り替える
3.記録デバイスの正しいエンディアン、その後の開発で使用

10.バスモニターの詳細

Bus MonitorはQModMasterの最も貴重なデバッグ機能であり、バス上で送信される生のパケットを表示し、エンジニアが通信問題を特定するのに役立ちます。View → Bus Monitorを起動します。

10.1 データパケットは解析サンプル

#Modbus RTUパケットの例

送信リクエストの送信(Tx):スレーブ1の保持レジスタ0 - 9を読み込む
Tx 01 03 00 00 00 0A C5 CD
    │ │ │ │     │ │ │     │ │ │ │
    │ │ │ │     │ │ │     │ ‥ CRCチェックローバイト
    │ │ │ │     │ │ │     6...CRCチェックハイバイト
    │ │ │ │     6---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
    │ │ │ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃
    │--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
    ######################
    ゞ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

受信応答(Rx):ステーションから10個のレジスタ値を返す。
Rx 0 1 0 3 14 0 0 6 4 0 0 C 8 0 1 2 C 0 1 90 0 1 F 4 0 2 5 8 0 2 BC 0 3 20 0 3 8 4 0 3 E 8 7 B 6 E
    │ │ │ │
    レジスタ0値= 0 x 0 0 64 = 100
    │ │ │ │ │ │ ┃ ― ―バイト数= 20(10レジスタ× 2バイト)
    │ ‥ ‥ ― ―機能コード0 3
    6---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

#Modbus TCPパケットの例
TCPモードはRTUよりもMBAPヘッダ(7バイト)が多い

Tx: 00 01 00 00 00 06 01 03 00 00 00 0A
    │ │ │ │ │ │ │ │ │ │     │ │ │
    │ │ │ │ │ │ │ │ │ │     数量= 10です。
    │ │ │ │ │ │ │ │ ── ── ── ── ── ── ― ― ― ― ― ― ― ―開始アドレス= 0
    │ │ │ │ │ │ │ │ │ │ │ │ ── ── ── ── ── ── ── ── ── ── ──機能コード03
    │ │ │ │ │ │ │ │ │ │ │ │ │ ― ― ― ― ― ― ― ― ― ― ― ― ―スレーブID = 1
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ― ― ― ―長さ= 6バイト長さ= 6バイト長さ= 6バイト長さ=
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ── ── ── ── ── ── ── ── ── ── ── ── ── ── ── ── ── ── ──
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─
    │ = 0
    ≪ ≪トランザクションID | Transaction ID | emdw ≫ = ≪リクエスト応答の照合に使用| Transaction ID = 1 | emdw ≫

10.2異常応答の解析

Modbus例外応答形式
#関数コード=元の関数コード+0 x 80
#例外コード= 1バイト

Rx 01 83 02C0 F1
    │ │ │ │
    │ │ │ CRCチェック| CRCチェック
    │ │ │ │ │ │ │ ── ― ― ―例外コード= 0 2(不正なデータアドレス)
    │-------例外関数コード= 0 x 83(元0 3 + 0 x 80)
    6---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

#通常の異常コード
0 1-Illegal Function:デバイスはこの機能コードをサポートしていない
02 - Illegal Data Address不正なデータアドレスアドレスが範囲外です。
03 - Illegal Data Value不正なデータ値不正な値を書き込む
04 - Slave Device Failureスレーブデバイスの障害:デバイスの内部エラー
05 - Acknowledge確認:承認済み、処理中
0 6-Slave Device Busy:後でもう一度試してください

#バスモニターの使い方
- 正確な時刻を表示するには、“Show Timestamp”をチェックします。
- TxとRxの時間差を比較して、デバイスの応答速度を計算する
- 例外応答時に例外コードを重視する
- Rxなしはデバイスが応答しない、配線とアドレスを確認

11.連続スキャンモード

#連続スキャンScan機能

1.読み取りパラメータの設定(機能コード、アドレス、数量)
2.ツールバーのスキャンボタンをクリックする(またはF 5を押す)。
3. QModMasterはで周期的にデータを読み込む
4.データテーブルでーたてーぶる最新値をリアルタイムで更新さいこうしんさいこうしん
5.もう一度スキャンを停止する。

#スキャン間隔設定
- Options →スキャン間隔の設定Scan Rate
- 共通間隔100ms、500ms、1000ms、2000ms
- 間隔が短すぎるとデバイスが応答できなくなる
- デバイスの応答速度に応じて調整される1000msから開始を推奨

#スキャンモードの利用
- センサーデータの変化をリアルタイムで監視
- デバイスの稼働状態の観察
- テスト機器の応答速度と安定性
- データのトレンドを記録する(スクリーンショットまたはサードパーティ製ツールとの併用)

#ご注意
- スキャン中に機能コードやアドレスを頻繁に切り替えないでください。
- RTUモードでのスキャン間隔は500ms以上
- 長時間スキャンすると機器が発熱することがあります。熱に注意

十二、実际の応用事例

12.1ケース1:温度湿度センサのデバッグ

#装置:RS 485温湿度トランスミッタ
#マニュアルのパラメータ:
#   - 駅からのアドレス:1
#   - ボーレート:96 00、8 N 1
#   - 温度:300 01、16ビット符号付き整数、分解能0.1°C
#   - 湿度:300 02、16ビット符号なし整数、分解能0.1% RH

# QModMaster操作:
1.オプション→ Modbus RTU → COM 3,96 00,8,N,1,Slave=1
2. Connectと接続
3. Function Code = Read Input Registers 04
4. Start Address = 0、Quantity = 2
5. Read/Write
6.結果を確認:
   - アドレス0値=253 → 温度=25.3°C Signed Int 16
   - 住所1値=652 → 湿度= 65.2% RH(符号なしInt 16)
7.スキャンをオンにして温度変化をリアルタイムに観察

12.2ケース2:制御リレーモジュール

# デバイス:8路Modbus继电器モジュール
# 手册参数:
#   - 駅からの住所:2
#   - ボーレート:9600, 8N1
#   - 继电器1-8对应コイル0-7
#   - 写コイル0xFF00=吸合,0x0000=断开

# QModMaster操作:
1. Options → Modbus RTU → COM3, 9600, 8, N, 1, Slave=2
2. Connect
3. 読み取り继电器ステータス:
   Function Code = Read Coils (01)
   Start Address = 0, Quantity = 8
   Read/Write → 表示8路继电器当前ステータス
4. 控制继电器1吸合:
   Function Code = Write Single Coil (05)
   Start Address = 0
   双击アドレス0的Value列,入力 FF00
   Read/Write → 听到继电器吸合声
5. 控制继电器1断开:
   Value改为 0000 → Read/Write
6. バッチ制御:
   Function Code = Write Multiple Coils (15)
   設定前4路为FF00,后4路为0000
   Read/Write → 前4路同时吸合

12.3ケース3:周波数コンバータのデバッグ

機器:Modbus TCP周波数コンバータ
#マニュアルのパラメータ:
#   - IP:192.16 8.1.50、ポート50 2
#   - ステーションID:1
#   - 動作周波数40001、16ビット整数、分解能0.01 Hz
#   - 出力30001、16ビット整数、分解能0.1A
#   - 40100、write 1= start、write 0= stop
#   - 周波数設定40101、範囲0-5000 0.00-50.00Hz

# QModMaster操作:
1.オプション→ Modbus TCP → IP= 192.16 8.1.50、ポート= 50 2、スレーブ=1
2. Connectと接続
3.読み取り周波数:
   FC=Read Holding Registers 03、Addr=0、Qty=1
   値=2500 →周波数=25.00Hz
4.出力電流を読み取る:
   FC=Read Registers 04、Addr=0、Qty=1
   値=135 →電流= 13.5 A
5.周波数は30Hzです。
   FC=Write Single Register 06、Addr=100
   値= 300 0 →書き込み
6.周波数変換器の起動:
   FC=Write Single Register 06、Addr=99
   値=1 →書き込み
7.スキャン監視の開始

13.高度なスキル

13.1プロファイルの保存とロード

# 保存当前設定
File → Save As → 選択保存路径和文件名
設定文件包含:接続パラメータ、機能コード設定、データ格式、説明信息

# 加载設定
File → Open → 選択之前保存的設定文件
快速切换不同デバイス的デバッグ設定

# 建议
为每个项目/デバイス保存独立的設定文件,
命名格式:项目名_デバイス名_日期.qmm
例如:FactoryA_TempSensor_20260917.qmm

13.2アドレススキャンスキル

#デバイスレジスタアドレスがわからないのスキャン方法

方法1:広範囲に読み込む
- Quantity=125(Modbusの最大単一読み取り)を設定します。
- アドレス0から開始し、オフセットごとに125
- どのアドレスが正常に応答したかを記録する(非例外コード0 2)

方法2:バスモニターの観察
- スキャンを開き、広範囲に読み取る
- バスモニタで通常のデータを返すリクエストを確認する
- 例外コード02はアドレス範囲が存在しないことを示す。

方法3:類似の設備を参照
- 同じブランドの同じシリーズのデバイスのレジスタテーブルは通常似ています。
- 既知のアドレスでテストし、徐々に拡張する

#ご注意
- デバイスのフルアドレス空間ブルートフォーススキャンを実行しない
- 一部のデバイスは頻繁な例外要求に対して保護をトリガーする
- 推奨スキャン間隔500ms以上

13.3 Wiresharkとの連携

# Modbus TCPネットワークパケット解析

1. Wiresharkを開き、ネットワークカードを選択してパケットをキャプチャします。
2. QModMasterでの読み取りと書き込みの実行
3. Wiresharkのフィルタリング:modbus
4.完全なTCPパケットを見る
5. WiresharkがModbusプロトコルフィールドを自動的に解析

#シーンの適用
- ネットワーク遅延とパケット損失の分析
- 主な紛争の調査
- ゲートウェイプロトコル変換が正しいことを確認する
- Modbus TCPプロトコルの詳細

# RTUパック
- リスニング機能付きUSBからRS 485モジュールへの接続
- または専用のRS 485バスアナライザを使用する
- QModMasterのバスモニターはほとんどのシナリオで十分です。

14.よくある質問FAQ

Q1:QModMasterサポートModbus ASCII吗?

サポートはなし。QModMasterはModbus TCPとModbus RTUのみをサポートします。Modbus ASCIIは古いプロトコルであり、現在はほとんど使われていない。ASCI IプロトコルにはModbus Pollやその他のツールがあります。

Q 2:なぜすべての値が0なのですか?

考えられる原因:1アドレスエラー、未使用アドレスの読み取り; 2デバイスの電源が入らないか実行されていない; 3データ型の設定エラー、浮動小数点数が整数として表示される; 4スレーブIDが一致しない。回避策:バスモニターで正常な応答があるかどうかを確認し、機器マニュアルのアドレス表を確認します。

Q3 QModMasterはスレーブSlaveシミュレーションを行うことができますか?

ダメだよ。QModMasterは純粋なマスター Masterツールであり、スレーブデバイスのみアクティブに読み書きすることができます。スレーブをエミュレートするには、Modbus Slave(有料)またはpymodbusのサーバーサイド機能(無料)を使用できます。

Q 4:読み取り可能なレジスタは何個ですか?

Modbusプロトコルでは、一度に最大125個の保持レジスタ/入力レジスタ、2,000個のコイル/ディスクリート入力、最大123個のレジスタ/1968個のコイルへの書き込みが可能である。QModMasterはこの制限に従います。

Q 5:Windows 11でQModMasterがフラッシュする方法は?

試してみてください:①管理者として実行する;② VC++ランタイムの最新バージョンをインストールする;③右プロパティ→互換性→Windows 7互換モード;④最新バージョンをダウンロードする。

Q 6:複数のデバイスを同時に接続するには?

QModMasterシングル·インスタンスに接続できるデバイスは1つだけです。複数のQModMasterインスタンスを同時に開くことができ、それぞれが異なるデバイスまたは異なるスレーブアドレスに接続できます。RTUモードでは、複数のスレーブが同じバス上にある場合、スレーブIDを切り替えるだけです。

15.学習資源

  • QModMaster公式サイトqmodmaster.com/
  • SourceForgeダウンロードsourceforge.net/projects/qmodmaster/
  • Modbusプロトコルの公式仕様modbus.org/specs.php
  • libmodbusのドキュメントlibmodbus.org/documentation/
  • Modbus TCPパケットキャプチャWireshark公式ドキュメント検索“Modbus”
  • RS485ハードウェア設計ガイドラインTIアプリケーションノートSLVA 67 7

QModMaster作为一款無料开源的Modbusデバッグツール,凭借其直观的界面、强大的バス监视器和双协议サポート,成为工业自動化エンジニア不可或缺的デバッグ利器。掌握QModMaster的使用,能够快速验证デバイス通讯、トラブルシューティング协议問題、読み取り和写入レジスタのデータ,大大提高オンサイトデバッグ效率。建议配合デバイス手册和Bus Monitor功能,从简单的リードホールドレジスタ开始,逐步掌握すべて関数コードとエキスパートデバッグスキル。

📦

VIP専用:QModMasterのチュートリアルと構成パッケージの使用

Qt+libmodbusグラフィカルデバッグツールの完全なチュートリアル:バスモニタ、RTU/TCP設定、3つの実用的なユースケース。

完全なコードをダウンロードしてロックを解除 30歳以上。 工程実戦パッケージ:デバッグスクリプト、速検表、プロジェクトテンプレート、検査ケース

VIPデータベースからダウンロード 月額9.9ドル/年間199ドル
この資料を実際のプロジェクトに活用しませんか?

ツールセンターで電文解析、CRCチェック、デバイスデバッグを行うか、要件を送信して選定と接続のアドバイスを受けましょう。

エンジニア会員

この記事を実行可能なデバッグ資料に

登録すると、高度な電文解析、資料パックのダウンロード、コード例、エンジニアリングケース、優先技術サポートが利用可能に。実際のプロジェクト納品に最適です。

高度なツール無制限
資料パックとコードパック
完全なエンジニアリングケースライブラリ
優先技術サポート窓口