李傳偉 祝環(huán)芬 楊 亮 陳國(guó)興 孫博文 符 濤
(中國(guó)石油集團(tuán)測(cè)井有限公司隨鉆測(cè)井中心 陜西 西安 710054)
近年來,水平井技術(shù)是石油公司實(shí)現(xiàn)“少井高產(chǎn)”目標(biāo)的主要技術(shù)手段,能夠提高采收率、減少生產(chǎn)占地及降低環(huán)境污染。面對(duì)水平井勘探開發(fā)所面臨的技術(shù)挑戰(zhàn),在工程方面需要解決水平井施工,確保鉆進(jìn)軌跡和儲(chǔ)層鉆遇率;在儲(chǔ)層開發(fā)中需要對(duì)復(fù)雜和困難井段獲取測(cè)井資料,實(shí)現(xiàn)地層評(píng)價(jià)應(yīng)用。隨鉆測(cè)井技術(shù)針對(duì)施工和評(píng)價(jià)難題,通過與鉆具組合的測(cè)井儀器實(shí)時(shí)測(cè)量地層參數(shù)和工程參數(shù),為鉆井施工實(shí)時(shí)提供決策信息。隨著方法和儀器的深入研究,國(guó)外公司已經(jīng)實(shí)現(xiàn)了各種電纜測(cè)井儀器隨鉆化,國(guó)內(nèi)近幾年也逐步形成隨鉆測(cè)井系列。中國(guó)石油集團(tuán)測(cè)井有限公司在國(guó)家“十三五”油氣重大專項(xiàng)的支持下,已經(jīng)研究形成了隨鉆常規(guī)和隨鉆成像兩個(gè)測(cè)井系列,基本實(shí)現(xiàn)現(xiàn)場(chǎng)應(yīng)用[1]。面對(duì)越來越多的隨鉆測(cè)井儀器投入應(yīng)用,急需完善儀器的室內(nèi)測(cè)試方法、規(guī)范儀器的通信接口和協(xié)議。本文結(jié)合儀器研制調(diào)試和現(xiàn)場(chǎng)應(yīng)用的實(shí)際,開發(fā)了一套儀器測(cè)試軟件,在規(guī)范儀器通信協(xié)議基礎(chǔ)上,實(shí)現(xiàn)各種儀器在室內(nèi)調(diào)試、刻度標(biāo)定、現(xiàn)場(chǎng)作業(yè)配置和測(cè)井?dāng)?shù)據(jù)讀取等功能。
1.1 系統(tǒng)架構(gòu)與數(shù)據(jù)流系統(tǒng)架構(gòu)按照頂層設(shè)計(jì)、業(yè)務(wù)主導(dǎo)的原則,堅(jiān)持松耦合、高內(nèi)聚對(duì)各功能模塊分層劃分,形成現(xiàn)場(chǎng)數(shù)據(jù)采集系統(tǒng)和儀器測(cè)試系統(tǒng)[2]?,F(xiàn)場(chǎng)數(shù)據(jù)采集系統(tǒng)GLAS完成現(xiàn)場(chǎng)泥漿波數(shù)據(jù)的采集、分析與數(shù)據(jù)解碼,根據(jù)解碼得到的測(cè)量數(shù)據(jù)和刻度報(bào)告中的刻度系數(shù)計(jì)算出測(cè)井結(jié)果;在完成實(shí)時(shí)數(shù)據(jù)庫存儲(chǔ)的同時(shí)實(shí)時(shí)顯示數(shù)值和曲線,并通過互聯(lián)網(wǎng)方式將數(shù)據(jù)推送到遠(yuǎn)程解釋評(píng)價(jià)數(shù)據(jù)庫,使用解釋導(dǎo)向軟件實(shí)現(xiàn)地層分析或指導(dǎo)實(shí)時(shí)鉆井。儀器測(cè)試系統(tǒng)LwdTest實(shí)現(xiàn)在儀器研發(fā)制造和維修過程中的測(cè)試,通過刻度標(biāo)定將刻度數(shù)據(jù)存入測(cè)試數(shù)據(jù)庫,為測(cè)井過程提供刻度系數(shù),用于實(shí)現(xiàn)測(cè)量值與工程值間的轉(zhuǎn)換;利用通信端口實(shí)現(xiàn)對(duì)儀器的內(nèi)存管理和數(shù)據(jù)讀寫,并將數(shù)據(jù)實(shí)時(shí)繪制成曲線和打印輸出;通過儀器測(cè)試形成的測(cè)試數(shù)據(jù)反映出儀器的工作狀態(tài),為后期儀器的維護(hù)、使用跟蹤提供數(shù)據(jù)支撐。數(shù)據(jù)流分為測(cè)井?dāng)?shù)據(jù)和儀器數(shù)據(jù)。測(cè)井?dāng)?shù)據(jù)是現(xiàn)場(chǎng)數(shù)據(jù)采集系統(tǒng)獲得的隨鉆測(cè)井儀器測(cè)量數(shù)據(jù),都實(shí)時(shí)存入測(cè)井?dāng)?shù)據(jù)庫中,包括兩種參數(shù):一是反映地層巖性、孔隙度和飽和度的地質(zhì)參數(shù);二是反映井況的井斜、方位和工具面等工程參數(shù)。儀器數(shù)據(jù)是儀器測(cè)試軟件對(duì)儀器進(jìn)行測(cè)試和刻度過程中形成的參數(shù),存入測(cè)試數(shù)據(jù)庫中,包括反映儀器工作狀態(tài)的測(cè)試參數(shù)和反映測(cè)量特性與地層響應(yīng)關(guān)系的刻度系數(shù)。兩種數(shù)據(jù)庫通過標(biāo)準(zhǔn)接口實(shí)現(xiàn)數(shù)據(jù)互訪。系統(tǒng)架構(gòu)和數(shù)據(jù)流如圖1所示。
圖1 系統(tǒng)架構(gòu)與數(shù)據(jù)流
圖2 系統(tǒng)功能模塊劃分
1.2 功能模塊設(shè)計(jì)測(cè)試軟件需要實(shí)現(xiàn)對(duì)儀器參數(shù)管理、刻度與標(biāo)定、測(cè)試、調(diào)試、測(cè)井施工配置等功能,同時(shí)能夠跟蹤記錄各功能操作并形成日志,能夠簡(jiǎn)潔、直觀地顯示測(cè)試結(jié)果。(1) 參數(shù)管理模塊 參數(shù)包括儀器自身參數(shù)(刻度系數(shù)、數(shù)據(jù)處理校正系數(shù))、測(cè)試配置參數(shù)(時(shí)鐘信息、測(cè)試延遲與間隔),以及儀器使用信息(井名、井深、作業(yè)時(shí)間)。該模塊實(shí)現(xiàn)上述參數(shù)的設(shè)置與查詢、發(fā)送給應(yīng)用模塊,參數(shù)的輸入(手動(dòng)或者文件導(dǎo)入)與輸出。(2) 刻度標(biāo)定模塊 作為儀器刻度過程控制、刻度算法載入、刻度系數(shù)計(jì)算、刻度系數(shù)下發(fā)至儀器主控模塊。按照儀器分為伽馬刻度、電阻率刻度、中子孔隙度刻度、密度刻度、井徑刻度、伽馬成像刻度、密度成像刻度等子模塊,將各種儀器在刻度過程中采集的數(shù)據(jù)按時(shí)間方式繪制成曲線圖,同時(shí)將刻度結(jié)果按照測(cè)井作業(yè)標(biāo)準(zhǔn)格式中的刻度報(bào)告提供給操作員和作業(yè)小隊(duì)。(3) 功能測(cè)試模塊 用于測(cè)試儀器工作是否正常,測(cè)試數(shù)據(jù)是否準(zhǔn)確,包括對(duì)儀器進(jìn)行單板、集成測(cè)試,測(cè)試數(shù)據(jù)繪制成曲線圖并形成測(cè)試結(jié)果報(bào)告。測(cè)試報(bào)告根據(jù)不同儀器測(cè)量參數(shù)標(biāo)準(zhǔn)和誤差信息,給出測(cè)試結(jié)論,供用戶參考;測(cè)試曲線直觀反映出測(cè)試過程中儀器的測(cè)量參數(shù)變化。(4) 儀器測(cè)井模塊 用于對(duì)儀器測(cè)井作業(yè)參數(shù)設(shè)置,查詢和設(shè)置儀器工作模式,在測(cè)井模式下完成通信端口參數(shù)設(shè)置和存儲(chǔ)器管理。通信端口設(shè)置包括串口不同傳輸波特率設(shè)置與查詢,存儲(chǔ)器管理實(shí)現(xiàn)對(duì)存儲(chǔ)器中數(shù)據(jù)讀取與清空、存儲(chǔ)空間查詢。1.3 數(shù)據(jù)結(jié)構(gòu)定義為了實(shí)現(xiàn)隨鉆測(cè)井儀器的測(cè)試和數(shù)據(jù)通信[4],軟件定義了滿足數(shù)據(jù)傳輸?shù)慕Y(jié)構(gòu)體,包括發(fā)送結(jié)構(gòu)體、接收結(jié)構(gòu)體、標(biāo)識(shí)結(jié)構(gòu)體;定義了滿足數(shù)據(jù)通信的常量和變量,其中常量包括獨(dú)立視個(gè)數(shù)NUMVIEWS、通信設(shè)置數(shù)據(jù)位8、停止位1、奇校驗(yàn)位、5 ms定時(shí)器間隔;變量包括獨(dú)立視名稱數(shù)組、視指針、串口類變量、繪圖類變量。以發(fā)送結(jié)構(gòu)體為例介紹數(shù)據(jù)結(jié)構(gòu)定義。
根據(jù)隨鉆儀器測(cè)量參數(shù)的種類,按照儀器類別軟件設(shè)計(jì)了9種不同數(shù)據(jù)結(jié)構(gòu),滿足居中伽馬、伽馬成像、鉆井多參數(shù)、感應(yīng)電阻率、電磁波電阻率、側(cè)向電阻率、可控源中子、補(bǔ)償密度、密度成像等儀器測(cè)試、刻度、測(cè)井?dāng)?shù)據(jù)的存儲(chǔ)要求[5]。表1以伽馬成像為例介紹儀器參數(shù)結(jié)構(gòu)設(shè)計(jì)。
表1 伽馬成像儀器參數(shù)結(jié)構(gòu)
軟件實(shí)現(xiàn)首先是在系統(tǒng)結(jié)構(gòu)和模塊設(shè)計(jì)的基礎(chǔ)上,確定實(shí)現(xiàn)系統(tǒng)功能的流程,功能齊全、流程簡(jiǎn)單;其次是對(duì)各模塊進(jìn)行編程實(shí)現(xiàn),要求界面友好、操作方便。利用開發(fā)工具實(shí)現(xiàn)數(shù)據(jù)結(jié)構(gòu)的定義,根據(jù)系統(tǒng)結(jié)構(gòu)和功能模塊確定測(cè)試軟件流程圖(如圖3所示),流程圖中反映了4種模塊和3種功能的系統(tǒng)架構(gòu)[6]。本軟件主體框架采用傳統(tǒng)Windows應(yīng)用程序界面、Outlook風(fēng)格、可浮動(dòng)可嵌套可??康膭?dòng)靜結(jié)合方式設(shè)計(jì)主體框架和軟件界面。
圖3 軟件流程圖
圖4 多視窗與操作導(dǎo)航截圖
2.1 多視窗實(shí)現(xiàn)測(cè)試操作為了滿足軟件中多種儀器的測(cè)試功能,采用單文檔模式框架結(jié)構(gòu),結(jié)合多視窗設(shè)計(jì)實(shí)現(xiàn)測(cè)試時(shí)對(duì)不同儀器的獨(dú)立操作。在打開主視圖時(shí),可以通過旁邊導(dǎo)航窗口對(duì)各功能模塊的操作進(jìn)行導(dǎo)航[7],并快速切換到其他視窗。在多視窗實(shí)現(xiàn)中,左邊導(dǎo)航欄引導(dǎo)用戶操作,中間視窗進(jìn)行數(shù)據(jù)處理,右邊浮動(dòng)隱藏視窗作為處理輸出及參數(shù)管理。多視窗與操作導(dǎo)航截圖如圖4所示。 多視窗實(shí)現(xiàn)代碼:CView* pActiveView=GetActiveView(); m_ViewName.RemoveAll(); m_ViewName.Add(_T("……")); m_pViews[0]=(CView*) new CTestLogView; …… CRect rect(200, 50,800, 600); for (int nView=0; nView
圖5 浮動(dòng)視窗截圖
2.2 CFormView實(shí)現(xiàn)浮動(dòng)視窗實(shí)現(xiàn)各種儀器測(cè)試的對(duì)話框模板是以CFormView作為基類的派生類,從而繼承了基類的浮動(dòng)、停靠和嵌套功能和屬性。在浮動(dòng)視窗實(shí)現(xiàn)中,創(chuàng)建對(duì)話框模板生成CFormView類,創(chuàng)建CDockablePane的派生類CSolutionWnd,定義類的成員變量。浮動(dòng)視窗截圖如圖5所示。代碼實(shí)現(xiàn):{ … RECT rect; GetClientRect(&rect); m_pFormView->Create(NULL, NULL, WS_CHILD|WS_VISIBLE, rect, this, 123, NULL); …} ……{ … CRect rect; GetClientRect(rect); m_StaticHtmlView.Create(_T("這個(gè)停靠 浮動(dòng)窗口 "),WS_CHILD|WS_VISIBLE,rect,this,IDC_HTMLVIEW);…}2.3 曲線與列表實(shí)現(xiàn)結(jié)果輸出軟件運(yùn)行結(jié)果輸出是為操作人員提供結(jié)果的方式,為用戶提供多種形式的結(jié)果輸出是軟件實(shí)現(xiàn)的關(guān)鍵[8]。結(jié)合隨鉆測(cè)井儀器測(cè)試結(jié)果的應(yīng)用實(shí)際,采用測(cè)試數(shù)據(jù)列表與曲線繪圖兩種輸出方式(如圖6所示),既提供了詳細(xì)測(cè)試數(shù)據(jù),又滿足用戶直觀顯示測(cè)試結(jié)果的需求[9]。
圖6 測(cè)試結(jié)果輸出截圖
曲線繪制綜合了室內(nèi)儀器測(cè)試和現(xiàn)場(chǎng)測(cè)井應(yīng)用的出圖需求,通過定義并封裝繪圖實(shí)現(xiàn)類,實(shí)現(xiàn)曲線輸出時(shí)靈活調(diào)配,完成曲線的屏幕輸出和設(shè)備硬拷貝輸出。數(shù)值列表輸出采用開發(fā)工具中的網(wǎng)格控件實(shí)現(xiàn),利用控件功能實(shí)現(xiàn)數(shù)值的拖拽、編輯、重排、隱藏、加入圖片等操作。曲線輸出實(shí)現(xiàn)代碼: hd.GetText().Add(*(LPCVARIANT)var1); hd.GetFont().SetColor(RGB(0,0,0)); m_Draw.GetAxis().GetBottom().GetTitle().SetCaption(_T("...")); m_Draw.GetAxis().GetLeft().GetTitle().SetCaption(_T("...")); …… m_Draw.GetTools().Add(tcCursor); CCursorTool ct=m_Draw.GetTools().GetItems(0).GetAsTeeCursor(); ct.SetFollowMouse(true); m_Draw.GetTools().GetItems(0).SetActive(TRUE);…… m_Draw.GetTools().Add(tcDraw); CDrawLineTool dl=m_Draw.GetTools().GetItems(2).GetAsDrawLine(); m_Draw.GetTools().GetItems(2).SetActive(false); m_Draw.GetPage().SetMaxPointsPerPage(m_DotValue); m_Draw.Repaint();
軟件系統(tǒng)在Windows 7及以上操作系統(tǒng),使用Visual C++ 2010開發(fā)工具完成[10]。在室內(nèi)配接自主研發(fā)的儀器,實(shí)現(xiàn)了室內(nèi)單板測(cè)試、整機(jī)測(cè)試以及標(biāo)定刻度,完成了刻度測(cè)試數(shù)據(jù)的實(shí)時(shí)繪圖處理、打印輸出和儀器狀態(tài)跟蹤。在現(xiàn)場(chǎng)結(jié)合隨鉆測(cè)井作業(yè),根據(jù)施工情況配置儀器測(cè)井參數(shù),作業(yè)完工后通過通信接口讀取內(nèi)存數(shù)據(jù),為后續(xù)測(cè)井資料的處理提供原始數(shù)據(jù),并與現(xiàn)場(chǎng)測(cè)井?dāng)?shù)據(jù)庫進(jìn)行互訪進(jìn)行實(shí)時(shí)算法處理。論文介紹的軟件首先在隨鉆測(cè)井儀器的研發(fā)中得到應(yīng)用,項(xiàng)目組在伽馬成像、方位密度成像儀器的研制中,利用測(cè)試軟件驗(yàn)證井下儀器的通信、刻度和標(biāo)定功能;其次是結(jié)合隨鉆測(cè)井系統(tǒng)在青海、新疆、陜北、吉林等油田進(jìn)行現(xiàn)場(chǎng)施工作業(yè)中,利用測(cè)試軟件進(jìn)行儀器施工前的參數(shù)設(shè)置、測(cè)后數(shù)據(jù)讀取,成功取得測(cè)井資料和鉆井施工,保障了10余口井的現(xiàn)場(chǎng)應(yīng)用?,F(xiàn)場(chǎng)推廣和工程應(yīng)用表明:研發(fā)的測(cè)試軟件界面友好、操作方便、通用性好,能夠在通用界面下實(shí)現(xiàn)各種儀器的測(cè)試與刻度,數(shù)據(jù)讀取與通信測(cè)試。該軟件能夠?qū)y(cè)試結(jié)果以多種方式提供給操作員,儀器各種參數(shù)和信息實(shí)時(shí)存入數(shù)據(jù)庫中,有助于對(duì)儀器的施工狀態(tài)進(jìn)行跟蹤。在下一步工作中,將結(jié)合十三五期間隨鉆測(cè)井儀器的研制和系統(tǒng)在油田的應(yīng)用,進(jìn)一步改進(jìn)和推廣軟件系統(tǒng):一是按照系統(tǒng)中定義的數(shù)據(jù)格式和通信協(xié)議規(guī)范統(tǒng)一各種隨鉆測(cè)井儀器接口;二是結(jié)合現(xiàn)場(chǎng)使用情況,為了進(jìn)一步提高作業(yè)小隊(duì)的施工效率,與現(xiàn)場(chǎng)應(yīng)用軟件集成,形成隨鉆測(cè)井作業(yè)統(tǒng)一應(yīng)用軟件。
參考文獻(xiàn)
[1] 楊亮,李安宗,李傳偉,等.基于網(wǎng)絡(luò)化的隨鉆測(cè)井地面采集管理平臺(tái)設(shè)計(jì)[J]. 計(jì)算機(jī)測(cè)量與控制,2014,22(9):2931-2933.
[2] 陳江浩, 余衛(wèi)東, 雷曉陽,等. 基于OSGi的跨平臺(tái)測(cè)井軟件設(shè)計(jì)及應(yīng)用[J]. 測(cè)井技術(shù), 2014, 38(5):587-591.
[3] 賈富強(qiáng),趙陽.基于VC++串口通訊軟件的設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)技術(shù)與發(fā)展,2015,25(6):158-162.
[4] 韓小月, 駱麗. 基于VC的電子白板軟件Word保存格式實(shí)現(xiàn)[J]. 計(jì)算機(jī)應(yīng)用與軟件, 2013, 30(4):26-28.
[5] 呂小維, 楊亞萍, 祝環(huán)芬,等. 隨鉆測(cè)量?jī)x數(shù)據(jù)采集測(cè)試系統(tǒng)設(shè)計(jì)[J]. 石油管材與儀器, 2009, 23(1):21-23.
[6] 趙永發(fā), 由大偉, 楊麗. Visual C++開發(fā)寶典[M]. 機(jī)械工業(yè)出版社, 2012.
[7] 蔡黎,代妮娜,鄧明.自適應(yīng)多汽車診斷協(xié)議的行車數(shù)據(jù)監(jiān)測(cè)軟件設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)應(yīng)用與軟件,2014,31(12):25-28,44.
[8] 白茹寶, 劉博達(dá), 朱可可.基于VC++的測(cè)井圖形屬性保存和再編輯技術(shù)[J],電子制作,2015,33(8):81.
[9] 張向宇,由立志.基于VC++測(cè)井成果圖編輯軟件的設(shè)計(jì)與實(shí)現(xiàn)[J]. 國(guó)外測(cè)井技術(shù),2016,26(5): 70-73.
[10] 王育堅(jiān).Visual C++面向?qū)ο缶幊探坛蘙M]. 北京:清華大學(xué)出版社,2013.