智能变电站SCD文件的分布式解析配置方法与流程

文档序号:16069191发布日期:2018-11-24 12:59阅读:967来源:国知局

本发明涉及一种智能变电站scd文件的分布式解析配置方法,应用于智能变电站自动化技术领域。

背景技术

智能变电站配置描述(scd)文件是智能变电站正常运行、日常运维和工程管理的重要依据,通常通过智能站系统配置工具配置生成。随着智能变电站技术的日益成熟,智能站规模的不断扩大,scd文件也逐渐增大,导致其解析和配置工作变得越发困难。

scd文件的解析和处理方式最为常见的有dom和sax方式。sax的解析方式效率和性能较高,能解析大于系统内存的文档;dom方式允许对数据和结构做出更改,自带双向访问和遍历机制,可便捷地实现节点到xml文本的相互转换。但是二者各自都不能完成较大scd文件的解析和配置。

公告号为cn104598628a的专利文献中公开了一种基于sax的智能变电站scd解析方法,主要是采用定义回调函数的方式完成解析工作并展示解析结果,由于sax方式本身不进行数据存储,解析完成后无法进行二次遍历或操作,更无法应用于scd配置功能。

公告号为cn104346474a的专利文献中公开了一种智能变电站scd文件的快速解析方法,主要是采用定位偏移查找字符串进行解析的方法,其适用范围是嵌入式系统,且更倾向于ied部分的解析和提取,无法应用于scd配置功能。

公告号为cn104750825a的专利文献中公开了一种智能变电站scd文件快速解析方法,主要是采用深解析、浅拷贝以及构建全局哈希表从而实现scd文件节点数据查找的方法,抛弃了dom树而另建一个消耗资源较小的树结构,虽然可减少内存消耗但同时也丢失了dom树中深拷贝、节点内容更新、以及节点到字符串文本转换等功能,无法很好地应用于scd的配置功能。



技术实现要素:

本发明提出了一种智能变电站scd文件的分布式解析配置方法,其目的是:以较少的内存开销完成智能变电站scd文件解析和配置功能。

一种智能变电站scd文件的分布式解析配置方法,步骤为:

(1)以sax方式解析scd文件;

(2)由scd文件提取出scd索引dom树;

(3)拆分scd文件的字符串文本成若干个子字符串文本存储到内存中;

(4)建立scd索引dom树与各个子字符串文本的映射表;

(5)根据映射表,查找子字符串文本,通过载入、更新和组合的方式完成解析和配置功能。

作为上述方法的进一步改进,步骤(1)和(2)中,以sax方式载入scd文件,在载入的过程中进行xml格式校验,利用定义sax回调函数方式提取如下节点:header、substation、communication、若干subnetwork、若干ied和datatypetemplates节点,按照scd中规定的顺序生成scd索引dom树。

作为上述方法的进一步改进,以sax方式载入scd文件时,如果是载入一个新建的scd文件,则打开一个基本框架的scd;

xml格式校验时,对于非xml格式的文件拒绝后续步骤操作,直接给出警告提示;

生成scd索引dom树时,创建名称为scl的根节点,依次添加header、substation、communication、若干ied和datatypetemplates节点作为根节点的子节点,添加若干subnetwork节点作为communication的子节点,形成scd索引dom树。

作为上述方法的进一步改进,以查找关键字的方式拆分scd字符串文本为scd头、header段、substation段、communication段、若干ied段、datatypetemplates段和scd尾字符串文本。

具体方法为:

scd头为字符串“<header”之前的内容;

header段为字符串“<header”之后到字符串“</header>”的内容;

substation段为字符串“<substation”之后到字符串“</substation>”的内容;

communication段为字符串“<communication”之后到字符串“</communication>”的内容;

ied段存在若干个,每一个以字符串“<ied”开始到其后第一个“</ied>”结束;

datatypetemplates段为字符串“<datatypetemplates”之后到字符串“</datatypetemplates>”的内容;

scd尾为字符串“</datatypetemplates>”之后的内容。

作为上述方法的进一步改进,所述scd索引dom树中包括如下节点:header、substation、communication、若干ied和datatypetemplates节点;

