点击学习>>《龙哥手把手教你学LabVIEW视觉设计》视频教程
LabVIEW是一种基于图形编程语言的开发环境。它与传统编程语言有着诸多相似之处,如相似的数据类型、数据流控制结构、程序调试工具等。但二者最大的区别在于:传统编程语言是用文本语言编程,而LabVIEW用图形语言(即各种图标、图形符号、连线等)编程。
编程简单方便,界面形象直观,具有强大的数据可视化分析和仪器控制能力。
Labview有丰富的文件 *** 作函数库,可以方便地进行文件的读写。Labview可以读写文本文件、数据报表文件、二进制文件和测试文件。主程序中从VISAread的readbuffer端读上来的数据需要转换成表格数据进行保存,数据的保存分为两个阶段。第一阶段,通过表单形式(带时间头)显示在主程序界面,方便用户直观查看测试参数是否已满足要求。第二阶段,把表单数据保存到Excel文件中,可供用户打印查询。如果数据不需直观显示在主程序界面上,也可保存到TXT(可以用Excel打开)文件中。
1、数据显示模块的设计工程中充分考虑动态实时性,显示的每一帧数据都对应不同的时刻,并且对于数据显示、存储功能可以进行时间大小、时间间隔设定,以满足不同测试时刻的数据要求。图1为显示子程序显示的动态数据表格。
图1
考虑到读串口的频繁性,我们提出两种可能:①上位机需要周期性的对串口进行读 *** 作,这样一来串口上来的数据最好也能周期行性地显示、保存;②上位机对串口的读 *** 作是非周期性的,而且间隔时间有时较长,这样串口数据上来时显示,没有数据上来就不显示。
对于第一种情况图2给出了具体的子程序代码。主程序中上来的一串串口数据经过StringSubset这一功能模块各个参数被依次分割开来。再经过MergeSignals和BuildTable最终实现为图1中的Table3。从图1中我们看到了数据被以3s的间隔周期性的保存在表单中。怎么来实现这种周期性呢?这就需要在While循环中用到Combobox控件,预设好各种需要的保存周期以供选择。值得注意的是图1中子程序显示的数据是模拟输入的固定值。
图2
对于第二种情况需要在源程序(图2)的基础上稍加改动,在原程序中去掉Combobox控件。为了实现数据上来才显示,没数据上来就不显示的功能,可以考虑增加一个Case框,设置一个局部变量(串口是否有数据读上来)来决定执行显示 *** 作还是执行不显示 *** 作。具体的程序读者可自行编写。
工程中因为要直观实时显示各个测试参数,把每个参数数据都接到了各自的WaveformChart(实时趋势图控件),这样各个参数的波形变化就能被趋势图实时显示了。用户就能直观地从PC上判断测试参数是否满足要求了。
2、把主程序显示的表单记录保存到文件程序中串口数据可以直观的显示在前面板上并保存下来,但是为了对实验结果进行精确分析,数据存储也很重要。好的数据保存有利于数据的后期处理和分析。
在实时测试主程序的界面图中,继上个模块数据显示在主程序表单中后,测试设置按钮用一个Boolean类型按钮“保存数据”,它就是用来设置数据是否保存的设置按钮。当它为True时,表单中所显示的所有实时测试数据即可保存到指定的测试文件中;当它为False时,实时测试数据将不被保存。其实质是用户通过保存设置按钮的状态有选择地决定数据是否保存。在LabVIEW7.1/help/findexample自带的例子中就有这样的程序,所需要改动的就是把其中的Table换成所需要保存的Table,创建相应的属性节点,并分别选中Rowheaders[],Columuheaders[]有效。这样⑴中的表单文件就可以连同行表头和列表头一并保存到文件中。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)