MODBUS协议(功能码及报文解析)(2)

2021-09-24 17:28

(884 和 MICRO 84) 可使主机模拟编程功能,修改 PC 状态逻辑 重置通信链路 读取通用参数 (584L) 写入通用参数 (584L)

22~ 保留作扩展功能备 64 用 65~ 保留以备用户功能 72 所用 73~ 非法功能 119 120~ 保留 127 128~ 保留 255 留作内部作用 用于异常应答 留作用户功能的扩展编码

各个功能码对应的数据类型 代 功能 码 01 02 03 04 05 读 读 读 读 写 位 位 16 位整型 16 位整型 位 数据类型

06 15 16

写 写 写

整 16 位整型 位 整 16 位整型

MODBUS 协议相当复杂,但是常用的命令也就简单的几个,01,0 2,03,04,05,06,15,16 号命令。

各个命令的功能和报文如下: 01 命令 读取线圈状态 MODBUS 地址 00001~MODBUS 请求 功能码 起始地址 读取数量 MODBUS 响应 功能码 字节计数 线圈状态 N =读取数量/8 错误 响应 功能码 错误代码 举例 请求 域名称 功能码 起始地址高(字节) 起始地址低(字节) 读取数量高(字节) 读取数量低(字节) 数据(hex) 01 00 13 00 13 域名称 功能码 字节计数 27(h)~20 状态 35(h)~28 状态 38(h)~36 状态 响应 数据(hex) 01 03 CD 6B 05 1 1 BYTE BYTE 0X01 N n =N or N+1 1 BYTE 2 BYTE 2 BYTE 0X01 0X0000 TO 0XFFFF 1 TO 2000(0X7D0)

n BYTE 如果余数不为 0 则 N=N+1 1 1 BYTE BYTE

0X01+ 0X80 0x1 or 0x2 or 0x3 or 0x4

02 命令 读取输入状态 MODBUS 地址 10001~

MODBUS 请求 功能码 起始地址 读取数量 MODBUS 响应 功能码 字节计数 输入状态 N =读取数量/8 错误 响应 功能码 错误代码 举例 请求 域名称 功能码 起始地址高(字节) 起始地址低(字节) 读取数量高(字节) 读取数量低(字节) 数据(hex) 02 00 C4 00 16 域

名称 功能码 字节计数 204(h)~197 状态 212(h)~205 状态 218(h)~213 状态 响应 数据(hex) 02 03 AC DB 35 1 1 BYTE BYTE 0X02 N n =N or N+1 1 BYTE 2 BYTE 2 BYTE 0X02 0X0000 TO 0XFFFF 1 TO 2000(0X7D0)

n BYTE 如果余数不为 0 则 N=N+1 1 1 BYTE BYTE

0X02+ 0X80 0x1 or 0x2 or 0x3 or 0x4

03 读保持寄存器

MODBUS 地址 40001~

MODBUS 请求 功能码 起始地址 读取数量 MODBUS 响应 1 BYTE 2 BYTE 2 BYTE 0X03 0X0000 TO 0XFFFF 1 TO 125(0X7D)

功能码 字节计数 输入状态 错误 响应 功能码 错误代码 举例 请求 域名称 功能码 起始地址高(字节) 起始地址低(字节) 读取数量高(字节) 读取数量低(字节)

1 1 N*2

BYTE BYTE BYTE

0X03 N*2

1 1

BYTE BYTE

0X03+ 0X80 0x1 or 0x2 or 0x3 or 0x4

响应 数据(hex) 03 00 6B 00 03 域名称 功能码 字节计数 寄存器高(108) 寄存器低(108) 寄存器高(109) 寄存器低(109) 寄存器高(110) 寄存器低(110) 数据(hex) 03 06 02 2B 00 00 00 64

04 输入寄存器 MODBUS 地址 30001~

MODBUS 请求 功能码 起始地址 读取数量 MODBUS 响应 功能码 字节计数 输入状态 错误 响应 功能码 错误代码 举例 1 1 BYTE BYTE 0X04+ 0X80 0x1 or 0x2 or 0x3 or 0x4 1 1 N*2 BYTE BYTE BYTE 0X04 N*2 1 BYTE 2 BYTE 2 BYTE 0X04 0X0000 TO 0XFFFF 1 TO 125(0X7D)

