基于libIEC61850開源庫的電力通信可行性分析
引言
智能化是目前世界電力發(fā)展的新趨勢,發(fā)展智能電網(wǎng)已成為世界各國的共識。2009年,國家電網(wǎng)公司在"2009特高壓輸電技術(shù)國際會議"上就提出了名為"堅強智能電網(wǎng)"的發(fā)展規(guī)劃,分為三個階段穩(wěn)步推進,并計劃于2020年全面建成統(tǒng)一的"堅強智能電網(wǎng)"。
為了滿足電力系統(tǒng)自動化的需求,早在2002一2005年之間IECTC57就相繼頒布了IEC61850規(guī)約(第一版)的l4個分冊。該規(guī)約是迄今為止變電站自動化領(lǐng)域最為完善的通信標準,也是未來智能電網(wǎng)發(fā)展的方向。IEC61850采用分層結(jié)構(gòu)、面向?qū)ο蠼5刃录夹g(shù),IEC61850中的抽象通信服務(wù)接口ACSI直接映射到制造報文規(guī)范MMS。目前符合IEC61850標準的智能產(chǎn)品層出不窮,如ABB的615系列,南瑞繼保的pCS系列,許繼的DTM、DBM系列等。各個公司均推出了符合IEC61850的標準庫,以應(yīng)用到具體的IED中,如SISCo公司的MMS一EaseLite以及開源的libIEC61850(C語言)和openIEC61850(Java語言)。
libIEC61850(以下簡稱lib)采用標準C語言編寫,提供了一種基于IEC61850的MMS標準協(xié)議的具體實現(xiàn)。同時支持MMS服務(wù)、GooSE服務(wù)、SV服務(wù)等。libIEC61850符合IEC61850第二版且向下兼容,以其開源、低成本、代碼結(jié)構(gòu)清晰、占用內(nèi)存少、社區(qū)維護快等優(yōu)點而得以推廣使用。
111EC#650與MMS的映射關(guān)系
1.1AES1核心服務(wù)到MMS服務(wù)的映射
1.1.1ACSI服務(wù)
如文獻所述,IEC61850總結(jié)了電力生產(chǎn)過程的特點和要求,在IEC61850-7-2/3/4中,對現(xiàn)實世界變電站進行抽象、歸納,建立了一個分層的、面向?qū)ο蟮臄?shù)據(jù)模型。同時,在通信服務(wù)方面設(shè)計了ACSI,使得數(shù)據(jù)模型和對應(yīng)的服務(wù)獨立于底層通信協(xié)議和網(wǎng)絡(luò)類型,所建的數(shù)據(jù)模型可以更好地適應(yīng)通信技術(shù)的飛速發(fā)展。
ACSI采用虛擬的觀點描述和表示設(shè)備的所有行為,定義了相關(guān)通信服務(wù)、通信對象、通信的參數(shù)。ACSI提供的數(shù)據(jù)模型有服務(wù)器、邏輯設(shè)備、邏輯節(jié)點、數(shù)據(jù)、數(shù)據(jù)集、取代、定值組控制塊、GSE、報告控制塊、時鐘對時、關(guān)聯(lián)等。ACSI通過分離應(yīng)用過程提供特殊通信服務(wù)用以變電站內(nèi)通信,但它僅僅是一個概念性的接口,沒有特定的報文格式和編解碼語法,本身不具備任何通信功能。目前,IEC61850選擇將ACSI映射到應(yīng)用層協(xié)議MMS。
1.1.2MMS服務(wù)及特殊通信服務(wù)映射SCSM
制造報文規(guī)范MMS是國際標準化組織制定的用于工業(yè)控制系統(tǒng)的通信協(xié)議。他通過對實際設(shè)備進行面向?qū)ο蠼5姆椒?實現(xiàn)了網(wǎng)絡(luò)環(huán)境下不同制造商設(shè)備之間的互操作。MMS規(guī)范位于ISo/oSI參考模型的應(yīng)用層,由六部分組成。核心部分是第一部分服務(wù)規(guī)范和第二部分協(xié)議規(guī)范部分,其他屬于伴同規(guī)范。
MMS通信采用客戶端/服務(wù)器模式。服務(wù)器包含VMD及有名變量等,客戶端則可以發(fā)出服務(wù)請求或命令。MMS的通信服務(wù)可以分為帶確認和不帶確認兩種,通信流程如下:
(1)帶確認的服務(wù):1)客戶端發(fā)送一個請求:2)服務(wù)器收到該服務(wù)的指示:3)服務(wù)器執(zhí)行相應(yīng)操作:4)返回操作結(jié)果,肯定響應(yīng)和否定響應(yīng):5)客戶端收到返回的確認信息。
(2)不帶確認的服務(wù):在一定的時間間隔內(nèi),服務(wù)器主動向客戶端上送報告或測量值,這類服務(wù)稱之為非確認服務(wù)。
MMS定義了虛擬制造設(shè)備(VMD)、域(Domain)、變量(Variab1e)、日志(Journa1)、文件(Fi1e)等對象模型。IEC61850標準在映射到MMS時只用到了MMS協(xié)議的一個子集,如VMD、域、有名變量、有名變量列表、文件、日志。
IEC61850對象到MMS對象的映射如表1所示。由表可知,IEC61850與MMS之間并非一一對應(yīng),如邏輯節(jié)點、數(shù)據(jù)、控制塊等均映射到MMS的有名變量。
此外,IEC61850ACSI的服務(wù)與MMS服務(wù)之間也并非一一對應(yīng)。其中多個ACSI服務(wù)可映射到同一個MMS服務(wù),如Read和write服務(wù):而有的ACSI服務(wù)需要映射到多個MMS服務(wù),如GetFi1e服務(wù)。文獻給出了詳細的服務(wù)映射關(guān)系對照表,本文不再贅述。
1.2ASN.1的編解碼
1.2.1編解碼規(guī)則
IEC61850中定義的服務(wù)器、邏輯設(shè)備、邏輯節(jié)點等抽象模型,映射到MMS中的VMD、域、有名變量等對象:ACSI核心服務(wù)映射到Read、write等MMS服務(wù)。而任何一種MMS服務(wù)都需要生成MMSPDU,然后經(jīng)過編碼變成二進制數(shù)據(jù)流,發(fā)送至物理網(wǎng)絡(luò)上。在描述MMSPDU時,描述語言采用ASN.1。ASN.1是抽象語法標記的縮寫,分為語法規(guī)則(如數(shù)據(jù)類型、內(nèi)容順序等)和編碼規(guī)則。提供多種編碼規(guī)則,IEC61850采用的是ASN.1中的基本編碼規(guī)則BER。由于ASN.1描述語言所具有的優(yōu)點,人工編碼和解碼工作變得簡單,也使利用C語言實現(xiàn)編碼和解碼成為可能[5]。
ASN.1的基本編碼規(guī)則BER遵循的格式如圖1所示。
此格式中,Tag描述信息類型,如通用類、應(yīng)用類等:Length代表信息長度:Values則為所包含的內(nèi)容,Values也可以是層次嵌套結(jié)構(gòu)。
BER的編解碼過程是與MMSPDU的層次結(jié)構(gòu)嚴格對應(yīng)的,解碼過程與編碼過程相反。解碼時,先從MMS報文中分離出Tag值,確認描述信息類型:再分離長度值,確定長度:最后解析Value的內(nèi)容,層層遞進。
1.2.2協(xié)議數(shù)據(jù)單元PDU
ASN.1規(guī)范描述的MMSPDU包含14種服務(wù),其數(shù)據(jù)組織結(jié)構(gòu)層層嵌套,最后嵌套至最基本的數(shù)據(jù)類型?,F(xiàn)以Read一Request進行簡要說明。
在圖2所示PDU的描述中,關(guān)鍵字SEoUENCE代表編解碼時該PDU內(nèi)部的成員要按順序排列,而CHIoCE則表示只能在PDU內(nèi)部選擇某一個成員。在每一部分PDU的描述行,第一個字段代表該PDU的名字(如:specificationwithResult、address):第二個字段如""表示Tag值:第三個字段表明其類型,如"Address"表明是地址。分析該PDU描述,可以看出,第一部分中嵌套著第二部分,第二部分又嵌套著第三部分。而對于諸如"objectName"這樣的結(jié)構(gòu)體,仍舊需要用ASN.1規(guī)范進行詳細描述。具體細節(jié)均可在MMS標準的第二部分中查詢。
2IEC61850通信模型的實現(xiàn)
2.1lib相關(guān)簡介
lib是一個開源(GPLv3)實現(xiàn)IEC61850的客戶端和服務(wù)器的庫。采用C語言實現(xiàn),可最大程度地滿足在不同平臺上的移植。它可以在嵌入式操作系統(tǒng)、PC機上實現(xiàn)IEC61850兼容的客戶端和服務(wù)器應(yīng)用程序。該庫包含一系列簡單的例程,開發(fā)人員可在這些例程的基礎(chǔ)上開發(fā)出符合自己項目要求的應(yīng)用程序。該庫實現(xiàn)了IEC61850核心部分的MMS映射。它在TCP/IP上提供了MMS協(xié)議棧以及變電站內(nèi)GooSE的實時數(shù)據(jù)傳輸。lib中的API遵循IEC61850中通信標準,分為客戶端和服務(wù)器兩部分:同時,也提供低級別的MMSAPI以供使用者做后續(xù)開發(fā)。
2.2ASN.1規(guī)范的C語言實現(xiàn)
在lib中,可以將核心文件劃分為三大部分:通信應(yīng)用程序開發(fā)、IEC61850服務(wù)、MMS服務(wù)。MMS服務(wù)部分依據(jù)IEC61850-8-1對MMS一致性的要求,對完整的ISo9506-2進行精簡,并利用C語言實現(xiàn)。該部分提供了IEC61850MMS子集的VMD和對應(yīng)的MMS服務(wù)。核心文件引用結(jié)構(gòu)如圖3所示。
圖3中部分文件提供AP1圖中標記實心圓點的文件),方便調(diào)用。在MMSs一er一e中,包含一些回調(diào)函數(shù),利用回調(diào)函數(shù)提供的句柄可細化其功能,如決定vewi一服務(wù)是控制還是屬性值的設(shè)置。實際IED的功能通過這些回調(diào)函數(shù)實現(xiàn)。圖D中,MMSs一er一ecreate是創(chuàng)建一個MMS服務(wù):參數(shù)1是1so服務(wù),用于服務(wù)器與其他服務(wù)器通信:參數(shù)2(Mmsd一rwc一*)是VME的名稱,指定需要為哪一個VME創(chuàng)建MMS服務(wù)。Mmsd一rwc一是VME的具體定義,包含了VME名稱、域以及有名變量和有名變量列表等,Mmsd一rwc一可將實際IED裝置的IEC61850模型映射到MMS。標準中完整的VME由Mmsd一rwc一和MMSs一er一e組成,后者提供具體的MMS服務(wù)。
2.3MMS服務(wù)到ACSI的實現(xiàn)
IEC61850服務(wù)部分根據(jù)IEC61850-7的數(shù)據(jù)模型建立實際IED的模型,包括靜態(tài)模型和動態(tài)模型,并創(chuàng)建通信服務(wù)接口。該部分代碼提供了ACSI向MMS服務(wù)的映射。核心文件引用結(jié)構(gòu)如圖5所示。
圖5IEC61850服務(wù)部分文件引用關(guān)系
圖6中IEDModel_create創(chuàng)建一個實際IED的靜態(tài)模型,參數(shù)一般為實際IED名稱。IEDs一er一eCreate創(chuàng)建IED的動態(tài)模型,完成IED服務(wù)器的創(chuàng)建過程。而MMSMappwng完成IED模型向MMS的映射,即創(chuàng)建上一節(jié)中的Mmsdwrivece。
上述過程只是實現(xiàn)具體通信服務(wù)底層代碼的搭建。在實際應(yīng)用過程中,可以通過調(diào)用不同文件中的AP1來完成應(yīng)用程序的開發(fā),也可根據(jù)工程要求進行修改完成特定的任務(wù)。
3libIEC61850庫的使用及測試
3.1實驗平臺及工具
硬件平臺:PC機、IED為EG/850-w60x簡稱BF60x)開發(fā)平臺。
軟件工具:AlioraxMLspy、vwe一shaek、TFTPs一er一e、Hyp一eT一emwnal、IEDscoui、Noi一pad++。
PC機上安裝有運行于VMwae一中的Ubuniu嵌入式操作系
統(tǒng)。文獻[7]對BF60x開發(fā)平臺的硬件進行了詳細介紹。TFTPs一er一e用于應(yīng)用程序的下載(至IED),vwe一shaek用于通信報文的截取,其余均為常見軟件。
3.2應(yīng)用程序測試
根據(jù)IEC61850-6中提供的xsE文件以及BF60x平臺的資源,利用xMLspy修改1CE模板,并驗證1CE文件的有效性。BF60x的IED名為"w一dl",邏輯設(shè)備實例為"BF60x"。應(yīng)用程序開發(fā)采用Noi一pad++。應(yīng)用程序的簡要流程如圖7所示。
綜合上述工作,在Ubuniu環(huán)境下,使用編寫好的Jarascewpi將1CE文件轉(zhuǎn)換為與BF60x(IED)模型相關(guān)的文件,包含siaiwcmodl一.h和siaiwcmodel_.c文件。添加模型文件和BF60x相關(guān)的頭文件至應(yīng)用程序文件夾下,執(zhí)行文件夾下的Mak一fwl一文件。將生成的應(yīng)用程序和定值組文件下載至BF60x并執(zhí)行。利用Hyp一eT一emwnal和vwe一shaek完成操作和通信報文的截取,IEDscoui充當客戶端與BF60x進行交互。
IEDscoui客戶端讀取BF60x(IED)平臺模型和動態(tài)監(jiān)測測量數(shù)據(jù)的結(jié)果如圖8所示,圖示中顯示了創(chuàng)建的四個數(shù)據(jù)集及其內(nèi)容,也給出了報告控制塊的數(shù)據(jù)模型,測量數(shù)據(jù)實時更新并周期上送。
圖9是vwe一shaek截獲的MMS不帶確認的服務(wù)報文。截獲的MMS報文中,"unconfwem一d-PEU"表示是不帶確認的服務(wù)。報告包含十個元素,圖中實線框標出部分為數(shù)據(jù)集引用,下方為對應(yīng)的BtR編碼,采用十六進制顯示。