1 前言
IEC60870-5-103继电保护设备信息接口标准提供了继电保护设备(或测控设备)的信息接口规范。相关的国家标准有DL/T667-1999通信协议。
本文将以DL/T667-1999通信协议的非平衡方式传输方式为基础,介绍如何使用格西烽火通信测试软件进行编写测试项目,进行测试符合DL/T667-1999通信协议的设备。
2 通信协议
2.1 术语
信息对象组(group of information object)
一个信息对象的组是公共地址或信息地址一个集。
控制方向control direction
从控制站(主站)到被控站(子站)的传输方向。
监视方向monitoring direction
从被控站(子站)到控制站(主站)的传输方向。
2.2 通信接口
支持串口,异步传输方式,11位,其中启动位1位,数据位8位,1个偶校验位,1个停止位。
2.3 数据链路层
本文介绍DL/T667-1999通信协议的非平衡方式,主-从结构的半双工通信方式。启动仅限于某一个固定点( 启动站或主站 ),通信链路的建立与解除均由主站发出的信息帧来控制。
2.3.1 帧格式
帧是传送信息的基本单元。允许采用固定帧长和可变帧长。
帧格式如下图所示。
定长帧
变长帧
说明:
1)控制域是用来区别不同的帧和数据传输方向的单字节,详见标准;
2)地址域1字节,255是广播地址;
3)帧校验是用户数据区的各字节的算术和对256的模;
4)变长帧中的L为用户数据区的长度,2个L相等;
5)变长帧中的ASDU为应用服务数据单元,详见标准。
2.3.2 控制域
控制域包含了传输方向、传输状态以及链路功能类型等信息,1字节,各个位定义如下:
RES∶保留位(设置为0)
FCB∶帧计数位,被控站通过判断FCB是否翻转来决定是否重发上一帧报文
FCV∶帧计数位有效位,FCV=1表示FCB有效,FCV=0表示FCB无效。
ACD∶请求访问一级用户数据,ACD=1表示被控站有一级数据
DFC∶数据流控制位,DFC=1表示被控站不能接收后续报文
功能码定义:
1)控制系统向继电保护设备传送的功能码的定义
2)继电保护设备向控制系统传送的功能码的定义
2.4 应用层
2.4.1 应用服务数据单元
标准规定每一个链路规约数据单元(LPDU)只有一个应用服务数据单元(ASDU)。应用服务数据单元由数据单元标识符和一个或多个信息体所组成。数据单元标识符在所有应用服务数据单元中常有相同的结构,一个应用服务数据单元中的信息体常有相同的结构和类型,它们由类型标识域所定义。
ASDU结构如下图所示。
1)ASDU的类型标识号,870-5-103通信规约出于传送各种不同类型信息的需要,规定了很多种格式的ASDU,每一种格式的信息体都不一样,并且都有一个唯一的标识号。
2)可变结构限定词(VSQ),它规定了ASDU信息体中信息元的个数和寻址方式,SQ=1,信息体中只含单个元素或综合信息元,信息体地址(FUN和INF)即信息元地址,SQ=0,信息体地址是顺序排列的信息元素的第一个信息元地址,后续信息元地址从这个地址起顺序加1。
3)传送原因(COT)。指出报文的性质,分“主->从”和“从->主”两种情况,具体定义参考DL/T667-1999。
4)应用服务数据单元公共地址(ASDU_ADDR),对于一般的装置,ASDU_ADDR = 装置的物理地址,对于保护管理机,ASDU_ADDR = 产生信号的保护装置的物理地址。ASDU_ADDR的取值范围为:0~254。
5)信息元标识符(FUN、INF),信息元标识符包括两个部分即功能类型(FUN)和信息序号(INF)。对于继电保护装置,每个动作元件(如Ⅰ段距离动作)、报警信号和压板状态等都有一个唯一的FUN和INF与之对应。对于远动装置,每个遥测、遥信、遥脉、遥控通道也都有一个唯一的 FUN和INF与之对应。
6)信息元,以一定格式表示的信息的状态或数值(如遥信状态、遥测值等等)。具体定义参考DL/T667-1999。
2.4.2 基本传输过程
基本链路传输过程是由控制系统依次向各个继电保护设备No.0、No.1、No.2……No.n间隔层召唤2级用户数据(C-PL2-NA-3),各个设备分别以M-MEI-NA-3(ASDU 3)、M-MEII-NA-3(ASDU 9)M-MEVII-NA-3(ASDU 50)等被测值帧响应。如果间隔层无1级用户数据,控制系统依次召唤2级用户数据,各个间隔层分别以响应帧回答。召唤No.n间隔2级用户数据以后,即转向召唤No.0间隔的2级用户数据。
如果在召唤No.i间隔之前,此间隔发生状态变位,产生1级用户数据,当控制系统向No.i间隔召唤2级用户数据C-PL2-NA-3时,No.i间隔的响应帧中的ACD=1,控制系统接受完2级用户数据后,接下去就向No.i间隔召唤1级用户数据C-PL1-NA-3,No.i间隔即以M-TTM-TA-3 ASDU 1、M-TMR-TA-3 ASDU 22、M-SP-TA-3 ASDU 41、M-DP-TA-3 ASDU 43、M-ST-NA-3 ASDU 36之一响应,若此帧中ACD=0,(控制系统得知No.i站已无1级用户数据),接下去就向No.i+1间隔召唤2级用户数据。
如果在发生状态变位时,同时发生扰动数据,在继电保护设备内状态变位的优先级将比扰动数据高,当控制系统向此继电保护设备召唤1级用户数据时,优先传送状态变位,然后传送扰动数据表,直到收集完所有间隔的状态变位,再向这一间隔召唤1级用户数据时才开始收集扰动数据。
3 测试项目编制
3.1 基本协议编制
3.1.1 协议项分类
利用格西烽火软件的协议激励的功能,把DL/T667-1999通信规约按照树形结构分类组织,使得管理上更加有条理,查找也更加方便。
首先,根据DL/T667-1999通信协议的控制功能码,建立命令模版协议集,作为基本规约模版使用。
然后,根据ASDU类型标识编码表进行协议分类,建立基本命令集。
按照树形结构分类组织的规约项目结构如图所示。
3.1.2 协议项编制
根据协议帧格式,为了方便控制和显示,把协议项的数据按照功能进行拆分。
例子1:命令模版的“<10>召唤1级数据”命令编制方法。
主站请求帧
从站有数据应答帧
从站没有数据应答帧
基本命令集的命令是由子命令构成的,子命令从命令模版中引用并作修改。
例子3:基本命令的“总召唤”命令编制方法。
首先,创建一个协议集,命名为“总召唤”;
其次,通过复制和粘贴功能,从命令模版中把“<3>传送数据”复制到协议集“总召唤”中,作为发起总召唤命令,把“<10>召唤1级数据”复制过来作为召唤全遥信、变位遥信、SOE、总召唤结束命令。
3.1.3 公共协议库
通过对基本协议项的编写、测试和验证,建立一个由基本协议项组成的公共协议库。
3.2 测试用例编制
测试用例(Test Case)是为某个特殊目标而编制的一组测试输入、执行条件以及预期结果,以便测试某个程序路径或核实是否满足某个特定需求。通信协议测试属于黑盒测试,可以采用黑盒测试常用的等价类划分法、边界值分析法、错误推测法、因果图法等基本方法来设计测试用例。
测试方案设计完成后,格西烽火软件能够利用编制完成的公共协议库,采用搭积木的方式,通过复制和粘贴命令即可非常快捷的创建测试用例。测试用例的组织方式通常是根据测试方案的设计层次采用树形结构分类组织。
4 测试方法
4.1 测试系统构成
4.2 单项测试与整体测试
格西烽火软件支持单项测试和整体测试,一次测试一个测试项或者整个测试集。执行的方法是选中需要测试的测试项或者测试集,然后执行激励命令即可。
下面以执行“广播对时”测试项为例说明。
协议数据解析界面
协议激励报告界面
4.3 单次测试与循环测试
格西烽火软件支持单次测试和循环测试,能很好满足各种调试测试和性能测试的需求。执行的方法是选中需要测试的测试项或者测试集,然后执行激励或循环激励命令即可。
4.4 故障注入测试
格西烽火软件支持直接激励和协议激励同时运行,能很好满足各种异常测试和故障注入测试的需求。实现的方法是打开一个直接激励项目,作为故障信息发生器运行,然后再执行协议激励测试,即可测试在有非法信息注入被测电能表的时候,正常的协议命令是否能够正确执行。
4.5 脚本控制测试
格西烽火软件支持协议脚本,能够使用C#、VB、Jscript三种语言控制测试流程,设置和管理通信参数和协议帧数据,调用插件扩展测试功能。
协议脚本能够调用基于Microsoft .NET Framework的托管代码组件扩展测试功能,使用插件非常方便,只要把编译好的组件拷贝到Plugins目录中,就可以直接在脚本的函数中调用插件所提供的公共服务。
例如,广播对时命令,使用脚本获取系统时间,赋给时间字段。