基于ST语言的PLC系统启停控制功能 点击:105 | 回复:3



柳絮随风

    
  • 精华:0帖
  • 求助:0帖
  • 帖子:2帖 | 1回
  • 年度积分:3
  • 历史总积分:55
  • 注册:2023年4月10日
发表于:2025-01-16 15:24: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);




楼主最近还看过

yuanle

  • 精华:0帖
  • 求助:0帖
  • 帖子:9帖 | 10387回
  • 年度积分:51
  • 历史总积分:53932
  • 注册:2005年4月22日
发表于:2025-01-16 15:54:35
0楼

VAR_INPUT

手动模式 : BOOL;

自动模式 : BOOL;

启动信号 : BOOL;

停止信号 : BOOL;

急停信号 : BOOL;

异常报警 : BOOL;

故障报警 : BOOL;

END_VAR


//手动_自动模式切换

手动模式中 := 手动模式 AND (自动模式 = FALSE) ;

自动模式中 := 自动模式 AND (手动模式 = FALSE) ;



楼主测试过这样一种情况吗?既然自动模式和手动模式为2个INPUT输入,当这两个输入均为ON的情况?


HAVE FUN!

回复本条

    

热门招聘
相关主题

官方公众号

智造工程师