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