《控制程序运行的结构精选课件.ppt》由会员分享,可在线阅读,更多相关《控制程序运行的结构精选课件.ppt(54页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、虚拟仪器虚拟仪器沈阳工业大学沈阳工业大学 颜华颜华关于控制程序运行的结构1第一页,本课件共有54页虚拟仪器虚拟仪器2第第5章章 控制程序运行的结构控制程序运行的结构l结构是一种程序流程控制节点,它们在程序框图中的外形一般是一个大小可以缩放的边框,当它与其它节点的连线有数据传递过来时,边框内的一段代码或者反复执行、或者有条件执行、或者按照一定顺序执行。l结构内的一段代码叫做子程序框图;结构边框上数据输入输出的接线端叫隧道。第二页,本课件共有54页虚拟仪器虚拟仪器3隧道隧道的创建方法的创建方法(1)将将结结构构外外的的端端子子连连接接到到结结构构内内的的端端子子,连连接接后结构边框上将出现一个表示
2、隧道的矩形框;后结构边框上将出现一个表示隧道的矩形框;(2)通通过过将将外外部部端端子子连连接接到到结结构构边边框框来来创创建建隧隧道道,然后再进一步将创建的隧道连接到内部端子;然后再进一步将创建的隧道连接到内部端子;lFor循循环环和和While循循环环支支持持自自动动索索引引。当当表表示示隧隧道道的的矩矩形形框框是是实实心心时时,表表示示禁禁止止自自动动索索引引,是是空空心时表示自动索引。心时表示自动索引。第三页,本课件共有54页虚拟仪器虚拟仪器45-1 For循环循环5-1-1 For循环的建立在结构子选板中选中在结构子选板中选中For循环图标,在所有应在循环图标,在所有应在For循环内
3、执行的节点左上角单循环内执行的节点左上角单击一下鼠标,然后按住鼠标向右下角拖动,直到虚线框包围所有应在击一下鼠标,然后按住鼠标向右下角拖动,直到虚线框包围所有应在For循循环内执行的节点,松开鼠标手,就得到一个大小和位置满意的边框。也可以先放好一个环内执行的节点,松开鼠标手,就得到一个大小和位置满意的边框。也可以先放好一个边框,再向里面添代码。边框,再向里面添代码。第四页,本课件共有54页虚拟仪器虚拟仪器5For 循循环环有有两两个个固固定定的的接接线线端端。For循循环环边边框框内内的的代代码码(子子框框图)循环执行一定次数。图)循环执行一定次数。l总总线线接接线线端端为为输输入入接接线线端
4、端,除除非非使使用用自自动动索索引引功功能能,否否则则都都要要在在For框框外外,为为总总线线接接线线端端连连接接一一32位位整整型型数数(其其它它类类型型会会强制转换为最接近的整型数),指定循环执行的次数。强制转换为最接近的整型数),指定循环执行的次数。l计计数数接接线线端端是是输输出出接接线线端端,输输出出循循环环当当前前执执行行的的次次数数,循环次数从循环次数从0开始计数。开始计数。l可以从循环外边连接一个数值到总线接线端,显性地设置循可以从循环外边连接一个数值到总线接线端,显性地设置循环次数,也可以利用自动索引隐含地设置循环次数。环次数,也可以利用自动索引隐含地设置循环次数。For循环
5、的接线端循环的接线端第五页,本课件共有54页虚拟仪器虚拟仪器65-1-2 For循环的时间控制与数据传递循环的时间控制与数据传递l满足循环条件情况下,循环结构在一次结束后将尽快开始执行满足循环条件情况下,循环结构在一次结束后将尽快开始执行下一次循环。下一次循环。l控制循环速度的最常用方法是使用控制循环速度的最常用方法是使用“编程编程定时定时”函数函数子选板中的子选板中的“等待下一个整数倍毫秒等待下一个整数倍毫秒”,程序执行到该函程序执行到该函数时将等待到它的数时将等待到它的“毫秒计时值毫秒计时值”变为输入的变为输入的“毫秒倍毫秒倍数数”参数的整数倍。因此可以控制循环按照固定的时间参数的整数倍。
6、因此可以控制循环按照固定的时间间隔执行。间隔执行。l循环结构通道上的数据在循环执行第一次时进入循环框内,循环结构通道上的数据在循环执行第一次时进入循环框内,以后循环执行过程中将不再理会该数据的变化;循环结构以后循环执行过程中将不再理会该数据的变化;循环结构执行完后,才传递出数据。执行完后,才传递出数据。第六页,本课件共有54页虚拟仪器虚拟仪器75-1-2 For循环的时间控制与数据传递循环的时间控制与数据传递循环结构的循环结构的 时间控制与数据传递时间控制与数据传递.vi都不能实现都不能实现100次循环过程中用滑钮控制曲线变化次循环过程中用滑钮控制曲线变化如果如果For循环内的程序执行完以后,
7、用时不足循环内的程序执行完以后,用时不足100ms,则等待到,则等待到100ms后再开始下后再开始下一次循环。如果循环内的程序在一次循环。如果循环内的程序在100ms内没有执行完,则在程序执行完后再开始下内没有执行完,则在程序执行完后再开始下一次循环,即保证程序执行时间不会少于一次循环,即保证程序执行时间不会少于100ms。第七页,本课件共有54页虚拟仪器虚拟仪器85-1-3For循环对数组的自动索引l自动索引是指使循环框外面的数组成员自动索引是指使循环框外面的数组成员(随着循环的进(随着循环的进行)行)逐个依次进入循环框内,或使循环框内的数据累加逐个依次进入循环框内,或使循环框内的数据累加成
8、一个数组输出到循环框外面的功能成一个数组输出到循环框外面的功能(该数组要在循环(该数组要在循环结束后一次输出!)结束后一次输出!)。l使用自动索引功能时,从循环框外连接到输入通道的二使用自动索引功能时,从循环框外连接到输入通道的二维数组将索引出一维数组,从一维数组将索引出单个成维数组将索引出一维数组,从一维数组将索引出单个成员。与此相反,在循环的输出边框,单个元素依次累加员。与此相反,在循环的输出边框,单个元素依次累加为一维数组,一维数组累加成为二维数组。为一维数组,一维数组累加成为二维数组。lFor循环和循环和While循环都支持自动索引。但连接到循环都支持自动索引。但连接到For循循环的数
9、组默认为自动索引,而连接到环的数组默认为自动索引,而连接到While循环的数组默认循环的数组默认为不能自动索引。在通道上右击鼠标弹出菜单可选为不能自动索引。在通道上右击鼠标弹出菜单可选”禁用索禁用索引引“或或”启用索引启用索引“。第八页,本课件共有54页虚拟仪器虚拟仪器9 里层的里层的For循环将循环将6次执行时的次执行时的循环次数累加成一个一维数组循环次数累加成一个一维数组05输出;外层输出;外层For循环依次为这个一循环依次为这个一维数组各个成员加上当前循环数,维数组各个成员加上当前循环数,最后将最后将8次循环的次循环的8个一维数组累个一维数组累加成二维数组输出。加成二维数组输出。ab 外
10、层的外层的For循环每执行循环每执行一次循环从二维数组中索引一次循环从二维数组中索引出一行;里层的出一行;里层的For循环每循环每执行一次从一维数组中索引执行一次从一维数组中索引出一个成员。出一个成员。在循环外边连接一个数值到计数端口,可显示地设置计数值;也可在循环外边连接一个数值到计数端口,可显示地设置计数值;也可使用自动索引隐含设置计数值,此时使用自动索引隐含设置计数值,此时For循环的执行次数循环的执行次数 对于一维数组对于一维数组等于数组长度,即把所有数组元素索引完为止;对于二维数组等于数组等于数组长度,即把所有数组元素索引完为止;对于二维数组等于数组行数,即一次索引行数,即一次索引1
11、行,将所有行索引完。行,将所有行索引完。如果连接了计数端口值,同时还有其它数组执行自动索引进入循如果连接了计数端口值,同时还有其它数组执行自动索引进入循环,则循环按照其中的最小次数进行。环,则循环按照其中的最小次数进行。自动索引自动索引.vi第九页,本课件共有54页虚拟仪器虚拟仪器105-1-3 For循环对数组的自动索引循环对数组的自动索引 在循环外边连接一个数值到计数端口,可显示地设置计数值;也可使用在循环外边连接一个数值到计数端口,可显示地设置计数值;也可使用自动索引隐含设置计数值,此时自动索引隐含设置计数值,此时For循环的执行次数循环的执行次数 对于一维数组等于数组长度,对于一维数组
12、等于数组长度,即把所有数组元素索引完为止;对于二维数组等于数组行数,即一次索引即把所有数组元素索引完为止;对于二维数组等于数组行数,即一次索引1行,将所行,将所有行索引完。有行索引完。如果连接了计数端口值,同时还有其它数组执行自动索引进入循环,则循环如果连接了计数端口值,同时还有其它数组执行自动索引进入循环,则循环按照其中的最小次数进行。按照其中的最小次数进行。自动索引自动索引.vi第十页,本课件共有54页虚拟仪器虚拟仪器115-1-4 移位寄存器和反馈节点移位寄存器和反馈节点1.移位寄存器移位寄存器(1)建立移位寄存器建立移位寄存器 移位寄存器从一个循环向下一个循环传递数据。移位寄存器从一个
13、循环向下一个循环传递数据。For循环和循环和While循环都可以使用移位寄存器。创建移位寄存器的方法是在循环都可以使用移位寄存器。创建移位寄存器的方法是在循环的左边框或右边框上弹出快捷菜单,然后选择循环的左边框或右边框上弹出快捷菜单,然后选择“添加移位添加移位寄存器寄存器”。l一个一个WhileWhile循环或循环或ForFor循环可建立多个移位寄存器。循环可建立多个移位寄存器。l移位寄存器可以保存任何类型的数据,数值型、布尔型、字符移位寄存器可以保存任何类型的数据,数值型、布尔型、字符串和数组等。移位寄存器自动适应连接到它端口的第一个数据串和数组等。移位寄存器自动适应连接到它端口的第一个数据
14、的类型。的类型。l刚创建的移位寄存器包含两个相对的端口,分别位于循环竖刚创建的移位寄存器包含两个相对的端口,分别位于循环竖直的左右边框上。右边端口存储循环结束时的数据,到下一直的左右边框上。右边端口存储循环结束时的数据,到下一循环开始时该数据出现在左边端口上。循环开始时该数据出现在左边端口上。l左边端口可以增加附加端口以存储多次循环的值,方法是左边端口可以增加附加端口以存储多次循环的值,方法是用定位与选择工具拖动端口的方型缩放手柄,或弹出快捷用定位与选择工具拖动端口的方型缩放手柄,或弹出快捷菜单选菜单选“添加元素添加元素”。第十一页,本课件共有54页虚拟仪器虚拟仪器125-1-4 移位寄存器和
15、反馈节点移位寄存器和反馈节点移位寄存器移位寄存器 (2)移位寄存器传递数据的方移位寄存器传递数据的方法法 程序在循环开始前为移位寄存器左程序在循环开始前为移位寄存器左边边3个接线端都赋初始值个接线端都赋初始值5。循环开始执行后循环数循环开始执行后循环数i不断送入右不断送入右边框的移位寄存器接线端,并在每次边框的移位寄存器接线端,并在每次循环结束时转移到左侧移位寄存器接循环结束时转移到左侧移位寄存器接线端。线端。到下一次循环时这个循环数就出到下一次循环时这个循环数就出现在移位寄存器左边最上边的接线端现在移位寄存器左边最上边的接线端中。而在每次循环中,移位寄存器左中。而在每次循环中,移位寄存器左边
16、各接线端的值都向下移动一位。边各接线端的值都向下移动一位。到循环全部结束时,右侧接线端的数到循环全部结束时,右侧接线端的数值转移到左侧接线端的同时,输出到循环值转移到左侧接线端的同时,输出到循环边框外。边框外。第十二页,本课件共有54页虚拟仪器虚拟仪器135-1-4 移位寄存器和反馈节点移位寄存器和反馈节点移位寄存器移位寄存器(2)移位寄存器传递数据的方法移位寄存器传递数据的方法用移位寄存器求最大值用移位寄存器求最大值 如果要初始化移位寄存器,就必须为所有的左侧端口都赋值,而如果要初始化移位寄存器,就必须为所有的左侧端口都赋值,而且要用同样的数据类型。且要用同样的数据类型。求最大值求最大值.v
17、i第十三页,本课件共有54页虚拟仪器虚拟仪器14(3)移位寄存器的初始化移位寄存器的初始化l除非显式地初始化移位寄存器,否则当首次执行除非显式地初始化移位寄存器,否则当首次执行VI时,时,移位寄存器将初始化为移位寄存器相应数据类型的默移位寄存器将初始化为移位寄存器相应数据类型的默认值,(布尔型为认值,(布尔型为False,数字型为,数字型为0)。)。l存储在移位寄存器中的数据直到关闭存储在移位寄存器中的数据直到关闭VI才在内存中消除,才在内存中消除,如果运行的如果运行的VI包含未初始化的移位寄存器,在以后执行时,包含未初始化的移位寄存器,在以后执行时,移位寄存器获得的初始值将是以前执行后的最终
18、值。由于这移位寄存器获得的初始值将是以前执行后的最终值。由于这种情况难于检测,可能使种情况难于检测,可能使VI调试变得困难。调试变得困难。l有时应用移位寄存器就是为了在程序的一系列执行过程有时应用移位寄存器就是为了在程序的一系列执行过程中传递数据,这时就不能对移位寄存器初始化。中传递数据,这时就不能对移位寄存器初始化。第十四页,本课件共有54页虚拟仪器虚拟仪器155-1-4 移位寄存器和反馈节点移位寄存器和反馈节点2.反馈节点反馈节点自动创建反馈节自动创建反馈节 当当For循环或循环或While循环边框比较大时,使用移位寄存器循环边框比较大时,使用移位寄存器会造成过长的连线,因此会造成过长的连
19、线,因此LabVIEW提供了反馈节点。在提供了反馈节点。在For循环或循环或While循环中,当我们把一个节点的输出连接到它的循环中,当我们把一个节点的输出连接到它的输入时,连线中会自动插入一个反馈节点,同时自动创建了输入时,连线中会自动插入一个反馈节点,同时自动创建了一个初始化接线端。一个初始化接线端。第十五页,本课件共有54页虚拟仪器虚拟仪器165-1-4 移位寄存器和反馈节点移位寄存器和反馈节点2.反馈节点反馈节点反馈节点的数据传递反馈节点的数据传递 反馈节点的箭头方向表示数据流方向。反馈节点有两个端口:反馈节点的箭头方向表示数据流方向。反馈节点有两个端口:(1)输入端口:在每次循环结束
20、时将)输入端口:在每次循环结束时将当前值当前值存入;存入;(2)输出端口:在每次循环开始时将)输出端口:在每次循环开始时将上一次循环存入的值上一次循环存入的值输出。输出。反馈节点的数据传递反馈节点的数据传递.vi第十六页,本课件共有54页虚拟仪器虚拟仪器175-2 While循环循环lWhile循环控制程序反复执行一段代码,直到某个循环控制程序反复执行一段代码,直到某个条件发生。条件发生。l建立建立While循环的方法与循环的方法与For循环是一样的。循环是一样的。lWhile 循环有两个固定的接线端。循环有两个固定的接线端。“循环计数循环计数“是一个输出接线端,它输出循环当前执行的次数。是一
21、个输出接线端,它输出循环当前执行的次数。循环数是从循环数是从0开始计数的。开始计数的。“循环条件循环条件”是一个是一个布尔量输入接线端。程序在每次循环结束时检查布尔量输入接线端。程序在每次循环结束时检查条件接线端。因此,条件接线端。因此,While循环总是至少执行一次。循环总是至少执行一次。第十七页,本课件共有54页虚拟仪器虚拟仪器185-2 While循环循环lWhile循环终止条件l死循环当条件端口连接一个出错信息簇,当条件端口连接一个出错信息簇,则默认设置是则默认设置是Stop on Error,即遇到已发生错误的信息退出即遇到已发生错误的信息退出循环;在条件端口弹出菜单可循环;在条件端
22、口弹出菜单可将设置改为将设置改为Continue While Error。如果产生循环终止条件的数如果产生循环终止条件的数据源放置在据源放置在While循环的外边,循环的外边,根据初始值的不同,可创建根据初始值的不同,可创建无限循环或仅执行无限循环或仅执行1次的循环。次的循环。因为因为G程序是在进入循环之前程序是在进入循环之前读取数据源的数据值,进入循读取数据源的数据值,进入循环后将不再理会循环框外面数环后将不再理会循环框外面数据的变化据的变化数据流编程!数据流编程!第十八页,本课件共有54页虚拟仪器虚拟仪器19lWhile循环的自动索引、循环时间控制方法以及移位寄存循环的自动索引、循环时间控
23、制方法以及移位寄存器的使用类似于器的使用类似于for循环。循环。l由于由于while循环次数不是事先确定的,因此使用数组自动索引循环次数不是事先确定的,因此使用数组自动索引功能时应注意:功能时应注意:(1)如个数组成员已经索引告罄,则)如个数组成员已经索引告罄,则LabVIEW自动在后面自动在后面追加缺省值,数字型的缺省值为追加缺省值,数字型的缺省值为0,布尔型为,布尔型为false。(2)while循环使用自动索引时输出数组长度也是事先未知的。循环使用自动索引时输出数组长度也是事先未知的。第十九页,本课件共有54页虚拟仪器虚拟仪器205-3 定时循环定时循环l如果需要对循环的执行时间进行更精
24、确的控制和增加更多控制功能,可以使用定时循环。定时循环定时循环.vi右边框内的输出节点默认情况下只显示一个错误信息接右边框内的输出节点默认情况下只显示一个错误信息接线端,这里选择为线端,这里选择为dt,连接了一个输入型控件,使得程序可连接了一个输入型控件,使得程序可以在执行中改变循环的速度。以在执行中改变循环的速度。第二十页,本课件共有54页虚拟仪器虚拟仪器215-4 条件结构条件结构条件结构类似于文本编程语言中的条件结构类似于文本编程语言中的If Then Else语语句。句。条件结构包含有两个以上子程序框图,每个子程序框图条件结构包含有两个以上子程序框图,每个子程序框图中的一段程序代码对应
25、一个条件分支,程序运行时选择其中中的一段程序代码对应一个条件分支,程序运行时选择其中的一段执行。这些代码框像一叠卡片一样重叠在一起,一次的一段执行。这些代码框像一叠卡片一样重叠在一起,一次只能看到一张。只能看到一张。第二十一页,本课件共有54页虚拟仪器虚拟仪器225-4 条件结构条件结构5-4-1 条件结构的建立条件结构的建立单击递减箭头和递增箭头可分别查看或编辑前一个或单击递减箭头和递增箭头可分别查看或编辑前一个或后一个子框图。在子框图表示上单击鼠标左键,则出后一个子框图。在子框图表示上单击鼠标左键,则出现所有存在的子框图名,可以选择显示其中的任一个。现所有存在的子框图名,可以选择显示其中的
26、任一个。第二十二页,本课件共有54页虚拟仪器虚拟仪器235-4-1 条件结构的建立条件结构的建立l在选择结构边框上弹出菜单可进行在选择结构边框上弹出菜单可进行 “删删除本分支除本分支”、“复制分支复制分支”、“在前面在前面添加分支添加分支”,“在后面添加分支在后面添加分支”、“删除条件结构删除条件结构”等操作。等操作。l连接到选择端口的值可以是整型、布尔型、连接到选择端口的值可以是整型、布尔型、字符型或枚举型,默认布尔型。字符型或枚举型,默认布尔型。l当选择端口连接一个枚举量时,边框弹出当选择端口连接一个枚举量时,边框弹出的快捷菜单中有的快捷菜单中有“为每个值添加分支为每个值添加分支”选选项,
27、即有几个枚举值,就有几个子框图。项,即有几个枚举值,就有几个子框图。第二十三页,本课件共有54页虚拟仪器虚拟仪器245-4-2 条件结构的设置条件结构的设置 1.默认选项的设置默认选项的设置 在在LabVIEW中使用条件结构,必须设置一中使用条件结构,必须设置一个默认子程序框图处理超出选项范围的情况,个默认子程序框图处理超出选项范围的情况,除非能够为每个可能的选择值都设置一个子程除非能够为每个可能的选择值都设置一个子程序框图。序框图。设置缺省选项的方法是:当显示缺省子图设置缺省选项的方法是:当显示缺省子图形代码框时,在结构边框上弹出菜单选择形代码框时,在结构边框上弹出菜单选择Make Make
28、 this the default case this the default case。第二十四页,本课件共有54页虚拟仪器虚拟仪器255-4-2 条件结构的设置条件结构的设置 2.子程序框图的设置子程序框图的设置 用编辑文本工具修改选择器标签中的选择器值可以设置子用编辑文本工具修改选择器标签中的选择器值可以设置子程序框图与选项的对应关系。程序框图与选项的对应关系。l子图形代码框标识可以是一个单值,例如子图形代码框标识可以是一个单值,例如3 3;也可以是一;也可以是一个表,例如个表,例如1 1,2 2,3 3;也可以是一个范围,例如;也可以是一个范围,例如5.105.10;范;范围可以是开放
29、的例如围可以是开放的例如.1(.1(小于或等于小于或等于1 1)或)或9.9.(大于或等(大于或等于于9 9)。同一个子程序框图中设置的范围有重叠时,自动)。同一个子程序框图中设置的范围有重叠时,自动调整为紧凑形式,例如,输入调整为紧凑形式,例如,输入“5.15,12.20”5.15,12.20”,则显示为,则显示为5.20”5.20”。l字符型和枚举型数值在子图形代码框中被自动加上双引号。字符型和枚举型数值在子图形代码框中被自动加上双引号。l字符型选择值表示范围时不包括最后一个字符,例如字符型选择值表示范围时不包括最后一个字符,例如“a”.“c”a”.“c”,包括字符,包括字符a a和字符和
30、字符b b开头的任何字符选项值,开头的任何字符选项值,而不包括而不包括c c开头的字符选项值。开头的字符选项值。第二十五页,本课件共有54页虚拟仪器虚拟仪器26l错误的子框图标识被自动地用红色显示。错误的子框图标识被自动地用红色显示。l修改选择结构子图形代码框顺序的方法是在结修改选择结构子图形代码框顺序的方法是在结构边框弹出菜单选择构边框弹出菜单选择“重排分支重排分支”命令,弹出命令,弹出一对话框,在一对话框,在“分支列表分支列表”中拖动条件选择其中拖动条件选择其标签值到需要的位置。标签值到需要的位置。第二十六页,本课件共有54页虚拟仪器虚拟仪器275-4-2 条件结构的设置条件结构的设置 3
31、.隧道的要求隧道的要求向向casecase结构框内输入数据时,各子图形代码框连接或不连结构框内输入数据时,各子图形代码框连接或不连接这个数据都可以;接这个数据都可以;从从casecase结构框向外输出数据时,各子图形代码框都必结构框向外输出数据时,各子图形代码框都必须为这个数据通道连接数据,否则通道图标是中空的,须为这个数据通道连接数据,否则通道图标是中空的,程序运行按钮是断开的。当各子图形代码框都为这个通程序运行按钮是断开的。当各子图形代码框都为这个通道连好数据以后,通道图标才成为实心的,程序才可运道连好数据以后,通道图标才成为实心的,程序才可运行。行。如果允许没有连线的子图形代码框输出默认
32、值,可如果允许没有连线的子图形代码框输出默认值,可在数据通道上弹出菜单,选择在数据通道上弹出菜单,选择“未连线时使用默认值未连线时使用默认值”,这时数据通道变为灰色,程序执行到没有为其连接数据通道,这时数据通道变为灰色,程序执行到没有为其连接数据通道连线的子图形代码框时,就输出相应数据类型的默认值。连线的子图形代码框时,就输出相应数据类型的默认值。第二十七页,本课件共有54页虚拟仪器虚拟仪器285-4-3 条件结构应用示例条件结构应用示例l1.使While循环先检查条件接线端再执行代码While循环是先执行完循环框内的代码,再检查条件端循环是先执行完循环框内的代码,再检查条件端口,循环框内的代
33、码至少要被执行口,循环框内的代码至少要被执行1次。利用选择结构,次。利用选择结构,可实现使用可实现使用 While循环时先检查后执行。循环时先检查后执行。While循环的先检查后执行循环的先检查后执行.vi第二十八页,本课件共有54页虚拟仪器虚拟仪器295-4-3 条件结构应用示例条件结构应用示例2.按一定条件分离数组元素将一个浮点数数组的正负数成员分离成两个数组。将一个浮点数数组的正负数成员分离成两个数组。按条件分离数组成员按条件分离数组成员.vi第二十九页,本课件共有54页虚拟仪器虚拟仪器305-4-3 条件结构应用示例条件结构应用示例l3.用条件结构处理错误 LabVIEW的很多VI输出
34、一个“错误输出”参数,指出这个VI执行中是否发生错误,通知后续程序进行必要的处理。用用case结构处理错误结构处理错误.vi第三十页,本课件共有54页虚拟仪器虚拟仪器315-5 顺序结构顺序结构l基于文本的编程语言,程序是按照语句出现的基于文本的编程语言,程序是按照语句出现的顺序执行。顺序执行。l“数据流数据流”控制控制LabVIEWLabVIEW程序的运行方式。程序的运行方式。l数据流程序中一个节点(函数)只有当它所有数据流程序中一个节点(函数)只有当它所有的输入端的数据都成为有效数据后才能被执行,的输入端的数据都成为有效数据后才能被执行,而且只有当它执行完成后,它的所有输出端口而且只有当它
35、执行完成后,它的所有输出端口上的数据才成为有效。上的数据才成为有效。第三十一页,本课件共有54页虚拟仪器虚拟仪器32 如上图所示,这个如上图所示,这个VI程序把两个输入数值相乘,程序把两个输入数值相乘,再把乘积减去再把乘积减去50.0。这个程序中,框图程序从左往。这个程序中,框图程序从左往右执行,这个执行次序不是由于对象的摆放位置,右执行,这个执行次序不是由于对象的摆放位置,而是由于相减运算函数的一个输入量是相乘函数的而是由于相减运算函数的一个输入量是相乘函数的运算结果,它只有当相乘运算完成并把结果送到减运算结果,它只有当相乘运算完成并把结果送到减运算的输入口后才能继续下去。运算的输入口后才能
36、继续下去。第三十二页,本课件共有54页虚拟仪器虚拟仪器33 在在这这个个例例子子中中,我我们们无无法法知知道道哪哪一一个个节节点点函函数数首首先先执执行行,因因为为所所有有输输入入量量几几乎乎同同时时到到达达。对对于于这这样样一一种种相相互互独独立立的的数数据据流流程程,如如果果又又必必须须明明确确指指定定节节点点执执行行的的先先后后次次序序,就就必必须须使使用用顺顺序序(Sequence)结结构构来来明确执行次序。明确执行次序。第三十三页,本课件共有54页虚拟仪器虚拟仪器345-5 顺序结构顺序结构 在数据流程序中,只要一个节点所有需要输入的数据全在数据流程序中,只要一个节点所有需要输入的数
37、据全部到达就开始执行。如果有时需要某个节点先于其它节点执行,部到达就开始执行。如果有时需要某个节点先于其它节点执行,可以用顺序结构作为控制节点执行次序的一种方法。可以用顺序结构作为控制节点执行次序的一种方法。l5-5-1 顺序结构的建立 顺序结构可包含一个或多个子框图,每个子顺序结构可包含一个或多个子框图,每个子框图称为一个框图称为一个 “帧帧”。子框图编号从。子框图编号从0 0开始,开始,顺序结构从顺序结构从0 0号程序图框内的代码开始,按顺序号程序图框内的代码开始,按顺序执行。执行。第三十四页,本课件共有54页虚拟仪器虚拟仪器35l有层叠(有层叠(Stacked Sequence Stru
38、cture)Stacked Sequence Structure)和平铺和平铺(Flat(Flat Sequence Structure)2Sequence Structure)2种顺序结构形式。刚放入程种顺序结构形式。刚放入程序框图的顺序结构只有一个子框图。在顺序结构序框图的顺序结构只有一个子框图。在顺序结构边框弹出菜单,选边框弹出菜单,选“在后面添加帧在后面添加帧”或或“在前面在前面添加帧添加帧”逐个增加子框图。逐个增加子框图。第三十五页,本课件共有54页虚拟仪器虚拟仪器36层叠顺序结构层叠顺序结构l在层叠顺序结构边框上弹出快捷菜单可进行在层叠顺序结构边框上弹出快捷菜单可进行:(1)子框图
39、的复制、删除或移除整个顺序结构,移除整个子框图的复制、删除或移除整个顺序结构,移除整个顺序结构后时只剩下顶层内的程序框图。顺序结构后时只剩下顶层内的程序框图。(2)选择选择“本帧设置为本帧设置为”命令可为当前帧指定顺序号。命令可为当前帧指定顺序号。(3)选择选择“替换替换”命令可把它替换为平铺顺序结构或选择命令可把它替换为平铺顺序结构或选择结构;选择结构也可替换为层叠顺序结构。结构;选择结构也可替换为层叠顺序结构。l层叠顺序结构节省程序框图空间,但掩盖了程序代码关系。层叠顺序结构节省程序框图空间,但掩盖了程序代码关系。第三十六页,本课件共有54页虚拟仪器虚拟仪器37平铺顺序结构与层叠顺序结构的
40、不同平铺顺序结构与层叠顺序结构的不同(1)不可复制子框图。不可复制子框图。(2)只能替换为层叠顺序结构,不能直接替换为选择结构。只能替换为层叠顺序结构,不能直接替换为选择结构。(3)移除平铺顺序结构后各子框图的代码都保留。移除平铺顺序结构后各子框图的代码都保留。(4)(4)平铺顺序结构,不会掩盖程序代码,但占用程序框图空间大。平铺顺序结构,不会掩盖程序代码,但占用程序框图空间大。第三十七页,本课件共有54页虚拟仪器虚拟仪器385-5-2顺序结构中数据输入输出与传递顺序结构中数据输入输出与传递l向顺序结构框内输入数据时,各子图形代码框连接或不连向顺序结构框内输入数据时,各子图形代码框连接或不连接
41、这个数据都可以(与条件结构相同)。接这个数据都可以(与条件结构相同)。l从顺序结构框向外输出数据时,各子图形代码框从顺序结构框向外输出数据时,各子图形代码框只能有一个只能有一个连连接这个数据通道。否则通道图标是中空的,程序运行按钮是断开接这个数据通道。否则通道图标是中空的,程序运行按钮是断开的。注意条件结构要求的。注意条件结构要求各子图形代码框都各子图形代码框都必须为这个数据通必须为这个数据通道连接数据道连接数据 。l不论由哪一层图形代码向外传递数据,都要等所有子图形代不论由哪一层图形代码向外传递数据,都要等所有子图形代码框顺序执行完后才能传出数据。码框顺序执行完后才能传出数据。l各个子框图之
42、间传递数据,平铺顺序结构可以直接连线,但层叠各个子框图之间传递数据,平铺顺序结构可以直接连线,但层叠顺序结构要借助顺序结构变量。顺序结构要借助顺序结构变量。第三十八页,本课件共有54页虚拟仪器虚拟仪器39 在各个子程序框图之间传递数据,平铺顺序结构可以直在各个子程序框图之间传递数据,平铺顺序结构可以直接连线。接连线。第三十九页,本课件共有54页虚拟仪器虚拟仪器40l建立顺序局部变量的方法是在顺序结构边框上弹出快捷建立顺序局部变量的方法是在顺序结构边框上弹出快捷菜单,选择菜单,选择“添加顺序局部变量添加顺序局部变量”,出现一黄色小方框。,出现一黄色小方框。为这个小方框连接数据后它的中间出现一个指
43、向数据结为这个小方框连接数据后它的中间出现一个指向数据结构框外的箭头。构框外的箭头。l不能在为顺序局部变量赋值的子代码图形框之前访问该不能在为顺序局部变量赋值的子代码图形框之前访问该数据。在这些子框图中顺序局部变量图标没有箭头,也数据。在这些子框图中顺序局部变量图标没有箭头,也不允许连线。不允许连线。l在为顺序局部变量赋值的子框图之后,所有子框图都在为顺序局部变量赋值的子框图之后,所有子框图都可以访问这个数据,这些子框图的顺序局部变量图标可以访问这个数据,这些子框图的顺序局部变量图标都有一个向内的箭头。都有一个向内的箭头。层叠顺序结构传递数据层叠顺序结构传递数据.vi第四十页,本课件共有54页
44、虚拟仪器虚拟仪器415-5-3 顺序结构应用示例顺序结构应用示例使用平铺顺序结构计时使用平铺顺序结构计时 使用顺序结构计时使用顺序结构计时.vi第四十一页,本课件共有54页虚拟仪器虚拟仪器425-5-3 顺序结构应用示例顺序结构应用示例使用层叠顺序结构计时 使用顺序结构计时使用顺序结构计时.vi第四十二页,本课件共有54页虚拟仪器虚拟仪器435-5-4 顺序结构的缺陷与人为的数据依从关系顺序结构的缺陷与人为的数据依从关系 NI公司在公司在LabVIEW中提供了顺序结构,却不提倡过多使中提供了顺序结构,却不提倡过多使用它。原因主要有两点。用它。原因主要有两点。l顺序结构妨碍了作为顺序结构妨碍了作
45、为LabVIEW 优点之一的程序并行运行机制。优点之一的程序并行运行机制。l顺序结构掩盖了部分程序代码,中断了作为顺序结构掩盖了部分程序代码,中断了作为LabVIEW 主要特点的数据流主要特点的数据流形式。这一点已经通过使用平铺的顺序结构解决。形式。这一点已经通过使用平铺的顺序结构解决。第四十三页,本课件共有54页虚拟仪器虚拟仪器445-8 公式节点公式节点 5-8-1公式节点的用途公式节点的用途图形编程的数学计算图形编程的数学计算 公式节点的数学计算公式节点的数学计算程序中的复杂运算可使用公式节点使程序简洁程序中的复杂运算可使用公式节点使程序简洁公式节点公式节点.vi第四十四页,本课件共有5
46、4页虚拟仪器虚拟仪器455-8 公式节点公式节点5-8-2 公式节点的建立公式节点的建立 在在“编程编程结构结构”函数子选板和函数子选板和“数学数学脚本与公脚本与公式式”函数子选板都可以找到公式节点。在程序框图中放置公函数子选板都可以找到公式节点。在程序框图中放置公式节点的方法以及公式节点边框大小的调整与其它结构是一式节点的方法以及公式节点边框大小的调整与其它结构是一样的。样的。5-8-3 公式节点的语法公式节点的语法公式节点中的代码看上去就像一小段公式节点中的代码看上去就像一小段C语言的程序。公语言的程序。公式节点中也可以声明变量,可以使用式节点中也可以声明变量,可以使用C语言的语法,可以加
47、语言的语法,可以加语句注释,每个公式语句也是以分号结束。公式节点的变量可语句注释,每个公式语句也是以分号结束。公式节点的变量可以与输入输出接线端连线无关,但是变量不能有单位。以与输入输出接线端连线无关,但是变量不能有单位。第四十五页,本课件共有54页虚拟仪器虚拟仪器465.8公式节点公式节点Formula Node l用用“编辑文本工具编辑文本工具”往公式节点中输入公式;往公式节点中输入公式;l在公式节点边框上弹出菜单,选择在公式节点边框上弹出菜单,选择“添加输入添加输入”或或“添加输出添加输出”为公式节点创建输入或输出为公式节点创建输入或输出端口端口l在端口小方框中输入变量名(分大小写),将
48、在端口小方框中输入变量名(分大小写),将提供变量值的控制件或前面的程序节点连接到提供变量值的控制件或前面的程序节点连接到输入端口,将输出端口连接到显示件或需要此输入端口,将输出端口连接到显示件或需要此数据的后续节点。数据的后续节点。第四十六页,本课件共有54页虚拟仪器虚拟仪器47公式节点常用运算符意义意义符号符号赋值赋值=加、减、乘、除、乘方加、减、乘、除、乘方+、-、*、/、*逻辑或、逻辑与、逻辑非逻辑或、逻辑与、逻辑非、&、!等于、不等于等于、不等于+、!=大于、小于、大于等于、小于等于大于、小于、大于等于、小于等于、=、=加加1、减、减1+、-条件运算条件运算?:条件运算符条件运算符“?
49、”前面部分是辨别条件,前面部分是辨别条件,“?”和和“:”之间是辨别条件之间是辨别条件True时的表达式,时的表达式,“:”后面后面是辨别条件为是辨别条件为False是的表达式。是的表达式。第四十七页,本课件共有54页虚拟仪器虚拟仪器485-9 控制前面板对象的属性控制前面板对象的属性l面板对象属性是指前面板上控件的外观和功面板对象属性是指前面板上控件的外观和功能特征,例如显示的颜色、可见性、闪烁、能特征,例如显示的颜色、可见性、闪烁、位置、刻度等。位置、刻度等。l这些属性可在前面板设置这些属性可在前面板设置(第二章中介绍了)第二章中介绍了),也可以在程序中自动控制。,也可以在程序中自动控制。
50、l前面板对象属性在程序中的设置与读取是通前面板对象属性在程序中的设置与读取是通过属性节点来进行的。过属性节点来进行的。第四十八页,本课件共有54页虚拟仪器虚拟仪器49 为前面板对象创建属性节点的简便方法是在前面板对象或为前面板对象创建属性节点的简便方法是在前面板对象或它的程序框图接线端上弹出快捷菜单,选择它的程序框图接线端上弹出快捷菜单,选择“创建创建属性节属性节点点”命令,在下一级菜单上是该控件的全部属性。命令,在下一级菜单上是该控件的全部属性。5-9-1 控件属性节点创建与设置控件属性节点创建与设置第四十九页,本课件共有54页虚拟仪器虚拟仪器505-9-1 控件属性节点创建与设置控件属性节