为什么在使用USB或者以太网的采集卡设备时,我的数据会看起来被冻结了一段时间?



主要软件: Driver Software>>NI-DAQmx
主要软件版本: 9.7
主要软件修正版本: N/A
次要软件: N/A
硬件: Multifunction DAQ (MIO), Multifunction DAQ (MIO)>>Ethernet DAQ, Multifunction DAQ (MIO)>>Portable

问题:

当我使用USB或者以太网设备进行数据采集时,我的数据仅会在每隔5秒或更多的时间才更新一次。这通常发生在我设置DAQmx Read的属性节点相对于Relative to为最近采样Most recent sample时,以及offset偏移值是一个负数,且绝对值大于我的每通道采样点数时。



解答:

这是一个皆知的USB和以太网设备问题。可以通过以下两种方式来避免。一种是不设置DAQmx Read的属性节点Relative to为Most recent sample;另一种是在读取VI之前调用每通道可采样数Available Samples Per Channel的属性节点,这样做迫使DAQ设备将新数据从板载FIFO上发送出去。下面的程序展示了每通道可采样数Available Samples Per Channel的属性节点是如何设置的。

 确认每通道可采样数Available Samples Per Channel的属性节点连线到一个显示控件,这样Labview就会把这个属性读取包含在编译的程序中了。

当设置DAQmx Read的Relative to属性节点为最近采样most recent sample时,并不是说“最近一次被设备采集的数据”,而是“在缓存中的最近一次采样”。如果程序没有显示地获取一些新采样点时,数据就会以大数据块的方式间断性地从设备板载缓存往PC缓存里传,也就是说USB和以太网的传输通讯并不总是有很大的负荷。 当选择相对于属性节点为最近采样时,意味着相对于设备发送的每一个大数据块的最后一个采样点。这些大数据块每过一定的时间间隔就发过来一次。通过读取每通道可采样数的属性,驱动就要求设备清理一次数据,不管这一时刻里面积压了多少数据,这样应用程序的工作会更加优化合理。

另一个通常到这数据看似冻结几秒的原因就是用户将DAQmx读取VI上的每通道采样数设置得太大。比如说,你讲每通道采样数设置为10000个采样,而你的采样率只有1000个采样点美秒,那么你会每隔10秒才得到一次数据块。这种结果会出现在任何采用硬件定时的DAQ板卡。



相关链接: KnowledgeBase 4VTI04BQ: Why Do I Have to Specify a Number of Samples to Read When Continuously Acquiring Data? KnowledgeBase 4Y2AS1WA: DAQmx Timing and Sample Rates

附件:





报告日期: 03/22/2013
最近更新: 10/10/2013
文档编号: 67LDO7J0