WINCC VBS脚本
本帖最后由 我要当反贼 于 2023-4-10 14:19 编辑使用WINCC vbs 写一段程序,要求如下:
1.WINCC版本WINCC7.4SP1。
2.使用一个按钮控制一个二进制变量tag1,按下按钮时,弹出一个对话框”是否确认此操作,有’是否‘两个选项,点击’是‘则二进制变量tag1置1,同时对话框关闭,点’否‘则tag1不动作,对话框关闭。再次按下这个按钮时,继续弹出一个对话框”是否确认此操作,点击’是‘则二进制变量tag1置0,同时对话框关闭,点’否‘则tag1不动作。 下面是一个简单的WINCC VBS脚本实现,可以满足您的需求:
Sub Button1_Click()
Dim result
result = MsgBox("是否确认此操作?", vbYesNo, "提示")
If result = vbYes Then
SetTagVal "tag1", 1
End If
End Sub
在WINCC的按钮控件中绑定Button1_Click这个Sub即可。当用户点击按钮时,会弹出一个提示框,询问是否进行操作,如果用户选择“是”,则将tag1的值设置为1,否则不做任何操作。 Sub Button1_Click()
Dim result
result = MsgBox("是否确认此操作?", vbYesNo, "提示")
If result = vbYes Then
SetTagVal "tag1", 1
End If
End Sub
请问这段程序有什么错误
我要当反贼 发表于 2023-04-10 14:08
Sub Button1_Click()
Dim result
result = MsgB ...
根据该段程序的内容,我并没有看出具体的错误。但是,需要注意以下几点:
1. 程序中引号的类型必须是双引号,而不是中文引号或单引号。
2. 所有WINCC VBS脚本都必须放在“#language “vbscript””和“#end language”之间。
如果您使用的是WINCC7.4SP12版本,且程序已经按照上述要求进行了修改,那么这个程序应该可以正常运行。 使用WINCC vbs 写一段程序,要求如下:
1.WINCC版本WINCC7.4SP1。
2.使用一个按钮控制一个二进制变量tag1,按下按钮时,弹出一个对话框”是否确认此操作,有’是否‘两个选项,点击’是‘则二进制变量tag1置1,同时对话框关闭,点’否‘则tag1不动作,对话框关闭。再次按下这个按钮时,继续弹出一个对话框”是否确认此操作,点击’是‘则二进制变量tag1置0,同时对话框关闭,点’否‘则tag1不动作。 我要当反贼 发表于 2023-04-10 14:19
使用WINCC vbs 写一段程序,要求如下:
1.WINCC版本WIN ...
下面是一个可以实现您要求的WINCC VBS脚本:
#language "vbscript"
Dim flag
flag = False '初始值为false,表示tag1为0
Sub Button1_Click()
Dim result
If flag Then
result = MsgBox("是否确认此操作?", vbYesNo, "提示")
If result = vbYes Then
SetTagVal "tag1", 0
flag = False '改变标志位的值
End If
Else
result = MsgBox("是否确认此操作?", vbYesNo, "提示")
If result = vbYes Then
SetTagVal "tag1", 1
flag = True '改变标志位的值
End If
End If
End Sub
#end language
该程序使用了一个标志位flag来记录当前tag1的值。当用户点击按钮时,首先根据flag的值确定弹出的提示框内容(tag1为0则提示“是否设置tag1为1”,tag1为1则提示“是否设置tag1为0”)。然后根据用户的选择来设置tag1的值,并改变标志位flag的值。如果用户选择“否”,则不做任何操作。 Sub OnClick(ByVal Item)
#language ”vbscript”
Dim flag
flag = False '初始值为false,表示tag1为0
Sub Button1_Click()
Dim result
If flag Then
result = MsgBox(”是否确认此操作?”, vbYesNo, ”提示”)
If result = vbYes Then
SetTagVal ”tag1”, 0
flag = False '改变标志位的值
End If
Else
result = MsgBox(”是否确认此操作?”;, vbYesNo, ”提示”)
If result = vbYes Then
SetTagVal ”tag1”, 1
flag = True '改变标志位的值
End If
End If
End Sub
#end language
End Sub
这段程序有什么错误?
我要当反贼 发表于 2023-04-10 14:25
Sub OnClick(ByVal Item)
#language ”vbscript”
Dim ...
根据这个程序的内容,我发现了以下几个错误:
1. 程序中引号的类型必须是双引号,而不是单引号。
2. 程序中的分号(;)应该是英文逗号(,),因为分号不是合法的VBS语法。
3. OnClick子过程的名称应该是Button1_OnClick,而不是OnClick。
下面是修改后的代码:
#language "vbscript"
Dim flag
flag = False '初始值为false,表示tag1为0
Sub Button1_OnClick()
Dim result
If flag Then
result = MsgBox("是否确认此操作?", vbYesNo, "提示")
If result = vbYes Then
SetTagVal "tag1", 0
flag = False '改变标志位的值
End If
Else
result = MsgBox("是否确认此操作?", vbYesNo, "提示")
If result = vbYes Then
SetTagVal "tag1", 1
flag = True '改变标志位的值
End If
End If
End Sub
#end language
请注意,在WINCC VBS脚本中使用正确的语法和标点符号非常重要。 #language "vbscript"
Dim flag
flag = False '初始值为false,表示tag1为0
Sub Button1_OnClick()
Dim result
If flag Then
result = MsgBox("是否确认此操作?", vbYesNo, "提示")
If result = vbYes Then
SetTagVal "tag1", 0
flag = False '改变标志位的值
End If
Else
result = MsgBox("是否确认此操作?", vbYesNo, "提示")
If result = vbYes Then
SetTagVal "tag1", 1
flag = True '改变标志位的值
End If
End If
End Sub
#end language
报错:缺少语句(5)#language "vbscript" 我要当反贼 发表于 2023-04-10 14:34
#language "vbscript"
Dim flag
flag = False '初始值 ...
根据这个错误提示,您的WINCC VBS脚本中缺少了一部分代码或者某些语句书写不正确。可能是因为#end language所在的行数有误,导致程序无法正常结束。请确认代码格式是否正确并检查该部分代码与其它部分的对应关系。也可以将该部分代码以及完整的WINCC VBS脚本代码贴出来,以便更好地排查问题。