目的:有2个按钮,一个实现自动采样,一个手动采样,用一个状态变量进行切换
现象:当进入自动采样时,不能终止,不能切换至手动采样,有点像单线程,单任务
代码:自动采样vbs:
....
flag=1
while flag =1
collection() '采样
delay() '延时function
wend
flag=0
手动采样vbs:
....
flag=0
collection() '采样
请教:应该如何通过"手动采样"按钮终止"自动采样"循环?谢谢
问题补充:
全局动作 可以实现,但是还有个问题:
自动采样时,要可以通过对话框设置采样时间,这个触发周期应该怎么搞呢?
最佳答案
全局动作本来就是自动循环执行的,你这么做是死循环。我的思路是:
1、点击手动采样按钮,将内部变量flag复位,直接调用collection()采样程序
2、点击自动采用程序,将内部变量flag置位即可,而循环采样程序交给全局脚本,设定:
if HMIRuntime.Tags("flag").Read Then
collection() '采样
Else
Exit Function
End if
----------------------------
1、楼主你对全局脚本的理解有误区,全局脚本由系统后台按照触发条件调用,与画面中的事件脚本不是一个线程。
2、全局脚本中获取对象的方法需要使用全路径,比如:
Dim oPic,oText
Set oPic = HMIRuntime.Screens("画面名称,不要.PDL")
Set oText = oPic.ScreenItems("Text1")
提问者对于答案的评价:
谢谢
原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc274374.html