蘇憲華,徐 迪,熊再豹
(國核電力規劃設計研究院,北京 100094)
基于CORBA技術的特高壓智能變電站通信模式研究
蘇憲華,徐 迪,熊再豹
(國核電力規劃設計研究院,北京 100094)
IEC61850規定智能電子裝置(IED)采用客戶端/服務器模式進行通信。在現有方式下, IED客戶端/服務器通信模式的實現大多采用客戶端與服務器直接相連的兩層體系結構。本文針對此實現方式的不足,根據CORBA組件的基本原理,通過CORBA提供的ORB機制建立了三層體系結構的客戶端/服務器通信模式。在全面遵循IEC61850的體系結構的前提下,結合目前特高壓智能變電站建設的契機,提出了通過構建基于CORBA-MMS的通訊結構體系來實現IEC61850通信的方法,實現特特高壓智能變電站的智能通信。
CORBA;IEC61850;中間件;特高壓;智能變電站。
公共對象請求代理體系結構(Common Object Request Broker Architecture,CORBA)是一種被廣泛使用的組件技術。CORBA提供的對象請求代理(Object Request Broker,ORB)機制是實現客戶端與服務器連接的中間件。通過ORB機制,可以建立一種三層體系結構的客戶端/服務器通信模式。ORB擴展了服務器通信接口的信道容量,當有多個客戶端對服務器發送服務請求時,ORB緩存客戶端服務請求,并為每個客戶端返回一個服務器對象引用,從而實現對多個客戶端的同時響應。
IEC61850通信協議的實現,應以不改變IEC61850的體系結構為前提。因此,本文提出了基于CORBA-MMS的通信體系結構的IEC61850實現方法。該方法利用CORBA提供的ORB機制,建立了基于IEC61850的三層體系結構的客戶端/服務器通信模式。設計了支持并發訪問的ORB模型,使服務器能同時對多個客戶端進行響應。通過構建CORBA-MMS的通訊系統結構,在全面遵循IEC61850的體系結構前提下,實現了CORBA與IEC61850的有機結合。
客戶端需要向服務器發送服務請求時,客戶端通過ORB接口激活服務器在本地的代理,構造請求消息,將請求消息發往服務器。服務器通過ORB接口探測到網絡事件時,將適配并激活相應的事件處理器進行處理。對于網絡連接事件,將建立連接,生成相應處理器,處理來自該網絡連接的事件;對于請求事件,請求事件處理器在讀出請求后,通過對象適配器定位目標服務,然后適配出相應的方法并激活,完成整個請求事件的處理過程;當該連接準備好寫事件時,對應事件處理器將緩沖區中的返回消息送出。
由以上分析可知,ORB是實現客戶端與服務器連接的中間件。ORB對于網絡事件的探測、請求消息的分發和適配以及網絡事件的處理策略決定了CORBA分布計算環境的吞吐率和響應時間。因而,高性能的ORB并發模型是實現IEC61850通信的關鍵。
為了使服務器能夠同時接收多個客戶端的訪問,就必須設計能夠支持并發訪問的ORB模型。ORB并發模型包括通信級并發和請求級并發兩個部分。通信級并發是指ORB如何并發處理多個通信端口的通信問題;請求級并發是指ORB如何并發地調度執行從通信級解析出來的請求。通信級并發和請求級并發有各自不同的并發模式。將通信級并發模式和請求級并發模式進行組合后,可以設計出多種ORB并發模型。其中最常見的ORB并發模型如下:
(1)一個請求派生一個線程(thread-perrequest)模型。通信級使用thread模型,請求級使用THREAD-PER-REQUEST模型。在該并發模式下,ORB為每個對象請求都派生一個線程,來完成請求的處理。這種并發模式使需要較長時間完成服務請求的應用系統共有較高的吞吐率,如對大型數據庫的查詢。但是,當多個客戶請求需要同時處理時,將消耗大量的系統資源。由于創建新線程的開銷具有不確定性,所以該模型不能用于實時環境。
(2)線程池(thread-pool)模型。通信級使用thread模式,請求級使用THREAD-POOL模式。該模型是對第一種模型的優化,通過預先派生一定數目的線程處理所有的請求,預約了所使用的系統資源和避免動態派生線程所帶來的低效。然而,當并發處理的請求超過線程池中的線程數目時,必須將額外的請求放入激活隊列,延遲請求的響應。另外,線程池模型對激活隊列訪問的同步控制和線程執行上下文的切換都將影響系統的吞吐率和響應時間。
(3)一個客戶派生一個線程(thread-perclient)模型。通信級使用thread模型,請求級使用SAME-THREAD模型。在該模型下,ORB為每個客戶派生一個線程,該線程負責處理來自對應客戶的所有請求。這種并發模式節約了系統派生線程所耗費的資源,適合于多客戶端同時訪問,但不利于負載平衡。
通過以上分析可以看出,這幾種并發模型都是為了簡化用戶對通信級和請求級模型的設置而設計的,都有各自的優缺點,但都不能完全滿足IEC61850通信的要求。因而需要利用CORBA提供的ORB并發模型定制機制進行設計以滿足IEC61850的通信要求。其中,一個客戶派生一個線程的并發模型主要是由于不能支持動態負載平衡,而不能適應IEC61850的通信要求。因此,本文在一個客戶派生一個線程的并發模型基礎上,通過在ORB內核中增加一個對客戶連接線程負載進行記錄的監控線程,由該線程記錄每個客戶連接負載的大小,從而實現對每個客戶連接線程負載的動態平衡。其原理見圖2。

