还有其他简单的方法吗?sleep和wait函数wincc的vbs脚本不支持
时间: 2024-03-19 07:43:57 浏览: 128
如果 WinCC 的 VBScript 不支持 Sleep 和 Wait 函数,那么你可以使用 WinCC 提供的 WinAPI 函数 SetTimer 和 KillTimer 来实现定时器功能。
下面是一个示例代码:
```
' 定义变量
Dim var1, var2, var3, time1, time2
Dim timerID
' 初始化变量
var1 = 0
var2 = 0
var3 = 0
time1 = 1
time2 = 2
' 定义事件处理程序
Sub StartButton_Click()
' 将变量二赋值给变量一
var1 = var2
' 启动定时器
timerID = SetTimer(0, 0, time1 * 60 * 1000, AddressOf TimerProc)
End Sub
Sub StopButton_Click()
' 清零变量和定时器
var1 = 0
KillTimer 0, timerID
End Sub
' 定时器处理函数
Sub TimerProc(ByVal hwnd, ByVal uMsg, ByVal idEvent, ByVal dwTime)
' 将变量三赋值给变量一
var1 = var3
' 停止定时器
KillTimer 0, timerID
' 启动新的定时器
timerID = SetTimer(0, 0, time2 * 60 * 1000, AddressOf TimerProc2)
End Sub
' 第二个定时器处理函数
Sub TimerProc2(ByVal hwnd, ByVal uMsg, ByVal idEvent, ByVal dwTime)
' 将 0kw 赋值给变量一
var1 = 0
' 停止定时器
KillTimer 0, timerID
End Sub
```
上述代码通过 SetTimer 函数创建了一个定时器,当定时器到期时,就会调用 TimerProc 函数。TimerProc 函数中,将变量三赋值给变量一,然后启动一个新的定时器,再次到期时,调用 TimerProc2 函数将 0kw 赋值给变量一。StopButton_Click 函数中,通过 KillTimer 函数停止定时器。
注意,使用 WinAPI 函数需要将代码放置在 Sub Main 中,并在脚本开头添加以下代码引入 WinAPI:
```
' 引入 WinAPI
Declare Function SetTimer Lib "user32" (ByVal hwnd As Long, ByVal nIDEvent As Long, ByVal uElapse As Long, ByVal lpTimerFunc As Long) As Long
Declare Function KillTimer Lib "user32" (ByVal hwnd As Long, ByVal nIDEvent As Long) As Long
```
阅读全文