戴豪民 牛雙誠 張光軼 武恒州
摘 要:面向信號測試技術可以為自動測試系統提供更好的測試程序集可移植性和測試儀器可互換性。IEEE1641標準規范了信號定義和描述模型,但并未提出具體實現方法。為從技術上解決信號參數傳遞和需求存儲問題,分析了IEEE1641標準,并根據該標準和工程實踐對信號進行設計,給出了信號模板,提出了面向信號自動測試系統信號組件的設計方案,并進行了驗證。實驗結果表明該設計方案先進可行,可為該領域的研究提供參考。
關鍵詞:面向信號;信號組件;自動測試系統;COM組件
中圖分類號:TP23文獻標識碼:B
文章編號:1004-373X(2009)05-060-03
Design of Signal Components for Signal-oriented Automatic Test System
DAI Haomin1,NIU Shuangcheng1,ZHANG Guangyi1,WU Hengzhou2
(1.Naval Aeronautical Engineering Institute,Yantai,264001,China;2.Naval Aeronautical Military Representative Office in Shenyang,Shenyang,110034,China)
Abstract:Better portability of test program set and interchangeability of test instruments can be provided for automatic test system by the signal-oriented test technology.IEEE Std 1641 regulates signal definition and the description model,but does not put forward the concrete realization methods.For solving signal parameter transmission and storage,this article analyzes IEEE Std 1641,designs the signals according to the standard and engineering practice,gives out the signals templates,puts forward the design proposal of the signal components for signal-oriented automatic test system,and verifies it.The experiment result indicates that the design proposal of this article is advanced and feasible,and it can provide the reference for the research domain.
Keywords:signal-oriented;signal component;automatic test system;COM component
0 引 言
IEEE1641是關于測試和信號定義的技術標準。它為用戶提供了描述和控制信號的能力[1],并允許用戶選用自己的操作系統和編程語言。用戶可以通過信號定義來描述測試需求和測試資源,而不必考慮使用哪一種編程語言。IEEE1641標準是一種層結構模型[2],在模型中對每個層和它的功能進行了描述,每一個層都建立在前一層的基礎之上。這種層結構要求每一層必須根據它的前一層進行全面定義。它包括信號建模語言層、基本信號組件層、測試信號框架層和測試過程語言層。對信號進行描述的過程中IEEE1641標準分別從信號名稱、定義、角色、端口、參數對信號進行說明,其中信號參數部分分別從參數名稱、定義、數據類
型、單位、復位值、范圍、角色、限定詞對信號參數進行說明。
1 信號設計
面向信號自動測試系統信號組件的開發與信號類型定義息息相關,信號類型定義參考了IEEE1641標準和工程實踐。信號組件的開發過程中信號是信號角色和信號類型的結合體,其中信號角色與儀器相關,信號類型與信號本身特征有關。一個信號是至少由一個信號參數組成,信號參數內部劃分為信號參數定義、信號參數角色和信號參數限定詞。
在IVI-3.11:IviSig Class Specification規范中主要定義了以下信號角色[3]:Source,適用于“源”類儀器的信號,包括信號發生器類、電源類儀器等;Sensor和Monitor,適用于“測量”類儀器的信號,包括傳感器類、示波器類、萬用表類儀器等;Switch,適用于“通路”類儀器,包括開關、矩陣等。
信號參數角色是指信號參數針對某個儀器的信號能力。其中Controllable是指該信號參數可以被儀器控制,如電源輸出的電壓等;Measurable是指該信號參數可以被儀器測量,如數字萬用表測量直流電壓;Capability是指不能被儀器測量或控制的信號能力,該能力對于某個信號類型必不可少,如輸入電阻等。
信號參數限定詞是指同一個信號參數的不同信號描述,它分為電壓和電流信號的限定詞、功率信號的限定詞以及頻率信號的限定詞。例如對于電壓來說其描述方式包括:峰峰值電壓、RMS電壓、平均電壓等。
本文定義的信號是根據IEEE1641劃分的[4-7],在使用時可以根據實際情況修改信號類型定義。下面定義的信號類型實際上是一個信號模板,包含了一個或多個信號類型。例如:AC_SIGNAL包含了3種信號AC Voltage,AC Current,AC Power,對應到源(Source)就是交流電壓源、交流電流源、交流功率源,對應到傳感器(Sensor)就是交流電壓表、交流電流表、交流功率計。現以交流信號為例,對信號定義進行說明。
Name:AC_SIGNAL<type:Voltage‖Current‖ Power>
Roles: Source,Sensor,Monitor
Parameters:見表1。
2 信號組件的設計與開發
信號組件的本質是COM組件[8],該類型組件的主要功能在于存儲信號參數信息,測試程序將所需信號信息傳遞給信號組件,數據將被暫存在緩存中,當程序調用具體儀器驅動時這些信號參數將被具體儀器驅動所讀取,儀器動作到相應的狀態。每個信號組件對應一種信號,該組件為客戶程序提供了信號信息的公共存儲區,同時測試返回的結果也在該組件下存儲。下面以ACVolt信號組件為例,描述信號組件的原理。對于ACVolt信號來說,其信號參數包括Ac_ampl,Freq,Dc_offset三種,信號組件中每個信號參數分別對應4組方法,這些方法是:Setxx,ComGetxx,ComSetxx,Getxx,方法的功能見表2??蛻舫绦蚝途唧w儀器驅動之間通過資源分配器交互,雙方的數據不能直接傳遞,因此信號組件成為兩者數據交互的橋梁。
面向信號自動測試系統信號組件采用LabWindows/CVI 8.0作為開發環境[9,10],通過創建ActiveX服務器來完成信號組件的開發。現以ACVolt信號為例進行說明。首先創建ActiveX服務器。啟動CVI 8.0,創建新工程,命名為“AtpACVoltParam”;選擇菜單欄“tools”-“create ActiveX server”項,CVI向導會自動彈出,將服務器名稱命名為“AtpACVoltParam”,COM組件生成方式為動態鏈接庫形式“dll”,其他設置不變。然后添加接口和接口方法。對于ACVolt信號來說其接口為“IAtpACVoltParam”,它的3個參數分別是幅值(Ampl)、頻率(Freq)、直流偏移量(Dc_offset),接口方法和接口參數如下:
HRESULT SetAcAmpl/SetFreq/SetDc_offset ([in]BSTR Qualifier,[in]double Value,[in]double RangeMax,[in]double RangeMin,[in]double Resolution);
HRESULT COMGetAcAmpl/COMGetFreq/COMGetDc_offset([out]BSTR*Qualifier,[out]double*Value,[out]double*RangeMax,[out]double* RangeMin,[out]double* Resolution);
HRESULT COMSetAcAmpl/COMSetFreq/ COMSetDc_offset ([in]BSTR Qualifier,[in] double Value);
HRESULT GetAcAmpl/GetFreq/GetDc_offset ([out] BSTR* Qualifier,[out] double* Value);
其次要創建接口對象。選擇“Edit Objects”按鈕,創建“coAtpACVoltParam”對象并將其與接口“IAtpACVoltParam”相關聯,并創建回調函數“coAtpACVoltParam_Callback ”。最后編輯接口方法實現代碼。將“.h”文件中的內容拷貝到自己創建的文件 “AtpACVoltParamImp.c”中,激活綠色標注區內容,并將接口方法的回調函數編輯為默認的返回S_OK,刪除帶有“Tag”標志的結構。Idl文件不需要修改。
3 信號組件的驗證
采用LabWindows/CVI 8.0作為開發環境,通過SetAcAmpl函數存儲客戶程序輸入的幅值信息,然后用COMGetAcAmpl函數讀取客戶程序輸入的幅值信息,驗證界面如圖1所示。這兩個函數完成了存儲信號參數信息的功能。通過COMSetAcAmpl函數存儲測試結果,最后用GetAcAmpl函數讀取測試結果,驗證界面如圖2所示。通過以上驗證說明ACVolt信號組件可以實現對信號信息的存儲,為下一步面向信號自動測試系統的實現提供參考。


