OPC技术在CEMS监控软件中的应用
2009-07-14
作者:郭昭烽,程明霄
摘 要:介绍了国内CEMS应用的现状以及开发专用监控软件的必要性。实践表明,利用OPC技术开发监控软件不仅可以保证系统的稳定性和可靠性,还能提高系统的开放性和兼容性,在监控软件开发领域具有良好的前景。
关键词:OPC;CEMS;监控软件;环保
烟气在线连续排放监测系统(CEMS)在我国热电厂有广泛的应用。CEMS作为环保监测的重要手段通常需要为其他通讯软件提供被监测的数据。CEMS是一个集成的系统,集成了不同厂家的设备,从而要求其监控软件的底层数据连接有一定的兼容性和开放性。本文探讨了一种使用OPC技术开发CEMS监控软件的方法,可以解决上述问题。
1 CEMS概述及其在国内应用现状
CEMS由采样系统、测试系统、数据采集与处理系统组成,能完成采集并处理数据、生成报表、控制操作、监测数据上传等功能。一般的CEMS中数据采集与处理系统主要由PLC、工控机及相应的软件组成,能自动监测SO2、NO、CO、CO2及其他的有关参数,如烟气温度、湿度、烟气流量、压力及含氧量等数据。
随着近年来国家对环保工作的重视,CEMS作为一种环境监测的重要手段,在我国得到了迅速普及和推广,尤其在电厂等企业得到越来越多的应用。但是得到环保部门认可的CEMS却很少。这是因为:早期的CEMS与外部连接的数据传输接口上缺少统一的标准, 各地CEMS厂家在CEMS数据标准和设计结构上采用不同的形式, 使各自分散的数据资源彼此隔离, 无法进行信息交换和业务协同,极大地影响了CEMS的系统建设和维护效率。
2 CEMS监控软件的设计
CEMS监控软件不仅要直观、动态地显示整个测量过程和测量结果,还必须为上级环保部门的数据通讯软件提供数据。虽然市面上有许多现成的通用组态软件,如:组态王、WINCC、MCGS等,但是用来开发监控软件很难完全符合CEMS的数据传输要求。例如:有些地方环保部门的数据通讯软件以DLL、UDP等方式提供接口,而通用组态软件在底层的数据连接一般只是提供常用的接口。因此,自行开发具备通用数据接口的CEMS监控软件是十分必要的。
在针对CEMS设计监控软件时,需要充分了解现场所应用的CEMS 整体工作原理及其监测流程。从表面上看,CEMS的监控系统主要是从PLC 中采集数据或写入数据,十分简单。但是,由于CEMS 系统的特殊性,监控软件还得完成一些其他的工作。如稀释采样CEMS 系统中,其采样管线中的每个探头都依靠PLC程序或本身的电磁阀进行各种控制动作,如:采样、反吹、校准、维护等等。而且各个分析仪器的反吹和校准的请求各不相同,所以必须准确无误地区分开各个进程。只有当各采样探头处于正常采样时,它的数值才有效,才能进报表。另外,为了保证系统的准确度,还需要校准报表,知道每次校准时的各监测量的零点漂移和全幅漂移等。
由于CEMS是一个集成系统,因此在流量监测仪,氧气检测仪,红外检测仪和控制PLC上通常会选用不同厂家的产品。CEMS要把不同的制造商的部件集成在一起需要为每个部件专门开发驱动或服务程序, 还需要把这些由制造商提供的驱动或服务程序与应用程序联系起来。因此,实现通用的数据接口将成为CEMS监控软件开发中的一个关键问题。
3 OPC技术在监控软件设计中的应用
3.1 OPC技术
OPC提供了解决此类问题的方案。
OPC(OLE for Process Control,用于过程控制的OLE)是一种工业过程控制的标准,这个标准定义了应用Microsoft操作系统在基于PC的服务器和客户机之间交换实时数据的方法。OPC是基于Microsoft 公司的DNA(Distributed Internet Application)构架和COM(Component Object Model)技术,根据易于扩展性而设计的。它的目标是开发出一个开放的、灵活的、即插即用的工业标准,使用户对解决方案拥有更大的选择余地,同时减少了硬件和软件供应商的开发和维护费用。这个标准使得COM和DCOM技术适用于过程控制和制造自动化等应用领域[1]。OPC是以OLE/COM机制作为应用程序的通讯标准, OLE/COM是一种客户/服务器模式,具有语言无关性、代码重用性、易于集成性等优点。OPC规范了接口函数,不管现场设备以何种形式存在,客户都以统一的方式去访问,从而保证软件对客户的透明性。
3.2 OPC Data Access规范
CEMS监控软件在数据的底层连接上采用了OPC技术,就可以增强系统的兼容性和开放性。可以使用OPC服务器直接为上级环保部门的通信软件提供数据。而当监控系统接入其他厂家的设备时,只要该厂家的产品同样兼容OPC规范即可,不需要厂家提供独立的驱动,在监测软件上也不需要做任何变动,体现了OPC数据存取规范的优越性。
OPC 数据存取(Data Access)规范是提供给用户访问实时过程数据的方法。在OPC数据访问规范中, 一个OPC 的数据存取服务器中包括几类对象:服务器(OPC Server)、组(OPC Group)和项(OPC Item)。OPC服务器对象维护有关服务器的信息并作为OPC 组对象的包容器, 而OPC组对象维护有关其自身的信息,提供包容OPC项的机制, 并管理OPC项。OPC组有2种类型:公共组(Public)和局部组(Local or Private)。公共组可以为多个客户程序共享,而局部组只为某一个客户程序所有。在每个组里, 客户程序可以定义多个OPC项,OPC项代表了与服务器里数据源的连接。从定制接口(Custom Interface)角度来看, 一个OPC项不能被OPC客户程序作为一个对象来进行操作,因此,在OPC项中没有定义外部接口。所有对OPC项的操作都是利用OPC项的包容器(OPC组)或OPC项的定义来进行的。每个OPC 项包含:值(Value)、品质(Quality)和时间标签(Time Stamp)。值(Value)的类型是VARIANT,品质的类型是SHORT[2]。
3.3 OPC客户端子程序设计
监控软件的OPC客户端子程序的一般实现步骤:首先在客户端注册OPC服务器,并连接OPC服务器端。在连接服务器成功后,创建一个OPC数据组。查询数据库的系统参数表,得到CEMS的具体监测点的信息,根据这些信息在OPC数据组中创建相对应的OPC数据项。这时候将OPC客户端句柄数组和OPC服务器端句柄数组等信息向OPC服务器提交连接请求,设置OPC数据组的状态为ACTIVE,即可以使用OPC数据组的DATACHANGE事件返回请求查询的值,程序流程如图1所示。
以具体的厂商提供的OPC服务器为例,SIEMENS公司为其S7200系列PLC提供了SIMATIC PC ACCESS OPC SERVER。在安装注册该服务器后,可以在软件中通过引用SOPCDAAUTO.dll来使用。在连接之后依次创建OPC GROUP和OPC ITEMS,通过对OPC ITEMS写OPC CLIENTHANDLER(客户端句柄)信息,如:'MicroWin: 2:192.168.0.2:1000:1000,Q0.0,BOOL,RW,0.00,0.00'即可通过PPI电缆或者以太网通信实现对PLC中Q0.0寄存器值的访问。以上客户端句柄包含的访问信息有:PPI电缆通信地址为2;以太网IP地址为192.168.0.2;客户端TSAP(通信连接地址)为1000;服务器端TSAP为1000等。随后程序等待下次服务器返回,期间可响应客户的操作断开同OPC服务器的连接并关闭连接程序。
在得到OPC数据组DATACHANGE事件的返回值后,数据采集以及存储子程序将根据OPC CLIENTHANDLER和QUALITY 2个数组元素相对应的数组来判断数据的传输质量。如,传输质量为BAD或者GOOD或者UNKOWN等。接下来就可以根据OPC CLIENTHANDLER和VALUE 2个数组为CEMS的各个监测点返回测得值。具体结合CEMS中各个监测点的工作状态,按照CEMS标准的规定进行数据的筛选和有效的存储。
3.4 OPC客户端程序在CEMS监控软件中的应用
3.4.1 根据硬件配置服务器
对于DLL服务器来说,这些行为是通过调用输出函数Dll Register Server和Dll Unregister Server来实现的。这2个函数都不带参数,返回1个HRESULT显示结果。2个可能返回的错误代码是SELFREGECLASS和SELFREGETYPELIB,分别表示CLSID和类型库信息的注册或删除的失败(这2个代码定义在OLECTL.H头文件中)。
如果服务器以EXE模块的形式出现,对服务器进行注册就要使用命令行参数/Reg Server或-Reg Server(区分大小写)。如果要注销服务器,必须带命令行参数/Unreg Server或-Unreg Server运行EXE模块。自注册EXE模块检测到命令行参数后,引发相当于DLL服务器的Dll Register Server和Dll Unregister Server函数的行为。
3.4.2 数据存储
数据存储工作的流程是:从OPC接口接收各监测的数据,通过其数据处理程序根据预设的开关量返回值的组合判断确定CEMS是否处于正常可信的数据采集工作状态,并将采集的数据在临时内存存储(累加或者计算滑动平均值)。根据国家CEMS标准的数据存储的特点,数据存储程序采用系统时间跳变触发的方法,即只在系统分钟跳变、小时跳变等关键时间点上进行这些数据存储操作,系统时间跳变是以判断系统时间是否进入了下一个计时单位(如分钟、小时、日等)来驱动程序进行数据存储的操作。
3.4.3 监控显示界面
监控软件显示界面使用SHOCKETWAVE FLASH控件,以ADOBE FLASH PLAYER为编译器,利用SHOCKWAVE FLASH控件的FLASHVARS属性,将现场变量采集点的信息从数据库传递给界面动画显示SWF文件,再使用DUPLICATEMOVIECLIP命令生成相应的控件并设置其坐标等其他属性,同时将OPC服务器返回的数据或数据库归档的数据通过FLASHVARS属性传递到界面动画显示SWF文件中,更新相应的控件显示,所述界面动画显示SWF文件可为SHOCKETWAVE FLASH控件的内部组件或外部用户自定义显示文件。
通过使用OPC技术开发CEMS监控软件的底层数据连接,可以提高CEMS的系统兼容性,避免了需要根据不同厂家的硬件使用情况编写定制软件的问题,同时也便于向其他软件提供标准化的数据,简化了配置硬件的操作。通过引用厂商提供的OPC服务器接口,并设置所需要的OPC变量,就可以根据这些变量信息在图形化的显示界面中引用OPC,选择状态变量实现存储和控制策略。据此开发的监控软件已经在数家电厂正式使用,承担了数据存储和通信传输的重要工作。实际检验来看,具有相当可行性。
参考文献
[1] 吕勇,李友荣,王志刚,等.基于OPC技术的设备远程监测与诊断系统[J].机械与电子,2005(10):65-67.
[2] 蔡思文,祁耀斌.OPC客户端设计及其在监控系统的应用[J].微计算机信息,2007,23(5-1):150-200.
[3] 戴丽萍,云格.CEMS在火电厂中的应用[J].中国仪器仪表,2007(5):1-6.
[4] 吴庚申.应用OPC接口实现S7-200PLC网络与PC数据通讯[J].青岛远洋船员学院学报,2006(4):80-90.
[5] 肖永华,葛海波,杨川,等.电厂机组监测系统的研究[J].继电器,2006(7).
[6] 漆全.电力监测与控制系统组态软件的设计与研究[D].武汉:武汉大学,2005.