写点什么

LabView 实验——温度检测系统 (实验学习版)

作者:一碗黄豆酱
  • 2022 年 7 月 19 日
  • 本文字数:2665 字

    阅读完需:约 9 分钟

LabView实验——温度检测系统(实验学习版)

前言

保姆级教学!眼睛说会了!那就一定会了!


为了让初学者熟悉 Labview 的编程环境及基本操作,此实验的难度始终,属于基础的实验。如果可以自己完整的按照实验要求做出完整的程序。那么对于 labview 的熟悉度会有一个很好的提升。希望看完这篇文章,可以完成下列目的。


1、熟悉软件的组成要素和基本操作;2、学会使用前面板和后面板进行创建 VI 程序;3、熟悉工具选板、控件选板、函数选板及基本逻辑运算、比较运算等的使用。4、熟悉 LabVIEW 的数据类型;5、掌握循环结构、事件结构和条件结构等的编程;6、熟悉 LabVIEW 程序的多种调试技术(错误列表、高亮执行、断点与单步执行、探针等技术)



一、实验要求

==要求==:利用随机数发生器模拟当前温度值,并将其与设定的温度上限进行比较,当温度超过上限时报警灯变亮,并且报警次数+1。温度检测开关打开时进行温度监测,关闭后停止监测,状态栏显示当前程序的运行状态(即开始采集、停止采集和退出系统)。温度可以用摄氏或华氏温度表示。要求能够将温度数据保存于电子表格文件。


ps:要求==界面==美观


展示作者设计的前面板:




二、操作步骤

👉搭建设计思路

我所搭建的==思路图==如下:





按照上述思路图,我们按步骤进行实现即可。

👉温度显示及比较

首先我们在前面板创建一个数值量(温度计)。如图所示:



将随机数乘上 100 后的值赋予温度计,模拟==温度传感器==的值(一直在变化)。ps:先设定的摄氏温度(0~100),然而随机数的范围为(0-1),所以需要乘上 100



这样温度显示我们就完成了,接下来实现温度的比较。


我们再创建一个数值(温度计),将其改名为温度上限,并且为了区分,我们将其填充颜色改为蓝色(颜色可以任意选取)。然后需要将其转化为输入控件。





接下来实现比较函数。那么我们可以直接选用比较选板中的==大于?== 模块,这样即可实现比较功能。



至此,第一部分任务以及完成。

👉温度报警及计数

温度报警功能的实现,就是延续上述比较后,如果温度计示数==大于==预设的温度值,那么进行的操作。我设计当温度超过设定值时,==红色==布尔灯亮起且发出鸣笛声,如果未超过则==绿色==布尔灯亮起。


首先接着上续的比较后,连接红色布尔灯(在前面板先添加布尔灯,布尔灯的样式自选)



那么如何实现未超出温度值时绿灯亮?我们可以选择在比较结果后面先接一个布尔选板里面的==非== ,然后在==非==的后面接上一个绿灯,那么即可实现功能。


或者采用属性节点,创建红灯的属性节点==值==,然后将取反后的值赋予绿灯。



报警灯的部分就是如此,接下来实现报警蜂鸣声。




首先我们创建一个==条件结构==。然后以红灯的属性节点的值为分支选择器,当红灯亮的时候(也就是条件结构为真的时候)使报警声音响起。



其中加入==延时==的目的为了避免程序产生混乱。(蜂鸣声在图形与声音选板中)


紧接着计数功能的实现分为,温度超过上限值时记一次数,然后每一次报警都累加在一起。


首先在前面板建立一个数值显示控件,命名为超限报警次数。因为温度检测是一个持续的过程,不是只检测一个量,所以我们需要将程序加入到一个==while 循环==里面。





紧接着我们可以在蜂鸣器响起的那个条件结构里面加上计数结构。因为我们温度超过上限值就是红灯亮起。


