学习labview有快半年了,做个总结。回顾一下自己的摸索过程。
幸运的是有个项目用到Labview,因此边学边用,由于有前一项目的经验作参考,可以说是在模仿中学习。从学习到使用给我最大感受是labview编程容易上手,帮助文档方便,就是太贵了,比较少企业会使用,特别是小企业。虽然这样,还是很推崇学习labview的。废话少说,转入正题。
其实总结自己的摸索过程也等于是在做项目总结。首先从使用的模块做总结:
1、毫无疑问的串口通信;2、与数据采集相对应的TDMS数据存储模块;3、报表输出(word,excel,html);4、连续的波形显示以及从TDMS里读取显示;5、待解决的xcontrol控件;
模块分析:1、对于串口通信:主要是要设置成有数据即读取,而不能等到接收缓冲区满时再读取。2、TDMS数据存储,关键点是数据量大的时候如何压缩存储,以及利用TDMS本身的属性设置(可以参见TDMS属性设置帮助),减小存储文件的大小。否则如果数据发送速率快的话,文件大小是很可观的,压缩数据的方式有很多种,我采用的是读取采样间隔长度的数据,提取最大最小值的方式。具体如下:
1) 中间数组存储采样间隔长度的数据;2) 提取中间数组的最大最小值;3)删除中间数组的采样间隔长度;4)将删除后剩余的数组重新赋值给中间数组,给下一次使用。 3、报表输出比较简单,labview已经将要用到的程序封装成一个个VI,只需要调用这些VI,拼凑成你需要的报表模板形式即可。这一块参考的是方慧敏写的报表输出demo程序。4、
最近开始了上下位机的联调,涉及到了数据采集与数据处理,数据保存,数据导出四者并行执行最需关注的问题,数据同步的问题。全部数据传递都用全局变量需要在数据采集不到数据的时候让全局变量输出空数据,这种方法显得有点麻烦,而且是多处对全局变量写。有可能会发生竞争。于是翻看labview相关书籍,关于同步技术方面的,其中队列和通知都是很好的方法,采用通知技术可以很好的解决这类问题。
文章评论(0条评论)
登录后参与讨论