最新提现记录

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

wincc vbs脚本1

[复制链接]
查看3013 | 回复17 | 2023-4-10 16:17:52 | 显示全部楼层 |阅读模式
使用WINCC vbs 写一段程序,要求如下:
1.WINCC版本WINCC7.4SP1。
2.使用一个按钮控制一个二进制变量tag1,按下按钮时,弹出一个对话框”是否确认此操作,有’是否‘两个选项,点击’是‘则二进制变量tag1置1,同时对话框关闭,点’否‘则tag1不动作,对话框关闭。再次按下这个按钮时,继续弹出一个对话框”是否确认此操作,点击’是‘则二进制变量tag1置0,同时对话框关闭,点’否‘则tag1不动作。
脚本已有开头Sub OnClick(Byval Item)
已有结尾End Sub
回复

使用道具 举报

chatGPT_小控 | 2023-4-10 16:18:27 | 显示全部楼层
Sub OnClick(Byval Item)
    Dim intResult
    If Item.GetTagName = "Button1" Then '按钮的名称为Button1
        '弹出确认对话框,询问用户是否确认操作
        intResult = MsgBox("是否确认此操作?", vbYesNo + vbQuestion, "确认操作")
        If intResult = vbYes Then '如果用户点击了“是”
            '将二进制变量tag1置1,并显示提示信息
            Item.Tags("tag1").WriteValue(CBool(1))
            MsgBox "操作已确认!", vbInformation + vbOKOnly, "提示"
        End If
    ElseIf Item.GetTagName = "Button2" Then '按钮的名称为Button2
        '弹出确认对话框,询问用户是否确认操作
        intResult = MsgBox("是否确认此操作?", vbYesNo + vbQuestion, "确认操作")
        If intResult = vbYes Then '如果用户点击了“是”
            '将二进制变量tag1置0,并显示提示信息
            Item.Tags("tag1").WriteValue(CBool(0))
            MsgBox "操作已确认!", vbInformation + vbOKOnly, "提示"
        End If
    End If
End Sub
回复

使用道具 举报

我要当反贼 | 2023-4-10 16:32:52 | 显示全部楼层
该脚本编辑保存,运行WINCC后,按钮按下,没有动作,也没有弹窗
回复

使用道具 举报

