配置定时循环和多帧定时循环(Real-Time、Windows)
- 更新时间2025-08-27
- 阅读时长6分钟
使用配置定时循环或配置多帧定时循环对话框,配置定时循环执行的方式。双击结构的输入节点,从快捷菜单中选择配置输入节点,可打开上述对话框。在该对话框中,可指定定时源、设置周期和进行高级设置。
也可将数据连接至定时循环的输入节点,对结构进行配置。默认状态下,定时循环上的输入节点不显示所有可用的输入端。如需显示所有可用接线端,可调整输入节点大小或右键单击节点并从快捷菜单中选择显示隐藏的节点接线端。
使用定时循环的技巧
以下是使用定时循环的补充信息。
- 与While循环不同,定时循环的条件接线端不一定要连线。
- 定时顺序帧的右侧数据节点用于动态配置结构的下一次循环。
- 在定时循环中添加移位寄存器可将当前循环中的数据传递到下一次循环。
- 不要将配置为实时优先级运行的VI和定时循环添加至同一个程序框图,以避免不可预期的时间冲突。
使用多帧定时循环的技巧
以下是使用多帧定时循环的补充信息。
- 可将数据连接到输入节点以配置多帧定时循环,或右键单击输入节点并从快捷菜单中选择配置输入节点,在配置多帧定时循环对话框的各选项中输入需要的值。
- 右键单击结构边框可添加、删除及合并帧。
- 如需每帧仅执行一次,可右键单击定时循环结构外框并在快捷菜单中选择替换为定时顺序。
关于使用定时循环的范例见labview\examples\Structures\Timed Loop\Timed Loop.lvproj。
配置下一帧
双击当前帧的右侧数据节点或右键单击该节点,从快捷菜单中选择配置输入节点,打开配置下一帧定时对话框。在此对话框中,可为下一帧设置优先级、执行期限以及超时等选项。
起始时间指定了下一帧执行的时间。须指定一个相对于当前帧的起始时间值,其单位应与帧定时源的绝对单位一致。在开始文本框中指定的起始时间值。
还可使用帧的右侧数据节点的输入端动态配置下一次定时循环或动态配置下一帧。默认状态下,定时循环帧上的右侧数据节点不显示所有可用的输出端。如需显示所有可用的输出端,可调整右侧数据节点大小或右键单击右侧数据节点并从快捷菜单中选择显示隐藏的接线端。
设置定时循环周期
周期指定时循环各次循环间的时间长度,以结构定时源的绝对单位为单位。
以下程序框图的定时循环使用默认的1 kHz定时源。循环A的周期(dt)为1,000毫秒,循环B为2,000毫秒,这意味着循环A每秒执行一次,循环B每两秒执行一次。这两个定时循环均在6次循环后停止执行。循环A于6秒后停止执行,循环B则在12秒后停止执行。
定时循环或多帧定时循环的子程序框图必须在每次循环所指定的周期前完成执行。如子程序框图未能在指定周期前完成执行,定时循环将在下一次循环第一帧的输出节点延迟完成?[i-1]输出端或左侧数据节点的延迟完成?[i-1]输出端返回TRUE。
如定时循环或多帧定时循环的子程序框图在循环周期前结束,定时循环将进入睡眠状态并允许程序框图上的其他代码或结构执行。
设置定时循环的模式
少数情况下,定时循环的执行会迟于预计时间。定时循环的模式决定了其处理执行延迟的方式。通过配置定时循环或配置多帧定时循环对话框的延迟周期处理,可指定处理定时循环延迟的模式。也可使用输入节点的模式输入端,指定定时循环的模式。
可通过以下方式处理定时循环的延迟执行:
- LabVIEW根据原有时间表安排执行。
- LabVIEW可定义一个在当前时刻启动的新时间表。
- 定时循环可处理错失的循环。
- 定时循环可跳过错失的循环。
例如,将定时循环设置为100毫秒周期和30毫秒偏移,则第一个循环将在第一个定时源开始运行后30毫秒开始执行,并以100毫秒为间隔,于第130毫秒、第230毫秒、第330毫秒时执行下一次循环,依此类推。但定时循环的第一次执行可能在240毫秒后开始。由于其他定时循环或硬件设备可能已根据指定的时间表开始运行,用户可能希望延迟的定时循环与已运行的全局时间表的运行一致,这便要求定时循环应尽快根据指定的时间表进行调整。那么,下一次定时循环应在第330毫秒时开始运行,并以100毫秒为间隔,于第430毫秒、第530毫秒......的时刻运行。如对齐定时循环与其他定时循环或硬件设备的运行时刻并不重要,则定时循环可立即运行并以当前时间为其实际偏移值。这样,后续的循环将在第240毫秒、第340毫秒、第440毫秒......的时刻执行。
如定时循环延迟,将错过其他定时循环或硬件设备生成的数据。例如,当定时循环错过两次循环及当前周期的某些数据,将有缓冲内存保存这些错失的数据。用户可能希望在定时循环与指定时间表对齐前先处理错失的数据。但在处理错失循环时,定时循环可能会产生抖动。抖动时循环周期与指定时间不一致的时间。如不希望处理遗失的数据,定时循环可忽略缓冲区中保存的循环所遗失的旧数据,仅处理最新的数据,如下一周期及后续循环可用的数据。
通过配置对话框配置模式
在默认状态下,定时循环将舍弃循环错失期间所生成的数据并保持原来的时间表。设置本模式时,输入节点的模式图标将以字母D表示舍弃,字母M表示保持。取消勾选配置定时循环或配置多帧定时循环对话框中放弃丢失周期复选框,可处理任何丢失的或延迟的循环所生成的数据。设置本模式时,输入节点的模式输入端的图标为字母P,表示处理。取消勾选配置定时循环或配置多帧定时循环对话框的保持原始相位复选框,以基于定时循环第一次循环的新时间表来执行循环。
通过输入节点配置模式
使用输入节点的模式输入端,配置定时循环的模式。右键单击模式输入端,在快捷菜单中选择创建»常量或创建»控件,可创建用于选择模式的枚举型常量或控件。该常量或控件用于选择模式。
使用输入节点的模式输入端可通过编程改动定时循环的模式或维持在配置定时循环对话框中配置的当前模式。在枚举型常量或控件中选择无改变可保持当前的模式配置,或就定时循环中延迟及错失的循环的相关参数进行配置。
关于设置定时循环模式的范例,请参考labview\examples\Structures\Timed Loop目录下的Timed Loop Mode VI。