LabVIEW_顺序结构_第1页
LabVIEW_顺序结构_第2页
LabVIEW_顺序结构_第3页
LabVIEW_顺序结构_第4页
LabVIEW_顺序结构_第5页
已阅读5页,还剩35页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、四、顺序结构四、顺序结构uLabVIEW_ _数据流运行机制数据流运行机制 传统的编程语言,传统的编程语言,程序运行是基于程序编码的顺序程序运行是基于程序编码的顺序,是指令驱,是指令驱动的动的代码流代码流。LabVIEW 的运行机制的运行机制是基于数据流的是基于数据流的。也就是说:。也就是说:当程序中的可执行元素(节点)在收到所有必须的输入数据时才当程序中的可执行元素(节点)在收到所有必须的输入数据时才开始执行。当该元素内的所有代码执行完成后,数据才流出该执开始执行。当该元素内的所有代码执行完成后,数据才流出该执行元素并流向其他元素。行元素并流向其他元素。 数据流的概念源于电子表格的数据处理思

2、路。数据流的概念源于电子表格的数据处理思路。例如例如,在电子表,在电子表格中你可以指定一个公式与某些单元格建立数据关联,当这些单格中你可以指定一个公式与某些单元格建立数据关联,当这些单元格的所有数据都有效时,公式才会给出最终的计算结果。当任元格的所有数据都有效时,公式才会给出最终的计算结果。当任一单元的数据发生变化时,将会按公式重新进行计算。一单元的数据发生变化时,将会按公式重新进行计算。 数据流机制数据流机制更适合图形化编程语言,在图形化编程语言中,它更适合图形化编程语言,在图形化编程语言中,它起着起着数据传递数据传递和图形化和图形化程序运行控制程序运行控制的双重作用。而且数据流机的双重作用

3、。而且数据流机制具有制具有并发性并发性,可以使程序并行执行,大大提高运行效率。,可以使程序并行执行,大大提高运行效率。 必须牢记:必须牢记:LabVIEW 采用的采用的数据流运行机制数据流运行机制是依赖数是依赖数据来驱动的。这是初学者要认真注意的问题,忽略这个据来驱动的。这是初学者要认真注意的问题,忽略这个问题将会给程序设计带来麻烦乃至灾难。问题将会给程序设计带来麻烦乃至灾难。 数据流编程机制数据流编程机制为用户带来了方便,但同时也在为用户带来了方便,但同时也在某些方面存在不足。比如,程序框图中如果两个节某些方面存在不足。比如,程序框图中如果两个节点同时满足执行条件,则会同时执行。但在实际问点

4、同时满足执行条件,则会同时执行。但在实际问题中往往需要二者按一定先后顺序执行的话,则数题中往往需要二者按一定先后顺序执行的话,则数据流编程将不能满足要求。为此据流编程将不能满足要求。为此 LabVIEW 引入了引入了顺序结构,顺序结构,强行规定程序的执行顺序强行规定程序的执行顺序。u为什么要引入顺序结构?为什么要引入顺序结构? 顺序结构将按照既定的顺序依次执行,它可以包含顺序结构将按照既定的顺序依次执行,它可以包含多个代码子框图,这些子框图看起来就像是多帧电影多个代码子框图,这些子框图看起来就像是多帧电影一样,所以把每个子框图称为一帧。一样,所以把每个子框图称为一帧。 顺序结构分为顺序结构分为

5、平铺式平铺式和和层叠式层叠式两种,二者表现形式两种,二者表现形式不同,但其基本功能则完全相同。不同,但其基本功能则完全相同。1.1. 功能和作用功能和作用2.2.所在位置所在位置 函数函数编程编程结构结构平铺式平铺式 层叠式层叠式顺序结构顺序结构l 基本特性:基本特性:3.3.基本结构基本结构. 平铺式:平铺式:按左右顺序依次排列按左右顺序依次排列 右击右击右边右边框,框,向后添向后添加一帧加一帧右击右击内边框,内边框,可向后插入一可向后插入一帧或合并帧帧或合并帧 右击右击左边左边框,框,向前插向前插入一帧入一帧顺序不变性:顺序不变性:平铺式结构各框架之间的顺序不能改变,但平铺式结构各框架之间

6、的顺序不能改变,但可以先变换成层叠式再还原成平铺式进行改变。可以先变换成层叠式再还原成平铺式进行改变。传输特性:传输特性:由于该结构各帧都是平铺可见的,因此各帧之由于该结构各帧都是平铺可见的,因此各帧之间的数据可以直接传输,无须借助局部变量进行。间的数据可以直接传输,无须借助局部变量进行。l 基本操作:基本操作:添加空白帧:右击添加空白帧:右击相应边框,通过快捷菜单添加、插相应边框,通过快捷菜单添加、插入空白帧或合并帧。入空白帧或合并帧。增量按钮:增量按钮:向后翻页向后翻页. .层叠式:层叠式:按上下顺序层叠排列按上下顺序层叠排列选择器标签:选择器标签:以序号的形式标以序号的形式标示各子框页的

