技术论坛

 WINCC脚本学习-侧边栏自动显示/隐藏

返回主题列表
作者 主题
RENHQ
版主

经验值:68535
发帖数:12103
精华帖:59
楼主    2021-07-08 15:56:26
主题:WINCC脚本学习-侧边栏自动显示/隐藏 精华帖 

1.简单说明

WINCC项目一般都有导航菜单,在屏幕上需要占用一块区域,如果菜单能够自动隐藏和显示,能给主画面多出一部分来显示工艺画面,而且给人的效果也显得更好一些,这里就试着来实现它。

导航在画面左边,鼠标靠近左侧边缘的时候,导航自动显示,离开导航范围,自动隐藏。

运行效果如下图:


2.画面组态

2.1 获取鼠标位置

由于要时刻监视鼠标的位置,以判断鼠标是否靠近左侧边缘和离开导航范围,所以在全局脚本里面用C脚本获取鼠标位置,并根据鼠标位置,判断是否在边缘位置,如果鼠标X位置小于10,设定导航窗口X坐标位0,导航显示,如果鼠标X坐标大于120,说明鼠标离开导航范围,设定导航窗口X坐标位-120(示例中导航窗口宽度120),导航隐藏,目标位置使用WINCC内部变量:”POS_INDEX_L”。全局脚本触发:250ms。详细脚本附图:

文中图片都是高清的,点击可以查看原图



2.2 导航窗口脚本

在导航画面窗口的X坐标处创建动态VBS脚本,主要实现窗口的移动动画效果,距离实际位置和目标位置的差距,计算一个周期的移动距离,为了有较好的移动效果,脚本触发使用动画周期,而且只有VBS脚本中有动画触发器,动画触发器可以使用脚本打开和关闭,打开的时候,脚本执行,关闭的时候,脚本不执行,个人认为可以减少画面运行时脚本运行的资源。画面的详细脚本:



2.3 导航窗口画面的激活

由于动画触发器只有VBS脚本有,C脚本没有找到相关的函数和办法,所以,导航窗口动画激活还是用的全局脚本做的,在全局脚本的VBS动作里面,脚本的内容也比较简单,只是判断导航窗口的左坐标和目标设定的变量是否相等,如果不想等,设置动画触发器激活。为了有更快的相应效果,周期设置为250ms。其脚本如下:



2.4 补充说明:

因为获取鼠标的坐标是基于整个屏幕位置的,所以想要看到效果,项目需要以全屏方式运行

2.5 再补充:

1、漏了一点在项目设置里面需要设置自定义周期的,在项目名称上右键,点击属性进入设置:


2、对于脚本里面的内容说明:

POS_INDEX_L:内部变量,有符号32位

100_START:运行的主画面名称

PIC_INDEX:100_START画面里面的窗口画面的名称,显示的是自动隐藏的画面

那个"left" 不用管,是代表画面窗口的x坐标的动画激活

Q群:https://jq.qq.com/?k=9BDuEgf6
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。