VB程序弹出画面缓慢

现做了一个改造项目工程,画面中的阀门、电机都是用的WINCC库中的图标,因为之前别人制作的时候,没有弄结构变量,所以只好每个阀门、电机都制作单独的操作小画面,然后我在"事件-对象事件-鼠标按下时“写入VB程序,程序如下:
Sub MouseDown(ByVal Item,  ByVal Button,  ByVal Shift,  ByVal x,  ByVal y)  
Dim PIC
Set PIC = ScreenItems("画面窗口1")''''选择画面窗口
ScreenItems.Item("画面窗口1").PICTURENAME="1#阀门"
PIC.Visible = False
PIC.Left = item.Left+10
PIC.Top = item.Top
ScreenItems("画面窗口1").Visible = True
End Sub
点击弹出都没有什么问题,但是当WINCC一直激活运行监控时,一段时间不点击阀门、电机等操作,再点击时,弹出画面非常缓慢,类似刷网页的意思,但是当弹出后,再点击其他的就都没问题了,但是再过一段时间再点击又出现这样的问题,请问这是什么原因,是程序的事还是其他原因?请高手们讲解、赐教!万分感谢!

最佳答案

wincc运行起来的时候,各种变量,数据等都在不断通信,第一次点击较慢,可能是别的模块占用的资源很多,执行周期很长,需要等待才能响应你的脚本模块。
建议
1、全局变量服务在项目运行的时候就加载上
2、在资源允许的情况下,窗口、画面等,可以在初始化时候都打开,只不过暂时不用的,设为隐藏属性,而不是关闭它,这样免除了在监控过程中加载脚本模块,提高响应速度。
3、优化其他模块的性能,避免长周期的监视,避免过程复杂的动作(复杂的动作拆解成几段来做)
4、检查计算机本身的问题,要知道wincc也是一个应用程序,建立在操作系统之上,其他的进程或配置有可能影响wincc的速度。

针对你的情况,通过画面窗口连接另一个画面在其中显示,问题不在于脚本系统,而是画面窗口作为一个对象本身在加载另一个画面的时候是需要时间的,比如打开A画面,先加载的是A本身的属性,然后,载入在其上的对象,如画面窗口X,X准备好之后,才能再继续加载与X联系的画面B,这个过程有严格的时序,这样就造成了画面A和B出现时差,表现为你看到的情况。
所以,如有可能,尝试直接切换A B画面,而不是把A当做容器,把B至于其中。

提问者对于答案的评价:
谢谢,一下明白了

原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc264034.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2019年6月11日 上午2:42
下一篇 2019年6月11日 上午2:42

相关推荐

  • 高分求WINCC学习视频和资料

    本人新手,求高手发给我学习视频和资料,还有WINCC函数的手册,谢谢,我的学习软件是WINCC 6.2的中文版.邮箱:yidy725@126.com 最佳答案 我有win…

    SIMATIC WinCC 2019年6月11日
  • Wincc7.3读取KEPServerEX 6 变量问题

    KEPServerEX 6 已经正确读取PLC数据,连接状态良好,wincc变量管理里通信连接正确 但组态界面变量无法显示。如图 图片说明: &nbs…

    2021年7月5日
  • 关于WINCC 7.4SP1画面问题咨询

    关于WINCC 7.4SP1画面问题咨询; 1、WINCC 7.4SP1画面中如何实现报警弹窗的功能?无论是主画面还是参数设置画面、工艺流程图画面上都…

    SIMATIC WinCC 2021年7月5日
  • wincc关闭画面的C语言函数

    wincc的C脚本中可以用openpicture()函数来打开画面,请问关闭此画面用哪个函数?好像没有closepicture()这个函数。 问题补充:知道可以用向导关闭,也可以切…

    SIMATIC WinCC 2019年6月11日
  • wincc的图形运行系统

    为什么我的wincc一激活那个系统,图形画面马上被缩小化 最佳答案 项目属性–图形运行系统–窗口属性里面是否勾选了最小化?如果勾选了取消勾选就好了如果需要全盘可以勾选上全屏的,…

    2021年7月5日
  • TP177A和上位机同时监控PLC

    CPU224XP   端口0用来自由口通许,端口1用来连接TP177A和电脑编程软件,连接TP177A时通讯正常,将编程电缆(西门子原装)插到DP连接…

    SIMATIC WinCC 2019年6月11日
  • MSFlexGrid和MS DTPicker控件的WINCC SQL报表实现

    我已经把我的数据通过VBS脚本写到SQL2000数据库里了,现在就想通MSFlexGrid和MS DTPicker控件来查询和显示我数据库里的数据,具体思路就是在画面上添…

    SIMATIC WinCC 2019年6月11日
  • 求 vbs 访问wincc历史数据库的例子

    求 vbs 访问wincc历史数据库的例子,在网上查了一些资料,自己写了个代码。但是查询的时候总是没有数据,数据库里应该有很多数据的,高了很多天了,也没弄明白希…

    SIMATIC WinCC 2020年11月1日
  • wincc画面测试

    哪位大侠知道怎么做wincc画面测试吗?我们的项目的画面已做完,公司说要我们做一下画面测试,谁指导一下,怎么测试吗?测什么东西?谁能给我点方案呀,谢谢! 问题补充:先谢谢各位给我建…

    SIMATIC WinCC 2019年6月11日
  • Wincc获取用户组里面所有的用户名

    我想实现:下拉框获取用户组里面所有的用户名,通过选择下拉选项来登录 问题补充:通过增加用户或者删除用户,下拉列表的用户名相对应增加或删除 最佳答案 WINCC用户及用户组相关数据在…

    2020年11月1日