Modbus RTU通信报文解析

通信网络

648人已加入

描述

TCP

Modbus TCP通信协议在数据通讯上采用主从应答的方式进行。只能由主机通过唯一从机地址发起请求,从机根据主机请求进行响应,即半双工通讯。该协议只允许主机发起请求,从机进行被动响应。

一、格式形式

Modbus RTU报文格式由地址码、功能码、寄存器地址、寄存器数量、CRC校验码组成。

1)读取时的格式

TCP

2)写入时的格式

TCP

地址码: 表示从站地址

功能码: 选择报文的功能

寄存器地址: 设置读取或写入的寄存器起始地址

寄存器个数: 设置需要读取或写入寄存器的个数

写入数据字节数: 根据需要设置写入的数据字节个数

写入数据: 字节占用根据设置的写入数据字节数的变化而变化

CRC校验码: 根据报文内容计算得出,不同报文的CRC校验码不相同

二、软件配置

1)添加虚拟串口

虚拟串口工具的作用是模拟真实的串口设备,使得在没有实际设备的情况下对串口通信进行仿真。

a)设置串口号

进入虚拟串口软件后在添加端口栏中分别设置端口一和端口二的端口号,设置完成后单击“添加端口”按钮完成设置(在设置端口号时要避免与电脑实际的端口号冲突,可以将端口号设置的大一点)。

TCP

b)验证

右键单击系统开始图标进入设备管理器,在端口栏中可以显示添加的虚拟端口表示创建成功。

TCP

2)配置串口调试助手

打开串口调试助手后,按照下图设置参数。

TCP

3)配置Modbus Slave连接

依次单击菜单栏“Connection”——“Connect...”弹出连接配置窗口。

TCP

三、指令运用

由于Modbus RTU通信协议的报文格式与Modbus TCP的报文格式基本相同,所以此处只演示读线圈的操作,并介绍如何利用工具计算CRC校验码。

1)项目要求

读取1号从站起始地址为00的连续8个线圈的状态。

2)设置Modbus Slave参数

将Modbus Slave中的从站地址设置为:01,寄存器线圈类型设置为:01 Coil Status(0x)。设置完成后单击“OK”连接主站,并修改线圈的状态。

TCP

3)计算CRC校验码

a)进入“Modbus调试器”界面

连接串口调试助手后,依次单击“左上角图标”选择“工具”——“Modbus调试器”进入调试界面。

TCP

b)生成报文

先设置协议类型为:Modbus RTU;然后,根据项目要求设置地址码、功能码、寄存器地址、线圈数量。

设置完成后单击“更新”按钮会自动生成带有CRC校验码的报文。

TCP

主站发送报文解析如下图。

TCP

3)发送报文

在Modbus调试界面单击“发送”按钮,将自动生成的报文发送给从站,并接收从站回复的报文。

TCP

从站回复报文解析如下图。

TCP

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分