管金酉 胡艷茹
(南京國電南自軌道交通工程有限公司,江蘇南京 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設備制定的,映射關系明確,具有易讀性和靈活性,同時也符合變電站智能化、自動化的發展需求。