电机启动控制块 SCL

已锁定

柳叶飘飘

  • 帖子

    95
  • 精华

    7
  • 被关注

    194

论坛等级:侠圣

注册时间:2016-12-08

黄金 黄金 如何晋级?

电机启动控制块 SCL

4276

14

2016-12-28 00:29:25

//该程序减少使用定时器提高编程速度


//###############################################

//该控制程序为脉冲型电机启动块

//用于自动模式,手动模式(手动模式可触摸屏或者上位机控制)

//使用该块需要设置系统时钟存储器为2或者使用M2.5做一个秒脉冲

//EBC_LW 20161225

//###############################################

FUNCTION_BLOCK FB11


TITLE = 'MOTER_P_CL'

//

// Block Comment...

//

VERSION: '1.0'

AUTHOR: EBCLW

NAME: mot_p_cl

FAMILY: EBC

KNOW_HOW_PROTECT

// Block Parameters

VAR_INPUT

    REMOTE:BOOL;//原程

    RUN:BOOL;//运行

    FAULT:BOOL;//故障

    AM:BOOL;//手自动模式(0为手动,1为自动)

    AST:BOOL;//自动启动

    ASTO:BOOL;//自动停止

    CMP_CL:BOOL;//触摸屏选择

    P_WIDE:INT:=3;//脉冲长度

    START_TIMEOUT_ST:INT:=5;//启动超时

    STOP_TIMEOUT_ST:INT:=5;//停止超时

       



END_VAR


VAR_IN_OUT

    ST:BOOL;//启动

    STO:BOOL;//停止

    CMP_ST:BOOL;//触摸屏启动

    CMP_STO:BOOL;//触摸屏停止

     REST:BOOL;//复位


END_VAR


VAR_OUTPUT

   START:BOOL;//启动脉冲

   STOP:BOOL;//停止脉冲


   START_TIMEOUT:BOOL;//启动超时

   STOP_TIMEOUT:BOOL;//停止超时

   


END_VAR




VAR_TEMP

    

   PN:BOOL;//秒脉冲上升沿

   ST_PN:BOOL;

   STO_PN:BOOL;

   CMP_ST_PN:BOOL;

   CMP_STO_PN:BOOL;

   AST_PN:BOOL;

   ASTO_PN:BOOL;

   START_PN:BOOL;

   STOP_PN:BOOL;

END_VAR

VAR

   OLD_VAL:BOOL;//边沿检测的上一次的值

   ST_OLD_VAL:BOOL;

   STO_OLD_VAL:BOOL;

   CMP_ST_OLD_VAL:BOOL;

   CMP_STO_OLD_VAL:BOOL;

   AST_OLD_VAL:BOOL;

   ASTO_OLD_VAL:BOOL;

   START_OLD_VAL:BOOL;

   STOP_OLD_VAL:BOOL;  

   ST_TM:INT:=0;//启动按钮延时

   STO_TM:INT:=0;//停止按钮延时

   CMP_ST_TM:INT:=0;//触摸屏启动按钮延时

   CMP_STO_TM:INT:=0;//触摸屏停止按钮延时


   START_TEMP:BOOL;

   STOP_TEMP:BOOL;

   START_TM:INT;

   STOP_TM:INT;

   START_TIMEOUT_TM:INT;//启动超时计时

   STOP_TIMEOUT_TM:INT;//停止超时计时

   REST_TM:INT;

END_VAR

//秒脉冲

//上升沿

PN:=M2.5&(NOT OLD_VAL);

OLD_VAL:=M2.5;

//下降沿

//NN:=OLD_VAL&(NOT M2.5);

//OLD_VAL:=M2.5;

//#############################################################

//----------------------上位机启停按钮脉冲-----------------------------

//启动按钮脉冲

ST_PN:=ST&(NOT ST_OLD_VAL);

ST_OLD_VAL:=ST;

//停止按钮脉冲

STO_PN:=STO&(NOT STO_OLD_VAL);

STO_OLD_VAL:=STO;

//----------------------触摸屏启停按钮脉冲----------------------------

//触摸屏启动按钮脉冲

CMP_ST_PN:=CMP_ST&(NOT CMP_ST_OLD_VAL);

CMP_ST_OLD_VAL:=CMP_ST;

//触摸屏停止按钮脉冲

CMP_STO_PN:=CMP_STO&(NOT CMP_STO_OLD_VAL);

CMP_STO_OLD_VAL:=CMP_STO;

//----------------------自动启停脉冲-----------------------------

//自动启动脉冲

AST_PN:=AST&(NOT AST_OLD_VAL);

AST_OLD_VAL:=AST;

//自动停止脉冲

ASTO_PN:=ASTO&(NOT ASTO_OLD_VAL);

ASTO_OLD_VAL:=ASTO;

//----------------------启停指令脉冲-----------------------------

//自动启动脉冲

START_PN:=START&(NOT START_OLD_VAL);

START_OLD_VAL:=START;

//自动停止脉冲

STOP_PN:=STOP&(NOT STOP_OLD_VAL);

STOP_OLD_VAL:=STOP;


//按钮延时的作用:避免上位机按时间过短而未让设备动作

//------------------------上位机启停按钮延时----------------------------