所述拆分scd字符串文本形成的若干个子字符串文本包括:header段、substation段、communication段、若干ied段和datatypetemplates段;

所述步骤(4)的映射方式为:

将所述scd索引dom树中header节点与header段字符串文本建立对应关系;

将substation节点与substation段字符串文本建立对应关系;

将communication节点与communication段字符串文本建立对应关系;

将若干ied节点分别与若干ied段字符串文本建立一一对应关系;

将datatypetemplates节点与datatypetemplates段字符串文本建立对应关系。

作为上述方法的进一步改进,根据映射表查找所需操作内容对应的子字符串文本,载入该部分子字符串文本形成局部dom树,通过dom修改方式更改局部dom树内容,通过dom机制中节点和文本转换接口实现局部dom树到对应子字符串文本的转换,然后释放掉局部dom树所占用的内存资源,完成该阶段性的一次配置工作;

将各部分字符串文本重新组合成完整的scd字符串文本,提供给sax方式实现schema校验或者保存为scd文件。

作为上述方法的进一步改进,当需要编辑scd某一项配置时,以dom方式解析对应的字符串文本形成关于编辑的局部dom树,修改完成后将关于编辑的局部dom树重新覆盖写回字符串文本并释放掉关于编辑的局部dom树;

当需要查找某一项内容时,以dom方式解析对应的字符串文本形成关于查找的局部dom树,利用dom的遍历机制进行查找,本次查找完成且后续查找不再涉及本字符串文本后释放掉关于查找的局部dom树;

当需要导入icd文件时,将其ied节点本身加入到scd索引dom树的已有ied节点之后,ied段字符串文本加入到新分配的内存空间中并更新映射关系表;载入communication段文本形成关于communication段的局部dom树,将icd中的通信参数添加到关于communication段的局部dom树对应位置后更新communication段文本;载入datatypetemplates段文本形成关于datatypetemplates段的局部dom树,将icd中的数据类型模板添加到关于datatypetemplates段的局部dom树对应位置后更新datatypetemplates段文本,然后释放掉所有局部dom树;

当需要进行schema校验时,将各部分字符串文本重新组合成完整的scd字符串文本,以sax方式对scd字符串文本进行schema校验;

当需要导出cid/ccd文件时,载入communication段文本、对应的ied段文本、虚回路配置所需的外部ied段文本以及datatypetemplates段文本,每部分文本分别生成一个关于cid/ccd导出的局部dom树,完成导出操作后释放掉所有关于cid/ccd导出的局部dom树;

当需要保存scd文件时,更新尚存在的局部dom树到对应部分的字符串文本,重新组合scd字符串文本保存成scd文件。

相对于现有技术,本发明具有以下积极效果:(1)将解析的过程从打开时的全部解析变更为由行为触发的局部解析,即化整为零,在需要查找、校验或存储时重新组合成所需要的内容供使用,即化零为整,从而真正将dom和sax方式的优点相结合,解决在内存资源有限时难以解析和配置较大体积scd文件的难题,有效提高未来大规模智能站配置和调试的效率,有很高的工程实用价值;(2)本发明中,scd文件在内存中通过化整为零再化零为整的方式统一配置,不仅效率高,而且避免了最终合并时可能出现的冲突问题以及schema和工程标准化校验等需要完整scd文件的功能无法实现的问题。

附图说明

图1为本发明实施例的流程示意图。

具体实施方式

下面结合附图详细说明本发明的技术方案:

如图1,一种智能变电站scd文件的分布式解析配置方法,步骤为:

(1)以sax方式载入、解析scd文件,如果是载入一个新建的scd文件,则打开一个基本框架的scd;在载入的过程中进行xml格式校验,对于非xml格式的文件拒绝后续步骤操作,直接给出警告提示;解析scd文件,得到scd字符串文本。

(2)提取出scd索引dom树:以字符串文本的方式读入经过校验的scd文件,利用定义sax回调函数方式提取如下节点(只提取节点本身,不包括子节点):header、substation、communication、若干subnetwork、若干ied和datatypetemplates节点,按照scd中规定的顺序生成scd索引dom树;

生成scd索引dom树时,创建名称为scl的根节点,依次添加header、substation、communication、若干ied和datatypetemplates节点作为根节点的子节点,添加若干subnetwork节点作为communication的子节点,形成scd索引dom树。

