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