一. 什麼是宏程序?
用變量的方式進行數控編程
二. 宏程序與普通程序的區別。
普通程序: 只能使用常量
宏程序: 可以使用變量,並給變量賦值
普通程序: 常量之間不可以運算
宏程序: 變量之間可以運算
普通程序: 程序只能順序執行,不能跳轉
宏程序: 程序可以跳轉
三. 變量
#1~#33
在宏程序中儲存數據,在程序中對其賦值。賦值是將一個數據賦予一個變量。例如#1=0,表示#1的值就是0,其中#1代表變量,#是變量符號,0就是給變量#1賦的值。
例如
G0 X0 Y0;
G01 X100 F500 ;
#1=100 ;
#2=50 ;
G0 X0 Y0;
G01 X#1F500;
G01 X[#1+#2]F500;
四. 變量之間的運算
變量之間可以進行加,減,乘,除函數等各種運算
例如
#1=60;
#2=SIN#1;
運算順序和一般數學上的定義相同
例如
#1=#2+3*SIN#4
括號嵌套
最裡層的括號優先
例如
#6=COS[[[#5+#4]*#3+#2]*#1]
比較難理解的一種情況
#1=10;
G0 X#1 Y0;
#1=#1+1;
G0 X#1 Y0;
五. 轉移和循環
在程序中使用GOTO和IF可以改變程序執行順序
1. GOTO 語句—--無條件轉移
例如
G0 X0 Y0;
G01 X100 Y100 F100;
X500;
GOTO 01;
Y500;
N01 X550;
Y550;
G0 Z200;
2. IF語句
1).IF[條件表達式]GOTO n
如果指定的表達式滿足,則轉移到標有順序號n 的程序段,如果不滿足指定的條件表達式,則順序執行下一個程序段。
例如
IF[#1 GT 100] GOTO 01;
G0 X0 Y0;
N01 X200;
運算符 含義
EQ 等於 =
NE 不等於 ≠
GT 大於 >
GE 大於或等於 ≥
LT 小於 <
LE 小於或等於 ≤
典型例子
#1=0;
#2=1;
N1;
IF[#2 GT 100] GOTO 02;
#1= #1+#2;
#2= #2+#1;
GOTO 01;
N2 M30;
3.循環(WHILE語句)
在WHILE後製定一個條件表達式,當指定條件滿足時,則執行從DO到END之間的程序,否則,轉到END後的程序段
例如
#2=10;
#3=20;
WHILE[#2 LT #3]DO01;
#2=#2-1;
END01;
實例運用
O2012(螺旋銑孔)
#1=50;圓孔直徑
#2=40;圓孔深度
#3=30;刀具直徑
#4=0;Z座標設為自變量,賦值為0
#10=1;Z座標每次遞增量
#5=[#1-#3]/2;刀具迴轉直徑
S1000 M3;
G54 G90 G00 X0 Y0 Z30;
G00 X#5
Z[-#4+1];
G01 Z-#4 F200;
WHILE[#4 LT #2]DO01;
#4= #4+#10;
G03 I-#5 Z-#4 F1000;
END 01;
G03 I-#5;
G01 X[#5-1];
G0 Z100;
M30;
O2013(群孔)
#1=40;最內圈孔圓心所在直徑
#2=30;每列孔間隔
#3=12;孔的列數
#4=10; 空間隔
#5=6;每列孔個數
S1000 M3;
G54 G90 G00 X0 Y0 Z30
G16;
#6=1;
WHILE[#6 LE #3]DO 01;
#7=1;
WHILE[#7 LE #5]DO 02;
#8= #1/2+[#7-1]*#4
#9= [#6-1]*#2;
G98 G81 X#8 Y#9 Z-60 R3 F100;
#7=#7+1;
END 02;
#6=#6+1;
END 01;
G80 Z30;
G15;
M30;
O2013(可變式深孔鑽)
#1=3;每次進給錢的緩衝高度
#2=20;第一次鑽深
#3=0.5;遞減比例
#4=35;孔總深的
#5=5.;R點
M3 S1000;
G54 X0 Y0;
G0 Z#5;
WHILE[#4 GT 0] DO 01;
G01 Z-#2 F1000;
G0 Z#5;
Z[-#2+#1];
#7=#2*#3;
#2=#2+#7;
#4=#4-#2;
END 01;
G0 Z100;
M30;
O2014(銑平面)
#1=1000;工件長度
#2=1000;工件寬度
#3=10;刀具直徑
#4=-#2/2;Y設為自變量,初始值賦值為-#2/2
#14=0.8*#3;遞增量
#5=[#1+#3]/2+2.;開始X座標
S1000 M3;
G54 G90 G00 X0 Y0 Z30;
X#5 Y#4;
Z0;
WHILE[#4 LT #2/2] DO01;
G01 X-#5 F1000;
#4= #4+#14;
Y#4;
X#5;
#4= #4+#14;
Y#4;
END 01;
G0 Z30;
M30;
另一種編程方式
#1=1000;工件長度
#2=1000;工件寬度
#3=10;刀具直徑
#4=-#2/2;Y設為自變量,初始值賦值為-#2/2
#14=0.8*#3;遞增量
#5=[#1+#3]/2+2.;開始X座標
S1000 M3;
G54 G90 G00 X0 Y0 Z30;
X#5 Y#4;
Z0;
N01 G01 X-#5 F1000;
#4= #4+#14;
Y#4;
X#5;
#4= #4+#14;
Y#4;
IF [#4 LT #2/2] GOTO 01;
G0 Z30;
M30,