王慕楠
(中國石油大慶油田鉆探工程公司地質錄井一公司,黑龍江大慶 163000)
國際石油勘驗領域由于受行業劃分的緣故,各系統之間難以兼容,使井場內部形成了一個個的信息孤島。為了實現不同施工主體之間數據信息的兼容共享與遠程控制,甲方在招投標合同及其澄清中明確地規定了乙方必須能夠提供WITSML(Well Site Information Transfer Standard Markup Language,井場信息傳輸標準標記語言)數據流。WITSML基于XML文件格式,一個數據對象定義了一組數據,可以用一個單一的XML 文檔傳輸,代表了一個領域邏輯模型內的一組緊密相關的數據集,其標準包括2個可獨立版本化的組成部分:數據模型和應用程序接口(API)。根據資料采集模式與上傳數據庫的方式差異,現場資料基本上可以劃分為綜合錄井儀實時采集數據(如鉆時、扭矩、立壓、懸重等參數)和人工錄入數據(巖屑百分含量、巖性、碳酸鹽巖分析數據等)兩大部分。實時傳輸由截取軟件自動實時截取入庫并同時上傳至遠程服務器數據庫;人工錄入則需要錄井工程師采用對應的資料錄入與上傳軟件,由人工提交數據上傳至遠程服務器數據庫,兩者在服務器中均被轉換為WITSML 格式實現數據發布與可視化。
大慶錄井2020 年中標伊拉克祖拜爾項目以來,甲方KEBL(科威特聯合能源)油藏部對錄井數據傳輸及可視化提出了更加嚴格的要求:按照甲方軟件的格式增加百余項巖性數據的上傳工作。不同的甲方因其人工錄入數據要求的不同則需要開發對應的數據錄入和上傳軟件,這就意味如果尋求第三方進行軟件開發,不僅成本高而且效率低;每次尋求第三方得到的都是已開發軟件,沒有軟件開發的源代碼,應對甲方反復的變化與要求則無從下手,無法進行軟件上的再次升級。為此根據現場實際情況開發了基于WITSML 格式的大慶錄井巖性數據錄入與傳輸軟件,實現了根據甲方的格式要求自定義快速上傳巖性數據至遠程數據庫,并與實時數據相結合兼容可視化應用。
為了保證遠程數據庫的安全性,傳輸軟件需要設置賬號、密碼登錄驗證,并要求有密碼賬號的登錄狀態記住功能。主界面上頂部通過Tool Strip Menu Item 控件設置傳輸配置、創建新井、數據上傳、退出程序等項;通過Progress Bar 實現數據上傳進度條展示;左側利用Tree View控件顯示井的信息及實現井的信息及其對應的數據的刪除等各項功能;右側利用Data Grig View 和Tab Page 控件實現數據錄入、加載等功能。采用NET程序中可以通過ODP 調用特性,對Oracle 數據庫進行操作;ODP.NET 里支持在一次調用里做批量insert 或update功能;利用Array Binding把需要多次調用的一個Oracle Command 的一批不同參數放到多個數組里,一起傳給oracle;oracle 根據定義的Array Bind Count 做一個循環來執行SQL命令(圖1)。

圖1 軟件總體設計圖
美國微軟公司開發的一款基于.NET 框架的IDE(集成開發環境)包含項目開發所需的所有功能,提供了完整的堆棧開發工具集,支持C#、C++、Python、Visual Basic、Node.js、HTML、JavaScript 等多種主流編程語言,具有編程機制靈活、訪問數據庫相當迅速等特點。
是一種現代的面向對象語言,可使程序員快速便捷地創建基于Microsoft.NET 平臺的解決方案。這種框架使C#組件可以方便地轉化為XML網絡服務,從而使任何平臺的應用程序都可以通過Internet 調用它。C#增強了開發者的效率,同時也致力于消除編程中可能導致嚴重結果的錯誤。C#使C/C++程序員可以快速進行網絡開發,同時也保持了開發者所需要的強大性和靈活性。
是由微軟發布的關系數據庫管理系統,可以把數據庫引擎的圖形用戶界面和軟件開發工具完美的結合在一起。
是美國ORACLE公司(甲骨文)提供的以分布式數據庫為核心的一組軟件產品,是目前使用最為廣泛的數據庫管理系統。作為一個通用的數據庫系統,它具有完整的數據管理功能;作為一個關系數據庫,它是一個完備關系的產品;作為分布式數據庫它實現了分布式處理功能。
啟動VS2017,創建新項目,選擇Windows窗體應用(.NET Framework),命名為Mud logging,選擇保存路徑點擊確定;將新建的Form命名為FrmLogin,設置為登錄界面。
將IrisSkin4.dll 動態文件導入當前項目引用中(建議把IrisSkin4.dll 文件放在當前項目inDebug 文件中),然后把IrisSkin4.dll文件添加到VS2017的工具箱,最后把工具箱中新添加的SkinEngine 控件拖到當前項目中。
把皮膚目錄中的.ssk文件復制到當前項目inDebug文件中,本次軟件設計與開發選用DiamondBlue.ssk(圖2)。

