| 作者 | 主题 |
|---|---|
|
温暖斜阳 新手 经验值:8 发帖数:5 精华帖:0 |
楼主
主题:在flexible中如何实现定时10秒!?
如上,新人,请高手详细解答!谢谢!
|
|
万泉河 至圣 经验值:29190 发帖数:10900 精华帖:131 |
楼
主题:回复:在flexible中如何实现定时10秒!?
呵呵,一上来发言的时候想当然了吧?
当然不可以让脚本在那里等执行。 提醒一下:用2-3个内部变量来辅助完成,全局脚本主要做累加。
微信公众号:PLC标准化编程,ZHO6371995
|
|
dcount107 侠圣 经验值:2840 发帖数:1737 精华帖:55 |
楼
主题:回复:在flexible中如何实现定时10秒!?
没怎么用过Flexible,班门弄斧了,呵呵;我是用下面的脚本实现的:
SmartTags("StartDelay")=True Dim TimeComp TimeComp = DateAdd("s",10,Now()) Do Until Now()>TimeComp HmiRuntime.Screens("Main").ScreenItems("text1").Text = Time() Loop SmartTags("StartDelay")=False 另外该脚本触发后,运行其他脚本也不会有阻塞现象,不知是否正常?
非淡泊无以明志,非宁静无以致远
|
|
dcount107 侠圣 经验值:2840 发帖数:1737 精华帖:55 |
楼
主题:回复:在flexible中如何实现定时10秒!?
利用变量的“更改数值”事件应该可以达到万版所说的全局脚本的目的,比如设置一个int型变量(其值在PLC中1S改变一次数值,或者通过画面的“加载”事件调用Simulate Tag,周期设成5,相当于1S改变一次),该变量的“更改数值”调用脚本;
再设置两个个变量:StartDelay(bool,启动计数器)和DelayTimers(int,延时计数) 脚本如下: If StartDelay=True Then HmiRuntime.Screens("Main").ScreenItems("Text1").Text=Time() DelayTimers = DelayTimers + 1 If DelayTimers>=10 Then '此处添加延时到所执行的脚本 DelayTimers = 0 StartDelay = False End If End If 在画面中只要将StartDelay置位即可实现延时10s;
非淡泊无以明志,非宁静无以致远
|