我在全局脚本里写动作。通过窗口调用的画面,脚本如下Set objScreen = HMIRuntime.Screens("BaseScreenName.ScreenWindow:ScreenName").ScreenItems("Control1")
后面脚本编写的是
objScreen.top=objScreen.top+1
当然,运行是有判断条件的。我先在上述画面中执行了.top属性的变化。当我在调用其它画面,执行相关操作后,再返回第一次执行的画面后,对象的top属性又复原了,也就是说,我让对象的TOP属性变化后,在执行完另一幅画面后,又回到了初始状态。我不知道这是怎么会事?我要的结果是,第一次通过窗口画面调用我需要的画面,执行相应属性变化,再调用其它画面,当我再返回时我希望我的对象属性是执行后的结果,不是又回到原来的位置,怎么改阿。怎么样才能让TOP属性不复原?
问题补充:
我也知道需要外部标量来保持,可是,我试了好多编程思路来写,都不行,因为每次在调用画面后.top属性就复原,最后的执行结果总是在复原状态。还有,我的脚本是在全局脚本编辑器里写的。如过您也遇到过相同问题,就帮忙看看。最好能写段示例代码,谢谢!
最佳答案
1。请先在WinCC的“Tag Management(标签管理器)”→“Internal tags(内部标签)”里定义一个内部变量(例如:名称为top,类型为Unsiged 32-bit value);
2。之后在执行画面操作前,即在MouseDown事件里,写入脚本代码“objScreen.top=top”;
3。然后在行画面操作后,即在MouseRelease事件里,“objScreen.top=objScreen.top+1”语句行后,再增加一条语句“top=objScreen.top”,就可实现TOP属性保持功能了。
试试看!
提问者对于答案的评价:
谢谢,实现了。非常感谢
原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc272198.html