恭喜,你发布的帖子
发布于 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循环导致的,脚本会在后台一直运行.
请填写推广理由:
分享
只看
楼主