Uniformance实时数据库在实现生产过程实时数据上网的应用
2007/8/2 10:01:00
1 前言 随着计算机网络的普及,以及我厂管控一体化一期工程的实施,光纤铺设到了各主要生产装置,为生产过程实时数据上网创造了条件。厂领导以及生产管理人员要能方便、快捷、实时动态地了解各生产装置的生产情况,就需要将生产过程实时数据传至网上。各生产装置的生产实时数据传至网上的桥梁是实时数据库,实时数据库是流程工业的基础数据平台,也是CIMS(计算机集成制造系统)系统开发与应用的理想平台。我们选用美国Honeywell公司的Uniformance作为实时数据库平台。 2 Uniformance实时数据库 2.1 Uniformance简介 Uniformance 为全厂范围数据采集、存储和管理建立了一整套单一、开放、集成的体系结构,开放型数据库系统集成所有工厂数据、商务数据并支持相关应用,这种全厂范围内的数据库结构可保障工厂的管理部门使用一致的数据;Uniformance 系统是一套非常全面并且有效的工厂或企业管理的解决方案,其提供的一整套可产生高附加值的商业应用,能从实时过程或关系型数据库中检索数据,并将其转化成有价值的商业数据信息; Uniformance 将实时、历史数据和商务数据集成在一起,以满足高级控制、优化和商务应用的需求,数据库中的通用数据模式关联实时数据和事件数据,从而将企业资产管理和生产管理相关联,真正改进企业的运作,使系统的运行更加方便、快捷和低成本,从而提高企业的性能。Uniformance Database System 包括以下三个部分:Plant History Database (PHD)——用于采集和存储工厂的历史数据;Plant Reference Model (PRM)——用于存储组态和参考数据;Uniformance Desktop——用于和Uniformance 进行交互。Uniformance又称PHD。 2.2 PHD的软件结构 PHD的软件结构是一个典型的客户/服务器结构,即整个PHD数据库由PHD服务器和PHD客户端两大部分组成。PHD服务器又由PHD管理系统、PHDMAN、RDI(Real-time Data Interface)、历史数据库以及Oracle数据库组成。PHD客户端可根据用户的需求,利用PHD服务器的PHD管理系统提供的若干标准C语言格式的API函数,可开发适合用户需求的各种接口应用程序。PHD的软件结构如图1。 (1) PHD管理系统 PHD管理系统接受来自RDI采集的实时数据,并将数据经处理后存入数据队列。PHD管理系统保存和管理来自Oracle数据库的映象,如“位号定义”、“安全保密”。以对位号定义和数据库安全系统进行有效的管理。PHD管理系统支持几十种API函数,API函数是用标准的C语言格式写成的,按其功能的不同可分为实时数据库管理、实时数据存取、应用程序管理和先进控制应用管理等类别,通过API函数可访问到PHD中的实时数据。 (2) PHDMAN PHDMAN是一种工具软件,具有监视PHD各部分的工作情况和强制PHD执行某些命令的功能,供实时数据库管理员了解PHD运行情况。 (3) Oracle数据库 在PHD系统中,所有的位号定义,工厂数据模型以及事件等关系型的数据都存放在Oracle关系数据库中。实时数据库将通过32位ODBC/SQLNET访问关系数据库,而在PHD服务器的共享内存中保存了有关的映象。 (4) 历史数据库 经数据压缩和处理后的实时数据存放在数据队列中,再由数据归档进程定时将其转到磁盘文件中存放,这些文件组成了历史数据库。 (5) RDI 在PHD中,RDI是PHD与外界交换数据的桥梁,一个PHD服务器可以连接多个RDI,每一个RDI将与DCS实时数据系统相连。 3 我厂DCS现状及数据采集方式 目前,我厂共有DCS系统十余套,具有良好的开放性,能为数据采集提供平台的DCS主要有:ABB公司的Advant500、Freelance2000,日本横河公司的CS3000,浙大中控公司的JX300,北京和利时公司的SmartPro。其中JX300、SmartPro系统都需要从厂家购买第三方OPC服务器软件;CS3000系统需厂家提供ACG(先进通信网关)硬件接口卡,数采节点机与V-net网上的网关ACG相连,通过ACG采集生产过程实时数据;ABB的Advant500和Freelance2000系统,在不购买任何组件的情况下,就可用ODBC方式通过信息管理站访问控制器和通过OPC Server得到生产过程实时数据。本文仅以Advant500系统的ODBC方式为例阐述生产过程实时数据如何传到网上的过程。各DCS系统所在装置以及采用何种数据采集方式分别列于表1中。 4 Advant500系统 Advant500系统由工程师站、操作员站、信息管理站和控制器站组成。工程师站主要完成数据库组态,操作员站主要用于装置操作人员对生产过程进行实时监控,信息管理站主要用于存储和管理生产过程历史数据,控制器站主要完成生产过程数据的实时处理功能。各站之间通过控制网络DCN(Distributed Communication Network)——分布式通讯网络连接起来构成环网,每个站作为一个节点通过TC530 T-BOX连接到DCN环上, 每个结点上都运行着Advant 500系统全局性数据库的一部分。工程师站、操作员站或信息管理站与控制器交互数据要通过DCN控制网络。工程师站、操作员站和信息管理站之间可通过RJ45头双绞线或同轴电缆连接起来形成TCP/IP上层局域网络,通过局域网络可在各站之间进行图形和环境的传递、文件传输,外部计算机也可通过局域网络访问到工程师站、操作员站和信息管理站,以实现X终端通讯或SQL数据访问。外部应用程序要能从控制器中读取数据,必须通过信息管理站。 信息管理站装有负责数据采集与处理的信息管理软件包AdvaInform,该软件包基于开放系统的标准,包括历史组态软件、报表软件和AdvaInform SQL *ACCESS软件等部分。AdvaInform SQL *ACCESS软件基于Oracle的开放网关技术,通过ODBC方式利用标准的SQL查询语句可获取控制器中的过程实时数据和信息管理站上的历史数据,查询过程中只需通过数据库中组态的位号,而不必知道数据的实际物理地址。外部应用程序访问控制系统的数据流如图2。 5 Advant500系统生产过程实时数据上网的实现 Advant500系统DCS生产过程实时数据通过数据采集服务器上的PHD Server采集到PHD实时数据库中,并由PHD Server将这些采集进来的DCS数据管理起来。为方便二次开发或信息管理,需要将PHD中的生产实时数据转存到Oracle8I关系数据库中的数据表中。然后将转存到Oracle8I关系数据库中的生产实时数据利用ASP技术开发动态流程图网页,这样,生产实时数据就发布到了网上。需要了解装置生产的人员都可通过网络访问到动态流程图网页以便实时掌握装置生产情况。为便于阐明生产过程实时数据如何发布到网上,分以下三部分来说明实现过程。Advant500系统生产过程实时数据如何传到网上的实现结构图如图3所示。 5.1 生产过程实时数据从Advant500系统到PHD PHD Server的RDI将DCS的生产过程实时数据采集到PHD中,RDI又有本地RDI和远程RDI之分,本地RDI指PHD Server和RDI在同一台计算机上,而远程RDI指PHD Server和RDI在两台计算机上,PHD Server和远程RDI之间通过TCP/IP交换数据。采用哪种类型的RDI根据具体要求而定,在本实现中选用本地RDI。 RDI接口程序的开发选用C语言,一方面:C语言编写的程序生成的目标代码质量高,程序执行的效率高;另一方面:Honeywell公司提供了一个RDI Toolkit的开发工具,它是一个包含了软件模板、库文件(lib,dll)、定义文件(h,rc)等的程序框架,用户要做的工作就是修改这个RDI Toolkit的各个函数,加入数据采集的程序,就可得到一个新的RDI,这个新的RDI实现从Advant500系统采集生产过程实时数据。 RDI接口程序主要实现代码如下: SQLConnect(hdbc,datasourcename,dslen,username,unamelen,password,pwlen); SQLExecDirect(hstmt, (UCHAR FAR *) select NAME,MEASURE from CCF_CONTIN_LOOP where NAME=tag, SQL_NTS); SQLBindCol(hstmt, 1, SQL_C_CHAR, name, STRING_LEN, &cbLenC); SQLBindCol(hstmt, 2, SQL_C_FLOAT, & datavalue, 0, &cbLenL); SQLFetch(hstmt); rditag->value.f = datavalue; RDI接口程序开发完成后,还必须在PHD Server中对需要从Advant500 DCS采集的位号进行点的组态,在点的定义时,需指明从DCS采样的周期、DCS的位号。一旦PHD Server运行起来后,PHD Server将已定义的DCS位号按预设的采样周期传递给RDI,RDI接收到DCS位号后按照编写好的数据采集接口程序采集DCS数据,将采集上来的DCS数据传回到PHD Server的内存队列中,这样周期性地进行。并按照一定的归档时间,将内存数据归档到归档文件存入硬盘中,形成历史数据库。 5.2 PHD中的数据转存到Oracle8I数据库中的数据表 利用PHD Server提供的‘C’API函数,可以编写C程序周期性地读取PHD Server中的内存队列数据,将需要读取数据的位号放入tagnum数组中,将读取出来的对应的该位号的数据放入phdgetdata数组中,供将数据转存到Oracle8I关系数据库中的数据表时利用。读取数据的主要代码如下: phd_getdata (tagnum[i], "NOW", "NOW",4 , &vr_spec, &pr_data, NULL); phdgetdata[i] = pr_data->fval[0]; 在Oracle8I关系数据库中创建数据表,创建表的语句如下:create table reactor(tag varchar2(20),value varchar2(20)),按此方法,直至建立好所有数据表。 用C语言开发数据转存程序,利用已经从PHD中读出的数据,将这些数据周期性写入到已经创建好的Oracle8I关系数据库中的数据表。写数据表的主要程序代码如下: sprintf(tagvalue,"%8.2f",phdgetdata[i]); SQLAllocStmt(hdbc, &hstmt); SQLExecDirect(hstmt, (U
提交
查看更多评论
其他资讯
50万吨催化柴油加氢装置及机组ESD紧急停车系统
着力提高炼油自动化水平,打造精品数字化炼厂
先进控制技术在重叠式两段再生催化裂化装置的应用
催化裂化先进控制反再部分在线工艺计算的参数估计
80万吨重油催化裂化机组控制及变工况运行分析