WinCC在污水处理中的应用-仪表展览网
筛选
  • 地区
    全部
  • 会员级别
    全部
筛选
  • 截止时间
    全部
WinCC在污水处理中的应用
2010/2/26 23:30:13
浏览:504

WinCC在污水处理中的应用

摘要: 为了满足污水处理自动化控制的需要,在深入研究了污水处理自动化控制特点的基础上,应用工业组态软件 WinCC 开发了相应的控制程序。并且讨论了针对于污水处理的软、硬件构成,以及开发过程中遇到的问题和解决方法。

 

关键字: 集散控制系统;可编程控制器; WinCC ; STEP7 ;

 

 

• 引言

 

改革开发以来,我国工业企业日新月异,规模日益壮大,先进设备广泛应用,工艺科技含量越来越高。在生产中,自动化技术已经普及到各个领域、各个车间,这充分说明我国民族工业的逐渐强大。但是相比之下,在许多企业的污水处理中自动化程度不高,采用的软硬件落后,甚至有的控制点还依赖于人工操作,无形中制约了企业技术先进化的发展。为此我们结合某一个排污量大 ( 平均流量 80T/H) 、污水成分复杂 ( 包括面漆水、电泳水、车身浓脱脂水等 ) 、控制设备多 ( 需要 600 多控制点 ) 的汽车制造厂在污水处理改造项目中,采用 20 世纪 90 年代国际上先进的工控组态软件 WinCC ,开发了相应的污水处理的控制程序。在一年多时间的实际运行中,各项工艺指标都达到了预期的效果,用户十分满意,从而告别了长期污水排放不达标的被动局面。

 

• WinCC 软件的简介

 

工控组态软件 WinCC 是一个集成的人机界面 (HMI) 系统和监控管理系统,它是西门子公司在过程自动化领域中的先进技术和微软公司强大软件功能的产物, WinCC 是视窗控制中心 (Windows Control Center) 的简称。它包括图形设计器、报警记录、标记记录、报告设计器、全局脚本、控制中心、用户管理等功能,使其具有高性能的过程耦合、快速的画面更新、以及可靠的数据管理 [1 ~ 2] 。

 

 

• 系统构成

 

对于一个普通的水处理项目就其工程量而言是巨大的,尤其是一些大型项目,所以开发控制程序、调试的时间不能不成为必须考虑的因素。但是出于可靠性的考虑,将控制系统的功能分离是必须的,即:下位机执行保护、控制和数据的采集,脱离上位机也能独立对系统进行控制,上位机执行显示、操作、报警、储存等。那么带来的问题是上下位机的通讯又成为费时费力的工作。

WinCC 能和所有主要厂商的 PLC 进行通讯,如: AB 、 GE 、 Omron 等。如果与西门子的 PLC 系列及 STEP 7 软件合用,将大幅降低工程时间,因为 STEP 7 中定义的变量可以在 WinCC 中直接使用。

 

由于工业污水的水质成分复杂,有害物含量高,所以处理工艺的复杂 ( 包括调节、初沉、混凝气浮、化学沉淀、生化处理等 ) ,要求控制的部件多,相互关联的控制回路也比较多。其工艺流程简图如图 1 所示。

 

 

图 1 、车身厂污水处理工艺流程简图

 

系统上位机采用工业用计算机,配置为 P Ⅲ 800 、 256M 内存、 40G 硬盘、 21 显示器,运行中文 Windows 2000 操作系统,组态软件为 WinCC5.0SP2 中文版,通过 CP5611 通讯卡 (MPI/PROFIBUS) 与下位机通讯;下位机采用 S7-300 系列中的 CPU318-2DP ,共 21 块 I/O 卡。由于整个处理工艺的占地面积比较大,控制回路多,为了避免铺设大量的控制线路,所以采用西门子的 ET200 模块将一部分 I/O 放置在距离中心控制室较远而控制点又比较集中的地方,利用西门子的 PROFIBUS - DP 通讯协议形成远程 I/O 。控制系统结构如图 2 所示。

 

 

 

图 2 、车身厂污水处理 DCS 控制系统结构

 

4 、 WinCC的组态实现

 

4.1 主控界面的组态

 

本系统的设备比较多,要将所有的设备都显示在一张画面里是不可能的,所以将设备按照处理工艺的功能步骤分级在多张画面内,分为电泳线、前处理线、生化线、加药线等,之间的切换使用按钮的鼠标动作来实现。这对于用 WinCC 现成的鼠标动作来实现是很简单的,但是不是要在每张图上都使用相同数量且位置排列顺序一致的按钮呢? ( 出于对操作的一致性考虑,不能让操作人员在不同的图上,不同的位置找想要操作的按钮 ) 这个问题的解决我们使用 WinCC 的脚本编程,在按钮动作中调用它的内部函数来实现。首先,组态一幅背景画面,其中包括要显示的静态文本、 OLE( 例如,时钟 ) 、所有的图形切换按钮及推出关机按钮。第二,在背景画面中插入智能对象 (Smart Object) 中的画面窗口 (Picture Window), 并且使其的尺寸与其分级画面相同。第三,在相应的切换按钮的属性 -> 事件 -> 鼠标动作中编写如下 C 语言脚本代码:

 

