版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第第2 2章章 程序结构程序结构2.1 循环结构循环结构 2.2 分支结构分支结构 2.3 顺序结构顺序结构 2.4 公式节点公式节点 习题习题2 2.1 循循 环环 结结 构构在LabVIEW中有While循环和For循环两种循环结构。二者的区别是:While循环只要满足循环退出的条件则退出相应的循环,否则变成死循环;而For循环是预先确定循环次数,当循环体运行完指定的次数后自动退出循环。u While循环循环While循环是LabVIEW最基本的结构之一。当不需要指定循环次数时,使用While循环。图2-1(a)所示为函数执行控制子模板,While循环是第一个模块;图2-1(b)所示为函数
2、编程结构子模板,While循环在第二行的第二个模块。二者的不同之处在于,执行控制模板中的While循环的Loop Condition数据端子已经事先连接了布尔型变量,用于控制何时退出循环。 While循环的位置While循环有两个固定的数据端子,分别是重复端子(Loop Iteration)和条件端子(Loop Condition)。重复端子表示当前循环的次数,初始值是0。条件端子连接一个布尔型变量,指示循环退出或循环继续的条件。具体的循环继续的条件有两种,即Stop if True 和Continue if True ,具体采用哪种方式可在条件端子上弹出的快捷菜单里指定,也可以使用操作工具在
3、端子上单击鼠标,以切换两种不同的条件。条件不同,端子的图标也不同,默认的条件是Stop if True。 【例2.1】 使用While循环每0.5秒显示一个随机数和循环次数,最后波形显示所有随机数序列。 VI的前面板和程序框图如图2-2所示,While循环条件端子与布尔开关对象相连,只要开关状态为“关”,程序重复执行,直到条件端子为“开”,停止循环。While循环框内放置一个随机数对象和Time Delay Express VI,每0.5秒循环一次,在前面板显示随机数和循环次数,最后利用While循环的自动索引功能将随机数序列通过波形显示出来,可以看到,波形的横坐标表示循环次数,当循环次数为1
4、15时,随机数加1是1.38577。 例2.1的前面板和程序框图u使用移位寄存器使用移位寄存器LabVIEW引入移位寄存器(Shift Register)的概念,可以在循环体的循环之间传递数据,其功能是将上一次循环的值传给下一次循环。 添加移位寄存器的方法是:在循环结构的左边或右边框上弹出快捷菜单,选择菜单项Add Shift Register,添加一个移位寄存器。 图2-5 移位寄存器中数据的操作流程【例2.2】 利用移位寄存器显示多个数据,理解数据在移位寄存器中的工作流程。VI的前面板和程序框图如图2-6所示,在While循环中使用移位寄存器访问前三次的循环值。Ni表示循环次数,此值在下一
5、次循环开始传给左端子。Ni-1表示前一次循环的值,Ni-2表示前两次循环的值,Ni-3表示前三次循环的值。由于While循环重复端子的初始值为0,步长为1,因此前面板数字指示器按照逐渐递增的顺序依次显示。图2-6 例2.2的前面板和程序框图u For循环循环 For循环用于将某段程序循环执行指定的次数。可以通过两种方法指定循环次数,一种是直接给定,一种是通过输入数组的大小给定 例2.3: 利用For循环计算100个随机数的最大值。VI的前面板和程序框图如图2-9所示。随机发生的数和前面循环得到的最大值依次比较,循环100次,比较得到01之间的最大值。在前面板显示100个随机数形成的曲线图和最大
6、值0.99123。图2-9 例2.3的前面板和程序框图u 反馈节点反馈节点反馈节点(Feedback Node)用于将子VI、函数或一组子VI和函数的输出连接到同一个子VI、函数或组的输入上,即创建反馈路径。反馈节点只能用在While循环或For循环中,是为循环结构设置的一种传递数据的机制。 移位寄存器和反馈节点之间的转换很容易。图2-10 移位寄存器和反馈节点转换 (a)(b)2.2 分分 支支 结结 构构分支结构(Case Structure)是一种多分支程序控制结构,类似于文本编程语言中的IfThenElse语句。图2-13 不同类型的分支结构 等价于等价于if.else.语句的语句的C
7、ase结构结构If(a%2=0)b=a+2;elseb=a+1;end 等价于等价于switch语句的语句的Case结构结构switch (fruit)case apple: price=9; case banana: price=10; case pear: price=8; default: price=0;在LabVIEW的分支结构中,如果结构不能遍历所有可能的条件或情况,就必须设置一个默认的情况用来处理超出条件选项范围的情况。设置默认Case分支的方法是:当显示默认子Case框图时,在分支结构边框上弹出快捷菜单中选择Make This Default Case项。对于用户定义的默认分支
8、,将在Case结构顶部的选择器标签中显示“Default”字样。 2.2.2 输入和输出数据输入和输出数据向Case结构内引入连线,或从Case结构向外引出连线时,会在边框上生成隧道。输入隧道的数据对所有分支都可以使用。分支不一定要使用输入数据或提供输出数据,但如果任何一个分支提供了输出数据,则所有的分支也必须提供输出数据,否则会导致代码错误,程序无法运行。此时,输出隧道的图标是空心的,表示部分分支中没有接入输入值。只有每个分支的输出隧道都连接数据后,图标才变成实心,程序才能正常运行。如果不想为每个分支都明确指定输出隧道的输入值,可以让LabVIEW为没有接入隧道输入值的分支接入隧道的默认数据
9、类型,方法是在输出隧道上右键弹出快捷菜单,选择Use Default If Unwired,如图2-16所示。图2-16 在输出隧道没有接入数据的分支采用默认值【例2.4】 求一个数的平方根,若该数大于或等于0,则计算其平方根,并输出结果;若该数小于0,则让系统产生蜂鸣。本例中使用布尔型Case结构,由前面板数字控制器输入数字,若该数大于或等于0,则由数字显示器显示该数的平方根,否则发出蜂鸣声。VI的前面板和程序框图如图2-17所示。VI执行TRUE分支或FALSE分支,当输入的数据大于或等于0时,VI执行TRUE分支并将计算结果显示到前面板;当输入的数据小于0时,系统发出蜂鸣声。从图上看到输
10、入“-5”,输出的是“0”,这是因为对于FALSE分支的输出端选择了Use Default If Unwire。另外,Beep.vi在vi.libplatformsystem.lib库中。图2-17 例2.4的前面板和程序框图2.3 顺顺 序序 结结 构构顺序结构(Sequence Structure)顺序地执行每个子框架,包括堆叠的顺序结构(Stacked Sequence Structure)和平铺的顺序结构(Flat Sequence Structure)两类顺序结构。平铺的顺序结构位于FunctionsExecution Control子模板上。两种顺序结构都能从FunctionsAl
11、l FunctionsStructures子模板上找到。图2-21 堆叠顺序结构 图2-21 平铺顺序结构 【例2.5】 将随机产生的数值与给定数值比较,计算当两数相等时所需的时间。该例是顺序结构的典型应用。第一帧确定程序运行前的系统时间;第二帧运行程序;第三帧确定程序运行结束后的系统时间;最后两时间相减得到程序运行的时间。采用堆叠的顺序结构,VI的前面板和程序框图如图2-22所示。帧0和帧2中采用Tick Count(ms)函数,该函数位于Time & Dialog子模版上,用于返回当前系统时间,以毫秒为单位。采用局部变量将程序运行前的时间传递给帧2与当前时间相减的差值就是随机数与给
12、定数据相等时所花费的时间,结果除以1000,将时间单位转换为微秒,在前面板显示。图2-22 例2.5的前面板和程序框图【例2.6】 利用平铺的顺序结构实现例2.5的功能。框图程序如图2-23所示,平铺的顺序结构没有局部变量,需要向后续的帧传递数据时,只需要将数据直接连接到后续帧中即可。2.4 公公 式式 节节 点点 通过公式节点,用户不仅可以实现复杂的数学公式,还能通过文本编程写一些基本的逻辑语句,如ifelse, case, while循环之类的语句。 y=35cos bsinaaa betg ba ()() () 公式节点中可以包含任意数量的公式公式节点中可以包含任意数量的公式 文本编程语
13、言的实现文本编程语言的实现基于公式节点的基于公式节点的CRC16算法的实现算法的实现 【例2.7】 利用公式节点完成下面两个等式的运算,并将结果用曲线显示出来。(1) y1=2x2+3x+1,(2) y2=a*x+b,其中,x的取值为020。VI的前面板和程序框图如图2-27所示。两个等式用一个公式节点完成,输入不同的a和b,运行程序,图中显示的是当a=2,b=3时的运算结果。当For循环结束时,在循环框右边界积累了y1和y2两组值,经过Build Array到曲线显示。注意注意:在公式节点框架中出现的所有变量,必须有一个相对应的输入端口和输出端口,否则程序运行时会报错。图2-27 例2.7的前面板和程序
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 债务合同协议范本
- 公司收购的协议范本
- 年终总结报告分享资料
- 全国赛课一等奖初中统编版七年级道德与法治上册《在劳动中创造人生价值》课件
- (参考)酒瓶项目立项报告
- 2023年大功率多功能电子式电度表项目融资计划书
- 2023年工业涂料水性色浆项目融资计划书
- ASP模拟考试题及答案
- 养老院老人请假外出审批制度
- 《标准成本差异分析》课件
- DB14 1929-2019 锅炉大气污染物排放标准
- JJF 1965-2022 锡膏厚度测量仪校准规范
- 装饰装修工程重点、难点分析及解决方案
- TSG11-2020 锅炉安全技术规程
- 2022年《导游业务》期末试卷及答案
- 高考生物生态大题习题20题版含答案及解析
- 防开裂、防渗漏专项施工方案
- T∕CAAA 053-2020 鸭饲养标准
- 中建管理岗位竞聘ppt模板课件
- 室外消防及给水管道施工方案
- 最新肿瘤科-胃癌中医临床路径(试行版)
评论
0/150
提交评论