首页 电工电气 正文

回复

基于ST语言的PLC系统启停控制功能

电工电气 浏览:53 回复:3 收藏

柳絮随风  2025-01-16 15:46

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);


我知道了