NI LabVIEW,CVI,数据采集等产品讨论区

取消
显示结果 
搜索替代 
您的意思是: 

如何解决200279错误?

数据采集、处理的程序,总是报200279错误,我想这应该是处理速度跟不上导致的。听说解决这种问题应该使用双缓冲,不知道具体如何实现?如需要附我的程序图请说明。谢谢!
0 项奖励
1 条消息(共 7 条)
7,559 次查看

Error Code Explainer说的满清楚的:

Attempted to read samples that are no longer available. The requested sample was previously available, but has since been overwritten.

Increasing the buffer size, reading the data more frequently, or specifying a fixed number of samples to read instead of reading all available samples might correct the problem.

 

找个例子看看就会了。

0 项奖励
2 条消息(共 7 条)
7,556 次查看
谢谢您的回复,不过能否具体点呢?
labVIEW里的例子看了好多了,可是确实没有发现哪个是可以解决我问题的!
不知您是否可以指点一二. 多谢!
0 项奖励
3 条消息(共 7 条)
7,543 次查看
看一下这个例子先。
 
C:\Program Files\National Instruments\LabVIEW 8.2\examples\DAQmx\Analog In\Measure Voltage.llb\Cont Acq&Graph Voltage-To File(Binary).vi
 
Example Finder里还有很多其他的例子。
0 项奖励
4 条消息(共 7 条)
7,540 次查看
哎, 这个例子我看过,可是没觉得有能帮到我的地方啊:(
在网上搜了一下ni技术支持, 对200279错误的解决一般都是增大缓冲区、降低采样率、减小每次读取点数之类的措施,并没有从根本上杜绝这种现象。我昨天试了一下记录和显示数据处理时间和“samples available”属性,发现有些时候就是瞬时值不正常,但这种偶发的情况可能就是导致200279的根源,这种问题应该是非常适宜用双缓冲来解决的。
我只在c语言里做过类似的东西,实在不知道应该如何在labVIEW里实现! 所以恳请大家帮忙,谢谢!
 
 
0 项奖励
5 条消息(共 7 条)
7,521 次查看
这种问题即便是使用双缓冲也不一定可以解决的,使用双缓冲也存在两个缓冲区被写满的情况
另外,NI的数据采集卡内部有缓冲,存储到一定的数据点时通过PCI总线传输到计算机内存中,数据的传递与此时的采集过程是相对独立的,逻辑上也可以理解为双缓冲的方式
还是从程序结构上找找原因吧,有时候可以通过程序结构的改进改善性能。可以考虑使用Master/slave结构,或者Producer/consumer结构等,主要目的就是把数据采集与后期处理分开,lv中有相应例程,可以参考
如果这样也不行,那基本上就只能考虑降低采样率了
大概就是这样了,试试吧
0 项奖励
6 条消息(共 7 条)
7,475 次查看

如果循环内有延时的话,把延时去掉或禁用延时。

LYB_6_0-1627553399296.png

 

0 项奖励
7 条消息(共 7 条)
2,612 次查看