字格式(串行数据)
|
11位二进制
|
起始位
|
1位
|
数据位
|
8位
|
奇偶校验位
|
1位:有奇偶校验位/无:无奇偶校验位
|
停止位
|
1位:有奇偶校验位/2位:无奇偶校验位
|
数据格式:
|
地址码
|
功能码
|
数据区
|
错误校检
|
数据长度:
|
1字节
|
1字节
|
N字节
|
16位CRC码(冗余循环码)
|
功能码
|
定 义
|
操 作(二进制)
|
02
|
读开关量输入
|
读取一路或多路开关量状态输入数据
|
01
|
读开关量输出
|
读取一路或多路开关量输出状态数据
|
03
|
读寄存器数据
|
读取一个或多个寄存器的数据
|
05
|
写开关量输出
|
控制一路
继电器“合/分”输出
|
06
|
写单路寄存器
|
把一组二进制数据写入单个寄存器
|
10
|
写多路寄存器
|
把多组二进制数据写入多个寄存器
|
起始位地址
|
DI寄存器数据
(
16
进制)
|
备 注
|
0000
|
0B
|
DI1/DI2/DI4
状态为“
1
”
,
DI3
状态为“
0
”
|
主机发送
|
字节数
|
发送的信息
|
备 注
|
从机地址
|
1
|
01
|
发送至地址为01的从机
|
功能码
|
1
|
02
|
读开关量输入状态
|
起始BIT位
|
2
|
0000
|
起始BIT位地址为0000
|
读数据长度
|
2
|
0004
|
读取4路开关量输入状态位
|
CRC码
|
2
|
79C9
|
由主机计算得到CRC码
|
从机响应
|
字节数
|
返回的信息
|
备 注
|
从机地址
|
1
|
01
|
来自从机01
|
功能码
|
1
|
02
|
读开关量输入状态
|
数据长度
|
1
|
01
|
1个字节(8个BIT位)
|
DI状态数据
|
1
|
0B
|
DI寄存器内容
|
CRC码
|
2
|
E04F
|
由从机计算得到CRC码
|
起始位地址
|
DO寄存器数据
(16
进制
)
|
备 注
|
0000
|
02
|
DO2
输出状态为“
1
”
,
DO1
输出状态为“
0
”
|
主机发送
|
字节数
|
发送的信息
|
备 注
|
从机地址
|
1
|
01
|
发送至地址为01的从机
|
功能码
|
1
|
01
|
读开关量输出状态
|
起始BIT位
|
2
|
0000
|
起始BIT位地址为0000
|
读数据长度
|
2
|
0002
|
读取2路
继电器输出状态位
|
CRC码
|
2
|
BDCB
|
由主机计算得到CRC码
|
从机响应
|
字节数
|
返回的信息
|
备 注
|
从机地址
|
1
|
01
|
来自从机01
|
功能码
|
1
|
01
|
读开关量输出状态
|
数据长度
|
1
|
01
|
1个字节(8个BIT位)
|
DO状态数据
|
1
|
02
|
DO寄存器内容
|
CRC码
|
2
|
D049
|
由从机计算得到CRC码
|
寄存器地址
|
寄存器数据
(
16
进制)
|
对应PDM电量
|
0116
|
1784
|
UA
|
0117
|
1780
|
UB
|
0118
|
178A
|
UC
|
主机发送
|
字节数
|
发送的信息
|
备 注
|
从机地址
|
1
|
01
|
发送至地址为01的从机
|
功能码
|
1
|
03
|
读取寄存器
|
起始地址
|
2
|
0116
|
起始地址为0116
|
数据长度
|
3
|
0003
|
读取3个寄存器
(共
6
个字节)
|
CRC码
|
2
|
E5F3
|
由主机计算得到CRC码
|
从机响应
|
字节数
|
返回的信息
|
备 注
|
从机地址
|
1
|
01
|
来自从机01
|
功能码
|
1
|
03
|
读取寄存器
|
读取字
|
1
|
06
|
3个寄存器共6个字节
|
寄存器数据1
|
2
|
1784
|
地址为0116内存的内容
|
寄存器数据2
|
2
|
1780
|
地址为0117内存的内容
|
寄存器数据3
|
2
|
178A
|
地址为0118内存的内容
|
CRC码
|
2
|
5847
|
由从机计算得到CRC码
|
主机发送
|
字节数
|
发送的信息
|
备 注
|
从机地址
|
1
|
01
|
发送至地址为01的从机
|
功能码
|
1
|
05
|
写开关量输出状态
|
输出BIT位
|
2
|
0000
|
对应输出继电器BIT位(DO1)
|
控制命令
|
2
|
FF00
|
控制该路继电器输出为“合”状态位
|
CRC码
|
2
|
8C3A
|
由主机计算得到CRC码
|
主机发送
|
字节数
|
发送的信息
|
备 注
|
从机地址
|
1
|
01
|
发送至地址为01的从机
|
功能码
|
1
|
05
|
写开关量输出状态
|
输出BIT位
|
2
|
0001
|
对应输出继电器BIT位(DO2)
|
控制命令
|
2
|
0000
|
控制该路继电器输出为“合”状态位
|
CRC码
|
2
|
9C0A
|
由主机计算得到CRC码
|
地址
|
原来存储数据
(
16
进制)
|
002C
|
04B0
|
主机发送
|
字节数
|
发送的信息
|
举例
|
从机地址
|
1
|
01
|
发送至地址为01的从机
|
功能码
|
1
|
06
|
写单路寄存器
|
起始地址
|
2
|
002C
|
要写入的寄存器地址
|
写入数据
|
2
|
07D0
|
对应的新数据
|
CRC码
|
2
|
4BAF
|
由主机计算得到的CRC码
|
地址
|
原来存储数据
(
16
进制)
|
002C
|
04B0
|
002D
|
1388
|
主机发送
|
字节数
|
发送信息
|
举例
|
从机地址
|
1
|
01
|
发送至从机01
|
功能码
|
1
|
10
|
写多路寄存器
|
起始地址
|
2
|
002C
|
要写入的寄存器的起始地址
|
保存数据字长度
|
2
|
0002
|
保存数据的字长度(共2字)
|
保存数据字节长
|
1
|
04
|
保存数据的字节长度(共4字节)
|
保存数据1
|
2
|
04B0
|
数据地址002C
|
保存数据2
|
2
|
1388
|
数据地址002D
|
CRC码
|
2
|
FC63
|
由主机计算得到的CRC码
|
从机响应
|
字节数
|
字节数
|
举例
|
从机地址
|
1
|
01
|
来自从机01
|
功能码
|
1
|
10
|
写多路寄存器
|
起始地址
|
2
|
002C
|
起始地址为002C
|
保存数据字长度
|
2
|
0002
|
保存2个字长度的数据
|
CRC码
|
2
|
8001
|
由从机计算得到的CRC码
|