吉 平
(中聯煤層氣有限責任公司 北京 100015)
隨著中海油海上油氣田群生產規模的不斷擴大,平臺建設逐漸增多,形成了衛星油氣田群。海底傳輸管線與平臺之間連接越來越密集,海陸長輸管線、平臺的周邊管線安全管理和保障日益受到重視。
海上油田群之間的管線、線纜的種類與數量繁多,油田與船舶航行航道共用海域,一旦發生船錨壓壞線纜管線或捕魚船漁網損壞線纜等狀況,可能導致通信中斷、油料泄漏,甚至爆炸等重大危險事故,而恢復被破壞的線纜或管線會耗費大量的人力及物力。在這樣的背景下,為保證海上持續安全生產,本文提出建立一套可實時監測海管損害或海底線纜風險的海底管線自動預警系統。
據統計,全球50%~60%的海底油氣管道破裂事故是由第三方破壞造成的[1]。1967—2012年,墨西哥灣共發生海底管線泄漏事故184起,其中由設備自身故障導致的事故僅占34.3%;1998—2012年,我國公開發布和報道的海底管線泄漏事共19起,已查明原因的15起事故中,由第三方破壞導致的事故多達7起。由此可見,第三方破壞已成為威脅海底管線安全的重要因素。
本系統以加強平臺與平臺間、平臺與陸地終端海底管線的保護為設計目標,結合AIS(船舶自動識別系統)數據源、北斗數據源,采用前置機進行數據采集壓縮處理后,通過海上平臺和船舶的內部網絡,將采集到的數據傳輸至陸地數據服務器進行解析、去重等處理,從而實現陸地終端、海上平臺群聯合監控,海上平臺只負責監控本油田群附近海管及船舶預警,陸地負責宏觀監控整個海域管線預警。系統設計結合電子海圖ECS、海油專用圖層和AIS(船舶自動識別系統)進行集成開發,對特定區域內海底管線及船舶進行實時監控行為;基于船舶位置數據信息、電子海圖及標繪的預警區域,實現平臺與船舶之間的避碰和船舶與管線之間的避碰[1]。系統輔助管理部門從海上到陸地2個層面進行管理,從而有效提高對海底管線和光纜等的保護。海底管線自動預警系統如圖1所示。

圖1 海底管線自動預警系統圖Fig.1 Diagram of submarine pipeline automatic warning system
本系統主要包括AIS數據解析服務器、實時通信接口服務器、Web應用服務器、海上管線監控預警一體機、數據采集設備(AIS、傳感器等)、GPS、網絡設備、計算機及外圍設備等[2]。
海底管線實時預警系統利用船載AIS設備、北斗設備通過船載導航終端(采集前置機)向遠端陸地服務器進行數據傳輸,通過前置機進行解析及壓縮后,基于TCP/IP協議向數據采集服務器發送船載端采集到的AIS數據和北斗數據。AIS數據采集程序不再是傳統的被動獲取,而是主動監聽指定端口,在獲取AIS原始信息之后進行解析入庫處理,北斗數據也以同樣方式進行采集與處理。與傳統采集系統不同的是,為保證本系統與原有系統共同運行,采集系統在獲取AIS數據之后,在進行解析入庫的同時,通過COM端口以原始NMEA0183報文的格式向該串口發送原始協議內容,提供給本地的應用終端進行本地解析應用,其邏輯結構如圖2所示。

圖2 系統邏輯結構框圖Fig.2 System logical structure block diagram
2.2.1 數據采集模塊(DCU)
DCU模塊結構圖如圖3所示。

圖3 DCU模塊結構圖Fig.3 DCU module structure diagram
工作機理:DCU通過TcpIODevice接收數據,在接收數據時,經過SerialIODevice向現有系統異步發送AIS信息,同時將接收獲得的數據發送至SentenceDispatcher,然后進行解析處理并入庫。
2.2.2 業務邏輯模塊
業務邏輯模塊如圖4所示。

圖4 業務邏輯模塊Fig.4 Business logical module
業務邏輯模塊(BCU)負責處理客戶端發送的業務請求,并返回相應的業務數據,包含平臺靜態基礎數據、動態數據及管線參數等數據信息,是用戶查詢調用的高頻應用模塊。
業務邏輯模塊采用Command模式。每一個業務都分別從Command類派生,并在其內部實現業務邏輯。Command類在進行業務邏輯處理時,各個子類應在相應的業務邏輯處理中進行日志記錄。業務邏輯子系統的一個流程如圖5所示。

