首页 理论教育 数控铣削加工宏程序调用的方法和步骤

数控铣削加工宏程序调用的方法和步骤

时间:2023-07-01 理论教育 版权反馈
【摘要】:G67:取消宏程序模态调用方式。加工程序使用模态调用。2)调用宏程序的程序:O0001;G28 G91 X0 Y0 Z0;G92 X0 Y0 Z50.0;G00 G90 X100.0 Y50.0;G66 P9110 Z-20.0 R0.0 F500;G90 X20.0 Y20.0;X50.0;Y50.0;X0.0 Y80.0;G67;M30;图2-28 用宏程序编制G81固定循环举例3)宏程序被调用的程序:O9110;#1=#4001;储存G00/G01#2=#4003;储存G90/G91#3=#4109;储存切削进给速度#5=#5003;储存钻孔开始的Z坐标G00 G90

数控铣削加工宏程序调用的方法和步骤

用户宏指令是调用用户宏程序本体的指令,可以采用下列方法调用宏程序:

1)非模态调用(G65);

2)模态调用(G66、G67);

3)使用G代码的宏程序调用;

4)使用M代码的宏程序调用;

5)用M代码调用子程序;

6)用T代码调用子程序。

宏程序调用与子程序调用之间的差别,有如下几点:

1)用G65可以指定自变量,而M98没有该功能;

2)当M98程序段包含另一个NC指令时,在指令执行之后调用子程序,而G65无条件地调用宏程序;

3)当M98程序段包含另一个NC指令时,在单程序段方式中,机床停止,而G65机床不停止;

4)用G65改变局部变量的级别,用M98不改变局部变量的级别。

1.非模态调用(单一调用)(G65)

指一次性调用宏主体,即宏程序只在一个程序段内有效,叫做非模态调用。

(1)指令格式

G65 P(宏程序号)L(重复次数)<自变量赋值>;

(2)指令说明

P指定宏程序号;L为重复调用次数(1~9999);自变量赋值是由地址和数值构成的,用以对宏程序中的局部变量赋值。

要向用户宏程序本体传递数据时,由自变量赋值来指定,其值可以有符号和小数点,而与地址无关。自变量赋值有两种类型:

1)自变量赋值Ⅰ:用字母后加数值进行赋值,除了G、L、N、O和P之外,其余所有字母地址都可以给自变量赋值。赋值不必按字母顺序进行,但使用I、J、K时必须按顺序指定,不赋值的地址可以省略。地址与变量的对应关系见表2-1。

2)自变量赋值Ⅱ:除了A、B、C之外,还用10组I、J、K对自变量进行赋值,同组的I、J、K必须按顺序赋值,不赋值的地址可以省略。地址与变量的对应关系见表2-2。

表2-2 地址与变量的对应关系

978-7-111-31766-1-Chapter02-43.jpg

(续)

978-7-111-31766-1-Chapter02-44.jpg

注:表中I、J、K的下标,只在表中表示组号,实际指令时不注下标。

注意:

1)自变量赋值Ⅰ和Ⅱ可以共存,此时后者有效。

例:978-7-111-31766-1-Chapter02-45.jpg

可以看出,I4.0和D5.0都对#7赋值,此时,后面的D5.0有效,所以,#7=5.0。

2)I、J、K的顺序不可以颠倒,不赋值的可以省略。

例:978-7-111-31766-1-Chapter02-46.jpg

(3)编程举例

编制一个宏程序加工圆周(见图2-26)上的孔。圆周的半径为1,起始度为A,间隔为B,钻孔数位H,圆的中心是(X,Y)。指令可以用绝对值或增量值指定。顺时针方向钻孔时,B应指定为负值。

978-7-111-31766-1-Chapter02-47.jpg

图2-26 用宏程序编制圆周螺纹孔程序

1)调用格式:

G65 P9100 Xx Yy Zz Rr Ff Ii Aa Bb Hh;

