關(guān)于WINCC的一段VB腳本
劉玉蓉
發(fā)布于2014-09-18 17:19
187
0
標(biāo)簽:
腳本內(nèi)容如下:Option Explicit
Function action
Dim flag
Dim step1
Dim flag1
flag1=HMIRuntime.Tags("gz_flag").Read
If flag1=1 Then
HMIRuntime.Tags("Instruction7").Write 7
flag=HMIRuntime.Tags("Instruction7").Read
If flag=7 Then
Do
flag=HMIRuntime.Tags("Instruction7").Read
Loop While flag=0
End If
step1=HMIRuntime.Tags("A1_11_GZ").Read
If step1<>0 Then
HMIRuntime.Tags("A1_15_GZ").Write 1
End If
End If
End Function
哪位能逐行的給注釋一下。
佳答案
Option Explicit
Function action
Dim flag
Dim step1
Dim flag1//dim 定義變量
flag1=HMIRuntime.Tags("gz_flag").Read//把gz_flag的值賦值給flag1
If flag1=1 Then
HMIRuntime.Tags("Instruction7").Write 7//如果flag1=1則Instruction7=7
flag=HMIRuntime.Tags("Instruction7").Read//把Instruction7賦值給flag
If flag=7 Then如果flag=7執(zhí)行下面的do while loop循環(huán)語(yǔ)句
Do//當(dāng)flag=0時(shí)一直執(zhí)行do while loop循環(huán)
flag=HMIRuntime.Tags("Instruction7").Read
Loop While flag=0
End If
step1=HMIRuntime.Tags("A1_11_GZ").Read//step1=A1_11_GZ
If step1<>0 Then//如果step1不等于0則A1_15_GZ=1
HMIRuntime.Tags("A1_15_GZ").Write 1
End If
End If
End Function
你的
flag1=HMIRuntime.Tags("gz_flag").Read
If flag1=1 Then
HMIRuntime.Tags("Instruction7").Write 7
flag=HMIRuntime.Tags("Instruction7").Read
If flag=7 Then
Do
flag=HMIRuntime.Tags("Instruction7").Read
Loop While flag=0
End If
這段程序有問(wèn)題,1、如果gz_flag=1那么Instruction7被你賦值為7則Instruction7肯定等于7,flag也等于7,下面的判斷是否等于7就沒(méi)有用了
2、如果flag=7那么do while loop只執(zhí)行一次,而且還是讀取Instruction7,flag還是=7,所以這個(gè)do while loop是沒(méi)有用的,如果flag=0,那么if的條件不滿足,do while loop也就不會(huì)執(zhí)行。