如何使用结构变量组态画面模板?
How to configure picture template by structure tag?
Getting-started Edition (2010-05)
摘 要 在实际的工业现场及应用中,经常会遇到多个设备需要显示相同参数(组)的情况,
如现场有多个电机,每个电机需要显示和控制的参数(组)都相同,只是不同电机的参数数
值不同。使用画面模板,能够避免多次重复组态相同的画面,减少组态人员的工作量,又能
避免日后项目维护时期的大量工作,提高系统的可维护性。画面模板和结构变量配合使用,
能够快速高效的组态模板,满足现场要求。本文描述的是在 WinCC V7.0sp1 中使用结构变
量组态画面模板的步骤和注意事项。
关键词 画面模板、结构变量、画面窗口
Key Words Picture Template, Structure tag, Picture Window
IA&DT Service & Support
Page 2-25
目 录
1, 使用变量前缀的画面窗口 .................................................. 4
1.1 组态一个作为模板的画面.............................................................................................5
1.1.1 创建结构变量.........................................................................................................5
1.1.2 创建画面模板 .......................................................................................................5
1.1.2.1 IO 域的组态....................................................................................................5
1.1.2.2 按钮的组态.....................................................................................................7
1.1.2.3 状态显示的组态 .............................................................................................9
1.1.2.4 量表和滚动条的组态 ....................................................................................10
1.1.2.5 趋势图的组态 ...............................................................................................12
1.2 创建一个新画面,调用模板 ......................................................................................12
1.2.1 静态设置 TagPrefix .............................................................................................12
1.2.2 通过变量修改 TagPrefix .....................................................................................13
1.2.3 通过脚本修改 TagPrefix .....................................................................................15
2, 使用动态向导的画面模板 ................................................. 18
2.1 创建基准画面............................................................................................................18
2.2 创建模板...................................................................................................................19
2.2.1 执行动态向导 .....................................................................................................19
2.2.2 选择结构类型 .....................................................................................................19
2.2.3 连接对象属性 .....................................................................................................20
2.2.4 完成向导.............................................................................................................20
2.3 根据模板生成画面实例..............................................................................................21
2.3.1 创建一个新画面..................................................................................................21
2.3.2 连接模板和结构变量...........................................................................................22
2.3.3 完成组态.............................................................................................................23
2.3.4 运行效果.............................................................................................................23
2.3.5 其他可能的选择..................................................................................................24
3, 上面两种方法的比较 ..................................................... 24
IA&DT Service & Support
Page 3-25
在 WinCC 中,如果某个变量组态在系统中出现多次,可以使用结构类型。 例如,根据
同一原理设置的多个电机,那么可以创建一个名为 Motor 的结构类型,其中的每个变量都由
一个结构元素来表示,例如 ON_OFF、SetValue、ActualValue 等。每次使用该结构类型创
建新结构实例时,WinCC 都会为相应的电机自动生成所有结构变量。
例如,当对希望通过画面窗口来集成的画面进行组态时,可使用所创建的结构变量。创
建一个对应电机的画面模板,然后在画面中多次调用画面窗口,连接该模板但关联不同的结
构变量,能够实现在各个窗口中显示各个电机不同的状态。
本文描述的是利用结构变量和画面窗口共同组态实现画面模板的两种方法。
1, 使用变量前缀的画面窗口
图 1,画面窗口的样例
首先组态一个模板画面,画面中的对象不是与变量相连,而是与结构元素相连。在运行
系统中,WinCC 通过画面窗口的变量前缀以及已链接在模板画面中的结构元素的名称来构成
所需结构变量的名称。
“变量前缀”属性将指定画面中出现的所有变量的前缀。前缀可自由定义,但必须与结构
变量的名称相匹配,它必须以句点结尾,例如“Structure2.”。改变变量前缀只有在再次装载
画面时才起作用。使用名称 TagPrefix 可使“变量前缀”属性动态化;涉及到控件时仅为
“WinCC 量表控件”和“WinCC 滚动条控件”提供 TagPrefix 属性。
IA&DT Service & Support
Page 4-25
1.1 组态一个作为模板的画面
1.1.1 创建结构变量
在项目中创建一个名为 PID 的结构类型,包含四个结构元素。
图 2,创建结构类型
然后,创建三个结构实例 PID1,PID2,PID3,分别对应现场的三台电机,WinCC 自动
生成结构变量。
1.1.2 创建画面模板
创建一个画面 PicModule.pdl,画面中的对象包括 IO 域,按钮,状态显示,量表控件,
滚动条控件,趋势图等,画面中的对象连接到结构元素上。
1.1.2.1 IO 域的组态
在画面中添加 IO 域,为每个 IO 域连接变量,如 PID1.EntityName。
IA&DT Service & Support
Page 5-25
删除变量的前缀,仅保留结构元素部分,如 EntityName,如图 4 所示。
图 3,组态 IO 域
图 4,删除变量前缀
其他 IO 域的组态方法类似,分别连接 EntityName、ActValue、SetValue 三个元素,用
来显示电机名称,电机实际转速和电机设定转速。
IA&DT Service & Support
Page 6-25
1.1.2.2 按钮的组态
再添加一个按钮,用来控制电机启停,并根据启停状态改变颜色,显示不同的文本。
在按钮的事件中组态 C 动作,C 动作中的变量参数输入结构元素”OnOff”,代码如下:
#include "apdefap.h"
void OnClick(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName)
{
#pragma option(mbcs)
BOOL a;
a=GetTagBit("OnOff");
SetTagBit("OnOff",1-a);
}
为了使按钮的颜色动态更改,设置背景颜色的属性,组态动态对话框,在“表达式”一栏
//Return-Type: BOOL
//Return-Type: BOOL
选择变量,如图 5。
图 5,按钮颜色动态的组态—连接变量
同样需要删除变量前缀,仅保留元素部分,组态后按钮的背景颜色会根据”OnOff”的不同
数值而切换。
IA&DT Service & Support
Page 7-25
图 6,按钮颜色动态的组态—删除前缀
如上图所示的组态完成后,点击“应用”后,系统会因为找不到变量”OnOff”而报图 7 的警
告。
图 7,警告
这时可以选择创建一个同名变量,也可以“忽略”这个警告。
需要注意的是,对于 WinCC V7,所有的对象默认都是应用“全局颜色方案”的,这样的
对象颜色无法动态更改,因此需要设置对象的“全局颜色方案”属性为“否”,如图 8。
IA&DT Service & Support
Page 8-25