一、使用协议
1、基于Modbus RTU协议
2、从机地址:1
3、串口配置:
(1) 波特率:115200
(2) 数据位:8
(3) 校验位:无
(4) 停止位:1
二、读数据
1、实时显示数据:
(1) 寄存器类型:输入寄存器
(2) 功能码:04
(3) 数据格式:单精度浮点数(32bit)
(4) 线路#1:寄存器地址 0x0000 ~ 0x0032(如表1)
|
寄存器地址 |
寄存器名 |
寄存器地址 |
寄存器名 |
寄存器地址 |
寄存器名 |
|
0x0000 |
Ua |
0x0012 |
Pt |
0x0024 |
PFa |
|
0x0002 |
Ub |
0x0014 |
Qa |
0x0026 |
PFb |
|
0x0004 |
Uc |
0x0016 |
Qb |
0x0028 |
PFc |
|
0x0006 |
Ia |
0x0018 |
Qc |
0x002a |
PFt |
|
0x0008 |
Ib |
0x001a |
Qt |
0x002c |
Uab |
|
0x000a |
Ic |
0x001c |
Sa |
0x002e |
Ubc |
|
0x000c |
Pa |
0x001e |
Sb |
0x0030 |
Uca |
|
0x000e |
Pb |
0x0020 |
Sc |
0x0032 |
Frq |
|
0x0010 |
Pc |
0x0022 |
St |
|
|
表1
(5) 线路#2:寄存器地址 0x0034 ~ 0x0066 (寄存器名排列同表1)
(6) 线路#3:寄存器地址 0x0068 ~ 0x009a (寄存器名排列同表1)
(7) 线路#4:寄存器地址 0x009c ~ 0x00ce (寄存器名排列同表1)
2、模拟量输入(AI)
(1) 寄存器类型:输入寄存器
(2) 功能码:04
(3) 数据格式:单精度浮点数(32bit)
(4) 寄存器地址 0x00d0 ~ 0x00de
|
寄存器地址 |
0x00d0 |
0x00d2 |
0x00d4 |
0x00d6 |
0x00d8 |
0x00da |
0x00dc |
0x00de |
|
输入编号 |
Ai1 |
Ai2 |
Ai3 |
Ai4 |
Ai5 |
Ai6 |
Ai7 |
Ai8 |
3、B码对时
(1) 寄存器类型:输入寄存器
(2) 功能码:04
(3) 数据格式:无符号短整型(16bit)
(4) 寄存器地址 0x00e0 ~ 0x00e2
|
寄存器地址 |
0x00e0 |
0x00e1 |
0x00e2 |
|
变量地址分配 |
[15:8]秒 [7:0]分 |
[15:8]时 [7:0]日 |
[15:8]月 [7:0]年 |
4、数字量输入 (开入)
(1) 寄存器类型:输入寄存器
(2) 功能码:04
(3) 寄存器地址 0x00e3 (16路)
(4) 每一bit位表示一路开入量
5、开出量状态
(1) 寄存器类型:输入寄存器
(2) 功能码:04
(3) 起始寄存器地址:0x00e4(16路)
(4) 1每一位表示一路开出量当前状态
6、事件总寄存器 (非0时,代表事件个数)
(1) 寄存器类型:输入寄存器
(2) 功能码:04
(3) 寄存器地址 0x00e5
三、读事件
当主机轮询到事件总寄存器非0时,读事件寄存器,获取事件内容。
(1) 寄存器类型:输入寄存器
(2) 功能码:04
(3) 寄存器地址 0x0100
(4) 读取长度 5 *n (5 = 寄存器个数,n = 事件个数)
|
数据名 |
数据寄存器 |
|
|
时间戳 (32bit) |
0x0100 |
|
|
毫秒计时(16bit) |
0x0102 |
|
|
线路号+事件类型(8bit) |
0x0103 |
高4位: 线路号(0 = 装置,1 = 线路1,2 =线路2, 3 = 线路3, 4 =线路 4) 低4位: 事件类型(1 = 保护类、2 = 动作类、3 = 报警类、4 = 操作类、5=AI越限类)
|
|
事件代码(8bit) |
保护类:1 = pt 断线, 2 = CT断线,其它事件依次编号 报警类:1 = 过压,2 = 过流,3 =频率越限,4 = 动作类:开入序号(第n路发生了状态变化) AI越限类:AI通道号(第n通道发生越限) 操作类:界面操作直接生成记录,显示并存盘即可 |
|
|
动作值(16bit) |
0x0104 |
保护类、报警类:越限时的监测值 动作类:开入/开出的状态,0→分,非零→合; |
读事件成功回复(主站将本次读取到的事件个数写入到寄存器中,从站收到该报文表示主站读取事件成功):
(1) 寄存器类型:保持寄存器
(2) 功能码:03
(3) 寄存器地址 0x0100
(4) 长度:1
(5) 内容:事件个数
1000
四、读输入数字量 (开入)
(1) 寄存器类型:离散输入
(2) 功能码:02
(3) 寄存器地址 0x0000 (16路)
(4) 保留寄存器地址:0x0001(16路)
五、参数设置与读取
写参数功能码:10H
读参数功能码:03H
显示界面在开机和切换到参数类界面时通过功能码03向下读取参数。
1、时间设置(时间戳)
(1) 寄存器类型:保持寄存器
(2) 功能码:03/10
(3) 寄存器地址:0x0000
(4) 寄存器长度:2
2、通讯设置
(1) 寄存器类型:保持寄存器
(2) 功能码:03/10
(3) 起始地址:0x0004
(4) 寄存器长度:4(路) * 4(8byte数据/2) = 16
3、线路定值设置
(1) 寄存器类型:保持寄存器
(2) 功能码:03/10
(3) 起始寄存器地址:0x0014
(4) 寄存器长度:4(路)*(7(类别) *2(4byte数据/2) + 2(变比)) = 64
4、AI通道设置
(1) 寄存器类型:保持寄存器
(2) 功能码:03/10
(3) 起始寄存器地址:0x0054
(4) 寄存器长度:(12(路)*5byte数据)/2 = 30 (参数设计为12路整体下发,不用担心参数截断问题)
5、AO通道设置
(1) 寄存器类型:保持寄存器
(2) 功能码:03/10
(3) 起始寄存器地址:0x0072
(4) 寄存器长度:(12(路)*5byte数据)/2 = 30 (参数设计为12路整体下发,不用担心参数截断问题)
6、AI报警设置
(1) 寄存器类型:保持寄存器
(2) 功能码:03/10
(3) 起始寄存器地址:0x0090
(4) 寄存器长度:(12(路)*5byte数据)/2 = 30 (参数设计为12路整体下发,不用担心参数截断问题)
六、写开出(线圈)
(1) 寄存器类型:线圈
(2) 功能码:0F(写多个线圈)
(3) 起始寄存器地址:0x0000
(4) 寄存器长度:12
七、通讯过程补充说明
(1) 主站开机后读取参数发送03功能码,若读取失败生成报警事件。该过程可归为开机自检(通讯链路);
(2) 开机自检结束后,开始定期轮询输入寄存器(发送04功能码)。收到从站04应答帧,主站更新数据,并查询事件总寄存器(输入寄存器0x00e5),该寄存器非0(从站有事件发生)时,主站应该立即发送“读事件”指令,正确读取事件并成功回复后,立即再次发送04功能码读输入寄存器并查询事件总寄存器(输入寄存器0x00e5),若该寄存器仍非0,则立即再次发送“读事件”指令,直至该寄存器为0。
当事件总寄存器(输入寄存器0x00e5)为0时,定期轮询输入寄存器(发送04功能码)。
(3) 事件总寄存器,输入寄存器地址 0x00e5,该寄存器内容为n时(非0),表示从站有n个事件发生,主站应该立即发送“读事件”指令(功能码04,输入寄存器地址0x0100,读取长度 5 *n)。
主站正确收到“读事件”指令的应答帧后,发读事件成功回复(功能码03,保持寄存器地址0x0100,数据长度1,内容n)。
从站收到主站读事件成功回复帧,事件总寄存器(输入寄存器0x00e5)中事件个数-n。
(4) 关于事件生成与保存
l 事件类型:1 = 保护类、2 = 动作类、3 = 报警类、4 = 操作类
l 从站生成:“报警”“保护”“动作”类事件,并暂存;
l 主站生成:“操作”类事件,事件代码(1=控制分/合(动作值0→分、动作值非0→合)、2=读定值失败、3=线路定值修改、4=AI报警参数修改、5=AI通道参数修改、6=AO通道参数修改、7=通讯参数修改、8=密码修改);
l 事件保存:从站生成的事件、主站生成的事件统一保存在主站端,并形成历史事件记录文件,并可分类、按时间段、线路号等检索查看。
(5) 显示页面切换到参数页时,应当发送”读参数功能码03H”,当参数发生更改时,发送”写参数功能码10H”,并由主站生成“xx参数修改”事件,实时显示并存盘形成历史事件。