Wincc人机交互中,工艺画面上有时会有同类设备要做同样的状态显示,比如阀门正在动作背景颜色绿色闪烁,开到位不闪烁显示蓝色,关到位不闪烁显示红色,同时还要显示阀门开度。这类需求下,我们可以把同类设备做成一个面板(faceplate),在需要的地方创建一个面板的实例,以加快项目开发的速度。本文还是以阀门为例描述。

    1. 打开Wincc项目管理器,点击菜单“文件”-“新建面板类型”(ctrl+t),或者在工具栏上点击新建面板类型按钮

wincc能调用python吗 wincc怎么用_项目开发

尺寸设定为宽210,高230

在面板上放置两个圆圈,名字分别为val_display1和val_display2,放置一个多边形,名字为val_display3,放置两个静态文本,名字分别为title和M。放置一个输入输出域,名字为Val_position_val。放置完成后如图:

wincc能调用python吗 wincc怎么用_项目开发_02

2. 点击菜单“编辑”-“组态面板类型”,在弹出的对话框中Properpies下新建11个属性,名且重新命名(为便于理解).

wincc能调用python吗 wincc怎么用_输入输出_03

3. 在上面的对话框,把实际对象属性逐个用鼠标拖拽到说选属性类别下,如图所示。

wincc能调用python吗 wincc怎么用_wincc能调用python吗_04

 

wincc能调用python吗 wincc怎么用_项目开发_05

wincc能调用python吗 wincc怎么用_输入输出_06

在面板的输入输出域-事件-属性主题-输出输入-输出值-更改,添加以下VBS脚本

Sub OutputValue_OnPropertyChanged(ByVal Item, ByVal value)                                 
If value<5 Then  '阀门开度低于5%不闪烁,红色
  SmartTags("Properties\Val_FlashColor")=False
  SmartTags("Properties\Val_DisplayBackColor").value= vbRed
Elseif value>=5 And value<=95 Then '阀门开度大于5%低于95% 闪烁,绿色
  SmartTags("Properties\Val_FlashColor")=True
  SmartTags("Properties\Val_Flashon")=vbGreen
Else  '阀门开度等于高于95%不闪烁,蓝色
  SmartTags("Properties\Val_FlashColor")=False
  SmartTags("Properties\Val_DisplayBackColor")=vbBLUE
End If
End Sub

要注意SmartTags语句中“Properties”单词的大小写,我在Wincc V7.3中实验,这个单词大小写如果不严格和上面一致,程序是没有效果的。

4. 由于只是演示,所以在内部变量新建三个32位浮点数变量Val1_Position,Val2_Position,Val3_Position。

5. 在wincc页面上可以添加面板实例,从“标准”-“智能对象”-“面板实例”中选取刚才制作的面板类型,放置在页面上合适的位置。其属性-其他-缩放模式可以选择“比例”、“1:1”、“不成比例”,此处选择“1:1”。在属性-用户自定义2-titletext中,可以修改这个阀门的名字。属性Position_Outputvalue中关联变量Val1_Position。同样的方法再放置阀门2和阀门3.

wincc能调用python吗 wincc怎么用_wincc能调用python吗_07

6.保存运行,阀门1输入开度3,阀门2输入开度30,阀门3输入开度98%,可以看到阀门1不闪烁,红色;阀门2闪烁,绿色;阀门3不闪烁,蓝色。

wincc能调用python吗 wincc怎么用_wincc能调用python吗_08