一种GOOSE协议一致性测试方法

申请号 CN201510188664.X 申请日 2015-04-20 公开(公告)号 CN104917646A 公开(公告)日 2015-09-16
申请人 国网四川省电力公司电力科学研究院; 南京五采智电电力科技有限公司; 国家电网公司; 发明人 郑永康; 曹卫国; 常晓青; 刘明忠; 刘战朋; 李鹏; 李建波; 蔡骥然; 丁宣文; 魏博渊; 陈进; 王平; 陈沧杨; 向博; 马敏杰; 黄腾蛟; 何中伟; 刘涛; 周鸿鹄;
摘要 本 发明 公开一种GOOSE协议一致性测试方法,采用一致性测试 软件 进行站控层GOOSE测试和过程层GOOSE测试;如过程层GOOSE测试包括:直接与被测试IED进行MMS通信,获取被测试IED的MMS报文;根据MMS编解码动态库对接收到的MMS报文进行解码;通过一致性测试 硬件 对被测试IED进行GOOSE报文的接收和发送;根据GOOSE编解码动态库对接收到的GOOSE报文进行解码;根据Phython脚本的规则对上述完成解码的MMS报文和GOOSE报文进行判断,获取一致性测试结果。本发明采用MMS报文闭环接收的方式,完整采集和分析被测试IED的GOOSE测试信息,对GOOSE协议进行全面的、系统的测试,有利于发现协议报文中的错误,对保证GOOSE协议在工程现场应用有很重要的意义。
权利要求

1.一种GOOSE协议一致性测试方法,其特征在于,采用一致性测试软件进行站控层GOOSE测试和过程层GOOSE测试;所述过程层GOOSE测试包括:
直接与被测试IED进行MMS通信,获取被测试IED的MMS报文;
根据MMS编解码动态库对接收到的MMS报文进行解码;
通过一致性测试硬件对被测试IED进行GOOSE报文的接收和发送;
根据GOOSE编解码动态库对接收到的GOOSE报文进行解码;
根据Phython脚本的规则对上述完成解码的MMS报文和GOOSE报文进行判断,获取一致性测试结果;
所述站控层GOOSE测试包括:
直接获取被测试IED的MMS报文和GOOSE报文;
根据MMS编解码动态库对MMS报文进行解码;
根据GOOSE编解码动态库对GOOSE报文进行解码;
根据Phython脚本的规则对上述完成解码的MMS报文和GOOSE报文进行判断,获取一致性测试结果。
2.根据权利要求1所述的GOOSE协议一致性测试方法,其特征在于,还包括采用对时源对所述测试软件和被测试IED进行SNTP对时。

说明书全文

一种GOOSE协议一致性测试方法

技术领域

[0001] 本发明涉及电系统二次测试技术领域,具体为一种GOOSE协议一致性测试方法。

背景技术

[0002] 随着智能变电站的推广和应用,GOOSE(Generic Object Oriented Substation Event)通讯技术得到了更加广泛的应用,GOOSE即面向通用对象的变电站事件,是IEC61850标准中用于满足变电站自动化系统快速报文需求的机制。主要用于实现在多IED之间的信息传递,包括传输跳合闸信号(命令),具有高传输成功概率。基于GOOSE网络传输代替传统的硬接线实现开关位置、闭信号和跳闸命令等实时信息的可靠传输(相当于传统保护的开入开出回路)。
[0003] GOOSE采用发布/订阅的消息模式,发布/订阅机制是网络数据的一种分发模型,以支持点对多点传输和支持事件驱动等为其显著特征。当发生任何状态变化时,IED(Intelligent Electronic Device 智能电子设备)将借助变化报告,高速多播一个二进制通用面向对象的变电站事件报告(GOOSE),该报告一般包含有:状态输入、起动和输出元件、继电器等实际和虚拟的每一个双点命令状态。其触发条件是:每次由DATA-SET引用的一个或多个成员值改变就发送GOOSE变化报文。
[0004] 在实际工程中,由于各个厂家对协议标准理解的不一致,实现方法不同,给实际的互操作性带来问题,目前对于GOOSE的测试还主要是简单的功能性验证,如链路通讯是否正常,接收数据是否正常接收等应用检测,具体分析主要存在以下问题:缺少闭环测试,针对保护测控设备的告警目前主要依靠LCD显示作为记录依据,缺少结合MMS来闭环判断GOOSE测试的逻辑;缺少适应国内技术规范的测试方法,目前国际上已有GOOSE的一致性测试但是缺少针对国内相关规范的测试方法;缺少用户可定义的测试方法,目前的测试方法用户无法根据需求自行开发新的测试用例

