機械FANUC宏程序知識-數(shù)控機床參考資料工程課件
《機械FANUC宏程序知識-數(shù)控機床參考資料工程課件》由會員分享,可在線閱讀,更多相關(guān)《機械FANUC宏程序知識-數(shù)控機床參考資料工程課件(43頁珍藏版)》請在裝配圖網(wǎng)上搜索。
1、一.宏程序概念 所謂宏程序是以變量的組合,通過各種算術(shù)和邏輯運算,轉(zhuǎn)移和循環(huán)等命令,而編制的一種可以靈活運用 的程序。即數(shù)控程序中含有變量的程序稱為宏程序。只要改變變量的值,即可完成不同的加工或操作。宏程序可以簡化程序的編制,提高工作效率。加工程序中可以像調(diào)用子程序一樣用一個簡單指令即可調(diào)用宏程序。1.變量 宏程序中使用的變量與日常生活中使用的變量不同,變量用符號“#”后跟變量的變量號指定。變量可分為四種類型。A.空變量#0為空變量,該變量不能賦值。我們將尚未定義變量值的狀態(tài)叫做“空值”。變量#0、#3100 永遠是空變量,它不能寫入,但能讀取。(a)引用變量在引用一個尚未定義的變量時,地址本
2、身也被忽略。原來的指令 G90 X100 Y#1#1=空值時的等效指令 G90 X100時的等效指令 G90 X100 Y0(b)定義替換、加法運算、乘法運算、將局部變量或公共變量直接替換為空值時,其結(jié)果也為空值。將系統(tǒng)變量直接替換為空值時,或者替換使用空值運算出來的結(jié)果是,均作為變量值0 來對待。原來的運算式子(局部變量例)#2=#1#2=#1*5#2=#1+#1替換結(jié)果(#1=空值時)空值00替換結(jié)果(#1=0 時)000原來的運算式子(公共變量)#100=#1#100=#1*5#100=#1+#1替換結(jié)果(#1=空值時)空值00替換結(jié)果(#1=0 時)000原來的運算式子(系統(tǒng)變量)#2
3、001=#1#2001=#1*5#2001=#1+#1替換結(jié)果(#1=空值時)000替換結(jié)果(#1=0 時)000(c)比較運算若是EQ 和NE 的情形,空值和0 被判定為不同的值。若是GE、GT、LE、LT 的情形,空值和0 被判定為相同的值。將空值代入#1 時條件表達式的表達方式#1 EQ#0#1 NE#0#1 GE#0#1 GT 0#1 LE#0#1 LT 0評價結(jié)果 成立成立(真)成立(真)成立(真)不成立(假)成立(真)不成立(假)將0 代入#1 時條件表達式的表達方式#1 EQ#00#1 NE 0#1 GE#0#1 GT 0#1 LE#0#1 LT 0評價結(jié)果 成立成立(真)成立(
4、真)成立(真)不成立(假)成立(真)不成立(假)B.局部變量#1#33為局部變量,局部變量只能在宏程序中存儲數(shù)據(jù)。當斷電時局部變量被初始化為空,調(diào)用宏程序時,自變量對局部變量賦值。局部變量的數(shù)值范圍最大值約10308;最小值:約10-308,如果計算結(jié)果超過該范圍則發(fā)出P/S報警No.111。C.公共變量#100#199、#500#999為公共變量,公共變量在不同的宏程序中意義相同。當斷電時,變量#100#199被初始化為空,變量#500#999的數(shù)據(jù)不會丟失。全局變量的數(shù)值范圍10-291047或-1047-10-29,如果計算結(jié)果超過該范圍則發(fā)出P/S報警No.111。D.系統(tǒng)變量#100
5、0為系統(tǒng)變量,系統(tǒng)變量用于讀和寫CNC運行時的各種數(shù)據(jù),如刀具的當前位置和補償 值等。2.變量的運算 對宏程序中的變量可以可以進行算術(shù)運算和邏輯運算 A.算術(shù)運算 可以進行加、減、乘、除運算。舉例:G00X#1+#2X坐標的值是變量1與變量2之和。B.三角函數(shù)計算對宏程序中的變量可進行正弦(SIN)、反正弦(ASIN)、余弦(COS)、反余弦(ACOS)、正切(TAN)、反正切(ATAN)函數(shù)運算。三角函數(shù)中的角度以度為單位。變量運算功能算術(shù)運算算術(shù)運算加法#i=#j+#k#1=#2+#3 減法#i=#j-#k#1=#2-#3乘法#i=#j*#k#1=#2*#3除法#I=#j/#k#1=#2/
6、#3三角函數(shù)運算三角函數(shù)運算正弦#i=SIN#j#1=SIN#2反正弦#i=ASIN#j#1=ASIN#2余弦#i=COS#j#1=COS#2反余弦#i=ACOS#j#1=ACOS#2正切#i=TAN#j#1=TAN#2反正切#i=ATAN#j#1=ATAN#2其它函數(shù)運算平方根#i=SQRT#j#1=SQRT#2絕對值#i=ABS#j#1=ABS#2舍入#i=ROUN#j#1=ROUN#2上取整#i=FIX#j#1=FIX#2下取整#i=FUP#j#1=FUP#2自然對數(shù)#i=LN#j#1=LN#2指數(shù)對數(shù)#i=EXP#j#1=EXP#2邏輯運算與#i=#jAND#k#1=#2AND#3或#
7、i=#j OR#k#1=#2OR#3異或#i=#j XOR#k#1=#2XOR#3轉(zhuǎn)換運算 BCD轉(zhuǎn)BIN#i=BIN#j#1=BIN#2BIN轉(zhuǎn)BCD#i=BCD#j#1=BCD#23.關(guān)系運算1)等于(EQ)用EQ與兩個變量(或表達式)組成表達式,當運算符EQ兩邊的變量(或表達式)相等時,表達式的值為真,否則為假。例如,#1EQ#2,當#1與#2相等時,表達式的值為真。(2)不等于(NE)用NE與兩個變量或表達式組成表達式,當運算符NE兩邊的變量(或表達式)不相等時,表達式的值為真,否則為假。例如,#1NE#2,當#1與#2不相等時,表達式的值為真。(3)大于等于(GE)用GE與兩個變量或
8、表達式組成表達式,當左邊的變量(或表達式)大于或等于右邊的變量(或表達式)時,表達式的值為真,否則為假。例如,#1GE#2,當#1大于或等于#2時,表達式的值為真。否則為假。(4)大于(GT)用GT與兩個變量或表達式組成表達式,當左邊的變量(或表達式)大于右邊的變量(或表達式)時,表達式的值為真,否則為假。例如,#1GT#2,當#1大于#2時,表達式的值為真。否則為假(5)小于等于(LE)用LE與兩個變量或表達式組成表達式,當左邊的變量(或表達式)小于或等于右邊的變量(或表達式)時,表達式的值為真,否則為假。例如,#1LE#2,當#1小于或等于#2時,表達式的值為真。否則為假。(6)小于(LT
9、)用LT與兩個變量或表達式組成表達式,當左邊的變量(或表達式)小于右邊的變量(或表達式)時,表達式的值為真,否則為假。例如,#1GE#2,當#1大于#2時,表達式的值為真。否則為假。二.宏程序調(diào)用2.1 宏程序調(diào)用指令格式:G65 P_ L_ ;式中:P宏程序號;L重復(fù)調(diào)用次數(shù)(19999,1次時L可省略);用以對宏程序中的局部變量賦值。自變量賦值是由地址及數(shù)值構(gòu)成。2.2 自變量賦值自變量賦值自變量賦值二.宏程序調(diào)用1.宏程序調(diào)用的方法2.宏程序調(diào)用指令格式:G65 P_ L_ ;式中:P宏程序號;L重復(fù)調(diào)用次數(shù)(19999,1次時L可省略);用以對宏程序中的局部變量賦值。自變量賦值是由地址
10、及數(shù)值構(gòu)成。自變量賦值自變量賦值自變量賦值3.宏程序嵌套層數(shù)在G66后,用地址P為模態(tài)調(diào)用指定程序號;當需要重復(fù)次數(shù)時,可在地址L后指定從19999的數(shù)字。和簡單調(diào)用G65一樣,傳遞給宏程序的數(shù)據(jù)用實參指定。當指定G67指令時,后續(xù)程序段不再執(zhí)行模態(tài)調(diào)用。自變量賦值的地址與變量號碼之間的對應(yīng)關(guān)系參數(shù)6008.7=1時自變量賦值的地址與變量號碼之間的對應(yīng)關(guān)系6008.7=0例如:G65 P9301 A1.0 B2.0 I10 J12 K17;#1=1.0#2=2.0#4=10.0#5=12.0#6=17.01.控制指令1、無條件轉(zhuǎn)移(、無條件轉(zhuǎn)移(GOTO語句)語句)格式:GOTO n;式中:n
11、順序號(19999),可用變量表示。例如,GOTO6;語句組 N6 G00X100;執(zhí)行GOTO6語句時,轉(zhuǎn)去執(zhí)行標號為N6的程序段。2、條件轉(zhuǎn)移(、條件轉(zhuǎn)移(IF語句)語句)格式:IF 條件式條件式 GOTO n;條件式:O9100;#1=0;#2=1;N1 IF#2 GT 10 GOTO 2;#1=#1+#2;#2=#2+1;GOTO 1;N2 M30;#j EQ k#j EQ k#j 是否k#j#j GT#kGT#k#j 是否k#j GE k#j GE k#j 是否#k#j NE#k#j NE#k#j 是否#k#j LT#k#j LT#k#j 是否#k#j LE#k#j LE#k#j 是
12、否#k3、循環(huán)(、循環(huán)(WHILE語句)語句)格式:WHILE 條件式 DO m;END m;式中:m循環(huán)執(zhí)行范圍的識別號,只能是1.2.3注意:DOEND循環(huán)能夠按需要使用多次,即 循環(huán)嵌套。4.條件轉(zhuǎn)移(IF)格式:IF表達式THEN THEN后只能跟一個語句。例如,IF#1EQ#2THEN#3=0;當#1等于#2時,將0賦給變量#3。DOEND循環(huán)嵌套:循環(huán)嵌套:WHILE 條件式1 DO 1;WHILE 條件式2 DO 2;WHILE 條件式3 DO 3;END 3;END 2 END 1;舉例:求1到10之和。O9200;#1=0;#2=1;WHILE#2 LE 10 DO 1;#1
13、=#1+#2;#2=#2+1;END 1;M30;【例例1】圓周等份孔加工:圓周等份孔加工:在半徑I的圓周上鉆削H個等分孔,已知加工第一個孔的起始角度為A,相鄰兩孔之間角度的增量為B,圓周中心坐標為(x,y)。O7500;G90 G54 G00 X0 Y0 Z100;M03 S800;G65 P9500 X50.Y150.R10.Z-20.F300I120.A0 B45.H5;G00 X0 Y0 Z100.;M30;O9500;G99 G81 Z#26 R#18 F#9 L0;WHILE#11 GT 0 DO 1;#5=#24+#4*COS#1;#6=#25+#4*SIN#1;X#5 Y#6;
14、#1=#1+#2;#11=#11 1;END 1;G67;銑削內(nèi)半球體:銑削內(nèi)半球體:在數(shù)控銑床上用12球頭銑刀對半球體進行精加工。若用同一程序以及用不同半徑的刀具加工不同半徑的內(nèi)球體,編宏程序。O7400;G90 G54 G17 G00 X0 Y0;G43 Z5.H01 M08;M03 S900;G65 P9800 A35.B6.D5.;G00 Z5.M09;G91 G28 Z0;M30;O9800;#101=#1;#102=#2;#103=#1#2;#104=#7;G00 X#103;G01 Z0 F120;WHILE#104 LE 90 DO 1;#110=#103*COS#104;#1
15、20=#103*SIN#104;G01 X#110 Z#120 F80;G02 I#110;#104=#104+#7;END 1;M99;橢圓加工:橢圓加工:零件材料45鋼,毛坯為50mm100mm,按圖要求完成數(shù)控加工程序。S800 F150;#150=26.;N30 IF#150 LT 1 GOTO 40;M98 P0003;#150=#150-2;GOTO 30;N40 G0 X30.Z2.;S1500 F80;#150=0;M98 P0003;G0 X100.Z5.;M30;O0001;T0101;M03 S800;G0 X51.Z2.;G71 U1.5 R1.;G71 P10 Q20
16、 U0.5 W0.1 F150;N10 G1 X25.966;Z0.;Z-19.;X35.988 Z-29.;Z-46;X44.;X45.992 Z-47.;N20 Z-55.;G70 P10 Q20 S1000 F120;G00 X100.;Z50.;O0003;#101=20.;#102=13.;#103=20.;N20 IF#103 LT 1 GOTO 50;#104=SQRT#101*#101-#103*#103;#105=#102*#104/#101;G01 X2*#105+#150 Z#103 20;#103=#103 0.5;GOTO 20;N50 G00 U2.Z2.;M99橢
17、圓加工:橢圓加工:假定橢圓長軸(X向)、短軸(Y向)半長分別為A和B。編程條件:編程原點在橢圓中心,A=50,B=30,橢圓輪廓為外輪廓,下刀點在橢圓右極限點,刀具直徑18,加工深度10mm。O9800;G90 G54 G00 G17 G40;G43 Z50.H01;M03 S1000;X60.Y-15.;Z5.M08;G01 Z-12.F800;G42 X50.Y0.D01 F100;#1=0.5;(變量初始值變量初始值0.5度)度)WHILE#1 LE 360 DO 1;#2=50*COS#1;#3=30*SIN#1;G01 X#2 Y#3;#1=#1+0.5;END 1;G01 Y15.
18、;G00 G40 X60.;Z100.M30加工如下圖所示的橢圓表面,材料為中碳鋼。由于一般的數(shù)控系統(tǒng)無橢圓插補功能,手工編程可用宏程序?qū)崿F(xiàn)編程計算。本例使用20鍵槽銑刀分兩層銑削,每一次切削深度為5mm。按刀具刀具軌跡編程。主程序O0001N0001 G92X0.0Y0.0Z150.0;工件坐標系原點設(shè)在工件中心距頂面上N0002 M03S300;主軸正轉(zhuǎn),轉(zhuǎn)速N0003 G00X-80.0;刀具移至橢圓左端點處N0004 G00Z1.0;快速接近工件N0005 G01Z0.0F100.0 慢速接近工件N0006 G65P0100A80.0B50.0C-5.0(橢圓長半軸為80,短半軸為50
19、。Z向進刀5mm)N0007 G65P0100A80.0B50.0C-10.0橢圓長半軸為80,短半軸為50。Z向進刀5mmN0007 G00Z150.0;抬刀N0008 G00X0.0Y0.0;刀具回起點N0009 M05;主軸停N0010 M30;程序結(jié)束宏程序O1000#10=-#1;(#1為長半軸=80,#2為短半軸=50,#10為X坐標N1000 G01Z#3;(#3為Z向進刀深度WHIL#10LE#1DO1;(X坐標小于等于80循環(huán)加工上半橢圓#11=SQRT#1*#1-#10*#10*#2/#1;(#11為Y坐標用橢圓公式計算N1001 G01X#10Y#11F100.0;(切削
20、進給#10=#10+0.05;(修改X坐標,X+0.05END1;#10=#1;(#1為長半軸=80,#2為短半軸=50,#10為X坐標WHIL#10GE-#1DO2;(X坐標小于等于80循環(huán)加工下半橢圓#11=-SQRT#1*#1-#10*#10*#2/#1;(#11為Y坐標用橢圓公式計算N1002 G01X#10Y#11F100;(切削進給#10=#10-0.05;(修改X坐標,X-0.05END2;N1003 M99(返回主程序O1;G90 G54 G00 X0 Y0;G43 H2 Z100.M3 S1000;G01 Z0 M8 F200;#1=0.5.每刀進給量;N10;段落符號G01
21、 X488.F2000;Y#1;X0;Y(#1+0.5);#1=#1+1;IF#1LE320.GOTO10;如果#1小于等于320.就回到此段開頭G0 Z200.;M30;O100;#3=0;#1=30-tan10*#3;#2=30-tan10*#3+0.2;G90 G54 G00 X50.Y45.;G43 H1 Z100.M3 S1000;G1 X#1 Y#3 F100;Z0;N1;G1 X#1 Y-#3 F2000;X-#1;X-#2 Y-#3+0.2;X#2;#3=#3+0.4;IF#3LE28.356GOTO1;G0 Z100.;M30;O100;#1=tg10*#2+19.411;#
22、2=0;#3=75+#2/cos10.;G90 G54 G00 X25.Y0;G43 H1 Z100.M3 S1000;G1 X#1 Y#2 F100;Z0;N1;G1 X#1 Y#2 F2000;Z0;G2 X-#1 Y#2 R#3;G0 Z100.;#2=#2+0.2;IF#3LE100GOTO1;G0 Z200.;M30;O100;X=#1=tg45*#3+15;Y=#2=cos#5*20;Z=#3=sin#5*20;#5=0;G90 G54 G00 X#1+10.Y#2+10;G43 H1 Z100.M3 S1000;G1 X#1 Y#2 F100;Z#3;N1;G1 X#1 Y#2
23、F2000;Z#3;x-#1;G0 Z100.;#5=#5+1.;IF#3LE15GOTO1;G0 Z200.;M30;T0101M3S800G0X82Z5G0X76G1Z-40F0.2X82G0Z5G0X72G1Z-40F0.2X82G0Z5.G0X40G1Z-40F0.2X82G0Z5G0X150Z150M5M30從上面程序可以看出,每次切削所用程序都只是切削直徑X有變化,其他程序代碼未變。因此可以將一個變量賦給X,而在每次切削完之后,將其改變?yōu)橄麓吻邢魉弥睆郊纯伞?1=76 賦初始值,即第一次切削直徑N10 G0X#1 將變量賦給X,則X方向進刀的直徑則為#1變量中實際存儲值。N10是程序G1Z-40F0.2 段的編號,用來標識本段,為后面循環(huán)跳轉(zhuǎn)所用。#1=#1-4 每行切深為2mm,直徑方向遞減4mmIF#1GE40 GOGO 10 如果#1=40,即此表達式滿足條件,則程序跳轉(zhuǎn)到N10繼續(xù)執(zhí)行。G0X150Z150 當不滿足#1=40,即#1=40,即此表達式滿足條件,則程序跳轉(zhuǎn)到N10繼續(xù)執(zhí)行。M03S1200 當不滿足#1=40,即#140,則跳過循環(huán)判斷語句,由此句繼續(xù)向后執(zhí)行。G0X40 由此開始精加工G1Z-40F0.1X82G0X150Z150M5M30
- 溫馨提示:
1: 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。