黃繼戰(zhàn),范玉,付紅
(1.江蘇建筑職業(yè)技術(shù)學(xué)院 智能制造學(xué)院,江蘇 徐州 221116; 2.徐州市模具新技術(shù)工程研究中心,江蘇 徐州 221116)
孔系加工在機(jī)械加工中極為普遍,其矩形陣列分布模式最為常見,對(duì)此類零件編程采用自動(dòng)編程和常量手工編程方法編制加工程序較為繁瑣,反復(fù)編程,效率低下,當(dāng)孔數(shù)量較多時(shí)更甚,且編制的程序冗長,使用不便。因此,本文研究采用宏指令編制通用的宏程序,只需改變參數(shù)值即可用于加工各種矩形陣列孔系,具有一定的現(xiàn)實(shí)意義和實(shí)用價(jià)值。
一組以子程序的形式存儲(chǔ)并帶有變量的程序稱為宏程序;調(diào)用宏程序的指令稱為宏程序調(diào)用指令[1]。FANUC 0i系統(tǒng)宏程序與普通數(shù)控程序最大的不同是采用變量編程,變量用符號(hào)“#”和變量號(hào)組成(#1,#2,#3,…),變量號(hào)還可以用總括號(hào)表示為表達(dá)式,數(shù)控編程時(shí)將跟在地址符后的數(shù)字用變量代替,即可實(shí)現(xiàn)變量的引用[2-3]。變量分為局部變量(#1 ~#33)、全局變量(#100 ~#149、#500 ~#549)和系統(tǒng)變量,編制加工類宏程序主要采用局部變量和全局變量。
變量的賦值有直接賦值和自變量賦值兩種。當(dāng)主程序使用G65非模態(tài)調(diào)用宏程序時(shí),通過自變量賦值可由局部變量對(duì)應(yīng)的地址(字母)向宏程序傳遞數(shù)據(jù)。宏程序的運(yùn)算與數(shù)學(xué)運(yùn)算相類似,用各種數(shù)學(xué)符號(hào)來表示,其指令能對(duì)變量執(zhí)行諸多算術(shù)、三角函數(shù)、輔助和邏輯運(yùn)算等,為宏程序的編制提供了有力的工具。宏程序的運(yùn)算優(yōu)先順序?yàn)楹瘮?shù)(SIN、COS、ATAN等)-乘除、邏輯與(*、/、AND)-加減、邏輯或、邏輯異或(+、-、OR、XOR等),數(shù)控編程時(shí)根據(jù)實(shí)際需要可用總括號(hào)改變運(yùn)算的先后順序[4]。
根據(jù)給定的條件進(jìn)行分析并作出決策是宏程序最強(qiáng)大的功能,也是宏程序具有智能的體現(xiàn)。宏程序借助IF和WHILE語句可以控制宏程序的流程,來實(shí)現(xiàn)宏程序的循環(huán)功能。分支語句格式:IF[條件表達(dá)式] GOTO n;它表示若條件表達(dá)式成立,則轉(zhuǎn)移到n程序段執(zhí)行,若條件表達(dá)式不成立,則程序執(zhí)行下一程序段。
WHILE語句格式如下:
當(dāng)條件表達(dá)式結(jié)果為真時(shí),程序執(zhí)行DOm和ENDm之間的循環(huán)體;當(dāng)條件結(jié)果為假時(shí),程序跳出循環(huán),執(zhí)行ENDm后的程序段[5]。另外,循環(huán)最多可三級(jí)嵌套,而且嵌套級(jí)之間不允許出現(xiàn)循環(huán)的交叉。
本文宏程序采用G65調(diào)非模態(tài)調(diào)用,編程格式:G65 P<p> L<l> <自變量賦值>;其中:<p>為要調(diào)用的宏程序號(hào),<l>為重復(fù)次數(shù),默認(rèn)為1,<自變量賦值>為主程序傳遞到宏程序的數(shù)據(jù)。
建立矩形陣列m×n孔系編程模型和編程坐標(biāo)系如圖1所示。編程坐標(biāo)系的XY坐標(biāo)軸零點(diǎn)為工件左下角點(diǎn),Z坐標(biāo)軸零點(diǎn)為工件上頂面。根據(jù)圖1編程模型定義矩形孔系參數(shù)和工藝參數(shù)變量如下:#24表示第一個(gè)孔中心的X坐標(biāo)值,#25表示第一個(gè)孔中心的Y坐標(biāo)值,#1行數(shù),表示第幾行,#4表示行間距,#2列數(shù),表示第幾列,#3表示列間距,#5表示孔系矩形列數(shù)(X向孔數(shù)),#6表示孔系矩形行數(shù)(Y向孔數(shù))。
圖1 矩形陣列孔系編程模型
設(shè)計(jì)本孔系加工刀具走刀路線為:先加工第1行,即從孔1.1開始加工,依次加工孔1.2→1.3→…→1.n,然后加工第2行,矩形陣列孔系編程所要考慮的主要是效率問題,因此為了減少刀具空行程,第2行從行尾開始加工,依次加工孔2.n→2.n-1→2.n-2…→2.1,接著加工第3行,從孔3.1開始加工,依次加工孔3.2→3.3→…→3.n,依次循環(huán),直至全部孔加工完畢。整個(gè)刀具走刀路線呈現(xiàn)蛇形S狀,使刀具空行程最短,加工路徑最優(yōu),加工效率最高。
基于上述孔系宏程序編程需要二級(jí)循環(huán)嵌套,一級(jí)循環(huán)完成矩形孔系自下而上的逐行加工功能;二級(jí)循環(huán)完成當(dāng)前行各孔的加工功能,若當(dāng)前行數(shù)為奇數(shù),二級(jí)循環(huán)自左而右加工各孔,若當(dāng)前行數(shù)為偶數(shù),二級(jí)循環(huán)自右而左加工各孔,如此便可實(shí)現(xiàn)矩形孔系所有孔的加工。具體編程流程為:首先,通過自變量賦值傳遞數(shù)據(jù)給宏程序的變量,行自變量賦初值為1。其次,一級(jí)循環(huán)進(jìn)行條件判斷,行自變量當(dāng)前值是否不大于行數(shù),當(dāng)條件結(jié)果為假時(shí),一級(jí)循環(huán)結(jié)束,當(dāng)條件結(jié)果為真時(shí),程序執(zhí)行一級(jí)循環(huán)體。接著,列自變量賦初值為1,二級(jí)循環(huán)進(jìn)行條件判斷,列自變量當(dāng)前值是否不大于列數(shù),當(dāng)條件結(jié)果為假時(shí),二級(jí)循環(huán)結(jié)束,當(dāng)條件結(jié)果為真時(shí),程序執(zhí)行二級(jí)循環(huán)體,判斷當(dāng)前行自變量值是否為偶數(shù),如果行自變量值不為偶數(shù),程序從左而右加工當(dāng)前孔,如果行自變量值為偶數(shù),程序從右而左加工當(dāng)前孔。然后,列自變量值遞增1,二級(jí)循環(huán)再進(jìn)行條件判斷,若條件結(jié)果為真,程序繼續(xù)執(zhí)行二級(jí)循環(huán)體,加工當(dāng)前行的下一個(gè)孔,周而復(fù)始,當(dāng)二級(jí)循環(huán)條件結(jié)果為假時(shí),程序跳出二級(jí)循環(huán)體,表示當(dāng)前行所有孔加工完畢。最后,行自變量值遞增1,一級(jí)循環(huán)再進(jìn)行條件判斷,若條件結(jié)果為真,程序繼續(xù)執(zhí)行一級(jí)循環(huán)體,加工下一行孔,周而復(fù)始,當(dāng)一級(jí)循環(huán)條件結(jié)果為假時(shí),程序跳出一級(jí)循環(huán)體,表示所有行加工完畢。
基于2.1節(jié)所述,根據(jù)FANUC 0i數(shù)控系統(tǒng)編程指令即可編寫宏程序代碼。為了便于宏程序編制及使用,列自變量地址和對(duì)應(yīng)的局部變量關(guān)系如表1所示。
表1 宏程序自變量和對(duì)應(yīng)的局部變量關(guān)系
編制的矩形孔系通用宏程序?yàn)椋?/p>
1)本程序各孔加工為固定循環(huán)G81方式,實(shí)際應(yīng)用中可根據(jù)工藝要求選擇固定循環(huán)其他方式,如鉆削深孔選擇G73或G83方式、高精度精鏜孔選擇G76方式、攻右旋螺紋選擇G84方式等,諸如此類,只需根據(jù)工藝要求修改程序中的程序段“N50 G98G81X#12Y#13Z#26R#18 F#9;”,即可應(yīng)用加工。
2)本程序采用的刀具走刀路線為雙向蛇形S狀,在生產(chǎn)中還有一種單向平行走刀路線較為常用,即先從左到右依次加工第一行各孔,再從左到右依次加工第二行各孔,依次類推,直至所有孔加工完畢。本程序僅需刪除下面若干程序段:IF [[#1 AND 1]EQ 0]GOTO 10;GOTO 50;N10 #12=#24+#3*[#5-#2];#13=#25+#4*[#1-1];即可用于本孔系采用單向平行走刀路線的加工。
3)如果各孔精度要求較低且孔徑較大時(shí),可采用立銑刀粗銑→精銑加工方案,這里僅需把宏程序O7001中的程序段“N50 G98G81X#12Y#13Z#26R#18F#9;”修改為“G00 X#12Y#13;”,再加上銑孔程序段群,并采用G91增量方式編程,或者將銑孔程序段群編制成為子程序,由本程序采用調(diào)用程序段“M98 PXXXX LXXXX;”調(diào)用。此外,本程序還可以推廣到非孔類加工的其他矩形陣列分布加工,程序處理方法與銑孔類似,不再贅述。
某矩形陣列分布孔系工程零件二維圖如圖2(a)所示,三維模型如圖2(b)所示。零件材料為鋁合金,本工序加工內(nèi)容是加工361個(gè)孔直徑為5 mm的19行×19列矩形孔系,深度為14 mm的通孔,精度等級(jí)為IT11,加工方案選擇為先用直徑3 mm的高速鋼中心鉆鉆各孔定心孔,再用直徑5 mm的高速鋼麻花鉆加工各孔。由于孔數(shù)目太多,采用普通手工編程或自動(dòng)編程極為繁瑣,費(fèi)力費(fèi)時(shí),程序冗長,因此確定采用前文所編制的宏程序。確定零件編程坐標(biāo)系X、Y坐標(biāo)軸零點(diǎn)在零件左下邊角點(diǎn),Z坐標(biāo)軸零點(diǎn)在零件上頂面。
經(jīng)分析圖2,可得本矩形孔系參數(shù)值為:列間距為19 mm,行間距為19 mm,列數(shù)(X向孔數(shù))為19個(gè),行數(shù)(Y向孔數(shù))亦為19個(gè),共計(jì)361個(gè)孔,左下角第1個(gè)孔中心X坐標(biāo)值為29 mm、Y坐標(biāo)值為29 mm。由于該孔系孔深與孔直徑的比值為14:5=2.8,該值小于5,定心孔亦如此,屬于淺孔加工,因此,鉆定心孔和鉆通孔均選擇固定循環(huán)G81方式加工。根據(jù)工件材料、刀具材料和機(jī)床等,確定有關(guān)工藝參數(shù)為:循環(huán)R點(diǎn)取3 mm,鉆定心孔時(shí)主軸轉(zhuǎn)速S取2500 r/min,進(jìn)給速度F取120 mm/min;鉆通孔時(shí)主軸轉(zhuǎn)速S取2000 r/min,進(jìn)給速度F取200 mm/min。
圖2 某零件矩形孔系
主程序通過G65非模態(tài)調(diào)用所編制的矩形孔系宏程序O7001,即可實(shí)現(xiàn)該零件的孔系加工。根據(jù)零件分析,加工本矩形孔系鉆中心孔自變量賦值:C19、I19、J19、K19、F120、R3、X29、Y29、Z-2,而鉆通孔自變量賦值只需將鉆定心孔自變量賦值F120改為F200,Z-2改為Z-15.5,這里考慮到鉆頭刀尖,鉆削深度為通孔深度14mm+刀尖高度1.5 mm=15.5 mm,其余保持不變。至此,可編制該零件孔系加工主程序?yàn)椋?/p>
加工實(shí)例表明,該宏程序短小精悍,可用于加工任意行數(shù)、任意列數(shù)的矩形均布孔系,使用時(shí)僅需改變孔系參數(shù)自變量賦值,像使用固定循環(huán)指令一樣方便,通用性強(qiáng),大幅縮短了此類零件矩形孔系編程和程序校驗(yàn)時(shí)間,提高了工作效率,能更好地發(fā)揮數(shù)控機(jī)床的性能,對(duì)類似的編程具有借鑒意義。