王瑞雪,王開宇,李忠安
(1.南瑞繼保電氣有限公司,江蘇南京211102;2.遼寧省電力有限公司,遼寧沈陽110006)
數(shù)字化變電站工程中,變電站間隔設(shè)備與過程層采集設(shè)備之間以網(wǎng)絡(luò)傳輸方式取代并行電纜連接的SMV通信受到了廣泛關(guān)注,SMV通信主要有IEC 61850-9-1和IEC 61850-9-2 2種格式。文獻[1]和文獻[2]以連接電子式電流互感器合并單元MU裝置為例說明了IEC 61850-9-2采樣值的建模、發(fā)送和接收過程。文獻[3]說明IEC 61850-9-2比IEC 61850-9-1更靈活、完善,除了支持直接映射到數(shù)據(jù)鏈路層的SendSMVMessage服務(wù),還支持直接MMS映射服務(wù)。文獻[4]提到了自主開發(fā)的SMV報文測試與分析軟件。文獻[5]說明OMICRON測試儀器可以配置IEC 61850-9-2模塊發(fā)出IEC 61850-9-2報文用于測試數(shù)字化保護裝置,文獻[6]和文獻[7]說明可以使用WINPCAP軟件包使計算機Windows系統(tǒng)直接發(fā)出GOOSE報文用于數(shù)字化保護設(shè)備測試。目前還未見專門基于Windows平臺通過網(wǎng)卡介質(zhì)直接收發(fā)的IEC61850-9-2數(shù)據(jù)模擬測試收發(fā)軟件的報道。
文中主要使用WinPcap4.0.2版本軟件開發(fā)包設(shè)計了IEC 61850-9-2仿真收發(fā)測試軟件。設(shè)計了5個模塊:MAC嗅探模塊、CID文件讀取模塊、SNTP對時模塊、IEC 61850-9-2報文發(fā)送模塊、IEC 61850-9-2報文接受模塊。該仿真測試軟件在計算機Windows環(huán)境下網(wǎng)卡介質(zhì)上能夠直接發(fā)送和接受符合數(shù)字化變電站裝置要求的IEC 61850-9-2報文,從而方便了數(shù)字化變電站裝置測試人員的相關(guān)測試工作。
WinPcap由Packet.dll、函數(shù)庫Libpcap和Wpcap.dll 3個部分組成軟件開發(fā)包,可以在Windows操作平臺上實現(xiàn)對底層網(wǎng)絡(luò)數(shù)據(jù)包的截取過濾[7]。其主要執(zhí)行函數(shù)如表1所示。
表1 WinPcap函數(shù)
IEC 61850-9-2實現(xiàn)了過程層到間隔層采樣值的數(shù)字化傳輸,可以靈活定義數(shù)據(jù)集,讀寫控制塊等,對數(shù)據(jù)傳輸進行VLAN和優(yōu)先級設(shè)置[4]。其結(jié)構(gòu)如圖1所示。
此仿真測試軟件首先使用Microsoft xml CORE SERVICES 3.0解析裝置配置文本CID文件,把得出IEC 61850-9-2的ASDU配置參數(shù)再配置為WinPcap可發(fā)送的sendqueue數(shù)據(jù),使用IPHLPAPI.LIB來獲得網(wǎng)絡(luò)內(nèi)設(shè)備的MAC信息、IP信息、name信息。用pcap_open打開網(wǎng)絡(luò)適配器,pcap_sendqueue_transmit發(fā)送和pcap_next_ex接受,最后用pcap_close關(guān)閉網(wǎng)絡(luò)適配器。此軟件使用SNTP對時。其程序流程如圖2所示。
圖2 軟件程序流程
在設(shè)置時區(qū)參數(shù)、客戶端IP參數(shù)和服務(wù)器IP參數(shù)后,接受SNTP對時服務(wù)器的2種對時方式。(1)主動查詢點對點;(2)廣播對時。保證IEC 61850-9-2數(shù)據(jù)報文發(fā)送和接受時間的一致性。
WinPcap的發(fā)送函數(shù)有pcap_sendpacket和pcap_sendqueue_transmit,分別為發(fā)送單個數(shù)據(jù)包和發(fā)送隊列[7]。pcap_sendpacket函數(shù)需要的參數(shù)是1個裝有要發(fā)送數(shù)據(jù)的緩沖區(qū)、發(fā)送的長度和1個適配器。緩沖區(qū)中的數(shù)據(jù)將不被WinPcap內(nèi)核緩沖協(xié)議處理,只是作為最原始的數(shù)據(jù)流被發(fā)送,發(fā)送時間隨機,不能固定。而pcap_sendqueue_transmit函數(shù)提供同步時間最優(yōu)機制來發(fā)送1組隊列數(shù)據(jù)包,pcap_sendqueue_alloc函數(shù)用來創(chuàng)建1個隊列,pcap_sendqueue_queue函數(shù)將帶有時間戳和長度的pcap_pkthdr結(jié)構(gòu)附加在隊列數(shù)據(jù)包上,然后調(diào)用pcap_sendqueue_transmit函數(shù)來發(fā)送隊列數(shù)據(jù)包,該函數(shù)的第3個參數(shù)如果非0則表示發(fā)送將是同步的,這樣能夠使發(fā)送時間精確到微秒,但是將占用很大的CPU資源,因為WinPcap的數(shù)據(jù)是在內(nèi)核級上被緩沖,最后使用pcap_sendqueue_destroy函數(shù)來釋放掉所有的隊列資源。
對于數(shù)字化變電站設(shè)備來說,IEC 61850-9-2報文在1 s內(nèi)要被發(fā)送上千次,所以需將發(fā)送IEC 61850-9-2報文的時間精確到微秒級別,這就需要使用pcap_sendqueue_transmit函數(shù)。本文實驗聯(lián)調(diào)的數(shù)字化變電站設(shè)備1 s需要接受4 000次IEC 61850-9-2報文,并且根據(jù)ASDU中數(shù)據(jù)變化計算幅值和角度。
此軟件編譯環(huán)境是Windows下的Visual C++編譯環(huán)境,Visual C++的定時器極限只能到達1 ms。本文對比使用了2種微秒定時器:rdtsc內(nèi)嵌機器碼微秒定時器和CPU時鐘頻率微秒定時器。
rdtsc內(nèi)嵌機器碼微秒定時器使用2次getcyclecount函數(shù)返回CPU時鐘周期數(shù)值差來測知時間,和CPU主頻速率直接對應(yīng),1個計數(shù)相當(dāng)于1/s(CPU主頻Hz數(shù)),缺點是數(shù)據(jù)抖動不穩(wěn)定。
CPU時鐘頻率微秒定時器首先調(diào)用QueryPerformanceFrequency函數(shù)取得高精度運行計數(shù)器的頻率f,單位是每秒多少次,在需要定時的代碼的兩端分別調(diào)用QueryPerformanceCounter函數(shù)以取得高精度運行計數(shù)器的數(shù)值n1、n2,兩次數(shù)值的差值通過f換算成時間間隔t=(n2-n1)/f,當(dāng)t大于或等于定時時間長度時啟動定時器。
本文使用毫秒定時器內(nèi)嵌套微秒定時器和pcap_next_ex函數(shù)來接受IEC 61850-9-2報文,速度較快,接受不丟包。
此軟件與PCS9705B裝置進行IEC 61850-9-2數(shù)據(jù)收發(fā)聯(lián)調(diào),硬件設(shè)備連接如圖3所示。
圖3 硬件設(shè)備連接
設(shè)置完電壓一次值、電壓二次值和UA,UB,UC之間相角后,計算機發(fā)送4組IEC 61850-9-2電壓數(shù)據(jù) (ua1,ub1,uc1;ua2,ub2,uc2;ua3,ub3,uc3;ua4,ub4,uc4), 第 1組聯(lián)調(diào)電壓數(shù)據(jù)的SMV參數(shù)示意如下。
4組電壓數(shù)據(jù)經(jīng)過以太網(wǎng)-光纖轉(zhuǎn)換器到達PCS9705B裝置的光纖數(shù)據(jù)接入插件,4組IEC 61850-9-2數(shù)據(jù)可分別持續(xù)發(fā)送1 min,裝置接受效果較好。測試人員進行分析,第1組聯(lián)調(diào)電壓數(shù)據(jù)顯示結(jié)果如下:UA=57.7V,UB=57.7V,UC=57.7V,UAB=100.0V,UBC=100.0V,UCA=100.0V。
本文主要設(shè)計了基于WinPcap4.0.2版軟件包、在計算機網(wǎng)卡介質(zhì)上直接收發(fā)的IEC 61850-9-2數(shù)據(jù)收發(fā)仿真測試軟件,可以用來測試數(shù)字化變電站設(shè)備的SMV數(shù)據(jù)接受。
此軟件受到pcap_sendqueue_transmit函數(shù)建立數(shù)據(jù)緩沖區(qū)大小的制約,需要改進以下幾點。(1)由于IEC 61850-9-2報文發(fā)送點數(shù)太多,需要的數(shù)據(jù)緩沖區(qū)太大,如果想持續(xù)發(fā)送,必須不斷地建立和釋放SMV數(shù)據(jù)緩沖區(qū),在建立和釋放的時間片段內(nèi)如何保證發(fā)送數(shù)據(jù)時間的連貫性是一個問題,需要改進。(2)接受的SMV數(shù)據(jù)合成波形COMTRADE格式文件用于故障分析。(3)SNTP對時精度不夠,需要改進對時方式。
[1]萬 博,蘇 瑞.遵循IEC 61850-9-2實現(xiàn)變電站采樣值傳輸[J].電網(wǎng)技術(shù),2009,33(19):199-203.
[2]趙應(yīng)兵,周水斌,馬朝陽,等.基于IEC 61850-9-2的電子式互感器合并單元的研制[J].電力系統(tǒng)保護與控制,2010,38(6):104-110.
[3]鄭新才,施魯寧,楊 光,等.IEC 61850標(biāo)準(zhǔn)下采樣值傳輸規(guī)范9-1、9-2的對比和分析[J].電力系統(tǒng)保護與控制,2008,36(18):47-50.
[4]莫 峻,譚建成.基于IEC 61850-9-2的合并單元研究[J].現(xiàn)代電力,2009,26(4):10-14.
[5]何 剛,胡 寶,陳強林,等.OMICRON測試儀在數(shù)字化保護裝置測試中的應(yīng)用[J].電力系統(tǒng)保護與控制,2010,38(12):132-135.
[6]范建忠,馬千里.基于WINPCAP的GOOSE報文捕獲分析工具開發(fā)[J].電力系統(tǒng)自動化,2007,31(23):52-56.
[7]循序漸進學(xué)習(xí)使用WINPCAP[EB/OL].http://www.onlyblog.com/blog/saobaolpsj/archives/2007/5404.html.