朱 強,姚 峰
(杭州意能軟件有限公司,杭州 310014)
浙江省電力公司于2005年在省電力公司和全省10個地區(qū)電力局建成了圖、數、模一體的2級分布PI實時/歷史數據庫系統(tǒng)平臺(以下簡稱PI系統(tǒng))。該系統(tǒng)陸續(xù)接入了調度數據采集與監(jiān)控(SCADA)系統(tǒng)、電能量系統(tǒng)、設備在線監(jiān)測等大量電力安全生產實時/歷史數據。PI系統(tǒng)作為浙江省電力公司的基礎實時/歷史數據平臺和全省電力信息化基礎平臺,需要建立一整套符合國家標準規(guī)范的數據訪問和數據接入接口,為各類信息化系統(tǒng)提供有力支撐。
DL/T 890能量管理系統(tǒng)應用程序接口是為電力EMS系統(tǒng)編寫的國家電力行業(yè)標準。隨著PI系統(tǒng)應用的逐步深化和推廣,各類應用對數據的時效性提出了更高的要求。采用DL/T 890標準實現PI實時/歷史數據的發(fā)布/訂閱,可以實現PI系統(tǒng)對數據變更的實時發(fā)布,解決長期以來使用的簡單數據查詢方式引起的數據獲取效率低下問題。如何將PI系統(tǒng)與DL/T 890標準有機結合,是PI系統(tǒng)應用深化研究的關鍵任務之一。
HSDA是DL/T 890 CIS接口的一部分,稱作高速數據訪問接口,主要通過發(fā)布/訂閱和同步/異步讀寫方式向用戶高速傳送更新數據。HSDA定義了自己的類體系,作為接口的參數或用于組織和維護信息。HSDA類模型與DL/T 890標準規(guī)定的CIM并不矛盾,應理解成不同的對象組織方式。以下從接口定義、數據模型、發(fā)布/訂閱序列等方面介紹DL/T 890 HSDA接口的實現方式。
HSDA標準接口由DAIS DA接口規(guī)范派生得來,可以與DL/T 890其他接口實現互操作,與其他接口共用對象標識符、屬性名或標識符、類名或標識符。
HSDA包括以下接口定義:服務器和會話接口(IServer,ISession)用于服務連接及用戶會話管理; 瀏覽接口(INode,IItem,IType,IProperty)用于瀏覽HSDA服務內實例化的數據對象(Node);組管理接口(IGroup,IGroup Manager)用于各組的獲取及管理;數據IO接口(IGroupManager,ISimple)用于用戶對數據的訂閱、異步查詢;客戶端接口(ICallback)包括一個回調對象,該對象由客戶端實現,用于傳遞訂閱數據的更新。
DL/T 890明確規(guī)定HSDA接口所傳遞的對象應與其他接口所獲取的相同對象的ResourceID保持一致,用戶可以通過DL/T 890的GDA接口查詢到某一個對象的ResourceID,然后通過HSDA接口訂閱該對象的數據。
HSDA數據訪問模型如圖 1所示。圖中,Node(節(jié)點)用于描述可用HSDA訪問的數據對象;Item(項)用于描述可用HSDA訪問的數據值;Type(類型)用于描述節(jié)點(Node),是元數據;Property(性質)用于描述項(Item),是元數據。
圖1 HSDA數據訪問模型
HSDA接口的視圖既可以是標準規(guī)定的基礎視圖,也可以是用戶自定義視圖,提供了CIM類及屬性的一般映射,從而實現為不同應用提供符合要求的、與電網CIM關聯的結構化數據。
DL/T 890標準為典型化視圖預定義了IECTC 57PhysicalModel(物理模型)、IECTC57ClassModel(類模型)和IECTC57ISModel(事件模型)等3個模型,可作為整個視圖樹形根節(jié)點的一級子樹,也可單獨成樹,這取決于服務器的功能要求。
HSDA 接口采用數據的發(fā)布/訂閱模式,為客戶端提供可訪問數據的發(fā)布和訂閱。該功能可分為服務器發(fā)布以及客戶端訂閱兩個步驟,服務端需要實現可訂閱內容的發(fā)布,接受客戶端訂閱以及根據客戶端訂閱發(fā)送數據的變更等程序邏輯。
用戶通過Group_home方法從遠程會話對象獲取數據訪問接口,并通過該接口的create_group方法創(chuàng)建一個組,這個組為該用戶專用,用戶通過組的create_entries方法訂閱數據。用戶在后期追加訂閱時可再次利用創(chuàng)建的組。
訂閱數據時,用戶通過GroupManager對象的callback方法將回調接口映射傳遞給服務端。當被訂閱數據發(fā)生變化時,服務端使用該回調接口的on_data_change方法將數據發(fā)送給用戶。Callback對象可持續(xù)使用,直至客戶端使用destroy方法銷毀該對象。
HSDA接口的實時數據發(fā)布/訂閱機制可以高效地為客戶端提供其要求的最近的數據變化信息,在減小系統(tǒng)訪問壓力及提高數據可靠性上比常用的數據查詢比對辦法具有更大優(yōu)勢。
DAIS服務器由視圖管理器、訂閱管理和數據管理器3部分組成,分別管理PI測點發(fā)布、訂閱接收和數據更新。圖2是一個典型的基于PI實時/歷史數據庫系統(tǒng)實現的DAIS服務器核心模型。
數據管理器是PI-HSDA接口的核心模塊。在數據管理器中存儲著一份PI數據庫服務器全測點拷貝。
在創(chuàng)建數據管理器時,測點更新模塊讀取預配置的測點對應表,創(chuàng)建數據管理器的快速檢索列表。為便于數據更新和訂閱,應分別根據PI的Point ID和Tag創(chuàng)建多份快速檢索表。數據對象應是唯一的,并可應用于快速檢索表。
測點更新模塊定時刷新測點列表,從PI實時/歷史數據庫系統(tǒng)獲取最新的測點快照數據更新信息,并將數據寫入數據管理器。為了提高數據更新的效率,應使用與PI數據庫系統(tǒng)一致的異常處理機制,在數據歸檔時更新數據管理器的數據。定時刷新時間間隔應可動態(tài)設置。
根據預先定義的視圖發(fā)布方式,視圖管理器將數據管理器中的PI測點組織成不同的PI測點樹,PI測點即DL/T 890 CIM中的Measurement,視圖可訂閱的條目是Measurement的Measurment-Value屬性,Measrement可以根據Group作進一步的分類,以減少單個節(jié)點的Node數量,Group對應PI測點的PointSource(點源)屬性,符合業(yè)務人員日常測點檢索的習慣,也與浙江省電力公司《PI數據庫實時/歷史接入與存儲規(guī)范(試行)》中的規(guī)定相吻合。典型的PI測點視圖組織方式見圖3。
圖3的子節(jié)點是Measurement的屬性,不僅可訂閱實時/歷史數據,還可訂閱PI測點相關的屬性,如單位、上下限等。Mesaurement的label可使用PI的Tag屬性值。
圖2 發(fā)布/訂閱核心模型
圖3 PI測點視圖
視圖管理器在DAIS服務器創(chuàng)建時即開始了它的整個生命周期,在DAIS服務器的整個生命周期內均有效,并且由DAIS負責銷毀。一個好的視圖管理器設計是可以人工干預的,即在整個生命周期內可以通過手動方式進行創(chuàng)建和銷毀。由于視圖管理器只用于發(fā)布可訂閱的PI測點,在創(chuàng)建、銷毀和再創(chuàng)建的過程中并不會涉及過多的現場保護。
訂閱管理器接受用戶的高速數據訪問訂閱,當一個用戶在遠程調用PI-HSDA的訂閱方法時,訂閱管理器即為其創(chuàng)建一個訂閱者對象。
訂閱者對象根據用戶的訂閱信息,在數據管理器中查找是否存在匹配項,如果有,則建立這個對象的引用,并保存到待發(fā)送列表中。訂閱的數據發(fā)送也應設計成定時發(fā)送機制。訂閱管理器序列圖如圖4所示。
圖4 數據訂閱與發(fā)送序列圖
對象的引用是實現高速數據發(fā)送的關鍵,訂閱者只比對訂閱測點的數據更新狀況,與數據管理器的數據更新使用相同的PI測點對象,減少了模塊間的數據發(fā)送等資源消耗,有利于高速訪問的實現。
國家電網公司《海量歷史/實時數據管理平臺典型設計》中明確提出應通過DL/T 890 CIS接口提供實時/歷史數據訪問服務,本文闡述了如何通過PI實時/歷史數據庫系統(tǒng)實現DL/T 890的HSDA接口,可供同行參考。
[1]國家電網公司.海量歷史/實時數據管理平臺典型設計[S].2010.
[2]浙江省電力公司—PI實時/歷史數據庫應用技術導則(試行)[S].2010.
[3]浙江省電力公司—PI實時/歷史數據庫平臺數據接入存儲規(guī)范(試行)[S].2010.
[4]浙江省電力公司—PI實時/歷史數據庫平臺數據訪問規(guī)范(試行)[S].2010.