摘 要: 為了防止IEC60870-5-104協(xié)議通信中出現(xiàn)的主站抖動現(xiàn)象,開發(fā)了一個基于IEC104協(xié)議的監(jiān)聽與測試系統(tǒng)。根據(jù)云南電網(wǎng)調(diào)度自動化系統(tǒng)生產(chǎn)運行的實際情況,對IEC104協(xié)議模型進行分析,使用SOCKET編程對通信報文進行抓包,并通過對測試數(shù)據(jù)的分析,成功地對IEC104規(guī)約運行狀況進行實時、可靠、準確的監(jiān)聽、分析與統(tǒng)計。測試結(jié)果驗證了監(jiān)聽與測試系統(tǒng)符合標準化的協(xié)議規(guī)范,而且能夠在主子站通信發(fā)生故障時第一時間報警,減少了網(wǎng)絡(luò)阻塞,提高了網(wǎng)絡(luò)通信的效率。
關(guān)鍵詞: IEC104規(guī)約;測試與監(jiān)聽系統(tǒng);UML;遠動設(shè)備;報文分析
0 引言
IEC60870-5-104協(xié)議具有可靠性高、實時性好、數(shù)據(jù)流量充足、支持網(wǎng)絡(luò)傳輸?shù)葍?yōu)點,因此IEC104協(xié)議在電力系統(tǒng)中得到廣泛的應(yīng)用。RTU設(shè)備的使用使得數(shù)據(jù)采集更為方便,但是在不同RTU設(shè)備的通信過程中會出現(xiàn)通信故障[1-6]。2011年上海申瑞電力科技股份有限公司梁竹靚等人提出分布式電力監(jiān)控系統(tǒng)IEC104規(guī)約通信單元的設(shè)計方法[7-9]。2012年華北電力大學(xué)薛飛總結(jié)并提出了一套針對IEC104規(guī)約的以面向?qū)ο鬄槔碚摶A(chǔ),統(tǒng)一建模語言為工具的高度結(jié)構(gòu)化的編程實現(xiàn)框架,該實現(xiàn)框架具有更好的可維護性、可復(fù)用性[10-13]。IEC104協(xié)議僅規(guī)定了重傳多次后還未收到確認報文自動斷開連接,并沒有對這種故障發(fā)出任何警告,如果出現(xiàn)了網(wǎng)絡(luò)故障,主控站人員要經(jīng)歷很長時間才能發(fā)現(xiàn),會導(dǎo)致主站抖動,使得數(shù)據(jù)無法上送和連接,造成網(wǎng)絡(luò)堵塞。
本文結(jié)合市場需求,研究一種基于IEC104遠動規(guī)約的監(jiān)聽與測試系統(tǒng),利用SOCKET編程實現(xiàn)對Client和Server端通信協(xié)議的抓包和數(shù)據(jù)檢測分析,當出現(xiàn)通信故障時會發(fā)送報警信息,使控制人員第一時間發(fā)現(xiàn)故障并解決問題,從而大大提高了IEC104的可靠性。
1 IEC104協(xié)議模型分析
本文采用網(wǎng)絡(luò)監(jiān)聽的方式針對基于TCP/IP協(xié)議族和電力通信領(lǐng)域的遠動傳輸協(xié)議IEC60870-5-104通信規(guī)約的測試分析方法進行研究。系統(tǒng)支持在線測試,并且可以長時間進行測試而無需人工干預(yù);同時也支持離線分析,在線監(jiān)聽獲取通信過程中傳輸?shù)乃袛?shù)據(jù),并保存到數(shù)據(jù)庫或者文件中,可供線下分析。監(jiān)聽與測試系統(tǒng)的用例圖如圖1所示。
測試系統(tǒng)主控站和從站的主線程流程圖如圖2、圖3所示。
監(jiān)聽系統(tǒng)作為第三方參與,不干涉通信雙方的具體通信僅當監(jiān)聽到有某條報文重復(fù)發(fā)送時,則向服務(wù)器端報警。監(jiān)聽系統(tǒng)的流程圖如圖4所示。
IEC104協(xié)議采用應(yīng)答模式的通信方式,即發(fā)送一條報文后收到此條報文的確認報文才認為此次通信成功,否則將會重傳這條報文。例如未出現(xiàn)故障的遙控操作的泳道圖如圖5所示。
在測試系統(tǒng)中當通信一方發(fā)送一條報文后在一定的時間內(nèi)未收到確認報文,就會啟動重傳機制重傳此條報文。若還是未收到確認報文當未超過最大重傳次數(shù)時就繼續(xù)重傳,否則就自動斷開連接。圖6是出現(xiàn)通信故障時的遙控操作的泳道圖。
測試系統(tǒng)中采用的超時處理方案如下:
?。?)當TCP連接的時間超過30 s還未收到目的子站的確認報文,則認為連接網(wǎng)絡(luò)出現(xiàn)了嚴重的情況,TCP連接失敗,重新發(fā)送測試報文。
?。?)當鏈路空閑時為了確保鏈路處于聯(lián)通狀態(tài),會發(fā)送U格式的測試報文,若在15 s內(nèi)未收到確認報文則T1此時自動斷開TCP連接,隨后重新開始TCP連接。
?。?)子站向主站發(fā)送執(zhí)行完畢報文或突發(fā)請求報文,希望獲得主站的S格式的報文確認回復(fù),若10 s內(nèi)未收到主站的回復(fù)報文,則子站自動斷開TCP連接。
?。?)當鏈路處于空閑狀態(tài)超過30 s,會啟動鏈路測試功能,向?qū)Ψ桨l(fā)送U格式的鏈路測試報文。
2 監(jiān)聽系統(tǒng)設(shè)計與實現(xiàn)
本文采用端口匯聚技術(shù)將物理上的兩個端口連接起來形成一條邏輯鏈路,并使用端口鏡像技術(shù)將通信報文復(fù)制到鏡像端口,通過對鏡像端口通信報文的監(jiān)聽實現(xiàn)監(jiān)聽測試系統(tǒng)的服務(wù)器端和客戶端之間的通信。使用這種監(jiān)聽方法的優(yōu)點是不會影響測試系統(tǒng)的正常通信,監(jiān)聽站作為第三方僅監(jiān)聽兩站的通信報文。圖7是測試系統(tǒng)配置圖。
測試系統(tǒng)采用C++語言和codeblocks-10.05為開發(fā)平臺,使用wxWidgets開源軟件庫實現(xiàn)。根據(jù)IEC104規(guī)約結(jié)構(gòu)要求,本文采用的測試系統(tǒng)類繼承關(guān)系如圖8所示。
監(jiān)聽系統(tǒng)采用網(wǎng)絡(luò)監(jiān)聽工具Winpcap的庫函數(shù)API來實現(xiàn)捕獲數(shù)據(jù)包的功能。通過IP地址來區(qū)別主控站和從站。監(jiān)聽系統(tǒng)作為第三方僅監(jiān)聽鏡像端口的報文數(shù)據(jù),通過對報文的抓包分析,判斷遠動主站和子站的通信是否出現(xiàn)故障。監(jiān)聽系統(tǒng)要完成的最主要的功能是從TCP報文中準確地提取IEC104報文和數(shù)據(jù)部分的重組,即流程圖中的解包和重組部分。解包和重組過程的流程圖如9所示。
3 測試結(jié)果
經(jīng)過解包和重組后獲得了IEC104數(shù)據(jù)幀,對IEC104幀的解析主要是判斷是否是重復(fù)報文。如果是重復(fù)報文則向主控站報警并提供錯誤報文的基本信息。測試數(shù)據(jù)如圖10、圖11所示。
IEC104規(guī)約應(yīng)用報文APDU包括APCI和ASDU,由圖10可以看出監(jiān)聽正常進行,TCP重組正確,報文格式和內(nèi)容完全正確,且測試程序全部都能正確解析出來。
由圖11可以看出,在14:27:06時主從站應(yīng)答正常;在14:27:16時主站連續(xù)發(fā)生同一段幀,此時主從站通信出現(xiàn)異常,系統(tǒng)應(yīng)向主控站報警并提供錯誤報文的基本信息。
4 結(jié)論
本文主要針對遠動主站和子站之間能否及時并正確的通信以及出現(xiàn)網(wǎng)絡(luò)故障不能及時發(fā)現(xiàn)的問題,設(shè)計開發(fā)了一種電力遠動設(shè)備的IEC60870-5-104通信協(xié)議監(jiān)聽與測試系統(tǒng)。通過建模、軟件設(shè)計和測試數(shù)據(jù)分析不僅能夠?qū)笪姆治鲆詧蟊淼男问捷敵?,大大降低工作人員調(diào)試的工作量,提高分析和判斷能力,同時也保證了電網(wǎng)的高效運行,還能在發(fā)生通信故障時第一時間報警,為電力遠動系統(tǒng)的正常運行提供了保障。
參考文獻
[1] 張建設(shè),馬維青,郭晉洋.IE60870-5-104協(xié)議在遠動通信中的應(yīng)用[J].電力系統(tǒng)自動化,2003,27(11):91-93.
[2] 陳建榮,王樂春,龔正虎,等.協(xié)議一致性測試執(zhí)行系統(tǒng)的體系結(jié)構(gòu)研究[J].計算機工程,2003,29(8):78-80.
[3] 譚文恕.遠動信息的網(wǎng)絡(luò)訪問[J].電力系統(tǒng)自動化,2001,25(12):51-55.
[4] 趙淵,沈智健.基于TCP/IP的IEC60870-5-104遠動規(guī)約在電力系統(tǒng)中的應(yīng)用[J].電網(wǎng)技術(shù),2003,27(10):56-60.
[5] 杜龍,施魯寧,楊晉柏.基于TCP/IP的IEC60870-5-104遠動通信協(xié)議在直調(diào)廠站中的應(yīng)用[J].電力系統(tǒng)保護與控制,2008,36(17):51-55.
[6] 吳衛(wèi)華,唐健,楊瑞景,等.基于無線傳感網(wǎng)的智能電網(wǎng)線路傳感器系統(tǒng)的研制[J].微型機與應(yīng)用,2013,32(5):54-56,59.
[7] 梁竹靚,韓兵,彭永,等.IEC60870-5-104規(guī)約在分布式電力監(jiān)控系統(tǒng)中的應(yīng)用[J].電力系統(tǒng)保護與控制,2011,39(4):124-127.
[8] 李建軍,邵培南,段曉峰,等.軟件可靠性測試及評估平臺的設(shè)計與實現(xiàn)[J].微型機與應(yīng)用,2014,33(15):10-12,22.
[9] 牛春霞,宋瑋.IEC60870-5-104遠動網(wǎng)絡(luò)通信協(xié)議的應(yīng)用與實施[J].河北電力技術(shù),2006,25(1):30-32.
[10] 朱彥杰,鄧昌延,李國杰,等.IEC104協(xié)議在變電站系統(tǒng)的應(yīng)用與測試[J].繼電器,2004,32(1):43-45.
[11] 李國棟,冶莉娟,李暉,等.104規(guī)約在青海電網(wǎng)調(diào)度自動化系統(tǒng)應(yīng)用中的問題診斷及處理[J].青海電力,2011,30(1):56-59.
[12] 王成山,王守相,郭力,等.我國智能配電技術(shù)展望[J].南方電網(wǎng)技術(shù),2010,4(1):18-22.
[13] 馮煥霞,楊俊華,鄭儉華,等.IEC60870-5-104協(xié)議的實時性能分析[J].華東電力,2009,37(4):0577-0581.