使用多个NI-DAQmx任务或终端路由时出现错误-89137

更新 Oct 28, 2020

适用于

硬件

  • Multifunction I/O Device

软件

  • LabVIEW

驱动

  • NI-DAQmx

问题详述

我正在NI-DAQmx设备中编写多个任务或连接多个终端路由,但是出现以下错误:
Error -89137: Specified route cannot be satisfied, because it requires resources that are currently in use by another route.

如何解决此错误?

解决方案

该错误是由于无法将参考时钟路由到所有创建的DAQmx任务或指定的路由而引起的。如果使用DAQmx连接端子VI ,请确保对连接的端子也使用DAQmx断开端子VI ,以在尝试访问不同DAQmx任务或程序部分中的相同硬件资源时避免此错误。 您也可以通过在NI MAX中重置设备来手动断开所有路由。

每当单独的任务需要访问共享资源时,都可能发生此错误。因此,重要的是检查并确保在运行VI或对其进行故障排除时没有意外的LabVIEW或DAQmx任务在运行。

如果计划同时使用多个子系统,例如AI,AO,DIO或Counter,则必须使用NI-DAQmx定时属性Reference Clock RateReference Clock Source为正在创建的所有任务定义相同的参考时钟。 且应在任何其他通道配置(例如触发和计时)之前进行设置。

为了设置这些属性,您需要根据您的开发环境调用适当的API:
  • 如果您使用LabVIEW编程,则应:
  1. 创建通道后添加DAQmx时序属性节点
  2. 右键单击属性节点,然后选择添加元素
  3. 选择More:Reference Clock:Rate PropertyMore:Reference Clock:Source Property,如下图所示(还附有示例):
  1. 设置RefClk.Src 输入错误消息所指示的源终端值,例如PXIe_Clk100 (因此,在这种情况下, RefClk Rate输入应设置为100 MHz)
  • 如果在LabWindows™/ CVI中进行编程,则应在创建通道之后和配置任务计时之前向代码中添加以下功能:
DAQmxErrChk(DAQmxSetTimingAttribute(TaskHandle,DAQmx_RefClk_Src,“ PXIe_Clk100”));
DAQmxErrChk(DAQmxSetTimingAttribute(TaskHandle,DAQmx_RefClk_Rate,100000000.0));
 

相关信息

参考时钟可以隐式或显式设置。在NI-DAQmx设备上使用参考时钟时,必须为该设备上的每个任务设置相同的参考时钟。如果未明确设置参考时钟,则要提交的第一个任务将隐式定义整个卡的参考时钟。因此,如果另一个任务稍后尝试显式设置其他参考时钟,则该时钟将尝试使用第一个任务已经使用的参考时钟电路。

当在某些DSA,S系列上使用通道扩展并同时对X系列卡进行采样时,这也可能表现出来。这是因为使用机箱的参考时钟完成了通道扩展同步。