ModbusTCP报文格式说明:功能码0X01

Modbus由MODICON公司于1979年开发,是一种工业现场总线协议标准。1996年施耐德公司推出基于以太网TCP/IP的Modbus协议:ModbusTCP。
Modbus协议是一项应用层报文传输协议,包括ASCII、RTU、TCP三种报文类型。

标准的Modbus协议物理层接口有RS232、RS422、RS485和以太网接口,采用master/slave方式通信。

ModbusTCP的数据帧可分为两部分:MBAP+PDU。

报文头MBAP
MBAP为报文头,长度为7字节,组成如下:

事务处理标识(2byte)+协议标识(2byte)+长度(2byte)+单元标识符(1byte)

帧结构PDU
PDU由功能码+数据组成。功能码为1字节,字节长度不定,由具体功能决定

PDU详细结构
0x01:读取输出线圈

请求:MBAP 功能码 起始地址H 起始地址L 线圈数量H 线圈数量L(共12字节)
响应:MBAP 功能码 字节计数 线圈状态
如:请求:00 00 00 00 00 06 01 01 00 01 00 10
响应:    00 00 00 00 00 05 01 01 02 24 02

请求:
00 00为此次通信事务处理标识符
00 00表示协议标识符,00 00为modbus协议;
00 06为数据长度,用来指示接下来数据的长度,单位字节;
01为设备地址,用以标识连接在串行线或者网络上的远程服务端的地址。以上七个字节也被称为modbus报文头;
01为功能码,此时代码01为读取输出线圈
00 01为起始地址;
00 01为线圈数量

响应:
00 00为此次通信事务处理标识符,应答报文要求与先前对应的请求保持一致;

00 00为协议标识符,与先前对应的请求保持一致;

00 05为数据长度,用来指示接下来数据的长度,单位字节;

01为设备地址,应答报文要求与先前对应的请求保持一致;

01为功能码,正常情况下应答报文要求与先前对应的请求保持一致

02指示接下来数据的字节长度;

24 02为被读取的线圈状态
————————————————
版权声明:本文为CSDN博主「baishun000」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/baishun000/article/details/123144923

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值