modbus报文格式(modbus串口通讯报文)

发布时间: 2022-06-29 13:45:46
导读 之前在自由口的文章中我已经通过自定义的通讯协议向大家讲解了什么是报文,以及如何使用报文发送和接收数据。从本文开始我就一起剖析一下。modbus RTU协议的具体结构,帮助大家彻底掌握modbus RTU协议。

之前在自由口的文章中我已经通过自定义的通讯协议向大家讲解了什么是报文,以及如何使用报文发送和接收数据。从本文开始我就一起剖析一下。modbus RTU协议的具体结构,帮助大家彻底掌握modbus RTU协议。

1、地址分类

modbus RTU协议中将数据地址类型分成4种,分别是离散量输入,线圈,输入寄存器和保持寄存器,下面我们一起来看看这些地址类型的特点。

a

这里大家需要注意的是0和1开头的地址每个通道都是1个位的大小,3和4开头的地址每个通道都是16位也就是1个字的大小。可能看到这里大家还是对这种地址的表达方式没有概念,那我们来看一下当S7-200PLC做modbus RTU从站时S7-200PLC中的地址是如何与上面的地址类型对应的。

线圈:对应S7-200中Q区,地址00001 =Q0.0

离散量输入:对应S7-200中I区,地址10001 = I0.0

输入寄存器:对应S7-200中AI区,地址30001 =AIW0

保持寄存器:具体对应地址可以进行设定,一般对应V区。

2、功能码01

功能码01的作用是读取线圈状态,下面我们来看看具体的报文格式。

主站请求报文:

image.png

图2-1

从站应答报文:

image.png

图2-2

下面我们先将从站库指令下载到S7-200PLC中让S7-200PLC成为modbus RTU 从站具体从站参数设定可以参看图 2‑3。

image.png

图 2-3

将S7-200PLC设定成从站后我将S7-200PLC中Q0.0和Q0.2置位为1,Q0.1保持为0然后用调试软件发送报文查询Q0.0、Q0.1、Q0.2的状态。

image.png

图 2-4

图2-4所示我们向从站发送03 01 00 00 00 03 7D E9其中03是从站地址,01是功能码,00 00是指起始地址是Q0.0, 00 03是指读取3个线圈,7D E9是前面数据的crc校验码。

注: 这里需要注意我们按照crc校验算出来的校验码的顺序应该是E9 7D,而modbus RTU中crc校验计算出来后需要高低字节进行交换所以是7D E9

image.png

图 2-5

图 2-5PLC返回数值是03 01 01 05 90 33,其中03是PLC站地址,01是功能码,01是返回给主站的数据小于或者等于1个字节,05的二进制代码是101表示Q0.0 = 1、Q0.1 = 0、Q0.2 = 1,90 33是前面数值的crc校验码。


场景案例 查看更多》

多网口4G路由器案例介绍,智慧农业网络如何构建

让我们把目光投向中国的东北平原。2022年,黑龙江省某大型农场决定启动智慧农业项目。这个占地近万亩的农场,过去一直依靠传统的种植方式,面临着效率低下、资源浪费、病虫害防控困难等诸多挑战。而SR600多网口4G路由器,恰恰成为了这场数字化转型中的关键一环。

光口5G路由器部署场景 光口5G路由器使用案例

在一个正在快速发展的中型城市,市政府决定升级其交通管理系统,以提高道路安全性和交通效率。这个项目涉及在全市范围内安装新的智能交通信号灯、摄像头和各种传感器。为了确保这些设备能够可靠地与中央控制系统通信,同时考虑到城市复杂的地理环境和不同区域的网络覆盖情况,项目团队选择了SR800-01光口5G路由器作为核心通信设备。

4g工业无线路由器组网 高效稳定的4g工业无线路由器如何组网

​ 当今快速发展的工业4.0时代,高效、稳定的网络连接对于工厂的智能化运营至关重要。作为一名网络工程师,我最近完成了一个使用SR600 4G工业路由器的工厂网络改造项目。这个项目不仅大大提升了工厂的网络性能,还为未来的5G升级奠定了基础。让我与大家分享这个项目的具体实施过程和心得体会。SR600简介首先,让我们了解一下SR600这款设备。

领取样机
在线咨询
产品PK
选购攻略

微信扫一扫

微信联系
返回顶部