LabVIEW学习分享(5)

编程入门 行业动态 更新时间:2024-10-14 00:31:43

<a href=https://www.elefans.com/category/jswz/34/1760663.html style=LabVIEW学习分享(5)"/>

LabVIEW学习分享(5)

LabVIEW实用总结–多格式存储数据

小树不修不直溜,人不学习哏揪揪!这天又开始烘烤模式了,虽然说很想请个大假,找个清凉之处爽一下,可是悲伤的是本小学生紫外线过敏,即使是三伏天也只能穿长衣长裤,出行只能早晨5点左右不能超过7点,晚上8点天大黑以后,这点苦难都不是让我最悲伤的,这可是最艳丽的夏天啊,能少穿就少穿,到处都是风景,而我只能尴尬的对着办公室的屏幕(┬_┬),默默忍受着烘烤与煎熬。我师父经常劝戒我说“当你感觉快要坚持不下去的时候,摸摸口袋里的钱包,查一查手机银行中的存款,最后再去厕所撒泡尿照一照自己的脸,你就会重新燃起继续奋斗的希望了”。既然改变不了生长的环境,就只能靠后天努力工作麻痹自己(>﹏<),使自己冷静下来,老老实实地工作。
闲言少叙,书归正文,前些时分享了有关LabVIEW存储文本格式数据的编程思路,后期又经过几次试验,发现文本格式的文件存在着存储量较大时,打开文件卡死的情况,为此考虑能否利用存储其它格式如Excel表格、二进制格式来解决此问题,同时也对此前数据存储程序设计做为补充与完善,特总结此文,以留纪念,望大神指点!
程序功能描述
本文说介绍的程序是以之前LabVIEW学习分享(4)中的数据文本格式存储程序为基础,采用不同类型的文件存储函数,提供两种程序设计方案,方案一:仿照文本格式存储程序编程方法,利用“文件I/O”函数将数据存储成电子表格(.xls)与二进制格式(.dat),均可实现连续存储。方案二:直接利用LabVIEW函数中的“Express”库中“输出”中的“写入测量文件”(在“文件I/O”中也可找到),此方案相比方案一设计较为简洁。只不过存储文件的格式为LabVIEW独创存储格式,例如文本格式(.lvm)、Microsoft Excel(.xlsx)、二进制格式(.tdms)。
方案一:“文件I/O”函数编写多格式存储程序
(1)首先创建新VI(Ctrl+N),直接将LabVIEW学习分享(4)的程序框图复制过来,如图1所示。
图1 数据文本格式存储程序框图
(2)为了实现多格式存储功能,显然需要添加用户选择格式的控件,此处选取如图2所示的“枚举”控件,将“枚举”控件添加到前面板后,如图3所示操作,单击右键下拉菜单选择“属性”,对话框中“编辑项”下设定三种格式如图4所示。

图2 枚举控件

图3 调节属性操作

图4 编辑项修改
(3)然后切换到程序框图,添加条件结构,再直接将修改完成的“枚举”控件与条件结构相连接,此时会发现添加结构的条件选项会自动更新成设定的编辑项,如图5所示。但是设定的编辑项有三项,而条件结构默认的分支项只有两项,因此需要添加分支项操作,如图6所示,右键单击,下拉菜单选择“为每个值添加分支”,添加完成的效果,如图7所示。

图5 枚举与条件结构组合

图6 添加分支操作

图6 添加分支后效果
(4)文本格式存储(.txt):将设置完成的条件结构与原始程序相结合,首先结合文本格式存储程序如图7所示,采用条件结构嵌套的方式,再原程序的基础上稍作修改。

图7 文本格式存储分支设计
(5)电子表格格式存储(.xls):将内部条件结构分支切换到“电子表格格式”,再其内添加如图8所示的“写入带分隔符电子表格”。此文件写入函数的接线端提示如图9所示,此处提示两点:
第一点:函数的“添加至文件?(新文件:F)”接线端,若连接值为“TRUE(T)”,则函数将数据保存添加至现有文件中;若连接值为“FALSE(F)”,则函数将数据替换现有文件的数据。第二点:“转置(否:F)”接线端若连接值为“TRUE(T)”,则对存储数据进行转置后存储,即为“列”存储,自动换行;若连接值为“FALSE(F)”,则对存储数据进行“行”存储,记录完一组数据后,自动换行。
连接完成的电子表格存储分支程序框图,如图10所示。

图8 写入带分隔符电子表格函数

图9 写入电子表格函数提示

