虚拟仪器及LabVIEW编程结构第2讲_第1页
虚拟仪器及LabVIEW编程结构第2讲_第2页
虚拟仪器及LabVIEW编程结构第2讲_第3页
虚拟仪器及LabVIEW编程结构第2讲_第4页
虚拟仪器及LabVIEW编程结构第2讲_第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选板-编程-结构本讲内容 循环结构 条件结构 顺序结构 公式节点 事件结构循环结构 - While循环结构(While loop)1.

3、点击选中While循环2. 框图上的指针变为缩小的While循环的样子3. 按下鼠标左键,拖曳出虚线框4. 松开鼠标左键,While循环放置完毕循环结构 - While循环结构计数接线端/iteration terminal(输出接线端,输出子框图已执行次数)条件接线端/conditional terminal (输入接线端,真(T)时停止输入布尔值真真时结束循环) 子框图/循环体(放置循环代码) 流程:执行循环结构内的循环体代码,之后判断条件接线端的输入布尔值,决定是否继续循环(先执行,后判断循环体代码至少执行1次) 条件接线端默认为“真(T)时停止”,可配置为“真(T)时继续”循环结构 -

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

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

6、02,1提取数组元素插入数组元素循环结构 - 自动索引建立数组的步骤:添加数组框架(常量或控件)向框架添加简单数据类型的常量或控件(确定数组元素类型,此时数组仍为空)1.直接编辑数组,添加数组元素(数组包含元素,不再为空)循环结构 - 自动索引 自动索引:循环结构访问数组元素或者构建新数组的工具 设置输入和输出隧道为打开或关闭自动索引: 打开自动索引时,输入隧道每次循环提取一个数组元素,输出隧道每次循环生成一个数组元素( For循环默认打开索引,While循环默认关闭索引)循环结构 - 自动索引例2:一维数组各个元素乘以2,建立新数组整型一维数组整型标量一维数组常量一维数组输出显示控件接线端此

7、处For循环执行次数由打开自动索引功能的输入隧道上输入的一维数组元素个数决定!循环结构 - 移位寄存器(Shift register) 移位寄存器:从一次循环向下一次循环传递数据:初值循环开始前第一次循环之后某次循环最后一次循环终值初值新值新值新值前一新值前一新值左接线端添加更多元素,保存之前多次循环的值(例:求移动平均值)循环结构 - 移位寄存器 区分:多个移位寄存器 同一个移位寄存器多个左端元素子框图代码子框图代码寄存器1.前一次值寄存器2.前一次值寄存器1.新值寄存器2.新值寄存器1.前一次值寄存器1.前二次值寄存器1.新值2个移位寄存器1个移位寄存器,2个左端元素本讲内容 循环结构 条

8、件结构 顺序结构 公式节点 事件结构条件结构(Case structure) 功能:包含多个子框图/分支;根据选择器接线端的值,决定执行哪个子框图/分支: 接线端可以是布尔、字符串、整型或枚举类型,默认为布尔型,有“真”、“假”两个子框图/分支,多个分支层叠放置选择器接线端 选择器标签 递增箭头递减箭头“真”分支对应的子框图条件结构 使用要点:要么在选择器标签中列出所有可能的情况,要么必须给出一种默认(缺省)情况 选择器接线端接入布尔类型时,只有两种可能;接入整型和字符串时,有无数种可能情况。对于整型,可使用范围和列表:?=”.“表示范围,”,“表示列表条件结构内外数据的交换 输入隧道(包括选

9、择器接线端)的值在每个分支中都可以使用 必须在每个分支中都为输出隧道接入一个值,除非打开”未连接时使用默认“选项:有分支未连入值(无法运行无法运行)所有分支都连入值(可以运行)打开了”未连接时使用默认“选项(可以运行)条件结构例3:求平方根真真分支假假分支-99999表示出错循环和条件结构应用示例例4:求数组最大值和对应索引已扫查最大值数组索引值输入数组对应索引值循环和条件结构应用示例例4:求数组最大值和对应索引循环和条件结构应用示例输入数组例5:对数组元素排序(bubble sort)第一趟结果第1趟:第1、2个元素中较大的放在第2位置,第2、3元素中较大的放在第3位置最大元素到达最后的位置

10、,之后再对前面9个元素排序循环和条件结构应用示例例5:对数组元素排序(bubble sort)每一趟将余下元素中最大元素沉底输入待排序数组循环和条件结构应用示例例5:对数组元素排序(bubble sort)临时数组(调试用,已排好一部分)排序结果数组假假分支放慢执行速度本讲内容 循环结构 条件结构 顺序结构 公式节点 事件结构顺序结构(Sequence structure) 基于数据流(dataflow)的图形化编程机制,只要求函数/节点在求解前输入参数准备好,没有对多个输入参数和数据的求解顺序作要求,因而可认为并行计算求解: 框图中的两段无关联代码,默认并行运行 数据流编程天生是并行的,执行

11、效率高,但有时希望能够控制代码的执行顺序输入端子输入端子输出端子输出端子顺序结构 功能:包含多个帧(frame),按序号从小到大顺序执行各帧中的子框图 两种类型:(1) 层叠(stacked)的顺序结构只有1帧时子框图第0帧层叠的顺序结构(有2帧时)第0帧(其他帧不可见)帧序号标签 递增箭头递减箭头子框图顺序结构 (2) 平铺(flat)的顺序结构平铺的顺序结构(有2帧时)第0帧第1帧只有1帧时子框图第0帧比较:层叠顺序结构节约空间,不够直观;平铺顺序结构与其相反。(层叠)顺序结构的局部变量 在层叠顺序结构某帧向其后的帧传递数据例6:统计一段代码执行时间第0帧第1帧第2帧向局部变量输入数据(毫

12、秒计数器的计数值)延时3秒(可放入任何需要统计执行时间的代码)计算时间计数器两次调用之间的差值,并转化为秒右键点击边框,添右键点击边框,添加顺序局部变量加顺序局部变量两种顺序结构的转化 两种顺序结构之间可以直接相互转化(边框弹出快捷菜单,有相应选项)与前例对应的平铺顺序结构实现方案第0帧第1帧第2帧平铺的顺序结构没有局部变量,帧之间的数据传递直接用穿过帧壁的连线实现本讲内容 循环结构 条件结构 顺序结构 公式节点 事件结构公式节点(Formula node) 采用与文本编程语言(C语言)相似的语法,实现较复杂/繁琐的算法 在边框上添加输入、输出接线端,接线端标签与代码中变量名一致例7:摄氏度和

13、华氏度转化程序输入接线端(细边框)输出接线端(粗边框)本讲内容 循环结构 条件结构 顺序结构 公式节点 事件结构事件结构(Event structure)什么是事件(event)?程序所关注的状态变化,或发生的事情按下前面板按钮数值控件值变化鼠标指针进入窗口按下了某个键盘按键事件驱动(event-driven)的编程机制由事件决定程序执行流程例如:MS Word程序:鼠标选择菜单项,按下键盘按键事件结构 无事件,等待按钮A值改变处理代码鼠标进入窗口处理代码超时处理代码事件队列,先进先出继续处理下一事件超时超时按钮A值改变处理代码鼠标进入窗口处理代码超时处理代码超时处理代码发生(已注册)事件,进

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

15、编辑事件“对话框配置所处理的事件:常用事件: 按钮按下(值改变) 选择菜单项 一段时间无事件发生(超时事件)实际上很复杂,通过“值改变”的处理进行简化事件结构例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

提交评论