刘雷强,郑 宾,赵小龙
(中北大学 仪器科学与动态测试教育部重点实验室, 山西太原 030051)
继电器是高校实验室和工业上都广泛使用的一种电子控制器件,主要被应用在自动控制、遥控、遥测、电力系统中,起着控制、检测保护的作用,实际上就是用受控的小电流去控制或者保护目标电路的电流,可以说是一种“自动开关”。(电磁)继电器一般由电磁铁、衔铁、弹簧片、触点等组成的,它是利用电磁效应,通过电流来控制触点的开与合,从而实现控制电路导通或者切断的功能。
继电器的可靠性和稳定性直接关系着自动控制系统的正常运行。在电力系统中,如果继电器出现故障,在没有更多备份的情况下,很可能会酿成大祸;而在远程控制和遥测遥控系统中,继电器的作用同样重要。对于实验室中的继电器来说,主要是使用比较频繁,型号类型繁杂,疲劳程度较高,而在工业应用上,主要是工作环境不一,很有可能工作在恶劣的环境中。
所以定期对继电器进行性能测试是必不可少的。
传统的测试方法存在诸多不便和弊端。如:传统方法多采用手动测试、人工读表等落后方式;分立元件较多,误差偏大;接线复杂,测试效率低。亟待一种新的测试方法来改善这种局面。
随着计算机技术的突飞猛进,一种新的测试技术理念日趋成熟,被广泛的应用在自动测试领域,那就是虚拟仪器技术。
虚拟仪器(VI)技术是计算机技术和测试技术结合的产物,是仪器仪表技术发展的重要方向。它利用计算机强大的运算控制能力,通过编写软件程序,再结合数据采集板卡对物理量进行测试。
系统构成如图1所示。
系统由两部分构成:硬件部分和软件部分。
硬件部分:工控机、NI高精度数据采集卡、Agilent 33210a信号发生器、伺服电机、自耦合变压器,Agilent电源;软件部分: Labwindows/CV应用软件开发平台,VISA。
在硬件当中的自耦变压器用来为测试继电器提供连续可变的电压,是继电器的电源,其输出电压由伺服电机自动调节;Agilent电源则用来为自耦变压器提供电能,也就是说自耦变压器所调节的电压来自于Agilent电源的提供。
图1 系统组成图
开始测试后,系统接通电源,软件判断电源电压值,如异常,断电检查;如正常,则继续测试流程。系统上电,然后读取I/O的状态,判断继电器所处状态,最初的默认状态为触点常开。
被测电压信号经调理电路送入NI高速数据采集卡(AD),在软件面板上实时显示。接下来要发出控制命令,使信号发生器发出伺服电机控制指令,电机在标准信号的驱动下匀速单向缓慢转动,使变压器上的输出电压稳定增大,直至触点吸合。在启动信号发送的同时,启动多线程采集程序。此时通过I/O读取触点状态信号,一旦确定触点吸合,立即停止控制信号发送,并完成此时输入电压的采样,所采电压信号经处理后显示在前面板的对应显示框中,这个数值即为继电器的吸合电压。
在以上步骤完成之后,系统会继续运行,开始发送第二次控制信号,这个信号除了方向与第一次的不同,其他的参数一致。这时电机开始向相反的方向转动,加在继电器上的电压开始稳定减小,直至触点释放,此时再次读取I/O状态值,并读取返回电压,计数器也停止计数。最终将返回电压和计数器的值显示在前面板上。
在启动数据采集子线程的同时,开启一个异步定时器,为的是测量吸合(释放)时间,当第一次I/O状态输入时,启动这个脉冲测量线程,直到第二次I/O状态值的输入结束,在这个过程中计数器累计的数值即为吸合(释放)时间。
所谓多线程技术是取代中断技术进行同时处理多个事件的一种方法,多个任务进行分割时,这些任务中的一个或多个是对时间要求严格的而且易被其他任务的运行所干涉。例如,进行数据采集并显示用户界面的程序就很适合使用多线程技术实现。在这种类型的程序中,数据采集是时间要求严格的任务,它很可能被用户界面的任务打断。那么就可以将数据采集这一部分设为子线程,这样就保证各个任务顺利完成,互不影响,这样运行的速度也比中断运行要快一些。
异步定时器是在辅助进程中运行代码的一种高级机制,另一种是线程池。我们在这个程序中使用了两种方法,采集电压用线程池技术实现,而计数时用到了异步定时器。
图2为测试软件流程图。
图2 软件流程图
(1) 软件前面板设计实图如图3所示。
前面板示意如图3所示:Graph控件用来显示继电器的性能参数,这些参数是基于测试时所采集的数据而来的;右面的二值开关用来控制触点模式选择和电压类型选择,具有一定的应用拓展性;面板下方的数值显示控件用来即时显示采集卡所采集到的电压值、计数器所采集到的数值以及串口控制数据;右下方的控制信号设置按钮用来进行控制信号的即时调整,以适应不同的测试任务。
图3 软件前面板视图
(2) 关键程序代码:
1) 数据采集:
DAQmxErrChk(DAQmxCreateTask("",&gTaskHand le));
DAQmxErrChk(DAQmxCreateAIVoltageChan(gTaskH andle,chan,"",DAQmx_Val_Cfg_Default,min,max,DAQmx_Val_Volts,NULL));
DAQmxErrChk (DAQmxStartTask(gTaskHandle));
2)电机控制信号:
viPrintf(Instrument, "FUNCtion SIN ");
viPrintf(Instrument, "VOLTage 10 ");
viPrintf(Instrument, "FREQuency 0.02 ");
viPrintf(Instrument, "BURSt:NCYCles 2 ");
电机控制信号是一个很低频率的正弦信号脉冲信号,可以保证电机以缓慢的速度转动。虽然是正弦波,但是不会存在中途换向动作的可能,因为经过估算,可以确定电机所需转动的角度,这样可以通过设置较低的信号频率来保证在正弦波换向运动之前继电器触点吸合完毕。接着发送反向控制信号。
3)吸合时间测试:
DAQmxErrChk(DAQmxCreateTask("",&taskHandle));
DAQmxErrChk(DAQmxCreateCITwoEdgeSepChan(ta skHandle,chan,"",min,max,DAQmx_Val_Seconds,firstEdge,s econdEdge,""));
DAQmxErrChk (DAQmxStartTask(taskHandle));
DAQmxErrChk(DAQmxReadCounterScalarF64(taskHandle, 10, &data, 0));
4) I/O操作函数:
DAQmxErrChk(DAQmxCreateTask("",&taskHandle));
DAQmxErrChk(DAQmxCreateDIChan(taskHandle,
chan,"",DAQmx_Val_ChanForAllLines));
DAQmxErrChk (DAQmxStartTask(taskHandle));
DAQmxErrChk(DAQmxReadDigitalLines(taskHandle,1,10.0,DAQmx_Val_GroupByChannel,data,100,&read,&byte sPerSamp,NULL));
本文选用的测试对象是实验室常见的固态继电器,欧姆龙G6E-134P,它的额定工作电压为5 V,一般来说,额定工作电压是吸合电压的1.3~1.5倍。也就是说,继电器吸合动作电压要小于额定电压,一旦吸合,则可以工作在较小电压下。而释放电压为吸合动作电压的10%~50%不等。
额定电压/V 动作电压/V 返回电压/V第一组 5.061 3.614 1.266第二组 4.992 3.566 1.248第三组 5.002 3.573 1.251第四组 4.99 3.567 1.249第五组 5.021 3.586 1.256
以下是基于上面测试数据的分析:额定电压为5 V,测试数据结果显示,测试的相对误差为0.26%,准确度满足最初设计要求。而且最大相对误差为1.22%,最小只有0.02%,完全可以满足一般使用的要求。
经过实验测试,伺服电机的控制是有效稳定的,可以精确控制转动速度和角度;在数据采集方面,由于使用了NI高性能数据采集设备,采集数据准确、工作稳定,即便对不同测试产品输出的不同量级的信号也能及时抓取,不遗漏数据点;数据曲线显示清晰,存储迅速稳定,而且方便打印数据和计算结果,以便后续分析。
[1]NI.LabWindowsTM/CVI中的多线程技术 [DB/OL],http://zone.ni.com/devzone/cda/tut/p/id/6943#toc3,2011-4-18.
[2]赵会兵.虚拟仪器技术规范与系统集成[M].北京:清华大学出版社,2003.
[3]宋宇峰.LabWindows/CVI逐步深入与开发实例[M].北京:机械工业出版社,2003.
[4]谭浩强.C语言设计[M].2版.北京:清华大学出版社,1999.
[5]李明辉,刘连生,曲培树.基于虚拟仪器的自动测试系统研究[J].电子测试, 2008(3):15-17.
[6]沈华.数据结构及应用[M].北京:机械工业出版社,2010(10).
[7]王远.模拟电子技术[M].2版.北京:机械工业出版社,2000.
[8]郑艳玲.工程测试技术[M].北京:电子工业出版社,2011.