图10 电子表格存储分支设计
(6)二进制格式存储(.dat):二进制格式存储分支的设计与文本格式存储的设计相似,首先如图11所示,选取并添加“写入二进制文件”函数。
此处给出一个说明:有细心小伙伴们在自己复现操作时可能会发现,直接从函数选板中选取的“写入二进制文件”函数与图12所示的提示中“文件”端口不一致,解决此问题的办法是点击图12中下方红框标注的“文细帮助信息”,弹出如图13所示的界面,其中上方红框标注的端口就与直接从函数选板中选取的函数相一致,而本文设计中选取的是图13下方的提示范例中所用的函数。
连接完成的二进制存储分支程序框图,如图14所示。

图11 写入二进制文件函数

图12 写入二进制文件提示

图13 详细提示与范例

图14 二进制格式存储分支设计
(7)将编辑完成的程序封装成子VI模块,如图15所示。将测试程序中的原文本存储子VI替换成新建的子VI,重新接线连接后测试程序效果如图16所示,持续运行状态下,首先文件格式选择“电子表格格式”,选择存储路径与文件名,点击保存按键,如图17所示,同样可以选择存储“二进制格式”如图18所示,存储的文件如图19所示。存储的电子表格文件用WPS打开效果如图20所示,是程序所设定的列存储,而二进制文件直接用记事本打开全是乱码。

图15 多格式存储子VI

图16 测试程序框图

图17 电子表格存储测试

图18 二进制存储测试

图19 存储的文件

图20 读取电子表格效果
方案二:“Express”库的“写入测量文件”编写程序
(1)仿照方案一的编辑思路,首先重新定义“枚举”控件属性,如图21所示,修改“枚举”控件编辑项。为了配合函数,选择设定三种数据存储格式,文本文件(.lvm)、Microsoft Excel(.xlsx)、二进制格式(.tdms)。

图21 编辑项修改
(2)文本格式存储(.lvm):首先添加“写入测量文件”函数,如图22所示,将此函数添加到文本文件存储分子中。添加此函数,会自动弹出属性设置框,如图23所示,按照图23设定完成参数属性,此处不必在意图23左上角“文件名”选框中显示的路径,因为参照LabVIEW学习分享(4)中提供的路径选取设计,完全可以自定义文件存储路径。
参考图24所示的“写入测量文件”函数提示,此方案设计程序中只需选取三个输入量,“是否存储”布尔按键连接“启用”输入端、创建的文件路径连接“文件名”输入端、波形数据直接连接“信号”输入端,连接完成的文本文件存储分支程序框图,如图25所示。此处提示一点:连接函数“信号”输入端时LabVIEW会默认进行数据类型转换,即如图26所示的会多出“转换至动态数据”的函数,需要查找添加的小伙伴可以参考图26自行添加。

图22 写入测量文件函数

图23 文本存储参数设置

图24 写入测量文件提示

图25 文本文件存储分支设计2

图26 转换至动态数据函数
(3)Excel表格格式存储(.xlsx):基于上一小节的基础,参照设计思路与方法,仍然添加“写入测量文件”函数,保存Excel表格格式的参数设置如图27所示。接线的规则与文本存储相同,接线完成的效果,如图28所示。

图27 Excel表格格式参数设置

图28 Excel表格格式存储分支设计
(4)二进制格式存储(.tdms):基于上一小节的基础,参照设计思路与方法,仍然添加“写入测量文件”函数,保存二进制格式的参数设置如图29所示。接线的规则与文本存储相同,接线完成的效果,如图30所示。

图29 二进制格式参数设置

图30 二进制格式存储分支设计
(5)将设计方案二封装成子VI,如图31所示。将测试程序中原文本存储子VI替换成方案二设计的子VI ,程序框图接线如图32所示。持续运行状态下,如图33所示,首先文件格式选择“文本文件”,选择存储路径与文件名,点击保存按键,同样可以选择存储“Excel表格格式”和“二进制格式”如图34、35所示,存储的文件如图36所示。存储的文本文件(.lvm)文件,可以用记事本打开效果如图37所示,Excel表格可以直接用WPS打开,如图38所示,而二进制文件双击打开总弹出如图39所示的提示,希望了解原因的小伙伴或大神能在评论处指教。

图31 多格式存储子VI

图32 测试程序框图

图33 存储文本文件(.lvm)调试

图34 存储表格文件(.xlsx)调试

图35 存储二进制文件(.tdms)调试

图36 多格式存储文件效果

图37 读取lvm文件效果

图38 读取表格文件效果

图39 读取二进制文件提示
至此完整的LabVIEW多格式数据存储程序,分享完毕,总结至此,希望能为有需求的小伙伴提供思路,也希望能在这个“金钱至上”的社会,给大家提供更多免费的学习资源。
良心博主,且看且珍惜,如需分享,表明转载,小弟不胜感激!

更多推荐

LabVIEW学习分享(5)

本文发布于:2024-02-12 01:07:50,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1684830.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:LabVIEW

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!