PHD实时数据库在化工企业的应用
2014-04-29谷克宏黄岷何江银张振宇
谷克宏 黄岷 何江银 张振宇
[摘 要] 针对化工企业MES系统中的PHD实时数据库部分,介绍了多种PHD实时数据库的数据采集方式及PHD Server数据的访问应用方式。同时,结合在化工企业甘肃银光聚银化工有限公司的具体应用,对实施过程中的关键技术做了详细论述。
[关键词] 实时数据库;PHD;接口;DCS;数据采集
doi : 10 . 3969 / j . issn . 1673 - 0194 . 2014 . 17. 024
[中图分类号] TP315;TP392 [文献标识码] A [文章编号] 1673 - 0194(2014)17- 0039- 03
1 实时数据采集
1.1 PHD数据库简介
PHD系统是一个生产信息集成平台,为流程工业提供了一个用于生产管理的统一的信息化数据库。它将生产过程数据、物料移动数据、设备状态、产品质量指标等各种数据采集、存储并加工成新的信息资源,提供给管理、销售、技术、操作等各层次人员,从而解决了企业各个部门信息不一致的问题,帮助他们及时做出决策。
1.2 数据采集设备
数据采集是实时数据库运行的基础,PHD实时数据库可提供毫秒级采集频率,并能够保证采集数据的可靠性以及实时数据的一致性和完整性。同时,提供的数据采集接口能够方便地进行数据定义和配置。PHD具有一套可以与大部分型号的DCS进行连接的产品化RDI(实时数据接口),可以实现与霍尼韦尔、横河、 ABB、西门子、FOXBORO、FISHER、和利时等多家厂商DCS和OPC(OLE for Process Control)服务器的连接。
在MES的实施过程中,大部分DCS和PLC等控制系统配备有各厂家的OPC Server,或者第三方的OPC。所以PHD数据采集的主要方式就是通过RDI与OPC通信,实现实时数据的平稳采集。同时PHD也能对非连续数据进行采集,如手动位号等,从而为MES上层模块提供有效的数据支持。
1.3 PHD数据采集方式
RDI是PHD系统采集实时数据的通道,也是PHD与PHD之间交换数据的通道。在连接PHD与PHD时,RDI提供了两种用途的接口。
1.3.1 Shadow接口
远程RDI可以将远程PHD与主PHD连接起来,远程PHD是一个完整的PHD系统,主PHD作为远程PHD的影子,它们共享同样的标签定义。远程PHD 从实时系统中采集数据,把数据存放在自己的实时数据库中;主PHD定时接收远程PHD的数据,并且把数据存放在自己的数据库中,就像是影子,因此主PHD 又称Shadow PHD。主PHD与远程PHD主要是通过后台的RDI接口配置文件,实现互相通信。
1.3.2 Buffer接口
远程PHD系统作为数据缓冲,Buffer接口负责和Shadow接口之间通信。主PHD服务器连接远程PHD服务器,它们使用相同的关系数据库,因此它们共享相同的标签,远程PHD服务器从实时系统中收集信息并存储在自己的PHD数据库中,主PHD服务器定期获取这些信息并提供给用户。如果由于某种原因主 PHD服务器和远程PHD服务器通信中断,所有收集的实时数据将会被保存,当通信恢复时,主PHD服务器会自动从断点开始恢复。
在MES系统实施中,PHD的实施采用了这种PHD—PHD的传输模式:首先在机房安装配置Shadow PHD服务器,然后在装置现场安装配置Buffer PHD,两台PHD采用相同的安装配置,Shadow RDI与Buffer RDI通过配置文件建立关联,Buffer PHD通过Buffer RDI实现与OPC服务器的通信,将数据位号模板导入到PHD后,模板中的位号的数据即被采集并保存到Buffer PHD中,Shadow PHD通过Shadow RDI取得Buffer PHD中的数据,完成了数据PHD—PHD模式的传送,也完成了PHD的实施流程。主PHD从远程PHD采集并保存数据,为MES其他模块提供数据支持。
采用多PHD服务器的配置主要能够带来两个优点:首先从功能上将PHD服务器分离,远程PHD服务器负责实时数据的采集,而主PHD服务器负责将采集到的信息供用户使用;其次在安全上,将实时数据系统环境和最终用户环境做了分离,最终用户使用实时数据并不需要直接连接到DCS系统中,方便操作的同时也大大增加了安全性。为了保证数据的连续性和稳定性,防止由于意外故障引起的数据丢失,PHD—PHD的连接可以采用双Buffer PHD连接Shadow PHD,这种情况下,有两个Buffer PHD同时收集数据,一个处于激活状态,一个处于备份状态,如果激活状态的PHD发生故障,备份状态的PHD就会立即替代,进入激活状态。聚银公司PHD-PHD的连接,采用单Buffer PHD连接Shadow PHD。
1.4 OPC接口技术
在实时数据采集过程中,管理网需要从控制网上实时地获取工艺生产过程数据以满足不同的管理需求。但由于控制网上的DCS、PLC和其他智能仪器仪表通常来自不同的厂商,相互之间的通信非常复杂。OPC作为硬件和软件之间的一个中间件,解决了上述问题,它为工业数据通信提供了一种标准。OPC是 Microsoft公司的对象链接和嵌入OLE/COM技术在过程控制方面的应用,为工业控制领域提供了标准的数据访问机制。
在MES实施中,PHD实现了与聚银公司多套DCS的OPC服务器的连接,如:横河、DeltaV、浙大中控等,通过Buffer PHD 和对DCOM(分布式组件对象模型)进行配置,实现与OPC服务器的连接。
1.4.1 横河公司DCS系统数据采集方案
横河公司的DCS系统是Centum系列,DCS系统通过安全VPN 协议运行。对于CS3000/CS1000/CS系统,每套装置增加一台ExaOPC-NTPF100服务器,安装以太网网卡及与控制总线VNet通讯的VF701卡,并安装ExaOPC-NTPF100软件包。ExaOPC-NTPF100通过VF701卡直接与CS 3000/CS1000/CS控制总线VNet连接,由控制总线直接从控制器读取过程数据以及进行报警事件通讯。
1.4.2 艾默生公司DCS系统数据采集方案
艾默生公司的DCS系统采用的是DeltaV控制系统,需要配置一台DeltaV系统应用站,建立一个硬件平台,OPC Server就安装在应用站内,通过以太网卡,OPC通讯,用户可以方便地将数据取到Buffer PHD服务器中,完成数据信息的采集工作。
1.4.3 浙大中控公司DCS系统数据采集方案
在DCS系统建立独立的OPC Server采集并传输过程数据,OPC Server安装浙大中控专为MES/ERP系统接口开发的OPC Server(V3.4)软件包,提供丰富的接口功能与强大的软件通讯处理能力。同时,独立的OPC Server网关型结构确保了MES与DCS系统的网络隔离,保证生产系统的稳定运行。每套系统在硬件方面增加一台操作站作为OPC Server,安装3个以太网卡,并安装系统软件包OPC Server软件。OPC Server通过双以太网卡直接读取控制系统过程数据以及进行报警事件通讯。OPC Server的另一块以太网卡向MES系统传送过程数据。浙大中控DCS系统增加OPC Server实施起来比较容易,基于中控系统的开放性和集成性设计,可以在不用系统停机的情况下任意加装OPC Server软件,使该站作为OPC服务器,同时向上层网络发送数据。
2 数据的访问应用
目前从PHD Server访问数据的主要方法有4种,用户可以有多种开发语言选择,可以开发基于C/S、B/S的程序。
2.1 PHD API(应用程序编程接口)
PHD API函数库是用于开发用户应用程序的接口,是所有客户化开发的基础。API函数有丰富的功能,如存取历史数据、执行计算、将数据输入DCS以及对PHD 的历史数据进行编辑等。它支持C,C++,VB等多种高级语言编程读取实时数据,使用者需熟悉编程语言和PHD的API函数库,所以日后用户的维护有一定的难度。
2.2 OPC Server
在装置、工厂和公司各级都可安装数据库的OPC Server,用户或第三方应用都可以使用OPC的标准方法读取数据库的实时数据,使用起来比较方便快捷。但这种方式的缺点是必须对PHD Server的DCOM进行配置,并对相应的用户开放相关权限,对系统的保密性和安全性有一定的影响。
2.3 ODBC和SOL(结构化查询语言)读取
ODBC和SQL读取,PHD提供通过关系数据库的接口对数据库的数据进行读写,即通过SQL或ODBC应用程序进行数据的装入或转出。在数据库中把这种功能称为关系数据库和PHD的接口。有了这种机制,对于那些不懂得如何用API函数编程而掌握SQL知识的用户,可直接用SQL语句对PHD进行数据的添加和删除。OLE DB Provider方式是从Honeywell PHD 202版本才开始提供的,它提供了以类似关系数据库方式访问PHD Server的方法。该方法访问PHD简单可靠,功能强大。但是 OLE DB Provider方法不提供PHD历史数据直接编辑,所以要修改PHD历史数据,应先删除该条记录,然后插入新数据,把时间戳改成前面的值。 OLE DB Provider只提供简单的SQL语句,并不支持比较复杂的SQL语句。
2.4 PHD Automation OLE(对象连接与嵌入)Server和ActiveX控件可视化控件方式
PHD Automation OLE Server和ActiveX控件,在PHD的客户端提供了一个称为Visual-PHD的模块,该模块将支持微软的DCOM技术。Visual-PHD由两部分组成:一个OLE自动服务器和一组ActiveX对象。该方法实现起来比较麻烦,配置比较繁琐,一般较少使用。
在聚银公司的MES项目实施中,就是通过API函数的方式从PHD中提取实时数据,用于生产管理各种统计报表、实时报表以及单元生产成本的展示。例如创建以下函数:
CREATE FUNCTION [dbo].[PHD_GetLastValue](@tags [nvarchar](4000), @endTime [datetime])
RETURNS TABLE (
[TagName] [nvarchar](50) NULL,
[TimeStamp] [datetime] NULL,
[Value] [float] NULL,
[Confidence] [int] NULL,
[HostName] [nvarchar](50) NULL,
[Units] [nvarchar](50) NULL,
[FormatedTime] [datetime] NULL
) WITH EXECUTE AS CALLER
AS EXTERNAL NAME [PHDAccess].[PHDAccessProxy].[GetLastValue]
此函数包含两个参数@tags和@endTime并返回一张虚拟表数据。
@tags参数用来传入需要提取的点位位号,@endTime参数传入提取时间,内部通过调用霍尼韦尔封装好的PHDAccess程序集来提取PHD实时数据,返回的虚拟表包括位号、采集时间、数值、可信度、主机名、单位和提取时间字段。
查询多个点位的数据:
首先,将需要查询的点位位号添加在一张参数表中。然后定义一个varchar型的字符串变量,长度设为max,并将参数表中的位号PTag字段拼接成一个用“,”号隔开的字符串赋给变量:
declare @tagString varchar(max)
set @tagString='PTag'
select @tagString=@tagString+','+(rtrim(PTag)) from DataProperty
定义时间变量,并设置为当前时间:
Declare @Time datetime
Set @Time=getdate()
最后,把字符串变量和时间变量传给上面创建好的函数即可:
select * from dbo.PHD_GetLastValue(@tagString,@Time)
3 结束语
通过采用PHD实时数据库系统,可以搭建企业控制层与管理层之间的桥梁,将它们有机地结合起来,将分散的信息资源集成起来,实现生产控制系统的数据自动采集、存储和监视。聚银公司PHD实时数据库的搭建实施采用层次式结构、多数据通道、OPC通讯、单Buffer连接PHD的接口设计方案,完成了7套装置、3种DCS品牌、5种型号DCS的生产数据集成,并通过关系数据库集成了质量数据、装桶数据等相关信息系统业务数据,建立了统一的企业数据平台,达到最优化的数据采集和统一接口维护目标。
主要参考文献
[1]崔振伟,王华. PHD实时数据库在MES中的应用[J]. 石油规划设计,2009,20(4):34-37.
[2]Honeywell Inc. PHD OPC Server User Guide[Z].USA: Honeywell International Inc,2004.