7、基示各子框页的基本信息。本信息。减量按钮:减量按钮:向前翻页向前翻页 l 基本特性:基本特性:顺序可变性:顺序可变性:层叠式结构各框图由各自的序号进行区别,按照层叠式结构各框图由各自的序号进行区别,按照从小到大的顺序执行。顺序(号)可通过右击边框的从小到大的顺序执行。顺序(号)可通过右击边框的【本帧设本帧设置为置为】进行调整改变。进行调整改变。传输特性:传输特性:由于该结构各帧是向下层叠不可见的,因此各帧之由于该结构各帧是向下层叠不可见的,因此各帧之间的数据必须借助间的数据必须借助局部变量局部变量进行传输。进行传输。l 基本操作:基本操作:添加空白帧:添加空白帧:右击边框,可通过快捷菜单向前、

8、向后添加帧。右击边框,可通过快捷菜单向前、向后添加帧。添加局部变量:添加局部变量:右击边框,右击边框,【添加顺序局部变量添加顺序局部变量】,所添加的,所添加的变量为蓝色箭头标记变量为蓝色箭头标记 数据源、数据源、 传入端。传入端。u应用举例:应用举例:产生随机数直到等于给定数时显示所需时间与执行次数产生随机数直到等于给定数时显示所需时间与执行次数l采用平铺式顺序结构采用平铺式顺序结构通过数据通道传递数据通过数据通道传递数据l采用层叠式:采用层叠式: . .新建新建 VIVI,在前面板上放置数值输入控,在前面板上放置数值输入控件件“给定数据给定数据”和两个数值显示控件和两个数值显示控件“执行次数

9、执行次数”,“所需时间所需时间”。 . .在程序框图上放置一个层叠式顺序结在程序框图上放置一个层叠式顺序结构,在右击结构框图边框的快捷菜单中构,在右击结构框图边框的快捷菜单中执行两次执行两次“在后面添加帧在后面添加帧”,创建,创建 帧帧 1 1和和帧帧2 2。 . .选取第选取第 0 0 帧,记录程序运行初始时间。帧,记录程序运行初始时间。 右击结构框图边框右击结构框图边框 “添加顺序局部变量添加顺序局部变量”,将在下边框出,将在下边框出现现黄色小方框黄色小方框,这就是顺序局部变量,用来在层叠顺序结构中各,这就是顺序局部变量,用来在层叠顺序结构中各帧之间传递数据。帧之间传递数据。 放置放置时间

10、计数器时间计数器到顺序结构内记录程序运行时的初始时间,并到顺序结构内记录程序运行时的初始时间,并与顺序局部变量相连,此时黄色框内将会出现一个指向顺序结构与顺序局部变量相连,此时黄色框内将会出现一个指向顺序结构外部的箭头用以向外传递数据。外部的箭头用以向外传递数据。时间计数器时间计数器位于:位于:函数函数编程编程定时定时时间计数器时间计数器。 . .选取第选取第 1 1 帧,实现等于给定值的帧,实现等于给定值的匹配运算匹配运算程序如图:程序如图: . .选取第选取第 2 2 帧,同样放置一个时间计帧,同样放置一个时间计数器用于返回当前时间,将它减去顺数器用于返回当前时间,将它减去顺序局部变量传递

11、过来的第序局部变量传递过来的第 0 0 帧初始时帧初始时间即可得到花费的时间,如图:间即可得到花费的时间,如图:. .运行结果:运行结果:注意:注意:Labview 编程的主要特点是数据流形式,这便于编程的主要特点是数据流形式,这便于VI大量的按照并行方式运行,优化了程序的计算性能。而大量的按照并行方式运行,优化了程序的计算性能。而顺序结构却趋向于中断数据流编程,禁止程序的并行操顺序结构却趋向于中断数据流编程,禁止程序的并行操作,顺序结构还掩盖了部分代码,所以用户在编程时应作,顺序结构还掩盖了部分代码,所以用户在编程时应尽量不用或少用顺序结构。尽量不用或少用顺序结构。 在实际应用中,经常用人为

12、的在实际应用中,经常用人为的数据依从关系来确定程序先后执数据依从关系来确定程序先后执行的顺序,在前面簇的章节中,行的顺序,在前面簇的章节中,我们就提到过我们就提到过 ErrorError簇可以控制簇可以控制程序执行的先后顺序,但并不是程序执行的先后顺序,但并不是每一个控件都有每一个控件都有 ErrorError簇的输入簇的输入和输出端口,这时还有另一种方和输出端口,这时还有另一种方法能实现顺序执行的功能。法能实现顺序执行的功能。如图如图 从第一个从第一个 While 循环结构中的循环结构中的布尔开关上连了一根线到第二个布尔开关上连了一根线到第二个 While 循环结构的边框上,可以循环结构的边

