王慕楠
(中國石油大慶油田鉆探工程公司地質(zhì)錄井一公司,黑龍江大慶 163000)
國際石油勘驗領(lǐng)域由于受行業(yè)劃分的緣故,各系統(tǒng)之間難以兼容,使井場內(nèi)部形成了一個個的信息孤島。為了實現(xiàn)不同施工主體之間數(shù)據(jù)信息的兼容共享與遠程控制,甲方在招投標合同及其澄清中明確地規(guī)定了乙方必須能夠提供WITSML(Well Site Information Transfer Standard Markup Language,井場信息傳輸標準標記語言)數(shù)據(jù)流。WITSML基于XML文件格式,一個數(shù)據(jù)對象定義了一組數(shù)據(jù),可以用一個單一的XML 文檔傳輸,代表了一個領(lǐng)域邏輯模型內(nèi)的一組緊密相關(guān)的數(shù)據(jù)集,其標準包括2個可獨立版本化的組成部分:數(shù)據(jù)模型和應(yīng)用程序接口(API)。根據(jù)資料采集模式與上傳數(shù)據(jù)庫的方式差異,現(xiàn)場資料基本上可以劃分為綜合錄井儀實時采集數(shù)據(jù)(如鉆時、扭矩、立壓、懸重等參數(shù))和人工錄入數(shù)據(jù)(巖屑百分含量、巖性、碳酸鹽巖分析數(shù)據(jù)等)兩大部分。實時傳輸由截取軟件自動實時截取入庫并同時上傳至遠程服務(wù)器數(shù)據(jù)庫;人工錄入則需要錄井工程師采用對應(yīng)的資料錄入與上傳軟件,由人工提交數(shù)據(jù)上傳至遠程服務(wù)器數(shù)據(jù)庫,兩者在服務(wù)器中均被轉(zhuǎn)換為WITSML 格式實現(xiàn)數(shù)據(jù)發(fā)布與可視化。
大慶錄井2020 年中標伊拉克祖拜爾項目以來,甲方KEBL(科威特聯(lián)合能源)油藏部對錄井數(shù)據(jù)傳輸及可視化提出了更加嚴格的要求:按照甲方軟件的格式增加百余項巖性數(shù)據(jù)的上傳工作。不同的甲方因其人工錄入數(shù)據(jù)要求的不同則需要開發(fā)對應(yīng)的數(shù)據(jù)錄入和上傳軟件,這就意味如果尋求第三方進行軟件開發(fā),不僅成本高而且效率低;每次尋求第三方得到的都是已開發(fā)軟件,沒有軟件開發(fā)的源代碼,應(yīng)對甲方反復的變化與要求則無從下手,無法進行軟件上的再次升級。為此根據(jù)現(xiàn)場實際情況開發(fā)了基于WITSML 格式的大慶錄井巖性數(shù)據(jù)錄入與傳輸軟件,實現(xiàn)了根據(jù)甲方的格式要求自定義快速上傳巖性數(shù)據(jù)至遠程數(shù)據(jù)庫,并與實時數(shù)據(jù)相結(jié)合兼容可視化應(yīng)用。
為了保證遠程數(shù)據(jù)庫的安全性,傳輸軟件需要設(shè)置賬號、密碼登錄驗證,并要求有密碼賬號的登錄狀態(tài)記住功能。主界面上頂部通過Tool Strip Menu Item 控件設(shè)置傳輸配置、創(chuàng)建新井、數(shù)據(jù)上傳、退出程序等項;通過Progress Bar 實現(xiàn)數(shù)據(jù)上傳進度條展示;左側(cè)利用Tree View控件顯示井的信息及實現(xiàn)井的信息及其對應(yīng)的數(shù)據(jù)的刪除等各項功能;右側(cè)利用Data Grig View 和Tab Page 控件實現(xiàn)數(shù)據(jù)錄入、加載等功能。采用NET程序中可以通過ODP 調(diào)用特性,對Oracle 數(shù)據(jù)庫進行操作;ODP.NET 里支持在一次調(diào)用里做批量insert 或update功能;利用Array Binding把需要多次調(diào)用的一個Oracle Command 的一批不同參數(shù)放到多個數(shù)組里,一起傳給oracle;oracle 根據(jù)定義的Array Bind Count 做一個循環(huán)來執(zhí)行SQL命令(圖1)。
圖1 軟件總體設(shè)計圖
美國微軟公司開發(fā)的一款基于.NET 框架的IDE(集成開發(fā)環(huán)境)包含項目開發(fā)所需的所有功能,提供了完整的堆棧開發(fā)工具集,支持C#、C++、Python、Visual Basic、Node.js、HTML、JavaScript 等多種主流編程語言,具有編程機制靈活、訪問數(shù)據(jù)庫相當迅速等特點。
是一種現(xiàn)代的面向?qū)ο笳Z言,可使程序員快速便捷地創(chuàng)建基于Microsoft.NET 平臺的解決方案。這種框架使C#組件可以方便地轉(zhuǎn)化為XML網(wǎng)絡(luò)服務(wù),從而使任何平臺的應(yīng)用程序都可以通過Internet 調(diào)用它。C#增強了開發(fā)者的效率,同時也致力于消除編程中可能導致嚴重結(jié)果的錯誤。C#使C/C++程序員可以快速進行網(wǎng)絡(luò)開發(fā),同時也保持了開發(fā)者所需要的強大性和靈活性。
是由微軟發(fā)布的關(guān)系數(shù)據(jù)庫管理系統(tǒng),可以把數(shù)據(jù)庫引擎的圖形用戶界面和軟件開發(fā)工具完美的結(jié)合在一起。
是美國ORACLE公司(甲骨文)提供的以分布式數(shù)據(jù)庫為核心的一組軟件產(chǎn)品,是目前使用最為廣泛的數(shù)據(jù)庫管理系統(tǒng)。作為一個通用的數(shù)據(jù)庫系統(tǒng),它具有完整的數(shù)據(jù)管理功能;作為一個關(guān)系數(shù)據(jù)庫,它是一個完備關(guān)系的產(chǎn)品;作為分布式數(shù)據(jù)庫它實現(xiàn)了分布式處理功能。
啟動VS2017,創(chuàng)建新項目,選擇Windows窗體應(yīng)用(.NET Framework),命名為Mud logging,選擇保存路徑點擊確定;將新建的Form命名為FrmLogin,設(shè)置為登錄界面。
將IrisSkin4.dll 動態(tài)文件導入當前項目引用中(建議把IrisSkin4.dll 文件放在當前項目inDebug 文件中),然后把IrisSkin4.dll文件添加到VS2017的工具箱,最后把工具箱中新添加的SkinEngine 控件拖到當前項目中。
把皮膚目錄中的.ssk文件復制到當前項目inDebug文件中,本次軟件設(shè)計與開發(fā)選用DiamondBlue.ssk(圖2)。
圖2 軟件登錄界面展示
將新建的Form 命名為FrmMain,設(shè)置為主界面。其整體布局、主要控件:MenuStrip、ProgressBar、TabControl、DataGridView、TreeView。
創(chuàng)建傳輸配置界面Frm Ser,構(gòu)建4種方法,分別是對該界面錄入的密碼進行Base64加密、Base64解密、保存至XML 文件、加載至界面顯示;在主界面通過點擊ToolStripMenuItem 控件,彈出傳輸配置界面;創(chuàng)建新井錄入界面Frm Well Infor,通過構(gòu)造函數(shù)與委托方式實現(xiàn)不同界面之間的傳值。
添加Tree View控件,將其命名為:tvwWell,實現(xiàn)由新井錄入界面向其傳值,并以父子節(jié)點的形式實現(xiàn)井及其錄入項目名稱的添加、展布、刪除、加載、勾選及雙擊后自動跳轉(zhuǎn)到Tab Page控件上對應(yīng)的項目。
利用其After Check屬性,構(gòu)造方法實現(xiàn)父、子節(jié)點只能勾選一個。通過Tool Strip Menu Item控件,為鼠標右鍵捆綁刪除井功能,實現(xiàn)在Tree View 中對井號及其在本地Access數(shù)據(jù)庫中的全部數(shù)據(jù)的刪除。勾選和雙擊Tree View 中的子節(jié)點,選擇對應(yīng)的Tab Page 并加載對應(yīng)的數(shù)據(jù)。
向Data Drid View 控件中錄入數(shù)據(jù),實現(xiàn)表格的復制、粘貼、刪除、數(shù)據(jù)清除等一列功能。巖性百分含量、解釋巖性、碳酸鹽巖數(shù)據(jù)對應(yīng)的三個Data Drid View 控件分別命名為dgvCutdgvInterdgvCal;實現(xiàn)Cutting Percentage/Interpreted Lithology/Calcimetry Data 三個表格從鍵盤錄入功能;通過Cell Mouse Down 屬性和捆綁Tool Strip Menu Item 控件實現(xiàn)鼠標右鍵對Cutting Percentage/Interpreted Lithology/Calcimetry Data三個表格復制、粘貼、剪切、清除、刪除行等一系列操作功能(圖3)。
圖3 數(shù)據(jù)錄入界面展示
通過Tool Strip Menu Item和多線程Thread類(防止耗時界面假死)把每次新增和修改的數(shù)據(jù)上傳基地Oracle數(shù)據(jù)庫。
本巖性錄入與傳輸軟件是針對大慶鉆探工程公司祖拜爾項目在伊拉克Block9油田的甲方要求所開發(fā)的全新的數(shù)據(jù)上傳程序,已成功運用于伊拉克Block9 油田5支錄井隊伍。軟件已使用1年多,利用該軟件已在Block9 油田建立起了實時數(shù)據(jù)與巖性數(shù)據(jù)可視化平臺,各方用戶可進行實時工程數(shù)據(jù)、巖性數(shù)據(jù)的顯示、查詢和分析。該軟件直接產(chǎn)生的傳輸服務(wù)費用為單井大包服務(wù)價格的X%,在祖拜爾項目中年創(chuàng)效XXX萬元。
FH-XX 井是Block9 油田的一口大位移評價井,設(shè)計目的層位Mishrif 組,目的層井斜65°,位移1192.3m,可參考臨井較少。該井在12.25″井眼完鉆后,井底層位:Mishrif 組,巖性:灰?guī)r,井底井斜:65°,井底位移:491.6m。
在起鉆自2992~2842m 時,遇阻10t,開泵倒劃眼自2840~2779m時,頂驅(qū)憋停,泵壓突然升高至4291psi,在25~140t活動鉆具并施加25~33kN·m扭矩,震擊器下?lián)?次,鉆具未活動,發(fā)生卡鉆事故(圖4)?,F(xiàn)場工程師立即向項目部匯報,項目部決定與國內(nèi)專家立即進行視頻會議討論解卡方案。
圖4 FH-XX井卡鉆事故錄井實時數(shù)據(jù)可視化界面
在視頻會議上,國內(nèi)專家通過錄井實時可視化曲線以及巖性數(shù)據(jù)可視化界面進行分析判斷,卡鉆位置層位:Sadi 組,巖性:泥巖與頁巖、灰?guī)r互層,井斜:55°,是由于Sadi組頂部的頁巖剝落導致井下發(fā)生卡鉆事故(圖5)。遂展開決策指揮:繼續(xù)向下活動鉆具并緩慢開泵憋壓,經(jīng)過1h的反復活動,最終鉆具解卡。
圖5 FH-XX井卡鉆事故錄井巖性數(shù)據(jù)可視化界面
隨著網(wǎng)絡(luò)技術(shù)與井場信息采集傳輸技術(shù)的日趨發(fā)展,井場信息傳輸綜合系統(tǒng)平臺的建立已經(jīng)成為必然要求,它涵蓋了鉆井、錄井、測井等多專業(yè)信息,集成了井筒與地面信息,在勘探現(xiàn)場與后方基地之間搭建起溝通與決策的橋梁,尤其是在海上以及環(huán)境惡劣的施工區(qū),傳輸技術(shù)更起著舉足輕重、不可替代的作用與優(yōu)勢,因此錄井傳輸技術(shù)的應(yīng)用前景一片光明。本軟件作為錄井信息傳輸支持的重要組成部分,同時也發(fā)揮著極其關(guān)鍵的作用,充分地保障了巖性、碳酸鹽巖、含有物等各種數(shù)據(jù)的快速上傳。另外,它是基于Microsoft Visual Studio 平臺與C#Winform 開發(fā)出了全新的現(xiàn)場數(shù)據(jù)錄入與傳輸軟件,從根本上解決了快速、安全的錄入數(shù)據(jù)至遠程數(shù)據(jù)庫這一核心的問題,而且為今后面對各種傳輸要求時,軟件的升級與開發(fā)保存了源代碼。由于野外施工普遍網(wǎng)絡(luò)條件較差,不利的客觀條件給數(shù)據(jù)傳輸帶來了一定的困難與挑戰(zhàn)。因此如何在網(wǎng)絡(luò)信號較差的前提下解決批量數(shù)據(jù)上傳基地服務(wù)器就成為本次攻關(guān)的主要問題。通過采用NET程序中可以通過ODP 調(diào)用特性,對Oracle 數(shù)據(jù)庫進行操作。ODP.NET 里支持在一次調(diào)用里做批量insert 或update功能。利用Array binding 把需要多次調(diào)用的一個OralcleCommand 的一批不同參數(shù)放到多個數(shù)組里,一起傳給oracle,oracle會根據(jù)定義的ArrayBindCount做一個循環(huán)來執(zhí)行SQL命令,從根本上解決了快速、安全的錄入數(shù)據(jù)至遠程數(shù)據(jù)庫這一核心的問題。在實際應(yīng)用中,與實時數(shù)據(jù)組成可視化系統(tǒng),實現(xiàn)井場、基地、國內(nèi)專家、甲方技術(shù)人員無縫對接,隨時發(fā)現(xiàn)異常、調(diào)整工程參數(shù),從而有效提高工作效率、減少鉆井風險、縮短鉆井周期、節(jié)約鉆井成本,為安全高效鉆井提供了重要技術(shù)支持。