保姆级教学!眼睛说会了!那就一定会了!
为了让初学者熟悉Labview的编程环境及基本操作,此实验的难度始终,属于基础的实验。如果可以自己完整的按照实验要求做出完整的程序。那么对于labview的熟悉度会有一个很好的提升。希望看完这篇文章,可以完成下列目的。
1、熟悉软件的组成要素和基本操作;
2、学会使用前面板和后面板进行创建VI程序;
3、熟悉工具选板、控件选板、函数选板及基本逻辑运算、比较运算等的使用。
4、熟悉LabVIEW的数据类型;
5、掌握循环结构、事件结构和条件结构等的编程;
6、熟悉LabVIEW程序的多种调试技术(错误列表、高亮执行、断点与单步执行、探针等技术)
要求:利用随机数发生器模拟当前温度值,并将其与设定的温度上限进行比较,当温度超过上限时报警灯变亮,并且报警次数+1。温度检测开关打开时进行温度监测,关闭后停止监测,状态栏显示当前程序的运行状态(即开始采集、停止采集和退出系统)。温度可以用摄氏或华氏温度表示。要求能够将温度数据保存于电子表格文件。
ps:要求界面美观
展示作者设计的前面板:
我所搭建的思路图如下:
按照上述思路图,我们按步骤进行实现即可。
首先我们在前面板创建一个数值量(温度计)。如图所示:
将随机数乘上100后的值赋予温度计,模拟温度传感器的值(一直在变化)。
ps:先设定的摄氏温度(0~100),然而随机数的范围为(0-1),所以需要乘上100
这样温度显示我们就完成了,接下来实现温度的比较。
我们再创建一个数值(温度计),将其改名为温度上限,并且为了区分,我们将其填充颜色改为蓝色(颜色可以任意选取)。然后需要将其转化为输入控件。
接下来实现比较函数。那么我们可以直接选用比较选板中的大于? 模块,这样即可实现比较功能。
至此,第一部分任务以及完成。
温度报警功能的实现,就是延续上述比较后,如果温度计示数大于预设的温度值,那么进行的操作。我设计当温度超过设定值时,红色布尔灯亮起且发出鸣笛声,如果未超过则绿色布尔灯亮起。
首先接着上续的比较后,连接红色布尔灯(在前面板先添加布尔灯,布尔灯的样式自选)
那么如何实现未超出温度值时绿灯亮?我们可以选择在比较结果后面先接一个布尔选板里面的非 ,然后在非的后面接上一个绿灯,那么即可实现功能。
或者采用属性节点,创建红灯的属性节点值,然后将取反后的值赋予绿灯。
报警灯的部分就是如此,接下来实现报警蜂鸣声。
首先我们创建一个条件结构。然后以红灯的属性节点的值为分支选择器,当红灯亮的时候(也就是条件结构为真的时候)使报警声音响起。
其中加入延时的目的为了避免程序产生混乱。(蜂鸣声在图形与声音选板中)
紧接着计数功能的实现分为,温度超过上限值时记一次数,然后每一次报警都累加在一起。
首先在前面板建立一个数值显示控件,命名为超限报警次数。因为温度检测是一个持续的过程,不是只检测一个量,所以我们需要将程序加入到一个while循环里面。
紧接着我们可以在蜂鸣器响起的那个条件结构里面加上计数结构。因为我们温度超过上限值就是红灯亮起。
我们利用刚才创建的数值(超限报警次数),创建他的属性节点值,每一次红灯亮起时都可以令该数值加一。即可完成计数功能。
根据题目要求,我们需要有开始采集、停止采集和退出系统三个功能键。开始采集键按下时,程序开始运行,当按下停止采集时,程序没有终止,但是温度不变化。当按下退出系统时,整个程序退出运行。
其中,开始采集与停止采集我采用一个按键实现。当按下时开始采集,再按一下即为停止采集。(因为按下为开始采集,所以按键在未按下时按键显示的是开始采集,按下后此时程序以及开始运行,那么再按一下将转变为停止运行,那么此时按键应该显示的时开始采集。
首先我们考虑退出系统的按键功能实现,我们前面的程序都是在while循环下面进行的,那么只要将退出系统按键连接到循环条件上即可。
接下来就是开始采集以及停止采集。先在前面板创建布尔按键,按键类型自选,我所选用的是银色→布尔→确定按钮。因为我们需要使按钮再按下前后展示不同的按键信息,所以我们需要先选中按钮,然后右键点击属性,选中多字符串显示,如图所示:
然后进入程序框图中,前面我们提到,我们需要实现的功能是按下开始 采集程序运行,按下停止采集,程序不结束,但不运行。
那么我们可以通过条件结构来实现。以开始采集按钮为分支选择器,当按钮按下时为开始采集,也就是条件为真的时候,我们在真的分支里面放入我们的程序,假的分支内什么也不接。
按照题目要求,我们还需要将程序状态显示出来,也就是上述的开始采集、停止采集、退出系统。
那么首先在前面板上构建一个字符串显示控件,然后利用两次条件结构实现。
(1)首先以退出系统按钮为分支选择器,当条件为==真的时候(即为按下退出系统键),给予字符串显示控件一个字符常量“退出系统‘’。
(2)在假的分支里面再使用一个条件结构,连接开始采集键的属性节点值。再其真的时后给予”开始采集“,在其假的时候给予”停止采集“。
至此功能按键部分已经实现。
实验要求我们实现温度再摄氏度与华氏度之间转换。华氏度换算成摄氏度的公式是:(华氏度-32)/1.8。我们可以利用公式节点来实现。也可也利用简单的数值运算。
因为需要再前面板进行温度模式的选择,所以我们在前面板创建一个枚举常量。
然后右键选项编辑项,进行添加文字为华氏温度与摄氏温度。在程序框图里面利用条件结构实现。
温度数据的保存,我是利用labview自带的写入测量文件模块。
按如图所示连接即可。
连接好后双击该模块(写入测量数据),添加入保存地址即可。
创新部分我分成两个板块,首先是功能的添加,其次是界面的优化。
(1)功能的添加
我添加的功能是实时显示温度变化的图像,并且进行滤波显示。
利用for循环,每一次while大循环,里面for循环至运行一次,也就是只采一个值。利用平滑滤波函数进行处理,然后将为滤波的数据和滤波后数据捆绑给波形图显示,即可得到滤波前后的图。(两条曲线在一个图内)
ps:推荐的平滑滤波的讲解
(2)界面的美化是看个人喜好进行修改,在此我就展示一下我的成品
图像的导入方法:将emf或png格式图像保存在电脑桌面上,将其拖拽到LabView的前面板即可。
至此本实验圆满结束,如果有需要源代码的友友们,可以去我的资源里面下载,或者点击下方连接!
温度检测系统源代码+word文档