王詩(shī)清, 王建偉, 楊 斌, 袁廣寶
(1. 國(guó)網(wǎng)遼寧省電力有限公司 電力科學(xué)研究院, 遼寧 沈陽(yáng) 110018;2. 北京四方繼保工程技術(shù)有限公司, 北京 100085)
規(guī)約的一致性測(cè)試是IED投入使用前的必要過(guò)程[1]. IEC61850-10部分規(guī)定的一致性測(cè)試是用于驗(yàn)證IED通信接口與IEC61850標(biāo)準(zhǔn)要求的一致性. 該部分規(guī)定了實(shí)現(xiàn)IEC61850規(guī)約一致性測(cè)試的標(biāo)準(zhǔn)技術(shù)及提出性能參數(shù)時(shí)要使用的特定測(cè)量技術(shù). 使用這些技術(shù)將提高系統(tǒng)集成商集成IED、 正確操作IED及支持預(yù)期應(yīng)用的能力. IEC61850規(guī)約的一致性測(cè)試是保證IED設(shè)備實(shí)現(xiàn)互聯(lián)互通互操作性的基礎(chǔ), 如果不能實(shí)現(xiàn)互聯(lián)互通互操作, 規(guī)約的制定就沒(méi)有了意義. IEC61850規(guī)約一致性的測(cè)試能夠在最大程度上保證IED設(shè)備間通信接口與IEC61850標(biāo)準(zhǔn)協(xié)議相一致, 進(jìn)而確保設(shè)備能夠?qū)崿F(xiàn)互聯(lián)互通互操作. 但是, 由于IEC61850規(guī)約一致性測(cè)試內(nèi)容多、 涉及細(xì)節(jié)關(guān)注點(diǎn)多、 對(duì)專(zhuān)業(yè)性要求高、 設(shè)置配置復(fù)雜等原因, 使得完成這類(lèi)測(cè)試需要具備極高的IEC61850規(guī)約專(zhuān)業(yè)知識(shí)的專(zhuān)業(yè)技術(shù)人員, 并借助不同的工具軟件和測(cè)試設(shè)備才能夠完成, 從而導(dǎo)致IEC61850規(guī)約一致性的檢測(cè)效率低、 人工檢測(cè)易造成細(xì)節(jié)點(diǎn)的遺漏缺失、 無(wú)法遍歷全覆蓋測(cè)試等問(wèn)題. 因此, 快速、 高效、 準(zhǔn)確、 可遍歷全覆蓋的IEC61850規(guī)約一致性自動(dòng)化測(cè)試變的更加必要.
目前, 眾多的檢測(cè)方法和工具被應(yīng)用于IEC61850服務(wù)器規(guī)約一致性測(cè)試當(dāng)中. 但不論使用哪種工具, 都需要對(duì)IEC61850規(guī)范標(biāo)準(zhǔn)非常了解, 且同時(shí)需要對(duì)server端的設(shè)備(被測(cè)試設(shè)備)進(jìn)行一些人工操作, 如在進(jìn)行報(bào)告服務(wù)測(cè)試時(shí), 需要人工操作被測(cè)試設(shè)備來(lái)觸發(fā)生成變位報(bào)告, 同時(shí), 需要抓包對(duì)該報(bào)告報(bào)文進(jìn)行分析, 判斷其是否符合預(yù)期. 若對(duì)IEC61850規(guī)范標(biāo)準(zhǔn)理解不全面不正確, 經(jīng)常會(huì)導(dǎo)致測(cè)試結(jié)果出現(xiàn)問(wèn)題和偏差.
針對(duì)目前IEC61850服務(wù)器規(guī)約一致性測(cè)試工作中的諸多問(wèn)題, 鑒于目前開(kāi)源庫(kù)資源的日趨豐富及完善, 本文提出了一種基于開(kāi)源庫(kù), 使用Python對(duì)IEC61850服務(wù)器規(guī)約一致性進(jìn)行全覆蓋遍歷的全自動(dòng)化測(cè)試方法. 因IEC61850服務(wù)器規(guī)約一致性測(cè)試包括的內(nèi)容較多, 本文將主要針對(duì)報(bào)告服務(wù)的自動(dòng)化測(cè)試技術(shù)的實(shí)現(xiàn)提出解決方法. 首先提出IEC61850服務(wù)器規(guī)約一致性測(cè)試的基本過(guò)程方法. 針對(duì)較難實(shí)現(xiàn)自動(dòng)測(cè)試的報(bào)告服務(wù)提出了通過(guò)取代服務(wù)模擬置數(shù)產(chǎn)生報(bào)告的方式, 杜絕人工干預(yù), 從而實(shí)現(xiàn)自動(dòng)觸發(fā)生成報(bào)告, 進(jìn)而對(duì)IEC61850報(bào)告服務(wù)進(jìn)行自動(dòng)測(cè)試的方法, 加強(qiáng)一致性測(cè)試的可信度和嚴(yán)謹(jǐn)性.
國(guó)際上將IEC61850作為變電站通信網(wǎng)絡(luò)和系統(tǒng)的統(tǒng)一標(biāo)準(zhǔn), 用于統(tǒng)一變電站內(nèi)功能和裝置等各個(gè)方面, 使變電站內(nèi)裝置間的通信變得更加統(tǒng)一便捷. 在這一標(biāo)準(zhǔn)下建立起統(tǒng)一各廠商的通用配置, 支持不同智能電子設(shè)備間的信息共享和互操作. 其主要優(yōu)勢(shì)和作用在于為同網(wǎng)絡(luò)上工作的不同設(shè)備建立信息比對(duì)和命令執(zhí)行共享途徑, 實(shí)現(xiàn)通信的統(tǒng)一性, 避免因通訊協(xié)議的不同造成設(shè)備間繁瑣的規(guī)約轉(zhuǎn)換. 規(guī)約一致性的測(cè)試是對(duì)IED設(shè)備間進(jìn)行互聯(lián)互通互操作的基本保障. IEC61850服務(wù)器規(guī)約一致性檢測(cè)的基本過(guò)程[2]如圖 1 所示.
圖 1 IEC61850規(guī)約一致性測(cè)試過(guò)程
由圖 1 所示的IEC61850規(guī)約一致性服務(wù)器端的一般測(cè)試過(guò)程可以看出, 首先, 我們需要對(duì)服務(wù)器端提供的PICS, MICS, PIXIT文檔及IED設(shè)備的能力描述文件ICD進(jìn)行靜態(tài)的檢查[3], 確保文檔完備且文檔對(duì)IEC61850-10中所需要聲明的服務(wù)內(nèi)容及服務(wù)響應(yīng)行為都進(jìn)行了相應(yīng)說(shuō)明; 然后, 根據(jù)所提供的PICS, PIXIT文檔中所提及的服務(wù)及服務(wù)響應(yīng)情況, 使用各類(lèi)工具軟件或測(cè)試設(shè)備, 按照IEC61850-10中的測(cè)試用例逐一進(jìn)行檢測(cè)驗(yàn)證[4]; 最后, 根據(jù)檢測(cè)情況出具對(duì)應(yīng)的試驗(yàn)報(bào)告和過(guò)程報(bào)文. 以上便是一個(gè)完整的一般性的IEC61850規(guī)約一致性服務(wù)器端的檢測(cè)過(guò)程.
IEC61850一致性測(cè)試主要是驗(yàn)證 IED 通信接口與IEC61850標(biāo)準(zhǔn)要求的一致性, 其包括肯定測(cè)試用例和否定測(cè)試用例, 常見(jiàn)的IEC61850規(guī)約一致性測(cè)試系統(tǒng)結(jié)構(gòu)如圖 2 所示.
圖 2 常見(jiàn)IEC61850一致性測(cè)試系統(tǒng)結(jié)構(gòu)
圖 2 中, 被測(cè)試設(shè)備(DUT)一般為保護(hù)或智能控制設(shè)備, 其一致性測(cè)試過(guò)程如下:
通常用一個(gè)通信仿真器(Client Simulator)作為一個(gè)IEC61850客戶端, 通過(guò)以太網(wǎng)向被測(cè)設(shè)備(DUT)發(fā)送服務(wù)請(qǐng)求并記錄和處理結(jié)果信息. 通信仿真器通常采用UniCASim simulator[5].
被測(cè)試設(shè)備的信號(hào)觸發(fā)等輔助試驗(yàn)可由試驗(yàn)測(cè)試儀(Signal Generator)提供, 包括電壓電流等模擬量和開(kāi)關(guān)量的輸出, 進(jìn)行環(huán)境仿真, 并與通信仿真器(Client Simulator)相互通信.
通常使用一個(gè)網(wǎng)絡(luò)協(xié)議報(bào)文分析儀(Protocol Analyzer)來(lái)監(jiān)控測(cè)試過(guò)程中出現(xiàn)的錯(cuò)誤, 網(wǎng)絡(luò)協(xié)議分析儀將對(duì)整個(gè)過(guò)程的報(bào)文進(jìn)行記錄和解析, 并分析所得檢測(cè)結(jié)果.
最后, 應(yīng)配置一個(gè)時(shí)鐘同步裝置用來(lái)對(duì)被測(cè)試設(shè)備、 試驗(yàn)測(cè)試儀、 通信仿真器等一致性測(cè)試中各個(gè)設(shè)備的時(shí)間進(jìn)行同步. 以上設(shè)備便構(gòu)成了IEC61850的一致性服務(wù)端測(cè)試的基本框架.
傳統(tǒng)的IEC61850服務(wù)端報(bào)告服務(wù)的測(cè)試, 需要連接試驗(yàn)測(cè)試儀手動(dòng)進(jìn)行模擬量或開(kāi)關(guān)量的觸發(fā), 被測(cè)試設(shè)備和測(cè)試軟件系統(tǒng)之間沒(méi)有形成有效的閉環(huán), 因需要人工干預(yù)觸發(fā)信息, 不能自動(dòng)判斷結(jié)果, 影響測(cè)試的全面性.
IEC61850規(guī)范明確了需要對(duì)取代服務(wù)的支持[6], 且目前絕大部分的IED設(shè)備也都提供了取代服務(wù). 這樣就使得IEC61850規(guī)約一致性報(bào)告服務(wù)的自動(dòng)檢測(cè)在不借助外部設(shè)備或外部手動(dòng)置數(shù)等手段的情況下可以實(shí)現(xiàn).
基于開(kāi)源庫(kù), 使用Python來(lái)實(shí)現(xiàn)的IEC61850服務(wù)器規(guī)約一致性的自動(dòng)測(cè)試[7], 將會(huì)使得整個(gè)測(cè)試驗(yàn)證過(guò)程變得“簡(jiǎn)單、 高效、 集成和智能”, 尤其是對(duì)于整個(gè)一致性規(guī)約測(cè)試中最難進(jìn)行測(cè)試的報(bào)告服務(wù).
將規(guī)約一致性報(bào)告服務(wù)的測(cè)試劃分成3個(gè)模塊:
1)報(bào)告觸發(fā)模塊: 使用取代功能模擬置數(shù)觸發(fā)有預(yù)期結(jié)果的報(bào)告;
2)報(bào)告分析解析模塊: 對(duì)觸發(fā)生成的報(bào)告進(jìn)行解析分析, 并將解析的結(jié)果存入到Python的字典中放入消息隊(duì)列;
3)結(jié)果判定運(yùn)行模塊: 從消息隊(duì)列中獲取字典信息, 并通過(guò)字典信息的關(guān)鍵字獲取對(duì)應(yīng)值和實(shí)際預(yù)期結(jié)果進(jìn)行比對(duì)判斷.
整個(gè)報(bào)告服務(wù)自動(dòng)測(cè)試實(shí)現(xiàn)過(guò)程如圖 3 所示.
圖 3 報(bào)告服務(wù)自動(dòng)測(cè)試實(shí)現(xiàn)過(guò)程
使用Python對(duì)規(guī)約一致性報(bào)告服務(wù)的全自動(dòng)測(cè)試技術(shù)實(shí)現(xiàn)過(guò)程如下:
1) 數(shù)據(jù)信息的準(zhǔn)備
自動(dòng)測(cè)試結(jié)果運(yùn)行主線程啟動(dòng)后, 調(diào)用初始化功能函數(shù)在線獲取被測(cè)試設(shè)備(IED)的數(shù)據(jù)模型信息, 將其存入到Python的字典中, 通過(guò)return返回給主線程.
獲取到數(shù)據(jù)模型的字典信息后, 通過(guò)數(shù)據(jù)模型字典信息中的關(guān)鍵字key(如: dev_content_dict[‘Brcb_List’])獲取到被測(cè)試設(shè)備的報(bào)告控制塊信息.
然后, 再通過(guò)Python的for循環(huán), 對(duì)所有報(bào)告控制進(jìn)行初始設(shè)置, 設(shè)置報(bào)告控制的OptFlds和TrgOps, 使報(bào)告控制的OptFlds支持Data Reference; TrgOps支持dchg和GI的觸發(fā)選項(xiàng).
對(duì)報(bào)告控制塊的初始設(shè)置準(zhǔn)備完成后, 再次通過(guò)Python的for循環(huán), 開(kāi)始對(duì)每個(gè)設(shè)置完畢的報(bào)告控制塊列表進(jìn)行遍歷操作, 依次進(jìn)行RptEna寫(xiě)False, 清除報(bào)告控制塊緩存報(bào)告, 使能RptEna, 寫(xiě)總召GI, 從共享消息隊(duì)列中獲取報(bào)告信息并解析返回結(jié)果, 得到滿足測(cè)試要求的報(bào)告控制塊后退出循環(huán). 實(shí)際生成的具有Data Reference的GI總召報(bào)告信息如圖 4 所示.
圖 4 觸發(fā)生成總召報(bào)告報(bào)文信息圖
最后, 根據(jù)以上步驟獲取到滿足要求的待測(cè)試報(bào)告控制塊的信息及該報(bào)告控制塊關(guān)聯(lián)的數(shù)據(jù)集里成員的Data Reference信息, 并將其保存在DataRefNameList列表中. 通過(guò)Python的字符串替換功能str.replace()將對(duì)應(yīng)的取代數(shù)據(jù)信息存放在新建立的列表中(如: BRCB_BeLinked_sub_List). 具體Python實(shí)現(xiàn)過(guò)程如圖 5 所示.
圖 5 Python獲取待測(cè)試報(bào)告控制塊過(guò)程
2) 變位報(bào)告的觸發(fā)
通過(guò)第一步“數(shù)據(jù)信息的準(zhǔn)備”操作后, 已經(jīng)獲取到了滿足要求的待測(cè)試報(bào)告控制塊信息、 報(bào)告控制塊關(guān)聯(lián)數(shù)據(jù)集里成員信息列表以及報(bào)告控制塊關(guān)聯(lián)數(shù)據(jù)集對(duì)應(yīng)的取代信息列表. 然后, 通過(guò)Python的for循環(huán)調(diào)用取代函數(shù), 對(duì)取代信息列表進(jìn)行寫(xiě)使能和初始值的設(shè)置操作. 寫(xiě)完初始值后再清除該報(bào)告控制塊的緩存區(qū)和共享消息隊(duì)列.
經(jīng)過(guò)以上操作, 對(duì)待測(cè)試的報(bào)告控制塊里的成員數(shù)據(jù)進(jìn)行了初始值設(shè)置, 并清除了緩存區(qū)報(bào)告和共享消息隊(duì)列里的信息, 就可以保證使用write函數(shù)對(duì)subVal值進(jìn)行修改時(shí)產(chǎn)生的dchg變位報(bào)告為預(yù)期報(bào)告. 整個(gè)過(guò)程如圖 6 所示.
圖 6 觸發(fā)預(yù)期結(jié)果報(bào)告過(guò)程
3) 變位報(bào)告報(bào)文的解析及結(jié)果判定
在完成以上操作后, 產(chǎn)生了dchg的變位報(bào)文, 該變位報(bào)文里的預(yù)期結(jié)果為通過(guò)取代功能寫(xiě)入的subVal值. 因取代觸發(fā)的變位報(bào)文在取代值發(fā)生變化時(shí)就會(huì)立刻產(chǎn)生, 需要使用多線程技術(shù)對(duì)報(bào)告報(bào)文進(jìn)行實(shí)時(shí)的捕獲和解析. 多線程將報(bào)告分析解析模塊設(shè)置為守護(hù)線程. 報(bào)告分析解析模塊使用Python的pcap功能模塊, 該功能模塊可驅(qū)動(dòng)以太網(wǎng)并根據(jù)關(guān)鍵字或關(guān)鍵信息進(jìn)行過(guò)濾, 從而能夠有效、 實(shí)時(shí)地捕獲到有用的報(bào)告報(bào)文.
考慮MMS是按照TLV進(jìn)行編碼[8], 需要按照有效偏移位逐個(gè)對(duì)捕獲到的報(bào)告報(bào)文進(jìn)行解析, 如圖 7 所示, 將有效Tag位對(duì)應(yīng)的length和value進(jìn)行解析分析, 并將解析分析后的value值存放在字典中, 最終通過(guò)put將字典信息發(fā)送到共享隊(duì)列中.
圖 7 報(bào)告報(bào)文解析過(guò)程
自動(dòng)測(cè)試結(jié)果運(yùn)行主線程為整個(gè)報(bào)告服務(wù)自動(dòng)測(cè)試的主程序, 包含IEC61850-10中所有報(bào)告服務(wù)的測(cè)試用例[9]. 主程序的主要作用是按照測(cè)試用例要求, 實(shí)現(xiàn)測(cè)試過(guò)程并將預(yù)期結(jié)果發(fā)送給報(bào)告觸發(fā)模塊, 使其產(chǎn)生有預(yù)期結(jié)果的報(bào)告報(bào)文, 然后, 再?gòu)南㈥?duì)列中獲取報(bào)告分析解析模塊解析出來(lái)的實(shí)際報(bào)告的結(jié)果信息, 將預(yù)期結(jié)果和實(shí)際結(jié)果進(jìn)行比較, 從而得出測(cè)試結(jié)果. 若和預(yù)期一致則測(cè)試通過(guò), 若不一致則測(cè)試不通過(guò), 從而實(shí)現(xiàn)了報(bào)告服務(wù)不依賴(lài)外部模擬設(shè)備全自動(dòng)的閉環(huán)測(cè)試. 整個(gè)閉環(huán)自動(dòng)測(cè)試過(guò)程如圖 8 所示.
圖 8 規(guī)約一致性報(bào)告服務(wù)閉環(huán)自動(dòng)測(cè)試
1) 可變模擬量的處理
因報(bào)告控制塊RCB所關(guān)聯(lián)的數(shù)據(jù)集DatSet里的成員較多, 有部分成員的值是模擬量值[10], 例如, 反應(yīng)IED設(shè)備的溫度量、 電壓值等, 這些模擬量值都會(huì)伴隨環(huán)境溫度、 時(shí)間的變化而改變, 在變化的過(guò)程中就會(huì)觸發(fā)一些和測(cè)試不相干的報(bào)告報(bào)文, 這樣就容易對(duì)測(cè)試結(jié)果產(chǎn)生不確定的影響. 為了保證測(cè)試結(jié)果的確定性, 自動(dòng)測(cè)試主線程需要通過(guò)取代對(duì)該RCB關(guān)聯(lián)的數(shù)據(jù)集里的所有成員進(jìn)行取代遍歷, 將數(shù)據(jù)集里的所有成員的初始值設(shè)置成固定不變的值, 這樣就可以避免因環(huán)境溫度、 時(shí)間等變化而引起的數(shù)據(jù)集里成員值發(fā)生變化的情況, 避免對(duì)測(cè)試結(jié)果不確定的影響. 從而保證了測(cè)試結(jié)果的正確性.
2) 報(bào)告控制塊的篩選
對(duì)于被測(cè)試IED設(shè)備來(lái)說(shuō), 一般都會(huì)有多個(gè)RCB報(bào)告控制塊, 而每個(gè)報(bào)告控制塊RCB所關(guān)聯(lián)的數(shù)據(jù)集DatSet是不同的, 每個(gè)數(shù)據(jù)集DatSet中的成員數(shù)也都不同. 為了獲取到合適的RCB, 設(shè)置完RCB的屬性后, 先對(duì)RCB進(jìn)行寫(xiě)總召GI操作, 觸發(fā)RCB生成總召報(bào)告, 通過(guò)報(bào)告分析解析模塊可以獲取到該RCB關(guān)聯(lián)數(shù)據(jù)集的成員數(shù)量及成員信息.
3) 分幀報(bào)文的處理
因MMS的報(bào)告報(bào)文有超過(guò)1 518 B的情況, 單幀報(bào)文無(wú)法上送整個(gè)報(bào)文信息, 對(duì)分幀報(bào)文的解析分析需要進(jìn)行特殊處理. 考慮到TCP報(bào)文的幀頭部分內(nèi)容是固定的, 對(duì)分幀標(biāo)記的偏移位進(jìn)行判斷, 若分幀標(biāo)記表示報(bào)文有分幀, 則將該報(bào)文的固定幀頭取出存入到列表headerbuf中, 除去固定報(bào)文幀頭以外的內(nèi)容存入到segmentbuf列表中, 當(dāng)發(fā)現(xiàn)分幀報(bào)文的尾幀后, for循環(huán)遍歷重組的segmentbuf列表并進(jìn)行重新組幀, 具體實(shí)現(xiàn)邏輯如圖 9 所示.
圖 9 報(bào)告報(bào)文分幀處理邏輯
根據(jù)IEC61850-10標(biāo)準(zhǔn)要求, 對(duì)報(bào)告服務(wù)及其他服務(wù)都有明確要求, 在測(cè)試過(guò)程的分析和測(cè)試結(jié)果的判定時(shí)都需要參照標(biāo)準(zhǔn)要求. 報(bào)告服務(wù)的自動(dòng)測(cè)試同樣適用該標(biāo)準(zhǔn). 按照IEC61850標(biāo)準(zhǔn)要求, 報(bào)告控制塊包含的DA在RptEna=True和RptEna=False情況下具有可寫(xiě)和不可寫(xiě)屬性, 如表 1 所示.
表 1 報(bào)告控制塊屬性表
由于篇幅所限, 本文僅針對(duì)較為復(fù)雜較難實(shí)現(xiàn)自動(dòng)化測(cè)試的報(bào)告服務(wù)提出了實(shí)現(xiàn)自動(dòng)化檢測(cè)的詳細(xì)的分析、 建議及解決方法. 旨在對(duì)IEC61850服務(wù)器規(guī)約一致性測(cè)試自動(dòng)化的實(shí)現(xiàn)提供一定的參考.
利用基于開(kāi)源庫(kù)使用Python實(shí)現(xiàn)IEC61850服務(wù)器規(guī)約一致性自動(dòng)測(cè)試的方法對(duì)工程中常見(jiàn)的北京四方繼保自動(dòng)化股份有限公司CSC-122數(shù)字式母聯(lián)保護(hù)裝置的報(bào)告服務(wù)進(jìn)行檢測(cè).
緩存報(bào)告分段測(cè)試, 測(cè)試用例描述如表 2 所示.
表 2 報(bào)告分段測(cè)試用例說(shuō)明
使用Python進(jìn)行報(bào)告分段自動(dòng)測(cè)試的整個(gè)過(guò)程如下:
1) 自動(dòng)選取報(bào)告控制塊, 自動(dòng)選取條件為該報(bào)告控制塊關(guān)聯(lián)的數(shù)據(jù)集里的成員個(gè)數(shù)≥6個(gè);
2) 選取成功后, 通過(guò)寫(xiě)GI生成總召報(bào)告并解析獲取到該報(bào)告控制塊關(guān)聯(lián)數(shù)據(jù)集里各個(gè)成員的reference信息, 如表 3 所示;
表 3 測(cè)試報(bào)告控制塊數(shù)據(jù)集成員信息
3) 重新設(shè)置連接關(guān)聯(lián)初始值PDUSize, 將初始的PDUSize值由65 000設(shè)置為600, 如表 4 所示;
表 4 PUD Size設(shè)置
4)清除隊(duì)列, 重新寫(xiě)總召, 產(chǎn)生總召報(bào)告, 報(bào)告解析模塊實(shí)時(shí)獲取到總召報(bào)告并將解析結(jié)果存入到字典中發(fā)送到共享隊(duì)列中, 如表 5 所示;
表 5 分段報(bào)告共享隊(duì)列及實(shí)際報(bào)文
5)實(shí)時(shí)總召GI報(bào)告信息, 并根據(jù)測(cè)試用例要求判斷實(shí)際結(jié)果是否通過(guò), 如表 6 所示;
表 6 分段總召報(bào)告內(nèi)容解析
由表 6 對(duì)No.1和No.2的報(bào)告內(nèi)容進(jìn)行比對(duì)分析, 兩個(gè)報(bào)告中的SeqNum都為0, SubSeqNum從0開(kāi)始遞增, MoreSeqmentsFollow最后一個(gè)報(bào)告該屬性值置00, 所有分段報(bào)告的TimeOfEntry值相同, 都為‘01778c7c355c’, 3個(gè)判斷條件同時(shí)滿足預(yù)期, 符合測(cè)試用例要求, 測(cè)試通過(guò), 如圖 10 所示.
圖 10 報(bào)告分段測(cè)試結(jié)果圖
基于開(kāi)源庫(kù), 使用Python實(shí)現(xiàn)IEC61850服務(wù)器規(guī)約一致性自動(dòng)測(cè)試能夠滿足一般服務(wù)器端IED設(shè)備的一致性通信需求, 可以通過(guò)Python語(yǔ)言靈活調(diào)用開(kāi)源庫(kù)的各種接口, 實(shí)現(xiàn)IEC61850服務(wù)器規(guī)約一致性所有服務(wù)的測(cè)試, 同時(shí)由于Python語(yǔ)言的靈活性、 易于維護(hù)編寫(xiě)性, 可以實(shí)現(xiàn)對(duì)取代服務(wù)、 讀寫(xiě)操作等進(jìn)行全覆蓋的遍歷測(cè)試, 能夠大大提升IEC61850服務(wù)器規(guī)約一致性測(cè)試的覆蓋率, 更有利于觸發(fā)和發(fā)現(xiàn)問(wèn)題. 由于實(shí)現(xiàn)了自動(dòng)化測(cè)試, 很好地解決了IEC61850服務(wù)器規(guī)約一致性測(cè)試對(duì)技術(shù)和專(zhuān)業(yè)知識(shí)要求高的問(wèn)題. 進(jìn)而對(duì)智能化變電站里IED設(shè)備間的互聯(lián)互通互操作[11-15]起到積極重要的作用.