恭喜,你发布的帖子
发布于 2022-03-28 09:14:30
1楼
刚开始学习Wincc的时候,对于趋势曲线还是比较畏惧的,尤其是有很多曲线的时候,需要分组显示,相信很多过来的朋友有相同的感受吧。刚开始不知道使用脚本,就做很多个趋势曲线控件,叠加在一起一次显示一个控件,如果公司没有老人带一下或者有现成的模板,很多朋友都是这样开始摸索的吧,这个阶段就不说了。
后来开始使用画面窗口进行显示,通过画面窗口切换不同的趋势曲线画面,但是也有问题,趋势曲线太多了,按钮放不下。还好Wincc6.2以后有了菜单功能,使用菜单选择曲线组解决了按钮的问题。虽然这也是不成熟的方案,但是对于对脚本不熟练的朋友还是有一定的借鉴价值的。
首先建立好趋势曲线画面,然后再建立一个画面窗口控件用于装在趋势曲线画面,然后开始新建用户菜单,如下图所示,新建一个用户菜单,菜单项的脚本可以完成脚本后添加。
完成菜单的编辑后保存,进入全局脚本的编写,要实现用户画面切换,全局脚本特别简单,如下图所示,只有四行代码,第一行定义一个变量装载画面名称,再定义一个变量装载画面窗口,然后将画面窗口赋值给窗口变量,接着就把菜单用户数据赋给窗口名称变量,最后把画面名称赋给用户窗体。
Sub OnLineMenue(Item)
Dim MyString,Pic_Window
'把MainPicture中的MainWindowPic画面窗体中的OnLineTrend画面下的对象OnLineTrend_Window画面窗体对象赋给Pic_Window对象
Set Pic_Window=HMIRuntime.Screens("MainPicture.MainWindowPic:OnLineTrend").ScreenItems("OnLineTrend_Window")
'把菜单项的用户数据赋给MyString变量作为画面名称,这里画面名称要与用户数据保持一致,
'如果画面名称与用户数据不一致,可以用If then或Select Case语句使用户数据与画面名称对应起来
MyString=Item.UserData
Pic_Window.PictureName=MyString
End Sub
完成代码后在菜单和工具栏编辑器中为每个菜单项加载这个脚本。
接着就是为画面窗口加载菜单,找到画面窗口,打开属性面板,找到菜单和工具栏组态属性,双击打开菜单选择对话框,选择刚才建立的菜单。
运行起来的效果如下:
这样做的优势是比较容易上手,对于初学者能够尽快的上手,问题也是很明显的,画面工作量太多,不能够自由的选择趋势曲线,进行自由的数据比较。
请填写推广理由:
分享
只看
楼主