管金酉 胡艳茹
(南京国电南自轨道交通工程有限公司,江苏南京 210008)
随着脚本语言Python的发展,让开发变得更快捷和方便,大大缩减了开发的时间,加之智能牵引变电站自动化系统中IEC61850MMS规约的大量使用,传统表型结构的数据库与SCD的树形结构的信息数据无法一一对应,并且需要手动查找相关IED设备的数据点索引,查找相对复杂,不同厂家的ICD文件也有所差异,而且对于数据点的准确性无法保证。对于那些不熟悉IEC61850规约和SCD文件结构的人员更是难上加难。智能变电站自动化系统的后台配置人员、调试人员和现场维护人员迫切需要一个表型结构数据库自动提取SCD信息的方法,提高工作效率,快速、灵活并且正确地配置相关后台相关的数据库。
智能变电站的SCD是可扩展标记语言(标准通用标记语言的子集,Extensible Markup Language,XML)的变电站配置描述语言,能够根据整个变电站自动化系统需求来选择所需要的语言。其中,变电站配置描述语言(Substation Configuration Description Language,SCL)是基于XML语言的形式,在变电站系统中得到了广泛的应用。
ICD是智能电子设备(IED)能力描述文件。综自厂家根据用户需求负责综自系统配置、修订及联调,并最终生成变电站配置SCD。智能变电站SCD模型文件中包含了各个厂家的设备模型、数据信息、通信网络信息等智能变电站全站设备,文件主要由5个部分组成,如图1所示。
图1 SCD模型组成
(1)Header头节点:主要包含制作时的历史版本,包括版本信息、工具软件名称和制作人等。
(2)Substation变电站节点:包含智能变电站电力等级的信息。
(3)Communication通信节点:包含间隔层设备的IP地址和过程层组播地址信息。
(4)IED智能设备节点:变电站模型逻辑节点信息以及IED的实例化相关信息,一个间隔一般包含多个IED。
(5)DataTypeTemplates数据类型模板节点:包含全站各个厂家的IED数据类型模板信息。
数据(DATA)类代表变电站自动化(服务器)设备中有意义的应用信息。DATA实例的一些值可写或者读。采用建立数据集服务可将任意DATA(或DATA的一部分)实例集组成DATA-SET实例,DATA-SET实例可写或者读。
数据集(DATA-SET)是有序的DATA或数据集成员,为了客户的方便,将上述内容组织成单个集合。客户和服务器双边均知道DATA-SET的项目引用的成员和顺序,因此,仅需要传输DATA-SET名和引用的DATA或DataAttribute的当前值,这种能力可有效利用通信带宽。
DATA-SET对于控制模型是非常重要的,例如报告、日志、GOOSE。例如DATA-SET可用于定义DATA或DataAttribute值当其成员之一的值发生变化时传输;可通过配置建立DATA-SET 或通过CreateDataSet服务建立DATA-SET,服务器中的任意DATA或DataAttribute可被一个或多个DATA-SET引用。具有特定功能约束(FC)值的DATA的单个DataAttribute称为功能约束数据属性(FCDA)。功能约束数据属性(FCDA)定义为具有功能约束(FC)值的数据属性的索引。检索DATA 的DataAtribute值时,Reference 参数规定DATA的功能约束数据(FC)、功能约束数据属性(FCDA)。DATA-SET示例如图2所示。
图2 DATA-SET示例
本文提出了一种基于脚本语言针对表型结构数据库自动提取SCD信息的方法,包括基于Python脚本语言的XML文件的处理及索引功能模块、导出规则制定模块和灵活的数据映射文件模块3个功能模块。主要数据流程如图3所示。
图3 表型结构数据库提取SCD文件信息流程
自动提取SCD信息步骤如下:
步骤1:建立一个数据索引的多维数组,该数组包括各类数据点的相关信息。
所述相关信息包括数据类lnClass、数据类型lnType、数据描述desc、数据对象DO 和数据属性DA。
步骤2:从SCD文件中提取数据相关的索引,按照不同的IED设备区分索引顺序,从DataSet的功能约束数据属性FCDA中获取数据的大部分信息。
所述信息包括:数据类lnClass、功能约束fc和数据对象DO。
步骤3:根据上述信息在逻辑设备检索该数据点的数据类型lnType和数据描述desc。
步骤4:根据功能约束fc、数据类型lnType、数据对象DO检索该数据的数据属性DA。
步骤5:组合每个数据点对应的逻辑节点LD、数据类lnClass、功能约束fc、数据对象DO、数据属性DA和数据的描述desc形成每个数据点的数据索引赋值给多维数组,完成导出的准备工作。
SCD文件是智能变电站的核心文件,通过解析SCD文件,得到各IED设备信息、各类设备数据点等。其文件格式是XML,运用Python 脚本语言ElementTree模块处理XML文件,运用Python脚本语言的iter模块和标签比对的方式快速检索。
首先,建立一个数据索引的多维数组,该数组包括各类数据点的相关信息,如:数据类、数据类型、数据描述、数据对象和数据属性等。
然后,从SCD文件中提取数据相关的索引,按照不同的IED设备区分索引顺序,从DataSet的功能约束数据属性中获取数据的大部分信息,如:数据类、功能约束、数据对象等,再根据上述的信息在逻辑设备检索该数据点的数据类型、数据描述。
最后,根据功能约束、数据类型、数据对象检索该数据的数据属性。
组合每个数据点对应的逻辑节点(LD)、数据类、功能约束、数据对象、数据属性和数据的描述等形成每个数据点的数据索引赋值给多维数组,完成导出的准备工作。
导出规则制定模块是针对表型结构的数据库设计的,根据用户的需求自由地制定导出规则,表型结构的数据库的数据点表一般包括:设备定义表、设备类型表、遥信表、遥测表、遥控表、遥脉表、定值表、保护事件表、保护告警表等多个表格,用户可以按照各个IED设备的数据点的属性自由制定规则自动导出数据点至表型结构数据库各类点表中,导出规则可以按照功能约束来制定:如fc=ST的为遥信、fc=SG的为定值、fc=MX为遥测等;也可以根据DateSet对应的描述来制定。规则具有保存读取等功能。
数据映射文件模块是自动生成数据映射文件的模块。数据映射文件是连接表型结构数据库点表和SCD文件数据索引的中间文件,可以配置设备编号、设备类型号、设备名称、各类数据的点号等,具有较强的灵活性。灵活的数据映射文件模块作用在于可直观地看到各个数据点映射索引,可以灵活配置与数据库对应的数据点,方便查找。数据映射如图4所示。
图4 数据映射
针对表型结构数据库自动提取SCD信息的方法,运用Python脚本语言的wxPython图形库设计出主界面,结合Python脚本语言的ElementTree模块和iter模块,针对表型结构数据库自动提取SCD信息,提高了智能牵引变电站自动化系统后台数据库的准确性,提高了配置工作的效率。针对表型结构的数据库,根据用户需求自由制定规则自动导出数据点,减少人工导出的错误并提高效率,既有自动导出的功能,又可以根据用户的需求制定规则。灵活的数据映射文件是根据每个IED设备制定的,映射关系明确,具有易读性和灵活性,同时也符合变电站智能化、自动化的发展需求。