13、框上,可以看到,第二个看到,第二个 While 循环结构中循环结构中没有一个对象需要这个数据,只是没有一个对象需要这个数据,只是起到顺序执行程序的目的。起到顺序执行程序的目的。 五、局部变量和全局变量五、局部变量和全局变量 局部变量和全局变量是局部变量和全局变量是 LabVIEW用来用来传递数据传递数据的工具。的工具。 LabVIEW 编程是一种数据流编程,它是通过连线来传编程是一种数据流编程,它是通过连线来传递数据的。但是如果一个程序太复杂的话,有时连线会很递数据的。但是如果一个程序太复杂的话,有时连线会很困难甚至无法连接,这时就需要用变量进行数据传递。困难甚至无法连接,这时就需要用变量进行

14、数据传递。 另外,也会经常遇到这样一种情况,对程序中一个控件另外,也会经常遇到这样一种情况,对程序中一个控件对象,希望对象,希望既能写入数据,又能读出数据既能写入数据,又能读出数据,这在数据流编,这在数据流编程中是无法实现的,这也需要用局部变量或全局变量代替程中是无法实现的,这也需要用局部变量或全局变量代替该控件来实现。该控件来实现。 局部变量主要用于局部变量主要用于本本VI内内不同位置之间的数据传递,而不同位置之间的数据传递,而全局变量主要是针对全局变量主要是针对不同不同VI程序之间的数据通信。程序之间的数据通信。 谈到局部变量,其实在介绍顺序结构时就已经接触过了,当时谈到局部变量,其实在介

15、绍顺序结构时就已经接触过了,当时是添加顺序局部变量来传递程序初始时间,以便计算程序所执行是添加顺序局部变量来传递程序初始时间,以便计算程序所执行的时间。目的是在不同选择分支中都能够对指示器进行赋值。的时间。目的是在不同选择分支中都能够对指示器进行赋值。 另一种方法是:另一种方法是:在右在右 击控件对象的快捷菜击控件对象的快捷菜 单中执行单中执行 “创建创建局局 部变量部变量”, ,如图如图 1.1.局部变量局部变量u建立局部变量:建立局部变量:建立局部变量的方法有两种。建立局部变量的方法有两种。 一种一种方法是:方法是:在程序框图中直接添加,在程序框图中直接添加,如图:如图:如此创建的变量属于

16、裸变量,必须在如此创建的变量属于裸变量,必须在右击图标的快捷菜单中,与前面板相右击图标的快捷菜单中,与前面板相应控件进行关联方可有效。应控件进行关联方可有效。u局部变量的应用局部变量的应用 该例的目的在于使用局部变量向它联系的前面板上的该例的目的在于使用局部变量向它联系的前面板上的电流控件写数据,也可以从电流控件读取数据。程序框电流控件写数据,也可以从电流控件读取数据。程序框图如图所示:图如图所示: 程序的目的是检验电流量,如果电流大于程序的目的是检验电流量,如果电流大于5A5A时,则限时,则限定电流量为上限定电流量为上限5A5A,这时电流局部变量为,这时电流局部变量为写入状态写入状态,可,可

17、以向它写入数据以向它写入数据5A5A;如果电流小于;如果电流小于5A5A时,则将电流通过时,则将电流通过一个一个 “电流显示器电流显示器” 来显示,这时就需要将电流局部来显示,这时就需要将电流局部变量改变为变量改变为读取状态读取状态,方法是在快捷菜单上执行,方法是在快捷菜单上执行 “转转化为读取化为读取” 命令。命令。 全局变量与局部变量不同,它是在不同的程序之间进行全局变量与局部变量不同,它是在不同的程序之间进行通信。通信。LabVIEW 的全局变量是一个独立的的全局变量是一个独立的VI,它是一种,它是一种特殊的程序,没有程序框图只有前面板,功能是保存一个特殊的程序,没有程序框图只有前面板,

18、功能是保存一个或多个全局变量,所以也把全局变量程序称为或多个全局变量,所以也把全局变量程序称为容器。容器。u建立全局变量:建立全局变量: 它的建立和局部变量类似,将它的建立和局部变量类似,将全局变量拖放到程序框图中,在全局变量拖放到程序框图中,在它的快捷菜单中执行它的快捷菜单中执行 “打开前面打开前面板板 ”,或双击全局变量图标,打或双击全局变量图标,打开全局变量程序前面板,然后在开全局变量程序前面板,然后在前面板中添加所需要的全局变量前面板中添加所需要的全局变量控件,如图,添加了控件,如图,添加了 3 3个全局变个全局变量,并保存量,并保存VI。 2.2.全局变量:全局变量:u全局变量的应用

19、:全局变量的应用:建立了全局变量以后就可以在其他程建立了全局变量以后就可以在其他程序里调用它,方法是在程序框图上选中序里调用它,方法是在程序框图上选中“选择选择VI.VI.”,如图:如图: 在打开的对话框窗体中为程序选择想要放置的全局变量。在打开的对话框窗体中为程序选择想要放置的全局变量。如果最先放置的不是想要的全局变量,可以像对局部变量如果最先放置的不是想要的全局变量,可以像对局部变量那样操作,在快捷菜单上选取那样操作,在快捷菜单上选取“选择项选择项”子选项,在列出子选项,在列出的所有变量对象中进行选择,或者用操作工具来选择。的所有变量对象中进行选择,或者用操作工具来选择。 注意:注意:使用