我们利用刚才创建的数值(超限报警次数),创建他的属性节点值,每一次红灯亮起时都可以令该数值加一。即可完成计数功能。


👉功能键的实现

根据题目要求,我们需要有==开始采集==、==停止采集==和==退出系统==三个功能键。开始采集键按下时,程序开始运行,当按下停止采集时,程序没有终止,但是温度不变化。当按下退出系统时,整个程序退出运行。


其中,开始采集与停止采集我采用一个按键实现。当按下时开始采集,再按一下即为停止采集。(因为按下为开始采集,所以按键在未按下时按键显示的是==开始采集==,按下后此时程序以及开始运行,那么再按一下将转变为停止运行,那么此时按键应该显示的时开始采集。


首先我们考虑退出系统的按键功能实现,我们前面的程序都是在 while 循环下面进行的,那么只要将退出系统按键连接到循环条件上即可。



接下来就是开始采集以及停止采集。先在前面板创建布尔按键,按键类型自选,我所选用的是银色→布尔→确定按钮。因为我们需要使按钮再按下前后展示不同的按键信息,所以我们需要==先选中按钮,然后右键点击属性,选中多字符串显示==,如图所示:



ps:需要将按钮的机械动作改为==单击时释放==




然后进入程序框图中,前面我们提到,我们需要实现的功能是按下开始 采集程序运行,按下停止采集,程序不结束,但不运行。


那么我们可以通过条件结构来实现。以开始采集按钮为分支选择器,当按钮按下时为开始采集,也就是条件为真的时候,我们在真的分支里面放入我们的程序,假的分支内什么也不接。



按照题目要求,我们还需要将程序状态显示出来,也就是上述的==开始采集==、==停止采集==、==退出系统==。


那么首先在前面板上构建一个字符串显示控件,然后利用两次条件结构实现。(1)首先以退出系统按钮为分支选择器,当条件为==真的时候(即为按下退出系统键),给予字符串显示控件一个字符常量“退出系统‘’。(2)在假的分支里面再使用一个条件结构,连接开始采集键的属性节点值。再其真的时后给予”开始采集“,在其假的时候给予”停止采集“。









至此功能按键部分已经实现。

👉温度转换与保存

实验要求我们实现温度再摄氏度与华氏度之间转换。华氏度换算成摄氏度的公式是:(华氏度-32)/1.8。我们可以利用公式节点来实现。也可也利用简单的数值运算。


因为需要再前面板进行温度模式的选择,所以我们在前面板创建一个枚举常量。





然后右键选项编辑项,进行添加文字为华氏温度与摄氏温度。在程序框图里面利用条件结构实现。




温度数据的保存,我是利用 labview 自带的写入测量文件模块。



按如图所示连接即可。



连接好后双击该模块(写入测量数据),添加入保存地址即可。



至此,温度的转换与保存结束。

👉创新板块

创新部分我分成两个板块,首先是==功能==的添加,其次是==界面==的优化。(1)功能的添加我添加的功能是实时显示温度变化的图像,并且进行滤波显示。


利用 for 循环,每一次 while 大循环,里面 for 循环至运行一次,也就是只采一个值。利用平滑滤波函数进行处理,然后将为滤波的数据和滤波后数据捆绑给波形图显示,即可得到滤波前后的图。(两条曲线在一个图内)



ps:推荐的平滑滤波的讲解


(2)界面的美化是看个人喜好进行修改,在此我就展示一下我的成品





图像的导入方法:将 emf 或 png 格式图像保存在电脑桌面上,将其拖拽到 LabView 的前面板即可。

总结

至此本实验圆满结束,如果有需要源代码的友友们,可以去我的资源里面下载,或者点击下方连接!


温度检测系统源代码+word文档

发布于: 刚刚阅读数: 3
用户头像

还未添加个人签名 2022.07.14 加入

还未添加个人简介

评论

发布
暂无评论
LabView实验——温度检测系统(实验学习版)_一碗黄豆酱_InfoQ写作社区