一种基于脚本的继电保护装置图形开发方法

文档序号:6619885阅读:214来源:国知局
一种基于脚本的继电保护装置图形开发方法
【专利摘要】本发明涉及一种基于脚本的继电保护装置图形开发方法,包括以下步骤:S01,定义差动保护模块功能块、过流保护模块功能块和滤波算法模块功能块,并建立所述功能块相对应的功能块脚本;S02,图形化描述功能块脚本;S03,通过代码信息建立工程树层次关系;S04,工程在线编译;S05,将步骤S04生成的所述可执行文件下载或者烧录到继电器保护装置中。本发明在可视化图形开发中,提供一系列标准的保护、测控、通信和平台等基本的功能块,功能块也就是一系列有具体含义的图元,图元中用脚本语言描述其基本功能,使得发人员编写的程序脱离于硬件的升级,脱离于具体工程的定制化功能,使专业的人做专业的事,提高开发的效率。
【专利说明】—种基于脚本的继电保护装置图形开发方法

【技术领域】
[0001]本发明涉及电力系统继电保护领域保护测控装置图形化开发功能组态的脚本语言定义,特别涉及一种基于脚本的继电保护装置图形开发方法。

【背景技术】
[0002]继电保护装置的开发从最早的电磁式保护装置、晶体管式保护装置、到集成电路和当前的微机保护,功能越来越复杂,系统越来越庞大。随着智能电网的发展与建设和国网公司所发布的一系列标准的实施,继电保护装置相关的通讯、测量、配置、调试等支撑功能也日趋在装置中完善起来,继电保护测控装置的代码量越来越大,装置中使用的CPU越来越多,硬件升级也越来越频繁。CPU核的升级,经常需要面临开发人员开发IDE的改变,开发工程师不得不学习多种开发环境来应对不同的硬件体系。
[0003]另一方面在不同的省网公司,应用场景、用户需求都会存在一些差异,经常需要针对同一型号的装置进行非标版本的程序定制。在海外的工程项目,用户明确的需要根据一些基础的逻辑元件定制搭建复杂的保护或测控元件。这种定制的程序在归档、升级、跟踪及后期维护上带来很大的不方便。研发人员对于非标程序的投入也越来越大。
[0004]目前面临的问题就是如何让开发人员编写的程序脱离于硬件的升级,脱离于具体工程的定制化功能,使专业的人做专业的事,提高开发的效率。开发人员只要根据脚本语言开发出一套标准的逻辑库,通过逻辑库能够搭建出一套保护或测控装置。特定的功能需求可以由工程人员或者用户拖动标准功能块,进行连接搭建逻辑编程实现。


【发明内容】