chatGPT_小控 | 2023-4-10 16:33:24 | 显示全部楼层
[quote][size=2][url=forum.php?mod=redirect&goto=findpost&pid=2733&ptid=1247][color=#999999]我要当反贼 发表于 2023-04-10 16:32[/color][/url][/size]
该脚本编辑保存,运行WINCC后,按钮按下,没有动作, ...[/quote]

可能是脚本文件没有正确地与相应的按钮关联。请按以下步骤检查:

1. 确保在WINCC中正确添加了脚本文件。在项目资源管理器中找到脚本文件,右键单击并选择“属性”,确保将其添加到项目中。

2. 确保在按钮属性中正确指定了脚本文件。在画面设计器中选中按钮控件,右键单击并选择“属性”。然后, 在“事件”选项卡中,确认您在正确的“OnClick”事件下指定了脚本文件的名称。

3. 检查脚本文件是否存在语法错误。您可以尝试在WINCC开发环境中打开脚本编辑器,并使用“Debug”模式运行脚本文件以查看是否有任何错误。

如果以上步骤都正确执行,并且脚本仍然不起作用,请尝试重新编写脚本。
回复

使用道具 举报

我要当反贼 | 2023-4-10 16:41:17 | 显示全部楼层
还有其他的方法吗

回复

使用道具 举报

chatGPT_小控 | 2023-4-10 16:42:05 | 显示全部楼层
[quote][size=2][url=forum.php?mod=redirect&goto=findpost&pid=2737&ptid=1247][color=#999999]我要当反贼 发表于 2023-04-10 16:41[/color][/url][/size]
还有其他的方法吗[/quote]

如果您确定脚本文件已正确关联到按钮,并且没有语法错误,则问题可能是由于某些原因导致脚本文件没有正确执行。您可以尝试以下步骤:

1. 在脚本文件中添加日志语句以调试脚本代码。例如,您可以在脚本代码的开始和结束处添加以下语句:
[code]Item.Trace "Script started"
' Your script code here
Item.Trace "Script finished"[/code]
这将允许您在WINCC运行时查看脚本是否被正确执行。

2. 确认您的按钮控件和标签变量名是否正确。您可以在屏幕设计器中检查或使用WINCC tag浏览器进行确认。

3. 确认您的按钮控件的属性是否正确设置。在按钮的“属性”对话框中检查所有属性,确保它们与您的要求相符。

4. 检查您的WINCC配置是否正确。如果您有其他WINCC环境可用,请尝试在其他环境中运行该脚本,以便确定是否为配置问题。

5. 如果一切都看起来正确,您可以尝试在WINCC开发环境中重新编译项目。打开项目资源管理器,在项目名称上右键单击,选择“编译”。此操作将清除所有对象并重新编译项目。

希望这些建议能够帮助您解决问题!
回复

使用道具 举报

我要当反贼 | 2023-4-10 16:48:36 | 显示全部楼层
可以换一种VBS脚本吗
回复

使用道具 举报

chatGPT_小控 | 2023-4-10 16:49:30 | 显示全部楼层
[quote][size=2][url=forum.php?mod=redirect&goto=findpost&pid=2739&ptid=1247][color=#999999]我要当反贼 发表于 2023-04-10 16:48[/color][/url][/size]
可以换一种VBS脚本吗[/quote]

可以的,这里提供一种实现与您要求相同的VBS脚本:

Sub OnClick(ByVal Item)   
    If Item.GetTagName = "Button1" Then
        '弹出确认对话框,询问用户是否确认操作
        Dim WshShell, intResult
        Set WshShell = CreateObject("WScript.Shell")
        intResult = WshShell.Popup("是否确认此操作?", 0, "确认操作", vbYesNo + vbQuestion)
        
        If intResult = vbYes Then '如果用户点击了“是”
            '将二进制变量tag1置1,并显示提示信息
            Item.Tags("tag1").WriteValue(CBool(1))
            MsgBox "操作已确认!", vbInformation + vbOKOnly, "提示"
        End If
    ElseIf Item.GetTagName = "Button2" Then '按钮的名称为Button2
        '弹出确认对话框,询问用户是否确认操作
        Dim WshShell, intResult
        Set WshShell = CreateObject("WScript.Shell")
        intResult = WshShell.Popup("是否确认此操作?", 0, "确认操作", vbYesNo + vbQuestion)
        
        If intResult = vbYes Then '如果用户点击了“是”
            '将二进制变量tag1置0,并显示提示信息
            Item.Tags("tag1").WriteValue(CBool(0))
            MsgBox "操作已确认!", vbInformation + vbOKOnly, "提示"
        End If
    End If
End Sub

请将脚本代码复制到WINCC的VBS脚本编辑器中,并保存该文件。然后,在屏幕设计器中选中按钮控件,右键单击并选择“属性”,在“事件”标签页中,将“OnClick”事件指定为该脚本的名称。这样即可实现您的要求。
回复

使用道具 举报

我要当反贼 | 2023-4-10 16:54:21 | 显示全部楼层
我的要求是只用一个按钮,该脚本中是否使用了两个按钮?
回复

使用道具 举报

chatGPT_小控 | 2023-4-10 16:55:04 | 显示全部楼层
[quote][size=2][url=forum.php?mod=redirect&goto=findpost&pid=2741&ptid=1247][color=#999999]我要当反贼 发表于 2023-04-10 16:54[/color][/url][/size]
我的要求是只用一个按钮,该脚本中是否使用了两个按钮 ...[/quote]

很抱歉,之前的脚本确实使用了两个按钮。这里提供一个只使用一个按钮的VBS脚本,实现与您要求相同的功能:

Sub OnClick(ByVal Item)
    If Item.GetTagName = "Button1" Then
        '弹出确认对话框,询问用户是否确认操作
        Dim intResult
        intResult = MsgBox("是否确认此操作?", vbYesNo + vbQuestion, "提示")
        If intResult = vbYes Then
            '将二进制变量tag1设置为1
            SetVar "tag1", 1
        ElseIf intResult = vbNo Then
            '不进行任何操作
        End If
        
        '再次弹出确认对话框,询问用户是否确认操作
        intResult = MsgBox("是否确认此操作?", vbYesNo + vbQuestion, "提示")
        If intResult = vbYes Then
            '将二进制变量tag1设置为0
            SetVar "tag1", 0
        ElseIf intResult = vbNo Then
            '不进行任何操作
        End If
    End If
End Sub

其中,SetVar是一个写入变量值的自定义函数,您需要根据您的具体情况去实现它。
回复

使用道具 举报

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

本版积分规则