07-WinCC VBS在WinCC中常用实例及函数的用法介绍<一>

      1、访问图形编辑器中的对象——ScreenItems

      用法:

      dim obj

      set obj=Screenitems([图形对象名称])

      注意:图形对象名称即在图形编辑器中的按钮、圆、矩形、线、IO域、静态文本等图形对象的对象名称,该对象名称可以是直接写入对象名称,也可以使用字符串进行替代。

      例如,在一个画面中,有十个圆形,其对象名称分别为“C1”、"C2"。。。"C10",如果逐个进行对象创建比较麻烦,这个时候就可以根据实际需要进行筛选,如通过一个循环,批量的对对象的半径进行修改,设定全部半径为20.

dim i,obj
for i=1 to 10
    set obj=ScreenItems("C"+Cstr(i))
    obj.Radius=20
next
set obj=nothing

    2、Screens的用法

    Screens主要是对画面窗口的操作,可以通过Screens在当前画面中直接对其他不同路径中的画面窗口中的对象进行操作。

    如在一个画面中,按下一个按钮后,想让Start画面中的一个名为“EXIT”的窗口显示出来就可以使用一下代码实现。

Dim objGroup 
Set objGroup = HMIRunTime.Screens("Start").ScreenItems("EXIT")
objGroup.Visible =true

    详细见该博文:WinCC中如何通过VBS对不同路径的多层嵌套的控件进行操作 - 老迈克 - 博客园

    3、WinCC系统禁用

    该指令较为简单,可以配合弹窗使用,二次确认是否需要进行系统禁用或者取消激活。

     用法:直接使用 hmiruntime.stop

dim con
con=MsgBox("按「确定」继续执行,按「取消」退出", vbOKCancel, "提示")
If con= vbOK Then
    hmiruntime.stop
End If

    4、变量的操作

    用法:hmiruntime.tags([变量名称]),变量名称可以直接使用变量名称也可以使用字符串实现动态操作。

'简单直接写入变量值
HMIRuntime.Tags("Tag1").Write 6

'通过对象引入写入变量值
Dim objTag
Set objTag = HMIRuntime.Tags("Tag1")
objTag.Write 7

'通过利用引用,可以在写入之前使用变量对象。可以读取变量值,进行计算,并再次写入:
Dim objTag
Set objTag = HMIRuntime.Tags("Tag1")
objTag.Read
objTag.Value = objTag.Value + 1
objTag.Write

'简单读取
HMIRuntime.Trace "Value: " & HMIRuntime.Tags("Tag1").Read & vbCrLf


'通过利用引用可以使用变量对象。 可以读取变量值,进行计算,并再次写入:
Dim objTag
Set objTag = HMIRuntime.Tags("Tag1")
objTag.Read
objTag.Value = objTag.Value + 1
objTag.Write

'直接读取
Dim objTag,TagVal
Set objTag = HMIRuntime.Tags("Tag1")
HMIRuntime.Trace "Value: " & objTag.Read(1) & vbCrLf

    5、写入对象属性

    可以通过1中的Screenitems对对象的属性进行动态写入:

'最简单的写入,改变对象的背景色
ScreenItems("Rectangle1").BackColor = RGB(255,0,0)

'通过引用设置属性
Dim objRectangle
Set objRectangle = ScreenItems("Rectangle1")
objRectangle.BackColor = RGB(255,0,0)

'通过画面窗口设置属性
'以下示例中,在从属画面窗口中更改矩形的颜色。 相应脚本在画面窗口“ScreenWindow1”所处的画面“BaseScreen”中执行。 此画面窗口会显示包含名称为“Rectangle1”的“Rectangle”类型对象的画面。
Sub OnLButtonUp(ByVal Item, ByVal Flags, ByVal x, ByVal y)
Dim objRectangle
Set objRectangle = ScreenItems("ScreenWindow1").Screen.ScreenItems("Rectangle1")
objRectangle.BackColor = RGB(255,0,0)
End Sub

'通过基本画面引用
'可通过 HMIRuntime.Screens 引用具有待修改对象的画面。该画面相对于基本画面的规范通过以下访问代码进行定义:
‘[<Grundbildname>.]<Bildfenstername>[:<Bildname>]... .<Bildfenstername>[:<Bildname>]
’在以下示例中,将创建对“Rectangle1”画面中包含的“Screen2”对象的引用,并将背景颜色设置为红色。
‘这种情况下,画面“Screen2”位于“Screen1”中。 “Screen1”显示在基本画面“BaseScreen”中。
Dim objRectangle
Set objRectangle = HMIRuntime.Screens("BaseScreen.ScreenWindow1:Screen1.ScreenWindow1:Screen2").ScreenItems("Rectangle1")
objRectangle.BackColor = RGB(255,0,0)

    6、控件的动态化

    可以对趋势、报警等控件进行动态操作,该内容较多,后续分解介绍。

    

 

posted on 2025-11-06 17:51  老迈克  阅读(6)  评论(0)    收藏  举报

导航