圖2 ORB并發模型原理圖
由于一個客戶派生一個線程模型在通信級使用thread模型,在請求級使用SAME THREAD策略,并且對象適配器(POA)在調度線程時會使用同步策略,請求級的多個線程會被同步執行。服務器分別使用單獨的線程用于接收客戶的請求和發送應答。而且有一個獨立的線程專門負責接收到來的連接請求,以便一個服務器可以同時響應多個客戶端的請求。
一個客戶派生一個線程并發模型只允許僅有一個用戶線程處于激活狀態。這意味著即使有很多請求,也可以同時被接收,這些請求的執行是完全串行化的,按照請求發生的時間順序進行。這樣,用戶不需關心任何的線程同步問題。這意味著用戶代碼可以書寫仿佛在使用單線程系統,但不會丟失ORB內部使用多線程優化的優越性。
監控線程對所有的客戶連接線程進行監控,并根據每個線程的ID,對線程信息進行存儲。在確定連接線程的負載大小后,以參數的形式,將連接線程負載大小傳遞給系統。由系統根據具體的情況,為每個連接的客戶端線程分配資源,從而實現連接負載的動態平衡。
例如,在學習人教版三年級英語下冊Unit 3 At the zoo一節,在教授單詞fat、thin時,先出示熊貓的圖片,引出單詞fat,讓學生邊讀邊拼寫,我糾正學生的發音,同時引出它的反義詞thin,讓學生對比記憶。如此,我借助多媒體為學生展示了相關的圖片情景,提供了一個真實的語言環境,進而讓學生主動地進入到英語的學習中,加深學生對單詞的理解、記憶。
IEC 61850在技術上的一個顯著特點就是使用了報文制造規范(MMS),其高層抽象定義最終都映射到底層的報文制造規范(MMS)上去,所以MMS是IEC 61850的基礎之一。在全面遵循IEC61850的體系結構為前提下,本文通過構建CORBA-MMS的通信系統結構,實現了IEC61850通信。
利用CORBA機制來開發程序,關鍵的一步是用接口描述語言(IDL)定義客戶端和服務器端之間的接口。IDL定義的服務在服務器端實現,客戶端依賴接口獲得服務器所提供的服務。因此,利用CORBA實現IEC61850的關鍵是完成IDL對IEC61850信息模型的描述,并形成相應的IDL接口文件。
從CORBA的分布式對象技術特點可知,CORBA可為IEC61850的客戶端/服務器之間的報文通訊規范(MMS)提供一個實現客戶機/服務器報文通訊的機制。將MMS融入CORBA的通訊機制見圖3。

