APP下载

基于DAQ卡的多路I/F变换器自动测试方法

2018-09-04蒋利田费武雄

电子产品可靠性与环境试验 2018年4期
关键词:测试程序自动测试端口

蒋利田,费武雄

(工业和信息化部电子第五研究所,广东 广州 510610)

0 引言

电流/频率变换器 (I/F变换器)是一种实现模拟到数字转换的器件,它将输入的模拟电流信号转换为数字的频率信号,其输出频率正比于输入的电流。由于数字信号易以进行长距离的传输、抗干扰能力强,且易以被后级电路识别、处理,因此I/F变换器得到了广泛的应用,但电参数测试成为其生产环节中的一大瓶颈,主要难点在于测试工作量大。

以某型号I/F变换器的标度因素非线性度参数为例,要求根据其在输入为±0.5~±40 mA共24个电流值时的输出频率,进行线性度计算,且在每个测试点均需稳定一定的时间后再读数,工作量大,耗时长。由于该产品属于包含多路的产品,因而其测试工作量会倍增。

本文以该型号I/F变换器为研究对象,提出了I/F变换器的一种自动测试方法:通过计算机、通信卡和测试程序等实现对测试仪器设备的控制、数据的读取和处理;通过设计继电器阵列,使用数据采集 (DAQ:Data Acquisition)卡的输出功能来控制继电器整列的接通和断开,实现多路通道之间的切换,从而实现对多路I/F变换器的自动测试。

1 待测器件参数

该I/F变换器内部结构包括积分器、数模转换、恒流源、复位电路、整形电路和驱动电路等,输出双路频率信号[1]。主要测试参数包括零偏、非线性度、重复性、满度输出频率、输入电流范围、脉冲宽度和静态功耗等,如表1所示。

表1 测试参数及条件

2 测试系统的组成

2.1 测试系统框图

通过分析待测参数可知,需要用到的仪器设备包括频率计 (计数器)、示波器、双路直流电源、精密恒流源、万用表、信号源、万用表、计算机、DAQ卡、通信卡、连接线和测试板,以及测试程序等。仪器设备通过RS232、LAN、USB和GPIB方式与计算机相连,可以使用同一种,也可以多种混合,视设备自带接口决定。

另外,与单个产品的测试板相比,多路产品测试板的设计要复杂得多。这主要是由于:首先,多路产品需要多路输入信号输入,而资源是有限的;其次,对输出频率的测量,同样不可能接入多个计数器 (或频率计、示波器等)。因此,本文通过设计复用电路,利用继电器阵列 (或干簧管整列)来控制每个继电器的通断,使产品的各路输入输出选通到公共的测试资源,形成完整的测试电路。测试系统框图如图1所示。

图1 测试系统组成框图

2.2 DAQ卡驱动继电器

NI公司提供了一系列的DAQ卡,以NI PCI-6515卡为例,该卡的外部接口共100 Pin,分配为两个一样的50 Pin接头供用户使用。每个接头上包含有16位的输入通道、16位的输出通道,每个通道均可独立控制。输出通道的内部结构及接法如图 2所示。 由图 2可知, P<4…7><0...7>通道在使用时需接上拉电阻至VCC,通过设定光耦二极管端的电压,使输出端口电压在高电平VCC和低电平之间转换。因此将该输出端口与继电器线圈端相连,可以实现对继电器通断的控制。

图2 NI PCI-6515输出端口结构

2.3 测试线路图

按照产品规范的要求,其对外端口为时钟输入端CP、恒流源输入端IIN、电源电压±5 V、电源电压±15 V和频率输出端FO+及FO-。

在本例中,使用P4.0端口控制继电器1,实现CP、IIN端口与输入时钟信号、输入电流通道的通断;使用P4.1端口控制继电器2,实现FO+、FO-端口与正负路输出计数器公共通道的通断;使用P4.2端口控制继电器3,实现-5、+5 V端口与±5 V公共通道的通断;使用P4.3端口控制继电器4,实现-15、+15 V端口与±15 V公共通道的通断。

在这种控制方式下,一组产品有8个端口需要控制通断,使用4个端口控制4个双路继电器实现,一个PCI-6515卡可控制8组产品的通断。单组产品的端口、继电器及与DAQ卡的连接方式如图3所示,其余组的连接与此类似。

图3 DAQ卡、继电器和产品的接线图

3 测试程序

3.1 测试流程

首先,对待测参数进行分析,按最合理、最高效的测试顺序,设计测试流程,根据测试流程进行程序编写。基本流程为:先进行静态参数测试,后进行动态参数测试;先进行简单条件的参数测试,后进行复杂条件的参数测试;先测试完一组产品的全部参数,再切换继电器测试下一组产品。对每一组产品,其测试流程如图4所示。

图4 某I/F变换器测试流程图

3.2 测试程序

