Wincc块图标和脚本函数在开发设计中的应用
2012-07-11宫迎辉何宏宏王中会杨春青
宫迎辉,何宏宏,王中会,杨春青,李 芳
(1.北京机械工业自动化研究所,北京 100120;2.安徽合肥师范附小二小,合肥 230601)
0 引言
电镀铬钢板是用于金属包装的重要产品,随着自动化控制的发展,生产线要求更加精密和完善的自控控制。Wincc作为可视化窗口,除了要实现以往的图形数据的显示功能,根据现场要求还需要通过脚本及结构来实现更加具有用户特点的功能。
1 块图标的设计
监控画面是上位监控系统设计的主要环节,块图表和设备则是组成上位监控的主要元素。
1.1 块图标
在电镀铬生产线中有大量的电机、水泵、电磁阀等设备。他们的各个类型的设备功能和外观相似。因此,块图标是WINCC画面组态的重要环节。但在制作和设计众多块图标和监控画面需要大量的时间,步骤如下:
1)首先在画面编辑器里为每个块新建一个画面,并以设备名称命名。
2)调整和布局每个画面中块的监控内容。
3)然后在监控画面中调用画面窗口对象,确定好画面窗口在整个画面中的位置宽度高度等属性。保持画面的协调性。
4)然后设定画面窗口的属性,指定画面名称,例如“motor.pdl”,在对变量前缀属性项指定过程变量,但只取结构变量中设备的命名并加.为后缀。例如:open1.
1.2 模板的建立
1)首先在结构变量里新建一个结构变量,在结构属性中将控制设备的变量全部建立,形成一个结构。以电机为例如图1所示。
图1 电机的结构变量
2)设备操作模板的设计方法步骤参见块图标的描述。本项目中电机的操作模板如图2所示。
图2 电机的操作模板
2 脚本代码的编程设计
脚本代码是实现生产线监控画面动态属性的关键和核心。由于WINCC脚本函数操控性强大而灵活,所以我们使用了VBS脚本。
在电镀铬生产线中钢带的焊缝跟踪是非常必要的。根据实际焊缝检测信号,及钢带运行速度进而计算钢带长度,再根据实际情况分段处理,使其实现图中正确的焊缝位置显示。为了相对准确的知道焊缝的位置,我们将整条生产线分为:入口段、前活套、前处理、电镀铬、后活套、出口段六个部分。在各段中我们将根据运行速度计算其实际直线长度,再根据一定得比例设定来准确的显示在焊缝跟踪曲线上。而比例设定我们将作为一个类似于前面讲到的结构来完成,其实现方法如图3所示。以每个部分为单元,其开始位置与结束位置为参考,通过VB脚本实现计算,完成比例及运行轨迹的实时跟踪。根据实际钢板长度值得实时变化来触发以上的VB脚本程序。具体的实现方法如下:在焊缝实际钢带长度的输出域属性——“事件”——“输出值”中写入以下脚本:
Dim x1,x2,x3,x4,x5,x6,x
Dim a1,a2,a3,a4,a5,a6,b
Dim k1,k2,k3,k4,k5,k6
b=HMIRuntime.Tags("a3").Read
k1=HMIRuntime.Tags("ka").Read
k2=HMIRuntime.Tags("kb").Read
k3=HMIRuntime.Tags("kc").Read
k4=HMIRuntime.Tags("kd").Read
k5=HMIRuntime.Tags("ke").Read
k6=HMIRuntime.Tags("kf").Read
x1 = ScreenItems("juxing1").Left
a1 = ScreenItems("juxing1").Width
x2 = ScreenItems("juxing2").Left
a2 = ScreenItems("juxing2").Width
x3 = ScreenItems("juxing3").Left
a3 = ScreenItems("juxing3").Width
x4 = ScreenItems("juxing4").Left
a4 = ScreenItems("juxing4").Width
图3 电镀铬生产线焊缝追踪
x5 = ScreenItems("juxing5").Left
a5 = ScreenItems("juxing5").Width
x6 = ScreenItems("juxing6").Left
a6 = ScreenItems("juxing6").Width
x = ScreenItems("juxing").Left
If x1 ScreenItems("juxing").Left=k1*b+x1 Else If x2 ScreenItems("juxing").Left=k2*b+x2 Else If x3 ScreenItems("juxing").Left=k3*b+x3 Else If x4 ScreenItems("juxing").Left=k4*b+x4 Else If x5 ScreenItems("juxing").Left=k5*b+x5 Else If x6 ScreenItems("juxing").Left=k6*b+x6 Else End If End If End If End If End If End If End Sub Wincc是一款功能灵活的监控和数据采集组态软件。全局脚本代码的灵活操作性,以及丰富而美观的图标库为设备块图标和操作模板组态设计提供了强大的技术支撑。虽然块图标和操作模板的设计是要花费一些时间,但是建立好后,对于整个监控画面的设计和更改却是非常简单与快捷,节省大量的时间与精力。 [1] 西门子公司. 用户手册. [2] 2011西门子自动化专家会议论文集(上册).3 结束语