教你數控宏程序編程

數學 技術 數控編程技巧 數控編程技巧 2017-09-23

一. 什麼是宏程序?

用變量的方式進行數控編程

二. 宏程序與普通程序的區別。

普通程序: 只能使用常量

宏程序: 可以使用變量,並給變量賦值

普通程序: 常量之間不可以運算

宏程序: 變量之間可以運算

普通程序: 程序只能順序執行,不能跳轉

宏程序: 程序可以跳轉

三. 變量

#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,

相關推薦

推薦中...