您的位置:首页 > 财经 > 产业 > 南京三大软件外包公司_网络营销就是网站营销_广告公司联系方式_网站建设方案书模板

南京三大软件外包公司_网络营销就是网站营销_广告公司联系方式_网站建设方案书模板

2024/12/23 6:54:07 来源:https://blog.csdn.net/qq_43470534/article/details/142443033  浏览:    关键词:南京三大软件外包公司_网络营销就是网站营销_广告公司联系方式_网站建设方案书模板
南京三大软件外包公司_网络营销就是网站营销_广告公司联系方式_网站建设方案书模板

Modbus TCP 格式

| 事务ID | 协议ID | 长度 | 单元ID | 功能码 | 数据 |
  • 事务 ID(2 字节):用于标识请求和响应的配对。
  • 协议 ID(2 字节):通常为 0,表示 Modbus 协议。
  • 长度(2 字节):表示后续数据的字节数(不包括事务 ID、协议 ID 和长度字段)。
  • 单元 ID(1 字节):从设备的地址。对于 Modbus TCP,通常可以忽略此字段。
  • 功能码(1 字节):与 Modbus RTU 相同。
  • 数据(n 字节):根据功能码而定,包含请求或响应的数据。

示例:

发送读取保持寄存器的请求,假设事务 ID 为 1,协议 ID 为 0,单元 ID 为 1,功能码为 3,读取寄存器地址为 0,数量为 2:

| 0x00 0x01 | 0x00 0x00 | 0x00 0x06 | 0x01 | 0x03 | 0x00 | 0x00 | 0x00 | 0x02 |
  • 事务 ID(Transaction ID)0x00 0x01

    • 2 字节:用于标识请求和响应的配对。通常在每次请求时自增。
    • 在这里,它的值是 1。
  • 协议 ID(Protocol ID)0x00 0x00

    • 2 字节:表示协议类型。对于 Modbus,通常为 0,表示使用 Modbus 协议。
  • 长度(Length)0x00 0x06

    • 2 字节:表示后续数据的字节数(不包括事务 ID、协议 ID 和长度字段)。
    • 在这个例子中,后续数据的长度是 6 字节。
  • 单元 ID(Unit ID)0x01

    • 1 字节:表示从设备的地址。可以理解为设备的标识符。在这里,设备地址为 1。
  • 功能码(Function Code)0x03

    • 1 字节:表示请求的操作类型。0x03 代表“读取保持寄存器”(Read Holding Registers)。
  • 数据(Data)

    • 0x00 0x00:表示寄存器的起始地址。此处为寄存器地址 0。
    • 0x00 0x02:表示要读取的寄存器数量。在这个例子中,数量为 2。

其中功能码为一个字节,modbus定义的功能码有:

  • 01 读线圈(coils)状态,读取单个或多个
  • 02 读离散输入(discreteinputs)状态,读取单个或多个
  • 03 读保持寄存器(holdingregisters),读取单个或多个
  • 04 读输入寄存器(inputregisters),读取单个或多个
  • 05 写单个线圈(coils)状态,单个写入
  • 06 写单个保持寄存器(holdingregisters),单个写入
  • 15 写多个线圈(coils),多个写入
  • 16 写多个保持寄存器(holdingregisters),多个写入

示例:

假设你要从单元 ID 为 1 的设备读取从地址 0 开始的 10 个线圈的状态。构建的请求可能如下:| 

| 0x00 0x01 | 0x00 0x00 | 0x00 0x07 | 0x01 | 0x01 | 0x00 | 0x00 | 0x00 | 0x0A |
各字段解释:
  • 事务 ID0x00 0x01):用于标识请求,可以是任意值,通常在每次请求时自增。
  • 协议 ID0x00 0x00):通常为 0,表示 Modbus 协议。
  • 长度0x00 0x07):后续数据的字节数,这里是 7 字节(功能码和数据部分)。
  • 单元 ID0x01):表示从设备的地址。
  • 功能码0x01):表示读取线圈状态。
  • 起始地址0x00 0x00):表示从地址 0 开始读取。
  • 数量0x00 0x0A):表示要读取的线圈数量,这里为 10。

响应格式

从设备的响应将包含请求的线圈状态,格式如下:

| 事务 ID | 协议 ID | 长度 | 单元 ID | 功能码 | 字节数 | 状态 |
示例响应(假设读取到的状态为 10 个线圈的状态):
| 0x00 0x01 | 0x00 0x00 | 0x00 0x06 | 0x01 | 0x01 | 0x02 | 0xFF | 0x0A |
  • 字节数:状态数据的字节数,这里为 2 字节(10 个线圈的状态)。
  • 状态:每个线圈状态用 1 位表示,0xFF 表示所有线圈为 1,0x0A 的二进制为 00001010 表示第 1、3、5、7 个线圈为 1,其余为 0。

 

 

 

 

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com