LabVIEW通过VISA读取或写入时出现超时错误-1073807339
可以用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 SetTimeout 。请参阅为VISA会话配置超时 。
注意 :更改VISA会话的超时值将影响会话中的所有VISA写入和读取。但是,可以在会话期间的任何时候设置此属性,允许根据需要进行配置。
需要说明的是,上述的例程和文档,都是可以下载的,双击即可打开,其中压缩文件是可以采用粘贴复制的方式,拷贝到硬盘上。这不是图片,各位小伙伴看到后尝试一下,这个问题就不用加微信咨询了。有关LabVIEW编程、LabVIEW开发等相关项目,可联系们。