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