ntentLabel class=NewsContent>
1、 读取保持寄存器(单个和多个,以字为最小单位)
发送命令帧:
设备地址 |
功能码 |
地址H |
地址L |
数据量H |
数据量L |
CRC H |
CRC L |
Addr0 |
3 H |
HoldStart |
DataNum |
CRC高位 |
CRC低位 |
帧 长 度:8个字节
设备地址:1~247
功 能 码:3H
数据地址:0~65535 具体范围与相关设备有关
数 量:1~65535 具体范围与相关设备有关
校 验 码:CRC16校验
返回命令帧:
设备地址 |
功能码 |
数据量 |
数据1 |
数据N |
CRC H |
CRC L |
Addr1 |
3 H |
返回数据的字节数N |
Data (1~N) |
CRC高位 |
CRC低位 |
帧 长 度:5+N 个字节
设备地址:1~247
功 能 码:3H
数 据 量:实际的读取数据数量
数 据:返回数据的意义
a=HoldStart
n= DataNum-1
VW a (VB a) |
VWa(VB a+1) |
… |
VW a+n(VB a+n) |
VWa+n(VB a+n+1) |
Data(1) |
Data(2) |
… |
Data(N-1) |
Data(N) |
校 验 码:CRC16校验
命令有误:
1) 没有任何返回
2) 返回异议帧
设备地址 |
功能码 |
错误信息 |
CRC H |
CRC L |
Addr1 |
83 H |
一个字节的错误信息 |
CRC高位 |
CRC低位 |
2、 设置保持寄存器(多个,以字为最小单位)
发送命令帧:
设备地址 |
功能码 |
地址H |
地址L |
数据量H |
数据量L |
数据字节数 |
具体
数据 |
CRC H |
CRC L |
Addr0 |
10 H |
HoldStart |
DataNum |
bytN |
1~bytN |
CRC高位 |
CRC低位 |
帧 长 度:9+bytN 个字节
设备地址:1~247
功 能 码:10H
数据地址:0~65535 具体范围与相关设备有关
数 量:1~122 具体范围与相关设备有关
字 节 数:设置的字节个数 bytN= DataNum×2
#p#分页标题#e#数 据:具体的字节数据
校 验 码:CRC16校验
返回命令帧:
设备地址 |
功能码 |
地址H |
地址L |
数据量H |
数据量L |
CRC H |
CRC L |
Addr1 |
10 H |
HoldStart |
DataNum |
CRC高位 |
CRC低位 |
帧 长 度:8 个字节
设备地址:1~247
功 能 码:10H
数据地址:0~65535 具体范围与相关设备有关
数 量:1~122 具体范围与相关设备有关
校 验 码:CRC16校验
命令有误:
1) 没有任何返回
2) 返回异议帧
地址 |
功能码 |
错误信息 |
CRC H |
CRC L |
Addr1 |
90 H |
一个字节的错误信息 |
CRC高位 |
CRC低位 |