(3)拆分scd文件的字符串文本成若干个子字符串文本存储到内存中:以查找关键字的方式拆分scd字符串文本为scd头、header段、substation段、communication段、若干ied段、datatypetemplates段和scd尾字符串文本;具体的:

scd头为字符串“<header”之前的内容;

header段为字符串“<header”之后到字符串“</header>”的内容;

substation段为字符串“<substation”之后到字符串“</substation>”的内容;

communication段为字符串“<communication”之后到字符串“</communication>”的内容;

ied段存在若干个,每一个以字符串“<ied”开始到其后第一个“</ied>”结束;

datatypetemplates段为字符串“<datatypetemplates”之后到字符串“</datatypetemplates>”的内容;

scd尾为字符串“</datatypetemplates>”之后的内容。

(4)建立scd索引dom树与各个子字符串文本的映射表:

将所述scd索引dom树中header节点与header段字符串文本建立对应关系;

将substation节点与substation段字符串文本建立对应关系;

将communication节点与communication段字符串文本建立对应关系;

将若干ied节点分别与若干ied段字符串文本建立一一对应关系;

将datatypetemplates节点与datatypetemplates段字符串文本建立对应关系。

(5)根据映射表,查找子字符串文本,通过载入、更新和组合的方式完成解析和配置功能:根据映射表查找所需操作内容对应的子字符串文本,载入该部分子字符串文本形成局部dom树,通过dom修改方式更改局部dom树内容,通过dom机制中节点和文本转换接口实现局部dom树到对应子字符串文本的转换,然后释放掉局部dom树所占用的内存资源,完成该阶段性的一次配置工作;具体的:

当需要编辑scd某一项配置时,以dom方式解析对应的字符串文本形成关于编辑的局部dom树,修改完成后将关于编辑的局部dom树重新覆盖写回字符串文本并释放掉关于编辑的局部dom树;

当需要查找某一项内容时,以dom方式解析对应的字符串文本形成关于查找的局部dom树,利用dom的遍历机制进行查找,本次查找完成且后续查找不再涉及本字符串文本后释放掉关于查找的局部dom树;

当需要导入icd文件时,将其ied节点本身(不包含子节点)加入到scd索引dom树的已有ied节点之后,ied段字符串文本加入到新分配的内存空间中并更新映射关系表;载入communication段文本形成关于communication段的局部dom树,将icd中的通信参数添加到关于communication段的局部dom树对应位置后更新communication段文本;载入datatypetemplates段文本形成关于datatypetemplates段的局部dom树,将icd中的数据类型模板添加到关于datatypetemplates段的局部dom树对应位置后更新datatypetemplates段文本,然后释放掉所有局部dom树;

当需要进行schema校验时,将各部分字符串文本重新组合成完整的scd字符串文本,以sax方式对scd字符串文本进行schema校验;

当需要导出cid/ccd文件时,载入communication段文本、对应的ied段文本、虚回路配置所需的外部ied段文本以及datatypetemplates段文本,每部分文本分别生成一个关于cid/ccd导出的局部dom树,完成导出操作后释放掉所有关于cid/ccd导出的局部dom树;

将各部分字符串文本重新组合成完整的scd字符串文本,提供给sax方式实现schema校验或者保存为scd文件;当需要保存scd文件时,更新尚存在的局部dom树到对应部分的字符串文本,重新组合scd字符串文本保存成scd文件。

当需要完成其他未列举的解析和配置功能时,可仿照上述的方式实现。

图1中,“更新”指的是从局部dom内存树重新写回对应的字符串文本;“文本载入”指的是从对应的字符串文本利用dom方式解析生成局部的dom内存树;“文本组合”指的是将header段文本,substation段文本等按照先后顺序组合形成完整的scd文本字符串。

在本申请所提供的实施例中,所展示的系统和方法可以通过其它的方式实现。例如,scd索引dom树可以变为全局的索引哈希表,子字符串的划分方式可以更加粗略或细化,局部dom树生成和释放时机可以变更等。对本实施例的多种修改对本领域的专业技术人员来说是很容易的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1