技术论坛

 回复:在flexible中如何实现定时10秒!?

返回主题列表
作者 主题
温暖斜阳
新手

经验值:8
发帖数:5
精华帖:0
楼主    2009-07-07 10:04:54
主题:在flexible中如何实现定时10秒!?
如上,新人,请高手详细解答!谢谢!
万泉河
至圣

经验值:29190
发帖数:10900
精华帖:131
    2009-07-08 16:59:33
精华帖  主题:回复:在flexible中如何实现定时10秒!?
呵呵,一上来发言的时候想当然了吧?

当然不可以让脚本在那里等执行。

提醒一下:用2-3个内部变量来辅助完成,全局脚本主要做累加。

微信公众号:PLC标准化编程,ZHO6371995
dcount107
侠圣

经验值:2840
发帖数:1737
精华帖:55
    2009-07-08 17:26:54
精华帖  主题:回复:在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
    2009-07-08 18:23:19
精华帖  主题:回复:在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;
非淡泊无以明志,非宁静无以致远
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。