摘要:首先說明了當前江蘇省電力系統中各廠家終端產品所采用的通訊規約不完全相同現狀。接著分析了規約插件的設計規范和需要滿足的設計需求,最后設計出解決通訊規約兼容問題的規約插件管理器。該管理器實現對所有規約插件的管理,同時實現和市場中各種電力終端設備數據通訊。
關鍵詞:電能量;信息采集;終端;規約;插件;架構
中圖分類號:TP309.05文獻標識碼:A文章編號:1009-3044(2008)16-21318-02
Architecture Analysis of Electric-Energy Information Collection System Stipulation Plug-in Manage Tool
PAN Gang
(College of Software Engineering Southeast University,Nanjing210096,China)
Abstract:Firstly demonstrate the status that various terminals made in Jiangsu Province use different kinds of communication stipulations. Further more, analysis the design rule and requirement of stipulation plug-in. At last, design Stipulation Plug-in Mange Tool which can solve communication stipulation compatible problem of different factories. This tool can manage all types of stipulation plug-in, moreover communicate with all electric devices on the market.
Key words:Electric-Energy;Information Collection;Terminal;Stipulation;Plug-in;Architecture
1 引言
由于歷史原因,江蘇省電力系統中使用的各廠家終端產品所采用的通訊規約不完全相同,即使是同一廠家的產品,在不同時期使用的通訊規約也有所不同。為了在統一平臺中解決通訊規約兼容問題,通過規約插件方式來實現通訊設備規約的編碼、解碼,因而統一平臺中會存在很多規約插件。
為了使應用層面對設備數據的需求和通訊設備規約無關,在統一平臺中制定了公共數據項,使得系統與具體的通訊設備規約完全脫離。
設計規范需要完全從應用需求出發進行定義,并非按照某一種現有規約的情況特別定制,因此原則上不會對各種規約帶來限制。
為了方便規約插件的管理,同時實現現場終端通訊,同時需要存在一個規約插件管理器。
2 規約插件設計
規約插件設計方案規范定義了開發規約插件的過程、接口定義。目標是規范規約插件的開發。開發的規約插件有:負荷控制規約,電表規約,配變規約,集抄規約,其它可能規約幾種。為了對規約插件開發的理解,首先說明規約插件的體系結構。
規約插件結構上分為三層:規約層、公共數據項表示層、數據轉換層。規約層是各種設備通訊規約自身使用的協議,是貼近于設備的,其內部對編碼、解碼的具體實現與統一平臺沒有直接關系;公共數據項表示層負責外部數據或命令的表示,與具體規約沒有實際關系;數據轉換層用實現統一平臺與設備規約層之間的數據傳遞,即實現統一數據項與規約內部數據項之間的數據轉換。,轉換是雙向的,并且利用了XML格式。層次結構示意如圖1。
2.1 開發語言無關性
使用實現定義接口的方式來屏蔽開發語言區別性。在本次系統開發過程中,主站功能使用.NET開發,規約插件使用C++實現,期間使用XML序列化作為轉接媒介,使用特定借口調和不同語言開發中的差異性。
2.2 規約工作環境
平臺對規約插件的調用依賴于規約工作環境,所謂工作環境是指規約編碼、解碼時依賴的前后調用關系。為了能夠使得規約的內部工作相對簡單,且支持接口的傳遞調用,規約接口定義了兩個至關重要的接口:CreateContext、DestroyContext,專門用來創建、銷毀工作環境。
2.3 內存管理
規約插件內部在需要時自行申請內存,其申請的內存由插件自行管理,在工作環境被銷毀時,所有內部申請的內存資源必須能夠釋放。其內存的申請、釋放與規約插件外部的邏輯調用關系沒有直接關系。
2.4 異常處理
規約插件在被調用過程中,對應出現的任何錯誤,必須返回異常錯誤碼,同時要求對異常錯誤碼能夠有簡單的文字說明。比如:傳入的待編碼數據不合法,規約插件需要做判斷,并返回不合法原因。
2.5 規約數據識別
由于通訊層從終端得到的數據可能由于種種原因,不能夠一次性獲得完整幀,而是短短續續的獲得數據,因而規約插件要求能夠對數據根據特征字識別。外部通訊負責保證數據是按順序正確到達的。規約插件不能夠假定到達的數據一定是完整規約幀,也不能認定一次到達的數據不會包括兩個或以上的完整幀。
2.6 規約插件接口列表
3 規約插件管理器設計
3.1 體系結構說明
規約插件管理器內部層次化處理,包括:命令預處理、規約識別、穿透抄表處理、外部規約管理及調用、通訊機調用、異常處理、結果處理。示意圖如圖2。
圖2 規約插件管理器內部結構
3.2 規約調用流程
規約插件以及規約插件管理器使用的是C++語言開發,為了使系統在C#中開發環境下方便的調用規約插件執行各種動作,在C#中做了一層封裝,用于負責規約插件管理器的調用以及XML格式與公共數據項之間的轉換。
經過封裝后,系統調用簡化為四個步驟,如下:
1)加載,負責加載規約插件管理器(規約插件管理器負責再次加載各種規約插件);
2)命令執行,負責將傳入的命令經過處理后傳入規約插件管理器,由規約插件管理器根據情況調用相關規約插件、執行通訊,如圖3;
3)獲取結果,獲取命令執行結果,并轉換為公共數據項;
4)卸載,負責釋放規約插件、管理器,如圖4。
圖3 規約插件加載,命令執行 圖4 獲取結果,規約插件卸載
3.3 規約調用軟總線說明
規約調用軟總線實現規約管理,包括:規約加載、規約編號識別、接口調用、規約卸載。
規約插件調用時,需要傳入規約編號,軟總線會根據規約編號自動定位相關規約。調用者不需要關心規約的名稱、規約的存放位置等信息。
4 小結
綜上所述,在電能量信息采集一體化平臺中,終端通訊規約是一組相似性比較大,同時差異性在數量也很相當可觀的數據結構。將所有現存的終端通訊規約進行抽象和集群管理是完成電能量信息采集一體化平臺的基礎項目。在考慮了當前可知的通訊規約基礎上,使用接口的方式將未知規約也考慮其中,提高了管理器的支持性和擴展性。同時使用XML格式來解決不同開發語言的差異性,是管理器具有很強的移植性。
參考文獻:
[1] 低壓電力用戶集中抄表系統技術條件[S].國家經濟貿易委員會.DL/T698-1999.
[2] 電力負荷管理系統通用技術條件[S].國家電網公司.(Q/GDW 129-2005).
[3] 國家電網公司十一五營銷發展規劃[S] 國家電網公司 2006.
[4] 電力負荷管理系統功能規范[S].國家電網公司 2004.
[5] 電力負荷管理系統建設與運行管理辦法[S].國家電網公司,2004.
注:本文中所涉及到的圖表、注解、公式等內容請以PDF格式閱讀原文。