, ,
(陸軍工程大學石家莊校區(qū) 導彈工程系,石家莊 050003)
隨著電子技術、計算機技術的不斷進步發(fā)展,對ATS(Automatic Test System,自動測試系統(tǒng))越來越高。傳統(tǒng)的ATS軟件平臺是以儀器為核心,存在很大的局限性,主要在于儀器的互換性差和TPS(Test Program Sets,測試程序集)不可移植兩個方面,極大阻礙了ATS的通用化發(fā)展。而面向信號的測試軟件平臺是當前ATS發(fā)展的主流,它以信號為核心,整個測試過程實質(zhì)上就是信號的激勵與響應過程,這種以信號來描述測試需求和儀器能力的思想為提高TPS可移植能力以及儀器互換能力提供了可能。構建通用的ATS軟件平臺,需要對多種格式測試診斷信息以及ATS中各種接口進行標準化、統(tǒng)一化,而ATML(Automatic Test Markup Language,自動測試標記語言)的提出,為這一問題提供了方法。ATML標準使用XML(eXtention Marked Language,可擴展標記語言)來實現(xiàn)測試系統(tǒng)中測試信息的標準化描述,通過建立符合ATML標準的文檔,可實現(xiàn)測試結果、測試儀器功能、測試策略需求、信號的特征信息、診斷信息以及被測對象的規(guī)格、需求等信息共享、互換,進而實現(xiàn)測試系統(tǒng)軟件平臺的開發(fā)[1-2]。
ATML標準作為自動測試系統(tǒng)中的標準交換媒介,提供了測試系統(tǒng)中信息交換的標準數(shù)據(jù)方式,實現(xiàn)了對所有測試信息的支持。ATML 標準體系中又劃分為 9 個子標準,表1列出了標準集合以及 Schema 定義。
ATML 標準定義了構建一個 ATS 需要的大部分的要素,提供了測試信息交換和共享的框架結構及詳細內(nèi)涵,它定義的各個組件標準構成了一次測試執(zhí)行的過程中需要共享和交換的測試信息的全集,提供了獲得測試和測試程序的靜態(tài)信息以及實時的測試信息的機制。因此,ATML標準的應用將使ATS實現(xiàn)以下目標:
支持測試信息的流動;支持整個TPS生命周期;支持TPS的移植和復用;支持ATML的開發(fā)工具;支持動態(tài)測試序列以充分利用歷史數(shù)據(jù)[3-4]。
測試系統(tǒng)軟件主要包括計算機操作系統(tǒng)、測試程序開發(fā)和管理環(huán)境、測試程序運行環(huán)境,以及在測試程序開發(fā)環(huán)境中開發(fā)、在測試程序運行環(huán)境中執(zhí)行的信號模型、系統(tǒng)模型、測試資源控制程序、自檢校準測試程序等。測試系統(tǒng)軟件支持ATML測試程序的開發(fā)和執(zhí)行[5-7]。
表1 窗口長度為N的不同窗函數(shù)性能對比
測試系統(tǒng)軟件結合系統(tǒng)硬件設計采用分布式結構,進行系統(tǒng)功能分解后實現(xiàn)管理、測試功能雙分離,管理和測試功能之間通過組件接口進行數(shù)據(jù)交互,支持軟件模塊化、可重用。
開發(fā)/管理功能部分包括系統(tǒng)管理平臺、TPS開發(fā)平臺和綜合數(shù)據(jù)庫,實現(xiàn)系統(tǒng)資源配置、操作權限管理、數(shù)據(jù)模型管理、儀器驅(qū)動管理、TPS管理、TPS開發(fā)、TPS移植、TPS導入/導出、測試數(shù)據(jù)管理、故障診斷、數(shù)據(jù)信息化應用、系統(tǒng)備份/恢復等功能,提供測試系統(tǒng)工作狀態(tài)以及綜合數(shù)據(jù)等信息。
測試運行功能部分主要為TPS運行平臺,調(diào)度各類系統(tǒng)資源實現(xiàn)TPS的運行、模擬運行和調(diào)試等功能,滿足測試對象的功能檢查、性能測試、設備調(diào)教和歷程記錄等需求。
測試系統(tǒng)軟件依據(jù)ATML標準建立軟件架構、數(shù)據(jù)和信號模型,并將其納入綜合數(shù)據(jù)庫進行管理及配置,通過系統(tǒng)管理平臺、TPS開發(fā)平臺和TPS運行平臺實現(xiàn)TPS開發(fā)和運行過程的規(guī)范化、通用化和標準化。
測試系統(tǒng)軟件基于IEEE-1641標準定義信號,基于IEEE-1671和IEEE-1636等系列標準進行測試信息及結果的描述和應用,通過TPS開發(fā)平臺匹配綜合數(shù)據(jù)庫內(nèi)的數(shù)據(jù)模型形成被測對象TPS,由系統(tǒng)管理平臺統(tǒng)一管理和調(diào)度,TPS運行平臺具體負責TPS的運行支持和交互。
測試系統(tǒng)軟件建立開放式、標準化的軟件體系結構,其管理和測試功能各組成部分均為獨立功能軟件。
綜合數(shù)據(jù)庫為測試系統(tǒng)軟件綜合數(shù)據(jù)源。
系統(tǒng)管理平臺是綜合數(shù)據(jù)庫的管理和應用前端,提供測試系統(tǒng)軟件管理功能的人機接口,負責測試系統(tǒng)所有硬件、軟件及數(shù)據(jù)的管理和配置功能。
TPS開發(fā)平臺掛接于系統(tǒng)管理平臺,本地訪問綜合數(shù)據(jù)庫,實現(xiàn)TPS的開發(fā)和移植。
TPS運行平臺遠程訪問綜合數(shù)據(jù)庫,提供測試系統(tǒng)軟件測試功能的人機接口,負責被測對象TPS的測試運行和調(diào)試功能。
TPS開發(fā)平臺基于ATML標準,構建面向信號的通用TPS開發(fā)平臺,支持TPS移植。TPS開發(fā)平臺采用開放式結構,由一組用于TPS開發(fā)和輔助的功能軟件集組成,同時形成TPS開發(fā)規(guī)范用于指導和約束TPS開發(fā)[8-10]。
TPS開發(fā)平臺分為建模層、開發(fā)層和應用層,如圖1所示。
圖1 TPS開發(fā)平臺架構示意
建模層提供測試系統(tǒng)系統(tǒng)建模工具,根據(jù)測試系統(tǒng)系統(tǒng)數(shù)據(jù)模型生成符合ATML要求的被測對象描述文件集合。
開發(fā)層為TPS開發(fā)平臺的功能模塊組合,通過圖形和表單方式完成測試信號、測試參數(shù)、測試項目的組合開發(fā),也用于外部TPS的驗證和移植,形成符合被測對象描述文件要求的測試項目序列。
應用層是TPS開發(fā)平臺的執(zhí)行引擎,將被測對象測試項目序列與測試系統(tǒng)系統(tǒng)數(shù)據(jù)模型進行匹配,形成可供TPS運行平臺使用的測試執(zhí)行序列。
開發(fā)人員按照測試系統(tǒng)軟件開發(fā)規(guī)范,使用TPS開發(fā)平臺可以形成各測試對象的TPS,完成TPS開發(fā)和移植,主要功能包括:
UUT建模:建立匹配測試系統(tǒng)數(shù)據(jù)模型和具體被測對象的UUT描述實例,包括UUT信息的定義、UUT插針定義、UUT插針組、UUT信號與UUT插針組的匹配定義、UUT與接口適配器的連接定義等;
接口適配器建模:建立匹配測試系統(tǒng)數(shù)據(jù)模型和具體被測對象的接口適配器描述實例,包括接口適配器的基本信息、插針定義、以及與測試系統(tǒng)、UUT之間的連接關系定義等;
測試信號建模:建立匹配測試系統(tǒng)數(shù)據(jù)模型和具體被測對象的信號描述實例,包括信號的名稱、類型、方向等測試信號定義,以及參數(shù)、范圍、分辨率、精確度等信號參數(shù)屬性的描述信息;
測試配置建模:建立匹配測試系統(tǒng)數(shù)據(jù)模型和具體被測對象的測試配置描述實例,包括被測對象關聯(lián)的硬件、軟件和相關文檔等配置信息;
測試描述建模:建立匹配測試系統(tǒng)數(shù)據(jù)模型和具體被測對象的測試描述實例,包括UUT執(zhí)行測試時所需要的測試需求(激勵信號、響應信號等)、測試診斷、接口需求以及測試的執(zhí)行行為等物理特性及操作需求信息;
測試結果建模:建立匹配測試系統(tǒng)數(shù)據(jù)模型和具體被測對象的測試結果描述實例,包括測量值、測試狀態(tài)、以及相關的操作員、測試站和環(huán)境等信息;
TPS開發(fā):采用表單和圖形的方式描述測試流程、UUT、適配器等,通過面向信號的測試程序開發(fā)方式,形成ATML測試程序,滿足UUT檢測需求;
TPS導入/導出:支持UUT、適配器、測試配置、測試需求等描述信息文件在不同測試系統(tǒng)平臺的導入、導出,并編譯生成TPS;
TPS轉(zhuǎn)換:對TPS進行移植檢查和驗證,將其轉(zhuǎn)換為符合測試系統(tǒng)軟件識別和運行的TPS。
測試結果信息的主要作用是向測試系統(tǒng)軟件傳遞各個測試項目的結果判據(jù)信息,其標準化描述是實現(xiàn)不同平臺之間測試結果信息交換的關鍵,并且標準化的測試結果信息對于實現(xiàn)ATS被測單元的通用性起著至關重要的作用。利用 ATML 標準中的TestResults.xsd可對測試結果進行標準化描述。
ATML標準中的TestResults.xsd是用來指導用戶對描述測試結果的架構文件。符合TestResults.xsd的測試結果文檔必須以TestResults為根元素,其下面的子元素涵蓋所有在測試中與測試結果有關的信息,包括Personnel、PreTestRepairs、References、ResultSet、Site、TestDescription、TestProgram、TestStation、UUT、Workorder以及Extension元素。由此可知TestResults.xsd的結構相對復雜,因為在標準制定時需要考慮其全面性和功能的可擴展性,但對于用戶來說大多信息略顯冗余,因此Schema文件給了用戶極大的自由度去從這些子元素中篩選、刪減,選擇最需要的內(nèi)容來進行描述,這也充分體現(xiàn)了在工程中對ATML的靈活運用。通過對TestResults.xsd文件的充分研究,簡化了其復雜的樹形結構,簡化后的TestResults的Schema視圖如圖1所示。
從圖中我們可以看出,該文件仍然以TestResults為根元素,其包含四個子元素,分別是tr:Personnel(tr為名稱空間前綴,是一種用來解決名稱沖突的機制)、tr:ResultSet、tr:TestDescrption 和tr:UUT。其中tr:Personnel元素利用其子元素tr:CustomerRepresentative描述測試相關人員信息,tr:ResultSet元素用來描述測試結果的集合,屬于tr:TestGroup類型,它包含一個tr: OutCome元素和tr:TestGroup元素(該元素個數(shù)不受限制),tr: OutCome元素用來描述整體測試結果;tr:TestDescrption元素,屬于在Common.xsd文件中定義的c:ItemDescriptionReference類型,用來標記測試描述的相關信息;tr:UUT元素,屬于Common.xsd文件中定義的c:ItemInstance類型,用來標記被測對象名稱。
tr:TestGroup為此文檔中的核心,對其進行修改后,其邏輯視圖如圖2所示。該部分用于描述測試的結果數(shù)據(jù),是整個架構中最重要的一部分,該部分的描述方法也最為關鍵。
圖2 修改后的測試結果 Schema 文件邏輯視圖
測試結果數(shù)據(jù)描述的部分由tr:ResultSet元素構成,它繼承于tr: TestGroup類型。tr:TestGroup類型邏輯類型如圖3~4所示。
圖3 TestGroup 邏輯視圖
圖4 TestResult 邏輯視圖
考慮到測試結果數(shù)據(jù)數(shù)目的不確定,ATML用遞歸思想來定義了tr:TestGroup類型。tr:TestGroup不僅繼承了tr:Test的全部元素和屬性,同時還擴展了tr:Test、tr:SessionAction以及一個嵌套的tr:TestGroup元素。其中,tr:Outcome元素用來標記測試結果是否正確;tr:TestLimits用來標記標準值的范圍;tr:TestResult用來存儲測試結果的數(shù)據(jù);兩個屬性ID和name用來標識每組數(shù)據(jù)的ID號和具體信號名稱。由于測試結果數(shù)據(jù)往往是多維數(shù)據(jù),為了全面詳細描述測試結果的所有參數(shù)信息,選擇用tr:TestGroup循環(huán)嵌套的方式來存儲所有結果數(shù)據(jù);tr:SessionAction元素用來標記測試結果描述結束的信息。其余冗余的元素我們?nèi)匀豢梢赃x擇舍棄。
下面主要介紹tr:TestResult,該類型邏輯視圖如圖 3所示。
該元素中,最重要的子元素是tr:TestData,用來存儲具體數(shù)據(jù)。由圖可知tr:TestData繼承自c:Value(前綴“c:”表示該元素在Common.xsd中定義),具體代碼如下:
通過繼承的方式,tr:TestData就可以使用c:Value的子元素。而Value元素可以在 c:Datum、c:Collection與c:IndexedArray 三者中進行選擇,這種定義方式允許測試數(shù)據(jù)可以有不同的形式,充分考慮了測試需求多樣性的特點,體現(xiàn)了面向?qū)ο笾械亩鄳B(tài)性思想。根據(jù)定義,我們可以利用c:Datum元素描述單個數(shù)據(jù),c:Collection用來描述數(shù)據(jù)集合,而IndexedArray元素用來描述波形數(shù)據(jù)類型的數(shù)值數(shù)組。c:Datum元素為c:DatumType類型,該類型在Schema中被定義為:
在該段代碼中,abstract="true"屬性的定義表明該類型不可以被直接使用,而必須指明具體類型(其擴展類型),否則,使用無效。這種定義方式充分體現(xiàn)了面向?qū)ο笾屑兲擃愃枷搿?/p>
由于XML 文件格式要求相對而言較嚴格,如果直接利用文本編輯工具手動輸入則非常容易出錯,而利用 XML Spy 類似工具填充 XML 元素與屬性數(shù)據(jù),則開發(fā)效率非常低。為此,我們開發(fā)了ATML 標準的測試結果配置工具,以實現(xiàn)測試結果模型的自動配置,自動生成符合 ATML 標準的 XML 文件。
測試結果配置工具采用Visual Studio 2013中的MFC并結合了COM組件技術進行開發(fā)。在組件中,建立并對外開放ITR接口,以供客戶端程序調(diào)用來實現(xiàn)XML文檔的自動配置。在ITR接口中,設計的方法定義如下:
STDMETHOD_(HRESULT, put_UUT_Name)( BSTR newVal);
STDMETHOD_(HRESULT, Savefile)( BSTR path);
STDMETHOD_(HRESULT, put_Descripition)( BSTR newVal);
STDMETHOD_(HRESULT, put_OutcomeValue)( short newVal);
STDMETHOD_(HRESULT, put_TestResultID)( short newVal);
STDMETHOD_(HRESULT, AddData)( BSTR itemName, BSTR qualifier, short valueLength, double min, double max, double*value, short resultFlag);
可以看出,客戶端可以調(diào)用接口中的多種方法,來實現(xiàn)對測試結果中的被測對象名稱添加、相關測試信息的描述、測試結果ID號的添加、測試數(shù)據(jù)中數(shù)據(jù)值以及相關信息的添加、存儲并生成相應的XML文件等功能。其中AddData方法至關重要,該方法中通過指針遍歷存儲數(shù)據(jù)的單鏈表結構以實現(xiàn)對多組數(shù)據(jù)的訪問及添加,部分關鍵代碼如下:
STDMETHODIMP_(HRESULT) TResult::XTR::AddData(BSTR itemName, BSTR qualifier, short valueLength, double min, double max, double *value, short resultFlag)
{
TestData** td = &m_pTestGroup;
char* itemNameString, *qualifierString;
itemNameString = (char*)malloc(strlen( (itemName)) + 1);
strcpy(itemNameString, OLE2T(itemName));
qualifierString = (char*)malloc(strlen( (qualifier)) + 1);
strcpy(qualifierString, OLE2T(qualifier));
for (int i = 0; i { td = &((*td)->next);//指針指向下一組數(shù)據(jù) } (*td) = (TestData*)malloc(sizeof(TestData));; strcpy((char*)(*td)->testdataName, (char*)itemNameString); //存儲itemName信息 strcpy((char*)(*td)-> testqualifier, (char*)qualifierString); // 存儲qualifier信息 (*td)-> Length = valueLength; // 存儲valueLength信息 (*td)-> min_limit = (double*)malloc(sizeof(double)); (*td)-> max_limit = (double*)malloc(sizeof(double)); (*td)->data = (double*)malloc(sizeof(double)*valueLength); …… (*td)->next = NULL; } 對于客戶端界面的設計,如圖5所示。由圖可見,我們可以在客戶端中直接對TestResults的中的相應元素、屬性進行配置以及添加測試數(shù)據(jù)及相關信息,其中,用戶使用時間可有后臺程序自動設定。在測試數(shù)據(jù)信息添加完成后,即可點擊保存按鈕,程序會自動生成符合標準的測試結果XML文件。 圖5 配置工具界面 本文通過對ATML標準深入研究后,提出了測試系統(tǒng)軟件平臺的基本架構;設計完成了符合ATML標準的測試結果Schema,為測試結果的建模提供了依據(jù);并在此基礎上,設計并開發(fā)了相應的配置工具,實現(xiàn)了測試結果中信息的自動配置。在實際中的應用中,基于ATML的軟件平臺架構為測試系統(tǒng)的開發(fā)提供了依據(jù),為未來自動測試系統(tǒng)發(fā)展奠定良好基礎;且本文開發(fā)測試結果建模工具效果良好,可生成所需的測試結果XML文件為測試過程帶來了極大便利,為測試信息的共享和重用奠定了良好的基礎。5 總結