欢迎来到163文库! | 帮助中心 精品课件PPT、教案、教学设计、试题试卷、教学素材分享与下载!
163文库
全部分类
  • 办公、行业>
  • 幼教>
  • 小学>
  • 初中>
  • 高中>
  • 中职>
  • 大学>
  • 各类题库>
  • ImageVerifierCode 换一换
    首页 163文库 > 资源分类 > PPT文档下载
    分享到微信 分享到微博 分享到QQ空间

    LabVIEW虚拟仪器设计教程第5章-程序结构课件.ppt

    • 文档编号:2921346       资源大小:1.72MB        全文页数:49页
    • 资源格式: PPT        下载积分:25文币     交易提醒:下载本文档,25文币将自动转入上传用户(三亚风情)的账号。
    微信登录下载
    快捷注册下载 游客一键下载
    账号登录下载
    二维码
    微信扫一扫登录
    下载资源需要25文币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    优惠套餐(点此详情)
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、试题类文档,标题没说有答案的,则无答案。带答案试题资料的主观题可能无答案。PPT文档的音视频可能无法播放。请谨慎下单,否则不予退换。
    3、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者搜狗浏览器、谷歌浏览器下载即可。。

    LabVIEW虚拟仪器设计教程第5章-程序结构课件.ppt

    1、第第5 5章章 程序结构程序结构程序结构对任何一种计算机编程语言来说都是十分重要的,它控制整个程序结构对任何一种计算机编程语言来说都是十分重要的,它控制整个程序语言的执行过程,一个好的程序结构,可以大大提高程序的执行效率。程序语言的执行过程,一个好的程序结构,可以大大提高程序的执行效率。LabVIEW作为一种图形化的高级程序开发语言,执行的是数据流驱动机制,作为一种图形化的高级程序开发语言,执行的是数据流驱动机制,在程序结构方面除支持循环、顺序、条件等通用编程语言支持的结构外,还在程序结构方面除支持循环、顺序、条件等通用编程语言支持的结构外,还包含一些特殊的程序结构,如事件结构、使能结构、公式

    2、节点等等。包含一些特殊的程序结构,如事件结构、使能结构、公式节点等等。由于由于LabVIEW是图形化编程语言,它的代码以图形形式表现,因此各种是图形化编程语言,它的代码以图形形式表现,因此各种结构的实现也是图形化的。每种结构都含有一个可调整大小的清晰边框,用结构的实现也是图形化的。每种结构都含有一个可调整大小的清晰边框,用于包围根据结构规则执行的程序框图部分。结构边框中的程序框图部分被称于包围根据结构规则执行的程序框图部分。结构边框中的程序框图部分被称为子程序框图,从结构外接收数据和将数据输出结构的接线端称为隧道,隧为子程序框图,从结构外接收数据和将数据输出结构的接线端称为隧道,隧道是结构边框

    3、上的连接点。道是结构边框上的连接点。 5.1 顺序结构顺序结构5.1.1 LabVIEW程序数据流编程程序数据流编程 Result=(A+B)/C的控制流编程和数据流编程的流程图的控制流编程和数据流编程的流程图 LabVIEW作为一种图形化的编程语言,有其独特的程序执行顺序作为一种图形化的编程语言,有其独特的程序执行顺序数据流执数据流执行方式(行方式()。节点)。节点在执行时产生输出数据并将该数据传送给数据流路径中的下一个节点。数据流经节在执行时产生输出数据并将该数据传送给数据流路径中的下一个节点。数据流经节点的动作决定了程序框图上点的动作决定了程序框图上VI和函数的执行顺序。和函数的执行顺序

    4、。 5.1.2 顺序结构的组成顺序结构的组成 在在LabVIEW中,顺序结构一般有多个框架组成,从框架中,顺序结构一般有多个框架组成,从框架0到框架到框架n,首先执行框架,首先执行框架0中的程序,然后执行框架中的程序,然后执行框架1中的程序中的程序,这样依次执行下去。,这样依次执行下去。LabVIEW的顺序结构的顺序结构看起来就像放映机中的电影胶片按照顺序一副图像接一副图像的放映,而看起来就像放映机中的电影胶片按照顺序一副图像接一副图像的放映,而LabVIEW顺顺序结构是按照顺序一帧(框架)接一帧顺序执行的。序结构是按照顺序一帧(框架)接一帧顺序执行的。1层叠式顺序结构层叠式顺序结构 2平铺式

    5、顺序结构平铺式顺序结构 层叠式顺序结构的优点是节省程序框图窗口空间,但用户在某一时刻只能看到层叠式顺序结构的优点是节省程序框图窗口空间,但用户在某一时刻只能看到一帧代码,这会给程序代码的阅读和理解带来一定的难度。一帧代码,这会给程序代码的阅读和理解带来一定的难度。平铺式顺序结构比较直观,方便代码的阅读,但当它占用的窗口空间较大。平铺式顺序结构比较直观,方便代码的阅读,但当它占用的窗口空间较大。两种顺序结构可以通过两种顺序结构可以通过 “替换为平铺式替换为平铺式/层叠式顺序层叠式顺序”菜单选项可以相互转换,菜单选项可以相互转换, 5.1.3 顺序结构中数据传递顺序结构中数据传递 在顺序结构的编程

    6、过程中,在不同的帧之间可能需要传递数据,顺序结构外在顺序结构的编程过程中,在不同的帧之间可能需要传递数据,顺序结构外部和内部也可能存在数据传递。顺序结构有层叠式和平铺式两种结构,这两种结部和内部也可能存在数据传递。顺序结构有层叠式和平铺式两种结构,这两种结构中不同帧之间的数据传递方式是不同的,但这两种结构内部与外部之间的数据构中不同帧之间的数据传递方式是不同的,但这两种结构内部与外部之间的数据传递方式是相同的。传递方式是相同的。 1层叠式顺序结构中的数据传递层叠式顺序结构中的数据传递 层叠式顺序结构通过局部变量的机制来实现不同帧之间的数据传递的。在层叠层叠式顺序结构通过局部变量的机制来实现不同

    7、帧之间的数据传递的。在层叠式顺序结构的边框上单击右键弹出快捷菜单,选择式顺序结构的边框上单击右键弹出快捷菜单,选择“添加顺序局部变量添加顺序局部变量”选项,在选项,在顺序结构边框上出现一个小方块(所有帧程序框的同一位置都有),表示添加了一顺序结构边框上出现一个小方块(所有帧程序框的同一位置都有),表示添加了一个局部变量。小方块可以沿框四周移动,颜色随传输数据类型的系统颜色发生变化。个局部变量。小方块可以沿框四周移动,颜色随传输数据类型的系统颜色发生变化。2平铺式顺序结构中的数据传递平铺式顺序结构中的数据传递 3顺序结构外部与内部的数据交换顺序结构外部与内部的数据交换顺序结构外部与内部之间的数据

    8、传递是通过在结构边框上建立隧道来实现的。顺序结构外部与内部之间的数据传递是通过在结构边框上建立隧道来实现的。隧道有输入隧道和输出隧道,输入隧道用于从外部向内部传递数据,输出隧道用于隧道有输入隧道和输出隧道,输入隧道用于从外部向内部传递数据,输出隧道用于从内部向外部传递数据。从内部向外部传递数据。在顺序结构执行前,输入隧道上得到输入值,在执行结构的过程中,这个值保持不在顺序结构执行前,输入隧道上得到输入值,在执行结构的过程中,这个值保持不变,且每帧都能读取该值。变,且每帧都能读取该值。只能在某一帧中向输出隧道写入数据,如在超过一个帧中对同一输出隧道赋值,则只能在某一帧中向输出隧道写入数据,如在超

    9、过一个帧中对同一输出隧道赋值,则会引起多个数据源错误,输出隧道上的值只能在整个顺序结构执行完后才会输出。会引起多个数据源错误,输出隧道上的值只能在整个顺序结构执行完后才会输出。 5.1.4 顺序结构应用举例顺序结构应用举例本实例程序具有以下功能:输入一个本实例程序具有以下功能:输入一个0-10000的整数,的整数,测量计算机利用随机数产生器需要多长时间才能产生与之相测量计算机利用随机数产生器需要多长时间才能产生与之相等的数。在给定一个整数后,程序开始运行,记下开始运行等的数。在给定一个整数后,程序开始运行,记下开始运行时间并开始产生随机数,产生的随机数与给定的数值相比较,时间并开始产生随机数,

    10、产生的随机数与给定的数值相比较,当两者相等时,程序停止运行并记下程序停止运行时间,最当两者相等时,程序停止运行并记下程序停止运行时间,最后计算两时间差便得到题目需要计算的时间。由于需要用到后计算两时间差便得到题目需要计算的时间。由于需要用到前后两个时刻的差,即用到了先后次序,故可用顺序结构来前后两个时刻的差,即用到了先后次序,故可用顺序结构来解决此题。解决此题。 5.2 循环结构循环结构5.2.1 For循环循环 1For循环的构成循环的构成 for(i=0;iN;i+) 循环体循环体 最基本的最基本的For循环由循环由组成。组成。2For循环的执行过程循环的执行过程 For循环的执行流程:在

    11、开始执行前,从循环总数接线端子读入循环执行次数,循环的执行流程:在开始执行前,从循环总数接线端子读入循环执行次数,然后循环计数接线端子输出当前已经执行循环次数的数值(从然后循环计数接线端子输出当前已经执行循环次数的数值(从0开始),接下执行循开始),接下执行循环框架中的程序代码,循环框架中的程序执行完后,如果执行循环次数未达到设定环框架中的程序代码,循环框架中的程序执行完后,如果执行循环次数未达到设定次数,则继续执行,否则退出循环。次数,则继续执行,否则退出循环。 3For循环的执行中止循环的执行中止 在一些文本编程语言中,可以使用在一些文本编程语言中,可以使用goto或或exit语句使程序从

    12、循环体内跳转到循环体语句使程序从循环体内跳转到循环体外,从而中止循环的执行。而在外,从而中止循环的执行。而在LabVIEW早期版本,对早期版本,对For循环不提供中止循环的机循环不提供中止循环的机制,如果要实现这个功能,必须采用制,如果要实现这个功能,必须采用While循环。从循环。从 LabVIEW 8.5 开始,开始,For 循环增循环增加了条件接线端,同加了条件接线端,同While循环一样可在满足条件时停止循环。在循环一样可在满足条件时停止循环。在For循环结构边框单循环结构边框单击右键弹出快捷菜单,从快捷菜单中选择击右键弹出快捷菜单,从快捷菜单中选择“”。将停止循环的布尔数据。将停止循

    13、环的布尔数据(如布尔控件或比较函数的输出值)连至条件接线端,则可以通过条件接线端的输入(如布尔控件或比较函数的输出值)连至条件接线端,则可以通过条件接线端的输入中止循环的执行。在中止循环的执行。在For循环中使用条件接线端时,必须连接布尔数据或错误簇至条循环中使用条件接线端时,必须连接布尔数据或错误簇至条件接线端;连接数值到总数接线端或对输入数组建立自动索引。件接线端;连接数值到总数接线端或对输入数组建立自动索引。4并行并行For循环循环并行并行For循环为一个循环为一个For循环分配多个线程以实现并发执行一个循环分配多个线程以实现并发执行一个For循环,通过并行循环,通过并行For循环利用多

    14、个处理器可以提高循环利用多个处理器可以提高For循环的执行速度,特别是对于处理大量计算,能循环的执行速度,特别是对于处理大量计算,能大大提高执行效率。大大提高执行效率。右键单击右键单击For循环外框,在快捷菜单中选择循环外框,在快捷菜单中选择“配置循环并行配置循环并行”,打开,打开For循环并循环并行迭代对话框,启用并行循环。行迭代对话框,启用并行循环。5.2.2 While循环循环While循环是循环次数不固定的一种循环结构,类似于文本编程语言中的循环是循环次数不固定的一种循环结构,类似于文本编程语言中的Do循环或循环或Repeat-Until循环,循环,While循环执行子程序框图直到满足

    15、某个条件。循环执行子程序框图直到满足某个条件。 基本的基本的While循环由循环由、和和组成。组成。条件接线端是一个布尔变量,接入布尔值用于控制条件接线端是一个布尔变量,接入布尔值用于控制循环执行。条件接线端有两种使用状态:默认状态接线循环执行。条件接线端有两种使用状态:默认状态接线端图标为一个绿色方框包围的红色实心圆点,其含义为端图标为一个绿色方框包围的红色实心圆点,其含义为“”,表示当接入的布尔值为,表示当接入的布尔值为“真真(True)”时,循环停止,否则循环继续执行;在条件接线时,循环停止,否则循环继续执行;在条件接线端的右键快捷菜单中选择端的右键快捷菜单中选择“”,则切换,则切换到另

    16、外一种使用状态,接线端图标变为一个绿色方框包到另外一种使用状态,接线端图标变为一个绿色方框包围的带箭头的圆弧,表示当接入的布尔值为围的带箭头的圆弧,表示当接入的布尔值为“真真(True)”时,循环继续执行,否则循环停止。时,循环继续执行,否则循环停止。真(True)时停止真(True)时继续(1)“循环计数循环计数”接线端输出当前执行的循环的次数;接线端输出当前执行的循环的次数;(2)开始执行循环框架内的程序,程序执行完成后,循环计数器的值加)开始执行循环框架内的程序,程序执行完成后,循环计数器的值加1;(3)根据流入)根据流入“条件接线端条件接线端”的布尔型数据判断是否继续执行循环;的布尔型

    17、数据判断是否继续执行循环;(4)在)在While循环中,循环框架中的代码至少执行一次。循环中,循环框架中的代码至少执行一次。 5.2.3 循环结构外部与内部数据交换与自动索引循环结构外部与内部数据交换与自动索引 1循环结构外部与内部数据交换循环结构外部与内部数据交换循环结构(包括循环结构(包括For循环和循环和While循环)外部和内部之间的数据交换是通过循环)外部和内部之间的数据交换是通过来来进行的。进行的。直接将循环结构外部对象与内部对象用连线连接起来,这时,连线在循环结构边直接将循环结构外部对象与内部对象用连线连接起来,这时,连线在循环结构边框上将出现一个小方格,这就是实现结构内外数据交

    18、换的隧道,小方格的颜色代表了框上将出现一个小方格,这就是实现结构内外数据交换的隧道,小方格的颜色代表了流过其中的数据类型。流过其中的数据类型。 输入数值通过输入隧道传入循环中,输入数值通过输入隧道传入循环中,在每次循环时,这个数值与循环计在每次循环时,这个数值与循环计数端子输出循环计数值进行求和,数端子输出循环计数值进行求和,并在循环内部显示每次求和结果,并在循环内部显示每次求和结果,当求和结果等于输入数值的当求和结果等于输入数值的2倍时,倍时,循环停止,同时通过边框上的输出循环停止,同时通过边框上的输出隧道将最后结果传递到循环结构外隧道将最后结果传递到循环结构外进行输出显示。进行输出显示。循

    19、环的所有输入端子(输入隧道)都是在进入循环之前读取完毕的,循环开始之循环的所有输入端子(输入隧道)都是在进入循环之前读取完毕的,循环开始之后就不再读取输入端子值,通过输出隧道输出数据只有在循环完全退出后才输出。后就不再读取输入端子值,通过输出隧道输出数据只有在循环完全退出后才输出。 2自动索引自动索引 For循环和循环和While循环均具有一种特殊的循环均具有一种特殊的。当把一个数组连接到循环。当把一个数组连接到循环结构的边框上生成隧道后,可以选择是否打开自动索引功能。如果自动索引功能被打结构的边框上生成隧道后,可以选择是否打开自动索引功能。如果自动索引功能被打开,则数组将在每次循环中按顺序取

    20、出一个值,该值在原数组中的索引与当次循环的开,则数组将在每次循环中按顺序取出一个值,该值在原数组中的索引与当次循环的重复端子值相同,就是说数组在循环内部将会降低一维,比如二维数组变为一维数组,重复端子值相同,就是说数组在循环内部将会降低一维,比如二维数组变为一维数组,一维数组变为标量元素等。一维数组变为标量元素等。 自动索引默认打开,此时用户不需要为循环总数接线端自动索引默认打开,此时用户不需要为循环总数接线端N赋值来指定循环执行赋值来指定循环执行的次数,而会自动根据数组的大小决定循环执行的次数。如果用户硬要给的次数,而会自动根据数组的大小决定循环执行的次数。如果用户硬要给N指定一指定一个值,

    21、则循环按照个值,则循环按照N和数组确定的最小的执行次数执行。即如果数组有和数组确定的最小的执行次数执行。即如果数组有5个元素,指个元素,指定的定的N为为10,则之后循环次数为,则之后循环次数为5次。次。当循环结构输入隧道禁用自动索引功能后,循环执行次数由循环总数端子接入当循环结构输入隧道禁用自动索引功能后,循环执行次数由循环总数端子接入数据决定。数据决定。自动索引打开循环总数接线端子N没有接入数据,循环次数根据输入隧道接入的数组元素个数确定,循环次数为输入数组长度5,每次循环取出该数组的一个元素与循环计数值做求和运算,求和结果在输出隧道上累积生成数组,当循环结束后,在输出隧道上的累积生成的数组

    22、一次传递到输出数组中显示。 标量数据线执行1次循环,数组一次性完整输入循环框架内,各元素分别与循环计数值(循环一次为0)求和,执行完后一次性输出。 执行2次循环,循环执行前,数组一次性完整输入循环内,每次循环,输入数组中的各元素与循环计数值求和,循环执行完后,将最后一次循环执行结果输出。 数组数据线自动索引默认关闭。循环的执行次数受自动索引默认关闭。循环的执行次数受“条件接线端条件接线端”的输入决定,与是否启用的输入决定,与是否启用自动索引无关。自动索引无关。禁用自动索引:数组一次性整体输入循环内,每次循环数组与循环体其他数据整禁用自动索引:数组一次性整体输入循环内,每次循环数组与循环体其他数

    23、据整体进行运算,循环停止后输出。体进行运算,循环停止后输出。启用自动索引:数组按元素依次输入循环内,每次循环顺序取出一个元素,当数启用自动索引:数组按元素依次输入循环内,每次循环顺序取出一个元素,当数组元素取完而循环还没有停止时,接入数组的连线取组元素取完而循环还没有停止时,接入数组的连线取“0”作为数组元素,每次循环结作为数组元素,每次循环结果在输出隧道上累积生成数组,当循环停止后,在输出隧道上的累积生成的数组一次果在输出隧道上累积生成数组,当循环停止后,在输出隧道上的累积生成的数组一次传递到输出数组中显示。传递到输出数组中显示。 5.2.4 移位寄存器及反馈节点移位寄存器及反馈节点1移位寄

    24、存器移位寄存器 为了实现将前几次循环完成时的某个数据传递到下一次循环的开始,为了实现将前几次循环完成时的某个数据传递到下一次循环的开始, LabVIEW在循环结构中引入了称为移位寄存器的附加对象。移位寄存器的功能是将在循环结构中引入了称为移位寄存器的附加对象。移位寄存器的功能是将i-1、i-2、i-3次循环的计算结果保存在循环的缓冲区中,并在第次循环的计算结果保存在循环的缓冲区中,并在第i次循环时将这些数据从循环框次循环时将这些数据从循环框架左侧的移位寄存器中送出,供循环框架内的节点使用。架左侧的移位寄存器中送出,供循环框架内的节点使用。 在循环结构框架边框上单击右键,在弹出的快捷菜单中选择在

    25、循环结构框架边框上单击右键,在弹出的快捷菜单中选择“添加移位寄存器添加移位寄存器”选项,可以为循环结构创建一个移位寄存器,如果需要,可以为循环结构添加多个选项,可以为循环结构创建一个移位寄存器,如果需要,可以为循环结构添加多个移位寄存器。移位寄存器。 。其中带向上箭头的右端子在。其中带向上箭头的右端子在每一次循环结束时传入数据,然后将这一数据在下一次循环开始前传给带向下箭头每一次循环结束时传入数据,然后将这一数据在下一次循环开始前传给带向下箭头的左端子,这样就可以从左端子得到前一次循环结束时保存在右端子中的值。的左端子,这样就可以从左端子得到前一次循环结束时保存在右端子中的值。可以为移位寄存器

    26、的左端子指定初始值,其初始化值将在循环开始前读入一次,可以为移位寄存器的左端子指定初始值,其初始化值将在循环开始前读入一次,循环执行后就不再读取该初始值,一般情况下,为了避免错误建议为移位寄存器左循环执行后就不再读取该初始值,一般情况下,为了避免错误建议为移位寄存器左端子明确提供一个初始值。移位寄存器的值也可以通过右端子输出到循环结构外,端子明确提供一个初始值。移位寄存器的值也可以通过右端子输出到循环结构外,输出发生在循环结束后,因此,输出的值是移位寄存器右端子的最终值。输出发生在循环结束后,因此,输出的值是移位寄存器右端子的最终值。 2反馈节点反馈节点在循环结构中,反馈节点和只有一个左端子的

    27、移位寄存器的功能相同,用于将数在循环结构中,反馈节点和只有一个左端子的移位寄存器的功能相同,用于将数据从一次循环传递到下一次循环。和移位寄存器相比,反馈节点是一种在两次循环之据从一次循环传递到下一次循环。和移位寄存器相比,反馈节点是一种在两次循环之间传递数据更简洁的表示形式。间传递数据更简洁的表示形式。在程序框图合适位置放置一个“反馈节点”函数节点并根据数据流建立连线。 在需要建立反馈节点输出和输入端利用连线工具直接将输出和输入相连,自动建立一个反馈节点。 反馈节点由两部分组成,分别为反馈节点和初始化接线端,反馈节点在没有连线的时是黑色的,连线后其颜色由接入的数据的数据类型决定。 反馈节点在循

    28、环框架内初始化反馈节点在循环框架外初始化 在移位寄存器中,我们可以通过创建多个左端子来获取前面多次循环的值,如在移位寄存器中,我们可以通过创建多个左端子来获取前面多次循环的值,如i-1、i-2、i-3次循环的值,在反馈节点中,要实现该功能,可以通过设定反馈节次循环的值,在反馈节点中,要实现该功能,可以通过设定反馈节点的点的“延迟延迟”属性来实现。属性来实现。 5.3 条件结构条件结构5.3.1 条件结构的组成条件结构的组成条件结构也是条件结构也是LabVIEW的基本结构之一,它相当与的基本结构之一,它相当与C语言中的语言中的ifelse语句或语句或Switch语句,用来控制在不同条件下执行不同

    29、程序块的功能。语句,用来控制在不同条件下执行不同程序块的功能。基本条件结构由基本条件结构由组成。组成。默认分支选择器为布尔数据类型,同时自动生成两个选择器标签分别为默认分支选择器为布尔数据类型,同时自动生成两个选择器标签分别为“真真”和和“假假”的子框图。的子框图。5.3.2 条件结构的配置及操作条件结构的配置及操作 条件结构根据不同的使用情况有一个或者多个子框图,每个子框图都是一个执行条件结构根据不同的使用情况有一个或者多个子框图,每个子框图都是一个执行分支,每一个执行分支都有自己的选择器标签。分支选择器的值可以是布尔型、字符分支,每一个执行分支都有自己的选择器标签。分支选择器的值可以是布尔

    30、型、字符串型、整型或者枚举类型,其颜色会随连接的数据类型而改变,同时根据分支选择接串型、整型或者枚举类型,其颜色会随连接的数据类型而改变,同时根据分支选择接入的数据类型不同,选择器标签的设置也有差异,入的数据类型不同,选择器标签的设置也有差异, 1布尔型布尔型如选择器接线端的数据类型是布尔值型,其选择器标签只能设置为如选择器接线端的数据类型是布尔值型,其选择器标签只能设置为“真真”和和“假假”,该结构只包含,该结构只包含“真真”和和“假假”分支。分支。2整型整型 如果分支选择器接线端是一个整数,则该结构可以包括任意个分支。对于每个分如果分支选择器接线端是一个整数,则该结构可以包括任意个分支。对

    31、于每个分支,可使用标签工具在条件结构上部的条件选择器标签中输入值、值列表或值范围。支,可使用标签工具在条件结构上部的条件选择器标签中输入值、值列表或值范围。如使用列表,数值之间用逗号隔开。如使用列表,数值之间用逗号隔开。 如使用数值范围,指定一个类似如使用数值范围,指定一个类似1020的范围可用于表示的范围可用于表示10到到20之间的所有数字之间的所有数字(包括(包括10和和20)。也可以使用开集范围,例如,)。也可以使用开集范围,例如,.100表示所有小于等于表示所有小于等于100的数,的数,100.表示所有大于等于表示所有大于等于100的数。的数。 3字符串型字符串型如果分支选择器接线端是

    32、一个字符串,则该结构同样包括任意个分支。对于每个如果分支选择器接线端是一个字符串,则该结构同样包括任意个分支。对于每个分支,也可使用标签工具在条件结构上部的条件选择器标签中输入值、值列表或值范分支,也可使用标签工具在条件结构上部的条件选择器标签中输入值、值列表或值范围。围。对于字符串,对于字符串,.a和和a.都是开集范围,表示以小于都是开集范围,表示以小于a(不包括(不包括a和以和以a开头的字符开头的字符串)和大于串)和大于a(包含以(包含以a开头的字符串)开头的字符串;开头的字符串)开头的字符串;a.c表示范围,包括所有以表示范围,包括所有以a或或b而不包括以而不包括以c开头的字符串;开头的

    33、字符串;a仅表示单个字符仅表示单个字符a,不表示以,不表示以a开头的字符串,如开头的字符串,如要表示以要表示以a开头的字符串,需定义标签为开头的字符串,需定义标签为a.b,abc和和bcd均仅表示字符串均仅表示字符串abc和和bcd。字符串范围区分大小写,字符串范围区分大小写,A.c和和a.c表示不同的范围,表示不同的范围, 在设置在设置“不区不区分大小写选项分大小写选项”情况下,所有小写字情况下,所有小写字母转换为大写后在进行范围比较。如母转换为大写后在进行范围比较。如果分支接线端是字符串,在选择器标果分支接线端是字符串,在选择器标签中输入的值将自动加上双引号。签中输入的值将自动加上双引号。

    34、4枚举型枚举型 对于分支选择器接线端接入枚举型数据,选择器标签应根据枚举型数据选项列表对于分支选择器接线端接入枚举型数据,选择器标签应根据枚举型数据选项列表中的选项值进行设定。当接入枚举型数据时,如枚举型数据选项列表中的某些选项值中的选项值进行设定。当接入枚举型数据时,如枚举型数据选项列表中的某些选项值没有与其对应分支子框图的话,则在选择结构框架右键快捷菜单中将出现没有与其对应分支子框图的话,则在选择结构框架右键快捷菜单中将出现“为每个值为每个值添加分支添加分支”选项,选择该选项,将自动根据枚举数据的选项列表中的值创建对应的分选项,选择该选项,将自动根据枚举数据的选项列表中的值创建对应的分支子

    35、框图,和接入字符串类型一样,接入枚举型数据时,选择器标签中输入的值自动支子框图,和接入字符串类型一样,接入枚举型数据时,选择器标签中输入的值自动加上双引号加上双引号 。 在后面添加分支在后面添加分支:在当前分支后面增加一个空白分支并自动生成合适的标签;:在当前分支后面增加一个空白分支并自动生成合适的标签; 在前面添加分支在前面添加分支:在当前分支前面增加一个空白分支;:在当前分支前面增加一个空白分支; 复制分支复制分支:复制当前框图分支并且把新生成的分支置于当前分支的后面;:复制当前框图分支并且把新生成的分支置于当前分支的后面; 删除本分支删除本分支:删除当前分支;:删除当前分支; 删除空分支

    36、删除空分支:删除所有不包含代码的空白分支;:删除所有不包含代码的空白分支; 显示分支显示分支:列出所有分支的标签,可以实现分支之间的快速跳转;:列出所有分支的标签,可以实现分支之间的快速跳转; 交换分支的程序框图交换分支的程序框图:把当前分支内容和目标分支内容对换,其他分支不受影响;:把当前分支内容和目标分支内容对换,其他分支不受影响; 将程序框图移位至分支将程序框图移位至分支:把当前分支内容移动到目标分支之后,两者之间的所有:把当前分支内容移动到目标分支之后,两者之间的所有分支顺序移动;分支顺序移动; 删除默认删除默认:去除当前分支的默认标记:去除当前分支的默认标记,对非默认标记分支,命令为

    37、对非默认标记分支,命令为“本分支设置为本分支设置为默认分支默认分支”; 重排分支重排分支:打开的:打开的“重排分支重排分支”对话框对所有分支进行重排序。对话框对所有分支进行重排序。5.3.3 条件结构内部与外部的数据交换条件结构内部与外部的数据交换条件结构内部与外部之间的数据也是通过隧道来交换传递的。条件结构内部与外部之间的数据也是通过隧道来交换传递的。向条件结构边框内输入数据时,各个子程序框图连接或不连接这个数据的隧道都向条件结构边框内输入数据时,各个子程序框图连接或不连接这个数据的隧道都可以。从条件结构边框向外输出数据时,各个子程序框图都必须为这个隧道连接数据,可以。从条件结构边框向外输出

    38、数据时,各个子程序框图都必须为这个隧道连接数据,否则隧道图标是空的,程序否则隧道图标是空的,程序“运行运行”按钮也是断开的。当各个子程序框图都为这个隧按钮也是断开的。当各个子程序框图都为这个隧道连接好数据以后,隧道图标才成为实心的,程序才可以运行。如果允许没有连线的道连接好数据以后,隧道图标才成为实心的,程序才可以运行。如果允许没有连线的子程序框图输出默认值,可以在数据隧道上右击,在弹出的快捷菜单中选择子程序框图输出默认值,可以在数据隧道上右击,在弹出的快捷菜单中选择“未连线未连线时使用默认时使用默认”命令,在这种情况下,程序执行到没有为输出隧道连线的子程序框图时,命令,在这种情况下,程序执行

    39、到没有为输出隧道连线的子程序框图时,就输出相应数据类型的默认值。就输出相应数据类型的默认值。5.3.4 条件结构应用举例条件结构应用举例 5.4 事件结构事件结构 5.4.1 事件驱动概念事件驱动概念 实现方法:利用前面介绍的知识来实现该功能的唯一办法就是通过While循环和条件结构不断地去查询这个按钮是否被单击,如果被单击的话,计数器加1,否则计数器值不变。问题:程序在没有用户点击的情况下处于循环“空转”,浪费了大量的CPU资源,当“单击事件”发生太快时可能会被忽略。因此Labview提供了事件结构来解决这个问题,即仅当“事件”发生时,程序才做相应的响应。 事件是对活动发生的异步通知。事件可

    40、以来自于用户界面、外部事件是对活动发生的异步通知。事件可以来自于用户界面、外部I/O或程序或程序的其他部分。用户界面事件包括鼠标点击、键盘按键等动作。外部的其他部分。用户界面事件包括鼠标点击、键盘按键等动作。外部I/O事件则是事件则是诸如数据采集完毕或发生错误时硬件定时器或触发器发出信号。其他类型的事件诸如数据采集完毕或发生错误时硬件定时器或触发器发出信号。其他类型的事件可通过编程生成并与程序的不同部分通信。可通过编程生成并与程序的不同部分通信。LabVIEW支持用户界面事件和通过支持用户界面事件和通过编程生成的事件,但不支持外部编程生成的事件,但不支持外部I/O事件。事件。5.4.2 事件结

    41、构的组成事件结构的组成 隶属于整个事件结构,用于设定事件结构在等待指定事件发生时的超时时间,以隶属于整个事件结构,用于设定事件结构在等待指定事件发生时的超时时间,以毫秒为单位。当值为毫秒为单位。当值为-1时,事件结构处于永远等待状态,直到指定的事件发生为时,事件结构处于永远等待状态,直到指定的事件发生为止。当值为一个大于止。当值为一个大于0的整数时,时间结构会等待相应的时间,当事件在指定的的整数时,时间结构会等待相应的时间,当事件在指定的时间内发生时,事件接受并响应该事件,若超过指定的时间,事件没发生,则事时间内发生时,事件接受并响应该事件,若超过指定的时间,事件没发生,则事件会停止执行,并返

    42、回一个超时事件。通常情况下,应当为事件结构指定一个超件会停止执行,并返回一个超时事件。通常情况下,应当为事件结构指定一个超时时间,否则事件结构将一直处于等待状态。时时间,否则事件结构将一直处于等待状态。 为子框图提供所处理事件的相关数据,事件数据节点由若干个事件数据端子组成,为子框图提供所处理事件的相关数据,事件数据节点由若干个事件数据端子组成,使用操作值工具单击事件数据节点的某个端子将打开数据列表,可以在其中选择使用操作值工具单击事件数据节点的某个端子将打开数据列表,可以在其中选择所要访问的数据。使用定位工具拖曳事件数据节点的上下边沿,可以增减数据端所要访问的数据。使用定位工具拖曳事件数据节

    43、点的上下边沿,可以增减数据端子。子。用于标识当前显示的子框图所处理事件的事件源,其增减与层叠式顺序结构和选用于标识当前显示的子框图所处理事件的事件源,其增减与层叠式顺序结构和选择结构中的增减类似。择结构中的增减类似。5.4.3 事件结构的配置与操作事件结构的配置与操作 删除事件结构删除事件结构:删除事件结构,仅仅保留当前事件分支的代码;:删除事件结构,仅仅保留当前事件分支的代码; 编辑本分支所处理的事件编辑本分支所处理的事件:编辑当前事件分支的事件源和事件类型;:编辑当前事件分支的事件源和事件类型; 添加事件分支添加事件分支:在当前事件分支后面增加新的事件分支;:在当前事件分支后面增加新的事件

    44、分支; 复制事件分支复制事件分支:复制当前事件分支,并且把复制结果放置在当前分支后面;:复制当前事件分支,并且把复制结果放置在当前分支后面; 删除本事件分支删除本事件分支:删除当前分支;:删除当前分支; 显示动态事件接线端显示动态事件接线端:用于显示动态事件端子。:用于显示动态事件端子。 事件结构在执行编辑、添加还是复制等操作时,都会打开事件结构在执行编辑、添加还是复制等操作时,都会打开“编辑事件编辑事件”对话框。对话框。每个事件分支都可以配置为处理多个事件,当这些事件中的任何一个发生时,对每个事件分支都可以配置为处理多个事件,当这些事件中的任何一个发生时,对应事件分支的代码都会得到执行。应事

    45、件分支的代码都会得到执行。 “事件分支”列出所有事件分支的序号和名称。 “事件说明符” 列出“事件分支”中当前事件配置的所有事件。每一行是一个配置好的事件事件详细信息:左边列出事件源(应用程序、本VI、动态、窗格、分隔栏和控件这6个可能值之一),右边给出该事件源产生的事件名称。“添加事件”按钮可以为当前事件分支添加事件,添加后需要在“事件源”列表框选择合适的事件源,并在“事件”列表框选择所需要的事件,即完成事件添加操作。“删除”按钮,删除事件。通知事件过滤事件通知事件用于通知程序代码某个用户界面事件发生了,并且通知事件用于通知程序代码某个用户界面事件发生了,并且LabVIEW已经已经进行了最基

    46、本的处理。例如修改一个数值控件的数值时,进行了最基本的处理。例如修改一个数值控件的数值时,LabVIEW会先进会先进行默认的处理,即把新数值显示在数值控件中。此后,如果已经为这个控行默认的处理,即把新数值显示在数值控件中。此后,如果已经为这个控件注册了件注册了“值改变值改变”事件,该事件的代码将得到执行。事件,该事件的代码将得到执行。过滤器事件用于告诉程序代码某个事件发生了,过滤器事件用于告诉程序代码某个事件发生了,LabVIEW还未对其进行任还未对其进行任何处理,从而便于用户就程序如何与用户界面的交互作出自己相应的定制。何处理,从而便于用户就程序如何与用户界面的交互作出自己相应的定制。使用过

    47、滤事件参与事件处理可能会覆盖事件的默认行为。在过滤事件的事件使用过滤事件参与事件处理可能会覆盖事件的默认行为。在过滤事件的事件结构分支中,可在结构分支中,可在LabVIEW结束处理该事件之前验证或改变事件数据,或结束处理该事件之前验证或改变事件数据,或完全放弃该事件以防止数据的改变影响到完全放弃该事件以防止数据的改变影响到VI。例如,将一个事件结构配置为。例如,将一个事件结构配置为放弃前面板关闭事件可防止用户关闭放弃前面板关闭事件可防止用户关闭VI的前面板。过滤事件的名称以问号结的前面板。过滤事件的名称以问号结束,如束,如“前面板关闭?前面板关闭?”,以便与通知事件区分。,以便与通知事件区分。

    48、处理过滤事件的事件结构分支有一个事件过滤节点,可将新的数据值连接至这处理过滤事件的事件结构分支有一个事件过滤节点,可将新的数据值连接至这些接线端以改变事件数据。如果不对某一数据项连线,那么该数据项将保持不变。些接线端以改变事件数据。如果不对某一数据项连线,那么该数据项将保持不变。可将真值连接至可将真值连接至“放弃?放弃?”接线端以完全放弃某个事件。接线端以完全放弃某个事件。5.4.4 事件结构的应用举例事件结构的应用举例 分支0:响应“按钮1”控件上“鼠标按下”的通知事件,当用鼠标点击按钮1时,计数器1将加1,实现对单击操作进行计数。分支1:同时响应“按钮1”和“按钮2”控件的“值改变”通知事

    49、件,即分支1同时处理了两个事件,当用鼠标点击这两个按钮中的任何一个以改变按钮的取值,则计数器2将加1以实现计数。分支2,响应“停止”按钮控件的“鼠标按下?”过滤事件,该分支放置了一个双按钮对话框,并将对话框的输出取反接入事件过滤节点中的“放弃?”。分支3:响应“停止”按钮控件的“鼠标按下”通知事件,该分支放入了一个真常量,并将其连接至While循环条件接线端。当程序运行时,按下“停止”按钮,则弹出对话框,如果选择“是”,“鼠标按下”事件得以发生,分支3中的程序得以执行,循环结束,vi停止运行;若选择“否”,“鼠标按下”事件被屏蔽,分支3中的程序不运行,vi继续执行。 5.5 禁用结构禁用结构

    50、禁用结构是自禁用结构是自LabVIEW 8后增加的功能,主要用来控制程序是否被执行,有后增加的功能,主要用来控制程序是否被执行,有两种禁用结构。两种禁用结构。(1)程序框图禁用结构,其功能类似于)程序框图禁用结构,其功能类似于C语言中的注释语句语言中的注释语句/*.*/,用于大段,用于大段地注释程序。地注释程序。 (2)条件禁用结构,用于通过外部环境变量来控制代码是否执行,类似于在)条件禁用结构,用于通过外部环境变量来控制代码是否执行,类似于在C语言中通过宏定义来实现条件编译。语言中通过宏定义来实现条件编译。在禁用结构中,其注释屏蔽掉的代码不仅不执行,而且不编译,这对程序调在禁用结构中,其注释


    注意事项

    本文(LabVIEW虚拟仪器设计教程第5章-程序结构课件.ppt)为本站会员(三亚风情)主动上传,其收益全归该用户,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!




    Copyright@ 2017-2037 Www.163WenKu.Com  网站版权所有  |  资源地图   
    IPC备案号:蜀ICP备2021032737号  | 川公网安备 51099002000191号


    侵权投诉QQ:3464097650  资料上传QQ:3464097650
       


    【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。

    163文库