副程式及巨集指令 -...
TRANSCRIPT
2
副程式
呼叫副程式指令格式: M98 Pp Hh Ll;
其中,p:指定副城市之程式號碼
h:指定副程式中開始執行之程式序號
l:副程式重覆執行次數
例:
M98 P1000 呼叫副程式 O1000,重覆執行次數 1次
M98 P2100 L3 呼叫副程式 O2100,重覆執行次數 3次
3
副程式
結束副程式指令格式: M99 Pp Ll;
其中,p:副程式結束後,返回呼叫程式之程式序號
l:變更副程式重覆執行次數
例:
M98 副程式結束,返回呼叫副程式的呼叫指令下一
單節
M98 P100 副程式結束,返回呼叫副程式的 N100 程式序號
單節
6
副程式:
O1201; 副程式開始
N05 G01 Z-10 F80; 進給至切削深度
N10 G91 X10; 增量模式,X 軸正向進給10mm
N15 Y40; Y 軸正向進給40mm
N20 X-10; X 軸負向進給10mm
N25 Y-40; Y 軸負向進給40mm
N30 G90 G00 Z5.0; 絕對模式,快速定位至 Z5.0mm
M99; 副程式結束
7
主程式:
O5555; 程式編號
N40 G92 X100.0 Y50.0 Z50.0 設定程式零點座標
N50 G90 G80; 工件主程式開始,安全機能
N55 T01 M06; 刀具交換
N60 G00 X15. Y15. S500 M03; 快速定位至 (15, 15),主軸正轉
N65 Z5.0; 快速定位至 Z5
M98 P1201; 呼叫副程式O1201切削槽穴 AN70 X55. Y15.; 快速定位至 (55, 15)M98 P1201; 呼叫副程式O1201切削槽穴 BN75 X55. Y85.; 快速定位至 (55, 85)
M98 P1201; 呼叫副程式O1201切削槽穴 C
N80 X15. Y85.; 快速定位至 (15, 85)
9
巨集指令
巨集指令:可視為具有將數值傳給變數、執行加工
指令、可作控制與分支即可作數學與邏
輯計算之副程式。
優點:具有可變參數的重覆切削型式加工較為方便。對於加工可用數學公式表示的複雜工件形狀,在編寫程式時較為方便。
減少程式編寫時間及錯誤發生,可增加程式設計者之生產力。降低程式大小。
10
巨集呼叫及返回指令
巨集呼叫指令
G65 Pp Aa Bb Cc ……
其中,P:巨集程式
p:巨集程式編號
A,B,C….:巨集程式變數位址
a,b,c……:指定給相對於A,B,C….變數的數值
巨集返回指令
M99 或 G86
19
操作指令1. 變數定義 #i = #j
2. 數學運算
加 #i = #j + #k
減 #i = #j - #k
乘 #i = #j * #k
除 #i = #j / #k
3. 邏輯運算
邏輯 OR(和)函數 #i = #j OR #k
邏輯 AND(乘)函數 #i = #j AND #k
邏輯互斥 OR 函數 #i = #j XOR #k
4. 函數
20
正弦函數(SIN) #i = #j * SIN [#k]
餘弦函數(COS) #i = #j * COS [#k]
正切函數(TAN) #i = #j * TAN [#k]
反正切函數(ATAN) #i = #j * ATAN [#k]
平方根(SQRT) #i = SQRT [#j]
絕對值(ABS) #i = ABS [#j]
BCD 轉換 BIN #i = BIN [#j]
BIN 轉換 BCD #i = BCD [#j]
四捨五入(ROUND) #i = ROUND [#j]
小數點以下捨去(FIX) #i = FIX [#j]
小數點以下進位(FUP) #i = FUP [#j]
22
控制指令
分支(跳躍)
條件式:
Di 等於 Dj (Di) EQ (Dj)Di 不等於 Dj (Di) NE (Dj)Di 大於 Dj (Di) GT (Dj)Di 小於 Dj (Di) LT (Dj)Di 等於或大於 Dj (Di) GE (Dj)Di 等於或小於 Dj (Di) LE (Dj)
26
面銑循環巨集指令程式
變數位址變 數 定 義X #24 沿 X 方向銑削的增量距離Y #25 沿 X 方向銑削的增量距離Z #26 切削深度J #5 Y 軸起始單步值F #9 進給率
G65 P1202 Xx Yy Zz Jj Ff
28
O1202;
N05 #31=FUP [#25/#5/2];
N10 #5=#25/#31/2;
N15 #32=1.0;
N20 G01 Z#26 F#9;
N25 IF [#32 GT #31] GOTO 60;
N30 G91 X#24;
N35 Y#5;
N40 X-#24;
N45 Y#5;
N50 #32=#32+1.0;
N55 GOTO 25;
面銑巨集程式編號
決定重複次數
計算新的單步前進值
設定 #32=1初始值
進給至欲切削的深度
#32 大於 #31 時跳至 N60 執行
增量座標系統,朝正X方向進變數內的
值
朝正Y方向進給單步前進值
朝負X方向進給 #24 變數內的值
朝正Y方向進給單步前進值
#32 值增量 1
非條件跳至 N25 執行
30
Example:在一 200x120 高度為 20mm 的工件上,利用直徑 20mm之端銑刀銑削一平面,XY 平面的零點定在工件之左前角。01203;
N5 G90 G80 G70 G40;
N10 T01 M06;
N15 G00 G54 X-12. Y6.;
N20 G43 H01 Z5. S500 M03;
N25 G65 P1202 X232. Y120.
Z-2. J18. F100;
N30 G00 Z10.;
N35 ;
安全機能
交換刀具 T01
設定工作零點,快速定位至面銑循
環起始點
刀具長度補正,快速定位Z5,主軸
正轉 500 RPM
呼叫面銑巨集程式
快速退回至Z10
31
矩形槽穴巨集指令程式變數位址 變 數 定 義
X #24 槽穴中心至邊界減刀具半徑值後 X 軸向距離Y #25 槽穴中心至邊界減刀具半徑值後的 Y 軸向距離Z #26 切削深度I #4 X 軸向單步進給量A #1 精切削預留量F #9 進給率
G65 P1024 Xx Yy Zz Ii Aa Ff
33
O1204;
N05 #24=#24-#1;
N10 #25=#25-#1;
N15 #31=FUP [#24/#4];
N20 #4=#24/#31;
N25 #32=#4*#25/#24;
N30 G01 Z#26 F#9;
N35 #33=1;
N40 IF [#33 GT #31] GOTO 80
N45 G91 G01 X#4 Y#32
N50 X[-2*#4*#33]
N55 Y[-2*#32*#33]
矩形槽穴巨集程式編號
從X 變數中得到X 軸的精銑邊界
從Y 變數中得到Y 軸的精銑邊界
決定切削次數
決定 X 軸向單步進給量
決定 Y 軸向單步進給量
進給至切削深度
設定變數 #33=1
分支指令
增量模式,在X,Y 方向進給切削至單步進
給位置
沿 X 負方向切削
沿 Y 負方向切削
34
N60 X[2*#4*#33]
N65 Y[2*#32*#33]
N70 #33=#33+1
N75 GOTO 40
N80 G01 X#1 Y#1
N85 X[-2*[#4*(#33-1]+#1]
N90 Y[-2*[#32*(#33-1] +#1]
N95 X[2*[#4*[#33-1] +#1]
N100 Y[2*[#2*[#33-1] +#1]
N105 X-[#4*[#33-1] +#1]
Y-[#32*[#33-1] +#1]
N110 M99;
沿 X 正方向切削
沿 Y 正方向切削
變數 #33 遞增 1
非條件跳至 N40
X, Y 方向同時作精銑切削進給量
沿 X 負方向切削
沿 Y 負方向切削
沿 X 正方向切削
沿 Y 正方向切削
返回槽穴中心
返回主程式
36
X 變數:槽穴中心至邊界減刀具半徑值後的 X 軸向距離。X=40-4=36mm 第一槽穴
X=30-4=26mm 第二槽穴
Y 變數:槽穴中心至邊界減刀具半徑值後的 Y 軸向距離。Y=30-4=26mm 第一槽穴
Y=40-4=36mm 第二槽穴
Z 變數:切削深度Z=-5mm 第一槽穴
Z=-7.5mm 第二槽穴
變數 I:X 軸向單步進給量I=7mm 第一槽穴
I=6mm 第二槽穴
A 變數:精切削預留量 A=1 第一、二槽穴
37
O1205;
N05 G90 G80 G40 G17;
N10 T05 M06;
N15 G00 G54 X60. Y60. S600 M03;
N20 G43 H5 Z10.;
N25 G65 P1204 X32. Y22. Z-10.
I10. F120.0 A1.;
N30 G00 Z10.;
N35 X150. Y60.;
N40 G65 L1204 X22. Y32. Z-15.
I8. F120.0 A1.;
N45 G00 Z10.;
程式編號
安全機能
刀具交換 T05
設定工作零點,快速定位至(60,60),
主軸正轉 600 RPM
刀具長度補正,快速定位至Z10
呼叫矩形槽穴巨集程式切削第一個
槽穴
快速退刀定位至Z10
快速定位至第二槽穴孔中心
呼叫矩形槽穴巨集程式切削第二個
槽穴
快速退刀定位至Z10
42
O1206;
G90;
#30=360.0/#19;
#18=#18-#7;
#31=1.0;
G00 X#24 Y#25;
G01 Z#26 F#9;
X [#24+#18];
WHILE [#31 LE #19] D01;
#32=#30*#31;
#33=#24+#18*COS [#32];
#13=#25+#18*SIN [#32];
G01 X#33 Y#13;
多邊形巨集程式編號
設定 G90
定義變數 #30,每邊的增量角度值
基圓實際半徑值
設定變數 #31 為 1.0
快速定位至多邊形中心
進給至切削深度
銑削至第一個多邊形頂點
重覆終結指令
定義至下一頂點的角度變數 #32
下一頂點的 X 座標
下一頂點的 Y 座標
銑削至下一個多邊形頂點
44
Example:基圓半徑 40mm,中心點(120,80)等六邊形之槽
穴,刀具為 10mm 之端銑刀。
O1207;
N05 G90 G80 G40 G17;
N10 T03 M06;
N15 G00 G54 X0.0 Y0.0 S1000
M03;
N20 G43 H3 Z10.;
N25 G65 P1206 X120. Y80.
Z-10. R9. D5. S6 F140;
N30 G65 P1206 X120. Y80.0
Z-10. R18. D5. S6 F140.;
安全機能
刀具交換 T03
工作零點設定,快速定位至 (0, 0)
主軸正轉 1000 RPM
刀具長度補正,快速定位至Z10
呼叫多邊形巨集程式 ( 第一次
呼叫 )
呼叫多邊形巨集程式 ( 第二次
呼叫 )
45
N35 G65 P1206 X120. Y80.
Z-10. R28. D5. S6 F140.;
N40 G65 P1206 X120. Y80.
Z-10. R36. D5. S6 F140.;
N45 G65 P1206 X120. Y80.
Z-10. R40.0 D5. S6 F140.;
N50 G00 Z10.;
N55 G91 G28 Z0.0 M05;
N60 G91 G28 X0.0 Y0.0;
N65 M30;
呼叫多邊形巨集程式 ( 第三次
呼叫 )
呼叫多邊形巨集程式 ( 第四次
呼叫
呼叫多邊形巨集程式 ( 第五次
呼叫 )
快速定位至Z10
主軸返回機械原點
X, Y 軸返回機械原點
程式結束
47
變數定義
變數位址 變 數 定 義A #1 長軸長度B #2 短軸長度I #4 單步進給角度增量R #18 基圓半徑X #24 橢圓 X 軸中心座標Y #25 橢圓 Y 軸中心座標Z #26 切削深度F #9 進給率
G65 P1208 Aa Bb Ii Rr Xx Yy Zz Ff
49
O1208;
G90;
G00 X#24 Y#25;
G01 Z#26 F#9;
#1=#1-#18;
#2=#2-#18;
#33=FUP [#1/2.0/#18];
#10=#33*1.0;
#3=#1/#33;
#30=1.0;
N10 #31=#30*#3;
#32=#31*#2/#1;
G01 X [#24+#31] F#9;
橢圓巨集程式
設定絕對座標系
快速定位至橢圓中心
進給至切削深度
重新計算長軸有效半徑
重新計算短軸有效半徑
計算槽穴重覆次數
將 #33 轉成實數
計算 X 軸向的單步距離
設定 #30=1.0
累計 X 軸單步距離總量
累計 Y 軸單步距離總量
進給至 X 軸向起始點
50
#5=0.0;
WHILE [#5 LT 360.0] D01;
#6=#31*COS [#5];
#7=#32*SIN [#5];
G01 X [#24+#6] Y [#25+#7];
#5=#5+#4;
END1;
#10=#10-1.0;
IF [#10 LE 0.0] GOTO 20;
#30=#30+1.0;
GOTO 10;
N20 G01 X#24 Y#25;
M99;
設定 #5=0
定義重覆迴圈
計算 X 軸座標
計算 Y 軸座標
進給至插補點
角度增量
迴圈終點單節
#10 遞減 1
分支單節
#30 遞增 1
非條件跳至 N10
進給至橢圓中心
返回主程式
51
Example:橢圓中心(100,60),長軸 40mm,短軸 30mm,刀
具半徑 4mm。
O1209;
N05 G90 G80 G40 G17;
N10 T07 M06;
N15 G00 G54 X100. Y60. S750
M03;
N20 G43 H06 Z10.;
N25 G65 P1208 A40.0 B30. I5.0
R8. X100.0 Y60.0 Z-10. F140;
N30 G00 Z10.;
N35 G91 G28 Z0.0 M05;
安全機能
刀具交換至 T07
工作零點設定,快速定位至(0, 0)
主軸正轉 750 RPM
刀具長度補正,快速定位至Z10
呼叫橢圓巨集程式
快速定位至Z10
主軸返回機械原點
55
變數定義
變數位址 變 數 定 義X #24 半圓球 X 軸中心座標Y #25 半圓球 Y 軸中心座標Z #26 半圓球 Y 軸中心座標A #1 角度 增量R #18 半圓球半徑D #7 球形端銑刀半徑S #19 圓形槽穴切削循環單步進給量F #9 進給率T #20 刀具直徑補正量儲存記憶體編號
( 此記憶體儲存值需保持為零 )
G65 P1210 Xx Yy Zz Aa Rr Ss Ff Tt Dd
56
O1210;
G90 G00 X#24 Y#25;
G01 Z#26 F#9;
#31 =0.0;
N2 #31 =#31+#1;
IF [#31 GE 90.0] GOTO 10;
#32= [#18-#7]*SIN [#31];
#33= [#18-#7]*COS [#31];
G01 Z [#26-#32] F#9;
#27 =FUP [#33/#19];
#19 =#33/#27;
#3 =0.0;
N5 #3=#3+1.0;
半球體巨集程式
絕對模式,快速定位至半球體中心
進給至半球體開始切削的深度
設定 #31=0
角度 增量值
分支指令
決定 X 座標 #32
決定 Y 座標 #33
進給切削至 Z 深度
決定圓切削的重覆次數
決定圓切削的單步距離
設定 #3=0
#4 遞增 1
57
#35 =#19*#3;
G01 X[#24+#4] H#20 F#9
G02 I#4 F#9;
#27=#27-1;
IF [#27 LE 0.0] GOTO 2
GOTO 5
N10 M99;
計算圓半徑值
圓切削指令
#27 遞減 1
分支指令
非條件跳至 N5
返回主程式
59
O1211;
N05 G90 G80 G40 G17;
N10 T02 M06;
N15 G00 G54 X60. Y60. S700
M03;
N20 G43 H02 Z10.;
N25 G65 P1210 X60. Y60. Z0.0
R20. D7.5 A3.0 S5. F140 T22;
N30 G00 Z10.;
N35 G65 P1210 X160. Y60. Z0.0
R10. D7.5 A3.0 S4. F140. T22;
N40 G00 Z10.;
安全機能
刀具交換至 T02
工作零點設定,快速定位至
(60,60),主軸正轉 700 RPM
刀具長度補正,快速定位至Z10
呼叫半球體巨集程式銑切第一
個半球體
快速退刀定位至Z10
呼叫半球體巨集程式銑切第二
個半球體
快速退刀定位至Z10