当前位置: 首页 > news >正文

Modbus TCP返回报文

请求报文

客户端发送的请求报文如下:

字段名称值(十六进制)说明
事务标识符0x0001客户端生成的事务标识符。
协议标识符0x0000固定值。
长度0x0006从单元标识符到报文结束的字节数。
单元标识符0x00固定值。
功能码0x03读取保持寄存器。
起始地址0x0000起始寄存器地址。
寄存器数量0x0002要读取的寄存器数量。

完整的请求报文为:0x0001 0x0000 0x0006 0x00 0x03 0x0000 0x0002

服务器响应报文

假设服务器成功读取了两个寄存器的数据,返回的报文格式如下:

字段名称长度(字节)说明
事务标识符2与请求报文中的事务标识符相同。
协议标识符2固定为0x0000。
长度2表示从单元标识符到报文结束的字节数。
单元标识符1与请求报文中的单元标识符相同。
功能码1与请求报文中的功能码相同。
数据字节计数1返回数据的字节数。
数据可变返回的寄存器数据。

假设读取的两个寄存器的值分别为0xAAAA和0xBBBB,返回的报文如下:

字段名称值(十六进制)说明
事务标识符0x0001与请求报文中的事务标识符相同。
协议标识符0x0000固定值。
长度0x0005从单元标识符到报文结束的字节数(1字节单元标识符 + 1字节功能码 + 1字节数据字节计数 + 4字节数据)。
单元标识符0x00与请求报文中的单元标识符相同。
功能码0x03与请求报文中的功能码相同。
数据字节计数0x04返回数据的字节数(2个寄存器,每个寄存器2字节)。
数据0xAAAA 0xBBBB返回的寄存器数据。

完整的响应报文为:0x0001 0x0000 0x0005 0x00 0x03 0x04 0xAAAA 0xBBBB

解释

  1. 事务标识符(0x0001):与请求报文中的事务标识符相同,用于匹配请求和响应。
  2. 协议标识符(0x0000):固定值,表示使用的是Modbus TCP协议。
  3. 长度(0x0005):从单元标识符到报文结束的字节数,包括单元标识符(1字节)、功能码(1字节)、数据字节计数(1字节)和数据(4字节)。
  4. 单元标识符(0x00):与请求报文中的单元标识符相同。
  5. 功能码(0x03):与请求报文中的功能码相同,表示读取保持寄存器。
  6. 数据字节计数(0x04):返回数据的字节数,表示返回了4个字节的数据(2个寄存器,每个寄存器2字节)。
  7. 数据(0xAAAA 0xBBBB):返回的寄存器数据,表示两个寄存器的值分别为0xAAAA和0xBBBB。

错误响应

如果服务器无法完成请求,例如寄存器地址无效或设备故障,服务器会返回一个错误响应报文。错误响应报文的格式如下:

字段名称长度(字节)说明
事务标识符2与请求报文中的事务标识符相同。
协议标识符2固定为0x0000。
长度2表示从单元标识符到报文结束的字节数。
单元标识符1与请求报文中的单元标识符相同。
功能码1请求的功能码的最高位设置为1,表示错误。
错误码1表示具体的错误类型。

假设请求的功能码为0x03,但服务器无法完成请求,返回的错误响应报文如下:

字段名称值(十六进制)说明
事务标识符0x0001与请求报文中的事务标识符相同。
协议标识符0x0000固定值。
长度0x0003从单元标识符到报文结束的字节数(1字节单元标识符 + 1字节功能码 + 1字节错误码)。
单元标识符0x00与请求报文中的单元标识符相同。
功能码0x83请求的功能码的最高位设置为1,表示错误。
错误码0x02表示具体的错误类型,例如0x02表示非法数据地址。

完整的错误响应报文为:0x0001 0x0000 0x0003 0x00 0x83 0x02

总结

  • 正常响应:返回请求的数据,包含事务标识符、协议标识符、长度、单元标识符、功能码、数据字节计数和数据。
  • 错误响应:返回错误信息,包含事务标识符、协议标识符、长度、单元标识符、功能码(最高位为1)和错误码。

通过这些报文格式,客户端可以清楚地了解服务器的响应情况。

相关文章:

  • 简单介绍一下Unity中的ScriptableObject
  • Skynet 框架中 gateserver、gate、watchdog 的关系
  • browser-use 库网页元素点击测试工具
  • 多路转接epoll
  • 基于杜鹃鸟鲶鱼优化(Cuckoo Catfish Optimizer,CCO)算法的多个无人机协同路径规划(可以自定义无人机数量及起始点),MATLAB代码
  • 输入百分比校验(数字非负数保留2位不四舍五入)
  • ABAQUS圆柱体纤维重力堆积3D模型
  • 关于bug总结记录
  • 软件测试之fiddler详解
  • 计算机二级(C语言)考试高频考点总汇(二)—— 控制流、函数、数组和指针
  • 破解AI焦虑,YonSuite给出了一份企业AI落地路线图
  • 学习日记0327
  • 基于FPGA的ESP8266无线数据传输(温湿度DTH11、光照强度BH1750、WIFI模块)连接中国移动onenet云平台,仿真+上板
  • 数据大屏点亮工业互联网的智慧之眼
  • 材料科学基础:空间群与点群(2)
  • Redis6为什么引入了多线程?
  • TDengine 中的保留关键词
  • 利用新一代雷达传感器增强ADAS系统的检测和计算(TI文档)
  • 深入浅出Qt属性系统:原理、使用与实践
  • 基于SpringBoot的“智慧点餐系统”的设计与实现(源码+数据库+文档+PPT)
  • 做渐变色的网站/深圳百度快速排名提升
  • cms建站系统 java/泽成seo网站排名
  • 电商培训内容有哪些/seo网络优化前景怎么样
  • 绵阳低价网站建设/关键词优化工具
  • 日本的网站开发技术/企业网站制作模板
  • 河南省工程建设信息网一体化平台/企业网站排名优化