161 lines
5.6 KiB
Plaintext
161 lines
5.6 KiB
Plaintext
一、使用协议
|
||
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) 关于事件生成与保存
|
||
* 事件类型:1 = 保护类、2 = 动作类、3 = 报警类、4 = 操作类
|
||
* 从站生成:"报警""保护""动作"类事件,并暂存;
|
||
* 主站生成:"操作"类事件,事件代码(1=控制分/合(动作值0→分、动作值非0→合)、2=读定值失败、3=线路定值修改、4=AI报警参数修改、5=AI通道参数修改、6=AO通道参数修改、7=通讯参数修改、8=密码修改);
|
||
* 事件保存:从站生成的事件、主站生成的事件统一保存在主站端,并形成历史事件记录文件,并可分类、按时间段、线路号等检索查看。
|
||
(5) 显示页面切换到参数页时,应当发送"读参数功能码03H",当参数发生更改时,发送"写参数功能码10H",并由主站生成"xx参数修改"事件,实时显示并存盘形成历史事件。
|
||
|
||
|
||
|