20、全局变量时必须特别小心,因为它对所有的使用全局变量时必须特别小心,因为它对所有的 LabVIEW 程序都是通用的,稍有不慎就可能互相干扰,用户必须清楚的知道程序都是通用的,稍有不慎就可能互相干扰,用户必须清楚的知道全局变量的读写位置。全局变量的读写位置。 LabVIEW LabVIEW 语言编程是一种数据流,全局变量和局部变量语言编程是一种数据流,全局变量和局部变量提供了一种违反严格数据流的程序设计方式。大家有必要提供了一种违反严格数据流的程序设计方式。大家有必要了解竞态条件的缺陷,当两个或两个以上的事件可以按任了解竞态条件的缺陷,当两个或两个以上的事件可以按任何顺序发生时就产生了竞态条件。用

21、户要想知道再多个并何顺序发生时就产生了竞态条件。用户要想知道再多个并行的程序中一个全局变量什么时候被访问是比较困难的。行的程序中一个全局变量什么时候被访问是比较困难的。特别是再多线程编程中,对这种共享数据变量的竞态条件特别是再多线程编程中,对这种共享数据变量的竞态条件问题要求更加苛刻,使用全局变量会带来意想不到的错误。问题要求更加苛刻,使用全局变量会带来意想不到的错误。 如果用户的应用程序中有全局变量,那么就存在大量的如果用户的应用程序中有全局变量,那么就存在大量的数据复制的危险,因为用户要想在不同的地方对数据进行数据复制的危险,因为用户要想在不同的地方对数据进行处理,最终就有许多的数据备份,

22、造成内存的巨大开销和处理,最终就有许多的数据备份,造成内存的巨大开销和系统资源的浪费,所以建议初学者尽量不要使用全局变量。系统资源的浪费,所以建议初学者尽量不要使用全局变量。 如果程序中使用了全局变量或者是局部变量,那么在程如果程序中使用了全局变量或者是局部变量,那么在程序运行之前,必须首先要确定它的初始值是否满足执行要序运行之前,必须首先要确定它的初始值是否满足执行要求,如果不满足的话,就要对它们进行初始化求,如果不满足的话,就要对它们进行初始化u使用全局变量和局部变量的注意事项:使用全局变量和局部变量的注意事项:1.1.问题的提出问题的提出 面对面对 LabVIEW 基于数据流驱动的编程机

23、制,基于数据流驱动的编程机制,在某些情况下,希望改变在某些情况下,希望改变这种运行这种运行方式,赋予人方式,赋予人为控制或程序控制的因素,这就需要借助于为控制或程序控制的因素,这就需要借助于事件事件结构结构来实现。来实现。 所谓所谓事件事件是活动(动作)发生的异步通知,它是活动(动作)发生的异步通知,它将打破数据流驱动的模式,引入将打破数据流驱动的模式,引入事件驱动事件驱动的编程的编程机制。事件的触发来自机制。事件的触发来自用户控制、外部用户控制、外部 I/O或程或程序控制序控制。事件结构是面。事件结构是面向对象编程向对象编程的基础。的基础。 六、事件结构六、事件结构2. 事件结构的基本组成事

24、件结构的基本组成(程序程序结构结构事件结构)事件结构)事件选择标签事件选择标签超时端子超时端子事件数据节点事件数据节点 超时端子:超时端子:用于设定用于设定一个超时时限,以一个超时时限,以毫秒毫秒为单位。为单位。 其值为其值为-1-1时将永远处时将永远处于等待状态,直至指定于等待状态,直至指定事件触发为止。事件触发为止。 该值该值为为00的整数的整数时,时,指定事件在等待期间内指定事件在等待期间内若触发则已,否则若超若触发则已,否则若超时,将终止事件触发,时,将终止事件触发,并返回一个并返回一个超时事件超时事件。 事件数据节点:事件数据节点:由若干由若干个事件数据端子组成,用个事件数据端子组成

25、,用来设计事件过程,完成具来设计事件过程,完成具体的事件,实现特定功能体的事件,实现特定功能与操作。与操作。 事件选择标签:事件选择标签:用于标识当前用于标识当前显示子框图所处理的事件源,以显示子框图所处理的事件源,以折叠方式进行切换。折叠方式进行切换。说明:说明:如果单独使用一个事件过程,只能响应一次事件,为了能够持续响应多个事如果单独使用一个事件过程,只能响应一次事件,为了能够持续响应多个事 件,常将其嵌套在件,常将其嵌套在 While 循环中。循环中。 事件结构执行时,将事件结构执行时,将等待一个事前指定事件等待一个事前指定事件的触发,一旦该事件触的触发,一旦该事件触发,将执行相应的条件