[0005]本发明实施的目的在于提供一种基于脚本的继电保护装置图形开发方法。在可视化图形开发中,提供了一系列标准的保护、测控、通信和平台等基本的功能块,功能块也就是一系列有具体含义的图元。图元中用脚本语言描述其基本功能。例如差动模块、过流模块、滤波算法等基本模块。
[0006]本发明技术方案如下:
一种基于脚本的继电保护装置图形开发方法,包括以下步骤:
S01,定义继电保护装置的基础元件模块功能块:所述基础元件模块功能块包括差动保护模块、过流保护模块、距离保护模块、采样模块、滤波算法、差值算法、延时元件、事件和录波模块,建立所述基础元件模块功能块相对应的功能块脚本;
功能块脚本通过脚本建立,脚本包括工程对象和继电保护装置的脚本语言的控制结构,工程对象包括装置板卡对象(Board对象)、元件对象(Component)、页面对象(Drawing)、功能块对象(Symbol,即符号对象)、输入对象(Input,功能块的输入变量)、输出对象(Output,功能块的输出变量)、参数对象(Parameter,功能块的参数)和参数组对象(ParameterGrp);这8个对象是根据工程层次,描述脚本所在对象的祖先节点或者对象对应的输入输出参数等节点; 定义继电保护装置的脚本语言的控制结构,控制结构包括循环、判断、变量定义和输出;
S02,图形化描述功能块脚本:将功能块脚本抽象为图元,图元包括图形信息和代码信息;每一个功能块包括include段、init段、new段、Run段、funct1n段,对每个段进行脚本编写,建立所述图元的功能函数;
S03,通过代码信息建立工程树层次关系:工程树层次包括装置、板卡、元件和页面;装置包括若干板卡,板卡包括若干元件,元件设置有页面;此处装置为继电保护装置,板卡为继电保护装置的各个功能的CPU,元件为步骤SOl所述基础元件模块功能块的集成单元,所述页面为元件的图形化表示;
装置层包括若干板卡,依据板卡的CPU型号和操作系统,生成相应格式的可执行程序;每个板卡包括一个主入口程序,根据CPU类型和操作系统类型,生成不同的入口函数;主入口程序构造出板卡的元件,初始化元件,并根据任务调度对元件进行调用;
每一个元件生成一个对应的.c文件和.h文件,每一个元件对应一个struct结构体,struct结构体中的成员变量由元件中页面的连接线名字组成,页面中的每一条连接线对应一个变量名;元件程序中包括了元件INIT函数、元件的NEW函数和元件的RUN函数;INIT函数包括了元件中函数页面的功能块的脚本中的init段;New函数包括了元件中函数页面的功能块的脚本中的init段;RUN段根据元件中的任务调度关系,在不同的任务周期调用元件页面函数;
S04,工程在线编译:完成图形的代码编辑后,根据工程树层次关系和页面图形关系,建立图形化连线生成C代码,生成了对应的C程序的同时,根据板卡的CPU类型和板卡下的MAKE功能块,生成板卡工程的makefile文件,依据各板卡下的makefile文件,并调用相应的编译器,进行编译链接,生成可执行文件;
S05,将步骤S04生成的可执行文件下载或者烧录到继电器保护装置中。
[0007]步骤S02每个页面生成一个函数,函数名为页面名称,页面函数根据页面的拓扑关系图,按照执行的先后关系,解析页面中功能块的Run段和funct1n段的脚本,生成执行语句,每一个页面所有的执行语句包含在一个页面函数中。
[0008]步骤S04中,建立图形化连线生成C代码,具体包括以下步骤:将页面类型分为调度页面、函数页面、配置页面,调度页面用于描述元件中各页面函数的调用关系,函数页面用于图形开发页面,通过拓扑关系生成代码,配置页面用来生成智能变电站继电保护和测控设备的61850模型文件。
[0009]函数页面最终生成的是一个函数,函数的代码的资源来源是页面中功能块的Run段和Funciton段,Run段是一段脚本代码,Funciton段用于描述算法;
函数页面包括拓扑图关系,拓扑图中包括若干起始功能块,通过连接线、中继点与功能块相连,如果拓扑图包括环形图,则引入“负反馈”功能块,在解析时,在负反馈信号功能块处解环,然后生成拓扑关系。
[0010]调度页面包括调度功能块,调度功能块将系统的任务调用划分任务等级,每个任务等级进行挂载任务函数或者元件,将元件或者函数进行链式连接,链式链接的链表中从左到右方向表示任务等级中各函数或者元件的调用先后顺序;
调度页面中包括TaskSchedule功能块和ProcBLock功能块,TaskSchedule包括了 N个任务等级,等级数N根据系统设置,ProcBlock功能块描述挂载在某一个特定任务的函数名称或者元件名称。元件下的页面分别挂载到了 levell-levelN(各个任务等级中)中。每一个ProcBlock功能块的参数名称(Name)表明了对应的图形页面的名称,在元件的New函数中,需要根据任务等级Level分配,将页面函数的调用挂载到对应的系统调度等级链表中。[0011 ] 一个元件仅包括一个主调度功能块。
[0012]本发明有益效果包括:一种基于脚本的继电保护装置图形开发方法,在可视化图形开发中,提供了一系列标准的保护、测控、通信和平台等基本的功能块,功能块也就是一系列有具体含义的图元。图元中用脚本语言描述其基本功能,使得开发人员编写的程序脱离于硬件的升级,脱离于具体工程的定制化功能,使专业的人做专业的事,提高开发的效率。开发人员只要根据脚本语言开发出一套标准的逻辑库,通过逻辑库能够搭建出一套保护或测控装置。特定的功能需求可以由工程人员或者用户拖动标准功能块,进行连接搭建逻辑编程实现,提高了开发效率,复用性强。
[0013]

【专利附图】

【附图说明】
图1为本发明一种基于脚本的继电保护装置图形开发方法流程图;
图2为脚本代码生成的基本模块图;
图3为链表结构示意图。

