宏程序作為數(shù)控編程的一種方法,具有編程簡(jiǎn)單、修改方便及程序量小等優(yōu)點(diǎn)。宏程序分為A類和B類,在一些較老的FANUC數(shù)據(jù)系統(tǒng)中采用A類宏程序,現(xiàn)在較先進(jìn)的系統(tǒng)中則采用B類宏程序。B類宏程序是使用變量進(jìn)行編程的,變量分為局部變量(#1~#33)、公共變量(#100~#149、#500~#549)和系統(tǒng)變量(#1000~)。對(duì)于局部變量和公共變量的使用,經(jīng)過短期的學(xué)習(xí)很容易掌握,而系統(tǒng)變量一般不會(huì)輕易地使用和更改,但是如果能夠掌握好,使用系統(tǒng)變量可以實(shí)現(xiàn)一些特殊的功能。
在加工時(shí),當(dāng)刀具發(fā)生磨損需要改變磨損值時(shí),為了及時(shí)提醒操作者進(jìn)行換刀以及防止操作者更改錯(cuò)誤,可以通過在程序中的設(shè)定,使刀具半徑補(bǔ)償的磨損量控制在一定的范圍,超出這個(gè)范圍時(shí)程序就會(huì)產(chǎn)生報(bào)警而無法執(zhí)行程序。
用系統(tǒng)變量可以讀寫刀具補(bǔ)償值,通過對(duì)系統(tǒng)變量賦值,可以設(shè)定刀具補(bǔ)償值范圍。在FANUC0i系統(tǒng)中,刀具補(bǔ)償分為幾何補(bǔ)償和磨損補(bǔ)償,刀具補(bǔ)償號(hào)可達(dá)400個(gè)。當(dāng)補(bǔ)償號(hào)小于等于200時(shí),刀具長(zhǎng)度補(bǔ)償也可以使用#2001~#2400,補(bǔ)償號(hào)與刀具長(zhǎng)度補(bǔ)償值(H)和刀具半徑補(bǔ)償值(D )的對(duì)應(yīng)關(guān)系如附表所示。
下面以刀具半徑磨損補(bǔ)償系統(tǒng)變量為例進(jìn)行說明。當(dāng)加工某個(gè)零件的輪廓時(shí),如果想要將刀具補(bǔ)償?shù)哪p值控制在-0.2~0mm的范圍內(nèi),通過編程設(shè)定可以對(duì)該刀具的磨損值進(jìn)行判斷,如果磨損值在-0.2~0mm范圍內(nèi)繼續(xù)執(zhí)行程序,超出范圍則機(jī)床報(bào)警,顯示報(bào)警信息。假設(shè)使用1號(hào)刀具T1,刀具半徑補(bǔ)償號(hào)為1,它所對(duì)應(yīng)的刀具半徑磨損補(bǔ)償系統(tǒng)變量號(hào)為#12001。具體程序如下:
?
O1200
N10 T1 M6
N20 G90 G54 G00 G40 Z100.
N30 S2000 M03
N40 G43 H5 Z30. M08
N50 G00 X__ Y__ (刀具到達(dá)下刀位置)
N60 G00 Z-5.0
N70 #1=#12001 (將補(bǔ)償號(hào)1的磨損補(bǔ)償值賦值給#1)
N80 IF[#1 LE -0.2] GOTO 110
(判斷#12001的值,如果≤-0.2,轉(zhuǎn)到程序段110)
N90 IF[#1 GE 0.0] GOTO 110 (判斷#12001的值,如果≥0,轉(zhuǎn)到程序段110)
N100 GOTO 120
N110 #3000=80 (range error)
(顯示報(bào)警號(hào)為3080,內(nèi)容為range error的報(bào)警信息)
N120 G01 G41 X__ Y__ D1 F200
…
N200 G01G40 X__ Y__ (N120~N200 輪廓軌跡程序略)
N210 Z100.
N220 M05
N230 M30
當(dāng)?shù)毒咻^多時(shí)的編程方法
(以兩把刀具為例):
O1000
T5 M6
G90 G54 G0 G40.
S2000 M03
G43 H5 Z100. M08
G00 X__ Y__ (刀具到達(dá)下刀位置)
Z2.
G0 Z-5. F1000
#30=5 (等于刀具號(hào)數(shù))
M98 P10
G01 G41 X__ Y__ D5F200
…
G01G40 X__ Y__
G0 Z100.
T6 M6
G90 G54 G0 G40 X-60. Y-60.
S2000 M03
G43 H6 Z100. M08
Z2.
G0 Z-5. F1000
#30=6 (等于刀具號(hào)數(shù))
M98 P10
G01 G41 X__ Y__ D6F200
…
G01G40 X__ Y__
G0 Z100.
M05
M30
%
O10
#1=12000
#2=#[#1+#30] (確定刀具半徑磨損補(bǔ)償系統(tǒng)變量號(hào))
IF[#2 LE -0.2] GOTO 60 (判斷#2的值,如果≤-0.2,轉(zhuǎn)到程序段60)
IF[#2 GE 0.0] GOTO 60 (判斷#2的值,如果≥0,轉(zhuǎn)到程序段60)
GOTO 70
N60 #3000=80(range error)
N70 M99
?
同理,也可以像上述一樣控制刀具長(zhǎng)度補(bǔ)償值。
?
采用該方法的好處有以下兩個(gè)方面:
①可以避免修改磨損值時(shí)的誤操作?,F(xiàn)在很多企業(yè)機(jī)床編程和機(jī)床操作人員是分開的,不允許操作者修改程序,但可以修改刀具磨損補(bǔ)償值,當(dāng)?shù)毒吣p或工件尺寸變化需要修改刀具磨損補(bǔ)償值時(shí),為了防止操作者在修改刀具磨損補(bǔ)償值時(shí)輸入錯(cuò)誤,造成工件的報(bào)廢和刀具的損壞,可以將磨損值限定在一定的范圍內(nèi),如果超出范圍程序會(huì)停止執(zhí)行并產(chǎn)生報(bào)警信息。
②可以保證工件的尺寸精度和表面粗糙度值,當(dāng)?shù)毒叩那邢魅心p到一定程度,就需要更換刀具。也就是補(bǔ)償值達(dá)到一定值時(shí),產(chǎn)生報(bào)警,從而提醒或強(qiáng)制操作者更換刀具,避免操作者一味地去改變刀具磨損補(bǔ)償值。