急问:采集的buffer溢出的问题和打印的问题
我用NI的板子进行采集,总是出现buffer溢出的情况。查了书,大概是说用那种循环buffer。我按照例程Cont Acq&Chart(buffer).vi 中的做了,还是不行,大概也就是100k,而且如果存盘的话,显然速度就慢下来。特别容易出现buffer溢出的情况。该怎么解决?关于循环buffer的例程中那个最好,还是有其他更好的方法?
另外,为什么打印的时候只能打印一个图,我想打印两个图,还有表格。表格也不知道是啥原因,打不出来。用的是Append Numeric Table to Report 和 Append Chart。都不行。不知道是不是哪个参数设置的问题。
非常感谢。
加大main buffer size,可能还要加大timeout的时间。我以前做过到500K速度的。存盘没有问题。我的机器内存还算大。开的buffer数组是80M:)也许用不了那么多,我也没试过。不过我用的不是labview,我们实验室没买labview。
.33
我的Buffer size设的2000k,我是要采3个通道的。timeout是指的什么?谢谢。
是不是编译后的速度更快?由于不是正版的labview,菜单中找不到编译的那一项。
timeout好像指的是等待相应的时间
你的daq卡型号?不是所有的卡都能支持3个通道的高速采样。有些低档卡只有一个dma通道。
而且标称的采样速度一般都是单通道的速度。100K的卡用三通道也就三十多K到头了。
.33
我用的是6111E,AI可到5M,我也不太清楚buffer size的设置标准是什么?目前设的是2M。
scan at a time与sample是一样的,也就是一次采一秒的数据。因为我要测低频的数据,有时是0.01Hz,大概要100秒的时间,还要存盘,所以采样率一大了,不能采够一个周期就出现buffer溢出的情况。目前的3个通道的采样率只能到50k。加起来也就是150k。实在是头疼啊。
望大虾们指教该怎么样才能提高采样率,而不出现buffer溢出的情况。
是NI 6111么?
有几个比较重要的参数:采样率不说了,第二个是buffer,在DAQmx中buffer的大小根据timing那个vi的sample rate参数来设置,可以查查帮助。
默认是这么配的:
Sample Rate Buffer Size
no rate specified 10 kS
0–100 S/s 1 kS
100–10,000 S/s 10 kS
10,000–1,000,000 S/s 100 kS
>1,000,000 S/s 1 MS
还可以用DAQmx Buffer Properties来设置buffer的大小。
最后是读采样的那个vi的samples to read。
一般来说buffer和samples to read设置的稍微大一些能避免缓存溢出。你可以设置buffer的大小为半秒钟到一秒钟的数据量,然后每次读出0.1-0.2秒的数据,这就要求你的循环周期在100-200ms。既然如此,就要减少磁盘读写的次数了。可以通过开辟一个内存空间保存采集的数据,然后每隔一段时间作一次流盘。对于高速的采集,流盘可是一个大麻烦。
俺先照你说的试试看。
另外,流盘是咋回事?俺没接触过。不懂的说。还有那个循环buffer的设置怎么才最优呢?
流盘就是把数据流存到磁盘中的意思,flush to disk
查了一下ni网站。PCI6111E,双通道S系列多功能DAQ卡。6110E才是4通道的。倒要请教你怎么设置的能让他3通道工作的啊?:D
.33
它的AO有两个通道,我只用一个通道发信号,AI有4个通道,我用3个通道进行采集。