当前位置:文档之家› 电力仪表通信协议

电力仪表通信协议

波特率
2Byte
0x0104
B相电压上限
2Byte
24
0x0105
C相电压下限
2Byte
25
0x0106
C相电压上限
2Byte
26
0x03
&
0x06
0x0200
电流倍数
2Byte
27
0x0201
A相电流下限
2Byte
28
0x0202
A相电流上限
2Byte
29
0x0203
B相电流下限
2Byte
30
0x0204
B相电流上限
仪表地址
功能码
字节计数
读取数据
CRC校验
0x01
0x03
0x01
0x03
2Byte
错误响应:
仪表地址
功能码
错误代码
CRC校验
0x01
0x83
0x1/0x2/0x3/0x4
2Byte
16功能码(控制仪表地址为0x01电压监控状态为ABC三相控制)
请求:
设置数据地址0x0000(A相),0x0001(B相),0x0002(C相)的电压监控状态:使其为开启状态:0000 0111=0x07(三位二进制数据分别对应ABC三相的电压监控状态)
20
读取通用参数(584L)
显示扩展存储器文件中的数据信息
21
写入通用参数(584L)
把通用参数写入扩展存储文件,或修改之
22~64
保留作扩展功能备用
65~72
保留以备用户功能所用
留作用户功能的扩展编码
73~119
非法功能
120~127
保留
留作内部作用
128~255
保留
用于异常应答
各个功能码对应的数据类型
功能代码
数据
CRC校验
结束符
T1-T2-T3-T4
8Bit
8Bit
n个8Bit
16Bit
T1-T2-T3-T4
MODBUS ASCII报文格式
起始位
设备地址
功能代码
数据
LRC校验
结束符
1个字符
2个字符
2个字符
n个字符
2个字符
2个字符
MODBUS TCP报文
交互标识
协议标识
报文长度
设备标识
功能代码
数据
2字节
一般为0
2字节
一般为0
2字节
高字节在前
1字节
也就是设备地址
1个字符
n个字符
MODBUS协议中定义的这些数据都是一个从地址1开始的数组,访问时需要指明从哪个地址开始访问,访问多少个数据。下表是MODBUS的功能码。
ModBus功能码
功能码
名称
作用
01
读取线圈状态
取得一组逻辑线圈的当前状态(ON/OFF)
12
读取通信事件记录
可是主机检索每台从机的ModBus事务处理通信事件记录。如果某项事务处理完成,记录会给出有关错误
13
编程(184/384 484 584)
可使主机模拟编程器功能修改PC从机逻辑
14
探询(184/384 484 584)
可使主机与正在执行任务的从机通信,定期控询该从机是否已完成其程序操作,仅在含有功能13的报文发送后,本功能码才得发送
各个命令的功能举例
03功能码(读取仪表地址为0x01电压监控状态)
请求:
读取数据地址0x0000(A相),0x0001(B相),0x0002(C相)的电压监控状态
仪表地址
功能码
读取地址
读取长度
CRC校验
0x01
0x03
0x0000
0x0003
2Byte
响应:
在A/B/C三相电压监控状态中,A/B相为开起状态,C相为关闭状态:0000 0011=0x03
继电器k1输出状态
1Bit
8
0x0007
继电器k1输出方式
1Bit
9
0x0008
继电器k2输出状态
1Bit
10
0x0009
继电器k2输出方式
1Bit
11
0x000A
报警装置输出状态
1Bit
12
0x000B
通信状态
1Bit
13
0x03
0x0000
A相电压
4Byte
14
0x0002
B相电压
4Byte
15
0x0004
C相电压
4Byte
16
0x0006
A相电流
4Byte
17
0x0008
B相电流
4Byte
18
0x000A
C相电流
4Byte
19
0x03
&
0x06
0x0100
电压倍数
2Byte
20
0x0101
A相电压下限
2Byte
21
0x0102
A相电压上限
2Byte
22
0x0103
B相电压下限
2Byte
23
2Byte
17功能码
电表数据地址
序号
命令
数据地址
名称
长度
单位
功能
备注
1
0x03
&
0x16
0x0000
A相电压监控
1Bit
2
0x0001
B相电压监控
1Bit
3
0x0002
C相电压监控
1Bit
4
0x0003
A相电流监控
1Bit
5
0x0004
B相电流监控
1Bit
6
0x0005
C相电流监控
1Bit
7
0x0006
仪表地址
功能码
设置地址
设置长度
字节计数
设置内容
CRC校验
0x01
0x16
0x0000
0x0003
0x01
0x07
2Byte
响应:
完成了对设置地址的数据设定
仪表地址
功能码
设置地址
设置长度
CRC校验
0x01
0x16
0x0000
0x03
2Byte
错误响应:
仪表地址
功能码
错误代码
CRC校验
0x01
0x96
0x1/0x2/0x3/0x4
15
强置多线圈
强置一串连续逻辑线圈的通断
16
预置多寄存器
把具体的二进制值装入一串连续的保持寄存器
17
报告从机标识
可使主机判断编址从机的类型及该从机运行指示灯的状态
18
(884和MICRO 84)
可使主机模拟编程功能,修改PC状态逻辑
19
重置通信链路
发生非可修改错误后,是从机复位于已知状态,可重置顺序字节
08
回送诊断校验
把诊断校验报文送从机,以对通信处理进行评鉴
09
编程(只用于484)
使主机模拟编程器作用,修改PC从机逻辑
10
控询(只用于484)
可使主机与一台正在执行长程序任务从机通信,探询该从机是否已完成其操作任务,仅在含有功能码9的报文发送后,本功能码才发送
11
读取事件计数
可使主机发出单询问,并随即判定操作是否成功,尤其是该命令或其他应答产生通信错误时
电力仪表通信协议
ModBus
字节格式
C
D0
D1
D2
D3
D4
D5
D6
D7
P
S
每字节包含
8位二进制码(D0-D7)
1个起始位(C)
1个偶校验位(P)
1个停止位(S)
共11位。
其传输序列如图2所示。D0是字节的最低有效位,D 7是字节的最高有效位。先传低位,后传高位
MODBUS RTU报文格式
起始位
设备地址
2Byte
31
0x0205
C相电流下限
2Byte
32
0x0206
C相电流上限
2Byte
33
0x03
&
0x06
0x0300
电表信息
6Byte
39
0x0301
一级密码
2Byte
40
0x0302
二级Baidu Nhomakorabea码
2Byte
41
0x0303
继电器k1输出长度
2Byte
42
0x0304
继电器k2输出长度
2Byte
43
0x0305
02
读取输入状态
取得一组开关输入的当前状态(ON/OFF)
03
读取保持寄存器
在一个或多个保持寄存器中取得当前的二进制值
04
读取输入寄存器
在一个或多个输入寄存器中取得当前的二进制值
05
强置单线圈
强置一个逻辑线圈的通断状态
06
预置单寄存器
把具体二进值装入一个保持寄存器
07
读取异常状态
取得8个内部线圈的通断状态,这8个线圈的地址由控制器决定,用户逻辑可以将这些线圈定义,以说明从机状态,短报文适宜于迅速读取状态
代码
功能
数据类型
01

1 x 1bit _IO
02

1 x 1bit _O
03

1~N xByte_IO
04

1~N xByte_O
05

1 x 1bit _IO
06

1 x Byte _IO
15

Nx 1bit _IO
16

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