梁 陽 顧葉青 施建華 盧 敏
(1.南瑞集團有限公司(國網(wǎng)電力科學研究院有限公司) 南京 211106)
(2.國網(wǎng)浙江省電力有限公司 杭州 310007)
調(diào)控云平臺建設是國調(diào)中心及各級省調(diào)近年的一項重點工作,通過調(diào)控云平臺電網(wǎng)模型數(shù)據(jù)平臺的建設,實現(xiàn)電網(wǎng)模型數(shù)據(jù)在調(diào)控云端的統(tǒng)一匯集與全局共享。在調(diào)控云平臺建設之前,IEC 61970系列標準提出的公用信息模型(common in?formation model,CIM)[1]在電網(wǎng)建模方面得到廣泛的應用[2~6]。雖然各電網(wǎng)業(yè)務系統(tǒng)及應用均遵照CIM標準,然而對標準的理解及應用需求的偏差,造成各系統(tǒng)分散建模、自成體系,難以做到模型數(shù)據(jù)全局共享及業(yè)務協(xié)同?;贗EC技術標準,文獻[7]對比了CIM/E[8]和CIM/XML[9~10]的差異,并應用CIM/E技術標準提出了基于CIM/E實現(xiàn)模型信息一體化管理的方案,解決了調(diào)度中心之間及調(diào)度中心內(nèi)部各專業(yè)之間的模型信息共享問題。為了解決長期以來橫向上個應用系統(tǒng)間電網(wǎng)模型數(shù)據(jù)結構不統(tǒng)一、缺乏有效關聯(lián),文獻[11]闡述了調(diào)控云的整體架構及調(diào)控云的未來應用展望。在此基礎上,文獻[12]提出了面向調(diào)控云的電力調(diào)度通用數(shù)據(jù)對象結構化設計及應用。文獻[13]提出了基于調(diào)控云的電網(wǎng)模型數(shù)據(jù)管理策略,文獻[14]提出基于調(diào)控云的網(wǎng)絡分析服務架構,文獻[15]提出基于調(diào)控云的電網(wǎng)調(diào)控數(shù)據(jù)信息共享的研究。上述文獻[11~15]為本文提供了基礎研究方法和成果,遺憾的是暫未研究調(diào)控云模型數(shù)據(jù)云平臺中模型數(shù)據(jù)治理的相關工作及探討調(diào)控云模型數(shù)據(jù)與現(xiàn)有調(diào)度系統(tǒng)中模型數(shù)據(jù)之間的關系。目前國調(diào)中心及各級省調(diào)統(tǒng)推部署了調(diào)控云模型維護客戶端,該客戶端支持調(diào)控云的模型手動維護功能,考慮到現(xiàn)有電網(wǎng)模型數(shù)據(jù)量巨大,人工直接在調(diào)控云上從零開始維護模型的工作量難以估算。同時,考慮到現(xiàn)有調(diào)度自動化系統(tǒng)(D5000、OMS)中都擁有各自的電網(wǎng)模型數(shù)據(jù),如果直接在調(diào)控云上維護模型數(shù)據(jù),未來多業(yè)務系統(tǒng)之間的電網(wǎng)模型互聯(lián)互通也是棘手的難題。
為減少重復性工作和提高工作效率,本文設計并實現(xiàn)了面向調(diào)控云的模型數(shù)據(jù)治理系統(tǒng)。本系統(tǒng)秉持“源端分責維護,全局縱橫共享”的原則,按照一定的規(guī)則抽取源端(D5000、OMS)中的電網(wǎng)模型數(shù)據(jù),并利用治理規(guī)則對源端數(shù)據(jù)的參數(shù)進行結構化、規(guī)范化、標準化治理,最后通過匹配、同步將治理后的參數(shù)同步至調(diào)控云模型數(shù)據(jù)云平臺。本系統(tǒng)主要貢獻如下。
1)提供存量數(shù)據(jù)治理功能,提高存量電網(wǎng)模型維護上云的工作效率,保證調(diào)控云的模型數(shù)據(jù)的一致性、完整性和準確性。
2)提供增量數(shù)據(jù)治理功能,自動根據(jù)源端模型增量維護情況分類打標簽,實現(xiàn)常態(tài)化、流程化模型上云。
3)自動建立源端系統(tǒng)與調(diào)控云模型映射關系,從而消除“豎井式”業(yè)務模式和信息“孤島”。
4)提供了友好的系統(tǒng)界面,能夠滿足自動化運維人員日常模型上云工作。
調(diào)控云模型數(shù)據(jù)結構設計堅持唯一性、通用性、擴展性、差異性和一致性五大原則,并通過元數(shù)據(jù)(Meta)、數(shù)據(jù)字典(Dic)的基本方法來管理和實現(xiàn)模型的標準化設計和可擴展需求。其中,元數(shù)據(jù)包括元數(shù)據(jù)對象(MetaObject)、元數(shù)據(jù)表(MetaT?able)、元數(shù)據(jù)表屬性(MetaProperty)和元數(shù)據(jù)表屬性字典(MetaPropertyDic)。元數(shù)據(jù)對象、表和屬性可實現(xiàn)電網(wǎng)模型數(shù)據(jù)結構的可擴展性,即在不改變程序代碼的前提下,實現(xiàn)對象、表或者屬性的新增、修改、生效和失效,同時自動創(chuàng)建(CREATE)和更新(ALTER)模型數(shù)據(jù)物理表結構。元數(shù)據(jù)表屬性字典抽象出電網(wǎng)模型數(shù)據(jù)結構的外鍵約束關系從而保證電網(wǎng)模型數(shù)據(jù)的完整性和一致性。數(shù)據(jù)字典即Key-Value鍵值對,在電網(wǎng)領域可以分為通用類、容器類、發(fā)輸變電設備類等。數(shù)據(jù)字典的建立可以實現(xiàn)電網(wǎng)模型數(shù)據(jù)中屬性值的手動選擇或自動生成進而保證電網(wǎng)模型數(shù)據(jù)的規(guī)范性。
調(diào)控云元數(shù)據(jù)的E-R圖如圖1所示。
圖1 調(diào)控云元數(shù)據(jù)E-R圖
系統(tǒng)采用Java EE架構進行設計開發(fā),按照功能主要分為數(shù)據(jù)抽取,數(shù)據(jù)轉(zhuǎn)換,數(shù)據(jù)匹配,數(shù)據(jù)同步,系統(tǒng)設置五大模塊,框架如圖2所示。
圖2 系統(tǒng)框架圖
數(shù)據(jù)抽取模塊即將保存在源端(D5000、OMS)中的模型數(shù)據(jù)根據(jù)預先梳理好的規(guī)則抽取到待治理臨時庫。數(shù)據(jù)轉(zhuǎn)換模塊即對源端的模型數(shù)據(jù)參數(shù)按照調(diào)控云的模型規(guī)范進行治理,包括參數(shù)的規(guī)范性、設備掛接關系等。數(shù)據(jù)匹配模塊即將OMS與調(diào)控云模型進行名稱完全/模糊匹配,最終由人工確認建立OMS與調(diào)控云的模型映射關系。數(shù)據(jù)同步模塊即將治理完成后的模型數(shù)據(jù)批量導入調(diào)控云標準模型數(shù)據(jù)結構庫中,并生成調(diào)控云的唯一標志ID。系統(tǒng)設置模塊包括抽取規(guī)則、屬性映射關系的配置、治理規(guī)則的配置及同步界面方案配置等。
數(shù)據(jù)抽取結合<<電力調(diào)度通用數(shù)據(jù)對象結構化設計>>,按一定的規(guī)則從數(shù)據(jù)源端抽取模型數(shù)據(jù),抽取范圍為10kV及以上廠站、線路及站內(nèi)關聯(lián)設備,保證調(diào)控云模型與源端實際應用所需的模型數(shù)據(jù)量的一致性,即“定義規(guī)則,確保一致”。
3.1.1 抽取規(guī)則
在電網(wǎng)實際生產(chǎn)環(huán)境下,同一條跨網(wǎng)線路,線路兩端廠站所管轄的自動化運維人員可能會各自建模,這就會導致現(xiàn)有調(diào)度自動化系統(tǒng)中存在部分冗余和垃圾數(shù)據(jù),因此制定抽取規(guī)則對源端的對象數(shù)據(jù)進行篩選顯得尤為重要。同時,由于D5000對象和調(diào)控云對象劃分粒度不同,比如D5000的廠站存于同一張表,交流線路和T接支線存于同一張表而調(diào)控云的對象分類更加細化,每個對象都單獨定義對象表,因此每個調(diào)控云對象都要定義相應的抽取規(guī)則。由于抽取規(guī)則的不確定性,在實際使用過程中經(jīng)常出現(xiàn)規(guī)則的更改或者補充,所以抽取規(guī)則必須支持可配置化。以變電站為例,抽取規(guī)則如下。
D5000源端抽取規(guī)則:廠站分類為{系統(tǒng)變}且所屬應用同時含SCADA、PAS且廠站類型不為{換流站}或者廠站分類為{用戶變}或者廠站類型為{線端連接站};電壓等級為{10kV,20kV,35kV,110kV,220kV,500kV};運行狀態(tài)為{正常投運}。
OMS源端抽取規(guī)則:變電站類型為{公用變,用戶變};變電站性質(zhì)不為{監(jiān)控中心};變電站名稱不為空;運行狀態(tài)為{投運};電壓等級為{10kV,20kV,35kV,110kV,220kV,500kV};所屬上級不為空。
3.1.2 屬性映射
以調(diào)控云<<電力調(diào)度通用數(shù)據(jù)對象結構化設計>>中元數(shù)據(jù)定義的的數(shù)據(jù)結構為基準,建立D5000、調(diào)控云及OMS的設備表屬性的對應關系,保證調(diào)控云模型數(shù)據(jù)的完整性和正確性,即“確定來源,保證質(zhì)量”。
由于調(diào)控云的模型是基于電力調(diào)度通用數(shù)據(jù)對象結構化設計的,而現(xiàn)有調(diào)度自動化系統(tǒng)中的數(shù)據(jù)對象是基于CIM設計,因此系統(tǒng)之間的表結構存在很大的差異,需要建立表結構的屬性映射關系,保證不同系統(tǒng)之間模型數(shù)據(jù)物理含義的一致性,以變電站為例,屬性映射關系如圖3所示。
3.1.3 抽取過程
1)針對存量數(shù)據(jù):對于每一類數(shù)據(jù)對象,一次性全部抽??;
2)針對增量數(shù)據(jù):基于消息觸發(fā)機制,當源端數(shù)據(jù)發(fā)生變化的時候,消息隊列中會增加一條<對象類型,對象ID,對象更新標志(I:插入,U:更新,D:刪除),處理標志位…>的消息記錄,根據(jù)消息隊列實現(xiàn)增量數(shù)據(jù)的抽取及打標簽。
具體算法實現(xiàn)步驟如下:
步驟一:該系統(tǒng)每1min輪詢消息隊列,將查詢到的消息緩存下來,一直輪詢直到5min內(nèi)沒有新增的消息記錄為止,對緩存下來的消息進行多線程處理。首先對消息進行對象類型的分類,將同一個對象類型的消息分組,按不同組分別讀取抽取規(guī)則配置表中配置的抽取規(guī)則,將滿足抽取規(guī)則的數(shù)據(jù)增量抽取到系統(tǒng)內(nèi)存。
步驟二:如果抽取到數(shù)據(jù)則表示該數(shù)據(jù)需要同步到調(diào)控云,再根據(jù)模型映射關系表判斷該對象ID是否有相應的調(diào)控云ID,如果有則判斷參數(shù)是否發(fā)生變更,發(fā)生變更則打“更新”標簽;未發(fā)生變更則不做任何操作并更新消息隊列中的處理標志位為3。如果該對象ID沒有找到相應的調(diào)控云ID,則打“新建”標簽。
步驟三:如果沒有抽取到數(shù)據(jù)則表示該數(shù)據(jù)不需要同步到調(diào)控云,再根據(jù)模型映射關系表判斷該對象ID是否有相應的調(diào)控云ID,如果有則判斷消息中的更新標志是否為D(刪除),是則打“刪除”標簽,否則打“退役”標簽。如果該對象ID沒有找到相應的調(diào)控云ID,則不做任何操作并更新消息隊列中的處理標志位為3。
步驟四:如果抽取的數(shù)據(jù)打了“新建”、“更新”、“退役”標簽,再讀取屬性映射關系配置表,按照屬性映射將抽取過來的數(shù)據(jù)插入到臨時表中。如果該對象ID對應的數(shù)據(jù)成功入庫則更新消息隊列中的處理標志位為1,表示抽取成功。否則為2,表示抽取失敗。
按照預先編制好的數(shù)據(jù)轉(zhuǎn)換規(guī)則,將源端D5000、OMS符合抽取規(guī)則的原始數(shù)據(jù)自動翻譯、轉(zhuǎn)換成符合調(diào)控云數(shù)據(jù)規(guī)范的值,即“定義規(guī)則,程序轉(zhuǎn)換”。
調(diào)控云<<電力調(diào)度通用數(shù)據(jù)對象結構化設計>>中元數(shù)據(jù)表屬性字典(MetaPropertyDic)規(guī)范了數(shù)據(jù)結構的外鍵約束關系,比如變電站的電壓等級(TOP_AC_VOLTAGE_TYPE)引用了通用類數(shù)據(jù)字典(SG_DIC_VOLTAGETYPE),并且在數(shù)據(jù)庫層面加上了強約束關系。因此將源端數(shù)據(jù)轉(zhuǎn)換成符合調(diào)控云字典編碼規(guī)范的值是無法逾越的障礙,否則會因違反強約束關系導致源端數(shù)據(jù)無法同步到調(diào)控云,治理規(guī)則主要包括規(guī)則名稱、規(guī)則作用的對象,規(guī)則作用的表、規(guī)則作用的屬性、規(guī)則轉(zhuǎn)換腳本、規(guī)則引用的JAVA方法,是否啟用,排序等。流
圖4 數(shù)據(jù)轉(zhuǎn)換流程
3.2.1 編制治理規(guī)則
以對象屬性作為最基本的單位,通過規(guī)則編輯器進行規(guī)則的編制,加入到規(guī)則庫中供程序自動轉(zhuǎn)換。通過規(guī)則編制可視化界面,可以方便管理員對規(guī)則進行編制。以變電站為例,治理規(guī)則如下。
1)D5000治理規(guī)則:變電站名稱:截取全路徑名稱中的名稱,比如“華東。徐圩”截取“徐圩”;調(diào)度機構:截取全路徑名稱中的區(qū)域,比如“華東。徐圩”截取“華東”;電壓等級:根據(jù)D5000里的電壓等級中文名轉(zhuǎn)換成調(diào)控云中電壓等級字典編碼;
2)OMS治理規(guī)則:變電站名稱取OMS中的名稱;調(diào)度機構:根據(jù)OMS中的調(diào)度機構轉(zhuǎn)換成調(diào)控云中調(diào)度機構編碼;根據(jù)OMS里的電壓等級中文名轉(zhuǎn)換成調(diào)控云中電壓等級編碼。
3.2.2 數(shù)據(jù)劃分
由于模型數(shù)據(jù)歸屬于不同級別的調(diào)度機構,因此需要對模型數(shù)據(jù)按權限進行劃分,以便不同調(diào)度機構用戶快速識別所屬調(diào)度管轄的模型數(shù)據(jù)并對其進行治理、確認、同步。按照調(diào)控云的設計規(guī)范,使用<<電力調(diào)度通用數(shù)據(jù)對象結構化設計>>中對象的擁有者作為模型數(shù)據(jù)的權限劃分標識屬性。
將D5000的模型數(shù)據(jù)同步至調(diào)控云,系統(tǒng)自動建立兩系統(tǒng)模型映射/匹配關系;將OMS的模型數(shù)據(jù)與調(diào)控云的模型數(shù)據(jù)按照一定規(guī)則進行完全/模糊匹配,匹配結果由自動化運維人員統(tǒng)一確認,確認之后自動建立OMS與調(diào)控云的匹配關系并將OMS參數(shù)同步至調(diào)控云,即“程序匹配,人工確認”。
針對不同的對象,其匹配條件存在一定的差異,比如變電站將調(diào)度機構、電壓等級、名稱作為匹配項而變壓器將所屬變電站、電壓等級、名稱作為匹配項。按照匹配精確度不同,又可以將匹配規(guī)則分為完全匹配、模糊匹配和人工匹配。
1)完全匹配
完全匹配即匹配規(guī)則中的所有匹配項的數(shù)據(jù)完全一樣,則表示完全匹配。
以變電站為例,完全匹配規(guī)則為調(diào)度機構一致;電壓等級一致;變電站名稱一致。
2)模糊匹配
模糊匹配即匹配規(guī)則中的部分匹配項的數(shù)據(jù)存在上下級調(diào)度關系(比如華東分調(diào)和江蘇省調(diào)、江蘇省調(diào)和南京地調(diào))、名稱相似(比如南京電站和南京變)等,則表示模糊匹配。
以變電站為例,模糊匹配規(guī)則為
(1)調(diào)度機構一致或者兩者為上下級關系或者為空;
(2)電壓等級一致或者為空;
(3)變電站名稱一致或者相似。
①同義詞轉(zhuǎn)換:kV、kv、千伏統(tǒng)一轉(zhuǎn)換成kV;
②去除停用詞:變電站、電站、變、站。
3)人工匹配
通過人工確認、手動拖拽的方式,將兩條數(shù)據(jù)強行配對,從而建立不同系統(tǒng)之間的模型映射關系。
由用戶檢查所在調(diào)度管轄范圍內(nèi)的模型數(shù)據(jù),確認無誤之后,將治理后的模型數(shù)據(jù)從臨時表中同步到調(diào)控云正式表,并生成調(diào)控云的唯一標識ID,即:“分責檢查,同步上云”。具體流程步驟為
步驟一:導出Excel,檢查數(shù)據(jù)治理情況,包括正確性、規(guī)范性和完整性;
步驟二:檢查數(shù)據(jù)發(fā)現(xiàn)參數(shù)缺失,則在源端維護;
步驟三:檢查數(shù)據(jù)發(fā)現(xiàn)沒有問題,則同步至調(diào)控云。
流程圖如圖5所示。
圖5 數(shù)據(jù)同步流程
3.4.1 調(diào)控云ID
調(diào)控云模型數(shù)據(jù)以ID編碼作為唯一標識,同一對象的基本信息、靜態(tài)參數(shù)、動態(tài)參數(shù)等信息唯一標識一致。參照<<電力調(diào)度通用數(shù)據(jù)對象結構化設計>>,在同步的過程中為每個設備對象生成全局唯一的ID編碼,ID編碼生成規(guī)則為:對象編碼(4位)+擁有者(6位)+對象隨機序列碼(不同對象的隨機序列碼的長度不同)。
3.4.2 參數(shù)同步及映射關系
將治理之后且符合調(diào)控云規(guī)范的參數(shù)同步(同步界面方案可動態(tài)配置)至調(diào)控云中并自動保存源端ID和調(diào)控云ID的映射關系,為運行數(shù)據(jù)云平臺的建設、云端應用提供基礎數(shù)據(jù)支撐。
為了系統(tǒng)定制方便和部署配置簡單,提供了抽取規(guī)則配置、屬性映射配置、治理規(guī)則配置和同步界面方案配置等界面。管理員通過系統(tǒng)配置模塊為不同現(xiàn)場配置來滿足各個現(xiàn)場的實際需求,盡可能實現(xiàn)通用配置最大化,定制開發(fā)最小化。抽取規(guī)則配置表詳細記錄了源端是哪,源端表與目的端表的映射關系及源端的抽取規(guī)則等配置信息。屬性映射關系配置表詳細記錄了源端模式名、源端表名、源端屬性名、目的端模式名、目的端表名和目的端屬性名等配置信息。治理規(guī)則配置表詳細記錄了對象編碼、治理規(guī)則名稱及治理規(guī)則(JAVA方法或者腳本)等配置信息,每個對象對應多個治理規(guī)則分別負責不同對象屬性參數(shù)值的轉(zhuǎn)換功能。同步界面方案配置表詳細記錄了對象表的哪些屬性可顯示,可編輯等信息。令A={x|x∈RULE_NO=PAGE-19,DISP_STATE=true的 屬 性},B={x|x∈RULE_NO=PAGE-20,DISP_STATE=true的屬性},源端(D5000)數(shù)據(jù)同步時,將A屬性集合的值同步到調(diào)控云。源端(OMS)數(shù)據(jù)同步時,將B-(A∩B)的屬性集合的值同步到調(diào)控云。
目前,調(diào)控云上部署了多個應用,包括模型維護客戶端(ModelClient)和模型數(shù)據(jù)匹配工具(Mod?elMatch),模型維護客戶端主要功能是維護調(diào)控云的模型數(shù)據(jù),模型數(shù)據(jù)匹配工具主要功能是匹配現(xiàn)有調(diào)度系統(tǒng)與調(diào)控云上的模型數(shù)據(jù)。模型數(shù)據(jù)治理系統(tǒng)(ModelGovern)與上述應用系統(tǒng)的功能有效性對比結果如圖6所示,模型維護客戶端僅支持F1功能,模型匹配工具僅支持F4和F5功能,模型數(shù)據(jù)治理系統(tǒng)不僅支持單條及批量數(shù)據(jù)維護上云(F1-F3)功能,同時支持與現(xiàn)有調(diào)度系統(tǒng)的模型數(shù)據(jù)匹配(F4-F5)的功能。
圖6 不同系統(tǒng)之間功能對比
數(shù)據(jù)治理流程如圖7所示。
圖7 模型數(shù)據(jù)治理流程
如圖8所示,展開<模型中心數(shù)據(jù)治理>樹形結構,選擇待治理的數(shù)據(jù)對象,比如“變電站”,右側表格會列出從三區(qū)模型中心按照抽取規(guī)則導入的登錄用戶所在地區(qū)且具備維護權限的待治理設備列表。點擊右側表格上方工具欄的<治理>按鈕,對抽取到的模型數(shù)據(jù)進行批量治理?!爸卫硗瓿伞敝螅c擊右側表格上方工具欄的<導出>按鈕,系統(tǒng)將治理后的結果導出為Excel方便供用戶核對檢查。
如圖9所示,選擇<未同步>標簽頁,勾選需要同步到調(diào)控云的數(shù)據(jù),點擊按鈕<同步>將選中的數(shù)據(jù)同步到調(diào)控云。
如圖10所示,在樹形結構中展開
圖8 數(shù)據(jù)治理頁面
圖9 數(shù)據(jù)同步頁面
圖10 數(shù)據(jù)匹配頁面
如圖11所示,點擊<模型中心>,在樹形結構中選擇一種數(shù)據(jù)對象,比如“變電站”,右側卡片會列出所有當前登錄賬號具備維護權限的新建、更新、刪除、退役的變電站增量數(shù)據(jù)。自動化運維人員進入每一個標簽頁,點擊<同步至調(diào)控云>按鈕,就可以完成將該模型數(shù)據(jù)從模型中心同步至調(diào)控云。實際應用表明該系統(tǒng)滿足自動化運維人員常態(tài)化模型上云工作。
圖11 增量數(shù)據(jù)治理頁面
本文在調(diào)控云建設的大背景下,分析電網(wǎng)模型數(shù)據(jù)云平臺建設需求,設計并實現(xiàn)了面向調(diào)控云的模型數(shù)據(jù)治理系統(tǒng)。該系統(tǒng)設計分為數(shù)據(jù)抽取、數(shù)據(jù)轉(zhuǎn)換、數(shù)據(jù)匹配、數(shù)據(jù)同步、系統(tǒng)設置五大模塊,完成將源端(比如D5000、OMS)的存量和增量的模型數(shù)據(jù)結構化、規(guī)范化、標準化同步到調(diào)控云的功能,并自動建立起源端與調(diào)控云的模型映射關系,為之后從源端定時抽取運行數(shù)據(jù)上云做準備。系統(tǒng)具備一定的通用性,可根據(jù)不同現(xiàn)場的實際需求靈活配置。該系統(tǒng)已經(jīng)部署并運用在全國多家網(wǎng)省公司,運行狀態(tài)良好,支撐了全國多家網(wǎng)省公司的電網(wǎng)模型上調(diào)控云的工作。