圖3 實時CORBA-MMS體系結構圖
其特點如下:
(1)ORB實現了客戶端程序和服務器間通信的透明性,它屏蔽了服務器的位置、實現方法(編譯語言和操作系統)、狀態(是否正在執行)和通信機制等細節,以及不同實現方法間可能存在的差異。
(2)ORB接口是為了實現使用接口與實現細節的分離而定義了抽象接口,這些接口提供了各種實用函數,如對象引用和字符之間的轉換、為動態調用請求創建參數列表等。
(3)對象適配器位于ORB核心和服務器之間,負責服務對象的注冊、對象引用的創建和解釋、對象實現的服務進程的激活、對象實現的激活以及客戶端程序請求的分發。對象適配器可以使ORB核心盡可能簡單,從而提高ORB核心的穩定性和效率。
(4)MMS-IDL樁為客戶提供了靜態調用接口(Static Invocation Interface, SII)。IDL編譯器編譯描述服務對象接口的MMS規范的IDL文件,生成對應于具體編程語言的MMS-IDL樁和MMS-IDL框架。MMS-IDL樁負責把客戶端程序的請求進行編碼,發送到服務器,并對收到的處理結果進行解釋,把結果或異常信息返回給客戶端程序;MMS-IDL框架對客戶端程序的請求進行譯碼,定位所請求對象的方法,執行該方法并把執行結果或異常信息,編碼后發送給MMS客戶程序的請求。
(5)MMS服務相關聯的PDUs的數據結構的描述,遵循標準的抽象文法——ANS.1語法。
接口的設計過程就是用IDL對IEC61850的數據模型以及相應服務的描述過程。IEC61850標準采用了面向對象的思想來建立IED的通信數據模型,并對此數據模型按層次進行了分類。依次分為:服務器(SERVER)、邏輯設備(LD)、邏輯節點(LN)、數據(DATA)以及數據屬性(DATA_ATTRIBUTE)。其中服務器包含了所有從通信網絡可訪問的數據和服務,并提供IED的外部可視行為。服務器實現了邏輯節點和數據的封裝并提供了供外界訪問的抽象通信服務接口(ACSI)。
ACSI的具體通信服務映射主要在應用層進行,ACSI并不定義具體的ACSI報文。ACSI服務首先通過特定通信服務映射(SCSM)將服務映射為應用層服務,應用層服務通過各層協議將服務映射為一個一個的協議數據單元在網絡上傳輸,而IEC61850標準規定現有特定通信服務映射為報文制造規范(MMS)。
在實現C O R B A-M M S體系結構的IEC61850通信接口設計時,首先要按照MMS服務的ASN.1語法描述客戶端(IEC61850 客戶程序)對服務器(IEC61850服務器)服務請求的PDUs報文格式。然后,在遵循CORBA IDL語法下,將MMS服務的ANS.1報文格式轉換成IDL語言。主要包括了基本數據類型、函數以及服務的轉換。
(1)基本數據的轉換
IEC61850-7-2部分定義了基本數據類型。基本數據類型是構成所有數據類型和模型的基本元素,因此基本數據類型的映射是所有映射的基礎。IDL是一種說明性語言,由IDL可以很容易實現對IEC61850基本數據的描述。
(2)函數的轉換
抽象通信服務接口提供的是一種抽象函數,只有聲明部分。即只是定義了函數的一個框架而沒有定義函數的具體實現。接口函數的定義形式與類的定義十分相似,但是接口函數中沒有成員變量。因此,在接口函數的映射時不需要考慮接口中的方法如何實現。但在對接口函數的實現過程中,必須實現接口函數中的所有方法。IEC61850-8-1部分詳細的描述了IEC61850到MMS相關函數的映射。因而,要完成相關函數的映射,只需用CORBA的IDL將相關函數描述出來即可。
(3) 服務的轉換
IEC61850定義的主要通信服務可歸納為四類服務,這四類服務到CORBA的映射關系見表1。在表1中, IEC61850中定義的請求和單向請求可以通過ORB代理來實現服務;GOOSE狀態變化和采樣值傳輸事件通道則通過CORBA事件服務來實現;在push模式中,事件提供方把時間數據“推”給用戶;在pull模式中,事件用戶把事件數據從提供方“拉”到用戶,從而實現事件提供方和用戶之間的事件數據通信。

表1 IEC61850到CORBA通信機制的映射
本文描述和分析了C O R B A技術和IEC61850的通信原理。在此基礎上,完成了MMS到CORBA的映射。并通過CORBA提供的ORB機制建立了三層體系結構的IEC61850客戶端/服務器,解決了在傳統實現方式下服務器不能同時對多個客戶端進行響應的問題。
改進了原有的一個客戶派生一個線程的ORB并發模型,提出通過構建CORBA-MMS通信體系結構的方式來實現IEC61850。隨著西北電網750kV特高壓智能變電站的興建,本文提出的思想方法可以在特高壓智能變電站建設中起到一定的參考作用。
[1]王濤.基于CORBA的分布式代理模型研究[D].哈爾濱工程大學,2004.
[2]任雁銘,秦立軍,楊奇遜.IEC 61850通信協議體系介紹和分析[J].電力系統自動化,2000,24(8).
[3]項軍,高洪奎,吳泉源.支持多種并發模式的ORB實現模型.計算機工程[J].2000,26(11).
[4]王照,任雁銘,高峰,等.IEC 61850客戶端應用程序的實現.電力系統自動化[J].2005,29(19).
[5]周炳海,王世進,王國龍,奚立峰.基于CORBA_MMS的制造自動化通訊系統設計[J].計算機集成制造系統,2005,(1-1).
[6]項洪印,高會生,杜曉暉.基于工業以太網技術的IEC 61850協議應用分析[J].微計算機信息,2006,(6-3).
Study on Communication Model of EHV-intelligent Substation Based on CORBA Technology
SU Xian-hua, XU Di, XIONG Zai-bao
(State Nuclear Electric Power Planning Design & Research Institute, Beijing 100094, China)
In IEC61850, IEDs should be communicated by client/sever model. Within the present IEDs’ client/server model, the client is mostly directly linked to the server by two-layer system. Aiming at the lacks of the method this paper builds up a three-layer client/server communication system through ORB supplied by CORBA technology.With the constructing of ehv-intelligent substation, and following the IEC61850 system completely, the paper proposes a communicating system based on CORBA-MMS to achieve IEC61850 communicating and thus realize the communication of ehv-intelligent substation.
CORBA; IEC61850; middleware; EHV; intelligent substation.
TM73
B
1671-9913(2011)03-0052-05
2011-04-12
蘇憲華 (1969- ),男,山東人,碩士,高級工程師,主要從事輸變電工程技術管理工作。