VISA读取或写入时出现超时错误-1073807339

更新 Feb 20, 2024

适用于

软件

  • LabVIEW
  • LabWindows/CVI

驱动

  • NI-VISA
  • NI-Serial
  • NI-488.2

问题详述

  • 当我执行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写入和读取。但是,您可以在会话期间的任何时候设置此属性,允许您根据需要进行配置。

相关信息

有关所需软件的更多信息,以及在系统中解决仪器启动和运行时常见错误或故障的方法,请访问文档: 仪器驱动程序故障排除