WinCC中如何通过VBS对不同路径的多层嵌套的控件进行操作

    在WinCC中,有时候会遇到,诸如下图的情况:

     在上述画面中,按钮1会对子画面2中的控件进行操作,按钮2同样也会对子画面1中的控件进行操作,以上所有的WinCC画面均放置在一个叫做TEST的文件夹中,通过以下方式可以实现该功能:

    Wincc画面绝对路径寻址的规则如下:

    “画面所在文件夹\一级画面名称.一级画面窗口:画面所在文件夹\二级画面名称.二级画面窗口:画面所在文件夹\三级画面名称”

    根据以上画面路径规则:

    1、列出子画面1的画面路径:    

TEST\START.WINM:TEST\MAIN.WIN1:TEST\SP1

    2、列出子画面2的画面路径:    

TEST\START.WINM:TEST\MAIN.WIN2:TEST\SP2

    有了以上两个绝对路径SP1上的按钮B1和SP2上的按钮B2就可以互相对彼此画面上的控件进行操作了,比如按下B1改变B2背景颜色为灰色,按下B2改变B1的背景色为绿色。

    

'B1的鼠标点击事件内脚本
hmiruntime.screens("TEST\START.WINM:TEST\MAIN.WIN2:TEST\SP2").screenitems("B2").backcolor=vbgray
'B1的鼠标点击事件内脚本
hmiruntime.screens("TEST\START.WINM:TEST\MAIN.WIN1:TEST\SP1").screenitems("B1").backcolor=vbgreen

    注意:如果实在对某个嵌套太多的画面中的绝对路径理不清楚,另外有个函数可以直接显示当前控件所在的画面路径,如在B1的单击事件中写入以下脚本,可以轻松的获得B1所在画面的绝对路径:

'为了更好的明白该函数的用法,下面把他的使用方式写全
dim obj
set obj=screenitems("B1")
msgbox obj.AccessPath

    在WinCC帮助中对该函数的描述如下:

    显示屏幕对象(图片)的存储路径(包含层级信息)。该属性对应于屏幕集合(Screens Collections)上的完整访问代码。

    通过以上寻址方式,通过VBS脚本,就可以对任意嵌套中任意画面中的控件进行操作了。

posted on 2025-04-26 21:55  老迈克  阅读(332)  评论(0)    收藏  举报

导航