LabVIEW编程:如何将数据存为电子表格文件,并读取进行波形显示
问题引出
在使用LabVIEW软件编写大型测试程序时,很多时候需要将原始采样数据或者分析处理后的数据在硬盘上存储为文件,而存储的格式可以是直观的普通的文本文件,也可以是占用空间小的二进制文件,除了这些外,LabVIEW中还提供了一种更为简洁的文件格式的支持,即电子表格文件的支持,在LabVIEW中可以利用其提供的现成函数,方便的对数据进行电子表格文件的存储与读取操作。
电子表格是格式化的文本文件,在电子表格中,一般用制表符隔开各列,用行结束符隔开各行,该文件可以使用微软的Excel软件打开,也可以当作普通文本使用文本编辑器进行打开。
下面通过一个例子演示如何在LabVIEW中读写电子表格文件。
示例说明
该例功能是,在LabVIEW中产生两路仿真信号,分别为包含1000个采样点的正弦波信号和余弦波信号,将这两路信号在硬盘上存储为电子表格文件,随后读取该电子表格文件中的这两路信号数据,最后将这两路信号在波形图控件上进行显示,前面板如下图所示:
在前面板上放置了两个控件,一个是文件路径输入控件,用于设置数据的保存/读取路径,一个是波形图显示控件,用于显示两路波形信号。
程序框图实现
程序框图设计如下图所示:
为简单起见,在程序框图的For循环内部使用“正弦”、“余弦”函数分别产生包含1000个点的正、余弦波形的一维数组,在For循环外部将这两路一维数组信号组合成一个2行1000列的二维数组,使用“写入电子表格文件”将其存储到文件中,使用“读取电子表格文件”函数将其读出为二维数组,直接将其连接到波形图控件上进行显示即可。
这儿用到了读写电子表格文件的两个关键函数,下面分别进行说明。
1、“写入电子表格文件”函数,其参数意义说明如下图所示:
本例中,设置了参数“格式”为“%.3f”,意味着存储的每个数据小数点后保留3位数字。“转置?”参数为假,意味着按原始数组维数即2行1000列进行存储,每一行代表一路数据,若此参数设置为真,则是指对原数组进行转置,变为1000行2列,每一列代表一路数据。
2、“读取电子表格文件”函数,其参数意义说明如下图所示:
本例中,参数“格式”和“转置”需与写入时完全一致,才能正确读取出电子表格文件里面的内容,其它参数取默认值即可。
运行上面程序,假定设置文件存储路径为“D:\a.xls”,则可以看到该文件中存储的两路正、余弦波形数据,如下图所示(仅显示了2行1000列的部分数据),共2行,分别代表了正弦波形数据和余弦波形数据,且每个值小数点后保留了3位小数。
同时,在前面板的波形图控件上也正确显示了这两条波形。
总结
本例演示了在LabVIEW中,如何将波形数据存储为电子表格文件,以及如何从电子表格文件中读取出进行波形显示的方法,从这儿也可看出,相对于其它如C语言编程语言,在LabVIEW中读写电子表格文件是非常简单方便的,这也充分体现了LabVIEW作为图形化的编程语言,其具有开发迅速、简洁方便的特点。
本文由编码那些事原创,请关注 +转发 +收藏 +点赞 ,带你一起长知识!
LabVIEW编程实例:巧用ini文件,存储软件配置信息
对于软件开发者来说,经常会碰到这样一种情况,用户要求在每次运行软件时,软件的初始配置信息需要和上次退出时的配置信息保持相同,如软件窗口的位置大小信息,参数的设置信息等。要达到这个目的,可以借助于ini文件实现,也就是说,可以将这些配置信息存储到ini文件中,在程序开始运行时,读取该文件里面的内容进行软件的初始化,在程序退出时,将软件当前的配置信息保存到该文件中。
什么是ini文件
ini文件又称配置文件,它是一种以特定方式组织操作系统或软件配置信息的文本文件。它最早出现于Windows操作系统中,用于统管Windows的各项配置,后来,其理念被广泛使用到其它操作系统和各种应用软件中,常用于保存程序的一些配置参数,如网络配置的IP地址、端口号等信息,其典型的文件格式如下图所示:
由上图可以看出,ini文件由段(Section)、键(Key)和键值(Value)三部分组成。每个ini文件由一个或多个段组成,由“[ ]”内部的字符串来区别不同的段,同一个ini文件中的段名必须唯一。每个段由一系列由“=”隔开的一对键和键值组成,键名代表配置选项,值代表该选项的设置,同一个段内键名必须唯一,但不同段之间的键名并无关系。等号左边的字符串为键名,右边的字符串为键值,在LabVIEW中,键值的类型可以是布尔、I32、U32、双精度浮点数、字符串和路径等。
LabVIEW中ini文件操作函数
LabVIEW中提供了一组用于操作配置文件的函数集,位于函数选板“编程”®“文件I/O”®“配置文件VI”子选板中,如下图所示,可以完成对配置文件的打开及关闭操作、键和段的读写及删除操作等功能。ini文件本质上是文本文件,因此,这些函数的实现过程也可理解为是LabVIEW内部对文本文件操作函数进行二次封装的过程。在LabVIEW中对配置文件的编程方式同普通文本文件类似,也遵循着打开、读写及关闭的三步原则。
编程实例说明
下面通过一个具体例子,说明如何在LabVIEW中通过ini文件保存软件的配置信息。软件比较简单,在ini文件中,保存软件运行时的位置大小信息以及软件中两个简单的参数信息(采样频率和采样点数),界面如下图所示:
在程序框图中,主框架采用包含三帧的顺序结构形式,第一帧读取ini文件信息并在软件中初始化,第二帧实现软件的具体功能,第三帧保存程序退出时的配置信息。下面分别进行说明。
ini文件的读取处理
在程序开始运行时,读取上次程序退出时保存的ini文件内容,实现代码如下:
上面代码中,首先在当前程序目录下使用“Open Config Data.vi”函数打开“config.ini”文件,注意,该函数的参数“在必要时创建文件”设为假,即文件不存在时不要创建文件,若文件不存在,则该函数会返回一个错误,此时不作任何处理,否则读取该配置文件。
配置文件“config.ini”中的内容包含两个字段“窗口位置信息”和“参数信息”,前者包含了左、上、右、下4个键值对,后者包含了采样频率和采样点数2个键值对,如下图所示:
使用“Read Key.vi”分别读取这些键值对信息,使用VI的属性节点设置主窗口的位置大小信息以及采样频率和采样点数的初始值信息。
读取配置信息完成后,使用“Close Config Data.vi”关闭该配置文件。
ini文件的保存处理
在程序退出时,需要将当前程序中的状态信息保存到ini文件中,实现代码如下:
上面代码中,仍然是先打开配置文件,最后关闭配置文件,中间将软件的配置信息保存到“config.ini”文件中。
使用“Write Key.vi”函数在窗口位置信息字段中保存左、上、右、下的键值,在参数信息字段中保存采样频率和采样点数的键值,注意,在保存采样频率和采样点数的键值时,由于其数据类型是双精度类型,设置了保留的小数点位数是2位。
程序主功能处理
该例子主要演示ini文件的读写方法,所以主程序几乎没作任何功能,仅仅是让程序保持在运行状态,同时,当点击前面板的关闭按钮时能够退出程序,在事件结构的“前面板关闭?”事件分支中实现了这个功能,代码如下:
总结
通过上面的例子可看出,在LabVIEW中使用ini文件存储软件的配置信息,相对于其它如C/C++语言实现,代码要简单简洁的多。
大家加关注并私信回复:LabVIEW016 ,可获取该文章对应的LabVIEW原程序下载。
欢迎加关注,共同交流。
相关问答
labview 主要是用来做什么的?Labview是美国NI公司开发的一种编程语言,被称为G语言,G是英文“图形”的首字母,意即图形编程语言。LabVIEW可以用流程图方式编程。编程方式直观易懂,易于学习...
labview 功能说明?LabVIEW是一种程序开发环境,由美国国家仪器(NI)公司研制开发,类似于C和BASIC开发环境,但是LabVIEW与其他计算机语言的显著区别是:其他计算机语言都是采用基...
labview 生成 应用 程序需要添加串口文件吗?不需要单独添加串口文件。LabVIEW内置了名为"VISA"(VirtualInstrumentSoftwareArchitecture)的功能库,用于与串口通信。您可以直接...
labview 软件介绍?LabVIEW是一款程序开发环境软件,类似于C和BASIC开发环境,LabVIEW使用的是图形化编辑语言G编写程序,产生的程序是框图的形式。与C和BASIC一样,LabVIEW...
肿么用 labview 打开 应用 程序-ZOL问答在labview编程面板里的"互连接口"找到"执行系统命令"就可以做这件事了,如果不了解如何使用,查看帮助文档,里面会有个范例。之后你就可以指定QQ的绝对路径...
目前 labview 用的范围广吗?一般用来做哪些项目?如果专精LabVIEW的话可能就被绑到NI这条船上下不来了,可以考的证书包括NILabVIEW各个层次的证书,在一些专业的自动化与测试公司中LabVIEW的应用也非常广泛,包...
labview 是什么软件系统?LabVIEW是由美国国家仪器公司研制开发的一种软件开发环境。LabVIEW使用的是图形化编辑语言G编写程序,产生的程序是框图的形式。LabVIEW开发环境集成了工程师...
组态王和 labvieW 之间通过什么途径可以实时通讯?组态王和labvieW都是上位机软件,都可以采集和控制的组态王和labvieW安装在同一台电脑还是不同电脑上?一定要通讯的话,可以采用OPC方式labvieW做OPCserver...
Labview 读取串口,通信问题,延时过长?应该是数据输入与软件读取不同步,缓存中数据累积造成的,可以定时清空缓冲或缩短读取时间,但需要判断数据是否有效,无效的舍去就可以啦。应该是数据输入与软...
怎么运行 labview exe文件-ZOL问答只要电脑安装labviewrun-time这个是免费软件弄虚拟机吧双系统两个后面跳出来的都是一样的在确保安装程序没有错误的情况下,用管理员的帐户运行具体如下...