3、开发环境和GPIB硬件等NI产品随附NI-VISA开发许可证。 NI-VISA运行发布许可证随附于发布完毕的系统,该系统包含NI硬件、NI开发环境和通过NI开发环境编写的应用程序。
使用说明
1、什么是VISA 驱动开发向导(VISA Driver Development Wizard)?
NI-VISA 安装了一个名为 VISA 驱动开发向导(VISA Driver Development Wizard)的工具。这个工具允许您使用 VISA 来创建一个 PXI (PCI eXtensions for Instrumentation), PCI, USB,或者 Firewire 设备的驱动。
当使用这个向导时,您能直接进行较低层的设备配置。-这包括-I/O,读写内存映射的寄存器,和中断服务。 可以在选定的 Windows 操作系统和 LabVIEW 实时模块下进行NI-VISA的编程。
2、VISA 错误 -1073807202 (0xBFFF009E)
我已经安装了一个GPIB板卡,我可以成功地使用GPIB命令和我的硬件通讯。但是,当我尝试使用VISA命令和我的硬件通讯的时候,我遇到了一个VISA 错误 -1073807202 (0xBFFF009E)。这个错误是什么意思,我该如何解决呢?
解答:
这个错误提示 NI-VISA没有安装,或者安装程序有问题。
解决这个错误,您需要卸载您的机器上的所有版本的NI-VISA软件。然后,要么重新安装同样的NI-VISA版本,要么升级使用最新的NI-VISA版本(下面的链接)。当安装完成时,确保NI-VISA或者NI-VISA Run-Time Engine是安装到计算机了。
3、VISA读取或写入时出现超时错误-1073807339
当我执行VISA写入或VISA读取操作时,得到错误-1073807339 :
在VISA读取或VISA写入时发生错误-1073807339。
可能的原因:
VISA:(Hex 0xBFFF0015)在操作完成之前超时。
我可以用VISA测试面板与仪器进行通讯,但是当我在LabVIEW中使用VISA写入和读取时,得到超时错误 -1073807339。
解决方案
您可能会收到此错误消息的原因有多种,其中最常见的原因请参考以下详细信息:
A)您可能没有安装正确的驱动程序。请确保您拥有适合硬件的驱动程序。一些常见的驱动程序如下:
NI-VISA (用于使用串行或GPIB通信的仪器)
NI-Serial (用于使用RS232,RS422,RS485等串行通信的仪器)
NI-488.2 (用于使用GPIB通信的仪器)
注意 :在安装任何新的NI GPIB硬件设备之前,必须安装NI-488.2驱动程序软件,以便Windows可以检测到连接的硬件。
还要确保安装了最新兼容的驱动程序版本。可以在驱动程序的自述文件中找到兼容性信息。
B)端口未连接,选择了错误的端口,或端口无法发送/接收数据。检查仪器是否已正确插入您正在使用的端口。
C)尝试使用安装相同驱动程序的其他系统。 原计算机的COM端口可能已损坏或无法正常工作。
D)将错误命令字符串写入驱动程序也可能导致超时错误。检查发送到VISA读取和VISA写入的命令字符串,并确保它们是由适合您仪器的语法编写的。
注意 :命令末尾通常需要换行或回车。在LabVIEW中测试命令字符串的一个好方法是右键单击前面板上的命令字符串控件,并将显示更改为'\'代码显示模式。在此模式下,回车符为\r ,换行符为\n ,行尾为\r\n 。请参阅产品手册来了解相关的内容,并确保始终使用适当的选项。
E)可能未正确配置端口的通信设置。验证是否正确设置了波特率,数据位,奇偶校验,停止位和流量控制,以符合您的硬件的要求。
注意 :您可以在运行时使用VISA VI,或者在NI-MAX中以编程方式更改这些设置,如下例所示:
F)尝试读取的位(bits),比串行端口可用的位更多可能会导致此错误。
F.1)应配置端口字节的VISA属性节点 ,以确保VISA读取的数据仅限于可用的数据量。
F.2)此外,您可以通过一次只读取1个字节来验证您是否尝试读取太多字节。如果在执行此操作时未收到错误,请增加读取的字节数,直到再次出现超时错误。这种方法会通知您指令发送回来的字节数。
注意 :如果在只读取1个字节时仍然收到错误,请验证该命令以确保它已正确写入,并且您还正确终止了命令字符串(如解决方案C中所示)。
G)较旧的仪器可能无法快速响应写入端口的命令,导致VISA写入和VISA读取命令之间出现较大的延迟。设计用于与此类仪器接口的应用程序应预判到此延迟,并在VISA写入和读取之间加入等待功能,以有效避免潜在的超时错误。
H)当您读取或写入大量数据时也可能会发生超时,因为大数据集传输时,通常需要比通过串行端口传输的默认超时时间2000 ms更长的时间。您可以用不同的方式手动指定VISA会话超时 ,具体取决于您的开发系统。有关设置VISA超时的说明,请参阅以下内容:
LabVIEW :您可以使用位于仪器I/O»VISA»VISA Advanced下的函数选板中的VISA Set Timeout 。请参阅为VISA会话配置超时 。
LabWindows / CVI :您可以使用viSetAttribute函数,并将其中Attribute_Name参数设置为VI_ATTR_TMO_VALUE 。
注意 :更改VISA会话的超时值将影响会话中的所有VISA写入和读取。但是,您可以在会话期间的任何时候设置此属性,允许您根据需要进行配置。
4、在事件已经发生的情况下VISA等待仍然超时
我正在使用VISA事件,在一个循环中重复地等待VISA事件的发生。该循环经过几个周期之后,VISA等待时间VI超时,但是我知道等待的事件在超时限定时间内已经发生。为什么会产生该问题?
解答:
在VISA的文档资料中指出等待事件函数会返回一个句柄,该句柄指定了一个事件的发生。每次你调用VISA等待函数,在捕捉到事件发生后必须关闭该事件句柄。在LabVIEW中,通过在循环中将等待事件VI的事件输出端口连接到VISA关闭VI。请看下列范例和截图。