ModbusPoll v7.0.0 使用教程¶
目录¶
软件介绍¶
ModbusPoll是一款专业的Modbus主机仿真器工具,主要用于: - 测试和调试Modbus从设备 - 监控Modbus设备数据 - 验证设备通信协议 - 故障诊断和排除
主要特性¶
- 支持Modbus RTU/ASCII/TCP协议
- 实时数据监控
- 多种数据格式显示
- 日志记录功能
- 批量读取功能
安装与启动¶
系统要求¶
- Windows 7/8/10/11
- .NET Framework 4.0 或更高版本
- 至少50MB可用磁盘空间
安装步骤¶
- 下载ModbusPoll-v7.0.0安装包
- 右键点击安装包,选择"以管理员身份运行"
- 按照安装向导完成安装
- 启动程序:开始菜单 → ModbusPoll
首次启动¶
启动后会显示主界面,包含:
- 菜单栏:文件、连接、设置等
- 工具栏:常用功能快捷按钮
- 数据显示区域:寄存器数据表格
- 状态栏:连接状态和统计信息
基本配置¶
连接设置¶
-
串口连接(RTU/ASCII)
Connection → Connect 或点击工具栏连接图标 -
连接参数配置
- Port: 选择串口(COM1, COM2等)
- Baud Rate: 波特率(常用9600, 19200, 38400)
- Data Bits: 数据位(通常为8)
- Parity: 校验位(None, Even, Odd)
- Stop Bits: 停止位(1或2)
-
Mode: 选择RTU或ASCII
-
TCP连接设置
- IP Address: 设备IP地址
- Port: 端口号(默认502)
- Unit ID: 从站地址
连接设置¶
串口连接示例¶
以水处理机为例:
- Port: COM1
- Baud Rate: 9600
- Data Bits: 8
- Parity: None
- Stop Bits: 1
- Mode: RTU
- Response timeout: 1000ms
- Delay between polls: 100ms
TCP连接示例¶
集中供液设备网络连接:
- IP Address: 192.168.1.100
- Port: 502
- Unit ID: 1
- Response timeout: 3000ms
- Delay between polls: 500ms
数据读取配置¶
设置读取参数¶
- Setup → Read/Write Definition
- 配置读取参数:
- Slave ID: 从站地址(1-247)
- Function: 功能码
- 01: 读取线圈状态
- 02: 读取输入状态
- 03: 读取保持寄存器
- 04: 读取输入寄存器
- Address: 起始地址
- Quantity: 读取数量
- Scan Rate: 扫描频率(ms)
水处理机与集中供液设备参数配置示例¶
温度监控:
- Slave ID: 1
- Function: 03 (Read Holding Registers)
- Address: 23 (0x0017)
- Quantity: 2
- Scan Rate: 1000ms
供液压力监控:
- Slave ID: 1
- Function: 03
- Address: 25 (0x0019)
- Quantity: 2
- Scan Rate: 500ms
液位状态监控:
- Slave ID: 1
- Function: 01 (Read Coils)
- Address: 0x0001
- Quantity: 16
- Scan Rate: 2000ms
电导率监控:
- Slave ID: 1
- Function: 03
- Address: 24 (0x0018)
- Quantity: 2
- Scan Rate: 1000ms
PH值监控:
- Slave ID: 1
- Function: 03
- Address: 29 (0x001D)
- Quantity: 2
- Scan Rate: 1000ms
水处理机与集中供液设备通信实例¶
水处理机参数读取¶
根据水处理设备通信协议配置:
1. 温度参数(寄存器地址:0x0017)
- Function: 03
- Address: 23 (0x0017)
- Quantity: 2
- Data Format: Float (4字节)
2. 电导率参数(寄存器地址:0x0018)
- Function: 03
- Address: 24 (0x0018)
- Quantity: 2
- Data Format: Float
3. 供液压力参数(寄存器地址:0x0019-0x001A)
- Function: 03
- Address: 25 (0x0019)
- Quantity: 4
- Data Format: Float (供液一、供液二压力)
4. 液位参数(寄存器地址:0x001B-0x001C)
- Function: 03
- Address: 27 (0x001B)
- Quantity: 4
- Data Format: Float (储液、配液液位)
5. PH值参数(寄存器地址:0x001D)
- Function: 03
- Address: 29 (0x001D)
- Quantity: 2
- Data Format: Float
批量读取配置¶
Setup → Read/Write Definition → Add Multiple
创建多个读取组:
- 组1:温度相关参数 (0x0017-0x0018)
- 组2:压力相关参数 (0x0019-0x001A)
- 组3:液位相关参数 (0x001B-0x001C)
- 组4:PH值参数 (0x001D)
- 组5:状态相关参数 (0x0001-0x0010)
数据监控与分析¶
数据显示格式¶
- Display → Data Format
- 选择合适的显示格式:
- Signed/Unsigned: 有符号/无符号
- 16-bit/32-bit: 数据位数
- Hex/Decimal/Binary: 进制显示
- Float: 浮点数显示
字节序配置详解¶
重要:正确的字节序设置是数据正确显示的关键
配置步骤: 1. Display → Data Format → Advanced 2. 字节序选项: ``` □ Byte Swap - 字节交换 □ Word Swap - 字交换
四种组合对应不同字节序:
┌─────────────┬──────────┬────────────┐
│ 选项组合 │ 字节序 │ 示例 │
├─────────────┼──────────┼────────────┤
│ 无勾选 │ ABCD │ 42 0C CC CD │
│ Byte Swap │ BADC │ 0C 42 CD CC │
│ Word Swap │ CDAB │ CC CD 42 0C │
│ Both │ DCBA │ CD CC 0C 42 │
└─────────────┴──────────┴────────────┘
```
实际验证方法:
基于您的通信数据 CD CC 0C 42:
1. 尝试DCBA格式:CD CC 0C 42 → 35.2°C ✓
2. 其他格式都会显示异常值
3. 因此您的设备使用DCBA字节序
配置建议:
- 水处理设备通常使用大端序(ABCD)
- PC-based设备通常使用小端序(DCBA)
- 根据实际数据验证选择正确格式
实时监控¶
View菜单选项:
- Data View: 数据表格视图
- Register View: 寄存器视图
- Traffic View: 通信流量视图
- Error View: 错误日志视图
数据记录¶
- Log → Start Logging
- 设置日志文件路径和格式
- 选择记录间隔和条件
- 开始记录数据变化
告警设置¶
Setup → Alarm Setup
配置告警条件:
- 水温超限:> 40°C 或 < 35°C
- 供液压力异常:< 0.1MPa 或 > 0.5MPa
- 电导率异常:< 13.0 或 > 15.0 mS/cm
- 设备离线:通信超时 > 5秒
故障排除¶
常见问题及解决方案¶
1. 连接失败¶
问题:无法连接到设备
解决方案:
- 检查串口/网络连接
- 确认波特率和通信参数
- 检查设备地址是否正确
- 验证电缆连接
2. 数据读取异常¶
问题:读取数据全为0或异常值
解决方案:
- 检查功能码是否正确
- 确认寄存器地址
- 检查数据格式设置
- 验证设备是否支持该功能
3. 通信超时¶
问题:频繁出现通信超时
解决方案:
- 增加Response Timeout时间
- 减少扫描频率
- 检查网络稳定性
- 确认设备负载情况
4. 数据格式错误¶
问题:数据显示格式不正确
解决方案:
- 检查字节序设置(大端/小端)
- 确认数据类型(整数/浮点)
- 调整数据位数设置
- 参考设备手册确认格式
5. 字节序问题诊断¶
问题:数据数值异常(过大或过小)
症状:
- 温度显示几千度或负值
- 压力显示异常大的数值
- 电导率显示不合理数值
解决步骤:
1. 查看Traffic View中的原始十六进制数据
2. 尝试不同字节序组合:
- Display → Data Format → Byte Swap
- Display → Data Format → Word Swap
3. 选择显示合理数值的组合
4. 验证多个参数确保设置正确
实例:
原始数据:CD CC 0C 42
- 默认(ABCD):异常值
- Byte swap(BADC):异常值
- Word swap(CDAB):异常值
- Byte+Word(DCBA):35.2°C ✓正确
高级功能¶
1. 脚本自动化¶
Tools → Scripting
支持VB脚本自动化:
- 自动连接设备
- 批量数据处理
- 条件触发操作
- 报告生成
2. 数据导出¶
File → Export Data
支持多种格式:
- CSV文件
- Excel文件
- XML格式
- 自定义格式
3. 多设备监控¶
可同时监控多个设备:
1. File → New Document
2. 配置不同设备参数
3. Window → Tile 平铺显示
4. 实现多设备集中监控
4. 趋势分析¶
View → Trend View
功能特性:
- 实时趋势图表
- 历史数据回放
- 数据统计分析
- 异常点标记
水处理机与集中供液设备监控实战¶
完整监控配置¶
# 水处理机与集中供液设备监控配置示例
设备信息:
设备型号: 水处理机+集中供液设备
通信方式: Modbus RTU/TCP
波特率: 9600
从站地址: 1
监控参数:
温度监控:
地址: 0x0017
单位: °C
告警: 35-40°C
电导率监控:
地址: 0x0018
单位: mS/cm
告警: 13.0-15.0
压力监控:
供液一: 0x0019
供液二: 0x001A
单位: MPa
告警: 0.1-0.5
液位监控:
储液: 0x001B
配液: 0x001C
单位: %
告警: 10-90%
PH值监控:
地址: 0x001D
单位: pH
告警: 6.5-7.5
扫描设置:
正常扫描: 1000ms
快速扫描: 500ms
慢速扫描: 2000ms
通信协议分析:
基于实际通信数据:
- 使用Modbus TCP协议
- 功能码03 (Read Holding Registers)
- 起始地址: 0x0017 (温度)
- 数据格式: 32位浮点数 (IEEE 754)
- 字节序分析:
* 原始数据: CD CC 0C 42
* 需要DCBA字节序 (Byte+Word Swap)
* 解析结果: 35.2°C
- 数据示例验证:
* CD CC 0C 42 (十六进制)
* → 0x420CCCCD (重排后)
* → 35.2000008 (IEEE 754浮点数)
* → 35.2°C (显示值)
配置要点:
- ModbusPoll设置: Display → Data Format
- 勾选: Byte Swap + Word Swap
- 数据类型: 32-bit Float
- 验证方法: 观察温度是否在合理范围(30-50°C)
自动化脚本示例¶
' 水处理机与集中供液设备状态检查脚本
Sub CheckWaterTreatmentStatus()
Dim temp, pressure1, pressure2, conductivity, ph
' 读取温度 (地址23)
temp = mbPoll.ReadFloat(1, 3, 23)
' 读取压力 (地址25,26)
pressure1 = mbPoll.ReadFloat(1, 3, 25)
pressure2 = mbPoll.ReadFloat(1, 3, 26)
' 读取电导率 (地址24)
conductivity = mbPoll.ReadFloat(1, 3, 24)
' 读取PH值 (地址29)
ph = mbPoll.ReadFloat(1, 3, 29)
' 检查异常
If temp > 40 Or temp < 35 Then
MsgBox "水温异常: " & temp & "°C"
End If
If pressure1 < 0.1 Or pressure1 > 0.5 Then
MsgBox "供液一压力异常: " & pressure1 & "MPa"
End If
If conductivity < 13.0 Or conductivity > 15.0 Then
MsgBox "电导率异常: " & conductivity & "mS/cm"
End If
If ph < 6.5 Or ph > 7.5 Then
MsgBox "PH值异常: " & ph
End If
End Sub
最佳实践建议¶
1. 性能优化¶
- 合理设置扫描频率,避免过度轮询
- 使用批量读取减少通信次数
- 定期清理日志文件
- 监控系统资源使用情况
2. 数据管理¶
- 建立规范的参数命名规则
- 定期备份重要配置
- 设置合理的数据保存周期
- 实施数据安全措施
3. 维护建议¶
- 定期检查通信线路
- 更新设备驱动程序
- 备份工程配置文件
- 建立故障处理流程
附录¶
A. Modbus功能码对照表¶
01 - Read Coils (读取线圈状态)
02 - Read Discrete Inputs (读取离散输入)
03 - Read Holding Registers (读取保持寄存器)
04 - Read Input Registers (读取输入寄存器)
05 - Write Single Coil (写单个线圈)
06 - Write Single Register (写单个寄存器)
15 - Write Multiple Coils (写多个线圈)
16 - Write Multiple Registers (写多个寄存器)
B. 常用波特率设置¶
1200, 2400, 4800, 9600, 19200, 38400, 57600, 115200
C. 水处理机与集中供液设备常用地址映射¶
基于实际通信数据的地址映射:
温度:0x0017 (十进制23)
电导率:0x0018 (十进制24)
供液一压力:0x0019 (十进制25)
供液二压力:0x001A (十进制26)
储液液位:0x001B (十进制27)
配液液位:0x001C (十进制28)
PH值:0x001D (十进制29)
状态类:0x0001-0x0010
控制类:0x0020-0x0030
D. 大端小端(字节序)详解¶
什么是大端小端?¶
字节序(Byte Order)是指多字节数据在内存中的存储顺序,主要有两种:
大端序(Big Endian): - 高位字节存储在低地址 - 符合人类阅读习惯 - 网络传输标准字节序
小端序(Little Endian): - 低位字节存储在低地址 - 多数x86处理器采用 - Intel架构默认字节序
实际例子说明¶
以32位浮点数 35.2°C 为例:
IEEE 754 浮点数表示:0x420C_CCCD
大端序存储:
地址 内容
0x1000 0x42 (最高位字节)
0x1001 0x0C
0x1002 0xCC
0x1003 0xCD (最低位字节)
小端序存储:
地址 内容
0x1000 0xCD (最低位字节)
0x1001 0xCC
0x1002 0x0C
0x1003 0x42 (最高位字节)
如何确定设备字节序?¶
方法1:通过通信数据分析
从commdata.txt看到的数据:CD CC 0C 42
1. 将这4个字节按不同字节序解释:
- 大端序:0x42_0C_CCCD = 35.2 (合理的温度值)
- 小端序:0xCDCC_0C42 = 非常大的数值(不合理)
2. 结论:设备使用大端序
方法2:查看设备手册
设备技术文档通常会说明:
- "网络字节序" = 大端序
- "主机字节序" = 通常是小端序
- "Intel格式" = 小端序
- "Motorola格式" = 大端序
方法3:ModbusPoll中的验证
在ModbusPoll中测试:
1. Setup → Data Format → Byte Swap
2. 观察数据是否合理:
- 温度应该在0-100°C范围
- 压力应该在0-10MPa范围
- 电导率应该在10-20mS/cm范围
3. 选择显示正确数值的字节序
ModbusPoll字节序设置¶
配置路径:Display → Data Format
选项说明:
□ Byte swap - 交换字节序
□ Word swap - 交换字顺序
□ Dword swap - 交换双字顺序
组合设置对应不同格式:
- 无勾选:ABCD (大端序)
- Byte swap:BADC
- Word swap:CDAB
- Byte+Word swap:DCBA (小端序)
实际应用示例¶
案例1:温度读取异常
问题:读取温度显示为几千度
原因:字节序设置错误
解决:勾选"Byte swap"调整字节序
案例2:压力值显示异常
读取数据:12 34 56 78
大端序解释:0x12345678 = 305,419,896 (异常)
小端序解释:0x78563412 = 2,018,915,346 (异常)
需要Word swap:0x34127856 = 873,756,758 (仍异常)
正确设置:Byte+Word swap = 0x78563412转换为浮点数
调试技巧¶
步骤1:记录原始数据
使用Traffic View查看原始十六进制数据
例如:42 0C CC CD
步骤2:手动计算验证
使用在线IEEE 754转换器:
- 输入:420CCCCD
- 输出:35.2000008...
- 验证是否为合理数值
步骤3:ModbusPoll中测试
依次尝试四种字节序组合:
1. ABCD - 原始顺序
2. BADC - Byte swap
3. CDAB - Word swap
4. DCBA - Byte+Word swap
选择显示合理数值的设置
常见设备字节序¶
大端序设备:
- 施耐德PLC
- 西门子S7系列
- ABB设备
- 大多数网络设备
小端序设备:
- 三菱PLC
- 欧姆龙PLC
- PC-based控制器
- Intel架构设备
本教程基于ModbusPoll v7.0.0版本编写,适用于水处理机与集中供液设备参数监控系统。如有问题请参考官方文档或联系技术支持。