概览
本文档主要介绍NI的一款虚拟仪器软件架构API——NI-VISA。
NI-VISA提供了一个编程接口来控制NI应用开发环境(如LabVIEW、LabVIEW NXG、LabWindows/CVI和Measurement Studio)中的以太网/LXI、GPIB、串行、USB、PXI和VXI仪器。该API通过NI-VISA驱动进行安装。
- 如需了解NI-VISA在仪器控制软件堆栈中所处的位置,请参考仪器控制软件(GPIB、串行、VISA、USB等)。
- 关于VISA的更多历史详情,请参考NI-VISA背景介绍。
内容
VISA的优势
NI-VISA具有以下三个优势。
1. 接口独立性
无论是哪种类型的接口,NI-VISA均采用相同的操作来与仪器进行通信。这意味着接口是可以随意切换的,而且要与不同的仪器通信,只需使用一种编程语言即可。举例来说,无论仪器采用的是串行、GPIB还是USB接口,如果要将ASCII字符串写入基于消息的仪器,VISA命令都是相同的。
2. 平台可移植性
在NI-VISA中,使用VISA函数调用编写的程序可以在平台之间移动。VISA通过定义自己的数据类型来实现这一点。这样可以确保在不同平台上应用的性能始终如一。因此,使用LabVIEW编写的VISA应用程序可以轻易地移植到支持LabVIEW的任意平台上。NI-VISA支持多种操作系统,包括Windows操作系统、MAC OS操作系统和Linux操作系统。
3. 易用性
NI-VISA是一个极其简单的API,非常容易上手,其自身大部分I/O功能的函数不受总线限制。最常用的仪器功能只需通过简洁的命令集实现,因此用户不需要学习多种总线类型的底层通信协议。
VISA术语
在开始使用NI-VISA之前,学习一些开发过程中常用的术语会有所帮助。
VISA资源
VISA资源就是系统中仪器。如果有多个仪器连接至一个上位机,每个仪器都可以认为是一个VISA资源。资源就是仪器所有功能的完整描述。
VISA的资源类型取决于仪器。资源类型包括:INSTR、SOCKET、RAW等
VISA资源名称(仪器描述符)
VISA资源名称就是VISA资源的确切名称,用于指定仪器接口类型、仪器地址和VISA会话类型。VISA资源名称控制用于与开发环境中的仪器进行通信。该信息可帮助您确认仪器是否被程序正确识别和寻址。
VISA会话句柄
VISA会话句柄是与VISA资源的通信路径。使用viOpen ()操作,即可打开会话句柄。想要与仪器进行VISA通信时,必须随时打开VISA会话句柄。
VISA别名
VISA别名是VISA资源的别称。别名提供了一种友好的方式来快速识别仪器。
典型的VISA应用程序
典型的VISA应用程序应执行以下步骤:
- 打开指定VISA资源的会话句柄。
- 对该资源进行配置(设置波特率、终止字符等)。
- 对设备执行写入和读取。
- 关闭资源的会话句柄。
- 处理可能发生的任何错误。
如果仪器采用的是串行、USB、以太网或VISA支持的任何其他接口类型,则将完全遵循这些步骤。而我们只需要做的就是将“ VISA资源名称”连接到“ VISA打开”的输入。
LabVIEW范例
该LabVIEW应用程序打开与GPIB仪器的会话,执行* IDN?\ n的写入操作,并从设备读取指定数量的字节。如需查看每个VISA功能的说明,请参见VISA VI和功能 。
Visual C++范例
- GPIB、串行或以太网仪器:基于消息的通信范例
- VXI或PXI仪器:基于寄存器的通信
Visual Basic范例
- GPIB、串行或以太网仪器:基于消息的通信范例(Visual Basic)
- VXI或PXI仪器:基于消息的通信范例(Visual Basic)
NI-VISA下载
对于Windows和Mac操作系统,NI-VISA有单独的下载程序包。而对于Linux操作系统,NI-VISA与其他NI设备驱动程序捆绑在一起,称为“ NI Linux设备驱动程序”。
有关操作系统兼容性的更多信息,请参阅以下内容:
VISA范例
- NI-VISA相关的LabVIEW范例可以在NI Example Finder找到。
- NI-DAQmx、 NI-VIS和NI-488.2 Visual C++范例
- NI-DAQmx、NI-VISA和NI-488.2 .NET范例
仪器控制教程
请参阅以下不同仪器接口类型对应的仪器控制教程,这些教程逐步介绍了如何实现与仪器的通信。
仪器控制论坛
NI还通过“ 仪器控制论坛”提供更多支持。用户可以通过发布问题和共享信息来与来自全球各地的同行互动。