曹軍 李林 王正陽 崔紅輝



摘要:WebService是當前廣泛應用于WLAN的一種新的系統集成技術,基于SOAP(Simple Object Access Protocol)協議可實現異構環境下的信息交互。IEC61400-25-4是風力系統通信標準,該標準通過WebService通信映射,可以很好解決電力系統中通信平臺以及通信規約繁多,模型多樣化的問題,通過實現異構平臺的數據信息交互,可以極大地提高電力通信的質量與效率。本文通過探討基于嵌入式平臺系統,實現IEC61400-25-4通信服務的WebService映射方法,設計一種新型配電網智能配電終端的通信方式。
Abstract: WebService is a new system integration technology widely used in WLAN. Based on SOAP(Simple Object Access Protocol) Protocol, information interaction in heterogeneous environment can be realized. IEC61400-25-4 is a standard communication of wind power system. Through WebService communication mapping, the standard can well solve the problem of various communication platforms, communication protocols and models in the power system. By realizing data information interaction of heterogeneous platforms, it can greatly improve the quality and efficiency of power communication. This paper discusses the WebService mapping method of IEC61400-25-4 communication service based on embedded platform system, and designs a new communication mode of intelligent distribution terminal of distribution network.
關鍵詞:WebService;Soap;智能配電終端;服務映射
Key words: WebService;Soap;intelligent distribution terminal;service mapping
中圖分類號:TM727;TP277? ? ? ? ? ? ? ? ? ? ? ? ? ? 文獻標識碼:A? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 文章編號:1006-4311(2019)28-0282-06
0? 引言
當前,電力工業迅猛發展,工業生產和人們日常生活對電力的需求量日益增加。文獻[1]提到電力系統變得越來越龐大,如何能有效的管理好,調度好電力系統,電力系統通信是關鍵。但是,文獻[2]提到目前的電力系統通信方式種類繁多,通信的平臺及系統軟件也多種多樣。而且,電力系統中通信的層次結構比較復雜,有終端單元,調度子站,調度主站,變電站系統等[3];通信的信息量大,有遙測、遙信、遙控、遙調四遙功能、故障信息錄波、采樣數據等大量不同類型的數據信息[4]。文獻[5]提出如何能有效的實現龐大復雜的電力通信系統中數據信息共享,高效、快速、簡潔的數據通信,采用合理恰當的通信協議是解決問題的要點。Webservice作為一種系統集成技術,文獻[6]采用一套標準協議SOAP協議實現信息封裝,實現不同信息類型、信息結構的交互,實現通信雙方在Web上互操作性。并且Webservice只提供相關標準和數據封裝方式,并沒有強制用戶使用何種語言,何種平臺,這樣就有效的解決平臺和系統異構問題[7-9]。本文,就是通過討論基于嵌入式的Webservice實現技術,來展望電力系統中的一種新的通信方式基于Webservice的通信服務,并且結合61400-25-4通信服務映射來實現一種新的智能FTU的通信功能。
1? WebService概述及實現方法
WebService,顧名思義就是基于Web的服務。它使用Web(HTTP)方式,接收和響應外部系統的某種請求,從而實現遠程調用。它主要是為了使原來各自孤立的站點之間的信息能夠相互通信、共享而提出的一種接口。WebService所使用的是Internet上統一、開放的標準,如HTTP、XML、SOAP、WSDL等,因此,WebService可以在任何支持這些標準的環境(Windows,Linux)中使用。
從WebService的工作模式上理解的話,它跟普通的Web程序(比如ASP、JSP等)并沒有本質的區別,都是基于HTTP傳輸協議的程序。但是,WebService與普通的Web程序還是有一個重要差別,同時也是進行Webservice編程中需要仔細注意的地方:WebService只采用HTTP POST方式傳輸數據,不使用GET方式。
WebService中所使用的數據均采用XML格式,目前標準的WebService主要采用SOAP協議來實現數據格式封裝,SOAP協議實際上就是一種基于XML編碼規范的文本協議。XML是Web Service平臺中表示數據的基本格式。除了易于建立和易于分析外,XML主要的優點在于它既與平臺無關,又與廠商無關。XML是由萬維網協會(W3C)創建,W3C制定的XML SchemaXSD定義了一套標準的數據類型,并給出了一種語言來擴展這套數據類型。
Web Service平臺需要一套協議來實現分布式應用程序的創建。任何平臺都有它的數據表示方法和類型系統。要實現互操作性,Web Service平臺必須提供一套標準的類型系統,用于溝通不同平臺、編程語言和組件模型中的不同類型系統。目前這些協議有:XML和XSD。
Web Service平臺是可采用XML作為數據類型系統的。當用某種語言如C/C++,Java,VB. NET或C#來構造一個Web Service時,為了符合Web Service標準,所有使用的數據類型都必須被轉換為XML類型。如想讓它使用在不同平臺和不同軟件的不同組織間傳遞,還需要用某種東西將它包裝起來。這種東西就是一種協議,如SOAP。
不管如何,WebService運行必須有個平臺,即web服務器。WebService和web服務器的關系是:WebService是Web服務器上應用;反過來說,Web服務器是WebService運行時所必需的容器。Web服務器不僅可以是Windows,而且可以是Linux;既可以是龐大的服務器群,又可以是簡單的嵌入式服務器。本文實現的正是基于嵌入式環境下IEC61400-25-4的通信服務WebService的映射。
2? SOAP及GSOAP
SOAP是實現WebService重要的協議,一種輕量級協議,主要用于在分散型、分布式環境中交換結構化信息。SOAP利用XML技術定義一種可擴展的消息處理框架,它提供了一種可通過多種底層協議進行交換的消息結構。這種框架的設計思想是要獨立于任何一種特定的編程模型和其他特定實現的語義。
SOAP定義了一種方法以便將XML消息從A點傳送到B點(如圖1)。為此,它提供了一種基于XML且具有以下特性的消息處理框架:
2.1 可擴張性
在Web中,簡單性總是比效率和純技術更重要,因為互操作性成敗的關鍵,就在于必須絕對要求簡單。SOAP協議實現WebService,提供異構平臺的互操作性,簡單性仍然是主要設計目標之一。因此,SOAP就會缺少分布式系統的很多重要特性(如安全性、路由、可靠性等)。為了解決這個矛盾,SOAP定義了一種開發框架,允許以分層擴展的形式隨時間推移加入這些特性。
2.2 多規約性
SOAP可以在多種傳輸協議(TCP、HTTP、SMTP等)上使用。但是,為了保持互操作性,需要確定一些具體的協議綁定以便通信規則。實際應用中,SOAP規范提供了一種用于定義任意協議綁定的靈活框架,由于Web中HTTP被廣泛大量的使用,所以實際采用的是HTTP協議綁定。
2.3 獨立于編程模型
SOAP允許任何編程模型,并且不依賴于RPC(Request For Comments)。圖1說明了一種簡單的單向消息,其中發送方不會受到相應。圖2中,定義了一種數據信心交互的消息模式,SOAP允許使用任何數量的消息交換模式,請求/響應只是其中一種。其他還包括命令/響應、通知、點對點對話等。
正是具有這三個主要特性,SOAP可以在異構的環境中交換XML消息,實現互操作性。
簡單來說,SOAP可以理解為HTTP+XML+遠程調用規則,因此SOAP消息的處理也分為3個部分:HTTP協議的實現(即特性2,協議的綁定)、XML解析(特性1,可擴展性)、遠程調用規則(特性3,獨立于編程模型)如圖3所示。
客戶端與Web服務器端按照如下步驟進行信息交互:
①客戶端利用SOAP工具按照應用程序要求生成SOAP消息;
②客戶端使用HTTP POST方法通過網絡向服務端發送SOAP請求;
③Web服務端收到HTTP信息后,解包提取SOAP消息;
④啟動XML文檔分析器進行解析,獲取客戶端請求信息;
⑤調用相應的服務程序,并進行SOAP消息封裝;
⑥向客戶端發送HTTP消息相應,完成WebService遠程調用。
SOAP消息是由XML語言組成的,因此對XML的解析式處理SOAP消息的重點,當前常用的XML解析器主要有兩種DOM(Document Object Model)和SAX(Simple API for XML)。因此要實現基于SOAP的WebService必須對SOAP協議和XML進行深入分析,增加了研發工作量,同時對平臺的軟硬件資源要求比較高。采用此方法在嵌入式平臺,實現WebService難度較大。
為此,我們采用一款開源軟件包GSOAP來實現在Linux C平臺上創建一個WebService應用。GSOAP編譯工具提供了一個SOAP/XML關于C/C++語言的實現,從而讓C/C++語言開發Web服務或客戶端程序的工作變動輕松。目前的絕大多數嵌入式開發都是基于C/C++,GSOAP極大的滿足了嵌入式平臺上WebService的要求,GSOAP利用編譯器技術提供了一組簡單的API將用戶從SOAP細節實現工作中解脫出來,可以專注于應用程序的開發。GSOAP編譯器可以集成C/C++代碼,嵌入式系統,其他SOAP程序提供的實時軟件的資源和信息;可以跨越多個操作系統,語言環境。GSOAP的解釋器及導入器可以讓用戶不需要分析Web服務的細節就可以實現一個客戶端或服務端程序。
3? IEC61400-25-4通信服務WebService具體實現
當前的電力系統通信規約繁多,電力設備的結構,信息數據也多種多樣。為了增加不同類型,不同通信規約的電氣設備信息共享和交互,IEC制定了一系列的通信協議來實現電氣設備之間的互操作性,其中最具有代表意義的就是IEC61850。IEC61850通信規約最初目的是為了解決變電站內部一次、二次設備的通信、互操作問題。變電站的電氣設備中一次、二次設備種類較多,各個廠家的通信規約也各有區別。傳統的變電站監控系統中,主要是依靠調動中心的監控或者變電站控制中心。這樣的做法往往會加大網絡數據量,特別是一次、二次設備較多的情況下,容易發生網絡堵塞。而且,在設備發生故障時,繼電保護設備、監控設備之間要協調處理,需要通過主站或調動中心的控制,效率和實施性會大大降低。
正是為了有效的解決變電站系統中存在的這些矛盾,IEC提出了IEC61850通信規約。IEC61850的核心思想就是面向對象,抽象模型方法對電力設備進行模塊化、抽象化,提出了LD(邏輯設備額)、LN(邏輯節點)、CDC(公用數據類)來映射現實世界的物理設備、通用功能、實際數據。IEC61850通信方式采用ACSI(抽象通信服務接口),不規定具體的通信規約,只提供抽象的接口服務。根據變電所的實際情況,IEC61850提出了GOOSE(面向對象變電站通用事件)、MMS(制造報文協議)、SNTP(簡單網絡對時協議)等來實現SCSM(特定通信服務映射)。通過抽象模型及特定通信服務映射,變電站系統的設備之間可實現互操作,并且實現了分布式控制的方式。大大的減輕的變電站系統網絡數據流量,同時增加故障處理的實時性和有效性。
隨著IEC61850的逐步推廣,國內外越來越多的變電站系統采用IEC61850通信規約,實現數字化變電站,促進了電力系統的智能化。同時,IEC61850的外延性也不斷增加,陸續增加了61850-7-410水電站監控模型,61850-7-420分布式新能源模型,并起草61850-7-500,61850-7-510,61850-7-520建模導則。國內很多公司和大學,積極促進IEC61850在配網、新能源、水電系統推廣應用。
IEC委員會順勢推出一系列基于面向對象標準IEC61970,IEC61400-25等。其中IEC61400系列應用于風力發電機組通訊與監測,是61850在風電系統的延伸,同61850一樣采用面向對象的方法,對現實設備,實際功能進行模塊化、抽象化(61400-25-2信心模型,61400-25-3信息交換模型)。通信服務仍然是采用ACSI,具體通信規約采用(SCSM)。與61850有所不同的是,61400-25-4通信服務映射分別為WebService、MMS、OPC XML-DA,104,DNP規約,如圖4。在現在的我國電力系統中,主要采用WebService、MMS和104規約。
三種通信規約服務映射中,映射104通信規約是因為在國內調度主站大多采用104通信規約,這樣可以方便風電系統與調度主站數據通信,但是104規約僅僅實現數據通信,并不能夠完成數據模型通信。體現不出抽象的信息模型,信息交互的內涵,削弱了IEC61400-25-4通信規約的意義。MMS規約在IEC61850中被用來實現各個IED之間通信,采用C/S模式,模型數據采用ASN.1中的BER方式進行二進制方式通信,通信效率高并且可以傳送任何類型的數據模型,正是這些有點,所以在IEC61850中被用來實現SCSM。但是MMS規約也有自身的弱點,規約本身龐大復雜,模型數據傳輸需要進行ASN.1編碼解碼,這樣就造成了MMS應用程序開發量劇增;而且MMS是建立在ISO的OSI七層協議基礎上,目前一般的操作系統是以TCP/IP為主,要在此上實現OSI的七層協議棧需要對于網絡通信協議要進行開發。目前國內的產品開發都是基于思科的MMSLite軟件包的基礎上進行開發的,MMSLite軟件包價格比較昂貴,增加了開發成本。有些是基于Wrishark抓包軟件,進行MMS通信,此方法只適合用于簡單的通信測試,無法在此基礎上進行商業開發的開發。
基于WLAN的WebService,可以說是這兩個軟件的折中。WebService是比較成熟的新技術,開發難度小。模型數據采用XML方式描述封裝,并通過SOAP協議在HTTP上進行發送,HTTP是基于TCP/IP上實現的,非常簡單,并實現了信息結構模型的發送,體現了61400-25-2信息模型。目前,國內的電力系統中,基本上都實現了以太網通信,這恰好就是WebServie實現的網絡平臺。
國家電網公司在配網系統中,提出了一種新型終端設備:智能化FTU。它與普通的FTU區別:是否支持即插即用。要實現FTU的即插即用,必須要實現FTU的自描述,只有這樣,主站或調度中心才能夠自動的識別此FTU,并實現與FTU的通信。過去常用的調度軟件中,101或者104沒有辦法實現自描述,即插即用功能無法實現。故,國家電網公司推薦使用IEC6180通信規約,在IEC61850-6中,用戶可以通過SCL(XML在變電站系統的一種應用)對每個IED設備配置ICD文件,實現對IED設備的自描述,如圖5所示。
智能FTU實現即插即用最重要的步驟是注冊,配電終端加入網絡后,會向配電主站發送注冊信息,信息包括:名字(FTU的唯一標識-編號),描述信息(FTU監測的配網一次設備信息),SCL文件下載地址,SCL版本,心跳時間間隔。通過這些信息并下載SCL文件,配電主站可以識別FTU,并可在配電主站系統里自動的加入FTU,完成注冊。
配電系統的這些智能終端既可以采用數據報告的形式向主站發送實時數據,同時支持主站查詢實時數據。實時數據報告支持帶緩沖的報告和無緩沖報告。雖然101和104在一定的情況下可以實現這種平衡式通信,但是由于它們沒辦法實現自描述,所以不被單獨采納。
④WSDL。
根據需要,將2、3兩部分所將涉及到的信心模型和信息交換(服務)用XML格式完成,最終形成一個WSDL文檔。
⑤GSOAP實現SOAP協議。
我們研發的智能終端單元,硬件平臺采用的是FreeScale基于ARM9的Imax287,軟件平臺是Linux嵌入式操作系統2.6核,可實現多任務。其中SOAP通信為單獨一個線程來完成。
1)通過編寫好的WSDL文檔,生成C頭文件
#/usr/local/gSoap/bin/wsdl2 –c –o FTUHeader.h
http://local/kdjc/service/smart_ftu_wsdl
2)解析FTUHeader.h文件,生成標準C客戶端、服務端文檔
#/usr/local/gSoap/bin/soapcpp2 –c FUTHeader.h
soapStub.h、soapH.h/soapC.c、soapClient.c、soapServer.c、Stdoap2.h、Stdsoap2.c? ews.nsmap、
ews.req.xml、ews.res.xml
3)代碼開發
調用WebService的getdatavalue(WebService的具體調用方式可以參見生成的soapStub.h文件)
#include “soapH.h”
#include “ews.nsmap”
int main(int argc, char**argv)
{
int master_sock, slave_sock;
struct soap? smart_ftu_soap
soap_init(&smart_ftu_soap);
soap_set_namespaces(&smart_ftu_soap, namespaces);
….
master_sock=soap_bind(&smart_ftu_soap,NULL,atoi(argv[1]),100);
slave_scoke=soap_accept(&smart_ftu_soap);
soap_serve(&smart_ftu_soap);//處理遠程調用
soap_end(&smart_ftu_soap);
soap_end(&smart_ftu_soap);
}
int ews_getdatavalue(struct soap *soap, struct? _ews_getdatavalue *request, struct _ews_getdatavalue *response)
{
//具體根據request里的UUID,AssoID,進行數據處理
}其他的service實現都可以采用這種方法,并且在FTUHeader.H定義。這樣就完成了基于嵌入式系統的IEC61400-25-4通信服務WebService實現。
通過客戶端與服務器端的聯調,我們在Imax287的硬件平臺上實現了基于WebService和104通信協議的SmartFTU,達到了國網的技術標準。
4? 結語
將來的電力系統中,智能電網慢慢的會替代當前的電網,不難想象越來越多的智能電力產品會出現在智能電網中,智能繼電保護設備,智能電表,智能終端等。抽象化設計,結構化,模塊化設計,自描述等將會應用于整個電力通信里,所以將WebService應用于電力通信系統中,這會是電力通信今后發展的方向。
由于規約自身設計的因素,傳統的101、102、104無法實現信息模型的交互,不適合未來電力通信的發展要求,會逐漸的別的通信規約所代替。WebService以其簡單、通用、跨平臺并能夠進行模型交互等優點被IEC61850,IEC61400采納作為ACSI的通信服務映射。特別是配電網通信網絡中,WebService更能體現出其優越性。
參考文獻:
[1]孫菁.電力系統通信電源基于IEC61850通信規約的統一監控[J].通訊世界,2019,26(07):174-175.
[2]劉暢,楊浩然,劉志遠,許庚梅,陳曉杰.電力通信網風險及防范措施研究[J].電力設備管理,2019(05):29-30.
[3]郭萌.電力系統通信運行問題及解決措施[J].電子技術與軟件工程,2019(10):21.
[4]李晗.基于SOAP接口協議的光纖分布系統的設計與實現[D].武漢郵電科學研究院,2018.
[5]郭昊坤.電力系統通信技術發展現狀綜述與展望[J].電子元器件與信息技術,2017,1(06):1-6.
[6]曹秀麗.基于SOAP協議的XML跨平臺WebService核心技術研究[J].湖北第二師范學院學報,2015,32(08):36-40.
[7]劉磊.Web Services服務接口安全協議設計與一致性測試方法[D].北京郵電大學,2014.
[8]王迤冉,陳勁松.基于SOAP協議的Web Services安全性研究與實現[J].煤炭技術,2011,30(06):171-173.
[9]萬洪莉,李雨晨,孟憲堯.使用SOAP協議與Web Service通信的研究與實現[J].工業控制計算機,2010,23(09):85-87.