LabVIEW NXG编程实例:电子表格文件读取

LabVIEW NXG 就是指下一代LabVIEW,由美国国家仪器(NI)公司研制开发,类似于C和BASIC开发环境,但是LabVIEW NXG与其他计算机语言的显著区别是:其他计算机语言都是采用基于文本的语言产生代码,而LabVIEW NXG使用的是图形化编辑语言G编写程序,产生的程序是框图的形式。
LabVIEW NXG 目前在功能方面尚不完善,故在功能集上只是LabVIEW 这个常规正常升级版本的子集。但最终,NXG的后继版本将会完成各项缺失功能的增补,补齐短板;并且在软件工程和网络互连方面持续迭代,加强创新,从而最终完成取代现行版本系列。
与 C 和BASIC 一样,LabVIEW NXG 也是通用的编程系统,有一个完成任何编程任务的庞大函数库。LabVIEW NXG 的函数库包括数据采集、数据分析及数据存储等等。
问题引出
在使用LabVIEW NXG软件编写测试程序时,很多时候需要将原始采样数据或者分析处理后的数据在硬盘上存储为文件,而存储的格式可以是直观的普通的文本文件,也可以是占用空间小的二进制文件,除了这些外,LabVIEW NXG中还提供了一种更为简洁的文件格式的支持,即电子表格文件的支持,在LabVIEW中可以利用其提供的现成函数,方便的对数据进行电子表格文件的存储与读取操作。
电子表格是格式化的文本文件,在电子表格中,一般用制表符隔开各列,用行结束符隔开各行,该文件可以使用微软的Excel软件打开,也可以当作普通文本使用文本编辑器进行打开。 下面通过一个例子演示如何在LabVIEW NXG中读写电子表格文件。
示例说明
该例功能是,读取仪器所测量的数据,数据文件格式为csv文件,其文件内容如下:第一列为数据记录时间;第二列为测量所得的仪器信号数据(每1秒测量一次)。本程序读取该电子表格文件中的信号数据,最后将信号数据在波形图控件上进行显示,前面板如图所示:

在前面板上放置了如下控件:波形图显示控件,用于显示信号数据;三个个数值显示控件及一个时间标识控件,分别显示最大值、最小值和平均值以及时间的选择;两个按钮控件,用于程序开始与结束以及一个单选按钮组控件,用于纵坐标类型选择。 程序框图实现 程序框图设计如下图所示:

这儿用到了C节点,读电子表格文件函数,以及字符串到时间标识的转换。

字符串到时间标识的转换的关键在于先要对字符串进行扫描,得到年月日等各个字段的数据,然后通过名称绑定的方式输出能够被“日期/时间至时间标识”函数识别的簇。字符串扫描比较简单,难点在于“日期/时间至时间标识转换”函数的“输入簇”参数如何设置。
其步骤如下:
1. 在程序框图中添加“簇常量”,并在“簇常量”添加7个“数值常量”,名称分别为“fractional second”,“ year”,“month”,“ day of month”,“day”,“minute”,“hour”及“second”,其中第一个“数值常量”表示法为浮点数,其余的为32位有符号整数。

2. 在 用户界面-前面板操作中选择属性节点

3. 上一步得到的“簇常量”与属性节点相连接。

4. 把“簇常量”停靠至节点

5. 逐项连接”字符串扫描“函数的输出” 和前面编写的“属性节点函数”的输入项目 (注意:”字符串扫描“函数输出项从上往下依次是:年、月、日、时、分、秒)

总的来说,在LabVIEW NXG中,字符串到时间标识的转换比在LabVIEW中步骤要少些。
关于C节点的使用:
C节点是一种便于在程序框图上执行数学运算的节点,在LabVIEW中没有C节点,取而代之的是公式节点。在C点中可以使用算术表达式来实现算法过程,用户无须使用任何外部代码或应用程序,在创建方程时无须连接任何基本算术函数。除接收文本方程表达式外,C节点还接收C语言中的if语句、while循环、for循环和do循环。这些程序的组成元素与在C语言程序中的元素一致。C节点与公式节点之间的区别主要是公式节点不支持double数据类型,而且在公式节点中输出变量必须予以定义,C节点中无需定义。


在LabVIEW NXG中使用c节点进行编程的一般步骤如下:
1. 创建新的C节点
2. 在框中输入文本行表示的数学公式和文本语句
3. 添加输入/输出数据端口,并命名
4. 将数据端口与C节点的输入/输出端口进行连接,通过输出端口得到计算结果
而关于“读取电子表格文件”函数,可参见帮助,此文不在赘述。 运行程序,我们可以看到,通过时间的选择,我们可以显示不同时间段的数据,且数据记录的时间和大小都可以在界面上显示出来。
总结 本例演示了在LabVIEW NXG中,如何将波形数据存储为电子表格文件,以及如何从电子表格文件中读取出进行波形显示的方法,从这儿也可看出,相对于其它如C语言编程语言,在LabVIEW NXG中读写电子表格文件是非常简单方便的,这也充分体现了LabVIEW NXG作为图形化的编程语言,其具有开发迅速、简洁方便的特点。
LabVIEW NXG与LabVIEW在编程方面的区别还是很大的,对于LabVIEW的初学者当前还是应该以现有的LabVIEW 20XX系列为主进行学习,学习资料容易获取,可以请教和咨询的人多,现有方案和样例多,另外由于新人不易开始两条路线的学习增加新知识的认知负担,学有所成之后再转成NXG,所学技能可以较好的进行无缝迁移,无需担心所学无用。