大量数据曲线图显示问题

2019-07-17 18:22发布

最近在做一个数据采集控制系统,采用的是51作为下位机采集数据,每组数据包括3种(比如温度、湿度、伸长量),通过串口上传数据到PC,用labview编写上位机软件,用XY图显示2种数据的实时曲线(比如温度、湿度曲线),采集时间短,程序一切正常,采集时间一长,机器就会反应非常迟钝(采集频率大约为30Hz左右),从阮奇桢的《我和LabVIEW》中得到启示,我现在感觉应该是显示大量数据导致的程序效率低下,书中给的方法是“数据重采样压缩”,但没有给出具体操作方法,是不是要通过数组操作进行,还是LABVIEW本身就有现成的VI?另外,即使通过数组操作重采样了,随着数据量的变化重采样这个过程是要反复一直进行的,我理解要反复从存储区读出所有数据进行重采样,这样内存是不是也是消耗很大?如果我的想法不对,遇到这种问题应该怎么解决,新手,请各位不吝赐教,给出个思路即可,谢谢。
下图是我程序中曲线显示部分和阮奇桢的《我和LabVIEW》中的相关说明,因为程序比较大和无法演示(需要配合下位机),就不上传了。


我程序曲线显示部分 阮我和L


友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
4条回答
风卷雪
1楼-- · 2019-07-17 21:53
文中提到的采样压缩就是对你当前的大数据数组进行选择性删除,个人知道的方法有两种。一种是间隔性删除,类似于图像像素处理,就是根据自己每个多少个数据删除元素,这样图像总体不是失真,细节会损失;第二种,当数据量太大时其实我们要显示的X坐标往往都不会设为自定义,而是一个固定范围的值,就可以删除不显示的部分,这种方法及时数据放大也不会失真,但是数据会缺失一部分。
15689725036
2楼-- · 2019-07-17 23:27
风卷雪 发表于 2017-5-7 09:49
文中提到的采样压缩就是对你当前的大数据数组进行选择性删除,个人知道的方法有两种。一种是间隔性删除,类似于图像像素处理,就是根据自己每个多少个数据删除元素,这样图像总体不是失真,细节会损失;第二种,当数据量太大时其实我们要显示的X坐标往往都不会设为自定义,而是一个固定范围的值,就可以删除不显示的部分, ...

谢谢“风卷雪”的回答,我的数据不能删除,因为有些客户是需要导出原始数据的,对于数据点客户一般是多多益善,所以我的总体思路是所有点都进行存储,但是选择性的显示,另外,就是X、Y坐标的问题,允许在数据采集过程中用鼠标进行框选放大(这个功能我已编程实现),单就这个功能说,原始数据也不能丢失,因为在放大显示时,可能会放大到极致,这个时候就会放大到某个点。所以,我认为是所有数据点都进行存储,有选择的进行显示,但是具体思路有些拿不准,想听听各位高见。
zhnuaa
3楼-- · 2019-07-18 04:31
建议选择性显示,比如只显示最近二分钟的数据,这样只把最近数据剪下来就可以了。否则随着的时间增加卡死是必然的啊。
显示和保存数据是两个事情,显示的数据少和保存的数据是两个概念。
zhnuaa
4楼-- · 2019-07-18 07:47
 精彩回答 2  元偷偷看……

一周热门 更多>