type
date
slug
category
icon
password
记录Modbus TCP 协议制订、主从测试操作过程,帮助读者快速了解Modbus TCP 协议格式。
常规开发过程,通过文本文件制订协议,再进行编码测试,若初学者对协议不熟,会在测试中暴露各种问题,导致协议文本反复修改。而通过仿真上位机,用户制订协议,经过测试验证,再进行导出,方便快捷高效。
软件下载
我们基于 MThings (从这里 https://gitee.com/mthings/MThings/releases下载)和 Modbus Poll 工具进行测试。MThings 作为 Modbus TCP 从机,Modbus Poll 作为 Modbus TCP 主机。
- MThings 是一款全新的标准化专业 MODBUS 上位机软件,提供主从机一体化操作,可用于 MODBUS协议接口的调试测试、Modbus 设备运维。支持主从机仿真,MODBUS-RTU、MODBUS-ASCII、MODBUS-TCP协议,多设备、多通道并发运行等功能。MThings 提供个人版和商用版,商用版功能更加强大,我们这里个人版就够用。
- Modbus Poll 这里下载安装。
主从测试
MThings 配置
添加通道
点击右上角 【通道管理】,点击【新增网络链接】,按图所示修改网络配置。



添加设备
点击左上角➕号【添加设备】,按图所示条件设备。



新增数据
这里不同字段含义可以参考用户手册内容。
【区块字段】可以参考二、通讯协议制订原则与样例 | Felix’s Micro Space关于功能码说明。
【小数位数】如呈现类型为浮点数,该参数生效,否则强制为 0。用于控制数值的小数点个数,可设置范围 0~9。
【系数】用于寄存器数据的本地转换,支持将接收的数据进行线性运算,例如:呈现数据 = 协议整形数据 * 系数 + 偏移。
浮板室配置

升降室配置

卷帘门室配置

泵站配置

添加数值
点击上表中数值,可以设置模拟数据方法。

Modbus Poll 配置
连接配置

- 选择 Modbus TCP/IP协议
- IP 本地IP 127.0.0.1
- 服务器端口 502,和从机设置一致
读写定义


写数据

连接测试
最后配置完成,主从连接后,主机可以动态读取从机数据变化,且可以通过写数据,修改寄存器和线圈数值。

测试1:系数关系

测试2:写线圈


修改数值,从机状态更改。
报文格式
查看通信,如下图

通讯报文如下:
发送报文格式
以这段报文分析报文格式。
TCP报文格式:MBAP报文头+功能码+数据
MBP报头文 | ㅤ | ㅤ | ㅤ | 功能码 | 数据 | ㅤ |
事务表示符 | 协议表示符 | 长度 | 单元标识符 | 功能码 | 起始寄存器 | 长度 |
82 A8 | 00 00 | 00 06 | 04 | 03 | 00 64 | 00 02 |
2个字节 | 2个字节 | 2个字节 | 1个字节 | 1个字节 | 2个字节 | 2个寄存器 |
MBAP报文头(共占7个字节)
- 事务处理标识符:报文的ID,此字段用于匹配请求消息与其相应的响应消息。
- 协议标识符:协议的ID,对于Modbus通信,该字段始终设置为0。
- 长度:后面有多少个字节,该字段指定帧中剩余的字节数。
- 单元标识符:从站地址,此字段包含该消息所针对的设备(从属设备)的地址,类似于 Modbus RTU 中的地址字段
接收报文格式
MBP报头文 | ㅤ | ㅤ | ㅤ | 功能码 | 数据 | ㅤ |
事务表示符 | 协议表示符 | 长度 | 单元标识符 | 功能码 | 数据长度 | 具体数据 |
82 A8 | 00 00 | 00 07 | 04 | 03 | 04 | 00 5A 00 E2 |
2个字节 | 2个字节 | 2个字节 | 1个字节 | 1个字节 | 1个字节 | 4个字节 |
与 Modbus RTU 不同,Modbus TCP 不包含用于错误检测的 CRC 字段,因为此功能由底层以太网和IP 层提供。通过依赖以太网和 IP 层内置的错误检测和纠正技术,Modbus TCP可确保工业应用中的可靠通信和数据完整性。简化了Modbus TCP协议,并使其能够利用现代以太网和IP网络的稳健性和可靠性。
参考资料
- Author:felixfixit
- URL:http://www.felixmicrospace.top/article/mcu_devframe_simtest_modbus
- Copyright:All articles in this blog, except for special statements, adopt BY-NC-SA agreement. Please indicate the source!