26、发,将执行相应的条件分支。一个事件处理完分支。一个事件处理完毕后,事件结构的执行毕后,事件结构的执行即告完成。即告完成。 如果在如果在等待等待事件触发事件触发的过程中超时,将转去的过程中超时,将转去执行特定的执行特定的超时分支超时分支。事件的执行:事件的执行:u工作原理:工作原理:事件结构的工作原理犹如具有内置事件结构的工作原理犹如具有内置等待通知等待通知函数的函数的条件结构条件结构。事件结构可包含多个分支,一个分支即一个独立的事。事件结构可包含多个分支,一个分支即一个独立的事件处理程序。件处理程序。 一个分支配置可处理一个或多个事件,但每次只能一个分支配置可处理一个或多个事件,但每次只能触发

27、触发(发生)(发生)这些事件中的一个事件。这些事件中的一个事件。 u事件触发:事件触发:一般事件只能通过外在用户的动作来触发,如单击一般事件只能通过外在用户的动作来触发,如单击鼠标、按键等。如果需要内部数据触发事件(如当鼠标、按键等。如果需要内部数据触发事件(如当 abab 条件满足条件满足时触发一个事件),就需要用户自定义事件时触发一个事件),就需要用户自定义事件通过编程通过编程来实现。来实现。u事件驱动:事件驱动:事件驱动程序通常包含在一个条件循环中,该循环事件驱动程序通常包含在一个条件循环中,该循环等待事件的等待事件的触发触发并执行代码来响应事件,然后不断重复以等待下并执行代码来响应事件

28、,然后不断重复以等待下一个事件的一个事件的触发触发。 程序如何响应事件取决于为该事件所编写的代码。事件驱动程程序如何响应事件取决于为该事件所编写的代码。事件驱动程序的执行顺序取决于具体所发生的事件及事件发生的顺序。程序序的执行顺序取决于具体所发生的事件及事件发生的顺序。程序中的某些部分可能因其所处理的事件的频繁发生而频繁执行,而中的某些部分可能因其所处理的事件的频繁发生而频繁执行,而其它部分也可能由于相应事件从未发生而根本不执行。其它部分也可能由于相应事件从未发生而根本不执行。3、事件结构的建立、事件结构的建立. .摆放框图摆放框图(程序(程序结构结构事件结构)事件结构). .调出调出编辑事件

29、编辑事件对话框:对话框:右击边框右击边框【编辑本分支所处理事件编辑本分支所处理事件】. .构造事件:构造事件:一般面对前面板对象构造事件一般面对前面板对象构造事件事件源:事件源:将列出前将列出前面板所有对象,供面板所有对象,供用户选择事件源。用户选择事件源。事件:事件:给出事件给出事件列表,供用户选列表,供用户选择事件。择事件。事件说明符:事件说明符:事件事件编辑,进行事件的编辑,进行事件的增、删操作。增、删操作。事件类型:事件类型: 通知事件和过滤事件通知事件和过滤事件两种。分别用两种。分别用绿色绿色与与红色红色箭头进行区别。箭头进行区别。通知事件通知事件用于通知某个事件的触发,用于通知某个

30、事件的触发,过滤事件过滤事件用来控制在执行某个动作后,系统尚未响应之用来控制在执行某个动作后,系统尚未响应之前进行前进行提醒提醒。当事件发生时,用户可以过滤掉甚至完全放弃事件所触发的活动。当事件发生时,用户可以过滤掉甚至完全放弃事件所触发的活动。4、应用举例:、应用举例:n前面板前面板n后面板后面板. . 点击不同按钮,显示不同内容点击不同按钮,显示不同内容l前面板:前面板: 密码控制进行图片显示密码控制进行图片显示l后面板:后面板:七、定时结构七、定时结构-定时循环和定时顺序结构定时循环和定时顺序结构 在程序框图上使用定时循环或定时顺序结构,可实在程序框图上使用定时循环或定时顺序结构,可实现

31、需要现需要限时限时和和延时延时的操作。定时循环将重复执行,直的操作。定时循环将重复执行,直到停止条件被满足为止。到停止条件被满足为止。 定时顺序结构以特定结构执行代码一次。多帧定时定时顺序结构以特定结构执行代码一次。多帧定时循环用于在限时及延时条件下按特定顺序重复执行代循环用于在限时及延时条件下按特定顺序重复执行代码。码。 定时循环是以指定的时间间隔执行一个子程序或帧。定定时循环是以指定的时间间隔执行一个子程序或帧。定时循环结构可用于开发重复执行且包括其它功能的时循环结构可用于开发重复执行且包括其它功能的VIVI,如,如多速率定时功能、精确定时、循环执行时反馈、动态改变多速率定时功能、精确定时

