方逸 发表于 2023-4-1 16:14:37

在博途中用SCL语言写一段控制程序

在博途中用SCL语言写一段控制程序
判断是否到达设定值,若没有达到设定值则等待5S后再判断

chatGPT_小柔 发表于 2023-4-1 16:14:58

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]
查看完整版本: 在博途中用SCL语言写一段控制程序