理论上没有保存上限。但是如果文件过大你读取它的时候会遇到困难,可能文件加载会耗时过长。甚至可能导致LabVIEW崩溃。如果你有太多数据需要存储,采用如下几个办法:
分割成很多个小文件,一般建议单个文件不超过20M
使用tdms格式存储
使用DCT直接存到数据库
1.波形图中想实现这个功能,只要改变X坐标轴的显示格式和波形图标的扫描方式|:右击波形图控件选择“属性”,进行设置;波形图表中,数据会刷新绘制显示,第一次显示的点第二次就被新的数据点覆盖不见了。这种情况下,可以利用while循环,配合移位寄存器与数组插入来实现,把新的数据点插入到旧的数据点之后再一起送往控件显示,只要你送的数据点为波形数据(含时间信息),则x轴会自动压缩的。2.首先,如果你采集到的数据只有波形幅值信息而没有时间信息的话,那么你先要将其转换为波形数据。假设你的数据已经有时间信息的情况下,你可以利用提取“波形属性”这个vi来处理,它可以将波形和时间分离,幅值为一维数组,不过分离出的时间可能为t0和dt两个标量,这个时候,你需要根据波形数据的大小自己将它扩展为数组。比如:波形中有10个数据,t0为0,dt为0.1,那么你可以利用循环,将时间信息循环计算10次,得到一个时间数组[0,0.1,0.2,……0.9],然后将波形的幅值数据数组和时间数组重新捆绑后,利用“写入电子表格”vi即可。
这个问题其实可以不这么复杂,如果你保存的是波形文件(用“写入波形文件”vi)的话,直接用“导出波形至文本文件”vi即可。这个vi将波形数据按时间和幅值数据的顺序保存到了txt文件中,第一列为时间,然后为数据。要知道,txt文件和excel文件对于Labview来说是一样一样的。
同步显示问题只要把你的显示控件在程序框图中放入循环体中就可以了。这样每循环一次就会显示一次曲线,如果你的循环周期比较短,显示在肉眼看几乎就是同步的了(因为毕竟每次显示的都是一组数据)。更严谨的同步显示估计是单点采集方式吧。但是那是采集设置的问题,就显示的同步来说,只需放入循环内就可以了。
3.导出时间为1904这是因为你的波形数据在处理时为使用当前时间作为起始时间。用“获取当前时间”vi可以解决这个问题。不过我记得好像得到的当前时间需要转换下格式。然后用“创建波形”vi将你的波形数据重新生成一个就可以了。
4.如果想通用些的,就保存成txt(excel)的数据格式,但这种格式在数据点较多时会很大,打开也很慢,并且这种格式保存速度慢,如果你的程序对数据采集速度保存速度有要求的话,要慎重。更多的是dat格式或者wave格式,还有tdm和tdms。这些格式保存速度快,数据以二进制格式保存,文件小。但是打开方式却不通用了,一般仅供labview自己打开,不过可以通过labview中的数据转换的vi来将其在事后(即全部采集完成后,这样不影响实时性)转换为txt格式文件,以供查看。
希望对你有帮助。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)