杨玉坤,郑春姬
(中国电建集团吉林省电力勘测设计院有限公司,长春 130022)
由于智能变电站二次虚回路体系十分庞大,智能电子设备(IED)种类和数量众多,近年来,依靠智能变电站辅助设计软件来实现二次虚回路设计逐步被各个设计院所认可。IED能力描述(ICD)文件作为IED的数据模型[1-2],包含了十分丰富的信息。对ICD文件进行信息提取和存储,是智能变电站辅助设计软件进行二次虚回路体系信息处理的基础和前提。智能变电站二次系统的设计,应以提高设计质量和设计效率为宗旨;深入研究IEC61850体系,寻求更好的信息处理方法和设计方法,开发出更加完善的辅助设计软件。目前,国内外对ICD信息处理的研究中,对于一些关键性的问题尚未有较完善的方法[3-4];例如,如何更加全面、快速地提取有效信息,更加简洁高效地存储与查询数据。本文就针对以上问题进行研究。
分析ICD文件的结构是信息处理的前提。ICD文件具有典型的树形结构。图1所示为ICD文件的基本结构,其中SCL为变电站配置语言,Header为信息头, Server为服务器, Communication为通信信息, Services为服务, Access Point为访问点,Data Type Template为数据类型模板。
ICD文件中的“IED”节点及其子节点基本包含了智能变电站虚回路设计中所关心的重要数据,“IED”节点的各级子节点以面向对象方法描述了的IED数据模型(见图2)。一个实际的物理装置(IED),可抽象为若干个“逻辑设备(LDevice)”,如保护逻辑设备(PROT)、录波逻辑设备(RCD)等。逻辑设备又可抽象为若干个“逻辑节点(LN)”,如接地距离I段、接地距离Ⅱ段等。逻辑节点又可抽象为若干个“数据对象(DO)”,如保护启动、保护动作等。数据对象又可抽象为若干个“数据属性(DA)”,如A相是否动作等等。
图1 ICD文件的基本结构
图2 IED的分层信息模型
ICD文件中所包含的信息量十分庞大,提取虚回路设计中的相关信息并忽略无用信息是至关重要的问题。智能变电站虚回路设计一般先收集各IED厂家提供的ICD文件(人工设计时通常为Excel表格);再进行虚回路设计,查找某IED的某特定含义的虚端子,找到后记录其虚端子类型、虚端子名称、虚端子数据属性、数据集信息,将两个IED的特定虚端子进行关联,形成虚回路;最后完成所有虚回路设计,输出设计表格或者SCD文件[5]。
在智能变电站虚回路设计过程中,涉及的主要信息包含如下:虚端子输入、输出类型;虚端子名称;虚端子数据属性(引用地址);虚端子所属数据集;IED的厂家、型号、版本。虚端子输入、输出类型为面向通用对象的变电站事件(GOOSE)输入与输出;采样值(SV)输入与输出。虚端子名称:如1号母线隔离开关位置。虚端子数据属性(引用地址):如PIGO/ PTRC2.Tr.general。虚端子所属数据集:如告警信号。
前4类信息可以在ICD文件中的AccessPoint节点及其子节点中解析与提取。由图1可知,Access Point节点是IED节点的子节点,代表IED与站控层、过程层GOOSE、过程层SV网络进行通信的访问点;由其“Name”属性可以区分其所有子节点是属于GOOSE还是SV类型。ICD文件中的LDevice节点充分表达了IED的分层抽象模型。如LDevice节点的基本结构中,“LN”和“LN0”节点代表实例化的逻辑节点LN,“DOI”代表实例化的DO,“DAI”代表实例化的DA。
文献[2]规定了GOOSE输入和SV输入虚端子的逻辑节点的逻辑节点前缀(prefix)属性的关键字前缀,由此可列表1作为虚端子输入、输出类型的区分方法。
智能变电站中IED之间的信息传送是以数据集为发送单位的。在ICD文件中,逻辑节点LN0的每一个子节点DataSet分别代表一个数据集,而DataSet节点的每一个功能约束数据(FCDA)子节点分别代表一个虚端子,FCDA节点的属性标明了虚端子在IED模型中的具体位置,对应关系见表2。
表1 虚端子输入、输出类型的区分方法
注:表中*代表1位数字,#代表0个或多个字符。
表2 FCDA节点与LN的对应关系
通过对数据集DataSet节点的解析,可以提取出所有数据集及其包含的虚端子。文献[2]规定了虚端子数据属性(引用地址)的一般格式为LD/LN.DO(.DA),其分别代表IED模型的4个层次对象,见表3。ICD文件中的LN、DOI、DAI节点的name或者desc属性可以作为虚端子名称。
表3 虚端子数据属性引用内容
IED设备的厂家、型号、版本信息分别可以在ICD文件的IED节点的属性manufacturer、type和configVersion中提取。厂家信息往往是厂家代号,故可以建立厂家代号库以在ICD文件解析时翻译成厂家的名称。综上所述,可以做出ICD文件的解析流程,见图3。
图3 ICD文件的解析流程
智能变电站包含的IED数量很多,IED的分层信息模型包含的信息量也十分庞大;对ICD文件进行的每一次解析都需要较长的运算时间;而在虚回路设计中需要频繁地查询ICD信息。为了高效地存储与查询,可以将收集到ICD文件只进行一次解析,只将有用的信息存储至数据库中;以后进行信息查询时只在数据库中查询,而不再重新解析ICD文件。
变电站虚回路设计中主要涉及两方面的信息,其一是IED信息,其二是虚端子信息,每一个IED包含多个虚端子,是一对多的关系。
关系数据库是目前广泛应用的主流数据库类型,其特点是将信息组织成一组具有相互关联性的表格[6]。ICD文件解析出的两类信息完全可以利用关系数据库来存储;IED信息与虚端子信息的一对多关系可以完整地表达出来,数据库结构及其示例见图4。
图4 数据库结构及其示例
在实际的智能变电站虚回路设计中会出现如下的问题:某厂家某型号的IED会被多次应用至本变电站的其他间隔或者其他后续的工程设计中。为了提高设计效率和质量,可以将先期的ICD文件解析成果及数据复用。然而,实际设计中很难预知厂家此次提供的ICD文件是否和以前设计过的某ICD文件完全一致。
本文提出如下解决方案:在导入ICD文件时,先对解析结果与数据库中已存在的本设备厂家的IED信息进行比较,若它与此厂家的每一个IED信息都不完全相同,则认定为新ICD文件;否则可以认定为已存在ICD文件,即可实现先期设计成果的充分利用(复用)。
在数据库中确认一组数据完全相同的传统方法是对这组数据中每一条记录进行逐一比较;然而,这种方法若用在ICD文件查重中会消耗大量的运算时长,导致效率低下。为了解决此问题,本文采用“笛卡尔积”方法对ICD文件的解析信息进行查重。两个集合X和Y的笛卡尓积表达式为:A×B= {(x,y)|x∈X∧y∈Y}。在数据表中可以由笛卡尓积引申出“全连接”的操作:两个表X和Y的全连接为表X和Y相匹配的数据记录,还包含关联表X和表Y中不匹配的数据记录[6]。例如,在图5表X和Y的全连接示例图中,表X和表Y的全连接的操作结果为表Z,MU为合并单元额定延时。
图5 表X和Y的全连接示例
由图5可知,表X和Y的全连接的结果表中包含两部分内容,第一部分为表的上半部分代表表X和Y相匹配的数据记录,第二部分为表的下半部分代表不相匹配的数据记录。第二部分的特点是存在左半部分或者右半部分为“NULL”的区域。将此操作应用至ICD文件查重时,若ICD甲和ICD乙代表的表的全连接的结果中不包含“NULL”的区域,则代表ICD甲和ICD乙是完全一样的,即表示重复。
ICD文件信息提取程序采用VB.net高级计算机程序设计语言进行开发,采用MySql作为数据库。按照前述方法实现了ICD文件信息提取、信息存储与查询,ICD文件信息处理程序界面见图6。
图6 ICD文件信息处理程序界面
本文通过分析ICD文件结构和IED抽象模型,研究论述了ICD文件信息提取方法及ICD文件信息存储与查询方法;应用本文提出的方法可准确、高效地对ICD文件包含的IED信息进行提取与存储、查询,为智能变电站设计及其辅助软件开发提供良好的基础和前提。