最新提现记录

  • 恭喜 admin 于 2023-6-6 15:17 成功提现 500元
  • 恭喜 admin 于 2023-5-3 09:45 成功提现 400元

WINCC

[复制链接]
查看2203 | 回复9 | 2023-4-9 21:10:10 | 显示全部楼层 |阅读模式
使用条件:
1.软件版本wincc7.4sp1.
2.使用一个按钮,按下按钮时变量tag1置位。再按一下按钮时变量tag1复位.
3.使用VBS脚本。
回复

使用道具 举报

chatGPT_小控 | 2023-4-9 21:10:54 | 显示全部楼层
可以按照以下步骤实现:

1. 在WinCC中创建一个按钮对象,并将其命名为“Button1”。

2. 右键单击“Button1”,选择“属性”打开属性面板,将“变量”设置为“tag1”。

3. 双击“Button1”,打开事件编辑器。

4. 在事件编辑器中选择“OnClick”事件,并选择“脚本”选项卡。

5. 在脚本编辑器中编写如下代码:

[code]If HMIRuntime.Tags("tag1").Read Then
    HMIRuntime.Tags("tag1").Write False
Else
    HMIRuntime.Tags("tag1").Write True
End If[/code]

6. 点击“保存并退出”按钮保存脚本。

7. 运行WinCC应用程序,在界面上点击“Button1”按钮,可以看到tag1变量的值在True和False之间切换。
回复

使用道具 举报

我要当反贼 | 2023-4-9 21:29:52 | 显示全部楼层
If HMIRuntime.Tags("tag1").Read Then
    HMIRuntime.Tags("tag1").Write False
Else
    HMIRuntime.Tags("tag1").Write True
End If
这段脚本中存在什么错误
回复

使用道具 举报

chatGPT_小控 | 2023-4-9 21:30:26 | 显示全部楼层
[quote][size=2][url=forum.php?mod=redirect&goto=findpost&pid=2699&ptid=1243][color=#999999]我要当反贼 发表于 2023-04-09 21:29[/color][/url][/size]
If HMIRuntime.Tags("tag1").Read Then
    HMIRuntim ...[/quote]

这段脚本中存在一个语法错误,即引号的使用不正确。正确的写法应该是:
[code]If HMIRuntime.Tags("tag1").Read Then
    HMIRuntime.Tags("tag1").Write False
Else
    HMIRuntime.Tags("tag1").Write True
End If[/code]
在VBS脚本中,字符串的开头和结尾都需要用双引号或者单引号括起来。在这段脚本中,使用了"代替了双引号,导致脚本无法正确解析。
回复

使用道具 举报

我要当反贼 | 2023-4-10 18:22:07 | 显示全部楼层
这个按钮置位或复位前,要弹窗提醒,是否确认该操作
回复

使用道具 举报

chatGPT_小控 | 2023-4-10 18:22:41 | 显示全部楼层
[quote][size=2][url=forum.php?mod=redirect&goto=findpost&pid=2755&ptid=1243][color=#999999]我要当反贼 发表于 2023-04-10 18:22[/color][/url][/size]
这个按钮置位或复位前,要弹窗提醒,是否确认该操作 ...[/quote]

可以按照以下步骤实现:

1. 双击“Button1”,打开事件编辑器。

2. 在事件编辑器中选择“OnClick”事件,并选择“脚本”选项卡。

3. 在脚本编辑器中编写如下代码:

[code]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[/code]
4. 点击“保存并退出”按钮保存脚本。

5. 运行WinCC应用程序,在界面上点击“Button1”按钮时,会弹出一个确认弹窗,询问用户是否确认进行该操作。如果用户点击了“是”按钮,则进行相应的操作;如果用户点击了“否”按钮,则取消操作。
回复

使用道具 举报

我要当反贼 | 2023-4-10 18:38:48 | 显示全部楼层
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
这段程序中存在什么错误
回复

使用道具 举报

chatGPT_小控 | 2023-4-10 18:39:19 | 显示全部楼层
[quote][size=2][url=forum.php?mod=redirect&goto=findpost&pid=2757&ptid=1243][color=#999999]我要当反贼 发表于 2023-04-10 18:38[/color][/url][/size]
Sub OnClick(Byval Item)   
If HMIRuntime.Tags("DB1 ...[/quote]

这段程序中没有明显的语法错误,但需要注意以下几点:

1. 在VBS中,参数类型需要在参数名前面加上数据类型,而不是在函数名后面加上括号。
2. 在MsgBox函数中,第二个参数需要使用OR运算符(|)将选项组合起来。例如:vbQuestion|vbYesNo表示同时显示"问号"和"是/否"按钮。
3. 虽然不影响程序运行,但建议将变量名改为有意义的名称,以提高代码的可读性。

修改后的程序如下:

[code]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[/code]
回复

使用道具 举报

我要当反贼 | 2023-4-10 18:43:52 | 显示全部楼层
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
回复

使用道具 举报

chatGPT_小控 | 2023-4-10 18:44:14 | 显示全部楼层
[quote][size=2][url=forum.php?mod=redirect&goto=findpost&pid=2759&ptid=1243][color=#999999]我要当反贼 发表于 2023-04-10 18:43[/color][/url][/size]
Sub OnClick(Byval Item)   
If HMIRuntime.Tags("DB1 ...[/quote]

这个报错是因为重复定义了变量“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

这样就解决了名称重定义的问题。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则