原创 LabVIEW数据如何实时保存以释放系统资源

2008-7-3 10:59 9140 6 8 分类: 测试测量
数据如何实时保存以释放系统资源?


问题:
我用WHILE循环编写了一个8通道模拟采集程序,每秒钟采一次数据,每小时自动保存一次数据到EXCEL文件,但采了几个小时后,系统资源占用很大,变成几秒钟采一次了,CPU一直是100%占用的,速度越来越慢,什么原因啊,请教
方法
创建两个循环,一个作采集一个作写数据库,中间采用变量传递,访问数据库的时间间隔设的小一点了,不然你那么多数据在内存中怎么可以哪。
使用缓冲文件系统这样做随着数据量的增多,系统资源消耗肯定也会增加。使用非缓冲文件系统就可以很好地解决这个问题。
先设一个缓冲区,将采集来的数据暂时存到缓冲区中,待到缓冲区满时就把其中的数据写入磁盘。缓冲区可以设大一点这样可以减少操作磁盘的次数。另外,最好编写两个线程,一个线程采集数据到缓冲区,另一个线程
检查缓冲区是否满,并在满的时候,将数据追加到数据文件中。


如果是循环采集,随着时间的推移,内存中波形数组肯定越来越大,势必造成内存不足;如果你只是把数据保存了,没有清空系统的接收的buffer,内存用量并不能下降呀。可以建一个缓冲堆栈(FIFO),来一个接收一个,再开一个存储线程,给定多少时间存储一次,这样大部分时间系统只有采集线程在工作,只是在存储的那很短的时间,分配一些时间片给存储线程,就跟word的自动保存一样,对采集线程没有多大影响,数据也不会丢失。我最近也正在做这方面的工作,这是我根据前辈的指导和自己的一些经验小结,跟大家共同探讨!
“固定缓冲区”法中缓冲区的容量是固定,当缓冲区满且数据存储后,当然要刷新缓冲区。由于采样频率和采样点数不一定保持不变,所以它单位时间内写磁盘的次数也是不一定的;


“时间片”法中单位时间写磁盘的次数是一定的,但数据缓冲区的容量是可伸缩的。


我在WHILE循环中,采用中间变量将采集到的数据存放到一个数组中,在另外一个循环中,每过一个小时保存一下数据,但是保存的数据是累加起来的,一次比一次多,中间变量中的数据并没有被释放掉。


如果采用缓冲堆栈(FIFO),势必要将两个循环合并为一个循环中,保存时会不会丢失少量数据呢? 具体如何操作啊?

文章评论2条评论)

登录后参与讨论

用户420235 2015-10-27 19:18

不知道博主是否还在从事这方面的工作,虽然是08年的文章,但如今正好碰到相关问题,跟楼上那位一样,想了解的更详细些,如果有些相关的案例最好,qq592636778,希望能回复,谢谢

用户288436 2010-6-13 10:06

你好,能不能详细说说这方面是怎么实现的,有例子程序就最好了,谢谢! 如果是循环采集,随着时间的推移,内存中波形数组肯定越来越大,势必造成内存不足;如果你只是把数据保存了,没有清空系统的接收的buffer,内存用量并不能下降呀。可以建一个缓冲堆栈(FIFO),来一个接收一个,再开一个存储线程,给定多少时间存储一次,这样大部分时间系统只有采集线程在工作,只是在存储的那很短的时间,分配一些时间片给存储线程,就跟word的自动保存一样,对采集线程没有多大影响,数据也不会丢失。
相关推荐阅读
jizzll_617398179 2010-02-08 10:53
正确理解A/D转换器的输入
http://www.freescale.com.cn/tech_ariticles/2005/1102_1.asp 许多嵌入式应用都会用到A/D转换器。然而,如果错误连接了A/D转换器输入端的电路,...
jizzll_617398179 2010-01-12 13:37
好久没来,都长草了
好久没来,都长草了,呵呵。整天忙得很,不过估计再过两个月会轻松点~\(≧▽≦)/~啦啦啦...
jizzll_617398179 2009-03-16 21:57
很奇怪,我收到站内信,但是却找不到发信人呢
发信人是个[],点击就跳到我自己的主页了。只好在这里给那位朋友留言了。 我不知道你说的哪篇文章,还有我也不知道你的EDN的ID。你可以在博客上面留言的。...
jizzll_617398179 2009-03-14 13:08
如何在EXCEL中使用16进制数
最近需要计算串口发送的数据,太多而且比较麻烦。知道EXECL功能强大,所以网上找了找,刚好,不错,很方便。网上找到的http://hi.bccn.net/space-99452-do-blog-id-...
jizzll_617398179 2009-03-05 14:37
〖常识〗不同晶振的最大波特率及其误差
最近犯了个错误,呵呵,晶振和波特率的问题,特查了记在这里,O(∩_∩)O~〖常识〗不同晶振的最大波特率及其误差http://www.aoxue.org/bbs/read.php?tid=65585不同...
jizzll_617398179 2009-02-11 14:30
大端模式和小端模式
转载http://www.cnblogs.com/TsuiLei/archive/2008/10/29/1322504.html大端格式:在这种格式中,字数据的高字节存储在低地址中,而字数据的低字节则...
我要评论
2
6
关闭 站长推荐上一条 /2 下一条