WINCC
使用条件:1.软件版本wincc7.4sp1.
2.使用一个按钮,按下按钮时变量tag1置位。再按一下按钮时变量tag1复位.
3.使用VBS脚本。
可以按照以下步骤实现:
1. 在WinCC中创建一个按钮对象,并将其命名为“Button1”。
2. 右键单击“Button1”,选择“属性”打开属性面板,将“变量”设置为“tag1”。
3. 双击“Button1”,打开事件编辑器。
4. 在事件编辑器中选择“OnClick”事件,并选择“脚本”选项卡。
5. 在脚本编辑器中编写如下代码:
If HMIRuntime.Tags("tag1").Read Then
HMIRuntime.Tags("tag1").Write False
Else
HMIRuntime.Tags("tag1").Write True
End If
6. 点击“保存并退出”按钮保存脚本。
7. 运行WinCC应用程序,在界面上点击“Button1”按钮,可以看到tag1变量的值在True和False之间切换。 If HMIRuntime.Tags("tag1").Read Then
HMIRuntime.Tags("tag1").Write False
Else
HMIRuntime.Tags("tag1").Write True
End If
这段脚本中存在什么错误 我要当反贼 发表于 2023-04-09 21:29
If HMIRuntime.Tags("tag1").Read Then
HMIRuntim ...
这段脚本中存在一个语法错误,即引号的使用不正确。正确的写法应该是:
If HMIRuntime.Tags("tag1").Read Then
HMIRuntime.Tags("tag1").Write False
Else
HMIRuntime.Tags("tag1").Write True
End If
在VBS脚本中,字符串的开头和结尾都需要用双引号或者单引号括起来。在这段脚本中,使用了"代替了双引号,导致脚本无法正确解析。 这个按钮置位或复位前,要弹窗提醒,是否确认该操作 我要当反贼 发表于 2023-04-10 18:22
这个按钮置位或复位前,要弹窗提醒,是否确认该操作 ...
可以按照以下步骤实现:
1. 双击“Button1”,打开事件编辑器。
2. 在事件编辑器中选择“OnClick”事件,并选择“脚本”选项卡。
3. 在脚本编辑器中编写如下代码:
If HMIRuntime.Tags("tag1").Read Then
Dim confirm
confirm = MsgBox("是否要将变量置为不激活状态?", vbQuestion+vbYesNo, "确认操作")
If confirm = vbYes Then
HMIRuntime.Tags("tag1").Write False
End If
Else
Dim confirm
confirm = MsgBox("是否要将变量置为激活状态?", vbQuestion+vbYesNo, "确认操作")
If confirm = vbYes Then
HMIRuntime.Tags("tag1").Write True
End If
End If
4. 点击“保存并退出”按钮保存脚本。
5. 运行WinCC应用程序,在界面上点击“Button1”按钮时,会弹出一个确认弹窗,询问用户是否确认进行该操作。如果用户点击了“是”按钮,则进行相应的操作;如果用户点击了“否”按钮,则取消操作。 Sub OnClick(Byval Item)
If HMIRuntime.Tags("DB18_手动操作投入").Read Then
Dim confirm
confirm = MsgBox("是否要将变量置为不激活状态?", vbQuestion+vbYesNo, ";确认操作")
If confirm = vbYes Then
HMIRuntime.Tags("DB18_手动操作投入").Write False
End If
Else
Dim confirm
confirm = MsgBox("是否要将变量置为激活状态?", vbQuestion+vbYesNo, "确认操作")
If confirm = vbYes Then
HMIRuntime.Tags("DB18_手动操作投入").Write True
End If
End If
End Sub
这段程序中存在什么错误 我要当反贼 发表于 2023-04-10 18:38
Sub OnClick(Byval Item)
If HMIRuntime.Tags("DB1 ...
这段程序中没有明显的语法错误,但需要注意以下几点:
1. 在VBS中,参数类型需要在参数名前面加上数据类型,而不是在函数名后面加上括号。
2. 在MsgBox函数中,第二个参数需要使用OR运算符(|)将选项组合起来。例如:vbQuestion|vbYesNo表示同时显示"问号"和"是/否"按钮。
3. 虽然不影响程序运行,但建议将变量名改为有意义的名称,以提高代码的可读性。
修改后的程序如下:
Sub OnClick(ByVal Item)
If HMIRuntime.Tags("DB18_手动操作投入").Read Then
Dim confirm
confirm = MsgBox("是否要将变量置为不激活状态?", vbQuestion|vbYesNo, "确认操作")
If confirm = vbYes Then
HMIRuntime.Tags("DB18_手动操作投入").Write False
End If
Else
Dim confirm
confirm = MsgBox("是否要将变量置为激活状态?", vbQuestion|vbYesNo, "确认操作")
If confirm = vbYes Then
HMIRuntime.Tags("DB18_手动操作投入").Write True
End If
End If
End Sub Sub OnClick(Byval Item)
If HMIRuntime.Tags("DB18_手动操作投入").Read Then
Dim confirm
confirm = MsgBox("是否要将变量置为不激活状态?", vbQuestion+vbYesNo, ";确认操作")
If confirm = vbYes Then
HMIRuntime.Tags("DB18_手动操作投入").Write False
End If
Else
Dim confirm
confirm = MsgBox("是否要将变量置为激活状态?", vbQuestion+vbYesNo, "确认操作")
If confirm = vbYes Then
HMIRuntime.Tags("DB18_手动操作投入").Write True
End If
End If
End Sub
编译时存在错误,名称重定义(12)Dim confirm 我要当反贼 发表于 2023-04-10 18:43
Sub OnClick(Byval Item)
If HMIRuntime.Tags("DB1 ...
这个报错是因为重复定义了变量“confirm”。在VBS中对于每一个变量只能进行一次声明,也就是说,在同一作用域内不能使用相同名称的变量。可以按照以下修改程序:
Sub OnClick(ByVal Item)
If HMIRuntime.Tags("DB18_手动操作投入").Read Then
Dim confirm1 '将变量名修改为confirm1
confirm1 = MsgBox("是否要将变量置为不激活状态?", vbQuestion|vbYesNo, "确认操作")
If confirm1 = vbYes Then
HMIRuntime.Tags("DB18_手动操作投入").Write False
End If
Else
Dim confirm2 '将变量名修改为confirm2
confirm2 = MsgBox("是否要将变量置为激活状态?", vbQuestion|vbYesNo, "确认操作")
If confirm2 = vbYes Then
HMIRuntime.Tags("DB18_手动操作投入").Write True
End If
End If
End Sub
这样就解决了名称重定义的问题。
页:
[1]