1.程序结构与格式
数控机床所使用的程序是按一定的格式并以代码的形式编制的,一般称为加工程序。加工程序是由若干程序段组成,而程序段是由一个或若干指令字组成,指令字代表某一信息单元;每个指令字由地址符和数字组成,它代表机床的一个位置或一个动作;每个程序段结束处有语句分割符(通常为“;”),表示该程序结束转入下一个程序段。
程序结构举例如下:
例:%
O1000;
N10 G90 G54 G00 X50 Y30 Z50;
N20 G00 Z5 M03 S800 M08;
N30 G01 X88.1 Y30.2 F200;
N40 X100 Y60;
N50 X150 Y80;
……
N300 M30;
%
1)%:程序起始符、程序结束符。
2)N10、N20、N30…:程序段序号(简称顺序号)通常由大写字母N 后面跟1~4 位正整数组成。
3)准备功能(简称G 功能):由表示准备功能的地址符“G”和两位数字组成,G 功能的代码已标准化。
4)坐标字:由坐标地址符及数字组成,且按一定的顺序进行排列,各组数字必须具有作为地址代码的字母(如X、Y 等)开头。
5)进给功能F:由进给地址符F 及数字组成,数字表示选定的进给速度,单位一般为mm/min。
6)主轴转速功能S:由主轴地址符S 及两位数字组成,数字表示主轴转速,单位为r/min。
7)辅助功能(简称M 功能):由辅助操作地址符M 和两位数字组成,M 功能的代码已标准化。
数控编程中常用M 功能见表13-1。
表13-1 数控编程常用M 功能
需要说明的是,数控机床的指令格式在国际上有很多标准,并不完全一致,随着数控机床的发展、不断改进和创新,其数控系统功能更加强大,使用更加方便。在不同数控系统之间,程序格式上存在一定差异。因此,在具体掌握某一数控机床时要仔细了解其数控系统的编程格式。
2.常用编程指令(G 代码即准备功能字)
数控加工程序是由各种功能字按照规定的格式组成的。正确地理解各个功能字的含义,恰当地使用各种功能字,按规定的程序指令编写程序,是编好数控加工程序的关键。
程序编制的规则,首先是由所采用的数控系统来决定的,所以应详细阅读数控系统编程、操作说明书,以下按常用数控系统的共性概念进行说明。
(1)绝对尺寸指令和相对尺寸指令G90、G91
绝对尺寸与相对尺寸如图13-5 所示。
G90 指定尺寸值为绝对尺寸,G91 指定尺寸值为相对尺寸。
G90 G01 X30 Y37 F100;
或
G91 G01 X20 Y25 F100;
(2)坐标平面选择指令G17、G18、G19
坐标平面的选择指令如图13-6 所示。
图13-5 绝对尺寸与相对尺寸
图13-6 坐标平面选择指令
坐标平面选择指令是用来选择圆弧插补的平面和刀具补偿平面的。
G17 表示选择XY 平面,G18 表示选择ZX 平面,G19 表示选择YZ 平面。
图13-7 快速点定位
(a)同时到达终点;(b)单向移动至终点
一般,数控铣床默认在XY 平面内加工。
(3)快速点定位指令G00
快速点定位指令控制刀具以点位控制的方式快速移动到目标位置,其移动速度由参数来设定。指令执行开始后,刀具沿着各个坐标方向同时按参数设定的速度移动,最后减速到达终点,如图13-7 所示。注意:在各坐标方向上有可能不是同时到达终点。刀具移动轨迹是几条线段的组合,不是一条直线。
程序格式:G00 X…Y…Z…;
程序中 X,Y,Z——快速点定位的终点坐标值。
例:从A 点到B 点快速移动的程序段为
G90 G00 X20 Y30;
(4)直线插补指令G01
直线插补(见图13-8)指令用于产生按指定进给速度F 实现的空间直线运动。
程序格式:G01 X… Y… Z… F…;
程序中 X,Y,Z——直线插补的终点坐标值。
例:实现图中从A 点到B 点的直线插补运动,其程序段为
绝对方式编程:G90 G01 X10 Y10 F100;
相对方式编程:G91 G01 X-10 Y-20 F100;
(5)圆弧插补(见图13-9)指令G02、G03
图13-8 直线插补
图13-9 圆弧插补
G02 为按指定进给速度的顺时针圆弧插补,G03 为按指定进给速度的逆时针圆弧插补。
程序格式:G02(G03)X… Y… I… J…(R…)F…;
程序中 X,Y,Z——圆弧插补的终点坐标值,当用G90 编程时为圆弧终点的绝对坐标,当用G91 编程时为相对圆弧起点的相对坐标;
I,J——圆弧起点到圆心的相对坐标,与G90、G91 无关;
R——指定圆弧半径,当圆弧的圆心角≤180°时R 值为正;当圆弧的圆心角>180°时R 值为负。
例:在图13-9 中,若圆弧A 的起点为P1,终点为P2,则圆弧插补程序段为
G90 G02 X321.65 Y280 I40 J140 F50;
或 G90 G02 X321.65 Y280 R-145.6 F50;
若圆弧A 的起点为P2,终点为P1,则圆弧插补程序段为
G90 G03 X160 Y60 I-121.65 J-80 F50;
或 G90 G03 X160 Y60 R-145.6 F50;
(6)刀具半径补偿指令G40、G41、G42
数控程序是按刀具的中心编制的,在进行零件轮廓加工时,刀具中心轨迹相对于零件轮廓通常应让开一个刀具半径的距离,即所谓的刀具偏置或刀具半径补偿。
具有刀具半径补偿功能的数控系统具有以下优点:
1)在编程时可以不考虑刀具的半径,直接按图样所给尺寸进行编程,只要在实际加工时输入刀具的半径值即可。
2)可以使粗加工的程序简化。利用有意识地改变刀具半径补偿量,则可用同一刀具、同一程序、不同的切削余量完成加工。
程序格式:
G17 G41(或G42) G00(或G01) X… Y… D…;
或 G18 G41(或G42) G00(或G01) X… Z… D…;
或 G19 G41(或G42) G00(或G01) Y… Z… D…;
G40
程序中的D 为刀具半径补偿地址,地址中存放的是刀具半径的补偿量;X、Y 为由非刀补状态进入刀具半径补偿状态的起始位置。
这里的X、Y 即为刀具中心的位置。
注意:只能在G00 或G01 指令下建立刀具半径补偿状态及取消刀具半径补偿状态。
在建立刀补时,必须有连续两段的平面位移指令。这是因为,在建立刀补时,控制系统要连续读入两段平面位移指令,才能正确计算出进入刀补状态时刀具中心的偏置位置,否则将无法正确建立刀补状态。
G41 是相对于刀具前进方向左侧进行补偿的,称为左刀补,如图13-10(a)所示。这时相当于顺铣。
G42 是相对于刀具前进方向右侧进行补偿的,称为右刀补,如图13-10(b)所示。这时相当于逆铣。
从刀具寿命、加工精度、表面粗糙度而言,顺铣效果较好,因此G41 使用较多。
D 是刀补号地址,是系统中记录刀具半径的存储器地址,后面跟的数值是刀具号,用来调用内存中刀具半径补偿的数值。刀补号地址可以有D00~D99 共100 个,其中的值可以用MDI 方式预先输入在内存刀具表中相应的刀具号位置上。进行刀具补偿时,要用G17/G18/G19 选择刀补平面,默认状态是XY 平面。
G40 是取消刀具半径补偿功能,所有平面上取消刀具半径补偿的指令均为G40。
G40、G41、G42 是模态代码,它们可以互相注销。
下面结合图13-11 来介绍刀具半径补偿的运动。
图13-10 刀具半径补偿
图13-11 刀具半径补偿
按相对方式编程:
按绝对方式编程:
刀补动作为:
启动阶段—刀补状态—取消刀补。
这里要特别提醒注意的是,在启动阶段开始后的刀补状态中,如果存在两段以上的没有移动指令或存在非指定平面轴的移动指令段,则可能产生进刀不足或进刀超差。其原因是进入刀具状态后,只能读出连续的两段,这两段都没有进给,也就作不出矢量,确定不了前进的方向。
图13-12 刀具半径补偿举例
数控机床在实际加工过程中是通过控制刀具中心轨迹来实现切削加工任务的。在编程过程中,为了避免复杂的数值计算,一般按零件的实际轮廓来编写数控程序,但刀具具有一定的半径尺寸,如果不考虑刀具半径尺寸,那么加工出来的实际轮廓就会与图纸所要求的轮廓相差一个刀具半径值。因此,通常采用刀具半径补偿功能来解决这一问题。
应用举例:使用半径为R5 mm 的刀具加工如图13-12 所示的零件,加工深度为5 mm,加工程序编制如下:
(7)刀具长度补偿指令
刀具长度补偿指令格式如下:
格式:G43(G44)Z… H…;
程序中 Z——补偿轴的终点值;
H——刀具长度偏移量的存储器地址。
把编程时假定的理想刀具长度与实际使用的刀具长度之差作为偏置设定在偏置存储器中,该指令不改变程序就可以实现对Z 轴(或X、Y 轴)运动指令的终点位置进行正向或负向补偿。
使用G43 指令时,实现正向偏置;用G44 指令时,实现负向偏置。无论是绝对指令还是增量指令,由H 代码指定的已存入偏置存储器中的偏置值在G43 时加上,在G44 时则是从Z 轴(或X、Y 轴)运动指令的终点坐标值中减去。计算后的坐标值成为终点。
取消长度补偿指令格式:
G49 Z(或X 或Y)…;
实际上,它和指令“G43(G44)Z… H…;”的功能是一样的。G43、G44、G49 为模态指令,它们可以相互注销。
下面是一包含刀具长度补偿指令的程序,其刀具运动过程如图13-13 所示。
H01 =-4.0(偏置值)
N10 G91 G00 X120.0 Y80.0 M03 S500;
N20 G43 Z-32.0 H01;
N30 G01 Z-21.0 F1000;
N40 G04 P2000;
N50 G00 Z21.0;
N60 X30.0 Y-50.0;
N70 G01 Z-41.0;
N80 G00 Z41.0;
N90 X50.0 Y30.0;
N100 G01 Z-25.0;
N110 G04 P2000;
N120 G00 Z57.0 H00;(www.xing528.com)
N130 X-200.0 Y-60.0;
N140 M05;
N150 M30;
图13-13 刀具长度补偿
由于偏置号的改变而造成偏置值的改变时,新的偏置值并不加到旧偏置值上。例如,H01 的偏置值为20.0,H02 的偏置值为30.0 时:
G90 G43 Z100.0 H01; Z 将达到120.0
G90 G43 Z100.0 H02; Z 将达到130.0
图13-14 钻孔循环
刀具长度补偿同时只能加在一个轴上,在必须进行刀具长度补偿轴的切换时,要取消一次刀具长度补偿。
(8)孔加工固定循环指令概述
孔加工固定循环指令有G73、G74、G76、G80~G89,通常由下述6 个动作构成,如图13-14 所示,图中实线表示切削进给,虚线表示快速进给。
动作1:X、Y 轴定位;
动作2:快速运动到R 点(参考点);
动作3:孔加工;
动作4:在孔底的动作;
动作5:退回到R 点(参考点);
动作6:快速返回到初始点。
固定循环的程序格式如下:
G98(或G99)G73(或G74 或G76 或G80~G89)X… Y… Z… R… Q… P… I… J…K… F… L…;
程序中,第一个G 代码(G98 或G99)指定返回点平面,G98 为返回初始平面,G99 为返回R 点平面;第二个G 代码为孔加工方式,即固定循环代码G73、G74、G76 和G81~G89 中的任一个。固定循环的数据表达形式可以用绝对坐标(G90)和相对坐标(G91)表示,分别如图13-15(a)和图13-15(b)所示。数据形式(G90 或G91)在程序开始时就已指定,因此,在固定循环程序格式中可不写出。X、Y 为孔位数据,指被加工孔的位置;Z 为R 点到孔底的距离(G91 时)或孔底坐标(G90 时);R 为初始点到R 点的距离(G91 时)或R 点的坐标值(G90 时);Q 指定每次进给深度(G73 或G83 时)或指定刀具位移增量(G76 或G87 时);P 指定刀具在孔底的暂停时间;I、J 指定刀尖向反方向的移动量;K 指定每次退刀(G76 或G87 时)刀具位移增量;F 为切削进给速度;L 指定固定循环的次数。G73、G74、G76 和G81~G89、Z、R、P、F、Q、I、J 都是模态指令。G80、G01~G03 等代码可以取消固定循环。
在固定循环中,定位速度由前面的指令速度决定。
1)高速深孔加工循环G73。
该固定循环用于Z 轴的间歇进给,使深孔加工时容易排屑,减少退刀量,提高加工效率。q 值为每次的进给深度,退刀采用快速方式,其值K 为每次的退刀量。G73 指令动作循环如图13-16 所示。
图13-15 钻孔循环
图13-16 G73 指令动作
% O0073;
N10 G92 X0 Y0 Z80;
N20 G00 Z10;
N30 G98 G73 G90 X100 G90 R40 P2 Q-10 K5 G90 Z0 L2 F200;
N40 G00 X0 Y0 Z80;
图13-17 G81 指令循环动作
N50 M02;
注意:如果Z、K、Q 移动量为零,则该指令不执行。
2)钻孔循环(钻中心孔)G81。
G81 指令的循环动作如图13-17 所示,包括X、Y 坐标定位,快进,工进和快速返回等动作。
例:钻孔的程序如下
%O0081;
N10 G92 X0 Y0 Z80;
N15 G00 Z10;
N20 G99 G81 G90 X100 G90 R40 G90 Z0 P2 F200 I2;
N30 G90 G00 X0 Y0 Z80;
N40 M02;
注意:如果Z 的移动位置为零,则该指令不执行。
3)带停顿的钻孔循环G82。
该指令除了要在孔底暂停外,其他动作与G81 相同,暂停时间由地址P 给出。此指令主要用于加工盲孔,以提高孔深精度。
% O0082;
N10 G92 X0 Y0 Z80;
N20 G99 G82 G90 X100 G90 R40 P2 G90 Z0 F200 I2;
N30 G90 G00 X0 Y0 Z80;
N40 M02;
图13-18 G83 指令循环动作
4)深孔加工循环G83。
深孔加工指令G83 的循环动作如图13-18 所示,每次进刀量用地址Q 给出,其值q 为增量值。每次进给时,应在距已加工面d(mm)处将快速进给转换为切削进给,d 是由参数确定的。
例:加工某深孔的程序如下
%O0083;
N10 G92 X0 Y0 Z80;
N20 G99 G83 G91 X100 G90 R40 P2 Q-10 K5 Z0 F200 I2;
N30 G90 G00 X0 Y0 Z80;
N40 M02;
注意:如果Z、Q、K 的移动量为零,则该指令不执行。
5)精镗循环G76。
G76 指令的循环动作如图13-19 所示。精镗时,主轴在孔底定向停止后,向刀尖反方向移动,然后快速退刀,退刀位置由G98 和G99 决定。这种带有让刀的退刀不会划伤已加工平面,保证了镗孔精度。刀尖反向位移量用地址Q 指定,其值只能为正值。Q 值是模态的,位移方向由MDI 设定,可为±X、±Y 中的任一个。
例:精镗孔的程序如下
%O0076;
N10 G92 X0 Y0 Z80;
N20 G99 G76 G91 X100 G91 R-40 P2 I-20 G91 Z-40 I2 F200;
N30 G00 X0 Y0 Z80;
N40 M02;
注意:如果Z、Q、K 移动量为零,则该指令不执行。
6)镗孔循环G86(图13-20)。
图13-19 G76 指令循环动作
图13-20 镗孔循环G86
G86 指令与G81 相同,但在孔底时主轴停止,然后快速退回。
%00086;
N10 G92 X0 Y0 Z80;
N20 G98 G86 G90 X100 G90 R40 Q-10 K5 P2 G90 Z0 F200 I2;
N30 G90 G00 X0 Y0 Z80;
N40 M02;
注意:如果Z 的移动位置为零,则该指令不执行。
7)取消固定循环G80。
该指令能取消固定循环,同时R 点和Z 点也被取消。
使用固定循环指令时应注意以下几点:
①在固定循环中,定位速度由前面的指令决定。
②固定循环指令前应使用M03 或M04 指令使主轴回转。
③各固定循环指令中的参数均为非模态值,因此每句指令的各项参数应写全。在固定循环程序段中,X、Y、Z、R 数据应至少指令一个才能进行孔加工。
④控制主轴回转的固定循环(G74、G84、G86)中,如果连续加工一些孔间距较小,或者初始平面到R 点平面的距离比较短的孔,则会出现在进入孔的切削动作前主轴还没有达到正常转速的情况,遇到这种情况时,应在各孔的加工动作之间插入G04 指令,以获得时间。
⑤用G00~G03 指令之一注销固定循环时,若G00~G03 指令之一和固定循环出现在同一程序段,且程序格式为
G00 (G02, G03) G… X… Y… Z… R… Q… P… I… J… F… L…
则按G00(或G02,G03)进行X、Y 移动。
⑥在固定循环程序段中,如果指定了辅助功能M,则在最初定位时送出M 信号,等待M 信号完成,才能进行加工循环。
⑦固定循环中定位方式取决于上次是G00 还是G01,因此如果希望快速定位,则在上一程序段或本程序段加G00。
(9)子程序调用
编程时,为了简化程序的编制,当一个工件上有相同的加工内容时,常用调用子程序的方法进行编程。调用子程序的程序叫作主程序。子程序的编号与一般程序基本相同,只是程序结束字为M99 表示子程序结束,并返回到调用子程序的主程序中。
图13-21 零件图样
调用子程序的编程格式为
M98 P…;
程序中 P——子程序调用情况。
P 后共有8 位数字,前4 位为调用次数,省略时为调用一次;后4 位为所调用的子程序号。
例:如图13-21 所示,在一块平板上加工6个边长为10 mm 的等边三角形,每边的槽深为2 mm,工件上表面为Z 向零点,其程序的编制就可以采用调用子程序的方式来实现(编程时不考虑刀具补偿)。
主程序:
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。