QModMaster是一款基于Qt框架开发的無料开源Modbusマスターデバッグツール,サポートModbus TCP和Modbus RTU两种协议,内置バス监视器(Bus Monitor)可实时表示元のHEXデータパケットは,是工业自動化エンジニアデバッグModbusデバイス的必备利器。本記事详细介绍QModMaster的下载インストール、界面操作、TCP/RTU连接設定、レジスタ読み書き、データ格式設定、バスモニタリング以及よくある質問トラブルシューティング,帮助エンジニアスピードマスター。这款强大的Modbus debugging tool。
一、QModMaster概述
1.1 什么是QModMaster
QModMaster是一个無料的、开源的Modbusmaster(Master)模拟软件,由Qt框架开发,底层基于libmodbus通讯库。它提供直观的图形界面,让エンジニア无需编写代码即可与Modbusスレーブデバイス进行通讯测试,サポート読み取り和写入コイル、ショップ型入力、レジスタを保持する。、入力レジスタ。四种標準Modbusdata type。
1.2 核心功能特性
- 双协议サポート:同时サポートModbus TCP(Ethernet)和Modbus RTU(serial portRS485/RS232)
- 全機能コードカバー:サポート機能コード01-06、15、16等すべての標準Modbusfunction code
- バス监视器:实時に表示元のHEXデータパケットは,自动解析スレーブID、function code、データ载荷和CRC check
- 多データ格式:サポート十进制、hexadecimal、記号付き。/Unsigned 16 bit integer、32ビット整数、32ビット浮動小数点数表示
- 连续扫描:可設定扫描間隔,自动周期性読み取り設備のデータ
- 跨プラットフォーム:サポートWindows、Linux、macOSオペレーティングシステム
- 完全無料:开源無料,无功能限制,无使用时长限制
- 轻量级:单文件绿色版,No installation required, 解压即用
1.3 与其他Modbus debugging tool对比
| Tools | 开源 | TCP | RTU | バスモニタリング | data format | Price |
|---|---|---|---|---|---|---|
| QModMaster | 是 | サポート | サポート | サポート | Int/Float/Hex | free |
| Modbus Poll | 否 | サポート | サポート | サポート | 丰富 | 有料($129) |
| Modbus Slave | 否 | サポート | サポート | サポート | 丰富 | 有料($129) |
| ModScan | 否 | サポート | サポート | サポートなし。 | 一般 | 有料 |
| CAS Modbus Scanner | 否 | サポート | サポート | サポートなし。 | 一般 | free |
| pymodbus REPL | 是 | サポート | サポート | サポートなし。 | 代码 | free |
二、下载与インストール
2.1 官方下载アドレス
- 官方网站:https://qmodmaster.com/
- SourceForgeDownload:https://sourceforge.net/projects/qmodmaster/
- GitHubsource code:https://github.com/mirror/qmodmaster
2.2 Windowsインストール
# Windowsインストール步骤
1. アクセス https://sourceforge.net/projects/qmodmaster/
2. click "Download" 最新のダウンロード版本(通常为 qmodmaster-x.x.x.zip)
3. 解压到任意目录,例如 C:\Tools\QModMaster\
4. 双击 qmodmaster.exe 启动程序
5. 如提示缺少VC++运行库,インストール Microsoft Visual C++ Redistributable
# 注意:QModMaster是绿色软件,必要なし。インストール,解压即可使用
2.3 Linuxインストール
# Ubuntu/Debian インストール依赖
sudo apt-get update
sudo apt-get install libqt5core5a libqt5gui5 libqt5widgets5 libmodbus5
# 下载并解压
wget https://sourceforge.net/projects/qmodmaster/files/latest/download -O qmodmaster.zip
unzip qmodmaster.zip -d qmodmaster
cd qmodmaster
# run
chmod +x qmodmaster
./qmodmaster
# 或从源码编译
sudo apt-get install qt5-default libmodbus-dev
git clone https://github.com/mirror/qmodmaster.git
cd qmodmaster
qmake
make
sudo make install
三、界面布局详解
QModMaster主界面分为四个主要エリア,了解各エリア功能是高效使用的基础。
3.1 菜单栏
| 菜单 | Function |
|---|---|
| File | 新建连接、保存設定、加载設定、退出 |
| Options | ChoiceModbus TCP或Modbus RTUモード,設定接続パラメータ |
| View | 表示/非表示Bus Monitor、設定データ表示格式 |
| Help | について、版本信息 |
3.2 工具栏
- Connect/Disconnect:connect/断开Modbusdevice
- Read/Write:执行一次読み取り或写入操作
- Scan:Open/关闭连续扫描モード
- 設定图标:快速打开连接設定对话框
3.3 データ表示区
主エリア以表格形式表示レジスタのデータ,包含以下列:
- Address:register address(0-based)
- Value(Hex):十六进制值
- Value(Dec):Decimal value
- Value(Float):浮動小数点数值(需手动开启)
- Description:用户自定义説明(可編集)
3.4 Bus Monitor(バス监视器)
底部エリア表示实时通讯データパケットは,这是QModMaster最强大的功能之一。経由 View → Bus Monitor Open。每件のレコード包含:
- 时间戳:精确到毫秒的收发时间
- 方向:Tx(send)或 Rx(receive)
- 元のHEXdata:完全的Modbus ADUデータパケットは
- 自动解析:slaveID、function code、データ字段、CRC check码
四、Modbus TCP连接設定
4.1 設定步骤
# Modbus TCP连接設定步骤
1. open Options → Modbus TCP...
2. 在弹出的对话框中填写:
- IP Address:deviceIPaddress,例如 192.168.1.100
- Port:ポート番号,デフォルト 502
- Slave ID:slave address(Unit ID),通常为 1
- Timeout:タイムアウト時間(毫秒),デフォルト 1000
3. click OK 保存設定
4. 点击工具栏 Connect 按钮建立连接
5. 接続成功です。后,ステータス栏表示 "Connected"
# Precautions
- 确保电脑和デバイス在同一网段
- 关闭电脑ファイアウォール或放行502ポート
- 部分デバイス需要先在デバイス端有効Modbus TCPFunction
- Slave ID(Unit ID)对于纯TCPデバイス通常为0或1,
経由ゲートウェイ连接RTUデバイス时填写对应RTUslave address
4.2 TCP连接故障トラブルシューティング
| 故障现象 | 可能原因 | トラブルシューティング方法 |
|---|---|---|
| 接続タイムアウト | IPError/网络通信不可 | pingdeviceIP,チェックネットワークケーブル和スイッチ交換機 |
| 连接被拒绝 | ポートエラー/服务未启动 | 用telnet测试502ポート:telnet 192.168.1.100 502 |
| 接続成功です。但无データ | Slave IDError | 尝试Slave ID=0,1,255,表示デバイス手册 |
| 例外コードを返す02 | アドレス超出範囲 | デバイスサポートの確認的レジスター·アドレス範囲 |
| 例外コードを返す01 | 機能コードサポートなし。 | デバイスサポートの確認该機能コード |
五、Modbus RTU连接設定
5.1 硬件准备
Modbus RTU需要USB转RS485変換器です。(如CH340、FT232芯片的モジュール),将电脑的USB接口转换为RS485バス信号。
# 硬件配線(USB转RS485モジュール)
USB转RS485モジュール A端 --> deviceRS485 A端(D+ / + / 非反相)
USB转RS485モジュール B端 --> deviceRS485 B端(D- / - / 反相)
USB转RS485モジュール GND --> deviceGND(建议连接,减少コモンモード干渉)
# 注意
- 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. open Options → Modbus RTU...
3. 設定シリアルパラメータ:
- Port:COM portNo.,例如 COM3 或 /dev/ttyUSB0
- Baud Rate:Baud rate,必须与デバイス一致(9600/19200/38400/115200)
- Data Bits:data bit,通常为 8
- Stop Bits:stop bit,通常为 1
- Parity:check digit,None/Even/Odd,必须与デバイス一致
- Slave ID:slave address,1-247
- Timeout:タイムアウト時間,建议 1000-3000ms
4. click OK 保存
5. click Connect 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线再试 |
| 完全に無反応。 | 駅からの住所エラー | 表示デバイス拨码开关或软件設定 |
| CRCError | Baud rate/チェックビット不マッチング | 逐项核对シリアルパラメータ,与デバイス完全一致 |
| 偶尔丢包 | 干渉/无終端抵抗 | バス两端加120Ω电阻,使用シールド線 |
| データ乱码 | ストップ·ビット不マッチング | 確認ストップ·ビット是1まだ2 |
六、Read and hold register(function code03)
レジスタを保持する。(Holding Registers)是Modbus中最もよく使われるデータ型,function code03,アドレス範囲通常为40001-49999(对应0-basedaddress0-9998)。
# リードホールドレジスタ操作步骤
1. 確認接続しましたデバイス(ステータス栏表示Connected)
2. 在主界面設定読み取り参数:
- Slave ID:slave address(如已在连接設定中に設置。可省略)
- Function Code:Choice "Read Holding Registers (03)"
- Start Address:starting address(0-based,例如 0)
- Quantity:Reading quantity(例如 10)
3. click Read/Write 按钮执行一次読み取り
4. データ表格中表示読み取り到的レジスタの値
# アドレス説明
- QModMaster使用0-basedaddress(Start from 0)
- デバイス手册中的40001对应QModMasteraddress0
- デバイス手册中的40010对应QModMasteraddress9
- 转换公式:QModMasteraddress = 手册アドレス - 40001
# example
読み取り温度センサーデータ:
- 手册説明:温度在40101,占21つのレジスタ,浮動小数点数
- QModMaster設定:Start Address=100, Quantity=2
- 読み取り后アドレス100和101表示元の值
- 切换到Float视图表示实际温度值
七、リードコイル与ショップ型入力
7.1 リードコイル(function code01)
# リードコイル(Coils)- function code01
# コイル是読み書きができる。的布尔量,アドレス範囲00001-09999
操作步骤:
1. Function Code Choice "Read Coils (01)"
2. Start Address:starting address(0-based)
3. Quantity:Reading quantity(最多2000个)
4. click Read/Write
5. 表格中表示每1つのコイル的ON/OFFstatus
# アドレス変換
- 手册00001 → QModMasteraddress0
- 手册00010 → QModMasteraddress9
7.2 Read discrete inputs(function code02)
# Read discrete inputs(Discrete Inputs)- function code02
# ショップ型入力是読み取り専用布尔量,アドレス範囲10001-19999
操作步骤:
1. Function Code Choice "Read Discrete Inputs (02)"
2. Start Address:starting address
3. Quantity:Reading quantity
4. click Read/Write
# 典型用途
- 読み取り开关ステータス、按钮ステータス、限位开关
- 読み取りデバイス运行/故障ステータス
- 読み取り门禁、センサーは触发ステータス
# アドレス変換
- 手册10001 → QModMasteraddress0
- 手册10005 → QModMasteraddress4
7.3 Read input register(function code04)
# Read input register(Input Registers)- function code04
# 入力レジスタ。是読み取り専用16ビット·データ,アドレス範囲30001-39999
操作步骤:
1. Function Code Choice "Read Input Registers (04)"
2. Start Address:starting address
3. Quantity:Reading quantity
4. click Read/Write
# 典型用途
- 読み取り模拟量入力(AI):temperature、压力、トラフィック
- readADC采样值
- 読み取りデバイス内部ステータス参数
# アドレス変換
- 手册30001 → QModMasteraddress0
- 手册30100 → QModMasteraddress99
八、写入操作
8.1 write single coil(function code05)
# write single coil(Force Single Coil)- function code05
操作步骤:
1. Function Code Choice "Write Single Coil (05)"
2. Start Address:Coil address
3. 在データ表格中找到对应アドレス行
4. 双击 Value 列,入力:
- 0xFF00 表示 ON(吸合)
- 0x0000 表示 OFF(断开)
5. click Read/Write 执行写入
6. Bus Monitor中可看到写入リクエスト和デバイスレスポンス
# 注意
- QModMaster中写コイル使用0xFF00/0x0000,
这是Modbusプロトコル標準规定的值
- 写入成功后デバイス会回显相同的リクエストフレーム
8.2 write single register(function code06)
# write single register(Preset Single Register)- function code06
操作步骤:
1. Function Code Choice "Write Single Register (06)"
2. Start Address:register address
3. 双击データ表格中对应行的 Value 列
4. 入力要写入的值(十进制或十六进制)
5. click Read/Write 执行写入
# example:温度を設定する。
- 温度の設定值在40100,範囲0-100,分辨率0.1
- 要设定25.5°C,write value=255
- Start Address=99, Value=255
- 点击写入
8.3 write multiple coils(function code15)
# write multiple coils(Force Multiple Coils)- function code15
操作步骤:
1. Function Code Choice "Write Multiple Coils (15)"
2. Start Address:starting address
3. Quantity:Write quantity
4. 在データ表格中逐个設定每1つのコイル的值(0xFF00/0x0000)
5. click Read/Write 一括書き込みき込み入
# 注意
- 1回限り。写入19681つのコイル
- すべてのコイル値会一次性送信到デバイス
8.4 write multiple registers(function code16)
# write multiple registers(Preset Multiple Registers)- function code16
操作步骤:
1. Function Code Choice "Write Multiple Registers (16)"
2. Start Address:starting address
3. Quantity:Write quantity
4. 在データ表格中逐个設定すべてのレジスタ。的值
5. click Read/Write 一括書き込みき込み入
# example:批量設定PIDparameter
- P在40200,I在40201,D在40202
- Start Address=199, Quantity=3
- 分别設定P=100, I=50, D=20
- 点击写入,一次性更新三个参数
九、データ格式設定
QModMasterサポート多种データ表示格式,経由 View 菜单切换。正确設定データ格式是解读設備のデータ的关键。
9.1 サポート的データ格式
| format | 説明 | 適用可能なシーン |
|---|---|---|
| Unsigned Int 16 | 16ビット符号なし整数(0-65535) | ステータス字、计数、元のADC值 |
| Signed Int 16 | 16ビット符号付き整数(-32768~32767) | temperature、压力等可能为负的量 |
| Unsigned Int 32 | 32ビット符号なし整数(占21つのレジスタ) | 大计数、累计量 |
| Signed Int 32 | 32ビット符号付き整数(占21つのレジスタ) | 大範囲模拟量 |
| Float 32 | IEEE 754 Single Precision Floating Point Numbers(占21つのレジスタ) | temperature、压力、トラフィック等物理量 |
| Hex | 十六进制元の值 | debug、协议分析 |
| Binary | 二进制位表示 | ステータス字逐位分析 |
9.2 浮動小数点数表示方法
# View32ビット浮動小数点数
1. 先読み取り2个连续保持レジスタです。(function code03)
2. open View 菜单
3. Choice "Float" 或 "32-bit Float"
4. データ表格会自动将相邻的两1つのレジスタ
组合为一个浮動小数点数表示
# 浮動小数点数バイトオーダー問題
不同デバイス的浮動小数点数存储顺序可能不同:
- ABCD(ビッグエンディアン序):reg[0]=高16位, reg[1]=低16位(最も一般的な)
- CDAB(Word exchange):reg[0]=低16位, reg[1]=高16位
- DCBA(リトルエンディアン序):完全反转
もしFloat表示的值明显正しくない(如NaN、超大数),
説明バイトオーダー不マッチング,需要:
1. 用計算器手动转换验证
2. または使用其他工具(如Modbus Poll)切换バイトオーダー
3. 记录デバイス的正确バイトオーダー,在后续开发で使用する。
十、Bus Monitorバス监视器详解
Bus Monitor是QModMaster最有价值的デバッグ功能,它表示バス上传输的生データ包,帮助エンジニアポジショニング通讯問題。経由 View → Bus Monitor Open。
10.1 データパケットは解析サンプル
# Modbus RTUデータパケットはサンプル
# return response(Tx):駅から読む。1保持レジスタです。0-9
Tx: 01 03 00 00 00 0A C5 CD
│ │ │ │ │ │
│ │ │ │ │ └─ CRC check低バイト数
│ │ │ │ └──── CRC checkhigh byte
│ │ │ └────────── Reading quantity=10
│ │ └──────────────── 開始アドレスハイバイト=0
│ └─────────────────── 開始アドレス低バイト数=0
└────────────────────── function code03=read holding registers
└──────────────────────── slave address=1
# 受信レスポンス(Rx):スレーブ戻る10个レジスタの値
Rx: 01 03 14 00 64 00 C8 01 2C 01 90 01 F4 02 58 02 BC 03 20 03 84 03 E8 7B 6E
│ │ │ │
│ │ │ └─ register0值=0x0064=100
│ │ └──── byte count=20(101つのレジスタ×2バイト)
│ └─────── function code03
└────────── slave address=1
# Modbus TCPデータパケットはサンプル
# TCPモード比RTU多了MBAP Head(7バイト)
Tx: 00 01 00 00 00 06 01 03 00 00 00 0A
│ │ │ │ │ │ │ │ │ │
│ │ │ │ │ │ │ │ │ └─ Quantity=10
│ │ │ │ │ │ │ │ └─────── starting address=0
│ │ │ │ │ │ │ └────────── function code03
│ │ │ │ │ │ └───────────── slaveID=1
│ │ │ │ │ └──────────────── Length=6バイト
│ │ │ │ └─────────────────── ProtocolID=0(Modbus)
│ │ │ └────────────────────── ProtocolIDhigh byte=0
│ │ └───────────────────────── トランザクションID低バイト数=1
│ └──────────────────────────── トランザクションIDhigh byte=0
└─────────────────────────────── トランザクションID=1(用于マッチングリクエストレスポンス)
10.2 異常な応答解析
# Modbus例外応答形式
# function code = オリジナル機能コード + 0x80
# Exception Code = 1バイト
Rx: 01 83 02 C0 F1
│ │ │ │
│ │ │ └─ CRC check
│ │ └──── Exception Code=02(Illegal data address)
│ └─────── 異常な機能コード=0x83(原03+0x80)
└────────── slave address=1
# 通常の異常コード
01 - Illegal Function(違法な機能コード):デバイスはこの機能をサポートしません码
02 - Illegal Data Address(Illegal data address):アドレス超出範囲
03 - Illegal Data Value(Illegal data value):値の書き込み不合法
04 - Slave Device Failure(Substation equipment malfunction):デバイスの内部エラー
05 - Acknowledge(Confirm):已接受,処理中
06 - Slave Device Busy(駅から忙しい。):後でもう一度お試しください
# Bus Monitor使用技巧
- 勾选 "Show Timestamp" 表示精确时间
- 对比Tx和Rx的时间差,計算デバイスレスポンス速度
- 異常な応答时重点表示異常コード。
- 无Rx表示デバイス未レスポンス,チェック配線和アドレス
十一、连续扫描モード
# 连续扫描(Scan)Function
1. 設定好読み取り参数(function code、address、Quantity)
2. 点击工具栏 Scan button(或按F5)
3. QModMaster按设定間隔周期性読み取りデータ
4. データ表格实时更新最新值
5. 再次点击 Scan 停止扫描
# 扫描間隔設定
- Options → 設定扫描間隔(Scan Rate)
- 常用間隔:100ms, 500ms, 1000ms, 2000ms
- 間隔短すぎる可能导致デバイスレスポンス不过来
- 建议从1000ms开始,根据デバイスレスポンス速度调整
# 扫描モード用途
- リアルタイムモニタリングセンサーはデータ变化
- 观察デバイス実行状態の状態
- 测试デバイスレスポンス速度和稳定性
- 记录データ变化趋势(配合截图或第三方工具)
# 注意
- 扫描期间不要频繁切换機能コード或アドレス
- RTUモード下扫描間隔建议≥500ms
- 长时间扫描可能导致デバイス发热,注意散热
十二、实际応用ケース
12.1 案例一:デバッグ温湿度センサー
# device:RS485温湿度トランスミッタ
# 手册参数:
# - slave address:1
# - Baud rate:9600, 8N1
# - temperature:30001,16ビット符号付き整数,分辨率0.1°C
# - 湿度:30002,16ビット符号なし整数,分辨率0.1%RH
# QModMasterOperation:
1. Options → Modbus RTU → COM3, 9600, 8, N, 1, Slave=1
2. Connect
3. Function Code = Read Input Registers (04)
4. Start Address = 0, Quantity = 2
5. Read/Write
6. 查結果を見る。:
- address0值=253 → temperature=25.3°C(Signed Int 16)
- address1值=652 → 湿度=65.2%RH(Unsigned Int 16)
7. OpenScan,观察温湿度实时变化
12.2 案例二:控制继电器モジュール
# device:8路Modbus继电器モジュール
# 手册参数:
# - slave address:2
# - Baud rate:9600, 8N1
# - Relay1-8对应コイル0-7
# - 写コイル0xFF00=吸合,0x0000=断开
# QModMasterOperation:
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 案例三:デバッグ周波数変換器
# device:Modbus TCP周波数変換器
# 手册参数:
# - IP:192.168.1.50,ポート502
# - slaveID:1
# - 動作頻度は:40001,16ビット整数,分辨率0.01Hz
# - 出力電流は:30001,16ビット整数,分辨率0.1A
# - スタートアップコマンド:40100,写1=启动,写0=Stop
# - 频率设定:40101,範囲0-5000(0.00-50.00Hz)
# QModMasterOperation:
1. Options → Modbus TCP → IP=192.168.1.50, Port=502, Slave=1
2. Connect
3. 読み取り動作頻度は:
FC=Read Holding Registers(03), Addr=0, Qty=1
值=2500 → 频率=25.00Hz
4. 読み取り出力電流は:
FC=Read Input Registers(04), Addr=0, Qty=1
值=135 → 电流=13.5A
5. 设定频率30Hz:
FC=Write Single Register(06), Addr=100
Value=3000 → Write
6. 启动周波数変換器:
FC=Write Single Register(06), Addr=99
Value=1 → Write
7. OpenScanモニタリング実行状態の状態
十三、エキスパート技巧
13.1 設定文件保存与加载
# 保存当前設定
File → Save As → 選択保存路径和文件名
設定文件包含:接続パラメータ、機能コード設定、data format、説明信息
# 加载設定
File → Open → 選択之前保存的設定文件
快速切换不同デバイス的デバッグ設定
# 建议
为每个项目/デバイス保存独立的設定文件,
命名格式:项目名_デバイス名_日期.qmm
例如:FactoryA_TempSensor_20260917.qmm
13.2 アドレス扫描技巧
# 不知道デバイスレジスター·アドレス时的扫描方法
方法1:大範囲読み取り
- 設定Quantity=125(Modbus最大单次読み取り量)
- 住所から。0开始,每次偏移125
- 记录哪些アドレス有普通の反応(非異常コード。02)
方法2:Bus Monitor观察
- OpenScan,大範囲読み取り
- 在Bus Monitor中观察哪些リクエスト戻る正常データ
- Exception Code02表示该アドレス範囲不存在
方法3:参照同类デバイス
- 同ブランド同系列デバイス的レジスタ表通常相似
- 先按已知アドレス测试,再逐步扩展
# 注意
- 不要对デバイス进行全アドレス空间暴力扫描
- 部分デバイス对频繁異常リクエスト会触发保护
- 扫描間隔建议≥500ms
13.3 与Wireshark配合抓包
# Modbus TCP网络バッグの分析。
1. openWireshark,選択网卡,开始抓包
2. 在QModMaster中执行读書き込み操作。
3. Wireshark中过滤:modbus
4. 表示完全的TCPデータパケットは
5. Wireshark会自动解析Modbusプロトコル字段
# 適用可能なシーン
- 分析网络延迟和丢包
- トラブルシューティング多マスター冲突
- 验证ゲートウェイプロトコル変換正确性
- 学习Modbus TCP协议细节
# RTU抓包
- 使用带监听功能的USB转RS485モジュール
- または使用专用RS485バス分析仪
- QModMaster的Bus Monitor已足够应对大多数场景
十四、common problemsFAQ
Q1:QModMasterサポートModbus ASCII吗?
サポートなし。。QModMaster仅サポートModbus TCP和Modbus RTU。Modbus ASCII是较老的协议,目前已很少使用。如需ASCIIProtocol,可使用Modbus Pollまたは他の工具。
Q2:なぜか。読み取り到的值都是0?
可能原因:①アドレスエラー,読み取り了未使用的アドレス;②デバイス未上电或未运行;③データ型設定エラー,浮動小数点数被当作整数表示;④slaveID不マッチング。解決方法:ViewBus Monitor確認ありますか?普通の反応,核对デバイス手册的アドレス表。
Q3:QModMaster可以做スレーブ(Slave)模拟吗?
不可以。QModMaster是纯マスター(Master)Tools,只能主动読み書きスレーブデバイス。如需模拟スレーブ,可使用Modbus Slave(有料)或pymodbus的サーバー側。功能(free)。
Q4:最大可以読み取り多少1つのレジスタ?
Modbusプロトコル规定最大のシングル。読み取り125レジスタを保持する。/入力レジスタ。,20001つのコイル/ショップ型入力,写入最多1231つのレジスタ/19681つのコイル。QModMaster遵循此限制。
Q5:Windows 11下QModMaster闪退怎么办?
尝试:①以管理者のこと身份运行;②インストール最新版VC++运行库;③右のプロパティ→兼容性→Windows 7兼容モード;④最新のダウンロード版本。
Q6:如何同时连接多个デバイス?
QModMaster单实例只能连接一个デバイス。可同时打开多个QModMaster实例,每个实例连接不同的デバイス或不同駅からの住所。RTUモード下多个スレーブ在同一バス上,只需切换Slave ID即可。
十五、学习リソース
- QModMaster官网:https://qmodmaster.com/
- SourceForgeDownload:https://sourceforge.net/projects/qmodmaster/
- Modbusプロトコル官方规范:https://modbus.org/specs.php
- libmodbusDocument:https://libmodbus.org/documentation/
- Modbus TCP抓包チュートリアル:Wireshark官方ドキュメント検索"Modbus"
- RS485硬件设计ガイド:TI应用笔记SLVA677
QModMaster作为一款無料开源的Modbus debugging tool,凭借其直观的界面、强大的バス监视器和双协议サポート,成为工业自動化エンジニア不可或缺的デバッグ利器。掌握QModMaster的使用,能够快速验证デバイス通讯、トラブルシューティング协议問題、読み取り和写入レジスタのデータ,大大提高オンサイトデバッグ效率。建议配合デバイス手册和Bus MonitorFunction,从简单的リードホールドレジスタ开始,逐步掌握すべて関数コードとエキスパートデバッグスキル。
VIP专属:QModMasterチュートリアルと構成パッケージの使用
Qt+libmodbusグラフィカルなデバッグツール完全チュートリアル:Bus Monitor、RTU/TCP設定、3実際の応用例。
Activate VIP即可下载完全代码,同时解锁 30+ 工程実践パッケージの内容:スクリプトのデバッグ、クイックチェック·テーブル、项目模板、トラブルシューティング案例……
前往VIP资料库下载 → 月费仅9.9元 / 年费199元