发布于 2010-05-21 18:24:55
16楼
Dim NowNum
Dim TagPrefix
On Error Resume Next '遇到错误自动跳转到下一行,防止画面其他的脚步被卡死
NowNum = HMIRuntime.Tags("NowPictureNum").Read '读取内存变量值
If (nownum < 1)Or (nownum >20) Then '容错处理
HMIRuntime.Tags("NowPictureNum").Write 1
NowNum = 1
End If
TagPrefix = "AHU" & NowNum
ScreenItems("Mod").TagPrefix = TagPrefix '定义画面上的画面窗口[Mod]的变量前缀为AHU1~AHU20
Select Case NowNum
Case 1,2,3,4,5,8 '当内存变量值为1~5,8 时[Mod]的画面名称为AHUMod01
ScreenItems("Mod").ScreenName = "AHUMod01"
Case 10 '当内存变量值为10 时[Mod]的画面名称为AHUMod02
ScreenItems("Mod").ScreenName = "AHUMod02"
Case 6,7,11,12 '当内存变量值为6,7,11,12时[Mod]的画面名称为AHUMod03
ScreenItems("Mod").ScreenName = "AHUMod03"
Case 13,14
ScreenItems("Mod").ScreenName = "AHUMod04"
Case 15,16,17,18
ScreenItems("Mod").ScreenName = "AHUMod05"
Case Else '当内存变量值不为上述值时[Mod]的画面名称为AHUMod06
ScreenItems("Mod").ScreenName = "AHUMod06"
End Select
代码的作用就是:
把当前画面上,名称为[Mod]的画面窗口控件的变量前缀根据内存变量NowPictureNum的值赋值为"AHU1"~"AHU12",把画面名称
赋值为"AHUMod01"~"AHUMod06"。
也就是你说的,通过改变内存变量NowPictureNum的值,从而使[Mod]调用不同的模版"AHUMod01"~"AHUMod06"。
上面的代码是WinCC的VBS代码,希望你看得懂吧。
要使用上面的代码,先在窗口拖放一个[矩形]控件,并且把[矩形]控件的"激活闪烁背景"属性设置为'是',再到[矩形]控件的"其他"-"对象改变"事件里面添加上述的VBS脚本。