如何区分按钮的短按与长按?

收到小伙伴的来信,怎样区分按钮的短按(按下后松开)与长按(按下并保持一段时间)。说实话,在工业现场,按钮长按来实现某个功能使用的并不多。我曾经在某个信号需要人工确认时使用了长按功能,当时是结合定时器与按钮的输入信号来实现的。要实现按钮的短按与长按的区分,我提供一种思路供大家参考。
基本思路:
使用沿信号配合定时器指令。如果在短时间内检测到了该信号的上升沿及下降沿,则认为按钮是短按状态;如果在某个时间内(比如2秒钟),只检测到了该信号的上升沿而没有下降沿,则认为按钮是长按状态;
结合这个思路我使用scl语言实现了一个函数块fb5020_btnclickhold,其变量声明如下图所示:
其中:
signal:要检测的按钮信号(或其它类似信号);
r:用于复位内部变量;
timecheck:用于检测的时间,默认2秒;
click:按钮是短按状态;
hold:按钮是长按状态;
注:短按与长按不会同时为true。为保证正确,应在获取信号后使用r对内部静态变量进行复位;
代码如下图所示:
这段代码我已经测试过,如果你有任何问题或其它思路,欢迎留言交流。

初级测试工程师应具备哪些素质
大联大友尚集团推出基于onsemi产品的4K图像传感器方案
基于Modbus协议的SCADA系统设计
研赛科技AFC系统批量采用芯动科技风华GPU,赋能轨道交通高质量运行
【数据库数据恢复】SQL SERVER数据库MDF(NDF)或LDF损坏怎么恢复数据?
如何区分按钮的短按与长按?
用这6种方式,CNC车间就能实现降本增效
一种高效率AC/DC电源的设计
AR会成为未来吗?AR眼镜能代替手机吗?
大金空调以技术推动空调界变革 做体验经济下的先驱者
电阻串联电路的特点是什么
让你看了头大的代码
无人机如何保证中国粮食的安全
华为nova 4即将在马来西亚发布
人工智能的真正危险在哪里
振弦采集仪在土体与岩体监测中的可靠性与精度分析
OLA2032B台式逻辑分析仪的性能特点及应用
大型储能电池
怎样减少24伏直流电机的功耗
维基百科是如何定义区块链的