彭天玲,袁凱南,羅華,朱戰偉
(中機國際工程設計研究院有限責任公司,湖南長沙410021)
隨著科學技術的發展,電機測試手段和技術都得到了很大的提高,由傳統的全手工試驗過程發展為現在少量人工輔助的全自動化測試。試驗過程中測試分析軟件是實現自動化測試的關鍵技術。目前國內電機測試分析軟件技術的開發大多采用結構化方式或者簡單面向對象來實現,這種開發方式效率低下,軟件后期的維護復雜,成本較高。隨著軟件工程技術的發展,在電機測試分析軟件中引進構件化技術,形成電機測試分析軟件的基礎構件庫,提高電機測試分析軟件的開發效率并將電機測試分析軟件產品化。構件化軟件設計的核心思想是要解決滿足需求的軟件復用問題[1],使得軟件產品的生產像搭積木一樣容易。目前在電力、通信、環保、金融等行業都已形成行業軟件開發構件庫。在國內電機測試過程中,由于電機測試過程的特殊性及復雜性,測試分析軟件的開發過程中一般只注重試驗方法的實現及試驗結果的準確性,往往忽視了電機測試分析軟件本身構件庫的開發與應用。由于電機測試過程中,各企業實際采用的試驗方法來源于國家及企業有關標準,這使形成電機測試分析構件庫成為了可能。本文將先進的軟件工程技術應用到傳統的電機測試行業,必將大大提高電機測試的信息化處理水平。
根據電機測試的特點,電機測試分析軟件系統主要由試驗數據采集驅動模塊、數據存儲模塊、試驗數據分析處理模塊、人機交互界面、試驗報表模塊組成,如圖1 所示。根據測試分析軟件的組成情況,我們從中提取出通信驅動構件、數據存儲構件、數據處理分析構件、人機界面構件和試驗報表構件。

