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

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

如何实现精确定时保存

已解决!
转到解答

        最近在做了一个程序,是实现采集之后把数据保存下来,我把采集和保存放在一个循环里面,循环时间最慢是0.2-0.3秒,包括数据采集和运动控制的时间,采集没有定时,是按照最快速度采集,然后想定时保存,用的是elapsed time函数,到了设定的时间就把它保存下来,但是保存的时间不准确,比如我设定的保存时间是1秒,有可能1.1或1.2秒才会保存一次。我想是因为循环的时间太长所致,比如循环时间是0.3秒,设定保存时间是1秒,就要到1.2秒的时候才能保存一次。我想过用队列输入输出的办法来实现较精确定时,把采集和控制放在队列输入的循环里面,把保存单独用一个定时循环,作为队列输出,但效果还是不行,因为这样一来采集的时间就会变慢,和设定的保存一样了。请问各位老师,有什么办法能实现比较精确的定时吗?或者数据采集循环时间太长就没有办法了呢?

0 项奖励
1 条消息(共 5 条)
5,863 次查看

这样讲还是不太清楚,推荐直接用定时循环来保存你的数据,如果你做了两个循环成生产者/消费者模式的话。

 

如果还是不行,就把VI上传上来吧,大家一起分析下。

2 条消息(共 5 条)
5,842 次查看

使用两个独立的循环,采集循环和存储循环是完全可以的,关键是两个循环如何传递数据的问题。

 

1、使用队列肯定可以,但是不能使用出对列函数,应该在时间到时刷新队列,一次取出所有数据。

2、使用Function Global建立数据缓冲区,采集循环写入缓冲区,时间到后,存储循环取出所有数据。

陈树学
QQ:276509891 .
EMAIL:CSXCS_366@126.COM
qq群:78561268 80754347 37591940
http://labview.weebly.com/
新书《LabVIEW实用工具详解》已经发售,敬请关注。
3 条消息(共 5 条)
5,834 次查看
解答
接受人 swji
http://www.eefocus.com/myspace/blog/show.php?id=174783
陈树学
QQ:276509891 .
EMAIL:CSXCS_366@126.COM
qq群:78561268 80754347 37591940
http://labview.weebly.com/
新书《LabVIEW实用工具详解》已经发售,敬请关注。
4 条消息(共 5 条)
5,829 次查看
太好了,谢谢各位老师,我回去按照提供的方法再试一下吧极度高兴的表情
0 项奖励
5 条消息(共 5 条)
5,808 次查看