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萬噸重油催化裂化機組控制及變工況運行分析