NI-VISA错误-1073807246无法访问资源

更新 Apr 18, 2024

适用于

硬件

  • CompactRIO Controller
  • Serial Interface Device
  • PXI Serial Interface Module
  • C Series Serial Interface Module
  • USB Cable

软件

  • LabVIEW

驱动

  • NI-VISA

问题详述

我正在尝试与我的第三方工具通信。 VISA测试面板在NI MAX中可以正常工作,但在使用VISA示例VI时出现以下错误。

-1073807246:资源有效,但VISA当前无法访问它。
为什么我会收到此错误,如何消除它?

我在使用串口兼容性VI时遇到错误37:找不到设备 。我该如何解决错误?

解决方案

您可能在LabVIEW开发环境中以及从构建的可执行文件中获得此错误。这表明LabVIEW无法控制串口。

以下是可能的原因以及这些错误的解决方案:
  • 其它程序已经控制了该串口。一次只能是一个程序控制串口资源。关闭所有其他控制串口的程序,譬如Hyperterminal或任何NI MAX VISA测试面板。通过导航到Tools -> Options -> Environment并勾选“自动关闭VISA会话句柄”,在LabVIEW中自动关闭VISA会话句柄。
  • 如果在打开LabVIEW的同时运行LabVIEW可执行程序,可能LabVIEW已经控制了串口资源。在LabVIEW里使用串口操作VI后默认是不释放串口资源的。LabVIEW可以继续运行其他控制串口操作的VI,但是执行程序不可以。为了释放串口资源,必须执行下面操作的其中一个:
    • 关闭LabVIEW。仅关闭所有使用串口操作的VI是不够的。通过完全关闭LabVIEW,您可以强制关闭LabVIEW打开的所有会话。
    • 使用VISA Advanced选板中的VISA Close VI
  • 如果您使用的是串行 转换器或已构建自定义串行转换器,请确保已正确连接串行端口线 。
  • 文件serpdrv不可用(仅适用于LabVIEW 6.1及更早版本的串行兼容VI)。
    • 从LabVIEW运行VI时,serpdrv应该位于libdir指定的路径(通常是National Instruments \ LabVIEW \
    • 当运行LabVIEW执行程序时,在之前路径下有serpdrv的同时,也将在可执行程序路径或运行引擎相同路径生成serpdrv。公共的运行引擎路径是: National Instruments \ Shared \ LabVIEW Run-Time
  • 对于可执行文件,拷贝位于可执行文件夹的 labview.ini 文件(位于Program Files\National Instruments\LabVIEW 20[XX]\LabVIEW.ini。用可执行程序名称重命名文件(name.ini),并且将配置文件的第一行[LabVIEW]改为[name].
  • 检查操作系统(OS)和NI-VISA驱动程序的兼容性。这可以在您的NI-VISA版本的自述文件中找到。如果您的NI-VISA版本与您的操作系统不兼容,则可能导致错误,您需要升级驱动程序。   
  • 如果驱动程序由于本身问题而未正确识别COM端口,也会发生此错误。尝试 强制重新安装 NI-VISA。

相关信息

这些解决方案还有助于解决使用串口兼容性VI时出现的错误37:未找到设备 。这些VI已被弃用,因此错误仅在此处作为注释提及。如果在NI MAX中收到相同的错误消息,或者有其他故障排除步骤,请参阅MAX显示感叹号中标题为COM Port 的文章。

如果您使用的是CompactRIO,则这是由启用Console Out引起的。请检查cRIO的启动设置或拨动开关。