X:圆心的X坐标(绝对值或增量值指定)(#24);

Y:圆心的Y坐标(绝对值或增量值指定)

Z:孔深(#26);

R:快速趋近点坐标(#18);

F:切削进给速度(#9);

I:圆半径(#4);

A:第一孔的角度(#1);

B:增量角指定负值时为顺时针(#2);

H:孔数(#11);

2)调用宏程序的程序:

O0002;

G90 G92 X0 Y0 Z100.0;

G65 P9100 X100.0 Y50.0 R30.0 Z-50.0 I100.0 A0 B45.0H5;

M30;

3)宏程序被调用的程序:

O9100;

#3=#4003;储存03组G代码

G81 Z#26 R#18 F#9 K0;钻孔循环,也可以使用L0

IF[#3 EQ 90]GOTO 1;在G90方式转移到N1

#24=#5001+#24;计算圆心的X坐标

#25=#5002+#25;计算圆心的Y坐标

N1 WHILE[#11 GT 0]DO 1;直到剩余孔数为0

#5=#24+#4*COS[#1];计算X轴上的孔位

#6=#25+#4*SIN[+1];计算Y轴上的孔位

G90 X#5 Y#6;移动到目标位置之后执行钻孔

#1=#1+#2;更新角度

#11=#11-1;孔数-1

END 1;

G#3 G80;返回原始状态的G代码

M99;

4)变量的含义:

#3:储存03组的G代码;

#5:下一孔的X坐标;

#6:下一孔的Y坐标;

2.模态调用(G66、G67)

(1)指令格式

G66 P(程序号)L(重复次数)<自变量赋值>;

(2)指令说明

在书写时,G66必须写在<自变量赋值>之前。

L最多可为9999次。

自变量赋值与非模态调用的相同。

G67:取消宏程序模态调用方式。

G66和G67应成对使用。自变量中,可以使用小数点和符号。

模态调用的应用,在宏程序调用方式下,每执行一次移动指令,就调用一次前面所指定的宏程序。

例:钻孔循环

在各定位点执行钻孔循环,如图2-27所示。

G66 P9082 R(R点)Z(Z

978-7-111-31766-1-Chapter02-48.jpg

图2-27 模态调用

点)X(暂停);978-7-111-31766-1-Chapter02-49.jpg在这个区域中,每个移动程序段的终点执行钻孔循环。因M程序段

无坐标移动,故不执行钻孔。

G67;

宏程序:

O9082;

G00 G91 Z#18;

G01 Z#26;

G04 X#24;

G00 X_[ROUNG [#18] +ROUND [#26]];

G90;

M99;

说明:O9082功能与固定循环G82功能相同。

(3)编程举例

用宏程序编制图2-28所示的G81固定循环的操作。加工程序使用模态调用。为了简化程序。使用绝对值指定全部的钻孔数据。

固定循环是由下面的基本动作组成的。

第1步:沿X轴和Y轴定位;

第2步:快速移动到R点;

第3步:切削进给到Z点;(www.xing528.com)

第4步:快速退到R点或I点。

1)调用格式:

G65 P9110 Xx Yy Zz Rr Ff Ll;

X:孔的X坐标(由绝对值指定)(#24);

Y:孔的Y坐标(由绝对值指定)(#25);

Z:Z点坐标(由绝对值指定)(#26);

R:R点坐标(由绝对值指定)(#18);

F:切削进给速度(#9);

L:重复次数。

2)调用宏程序的程序:

O0001;

G28 G91 X0 Y0 Z0;

G92 X0 Y0 Z50.0;

G00 G90 X100.0 Y50.0;

G66 P9110 Z-20.0 R0.0 F500;

G90 X20.0 Y20.0;

X50.0;

Y50.0;

X0.0 Y80.0;

G67;

M30;

978-7-111-31766-1-Chapter02-50.jpg

图2-28 用宏程序编制G81固定循环举例

3)宏程序被调用的程序:

O9110;

#1=#4001;储存G00/G01

#2=#4003;储存G90/G91

#3=#4109;储存切削进给速度

#5=#5003;储存钻孔开始的Z坐标

G00 G90 Z#18;定位在R点

G01 Z#26 F#9;切削进给到Z点

IF[#4010 EQ 98]GOTO 1;返回到1点

G00 Z#18;定位在R点

GOTO 2;

N1 G00 Z#5;定位在1点

N2 G#1 G#3 F4;恢复模态信息

3.使用G代码的宏程序调用

在参数NO.220~NO.229中设定G代码值,可以调用宏程序O9010~O9019。

G××<自变量赋值>=G65P△△△△<自变量赋值>

式中,××可以从01~255(65~67除外)中选取10个代码值。

在M代码或T代码调用的子程序中,不能指定这些代码。这些代码必须在程序段的开头(N号之后)指令中。

参数号与宏程序号的对应关系,见表2-3。

例:使用G12的顺时针圆孔铣削加工。

参数设置:在NO.220中设置12,即G12=G65 P9010

如图2-29所示,已知圆孔半径为I,刀具偏置号为D,那么宏指令为G12 I(半径)D(刀偏号);

表2-3 G代码调用宏程序参数对应表

978-7-111-31766-1-Chapter02-51.jpg

978-7-111-31766-1-Chapter02-52.jpg

图2-29 铣圆孔

程序如下:

O9010;

#1=ABS[#4]-#[2000+#7];刀心半径

IF[#1 LE 0] GOTO 1;孔半径≤刀具半径,则不加工

#2=#1/2;

#3003=3;禁止单段,不等待FIN信号

G91 G01 X#2 Y-#2 R#2;

G17 G02 X#2 Y-#2 R#2;圆弧切入

I-#1;铣加工整圆

X-#2 Y-#2 R#2;圆弧切出

G01 X[#1-ROUND[#2]] Y#2;返回圆中心

#3003=0;恢复单段停止,等待FIN信号

N1 M99;

从上例可以看出,在设置了G代码调用后,使用时与ISO代码无区别。

4.使用M代码的宏程序调用

在参数NO.230~NO.239中设置M代码值,可以调用宏程序O9020~O9029。

M××<自变量赋值>=G65P△△△△<自变量赋值>

式中,××可以从06~255中选取10个代码值。这些代码必须在程序段的开头指令中。

注:在用G代码调用宏程序,或者用M代码或T代码调用子程序时,若指令了这些M代码,则不能进行宏调用,而是作为普通的M代码处理,向机床侧发出MF和M代码。

5.用M代码调用子程序

(1)功能

在参数中设置调用子程序(宏程序)的M代码号,按与子程序调用(M98)相同的方法调用宏程序。

例:

O0001;

978-7-111-31766-1-Chapter02-53.jpg

M03;调用宏程序转至O9001

978-7-111-31766-1-Chapter02-54.jpg

M30;

O9001;宏程序

978-7-111-31766-1-Chapter02-55.jpg

M99;返回主程序

(2)注意事项

1)在参数(NO.6071~NO.6079)中设置调用子程序的M代码(1~99999999),相应的用户宏程序(O9001~O9009)可以用与M98同样的方法调用该代码。

2)参数号和程序号之间的对应关系见表2-4。

3)重复。与非模态调用一样,地址L可以指定1~9999的重复次数。

4)自变量指定。不允许自变量指定。

5)M代码。在宏程序中,调用的M代码被处理为普通的M代码。

6)限制。用G代码调用的宏程序中或用M代码或T代码调用的程序中,不能用M码调用子程序。这种宏程序或程序中的M代码被处理为普通的M代码。

表2-4 参数号与程序号之间的关系

978-7-111-31766-1-Chapter02-56.jpg

6.用T代码调用子程序

(1)功能

通过设置参数,可使用T代码调用子程序(宏程序),每当在加工程序中指定T代码时,即调用宏程序。

例:

O0001;

978-7-111-31766-1-Chapter02-57.jpg

T23;调用宏程序转至O9000

978-7-111-31766-1-Chapter02-58.jpg

M30;

O9000;宏程序

978-7-111-31766-1-Chapter02-59.jpg

M99;返回主程序

(2)注意事项

1)调用。设置参数NO.6001的五位TCS=1,当在加工程序中指定T代码时,可以调用宏程序O9000。在加工程序中,指定的T代码赋值到公共变量#149。

2)限制。用G代码调用的宏程序中或用M代码或T代码调用的程序中,不能用T代码调用子程序。这种宏程序或程序中的T代码被处理为普通的T代码。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