#include"apdefap.h"

void OnClick(char *lpsz PictureName,

char *lpsz ObjectName,char *lpsz PropertyName)

{ SetPictureName(" 背景画面 ", " 画面窗口 ", " 电泳处理线 "); }

 

//" 背景画面 " 即为始终显示地静态背景的属性名, " 画面窗口 " 即为在背景画 // 面中插入地画面窗口 (Picture Window) 属性名, " 电泳处理  线 " 即为分级画面 // 的名称这样就能方便快捷地切换画面。

还有一个必须始终显示的是报警记录,用画面颜色闪烁来提示操作者有故障发生,可以用同样的 C 语言脚本 ( 当然不是加在鼠标动作中 ) 在背景画面的底部留下一条类似 Windows 状态栏的报警栏,当出现故障报警的时候在报警栏显示最近一条报警记录,操作人员可以利用按钮切换到主报警记录画面了解故障的完全信息。

 

 

4.2 单个部件的组态

 

WinCC 在其内部的图库里集成很多的图形对象,如水箱、电机、阀门等等,对于污水处理用的最多的是水池,搅拌机等等。为了使组态画面贴近实际,能够更好的反应现场工况,图库里的元素并不能满足要求。我们可以利用 WinCC 的画图工具自己绘制适应实际的图形元素,并且使用 C 脚本使其产生动画效果。如 3 图所示。

 

 

图 3 、组态部件元素

 

对于调节池,反应池等可以用矩形来表示,以图形的填充高度来示意其液位的高度。这里要注意的是一些数值地转化,由于一些仪表例如 E+H 的超声波液位计,是以 4 ~ 20 毫安的电流信号进入 PLC ,对于表的参数设定好以后 4 毫安就对应相应池子的液位最低点,而 20 毫安对应于池子的液位最高点。所以在显示数字高度的时候要将 PLC 相对 4 、 20 毫安的数值转化为实际池子的高度范围例如, 0.5~ 5.5 米 。但是对于图形填充的时候是按照百分数来表示的所以还要将 PLC 数值转化为 0 ~ 100% 的度量范围。

 

搅拌机的组态可以使用 C 脚本使其产生动画,在其运行时产生视觉上的旋转。实际上搅拌机的图形是用两个部分椭圆组成的,在椭圆的属性 -> 几何 -> 半径中加入代码如下:

 

#include "apdefap.h"

long _main( char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName )

 

{

static int x=25,y,z;//x 为半径初始值 25 , y 为切换变量, z 为搅拌机运行状态变量

 

z=GetTagBit("202 搅拌机运行 "); // 取得 PLC 搅拌机的运行状态

 

if(z!=0) { switch(y)

{

case 0:

x=x-4;

if(x<=0)

y=1;

break;

default :

x=x+4;

if(x>=25)

y=0;

break; } } return x;

 

}

 

 

 

 

 

• 语音报警的组态

 

在工业现场安全是极其重要的,无论从那个角度讲我们应该利用一切手段减少故障的发生。在故障已经发生的时候,应该在第一时间以多种方式通知操作人员有故障发生。现代微处理计算机的处理速度可以完全胜任对于图形,语音地同时处理。所以我们可以利用计算机的声卡和音箱在有故障发生的时候产生语言报警,但是问题是 WinCC 本身并不能产生语音的功能,而且其内部的上千个函数也没有提供处理声音的函数。解决这个问题的方法归功于微软开发的 WinCC 与操作系统地完美结合,因为在 WinCC 中可以直接调用 Windows 的 API 函数。实现的具体 C 脚本代码如下:

 

 

long _main( char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName )

{

#pragma code("Winmm.dll")

void WINAPI PlaySoundA(char *pszSound,char *hmode,DWORD dwflay);

#pragma code()

if(GetTagBit("112 排泥备泵故障 "))

PlaySoundA("d:\\winnt\\media\\Mircosoft Sound.wav",NULL,8);

return 1020;

}

 

还有一个值得主意的问题是此段代码的加入点,通过反复多次的实践得出结论,即这个点必须加在始终显示于屏幕上的任何图形元素的属性中,这样才能达到语言报警的预期效果。

 

• 小结

 

WinCC 采用了当今流行的面向对象的技术,很类似流行的 Visual Basic 语言。对象的属性可以进行设定或编程以实现对该对象的动画及事件的触发,内嵌的 MS C 语言减少了开发者的学习时间,并增加了其灵活性。如果对于 Windows 的 SDK 编程熟悉的话, WinCC 中调用 Windows 系统的 API 函数完全可以实现象 VB 、 VC 等高级语言所能实现的功能。但在开发时间和易用性、稳定性上要优于以上两种语言,因为它是针对工业现场设计开发的。

 

 

 

 

相关资讯推荐