近日遇到一个 WinCC 画面窗口的问题,客户称被其弄晕了。怎么访问指定画面中的对象?有没有简单的方法?对此,总结了如下关于画面窗口中对象的访问示例,以期说明画面窗口的简单使用方法。
如下图所示,在画面 start 中有两个画面窗口 picwin1 和 picwin2,它们都关联到 NewPdl0 画面上。在 NewPdl0 中放置了一个矩形对象 Rectangle1。
如果要在start画面中单击按钮“set color”来修改picwin1或者picwin2中的 NewPdl0 中的矩形框Rectangle1的属性,那么该怎么写脚本?
正确的写法是:
访问 picwin1 中的 NewPdl0 中的 Rectangle1 的代码为:
SetPropWord("start.picwin1:NewPdl0","Rectangle1","BackColor",1000);
访问 picwin2 中的 NewPdl0 中的 Rectangle1 的代码为:
SetPropWord("start.picwin2:NewPdl0","Rectangle1","BackColor",1000);
如果直接写 SetPropWord("NewPdl0","Rectangle1","BackColor",1000);,结果会怎样呢?
结果是仅 picwin1 中的 NewPdl0 中的 Rectangle1 的属性被修改了,而 picwin2 中的 NewPdl0 中的 Rectangle1 的属性是不会被修改的。
所以,要修改画面窗口中的对象的属性值时,必须先确定对象所在画面的名称。
如上图所示,是画面窗口的多重嵌套示例。NewPdl0 中有一个画面窗口 PicWin1,PicWin1 关联画面NewPdl1,NewPdl1 中有一个画面窗口 PicWin2,PicWin2 关联到画面 NewPdl2。如果想设置 NewPdl2 中的对象属性时,必须使用画面名称:NewPdl0.PicWin1:NewPdl1.PicWin2:NewPdl2。