參考文獻
[1]嚴英強,楊鎖昌.IEEE1641標準及發展[J].儀表技術,2007(7):25-28.
[2]IEEE Std 1641-2004.Standard for Signal and Test Definition[S].
[3]IVI-3.11.IviSig Class Specification[S].
[4]李行善,左毅,孫杰.自動測試系統集成技術[M].北京:電子工業出版社,2004.
[5]劉金寧.自動測試系統軟件模型與關鍵實現技術研究[D].石家莊:軍械工程學院,2007.
[6]李毓輝,郭群山.一種自動測試系統軟件平臺的設計[J].微計算機信息,2005,21(5):28-30.
[7]田雨.ATE測試平臺通用性與故障診斷的研究與實現[D].成都:電子科技大學,2005.
[8]潘愛民.COM原理與應用[M].北京:清華大學出版社,2005.
[9]張毅剛,喬立言.虛擬儀器軟件開發環境LabWindows/CVI 6.0 [M].北京:機械工業出版社,2002.
[10]張強,吳慶明.ActiveX在LabWindows/CVI中的創建與應用[J].機電工程技術,2006(5):13-15.
作者簡介 戴豪民 男,1982年出生,碩士。研究方向為自動測試系統研究。
牛雙誠 男,1974年出生,博士。研究方向為自動測試系統研究。