圖5 業務邏輯子系統Fig.5 Business logical subsystem
每個數據對象都對應一個數據表,同時應有一個對應的DAO對象實現數據的CRUD操作。系統使用.NET實現,采用NHibernate作為持久層實現的框架。
2.2.4 權限控制模塊
用戶權限系統包括:①User,即用戶基本信息,包含用戶名、加密后的用戶密碼,用戶密碼采用將密碼明文取SHA-1的方式加密,用戶類型為1時為管理用戶,否則為普通用戶,當用戶為管理用戶時,可進行用戶的添加、修改和刪除,否則只能進行其他操作;②VesselGroup,即用戶船舶分組,每個用戶可創建多個分組,每個分組可包含多艘船舶。
2.2.3 數據模塊
數據模塊包括船舶動態數據、船舶靜態統計數據和船舶歷史數據。數據模塊如圖6所示。

圖6 數據模塊Fig.6 Data module
2.2.5 控制客戶端模塊(CCU)
CCU以C++作為實現語言,對非功能性需求的優先次序為:①性能;②穩定性。根據目前的技術儲備及未來發展的需要,以Qt為平臺實現。
2.2.6 船載客戶端模塊(SBU)
SBU以C++作為實現語言,對非功能性需求的優先次序為:①性能;②穩定性。根據目前的技術儲備及未來發展的需要,以Qt為平臺實現。
2.2.7 Web模塊(WBU)
Web模塊要求能夠同時顯示標繪數據、公有船舶數據和用戶船舶數據,對于Web應用來說,數據量大,是一個考驗。JavaScript實現方式會引起性能問題,若采用已有的Flash腳本,不能夠支持多線程模式,故無法有效利用客戶端的處理能力,對內存的消耗較高。因此,本系統經過大量測試后采用Java Applet的方式實現。
2.3.1 海底管線預警服務
海底管線為不可見設施,應在海面一定區域禁止拋錨及拖錨行為。系統設定該區域為拋錨報警區域,當有船舶在這一區域有拋錨趨勢時(根據實際情況自由設置距離管線多少米、航速低于多少節視為有拋錨趨勢),系統自動發出聲光報警,提醒工作人員注意,同時自動記錄該船舶的相關信息,如船名、船位等[3]。
2.3.2 特殊區域、平臺報警服務
對用戶輸入的指定區域進行船舶監控和預警,分為船舶駛入報警和船舶駛出報警。
對于禁止船舶進入的區域(比如一些危險區域),可以設定為船舶駛入報警;船舶可以分為本系統船舶或全部船舶。
2.3.3 船舶現場數據服務
提供船舶實時數據服務,主要包含附近相關船舶的動態和靜態信息:動態信息包含船舶的位置信息、航行速度、航行狀態等數據;靜態信息包含船舶名稱、MMSI、呼號、船長、船寬、船上人員等數據。
2.3.4 船舶實時監控
對各作業船舶及一定范圍內的周邊船舶進行實時監控,隨時掌握在港、航行中的船舶狀態及周圍情況。該系統具有錄入、接收、顯示、查詢船舶或平臺詳細參數及船舶動態信息,以及航跡回放、船位查詢、統計報告等功能,能夠實現對海上平臺及船舶信息、作業的實時監控管理。系統能夠根據船舶所屬公司及屬性對船舶進行分組,從而形成船隊管理模式,也可根據需要在電子海圖上標繪出報警區域,設定船舶的入區報警或出區報警,從而有效實現對平臺及管線的報警保護和對船舶的監控。
2.3.5 氣象姿態監控
氣象姿態監控功能分為實時氣象信息傳輸和氣象預報疊加。實時氣象信息傳輸是指利用海上端點安裝的氣象儀和搖擺儀等數據采集設備,將海上作業點、監控點的即時氣象數據和船舶搖擺度數據傳回陸地監控接收端,以此達到實時準確掌握海上氣象情況和對海上生產作業狀況透明管理的目的。氣象預報是指利用官方氣象預報信息數據和現有衛星通信鏈路對氣象/臺風預報信息在系統中進行疊加。氣象預報信息將作為公共信息在所有監控客戶端上顯示,以此實現提示和預警作用。氣象姿態監控如圖7所示。

