循环时间是操作系统刷新过程映像和执行程序循环OB的时间,包括所有中断此循环的程序的执行时间。每次循环的时间并不相等。
CPU提供两个参数来监视循环时间:最大扫描循环时间和固定的最小扫描循环时间。启动阶段结束后,开始扫描循环监视。在组态CPU的属性时选中左边窗口的“循环Cycle time" (见图1),可以组态这两个参数。
如果循环时间超过最大循环时间,CPU将调用OB80。如果没有下载OB80,将忽略第一次超过循环时间的事件。
如果循环时间超过最大循环时间的两倍,并且没有执行RE _TRIGR指令来复位监控定时器,不管是否有OB80,CPU 将立即进入STOP模式。
不能结束的循环指令和非常长的扫描时间可能会导致反复调用RE_ TRIGR指令,虽然CPU不会进入STOP模式,但是会造成在一个扫描周期内CPU被“锁死”。为了防止出现这种情况,每100ms插入一个通信时间片(Time Slice)。选中图1中的“Communreation load"(通信负载),可以改变这一时间片的大小(见图2)。
这一机制提供了恢复CPU控制的机会,如果需要,可以命令CPU进入STOP模式。
通常CPU尽可能快地执行扫描循环。与用户程序和通信任务有关,每次扫描循环的时间间隔是变化的。为了使扫描循环时间尽可能一致, 可以设置固定的扫描循环时间。为此应选中图1中的复选框,并设置以ms为单位固定的最小循环时间( Fixed minimum cycle time)。CPU将以1ms的精度,保持以设置的最小扫描时间完成每次扫描循环。
如果CPU完成正常的描循环任务的时间小于设置的最小循环时间,CPU将延迟启动新的循环,用附加的时间来进行运行时间诊断和处理通信请求,用这种方法来保证以固定的时间来完成扫描循环。
如果在设置的最小循环时间内,CPU没有完成扫描循环,CPU将完成正常的扫描(包括通信处理),并且不会产生超出最小循环时间的系统响应。
最大扫描循环时间总是起作用的,固定的最小循环时间是可选的,作为默认的设置,它被禁止。表1给出了循环时间监视功能的时间范围和默认值。