胡永建,孫成芹,韓昊辰,孫 琦,王天嬌
在石油鉆井領(lǐng)域,錄井及隨鉆測井均需要實時獲取當(dāng)前鉆井深度。絕大多數(shù)井深測量系統(tǒng)采用“鉆桿校深+大鉤高度測量”的方法,即累加已下鉆鉆具的長度數(shù)據(jù)得到絕對井深,通過測量大鉤高度得到當(dāng)前單根的相對井深,兩者的和就是實際井深。
懸掛大鉤的大繩通過游車和天車的滑輪組纏繞在絞車滾筒上,滾筒轉(zhuǎn)動帶動大鉤上下運動。使用安裝在絞車滾筒軸上的絞車傳感器(脈沖編碼器)測量轉(zhuǎn)數(shù),進(jìn)而計算出大鉤高度。由于大繩在滾筒上纏繞層數(shù)等因素,該測量方法需要完成復(fù)雜的標(biāo)定[1],另外現(xiàn)場的電磁干擾等因素也對絞車傳感器的測量精度有影響[2]。
本文設(shè)計的新型井深測量系統(tǒng)使用激光測距儀測量大鉤高度,與絞車傳感器通過二次測量間接得到大鉤高度的方法不同,使用激光測距儀可直接獲得高度數(shù)據(jù),測量結(jié)果不受大繩張力大小、磨損狀況等因素的影響,具有更高的精度和更簡單的標(biāo)定方法。本新型井深測量系統(tǒng)使用開源硬件完成傳感器的系統(tǒng)集成,結(jié)合物聯(lián)網(wǎng)發(fā)展新技術(shù),以較低成本快速完成了系統(tǒng)設(shè)計。
以轉(zhuǎn)盤鉆為例,圖1是井深測量系統(tǒng)示意圖。激光測距儀安裝在游車上,向安裝在天車底部的反光板發(fā)射并接收返回的激光束,測量游車與天車的距離。
首次使用前需要校準(zhǔn),安裝完鉆井所需的方鉆桿與上下旋塞閥后提升大鉤,使下旋塞閥的下接頭臺肩與方補心平齊,記錄此時的激光測距儀讀數(shù)。在正常鉆進(jìn)時,激光測距儀度數(shù)越大表示相對井深越大。在鉆頭到底的情況下,井深D計算如下:
其中,di是已接入的n根鉆桿中第i根鉆桿的長度;dBHA是井下鉆具組合的長度,累加已下鉆鉆具的長度數(shù)據(jù)得到絕對井深;d為當(dāng)前的激光測距儀讀數(shù);dZERO是校準(zhǔn)時的激光測距儀讀數(shù),兩者的差是相對井深。在鉆頭未到底的情況下,該式計算的是鉆頭深度。
圖1 井深測量系統(tǒng)示意圖
僅當(dāng)鉆頭觸及井底,測量得到的數(shù)據(jù)才是井深。在起鉆、坐卡等狀態(tài)下,鉆頭脫離井底,此時數(shù)據(jù)為無效井深數(shù)據(jù)。為了判斷鉆井狀態(tài),在鉆機(jī)懸重表油路中接入了鉤載傳感器測量油壓,經(jīng)過校準(zhǔn)可以得到大鉤懸重。根據(jù)大鉤懸重和大鉤運動方向可以判斷鉆井狀態(tài)。
激光測距儀的信號及供電線沿大鉤自然垂下,順著水龍頭的水龍帶接入井深測量系統(tǒng)主機(jī);鉤載傳感器與主機(jī)通過電纜相連。
井深測量系統(tǒng)需要完成標(biāo)定、在表格中輸入鉆具長度及維護(hù)記錄數(shù)據(jù)庫等任務(wù),同時測量的井深數(shù)據(jù)需要發(fā)送到WITSML(井場信息傳輸標(biāo)準(zhǔn)標(biāo)記語言)服務(wù)器,對主機(jī)控制器的計算、存儲、人機(jī)界面及聯(lián)網(wǎng)能力有較高要求,不適合使用傳統(tǒng)的PLC組態(tài)控制方式。
研揚科技出品的開源硬件UP創(chuàng)客板使用英特爾凌動處理器,配備不同容量的DDR3L內(nèi)存和eMMC程序存儲器。該單板機(jī)有較多接口:包括1個千兆以太網(wǎng)端口、1個HDMI接口及多個USB接口[3]??梢赃\行微軟Windows10完整版,方便使用Visual Studio編程。
本井深測量系統(tǒng)設(shè)計使用HDMI接口的7寸1 024×600分辨率液晶屏作為顯示器,使用專用按鍵(不使用標(biāo)準(zhǔn)鍵盤及鼠標(biāo))完成人機(jī)交互。
由于鉆井現(xiàn)場干擾的存在,觸摸屏大多無法使用,只能使用鍵盤輸入數(shù)據(jù),這里使用4×4薄膜鍵盤作為輸入設(shè)備。
雖然UP創(chuàng)客板配備了一個40針的GP總線接口,支持可作為按鍵檢測功能的GPIO、UART及SPI等多種接口,但到目前為止廠家尚未提供Windows下適合.NET編程的托管API驅(qū)動,因此使用另一類常見開源硬件Arduino完成USB接口的HID專用鍵盤設(shè)計,為此設(shè)計了Arduino UNO板的擴(kuò)展板(HAT)[4],其電路如圖2所示。
P1、P2是UNO板引腳對應(yīng)的插座,P3是矩陣薄膜開關(guān)的插針,P4是USB接口,其VBUS引腳同時為UNO板供電。D1為防靜電用的瞬態(tài)抑制二極管(TVS)陣列,D2是齊納二極管陣列,用來將UNO板IO口輸出電壓鉗位到3.6 V,以防損壞主機(jī)控制器的USB接口。R1、R2為限流電阻,R3用于USB接口識別。
圖2 Arduino專用鍵盤
井深測量系統(tǒng)用到了激光測距儀及鉤載傳感器兩個傳感器。與主機(jī)控制器集成時不僅要考慮接口種類,也要考慮防爆設(shè)計。為了充分利用以太網(wǎng)的聯(lián)網(wǎng)優(yōu)勢,最終確定的集成方式如表1所示。
表1 傳感器集成方式
傳感器及電纜位于危險區(qū)內(nèi),必須增加適當(dāng)?shù)姆辣胧瑘D3是主機(jī)結(jié)構(gòu)示意圖。
在Windows操作系統(tǒng)下,UP創(chuàng)客板目前只支持一路串口,這里使用串口服務(wù)器來連接多個傳感器。作為物聯(lián)網(wǎng)技術(shù)的一種,串口服務(wù)器為串口和以太網(wǎng)之間提供了聯(lián)通的橋梁。本型號串口服務(wù)器支持兩路串口同時工作,串口通過撥碼開關(guān)可以配置為RS232、RS485及RS422接口,這里均配置為RS485。串口服務(wù)器的10/100 Mbit/s網(wǎng)口與UP創(chuàng)客板的千兆以太網(wǎng)口相連。為保證數(shù)據(jù)可靠通訊,串口服務(wù)器配置為TCP服務(wù)器,串口通訊速率及格式與各自的傳感器或隔離柵一致。
本井深測量系統(tǒng)軟件模塊劃分如圖4所示。
TCP Client的兩個實例有不同的端口,分別對應(yīng)于串口服務(wù)器連接鉤載傳感器的隔離柵串口和連接激光測距儀的隔離柵串口。鉤載傳感器隔離柵使用ModBus通訊協(xié)議[6],由相應(yīng)的編碼解碼模塊處理;激光測距儀配置為使用SerialLink通訊協(xié)議[7],其典型查詢指令如下:
發(fā)送:<STX>0122<ETX>
接收:<STX>8122+0152700<ETX>
其中<STX>是指令頭 (0x02),<ETX>是指令尾(0x03),用ASCII碼表示操作數(shù)。上述指令發(fā)送讀取距離指令,接收到的距離測量數(shù)據(jù)是15.27 m。
鉆機(jī)狀態(tài)判斷模塊利用大鉤懸重及大鉤高度判斷鉆機(jī)工作狀態(tài),并根據(jù)當(dāng)前距離測量數(shù)據(jù)得到相對井深。從事先輸入數(shù)據(jù)庫的鉆具長度表中提取數(shù)據(jù)計算絕對井深。計算相對井深和絕對井深的和就是當(dāng)前井深,當(dāng)前井深顯示在本機(jī)界面上并保存到數(shù)據(jù)庫記錄中,同時通過以太網(wǎng),由WITSML客戶端發(fā)往WITSML服務(wù)器供第三方使用。
使用VB.NET完成了主機(jī)控制器軟件編程,其中TCP Client類需要長期在后臺運行。為了實現(xiàn)多線程編程,即可使用System.Threading.Tasks命名空間下的類創(chuàng)建異步任務(wù),也可通過System.ComponentModel.BackgroundWorker類實現(xiàn)。本設(shè)計使用Async、Await關(guān)鍵字簡化了該項工作。
System.Net.Sockets.TcpClient類為TCP網(wǎng)絡(luò)服務(wù)提供客戶端連接,該類除了同步的Connect方法外,還實現(xiàn)了異步連接的ConnectAsync方法[8],下列代碼創(chuàng)建了該類的實例,該實例連接IP地址為“192.168.127.10”的串口服務(wù)器的端口4001,同時獲取用于發(fā)送及接收數(shù)據(jù)的Network?Stream∶
Dim mC As TcpClient=New TcpClient()
Await mC.ConnectAsync(IPAddress.Parse("192.168.127.10"),4001)
Dim mS As NetworkStream=mClient.GetStream()
發(fā)送數(shù)據(jù)需要調(diào)用NetworkStream的Write方法,接收數(shù)據(jù)可使用ReadAsync異步方法。
圖5是井深測量系統(tǒng)面板。
圖5 井深測量系統(tǒng)面板
通過分列在液晶屏兩側(cè)的薄膜開關(guān)“軟”按鍵,可以完成各種設(shè)置、選擇顯示輔助數(shù)據(jù)、更改數(shù)據(jù)單位、輸入數(shù)據(jù)等操作。
本文設(shè)計的井深測量系統(tǒng)使用激光測距儀測量大鉤高度,簡化了井深測量標(biāo)定過程,提高了測量精度。配合使用鉤載傳感器可以完成鉆機(jī)工作狀態(tài)的自動判斷。通過開源硬件UP創(chuàng)客板、Arduino板與傳感器的集成縮短了研發(fā)時間,達(dá)到了設(shè)計目標(biāo)。
參考文獻(xiàn):
[1]鄭應(yīng)釗,林孟,陳輝.大鉤高度標(biāo)定方法探討[J].錄井工程,2010,21(1):65-67.
[2]王立波.絞車傳感器測量誤差原因分析與對策[J].錄井工程,2009,20(1):54-57.
[3]AAEON.UPDatasheetV8 2-CN [Z].2013.
[4] Arduino.Guide.ArduinoUno [EB/OL].https://www.arduino.cc/en/Guide/ArduinoUno,2017-01-12.
[5]Arduino.Guide.Libraries[EB/OL].https://www.ardu?ino.cc/en/Guide/Libraries,2017-02-07.
[6]福建順昌虹潤精密儀器有限公司.NHR系列三、四端子模塊、安全柵通信協(xié)議[Z].2015.
[7] SICK.Operating instructions Distance measuring device DL100 Pro-RS-422[Z].2015.
[8] Microsoft.Library.Tcpclient[EB/OL].https://msdn.microsoft.com/zh-cn/library/system.net.sockets.tcpclient?VS.80).aspx.