32、、循环执行时反馈、动态改变定时功能或者多种执行优先级。定时功能或者多种执行优先级。 与与 While 循环不同,定时循环的循环不同,定时循环的条件接线端条件接线端不一定不一定 要要连线。但是,如定时循环的条件接线端未进行任何连线。但是,如定时循环的条件接线端未进行任何 连线,连线,循环将循环将无限运行无限运行下去。下去。1.1.定时循环结构定时循环结构 输入节点输入节点 左侧数据节点左侧数据节点 右侧数据节点右侧数据节点 输出节点输出节点 输入节点输入节点: :期限期限指定定时循环必须完成指定定时循环必须完成一次循环的时间一次循环的时间。如未给期限赋值,。如未给期限赋值,则期限等于周期。期限的

33、值相对于循环的开始时间,单位则期限等于周期。期限的值相对于循环的开始时间,单位由定时源指定。由定时源指定。错误错误在结构中传递错误。当接收到在结构中传递错误。当接收到错误状态错误状态时,定时循环将不时,定时循环将不执行。执行。模式模式指定定时循环处理执行延迟的方式。指定定时循环处理执行延迟的方式。共有五种模式:共有五种模式:无改无改变;根据初始状态处理错过的周期;忽略初始状态,处理变;根据初始状态处理错过的周期;忽略初始状态,处理错过的周期;放弃错过的周期,维持初始状态;忽略初始错过的周期;放弃错过的周期,维持初始状态;忽略初始状态,放弃错过的周期。状态,放弃错过的周期。名称名称指定定时循环的

34、名称。指定定时循环的名称。偏移量偏移量指定定时循环开始执行前的等待时间。偏移量的值相对于指定定时循环开始执行前的等待时间。偏移量的值相对于循环的开始时间,单位是定时源的绝对单位。循环的开始时间,单位是定时源的绝对单位。周期周期指定定时循环的周期,单位是定时源的相对单位。指定定时循环的周期,单位是定时源的相对单位。优先级优先级指定定时循环中的执行优先级。定时结构的优先级用于指定定时循环中的执行优先级。定时结构的优先级用于指定定时结构相对于程序框图上其它对象的执行开始时指定定时结构相对于程序框图上其它对象的执行开始时间。优先级的输入值必须为间。优先级的输入值必须为1 1到到6553565535之间

35、的正整数。之间的正整数。处理器处理器指定用于执行任务的处理器。默认值为指定用于执行任务的处理器。默认值为-2-2,即,即LabVIEWLabVIEW自自动分配处理器。如需手动分配处理器,可输入介于动分配处理器。如需手动分配处理器,可输入介于0 0和和255255之间的任意值,之间的任意值,0 0代表当前的处理器。输入值超过可代表当前的处理器。输入值超过可用处理器的数量时,可导致运行时错误,定时结构将停用处理器的数量时,可导致运行时错误,定时结构将停止执行。止执行。源名称源名称指定用于控制结构的定时源的名称。定时源必须通过指定用于控制结构的定时源的名称。定时源必须通过创创建定时源建定时源VIVI

36、在程序框图上创建,或从在程序框图上创建,或从配置定时循环配置定时循环对话对话框中选择。框中选择。超时超时指定定时循环开始执行前的最长等待时间。超时的值相指定定时循环开始执行前的最长等待时间。超时的值相对于定时循环的开始时间或上一次循环的结束时间,单对于定时循环的开始时间或上一次循环的结束时间,单位由帧定时源指定。位由帧定时源指定。输入节点输入节点: :右侧数据节点右侧数据节点:期限期限指定定时循环必须完成下一次循环的时间。期限的值相对指定定时循环必须完成下一次循环的时间。期限的值相对于下一次循环的开始时间,单位由定时源指定。默认值为于下一次循环的开始时间,单位由定时源指定。默认值为-1-1,表

37、示无改变。,表示无改变。错误错误将子程序框图中的错误传出定时循环。如错误接收到错误将子程序框图中的错误传出定时循环。如错误接收到错误状态,定时循环将结束当前循环,退出定时循环,并在输状态,定时循环将结束当前循环,退出定时循环,并在输出节点返回错误状态。出节点返回错误状态。模式模式指定定时循环下一次循环的模式。共有五种模式:无改变;指定定时循环下一次循环的模式。共有五种模式:无改变;根据初始状态处理错过的周期;忽略初始状态,处理错过根据初始状态处理错过的周期;忽略初始状态,处理错过的周期;放弃错过的周期,维持初始状态;忽略初始状态,的周期;放弃错过的周期,维持初始状态;忽略初始状态,放弃错过的周

38、期。放弃错过的周期。偏移量偏移量指定下一次循环开始执行前的等待时间。偏移量的值相对指定下一次循环开始执行前的等待时间。偏移量的值相对于下一次循环的开始时间,单位由定时源指定。默认值为于下一次循环的开始时间,单位由定时源指定。默认值为-1-1,表示无改变。如设置下一次循环的偏移量,则必须设,表示无改变。如设置下一次循环的偏移量,则必须设置新的模式值。置新的模式值。周期周期指定定时循环下一次循环的周期,单位由定时源指定。指定定时循环下一次循环的周期,单位由定时源指定。默认值为默认值为-1-1,表示无改变。,表示无改变。优先优先级级指定下一次循环的执行优先级。定时结构的优先级用于指定下一次循环的执行

