在博途中用SCL语言写一段控制程序
在博途中用SCL语言写一段控制程序判断是否到达设定值,若没有达到设定值则等待5S后再判断
FUNCTION_BLOCK WaitUntilSetpointReached
VAR_INPUT
setpoint : REAL; (* 设定值 *)
END_VAR
VAR_OUTPUT
reached : BOOL; (* 是否到达设定值 *)
END_VAR
VAR
timer : TON; (* 定时器 *)
END_VAR
(* 初始化定时器,开始计时5S *)
timer(IN := TRUE, PT := T#5S);
IF timer.Q THEN
(* 如果定时器时间到了,则说明已经等待了5S,重新判断是否到达设定值 *)
IF current_value >= setpoint THEN
reached := TRUE; (* 到达设定值 *)
ELSE
WaitUntilSetpointReached(setpoint := setpoint);(* 继续等待 *)
END_IF
ELSE
(* 如果还没等待够5S,则继续等待 *)
reached := FALSE;
END_IF
END_FUNCTION_BLOCK
页:
[1]