虚拟仪器及LabVIEW编程结构第2讲.ppt_第1页
虚拟仪器及LabVIEW编程结构第2讲.ppt_第2页
虚拟仪器及LabVIEW编程结构第2讲.ppt_第3页
虚拟仪器及LabVIEW编程结构第2讲.ppt_第4页
虚拟仪器及LabVIEW编程结构第2讲.ppt_第5页
已阅读5页,还剩44页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第2讲编程结构,LabVIEW编程及虚拟仪器设计,上一讲内容回顾,虚拟仪器使用可定制的软件和模块化测量硬件,建立用户自定义的测量和测试系统;虚拟仪器与传统仪器的比较:灵活,成本低 硬件平台(PCI接口的数据采集卡+计算机)和软件开发环境(LabVIEW图形化编程方式),PCI-MIO-16E-4 / PCI-6040E,上一讲内容回顾,LabVIEW简介:前面板窗口和程序框图窗口;输入控件、常量和输出显示控件;数据流的编程机制,输入控件 (数值类型),输出显示控件 (数值类型),“A”和“B”的接线端,“C”的接线端,“加”和“除”函数,数值常量 (运行时不可修改),上一讲内容回顾,上一讲内容

2、回顾,基本数据类型,上一讲内容回顾,图标和连线板用于建立子VI 图标用途:当前VI作为子VI被调用时,在上层VI框图上的图示 连线板用途:当前VI作为子VI被调用时,传入参数和返回计算结果,图标,连线板,上一讲内容回顾,建立子VI: 建立VI,编写代码实现其功能 编辑图标(可选) 连线工具连接连线板格子和输入、输出控件(定义输入、输出参数) 在上层VI的程序框图窗口调用定义好的子VI(Select a VI),本讲内容,循环结构 条件结构 顺序结构 公式节点 事件结构,路径:程序框图,Functions选板-编程-结构,本讲内容,循环结构 条件结构 顺序结构 公式节点 事件结构,循环结构 -

3、While循环结构(While loop),1. 点击选中While循环,循环结构 - While循环结构,计数接线端/iteration terminal (输出接线端,输出子框图已执行次数),条件接线端/conditional terminal (输入接线端,真(T)时停止输入布尔值真时结束循环),子框图/循环体 (放置循环代码),流程:执行循环结构内的循环体代码,之后判断条件接线端的输入布尔值,决定是否继续循环(先执行,后判断循环体代码至少执行1次) 条件接线端默认为“真(T)时停止”,可配置为“真(T)时继续”,循环结构 - While循环结构,例1:不断生成和显示随机数,随机数生成速

4、度可调,编程-定时子选板,编程-数值子选板,功能:按照预设次数执行子框图 流程:判断执行次数是否达到总数接线端接入的数值,如未达到则执行循环结构内的子框图代码(先判断,后执行子框图代码可能执行0次),循环结构 - For循环结构(For loop),计数接线端/iteration terminal (输出接线端,输出子框图已执行次数),总数接线端/count terminal (输入接线端,设置循环执行次数),子框图/循环体 (放置循环代码),循环结构 - 循环结构内外数据的交换,循环内部代码,输入隧道(tunnel),输出隧道,注意:根据数据流机制,仅在循环运行前读取一次输入隧道的值,仅在循

5、环运行结束后从输出隧道输出一次值,循环结构 - 循环结构内外数据的交换,正确:每次运行子框图都生成一个随机数并输出到波形图表中,错误:仅在循环执行结束后,输出最后生成的一个随机数,?,循环结构 - 自动索引(Auto-indexing),数组:相同类型数据的组合 数组常量,数组输入控件,数组输出显示控件: 典型数组操作函数:,0,1,2,元素索引:,一维数组常量(整型),一维数组输入控件(双精度型),0,1,元素索引:,二维数组输出显示控件(布尔型),元素索引:,0,0,2,1,循环结构 - 自动索引,建立数组的步骤: 添加数组框架(常量或控件) 向框架添加简单数据类型的常量或控件(确定数组元

6、素类型,此时数组仍为空) 直接编辑数组,添加数组元素(数组包含元素,不再为空),循环结构 - 自动索引,自动索引:循环结构访问数组元素或者构建新数组的工具 设置输入和输出隧道为打开或关闭自动索引: 打开自动索引时,输入隧道每次循环提取一个数组元素,输出隧道每次循环生成一个数组元素( For循环默认打开索引,While循环默认关闭索引),循环结构 - 自动索引,例2:一维数组各个元素乘以2,建立新数组,整型一维数组,整型标量,一维数组常量,一维数组输出显示控件接线端,此处For循环执行次数由打开自动索引功能的输入隧道上输入的一维数组元素个数决定!,循环结构 - 移位寄存器(Shift regis

7、ter),移位寄存器:从一次循环向下一次循环传递数据:,循环开始前,第一次循环,之后某次循环,最后一次循环,左接线端添加更多元素,保存之前多次循环的值(例:求移动平均值),循环结构 - 移位寄存器,区分:多个移位寄存器 同一个移位寄存器多个左端元素,2个移位寄存器,1个移位寄存器,2个左端元素,本讲内容,循环结构 条件结构 顺序结构 公式节点 事件结构,条件结构(Case structure),功能:包含多个子框图/分支;根据选择器接线端的值,决定执行哪个子框图/分支: 接线端可以是布尔、字符串、整型或枚举类型,默认为布尔型,有“真”、“假”两个子框图/分支,多个分支层叠放置,选择器接线端,选

