错误-1073807339:操作完成前发生超时

更新 Jun 24, 2026

适用于

软件

  • LabVIEW
  • LabWindows/CVI

驱动

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

问题详述

当我尝试在 LabVIEW 或 VISA 测试面板中与我的仪器通信时,出现以下错误:
 

错误 -1073807339 发生于 VISA <函数名称>.vi

可能原因:
VISA: (Hex 0xBFFF0015) 操作完成前发生超时。

 

image.png

 

Picture2.png

解决方案

当 NI-VISA 期望从设备接收消息或响应时,如果在超时期间内未收到该消息,或者根本未收到,就会发生此错误。此错误通常是由于物理连接不当、通信设置不正确或使用设备无法识别的命令造成的。本文件将指导您逐步排查系统中每个部分的问题。
 

测试物理连接

  1. 确保线缆正确连接到您的仪器。
  2. 若有资源的话,尝试使用不同的线缆。
  3. 根据您的设备,按照下面适当文章中的说明确保您的通信设置正确:
  1. 确保您使用的是设备的正确结束字符。 
  2. (如果使用串行设备) 执行串行回环测试。这可以突出串行端口、电缆或生成消息的软件中的问题,而无需连接到第三方硬件。
  3. 如果使用 PXI/PXIe 串口卡,请尝试将其更换到不同的机箱插槽。


运行范例

如果您已确认您的物理连接和通信设置配置正确,请尝试运行一个范例。

范例程序将对您的设备执行基本的输入和输出,并可能帮助缩小导致错误的特定功能或命令范围。
 

 

  • GPIB范例:打开 LabVIEW 并导航到 帮助 >> 查找范例 >> 硬件输入和输出 >> GPIB >> GPIB和VISA函数.vi
  • 串口范例:打开 LabVIEW 并导航到 帮助 >> 查找范例 >> 硬件输入和输出 >> 串口 >> 简单串口.vi
  • 还有一个特定用于 RS-485 通信的示例,位于 帮助 >> 查找范例 >> 硬件输入和输出 >> 串口 >> RS-485 收发器控制.vi

 

排查您的 LabVIEW 应用程序

  • 尝试将您的程序缩小到最小的代码段,以稳定复现错误。
  • 将此代码段与示例程序进行比较,或尝试修改范例程序以执行相同的任务。
    • 注意:在修改之前,请确保从范例程序中另存一份文件,以免影响了范例程序本体。
  • 参考您设备的用户手册,以确保您使用的是正确的命令。
  • 若在使用 NI VISA 读取/写入/等待时遇到超时,可尝试将您的 NI VISA 调用更改为同步。这将允许 NI VISA 在没有其他进程干扰的情况下执行调用。参考:如何将 VISA 或 GPIB VI 从异步更改为同步?
  • 您可以配置 LabVIEW 中的显示控件以显示隐藏字符,例如换行符(\n)、回车符(\r)或制表符(\t),以此确保您的消息和结束字符与设备的用户手册匹配。
  • 尝试在您的代码中放置启用结束字符(TermChar En),以查看问题是否可以解决。
  • 参考您设备的手册,查看您发送的特定命令是否有符合预期的响应。
  • 如果您使用的是较旧的仪器,请尝试在 VISA 写入和读取之间实现等待函数。 较旧的仪器可能不会立即响应写入端口的命令,导致 VISA 写入和 VISA 读取命令之间存在较大延迟。设计用于与此类仪器接口的应用程序应预期此延迟。
    • 如果一个设备的响应时间长短不定的话,您可以添加代码来处理超时错误。可考虑重试VISA读取操作若干次,若皆无响应才回传超时错误给用户。
  • 使用VISA 设置超时属性手动指定超时。有关更多信息,请参考配置 VISA 会话的超时
  • 运用I/O Trace进行查看,其可以记录NI-VISA与您的设备之间发送的所有命令的记录。
  • 检查仪器驱动程序网络(IDNet),或参考设备制造商的网站,尝试使用该设备官方提供的LabVIEW仪器驱动程序来运行
  • 确认您的设备没有被除目前所使用程序之外的其它程序占用。