我用VB读WinCC的8个变量,程序如下,变量是读过来了,TimerDDE_Timer是6秒的定时器;但是现在有以下两个问题:
1、我发现当VB程序先启动,而WinCC而后启动并激活时,变量一直读不过来,反之没有问题,请问是不是程序哪里有问题?
2、当WinCC与PLC连接断开时,读过来的变量还是之前没断时的值,一直不会改变,这是怎么回事,还是WinCC断开时调上来的值是不会变的,请问有没有方法解决这个问题,谢谢!
Private Sub TimerDDE_Timer()
Dim i As Integer
Dim WINCC_Object As Object
Dim WINCC_data(8) As Object
Set WINCC_Object = CreateObject("CCHMIRuntime.HMIRuntime")
Set WINCC_data(1) = HMIRuntime.Tags("DB34_8")
WINCC_data(1).Read
Set WINCC_data(2) = HMIRuntime.Tags("DB34_0")
WINCC_data(2).Read
Set WINCC_data(3) = HMIRuntime.Tags("DB34_4")
WINCC_data(3).Read
Set WINCC_data(4) = HMIRuntime.Tags("DB34_60")
WINCC_data(4).Read
Set WINCC_data(5) = HMIRuntime.Tags("DB31_16")
WINCC_data(5).Read
Set WINCC_data(6) = HMIRuntime.Tags("DB31_20")
WINCC_data(6).Read
Set WINCC_data(7) = HMIRuntime.Tags("DB36_0")
WINCC_data(7).Read
Set WINCC_data(8) = HMIRuntime.Tags("DB36_4")
WINCC_data(8).Read
For i = 1 To 8 Step 1
data_test(i) = WINCC_data(i).Value
Next i
Set WINCC_Object = Nothing
End Sub