,,
(中國石油大學(xué)(北京) 地球物理與信息工程學(xué)院,北京 102249)
隨著數(shù)字化油田不斷推進(jìn),油田現(xiàn)場部署的數(shù)字化設(shè)備不斷增多,設(shè)備規(guī)模越來越大,分布范圍也越來越廣,故障率也隨之上升,因此需要對這些數(shù)字化油田設(shè)備進(jìn)行更加完備的數(shù)據(jù)化管理[1]。
本系統(tǒng)實現(xiàn)對油田現(xiàn)場終端設(shè)備進(jìn)行全方位﹑全生命周期的動態(tài)信息管理。動態(tài)信息數(shù)據(jù)包括油田現(xiàn)場設(shè)備所采集到的實時數(shù)據(jù)。通過對包括設(shè)備的工作電壓、電流等參數(shù)的油田現(xiàn)場設(shè)備生產(chǎn)數(shù)據(jù)進(jìn)行比較,確定設(shè)備是否運(yùn)行正常。通過本系統(tǒng)能夠全方位的對油田設(shè)備進(jìn)行實時管理,能夠方便決策者對油田現(xiàn)場物資狀況全方位掌握。
本系統(tǒng)由Oracle數(shù)據(jù)庫和WEB發(fā)布系統(tǒng)組成。上位機(jī)通過控制數(shù)字化終端設(shè)備將采集到的油田現(xiàn)場實時數(shù)據(jù)存入數(shù)據(jù)庫。WEB發(fā)布系統(tǒng)通過對數(shù)據(jù)庫中油田生產(chǎn)數(shù)據(jù)實時讀取,以實現(xiàn)對油田設(shè)備生產(chǎn)狀況的實時監(jiān)控。具體包括如下功能模塊:地圖總覽模塊、動態(tài)信息模塊、故障診斷模塊、統(tǒng)計分析???、工況分析模塊、用戶反饋模塊。通過WEB發(fā)布系統(tǒng)各個模塊,實現(xiàn)對現(xiàn)場設(shè)備的全生命周期的管理。對比采集到的數(shù)據(jù),通過生產(chǎn)過程電壓、電流等參數(shù)判斷設(shè)備是否正常運(yùn)行,以便維修人員能夠及時維修。系統(tǒng)的框架如圖1所示。
圖1 系統(tǒng)框架圖
數(shù)據(jù)庫是整個系統(tǒng)的中心,隨著數(shù)字化油田推行,數(shù)字化信息也越來越多,信息存儲成為當(dāng)前油田的一大問題。數(shù)據(jù)庫用來存儲遠(yuǎn)程終端設(shè)備實時采集到的數(shù)據(jù)并可以做到永久保存,實時查看和調(diào)用。
本系統(tǒng)采用的Oracle數(shù)據(jù)庫。數(shù)據(jù)庫不但用來存儲遠(yuǎn)程終端設(shè)備采集到的油田生產(chǎn)數(shù)據(jù),并且包括了油田設(shè)備的實時狀態(tài)和設(shè)備的一些基本信息,用來對設(shè)備進(jìn)行實時查看和管理。本系統(tǒng)引入數(shù)據(jù)庫的目的是為了存儲油田現(xiàn)場設(shè)備的生產(chǎn)數(shù)據(jù),實現(xiàn)對油田現(xiàn)場設(shè)備的管理,因此需要對油田現(xiàn)場設(shè)備的數(shù)據(jù)接口進(jìn)行統(tǒng)一的規(guī)范,方便數(shù)據(jù)存儲。
WEB發(fā)布系統(tǒng)運(yùn)行于Windows操作系統(tǒng),其使用Eclipse作為系統(tǒng)開發(fā)工具、Oracle9I版本作為系統(tǒng)數(shù)據(jù)庫、Tomcat作為系統(tǒng)Web服務(wù)器。本系統(tǒng)采用B/S架構(gòu)[2],軟件總體上采用Spring框架,使用JSP作為網(wǎng)站頁面開發(fā)語言。
分析系統(tǒng)功能需求,分為如下模塊:
1)地圖總覽模塊。地圖總覽模塊包括RTU基本信息﹑RTU實時數(shù)據(jù)﹑視頻監(jiān)控等三大功能顯示模塊,因為RTU上傳數(shù)據(jù)中包含其經(jīng)緯度數(shù)據(jù),所以在百度地圖中RTU的地理位置均被標(biāo)注清楚,方便用戶和管理人員查看。視頻監(jiān)控可以使得管理人員快速掌握燃?xì)庠O(shè)備的運(yùn)行狀況。
2)動態(tài)信息模塊。設(shè)備動態(tài)信息展示的是設(shè)備運(yùn)行過程中的一些電量參數(shù),如設(shè)備的工作電壓﹑電流﹑設(shè)備通訊狀態(tài)等信息,通過每隔一定時間讀取數(shù)據(jù)庫中設(shè)備的最新狀態(tài)信息,顯示到界面供客戶查詢。
3)故障診斷模塊。設(shè)備故障信息是通過對設(shè)備狀態(tài)的原始數(shù)據(jù)進(jìn)行分析和判斷的基礎(chǔ)上得出的。軟件后臺會每隔十分鐘,會讀取數(shù)據(jù)庫中設(shè)備狀態(tài)表中最新更新的數(shù)據(jù),根據(jù)狀態(tài)表中一些電壓、電流、電池電量等參數(shù)判斷設(shè)備是否運(yùn)行正常。若設(shè)備出現(xiàn)故障,將相關(guān)故障信息寫入設(shè)備故障表,同時顯示設(shè)備警報。
4)統(tǒng)計分析模塊。設(shè)備統(tǒng)計分析可對不同類型﹑不同廠家的設(shè)備故障情況進(jìn)行統(tǒng)計展示和上線設(shè)備的數(shù)目進(jìn)行統(tǒng)計,提供如折線圖﹑柱狀圖﹑餅狀圖等多種圖表展示。
5)工況分析模塊。該模塊是通過對故障維修表進(jìn)行查詢,對比故障發(fā)生的時間和工作人員維修的時間以及故障結(jié)束的時間,判斷工作人員的維修效率,方便決策者做出判斷。
6)用戶反饋模塊。用戶在Web發(fā)布系統(tǒng)頁面填寫完用戶反饋后,系統(tǒng)會將反饋信息﹑填寫日期以及反饋用戶手機(jī)號碼存儲到數(shù)據(jù)庫中,使管理人員可以更快捷的查看用戶反饋信息,并迅速作出對策,提升用戶滿意度。
系統(tǒng)的功能模塊結(jié)構(gòu)圖如圖2所示。
圖2 系統(tǒng)功能模塊結(jié)構(gòu)圖
系統(tǒng)采用B/S架構(gòu)的WEB系統(tǒng),整體框架采用SSH架構(gòu),SSH即Spring、Hibernate、Struts。采用HTML和JavaScript進(jìn)行web頁面的編寫。最后,通過Tomcat服務(wù)器進(jìn)行發(fā)布[3]。
此外為使數(shù)據(jù)更好地展示,還引入了JFreeChart、HighChart等圖表制作工具。
如圖3所示是整個軟件的系統(tǒng)框架。
圖3 系統(tǒng)技術(shù)框架圖
由圖中可看出,系統(tǒng)采用Hibernate框架實現(xiàn)對數(shù)據(jù)庫表到Java類的映射[4],然后使用Spring框架對系統(tǒng)進(jìn)行整合,使系統(tǒng)進(jìn)行分層。將系統(tǒng)分為四層,最上層為UI界面,用HTML語言和JavaScript相結(jié)合,與用戶進(jìn)行交互。用戶在UI界面點(diǎn)擊查詢,界面就會將表單傳送給服務(wù)器。Restlet風(fēng)格將所有的資源封裝成URL[5],服務(wù)器根據(jù)界面提交的URL找到對應(yīng)的Resource進(jìn)行處理。Resource類中有很多依賴對象,Spring框架使類創(chuàng)建時依賴類自動加載進(jìn)來,不用自行去創(chuàng)建。底層Oracle數(shù)據(jù)庫采用Hibernate框架進(jìn)行封裝,通過操作對象實現(xiàn)數(shù)據(jù)持久化,以實現(xiàn)對象操作來修改數(shù)據(jù)庫表中的數(shù)據(jù)。
本系統(tǒng)采用的是以Struts、Spring、Hibernate即SSH為核心的B/S架構(gòu)系統(tǒng)。
系統(tǒng)選用Hibernate技術(shù)對Oracle數(shù)據(jù)庫進(jìn)行訪問,實現(xiàn)數(shù)據(jù)庫表與面向?qū)ο笾袑ο蟮倪B接,將數(shù)據(jù)庫中的表轉(zhuǎn)化成程序中的對象,以實現(xiàn)對數(shù)據(jù)庫的操作。
3.4.1 Spring框架
本系統(tǒng)進(jìn)入Spring框架,軟件請求處理原理:頁面發(fā)送請求→接收請求→根據(jù)配置的規(guī)則,分配至對應(yīng)的資源處理→處理完返回結(jié)果數(shù)據(jù)至頁面→頁面顯示。
3.4.2 STRUTS框架
本系統(tǒng)選用的STRUTS版本是Struts2,Struts2是在傳統(tǒng)的Struts1和WebWork上發(fā)展起來的,是一個非常優(yōu)秀的MVC框架。MVC將WEB應(yīng)用程序分為3個模塊:模型(Model)、視圖(View)、控制器(Controller)。這3個模塊相輔相成,雖然各自執(zhí)行不同的任務(wù),但是彼此之間又緊密聯(lián)系在一起,構(gòu)成MVC的整體。
3.4.3 HIBERNATE框架
本系統(tǒng)采用的DataSource數(shù)據(jù)源如下所示。將DataSource數(shù)據(jù)源封裝成Bean容器。DriverClassName提供了數(shù)據(jù)庫連接所需要的驅(qū)動,url提供了遠(yuǎn)程數(shù)據(jù)庫服務(wù)器的地址,username提供了數(shù)據(jù)庫連接的用戶名,password提供了數(shù)據(jù)庫連接的密碼。通過以上數(shù)據(jù)庫參數(shù),應(yīng)用程序能夠通過Hibernate框架連接到數(shù)據(jù)庫。
數(shù)據(jù)庫連接完成以后對數(shù)據(jù)庫中表進(jìn)行操作,需要實現(xiàn)關(guān)系型數(shù)據(jù)庫到Java對象的映射。Hibernate通過XML配置文件實現(xiàn)這一目的,將數(shù)據(jù)庫中表與Java對象建立連接。如下所示,要實現(xiàn)關(guān)系型數(shù)據(jù)庫到Java對象的映射[6],必須要將數(shù)據(jù)庫表中字段和Java對象中屬性一一對應(yīng),并且兩者的數(shù)據(jù)類型要完全一致。
name=”devid” Column=”devid” Class=”com.table.device” Not-null=”true” Lazy=”false”/ > 4.1.1 地圖總覽模塊 地圖總覽模塊包括RTU基本信息﹑RTU實時數(shù)據(jù)﹑視頻監(jiān)控等三大功能展示模塊。RTU基本信息包括RTU單元編號﹑RTU單元用戶表號﹑RTU單元用戶表名﹑RTU編號﹑RTU區(qū)域﹑RTU類型﹑RTU負(fù)責(zé)人員手機(jī)號碼﹑RTU負(fù)責(zé)人員姓名﹑RTU緯度﹑RTU經(jīng)度﹑RTU安裝時間﹑RTU最近更新時間。因為上傳數(shù)據(jù)中包含RTU經(jīng)緯度數(shù)據(jù),所以在百度地圖中RTU的地理位置均被標(biāo)注清楚,方便用戶和管理人員快速查看。RTU實時數(shù)據(jù)包括RTU門禁狀態(tài)﹑RTU狀態(tài)位﹑RTU內(nèi)部時鐘時間﹑RTU內(nèi)部溫度﹑RTU內(nèi)部濕度﹑RTU錯誤信息﹑RTU電池電壓﹑RTU電池剩余電量﹑RTU電池可用時間﹑RTUGPRS是否有SIM卡﹑RTU GPRS信號強(qiáng)度。上位機(jī)將RTU實時數(shù)據(jù)上傳給Web發(fā)布系統(tǒng),數(shù)據(jù)直接顯示在地圖總覽模塊客戶端頁面。視頻監(jiān)控模塊可以使得管理人員快速掌握燃?xì)庠O(shè)備的運(yùn)行狀況,方便管理人員進(jìn)行檢查與維護(hù)。 4.1.2 動態(tài)信息模塊 設(shè)備動態(tài)信息展示的是設(shè)備運(yùn)行過程中的一些電量參數(shù),通過每隔一定時間讀取數(shù)據(jù)庫中設(shè)備的最新狀態(tài)信息,如設(shè)備的工作電壓,電流,設(shè)備通訊狀態(tài)等信息,顯示到界面供客戶查詢。設(shè)備動態(tài)信息是由上位機(jī)采集到現(xiàn)場遠(yuǎn)程終端設(shè)備的實時參數(shù),然后將數(shù)據(jù)存儲到數(shù)據(jù)庫中。WEB系統(tǒng)從數(shù)據(jù)庫中讀取設(shè)備的動態(tài)信息,通過設(shè)備的動態(tài)信息中電流,電壓等參數(shù)可以判斷出設(shè)備是否運(yùn)行正常。 設(shè)備狀態(tài)信息展示的設(shè)備運(yùn)行的實時狀態(tài)信息如圖4所示,上位機(jī)會實時將現(xiàn)場數(shù)據(jù)保存到ORACLE數(shù)據(jù)庫中,WEB系統(tǒng)從數(shù)據(jù)庫中讀取到的就是設(shè)備的實時數(shù)據(jù)。同時提供信息的分類查詢功能,支持按時間、設(shè)備類型、設(shè)備廠家查詢。 圖4 設(shè)備狀態(tài)信息管理 4.1.3 故障診斷模塊 設(shè)備故障信息是在對設(shè)備狀態(tài)信息的原始數(shù)據(jù)分析和判斷的基礎(chǔ)上得出的。軟件后臺會每隔十分鐘,會讀取數(shù)據(jù)庫中設(shè)備狀態(tài)表中最新更新的數(shù)據(jù),根據(jù)狀態(tài)表中一些電壓、電流、電池電量等參數(shù)判斷設(shè)備是否運(yùn)行正常,若設(shè)備出現(xiàn)故障,將相關(guān)故障信息寫入設(shè)備故障表,同時顯示設(shè)備警報。設(shè)備管理軟件的首要目的就是能對設(shè)備的實時參數(shù)進(jìn)行判斷,并進(jìn)行故障報警,方便現(xiàn)場人員能及時做出處理,不影響油田生產(chǎn)。 故障出現(xiàn)以后,維修人員可以根據(jù)故障信息找到對應(yīng)的故障模塊,然后進(jìn)行維修,維修完成以后需要寫維修記錄,如果故障排除,故障信息就自動寫為已處理,同時記錄下這次維修記錄到維修記錄表里,以便于以后進(jìn)行查詢。查詢結(jié)果如圖5所示。 圖5 故障維護(hù)信息 設(shè)備維護(hù)包括日常維護(hù)和故障維護(hù),日常維護(hù)是指對設(shè)備進(jìn)行定期的保養(yǎng)和監(jiān)測,以提高設(shè)備的使用壽命。故障維護(hù)是由工作人員對設(shè)備故障處理完成后,手動記錄故障維護(hù)的基本信息,當(dāng)故障處理完成且維護(hù)記錄被錄入后,設(shè)備報警就會自動消除。如圖6所示。 圖6 設(shè)備維護(hù)信息錄入(故障維護(hù)) 自動觸發(fā)事件的間隔時間可在配置文件中設(shè)置,方便根據(jù)實際需求更改,下圖代碼配置的間隔時間為十分鐘。相關(guān)配置如下所示: 設(shè)備警報是對當(dāng)前有故障的設(shè)備發(fā)出的,當(dāng)對設(shè)備維護(hù)成功后,設(shè)備警備就會自動消除,而設(shè)備故障是對設(shè)備整個生命周期出現(xiàn)故障的記錄,設(shè)備維修好正常運(yùn)行后,以前的故障記錄不會消除。同時為了方便用戶觀察,同一設(shè)備同一種警報只出現(xiàn)一條警報信息。 4.1.4 統(tǒng)計分析模塊 統(tǒng)計展示采用Highcharts工具,在后臺頁面發(fā)送URL請求,通過配置文件映射到相應(yīng)資源處理后,返回處理的數(shù)據(jù),在頁面調(diào)用Highcharts函數(shù)顯示,返回數(shù)據(jù)格式為Json,折線圖如圖7所示。 圖7 統(tǒng)計分析示意圖(折線圖) 設(shè)備統(tǒng)計除了對設(shè)備的數(shù)目進(jìn)行了統(tǒng)計,還對設(shè)備的故障率進(jìn)行了統(tǒng)計,方便管理者對設(shè)備的質(zhì)量有整體的認(rèn)識,設(shè)備故障率的統(tǒng)計可以針對各個設(shè)備在一定時間的故障次數(shù),可以統(tǒng)計不同廠家設(shè)備的故障率,還可以查看各個類型的設(shè)備的故障情況,從而使管理者對設(shè)備的運(yùn)行情況和質(zhì)量有一個清晰的認(rèn)識,來判斷是否繼續(xù)使用該設(shè)備,是否繼續(xù)選取該廠家的設(shè)備。設(shè)備的故障率如圖8所示。 圖8 設(shè)備的故障率 4.1.5 工況分析模塊 工況分析可以根據(jù)故障發(fā)生的時間和維修的時間來分析維修人員的工作狀況,維修效率,方便決策者做出判斷,也可以分析出不同故障維修所用的時間,如圖9所示。 圖9 維修人員的維修效率 工況分析是本系統(tǒng)中重要的部分,工況分析對決策者尤為重要,可以使管理人員不用時刻監(jiān)督員工的工作狀態(tài),只需要查詢報表中人員處理故障所花費(fèi)的時間就可以對工作人員的工作效率有一定的判斷,從而做出合理的人事安排,如圖10所示。 圖10 故障的維護(hù)率 4.1.6 用戶反饋模塊 用戶在Web發(fā)布系統(tǒng)中用戶反饋頁面填寫完用戶反饋信息后提交,系統(tǒng)會將反饋信息﹑反饋信息提交日期以及反饋用戶手機(jī)號碼存儲到數(shù)據(jù)庫中,當(dāng)管理人員查看用戶反饋信息時,系統(tǒng)會快速將反饋信息從數(shù)據(jù)庫中提取出來并顯示到用戶反饋頁面,使系統(tǒng)管理人員能迅速對用戶的看法作出對策,提升用戶滿意度。 研發(fā)基于B/S架構(gòu)的油田生產(chǎn)數(shù)據(jù)管理系統(tǒng),并在華北油田現(xiàn)場布控,實現(xiàn)對整個油田現(xiàn)場生產(chǎn)設(shè)備的實時監(jiān)控,做到油田生產(chǎn)現(xiàn)場的監(jiān)控、管理一體化。現(xiàn)場工作人員不用實時去現(xiàn)場讀取設(shè)備參數(shù),只需要坐在中控室讀取系統(tǒng)參數(shù),根絕設(shè)備參數(shù)和故障報表查看設(shè)備是否有故障,以便做到及時維修。本系統(tǒng)極大程度的降低了油田工人的勞動強(qiáng)度,提高了工人的工作效率,同時增強(qiáng)了生產(chǎn)安全性,使油田生產(chǎn)﹑管理邁入自動化﹑數(shù)據(jù)化的模式。4 主要界面及運(yùn)行效果
4.1 WEB發(fā)布系統(tǒng)功能模塊及其頁面
5 結(jié)束語