方國平
[摘 要] 基于Aspen公司InfoPlus.21實時數(shù)據(jù)庫多年的運維經驗,針對運維中常見問題和用戶需求,利用微軟.NET2.0架構通過ODBC訪問實時數(shù)據(jù)庫,實現(xiàn)數(shù)據(jù)采集、處理、存儲、綜合分析和報警的監(jiān)控系統(tǒng),詳述了設計方法,分析了關鍵技術。該系統(tǒng)充分運用了.NET 2.0的成熟開發(fā)技術,IDE開發(fā)環(huán)境和C#編程語言。運行結果表明,該系統(tǒng)具有較高的實用性和可擴展性。
[關鍵詞] .NET;實時數(shù)據(jù)庫;ODBC;報警
doi : 10 . 3969 / j . issn . 1673 - 0194 . 2014 . 17. 021
[中圖分類號] TP315 [文獻標識碼] A [文章編號] 1673 - 0194(2014)17- 0033- 03
1 引 言
InfoPlus.21是Aspen公司的實時數(shù)據(jù)庫軟件,是用于集成生產過程信息(如各種工藝參數(shù))與上層應用程序(如先進控制、優(yōu)化、過程管理)的基礎數(shù)據(jù)平臺,InfoPlus.21遵循開放原則,性能穩(wěn)定、可靠。InfoPlus.21可通過多種方式的過程數(shù)據(jù)接口將DCS、PLC、SCADA及其他實時數(shù)據(jù)采集到實時數(shù)據(jù)庫中。它有功能強大的數(shù)據(jù)定義、歷史數(shù)據(jù)管理和分析功能,通過使用Aspen提供的PE繪制圖形化的工藝流程實時數(shù)據(jù)顯示界面,用戶不僅可以通過IE以Web方式瀏覽工藝流程實時數(shù)據(jù),而且可通過IE任意組合查詢多個位號的歷史趨勢,為用戶提供了一條遠程集成訪問和分析裝置工藝生產情況的快捷通道。
InfoPlus.21作為實時信息管理系統(tǒng),它支持多線程、C/S結構和B/S結構,特別是它靈活的數(shù)據(jù)結構可以根據(jù)應用的需要重新定義以適應各類應用的需求,同時可利用ODBC與關系數(shù)據(jù)庫進行數(shù)據(jù)交換。由于豐富的經驗以及在實時數(shù)據(jù)庫系統(tǒng)技術方面的領先地位,使得實時數(shù)據(jù)庫可以與世界上大多數(shù)的DCS及PLC集成在一起。該軟件廣泛應用于煉油、金屬冶煉、造紙、石化、制藥等行業(yè)。
2003年某企業(yè)實施了Aspen InfoPlus.21實時數(shù)據(jù)庫,涉及企業(yè)9個生產單位的50多套裝置,實現(xiàn)了實時數(shù)據(jù)采集和監(jiān)控,工藝點數(shù)已達到23 000點;但隨著系統(tǒng)規(guī)模的擴大,維護的工作量也越來越大。實時數(shù)據(jù)庫系統(tǒng)如何長周期、可靠運行成為突出問題。在日常運維過程中,主要遇到3類問題:一是系統(tǒng)硬件或軟件出現(xiàn)問題,具有偶發(fā)性,不能提前預知;二是從50多套裝置、2 000多幅流程圖中找出故障點,既費時又費力;三是出現(xiàn)故障往往先是由用戶反映出來,IT人員不能主動察覺。針對上述問題,企業(yè)提出開發(fā)一套基于.NET 2.0架構的實時數(shù)據(jù)庫狀態(tài)監(jiān)控軟件,以實現(xiàn)實時數(shù)據(jù)狀態(tài)的7×24小時不間斷監(jiān)測,并即時發(fā)出報警,為實時數(shù)據(jù)庫的維護發(fā)揮作用。
2 系統(tǒng)設計
InfoPlus.21由數(shù)據(jù)庫內核、接口、各類工具包組成,InfoPlus.21系統(tǒng)結構如圖1所示。
.NET技術是微軟用來實現(xiàn)XML,Web Services,SOA和敏捷性的技術,監(jiān)控服務器安裝微軟的.NET 2.0開發(fā)程序,.NET是微軟的新一代技術平臺,為敏捷商務構建互聯(lián)互通的應用系統(tǒng),這些系統(tǒng)是基于標準的、聯(lián)通的、適應變化的、穩(wěn)定的和高性能的。從技術的角度,一個.NET應用是一個運行于.NET Framework之上的應用程序。更精確地說,一個.NET應用是一個使用.NET Framework類庫來編寫,并運行于公共語言運行時(Common Language Runtime)之上的應用程序。
為了實現(xiàn)對實時數(shù)據(jù)庫的即時監(jiān)控和報警,狀態(tài)監(jiān)控系統(tǒng)采用成熟的三層架構即:表現(xiàn)層、業(yè)務邏輯層和數(shù)據(jù)訪問層構建。數(shù)據(jù)訪問層包括通信和數(shù)據(jù)轉存,采用了ODBC與實時數(shù)據(jù)庫進行通信,通過SQL Server 2005進行數(shù)據(jù)儲存。業(yè)務邏輯層采用Visual C# 2008實現(xiàn),通過后臺多任務方式連續(xù)采集各裝置的關鍵點數(shù)據(jù),并進行加工處理,調度周期是5分鐘采集并處理一次。表現(xiàn)層如查詢、報警、趨勢圖顯示在Web界面實現(xiàn)。監(jiān)控系統(tǒng)物理結構如圖2所示。
系統(tǒng)基于在用的InfoPlus.21實時數(shù)據(jù)庫,由監(jiān)控服務器和客戶端組成。實時數(shù)據(jù)庫是系統(tǒng)的數(shù)據(jù)源,與監(jiān)控服務器同屬局域網內的一個域中。為了節(jié)省資源,監(jiān)控服務器采用VMware虛擬機實現(xiàn)。VMware在虛擬化和云計算基礎架構領域處于全球領先地位,所提供的經客戶驗證的解決方案可通過降低復雜性以及更靈活、敏捷地交付服務來提高IT效率。VMware使企業(yè)可以采用能夠解決其獨有業(yè)務難題的云計算模式。VMware提供的方法可在保留現(xiàn)有投資并提高安全性和控制力的同時,加快向云計算的過渡。通過VMware虛擬出的服務器分配4核CPU,4G內存,500G硬盤,硬件資源可根據(jù)將來應用要求自由擴展。既便于維護,又節(jié)省了費用。
為了向用戶提供便捷的查詢服務,通常使用Web Server。為此,監(jiān)控服務器安裝有微軟的Windows 2003 Server操作系統(tǒng)和IIS 6.0服務,該虛擬機既是數(shù)據(jù)庫服務器又是Web服務器,并負責向外提供查詢服務。服務功能包括數(shù)據(jù)查詢、報警、趨勢圖顯示等,客戶端只要安裝IE 6.0及以上版本瀏覽器就可以了。
3 關鍵技術
3.1 InfoPlus.21實時數(shù)據(jù)庫的訪問方式
通常InfoPlus.21實時數(shù)據(jù)庫的訪問方式主要有以下3種:①使用實時數(shù)據(jù)庫提供的API。這種方式效率最高,開發(fā)簡單,但需要安裝Aspen提供的庫文件。②使用ODBC。大部分實時數(shù)據(jù)庫提供了標準的ODBC接口,也提供了SQL查詢語言,通過這些方法,用戶可以將實時數(shù)據(jù)庫當作一個標準的數(shù)據(jù)庫來使用。但這種方法速度較慢,適合于對關系數(shù)據(jù)庫比較熟練的用戶。③使用OPC方式(OLE for Process Control)。因為太多的數(shù)據(jù)庫和DCS使用自己的API方式存取數(shù)據(jù),無法做到算法的通用,為此工業(yè)監(jiān)控領域提出了一個標準的存取接口,這就是OPC,如今有超過200家廠商加入到OPC組織中。OPC方式需單獨開發(fā)一個客戶端程序,利用軟件包或標準OPC開發(fā)規(guī)范均可,但對開發(fā)人員的技術要求較高,目前僅適合微軟的Windows平臺。
考慮到接口的開發(fā)效率和易用性,采用ODBC存取,OLEDB是微軟基于COM的一個數(shù)據(jù)庫訪問接口標準。使用InfoPlus.21 ODBC,用戶能夠像訪問關系數(shù)據(jù)庫一樣訪問InfoPlus.21系統(tǒng)?;贠DBC的數(shù)據(jù)接口程序和客戶端應用程序,可利用標準的SQL語句訪問InfoPlus.21數(shù)據(jù)庫,包括IP Archive、IP Point Database或其他配置數(shù)據(jù)。InfoPlus.21的ODBC是基于SQLplus的,SQLplus有如下特點:①可查詢實時數(shù)據(jù)庫,歷史信息以及組態(tài)信息;②可對關系數(shù)據(jù)庫和文本文件集成訪問;③可對數(shù)據(jù)進行排序和更改,并將來自實時數(shù)據(jù)庫和關系數(shù)據(jù)庫的數(shù)據(jù)進行合并和連接;④過程式SQL語言可進行更加復雜的查詢或應用開發(fā)、生成報告、進行數(shù)據(jù)庫維護及編寫應用腳本;⑤客戶/服務器體系可以實現(xiàn)辦公室和住所PC機的遠程查詢;⑥支持大量的ODBC客戶應用,可方便地建立報告和查詢。
3.2 開發(fā)配置
系統(tǒng)在開發(fā)前首先必須安裝實時數(shù)據(jù)庫訪問組件和開發(fā)包,并進行必要的配置。
(1)安裝組件,在監(jiān)控服務器虛擬機上安裝ODBC組件,該組件名為IP21ODBC.DLL。先將該組件拷入“c:\windows\system32\”文件夾中,再利用“resver32 c:\windows\system32\ip21odbc.dll”進行注冊,然后打開系統(tǒng)控制面板,在其中找到“數(shù)據(jù)源(ODBC)”,打開窗口,就可找到Aspen的驅動了,再進行配置,其配置界面如圖3所示。
(2)在監(jiān)控服務器虛擬機上安裝SQL Server 2005,安裝完畢,在系統(tǒng)中通過手工或SQL語句建立數(shù)據(jù)庫monitor,在數(shù)據(jù)庫上分別建立Alarm、Checkdb、Display、Hisdata等數(shù)據(jù)庫表。Checkdb是主表,里面存放有各裝置工藝位號與實時數(shù)據(jù)庫點位號的映射關系和對應裝置描述,目前各裝置取3個點,邏輯上以三取二標準,3個關鍵點需兩個以上出現(xiàn)故障才報警。
(3)在監(jiān)控服務器虛擬機上啟用IIS 6.0程序,在默認網站下建立虛擬目錄和應用程序名,由于Web服務是采用微軟的.NET2.0架構,需對Monitor虛擬目錄屬性添加應用程序,確保asp.NET版本為2.0.50727,否則.NET 2.0無法工作。
(4)最后在Visual Studio.Net 2008集成環(huán)境下進行C#開發(fā),開發(fā)的模塊分為實時數(shù)據(jù)庫監(jiān)控處理模塊和Web展示模塊,這兩個模塊分別設計。前者用Windows窗體客戶端程序實現(xiàn),后者用Web應用程序實現(xiàn)。監(jiān)控具體過程為:實時數(shù)據(jù)數(shù)據(jù)庫監(jiān)控處理模塊每5分鐘進行一次任務調度,從Checkdb表中取出裝置的對應記錄,調用ODBC從實時數(shù)據(jù)庫中取出當前數(shù)據(jù),然后利用該位號從歷史庫中取出一定時間段內數(shù)據(jù)序列。對數(shù)據(jù)序列進行求和、求平均,如果平均值一直等于先前的實時值,則表明該裝置的點數(shù)據(jù)沒有變化,可能有問題,通知程序待查,否則正常。如果該裝置的3個關鍵點有兩個以上都沒有變化則提示報警,同時將報警狀態(tài)和時間寫入SQL Server 2005數(shù)據(jù)庫中,供Web程序調用。各裝置的關鍵點非常重要,最好能取溫度、壓力等易變化的位號。
(5)在設計過程中,通過ODBC取實時數(shù)據(jù)庫的數(shù)據(jù)時要注意3點:一是實時數(shù)據(jù)庫針對現(xiàn)場工藝情況一般分為pv點和pid點,其歷史庫的字段名不一樣。pv點的字段名是ip_trend_value,而pid點是pv_trend_value;二是在歷史庫中,對應pv和pid點,其數(shù)據(jù)庫的日期字段分別是pv_value_time和ip_value_time; 三是InfoPlus.21對日期格式的表示是“日-月-年”,且月份用英語的縮寫表示,如2014年4月1日則表示為“01-APR-14”。
(6)Web程序設計模塊直接利用Gridview控件進行歷史數(shù)據(jù)展示,為了同步顯示該關鍵點的曲線,利用微軟的GDI程序,先在內存中建立窗口畫板,將曲線在緩存中畫出,然后利用Web技術的response對象將GDI中的圖形流直接輸出到客戶端,這樣瀏覽器直接將曲線顯示出來,由于沒有采用原有的先將圖形生成存入服務器,然后再用HTML的展示圖形的方法,而是采用了GDI,提高了曲線的顯示速度。
(7)實時數(shù)據(jù)庫的上位機是CIMIO數(shù)據(jù)采集機,該機器是為了將底層的DCS及儀表的數(shù)據(jù)通過OPC方式采集到實時數(shù)據(jù)庫的中轉基站,它的運行好壞直接影響實時數(shù)據(jù)庫的使用效果。經過研究發(fā)現(xiàn):實時數(shù)據(jù)庫中的IOGET任務與CIMIO機器是通過多個進程進行通信,其運行和通信狀態(tài)是可以通過SQL方式查詢的,在SQLplus中通過以下語句就可以查詢并監(jiān)控:select name,io_last_status from iogetdef where io_last_status='CIM I/O Error'。
4 系統(tǒng)實現(xiàn)
系統(tǒng)運行一年多以來,處理技術不斷提高和完善,滿足了實時數(shù)據(jù)庫系統(tǒng)故障報警的即時性要求,為處理系統(tǒng)故障預留了保貴的時間。一是該監(jiān)控系統(tǒng)在開發(fā)過程中通過優(yōu)化技術,保證了其性能和功能,如每套待監(jiān)控的裝置,通過與工藝人員反復溝通、測試,取溫度、壓力、流量3類關鍵點;二是對裝置位號漸變的判定算法最終修改為:通過取一定時間內的最大值與最小值比較,若差值在某個很小的范圍內則認為沒有變化,反之,其差值大于給定的范圍,則認為有變化。三是監(jiān)控核心程序采用.NET的多線程Thread技術,并考慮到異步與線程間的通信。四是預設了短信功能接口,若今后需要短信通知功能,則僅配置接口即可。
實時數(shù)據(jù)庫監(jiān)控系統(tǒng)為一個集C/S與B/S架構的用于運行維護管理的在線系統(tǒng),目前主要實現(xiàn)的功能有:InfoPlus.21實時數(shù)據(jù)庫運行狀態(tài)監(jiān)測,各主要裝置OPC通信連接狀態(tài)監(jiān)測,裝置位號的添加、刪除、修改維護,監(jiān)測點的歷史數(shù)據(jù)及趨勢圖查詢,Web頁面文字報警,發(fā)送郵件到指定用戶的報警,短信通知報警接口,監(jiān)測數(shù)據(jù)的歷史追溯等。
5 結 語
實時數(shù)據(jù)庫狀態(tài)監(jiān)控系統(tǒng)的實現(xiàn)給實時數(shù)據(jù)庫的深層次應用帶來了質的飛躍,解決了通過人工方式進行監(jiān)控所帶來的耗時、費力、響應慢等問題,改進了系統(tǒng)的維護方式,提高了系統(tǒng)故障的響應及時性,改變了用戶提醒維護的被動局面,變事后反饋為主動預警。尤其今后短信功能的增加將大大提高該系統(tǒng)的實用性,方便了用戶,也為各類系統(tǒng)的監(jiān)控開發(fā)應用進行了有益探索。
主要參考文獻
[1]張志檁.實時數(shù)據(jù)庫原理及應用[M].北京.中國石化出版社,2001.
[2]陸會明,朱耀春.控制裝置標準化通信——OPC服務器開發(fā)設計與應用[M].北京:機械工業(yè)出版社,2010.
[3]馬偉.ASP.NET 4.0權威指南[M].北京:機械工業(yè)出版社,2011.