首页 理论教育LabVIEW2012中文版:配置定时循环和顺序结构

LabVIEW2012中文版:配置定时循环和顺序结构

【摘要】:这两个定时循环均在6次循环后停止执行。所以,如同前面所说,若程序框图中同时存在优先级设为实时的VI和定时顺序,将导致无法预计的定时行为。定时循环的优先级高于定时顺序第二帧的优先级。在本例中,定时循环将在定时顺序第二帧执行前完全执行完毕。可使用次要定时源控制定时结构中各帧的执行。在如图5-52中,定时顺序中首帧的执行期限已配置为50。

配置定时循环主要包括以下几个方面:

1.配置下一帧

双击当前帧的右侧数据节点或右键单击该节点,从快捷菜单中选择配置输入节点,打开配置下一次循环对话框,如图5-49所示。

978-7-111-40983-0-Chapter05-51.jpg

图5-49 配置下一次循环对话框

在这个对话框中,可为下一帧设置优先级、执行期限以及超时等选项。开始时间指定了下一帧开始执行的时间。要指定一个相对于当前帧的起始时间值,其单位应与帧定时源的绝对单位一致。在开始文本框中指定起始时间值。还可使用帧的右侧数据节点的输入端动态配置下一次定时循环或动态配置下一帧。默认状态下,定时循环帧的右侧数据节点不显示所有可用的输出端。如需显示所有可用的输出端,可调整右侧数据节点大小或右键单击右侧数据节点并从快捷菜单中选择显示隐藏的接线端。

2.设置定时循环周期

周期指定各次循环间的时间长度,以定时源的绝对单位为单位。

图5-50所示程序框图的定时循环使用默认的1kHz的定时源。循环1的周期(dt)为1000ms,循环2为2000ms,这意味着循环1每秒执行一次,循环2每两秒执行一次。这两个定时循环均在6次循环后停止执行。循环1于6s后停止执行,循环2则在12s后停止执行。

978-7-111-40983-0-Chapter05-52.jpg

图5-50 定时循环的简单使用

3.设置定时结构的优先级

定时结构的优先级指定了定时结构相对于程序框图上其他对象开始执行的时间。设置定时结构的优先级,可使应用程序中存在多个在同一VI中互相预占执行顺序的任务。定时结构的优先级越高,它相对于程序框图中其他定时结构的优先级便越高。优先级的输入值必须为1~2,147,480,000之间的正整数。

程序框图中的每个定时结构会创建和运行含有单一线程的自有执行系统,因此不会出现并行的任务。定时循环的执行优先级介于实时和高之间。这意味着在一个程序框图的数据流中,定时循环总是在优先级不是实时的VI前执行。

所以,如同前面所说,若程序框图中同时存在优先级设为实时的VI和定时顺序,将导致无法预计的定时行为。

用户可为每个定时顺序或定时循环的帧指定优先级。运行包含定时结构的VI时,LabVIEW将检查结构框图中所有可执行帧的优先级,并从优先级实时的帧开始执行。

使用定时循环时,可将一个值连接至循环最后一帧的右侧数据节点的“优先级”输入端,以动态设置定时循环后续各次循环的优先级。对于定时结构,可将一个值连接至当前帧的右侧数据节点,以动态设置下一帧的优先级。默认状态下,帧的右侧数据节点不显示所有可用的输出端。如需显示所有可用的输出端,可调整右侧数据节点的大小或右键单击右侧数据节点并从快捷菜单中选择显示隐藏的接线端。

如图5-51所示,程序框图包含了一个定时循环及定时顺序。定时顺序第一帧的优先级(100)高于定时循环的优先级(100),因此定时顺序的第一帧先执行。定时顺序第一帧执行完毕后,LabVIEW将比较其他可执行的结构或帧的优先级。定时循环的优先级(100)高于定时顺序第二帧(50)的优先级。LabVIEW将执行一次定时循环,再比较其他可执行的结构或帧的优先级。定时循环的优先级(100)高于定时顺序第二帧的优先级(50)。在本例中,定时循环将在定时顺序第二帧执行前完全执行完毕。

978-7-111-40983-0-Chapter05-53.jpg

图5-51 定时循环的优先级设置

4.选择定时结构的定时源

定时源控制着定时结构的执行。有内部或外部两种定时源可供选择。内部定时源可在定时结构输入节点的配置对话框中选择。外部定时源可通过创建定时源VI及DAQmx中的数据采集VI来创建。

