更改LabVIEW中的DAQmx缓冲区分配以避免溢出



主要软件: Driver Software>>NI-DAQmx
主要软件版本: 7.0
主要软件修正版本: N/A
次要软件: LabVIEW Development Systems

问题:

我的模拟,数字或计数任务的出现了溢出或崩溃的问题。如何在LabVIEW中手动重设NI-DAQmx缓冲区大小?


解答:

内存分配通常由DAQmx自动处理。有关更多信息,请参阅KnowledgeBase 31T899KD

您可以通过调用在Measurement I/O»DAQmx - Data Acquisition»DAQmx Advanced Task Options上的DAQmx Configure Input Buffer VI (或 DAQmx Configure Output Buffer VI)进行输出操作,手动覆盖NI-DAQmx的缓冲区大小选择。此VI将覆盖NI-DAQmx执行的自动缓冲区分配。 DAQmx配置输入缓冲区VI根据其输入参数缓冲区大小分配采集缓冲区,该缓冲区大小根据任务中每个通道的缓冲区可容纳的采样数量来指定。

DAQmx Configure Input Buffer overrides automatic input buffer allocation that NI-DAQmx performs

 您还可以使用DAQmx缓冲区属性节点来查询DAQmx当前分配的内存量。

有关更多信息,请参阅DAQmx Configure Input Buffer VI 的LabVIEW帮助和NI-DAQmx帮助。您可以通过右键单击VI的顶部并选择帮助选项来访问DAQmx Configure Input Buffer VI 的帮助。

下图1显示了将DAQmx Configure Input Buffer VI添加到DAQmx任务代码中的常见方式。在任务启动之前,需要手动覆盖缓冲区,因此通常把DAQmx Configure Input Buffer VI放在配置虚拟通道之后,任务开始之前。

DAQmx Set Buffer Size in LabVIEW
Figure 1: DAQmx Set Buffer Size in LabVIEW



相关链接:
KnowledgeBase 7M5E7IM6: How to Change DAQmx Buffer Allocation in LabVIEW NXG to Avoid Overflow
KnowledgeBase 31T899KD: DAQmx Buffer Size Allocation for Finite or Continuous Acquisitions
KnowledgeBase 4EPF28F9: Why Do I Get Error -200279 From my DAQmx Read VI or Property Node?
NI-DAQmx Help: DAQmx Configure Input Buffer (VI)
NI-DAQmx Help: DAQmx Configure Output Buffer (VI)

附件:





报告日期: 06/06/2017
最近更新: 08/29/2017
文档编号: 7M5E5CM6