读取数据文件的问题
我有一台数采的仪器,采样频率1K,它的软件运行后默认的是产生观测信号;在点击保存后才实时保存数据在一个结果文件中(文件大小的上限为PC的硬盘剩余空间)基于这样一台仪器,我需要编一个实时的长期监测程序,实时监测并处理有特征的一些数据段(是数据段)。我该怎么做呢?
我目前的做法是在while循环里面用写入电子表格文件(write to spreadsheet file.vi)读取这个越来越庞大的结果文件并每次索引1000个数据,这样做是行不通的,一次性读入的文件太大了。我想是否可以将这台仪器软件的数据保存形式改为固定结果文件的大小,每存满1000个数据(也就是存一秒的数据),便清空结果文件重新往里面存储新数据,这样是否可行?或者有什么更好的办法吗? 传说中TDMS文件是可以存储大数据量的!在王兄的博客里有例子!
http://wdy.cpubbs.com
好运!在文件这一块! 大量的数据最好采用二进制或者TDMS吧,也可以每隔多少个点后,重新建立一个新的文件进行保存。保存为多个文件 谢谢两位版主。两位的回答我有些不明白。小弟我是学土木的,问题有些低级还请包涵(或耐心?呵呵)
我做的这个监测程序是长期的,连续运行几个月是很正常的。因此,我的程序如果是对仪器实时保存的这个结果文件进行操作显然是不现实的。(这个结果文件是不断增大;或者按王兄所说保存成多个文件,也总有超过硬盘空间的一天啊)
因此,我的设想里面有两种方案:
1.改变仪器保存数据的形式,改为把数据存进一个固定大小的文件,文件存满时,清空它并重新往里面存数据。而我的程序就可以以一定时间间隔读取这个文件。
2.在仪器的源程序上做二次开发。对它的观测信号进行触发采集。(为什么仪器附带的源程序里面有缺损?)
这样是否可行呢?或者有什么实际点的办法?
PS:王兄的博客我看了(文件只看了CPUBBS推荐的那个),非常佩服兄台做事的态度;另外,令导师也令人非常佩服 NI 有海量存储的硬盘阵列,挺高级的看起来。你可以了解下。
你说的触发采集和历史数据的清理这些都是可以做到的,也是仪器方面常用的手段,如果数据不是很重要,那么可以只保留结果;如果也重要,但不需要保存很长时间的历史数据,那么间隔一定时间可以把一些前面的文件删除掉。总保留5个文件左右也可以了。
页:
[1]