閻 俊 費(fèi)月玲 張敏芳
(西安電子工程研究所 西安 710100)
軟件自動(dòng)化測(cè)試是相對(duì)于手工測(cè)試而存在的,由測(cè)試人員根據(jù)測(cè)試項(xiàng)目調(diào)試細(xì)則中描述的規(guī)程一步一步執(zhí)行測(cè)試,得到實(shí)際結(jié)果與期望結(jié)果的比較。在此過(guò)程中,節(jié)省人力、時(shí)間或硬件資源,提高測(cè)試效率。近年來(lái),越來(lái)越多的軟件自動(dòng)化測(cè)試方法應(yīng)用于電子系統(tǒng)測(cè)試領(lǐng)域。例如,文獻(xiàn)[1]基于關(guān)鍵字驅(qū)動(dòng)的Linux-GUI自動(dòng)化測(cè)試是建立在Linux自動(dòng)化測(cè)試開(kāi)源軟件的基礎(chǔ)之上,通過(guò)其獨(dú)有的分層結(jié)構(gòu)框架,以中低層向高層提供服務(wù)的模式,達(dá)到高效化自動(dòng)測(cè)試目的;文獻(xiàn)[2]中利用遠(yuǎn)程端口將用戶與網(wǎng)絡(luò)設(shè)備有效連接的Python-CLI自動(dòng)化測(cè)試,通過(guò)鍵盤輸入相應(yīng)測(cè)試命令,進(jìn)而實(shí)現(xiàn)自動(dòng)化測(cè)試過(guò)程;文獻(xiàn)[3]通過(guò)USB-6211數(shù)據(jù)采集卡結(jié)合LabVIEW軟件設(shè)計(jì)多路模擬數(shù)據(jù)采集與控制測(cè)試平臺(tái),實(shí)現(xiàn)多路信號(hào)采集和多路數(shù)字信號(hào)輸出的功能。
本文以某毫米波探測(cè)組件測(cè)試系統(tǒng)繁瑣、重復(fù)的手動(dòng)測(cè)試為原型,基于LabVIEW[4]“數(shù)據(jù)流”框圖式編程模式,設(shè)計(jì)了自動(dòng)化測(cè)試控制系統(tǒng)。該測(cè)試系統(tǒng)改變了以往繁瑣的手動(dòng)測(cè)試過(guò)程,實(shí)現(xiàn)了測(cè)量的自動(dòng)化、測(cè)試數(shù)據(jù)的可視化、以及數(shù)據(jù)管理的有序化。既節(jié)省了測(cè)試測(cè)量時(shí)間,又提高了測(cè)試測(cè)量的精確度。
某毫米波探測(cè)組件外場(chǎng)測(cè)試工作原理如圖1所示。當(dāng)告警天線1~天線n截獲到目標(biāo)威脅信號(hào)時(shí),毫米波探測(cè)組件(虛線框)中檢波模塊接收信號(hào)后對(duì)其進(jìn)行對(duì)數(shù)放大,將視頻信號(hào)輸出給信號(hào)處理單元。信號(hào)處理單元中的 A/D 模塊對(duì)視頻信號(hào)進(jìn)行采樣量化后,得到各通道信號(hào)幅度的量化值,在信號(hào)處理單元中進(jìn)行脈沖描述字的形成和信號(hào)分選,并通過(guò)方位解算模塊對(duì)相鄰波束輸出的幅度值進(jìn)行比較、計(jì)算,最終得到輻射源的方位碼。信號(hào)處理模塊將輻射源方位碼通過(guò)USBCANII接口卡[5]上傳給PC終端,完成整個(gè)毫米波探測(cè)組件的測(cè)試功能。
與圖1相對(duì)應(yīng)的實(shí)驗(yàn)室模擬測(cè)試系統(tǒng)如圖2所示。其中,虛線框所示探測(cè)組件主要由毫米波檢波模塊的預(yù)警接收單元(接收模塊1~4,共包括8個(gè)接收通道)和包含 A/D 量化模塊、信號(hào)分選模塊、方位解算模塊等部分的信號(hào)處理模塊兩大部分組成;信號(hào)源模擬目標(biāo)威脅信號(hào),為測(cè)試系統(tǒng)提供穩(wěn)定的頻率、功率輸出源;PC作為主控計(jì)算機(jī),運(yùn)行基于Lab-view的輻射源方位碼測(cè)試程序,同時(shí)通過(guò)USBCANII接口卡[5]與毫米波探測(cè)組件之間建立通訊渠道, 把方位碼測(cè)試數(shù)據(jù)上傳給PC終端,同時(shí)收集方位碼測(cè)試數(shù)據(jù)并通過(guò)USBCANII接口卡[5]回傳給CAN通訊總線。
圖2 實(shí)驗(yàn)室模擬測(cè)試系統(tǒng)組成框圖
USBCANII高性能CAN接口卡[1]是與USB2.0總線全速規(guī)范兼容的,集成2路CAN接口的高性能型CAN總線通訊接口卡。主控計(jì)算機(jī)通過(guò)USB總線連接至CAN網(wǎng)絡(luò),CAN接口連接至信處模塊數(shù)據(jù)端口,構(gòu)成毫米波探測(cè)組件輻射源方位碼數(shù)據(jù)收發(fā)的CAN網(wǎng)絡(luò)控制節(jié)點(diǎn),如圖3所示。
圖3 CAN接口卡網(wǎng)絡(luò)控制節(jié)點(diǎn)
USBCANII接口卡[5]在主控計(jì)算機(jī)和兩路CAN控制節(jié)點(diǎn)之間建立通信渠道,把CAN協(xié)議轉(zhuǎn)換為USB協(xié)議,并把輻射源方位碼測(cè)試數(shù)據(jù)上傳給主控計(jì)算機(jī);CAN控制子節(jié)點(diǎn)把從探測(cè)組件收集到的數(shù)據(jù)通過(guò)CAN協(xié)議回傳給USBCANII接口卡;CAN通信實(shí)現(xiàn)了輻射源方位碼的數(shù)據(jù)收發(fā),USB通信完成和主控計(jì)算機(jī)之間的數(shù)據(jù)交換任務(wù)。
實(shí)驗(yàn)室搭建毫米波探測(cè)組件自動(dòng)化測(cè)試系統(tǒng)基于Lab-view“數(shù)據(jù)流”框圖式編程[4]模式。硬件受控部分主要包括主控終端計(jì)算機(jī)、毫米波信號(hào)源E8257D和USBCANII接口卡[5];軟件部分主要包括同一臺(tái)PC終端同時(shí)運(yùn)行自動(dòng)化測(cè)試系統(tǒng)主程序和動(dòng)態(tài)調(diào)用“輻射源方位碼”測(cè)試子程序;自動(dòng)化測(cè)試平臺(tái)搭建連接框圖如圖4所示。
圖4 自動(dòng)化測(cè)試平臺(tái)連接框圖
“輻射源方位碼”測(cè)試子程序接收到的每一幀測(cè)試數(shù)據(jù)最終以多列列表框控件顯示在VI前面板。每一列顯示所要獲取的參數(shù)類別。自動(dòng)化程序?qū)⑿枰{(diào)用的列參數(shù)數(shù)據(jù)通過(guò)“獲取控件值方法”最終實(shí)現(xiàn)兩個(gè)測(cè)試終端之間的數(shù)據(jù)交換。
主控計(jì)算機(jī)是整個(gè)測(cè)試系統(tǒng)的核心,主要完成數(shù)據(jù)的接收、顯示、存取等功能以及控制參數(shù)的設(shè)定。PC計(jì)算機(jī)同時(shí)運(yùn)行“輻射源方位碼”測(cè)試程序和整個(gè)系統(tǒng)自動(dòng)化控制程序兩個(gè)終端界面。在自動(dòng)化測(cè)試程序運(yùn)行的過(guò)程中,“輻射源方位碼”測(cè)試程序作為子VI被自動(dòng)化控制主VI程序動(dòng)態(tài)調(diào)用,主VI和子VI并行運(yùn)行、動(dòng)態(tài)加載,自動(dòng)化主VI從“輻射源方位碼”子VI中獲取所需參數(shù)數(shù)據(jù),同時(shí)返回自動(dòng)化主VI中進(jìn)行運(yùn)算、比較,完成整個(gè)自動(dòng)化測(cè)試過(guò)程。
動(dòng)態(tài)調(diào)用的關(guān)鍵步驟是獲得被調(diào)用的VI句柄,通過(guò)VI屬性和方法,實(shí)現(xiàn)對(duì)被調(diào)用VI的動(dòng)態(tài)操控。動(dòng)態(tài)調(diào)用“輻射源方位碼”子VI的程序流向如圖5所示。自動(dòng)化控制主VI通過(guò)“打開(kāi)前面板”方法節(jié)點(diǎn)加載“輻射源方位碼”VI,通過(guò)VI的“運(yùn)行”方法運(yùn)行“輻射源方位碼”VI,再通過(guò)“關(guān)閉引用”函數(shù)關(guān)閉引用句柄。
圖5 動(dòng)態(tài)調(diào)用基本過(guò)程
利用“獲取控件[變體]”的方法取得“輻射源方位碼”子VI多列列表框控件中某列參數(shù)的值。圖6為獲取多列列表框控件中P、PW、接收通道等參數(shù)的程序流程。
圖6 通過(guò)“獲取控件[變體]”法獲取“輻射源方位碼”VI中控件值
動(dòng)態(tài)調(diào)用完成后,需要對(duì)獲取的控件參數(shù)數(shù)據(jù)進(jìn)行讀取。為了保證多個(gè)線程之間數(shù)據(jù)交換的同步,本文選擇事件結(jié)構(gòu)的“超時(shí)”分支,對(duì)動(dòng)態(tài)調(diào)用子VI線程每隔3500 ms讀取一次調(diào)用控件的參數(shù)值,程序流程如圖7所示。
圖7 讀取“輻射源方位碼”VI中參數(shù)控件值
程控儀器在整個(gè)自動(dòng)化測(cè)試系統(tǒng)中擔(dān)負(fù)著實(shí)際測(cè)量的任務(wù)。本文主控計(jì)算機(jī)通過(guò)以太網(wǎng)卡與信號(hào)源E8257D建立TCP數(shù)據(jù)通信。程控信號(hào)源E8257D的軟件實(shí)現(xiàn)線程如圖8所示。
圖8 程控E8257D線程
首先,主控計(jì)算機(jī)通過(guò)主機(jī)名或IP地址與端口號(hào)建立偵聽(tīng),信號(hào)源E8257D根據(jù)主控計(jì)算機(jī)IP地址或端口號(hào)發(fā)出連接請(qǐng)求,等待計(jì)算機(jī)與E8257D建立連接后,在VISA資源控件下拉列表中選取所要連接的硬件資源;其次,查閱E8257D儀器使用手冊(cè)[6],找到所需的儀器命令字符,用NI-VISA Write.vi向儀器發(fā)送該指令,如*RCL0,0命令字符串表示直接調(diào)用名為0,0的儀表存儲(chǔ)波形文件;最后,依據(jù)測(cè)試要求按照1 dB步進(jìn)量變換信號(hào)源輸出功率值,待“輻射源方位碼”測(cè)試終端響應(yīng)后回讀滿足技術(shù)條件要求的功率輸出值。
搭建如圖9自動(dòng)化測(cè)試系統(tǒng)硬件平臺(tái),選擇E825-7D作為信號(hào)源提供高頻毫米波輸出信號(hào),與待測(cè)設(shè)備連接后運(yùn)行自動(dòng)化測(cè)試軟件程序。圖9對(duì)自動(dòng)化測(cè)試平臺(tái)的系統(tǒng)功能進(jìn)行定義,形成對(duì)系統(tǒng)軟件功能的總體要求。
圖9 自動(dòng)化測(cè)試平臺(tái)軟件功能總體框圖
首先,設(shè)置程控儀器線程。針對(duì)不同測(cè)試項(xiàng)對(duì)信號(hào)源E8257D信號(hào)產(chǎn)生及功能參數(shù)進(jìn)行設(shè)置,包括以太網(wǎng)口的連接、儀表參數(shù)的設(shè)置以及信號(hào)輸出的控制等,設(shè)置完成后以波形文件的形式存儲(chǔ),以備控制程序運(yùn)行時(shí)直接調(diào)用。
其次,設(shè)置動(dòng)態(tài)調(diào)用子VI線程。對(duì)“輻射源方位碼”測(cè)試程序啟用動(dòng)態(tài)調(diào)用,設(shè)置CAN數(shù)據(jù)幀匹配參數(shù),打開(kāi)并啟動(dòng)USBCANII接口卡設(shè)備,同時(shí)對(duì)應(yīng)多列列表框控件方位碼參數(shù)分類,獲取所需列參數(shù)值。
最后,設(shè)置自動(dòng)化測(cè)試系統(tǒng)終端顯示界面。匹配好程控儀器線程與動(dòng)態(tài)調(diào)用子VI線程之間的時(shí)間延遲關(guān)系。同時(shí),對(duì)自動(dòng)化測(cè)試數(shù)據(jù)進(jìn)行讀取、計(jì)算、整合,隨后自動(dòng)填充word版測(cè)試記錄表格并自動(dòng)存儲(chǔ)至對(duì)應(yīng)文件夾。
上述自動(dòng)化測(cè)試功能在主控軟件集成,并提供前面板的使用界面。自動(dòng)化程序運(yùn)行后,程控信號(hào)源E8257D線程與動(dòng)態(tài)調(diào)用“輻射源方位碼”子VI線程并行運(yùn)行。信號(hào)源E8257D各種功能參數(shù)預(yù)先設(shè)置完成后存儲(chǔ)成波形文件以便啟用程控信號(hào)源線程時(shí)通過(guò)VISA寫(xiě)入命令字符串被直接調(diào)用。“輻射源方位碼”測(cè)試終端程序作為子VI被自動(dòng)化控制主VI程序動(dòng)態(tài)調(diào)用,接收來(lái)自信號(hào)源發(fā)射的信號(hào)。自動(dòng)化控制主VI程序通過(guò)“獲取控件[變體]”的方法得到“輻射源方位碼”子VI傳遞過(guò)來(lái)的符合測(cè)試技術(shù)指標(biāo)要求的方位碼參數(shù)值,之后反饋給信號(hào)源輸出功率,從而實(shí)現(xiàn)兩個(gè)VI線程之間的通訊并進(jìn)行數(shù)據(jù)交換。
設(shè)計(jì)實(shí)現(xiàn)的集成有信號(hào)源和“輻射源方位碼”測(cè)試終端的自動(dòng)化測(cè)試控制軟件主控界面如圖10所示。
圖10 自動(dòng)化測(cè)試終端界面
主控界面的左側(cè)區(qū)域?yàn)樾盘?hào)源E8257D測(cè)試時(shí)需要設(shè)置輸入的5個(gè)頻點(diǎn)以及測(cè)試數(shù)據(jù)的運(yùn)算與記錄等布爾控件引用類觸發(fā)事件源;右側(cè)區(qū)域分布測(cè)試前需要預(yù)先設(shè)置的常量類輸入控件值,以便整個(gè)測(cè)試過(guò)程中隨時(shí)引用;中間選項(xiàng)卡控件區(qū)域顯示5個(gè)頻點(diǎn)對(duì)應(yīng)的每次測(cè)試各個(gè)參數(shù)的實(shí)時(shí)測(cè)量值,逐步運(yùn)行完成所有測(cè)試項(xiàng)后,數(shù)據(jù)填滿選項(xiàng)卡內(nèi)置各數(shù)組控件,單擊Record布爾控件后數(shù)據(jù)自動(dòng)填充動(dòng)態(tài)測(cè)試數(shù)據(jù)記錄表對(duì)應(yīng)位置,完成最后測(cè)試數(shù)據(jù)的記錄與保存工作。
啟用自動(dòng)化測(cè)試軟件程序之前,需先確認(rèn)主控計(jì)算機(jī)通過(guò)以太網(wǎng)卡與信號(hào)源E8257D建立TCP數(shù)據(jù)通信是否完好。主控計(jì)算機(jī)上的自動(dòng)化控制程序能夠?qū)Α拜椛湓捶轿淮a”子VI終端測(cè)試程序主界面進(jìn)行可視化操控,兩個(gè)界面同時(shí)運(yùn)行且相互獨(dú)立,實(shí)時(shí)觀測(cè)數(shù)據(jù)變化,保證自動(dòng)化控制線程與“輻射源方位碼”子VI線程之間正常通訊與準(zhǔn)確傳輸、交換數(shù)據(jù)。具體的自動(dòng)測(cè)試步驟流程如圖11所示。
圖11 自動(dòng)化測(cè)試程序流程圖
單擊自動(dòng)化程序運(yùn)行按鈕,程控信號(hào)源線程發(fā)送模擬毫米波測(cè)試信號(hào),動(dòng)態(tài)調(diào)用子VI線程同步運(yùn)行。待子VI運(yùn)行5分鐘左右,開(kāi)始正式對(duì)測(cè)試頻點(diǎn)進(jìn)行測(cè)試。本文測(cè)試系統(tǒng)信號(hào)源輸出頻率共設(shè)置32G、34G、36G、38G、40G五個(gè)測(cè)試頻點(diǎn),脈沖PRI設(shè)置100μs,脈寬設(shè)置10μs.主控程序前面板5個(gè)頻點(diǎn)布爾測(cè)試鍵依次按下,由于探測(cè)組件每一個(gè)接收模塊存在2路接收通道,每套系統(tǒng)共計(jì)8個(gè)通道,因此每個(gè)頻點(diǎn)測(cè)試次數(shù)n至少運(yùn)行8次。待每次測(cè)試完成后,點(diǎn)擊Record控件,數(shù)據(jù)自動(dòng)填充預(yù)先編輯好的Word版測(cè)試記錄表格,最終存儲(chǔ)至對(duì)應(yīng)文件夾。至此,整個(gè)自動(dòng)化測(cè)試程序運(yùn)行完畢。
基于LabVIEW的某毫米波探測(cè)組件自動(dòng)化測(cè)試系統(tǒng)針對(duì)實(shí)際調(diào)試交驗(yàn)過(guò)程中人工測(cè)試效率提出問(wèn)題,構(gòu)建自動(dòng)測(cè)試模塊的思路,利用主控計(jì)算機(jī)和程控儀器搭建自動(dòng)化測(cè)試平臺(tái)。結(jié)論如下:
1)實(shí)現(xiàn)了程控儀器的“命令式”TCP數(shù)據(jù)通信,無(wú)需儀表驅(qū)動(dòng)程序方可輕松建立控制關(guān)系。
2)證實(shí)了動(dòng)態(tài)調(diào)用子VI測(cè)試系統(tǒng)的可行性與便捷性,實(shí)現(xiàn)了兩個(gè)終端界面并行運(yùn)行且相互獨(dú)立,完成了多個(gè)線程之間實(shí)時(shí)的數(shù)據(jù)交換。
3)測(cè)試結(jié)果驗(yàn)證了軟件功能的正確性,實(shí)現(xiàn)了測(cè)量的自動(dòng)化、測(cè)試數(shù)據(jù)的可視化、以及數(shù)據(jù)記錄的有序管理。
4)自動(dòng)化測(cè)試控制平臺(tái)改變了以往繁瑣的手動(dòng)測(cè)試過(guò)程,既節(jié)省了測(cè)試測(cè)量時(shí)間,又提高了測(cè)試測(cè)量的精確度,具有一定的通用性。