顏士博
(上海鐵路通信有限公司,上海 200071)
自動測試系統(tǒng)(Automatic Test System,ATS)主要是指采用計(jì)算機(jī)技術(shù)實(shí)現(xiàn)自動化測試的設(shè)備或系統(tǒng)。從系統(tǒng)構(gòu)成上看,通常主要包括:測試條件發(fā)生-信號輸入、數(shù)據(jù)采集、數(shù)據(jù)處理、顯示-輸出等幾部分,實(shí)際應(yīng)用中也包括報(bào)表生成、故障統(tǒng)計(jì)等功能。從軟硬件構(gòu)成的角度講,可分為測試設(shè)備和測試程序集兩部分:前者主要指各種儀器儀表和相關(guān)的硬件設(shè)備。后者主要指各種軟件,包括底層的儀器儀表設(shè)備驅(qū)動軟件、各個(gè)業(yè)務(wù)測試項(xiàng)目軟件和應(yīng)用軟件,其中業(yè)務(wù)軟件主要的實(shí)現(xiàn)方法是通過軟件定義對象和過程,利用計(jì)算機(jī)技術(shù)自動完成對被測對象的建模、輸入/輸出控制、狀態(tài)控制、收集對象和過程數(shù)據(jù),然后根據(jù)需要對數(shù)據(jù)進(jìn)行分析處理,最后形成測試結(jié)果或測試報(bào)告。
自動化測試與人工測試相比較,通常具備速度快、精度準(zhǔn)、錯誤少、效率高、存儲和查詢方便快捷等優(yōu)勢,特別是對產(chǎn)能大、重復(fù)性高、參量多和測量范圍廣等場合非常適用。近年來,隨著智能化、自動化和信息化技術(shù)的深入發(fā)展,自動化測試裝備、測試技術(shù)已經(jīng)成為研發(fā)和生產(chǎn)企業(yè)投入的一個(gè)重要領(lǐng)域和研究方向。
本文介紹的測試系統(tǒng)是為某公司所生產(chǎn)的一款相對復(fù)雜的產(chǎn)品系統(tǒng)開發(fā)的。該產(chǎn)品系統(tǒng)在研發(fā)階段與生產(chǎn)初期,已經(jīng)分別購置了幾套昂貴、獨(dú)立式的專業(yè)儀器儀表,用于各階段各種需求項(xiàng)指標(biāo)的測試。這個(gè)階段的各項(xiàng)測試主要是通過技術(shù)人員手動操作各類儀器儀表,通過人工讀取并記錄測試結(jié)果和數(shù)據(jù),最終完成測試。由于被測試系統(tǒng)的構(gòu)成相對復(fù)雜,由十幾個(gè)單板級的板卡構(gòu)成,如電源板、發(fā)送板、解碼板、接收板、MVB通信板、記錄板、射頻單元等。對該系統(tǒng)的測試,共涉及十幾款儀器儀表的使用操作,如不同程式的程控電源、示波器、信號發(fā)生器、網(wǎng)絡(luò)分析儀、頻譜分析儀、功率計(jì)、萬用表等。在全人工測試的模式下,無法滿足生產(chǎn)測試需求。
由于前期已投入不少資源在儀器儀表等設(shè)備購置上,為充分利用此類資產(chǎn),減少投資浪費(fèi),優(yōu)先利用已有的儀器儀表,通過軟件集成的方案實(shí)現(xiàn)。
按照這一思路,系統(tǒng)所采用的儀表都具備通信能力,提供不同形式的通信接口,如常用的以太網(wǎng)口、GPIB口、USB口和串口等。有網(wǎng)口的通過交換機(jī)連接到測試平臺計(jì)算機(jī),GPIB口、USB口或串口設(shè)備則通過直連的方式連接到測試平臺計(jì)算機(jī),通過計(jì)算機(jī)軟件完成對所連接的各種儀器儀表的驅(qū)動、控制和遠(yuǎn)程操作。系統(tǒng)的主要硬件設(shè)備構(gòu)成如圖1所示。主要包括:測試接口單元、功率計(jì)、萬用表、網(wǎng)絡(luò)分析儀、頻譜分析儀、信號發(fā)生器、示波器、程控電源和I/O控制器等,為便于實(shí)現(xiàn)人機(jī)交互,還設(shè)計(jì)了輔助操作設(shè)備。
圖1 系統(tǒng)構(gòu)成Fig.1 System composition diagram
系統(tǒng)的整個(gè)工作流程如下。
測試時(shí)將被測板卡插入測試接口單元中,測試接口通過測試矩陣完成測試所需要的條件輸入和測試結(jié)果輸出的自動化配置工作,如:測試需要的電壓由程控電源提供,需要的輸入波形由信號發(fā)生器提供,輸出的結(jié)果通常由萬用測量獲取,射頻信號的測量則由網(wǎng)絡(luò)分析儀采集讀取等。
測試平臺軟件的驅(qū)動層完成各儀表測試時(shí)的初始化,測試過程的設(shè)置、輸入/輸出控制,并從儀器儀表中讀取需要的測試結(jié)果;測試平臺業(yè)務(wù)處理層主要是依據(jù)測試大綱的各測試項(xiàng),通過軟件完成對測試過程的定義,實(shí)現(xiàn)各測項(xiàng)的測試,最終將各測試項(xiàng)編成測試序列,形成一個(gè)測試集,由系統(tǒng)按序自動完成所有項(xiàng)的測試。對于人工參與或干預(yù)的測試項(xiàng),則開發(fā)了直觀的測試人機(jī)接口 (HMI)界面,輔助并引導(dǎo)測試人員快速完成該測試項(xiàng)的測試。
系統(tǒng)測試完并確認(rèn)后,根據(jù)需要自動生成測試報(bào)表和報(bào)告,記錄每項(xiàng)的過程數(shù)據(jù),并經(jīng)過自動處理得出測試結(jié)論,最終輸出測試報(bào)告。
整個(gè)系統(tǒng)軟件框架的設(shè)計(jì)如圖2所示,主要包括3層:儀器儀表驅(qū)動、各測試項(xiàng)業(yè)務(wù)邏輯和各測試板卡測試項(xiàng)序列文件,每一層都設(shè)計(jì)專用的應(yīng)用程序接口(API)為上層提供服務(wù)。此外還包括報(bào)表處理、操作界面和用戶管理功能模塊,系統(tǒng)每一部分都采用模塊化設(shè)計(jì)思想設(shè)計(jì)實(shí)現(xiàn)。
圖2 系統(tǒng)軟件框架Fig.2 System software framework
設(shè)備驅(qū)動相對比較復(fù)雜,主要是不同功能的儀器儀表涉及不同的廠商,不同類型的接口,不同的接口協(xié)議,雖然各式各樣,但是大多數(shù)廠商都會提供相關(guān)的驅(qū)動,或第三方的驅(qū)動,只需在此基礎(chǔ)上做二次驅(qū)動程序的開發(fā)即可。常見的協(xié)議有SCPI、USBTMC、VISA等,因此,系統(tǒng)軟件的開發(fā)主要集中在對儀器儀表類的開發(fā),本系統(tǒng)主要采用面向?qū)ο蟮能浖O(shè)計(jì)方法,每個(gè)儀器儀表都作為一個(gè)單獨(dú)的類進(jìn)行定義,向下封裝了該設(shè)備的底層驅(qū)動,向上提供API。程序在運(yùn)行時(shí)按照單例創(chuàng)建對象,避免底層的資源搶占和沖突。例如程控電源相關(guān)部分API設(shè)計(jì)參考如圖3所示,包括程控電源對象的創(chuàng)建、系統(tǒng)參數(shù)設(shè)置、狀態(tài)控制和輸出參數(shù)設(shè)置、參數(shù)讀取等。
圖3 程控電源部分API設(shè)計(jì)Fig.3 API design of programmed power supply
除了儀器儀表對象的開發(fā),另一個(gè)開發(fā)的重點(diǎn)是根據(jù)測試項(xiàng)進(jìn)行的業(yè)務(wù)邏輯的開發(fā)。測試項(xiàng)通常要封裝成動態(tài)鏈接庫(DLL),由更上一層的應(yīng)用調(diào)用,每個(gè)測試項(xiàng)通常對應(yīng)一個(gè)或多個(gè)API。每個(gè)鏈接庫均由一組模塊化的程序?qū)崿F(xiàn),以下是一個(gè)為發(fā)送板測試項(xiàng)而開發(fā)的部分API,如圖4所示。
圖4 發(fā)送板各測試項(xiàng)部分API設(shè)計(jì)Fig.4 API design of each test item of sending board
除了測試項(xiàng)業(yè)務(wù)邏輯的開發(fā),測試過程中需要一些交互HMI圖形化操作界面、告警或提示信息的圖形化界面,也需要在此進(jìn)行開發(fā)并封裝到DLL中,供應(yīng)用層測試序列程序調(diào)用,為操作人員提供良好的操作界面。
測試序列程序是按照測試大綱,通過Teststand軟件完成開發(fā)、調(diào)用、判決、執(zhí)行的。該軟件是一個(gè)專門為自動化測試而開發(fā)的流程編輯與執(zhí)行為一體的軟件。本方案主要用到的功能包括底層測試項(xiàng)API的調(diào)用,上下文數(shù)據(jù)生成,測試項(xiàng)條件的輸入、輸出和處理,測試結(jié)果的輸出與測試報(bào)表的自動生成等。軟件主要將各個(gè)板卡的測試項(xiàng)按照序列文件的形式編輯在一起,以實(shí)現(xiàn)流程流水化,同時(shí)設(shè)計(jì)以不同的出條件、入條件等邏輯關(guān)系,以及過程參數(shù)的設(shè)置和結(jié)果的收集處理。
本系統(tǒng)最終開發(fā)的集成-執(zhí)行-界面如圖5所示。左側(cè)一欄為各個(gè)待測板卡測試序列文件列表;右側(cè)一欄為一個(gè)具體的測試序列文件,包括若干測試項(xiàng),每個(gè)測試項(xiàng)又分為測試步驟、測試描述、設(shè)置3個(gè)屬性對象;variable-value一欄則為測試過程變量和過程數(shù)據(jù),可實(shí)時(shí)顯示過程結(jié)果。
圖5 測試序列文件開發(fā)集成界面Fig.5 Integrated interface of test sequence file development
目前該測試系統(tǒng)已經(jīng)應(yīng)用到產(chǎn)線上,實(shí)踐證明該系統(tǒng)可以大幅提高產(chǎn)品的測試效率,減輕員工的勞動強(qiáng)度,提高自動化水平和效率。但在開發(fā)和應(yīng)用過程中也發(fā)現(xiàn)一些問題,其中有一個(gè)比較突出的是:由于前期研發(fā)階段對生產(chǎn)自動化測試需求考慮的不是很周全,沒有預(yù)留足夠的測試點(diǎn),造成測試夾具制作起來比較困難,部分測試仍需輔助以手動點(diǎn)觸才能完成測試。因此,自動化測試需要從設(shè)計(jì)、研發(fā)階段就開始統(tǒng)籌考慮,生產(chǎn)階段需要作為重點(diǎn),持續(xù)跟進(jìn)、實(shí)施和落實(shí)。