基于電磁感應的多層管柱電磁探傷測井系統
通信協(xié)議設計
井下設備完全受井上PC客戶(hù)端控制,如開(kāi)始測井、暫停測井等,井下設備負責響應上位機的命令。本系統中定義了測井數據幀、命令幀和應答幀三種幀結構。數據幀主要用于井下設備向上位機發(fā)送的測井數據,命令幀用于上位機向井下設備發(fā)送控制命令,應答幀為雙方接收到測井數據幀和命令幀之后應答成功或者失敗的幀結構。
- 測井數據幀
測井數據幀結構定義如表格1所示。測井數據幀包括起始標志字節、幀序號字節、類(lèi)型字節、當前時(shí)間字節、當前深度字節、溫度字節、伽馬射線(xiàn)字節、發(fā)射電路字節、縱向探頭A電壓字節、橫向探頭B電壓字節、橫向探頭C電壓字節、校驗和字節以及結束標志字節。
表格 1 測井數據幀結構
起始標志 | 幀序號 | 類(lèi)型字節 | 當前時(shí)間 | 當前深度 |
FSTA | 3字節 | 1字節(’D’) | 4字節 | 4字節 |
溫度 | 伽馬射線(xiàn) | 發(fā)射電流 | 縱向探頭A電壓 | 橫向探頭B電壓 |
4字節 | 2字節 | 2字節 | 48*3*2字節 | 48*2字節 |
橫向探頭C電壓 | 校驗和 | 結束標志 | ||
48*2字節 | 4字節 | FEND |
由于PIC32MX7為32位單片機,處理int型數據(4字節)較快,并且CAN2.0B標準幀每幀可以發(fā)送8字節的數據,所以在協(xié)議中采用4字節為一個(gè)單位的設計。
起始標志字節為“FSTA”四個(gè)字節,結束標志字節為“FEND”四個(gè)字節,幀序號為啟動(dòng)測井儀器后發(fā)送的數據幀的序號,類(lèi)型字節為“D”。其他字節為當前深度下采集的測井數據。
協(xié)議采用簡(jiǎn)單的校驗和的方法進(jìn)行幀的校驗。先將每四個(gè)字節組成一個(gè)int型的數據,然后所有的數據相加,然后將結果截短到一個(gè)int型數據的長(cháng)度。發(fā)送端將待發(fā)送的數據進(jìn)行校驗和計算,將校驗和值放在數據后一起發(fā)送,在接收端對接收到的數據進(jìn)行校驗和計算,然后和接收到的校驗和字節比較,來(lái)進(jìn)行誤碼判斷。設定要進(jìn)行校驗和和計算的字節不包括起始和結束標志字節。
- 命令幀
命令幀結構定義如表格2所示。命令幀包括起始標志字節、幀序號字節、類(lèi)型字節、校驗和字節和結束標志字節。
表格 2 命令幀結構
起始標志 | 幀序號 | 類(lèi)型字節 | 校驗和 | 結束標志 |
FSTA | 3字節 | 1字節(命令字) | 4字節 | FEND |
根據系統的需要,命令字設有開(kāi)始命令字、暫停命令字、繼續命令字和結束命令字,類(lèi)型字節分別是‘S’、‘P’、‘C’、‘E’。
- 應答幀
應答幀結構定義如表格3所示。令幀包括起始標志字節、幀序號字節、類(lèi)型字節、校驗和字節和結束標志字節。其中接收成功ACK應答幀類(lèi)型字節為‘A’,接收失敗NAK應答幀類(lèi)型字節為‘N’。
表格 3 應答幀結構
起始標志 | 幀序號 | 類(lèi)型字節 | 校驗和 | 結束標志 |
FSTA | 3字節 | 1字節(’A’/’N’) | 4字節 | FEND |
除了幀結構的定義以外,整個(gè)系統的通信還需要遵守以下規則:
- 數據傳輸的雙方以100kbps的速率傳輸數據,使用主從式通信,主機發(fā)送數據,從機接收數據;
- 從機在接收完數據幀后,將根據最后的校驗結構判斷數據接收是否成功,若校驗正確,則向主機發(fā)送ACK應答幀,標志接收成功,若校驗錯誤,則發(fā)送NAK應答幀,表示錯誤,請求重發(fā);
- 主機接收到ACK應答幀,則通信結束,否則主機將重新發(fā)送這組數據。
表格4是測井數據傳輸模型,為整個(gè)測井過(guò)程中數據傳輸模型。
表格 4 測井數據傳輸模型
開(kāi)始測井標志 | 數據幀 | 應答幀 | 數據幀 | 應答幀 | …… | 數據幀 |
EMISTART | 數據幀0 | ACK | 數據幀1 | ACK | …… | 數據幀n |
應答幀 | 數據幀 | 應答幀 | …… | 結束測井標志 | ||
NAK | 數據幀n | ACK | …… | EMITOEND |
輔助測量模塊
溫度探頭
溫度傳感器的選擇主要是要考慮被測量物體的溫度范圍、電阻材料的化學(xué)穩定性、電阻值與溫度變化要保持線(xiàn)性關(guān)系等。
一般來(lái)講,地殼中溫度與深度成正比,深度每增加100米溫度便要上升3℃左右。除此之外,還要考慮油井的深度。早期油井只有幾十至幾百米深,近年來(lái)油井深度逐漸加深,大部分石油生產(chǎn)并的深度在1000米至3000米之間。石油生產(chǎn)井的最深記錄是6500米。由于地溫梯度的存在,井下的溫度將隨深度的增加而升高,由此可以對溫度傳感器的所需測溫范圍進(jìn)行估算。
井底最高溫度可由下式進(jìn)行計算確定:
式中為井底最高溫度(℃),
為地溫梯度(℃/100m),h為井深(m)。
當取為℃/100m,則在6500米處溫度則為23+4.5×6500/100=315.5℃。因此,測溫部分的溫度傳感器測量范圍選在0—320℃即可滿(mǎn)足絕大多數條件下的測溫要求。
在此溫度范圍內可供選擇的有熱電偶、熱電阻及集成測溫元件等??紤]到其使用環(huán)境等因素,選用熱電阻作為系統的測溫元件較為適合。
鉑電阻具有測量溫度范圍大、精度高、穩定性好、性能可靠等優(yōu)點(diǎn),而且具有高熔點(diǎn)、高穩定性,因此被我們選為系統的測溫元件。
具體的測溫電路如下圖所示:
圖 21 溫度測量原理圖
TL431為OP07提供恒壓源,由于電壓源也不是純粹的恒壓,為消除電壓波動(dòng),添加R5和C1作為電源濾波。R2,R3,R4,RT作為測量電橋,通過(guò)檢測C端和D端的電壓差來(lái)計算溫度的變化,根據集成運算放大器工作在線(xiàn)性區域的輸入端虛短特性,OP072端電壓等于3端電壓;由于TL431為OP07提供了相對穩定的電壓源
,根據集成運算放大器工作在線(xiàn)性區域的輸入端虛斷特性,流過(guò)R4的電流只流經(jīng)RT,所以相當于有一個(gè)恒流源流經(jīng)R4和RT。當電橋達到動(dòng)態(tài)平衡時(shí),有:
。通過(guò)計算可知,
,從而求出RT的變化量
。通過(guò)查鉑電阻溫度表,即可得到溫度值。
伽馬探頭
自然伽馬測井儀測量由地層中放射性元素衰變所產(chǎn)生的自然伽馬射線(xiàn)的強度。自然伽馬資料可以用來(lái)劃分地層巖性、求地層的泥質(zhì)含量。在套管井測井中,自然伽馬曲線(xiàn)、套管接箍定位曲線(xiàn)與裸眼井資料的對比可以保證地層定位和射孔深度的準確性。一般自然伽馬電路分閃爍探測器、輸入極、選擇整形級、放大輸出級和高壓電源部分。結構圖如圖 22所示。
圖 22 自然伽馬探測結構圖
軟件系統設計
下位機軟件設計
主程序流程圖
圖 23 主程序流程圖
主程序進(jìn)入之后首先對各模塊進(jìn)行初始化,包括全局變量、單片機I/O口、CAN總線(xiàn)等模塊。其后進(jìn)入系統工作狀態(tài)判斷,根據不同的工作狀態(tài),系統執行不同的內容。系統的工作狀態(tài)由系統和上位機控制切換,上位機是通過(guò)命令幀給下位機發(fā)送命令。
測井流程圖
圖 24 測井流程圖
在測井狀態(tài)中,單片機控制IGBT全橋電路產(chǎn)生125ms的正向脈沖,根據不同的時(shí)刻控制可編程放大的倍數并進(jìn)行A/D采樣。采樣結束后單片機控制IGBT全橋電路再次產(chǎn)生125ms的負向脈沖,同時(shí)通過(guò)CAN總線(xiàn)向上位機發(fā)送測井數據幀,如果100ms內未發(fā)送成功則返回發(fā)送失敗標志并推出發(fā)送。負向脈沖后重復放大和采樣,并發(fā)送測井數據幀。最后判斷是否有發(fā)送失敗的測井數據幀,并發(fā)送失敗的數據幀。
CAN總線(xiàn)數據處理流程圖
系統采用PIC32MX的CAN1模塊,波特率設為100kbps,分別使用2個(gè)32個(gè)報文深的FIFO作為發(fā)送和接收FIFO,采用接收中斷的方式來(lái)接收上位機的數據。在接收中斷服務(wù)程序中對接收到的數據進(jìn)行處理。如圖 25為CAN總線(xiàn)數據處理的流程圖。
圖 25 CAN總線(xiàn)數據處理的流程圖
系統在接收到一個(gè)完整的數據幀之后,且校驗和正確,會(huì )對接收緩存數據進(jìn)行處理,會(huì )根據不同的類(lèi)型的數據幀做相應的操作。當發(fā)生未能正確接收一個(gè)完整的數據幀時(shí),下位機會(huì )返回錯誤類(lèi)型,并回復NAK應答幀。
實(shí)時(shí)時(shí)鐘
PIC32MX 器件上提供的實(shí)時(shí)時(shí)鐘和日歷(Real-Time Clock and Calendar,RTCC)硬件模塊及其操作。RTCC是為需要長(cháng)時(shí)間維持精確時(shí)間的應用設計的,無(wú)需或只需最少的CPU干預。該模塊為低功耗使用進(jìn)行了優(yōu)化,以便在跟蹤時(shí)間的同時(shí)延長(cháng)電池的使用壽命。使用RTCC模塊的要求是需要一個(gè)外部32.768 kHz時(shí)鐘晶振。
測井數據幀的當前時(shí)間使用RTCC模塊提供,該模塊只需要初始化并設置起始時(shí)鐘和日歷即可自動(dòng)運行。
上位機軟件設計
概述
需求概述
本軟件的功能主要為接收本系統硬件部分發(fā)送的數據,通過(guò)一定的協(xié)議解析,提取并分析信息,計算管壁厚度,繪制厚度可視化的圖形,為工程人員提供直接的和有效的資料。
由于本系統在探傷的同時(shí),著(zhù)重分析損傷位置,因此必須對遠近有所分離,另外最好能夠繪制從遠到近的厚度譜圖,因此,本軟件需要繪制兩種圖線(xiàn),一種劃分為遠場(chǎng)近場(chǎng)兩條曲線(xiàn),另一種給出彩色的厚度譜圖。
由于測井時(shí)間很長(cháng),工程人員很難全程跟蹤,為了便于從存儲的信息中恢復信息以便日后查閱,還需要給本軟件增加文件存儲和圖像存儲的功能。
最后,工程人員還需要實(shí)施觀(guān)測現場(chǎng)狀況,隨時(shí)得到從井下傳遞來(lái)的信息,這樣隨時(shí)觀(guān)測的方法,可以有效的節省測井時(shí)間,對于損傷過(guò)大的井可不必測完。
軟硬件支持環(huán)境
本軟件采用VS2008編譯通過(guò),在編寫(xiě)中使用了.net3.5架構,因此運行本軟件需要Microsoft .net3.5運行時(shí)庫的支持。
另外,本系統采用USBCAN模塊進(jìn)行通信,由于廠(chǎng)商沒(méi)有給出其在Windows Vista和Windows 7下的驅動(dòng),因此,本軟件只能工作在Windows XP系統下,且需要安裝USBCAN模塊驅動(dòng)。
程序建模
本程序采用面向對象程序設計方法,其中的多數功能被封裝在對象中,程序有較好的移植性和安全性。程序主要封裝在以下幾個(gè)類(lèi)中
類(lèi) | 用途 |
記錄測井全程信息、 | |
文件存儲和讀出 | |
由下位機傳來(lái)的8字節信息 | |
由下位機傳來(lái)的數據包 | |
其中包括一正一反兩個(gè)數據包,記錄其平均值和其他的數據處理結果 | |
測井曲線(xiàn)圖 | |
衰減曲線(xiàn)圖 | |
|
另外本軟件采用了多線(xiàn)程處理技術(shù),主程序負責按鍵響應、圖形顯示等處于主線(xiàn)程中,而信息處理算法由子進(jìn)程執行。這樣有效的提升了數據處理算法的效率和獨立性,使得又原先的每包處理時(shí)間1000ms左右大幅降至14ms左右。
界面設計
下圖為一軟件運行時(shí)截圖,可以看到程序右左上方的文件/設備控制區,右上方圖形控制區,左下方的信息顯示區以及右下方的圖形顯示區組成。而其中最重要的,也是占用面積最大部分是圖形顯示區,較大的面積保證了觀(guān)看的方便。另外,為了觀(guān)察直觀(guān)的一手數據,我們還專(zhuān)門(mén)設置了顯示由采樣設備直接傳來(lái)的未經(jīng)處理的衰減信號,以便工程人員直接判斷測井系統是否正常工作,以及管壁是否發(fā)生嚴重損傷。這個(gè)衰減曲線(xiàn)是可以隱藏的,因為它畢竟不是主要需要顯示的內容,而且占用屏幕空間較大。如果你覺(jué)得圖像顯示空間還不夠大,甚至可以隱藏圖例。這里圖例被設計成懸浮于繪圖之上,可以跟隨滾動(dòng)條滑動(dòng)而動(dòng)。
評論