楊炳琳 ,鄭 賓
(1.中北大學(xué) 電氣與控制工程學(xué)院,太原 030051;2.中北大學(xué) 電子測(cè)試技術(shù)國(guó)家重點(diǎn)實(shí)驗(yàn)室,太原 030051)
隨著工業(yè)自動(dòng)化程度的飛速提高和計(jì)算機(jī)技術(shù)的跨越式發(fā)展,武器裝備的更新速度越來(lái)越快,相應(yīng)的自動(dòng)化測(cè)試系統(tǒng)也得到了長(zhǎng)足發(fā)展。然而,目前的測(cè)試系統(tǒng)大多針對(duì)專用的兵器設(shè)備,不同的被測(cè)設(shè)備,其測(cè)試系統(tǒng)互不相同,測(cè)試資源也不能互相通用,測(cè)試系統(tǒng)之間無(wú)法共享測(cè)試程序與測(cè)試數(shù)據(jù),這樣就會(huì)造成測(cè)試設(shè)備的重復(fù)采購(gòu)與浪費(fèi)[1],極大地增添了測(cè)試系統(tǒng)研發(fā)和后續(xù)維修養(yǎng)護(hù)的費(fèi)用。
為了解決目前自動(dòng)測(cè)試系統(tǒng)存在的這些不足,并使不同自動(dòng)測(cè)試系統(tǒng)之間的數(shù)據(jù)交換更加方便,測(cè)試資源具有良好的可共用性,電氣和電子工程師協(xié)會(huì)制定了自動(dòng)測(cè)試標(biāo)記語(yǔ)言標(biāo)準(zhǔn)ATML。ATML基于可擴(kuò)展標(biāo)記語(yǔ)言XML,其目的是組建一個(gè)測(cè)試信息交換的標(biāo)準(zhǔn),該標(biāo)準(zhǔn)使測(cè)試系統(tǒng)的可移植性和儀器的可互換性難度降低,并且支持模塊化的測(cè)試系統(tǒng)軟件的開(kāi)發(fā)[2]。在此,研究了基于ATML的可重用測(cè)試系統(tǒng)架構(gòu),使得自動(dòng)測(cè)試系統(tǒng)具有模塊化、層次化和易擴(kuò)展等特性,并具有良好的可重用性。
ATML規(guī)定了自動(dòng)測(cè)試系統(tǒng)中各個(gè)模塊之間的測(cè)試信息交換標(biāo)準(zhǔn),它覆蓋了測(cè)試儀器、測(cè)試方法、測(cè)試過(guò)程和測(cè)試數(shù)據(jù)等測(cè)試系統(tǒng)的的各種測(cè)試信息,可以作為自動(dòng)測(cè)試系統(tǒng)中的信息交換媒介,為可重用的測(cè)試系統(tǒng)提供了比較理想的解決方案。ATML主要包括3個(gè)部分:ATML框架、ATML組件以及相關(guān)標(biāo)準(zhǔn)[3]。框架負(fù)責(zé)給各個(gè)組件提供標(biāo)準(zhǔn)的應(yīng)用平臺(tái),而ATML標(biāo)準(zhǔn)則是框架中的最主要內(nèi)容。
ATML是在XML語(yǔ)言的基礎(chǔ)上建立的,根據(jù)描述測(cè)試信息的不同分為9個(gè)子組件,每個(gè)子組件都有對(duì)應(yīng)的適用于測(cè)試的可擴(kuò)展標(biāo)記語(yǔ)言架構(gòu)定義XSD文件,也即測(cè)試環(huán)境下的XML文檔。XSD文件嚴(yán)格地遵循XML的語(yǔ)言規(guī)范,可以針對(duì)不同的測(cè)試需求進(jìn)行擴(kuò)展,可讀性強(qiáng),并且擁有良好的平臺(tái)無(wú)關(guān)性。ATML標(biāo)準(zhǔn)的9個(gè)子組件以及對(duì)應(yīng)的XSD文件見(jiàn)表1。
表1 ATML標(biāo)準(zhǔn)的子組件和對(duì)應(yīng)的XSD文件Tab.1 ATML standard components and corresponding XSD file
ATML標(biāo)準(zhǔn)使用XSD文件來(lái)描述測(cè)試過(guò)程中的數(shù)據(jù),滿足ATML定義的測(cè)試信息能夠被測(cè)試系統(tǒng)軟件中的ATML文件解析與封裝模塊讀取和修改,從而達(dá)到測(cè)試信息交換和共享的目的。
ATML中的9個(gè)子組件,可以描述一個(gè)測(cè)試系統(tǒng)所需要的絕大多數(shù)測(cè)試信息[4]。
——Common組件定義了為其他多個(gè)組件的XML Schema所使用的公共類型和屬性組,是ATML中的共用資源。
——Test Description組件可以簡(jiǎn)化測(cè)試性能、測(cè)試條件、診斷需求的定義,并且支持測(cè)試儀器對(duì)被測(cè)對(duì)象的定位、排列和校驗(yàn)等操作。
——Instument Description組件定義了儀器的基本信息、儀器通道和函數(shù)信息,比如儀器的名稱、總線類型、通道序號(hào)等測(cè)試儀器信息。它是對(duì)儀器的靜態(tài)描述,包括儀器的功能特性等。
——UUT Description組件實(shí)現(xiàn)對(duì)于一個(gè)指定被測(cè)件進(jìn)行唯一性描述,定義了被測(cè)對(duì)象的各個(gè)特性,包括名稱、型號(hào)、接口類型、物理屬性等。被測(cè)對(duì)象是測(cè)試系統(tǒng)軟件與硬件之間的接口,測(cè)試程序通過(guò)被測(cè)件信息對(duì)被測(cè)設(shè)備進(jìn)行識(shí)別、測(cè)試和診斷。
——Test Adapter組件定義了實(shí)現(xiàn)被測(cè)對(duì)象和測(cè)試站之間接口的唯一性描述,包括電氣特性、標(biāo)識(shí)、連接器、接插件和導(dǎo)線等。它的作用是連接測(cè)試系統(tǒng)和被測(cè)設(shè)備,起到測(cè)試系統(tǒng)接口和被測(cè)設(shè)備指定接口之間的“橋梁”作用。
——Test Station組件詳細(xì)定義了一個(gè)工作站的信息,包括物理和電器特性、測(cè)試系統(tǒng)的端口信息等。
——Test Results組件定義了一個(gè)在某一測(cè)試環(huán)境下測(cè)試一個(gè)被測(cè)對(duì)象所得到的各種測(cè)試數(shù)據(jù),包括測(cè)量值、測(cè)試通過(guò)與否、環(huán)境條件等。
——Diagnostics組件定義了有助于診斷的測(cè)試信息以及對(duì)測(cè)試程序執(zhí)行過(guò)程的信息等。
2.1.1 ATML文件的解析
由于ATML文檔是基于XML格式的,而測(cè)試系統(tǒng)程序不能直接對(duì)XML文件進(jìn)行操作,必須先由XML解析器對(duì)XML文件進(jìn)行解析,讀取其中某些元素值或者屬性值,而后應(yīng)用程序通過(guò)XML解析器對(duì)解析結(jié)果進(jìn)行操作,從而間接地實(shí)現(xiàn)對(duì)XML文檔數(shù)據(jù)的訪問(wèn)。
XML文件的解析有2種方法,基于文檔對(duì)象模型DOM或者XML簡(jiǎn)單API即SAX。這2種方法各具優(yōu)勢(shì),但是在可重用測(cè)試系統(tǒng)的ATML文件解析過(guò)程中需要不斷地在整個(gè)文件中檢索或者隨機(jī)讀取,而SAX方法是逐行掃描文檔的,不支持隨機(jī)讀取[5];DOM方法則是將整個(gè)文檔讀入內(nèi)存中,支持隨機(jī)讀取,因此ATML文件的解析方法選用DOM方法。此外,DOM方法還具有平臺(tái)無(wú)關(guān)性,編程模型簡(jiǎn)單,數(shù)據(jù)轉(zhuǎn)換方便等優(yōu)點(diǎn)。
美國(guó)國(guó)家儀器公司推出的LabWindows/CVI測(cè)試系統(tǒng)開(kāi)發(fā)軟件提供了完整的XML文件操作函數(shù)庫(kù)——cvixml.fp,其中包括了所有與XML文件操作有關(guān)的函數(shù),比如搜索、修改、賦值和取值等功能函數(shù)。
解析符合ATML標(biāo)準(zhǔn)的XML文件的流程如圖1所示。
圖 1 ATML文件的解析過(guò)程Fig.1 Process of parsing ATML files
其流程具體如下:
①在LabWindows/CVI中載入庫(kù)函數(shù)cvixml.fp,并在程序開(kāi)頭引用頭文件“cvixml.h”。
②測(cè)試系統(tǒng)軟件根據(jù)路徑找到相應(yīng)的XML文件,對(duì)文件進(jìn)行加載,并且獲取文檔的根元素。主要代碼為
CVIXMLLoadDocument(xmlPath,&xmlDocument);
CVIXMLGetRootElement(xmlDocument,&xmlRootElement);
其中,變量“xmlPath”提供文件的路徑;“xml Document”提供文件句柄;“xmlRootElement”對(duì)應(yīng)根元素句柄。
③根據(jù)需求搜尋特定的子元素,可以根據(jù)特定子元素的標(biāo)簽或者索引來(lái)搜尋。主要代碼為
CVIXMLGetChildElementByTag(xmlRootElement,childTag,&xml ChildElement);
根據(jù)子元素標(biāo)簽尋找標(biāo)簽名為childTag的子元素,并分配句柄xmlChildElement。
CVIXMLGetC hildElementByIndex (xmlRootElement,childIndex , &xmlChildElement);
根據(jù)子元素索引來(lái)尋找索引為childIndex的子元素,并分配句柄xmlChildElement。
④測(cè)試信息一般都在子元素的屬性或者值當(dāng)中,因此找到特定子元素后,需要獲取它的屬性或者元素值。主要代碼為
CVIXMLGetElementValue(xmlChildElement,childValue1);
讀取子元素“xmlChildElement”的值并且寫(xiě)入變量“childValue1”。
CVIXMLGetAttributeByName (xmlChildElement,childTag,&child Attribute);
獲得子元素“xmlChildElement”的屬性,并分配句柄“childAttribute”。
CVIXMLGetAttributeValue(childAttribute,childValue2);
獲得屬性值并寫(xiě)入“childValue1”。
⑤操作完畢后釋放擱置不用的句柄,主要代碼為
CVIXMLDiscardDocument(xmlDocument);
釋放載入的xml文件句柄。
2.1.2 ATML文件的封裝
建立ATML標(biāo)準(zhǔn)文件有2種方式,創(chuàng)建新的ATML描述文件和修改ATML標(biāo)準(zhǔn)文件。相對(duì)于創(chuàng)建新的ATML文件,遠(yuǎn)不如修改標(biāo)準(zhǔn)ATML文件方便快捷,因?yàn)锳TML文件一般都有著比較固定的格式和結(jié)構(gòu),修改ATML文件不需要對(duì)整個(gè)文件結(jié)構(gòu)進(jìn)行修改,只需要將測(cè)試需求變化的部分修改即可[6]。
ATML的封裝過(guò)程和解析過(guò)程類似,同樣使用到LabWindows/CVI自帶的cvixml.fp文件里的庫(kù)函數(shù)。封裝過(guò)程首先將尋找需要修改的ATML標(biāo)準(zhǔn)文件,讀取文件載入內(nèi)存后搜尋需要修改的元素位置,對(duì)相應(yīng)元素的值或?qū)傩园凑諟y(cè)試需求進(jìn)行修改,之后保存并輸出新的測(cè)試描述文件即可。
2.2.1 測(cè)試描述文件
測(cè)試描述文件的中心就是聲明測(cè)試被測(cè)設(shè)備所需要的測(cè)試序列和用于診斷被測(cè)對(duì)象故障的測(cè)試診斷信息,需要Test Description.XSD和Uut Description.XSD這2個(gè)文件進(jìn)行描述。
測(cè)試描述文件定義了測(cè)試過(guò)程中所涵蓋到的全部測(cè)試項(xiàng)目,每個(gè)測(cè)試項(xiàng)目一般由一個(gè)或者多個(gè)測(cè)試動(dòng)作組成,每個(gè)獨(dú)立的測(cè)試動(dòng)作又包括了測(cè)試類型、參數(shù)采集和接口測(cè)試等內(nèi)容。ATML定義了Setup,Reset,Read,Compare,Connect,Disconnect,Messageout和 Waitfor等 8種操作[7],不同的測(cè)試方式可能需要不同的操作組合。在實(shí)際應(yīng)用中的激勵(lì)和測(cè)量,ATML標(biāo)準(zhǔn)規(guī)定了2種測(cè)試方法的組合:
激勵(lì)Setup+Connect;
測(cè)量Setip+Connect+Read。
當(dāng)測(cè)試信號(hào)源時(shí),必須在測(cè)試描述文檔中定義Setup與Connect的組合[8],Setup按照IEEE 1641標(biāo)準(zhǔn)描述測(cè)試行為,Connect定義測(cè)試儀器與被測(cè)對(duì)象物理接口的連接規(guī)范;當(dāng)由外部輸入測(cè)試信號(hào),要求測(cè)量參數(shù)值時(shí),必須在測(cè)試描述中定義Setup,Connect及Read組合,Setup和Connect的作用與前者一致,Read用以讀取測(cè)量值。例如,用于直流電壓測(cè)試的測(cè)試方法定義為
通過(guò)ATML標(biāo)準(zhǔn),將被測(cè)對(duì)象的測(cè)試要求轉(zhuǎn)變?yōu)閷?duì)激勵(lì)信號(hào)和測(cè)量信號(hào)的要求,該虛擬的資源要求通過(guò)設(shè)備驅(qū)動(dòng)器接口內(nèi)部服務(wù)機(jī)制的解釋和定位轉(zhuǎn)換成真實(shí)的物理資源,在驅(qū)動(dòng)儀器中完成測(cè)試任務(wù)[9]。
2.2.2 可重用測(cè)試系統(tǒng)
可重用測(cè)試系統(tǒng)通過(guò)測(cè)試程序的XML解析模塊讀取不同的符合ATML標(biāo)準(zhǔn)的測(cè)試描述文件,然后對(duì)當(dāng)前的測(cè)試系統(tǒng)進(jìn)行測(cè)試資源的重新分配,更改測(cè)試功能,從而實(shí)現(xiàn)測(cè)試系統(tǒng)針對(duì)不同被測(cè)對(duì)象和不同測(cè)試需求的可重用。具體的實(shí)現(xiàn)過(guò)程如圖2所示。
圖2 可重用測(cè)試系統(tǒng)架構(gòu)Fig.2 Reusable test system architecture
在扭簧轉(zhuǎn)動(dòng)剛度標(biāo)定中,應(yīng)用基于ATML設(shè)計(jì)的測(cè)試軟件,對(duì)豎琴式扭簧的轉(zhuǎn)動(dòng)剛度進(jìn)行標(biāo)定,標(biāo)定系統(tǒng)及測(cè)試程序如圖3和圖4所示。
測(cè)量扭矩和轉(zhuǎn)動(dòng)角度,并采用最小二乘法擬合直線,試驗(yàn)結(jié)果見(jiàn)表2。試驗(yàn)結(jié)果與扭簧轉(zhuǎn)動(dòng)剛度的標(biāo)稱值 2.35 N·m/(°)的最大誤差不到 0.01%,可以滿足實(shí)際需求。
圖3 扭簧剛度標(biāo)定系統(tǒng)Fig.3 Torsional spring stiffness calibration system
圖4 基于ATML的扭簧標(biāo)定程序Fig.4 Torsion spring calibration procedure based on ATML
表2 扭簧標(biāo)定值Tab.2 Torsion spring calibration value
通過(guò)對(duì)ATML標(biāo)準(zhǔn)的分析,提出了可重用測(cè)試系統(tǒng)架構(gòu)的關(guān)設(shè)計(jì)方案。通過(guò)試驗(yàn)驗(yàn)證了該系統(tǒng)的可行性和正確性。基于ATML的可重用測(cè)試系統(tǒng)是未來(lái)的發(fā)展方向,可以有效地減少測(cè)試系統(tǒng)的重復(fù)性開(kāi)發(fā),降低維修養(yǎng)護(hù)費(fèi)用,具有較高的研究?jī)r(jià)值和廣闊的應(yīng)用前景。