圖2 軟件登錄界面展示
將新建的Form 命名為FrmMain,設置為主界面。其整體布局、主要控件:MenuStrip、ProgressBar、TabControl、DataGridView、TreeView。
創建傳輸配置界面Frm Ser,構建4種方法,分別是對該界面錄入的密碼進行Base64加密、Base64解密、保存至XML 文件、加載至界面顯示;在主界面通過點擊ToolStripMenuItem 控件,彈出傳輸配置界面;創建新井錄入界面Frm Well Infor,通過構造函數與委托方式實現不同界面之間的傳值。
添加Tree View控件,將其命名為:tvwWell,實現由新井錄入界面向其傳值,并以父子節點的形式實現井及其錄入項目名稱的添加、展布、刪除、加載、勾選及雙擊后自動跳轉到Tab Page控件上對應的項目。
利用其After Check屬性,構造方法實現父、子節點只能勾選一個。通過Tool Strip Menu Item控件,為鼠標右鍵捆綁刪除井功能,實現在Tree View 中對井號及其在本地Access數據庫中的全部數據的刪除。勾選和雙擊Tree View 中的子節點,選擇對應的Tab Page 并加載對應的數據。
向Data Drid View 控件中錄入數據,實現表格的復制、粘貼、刪除、數據清除等一列功能。巖性百分含量、解釋巖性、碳酸鹽巖數據對應的三個Data Drid View 控件分別命名為dgvCutdgvInterdgvCal;實現Cutting Percentage/Interpreted Lithology/Calcimetry Data 三個表格從鍵盤錄入功能;通過Cell Mouse Down 屬性和捆綁Tool Strip Menu Item 控件實現鼠標右鍵對Cutting Percentage/Interpreted Lithology/Calcimetry Data三個表格復制、粘貼、剪切、清除、刪除行等一系列操作功能(圖3)。

圖3 數據錄入界面展示
通過Tool Strip Menu Item和多線程Thread類(防止耗時界面假死)把每次新增和修改的數據上傳基地Oracle數據庫。
本巖性錄入與傳輸軟件是針對大慶鉆探工程公司祖拜爾項目在伊拉克Block9油田的甲方要求所開發的全新的數據上傳程序,已成功運用于伊拉克Block9 油田5支錄井隊伍。軟件已使用1年多,利用該軟件已在Block9 油田建立起了實時數據與巖性數據可視化平臺,各方用戶可進行實時工程數據、巖性數據的顯示、查詢和分析。該軟件直接產生的傳輸服務費用為單井大包服務價格的X%,在祖拜爾項目中年創效XXX萬元。
FH-XX 井是Block9 油田的一口大位移評價井,設計目的層位Mishrif 組,目的層井斜65°,位移1192.3m,可參考臨井較少。該井在12.25″井眼完鉆后,井底層位:Mishrif 組,巖性:灰巖,井底井斜:65°,井底位移:491.6m。
在起鉆自2992~2842m 時,遇阻10t,開泵倒劃眼自2840~2779m時,頂驅憋停,泵壓突然升高至4291psi,在25~140t活動鉆具并施加25~33kN·m扭矩,震擊器下擊3次,鉆具未活動,發生卡鉆事故(圖4)?,F場工程師立即向項目部匯報,項目部決定與國內專家立即進行視頻會議討論解卡方案。

圖4 FH-XX井卡鉆事故錄井實時數據可視化界面
在視頻會議上,國內專家通過錄井實時可視化曲線以及巖性數據可視化界面進行分析判斷,卡鉆位置層位:Sadi 組,巖性:泥巖與頁巖、灰巖互層,井斜:55°,是由于Sadi組頂部的頁巖剝落導致井下發生卡鉆事故(圖5)。遂展開決策指揮:繼續向下活動鉆具并緩慢開泵憋壓,經過1h的反復活動,最終鉆具解卡。

圖5 FH-XX井卡鉆事故錄井巖性數據可視化界面
隨著網絡技術與井場信息采集傳輸技術的日趨發展,井場信息傳輸綜合系統平臺的建立已經成為必然要求,它涵蓋了鉆井、錄井、測井等多專業信息,集成了井筒與地面信息,在勘探現場與后方基地之間搭建起溝通與決策的橋梁,尤其是在海上以及環境惡劣的施工區,傳輸技術更起著舉足輕重、不可替代的作用與優勢,因此錄井傳輸技術的應用前景一片光明。本軟件作為錄井信息傳輸支持的重要組成部分,同時也發揮著極其關鍵的作用,充分地保障了巖性、碳酸鹽巖、含有物等各種數據的快速上傳。另外,它是基于Microsoft Visual Studio 平臺與C#Winform 開發出了全新的現場數據錄入與傳輸軟件,從根本上解決了快速、安全的錄入數據至遠程數據庫這一核心的問題,而且為今后面對各種傳輸要求時,軟件的升級與開發保存了源代碼。由于野外施工普遍網絡條件較差,不利的客觀條件給數據傳輸帶來了一定的困難與挑戰。因此如何在網絡信號較差的前提下解決批量數據上傳基地服務器就成為本次攻關的主要問題。通過采用NET程序中可以通過ODP 調用特性,對Oracle 數據庫進行操作。ODP.NET 里支持在一次調用里做批量insert 或update功能。利用Array binding 把需要多次調用的一個OralcleCommand 的一批不同參數放到多個數組里,一起傳給oracle,oracle會根據定義的ArrayBindCount做一個循環來執行SQL命令,從根本上解決了快速、安全的錄入數據至遠程數據庫這一核心的問題。在實際應用中,與實時數據組成可視化系統,實現井場、基地、國內專家、甲方技術人員無縫對接,隨時發現異常、調整工程參數,從而有效提高工作效率、減少鉆井風險、縮短鉆井周期、節約鉆井成本,為安全高效鉆井提供了重要技術支持。