0 引言
繼電保護裝置是電力系統*重要的二次設備之一,對電力系統的安全穩定運行起著重要的作用。隨著計算機技術、微電子技術、通信技術的發展,新型繼電保護裝置特別是數字式保護裝置已經得到廣泛的推廣和應用。這些集網絡化、智能化、保護控制于一體的嵌入式裝置功能復雜,其開發、測試都比較困難,很多測試項目無法在手工操作的情況下完成,給繼電保護裝置的測試技術提出了巨大的挑戰。
目前微機型繼電保護測試儀已廣泛應用于繼電保護裝置測試,提高了繼電保護裝置的測試水平,但是繼電保護裝置的測試主要以手工為主,即使開展了自動化測試,也僅僅用于生產環節的硬件檢查,測試功能比較簡單固定[1-2]。本文針對繼電保護裝置測試的現狀,重點對測試技術進行了深入的研究與探討,并在此基礎上提出了通用化、實用化的保護裝置閉環自動測試方案,可用于產品研發過程和生產過程的自動測試。
1 自動測試系統概述
微機繼電保護裝置邏輯復雜、功能強大,集繼電保護、自動化控制和狀態監測于一體。繼電保護裝置的測試是一個整體的過程,不僅僅局限于可靠性、選擇性、靈敏性和速動性等基本要求測試,繼電保護裝置的網絡化、智能化、數據通信等是一個有機的整體,都是進行測試不可分割的部分。
在研發階段對嵌入式微機繼電保護裝置進行測試是非常復雜、耗時的工作。人工測試效率低下,測試工作重復性高,易導致人員疲勞而獲取錯誤結果。微機繼電保護技術發展到今天,靠傳統的測試方法已經遠遠不能滿足要求,繼電保護測試應該實行自動化。
在測試過程中引入自動化工具進行自動化測試是一種非常實用高效的方法[2]。自動化測試具有一致性和可重復性的特點,很容易發現被測軟件的任何改變;自動化測試中通過事先編制測試計劃,可以減少人為因素干擾,排除測試的隨機性和盲目性,提高測試效率和測試可靠性;自動化測試可以充分利用硬件資源,完成手工測試由于時間或運行環境限制而無法進行的測試,保證了測試的完整性,從而縮短產品的開發周期。
要實現繼電保護裝置的自動化測試,還必須做到以下幾點:
1) 實行閉環自動測試,系統主控計算機解釋執行測試腳本,把測試腳本中的故障參數通過微機繼電保護測試儀加給保護裝置,收集保護裝置的動作反饋信息,測試腳本根據收集到的數據完成測試結果的判斷,形成閉環測試。
2) 測試過程透明化,系統能顯示測試過程中每個測試用例的執行過程和執行結果。這些顯示信息由測試腳本控制,當測試不通過時,可以方便定位測試失敗時的具體原因。
3) 自動測試用例應具有良好的擴展性和可重用性。
4) 系統在測試完成后能夠自動生成標準格式的測試報告,根據要求生成相關格式電子文檔,便于存檔。
2 系統設計
2.1 總體設計
系統采用分布式平臺,按照面向對象的設計方法,將智能自動測試系統分為主機控制模塊、從機執行模塊、測試用例數據庫模塊三個部分,自動測試系統總體框圖如圖 1 所示。
主機模塊主要實現控制功能,建立測試運行環境,執行測試過程和生成測試報告等。測試運行時,可以根據要求,選擇部分或全部測試用例,執行過程中透明輸出測試信息。測試未通過的程序的用例,確定原因后,可統一進行回歸測試。
從機模塊負責與被測保護裝置進行交互,模擬測試環境,實現某項具體測試任務。從機模塊通過對應的接口提供功能函數形成API函數庫,供測試腳本執行時調用。同時收集被測保護裝置的動作信息,轉發給主機模塊。
測試用例是裝置測試的準則,按照被測產品的功能進行分類,通過**的測試來驗證產品的質量。測試用例數據庫系統主要任務是將測試方案數據化方式保存,提供給自動測試系統有關測試數據和相關測試實例。
2.2 自動測試系統組成
系統主要由測試控制計算機,以太網交換機,微機繼電保護測試儀, GPS 對時終端,被測保護裝置等組成,自動測試系統硬件結構如圖 2 所示。
微機繼電保護測試儀采用南瑞繼保公司的Help2000裝置。 Help2000是基于統一建模的微機繼電保護測試儀[3],該裝置的突出優點是:硬件配置自由靈活,I/O點數完全不受限制,并可根據不同的測試目的,快速組態,進行二次開發,能對各類繼電保護裝置實現真正的全閉環測試。進行自動測試時,對于常規站保護裝置,電氣量輸入是電流電壓模擬量,開入開出通過硬觸點來實現,因此需在Help2000上配置小信號輸出板卡和開入開出板卡;如果是數字化站保護裝置,電氣量輸入的信號是經過處理的光數字信號,其輸入輸出由GOOSE報文傳送[4-7],
因此需要在Help2000上配置數字化板卡。測試控制計算機通過網絡與其他設備進行信息交互,Help2000向保護裝置輸出模擬量和開入量,可以實現保護裝置硬壓板的投退和其他開入信號功能,接收并處理保護裝置的動作觸點信息,測試控制計算機收集保護裝置的SOE報文和Help2000轉發來的動作信息,進行分析處理,形成測試報告。
GPS 對時負責各模塊時鐘的統一,從而可以測量保護裝置出口繼電器的觸點動作時間。
2.3 自動測試系統軟件功能模塊
自動測試系統軟件功能模塊如圖 3 所示。
主機模塊采用 windows 操作系統,提供友好的人機界面。其主要任務是:用戶命令接口,自動測試系統配置,導入和管理測試用例,監控測試過程,測試結果分析和處理以及測試報告生成。在運行時,根據要求選擇自動測試方案,運行測試腳本,通過Help2000 接口管理模塊,經由從機模塊來實現微機繼電保護測試儀的輸出,完成保護功能測試。并收集測試結果,依據測試方案完成對測試結果的判斷。同時監控測試過程的狀態信息,并對整個測試的流程和通信進行統一管理。
從機模塊主要包括 Help2000 控制模塊和從機通信協議接口模塊。主機模塊不直接與被測裝置發生交互,所有信息通過從機模塊進行轉發。從機模塊在運行時,通過系統目標配置,解釋測試腳本,驅動 Help2000 輸出實時仿真信號,收集被測保護裝置的報文信息并轉發給主機模塊;同時被測保護裝置的觸點動作信息由 Help2000 記錄,并通過從機模塊,以遙信的形式轉發給主機模塊,供主機模塊實時分析比較。此外從機模塊還負責執行主控程序下發的命令,如下載定值、遙控壓板、對時命令、通用數據讀取等。
測試用例是對特定的軟件產品進行測試任務的描述,內容包括測試目標、測試輸入、執行條件、預期結果等,以便測試其性能是否滿足某個特定需求。
測試用例模塊按照被測產品的功能進行分類,針對具體型號的保護裝置,按照測試標準,離線生成。測試時,由主控程序解釋執行,測試用例通過調用從機的接口函數,對保護裝置進行測試,并收集保護裝置的動作信息,與預先設定的動作情況進行比對,判斷保護裝置的動作邏輯是否正確。
保護裝置的測試用例除了常用的功能模塊,如差動保護測試模塊、距離保護測試模塊、零序測試保護模塊等,對一些需要雙端或多端配合的復雜邏輯,設計了專門測試用例進行仿真測試。
3 測試用例設計
測試腳本是具有正則語法的數據和指令的集合, 測試用例腳本化是實現自動化測試的關鍵。根據測試用例,利用腳本語言編寫成腳本測試程序,通過腳本解釋器一次性執行多個測試用例,很好地實現了測試的自動化。為了提高自動化測試水平,測試腳本要求具有高效性、可靠性和可維護性。
本測試系統采用 Python 語言作為測試腳本語言,Python 是一種解釋型的、面向對象、動態語義、語法優美、跨平臺的開源腳本語言[8]。Python 糅合了簡單的語法和強大的功能,可以快速進行原型設計,是一種適合混合語言編程開發的膠水語言。本測試系統采用 C++和 Python 混合編程,主控程序和人機界面等采用 C++編程,測試用例采用Python 語言開發,在主控程序中嵌入 Python 腳本解析器,用于解析執行測試腳本。此外,為了實現對Help2000 的控制和讀取保護裝置的動作反饋信息,還利用 C++編寫了擴展模塊,在測試腳本中用“import”語句導入該模塊,就可以使用模塊提供的各種擴展函數。
3.1 測試腳本的層次結構
腳本分為以下 4 個層次:測試類、測試用例、測試項、測試工程。
(1) 測試類。某種保護所有測試邏輯的**實現,與一個 py 文件(module)對應。此文件里包含一測試模板類 (class) 及其對應的多個測試函數(method),用來測試該保護的所有邏輯。例如距離保護的測試可以作為一個類,其中包含了距離保護的所有測試邏輯等。
(2) 測試用例。某種保護某個測試邏輯的具體實現,與 py 文件中測試模板類(class)的某個測試函數(method)對應。例如距離保護測試類中包含了動作邊界測試、距離定值上下限測試、時間定值上下限測試、距離保護閉鎖條件測試等各種測試用例。分別用 TestCase00、TestCase01、…來表示。
(3) 測試項。為實際執行的*小測試單元,為實例化的測試用例。例如距離保護Ⅰ、Ⅱ、Ⅲ段都有PT 斷線閉鎖測試,因此實例化后有 3 個測試項對應。
(4) 測試工程。對應裝置的具體某次測試任務,由一腳本配置文件直接生成。配置文件中引用測試庫中測試用例(模板測試類),并根據具體裝置配置實例化,從而形成此次測試項集合。
生成測試工程時,配置腳本先加載所需要的測試模板類,再根據配置參數,實例化測試模板類,*后生成測試項列表。每一測試項名稱由測試用例名稱、模板類名稱、測試實例名稱組合而成,用于區分不同的測試項,以便于執行時挑選。
測試項列表是由測試用例、測試實例組合產生,例如有 2 個測試類,每個測試類中包含 2 個測試項目,**個測試用例對應的測試類實例化出 2 個實例,**個測試用例對應的測試類實例化出 1 個實例,因此可以產生 6 個測試項,如圖 4 所示。
3.2 測試腳本接口配置
測試腳本中包含一個通用的配置文件,用來確定測試環境中硬件資源的分配,如保護裝置及Help2000 的地址分配、所需定值名稱的確定、軟壓板名稱的確定、模擬量通道號的確定、開入開出通道號的確定和配置參數類的定義,該文件面向全部測試用例。
對于常規站保護裝置,繼電器的出口觸點連接到 Help2000 的通用開入插件,觸點動作時,Help2000 讀取開入狀態,將其作為遙信處理;如果是數字化站保護裝置,Help2000 處理保護裝置發出的 GOOSE 出口報文,測試用例通過調用擴展函數就可以從 Help2000 得到 GOOSE 出口的動作情況,從而進行出口比對。
對于需要多臺保護裝置相配合的邏輯測試,通過在 Help2000 上增加模擬量信號輸出板卡和通用的開入開出板卡,通過 Help2000 同時給多臺保護裝置施加不同的故障量,讀取其動作信息來進行比對。
3.3 測試用例實現
測試用例一般包含采樣精度測試、開入開出測試、裝置自檢測試、保護功能邏輯測試等。采樣精度測試用例中除了對電氣量從小到大進行滿量程范圍的測試外,還專門編寫了產生諧波的接口函數,驅動 Help2000 對保護裝置施加諧波進行測量。
4 結語
本文對繼電保護自動化測試進行了分析,并在此基礎上開發了一套通用的繼電保護自動化測試系統。該系統主要有如下的特點。
1) 提高了測試的精度,例如原來人工測試時,對于繼電器的動作情況一般只是測量其通斷,現在有了自動測試,不僅能**測試繼電器的動作次數,而且測試了繼電器的動作時間和返回時間,大大提高了測試精度,嚴格校核了保護的動作邏輯。
2) 能完成原來人工無法測試的任務,例如雙端保護裝置的邏輯測試,而且由于每次試驗都對出口動作報文進行比對,對故障信息進行誤差分析,因此有助于發現程序中出現的異常情況,提高保護裝置的性能。
3) 大大節省了測試時間,提高了測試效率。目前,該自動化測試系統已經廣泛應用于南瑞繼保的 PCS 系列保護裝置的研發測試過程中,極大地提高了研發過程的測試效率和測試質量,縮短了產品的研發周期,產生了良好的效益。