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

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详细结构

0x03:读保持寄存器

  • 请求:MBAP 功能码 起始地址H 起始地址L 寄存器数量H 寄存器数量L(共12字节)
  • 响应:MBAP 功能码 数据长度 寄存器数据(长度:9+寄存器数量×2)
  • 如:请求:00 00 00 00 00 06 01 03 00 00 00 01
  • 响应:    00 00 00 00 00 05 01 03 02 12 34

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

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

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

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

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

    03为功能码,正常情况下应答报文要求与先前对应的请求保持一致,如果出错则返回80h+先前的功能码;

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

    12 34为被读取的保持寄存器中的数据值,即要求被读取的地址为00 00的保持寄存器中的数值为1234h。

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值