摘 要: 針對(duì)目前鉆井泵的沖數(shù)測(cè)量方法中測(cè)量周期長(zhǎng)、無法及時(shí)掌控工況的問題,提出了一種通過測(cè)量鉆井泵沖數(shù)的脈沖周期變化實(shí)現(xiàn)鉆井泵沖數(shù)檢測(cè)的方法,利用單片機(jī)及C語言實(shí)現(xiàn)了系統(tǒng)的軟硬件開發(fā)。該方法可迅速反應(yīng)出沖數(shù)的變化情況,使現(xiàn)場(chǎng)人員及時(shí)掌握鉆井泵的工作情況,提高了鉆井工程的安全性。
關(guān)鍵詞: 鉆井泵;沖數(shù);周期測(cè)量;單片機(jī);C語言
鉆井泵是石油鉆機(jī)的三大工作機(jī)組之一,是鉆井液循環(huán)系統(tǒng)中的關(guān)鍵設(shè)備[1]。鉆井泵沖數(shù)的變化能夠及時(shí)反映鉆井工程的鉆進(jìn)情況,如果鉆井泵出現(xiàn)超壓力或超負(fù)載工作時(shí),將直接通過沖數(shù)變化反映出來,鉆井泵沖數(shù)的測(cè)量在鉆井多參數(shù)監(jiān)測(cè)系統(tǒng)中是必須記錄的參數(shù)之一。
當(dāng)前常用的沖數(shù)測(cè)量方法是通過接近開關(guān)檢測(cè)動(dòng)力端輸入軸的轉(zhuǎn)速,再除以鉆井泵的減速比,便可得到實(shí)際的沖數(shù),由于現(xiàn)有計(jì)量方法采用的是單位時(shí)間內(nèi)接近開關(guān)的脈沖數(shù),如果測(cè)量時(shí)間太短(如1 s),則計(jì)算出來的沖數(shù)與實(shí)際沖數(shù)相差較大,故測(cè)量時(shí)間一般選得較長(zhǎng)(如5 s),沖數(shù)測(cè)量較準(zhǔn)確但無法及時(shí)反應(yīng)鉆井泵沖數(shù)改變,不利于現(xiàn)場(chǎng)對(duì)鉆井工程的鉆進(jìn)情況及時(shí)掌握。
采用單片機(jī)測(cè)量鉆井泵脈沖周期的方法,可以使鉆井泵的沖數(shù)測(cè)量在一個(gè)周期內(nèi)便能實(shí)現(xiàn)測(cè)量,提高了鉆井泵沖數(shù)測(cè)量的實(shí)時(shí)性。
1 測(cè)量原理
采用周期測(cè)量的方法在鉆井泵的動(dòng)力輸入軸圓周上布置1片磁鋼,再安裝一只霍耳傳感器檢測(cè)隨軸轉(zhuǎn)動(dòng)的磁鋼,當(dāng)磁鋼通過霍耳傳感器時(shí),便產(chǎn)生一個(gè)脈沖信號(hào),如圖1(a)所示。圖1(b)所示是單片機(jī)晶體振蕩器所產(chǎn)生的脈沖,在晶體頻率選定的情況下,其時(shí)鐘周期的時(shí)間確定不變,通過計(jì)量動(dòng)力端轉(zhuǎn)速產(chǎn)生的兩脈沖周期下降沿間的時(shí)鐘信號(hào)的個(gè)數(shù),便可測(cè)量出轉(zhuǎn)速。兩脈沖之間的關(guān)系與圖1中一致:tn=Nn×t0,式中,Nn為霍耳傳感器檢測(cè)到磁鋼一周內(nèi)的計(jì)數(shù)值,通過計(jì)算可以算出一周的周期,泵沖計(jì)算公式為:
式中i為鉆井泵的傳動(dòng)比,tn為一周的時(shí)間。
該方法測(cè)量出的轉(zhuǎn)速變化只是在動(dòng)力端轉(zhuǎn)動(dòng)一周便能反應(yīng)出轉(zhuǎn)速的變化,如果增加動(dòng)力端輸入軸上磁鋼的數(shù)量,還能夠更快地反應(yīng)沖數(shù)的變化情況。
單片機(jī)定時(shí)計(jì)數(shù)器工作原理如圖2所示,51單片機(jī)的定時(shí)器/計(jì)數(shù)器2有三種工作模式:捕獲、自動(dòng)重新裝載(遞增或遞減計(jì)數(shù))和波特率發(fā)生器[2]。自動(dòng)新裝載模式用于正反向計(jì)數(shù)時(shí)遞增計(jì)數(shù)和遞減計(jì)數(shù),波特率發(fā)生器用于串行通信。周期測(cè)量采用捕獲方式來準(zhǔn)確獲取每個(gè)周期的準(zhǔn)確時(shí)間。該方式使用內(nèi)部的時(shí)鐘周期來測(cè)量外部脈沖的周期[3],如圖2所示,當(dāng)C/T2=0時(shí),使用內(nèi)部晶體通過分頻器來的時(shí)鐘脈沖信號(hào),TR2=1時(shí),將自動(dòng)對(duì)OSC來的時(shí)鐘脈沖進(jìn)行計(jì)數(shù),當(dāng)EXEN2=1時(shí),且T2EX引腳上出現(xiàn)負(fù)跳變而引起捕獲或重裝時(shí)置位[3],這樣,T2EX上的負(fù)跳變就可以用于硬件計(jì)數(shù)器T2的同步控制信號(hào),在負(fù)跳變同步控制信號(hào)作用下,將TL2和TH2中的瞬時(shí)計(jì)數(shù)值就傳送到了RCAP2L和RCAP2H中,讀取RCAP2中的值將能夠得到脈沖下降沿的計(jì)數(shù)值。由于讀取的是RCAP2中的計(jì)數(shù)值,因此將不會(huì)受TL2和TH2寄存器中值的變化而使讀出的數(shù)據(jù)差異較大。
由于單片機(jī)的OSC是確定的,如果選擇OSC的晶體為12 MHz,經(jīng)12分頻后,送到定時(shí)器中的脈沖頻率為1 MHz,其周期為1 μs,式(1)中的t0=1 μs。
鉆井泵的額定沖數(shù)為120沖,實(shí)驗(yàn)中鉆井泵的減速比為4.16:1,其動(dòng)力端的轉(zhuǎn)速約為500 r/min,霍耳傳感器檢測(cè)到的脈沖周期約為0.12 s,每個(gè)周期的T2的計(jì)數(shù)值約為120 000個(gè),計(jì)數(shù)周期的誤差為±1個(gè)脈沖,相應(yīng)的計(jì)時(shí)誤差最大為2 μs,其計(jì)數(shù)誤差所引起的轉(zhuǎn)速變化可以忽略不計(jì)。
2 脈沖測(cè)量硬件電路
脈沖測(cè)量硬件電路如圖3所示,霍耳傳感器H1為NPN型,其“+”接24 V電源,“-”接GND地,“輸出”接發(fā)光二極管L1,TL521光電耦合器與單片機(jī)的P1.1/T2EX腳相連。發(fā)光二極管L1作為霍耳傳感器脈沖信號(hào)的指示燈,當(dāng)磁鋼片通過霍耳傳感器檢測(cè)端時(shí),霍耳傳感器便輸出低電平,發(fā)光二極管L1點(diǎn)亮,P1.1/T2EX腳也由低電平變?yōu)楦唠娖剑划?dāng)磁鋼通過霍耳傳感器后,其輸出信號(hào)斷開,發(fā)光二極管L1熄滅,在P1.1/T2EX上則為低電平,在該腳上的波形如圖1(a)所示。通過檢測(cè)P11上的脈沖信號(hào)的周期,便能測(cè)量出鉆井泵的沖數(shù),由于動(dòng)力端每轉(zhuǎn)1周將在P11上產(chǎn)生1個(gè)脈沖周期,在采集到一個(gè)脈沖周期時(shí),便可對(duì)轉(zhuǎn)速進(jìn)行計(jì)算,計(jì)算出的轉(zhuǎn)速通過8字LED顯示出來,還通過RS485通信接入鉆井多參數(shù)測(cè)試系統(tǒng)。
3 軟件設(shè)計(jì)
軟件采用C語言對(duì)單片機(jī)程序進(jìn)行開發(fā),由于C語言具有功能豐富的庫函數(shù)、運(yùn)算速度快、編譯效率高等優(yōu)點(diǎn),提高了軟件的開發(fā)速度。
單片機(jī)中斷程序流程圖如圖4所示,在軟件編寫過程中,采用了定時(shí)/計(jì)數(shù)器2測(cè)量主軸脈沖周期的變化。由于定時(shí)/計(jì)數(shù)器T2為16 bit,其最大計(jì)數(shù)值為65 535,當(dāng)計(jì)數(shù)器的值超過65 535時(shí),這將使定時(shí)/計(jì)數(shù)器T2在計(jì)數(shù)中產(chǎn)生溢出中斷,標(biāo)志位TF2置1,由軟件清除。在測(cè)量中,檢測(cè)TF2置位時(shí)計(jì)數(shù)值n+1,當(dāng)脈沖下降沿到來時(shí),讀取RCAP2中的計(jì)數(shù)值,脈沖數(shù)的值應(yīng)該為:n×65 536+RACP2H×256+RACP2L。顯示屏的刷新時(shí)間為1 s,只要鉆井泵沖數(shù)在大于15沖/min的情況下,均能夠?qū)崿F(xiàn)每秒鐘刷新一次轉(zhuǎn)速的變化情況。鉆井泵的工作沖數(shù)一般在90沖/min~130沖/min,完全能夠滿足其沖數(shù)測(cè)量要求,通過RS485通信,可以更快速地檢測(cè)到轉(zhuǎn)速的變化情況。
定時(shí)/計(jì)數(shù)器2周期測(cè)量的初始化程序如下:
void initT2(void)
{
T2CON=0x0D; //初始化定時(shí)器2
T2MOD=0x00; //設(shè)置為加計(jì)數(shù)
TH2=0; //TH賦初值
TL2=0;
ET2=1; //T2中斷允許
EA=1; //打開中斷
}
中斷程序如下:
void timer2() interrupt 5
{
unsigned long ts;
unsigned char n;
TH2=0;
TL2=0;
EXF2=0; //軟件清除外部標(biāo)志
if(TF2==0) //計(jì)數(shù)器未溢出,計(jì)算周期的時(shí)間長(zhǎng)度
{
ts=65 536×n+RCAP2H×256+RCAP2L;
//沖數(shù)的脈沖周期的計(jì)數(shù)值,如果時(shí)鐘為12 MHz,
該值除以1 000 000,便為時(shí)間值秒,沖數(shù)則為時(shí)間的倒數(shù)。
n=0;
}
else //計(jì)數(shù)器溢出
{
n++;
TF2=0;
}
}
采用定時(shí)器/計(jì)數(shù)器2實(shí)現(xiàn)變周期方式來測(cè)量鉆井泵沖數(shù)的方法已經(jīng)成功應(yīng)用在中國(guó)二重集團(tuán)公司的鉆井泵性能測(cè)試平臺(tái)上,沖數(shù)測(cè)量準(zhǔn)確可靠,能夠及時(shí)反映出鉆井泵的沖數(shù)的變化,提高了鉆井泵的工作性能。采用變周期法測(cè)量轉(zhuǎn)速,可以及時(shí)檢測(cè)到鉆井泵沖數(shù)的變化,測(cè)量周期短。應(yīng)用到鉆井現(xiàn)場(chǎng),可及時(shí)反映出鉆井過程中鉆進(jìn)工況的變化情況,提高了鉆井工程的安全性。
參考文獻(xiàn)
[1] 周明高,李相方,隋秀香,等.鉆井泵工況實(shí)時(shí)監(jiān)測(cè)新方法[J].中國(guó)海上油氣(工程),2002(10):25-27.
[2] 宏晶公司.STC89C51RC/RD+系列單片機(jī)器件手冊(cè)[M].2009:67-77.
[3] 馬忠梅,馬巖,張凱,等.單片機(jī)的C語言應(yīng)用程序設(shè)計(jì)[M].北京:北京航天航空大學(xué)出版社,1997:113-122.
(收稿日期:2010-07-22)