将确定性任务与非确定性任务分开,并将确定性任务放在RT终端VI的不同循环中,保证确定性任务有足够的处理器资源。定时循环根据指定周期和优先级在每次循环时执行一个子程序框图。定时循环的优先级越高,它相对于程序框图中其他定时结构的优先级便越高。可使用确定性通信方法共享来自确定性定时循环的本地数据,或共享网络上的远程数据。

注: 在实时应用程序中使用定时循环时,要注意避免抖动。

下列程序框图显示了一个RT终端VI,包含一个定时循环和一个While循环,用于控制数据采集和记录应用程序:

确定性循环的优先级为100,其中的子VI在每次循环时采集数据。确定性循环通过共享变量data与非确定性循环共享采集到的数据。启用了实时FIFO的共享变量可确定性地共享RT终端VI的数据,但是不影响VI的确定性。非确定性循环读取共享变量data,将采集到的数据记录到RT终端的磁盘上。

定时循环执行的协同因素

定时循环具有独占性,可占用所有处理器资源。一个定时循环可占用所有处理器资源,不允许程序框图上的其他较低优先级任务执行。

确定性定时循环的周期的长度必须配置为足够完成确定性任务,以及包含充足的空闲时间允许低优先级任务执行。通过对定时循环设定周期,可减少确定性任务的执行时间,将处理器资源让渡给程序框图上优先级较低的任务。

注: 如RT应用程序在多CPU系统上运行,可考虑为实时定时循环分配一个专有CPU。