发明内容

[0005] 针对上述问题本发明的目的在于提供一种解决以往测试只验证功能的实现而忽略协议本身测试问题的GOOSE协议一致性测试方法,技术方案如下:一种GOOSE协议一致性测试方法,采用一致性测试软件进行站控层GOOSE测试和过程层GOOSE测试;所述过程层GOOSE测试包括:
直接与被测试IED进行MMS通信,获取被测试IED的MMS报文;
根据MMS编解码动态库对接收到的MMS报文进行解码;
通过一致性测试硬件对被测试IED进行GOOSE报文的接收和发送;
根据GOOSE编解码动态库对接收到的GOOSE报文进行解码;
根据Phython脚本的规则对上述完成解码的MMS报文和GOOSE报文进行判断,获取一致性测试结果;
所述站控层GOOSE测试包括:
直接获取被测试IED的MMS报文和GOOSE报文;
根据MMS编解码动态库对MMS报文进行解码;
根据GOOSE编解码动态库对GOOSE报文进行解码;
根据Phython脚本的规则对上述完成解码的MMS报文和GOOSE报文进行判断,获取一致性测试结果。
[0006] 进一步的,还包括采用对时源对所述测试软件和被测试IED进行SNTP对时。
[0007] 本发明的有益效果是:本发明采用MMS报文闭环接收的方式,完整采集和分析被测试IED的GOOSE测试信息,对GOOSE协议进行全面的、系统的测试,有利于发现协议报文中的错误,对保证GOOSE协议在工程现场应用有很重要的意义。附图说明
[0008] 图1为本发明GOOSE协议一致性测试方法过程层GOOSE测试平台搭建示意图。
[0009] 图2为本发明GOOSE协议一致性测试方法站控层GOOSE测试平台搭建示意图。
[0010] 图3为本发明GOOSE协议一致性测试方法过程层GOOSE闭环测试方法框图
[0011] 图4为本发明GOOSE协议一致性测试方法站控层GOOSE闭环测试方法框图。

具体实施方式