39、优先级。定时结构的优先级用于指定下一次循环相对于程序框图上其它对象的执行开始指定下一次循环相对于程序框图上其它对象的执行开始时间。优先级的输入值必须为时间。优先级的输入值必须为1 1到到6553565535之间的正整数。之间的正整数。处理处理器器指定用于执行任务的处理器。默认值为指定用于执行任务的处理器。默认值为-2-2,即,即LabVIEWLabVIEW自自动分配处理器。如需手动分配处理器,可输入介于动分配处理器。如需手动分配处理器,可输入介于0 0和和255255之间的任意值,之间的任意值,0 0代表当前的处理器。输入值超过可代表当前的处理器。输入值超过可用处理器的数量时,可导致运行时错误

40、,定时结构将停用处理器的数量时,可导致运行时错误,定时结构将停止执行。止执行。超时超时指定下一次循环开始执行前的最长等待时间。超时的值指定下一次循环开始执行前的最长等待时间。超时的值相对于上一次循环的结束时间,单位由帧定时源指定。相对于上一次循环的结束时间,单位由帧定时源指定。右侧数据节点右侧数据节点:实际结束实际结束i-1i-1返回上一次循环返回上一次循环(i-1)(i-1)的实际结束时间。实际结束的值相的实际结束时间。实际结束的值相对于定时循环的开始时间,单位由定时源指定。对于定时循环的开始时间,单位由定时源指定。错误错误接收并传递定时循环的错误,通过子程序框图返回错误。接收并传递定时循环

41、的错误,通过子程序框图返回错误。预期结束预期结束i-1i-1返回上一次循环返回上一次循环(i-1)(i-1)的预期结束时间。预期结束的值相的预期结束时间。预期结束的值相对于定时循环的开始时间,单位由定时源指定。对于定时循环的开始时间,单位由定时源指定。延迟完成?延迟完成?i-1i-1如定时循环中的上一次循环未在指定期限之前完成,该如定时循环中的上一次循环未在指定期限之前完成,该接线端将返回接线端将返回TRUETRUE。全局结束全局结束时间时间返回上一次循环结束时的时间标识,以毫微秒为单位。返回上一次循环结束时的时间标识,以毫微秒为单位。循环持续循环持续时间时间返回执行上一次循环所需时间的时间标

42、识。循环持续时返回执行上一次循环所需时间的时间标识。循环持续时间的值相对于循环的开始时间,单位由定时源指定。间的值相对于循环的开始时间,单位由定时源指定。输出节点输出节点: 向定时循环添加帧,可顺序执行多个子程序框图并指定循向定时循环添加帧,可顺序执行多个子程序框图并指定循环中每次循环的周期。多帧定时循环相当一个带有嵌入顺环中每次循环的周期。多帧定时循环相当一个带有嵌入顺序结构的定时循环。如需每帧仅执行一次,可右键单击定序结构的定时循环。如需每帧仅执行一次,可右键单击定时循环结构外框并选择替换为定时顺序。时循环结构外框并选择替换为定时顺序。右键单击结构边框可右键单击结构边框可添加添加、删除删除

43、及及合并合并帧。帧。多帧定时循环的每一帧包括若干节点,如下图所示。默认状态多帧定时循环的每一帧包括若干节点,如下图所示。默认状态下,定时循环不显示所有可用的输入端和输出端。如需显下,定时循环不显示所有可用的输入端和输出端。如需显示所有可用接线端,可调整节点大小或右键单击节点并从示所有可用接线端,可调整节点大小或右键单击节点并从快捷菜单中选择快捷菜单中选择显示隐藏的接线端显示隐藏的接线端。1 1 输入节点输入节点 2 2左侧数据节点左侧数据节点 3 3右侧数据节点右侧数据节点 4 4输出节点输出节点关于使用定时循环的范例见关于使用定时循环的范例见labviewexamplesgeneraltim

44、edloop.llblabviewexamplesgeneraltimedloop.llb。打开范例打开范例 浏览相关范例浏览相关范例 u多帧定时循环多帧定时循环 可将值连接到输入节点的输入端以可将值连接到输入节点的输入端以配置多帧定时循环配置多帧定时循环,或右键,或右键单击输入节点并从快捷菜单中选择单击输入节点并从快捷菜单中选择 配置输入节点,在配置输入节点,在配置多帧配置多帧定时循环定时循环对话框的各选项中输入需要的值。对话框的各选项中输入需要的值。 定时循环帧的左侧数据节点用于返回各配置参数值并提供上一定时循环帧的左侧数据节点用于返回各配置参数值并提供上一次循环或帧的定时及状态信息。右键

