蒙 斌,吳 凡
(1.寧夏大學(xué) 機(jī)械工程學(xué)院,寧夏 銀川 750021;2.寧夏永寧中學(xué),寧夏 銀川 750021)
加工中心是帶有刀庫(kù)和自動(dòng)換刀裝置的數(shù)控機(jī)床,零件一次裝夾就可完成銑、鉆、鏜、擴(kuò)、鉸等多道工序。而不同的刀具就會(huì)有長(zhǎng)度的差異,必須知道每把刀的長(zhǎng)度,才能在使用中運(yùn)用刀具長(zhǎng)度補(bǔ)償功能。常規(guī)的方法是采用機(jī)外對(duì)刀儀測(cè)量每把刀的長(zhǎng)度,這就必須專(zhuān)門(mén)購(gòu)買(mǎi)機(jī)外對(duì)刀儀,必然會(huì)增加成本,而平時(shí)不使用時(shí)又會(huì)造成資源的閑置和浪費(fèi)。除此之外,也可以使用試切法確定實(shí)際刀具與標(biāo)刀之間的長(zhǎng)度差異,但這種方法確定的刀具長(zhǎng)度值不夠精確,而且每把刀的長(zhǎng)度測(cè)量都需要進(jìn)行手動(dòng)操作試切,會(huì)很繁瑣,而且增加了對(duì)刀的輔助時(shí)間,降低了整個(gè)零件加工的效率。應(yīng)用宏程序編制刀具長(zhǎng)度的在線自動(dòng)測(cè)量程序,就可以簡(jiǎn)便的確定出每把刀具的長(zhǎng)度補(bǔ)償值,直接存入其補(bǔ)償寄存器中,從而使得刀具長(zhǎng)度補(bǔ)償?shù)慕⒉僮骺旖荨⒏咝1]。下面以FANUC0i系統(tǒng)為例來(lái)說(shuō)明。
G31跳轉(zhuǎn)指令主要用于和數(shù)控機(jī)床上的測(cè)量傳感器一起使程序的執(zhí)行發(fā)生跳轉(zhuǎn)。G31一般用于自動(dòng)測(cè)量時(shí)的跳轉(zhuǎn),需要外部輸入信號(hào)來(lái)觸發(fā),輸入信號(hào)的地址是X4.7(信號(hào)名SKIP)。程序執(zhí)行時(shí),如果沒(méi)有SKIP信號(hào)輸入,則G31和G01的作用完全一樣。如果 SKIP 信號(hào)由“0”置“1”,則在 SKIP 信號(hào)置“1”的位置中止現(xiàn)行程序段的執(zhí)行,并清除剩余的運(yùn)動(dòng)量,而轉(zhuǎn)去執(zhí)行下一個(gè)程序段,并將4個(gè)進(jìn)給軸的當(dāng)前坐標(biāo)值存儲(chǔ)在#5061~#5064這4個(gè)系統(tǒng)變量(具體作用后面見(jiàn)表3)中,供刀具長(zhǎng)度測(cè)量程序在自動(dòng)計(jì)算刀具長(zhǎng)度補(bǔ)償時(shí)調(diào)用[2]。
指令格式:G31 Z___;
G31為非模態(tài)指令,Z后數(shù)值為未跳轉(zhuǎn)時(shí)Z軸的指令位置。
在執(zhí)行G31G91X100.0;Y50.0;時(shí),如果沒(méi)有跳過(guò)信號(hào),如圖1所示。則按圖中的虛線執(zhí)行,即按程序指令位置執(zhí)行,如果跳過(guò)信號(hào)有效,則按圖中實(shí)線執(zhí)行,而剩余運(yùn)動(dòng)量不再執(zhí)行。
圖1 G31跳轉(zhuǎn)功能的執(zhí)行Fig.1 Execution of G31 Jump Function
目前的數(shù)控系統(tǒng)對(duì)于常規(guī)的直線和圓弧輪廓,可以直接采用直線和圓弧插補(bǔ)指令編程,而對(duì)于非圓曲線輪廓(如橢圓、拋物線等),則沒(méi)有直接的插補(bǔ)指令,必須借助于系統(tǒng)的宏指令功能,采用直線或圓弧小段不斷逼近曲線輪廓,從而實(shí)現(xiàn)非圓曲線輪廓的編程,這是宏指令功能的最基本應(yīng)用[3]。但宏指令的功能遠(yuǎn)比這種應(yīng)用要強(qiáng)大,借助于該功能用戶(hù)可以在數(shù)控系統(tǒng)基本編程功能不能滿(mǎn)足需要時(shí)進(jìn)行編程功能的擴(kuò)展,實(shí)現(xiàn)旋轉(zhuǎn)簡(jiǎn)化編程、自動(dòng)去余量編程、縮放編程、循環(huán)編程等功能。也可以利用宏功能對(duì)數(shù)控系統(tǒng)的控制功能進(jìn)行二次開(kāi)發(fā),實(shí)現(xiàn)工件的自動(dòng)計(jì)數(shù)、自動(dòng)刀具補(bǔ)償和刀具管理等功能[4]。
表1 FANUC 0i系統(tǒng)的宏變量Tab.1 Macro Variables of FANUC 0i System
3.2.1 宏變量
#加變量號(hào)即可構(gòu)成一個(gè)宏變量,如#1,#10,#100等,宏變量可以賦值、運(yùn)算,可以被調(diào)用。
3.2.2 宏變量賦值
可以把常亮、變量、表達(dá)式的值賦給一個(gè)宏變量。如#1=10,#1=#1+1,#1=#2*SIN[#3],都是宏變量賦值的形式。如果給變量#1賦值#1=100,則常規(guī)編程G01X10Y10F100可寫(xiě)成G01X10Y10F#1,這樣常規(guī)編程變?yōu)閹в泻曜兞康木幊獭?/p>
3.2.3 宏變量的類(lèi)型
FANUC0i系統(tǒng)宏變量的類(lèi)型,如表1所示。通常在編寫(xiě)一般宏程序時(shí)只用局部變量實(shí)現(xiàn)賦值和運(yùn)算即可,但在用于讀寫(xiě)CNC運(yùn)行過(guò)程中各種數(shù)據(jù)時(shí),就需要用到系統(tǒng)變量。系統(tǒng)變量有只讀的,也有可讀寫(xiě)的。比如#3901是用于已加工零件計(jì)數(shù)的,如果在MDI方式下輸入#3901=100,然后執(zhí)行一下,則已加工零件的計(jì)數(shù)就變成100了[5]。系統(tǒng)變量有很多功能的,用系統(tǒng)變量可以讀和寫(xiě)刀具補(bǔ)償值,在編寫(xiě)刀具長(zhǎng)度自動(dòng)測(cè)量時(shí)用到的系統(tǒng)變量,如表2所示。
表2 與刀具補(bǔ)償值有關(guān)的系統(tǒng)變量Tab.2 System Variables Associated with Tool Compensation Values
實(shí)際應(yīng)用時(shí),具體要用到的系統(tǒng)變量數(shù)可根據(jù)所使用的刀具數(shù)及刀補(bǔ)數(shù)確定,有時(shí)還要將刀具長(zhǎng)度分為有外形有關(guān)的補(bǔ)償和與刀具磨損有關(guān)的補(bǔ)償,這樣需要的系統(tǒng)變量數(shù)就會(huì)多。而當(dāng)?shù)稁?kù)容量小或者需要的刀補(bǔ)數(shù)少時(shí),只使用變量#2001~#2400就足夠了[6]。
在使用跳轉(zhuǎn)功能時(shí),還需要獲取刀具當(dāng)前位置信息,所以還需要用到與位置信息有關(guān)的系統(tǒng)變量,如表3所示。
表3 與位置信息有關(guān)的系統(tǒng)變量Tab.3 System Variables Related to Location Information
表3中第1位代表軸號(hào)(從1~3)。如前所述,當(dāng)G31程序段中跳轉(zhuǎn)信號(hào)接通時(shí),刀具位置就會(huì)自動(dòng)存儲(chǔ)在系統(tǒng)變量#5061~5063,當(dāng)G31程序段中跳轉(zhuǎn)信號(hào)接未通時(shí),這些變量中存儲(chǔ)指定程序段的終點(diǎn)值[7]。
為了自動(dòng)獲取刀具長(zhǎng)度補(bǔ)償值,用宏程序編制使用接觸式傳感器自動(dòng)測(cè)量刀具長(zhǎng)度補(bǔ)償值的程序,如圖2所示。
具體測(cè)量動(dòng)作如下:
(1)在XY面上將刀具快速定位到測(cè)量位置上。
(2)給定當(dāng)前刀具長(zhǎng)度補(bǔ)償值。
(3)Z軸向下移動(dòng)#1的距離(移至測(cè)量趨近點(diǎn))。
(4)使用G31跳轉(zhuǎn)功能,使Z軸向下移動(dòng)2*#2的距離。
(5)進(jìn)行長(zhǎng)度補(bǔ)償值測(cè)量,隨后Z軸返回測(cè)量起始點(diǎn)。
系統(tǒng)自動(dòng)計(jì)算刀具長(zhǎng)度補(bǔ)償量,寫(xiě)入相應(yīng)的刀具補(bǔ)償存儲(chǔ)器中。
圖2 刀具長(zhǎng)度自動(dòng)測(cè)量Fig.2 Automatic Measurementof Tool Length
這里需要注意的是,存儲(chǔ)在系統(tǒng)變量#5063中的Z軸的跳轉(zhuǎn)信號(hào)位置是讀取跳轉(zhuǎn)信號(hào)時(shí)的指令位置。而機(jī)床的伺服系統(tǒng)都存在伺服位置偏差量,在確定跳轉(zhuǎn)信號(hào)位置時(shí),必須考慮伺服位置偏差量。從系統(tǒng)自動(dòng)讀取的跳步位置減去伺服位置偏差量,即可求出正確的跳轉(zhuǎn)信號(hào)位置[8]。
通常跳轉(zhuǎn)功能在進(jìn)給速度倍率模式時(shí)無(wú)效,在計(jì)算伺服位置偏差量時(shí),是按如下公式進(jìn)行。
伺服回路增益由參數(shù)1825中得到。
進(jìn)給跳轉(zhuǎn)時(shí),系統(tǒng)會(huì)自動(dòng)讀取診斷畫(huà)面顯示的伺服位置偏差量。伺服位置偏差的診斷號(hào)為300號(hào)。從上面公式可以看出,改變跳轉(zhuǎn)進(jìn)給功能的進(jìn)給速度時(shí),伺服位置偏差量也會(huì)發(fā)生變化[9-10]。
這里使用非模態(tài)調(diào)用指令G65,其調(diào)用格式為:
G65 P__L__<自變量表>;
P為被調(diào)用的程序號(hào),L為重復(fù)調(diào)用次數(shù),自變量表為傳遞到宏變量的數(shù)據(jù)內(nèi)容。
(1)調(diào)用程序編寫(xiě)
G65P1111Hh;
H為刀具長(zhǎng)度補(bǔ)償號(hào)(#11)。
(2)測(cè)量宏程序編寫(xiě)
O1111;
#20=#4001;G00、G01、G02、G03 等模態(tài)信息
#21=#4003;G90、G91等模態(tài)信息
#22=#4109;F代碼
#1=300;原點(diǎn)與趨近點(diǎn)的距離
#2=100;傳感器與趨近點(diǎn)的距離
G28G91Z0;
#4=#5003;存機(jī)床原點(diǎn)的絕對(duì)坐標(biāo)值(在工件坐標(biāo)系中)
G00G90G53X200.0Y150.0;在機(jī)床坐標(biāo)系中使X、Y軸快速定位到傳感器上方
G91G43Z-#1H#11;Z軸快速下移#1的距離到趨近點(diǎn),長(zhǎng)度補(bǔ)償有效
#5=#5003-#2;計(jì)算傳感器表面絕對(duì)坐標(biāo)值(在工件坐標(biāo)系中)
G31Z-[#2*2]F300;使用跳轉(zhuǎn)功能測(cè)量
G00G90G49Z#4;Z軸退回測(cè)量起始點(diǎn)(機(jī)床原點(diǎn))
#6=#5063-#[11000+#11];接觸到傳感器時(shí)的絕對(duì)坐標(biāo)(在工件坐標(biāo)系中)
IF[#6LE[#5-#2]]GOTO8;若刀具長(zhǎng)度不夠沒(méi)接觸到傳感器,則轉(zhuǎn)到N8
#[11000+#11]=#5063-#5;求刀具長(zhǎng)度補(bǔ)償值,存入補(bǔ)償號(hào)#11對(duì)應(yīng)的系統(tǒng)變量 #[11000+#11]中
G#20G#21F#22;讀取當(dāng)前模態(tài)代碼信息
M99;
N8#3000=1(無(wú)法測(cè)量);
為了驗(yàn)證程序自動(dòng)測(cè)量的正確性,編制確認(rèn)程序進(jìn)行驗(yàn)證,如圖3所示。將接觸式傳感器固定在機(jī)床工作臺(tái)上,其中心在機(jī)床坐標(biāo)系中的位置為X200、Y150,將其檢測(cè)接口與PLC的輸入端連接,輸入信號(hào)(SKIP)的地址是X4.7。加工中心上安裝有兩把刀,1號(hào)刀的長(zhǎng)度為100,2號(hào)刀的長(zhǎng)度為120。先將1號(hào)刀換到主軸上,作為標(biāo)刀進(jìn)行對(duì)刀,以傳感器上表面為Z向零點(diǎn),再將2號(hào)刀換到主軸上,用測(cè)量宏程序通過(guò)實(shí)驗(yàn)測(cè)量2號(hào)刀的長(zhǎng)度補(bǔ)償值。實(shí)驗(yàn)過(guò)程中,數(shù)控系統(tǒng)得到PLC的觸發(fā)信號(hào),即SKIP信號(hào)由“0”置“1”時(shí),G31指令便會(huì)發(fā)生跳轉(zhuǎn),緊接著由測(cè)量宏程序自動(dòng)完成2號(hào)刀具長(zhǎng)度補(bǔ)償值的測(cè)量及存儲(chǔ)。按下面的步驟進(jìn)行實(shí)驗(yàn)并驗(yàn)證測(cè)量結(jié)果的準(zhǔn)確性。
圖3 刀具長(zhǎng)度測(cè)量實(shí)驗(yàn)現(xiàn)場(chǎng)Fig.3 Experiment Site of Tool Length Measurement
(1)在1號(hào)刀具長(zhǎng)度補(bǔ)償?shù)刂分校斎霚y(cè)量前的刀具長(zhǎng)度補(bǔ)償量100.0。
(2)執(zhí)行下列程序,確認(rèn)動(dòng)作。
O0001;
G28G91X0Y0Z0;
G92X0Y0Z400.0;
G65P1111H1;
M30;
(3)用G31指令Z軸下降時(shí),當(dāng)?shù)毒呓佑|到傳感器表面時(shí),輸入跳轉(zhuǎn)信號(hào)。
(4)程序結(jié)束后,查看刀具補(bǔ)正畫(huà)面,如圖4所示。1號(hào)長(zhǎng)度補(bǔ)償?shù)刂分性O(shè)定的刀具長(zhǎng)度補(bǔ)償量為20。
圖4 刀具長(zhǎng)度補(bǔ)償值的自動(dòng)測(cè)量結(jié)果Fig.4 Automatic Measurement Result of Tool Length Compensation Value
(1)測(cè)量起點(diǎn)絕對(duì)位置#4=400;(2)趨近點(diǎn)絕對(duì)位置#4-#1=100;(3)傳感器表面絕對(duì)位置 #5=#5003-#2=100-100=0;(4)由于 2號(hào)刀比1號(hào)刀長(zhǎng)20,刀具接觸到傳感器時(shí)的跳轉(zhuǎn)位置#5063=20;(5)刀具長(zhǎng)度補(bǔ)償值 #[11000+#11]=#5063-#5=20。通過(guò)分析,刀具長(zhǎng)度補(bǔ)償值應(yīng)為20,而實(shí)驗(yàn)得出的1號(hào)長(zhǎng)度補(bǔ)償?shù)刂分性O(shè)定的刀具長(zhǎng)度補(bǔ)償量為也20,理論分析與實(shí)驗(yàn)結(jié)果相吻合。
實(shí)驗(yàn)過(guò)程和結(jié)果說(shuō)明這種方法的正確性和可行性,用宏功能編制程序?qū)崿F(xiàn)刀具長(zhǎng)度補(bǔ)償量的自動(dòng)測(cè)量,不需要購(gòu)買(mǎi)專(zhuān)門(mén)的對(duì)刀儀,既節(jié)省了成本,又方便機(jī)床操作者使用,可以廣泛應(yīng)用在加工中心刀具自動(dòng)換刀時(shí)的刀具長(zhǎng)度補(bǔ)償設(shè)置中。