圖7 氣象姿態監控Fig.7 Weather/swing monitoring
2.3.6 標繪查詢服務
客戶端提交標繪查詢服務,可與本地保存的標繪更新時間進行匹配,以確定本地保存的標繪是否為最新版本。
2.3.7 海圖上傳服務
當監控端判斷本地海圖文件更新于服務器端海圖文件時,可予以上傳。上傳時,應對每個單獨的海圖文件調用一次該服務,每次調用都應傳送海圖的圖號、制作日期和海圖內容。
本服務將記錄海圖圖號、日期,并根據圖號保存文件至HTTP服務器。該文件可以用HTTP服務器直接訪問。
2.3.8 海圖列表服務
本服務為無參數服務,用戶可直接調用,服務將返回所有圖幅的海圖號、制作日期。客戶端可確定是否需要更新。
2.3.9 海圖下載服務
當客戶端需要更新海圖時,可調用本服務,每一幅需要更新的海圖都需要單獨調用一次本服務。本服務通過2個標準的HTTP服務提供:HTTP HEAD——獲取海圖文件尺寸;HTTP GET——獲取海圖文件。
系統性能是設計考慮的重點。采用內存數據庫與Oracle數據庫并行的運作方式可以有效提高預警系統性能。
本系統較多的維護費用來源于維護人工費,而不是對系統軟硬件的更換費。采用Windows系統,能夠提高可維護性,從而降低維護人員所需的實際維護時間。但是隨著系統規模的擴大,維護人工費將逐步縮小,軟硬件更換的費用逐步增大。在這種情況下,采用Linux等免費操作系統,首先可以降低系統的軟硬件費用,在硬件水平相當的情況下能夠提供更好的性能支持;其次可以降低系統被攻擊的可能性,提高系統的安全性,并降低系統出現故障的機率。
因此,在系統設計時,必須考慮未來平臺移植的通用性。采用Web Service作為數據發布服務和更新服務的主要技術手段就是為了在進行平臺移植時對船載端、監控端不產生影響,從而保證服務器端的遷移不影響客戶端的正常工作,以保障系統的通用性。
在本系統安全設計中,首先考慮的就是用戶權限檢測。因此,系統設計本身充分體現了對安全性的保障。采用安全性級別較高的Oracle數據庫提高了環境安全系數,而由于采用了Web Service技術,在必要情況下,可以使用HTTPS加密鏈路提供額外的安全支持,從而保證較高的安全性。
目前數據服務器為內部網絡,部署內容如下。
①系統需要部署.Net framework框架,用于創建基于Windows系統的應用程序環境。
②部署Internet Information Services服務,檢查方式為,打開管理工具中的Internet信息服務,點擊默認網站,確認網站運行狀態正常。
③部署TimesTen,其后臺有一個TimesTen Daemon進程,這個進程是個多線程進程,在服務器啟動后自動運行。每個應用程序連接到Timesten改進程后都會創建一個線程與應用程序進行通信,并進行失敗檢測。
④部署數據解析模塊,服務器端部署數據解析,檢查Connect按鈕為禁止狀態,有數據時為進入狀態,并實現正常解析。
⑤部署數據轉發程序(MessageRelayServer,TCP/TCP通信方式),數據轉發程序將實現與異地服務實時共享AIS數據和北斗數據,以秒為單位進行存儲轉發。
⑥部署看門狗程序,保證數據解析模塊可以連續工作,在出現異常情況時解析模塊自動恢復。
海上油田群海底管線自動預警系統的建設體現了中海油船舶作業特殊性,結合AIS及北斗數據進行綜合應用和開發,有效實現了對海底管線自動預警防護和船舶的預警監控,為中海油海上平臺群生產作業及施工工作提供了可靠的信息化技術手段和管理工具。截至目前,系統經過軟件迭代更新,實現了在系統內的分布式部署,對渤海灣海域及北部灣海域、黃海部分海上作業海域及港口、南海外海部分海上作業海域及港口區域實時動態的監控及預警。系統實現了應用創新,經過多次實踐檢驗,避免了因船舶拋錨、惡劣天氣造成走錨、未知船舶意外闖入靠泊對管線造成的損害。在應急指揮方面,用于人員落水搜救、開采油井原油泄漏應急指揮等場合,有效發揮了預警救援作用。