Wincc-自定义对象简化实现阀门复杂控制要求
- 格式:pdf
- 大小:134.27 KB
- 文档页数:5
使用Wincc-自定义对象实现阀门复杂控制要求
一、需求:
阀门一般有5种状态:全开全关故障开关。
控制:以wincc元件库的阀门为基础,全开的时候显示绿色,全关的时候显示红色,
开过程显示闪烁绿色,关过程显示闪烁红色,故障显示闪烁黄色。
二、实现:
思路一直接在元件的属性写脚本,但是这个方法在不同的控制对象,需要修改变量时,必须进入脚本修改,万一不小心,可能会修改其他代码,而且修改不是很方便思路二建立wincc的自定义对象,可以解决上面问题。
步骤1、
在内部变量建立五个变量命名为bool1 bool2 bool3 bool4 bool5
bool1对应全开bool2—全关bool3—开bool4—关bool5—故障
2、在画面编辑器中,从库中拖出一个阀门元件和5个静态文本,把阀门元件的符号外观属性修改为Shaded-1 如下图:
文本一对象名改为FullOpen
文本二对象名改为FullClose
文本三对象名改为Open
文本四对象名改为Close
文本五对象名改为Fault
阀门元件对象名称为Control1
3、把文本对象叠在一起,并所有文本的显示属性改为否,放到阀门后面,使其看不见。
4全选对象(注意阀门元件是否被选中,可能需要shift+单击来选中),右击—>自定义对象—>创建
把UserDefined2名称修改为Script 用来放置需要修改脚本的属性,并将control1的前景色闪烁颜色闪烁样式加入到Script属性组的下面。
如下图:
5、回到选择的属性框,右击选择-主题选择并把userDefined3添加到已选主题框中(右移)确定后,修改userDefined3为userDefined(这个属性组中存储的是在工程中我们要添加的变量名),分别把FullOpen FullClose Open Close Fault 5个文本变量的文本属性添加到userDefined下面,并右击修改属性的名称,确定完成修改。
修改后如下。
6、添加脚本在Script下的ForeColor属性添加vbs脚本:
Dim fullopen,fullclose,open,close,fault
If Item.FullOpen<>"" Then '防止输入空字符
fullopen=HMIRuntime.Tags (Item.FullOpen).Read() '获取阀门全开变量值End If
If Item.FullClose<>"" Then '防止输入空字符
fullclose=HMIRuntime.Tags (Item.FullClose).Read()'获取阀门全关变量值End If
If Item.Open<>"" Then '防止输入空字符
open=HMIRuntime.Tags (Item.Open).Read()'获取阀门开变量值
End If
If Item.Close<>"" Then '防止输入空字符
close=HMIRuntime.Tags (Item.Close).Read()'获取阀门关变量值
End If
If Item.fault<>"" Then '防止输入空字符
fault=HMIRuntime.Tags (Item.fault).Read()'获取阀门故障变量值
End If
If fault=1 Then'当故障
ForeColor_Trigger=RGB(255,255,0)'前景色黄色
Item.BlinkColor=RGB(180,180,0)'闪烁色淡黄色
Item.BlinkMode=2 '闪烁模式选择(详见wincc)
Elseif fullopen =1 Then '当全开
ForeColor_Trigger=RGB(0,255,0)'前景色绿色
Item.BlinkMode=0'闪烁模式选择(0为取消闪烁)
Elseif fullclose =1 Then '当全关
ForeColor_Trigger=RGB(255,0,0)'前景色红色
Item.BlinkMode=0'闪烁模式选择(0为取消闪烁)
Else
ForeColor_Trigger=RGB(128,128,128)'其他状态为灰色
End If
在BlinkColor属性中添加如下脚本:
Dim fullopen,fullclose,open,close,fault
If Item.FullOpen<>"" Then '防止输入空字符
fullopen=HMIRuntime.Tags (Item.FullOpen).Read() '获取阀门全开变量值End If
If Item.FullClose<>"" Then '防止输入空字符
fullclose=HMIRuntime.Tags (Item.FullClose).Read()'获取阀门全关变量值End If
If Item.Open<>"" Then '防止输入空字符
open=HMIRuntime.Tags (Item.Open).Read()'获取阀门开变量值
End If
If Item.Close<>"" Then '防止输入空字符
close=HMIRuntime.Tags (Item.Close).Read()'获取阀门关变量值
End If
If Item.fault<>"" Then '防止输入空字符
fault=HMIRuntime.Tags (Item.fault).Read()'获取阀门故障变量值
End If
If fullopen=0 And fullclose=0 And fault=0 Then
If open=1 Then '阀门打开过程
'实现灰色与绿色的交替闪烁
Item.ForeColor=RGB(128,128,128)
BlinkColor_Trigger=RGB(0,255,0)
Item.BlinkMode=2
Elseif close=1 Then '阀门关闭过程
'实现灰色与红色的交替闪烁
Item.ForeColor=RGB(128,128,128)
BlinkColor_Trigger=RGB(255,0,0)
Item.BlinkMode=2
End If
End If
If open=0 And close=0 And fault=0 Then
Item.BlinkMode=0'除了开关故障其余取消闪烁
End If
到这里我们需要实现的功能就已经实现了。
工程中需要使用只要把UserDefined属性下的全开全关开关故障填上相应的变量就可以了,其他不用改动脚本也不需要懂。
只给你5个变量接口
(注意:不是在动态中进行变量连接,而是双击属性名,在单出的文本输入中输入变量名)。
以上内容在wincc 6.2 sp3 中文版中测试通过
预览地址:/share/link?shareid=76104&uk=17166665
Demo下载地址:/share/link?shareid=76123&uk=17166665。