加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

利用wincc的结构变量实现画面模板的功能

(2018-01-04 21:38:46)
分类: wincc7.3

利用wincc的结构变量实现画面模板的功能,达到提高效率,减少重复的工作量。

实例环境:Wincc7.3Win7x64

 

1 示例说明
1.1 示例任务
假设某生产现场有 3 台电机,每台电机都有电机名字、速度实际值、速度设定值、启停
状态等参数需要显示在 WinCC 画面中,需达到的效果如图 1-1 所示。

利用wincc的结构变量实现画面模板的功能

1.2 解决方案
在该任务中,每台电机参数类型都一致,可以使用自定义结构类型来存储电机的参数;
在画面中显示,每个电机的显示仅是数据不同,这可以通过建立画面模板来实现,画面模板
只需建立一次,然后多次调用画面模板并传入不同的电机参数,如图 1-2 所示。画面模板的
建立方式有两种:1.利用前缀变量建立画面窗口;2.利用动态向导建立画面模板。
1-2

利用wincc的结构变量实现画面模板的功能

2 建立结构变量
WinCC 项目中,双击Tag Management打开变量管理窗口,如图 2-1 所示。右键
点击Structure tags,选择New structure type建立结构变量,本例命名为 Motor,如
2-2 所示。
利用wincc的结构变量实现画面模板的功能
选中 Motor,在Structure type elements标签页下,添加结构变量的元素及其各元素
数据类型,完成后,如图 2-3 所示。进入Structure tags标签页,添加三个 Data type
Motor
的变量,如图 2-4 所示。至此,完成结构类型的定义和结构变量的添加。
利用wincc的结构变量实现画面模板的功能

3 使用变量前缀建立画面窗口
该方式是先组态一个画面作为画面模板,令画面中的对象与结构变量的元素相连,在运
行画面中,通过添加画面窗口调用该画面,并将画面窗口的前缀变量设置为结构变量的名称。
3.1 创建画面模板
3.1.1 新建画面
WinCC Explorer
下右键点击Grapics Designer,选择New picture建立一个
画面模板,并命名为 PictureTemplate.Pdl
打开画面,进入 Object Properties 标签页,在 Properties Object->geometry 中设置画
面模板的长宽,根据实际需求设定
3.1.2 组态 IO
在画面中添加一个 IO 域,随即弹出 IO Field Configuration 对话框。
然后去掉 Tag 的变量前缀,仅保留 EntityName(即结构变量的元素名),再将
IO 域用于字符显示,还需要将 Properties->Output/Input->DataFormat 设置为 String,继续组态两个 IO 域,用于显示 SetValue ActualValue 的变量值,操作方法参考上文,







3.2 创建起动画面,调用画面模板
WinCC Explorer 中右键点击 Graphic Designer 添加一个名为PictureStart.pdl的画面,右键点击该画面选择 Define screen as start screen 使之成为起动画面。
打开 PictureStart.pdl 画面,添加入三个 PictureWindow 对象,并在 Properties->
Picture Window->Geometry
中设置对象的长和宽,设置为与之前建立的画面模板一致,以保
证画面模板显示完整。
将三个对象的 PictureName 属性均设置为画面模板的名称 PictureTemplate.pdl,这样就
能调用之前画面模板的内容了,如图 3-25
3-25
为了能让 PictureWindow 中显示不同的数据,还需要进行 PictureWindow 对象的
TagPrefix
属性设置。设置 TagPrefix 可以静态的,也可以通过变量或脚本进行动态设置,下面分别介绍。
3.2.1 静态设置 TagPrefix
选中画面中的 PictureWindow 控件,在 Properties->Picture Window->Miscellaneous 中,
TagPrefix Static 值设为 Motor1. Motor2. Motor3.,如图 3-26 所示。这样,
PictureWindow
三个对象中显示的数据就是来自于三个不同的结构变量。
Unrestricted 14
Copyright ã Siemens
AG Copyright year
All rights reserved
3-26
3.2.2 通过变量修改 TagPrefix
选中画面中的 PictureWindow 控件,在 Properties->Picture Window->Miscellaneous 中,
TagPrefix Dynamic 关联为 Tag(请自己在变量管理器中定义一个字符串变量用于控制
TagPrefix
),Update change 设为 Upon change
然后在 Event->Picture Window->Property Topics->Miscellaneous->Tag Prefix 中,右
击闪电图标,将 change 关联为 Direct Connection,如图 3-28 和图 3-29。这样,就能在
TagPrefix
值变化后,重新加载画面名称,实现画面内容的更新。

3.2.3 通过脚本修改 TagPrefix
使用该方式的话,可以在画面中再添加一个按钮,在该按钮的 click 事件中编 C-Action脚本,可以实现对 TagPrefix 的动态修改,如图 3-30 所示。使用其他类型对象的事件动作脚主要代码就两句。第一句为设置 TagPrefix 属性值,其中Picture Window1请用您实际的对象名称代替,Motor1.为你要设置的变量前缀;第二句的作用为设置画面名称,画面就会重新加载一次,这样画面内容才会刷新。

 

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有