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