//启动按钮2S延时

IF ST & PN  THEN 

   ST_TM:=ST_TM+1;

   IF ST_TM>=2 THEN

    ST_TM:=0;

    ST:=0;

    END_IF;

END_IF;


//停止按钮2S延时

IF STO & PN  THEN 

   STO_TM:=STO_TM+1;

   IF STO_TM>=2 THEN

    STO_TM:=0;

    STO:=0;

    END_IF;

END_IF;//-------------------触摸屏启停按钮延时--------------------------------


//触摸屏启动按钮2S延时

IF CMP_ST & PN  THEN 

   CMP_ST_TM:=CMP_ST_TM+1;

   IF CMP_ST_TM>=2 THEN

    CMP_ST_TM:=0;

    CMP_ST:=0;

    END_IF;

END_IF;

//触摸屏停止按钮2S延时

IF CMP_STO & PN  THEN 

   CMP_STO_TM:=CMP_STO_TM+1;

   IF CMP_STO_TM>=2 THEN

    CMP_STO_TM:=0;

    CMP_STO:=0;

    END_IF;

END_IF;

//---------------------复位按钮延时------------------

IF REST & PN THEN

    REST_TM:=REST_TM +1;

    IF REST_TM>=2 THEN

        REST:=0;

        REST_TM:=0;

        END_IF;

 END_IF;

//###########################################################

//判断是否是自动控制模式

  //自动模式时接受自动控制引脚控制

    IF AM & REMOTE & NOT(FAULT) & NOT(RUN) & AST_PN THEN

      STOP:=0;

      START:=1;

    END_IF;

    IF  AM & REMOTE &( FAULT OR ASTO_PN)   THEN

      START:=0;

      STOP:=1;

    END_IF;



    //手动模式时再判断是上位机还是触摸屏控制

    //手动模式时触摸屏启动

     IF NOT(AM) & CMP_CL & REMOTE & NOT(FAULT) & NOT(RUN)  & CMP_ST_PN THEN

      STOP:=0;

      START:=1;

    END_IF;

    IF NOT(AM)& CMP_CL & REMOTE &( FAULT OR CMP_STO_PN)   THEN

      START:=0;

      STOP:=1;

    END_IF;    

    //手动模式时上位机启动

     IF NOT(AM) &  NOT(CMP_CL) & REMOTE & NOT(FAULT) & NOT(RUN)  & ST_PN THEN

      STOP:=0;

      START:=1;

    END_IF;

    IF NOT(AM)& NOT(CMP_CL) & REMOTE  &( FAULT OR STO_PN)   THEN

      START:=0;

      STOP:=1;

    END_IF;        

    


//#################################################################################


//输出指令复位

//------------------启动指令复位------------------------------

//满足条件就进行计数

IF PN & START THEN

    START_TM:=START_TM+1;

END_IF;

//计数达到时复位数据

IF START_TM>=P_WIDE THEN

    START_TM:=0;

    START:=0;

END_IF;

//-------------------停止指令复位-----------------------------

//满足条件就进行计数

//若有故障则停止信号长时间接通直到故障信号消失

IF PN & STOP & NOT(FAULT) THEN

    STOP_TM:=STOP_TM+1;

END_IF;

//计数达到时复位数据

IF STOP_TM>=P_WIDE THEN

    STOP_TM:=0;

    STOP:=0;

END_IF;



//---------------------------启动超时-------------------------

IF START_PN THEN

    START_TEMP:=1;

    STOP_TEMP:=0;

END_IF;

IF RUN & START THEN

     START_TEMP:=0;

 END_IF;

IF START_TEMP & NOT(RUN) & PN & (START_TIMEOUT_TM < START_TIMEOUT_ST) THEN

    START_TIMEOUT_TM:=START_TIMEOUT_TM+1;

END_IF; 

IF START_TIMEOUT_TM >=START_TIMEOUT_ST THEN

    START_TEMP:=0;

    START_TIMEOUT_TM:=0;

    START_TIMEOUT:=1;

END_IF;

//----------------------------停止超时------------------------

IF STOP_PN THEN

    START_TEMP:=0;

    STOP_TEMP:=1;

END_IF;

IF NOT(RUN) & STOP THEN

     STOP_TEMP:=0;

 END_IF;

IF STOP_TEMP & RUN & PN & (STOP_TIMEOUT_TM < STOP_TIMEOUT_ST) THEN

    STOP_TIMEOUT_TM:=STOP_TIMEOUT_TM+1;

END_IF; 

IF STOP_TIMEOUT_TM >=STOP_TIMEOUT_ST THEN

    STOP_TEMP:=0;

    STOP_TIMEOUT_TM:=0;

    STOP_TIMEOUT:=1;

END_IF;

//-----------------------------复位-------------------------

IF REST THEN

    START_TIMEOUT:=0;

    

    STOP_TIMEOUT:=0;

END_IF;

END_FUNCTION_BLOCK

//原创程序请多交流 QQ:275578306

电机启动控制块 SCL 已锁定
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-300/400

共有54622条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

快扫描右侧二维码晒一晒吧!

再发帖或跟帖交流2条,就能晋升VIP啦!开启更多专属权限!

  • 分享

  • 只看
    楼主

top
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。