8、择器标签,递增箭头,递减箭头,“真”分支对应的子框图,条件结构,使用要点:要么在选择器标签中列出所有可能的情况,要么必须给出一种默认(缺省)情况 选择器接线端接入布尔类型时,只有两种可能;接入整型和字符串时,有无数种可能情况。对于整型,可使用范围和列表:,? =,”.“表示范围,”,“表示列表,条件结构内外数据的交换,输入隧道(包括选择器接线端)的值在每个分支中都可以使用 必须在每个分支中都为输出隧道接入一个值,除非打开”未连接时使用默认“选项:,有分支未连入值 (无法运行),所有分支都连入值 (可以运行),打开了”未连接时使用默认“选项 (可以运行),条件结构,例3:求平方根,真分支,假分支

9、,-99999表示出错,循环和条件结构应用示例,例4:求数组最大值和对应索引,已扫查最大值,数组索引值,输入数组,对应索引值,循环和条件结构应用示例,例4:求数组最大值和对应索引,循环和条件结构应用示例,输入数组,例5:对数组元素排序(bubble sort),第一趟结果,第1趟:第1、2个元素中较大的放在第2位置,第2、3元素中较大的放在第3位置最大元素到达最后的位置,之后再对前面9个元素排序,循环和条件结构应用示例,例5:对数组元素排序(bubble sort),每一趟将余下元素中最大元素沉底,输入待排序数组,循环和条件结构应用示例,例5:对数组元素排序(bubble sort),临时数组

10、 (调试用,已排好一部分),排序结果数组,假分支,放慢执行速度,本讲内容,循环结构 条件结构 顺序结构 公式节点 事件结构,顺序结构(Sequence structure),基于数据流(dataflow)的图形化编程机制,只要求函数/节点在求解前输入参数准备好,没有对多个输入参数和数据的求解顺序作要求,因而可认为并行计算求解: 框图中的两段无关联代码,默认并行运行 数据流编程天生是并行的,执行效率高,但有时希望能够控制代码的执行顺序,顺序结构,功能:包含多个帧(frame),按序号从小到大顺序执行各帧中的子框图 两种类型:(1) 层叠(stacked)的顺序结构,顺序结构,(2) 平铺(fla

11、t)的顺序结构,比较:层叠顺序结构节约空间,不够直观;平铺顺序结构与其相反。,(层叠)顺序结构的局部变量,在层叠顺序结构某帧向其后的帧传递数据 例6:统计一段代码执行时间,第0帧,第1帧,第2帧,向局部变量输入数据(毫秒计数器的计数值),延时3秒 (可放入任何需要统计执行时间的代码),计算时间计数器两次调用之间的差值,并转化为秒,右键点击边框,添加顺序局部变量,两种顺序结构的转化,两种顺序结构之间可以直接相互转化(边框弹出快捷菜单,有相应选项) 与前例对应的平铺顺序结构实现方案,第0帧,第1帧,第2帧,平铺的顺序结构没有局部变量,帧之间的数据传递直接用穿过帧壁的连线实现,本讲内容,循环结构 条

12、件结构 顺序结构 公式节点 事件结构,公式节点(Formula node),采用与文本编程语言(C语言)相似的语法,实现较复杂/繁琐的算法 在边框上添加输入、输出接线端,接线端标签与代码中变量名一致 例7:摄氏度和华氏度转化程序,输入接线端(细边框),输出接线端(粗边框),本讲内容,循环结构 条件结构 顺序结构 公式节点 事件结构,事件结构(Event structure),什么是事件(event)? 程序所关注的状态变化,或发生的事情 按下前面板按钮 数值控件值变化 鼠标指针进入窗口 按下了某个键盘按键 事件驱动(event-driven)的编程机制 由事件决定程序执行流程 例如:MS Wo

13、rd程序:鼠标选择菜单项,按下键盘按键,事件结构,无事件,等待,按钮A值改变处理代码,鼠标进入窗口处理代码,超时处理代码,事件队列, 先进先出,头,尾,事件结构,功能:包含一个或多个子框图,当用户操作产生(已注册)事件时执行对应子框图 流程:执行到事件结构时进入休眠等待状态,直到发生已配置事件后执行对应分支,之后结束事件结构的执行,超时接线端 (设置超时事件的发生时间间隔),事件数据节点 (包含事件信息),选择器标签,对应事件的子框图,以图形化方式响应和处理用户的操作,与Windows系统的事件处理方式相类似;,事件结构,事件结构通常配合While循环使用,实现“休眠 处理事件 休眠 处理事件

14、”的循环 通过”编辑事件“对话框配置所处理的事件:,常用事件: 按钮按下(值改变) 选择菜单项 一段时间无事件发生(超时事件) ,事件结构,例8:响应按钮按下事件,置于While循环内的事件结构 (只显示处理”确定按钮“:值改变的事件分支),处理”停止“:值改变的事件分支,”确定按钮“:值改变,按下”确定按钮“时 弹出对话框,练习,程序框图和进一步说明见下页,在列表中显示事件(事件源 : 事件类型),事件:值改变和鼠标进入,事件:值改变,事件:值改变和键按下,事件:值改变,超时事件,此处未列出,习题1:采用循环结构,求整数1,2,3,100之和 习题2:通过所给示例程序(跟踪事件.vi),理解事件的含义和事件结构的工作方式,练习,借用顺序结构和局部变量,初始化字符串控件为空,在事件端子“类型”上弹出快捷

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论