热门搜索:
西门子1FL6032-2AF21-1LG1
上海朕锌电气设备有限公司
西门子销售部 cpu plc s7-200
s7-300 s7 400 s7 1200 s7 1500
mm440 mm430 mm420 g120 变频器 V90变频器
s7 288模块 伺服电机 触摸屏
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坐标的动画激活