FUNCTION_BLOCK A_启停控制
VAR_INPUT
手动模式 : BOOL;
自动模式 : BOOL;
启动信号 : BOOL;
停止信号 : BOOL;
急停信号 : BOOL;
异常报警 : BOOL;
故障报警 : BOOL;
END_VAR
VAR_OUTPUT
手动模式中 : BOOL;
自动模式中 : BOOL;
自动运行中 : BOOL;
三色灯_红灯 : BOOL;
三色灯_黄灯 : BOOL;
三色灯_绿灯 : BOOL;
三色灯_蜂鸣 : BOOL;
END_VAR
VAR
停止中 : BOOL;
急停中 : BOOL;
脉冲1HZ : BOOL;
TON_0 : TON;
TON_1 : TON;
END_VAR
//1HZ脉冲信号生成
TON_0(IN:= NOT TON_1.Q , PT:= T#500MS , Q=>脉冲1HZ);
TON_1(IN:= TON_0.Q , PT:= T#500MS);
//停止信号
急停中 := (手动模式 AND 自动模式) OR 急停信号;
停止中 := 停止信号;
//手动_自动模式切换
手动模式中 := 手动模式 AND (自动模式 = FALSE) ;
自动模式中 := 自动模式 AND (手动模式 = FALSE) ;
//自动运行
IF 自动模式中 AND (故障报警 = FALSE) AND 启动信号 AND 急停中 = FALSE THEN
自动运行中 := TRUE;
ELSIF (自动模式中 = FALSE) OR 故障报警 OR 停止中 OR 急停中 THEN
自动运行中 := FALSE;
END_IF
//三色灯
三色灯_绿灯:=(自动模式中 AND 自动运行中 = FALSE AND 脉冲1HZ) OR (自动模式中 AND 自动运行中);
三色灯_黄灯:=(异常报警 AND 脉冲1HZ) OR (手动模式中 AND 异常报警=FALSE);
三色灯_红灯:=((急停中 OR 故障报警) AND 脉冲1HZ);
三色灯_蜂鸣:=(故障报警 AND 脉冲1HZ) OR (异常报警 AND 脉冲1HZ);