控制程序运行的结构讲稿.ppt
《控制程序运行的结构讲稿.ppt》由会员分享,可在线阅读,更多相关《控制程序运行的结构讲稿.ppt(54页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、虚拟仪器虚拟仪器沈阳工业大学沈阳工业大学 颜华颜华关于控制程序运行的结构1第一页,讲稿共五十四页哦虚拟仪器虚拟仪器2第第5章章 控制程序运行的结构控制程序运行的结构l结构是一种程序流程控制节点,它们在程序框图中的外形一般是一个大小可以缩放的边框,当它与其它节点的连线有数据传递过来时,边框内的一段代码或者反复执行、或者有条件执行、或者按照一定顺序执行。l结构内的一段代码叫做子程序框图;结构边框上数据输入输出的接线端叫隧道。第二页,讲稿共五十四页哦虚拟仪器虚拟仪器3隧道隧道的创建方法的创建方法(1)将将结结构构外外的的端端子子连连接接到到结结构构内内的的端端子子,连连接接后结构边框上将出现一个表示
2、隧道的矩形框;后结构边框上将出现一个表示隧道的矩形框;(2)通通过过将将外外部部端端子子连连接接到到结结构构边边框框来来创创建建隧隧道道,然后再进一步将创建的隧道连接到内部端子;然后再进一步将创建的隧道连接到内部端子;lFor循循环环和和While循循环环支支持持自自动动索索引引。当当表表示示隧隧道道的的矩矩形形框框是是实实心心时时,表表示示禁禁止止自自动动索索引引,是是空空心时表示自动索引。心时表示自动索引。第三页,讲稿共五十四页哦虚拟仪器虚拟仪器45-1 For循环循环5-1-1 For循环的建立在结构子选板中选中在结构子选板中选中For循环图标,在所有应在循环图标,在所有应在For循环内
3、执行的节点左上角单击一下循环内执行的节点左上角单击一下鼠标,然后按住鼠标向右下角拖动,直到虚线框包围所有应在鼠标,然后按住鼠标向右下角拖动,直到虚线框包围所有应在For循环内执行的节点,松开循环内执行的节点,松开鼠标手,就得到一个大小和位置满意的边框。也可以先放好一个边框,再向里面添代码。鼠标手,就得到一个大小和位置满意的边框。也可以先放好一个边框,再向里面添代码。第四页,讲稿共五十四页哦虚拟仪器虚拟仪器5For 循循环环有有两两个个固固定定的的接接线线端端。For循循环环边边框框内内的的代代码码(子子框框图图)循环执行一定次数。循环执行一定次数。l总总线线接接线线端端为为输输入入接接线线端端
4、,除除非非使使用用自自动动索索引引功功能能,否否则则都都要要在在For框框外外,为为总总线线接接线线端端连连接接一一32位位整整型型数数(其其它它类类型型会会强强制转换为最接近的整型数),指定循环执行的次数。制转换为最接近的整型数),指定循环执行的次数。l计计数数接接线线端端是是输输出出接接线线端端,输输出出循循环环当当前前执执行行的的次次数数,循循环环次次数数从从0开始计数。开始计数。l可以从循环外边连接一个数值到总线接线端,显性地设置循可以从循环外边连接一个数值到总线接线端,显性地设置循环次数,也可以利用自动索引隐含地设置循环次数。环次数,也可以利用自动索引隐含地设置循环次数。For循环的
5、接线端循环的接线端第五页,讲稿共五十四页哦虚拟仪器虚拟仪器65-1-2 For循环的时间控制与数据传递循环的时间控制与数据传递l满足循环条件情况下,循环结构在一次结束后将尽快开始满足循环条件情况下,循环结构在一次结束后将尽快开始执行下一次循环。执行下一次循环。l控制循环速度的最常用方法是使用控制循环速度的最常用方法是使用“编程编程定时定时”函数子选板函数子选板中的中的“等待下一个整数倍毫秒等待下一个整数倍毫秒”,程序执行到该函数时将等程序执行到该函数时将等待到它的待到它的“毫秒计时值毫秒计时值”变为输入的变为输入的“毫秒倍数毫秒倍数”参数的整参数的整数倍。因此可以控制循环按照固定的时间间隔执行
6、。数倍。因此可以控制循环按照固定的时间间隔执行。l循环结构通道上的数据在循环执行第一次时进入循环框内,以循环结构通道上的数据在循环执行第一次时进入循环框内,以后循环执行过程中将不再理会该数据的变化;循环结构执行完后循环执行过程中将不再理会该数据的变化;循环结构执行完后,才传递出数据。后,才传递出数据。第六页,讲稿共五十四页哦虚拟仪器虚拟仪器75-1-2 For循环的时间控制与数据传递循环的时间控制与数据传递循环结构的循环结构的 时间控制与数据传递时间控制与数据传递.vi都不能实现都不能实现100次循环过程中用滑钮控制曲线变化次循环过程中用滑钮控制曲线变化如果如果For循环内的程序执行完以后,用
7、时不足循环内的程序执行完以后,用时不足100ms,则等待到,则等待到100ms后再开始下一次循环。如后再开始下一次循环。如果循环内的程序在果循环内的程序在100ms内没有执行完,则在程序执行完后再开始下一次循环,即保证内没有执行完,则在程序执行完后再开始下一次循环,即保证程序执行时间不会少于程序执行时间不会少于100ms。第七页,讲稿共五十四页哦虚拟仪器虚拟仪器85-1-3For循环对数组的自动索引l自动索引是指使循环框外面的数组成员自动索引是指使循环框外面的数组成员(随着循环的进行)(随着循环的进行)逐个逐个依次进入循环框内,或使循环框内的数据累加成一个数组依次进入循环框内,或使循环框内的数
8、据累加成一个数组输出到循环框外面的功能输出到循环框外面的功能(该数组要在循环结束后一次输(该数组要在循环结束后一次输出!)出!)。l使用自动索引功能时,从循环框外连接到输入通道的二维数使用自动索引功能时,从循环框外连接到输入通道的二维数组将索引出一维数组,从一维数组将索引出单个成员。与此组将索引出一维数组,从一维数组将索引出单个成员。与此相反,在循环的输出边框,单个元素依次累加为一维数组,相反,在循环的输出边框,单个元素依次累加为一维数组,一维数组累加成为二维数组。一维数组累加成为二维数组。lFor循环和循环和While循环都支持自动索引。但连接到循环都支持自动索引。但连接到For循环循环的数
9、组默认为自动索引,而连接到的数组默认为自动索引,而连接到While循环的数组默认为不循环的数组默认为不能自动索引。在通道上右击鼠标弹出菜单可选能自动索引。在通道上右击鼠标弹出菜单可选”禁用索引禁用索引“或或”启用索引启用索引“。第八页,讲稿共五十四页哦虚拟仪器虚拟仪器9 里层的里层的For循环将循环将6次执行时的循次执行时的循环次数累加成一个一维数组环次数累加成一个一维数组05输出;输出;外层外层For循环依次为这个一维数组各循环依次为这个一维数组各个成员加上当前循环数,最后将个成员加上当前循环数,最后将8次次循环的循环的8个一维数组累加成二维数个一维数组累加成二维数组输出。组输出。ab 外层
10、的外层的For循环每执行一循环每执行一次循环从二维数组中索引出一次循环从二维数组中索引出一行;里层的行;里层的For循环每执行一循环每执行一次从一维数组中索引出一个成次从一维数组中索引出一个成员。员。在循环外边连接一个数值到计数端口,可显示地设置计数值;也在循环外边连接一个数值到计数端口,可显示地设置计数值;也可使用自动索引隐含设置计数值,此时可使用自动索引隐含设置计数值,此时For循环的执行次数循环的执行次数 对于一维对于一维数组等于数组长度,即把所有数组元素索引完为止;对于二维数组等数组等于数组长度,即把所有数组元素索引完为止;对于二维数组等于数组行数,即一次索引于数组行数,即一次索引1行
11、,将所有行索引完。行,将所有行索引完。如果连接了计数端口值,同时还有其它数组执行自动索引进入如果连接了计数端口值,同时还有其它数组执行自动索引进入循环,则循环按照其中的最小次数进行。循环,则循环按照其中的最小次数进行。自动索引自动索引.vi第九页,讲稿共五十四页哦虚拟仪器虚拟仪器105-1-3 For循环对数组的自动索引循环对数组的自动索引 在循环外边连接一个数值到计数端口,可显示地设置计数值;也可使用自动索在循环外边连接一个数值到计数端口,可显示地设置计数值;也可使用自动索引隐含设置计数值,此时引隐含设置计数值,此时For循环的执行次数循环的执行次数 对于一维数组等于数组长度,即把所有对于一
12、维数组等于数组长度,即把所有数组元素索引完为止;对于二维数组等于数组行数,即一次索引数组元素索引完为止;对于二维数组等于数组行数,即一次索引1行,将所有行索引行,将所有行索引完。完。如果连接了计数端口值,同时还有其它数组执行自动索引进入循环,则如果连接了计数端口值,同时还有其它数组执行自动索引进入循环,则循环按照其中的最小次数进行。循环按照其中的最小次数进行。自动索引自动索引.vi第十页,讲稿共五十四页哦虚拟仪器虚拟仪器115-1-4 移位寄存器和反馈节点移位寄存器和反馈节点1.移位寄存器移位寄存器(1)建立移位寄存器建立移位寄存器 移位寄存器从一个循环向下一个循环传递数据。移位寄存器从一个循
13、环向下一个循环传递数据。For循环和循环和While循环都可以使用移位寄存器。创建移位寄存器的方法是在循环的左循环都可以使用移位寄存器。创建移位寄存器的方法是在循环的左边框或右边框上弹出快捷菜单,然后选择边框或右边框上弹出快捷菜单,然后选择“添加移位寄存器添加移位寄存器”。l一个一个WhileWhile循环或循环或ForFor循环可建立多个移位寄存器。循环可建立多个移位寄存器。l移位寄存器可以保存任何类型的数据,数值型、布尔型、字符移位寄存器可以保存任何类型的数据,数值型、布尔型、字符串和数组等。移位寄存器自动适应连接到它端口的第一个数据串和数组等。移位寄存器自动适应连接到它端口的第一个数据的
14、类型。的类型。l刚创建的移位寄存器包含两个相对的端口,分别位于循环刚创建的移位寄存器包含两个相对的端口,分别位于循环竖直的左右边框上。右边端口存储循环结束时的数据,到竖直的左右边框上。右边端口存储循环结束时的数据,到下一循环开始时该数据出现在左边端口上。下一循环开始时该数据出现在左边端口上。l左边端口可以增加附加端口以存储多次循环的值,方法是用定左边端口可以增加附加端口以存储多次循环的值,方法是用定位与选择工具拖动端口的方型缩放手柄,或弹出快捷菜单选位与选择工具拖动端口的方型缩放手柄,或弹出快捷菜单选“添加元素添加元素”。第十一页,讲稿共五十四页哦虚拟仪器虚拟仪器125-1-4 移位寄存器和反
15、馈节点移位寄存器和反馈节点移位寄存器移位寄存器 (2)移位寄存器传递数据的方移位寄存器传递数据的方法法 程序在循环开始前为移位寄存器左程序在循环开始前为移位寄存器左边边3个接线端都赋初始值个接线端都赋初始值5。循环开始执行后循环数循环开始执行后循环数i不断送入右边框不断送入右边框的移位寄存器接线端,并在每次循环结束的移位寄存器接线端,并在每次循环结束时转移到左侧移位寄存器接线端。时转移到左侧移位寄存器接线端。到下一次循环时这个循环数就出现在到下一次循环时这个循环数就出现在移位寄存器左边最上边的接线端中。而在移位寄存器左边最上边的接线端中。而在每次循环中,移位寄存器左边各接线端的每次循环中,移位
16、寄存器左边各接线端的值都向下移动一位。值都向下移动一位。到循环全部结束时,右侧接线端的数到循环全部结束时,右侧接线端的数值转移到左侧接线端的同时,输出到循环值转移到左侧接线端的同时,输出到循环边框外。边框外。第十二页,讲稿共五十四页哦虚拟仪器虚拟仪器135-1-4 移位寄存器和反馈节点移位寄存器和反馈节点移位寄存器移位寄存器(2)移位寄存器传递数据的方法移位寄存器传递数据的方法用移位寄存器求最大值用移位寄存器求最大值 如果要初始化移位寄存器,就必须为所有的左侧端口都赋值,而且如果要初始化移位寄存器,就必须为所有的左侧端口都赋值,而且要用同样的数据类型。要用同样的数据类型。求最大值求最大值.vi
17、第十三页,讲稿共五十四页哦虚拟仪器虚拟仪器14(3)移位寄存器的初始化移位寄存器的初始化l除非显式地初始化移位寄存器,否则当首次执行除非显式地初始化移位寄存器,否则当首次执行VI时,移位寄时,移位寄存器将初始化为移位寄存器相应数据类型的默认值,(布存器将初始化为移位寄存器相应数据类型的默认值,(布尔型为尔型为False,数字型为,数字型为0)。)。l存储在移位寄存器中的数据直到关闭存储在移位寄存器中的数据直到关闭VI才在内存中消除,如果运才在内存中消除,如果运行的行的VI包含未初始化的移位寄存器,在以后执行时,移位寄包含未初始化的移位寄存器,在以后执行时,移位寄存器获得的初始值将是以前执行后的
18、最终值。由于这种情存器获得的初始值将是以前执行后的最终值。由于这种情况难于检测,可能使况难于检测,可能使VI调试变得困难。调试变得困难。l有时应用移位寄存器就是为了在程序的一系列执行过程有时应用移位寄存器就是为了在程序的一系列执行过程中传递数据,这时就不能对移位寄存器初始化。中传递数据,这时就不能对移位寄存器初始化。第十四页,讲稿共五十四页哦虚拟仪器虚拟仪器155-1-4 移位寄存器和反馈节点移位寄存器和反馈节点2.反馈节点反馈节点自动创建反馈节自动创建反馈节 当当For循环或循环或While循环边框比较大时,使用移位寄存器循环边框比较大时,使用移位寄存器会造成过长的连线,因此会造成过长的连线
19、,因此LabVIEW提供了反馈节点。在提供了反馈节点。在For循环或循环或While循环中,当我们把一个节点的输出连接到它的循环中,当我们把一个节点的输出连接到它的输入时,连线中会自动插入一个反馈节点,同时自动创建了输入时,连线中会自动插入一个反馈节点,同时自动创建了一个初始化接线端。一个初始化接线端。第十五页,讲稿共五十四页哦虚拟仪器虚拟仪器165-1-4 移位寄存器和反馈节点移位寄存器和反馈节点2.反馈节点反馈节点反馈节点的数据传递反馈节点的数据传递 反馈节点的箭头方向表示数据流方向。反馈节点有两个端口:反馈节点的箭头方向表示数据流方向。反馈节点有两个端口:(1)输入端口:在每次循环结束时
20、将)输入端口:在每次循环结束时将当前值当前值存入;存入;(2)输出端口:在每次循环开始时将)输出端口:在每次循环开始时将上一次循环存入的值上一次循环存入的值输出。输出。反馈节点的数据传递反馈节点的数据传递.vi第十六页,讲稿共五十四页哦虚拟仪器虚拟仪器175-2 While循环循环lWhile循环控制程序反复执行一段代码,直到某个条循环控制程序反复执行一段代码,直到某个条件发生。件发生。l建立建立While循环的方法与循环的方法与For循环是一样的。循环是一样的。lWhile 循环有两个固定的接线端。循环有两个固定的接线端。“循环计数循环计数“是是一个输出接线端,它输出循环当前执行的次数。循一
21、个输出接线端,它输出循环当前执行的次数。循环数是从环数是从0开始计数的。开始计数的。“循环条件循环条件”是一个布尔量是一个布尔量输入接线端。程序在每次循环结束时检查条件接线端。输入接线端。程序在每次循环结束时检查条件接线端。因此,因此,While循环总是至少执行一次。循环总是至少执行一次。第十七页,讲稿共五十四页哦虚拟仪器虚拟仪器185-2 While循环循环lWhile循环终止条件l死循环当条件端口连接一个出错信息簇,则当条件端口连接一个出错信息簇,则默认设置是默认设置是Stop on Error,即遇,即遇到已发生错误的信息退出循环;到已发生错误的信息退出循环;在条件端口弹出菜单可将设置改
22、在条件端口弹出菜单可将设置改为为Continue While Error。如果产生循环终止条件的数据如果产生循环终止条件的数据源放置在源放置在While循环的外边,根循环的外边,根据初始值的不同,可创建无限据初始值的不同,可创建无限循环或仅执行循环或仅执行1次的循环。因为次的循环。因为G程序是在进入循环之前读取数据源的程序是在进入循环之前读取数据源的数据值,进入循环后将不再理会循环数据值,进入循环后将不再理会循环框外面数据的变化框外面数据的变化数据流编程!数据流编程!第十八页,讲稿共五十四页哦虚拟仪器虚拟仪器19lWhile循环的自动索引、循环时间控制方法以及移位寄存循环的自动索引、循环时间控
23、制方法以及移位寄存器的使用类似于器的使用类似于for循环。循环。l由于由于while循环次数不是事先确定的,因此使用数组自动索引功循环次数不是事先确定的,因此使用数组自动索引功能时应注意:能时应注意:(1)如个数组成员已经索引告罄,则)如个数组成员已经索引告罄,则LabVIEW自动在后面自动在后面追加缺省值,数字型的缺省值为追加缺省值,数字型的缺省值为0,布尔型为,布尔型为false。(2)while循环使用自动索引时输出数组长度也是事先未知的。循环使用自动索引时输出数组长度也是事先未知的。第十九页,讲稿共五十四页哦虚拟仪器虚拟仪器205-3 定时循环定时循环l如果需要对循环的执行时间进行更精
24、确的控制和增加更多控制功能,可以使用定时循环。定时循环定时循环.vi右边框内的输出节点默认情况下只显示一个错误信息接线端,这里选右边框内的输出节点默认情况下只显示一个错误信息接线端,这里选择为择为dt,连接了一个输入型控件,使得程序可以在执行中改变循环连接了一个输入型控件,使得程序可以在执行中改变循环的速度。的速度。第二十页,讲稿共五十四页哦虚拟仪器虚拟仪器215-4 条件结构条件结构条件结构类似于文本编程语言中的条件结构类似于文本编程语言中的If Then Else语句。语句。条件结构包含有两个以上子程序框图,每个子程序框图中条件结构包含有两个以上子程序框图,每个子程序框图中的一段程序代码对
25、应一个条件分支,程序运行时选择其中的一的一段程序代码对应一个条件分支,程序运行时选择其中的一段执行。这些代码框像一叠卡片一样重叠在一起,一次只能看段执行。这些代码框像一叠卡片一样重叠在一起,一次只能看到一张。到一张。第二十一页,讲稿共五十四页哦虚拟仪器虚拟仪器225-4 条件结构条件结构5-4-1 条件结构的建立条件结构的建立单击递减箭头和递增箭头可分别查看或编辑前一个或后单击递减箭头和递增箭头可分别查看或编辑前一个或后一个子框图。在子框图表示上单击鼠标左键,则出现所一个子框图。在子框图表示上单击鼠标左键,则出现所有存在的子框图名,可以选择显示其中的任一个。有存在的子框图名,可以选择显示其中的
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 控制程序 运行 结构 讲稿
限制150内