一.实验目的:
1. 灵活运用LabVIEW,设计出一套温度/湿度/气压等关键气象参数的采集监测系统。
2. 完成各个子VI的设计,包括数据的自动采集、处理、显示和存储等功能。
3. 独立写出具有完整的、逻辑清楚的详细课程报告论文。
二.实验工具/器材
安装LabVIEW编程软件的计算机一台。
三.实验原理
1.程序结构
(1)For循环
For循环用于将某段程序循环执行指定的次数。可以通过两种方法指定循环次数,一种是直接给定,一种是通过输入数组的大小给定。
图1 for循环结构图
(2)while循环
对于For循环,循环的次数是固定的,因Labview没有Breck语句。很多情况下, 要让循环在满足某种条件时退出或继续运行,这时候就需要借助于While 循环。
图2 while循环结构图
这样只有在鼠标单击按钮后才产生-一个布尔值为True 的脉冲,当While 循环检测到这个脉冲时停止循环,同时按钮复位为Falsc)。
(3)移位寄存器
它就是把上一次循环产生的结果“移动”到下一次循环的输入。
图3 移位寄存器示意图
(4)事件结构
即仅当 “事件” 发生时,程序才作相应的响应。
图4 实践结构图
2.子VI
LabVIEW中的子VI(SubVI)类似于文本编程语言(C语言)中的函数。LabVIEW中的图形连线会占用比较大的屏幕空间,不可能把所有程序都在一个VI里实现;通过子VI,我们可以把程序分割为一个个小的模块来实现。
通过构建和使用子VI能方便的实现LabVIEW 的层次化和模块化编程,把复杂的编程问题划分为多个简单的任务,使程序结构变得更加清晰、层次更加分明、程序更加易读、调试更加方便。
LabVIEW中子VI的创建有两种方法:一种方 法是用现有VI创建子VI,另- -种方法是选定内容创建成子VI。前- -种方法把,整个框图所示的程序创建成子VI是层次化编程的基础,后一-种方法选定程序的一部分创建成子VI,相对前一种方法比较灵活机动。选定部分被子VI节点所取代实现程序的模块化编程并增加程序可读性。
3.属性节点
属性节点可以用来通过编程设置或获取控件的属性,譬如在程序运行过程中,我们可以通过编程设置数值控件的背景颜色等属性。
创建属性节点的方法有2种:
方法一:在程序框图中直接右击控件图标…
方法二:是在程序框图中选择属性节点,再与当前VI中的控件关联。
三.实验内容
1.设计要求
灵活运用LabVIEW的编程,设计出一套温度/湿度/气压等关键气象参数的采集监测系统。各个子VI独立设计,包括数据的自动采集、处理、显示和存储等功能。本系统采用随机数产生温度/湿度/气压等关键气象参数信号,系统能够监测、传输及处理等这些信号,同时还具有报警、显示及存储等功能。
2.设计步骤和内容
(1)温度采集模块
通过随机数产生20~40°C温度范围内温度,并且使用条件结构对温度进行华氏/摄氏转换。其次由于华氏/摄氏温度范围的不同,采用属性节点的方法对不同模式下的温度计的范围进行调整。
图5 温度采集模块
(2)气压和湿度采集
由于温度、气压、湿度有相互联系性,比如在一般情况下,温度越高,气压月底。因此简单的设计了气压和温度的关系表达式,当温度越高时,气压越低。湿度采取了一般的随机数产生。
图6 湿度设计框图
图7 气压设计框图
(3)报警计数器
在系统中采取移位寄存器,每当采集值大于报警上限时,报警计数器加1
图8 温度计数器程序框图
(4)存储系统
调用Express控件中的“写入测量文件”即可将采集到文件存储。
图9 存储系统
(4)暂停采集系统
使用事件结构,当暂停采集按钮按下时,停止采集,同时弹跳出单选项选择框,进行提示。
图10 采集暂停框图
四.实验结果
图11 程序整体前面板
在本次设计中,完成了如上图11的功能的程序,可以同时对温度、气压、湿度进行采集,同时设置报警上限,当温度,气压,湿度大于报警上限时,对系统进行报警,但是由于采集实践间隔小,因此不使用报警灯进行示警。由于温度、湿度、气压三者之间存在联系,因此子VI之间也有联系,因此将温度的输出,作为气压、湿度的输入。同此外添加采集暂停功能,采集暂停键按下时,系统进行暂停。
五.心得与体会
本次实验对温度、气压、湿度进行了采集,在系统的设计过程中灵活的利用了数据类型的差异,使用不同程序结构、以及子vi、属性节点的部件对系统进行设计。因此系统也是比较准确的反应了系统的功能,比如能够对温度、气压、湿度进行采集,同时采集的数据也是相互具有关联性的,并且系统能够对超出系统报警上界进行报警,也能够对系统采集的数据进行存储,以便日后对数据进行分析。通过本次实验,能够较为全面的利用的LABVIEW的知识进行系统级的设计,使得对虚拟仪器能够进行实践操作,有了实际的运用意义。
https://download.csdn.net/download/qq_43676296/87490793?spm=1001.2014.3001.5503