LabVIEW学习分享(4)

编程入门 行业动态 更新时间:2024-10-13 22:24:15

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

LabVIEW学习分享(4)

LabVIEW实用总结–数据存储子VI设计

小树不修不直溜,人不学习哏揪揪!盛夏将至,天气也开始变得越来越热了,即便办公室配备空调,面对高温与数台PC的散热烘烤,也变得苍白无力。今天(☄⊙ω⊙)☄本小学生总结分享一下有关LabVIEW对于数据存储的程序设计以及子VI创建的方法,因为设计LabVIEW的程序思想即为基于数据流的设计,而拥有大量的数据样本,是计算机程序设计的重要基础,无论是检验算法还是调试控制器效果,都需要大量的检测数据,而这些数据的获取来源实在是十分有限,对于许多研究算法的小伙伴们来说可用的样本库真的是少的可怜,而大多数研究机构中的数据又几乎不可能轻易得到,因此利用仿真软件建模并模拟实际中的工作流程,同时将仿真的数据存储下来,并作为调试或训练用的数据,可以作为解决该问题的办法。
本文利用LabVIEW函数库设计了将仿真波形数据存储为文本格式(.txt)的程序,并将其封装成子VI模块,以便适用于多场合下调用与修改。本文程序中将仿真数据存储成
文本文件格式,主要考虑到LabVIEW所能存储的文件格式主要有文本格式(.txt)、电子表格(.xls)、二进制格式(.dat),从本质上说文本文件不过是特殊形式的二进制文件,而LabVIEW中的电子表格文件实质上也是一种特殊格式的文本文件,只不过可以利用Excel打开罢了,但其本质上与Excel格式的文件又较大的区别。电子表格文件(.xls)是纯文本文件,可以利用记事本编辑,而Excel文件则是特殊格式的文件,只能通过Excel软件进行编辑,用记事本打开会出现乱码。
数据存储子VI程序框图设计
(1)首先考虑实际问题,对于数据存储功能的实现,根据实际需求,用户自身对于当前数据是否需要存储可以做出选择,因此反应程序中需要设计存储选择的按键,以便于用户选择是否存储当前仿真数据,如图1所示,利用“条件结构”则可基本构建此功能的程序框架。

图1 条件结构
(2)从结果出发,既然需要存储数据成文本文件格式,那就需要利用“文件I/O”库中的“写入文本文件”函数,如图2所示。根据对于该模块的使用帮助(Ctrl+H),如图3所示可知需要的输入变量主要有两个:文件的路径句柄(指针)、文件所存储的数据(文本格式),即输入此模块的数据格式,也应该是文本格式,下文中会对此问题给出具体的解决方案。

图2 写入文本文件函数

图3 写入文本文件模块提示
(3)作为数据的存储模块,存储时希望能将数据存成一列或者一行的形式,以便后期分析处理,此外还希望可以将多次仿真的数据写入同一个文件中,因此可以利用如图4所示的“设置文件位置”函数实现此功能。主要的选择设置如图5所示,其中的输入端“自(0:起始)”。添加“设置文件位置”函数至程序框图后,选中输入端“自(0:起始)”,单击右键弹出菜单选择“创建”,再选择“常量”如图6所示。创建输入端常量后,鼠标左键单击此常量“Start”,选项菜单中选择“end”即每次存储的数据都从上一次的结尾处起始,这样就避免了写入新数据缺替换了老数据的问题,如图7所示。

图4 设置文件位置函数

图5 设置文件位置模块提示

图6 创建输入常量

图7 写入端位置修改
(4)在LabVIEW中对于文件读写操作都需要对文件进行打开或者创建的工作,即打开现有的文件进行数据存储,或者直接新建文件存储当前数据,完成此功能则需要“打开/创建/替换文件”函数,如图8所示为该模块的选取位置。根据如图9所示的函数提示,此模块功能实现的主要输入端为“操作(0:open)”。添加此函数模块到程序面板后,同样在“操作(0:open)”输入端口,单击右键弹出菜单选择“创建”,再选择“常量”如图10所示。创建输入端常量后,鼠标左键单击此常量“open”,选项菜单中选择“open or create”即实现打开现有文件与新建文件的功能,如图11所示。

图8 打开/创建/替换文件函数

图9 打开/创建/替换文件函数提示

图10 添加操作输入端常量

图11 操作输入端修改
(5)上述步骤中的各个文件操作模块都需要“文件路径”作为输入量,才能继续实现函数功能。LabVIEW学习分析(2)中介绍过一种利用“当前VI路径”文件常量来组合文件路径的方法,本文中采用新的设计方案,相比之前的设计方案更加灵活,如图12所示,直接选取“创建路径”函数。添加到程序框图后,在“基路径”输入端口,单击右键弹出菜单选择“创建”,再选择“输入控件”如图13所示。选中添加的输入控件,单击右键,再选择下拉菜单中的“属性”选项,如图14所示。修改“属性”中的“外观”的“名称”,更改为“文件存储路径”如图15所示。为配合打开已有文件与新建未知文件的功能,修改“浏览选项”中的“选择模式”,修改为“文件或文件夹”与“新建或现有”如图16所示,最后点击“确定”选项即可。最后在“创建路径”函数的“名称或相对路径”输入端处,单击右键弹出菜单选择“创建”,再选择“输入控件”如图17所示,效果可参照下文的整体程序框图展示。至此文件路径部分程序框图设计基本完成。

图12 创建路径模块

图13 创建路径输入端控件

图14 调整路径输入控件属性

