首页 > 范文大全 > 正文

面向信号自动测试系统信号组件的设计

开篇:润墨网以专业的文秘视角,为您筛选了一篇面向信号自动测试系统信号组件的设计范文,如需获取更多写作素材,在线客服老师一对一协助。欢迎您的阅读与分享!

摘 要:面向信号测试技术可以为自动测试系统提供更好的测试程序集可移植性和测试仪器可互换性。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:VoltageCurrent Power>

Roles: Source,Sensor,Monitor

Parameters:见表1。

2 信号组件的设计与开发

信号组件的本质是COM组件[8],该类型组件的主要功能在于存储信号参数信息,测试程序将所需信号信息传递给信号组件,数据将被暂存在缓存中,当程序调用具体仪器驱动时这些信号参数将被具体仪器驱动所读取,仪器动作到相应的状态。每个信号组件对应一种信号,该组件为客户程序提供了信号信息的公共存储区,同时测试返回的结果也在该组件下存储。下面以ACVolt信号组件为例,描述信号组件的原理。对于ACVolt信号来说,其信号参数包括Ac_ampl,Freq,Dc_offset三种,信号组件中每个信号参数分别对应4组方法,这些方法是:Setxx,ComGetxx,ComSetxx,Getxx,方法的功能见表2。客户程序和具体仪器驱动之间通过资源分配器交互,双方的数据不能直接传递,因此信号组件成为两者数据交互的桥梁。

面向信号自动测试系统信号组件采用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年出生,博士。研究方向为自动测试系统研究。