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