图15 外观属性修改

图16 浏览选项属性修改

图17 添加文件名输入控件
(6)数据端问题解决:上文中在选取“写入文本文件”函数存储数据分析时提及过,此函数模块的输入数据格式为“文本格式”,而LabVIEW中数值数据的格式通常为“DBL”或“SGL”精度的浮点数,因此需要利用如图18所示的“数值至字符串转换”函数进行格式转换,此外此模块的输入端需要以数组或数值的形式作为输入量,此处为封装子VI做准备,本小学生在前面板上添加“数组”控件如图19所示,并选择如图20所示的“数值输入控件”作为数组的内部量。“数组”控件在添加数值输入控件前后的对比效果如图21所示,程序框图的接线效果如图22所示。最后添加数据是否存储的选择按键,如图23所示,即完成了数据文本格式存储的程序框图,如图24所示。

图18 数值至小数字符串转换函数

图19 前面板添加数组控件

图20 数组内部数值输入控件

图21 数组控件前后对比效果

图22 数据部分程序框图接线

图23 数据存储按键

图24 数据文本格式存储程序框图
最后适当调整并修饰,前面板控件显示效果如图25所示。

图25 数据文本格式存储前面板
子VI封装操作
(1)为了便于程序的灵活调用,将数据文本格式存储程序封装为子VI模块,首先双击如图26所示的前面板窗口右上角的图标,在打开的图标编辑器对话框选择“图层”选项如图27所示,选中当前的用户图层,点击右侧的删除图层选项。然后得到如图28所示的效果,再选择右侧工具栏中的“矩形”绘制工具,注意下侧“颜色”工具中的色彩设定,如图29所示。按住鼠标左键在绘制框内拖拽适当大小,再松开按键,此时左侧用户图层会出现新图层,如图30所示。然后切换到“图标文本”选项,在适当的“行”中输入文字,此处第一行输入“数据”,第二行输入“存储”如图31所示,单击右下侧的“确定”选项完成图标修改操作。修改前后的图标对比效果如图32所示。

图26 双击图标

图27 删除原图层

图28 删除后效果

图29 矩形绘图工具

图30 矩形边框绘制效果

图31 图标文本绘制

图32 图标修改前后对比效果
(2)添加模块的输入输出端,LabVIEW的程序面板函数中都存在着多个输入或者输出端,封装的子VI要想实现设计的功能也需要设计输入输出端口,才能在程序框图中使用。本文程序中,存在着四个输入量,而没有输出量。四个输入量即“是否存储数据按键”、“文件存储路径”、“文件存储名称”、“数组数据源”,以添加“是否存储数据按键”接线端为例,首先点击图标左侧“接线端”选板的其中一个接线端,选中即显示为黑色,在用鼠标选中前面板中的“是否存储”布尔按键控件,最后会发现刚才“接线端”选板的黑色接线端变成了绿色接线端,即该接线端设定为了布尔输入量,其过程如图33从左至右所示。最后添加完所有输入端的效果如图34所示,路径输入量、文本输入量与数值输入量。

图33 添加接线端操作

图34 添加接线端完成效果
(3)最后将封装好的子VI,保存至适当的位置,如图35所示。

图35 保存子VI
验证程序功能
(1)为验证程序运行效果,首先需要设计一个波形输入源,本文中选取“信号处理”库中的“信号生成”下的“正弦信号”函数,用来产生波形数据,如图36所示。

图36 正弦信号函数
(2)调用封装的子VI:在程序框图选板中选择下侧的“选择VI”选项,如图37所示,弹出对话框中选择之前存储子VI的路径位置,如图38所示,点击“确定”选项后即添加到程序框图。完成添加子VI操作后,再为其添加输入控件,此处可以直接右键单击子VI模块,弹出菜单选择“创建”再选择“所以输入控件和显示控件”,如图39所示即为操作与最终控件添加效果。

图37 选择VI选板

图38 选择数据存储子VI

图39 子VI添加控件操作与效果
(3)为了观察波形数据的实际效果,添加如图40所示的“波形图表”控件,用作显示当前数据波形。对应于程序框图中着利用“创建波形”函数来实现波形数据输出给波形图表显示控件,如图41所示。其中“创建波形”函数的输入“t0”量选取“获取日期/时间(秒)”函数,如图42所示。

图40 波形图表控件

图41 创建波形函数

图42 获取日期/时间函数
(4)连接程序框图中的各个函数模块,如图43所示,其中直接将波形数据接到数据存储子VI的数据端入口处,虽然存在着红色点,表明数据类型可能存在需要强制转换的需要,为了测试需要嘛。此外在前面板上调整并修饰了显示效果,如图44所示。

图43 程序框图接线效果

图44 验证程序前面板
仿真测试操作
(1)首先选取文件的存储路径,如图45所示,弹出对话框中点击“当前文件夹”选项。再在文件名称中添加文件名称如图46所示。

图45 添加路径输入量

图46 添加文件名输入量
(2)首先点击工具栏中的“连续运行”按钮,运行仿真程序效果如图47所示,此时先不点击存储按键。运行一段时间后,再点击存储按键,开始保存数据,如图48所示。存储的文本文件如图49所示,存储在图46所示的路径下,文件名为设定的文件名。用记事本打开存储好的文本文件,如图50所示,可以看到存储数据效果。

图47 存储按键未按下运行效果

图48 存储按键按下运行效果

图49 文本文件存储效果

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

更多推荐

LabVIEW学习分享(4)

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

发布评论

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

>www.elefans.com

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