【具体实施方式】
[0014]为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
[0015]如图1所示,一种基于脚本的继电保护装置图形开发方法,包括以下步骤:
S01,定义继电保护装置的基础元件模块功能块:所述基础元件模块功能块包括差动保护模块、过流保护模块、距离保护模块、采样模块、滤波算法、差值算法、延时元件、事件和录波模块,建立所述基础元件模块功能块相对应的功能块脚本;
功能块脚本通过脚本建立,脚本包括工程对象和继电保护装置的脚本语言的控制结构,工程对象包括装置板卡对象(Board对象)、元件对象(Component)、页面对象(Drawing)、功能块对象(Symbol,即符号对象)、输入对象(Input,功能块的输入变量)、输出对象(Output,功能块的输出变量)、参数对象(Parameter,功能块的参数)和参数组对象(ParameterGrp);这8个对象是根据工程层次,描述脚本所在对象的祖先节点或者对象对应的输入输出参数等节点;
定义继电保护装置的脚本语言的控制结构,控制结构包括循环、判断、变量定义和输出;
逻辑判断语句:
loop:loop循环语句。循环语句Loop, loop的语法为loop (i=0; i<paranum) {},工具以I为步长自动增加。loop语句用来执行功能块参数或者参数组的循坏处理。
[0016]if else:判断语句
If.else语句用来执行功能块的内部的执行代码需要与参数配合的情况。语法为:If O HelseH 变量定义:
变量支持C语言的基本变量类型。同时也支持本脚本定义的全局变量类型,如ThisApplicat1n λThisDrawing、ThisBoard、ThisSymbol输出语句:
Cout? “ # ”〈〈 “ ”
Cont输出语句,对引号中的语句直接输出,若引号中有“# # ”标注的变量,则表明为上文所定义的工程关键字变量,需要进行替换;
语法规则:
每一条语句必须以“;”结束;
输出语句Cout〈〈“ # #”〈〈工程变量;
S02,图形化描述功能块脚本:将功能块脚本抽象为图元,图元包括图形信息和代码信息;每一个功能块包括include段、init段、new段、Run段、funct1n段,对每个段进行脚本编写,建立所述图元的功能函数;
S03,通过代码信息建立工程树层次关系:工程树层次包括装置、板卡、元件和页面;装置包括若干板卡,板卡包括若干元件,元件设置有页面;此处装置为继电保护装置,板卡为继电保护装置的各个功能的CPU,元件为步骤SOl所述基础元件模块功能块的集成单元,所述页面为元件的图形化表示;
装置层包括若干板卡,依据板卡的CPU型号和操作系统,生成相应格式的可执行程序;每个板卡包括一个主入口程序,根据CPU类型和操作系统类型,生成不同的入口函数;主入口程序构造出板卡的元件,初始化元件,并根据任务调度对元件进行调用;
每一个元件生成一个对应的.c文件和.h文件,每一个元件对应一个struct结构体,struct结构体中的成员变量由元件中页面的连接线名字组成,页面中的每一条连接线对应一个变量名;元件程序中包括了元件INIT函数、元件的NEW函数和元件的RUN函数;INIT函数包括了元件中函数页面的功能块的脚本中的init段;New函数包括了元件中函数页面的功能块的脚本中的init段;RUN段根据元件中的任务调度关系,在不同的任务周期调用元件页面函数;
S04,工程在线编译:完成图形的代码编辑后,根据工程树层次关系和页面图形关系,建立图形化连线生成C代码(编译生成C语言代码),生成了对应的C程序的同时,根据板卡的CPU类型和板卡下的MAKE功能块,生成板卡工程的makefile文件,依据各板卡下的makefile文件,并调用相应的编译器,进行编译链接,生成可执行文件;
S05,将步骤S04生成的可执行文件下载或者烧录到继电器保护装置中。
[0017]步骤S02每个页面生成一个函数,函数名为页面名称,页面函数根据页面的拓扑关系图,按照执行的先后关系,解析页面中功能块的Run段和funct1n段的脚本,生成执行语句,每一个页面所有的执行语句包含在一个页面函数中。
[0018]步骤S04中,建立图形化连线生成C代码,具体包括以下步骤:将页面类型分为调度页面、函数页面、配置页面,调度页面用于描述元件中各页面函数的调用关系,函数页面用于图形开发页面,通过拓扑关系生成代码,配置页面用来生成智能变电站继电保护和测控设备的61850模型文件。
[0019]函数页面最终生成的是一个函数,函数的代码的资源来源是页面中功能块的Run段和Funciton段,Run段是一段脚本代码,Funciton段用于描述算法;
函数页面包括拓扑图关系,拓扑图中包括若干起始功能块,通过连接线、中继点与功能块相连,如果拓扑图包括环形图,则引入“负反馈”功能块,在解析时,在负反馈信号功能块处解环,然后生成拓扑关系。
[0020]调度页面包括调度功能块,调度功能块将系统的任务调用划分任务等级,每个任务等级进行挂载任务函数或者元件,将元件或者函数进行链式连接,链式链接的链表中从左到右方向表示任务等级中各函数或者元件的调用先后顺序;
调度页面中包括了 TaskSchedule功能块和ProcBLock功能块,TaskSchedule主要包括了 N (任务等级数目)个任务等级,等级数N根据系统设置,ProcBlock功能块描述挂载在某一个特定任务的函数名称或者元件名称。元件下的页面分别挂载到了 levell-levelN中。每一个ProcBlock功能块的参数Name表明了对应的图形页面的名称,在元件的New函数中,需要根据Level分配,将页面函数的调用挂载到对应的系统调度等级链表中。
[0021]可视化图形开发是过程是搭建工程层次关系,在页面中布局功能块之间的拓扑关系的一个过程。而这个图形化开发的过程最终需要生成可执行的程序下载到保护测控装置中运行。下面将具体描述如何通过图形化连线生成C代码。重点讲解释页面的脚本解析和代码生成。
[0022]如图2所示,可视化的页面类型分为调度页面、函数页面、配置页面。调度页面是描述元件中各页面函数的调用关系,函数页面是图形开发的重点页面,通过拓扑关系生成代码。配置页面主要用来生成智能变电站继电保护和测控设备的61850模型文件,这不属于本专利的范围。下面重点描述函数页面和调度页面。
[0023]函数页面最终生成的是一个函数。函数里的代码的资源来源是页面中功能块的 Run 段和 Funciton, Run 段是一段脚本代码,例如 Output [O].Name= (Input [O].Name&Input [I].Name & Input [2].Name.这段代码描述功能块就是完成一个3元与操作。功能块后面连接线变量的值等于功能块输入的3根连接线变量值的“与”。Funciton段用来描述一段比较复杂的算法。例如傅里叶算法等。脚本中的代码已经包装成了函数体,在即将生成的页面函数中只需要调用函数体。
[0024]函数页面的拓扑图关系解析是一个难点。拓扑图中包括多个起始功能块,采用连接线、中继点和功能块相连,一直到最后的输出功能块。拓扑图若有环形图,则引入“负反馈”功能块。在解析时,在负反馈信号功能块处解环,然后生成拓扑关系。
[0025]调度页面包含有调度功能块,调度功能块将系统的任务调用分为几个任务等级,每个任务等级可以进行挂载多个任务函数或者元件。这些元件或者函数进行链式连接。如图3所示,链表中从左到右方向表示该任务等级中各函数或者元件的调用先后顺序。
[0026]在调度页面中,主要包括了 TaskSchedule功能块和ProcBLock功能块,TaskSchedule主要包括了 N个任务等级,等级数根据系统设置,ProcBlock功能块描述挂载在某一个特定任务的函数名称或者元件名称。元件下的页面都分别挂载到了Ievell-1evelN中。每一个ProcBlock功能块的参数Name表明了对应的图形页面的名称。在元件的New函数中,需要根据Level分配,将页面函数的调用挂载到对应的系统调度等级链表中。
[0027]—个元件只包括一个主调度功能块,例如上图对应的调度生成元件的init函数如下:
void initCONVPR(CONVPR *ap)
{
initVSCP_PR(ap);
initCFP_l (ap);
initCFP_2(ap);
initCFP_3 (ap);
init BDP (ap);
initCFP_OUT( ap );
addTask( I, VSCP_PR, ap);
addTask( 3, CFP_1, ap);
addTask( 3, CFP_2, ap);
addTask( 3, CFP_3, ap);
addTask ( 3,CFP_0UT, ap);
addTask( 3, BDP, ap);
}
以上仅是本发明的优选实施方式,应当指出:对于本【技术领域】的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
【权利要求】
1.一种基于脚本的继电保护装置图形开发方法,其特征在于,包括以下步骤: S01,定义继电保护装置的基础元件模块功能块:所述基础元件模块功能块包括差动保护模块、过流保护模块、距离保护模块、采样模块、滤波算法、差值算法、延时元件、事件和录波模块,建立所述基础元件模块功能块相对应的功能块脚本; 所述功能块脚本通过脚本建立,所述脚本包括工程对象和继电保护装置的脚本语言的控制结构,所述工程对象包括装置板卡对象、元件对象、页面对象、功能块对象、输入对象、输出对象、参数对象和参数组对象;定义继电保护装置的脚本语言的控制结构,所述控制结构包括循环、判断、变量定义和输出; S02,图形化描述功能块脚本:将所述功能块脚本抽象为图元,所述图元包括图形信息和代码信息; S03,通过代码信息建立工程树层次关系:所述工程树层次包括装置、板卡、元件和页面;所述装置包括若干板卡,所述板卡包括若干元件,所述元件设置有页面;所述装置为继电保护装置,所述板卡为继电保护装置的各个功能的CPU,所述元件为步骤SOl所述基础元件模块功能块的集成单元,所述页面为元件的图形化表示; 所述装置层包括若干板卡,依据所述板卡的CPU型号和操作系统,生成相应格式的可执行程序; 所述每个板卡包括一个主入口程序,根据所述CPU类型和操作系统类型,生成不同的入口函数;所述主入口程序构造出所述板卡的元件,初始化所述元件,并根据任务调度对所述元件进行调用; S04,工程在线编译:完成图形的代码编辑后,根据工程树层次关系和页面图形关系,建立图形化连线生成C代码,生成了对应的C程序的同时,根据板卡的CPU类型和板卡下的功能块,生成板卡工程的makefile文件,依据各板卡下的makefile文件,并调用相应的编译器,进行编译链接,生成可执行文件; S05,将步骤S04生成的所述可执行文件下载或者烧录到继电器保护装置中。
2.根据权利要求1所述的一种基于脚本的继电保护装置图形开发方法,其特征在于,步骤S02每一个功能块脚本包括include段、init段、new段、run段、funct1n段,对所述include段、init段、new段、run段、funct1n段进行脚本编写,建立所述图元的功能函数。
3.根据权利要求1所述的一种基于脚本的继电保护装置图形开发方法,其特征在于,步骤S03所述每个页面生成一个函数,函数名为页面名称,页面函数根据页面的拓扑关系图,按照执行的先后关系,解析页面中功能块的run段和funct1n段的脚本,生成执行语句,每一个页面所有的执行语句包含在一个页面函数中。
4.根据权利要求1所述的一种基于脚本的继电保护装置图形开发方法,其特征在于,步骤S03所述每一个元件生成一个对应的.c文件和.h文件,所述每一个元件对应一个结构体,所述结构体中的成员变量由元件中页面的连接线名字组成,页面中的每一条连接线对应一个变量名;元件程序中包括了元件INIT函数、元件的NEW函数和元件的RUN函数;INIT函数包括了元件中函数页面的功能块的脚本中的init段;New函数包括了元件中函数页面的功能块的脚本中的init段;RUN段根据元件中的任务调度关系,在不同的任务周期调用元件页面函数。
5.根据权利要求1所述的一种基于脚本的继电保护装置图形开发方法,其特征在于,步骤S04,建立图形化连线生成C代码,具体包括以下步骤:将页面类型分为调度页面、函数页面、配置页面,所述调度页面用于描述元件中各页面函数的调用关系,所述函数页面用于图形开发页面,通过拓扑关系生成代码,所述配置页面用来生成智能变电站继电保护和测控设备的61850模型文件。
6.根据权利要求5所述的一种基于脚本的继电保护装置图形开发方法,其特征在于,所述函数页面最终生成的是一个函数,所述函数的代码的资源来源是页面中功能块的Run段和Funciton段,Run段是一段脚本代码,Funciton段用于描述算法; 所述函数页面包括拓扑图关系,所述拓扑图中包括若干起始功能块,通过连接线、中继点与功能块相连,如果拓扑图包括环形图,则引入负反馈功能块,在解析时,在负反馈信号功能块处解环,然后生成拓扑关系。
7.根据权利要求5所述的一种基于脚本的继电保护装置图形开发方法,其特征在于,所述调度页面包括调度功能块,调度功能块将系统的任务调用划分任务等级,每个任务等级进行挂载任务函数或者元件,将所述元件或者函数进行链式连接,所述链式链接的链表中从左到右方向表示任务等级中各函数或者元件的调用先后顺序; 所述调度页面包括TaskSchedule功能块和ProcBLock功能块,所述TaskSchedule包括N个任务等级,等级数N根据系统设置,ProcBlock功能块描述挂载在特定任务的函数名称或者元件名称;元件下的页面分别挂载到了 Ievell-1evelN中;每一个ProcBlock功能块的参数名称表明了对应的图形页面的名称,在元件的New函数中,根据任务等级分配,将页面函数的调用挂载到对应的系统调度等级链表中。
8.根据权利要求7所述的一种基于脚本的继电保护装置图形开发方法,其特征在于,所述一个元件包括一个主调度功能块。
【文档编号】G06F9/44GK104133588SQ201410330873
【公开日】2014年11月5日 申请日期:2014年7月11日 优先权日:2014年7月11日
【发明者】饶丹, 李临风, 王军, 樊瑞, 李东妮, 李嘉 申请人:国电南瑞科技股份有限公司, 国电南瑞南京控制系统有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1