涂 刚,黄瑞莹,胡卓伟,熊小敏,李成豪
(国网江西省电力有限公司新余供电分公司,江西 新余 338000)
SCD文件是智能变电站的核心文件,同时也是运维检修人员掌握变电站结构及状况、进行日常检修与故障消缺的重要工具。在智能变电站的改造、调试、运维等工作中往往需要变更智能变电站SCD文件的信息。目前国内外对SCD文件的管理模式主要以离线分散管理为主,现场SCD文件变动缺少跟踪与记录。文献[1]提出基于CRC码对SCD版本进行差异性研究,利用JavaScript编写构建JSON(JavaS-cript Object Notation,简称JSON)结构,实现不同SCD版本差异性比较。文献[2]采用Schema检验SCD文件是否符合XML基本语法规则,保证SCD文件结构良好、信息完整。目前SCD文件管理缺乏统一的标准,比对效率较低,智能变电站二次回路及相关联的一次设备非可视化,这会增加变电站运行的不可控性,影响运维检修效率。
为了快速发现新旧版本SCD文件的差异,了解新版本 IED(Intelligent Electronic Device,简称 IED)及虚端子信息,需研发SCD文件比对系统,以实现SCD文件的校验、二次虚回路可视化、新旧版本的SCD文件遍历及比对。本文基于哈希(Hash)算法,采用PugiXml解析工具,对新旧版本SCD文件进行比对,并将差异以可视化方式直观显示,确保变电站虚回路信息的完整和一致,提高检修、试验及运维效率,保证智能变电站安全运行。
解析程序运行时,最耗时的是系统对SCD文件的解析和比对过程,其中涉及到大量重复查找,利用哈希算法可提升解析速度。Hash的意思是“散列”,即把任意长度的输入,通过程序算法进行散列,变换成固定长度的输出,该输出就是散列值。哈希算法需要找到数据内容和存放数据的地址映射,通过压缩映射的转换,输出的散列值空间会小于输入的空间,提升利用效率。
本文利用斐波那契(Fibonacci)散列法实现哈希算法,每个指针被包含在数组的成员中,指针的指向是链表头,链表所包含的元素可能为空或者很多。链表中元素的查找方法是根据元素的不同特征,对应分配至不同的列表,找到正确链表就可以找到对应元素。
利用XML文件格式对SCD文件进行描述,目前XML文件的主流解析技术有DOM(Document Object Model,简称 DOM)解析方法和SAX(Simple API for XML,简称SAX)解析方法两种[3]。这两种不同的接口规范均应用较广,但侧重点不一样。DOM解析方法将所有XML文档转化成DOM树,应用程序随时可对XML文档的数据进行访问[4]。SAX解析方法同时对文档进行逐行扫描和解析,SAX方法的效率高且速度快,但不能随时访问SAX数据[5]。系统选用DOM方法加Xpath(XML Path Language,简称Xpath)技术进行解析。Xpath技术可以特定查找与设定条件匹配的节点,为提升程序的运行效率,采用Xpath技术对递归运算进行省略,简化程序。
本文选用DOM解析方法、Xpath技术、标准中间过程文件技术、哈希算法等关键技术。PugiXml的解析速度比TinyXml快,比RapidXml稍慢,但是PugiXml支持Xpath查找技术,所以系统采用PugiXml解析工具。
当变电站规模较大时,SCD文件可能达到几百兆字节。对SCD文件进行比对时,将SCD文件中的IED本侧输入和输出虚端子、两侧虚端子连接关系,链路参数、GOOSE和SV控制块,以及对侧相应的关键信息放到XML文件中,形成中间过程文件,该文件所占内存非常小。与占用大量内存的常规解析方法不同,利用中间过程文件进行SCD文件比对,仅用很小的CPU内存就可以解析大量的元素,从而提升解析效率。基于中间过程文件实现IED虚回路的可视化展示,可提高可视化展示速度,降低对内存和CPU主频的要求。
1)装载SCD文件生成DOM树,同时将元素填充进去,扩展CDATA及PCDATA块。利用XPath技术获取IED列表以及同类型的关键元素及其属性。
2)为哈希表建立数据模板,提高查找关键数据的速度。
3)提取控制块通信参数。
4)依据上一步提取出的通信参数,在IED节点中查找对应的数据集和通道描述、通道的叶子节点等。
5)获取GOOSE、SMV订阅。在Inputs节点中找到装置的GOOSE、SMV订阅的虚端子。
6)按照订阅和发布的关系,查找各设备的关联关系。
比对SCD不同版本的文件时,需要获取装置本侧和对侧的相关文件信息。通过获取智能变电站过程层虚端子的配置信息,可以得到标准的中间过程文件XML,并在CRC、链路及其参数、虚回路3个层次比对XML文件,以可视化方式展现中间过程文件的比对结果,从而准确、有效、直观地展示SCD文件。通过解析SCD文件,将智能装置以及彼此间的虚端子连线图形化,直观展示装置之间的联系;通过二级窗口展示具体的虚端子连线信息、装置MAC地址等信息,以解决智能变电站“看不到,摸不着”的难题,为智能变电站运维及链路问题排查提供一个高效的辅助工具。系统支持装置关联图、单装置信号图、虚端子展示图及对应控制块的MAC地址等展示。同时可进行SCD文件的Schema语法校验及“六统一”“九统一”规则校验,输出比对内容,并提供备份,提升智能变电站SCD文件管理的规范性、一致性、完整性。文件比对的过程如图1所示。
图1 SCD文件比对过程
本文对某智能变电站新旧两个不同版本的SCD文件进行比对分析。将新旧SCD文件导入软件后,进行自动比对,并可视化显示比对结果及差异信息,如图2所示,其中感叹号连接的部分表示存在差异信息的IED。此外,用鼠标单击差异IED设备后自动弹框显示该IED设备差异信息的内容,可选择相应的差异类型进行详细的差异信息展示。
图2 比对结果可视化展示示意图
该系统可视化差异信息展示功能可为检修运维人员提供SCD文件更新的直观信息,可解决以往SCD文件人工比对效率低的问题,一定程度上提高了智能变电站运维检修效率与水平。
本文基于哈希算法,采用PugiXml解析工具,利用标准中对SCD中间过程文件的格式定义,实现了基于中间过程文件的SCD不同版本比对。以可视化方式在CRC、链路及其参数、虚回路3个层次展示比对结果,可快速便捷展示各个SCD版本的差异,提升了SCD文件管理的规范性、直观性、有效性,提高了SCD文件比对效率和SCD文件核对的准确性。