请求 域名称 功能码 起始地址高(字节) 起始地址低(字节) 读取数量高(字节) 读取数量低(字节) 数据(hex) 04 00 08 00 01 域名称 功能码 字节计数

响应 数据(hex) 04 02 00 0A

输入寄存器高(9) 输入寄存器低(9)

05

设置单个继电器状态

MODBUS 请求 功能码 设置地址 设置内容 1 BYTE 2 BYTE 2 BYTE 0X05 0X0000 TO 0XFFFF 0x0000 OR 0XFF00 0x0000 释放继电器 0xff00 吸合继电器

MODBUS 响应 功能码 设置地址 设置内容 错误 响应 功能码 错误代码 举例(吸合 6 号继电器) 请求 域名称 功能码 设置地址高(字节) 设置地址低(字节) 设置内容高(字节) 设置内容低(字节) 数据(hex) 05 00 05 FF 00 域名称 功能码 设置地址高(字节) 设置地址低(字节) 设置内容高(字节) 设置内容低(字节) 响应 数据(hex) 05 00 05 FF FF 1 1 BYTE BYTE 0X05+ 0X80 0x1 or 0x2 or 0x3 or 0x4 1 BYTE 2 BYTE 2 BYTE 0X05 0X0000 TO 0XFFFF 0x0000 OR 0XFF00

06

设置单个保持寄存器

MODBUS 请求 功能码 设置地址 设置内容 MODBUS 响应 功能码 设置地址 设置内容 错误 响应 功能码 错误代码 举例 设置 9 号保持寄存器内容为 25 请求 域名称 功能码 设置地址高(字节) 设置地址低(字节) 设置内容高(字节) 设置内容低(字节) 数据(hex) 06 00 08 00 19 域名称 功能码 设置地址高(字节) 设置地址低(字节) 设置内容高(字节) 设置内容低(字节) 响应 数据(hex) 06 00 08 00 19 1 1 BYTE BYTE 0X06+ 0X80 0x1 or 0x2 or 0x3 or 0x4 1 BYTE 2 BYTE 2 BYTE 0X06 0X0000 TO 0XFFFF 0x0000 to 0XFF00 1 BYTE 2 BYTE 2

BYTE 0X06 0X0000 TO 0XFFFF 0x0000 to 0XFF00

15 设置多个继电器状态MODBUS 请求 功能码 设置起始地址 设置长度 1 BYTE 2 BYTE 2 BYTE 0X0F 0X0000 TO 0XFFFF 0X0000 TO 0X7B0

字节计数 设置内容 MODBUS 响应 功能码 设置起始地址 设置长度 错误 响应 功能码 错误代码 举例 设置继电器 请求 域名称 功能码 设置地址高(字节) 设置地址低(字节) 设置数量高(字节) 设置数量低(字节) 字节计数 设置内容高(字节) 设置内容低(字节)

1 BYTE N BYTE

N

1 BYTE 2 BYTE 2 BYTE

0X0F 0X0000 TO 0XFFFF 0X0000 TO 0X7B0

1 1

BYTE BYTE

0X0F+ 0X80 0x1 or 0x2 or 0x3 or 0x4

响应 数据(hex) 0F 00 13 00 0A 02 CD 01 域名称 功能码 设置地址高(字节) 设置地址低(字节) 设置数量高(字节) 设置数量低(字节) 数据(hex) 0F 00 13 00 0A

16 设置多个保持寄存器MODBUS 请求 功能码 设置起始地址 设置长度 1 BYTE 2 BYTE 2 BYTE 0X10 0X0000 TO 0XFFFF 0X0000 TO 0X7B0

字节计数 设置内容 MODBUS 响应 功能码 设置起始地址 设置长度 错误 响应 功能码 错误代码 举例 设置多个保持寄存器 请求 域名称 功能码 设置地址高(字节) 设置地址低(字节) 设置数量高(字节) 设置数量低(字节) 字节计数 设置内容高(字节) 设置内容低(字节) 设置内容高(字节) 设置内容低(字节)

1 BYTE N*2 BYTE

N*2

1 BYTE 2 BYTE 2 BYTE

MODBUS协议(功能码及报文解析)(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:最详细的iTunes使用攻略,iPhone必备

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: