基于U S B 4 7 5 1的多路信号转接器设计
2011-03-16郭晓金
杨 柳,郭晓金
(1 福州市91267部队17分队 350015 ;2 辽宁兴城市92853部队4分队 125106)
0 引言
在测量工作实践中,我们经常会遇到多通道、多测量点、多参数信号自动测量问题,采用传统的手动测量、手工记录数据、人工处理数据的方法存在着工作效率低、测量准确度不高、易出现误操作、错判、损坏被测对象等问题[5]。随着科学技术的发展,利用DI/O和继电器板构成的多路开关,在计算机控制下可以完全实现上述功能,达到自动测量的目的,从而极大的缩短测量时间,克服、减少测量过程中因单调性和人工接线而造成的各种错误。下面就利用USB4751和PCLD-785B构建多路信号转接器,实现24路电源负载调整率自动测量及在LabVIEW开发环境下程序设计进行了研究。
1 多路信号转接器硬件设计
图1 自动测量系统组成框图
图2 继电器板接线示意图
图1是利用USB4751(48路DO)[3]、PCLD-785B(2块、24路SPDT继电器板)[4]、数字电压表、GPIB接口卡构成的实现24路电源负载调整率的自动测量系统组成框图。图中将USB4751数据采集模块的USB端插在计算机USB端,并将其输出端Opto-22 CN1、Opto-22 CN2分别接到PCLD-885B-A继电器板输入端CN1和另一块PCLD-885B-B继电器板输入端CN1,并按图2继电器板接线示意图接好线,计算机根据要求使I/O板相应的位输出“0”高电平(负逻辑),这时迫使继电器板相应继电器吸合,数字电压表测量端与被测对象构成测量回路,此时PC通过GPIB接口控制数字电压表进行电压测量。根据负载调整率的定义:SL=(Um-Un)/Un*100%,(式中SL 负载调整率,Um是满载时的输出电压值,Un是空载时的输出电压值),从图2中可以看出,为了实现电压信号1的负载调整率,首先A-J0继电器板吸合(由常闭点到常开点)构成测量回路,数字电压表测的Un,然后B-J0继电器板吸合,将等效负载加入到测量回路,此时数字电压表测的Um,然后根据数字电压表测量数据进行计算得到测量结果,依次类推就可以得到其他电压信号的负载调整率。
2 多路信号转接器软件设计
考虑到多路信号转接器功能实现需要,开发平台选用LabVIEW 2009[1]完成USB4751控制和测量模块等设计。LabVIEW 2009是NI公司推出的虚拟仪器开发工具,LabVIEW是一种图形化的编程语言和开发环境,它广泛地被工业界、学术界和研究实验室所接受,被公认为是标准的数据采集和仪器控制软件[7-8]。
2.1 USB4751 LabVIEW驱动程序安装
首先将DA&C Device Driver CD V2.6[3]光盘放入光驱自动运行后,选择CONTINUE,在下一界面中选择Installation,单击Advantech Device Manager进行安装,而后单击Individual Drivers→USB→USB4751/L进行安装,这样就完成了设备管理和DLL驱动程序安装,但是LabVIEW驱动程序和例子并没有安装,应打开光盘,找到LabVIEW目录,然后运行LabVIEW.exe文件,这步完成后,就可以在LabVIEW开发环境函数面板用户库中看到相应的子函数,这样就可以编程了。同时在安装LabVIEW相应..ExamplesAdvantech子目录中有相应的开发例子可以借鉴。
2.2 软件设计
在图3继电器接线控制程序中,利用DeviceOpen. vi打开设备USB4751,属性DevNum值是0,(因为计算机中只安装了一个USB4751,所以它的序号是0), 属性 DriverHandle 输出连接到 DIOWritePortByte.vi的输入;DIOWritePortByte.vi向由DriverHandle指定的设备数字输出口写入一个字节的数据,属性port的值是0~5(因为USB4751是48路DI/O,它把8个字节分一个口,即6个口)程序的目的是将USB4751所有的输出口清零,使所有继电器处于常闭状态,以此防止出现误操作; DIOWriteBit. vi,实现继电器A-J0吸合;DeviceClose.vi关闭设备,释放资源,为下一次操作作好准备。随着程序的运行,外层For循环的次数的改变,变量i在不断改变,此时条件结构根据i进行判别,改变DIOWriteBit.vi的属性Port,BitPos,State值,就可以实现相应继电器的吸合和断开,从而达到控制目的。
图3 继电器接线控制程序
图4是数字电压表(Ag34410A)直流电压测量程序,VISA[2]打开以VISA资源名称为GPIB0::1::INSTR GPIB设备,“VISA Write”子VI写入仪器将要进行的测量功能程控码,“VISA Read”指令被写入设备,并读取回馈信息,通讯结束时利用“VISA关闭”子VI关闭通讯并释放资源。
图4 数字电压表测量程序
图5是DC&AC电压负载调整率测试程序界面,当测试次数大于5时,表格控件右边会出现垂直滚动条,并进行自动滚动。
图5 DC&AC电压负载调整率测试程序界面
3 结论
从上面介绍的硬件和软件设计来看,是科学合理的,完全满足24路电源负载调整率自动测量要求[5],同时经实际运行证明,性能稳定可靠,测量数据准确有效,提高了工作效率,克服手动测量过程中因单调性和人工接线而造成的各种错误,并取得良好的效果。读者可以直接利用程序中的原代码,避免程序设计中繁琐调试过程,对程序设计者具有参考借鉴价值。
[1] LabVIEW 2009 Help,National Instrument Corporation , 2009.
[2] Agilent 34401A Remote Programming Reference Guide.
[3] Advantech USB4751 User’s Guide.
[4] Advantech PCLD-785B User’s Guide.
[5] 侯国屏. LabVIEW7.1编程与虚拟仪器设计[M].北京:清华大学出版社,2005:120-130.
[6] 戴鹏飞.测试工程与LabVIEW应用[M]. 北京:电子工业出版社2004年:130-135.
[7] 邓焱等. LabVIEW7.1测试技术与仪器应用[M].北京:机械工业出版社2004:200-205.
[8] 杨乐平等.LabVIEW程序设计与应用[M]. 北京:电子工业出版社,2005:178-189.