作者:靳其兵 , 温泉
1、引言
随着国内外石油化工领域工业自动化的不断发展,采用先进技术对现有装置进行技术改 造,逐步提高装置的生产规模和工艺技术水平,提高装置的经济效益是一种必然的趋势。在 此趋势下,很多企业希望通过先进控制的方法达到以上目的。而装置先进控制以及回路自动 控制的基础就是PID 参数的合适设置。 现阶段 PID 参数的设置很大程度上依赖于操作工人的经验,对于没有经验的工作人员 来说调整PID 参数有些难度。PID 优化整定系统正是针对此问题,自行设计开发的系统软件, 其目的是为了实现PID 参数整定的简单化,对于没有合适参数的回路通过计算得到接近的 参数值,对已有的参数给出优化的参数值。PID 优化整定系统的基础是数据采集模块。数据采集模块以OPC 协议作为接口通讯方式,连接DCS 工程师站与上位机进行数据读取。
2、DCS 及OPC 概述
DCS(Distributed Control System)集散控制系统产生于20 世纪70 年代,它满足了大型 生产的自动化要求,大大提高了单套装置的生产能力。在国内大型石油化工联合企业中, 主要炼油化工装置已经基本实现了DCS 控制,优化了生产过程并提高了生产效率,但由于 大多数DCS 系统是封闭系统,普遍缺乏统一、标准的开放式接口,难以满足企业信息化和 管控一体化的发展要求。为了解决这些问题,一些与微软公司合作的自动化硬件和软件供应商联合制定了一套称为OPC 规范的接口协议,以此来提高过程控制工业中的自动化/控制 应用程序,现场系统/设备以及商业/办公室应用程序之间的互操作性。
OPC是一个开放的工业接口标准,意指用于过程控制的OLE技术。OPC基于微软的 OLE、COM和DCOM技术,包括一整套接口、属性和方法的标准集,用于过程控制和制造 业自动化系统。OPC技术的实质是允许任何设备与其它设备自由通讯的一种机制,是一种 用于过程控制和工业自动化的即插即用的软件技术,是一种过程实时数据交换的工业标准 。这个接口规范不但能够应用于单台计算机,而且可以支持网络上分布式应用程序之间的 通讯,以及不同平台上应用程序之间的通讯。其基本思想是:每个硬件供应商为其设备开发 一个通用的数据接口(即OPC Server),供其它系统读写信息,客户应用软件也可以通过OPC 规范的接口来读写硬件设备的信息(作为OPCClient)。我们在使OPC时,不必关心底层硬件内 部的具体细节,只需遵循OPC数据接口协议,就能够从不同OPC数据服务器中取得数据。
3、OPC接口的设计
OPC接口的设计包括OPC服务器端和客户端两个部分,其实质就是连接数据源和数据使 用者之间的通道。目前,许多DCS产品都推出和集成了OPC服务器,例如基于Windows操作 系统的YOKOGAWA CS3000 DCS和ROSEMOUNT DELTA V DCS。因此,设计PID优化整定 系统的OPC接口有很大的普遍性和实用性。
3.1 OPC接口的选择及实现
OPC++规范规定了两套接口标准:OPC自定义接口和OPC自动化接口,如图1所示。自定 义接口的效率高,通过该接口,客户能够发挥OPC服务器的最佳性能,采用C++语言的客户 一般采用自定义接口方案;自动化接口使解释性语言和宏语言访问OPC服务器成为可能,采 用VB、Delphi等语言的客户一般采用自动化接口。
图 1 OPC 接口类型
其中,客户端程序的开发主要是指客户端程序中 OPC 接口部分的开发。客户端程序本 身可以完成很多复杂的数据处理与显示功能,但需要通过OPC 接口部分访问OPC 服务器, 对现场数据进行存取。设计时可根据不同的需求特点,应用不同的接口标准。
3.2 OPC数据存取服务器的访问方式
OPC客户程序对OPC服务器中数据的访问方式主要有同步、异步和订阅三种。客户程序 可按照一定的周期对服务器程序进行数据同步存取操作,此时客户方的调用函数一直运行到 所有数据读写完成。在异步通信方式下,服务器程序定期刷新OPC项,并判断其数值或品质 是否变化,如果有变化则将变化后的数据发送给客户程序,此时客户方的调用函数可立刻返 回。显然,异步通报方式的通信效率更高,但有多个客户程序与服务器相连时,同步读写方 式更具时效性。第三种订阅方式,即OPC服务器监控的数据在状态发生改变时主动的通知 客户程序,而不用客户被动地、一次次地去查询数据,判断其是否发生改变。对于每个组 对象,客户程序可根据需要采用其中一种数据存取方式。
4、PID优化整定系统OPC接口的架构与实现
4.1 PID优化整定系统的软、硬件结构
PID优化整定系统的硬件为一台装有OPC接口客户端程序的PC机,根据实际情况分别采 用添加网卡或使用路由器的方式接入到控制系统的工程师站上,使PID优化整定系统与工程 师站处在同一局域网内。如果原有的工程师站上配有双网卡,则直接使用网线与工程师站连 接;如果没有双网卡,或不方便接入的,则添加路由器,将两台机器接入同一网内。
图2 系统网络结构图
PID优化整定系统的软件是指优化整定PC机上装有的自行开发的PID优化整定软件。数 据采集的通讯接口方式使用OPC自动化接口方式,数据采集所搭建的环境结构如图2所示。
4.2 OPC接口的实现
由图2可以看出,整个系统的服务器端采用DCS提供的OPC接口,在工程师站上放置使 用OPC数据访问接口编写的OPC应用程序,它主要有两个方面的功能:一是作为控制系统的 客户端,连接下位机与上位机,读取现场数据;二是作为PID优化整定系统的服务器端,连 接PID优化整定系统与下位机,将数据读取到PID优化整定站,供后期数据计算使用。而数 据采集部分的客户端,则放置在PID优化整定站,是使用VB语言,按照OPC自动化访问接口 编写的应用程序。读取数据后,将相关数据保存在Access数据库中,以便于以后随时查询使 用。在全部数据读取过程中,应用的网络协议主要为TCP/IP协议。
4.2.1 OPC服务器端的实现
根据不同工厂DCS设备或者工程师站操作系统的具体情况,服务器端分别采用两种接口 方式,即自动化接口和自定义接口编写服务器端程序。例如,对于YOKOGAWA CS3000 DCS, 采用的是VB编写的自动化接口方式;对于ROSEMOUNT DELTA V DCS采用的是C++编写的 自定义接口方式。
4.2.2 OPC客户端的实现
客户端的主要实现方式是OPC自动化接口方式,使用VB编写应用程序。对于工厂各装 置回路中pv(实测值)、sv(设定值)、mv(阀门开度)参数的采集使用同步通讯的方式; 而对于回路控制的自动、手动情况的采集则使用订阅通讯的方式,即在参数(控制状态)发 生改变时主动通知客户端程序。 OPC数据访问对象由分层结构组成,它由上而下包括OPC服务器对象(OPCServer)、 组对象(OPCGroup)、项对象(OPCItem),在设计OPC客户端程序时,基本按照以上顺 序进行连接。对于OPC自动化接口方式,OPC基金会专门为它的开发提供了“自动化包装器” OPCDAAuto.dll,在编写程序前,应该首先在VB项目中引用该动态链接库,这样才能调用 OPC自动化规范中定义的属性、方法和事件。客户端程序设计的基本步骤如下:
(1)在VB工程中添加对OPCDAAuto.dll的引用。
(2)声明OPC对象。
(3)连接OPC服务器,创建OPC对象。设计时需要调用OPC服务器对象的“Connect” 方法,和OPC服务器建立连接。之后,用OPC服务器对象的“OPCGroups”属性生成一个组 集合,再调用“Add”方法在OPC组集合中添加新的OPC组。最后,在对OPC服务器进行访 问前,要使用“OPCItems”属性生成项集合,并使用“Add”添加新的OPC项。
(4)读取数据。对于装置回路PID参数采集采用同步读取方式,对于装置回路的控制 状态采集采用订阅读取方式;最多可同时读取16条回路的参数。
(5)删除OPC对象,断开与服务器的连接。连接着OPC服务器的OPC应用程序,在退 出之前必须断开与OPC服务器的连接。否则,OPC服务器不知道OPC应用程序的退出,计算 机资源就一直不能被释放,长此以往,会造成计算机资源枯竭而产生严重问题。断开连接时, 使用“Disconnect”方法;并将OPCItems、OPCGroup和OPCServer都置为Nothing,删除对象。
4.3 数据存储及导出的实现
为了给后期PID优化整定提供大量完整的数据,在数据采集过程中需要将大量数据保存 在Access数据库中,以备使用。由于同时读取多条回路,数据量很大,为避免在最后保存数 据时由于数据量过大而造成时间过慢,甚至是死机现象,设计时采取每读取30个数据自动保 存一次的方法。另外,在把数据导出到Excel过程中,由于Excel自身的限制,一张Sheet保存 的数据有限,为了避免数据溢出,设计成每保存一定数据自动生成一张新的Sheet进行存储。
5、结束语
以OPC为接口通讯方式的数据采集模块是PID优化整定系统的基础,该模块及整个PID 优化整定系统的设计都相对独立于现场工程师站,使用OPC通讯也只进行读操作而不进行写 操作。该设计的好处是,既能使两台机器互相没有影响,又能使客户端采集到全部DCS数据。 鉴于石油化工企业的重要性,数据采集只读不写,具有较好的安全性,可以保证原系统数据 的安全和纯洁,也避免了数据错误造成的影响,保证了生产的安全。目前,PID优化整定系 统经过实验室长期检验,已经稳定的运行于国内许多石油化工企业中,且运行状况良好。 现在,绝大多数工控厂商为实现系统的开放性,其DCS都提供了OPC接口。同时,OPC 基金会也在不断推出新的产品,从OPC DA到OPC XML-DA,再到OPC UA。OPC必然会向 更为广泛的跨语言、跨平台、企业级的方向发展。