回复:PANEL如何实现一个按钮按住一定时间才触发动作?

伊默

西门子1847工业学习平台

  • 帖子

    4267
  • 精华

    118
  • 被关注

    220

论坛等级:至圣

注册时间:2003-10-24

白金 白金 如何晋级?

发布于 2016-02-18 08:43:26

18楼

Sub VBSub_TimesDelay(ByRef Bits, ByRef Times)


Dim tTimerSRT

bTimerRun=True

tTimerSRT=Timer

While bTimerRun

If (Timer-tTimerSRT)>=Times Then

SmartTags(Bits)=True

bTimerRun=False

End If

Wend


End Sub


其中bTimerRun为HMI的全局变量,Bool类型.

在按钮的"按下"动作里调用以上脚本.   Bits为需要控制的位,Times为需要设定的延时时间

在按钮的"释放"动作里, 复位变量bTimerRun, 和复位变量Bits的实参

实现的功能为: 当按下按钮, 持续按住时间超过Times时则Bits位对应的实参被置1, 松开为0.  由于Timer函数可以读取毫秒的时间值, 所以效果比Now要好多了,至少可以精确到0.01S的分辨率.


该脚本最多会持续运行Times设定的时间.  对我的项目没啥影响.  

我已经实测没有问题, 就是编译时会警告,提示: 无法始终保证运行系统中脚本和函数的预期顺序.这可能会导致意外操作模式. 请对文档进行注释.    

可能是由于我的While循环导致的,脚本会在后台一直运行.


I can do it
评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC WinCC / Panel

共有32656条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

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

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

  • 分享

  • 只看
    楼主

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