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