




已阅读5页,还剩57页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
虚拟仪器设计基础,虚拟仪器设计基础,主要教学内容 程序结构 字符串、数组和簇 局部变量和全局变量 文件操作 图形显示,5.1 程序结构,LabVIEW中的结构是其他基于文本的语言中的循环、判断等结构的图形化体现。 什么是结构? 结构是控制 G程序数据流程的元素,G语言包含的结构有: While loop结构 For Loop结构 条件结构 顺序结构 事件结构 使能结构 公式节点,5.1.1 循环结构,LabVIEW中的循环结构主要有 While循环 For循环 这两种循环结构功能基本相同,但使用上有一些差别。For循环必须指定循环的次数,循环一定的次数后自动退出循环;而While循环则不用指定循环的次数,只需要指定循环退出的条件。,1. For循环,For循环(For Loop)是将某程序段重复执行预先设定的次数. For(i =0;iN;i+) 循环体; ,包含两个端口: 计数端口N 重复端口i,For循环,可以通过两种方法指定循环次数,一种是直接给定,一种是通过输入数组的大小给定,For循环,输入和输出数组 如需将数组一次完整输入,则右击输入点并选择关闭索引 对于二维或多维数组,采用索引的办法输入,则最外层循环按行输入,内层循环按输入行的元素逐个输入,多维数组依次类推。,For循环,当多个数组按索引方式输入时,循环次数以元素最少的数组为准,如下例,循环次数为3,For循环,移位寄存器(Shift Register),一个累加10次的a+程序,通过局部变量实现,通过移位寄存器实现,移位寄存器,在LabVIEW的循环结构中创建移位寄存器的方法是在循环框图的左边或右边单击鼠标右键,在弹出的快捷菜单中选择【添加移位寄存器】,可创建一个移位寄存器 移位积存器的功能是将第i-1, i-2, i-3次循环的计算结果保存在For循环的缓冲区内,并在第i次循环时将这些数据从循环况架左侧的移位寄存器中送出,供循环框架内的节点使用,其中,i=0,1,2,3 。,For循环,隧道和移位寄存器的最大区别就是隧道程序在运行过程中,每次输入控件都是和初值相加,而不是和循环的中间结果相加。 在有索引的隧道数值输出控件中输出的是由每次循环的结果组成的一维数组,在无索引的隧道数值输出控件中输出的是每次的循环结果,在程序框图运行过程中这个数值一直在随每次循环结果变化,最终输出最后一次循环执行的结果。,5.2 For循环,5.2.4 反馈节点(Feedback Node),通过反馈节点实现a+,!同移位寄存器一样,最好指定反馈节点初值。,FOR循环应用举例,例5.1 求,前面板和程序框图,FOR循环应用举例,例5.2 求一组随机数的最大值和最小值。,前面板和程序框图,2. While循环,当循环次数不能预先确定时,就需用到While循环( While Loop )。While循环也是LabVIEW最基本的结构之一,相当于C语言中的While循环和do循环。 While(条件) do 循环体; 循环体; While(条件),Whlie循环结构,Whlie循环包含两个端口:条件端口和重复端口i 条件端口输入的是布尔变量,它用于判断循环在什么条件下停止执行。它有两种使用状态:Stop if True和Continue if True 重复端口i为当前循环的次数。,While循环应用示例,例5.3 求N!,void main() int a ,i, n; a=1;i=0; scanf (“ %d ”, printf (“n! =%d”,a ); ,前面板和程序框图,While循环,While循环,添加定时器,While循环,使用移位寄存器和反馈节点,累加器程序,5.1.2 条件结构,条件结构类似于文本编程语言中的switch语句或if.then.else语句。,选择端口相当于C语言的Switch语句中的“表达式”,框图表示符相当于“表达式n”。编程时,将外部控制条件连接至选择端口上,程序运行时选择端口会判断送来的控制条件,引导选择结构执行相应框架中的内容。,选择端口的外部控制条件的数据类型有整型、布尔型、字符串型和枚举型。,条件结构,If(a%2=0) b=a+2; else b=a+1; end,等价于if.else.语句的条件结构,条件结构,等价于switch语句的条件结构,switch (fruit) case apple: price=9; case banana: price=10; case pear: price=8; default: price=0; ,条件结构应注意的问题,在使用选择结构时,控制条件的数据类型必须与图框标识符中的数据类型一致。二者若不匹配,LabVIEW 会报错,图框标识符中字体的颜色将变为红色。 在 LabVIEW 中,对于数值型条件必须包含处理超出范围值的默认分支,对于其它类型的条件可设或不设,但必须明确地列出每一个可能的输入值。,条件结构的数据输入和输出通道,当由外部节点向结构框架连线时,在结构边框就创建了输入通道,而当由框内内节点与边框连线时,在结构边框就建立了输出通道。 对所有条件分支来说对于输入通道的数据可以使用,也可以不使用。 只要有一个分支提供输出数据,所有分支条件都必须与输出通道连接 。,条件结构应用举例,例5.4 求一个数的平方根,若该数 0,计算该值平方根并将计算结果输出;若该数 0 时,输出错误代码“-999.00”。,框图程序,运行结果,条件结构应用举例,例5.5 利用条件结构编写温度采集报警程序,当采集温度高于设定值时产生报警。,前面板和程序框图,5.1.3 顺序结构(Sequence Structure),5.1.1 LabVIEW程序的执行顺序,数据流式的编程方法,多段代码同时执行,5.1.3 顺序结构,LabVIEW顺序结构的功能是强制程序按一定的顺序执行。顺序结构包含一个或多个按顺序执行的子程序框图或帧。 LabVIEW提供了两种顺序结构: 平铺式顺序结构 层叠式顺序结构,5.1 顺序结构(Sequence Structure),在平铺的帧间传递数据,5.1 顺序结构(Sequence Structure),在层叠的帧间传递数据,顺序结构应用举例,例5.6 计算生成等于某个给定值的随机数据所用时间。,层叠式顺序结构VI的程序框图,5.1.4 事件结构,事件是对活动发生的异步通知。事件可以来自于用户界面、外部I/O或程序的其他部分。用户界面事件包括鼠标点击、键盘按键等动作。 LabVIEW应用程序在没有事件发生时处于休息状态,直到前面板窗口中有一个事件发生为止。,1. 事件结构的组成,事件结构包含超时端口和事件端口,事件选择器标签表明由哪些事件引起了当前分支的执行。,事件超时接线端用于设置事件结构在等待指定事件发生时的超时时间,事件数据节点用于输出事件的参数,端口数目和数据类型根据事件的不同而不同。,2. 事件结构的使用,用户界面事件有两种类型:通知事件 过滤事件,通知事件表明某个用户操作已经发生,比如用户改变了控件的值。,过滤事件将通知用户LabVIEW在处理事件之前已由用户执行了某个操作,以便用户就程序如何与用户界面的交互作出响应进行自定义。,编辑事件对话框,通过编辑事件对话框,可以设定某个事件结构分支响应的事件。,事件结构应用举例,例5.7 利用事件结构演示用鼠标单击前面板窗口时,发生鼠标按下事件并处理鼠标按下事件。,询问对话框,事件结构VI的程序框图,2.4 公 式 节 点 一些复杂的算法如果完全依赖于图形代码实现,框图程序会十分复杂,工作量大,而且不直观,调试和改错也不方便。LabVIEW提供了一种专门用于处理数学公式编辑的特殊结构形式,称为公式节点(Formula Node)。在框架内,可以直接输入数学公式或者方程式,并连接相应的输入、输出端口。,5.1.5 公式节点,公式节点:一种专用于处理数学公式编程的特殊结构形式。在公式节点框架内。LabVIEW允许用户像书写数学公式或方程一样,直接编写数学处理节点,形式与标准C语言类似。 公式节点的创建通常按以下步骤进行,第一步创建公式节点,第二步添加输入、输出端口,第三步输入程序代码,公式节点中使用的每一个变量必须是输入或输出之一,两个输入或输出不能具有相同的名字,但一个输出可以与一个输入有相同的名字。变量名有大小写之分,必须与公式中的变量匹配。输出变量的边框比输入变量宽一些,通过从快捷菜单中选择Change to Output或Change to Input可选择输出或输入,同时也可在公式节点的边框上添加多个变量。 输入公式时,每个公式一定要用分号结束;若有很多公式,可以从公式节点(不是边框)弹出快捷菜单中选择Visible ItemsScrollbar放置滚动条。 公式节点中代码的算法与C语言相同,可以进行各中数学运算。这种兼容性使LabVIEW功能更强大。公式节点中可以直接使用的LabVIEW预定义函数见表2.1。公式节点中可以使用的操作符见表2.2。,表2.1 公式节点中可以使用的函数,续表,续表,表2.2 公式节点中可以使用的操作符,在公式节点中不能使用循环结构和复杂的选择结构,但可以使用条件运算符和表达式,即 ?: 例如:计算两数的比值,框图程序如图2-26所示。,图2-26 计算两数的比值,公式节点的应用,例5.8 输入三角形的三边长,求三角形面积。,基本公式节点框架中出现的所有变量,必须有一个相对应的输入端口或输出端口,否则,LabVIEW会报错。,前面板和程序框图,禁用结构,禁用结构是Labview8中新增功能,用来控制程序是否被执行。 禁用结构分两种 程序框图禁用结构 条件禁用结构,程序框图禁用结构,相当于C语言中的/* */ 注意,禁用一段程序的同时一定要启用一段程序,否则程序无法运行,随意选择程序是否启用,条件禁用结构,通过外界环境变量来控制代码是否执行,此外还可判断当前操作系统的类型来选择执行哪段代码。 环境变量只有工程中才能使用,通过定义整个工程的环境变量,该工程下的所有VI都可以被这些环境变量所控制,如该工程下的VI脱离工程单独运行,将不受环境变量控制。,条件禁用结构,新建一工程,保存后,选择属性选项,在出现的对话框中选择条件禁用符号; 添加条件禁用符号如 Global_Switch1, Global_Switch2,值分别为True和False; 即可使用这些符号控制该工程下所有程序执行。,5.3 局部变量和全局变量,局部变量和全局变量是LabVIEW用来传递数据的工具。LabVIEW编程是一种数据流编程,它是通过连线来传递数据的。但是,在很多情况下需要在同一VI的不同位置或在不同的VI中访问同一个控件对象,这时控件对象之间的连线就无法实现。这时候我们就需要用到局部变量或全局变量,通过局部变量或全局变量你可以在程序框图中的多个地方读写同一个控件。,5.3.1 局部变量,局部变量:只能在同一个VI中使用的变量 创建局部变量的方法有两种: (1)直接为前面板对象创建局部变量 (2)通过函数选板创建局部变量,创建局部变量方式一 创建局部变量方式二,注意:局部变量具有读、写两种属性,5.3.1 局部变量,读写局部变量的方法与读写控件对象的方法完全一样,局部变量的应用举例,例5.15 要求使用局部变量向与它联系的前面板上的电压表控件写数据,也可以从电压表控件读取数据。,局部变量创建VI的前面板和程序框图,局部变量的特点,(1)局部变量只能在同一个VI中使用,其生存期与它所在的VI模块密切相关,VI停止运行,在此VI内定义的局部变量自动消失。 (2)局部变量必须依附在一个前面板对象上。一个前面板对象可以建立多个局部变量,但一个局部变量只能有一个端点与其对应。 (3)局部变量就是其相应前面板对象的一个数据拷贝,要占用一定的内存。,5.3.2 全局变量,全局变量:可在不同 VI 之间进行数据传递 全局变量是内置的LabVIEW对象。LabVIEW中的全局变量是以独立的VI文件形式存在的。 创建全局变量时,LabVIEW将自动创建一个前面板但无程序框图的特殊全局VI。向该全局VI的前面板添加输入控件和显示控件可定义其中所含全局变量的数据类型。这个VI文件只有前面板,没有程序框图,不能进行编程。 通过全局变量可以在不同的VI之间进行数据交换,一个全局变量的VI文件中可以包含多个不同数据类型的全局变量。,1. 创建全局变量,(1)新建一个VI,从函数选板的结构子选板中选择一个全局变量,将其放置在程序框图中 (2)使用操作工具双击全局变量节点,会自动打开全局变量VI的前面板,然后在前面板上放置所需的控制或显示对象 (3)保存全局变量文件。方法是在主菜单中选择【文件】【保存】。然后关闭全局变量的前面板窗口。 (4)使用操作工具单击第一步所创建的全局变量图标,或在其右击弹出快捷菜单中选择【选择项】,弹出的子菜单列出了全局变量所包含的所有对象的名称,根据需要选择相应的对象。,2. 全局变量的应用举例,调用方法 : (1)在
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2023年度计算机操作员题库及参考答案详解【研优卷】
- 2024主管护师(中级)模拟试题及完整答案详解【夺冠】
- 自考专业(金融)题库检测试题打印附参考答案详解(典型题)
- 高校教师资格证之《高等教育法规》综合检测题型汇编含答案详解(新)
- 中班数学教案《10以内数的守恒》反思
- 2025年天然气水合物(可燃冰)开采技术深海地质风险防控与安全风险评价体系研究报告
- 2025年城市轨交站点交通组织优化与风险预防与控制报告
- 养老院工作计划
- 黑吉辽蒙2026届高三上学期9月开学联考政治试卷(含答案)
- 车辆租赁协议模板
- 2025年人社局编外考试题库及答案
- 木制品厂安全生产培训课件
- 乡镇人大主席“干在实处、走在前列”学习讨论发言材料
- 电工四级考试理论题库及答案
- 世纪英才教程课件
- 婴幼儿发展引导员技能竞赛考试题库(含答案)
- 小学生航空航天知识题库及答案
- 统编版八年级上册道德与法治第三课 共建网络美好家园 课件
- 【里斯】年轻一代新能源汽车消费洞察与预测 -新物种 新理念 新趋势(2024-2025)
- 企业数据安全管理制度与操作规程
- 2025年合肥市公安局第一批招聘430名警务辅助人员笔试模拟试题带答案详解
评论
0/150
提交评论