首页 > 行业资讯 > 西门子SCL编程实例——按钮的短按与长按

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

时间:2022-10-31 来源: 浏览:

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

原创 北岛李工 方正智芯
方正智芯

founderchip

原创工业智能控制领域(PLC、单片机、嵌入式、机器人、通信)的技术及经验分享。

收录于合集 #北岛李工-西门子SCL编程教程 49个

收到小伙伴的来信,怎样区分按钮的短按(按下后松开)与长按(按下并保持一段时间)。说实话,在工业现场,按钮长按来实现某个功能使用的并不多。我曾经在某个信号需要人工确认时使用了长按功能,当时是结合定时器与按钮的输入信号来实现的。要实现按钮的短按与长按的区分,我提供一种思路供大家参考。

基本思路:

使用沿信号配合定时器指令。如果在短时间内检测到了该信号的上升沿及下降沿,则认为按钮是短按状态;如果在某个时间内(比如2秒钟),只检测到了该信号的上升沿而没有下降沿,则认为按钮是长按状态;

结合这个思路我使用SCL语言实现了一个函数块FB5020_BtnClickHold,其变量声明如下图所示:

其中:

  • signal:要检测的按钮信号(或其它类似信号);

  • R:用于复位内部变量;

  • timeCheck:用于检测的时间,默认2秒;

  • click:按钮是短按状态;

  • hold:按钮是长按状态;

注:短按与长按不会同时为TRUE。为保证正确,应在获取信号后使用R对内部静态变量进行复位;

代码如下图所示:

这段代码我已经测试过,如果你有任何问题或其它思路,欢迎留言交流。

我的书《西门子S7-1200/1500 PLC SCL语言编程 ——从入门到精通》从硬件到软件,比较详细的介绍了SCL语言的编程,感兴趣的话可以点击下面的链接或者左下角的【阅读原文】:

版权:如无特殊注明,文章转载自网络,侵权请联系cnmhg168#163.com删除!文件均为网友上传,仅供研究和学习使用,务必24小时内删除。
相关推荐