吉 平
(中聯(lián)煤層氣有限責(zé)任公司 北京 100015)
隨著中海油海上油氣田群生產(chǎn)規(guī)模的不斷擴(kuò)大,平臺建設(shè)逐漸增多,形成了衛(wèi)星油氣田群。海底傳輸管線與平臺之間連接越來越密集,海陸長輸管線、平臺的周邊管線安全管理和保障日益受到重視。
海上油田群之間的管線、線纜的種類與數(shù)量繁多,油田與船舶航行航道共用海域,一旦發(fā)生船錨壓壞線纜管線或捕魚船漁網(wǎng)損壞線纜等狀況,可能導(dǎo)致通信中斷、油料泄漏,甚至爆炸等重大危險事故,而恢復(fù)被破壞的線纜或管線會耗費(fèi)大量的人力及物力。在這樣的背景下,為保證海上持續(xù)安全生產(chǎn),本文提出建立一套可實(shí)時監(jiān)測海管損害或海底線纜風(fēng)險的海底管線自動預(yù)警系統(tǒng)。
據(jù)統(tǒng)計,全球50%~60%的海底油氣管道破裂事故是由第三方破壞造成的[1]。1967—2012年,墨西哥灣共發(fā)生海底管線泄漏事故184起,其中由設(shè)備自身故障導(dǎo)致的事故僅占34.3%;1998—2012年,我國公開發(fā)布和報道的海底管線泄漏事共19起,已查明原因的15起事故中,由第三方破壞導(dǎo)致的事故多達(dá)7起。由此可見,第三方破壞已成為威脅海底管線安全的重要因素。
本系統(tǒng)以加強(qiáng)平臺與平臺間、平臺與陸地終端海底管線的保護(hù)為設(shè)計目標(biāo),結(jié)合AIS(船舶自動識別系統(tǒng))數(shù)據(jù)源、北斗數(shù)據(jù)源,采用前置機(jī)進(jìn)行數(shù)據(jù)采集壓縮處理后,通過海上平臺和船舶的內(nèi)部網(wǎng)絡(luò),將采集到的數(shù)據(jù)傳輸至陸地數(shù)據(jù)服務(wù)器進(jìn)行解析、去重等處理,從而實(shí)現(xiàn)陸地終端、海上平臺群聯(lián)合監(jiān)控,海上平臺只負(fù)責(zé)監(jiān)控本油田群附近海管及船舶預(yù)警,陸地負(fù)責(zé)宏觀監(jiān)控整個海域管線預(yù)警。系統(tǒng)設(shè)計結(jié)合電子海圖ECS、海油專用圖層和AIS(船舶自動識別系統(tǒng))進(jìn)行集成開發(fā),對特定區(qū)域內(nèi)海底管線及船舶進(jìn)行實(shí)時監(jiān)控行為;基于船舶位置數(shù)據(jù)信息、電子海圖及標(biāo)繪的預(yù)警區(qū)域,實(shí)現(xiàn)平臺與船舶之間的避碰和船舶與管線之間的避碰[1]。系統(tǒng)輔助管理部門從海上到陸地2個層面進(jìn)行管理,從而有效提高對海底管線和光纜等的保護(hù)。海底管線自動預(yù)警系統(tǒng)如圖1所示。
圖1 海底管線自動預(yù)警系統(tǒng)圖Fig.1 Diagram of submarine pipeline automatic warning system
本系統(tǒng)主要包括AIS數(shù)據(jù)解析服務(wù)器、實(shí)時通信接口服務(wù)器、Web應(yīng)用服務(wù)器、海上管線監(jiān)控預(yù)警一體機(jī)、數(shù)據(jù)采集設(shè)備(AIS、傳感器等)、GPS、網(wǎng)絡(luò)設(shè)備、計算機(jī)及外圍設(shè)備等[2]。
海底管線實(shí)時預(yù)警系統(tǒng)利用船載AIS設(shè)備、北斗設(shè)備通過船載導(dǎo)航終端(采集前置機(jī))向遠(yuǎn)端陸地服務(wù)器進(jìn)行數(shù)據(jù)傳輸,通過前置機(jī)進(jìn)行解析及壓縮后,基于TCP/IP協(xié)議向數(shù)據(jù)采集服務(wù)器發(fā)送船載端采集到的AIS數(shù)據(jù)和北斗數(shù)據(jù)。AIS數(shù)據(jù)采集程序不再是傳統(tǒng)的被動獲取,而是主動監(jiān)聽指定端口,在獲取AIS原始信息之后進(jìn)行解析入庫處理,北斗數(shù)據(jù)也以同樣方式進(jìn)行采集與處理。與傳統(tǒng)采集系統(tǒng)不同的是,為保證本系統(tǒng)與原有系統(tǒng)共同運(yùn)行,采集系統(tǒng)在獲取AIS數(shù)據(jù)之后,在進(jìn)行解析入庫的同時,通過COM端口以原始NMEA0183報文的格式向該串口發(fā)送原始協(xié)議內(nèi)容,提供給本地的應(yīng)用終端進(jìn)行本地解析應(yīng)用,其邏輯結(jié)構(gòu)如圖2所示。
圖2 系統(tǒng)邏輯結(jié)構(gòu)框圖Fig.2 System logical structure block diagram
2.2.1 數(shù)據(jù)采集模塊(DCU)
DCU模塊結(jié)構(gòu)圖如圖3所示。
圖3 DCU模塊結(jié)構(gòu)圖Fig.3 DCU module structure diagram
工作機(jī)理:DCU通過TcpIODevice接收數(shù)據(jù),在接收數(shù)據(jù)時,經(jīng)過SerialIODevice向現(xiàn)有系統(tǒng)異步發(fā)送AIS信息,同時將接收獲得的數(shù)據(jù)發(fā)送至SentenceDispatcher,然后進(jìn)行解析處理并入庫。
2.2.2 業(yè)務(wù)邏輯模塊
業(yè)務(wù)邏輯模塊如圖4所示。
圖4 業(yè)務(wù)邏輯模塊Fig.4 Business logical module
業(yè)務(wù)邏輯模塊(BCU)負(fù)責(zé)處理客戶端發(fā)送的業(yè)務(wù)請求,并返回相應(yīng)的業(yè)務(wù)數(shù)據(jù),包含平臺靜態(tài)基礎(chǔ)數(shù)據(jù)、動態(tài)數(shù)據(jù)及管線參數(shù)等數(shù)據(jù)信息,是用戶查詢調(diào)用的高頻應(yīng)用模塊。
業(yè)務(wù)邏輯模塊采用Command模式。每一個業(yè)務(wù)都分別從Command類派生,并在其內(nèi)部實(shí)現(xiàn)業(yè)務(wù)邏輯。Command類在進(jìn)行業(yè)務(wù)邏輯處理時,各個子類應(yīng)在相應(yīng)的業(yè)務(wù)邏輯處理中進(jìn)行日志記錄。業(yè)務(wù)邏輯子系統(tǒng)的一個流程如圖5所示。
圖5 業(yè)務(wù)邏輯子系統(tǒng)Fig.5 Business logical subsystem
每個數(shù)據(jù)對象都對應(yīng)一個數(shù)據(jù)表,同時應(yīng)有一個對應(yīng)的DAO對象實(shí)現(xiàn)數(shù)據(jù)的CRUD操作。系統(tǒng)使用.NET實(shí)現(xiàn),采用NHibernate作為持久層實(shí)現(xiàn)的框架。
2.2.4 權(quán)限控制模塊
用戶權(quán)限系統(tǒng)包括:①User,即用戶基本信息,包含用戶名、加密后的用戶密碼,用戶密碼采用將密碼明文取SHA-1的方式加密,用戶類型為1時為管理用戶,否則為普通用戶,當(dāng)用戶為管理用戶時,可進(jìn)行用戶的添加、修改和刪除,否則只能進(jìn)行其他操作;②VesselGroup,即用戶船舶分組,每個用戶可創(chuàng)建多個分組,每個分組可包含多艘船舶。
2.2.3 數(shù)據(jù)模塊
數(shù)據(jù)模塊包括船舶動態(tài)數(shù)據(jù)、船舶靜態(tài)統(tǒng)計數(shù)據(jù)和船舶歷史數(shù)據(jù)。數(shù)據(jù)模塊如圖6所示。
圖6 數(shù)據(jù)模塊Fig.6 Data module
2.2.5 控制客戶端模塊(CCU)
CCU以C++作為實(shí)現(xiàn)語言,對非功能性需求的優(yōu)先次序?yàn)椋孩傩阅?;②穩(wěn)定性。根據(jù)目前的技術(shù)儲備及未來發(fā)展的需要,以Qt為平臺實(shí)現(xiàn)。
2.2.6 船載客戶端模塊(SBU)
SBU以C++作為實(shí)現(xiàn)語言,對非功能性需求的優(yōu)先次序?yàn)椋孩傩阅埽虎诜€(wěn)定性。根據(jù)目前的技術(shù)儲備及未來發(fā)展的需要,以Qt為平臺實(shí)現(xiàn)。
2.2.7 Web模塊(WBU)
Web模塊要求能夠同時顯示標(biāo)繪數(shù)據(jù)、公有船舶數(shù)據(jù)和用戶船舶數(shù)據(jù),對于Web應(yīng)用來說,數(shù)據(jù)量大,是一個考驗(yàn)。JavaScript實(shí)現(xiàn)方式會引起性能問題,若采用已有的Flash腳本,不能夠支持多線程模式,故無法有效利用客戶端的處理能力,對內(nèi)存的消耗較高。因此,本系統(tǒng)經(jīng)過大量測試后采用Java Applet的方式實(shí)現(xiàn)。
2.3.1 海底管線預(yù)警服務(wù)
海底管線為不可見設(shè)施,應(yīng)在海面一定區(qū)域禁止拋錨及拖錨行為。系統(tǒng)設(shè)定該區(qū)域?yàn)閽佸^報警區(qū)域,當(dāng)有船舶在這一區(qū)域有拋錨趨勢時(根據(jù)實(shí)際情況自由設(shè)置距離管線多少米、航速低于多少節(jié)視為有拋錨趨勢),系統(tǒng)自動發(fā)出聲光報警,提醒工作人員注意,同時自動記錄該船舶的相關(guān)信息,如船名、船位等[3]。
2.3.2 特殊區(qū)域、平臺報警服務(wù)
對用戶輸入的指定區(qū)域進(jìn)行船舶監(jiān)控和預(yù)警,分為船舶駛?cè)雸缶痛榜偝鰣缶?/p>
對于禁止船舶進(jìn)入的區(qū)域(比如一些危險區(qū)域),可以設(shè)定為船舶駛?cè)雸缶?;船舶可以分為本系統(tǒng)船舶或全部船舶。
2.3.3 船舶現(xiàn)場數(shù)據(jù)服務(wù)
提供船舶實(shí)時數(shù)據(jù)服務(wù),主要包含附近相關(guān)船舶的動態(tài)和靜態(tài)信息:動態(tài)信息包含船舶的位置信息、航行速度、航行狀態(tài)等數(shù)據(jù);靜態(tài)信息包含船舶名稱、MMSI、呼號、船長、船寬、船上人員等數(shù)據(jù)。
2.3.4 船舶實(shí)時監(jiān)控
對各作業(yè)船舶及一定范圍內(nèi)的周邊船舶進(jìn)行實(shí)時監(jiān)控,隨時掌握在港、航行中的船舶狀態(tài)及周圍情況。該系統(tǒng)具有錄入、接收、顯示、查詢船舶或平臺詳細(xì)參數(shù)及船舶動態(tài)信息,以及航跡回放、船位查詢、統(tǒng)計報告等功能,能夠?qū)崿F(xiàn)對海上平臺及船舶信息、作業(yè)的實(shí)時監(jiān)控管理。系統(tǒng)能夠根據(jù)船舶所屬公司及屬性對船舶進(jìn)行分組,從而形成船隊(duì)管理模式,也可根據(jù)需要在電子海圖上標(biāo)繪出報警區(qū)域,設(shè)定船舶的入?yún)^(qū)報警或出區(qū)報警,從而有效實(shí)現(xiàn)對平臺及管線的報警保護(hù)和對船舶的監(jiān)控。
2.3.5 氣象姿態(tài)監(jiān)控
氣象姿態(tài)監(jiān)控功能分為實(shí)時氣象信息傳輸和氣象預(yù)報疊加。實(shí)時氣象信息傳輸是指利用海上端點(diǎn)安裝的氣象儀和搖擺儀等數(shù)據(jù)采集設(shè)備,將海上作業(yè)點(diǎn)、監(jiān)控點(diǎn)的即時氣象數(shù)據(jù)和船舶搖擺度數(shù)據(jù)傳回陸地監(jiān)控接收端,以此達(dá)到實(shí)時準(zhǔn)確掌握海上氣象情況和對海上生產(chǎn)作業(yè)狀況透明管理的目的。氣象預(yù)報是指利用官方氣象預(yù)報信息數(shù)據(jù)和現(xiàn)有衛(wèi)星通信鏈路對氣象/臺風(fēng)預(yù)報信息在系統(tǒng)中進(jìn)行疊加。氣象預(yù)報信息將作為公共信息在所有監(jiān)控客戶端上顯示,以此實(shí)現(xiàn)提示和預(yù)警作用。氣象姿態(tài)監(jiān)控如圖7所示。
圖7 氣象姿態(tài)監(jiān)控Fig.7 Weather/swing monitoring
2.3.6 標(biāo)繪查詢服務(wù)
客戶端提交標(biāo)繪查詢服務(wù),可與本地保存的標(biāo)繪更新時間進(jìn)行匹配,以確定本地保存的標(biāo)繪是否為最新版本。
2.3.7 海圖上傳服務(wù)
當(dāng)監(jiān)控端判斷本地海圖文件更新于服務(wù)器端海圖文件時,可予以上傳。上傳時,應(yīng)對每個單獨(dú)的海圖文件調(diào)用一次該服務(wù),每次調(diào)用都應(yīng)傳送海圖的圖號、制作日期和海圖內(nèi)容。
本服務(wù)將記錄海圖圖號、日期,并根據(jù)圖號保存文件至HTTP服務(wù)器。該文件可以用HTTP服務(wù)器直接訪問。
2.3.8 海圖列表服務(wù)
本服務(wù)為無參數(shù)服務(wù),用戶可直接調(diào)用,服務(wù)將返回所有圖幅的海圖號、制作日期??蛻舳丝纱_定是否需要更新。
2.3.9 海圖下載服務(wù)
當(dāng)客戶端需要更新海圖時,可調(diào)用本服務(wù),每一幅需要更新的海圖都需要單獨(dú)調(diào)用一次本服務(wù)。本服務(wù)通過2個標(biāo)準(zhǔn)的HTTP服務(wù)提供:HTTP HEAD——獲取海圖文件尺寸;HTTP GET——獲取海圖文件。
系統(tǒng)性能是設(shè)計考慮的重點(diǎn)。采用內(nèi)存數(shù)據(jù)庫與Oracle數(shù)據(jù)庫并行的運(yùn)作方式可以有效提高預(yù)警系統(tǒng)性能。
本系統(tǒng)較多的維護(hù)費(fèi)用來源于維護(hù)人工費(fèi),而不是對系統(tǒng)軟硬件的更換費(fèi)。采用Windows系統(tǒng),能夠提高可維護(hù)性,從而降低維護(hù)人員所需的實(shí)際維護(hù)時間。但是隨著系統(tǒng)規(guī)模的擴(kuò)大,維護(hù)人工費(fèi)將逐步縮小,軟硬件更換的費(fèi)用逐步增大。在這種情況下,采用Linux等免費(fèi)操作系統(tǒng),首先可以降低系統(tǒng)的軟硬件費(fèi)用,在硬件水平相當(dāng)?shù)那闆r下能夠提供更好的性能支持;其次可以降低系統(tǒng)被攻擊的可能性,提高系統(tǒng)的安全性,并降低系統(tǒng)出現(xiàn)故障的機(jī)率。
因此,在系統(tǒng)設(shè)計時,必須考慮未來平臺移植的通用性。采用Web Service作為數(shù)據(jù)發(fā)布服務(wù)和更新服務(wù)的主要技術(shù)手段就是為了在進(jìn)行平臺移植時對船載端、監(jiān)控端不產(chǎn)生影響,從而保證服務(wù)器端的遷移不影響客戶端的正常工作,以保障系統(tǒng)的通用性。
在本系統(tǒng)安全設(shè)計中,首先考慮的就是用戶權(quán)限檢測。因此,系統(tǒng)設(shè)計本身充分體現(xiàn)了對安全性的保障。采用安全性級別較高的Oracle數(shù)據(jù)庫提高了環(huán)境安全系數(shù),而由于采用了Web Service技術(shù),在必要情況下,可以使用HTTPS加密鏈路提供額外的安全支持,從而保證較高的安全性。
目前數(shù)據(jù)服務(wù)器為內(nèi)部網(wǎng)絡(luò),部署內(nèi)容如下。
①系統(tǒng)需要部署.Net framework框架,用于創(chuàng)建基于Windows系統(tǒng)的應(yīng)用程序環(huán)境。
②部署Internet Information Services服務(wù),檢查方式為,打開管理工具中的Internet信息服務(wù),點(diǎn)擊默認(rèn)網(wǎng)站,確認(rèn)網(wǎng)站運(yùn)行狀態(tài)正常。
③部署TimesTen,其后臺有一個TimesTen Daemon進(jìn)程,這個進(jìn)程是個多線程進(jìn)程,在服務(wù)器啟動后自動運(yùn)行。每個應(yīng)用程序連接到Timesten改進(jìn)程后都會創(chuàng)建一個線程與應(yīng)用程序進(jìn)行通信,并進(jìn)行失敗檢測。
④部署數(shù)據(jù)解析模塊,服務(wù)器端部署數(shù)據(jù)解析,檢查Connect按鈕為禁止?fàn)顟B(tài),有數(shù)據(jù)時為進(jìn)入狀態(tài),并實(shí)現(xiàn)正常解析。
⑤部署數(shù)據(jù)轉(zhuǎn)發(fā)程序(MessageRelayServer,TCP/TCP通信方式),數(shù)據(jù)轉(zhuǎn)發(fā)程序?qū)?shí)現(xiàn)與異地服務(wù)實(shí)時共享AIS數(shù)據(jù)和北斗數(shù)據(jù),以秒為單位進(jìn)行存儲轉(zhuǎn)發(fā)。
⑥部署看門狗程序,保證數(shù)據(jù)解析模塊可以連續(xù)工作,在出現(xiàn)異常情況時解析模塊自動恢復(fù)。
海上油田群海底管線自動預(yù)警系統(tǒng)的建設(shè)體現(xiàn)了中海油船舶作業(yè)特殊性,結(jié)合AIS及北斗數(shù)據(jù)進(jìn)行綜合應(yīng)用和開發(fā),有效實(shí)現(xiàn)了對海底管線自動預(yù)警防護(hù)和船舶的預(yù)警監(jiān)控,為中海油海上平臺群生產(chǎn)作業(yè)及施工工作提供了可靠的信息化技術(shù)手段和管理工具。截至目前,系統(tǒng)經(jīng)過軟件迭代更新,實(shí)現(xiàn)了在系統(tǒng)內(nèi)的分布式部署,對渤海灣海域及北部灣海域、黃海部分海上作業(yè)海域及港口、南海外海部分海上作業(yè)海域及港口區(qū)域?qū)崟r動態(tài)的監(jiān)控及預(yù)警。系統(tǒng)實(shí)現(xiàn)了應(yīng)用創(chuàng)新,經(jīng)過多次實(shí)踐檢驗(yàn),避免了因船舶拋錨、惡劣天氣造成走錨、未知船舶意外闖入靠泊對管線造成的損害。在應(yīng)急指揮方面,用于人員落水搜救、開采油井原油泄漏應(yīng)急指揮等場合,有效發(fā)揮了預(yù)警救援作用。