华人澳洲中文论坛

热图推荐

    西门子SCL编程实例——按钮的短按与长按

    [复制链接]

    2022-11-1 07:14:51 18 0

    收到小火伴的来信,怎么样区别按钮的短按(按下后松开)与长按(按下并放弃一段时间)。说瞎话,在工业现场,按钮长按来完成某个功用使用的其实不多。我已经在某个信号需求人工确认时使用了长按功用,过后是结合按时器与按钮的输出信号来完成的。要完成按钮的短按与长按的区别,我提供一种思绪供大家参考。


    根本思绪:
    使用沿信号配合按时器指令。假如在短期内检测到了该信号的回升沿及降落沿,则以为按钮是短按形态;假如在某个时间内(好比2秒钟),只检测到了该信号的回升沿而没有降落沿,则以为按钮是长按形态;
    结合这个思绪我使用SCL言语完成了一个函数块FB5020_BtnClickHold,其变量声明如下图所示:


    其中:
    signal:要检测的按钮信号(或其它相似信号);R:用于复位外部变量;timeCheck:用于检测的时间,默许2秒;click:按钮是短按形态;hold:按钮是长按形态;注:短按与长按不会同时为TRUE。为包管正确,应在获得信号后使用R对外部动态变量进行复位;
    代码如下图所示:


    这段代码我曾经测试过,假如你有任何问题或其它思绪,欢送留言交流。

    发表回复

    您需要登录后才可以回帖 登录 | 立即注册

    返回列表 本版积分规则

    :
    注册会员
    :
    论坛短信
    :
    未填写
    :
    未填写
    :
    未填写

    主题33

    帖子35

    积分169

    图文推荐