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