郭占山
(中国人民解放军92493部队89分队,葫芦岛 125000)
为了更好地解决测试系统软件与系统中测试仪器不是过时,就是需要升级、更换、生命周期不匹配和避免测试仪器与测试代码耦合度过高的问题,系统集成商和仪器制造商们与1998年9月成立了IVI(Interchangeable Virtual Instrument可互换虚拟仪器)基金会,给力的解决测试代码与测试仪器的松散耦合,改善了测试系统的整体设计,使其在生命周期之内更易于维护和扩展,它将应用软件从仪器硬件中分离,最大限度减小移植和升级测试系统花费的时间和成本。截至2011年8月,该组织已经制订了13类仪器规范,它们分别是IviDmm(数字多用表),IviFgen(任意波形发生器/函数发生器),IviRFSigGen(射信号发生器),IviScope(示波器),IviSpecAn(频谱分析仪),IviSwtch(开关/多路复用器/矩阵),IviCounter(计数器),IviDownconverter(下计数器),IviUpconverter(上下计数器),IviDigitizer(数字化仪),IviPwrMeter(功率计),IviACPwr(交流电源),IviDCPwr(直流电源)。下面就利用Agilent34410A数字多用表的USB、LAN接口,实现IVI编程涉及到的相关知识进行一下介绍,以帮助您节省大量开发时间。
IVI驱动程序是在VPP基础之上结合当今计算机技术,孕育而生的最先进的测试技术。它使得不同厂家、不同型号的同一类仪器(如Agilent、Fluke公司的DMM)编写一段相同的程序代码,当测试系统硬件组成发生改变时,测试程序不需要进行任何修改仍继续使用变为可能。VPP规范通过VISA解决了仪器驱动程序与硬件接口的无关性,而IVI解决了测试应用软件和仪器驱动程序的无关性,比如测试设备DMM由Fluke8846A更换为Agilent34410A,只需要改变计算机上的一些设置,而不必改变测试应用程序的代码。IVI驱动程序并具有如下主要特点:1)仪器仿真能力。IVI驱动程序具有仪器仿真工作模式,在这种模式下,用户可以在没有与仪器建立连接的情况下编写程序。它可以采用两种途径产生仿真数据,一种是通过专用仪器驱动的仿真模式,另一种是通过IVI Compliance Package包中的高级类仿真驱动程序;2)同一类仪器的互换能力。IVI驱动程序使同一类仪器的互换成为可能,只要系统中使用的仪器支持IVI驱动,系统开发完成后就不会因为仪器的升级或更换品牌而重新改写程序代码,极大地提高了代码重用能力,从而减小了软件维修成本。
开发IVI测试程序一般需要以下几个步骤:
1)将仪器通过总线与计算机连接,总线可以为标准总线(PXI、GPIB、USB、LAN、LXI等),并在计算机中安装相应的驱动程序;
2)安装IVI Compliance Package工具包,该软件可以到ni.com/ivi/ivi_prod.htm网站免费下载,最新版本文件名为ICP440.exe。还要安装VISA 4.0或以后版本;
3)安装被控仪器的IVI Specific Drivers驱动程序,它用来与仪器进行通信,关于IVI Specific Drivers驱动,可以到ni.com/idnet网站免费下载;
图1 34410A Driver Sessions General设置界面
4)利用MAX配置信息文件,该文件存储了仪器逻辑名、类驱动程序、具体仪器驱动程序的映射信息。NI提供了MAX(Measurement & Automation Explorer)配置程序,利用它可以创建、配置Logical Names、Driver Sessions,在测试程序中通过传送逻辑名,给一个类驱动程序初始化,并将操作映射到具体仪器驱动程序,MAX软件在NI公司的产品程序盘中,安装相应软件时自动安装;
5)在程序设计时在函数面板中调用:函数→仪器I/O→IVI Class Drivers→然后在IVI类驱动程序中按照仪器的分类选择一类,例如选择IVI DMM类,初始化后在类中选择相应的函数通过连线和设置参数即可实现对仪器控制;
6)假如我们要控制另外一台功能相同,型号不同的仪器,只需重复第3、4步骤即可。
本程序以通过LAN接口程控Agilent34410A数字多用表为例介绍MAX设置和程序开发过程,根据第2部分的描述需要进行以下设置。
启动MAX,在左边的树形结构“设备和接口”上单击鼠标右键,选择“新建…”,弹出新建…界面,在其上选择“VISA TCP/IP Resource”单击“下一步”,在新建VISA TCP/IP Resource界面中选择“Auto-Detect of LAN Instrument”单击“下一步”,这时在界面中央显示“TCPIP0::169.254.4.10::ins0::INSTR”单击“完成”。
在左边的树形结构中选择“IVI Drivers”并单击,然后将鼠标移动到“Logical Names ”上并右击鼠标,弹出“Create New(case-sensitive)…”界面,将界面上的“NewLogicalName”改为“34410A_LAN”确定后,在该界面右边“Driver Session”下拉框中选择“hp34401a”( 如果已经安装34410A IVI驱动程序后,下拉框中就有该选项,否则说明34410A IVI驱动程序没有安装或安装的不正确),而后“Go To”按钮变为有效,此时再按“Go To”按键后进入“Driver Sessions”项目配置,界面如图1所示。
图2 34410A Driver Sessions Hardware设置界面
在该界面中可以对“Initialization Option”根据要求进行勾选。对于“Simulate With”可以选择“Don’t Simulate”(在进行程序运行时不能选择此项)或“ Specific Driver”(程序调试时选择此项)。当在图1界面中单击“Hardware”后界面改变为图2,在该界面中勾选“NewHardwareAsset”,然后在“Resource Descriptor”栏上双击会弹出选择下拉框,而后选择“TCPIP0::169.254.4.10::ins0::INSTR”。其它选项使用默认值,按界面上面的“Save IVI Configuration”保存设置,即结束配置。
图3是在LabVIEW下设计的通过34410A的LAN接口实现的IVI测量程序前面板,在其界面上单击IVI逻辑名下拉框就可以看到“34410A_LAN”出现在下拉框中,否则的话说明Logical Names设置有问题,单击测量功能和测量量程时,就可以实现其功能和量程的改变。当前该界面显示的是测量直流电压的情形。
图3 IVI数字电压表测量程序前面板
图4 IVI数字电压表测量程序框图
图4是IVI数字电压表测量程序框图,其中“IviDmm Initialize.vi”、“IviDmm Configure Measurement.vi”、“IviDmm Configure Trigger.vi”、“IviDmm Configure Read.vi”、“IviDmm Close.vi”函数可以在函数→仪器I/O→IVI Class Drivers→IVI Digital Multimeter中找到。
对于通过USB接口控制34410A的程序设计,首先要安装USB驱动即Agilent IO Libraries Suite 15.5程序。启动MAX,在左边的树形结构“设备和接口”上单击鼠标,而后选择“USB Devices”可以看到“USB0::0x0957::0x0607::MY47002970::INSTR”说明安装正确。其他在MAX中的设置于3.2 Logical Names项设置、3.3 Driver Sessions项设置和程序设计3.4 IVI测试程序设计完全雷同,于由于篇幅问题不再描述。
从以上描述中可以看出,利用IVI驱动程序在labVIEW开发环境下设计自动测试程序,具有编程简单、编程效率高、使用方便等特点,但由于MAX有不同版本其设置界面可能存在不同的情况,而在MAX中“IVI Drivers”设置方法和过程基本是相同的;其次在不同labVIEW版本中进行程序设计时,最好使用相同版本的IVI仪器驱动程序。
[1] National Instruments Corporation.IVI Driver Library User Manual 2010
[2] NI Measurement & Automation Explorer 版本5.0.f1 Help
[3] HP 34410A Multimeter Programming Reference
[4] LabVIEW 2011 Help,National Instrument Corporation,2010
[5] 陈锡辉,等.LabVIEW 8.20程序设计从入门到精通.北京:清华大学出版社,2007
[6] 李刚.LabVIEW-易学易用的计算机图形化编程语言.北京:航空航天大学出版社,2001