工控网首页
>

应用设计

>

OPC技术在污水处理控制系统中应用

OPC技术在污水处理控制系统中应用

2007/6/28 9:06:00
摘要:针对当前污水处理控制系统的规模不断扩大、监控设备日益复杂、性能日益提高的状况,传统的监控模式已经制约了污水处理控制系统的发展。为此构建了一种基于OPC技术和CAN现场总线技术的分布式污水处理控制系统体系结构。实现现场设备和监控软件的无缝集成。结合着活性污泥法污水处理工艺流程,说明了监控系统的硬件基本结构。给出了采用VB6.0开发了OPC客户端应用软件的标准OPC接口的程序。在实际应用中该方法取得了良好的效果。 1 引言 随着经济发展和科技进步,生活水平不断提高,人们将会面临着环境保护问题。近年来环境污染已严重制约了经济的可持续发展和威胁人类的生存。随着人类对环境保护意识的增加,污水处理行业已经得到普遍关注。污水处理厂的广泛兴建对其监控系统也进一步提高,由于当前污水处理监控系统的控制规模不断扩大、监控设备日益复杂和性能日益提高,工厂需要对现场设备进行更新或二期投入,而传统的控制方式加大了资金投入。同时监测部门以人工的方式进行污水样本的采集与化验,不能共享实时监测数据,不能及时掌握污水水质的变化趋势。本文以蛋粉厂排放的污水处理工艺为主,如图1为其工艺流程图,开发了一套基于OPC技术的污水处理监控系统,解决了污水处理厂监控设备更新问题。同时,监测部门通过连接在计算机网络中的OPC客户端在线监控污水处理过程实时数据,及时掌握污水处理效果。
2 OPC技术介绍 OPC(OLE for process controlling)是微软公司的对象连接和嵌入技术(OLE)在过程控制方面的应用,是为工业自动化软件面向对象开发而提供的一项统一标准。OPC规范包括OPC服务器和OPC客户端两个部分。硬件设备驱动程序和通信程序被封装为一个独立的OPC服务器,应用软件(OPC客户端)可以不用开发硬件的驱动程序,通过标准的OPC接口访问OPC服务器,能够与现场的PLC、工控网络和数据采集模块等硬件设备连接,快速有效地获取现场实时数据。每一个OPC客户端应用程序可以连接若干个OPC服务器,每个OPC服务器也可以为若干个OPC客户端应用程序提供数据。 OPC客户端访问OPC服务器需要实现定制接口(custom interface)和自动化接口(automation interface)。如图2所示,VB等编写的客户端应用程序通过自动化接口访问OPC服务器,可使客户端应用程序变得简单。VC++等高级语言编写的客户端应用程序通过定制接口访问OPC服务器,可发挥OPC服务器的最大性能。
OPC服务器的组成主要有以下3个部分。 1)服务器对象(server)。拥有服务器的所有信息,是组对象的容器。一个服务器只能对应一种硬件设备的驱动程序。 2)组对象(group)。提供了客户组织数据的一种方法,拥有本组的所有信息,包容并逻辑组织OPC数据项。完成对组同步与异步读写方式的管理,还可设置客户端的数据更新速率。当服务器缓冲区内数据发生改变时,OPC组将向客户发出通知,客户得到通知后进行应用处理。 3)数据项(item)。用来存储具体数据项的定义、数据值、质量值、采样时间等信息。数据项是在服务器端定义的对象,一个数据项对应硬件设备的一个寄存器单元,客户不能直接对其操作,所有对数据项操作都是通过组对象完成。 3 监控系统结构设计 根据污水处理工艺要求,污水处理过程可分为几个子过程,每个子过程的功能由控制系统的各个单元来完成,主要为调节池pH值控制单元、厌氧池温度控制单元、好氧池曝气控制单元、混凝剂控制单元和污泥循环控制单元。每个控制单元作为一个智能控制节点分布在污水处理现场,负责污水处理过程中各参数的监控。现场通信网络采用CAN现场总线,CAN总线是当前最有影响的现场总线之一,广泛应用在各个工控网络中,其总线规范现已被ISO国际标准组织制定为国际标准。CAN总线是一种串行通讯网络,与一般的通讯总线相比,具有成本低、可靠性高和灵活性好等特点。 在基于OPC技术的CAN总线控制网络中,OPC服务器将污水处理现场各参数按照OPC标准与监控软件连接起来,把系统硬件设备和监控软件有效地分离开。监控系统的结构如图3所示,CAN总线适配器连接在监控计算机中,它与现场各控制节点相连,实现与分布在污水处理现场的各智能监控节点进行数据交换。OPC服务器通过硬件驱动程序访问CAN总线适配器,连接在计算机网络中的所有客户端应用程序均可通过OPC接口与OPC服务器进行数据交换,间接获取现场信息。OPC服务器包括OPC标准接口和硬件驱动程序,根据不同网络适配器的接口形式选择不同的硬件驱动程序。当污水处理控制系统要增加其他的监控设备或进行当前硬件设备升级时,只需要改动服务器程序中硬件驱动程序部分即可,不会影响客户端程序。考虑到污水处理现场的数据对传输速率要求不高,故CAN总线适配器采用了周立功公司的ZCAN232智能CAN接口卡,它通过PC的COM端口连接到CAN总线网络,可以实现CAN2.0B(A)协议的数据通讯,通信速率可在10kb/s~1Mb/s之间选择。OPC服务器采用周立功公司提供的ZOPC Server,它支持周立功公司的所有CAN总线接口卡。实现的功能是通过ZLGCAN接口卡获取现场的各CAN总线上的节点采集到的数据传给监控软件或其他OPC客户端。同时将监控软件或其他OPC客户端写入的数据和控制命令通过OPC服务器传给污水处理现场的各CAN总线节点。
4 OPC接口开发 监控软件只有通过OPC接口才能访问OPC服务器。若监控软件采用组态软件开发,由于组态软件本身即可作OPC客户端也可作OPC服务器,直接将组态软件的数据点连接到OPC服务器的数据项上即可实现访问,不用另外开发OPC标准接口。若监控软件采用VB6.0或其他的高级语言开发,需要开发访问OPC服务器的OPC接口。开发出符合OPC规范的接口方法有2种:①按照OPC DA的标准规范,利用VC++高级语言等开发工具开发符合标准的OPC接口,但开发难度大,需要开发人员对OPC技术和COM技术有深入了解;②利用专用开发工具包,由于开发包已经实现了OPC标准的底层封装,既无需涉及烦琐的OPC协议,也不必掌握复杂的COM技术,直接调用相关函数即可,减少了开发周期和难度,但开发出的OPC标准接口功能依赖于开发包。 由于VB6.0具有应用简单、开发速度快的优点,笔者利用VB6.0实现了访问OPC服务器的OPC接口开发。具体的开发步骤是,首先安装由OPC基金会提供动态连接库OPCDAAuto.dll文件,将该文件放在系统盘的System32文件夹下,然后在VB6.0里引用OPC Automation 2.0,就可以编写相应的程序,它采用的是以自动化接口形式访问OPC服务器,下面是对OPC接口开发程序的介绍。 4.1 定义全局变量 Dim WithEvents MyOPCServer As OPCServer’定义OPC服务器 Dim MyOPCGroup As OPCGroups’定义OPC组 Dim WithEvents MyOPCGroupOut As OPCGroup Dim WithEvents MyOPCGroupIn As OPCGroup Dim MyOPCItemIn As OPCItems ’定义OPC标签组 Dim MyOPCItemOut As OPCItems Dim HandlesIn()As Long ’定义句柄 Dim HandlesOut()As Long Dim ErrorsIn()As Long’定义错误句柄 Dim ErrorsOut()As Long Dim ClientHandlesl(13)As Integer’句柄索引 Dim ReadItemNum As Integer’定义读出数据项个数 Dim WriteIemNum As Integer’定义写入数据项个数 Dim DataReadItem(13)As String’记录OPC读出数据项名称 Dim DataReadValue(13)As Variant’存放读取OPC数据项的值 Dim DataWriteItem(13)As String’记录OPC写入数据项名称 Dim DataWrite Value(13)As Variant’存放写入OPC数据项的值 4.2 连接服务器程序 ZOPC Server的数据存储模式有字符串存储和数值存储两种,在字符串存储模式中,服务器会把从CAN总线接收到的CAN帧数据组合成一个字符串传送到客户端;反之,服务器也会把从客户端接收到的字符串转换为CAN帧数据发送到CAN总线网络中。在数值存储模式中,服务器会把接收到的CAN帧数据分解为单个数值存放到13个读通道数据项中,由客户端读取;同理,服务器把从客户端发过来的13个写通道数据项的数值组合为CAN帧数据发送到CAN总线网络中。笔者采用数值存储模式,用两个组对服务器进行访问。 Private Sub Connect_Click() NodeName=Node.text ’远程计算机名 ServerName=Server.text ’OPC月服务器名 Set MyOPCServer=New OPCServer ’生成OPC对象, MyOPCServer.Connect ServerName,NodeName ’连接服务器 Set MyOPCGroup=MyOPCServer.OPCGroups ’生成组对象 MyOPCGroup.DefaultGroupIsActive=True ’组为激活状 MyOPCGroup.DefultGroupDeadband=0 ’设置组死区 Set MyOPCGroupIn=MyOPCGroup.Add(”MyGroupIn”) Set MyOPCGroupOut=MyOPCGroup.Add(”MyGroupOut”) MyOPCGroupIn.UpdateRate=1000 ’设置数据刷新时间 MyOPCGrouvIn.IsActiVe=True ’设置组为激活状态 MyOPCGroupIn.IsSubscribed=True’设置组为后台后刷新 Set MyOPCItemIn=MyOPCGroupIn.OPCItems Set MyOPCItemOut=MyOPCGroupOut.OPCItems FOr i=0 To 13 ClientHandlesl=i ’配置句柄索引 Next i 将ZOPC Server输入通道数据项名写入到DataReadItem数组中 ReadItemNum=13 MyOPCItemIn. AddItems ReadItemNum, DataReadItem,ClientHandlesl,HandlesIn,ErrorsIn’连接输入数据项 MyOPCGroupI
投诉建议

提交

查看更多评论
其他资讯

查看更多

智光节能内蒙古阿拉善左旗瀛海建材余热发电机组首次启动成功

智光电气台州电厂给水泵系统节能改造项目成功投运

智光节能荣登2014年度全国节能服务公司百强榜第五位

索引程序编程凸轮表

奥越信300系列PLC手册