控制程序运行的结构精选课件.ppt
《控制程序运行的结构精选课件.ppt》由会员分享,可在线阅读,更多相关《控制程序运行的结构精选课件.ppt(54页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
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 条件结构的建立条件结构的建立单击递减箭头和递增箭头可分别查看或编辑前一个或单击递减箭头和递增箭头可分别查看或编辑前一个或后一个子框图。在子框图表示上单击鼠标左键,则出后一个子框图。在子框图表示上单击鼠标左键,则出现所有存在的子框图名,可以选择显示其中的任一个。现所有存在的子框图名,可以选择显示其中的
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 控制程序 运行 结构 精选 课件
限制150内