圖1 測試分析軟件系統結構圖
在電機測試過程中,由于測試中每個企業所采用的功率分析儀,溫度測量儀,轉矩轉速測量儀等測量設備都不盡相同。將通信接口抽象出來形成統一的驅動構件,不同的通信設備只要實現各自的通信協議,并通過統一的接口掛接到系統中即可,如此可以很好的應用系統,無需隨儀表的變化而改動相關代碼。由于電機測試相關國家和企業標準試驗方法的多樣化,導致不同的試驗方法,所需的試驗數據及數據處理過程中大量的中間過程數據及曲線數據都有很大的不同,這些數據如何合理的存儲也是測試分析軟件設計的關鍵,這需要我們設計數據存儲構件來解決這個問題,保證測試分析軟件的通用性,實現數據存儲模塊的重復使用。
數據處理分析是電機測試分析軟件的核心模塊,由于電機試驗數據的分析過程較為復雜,既涉及到各種復雜的分析算法,也有分析得到的曲線,本文根據數據處理的特點,抽象出通用的構件來解決此類問題。電機測試分析軟件的人機交互界面是直接面向用戶的,也是軟件開發過程中比較耗費時間的一個模塊,本文根據有關標準中規定的試驗方法過程設計形成友好的試驗界面并形成相對穩定的界面構件庫,將大大提高軟件開發效率,實現軟件模塊的高度復用。電機測試最后的結果將以報告的形式呈現出來,由于電機測試項目眾多,生成的報表也多,并且不同的企業報表格式差別也很大,報表系統模塊的開發在整個測試軟件的開發過程中亦占有重要的地位。
通信驅動構件的主要功能是將試驗所用測試儀器儀表的通信規約及通道完成封裝,并在實現規約過程中實現試驗時序流程控制,最終以動態鏈接庫的形式形成構件。對于不同的設備將形成不同動態庫,應用程序在使用時完全可以根本配置情況加載相應動態庫完成和有關儀表的通信功能。通信驅動構件接口主要有初始化、下發數據、獲取儀表數據、釋放資源、版本管理等五大功能,試驗過程中整個時序流程控制由參數所帶的功能碼實現。
根據電機測試的特點,對電機測試數據仔細分析發現,測試數據的存儲不能簡單的用字段完成存儲。這樣不僅無法實現測試軟件數據存儲格式的通用性,而且會導致存儲結構混亂,程序的開發和維護將變得異常繁瑣復雜。我們采用數據字典方式來處理,根據有關國家標準以及在電機試驗過程中積累的經驗形成相對完備的數據字典庫,并且設計出一套由字典庫中的字典數據配置出所需要試驗變量的生成規則,這將解決測試數據復雜性問題。當所需測試數據在字典庫中無法生成時,可以增加字典數據完善字典庫。在設計數據表結構時根據字典數據的特點生成數據表結構。例如,數據字典庫中有電壓字典變量,利用數據字典的映射功能和相關規則我們可以配置出堵轉電壓Uab,Uac,Ubc,在數據表它們都存儲在堵轉數據表的電壓字段中,而無需定義成堵轉電壓的三個變量來表示,并且在堵轉試驗數據表中用三個字段來存儲。這種方法可以很好的解決測試數據存儲的通用性,并且形成存儲構件。
由電機測試的相關標準可知對試驗數據的處理過程是相對固定的,當對某個特定試驗項目的試驗方法編制好分析算法時,分析算法的輸入數據是固定的,輸出結果也是明確的。并且由此分析得到的特性曲線也是確定的。所以我們提取的分析構件不僅僅是對算法過程的封裝形成一個簡單的分析類,而是將該試驗項目的試驗方法有關的內容全部構件化,形成一個所見即所得的構件[2],使用時僅需要按試驗標準要求輸入相關試驗數據即可得到分析結果和特性曲線數據。通過這樣的分析處理構件可以提高對試驗標準有關程序模塊的軟件復用程度。
測試軟件的人機交互界面設計根據多年從事電機測試分析軟件開發經驗以及國家標準對試驗過程的規定,可以設計出符合電機測試過程的軟件界面,并將其構件化,形成操作方便,視覺舒服的界面組件系統。有利于提高測試分析軟件的開發效率,并且保持軟件風格的一致性。
電機測試的最終結果都是要形成測試報告,每個企業的試驗報告都有自己的風格特點,如果為每個企業都開發報表生成系統不僅耗時,后期的維護工作也非常的繁瑣,根據電機試驗報告特點開發一個報表系統交給用戶自己來定制報告格式并最終按用戶定制格式生成報告并形成報表設計構件。報表構件的主要功能就是能根據客戶自己編制的格式生成相應的格式配置文件,在應用程序里能根據這些配置文件生成相應報告。
利用通信驅動構件、數據存儲構件、數據分析構件、報表構件、人機交互界面構件可以很方便的搭建出測試分析軟件。以人機交互界面構件和數據分析構件來闡述構件庫的應用,圖2 所示為測試軟件的主界面,其中左邊的試驗項目樹形界面圖形即為采用界面構件化方式實現的界面構件。

圖2 測試軟件主界面圖
數據分析構件的應用方式如圖3 所示,圖中所示內容為將同步電機的三相突然短路分析過程封裝成一個構件,該構件不僅包含復雜算法的分析過程,并且能將整個分析過程和結果的曲線展示出來,實現大粒度的構件封裝[3],方便應用程序的使用。

圖3 數據分析構件的應用方式示意圖
本文詳細介紹了如何將先進的軟件工程開發技術應用到傳統的電機測試行業中,并且結合電機測試工程領域的特點提煉且實現了測試分析軟件的構件化平臺,成功的將構件系統應用到電機測試分析軟件的開發中,極大的提高了電機測試軟件開發的效率,方便維護。構件化技術的應用也使電機測試分析軟件具有更好的模塊化效果、通用性更好、且更具開放性[4]。
[1] 劉杰生.構件化軟件系統測試技術研究[J].艦船電子工程,2008.7.
[2] Gary A.Bundell,Gareth Lee,John Morris,Kris Parker.A Software Component Verification Tool. Inter-national Conference on Software Methods and Tools2000SMT.2000.
[3] 徐煥良,李緒蓉,丁秋林.基于規則庫的業務構件重組的實現[J].計算機集成制造系統-CIMS.2003.10.
[4] 王慧,等譯.Souza D D,Wills A.UML 對象、組件和框架—CATALY-SIS 方法[M].北京:清華大學出版社,2004:3-32.