45、单击右侧数据节点并从快捷次循环或帧的定时及状态信息。右键单击右侧数据节点并从快捷菜单中选择菜单中选择 配置输入节点,在配置输入节点,在配置下一帧定时配置下一帧定时对话框的各选项对话框的各选项中输入需要的值。也可将数据连接到帧的右侧数据节点以中输入需要的值。也可将数据连接到帧的右侧数据节点以动态配动态配置下一帧置下一帧。 输出节点返回由输入节点错误输入输入端输入的错误信息、执输出节点返回由输入节点错误输入输入端输入的错误信息、执行中结构产生的错误信息,或在定时循环内执行的子程序框图所行中结构产生的错误信息,或在定时循环内执行的子程序框图所产生的错误信息。输出节点还返回最后一帧的定时和状态信息。产

46、生的错误信息。输出节点还返回最后一帧的定时和状态信息。定时顺序结构由一个或多个子程序框图(也称定时顺序结构由一个或多个子程序框图(也称“帧帧”)组成)组成,在内部或外部定时源控制下按顺序执行。与定时循环不同,在内部或外部定时源控制下按顺序执行。与定时循环不同,定时顺序结构的每个帧只执行一次,不重复执行。如需每帧的定时顺序结构的每个帧只执行一次,不重复执行。如需每帧的执行多于一次,可右键单击定时顺序结构外框并选择替换为定执行多于一次,可右键单击定时顺序结构外框并选择替换为定时顺序。定时顺序结构适于开发只执行一次的精确定时、执行时顺序。定时顺序结构适于开发只执行一次的精确定时、执行反馈、定时特征等

47、动态改变或有多层执行优先级的反馈、定时特征等动态改变或有多层执行优先级的VIVI。在定时顺序结构的数据流中,定时循环总在优先级未配置为在定时顺序结构的数据流中,定时循环总在优先级未配置为实时优先级的实时优先级的VIVI前执行。通过前执行。通过改变定时顺序结构的优先级改变定时顺序结构的优先级可改可改变定时顺序相对与程序框图上其它定时结构的执行顺序。变定时顺序相对与程序框图上其它定时结构的执行顺序。注:注:如程序框图中同时存在优先级配置为实时的如程序框图中同时存在优先级配置为实时的VIVI和定时顺序和定时顺序 结构,将导致无法预计的定时行为。结构,将导致无法预计的定时行为。u 定时顺序结构定时顺序

48、结构右键单击定时顺序结构边框可右键单击定时顺序结构边框可添加添加、删除删除及及合并合并帧。与帧。与平铺平铺式顺序结构式顺序结构不同,定时顺序结构执行前,结构中的每一帧都必不同,定时顺序结构执行前,结构中的每一帧都必须具备所有的输入。一页帧的输出不能为另一帧的输入。须具备所有的输入。一页帧的输出不能为另一帧的输入。多帧顺序结构的每一帧包括若干节点,如下图所示。默认状多帧顺序结构的每一帧包括若干节点,如下图所示。默认状态下,定时顺序结构节点不显示所有可用的输入端和输出端。态下,定时顺序结构节点不显示所有可用的输入端和输出端。如需显示所有可用接线端,可调整节点大小或右键单击节点并如需显示所有可用接线

49、端,可调整节点大小或右键单击节点并从快捷菜单中选择从快捷菜单中选择显示隐藏的接线端显示隐藏的接线端。1 输入节点输入节点 2 左侧数据节点左侧数据节点 3 右侧数据节点右侧数据节点 4 输出节点输出节点可将值连接到输入节点的输入端以可将值连接到输入节点的输入端以配置一个定时顺序结构配置一个定时顺序结构,或,或右键单击输入节点并从快捷菜单中选择右键单击输入节点并从快捷菜单中选择 配置输入节点,在配置输入节点,在配置配置定时顺序定时顺序对话框的各选项中输入需要的值。对话框的各选项中输入需要的值。定时顺序结构中,每一帧的左侧数据节点用于返回各配置参数定时顺序结构中,每一帧的左侧数据节点用于返回各配置

50、参数值和提供当前及上一帧的定时及状态信息,如预计起始时间、实值和提供当前及上一帧的定时及状态信息,如预计起始时间、实际起始时间及上一帧是否延迟完成。右键单击右侧数据节点并从际起始时间及上一帧是否延迟完成。右键单击右侧数据节点并从快捷菜单中选择快捷菜单中选择 配置输入节点,在配置输入节点,在配置下一次循环配置下一次循环对话框的各对话框的各选项中输入需要的值。定时顺序帧的右侧数据节点用于选项中输入需要的值。定时顺序帧的右侧数据节点用于动态配置动态配置下一帧下一帧。注:注:定时顺序结构的最后一帧无须配置另一帧或循环,故其右定时顺序结构的最后一帧无须配置另一帧或循环,故其右侧数据节点不再包含任何配置选项。侧数据节点不再包含任何配置选项。 输出节点返回由输入节点错误输入端输入的错误信息、执行中输出节点返回由输入节点错误输入端输入的错误信息、执行中结构

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论