




免费预览已结束,剩余1页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1 实例1-虚拟加法器1.1 虚拟加法器设计步骤 图1.1 虚拟乘法器虚拟乘法器,步骤如下:前面板中-控件(Controls)模板中添加2个数值输入控件,1个数值输出控件,1个按钮控件。(控件选板可从“查看”菜单下选择激活显示和取消隐藏,也可右键鼠标单击弹出);前面板中-使用(Tools)模板中的编辑文字工具,修改标题分别为“乘数x、乘数y、乘积及检验”,并添加“虚拟乘法器”标题。程序面板中-在函数模板(Functions)中选择“编程-结构-while循环”图框,框住四个对象,拨动开关连接至while循环终止条件。(一般还需要在while循环中添加等待时间函数来控制CPU的使用时间)程序面板中-“函数模板-编程-数值-乘法”,添加“节点”,使用Tools工具模板中连线工具,完成连线。保存运行查看效果。可以利用工具模板上及工具条上的单步运行/探针/断点工具来调试系统。 单步运行,循环内和子vi内也是一步一步运行; 单步跳过,循环内和子vi内仅作为一个节点运行,其他单步; 单步跳出,跳出单步运行模式,程序暂停。 高亮显示,连线和连线端的数据。1.2 基础理论需要大家掌握以下基本知识:(1) LabVIEW编程界面 安装完毕LabVIEW程序后(过程略),打开LabVIEW应用程序,进入启动界面;将会看到VI程序和工程创建栏、新近打开的工程和VI程序列表栏帮助资源列表栏; 新建(N)中,可选择创建新的工程,用来管理LabVIEW文件和非LabVIEW文件、创建可执行文件、下载文件到目标等,默认后缀名为.lvproj。 前面板和程序框图代码; 菜单栏:主菜单(文件、编辑、试图、项目、操作、工具、窗口、帮助)和快捷菜单(对象上右键产生); 工具条; 控件选板(输入和显示)和工具选板(着色); 导航窗口和即时帮助,范例查找器; Tools-Advanced-Edit Palette set定制控件和函数选板; 程序框图中的连线,通过单击、双击和三次来选中所有连线;(2) 掌握虚拟仪器程序(VI)组成 即: 三部分:前面板、数据流框图(源代码)、图标/连接端口。 LabVIEW是基于数据流的编译型图形编程环境。 LabVIEW有三类图形化的操作面板,即控件(Controls)模板、工具(Tools)模板和函数(Functions)模板,从“查看”菜单下可以显示和隐藏这些模板。 前面板都有一个流程图程序与之对应,流程图是图形化的源代码,是虚拟仪器测试功能软件的图形化描述,每个端口用于与程序前面板的控制和显示传递数据; 流程图程序由节点和数据线连接而成,节点用于实现函数和功能调用,而连线代表程序执行过程中的数据流。 图框用于实现结构化程序控制命令,如while结构,for结构等。 无论在前面板还是程序框图代码中,均可通过控件对象-右键来改变其属性,如数值控件的数据类型等。 应用文本式编程语言的数据采集系统,要求开发人员具有良好编程基础及一定硬件知识,对采集数据的分析处理可借助其他工具实现。而基于图形化虚拟仪器编程语言 LabVIEW,采用封装功能模块及调用硬件驱动的动态链接程序,能方便地实现系统开发。 LabVIEW的优势主要体现在:1. 丰富的图形控件;2. 内建编译器,语法错误即时显示;3. 数据流模型,自动实现多线程并行运行任务。 1.3 作业1. 熟悉while的使用,终止条件的使用,等待函数wait毫秒计时的使用。2 实例2-虚拟温度监控系统2.1 虚拟温度监控系统设计步骤 图2.1 温度测控系统设计-程序结构练习温度测控系统前面板如图2.1所示,其主要功能:开始、停止采集与退出系统;摄氏/华氏温度转换;温度上限的设定;在每次采集的100个数据中,对温度越限的次数进行统计;显示当前采集的进度;温度实时显示;步骤如下: 新建工程、新建虚拟文件夹、新建vi等; 在前面板中依次添加开关、数值输入控件、数值显示控件、两个确定按钮(标签分别为开始采集和退出系统)、进度条、温度计(及其数值显示); 程序面板中,首先添加While框图、定时器Vi(1ms),这是基本要求; 设置开始采集按钮的机械动作为释放时转换;添加Case结构,使用其默认的真和假两个分支,连接开始采集按钮与Case端口,真分支采集数据,假分支暂停采集。 在上述采集数据分支中,添加For循环结构,在其中添加一随机信号,设置循环次数为100。连接随机信号输出端口与温度计;连接循环次数i至进度条端口。 添加条件结构Case,条件端口连接摄氏/华氏显示开关,假时直接输出,真时利用公式节点(或表达式节点)换算为华氏温度即:F=C*1.8+32; 在FOR结构中,添加比较.vi,连接其与温度输出端和温度上限设定输出端,添加Case结构,连接其至.vi输出端;添加+1.vi,在For结构上添加移位寄存器输入和输出断点,分别连接+1.vi的输入和输出端;越限计数显示控件连接+1.vi输出端; While循环中,添加事件结构,设置退出按钮释放触发事件,停止While运行,退出系统。事件结构中等待时间设置为0.2.2理论知识这一节的知识要点比较多,请注意复习、掌握。 按钮的机械动作,通过在按钮上右键单击可以查看每种机械动作的功能演示,通常使用释放时触发; 程序结构中的For循环结构循环次数可以通过直接给定和输入数组的大小两种方法指定,可以说,FOR循环就是用来处理数组的。 1. 直接给定:N代表循环次数,i代表当前循环次数,可通过在循环结构上右键添加条件接线端,提前结束循环; 2. 输入和输出数组:分为一次性输入/输出(非索引,交叉点隧道实心点)和逐个输入/输出(索引,交叉点隧道空心点),一次性输入/输出时需右击输入点并选择取消索引选项,且循环数N需赋值。索引时不需赋值。例:数组元素+5,需注意数组的用法。外部与FOR结构体的交叉点,即为“隧道”,功能类似于一个“数据池”,因此具有缓冲作用。数据输出隧道,同样也存在索引(输出为数组)和取消索引(只输出单个元素)的功能。 3. 移位寄存器:功能是把上一次FOR循环产生的结果“移动”到下一次循环的输入。在边框上右键添加移位寄存器,在FOR框图左右两侧产生循环标志。不要忘记给移位寄存器赋处置。例:a+ 4. 反馈节点:功能同移位寄存器。在框图边框上右键单击添加。要赋初值。例:a+ 程序结构中的Case结构Case语句输出数据,请勿忘记选择输出端,使其具有无连接时输出默认值。可通过添加分支并修改分支条件来完成Case功能,如枚举类型输入(见实例3的交通灯状态机设计),默认是IF条件句。另,注意一下,本例中if条件结构中的真值时,其相应的报警次数程序仅仅执行一次。 程序结构中的事件结构1. 超时事件,在指定的超时时间内没有任何该事件结构所定义的事件发生时,触发。默认为-1,即永不超时。在本实例中,我们设置超时时间为0,即无超时。2. 执行某事件程序时,可锁定前面板的所有对象,保持当前值。3. 同一事件处理程序,可允许有多个触发源,在“编辑本分支所处理的事件-事件说明符”中添加即可。4. 用户事件:用户事件属用户自定义动态事件,需要用到事件结构,事件结构本身的功能决定其可以携带数据信息及其他引用句柄等。用户事件使用vi函数完成整个使用过程,即:创建用户事件、注册用户事件、产生用户事件、注销用户事件。如图2.2所示。图2.2 用户自定义事件注意创建用户事件时,需要簇的输入。5. 事件处理结构中,往往带有相关控件的引用信息,这在很多场合中会有用!2.3 作业1. 掌握结构选板中,顺序结构、For结构及while的用法;2. 上述结构中移位寄存器的用法;3. 设计一自定义用户事件,完成一定的功能。3 实例3-交通灯设计3.1 根据时序图和已用时间vi设计交通灯 图3.1 交通灯时序图及程序框图主要程序如图3.1所示,可知红灯亮灭周期为50秒,因此,可使用已用时间vi在while结构中来完成,在每个25秒后,改变状态,同时控制红r(横向)和红r2(纵向),如图所示。设计步骤如下: 产生脉冲:利用触发器原理设计,利用已用时间vi来完成。在while循环结构中添加一“已用时间”vi函数,设置其目标时间为25秒(即从启动计时开始后的第25秒时,其结束输出端产生一脉冲信号),利用脉冲的“1”值,将相反状态输出,从而完成脉冲输出,即得到红灯的控制信号。 其他灯的控制信号,可利用红灯的控制信号以及已用时间vi的“已用时间”输出端,以及case结构来完成。3.2 利用状态机设计交通灯 图3.2 交通灯状态机设计表3.1 交通灯状态机状态值表状态RYGR2Y2G2Sta00020s20s00Sta105s05s00Sta220s000020sSta35s0005s0Sta_else由主循环和一个Case结构组成,利用移位寄存器来实现状态的跳转,利用Case结构完成状态的运行及更新。为了方便编程,最好利用TypeDef来实现状态枚举值,这样只需改变TypeDef就可以改变所有的枚举变量。试设计一交通灯控制来模拟状态机模式。如图5.36所示。其中图5.36(b)为程序框图,其中注意几个关键点:a. 前面板中需要注意自定义控件的使用,此处我们使用控件选板-图形-控件-二维图片,设置自定义控件,加载图片,分别为汽车v.ctl和汽车h.vi,并分别添加到当前面板中,在程序面板中利用其属性节点。b. 前面板中,分别在纵向和横向通道添加3个圆形布尔显示灯,并设置其标签为r、y、g和r2、y2、g2。c. 程序框图中,使用while循环结构和case语句实现状态机的主框架,在while结构上添加移位寄存器,并使用枚举常量初始化之,枚举常量的编辑项分别为sta0、sta1、sta2、sta3和sta_else。状态机的工作过程如表5.4所示,四个状态循环顺序执行。因此,在case结构中,分别将下一状态赋值给移位寄存器。d. 在每一个状态中,完成点亮相应信号灯、延时和状态更新的功能,因此我们在每个状态的case语句中使用函数选板-编程-结构-层叠式顺序结构,并在其后添加帧,共顺序3帧(也可使用多帧定时循环),在第一帧中,利用创建-信号灯的-属性节点-值,对信号灯的状态进行赋值,在第二帧中利用定时循环(函数选板-编程-定时结构-定时循环)完成延时,延时时间由状态决定,由循环次数实现(分频器的使用),并将循环次数即信号灯的时间倒计时显示在数值显示控件中(通过属性节点实现);在第三帧中,实现状态值的更新,即将下一状态赋值给移位寄存器。e. 小车控件的位置移动使用,小车的属性节点更新来实现,选择创建-属性节点-位置-左侧或顶端来实现,此处注意,在屏幕的左上角,对应位置为(left, top)为(0,0),向左和向右分别为值增大的方向,同时也可以使用控件的属性节点-边界-区域高度和宽度来实现图形的缩放。3.3 理论知识1. 已用时间vi的使用;2. while结构、移位寄存器、Case语句状态机的设计;3. 枚举型数据类型-自定义-严格数据类型。4. 自定义控件,利用前面板-新式-图形-控件-二维图片来完成。4. 属性节点的使用,可通过直接在控件上右键-创建-属性节点来完成,也可以通过应用程序控制中的属性节点vi来完成(该vi需要连接对象的引用句柄,句柄可在对象上右键创建)。5. 定时子选板中的定时循环的使用,设计每个状态循环的周期。定时循环的主要参数有: 定时源(循环执行的最高频率,如SetTimer的最高频率由计算机的硬件频率决定)、周期(循环的时间间隔,默认是毫秒,如SetTimer的定时周期,取决于定时源,其类似于循环中使用的等待(ms)及等待下一个整数倍毫秒)、优先级(可以设置多个定时循环,并为每个定时线程分配优先级)、循环名称(用于标识定时循环,对于重入VI的定时循环
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 延边职业技术学院《大学体育Ⅱ羽毛球》2023-2024学年第一学期期末试卷
- 辽宁省盖州市东城中学2024年物理八年级第一学期期末统考模拟试题含解析
- 七年级下册英语单元教学计划
- 荆楚理工学院《建筑工程项目管理》2023-2024学年第一学期期末试卷
- 湖北省襄阳市徐寨中学2024-2025学年化学九上期末学业质量监测试题含解析
- 部编版四年级下册语文学生个案教学计划
- 内蒙古兴安市2024-2025学年八年级数学第一学期期末质量跟踪监视试题含解析
- 西北大学《医药文献检索》2023-2024学年第一学期期末试卷
- 一年级数学互动教学计划
- 山东省临沂莒南县联考2025届九年级化学第一学期期末检测试题含解析
- 2024年安徽中医药高等专科学校招聘考试真题
- 2025年变电站春季安全生产自查报告
- 充电桩充电服务与充电站安全保障合同
- 个人信息保护合规审计师CCRC-PIPCA含答案
- 2025鄂尔多斯达拉特旗智杰教育投资有限责任公司面向社会招聘10名工作人员笔试参考题库附带答案详解析集合
- 小型引调水工程可行性研究报告
- GB 9706.283-2022医用电气设备第2-83部分:家用光治疗设备的基本安全和基本性能专用要求
- 放弃房产贷款协议书
- 2025年儿童心理学基础知识考试卷及答案
- 2024年内蒙古公安厅招聘警务辅助人员真题
- 顾问框架合同协议
评论
0/150
提交评论