[0012] 下面结合具体附图和具体实施例对本发明做进一步说明:一种GOOSE协议一致性测试方法,采用一致性测试软件进行站控层GOOSE测试和过程层GOOSE测试。图1为MMS和GOOSE分口的情况,即过程层GOOSE测试的平台搭建示意图,图2为MMS和GOOSE共口情况,即站控层GOOSE测试的平台搭建示意图。
[0013] 过程层GOOSE测试和站控层GOOSE测试分别采用以下两种MMS闭环测试系统:如图3所示,第一种为一致性测试软件(安装在PC机)、一致性测试硬件、被测试IED(即DUT Device Under Test 被测设备)、交换机及对时源组成闭环测试系统:一致性测试软件通过内部协议与硬件进行通信,可以控制测试硬件输出和接收GOOSE,并可将接收GOOSE转送给测试软件;测试软件与被测试IED进行MMS通信,获取IED设备的MMS报告;对时源对测试软件和被测试IED进行SNTP(Simple Network Time protocol简单网络时间协议)对时;测试软件通过测试硬件对DUT进行GOOSE数据的发送和接收,同时将被测试IED的MMS数据接入,从而完成对DUT的闭环测试。
[0014] 如图4所示,第二种为一致性测试软件(安装在PC机)、被测试IED、交换机及对时源组成闭环测试系统:测试软件可以直接通过PC机输出和接收GOOSE;测试软件与被测试IED进行MMS通信,获取被测试IED的MMS报告;对时源对测试软件和被测试IED进行SNTP对时;测试软件通过PC对被测试IED进行GOOSE数据的发送和接收,同时将被测试IED的MMS数据接入,从而完成对DUT的闭环测试。
[0015] 一致性测试软件平台采用跨平台语言和脚本语言的技术,实现测试软件平台,可支持用户自行搭建测试逻辑和测试方法,支持IEC61850-10和国内相关标准规范的测试。并能在测试过程中根据测试用例中设置的条件,自动得出测试结果。采用跨平台语言QT、Phython脚本、动态库DLL三个技术,软件架构设计,具体功能及流程如下:动态库包含MMS编解码动态库,主要用于对MMS通讯的编解码;GOOSE编解码动态库,主要用于对GOOSE通讯的编解码。一方面,解码完成后,由Phython脚本进行规则判断;另一方面,执行Phython脚本发出相应的GOOSE报文。Phython脚本是一种面向对象、解释型计算机程序设计语言,用于完成对测试用例的规则编写。QT是跨平台的C++图形用户界面应用程序框架,实现Phython脚本的编辑和执行。软件测试系统根据Phython脚本的规则判断,给出最终结果。
[0016] 一致性测试系统硬件平台,分析现有数字化继电保护测试仪的特点,采用嵌入式软硬件方案和GOOSE编解码等技术,实现分布式硬件平台。可支持与自动化测试软件平台信息交互, 支持常规开入开出和GOOSE信号的逻辑关联、实时性控制以及信号同步。依据ISO-9506、IEC 61850-8-1完成MMS、GOOSE的编解码。采用MPC5200、BF547、FPGA等分布式嵌入式硬件架构及嵌入式Linux操作系统,多种数字化编解码技术。
[0017] 具体测试方法为:过程层GOOSE测试包括:直接与被测试IED进行MMS通信,获取被测试IED的MMS报文;
根据MMS编解码动态库对接收到的MMS报文进行解码;
通过一致性测试硬件对被测试IED进行GOOSE报文的接收和发送;
根据GOOSE编解码动态库对接收到的GOOSE报文进行解码;
根据Phython脚本的规则对上述完成解码的MMS报文和GOOSE报文进行判断,获取一致性测试结果。
[0018] 站控层GOOSE测试包括:直接获取被测试IED的MMS报文和GOOSE报文;
根据MMS编解码动态库对MMS报文进行解码;
根据GOOSE编解码动态库对GOOSE报文进行解码;
根据Phython脚本的规则对上述完成解码的MMS报文和GOOSE报文进行判断,获取一致性测试结果。
[0019] 其中,通过引入python脚本的方式可使用户自行增加测试用例。用户也可使用脚本语言自行搭建特定逻辑的测试用例,所有的测试用例均可采用Phython脚本进行编写,GOOSE的相关函数也已经通过动态库的封装,用户只需要通过Phython语言调用不同函数即可搭建不同的测试功能。
[0020] 采用本方法还可对GOOSE边界数据进行测试,包括:stNum和sqNum最大值、匹配字符为零、时间或成员数变大变小的情况。
[0021] 以GoS2:GOOSE序号变化更新逻辑检查为例进行说明:GOOSE仿真发送端软件发送GOOSE报文,保持stNum不变,sqNum从max(0xFFFFFFFF)变化到1,DUT应保持GOOSE接收的信号状态。这里对于的sqNum的最大边界值进行测试。
[0022] GOOSE仿真发送端软件发送GOOSE报文,sqNum从max(0xFFFFFFFF)变化到0,同时,stNum递增,DUT的GOOSE状态应随新状态变化。这里对于的stNum的最大边界值进行测试。
QQ群二维码
意见反馈