行指令 t=(启动)
用该指令可为定时器赋予一个起始数值,并且计数器的启动将与一个条件关联。
示例:
如果满足下面条件,则定时器 5 将以 30 s 开始计时。旗标 25为 FALSE。
行指令 t=停止
用该指令可停止定时器,并且定时器的停止将与一个条件相关联。
例:
t10 ( EIN ) = -40[1/10Sek]
VW(#SET_TIME,TRUE,10,0,-40)
DEF SET_TIMER (TIMER_NO :IN,TIMER_STOP :IN,TIMER_VALUE :IN )
TIMER_NO=10 (t10) ,TIMER_STOP=0,TIMER_VALUE=-40
INT TIMER_NO,TIMER_STOP,TIMER_VALUE
IF TIMER_STOP>0 THEN
; 时间停止
$TIMER_STOP[TIMER_NO]=TRUE 激活时间停止标志位
ELSE
; 计时器以值开始
$TIMER[TIMER_NO]=TIMER_VALUE*100 时间换算
$TIMER_STOP[TIMER_NO]=FALSE 释放时间计算
ENDIF
END
例:
F399 = T10
$FLAG[399] = $TIMER_FLAG[10]
$TIMER_FLAG[]
计时器的标志
该变量指示计时器的值是否大于或等于零。
$TIMER_FLAG[] 可用于在经过一定时间后触发的中断条件。如果相应的计时器以负值启动,则 $TIMER_FLAG[] 在零通道的情况下改变边缘。
$TIMER_FLAG[Index ]=State
State 当 计时器大于0时为true,当计时器小于0为false.
---------------------------------
$TIMER[1]
$TIMER[2]
...
$TIMER[32]
系统变量 $TIMER[Nr] 用于测量时间进程。
计时器 $TIMER[Nr] 的数值输入 / 显示都以毫秒 (ms) 为单位。
通过 KRL 启动和停止计时器
启动:$TIMER_STOP[Nr] = FALSE
停止:$TIMER_STOP[Nr] = TRUE
计时器的预设
交货时计时器的预设为 0 ms
计时器保持其当前值
可将计时器往前或往后调到任意一个值
; 计时器 5 预设为 0ms
$TIMER[5] = 0
; 计时器 12 设定为 1.5 秒
$TIMER[12] = 1500
; 计时器 4 回调至 -8 秒
$TIMER[4] = -8000
计时器的复位和启动
; 计时器 7 复位至 0ms
$TIMER[7] = 0
; 启动计时器 7
$TIMER_STOP[7] = FALSE
停止计时器并接着进行比较
; 计时器 7 计时中
...
; 停止计时器 7
$TIMER_STOP[7] = TRUE
; 10 秒或更多时 ……
IF $TIMER[7] >= 10000 THEN
...
计时器的启动和停止始终通过预进指针实现 指令 WAIT SEC 0 适用于生成预进停止。