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

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

生产者消费者 存储数据,非常非常着急!!!!

我使用了producer/consumer循环, 生产者每2毫秒采集一个数据,消费者每秒存一个数据,中间数据用flush quene去除,但在运行中发现,开始时不到一秒消费者就存储了一个数据,比如说程序运行到60秒,结果却取了70个数据,但是如果运行超过1800秒之后发现,数据存储开始变慢,运行到大概2200秒时,却只存了1980个左右数据,我不清楚为什么?请教高手指点,马上要毕业了,非常非常着急!!!!
0 项奖励
1 条消息(共 8 条)
4,696 次查看

rotmond 写:
我使用了producer/consumer循环, 生产者每2毫秒采集一个数据,消费者每秒存一个数据,中间数据用flush quene去除,但在运行中发现,开始时不到一秒消费者就存储了一个数据,比如说程序运行到60秒,结果却取了70个数据,但是如果运行超过1800秒之后发现,数据存储开始变慢,运行到大概2200秒时,却只存了1980个左右数据,我不清楚为什么?请教高手指点,马上要毕业了,非常非常着急!!!!

你的采集速度为2MS,记录速度为1S,而且每秒只需要记录一个数据,这种情况下,没有必要使用队列传递所有采集数据,在采集循环中每秒入队一个数据就可以了,由入队的速度来协调出队的速度。

 

元素出队的循环不需要任何时间控制。

 

这种情况下,使用通告就足以满足要求,更为合适。

陈树学
QQ:276509891 .
EMAIL:CSXCS_366@126.COM
qq群:78561268 80754347 37591940
http://labview.weebly.com/
新书《LabVIEW实用工具详解》已经发售,敬请关注。
0 项奖励
2 条消息(共 8 条)
4,685 次查看
照你的描述这个过程应该是不会出现这样的情况的,大致的程序放上来一下吧,看能不能看出点什么
Best Regards

Hu Yu
0 项奖励
4 条消息(共 8 条)
4,659 次查看
我今天检查了一下程序发现,不是先快后慢,实际情况是: 开始400秒一切如同预期,2毫秒采一个点,1秒存一个,但后来500秒左右存储就开始慢下来了,1000秒时就只存了900左右个点。我和NI的工程师电联了一下,说是可能因为采用了register 并且建立了array 用来存储,所以随着数据的增多会越来越慢,我想他说的应该是对的,所以我尝试着2秒存一个数据,实际证明结果正确,一共存了1202个点,不过我还是想尝试一秒存一个,不知有没有好的方法。谢谢了
0 项奖励
5 条消息(共 8 条)
4,619 次查看
这是我的VI,哪位帮忙看看,编的很差很乱,一共3层,主要程序在第2层,主要帮着看看消费者循环,如果您能帮着改改就更好了,因为我是个新手,经常会有无从下手之感。
0 项奖励
6 条消息(共 8 条)
4,614 次查看
PS》 我的Labview是英文的。所以有些中文名词我就不懂了。
0 项奖励
7 条消息(共 8 条)
4,609 次查看
已经解决了,就像之前说的因为register及其连接的array,造成的,我用了example的write to file.vi 相似地建立了一个循环,就解决了。不过还是要感谢楼上几位的帮助,希望好心人越来越多,我们的论坛就和越来越兴旺。
0 项奖励
8 条消息(共 8 条)
4,586 次查看