DNP30应用备份剖析Word下载.docx
《DNP30应用备份剖析Word下载.docx》由会员分享,可在线阅读,更多相关《DNP30应用备份剖析Word下载.docx(47页珍藏版)》请在冰豆网上搜索。
功能码
帧类型
服务功能
FCV位
发送-期待确认
远方链路复位
1
用户进程复位
2
链路测试
3
用户数据
4
发送-不期待确认
不用确认的用户数据
9
查询-期待确认
询问链路状态
发自响应站的功能码
确认
ACK
NAVK
11
响应
报告链路状态
14
链路服务不能工作
15
链路服务未用或未实现
用户数据:
跟在报文头后面,每一块可包括1至16个字节的数据。
如果数据的长度大于16个字节,则除了最后一个数据块,其他的数据块长度全为16字节
CRC:
两个字节长。
报文头和每个数据块后都有两个字节的CRC校验码。
CRC计算方法
A:
生成多项式=x16+x13+x12+x11+x10+x8+x6+x5+x2+1(0x3d65)
B:
按字节求反序.b7->
b0,b6->
b1,...,b0->
b7
C:
查表求CRC
D:
CRC码按字求反序,b15->
b0,b14->
b15.
CRC码求反.
二、伪传输层
伪传输层的作用是当源发站和响应站之间所传输的信息大于一个链路协议数据单元(LPDU)的容量时,要将传输服务数据单元(TSDU)分解成几个传输协议数据单元(TPDUS)进行传输。
TPDUS的格式如下:
TH
USEDATA
TH的格式如下:
7650
FIR
FIN
SEQUENCE
FIN:
为0表示后面还有数据帧。
为1表示这是数据的最后一帧。
FIR:
为1表示本帧是数据的第一帧。
为0表示本帧不是数据的第一帧。
SEQUENCE:
表示本帧数据的序列号,用于防止帧丢失和重复。
三、应用层
应用层的命令可以分成如下两类:
(一)应用层的请求命令,格式如下:
(只有主站才能发请求命令)
REQUESTHEADER
OBJECTHEADER
DATA
其中REQUESTHEADER的格式如下:
APPLICATIONCONTROL
FUNCTIONCODE
APPLICATIONCONTROL的格式:
76540
FIR
FIN
CON
SEQUENCE
CON:
为1表示期望接收到一个确认。
为0表示不期望接收到一个确认。
SEQUENCE:
表示本帧的序号。
其中0~15用作主站的请求和从站对主站请求的响应。
16~31用作从站的非请求响应。
请求功能码:
读
写
选择
操作
5
直接操作(ACK)
6
直接操作(NOACK)
7
立即冻结(ACK)
8
立即冻结(NOACK)
冻结同时清除(ACK)
10
冻结同时清除(NOACK)
在特定的时间或间隔冻结(ACK)
12
在特定的时间或间隔冻结(NOACK)
13
冷启动
热启动
用缺省值初始化数据
16
应用初始化
17
开始应用
18
停止应用
19
存储组态
20
使能非请求信息
21
禁止非请求信息
22
分类
23
测量延时
(二)应用层的响应命令,格式如下:
(只有从站才能发响应命令)
REPONSEHEADER
其中REPONSEHEADER的格式如下:
INTERNALINDICATION
APPLICATIONCONTROL的格式如上所述
响应功能码:
129
对请求的响应
130
非请求响应
INTERNALINDICATION:
由两个字节组成,第一个字节各位为
(1)时表示的意义如下
BIT0:
表示收到了主站的广播命令。
BIT1:
表示1类数据准备好了。
BIT2:
表示2类数据准备好了。
BIT3:
表示3类数据准备好了。
BIT4:
表示请求对时。
BIT5:
表示子站的某些或全部数字输出置于当地方式。
BIT6:
表示装置有故障。
BIT7:
表示装置重新启动。
第二个字节各位为
(1)时表示的意义如下
表示功能码未执行
表示请求的数据对象未知。
表示参数无效。
表示事件缓冲区或其他缓冲区溢出。
表示主站请求的操作正在执行。
表示子站的配置遭到破坏。
保留(设为0)。
(三)对象头
格式:
对象
限定字
变程段
对象:
定义了对象的组和格式。
限定字:
定义了变程段的意义。
变程段:
定义了对象的数量、开始和结束的指针或所讨论对象的识别符。
1、限定字
R
INDEXSIZE
4BITQUALIFIERCODE
R:
保留位,总是被设置为0。
INDEXSIZE:
当QUALIFIERCODE的值为11时,其含义如下
1表示有一个字节的标识码
2表示有两个字节的标识码
3表示有三个字节的标识码
当QUALIFIERCODE的值不为11时,其含义如下
0表示对象前未置索引
1表示对象被前置一个字节的索引
2表示对象被前置两个字节的索引
3表示对象被前置一个字节的索引
4表示对象被前置一个字节的对象规模
5表示对象被前置两个字节的对象规模
6表示对象被前置三个字节的对象规模
QUALIFIERCODE:
0表示在变程段内有一个字节的起始和结束索引
1表示在变程段内有两个字节的起始和结束索引
2表示在变程段内有三个字节的起始和结束索引
3表示在变程段内有一个字节的绝对地址的标识符
4表示在变程段内有两个字节的绝对地址的标识符
5表示在变程段内有三个字节的绝对地址的标识符
7表示在变程段内有一个字节数量值
8表示在变程段内有两个字节数量值
9表示在变程段内有三个字节数量值
11当其他的QUALIFIERCODE都不适用或不能提供足够的标识信息
时,就用此标识码去规定对象。
2、对象字段
格式:
对象组
0或对象变体
应用的请求方向
对象变体
应用的响应方向
对象列表
二进制输入对象:
对象描述
对象类型
变体号
类型
单位二进制输入
01
静态
带状态的二进制输入
02
不带时标的二进制变位输入
事件
带时标的二进制变位输入
带相对时间的二进制变位输入
03
二进制输出对象:
二进制输出
控制继电器输出块
方式控制块
计数对象:
32位的二进制
计数器
16位的二进制
32位的增量计数器
16位的增量计数器
04
不带标志的32位的二进制计数器
05
不带标志的16位的二进制计数器
06
不带标志的32位的增量计数器
07
不带标志的16位的增量计数器
08
32位的冻结计数器
冻结静态
16位的冻结计数器
32位的冻结
增量计数器
16位的冻结
带冻结时间的32位的冻结计数器
带冻结时间的16位的冻结计数器
带冻结时间的32位的冻结增量计数器
带冻结时间的16位的冻结增量计数器
不带标志的32位的冻结计数器
09
不带标志的16位的冻结计数器
不带标志的32位的冻结增量计数器
不带标志的16位的冻结增量计数器
不带时标的32位事件变化计数器
不带时标的16位事件变化计数器
不带时标的32位事件变化的增值计数器
不带时标的16位事件变化的增值计数器
带时标的32位事件变化计数器
带时标的16位事件变化计数器
带时标的32位事件变化的增值计数器
带时标的16位事件变化的增值计数器
不带时标的32位冻结计数器事件
冻结事件
不带时标的16位冻结计数器事件
不带时标的32位冻结的增量计数器事件
不带时标的16位冻结的增量计数器事件
带时标的32位冻结计数器事件
带时标的16位冻结计数器事件
带时标的32位冻结的增量计数器事件
带时标的16位冻结的增量计数器事件
模拟量输入对象:
32位模拟量输入
30
16位模拟量输入
不带标志的32位模拟量输入
不带标志的16位模拟量输入
32位冻结模拟量输入
31
16位冻结模拟量输入
带冻结时间的32位冻结模拟量输入
带冻结时间的16位冻结模拟量输入
不带标志的32位冻结模拟量输入
不带标志的16位冻结模拟量输入
不带时标的32位模拟量变化事件
32
不带时标的16位模拟量变化事件
带时标的32位模拟量变化事件
带时标的16位模拟量变化事件
不带时标的32位冻结模拟量变化事件
33
不带时标的16位冻结模拟量变化事件
带时标的32位冻结模拟量变化事件
带时标的16位冻结模拟量变化事件
模拟量输出对象:
32位模拟量输出状态
40
16位模拟量输出状态
32位模拟量输出块
41
16位模拟量输出块
时间对象:
时间和日期
50
带有时间间隔的时间和日期
CTO时间和日期
51
非同步的CTO时间和日期
不精确的时间延迟
52
精确的时间延迟
级类对象:
0类数据
60
1类数据
2类数据
3类数据
文件对象:
文件标志符
70
设备对象:
内部信号
80
存储对象
81
装置简表
82
保密登记对象
83
保密登记
应用程序对象:
应用程序识别符
90
其他数码对象:
短浮点
100
长浮点
扩展浮点
小包装的二进制编码的十进制数
101
中包装的二进制编码的十进制数
大包装的二进制编码的十进制数
第二部分DNP规约的应用
由上可知,DNP3.0的功能非常庞大,在实际应用中,我们其实只是用了其中的一些功能。
下面,我们介绍一下北京供电局中RTU与智能设备之间的通讯是怎样运用DNP3.0规约的。
为此,我们必须首先了解DNP3.0的扫描方式。
DNP3.0的扫描方式,按其文本,分为4种基本的扫描方式。
(1)哑态工作方式:
主站从不主动与子站设备通信,由子站设备向主站报告变化数据;
(2)非请求变位工作方式:
与哑态唯一的不同是,主站会向子站请求所有静态数据;
(3)变位扫描方式:
主站会请求所有静态数据,并不时地扫描变化数据;
(4)扫描静态方式:
主站公请求所有或部分静态数据。
在北京供电局,我们应用了其中两种扫描方式。
一种是哑态工作方式,是RTU与四方保护通讯所用的方式。
另一种是变位扫描方式,是RTU与除四方外的其他智能设备通讯所用的方式。
下面,我们就根据不同的扫描方式对DNP3.0的应用加以介绍。
一、变位扫描方式
(注:
1、在此种方式下,由与RTU与智能设备都采取的链路层确认的方式。
所以,RTU发出的命令,除询问链路状态的命令外,控制字一律置为“C4”。
同样,智能设备发出的响应,除报告链路状态的响应外,控制字一律置为“44”。
2、TH总是在C0到FF之间变化)
在此种扫描方式下,主要运用如下命令:
(一)RTU发的置IIN.BIT7=0的命令:
START(0564H)
0EH
C4H
目的地址(两个字节)
源地址(两个字节)
CRC(两个字节)
TH(一个字节)
AC(一个字节)
02H
50H
01H
00H
07H
对与此命令智能设备的响应是:
0AH
44H
81H
内码(两个字节)
(二)RTU对智能设备的响应的确认:
08H
注:
只有在智能设备的应答中将AC中的CON位置1,RTU才对其进行确认。
智能设备无需对此确认作任何响应。
(三)RTU查询链路状态
05H
C9H
0BH
(四)RTU问智能设备时间延迟
17H
对与此命令智能设备的响应是:
10H
34H
延迟(两个字节)
延迟是以毫秒数上报。
第一个字节为低八位,第二个字节为高八位。
此毫秒数是指智能设备收到RTU报文的第一个字节的第一位时间到它发出报文低一个字节的第一位的时间。
(五)RTU向智能设备发对时命令
12H
32H
时间和日期(六个字节)
六个字节的时间和日期是低字节在前,高字节在后。
是指相对于1970年0时0分0秒0毫秒的毫秒值。
智能设备对RTU此命令的响应
RTU在查询到智能设备的响应中内码上置了对时标志时,开始发问延迟和对时命令。
(六)RTU查询链路状态
(七)RTU向智能设备问全数据
14H
3CH
06H
03H
04H
智能设备对RTU此命令的响应
对象描述(一个字节)
对象类型(一个字节)
起始索引(两个字节)
结束索引(两个字节)
数据区
.
注:
1、YX用的对象描述为01H,对象类型为02H
每一个YX占一个字节,格式如下:
第0位:
0表示离线,1表示在线。
第1位:
0表示正常,1表示复位。
第2位:
0表示正常,1表示失去通讯。
第3位:
0表示正常,1表示远方强制。
第4位:
0表示正常,1表示当地强制。
第5位:
0表示正常,1表示滤波启动。
第6位:
总为0。
第7位:
表示YX状态。
2、YC用的对象描述为1EH,对象类型为02H,
每一个YC占3个字节,格式如下:
标志字
70
YC值
150
标志字:
0表示正常,1表示超限。
0表示正常,1表示基准出错。
(八)RTU向智能设备问变化数据
11H
28H
个数(两个字节)
索引(两个字节)
数据
1、YX变化数据用的对象描述为0