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