From Friday, April 19th (11:00 PM CDT) through Saturday, April 20th (2:00 PM CDT), 2024, ni.com will undergo system upgrades that may result in temporary service interruption.

We appreciate your patience as we improve our online experience.



解决在LabVIEW NXG中NI-DAQmx -50103资源预留错误



主要软件: Driver Software>>NI-DAQmx
主要软件版本: 14.0
主要软件修正版本: N/A
次要软件: N/A

问题:

当使用NI-DAQmx支持LabVIEW NXG时,当我没有明确使用相同的资源时,为什么会收到以下错误?

错误 -50103 指定资源被预留

 


解答:

此错误是NI-DAQmx识别物理资源冲突的结果。 因为在各种情况下可以观察到错误,所以我们会描述下面几种可能的情况:
  • 情况1: 持续启动和清除DAQmx任务(在一个循环中)一段时间。
  • 情况2: 具有需要两个计数器的计数器任务和其中一个计数器任务正由另一个任务在同一设备上使用。
  • 情况3: 使用多个独立执行任何错误的子VI,但从顶层VI调用时会产生错误。
  • 情况4: 同时运行两个或多个模拟输入或模拟输出任务。
  • 情况5: 没有正确清理任务并释放其资源。

情况1: 在一段较长的时间内持续创建,配置,启动和清除DAQmx任务(循环中)。

为避免此问题,请在循环之前配置并启动任务一次,然后根据需要调用循环中的读/写功能,并在循环后清除任务。

有关如何执行此操作的示例,请查看DAQmx和NI社区页面的示例。 要查找示例,请启动LabVIEW NXG并转到帮助>>查找示例。按任务浏览并选择硬件输入和输出>>DAQmx


不正确:



正确:



情况2: 在同一台设备上使用多个计数器任务。

对于任何需要两个计数器的任务,第二个计数器是基于连接到创建通道节点的计数器保留的。 计数器总是与它旁边的计数器配对,所以ctr 0与ctr 1配对,ctr 2与ctr 3配对。KnowledgeBase 4T6CQKBP 列出使用多个计数器的计数器任务。

情况3: 使用多个独立执行任何错误的子VI,但从顶层VI调用时会产生错误。

当您有多个NI-DAQmxVI可以再次调用相同的任务而不清除以前打开的任务时,可能会出现-50103错误。 如果在任何给定的时间,您尝试打开已经被使用的任务,您可能会收到 错误-50103:指定的资源被保留.

要防止发生此错误,请在再次在另一个SubVI中打开任务之前清除该任务,或者将DAQmx任务从一个SubVI传递到另一个,以避免再次打开该任务。

情况4: 同时运行两个或多个模拟输入或模拟输出任务。

当程序显式调用同时执行相同操作类型的多个任务时,也可能会抛出此错误。 与之前的其他两种情况一样,这产生了一种情况,即多个独立任务同时尝试访问相同的资源。 即使任务可能使用不同的通道,但这仍然是一个冲突,因为它们需要使用相同的模数转换器和采样时钟。 要解决此问题,请将相同类型的所有操作合并到同一任务中。 对于DAQmx 7.3及更高版本,即使使用多个DAQmx创建通道节点,也可以使用多种类型的模拟输入。

注意: 案例4在尝试使用cDAQ-9172机箱执行相同类型的多个任务时很常见。 请记住,这种机箱只有一个定时引擎。 为了避免这个问题,将所有的模拟采集合并成一个单一的任务,以正确使用单个定时引擎。 cDAQ-9174和9178机箱具有三个模拟输入定时引擎,因此如果所有任务都在单独的模块上,则可以支持三个并行模拟输入任务。

情况5: 没有正确清理任务并释放其资源。

当DAQmx任务启动或以其他方式进入保留或提交状态(请参阅NI-DAQmx帮助任务状态模型), 与该任务相关联的资源(如时钟,通道,触发线或缓冲存储器)由任务完全获取。 因为任务已经保留了这些资源,所以尝试访问这些资源的任何任务都会遇到错误 -50103.

您可以通过执行以下操作之一来解决此问题:
  • 添加一个DAQmx Clear Task.gvi在任务的结尾
  • 添加一个DAQmx Control Task.gvi在任务的结尾, 并将其动作设置为不保留
注意: 情况5还包括当您尝试在第一次执行后无法正确清除任务时再次运行应用程序的情况。


相关链接:

附件:





报告日期: 05/16/2017
最近更新: 09/06/2017
文档编号: 7LF8J6I0