教程:如何在LabVIEW中使用仪器驱动程序
1. 仪器驱动程序概述
仪器驱动程序是控制可编程仪器的软件程序集合。每个程序对应一个编程操作,例如配置、读取、写入和触发仪器。借助仪器驱动程序,用户无需学习各种仪器的编程协议,从而简化仪器控制,并减少测试程序开发时间。
NI为各种仪器提供仪器驱动程序;这些仪器驱动程序使用LabVIEW和/或LabWindows/CVI编写,并使用虚拟仪器软件架构(VISA)或可互换虚拟仪器(IVI)协议。
至页首
2. 在LabVIEW中使用仪器驱动程序
在LabVIEW中,仪器驱动程序是一组与仪器通信的VI。每个VI对应一个编程操作,如配置、读取、写入和触发仪器等。借助LabVIEW仪器驱动程序,用户无需学习各种仪器底层的复杂编程命令,从而简化仪器控制,并减少开发测试程序所需的时间。
查找仪器驱动程序的位置以及下载方法
用户可以使用NI仪器驱动查找器或仪器驱动网络(IDNet)查找和下载仪器驱动程序。
使用NI仪器驱动查找器查找、下载、安装和访问仪器的LabVIEW即插即用驱动程序。选择“工具”(Tools) »“仪器”(Instrumentation) »“查找仪器驱动程序”(Find Instrument Drivers),启动仪器驱动查找器。此工具会搜索IDNet,以查找指定的仪器驱动程序。请参见下图,了解如何在LabVIEW中启动NI仪器驱动查找器 。
图1.启动NI仪器驱动查找器
有一种方法可以替代使用NI仪器驱动查找器,即直接进入仪器驱动网络并搜索仪器驱动程序。
LabVIEW仪器驱动程序VI和示例
在LabVIEW 2010及更高版本中,安装仪器驱动程序后,可以使用仪器驱动查找器访问仪器驱动程序VI。也可使用仪器驱动查找器打开示例程序,该程序涵盖从分析和显示数据到使用仪器驱动程序等各种不同操作。
图2.LabVIEW 2017中的NI仪器驱动查找器
安装驱动程序后,可以从仪器I/O选板访问仪器驱动程序。例如,从“仪器I/O”(Instrument I/O) >>“仪器驱动程序”(Instrument Drivers) >>“Agilent 34401”选板打开LabVIEW附带的Agilent 34401仪器驱动程序。下图显示了此选板及其附带的一些VI和子选板。
[ ] 放大图片
图3.Agilent 34401选板
许多仪器驱动程序有一个VI树形VI,可用于查看整个仪器驱动程序的层次结构。VI树形VI是一个不可执行VI,仅显示仪器驱动程序的功能结构。
启动和运行仪器驱动程序的最快方法是打开一个现成的示例。对于基于项目的仪器驱动程序,可以在“硬件输入和输出”(Hardware Input and Output) >>“仪器驱动程序”(Instrument Drivers) >>“LabVIEW即插即用驱动程序”(LabVIEW Plug and Play)下的示例查找器中查找这些内容。对于其他仪器驱动程序类型,可以从相应仪器驱动程序的“应用程序范例”(Application Examples)子选板中获取范例。在下图中,我们打开了Agilent 34401仪器驱动程序附带的Agilent 34401 Read Multiple Measurements.vi范例。此范例显示如何配置测量并获取多个读数。
图4.使用Agilent 34401读取多个测量读数的前面板
此示例中使用的是串行通信。在前面板上,有针对VISA资源名称、串行配置、函数类型、采样计数和超时的控件。设置所有这些设置并执行VI后,结果将显示在测量数组显示控件中。
[ ] 放大图片
图5.使用Agilent 34401读取多个测量数据的程序框图
从程序框图中可以看到,第一步是使用前面板上指定的串行配置和VISA资源名称来初始化仪器。然后调用“配置测量VI”,针对所需的测量设置仪器。还使用了“配置自动归零VI”来配置仪器的自动归零设置。启用自动归零功能可优化仪器的准确性,而禁用此功能可优化速度。仪器配置完成后,可使用“读取VI”读取多个点的数据。测量完成后,将调用“关闭VI”,开始执行仪器错误查询并终止软件与仪器的连接。最后,调用简易错误处理器(Simple Error Handler),查看是否发生了错误。
仪器驱动程序结构
下载仪器驱动程序后,仪器驱动程序VI将位于仪器驱动程序选板上。大多数仪器驱动程序的菜单选板包括以下部分。
初始化VI-调用的第一个仪器驱动程序VI,用于建立与仪器之间的通信。另外,该VI还执行将仪器置于默认上电状态或其它特定状态所需的任何操作。一般情况下,只需在应用程序开始时调用一次初始化VI。
配置VI是一组软件程序的集合,用于配置仪器进行预期的操作。根据特定仪器,可能会存在许多配置VI。调用这些VI后,仪器就已准备就绪,可以开始测量或进行系统仿真。
动作VI -用于开始或结束测试和测量操作,例如,打开触发系统或生成激励。动作VI与配置VI有所不同,因为动作VI不改变仪器设置,而是要求仪器根据现有配置执行某个动作。状态VI用于获取仪器的当前状态,或挂起操作的状态。
数据VI-将数据传输到仪器,或传输来自仪器的数据。例如,读取测量值或波形的VI以及将波形或数字模式下载至源仪器的VI。
工具VI-执行最常用仪器驱动程序VI的多种辅助操作。这些VI包括大多数仪器驱动程序模板VI,例如重置、自检、修订、错误查询和错误消息。工具VI也可能包含其它自定义仪器驱动程序VI,后者可进行校准或存储操作,以及重调启动。
关闭VI - 用于终止软件和仪器的连接,并释放系统资源。一般情况下,只需在应用程序结束时或完成与仪器通信时调用一次关闭VI。在每次成功调用初始化VI后,请务必调用匹配的结束VI,以避免不必要的内存资源占用。
可将仪器驱动程序按原样直接用于某个特定仪器。但是,LabVIEW即插即用仪器驱动程序随程序框图源代码一同发布,所以,可很对某个特殊应用自定义仪器驱动程序。通过编程方式在程序框图上链接仪器驱动程序VI,可创建仪器驱动程序控制应用程序和系统。