内部定时源用于控制定时结构的内部定时,包括操作系统自带的1kHz时钟及实时(RT)终端的1MHz时钟。通过配置定时循环、配置定时顺序或配置多帧定时循环对话框的循环定时源或顺序定时源,可选中一个内部定时源。

1kHz时钟:默认状态下,定时结构以操作系统的1kHz时钟为定时源。如使用1kHz时钟,定时结构每毫秒执行一次循环。所有可运行定时结构LabVIEW平台都支持1kHz定时源。(www.chuimin.cn)

1MHz时钟:终端可使用终端处理器的1MHz时钟来控制定时结构。如使用1MHz时钟,定时结构每微秒执行一次循环。如终端没有系统所支持的处理器,便不能选择使用1MHz时钟。

1kHz时钟<结构开始时重置>:与1kHz时钟相似的定时源,每次定时结构循环后重置为0。

1MHz时钟<结构开始时重置>:与1MHz时钟相似的定时源,每次定时结构循环后重置为0。

外部定时源用于创建用于控制定时结构的外部定时。使用创建定时源VI通过编程选中一个外部定时源。另有几种类型DAQmx定时源可用于控制定时结构,如频率、数字边缘计数器、数字改动检测和任务源生成的信号等。通过DAQmx的数据采集VI可创建以下用于控制定时结构的DAQmx定时源。可使用次要定时源控制定时结构中各帧的执行。例如,以1kHz时钟控制定时循环,以1MHz时钟控制每次循环中各个帧的定时。

5.设置执行期限

执行期限指执行一个子程序框图,或一帧所需要的时间。执行期限与帧的起始时间相对。通过执行期限可设置子程序框图的时限。如子程序框图未能在执行期限前完成,下一帧的左侧数据节点将在“延迟完成?”输出端返回真值并继续执行。指定一个执行期限,其单位与帧定时源的单位一致。

在如图5-52中,定时顺序中首帧的执行期限已配置为50。执行期限指定子程序框图须在1kHz时钟走满50下前结束执行,即在50ms前完成。而子程序框图耗时100ms完成代码执行。当帧无法在指定的最后期限前结束执行代码时,第二帧的“延迟完成?”输出端将返回真值。

978-7-111-40983-0-Chapter05-54.jpg

图5-52 设置执行期限

6.设置超时

“超时”指子程序框图开始执行前可等待的最长时间,以ms为单位。超时与循环起始时间,或上一帧的结束时间相对。如子程序框图未能在指定的超时前开始执行,定时循环将在该帧的左侧数据节点的“唤醒原因”输出端中返回超时。

如图5-53所示所示,定时顺序的第一帧耗时50ms执行,第二帧配置为定时顺序开始51ms后再执行。第二帧的超时设为10ms,这意味着,该帧将在第一帧执行完毕后等待10ms再开始执行。如第二帧未能在10ms前开始执行,定时结构将继续执行余下的非定时循环,而第二帧则在左侧数据节点的“唤醒原因”输出端中返回超时。

978-7-111-40983-0-Chapter05-55.jpg

图5-53 设置超时

余下各帧的定时信息与发生超时的帧的定时信息相同。如定时循环必须再完成一次循环,则循环会停止于发生超时的帧,等待最初的超时事件。

定时结构第一帧的超时默认值为-1,即无限等待子程序框图或帧的开始。其他帧的超时默认值为0,即保持上一帧的超时值不变。

7.设置偏移

偏移是相对于定时结构开始时间的时间长度,这种结构等待第一个子程序框图或帧执行的开始。偏移的单位与结构定时源的单位一致。

还可在不同定时结构中使用与定时源相同的偏移,对齐不同定时结构的相位,如图5-54中,定时循环都使用相同的1kHz定时源,且偏移(t0)值为500,这意味着循环将在定时源触发循环开始后等待500ms。

在定时循环的最后一帧中,可使用右侧数据节点动态改变下一次循环的偏移。然而,在动态改变下一次循环的偏移时,须将值连接至右侧数据节点的模式输入端以指定一个模式。如通过右侧数据节点改变偏移。必须选择一个模式值。

978-7-111-40983-0-Chapter05-56.jpg

图5-54 设置偏移

对齐两个定时结构无法保证二者的执行开始时间相同。使用同步定时结构起始时间,可以令定时结构执行起始时间同步。