编程软件用于设计人机交互界面及实现自动测试,可选择的高级编程语言比较丰富。例如:VB、VC、 C++Builder、 Delphi、 WindowsCVI、 LabView和VEE等,使用者可根据实际的硬件情况、对编程语言的熟练程度和程序的复杂性灵活地选择。本例使用C++Builder 6进行开发[2-3]。测试程序主界面如图5所示。

图5 测试程序主界面

3.3 程序代码

测试程序中仪器控制、数据读取等参见仪器手册,此处不再详述。主要介绍在C++Builder中如何对DAQ的端口进行设置。通过编写以下daqstatus函数,可方便地实现对DAQ卡的任一输出端口的设置。daqstatus(4,0,1)将DAQ卡的P4.0通道设为高,daqstatus(4,0,0)设为低。

int daqstatus(int port, int line, int stat)

{

TaskHandle taskHandle=0;

uInt8 dataall1[8]={1, 1, 1, 1, 1, 1,1, 1};

uInt8 dataall0[8]={0, 0, 0, 0, 0, 0,0, 0};

String s1="Dev1";

String s2="/port";

String s3="/line";

String inpstr=s1+s2+port+s3+line+":"+line;

/*******DAQmx Configure Code*******/

DAQmxCreateTask("", &taskHandle);

DAQmxCreateDOChan( taskHandle, inpstr.c_str(),"", DAQmx_Val_ChanPerLine);

/*******DAQmx Start Code*******/

DAQmxStartTask(taskHandle);

/*******DAQmx Write Code*******/

if(stat==1)

DAQmxWriteDigitalLines( taskHandle,1, 1, 10.0, DAQmx_Val_GroupByChannel,dataall1, NULL, NULL);

else

DAQmxWriteDigitalLines( taskHandle,1, 1, 10.0, DAQmx_Val_GroupByChannel,dataall0, NULL, NULL);

/*******DAQmx Stop Code*******/

DAQmxStopTask(taskHandle);

DAQmxClearTask(taskHandle);

return port, line, stat;

}

上述函数是通过直接调用DAQ卡的端口编号进行设置的,在调试过程中,要通过电路图接线找到该端口编号,这样会比较麻烦且容易出错。以下SetRelay函数将端口编号 (P4.0~P4.3)与其控制的继电器编号 (1~4)对应起来,通过继电器编号进行设置。例如:SetRelay(1,1)将P4.0通道设为高,与daqstatus(4,0,1)效果相同;SetRelay(1, 0)将P4.0通道设为高,与daqstatus(4,0,0)效果相同。

void SetRelay(int Numb,bool OnOff)

{

//OnOff=1;继电器闭合;OnOff=0;继电器断开;

switch(Numb)

{

case 1: {daqstatus(4, 0, OnOff) ;break;};

case 2: {daqstatus(4, 1, OnOff) ;break;};

case 3: {daqstatus(4, 2, OnOff) ;break;};

case 4: {daqstatus(4, 3, OnOff) ;break;};

//……其余编号对应关系

default: {};

}

return;

}

4 测试数据分析

分别进行手工单产品测试、多路自动测试,并将测试数据、测试用时进行比较。以1#产品为例,其各项测试的结果如表2所示。

从测试结果看,自动测试的测试结果与手工测试的结果高度一致,可见该产品完全可以采用自动测试的方式来完成测试,而自动测试用时远小于手工测试。自动测试方式,除规范中硬性规定了等待稳定时间、间隔时间以外,可在计数器的计数周期到达后立即得到读数,各个参数之间、各组产品之间转换间隔可达到 “零等待”,各个产品的测试条件可完全一致,达到 “无人值守”的程度。自动测试方法能够节省时间成本,而且不会过多地提高资源成本,提高的资源成本仅仅是DAQ卡等硬件的采购成本。

表2 1#测试数据统计表

5 结束语

本文通过研究实际检测工作中遇到的I/F变换器测试效率低下的问题,提出了通过利用DAQ卡输出端口驱动继电器线圈的通断[4-5],使多路I/F变换器依次独立与测试系统的公共资源接通,实现多路产品的切换;同时使用C++Buillder语言进行测试程序编辑,实现多路产品的自动化测试,提高了测试效率。另外,该方法也可运用到如V/F变换器或其他类似产品的测试中。

猜你喜欢

测试程序自动测试端口
一种端口故障的解决方案
JXG-50S型相敏轨道电路接收器自动测试台
基于Castle型机械手的三温量产测试平台实现
关于某型雷达自动测试系统的几点认识和建议
端口阻塞与优先级
手机APP交互界面人因适合性测试程序的设计与实现
中心主导制订的《VHF/UHF频率范围内测向系统测向灵敏度的测试程序》等两项国际标准在ITU官网正式发布
电气自动化控制设备可靠性测试探讨
基于ATE与BIT组合的NAMP自动测试与故障诊断系统设计
8端口IO-Link参考设计套件加快开发速度