组别 | 01组 |
---|---|
G 代码 | G0/G00 |
说明 | 定位,快速移动 |
是否模态 | 模态 |
G00 X- Y- Z- M- S- T-;
X- Y- Z-:终点坐标值,可以是 X、Y、Z 三轴中的任意一个、两个或三个坐标值。
机床执行 G0/G00 代码之后会将主轴刀具快速移动到坐标代码(X- Y- Z-)的:
1、指定位置(使用绝对模式 G90);
2、或者移动到某个距离处(使用相对模式 G91);
注意:
当遇到同组(01组)的其他代码(G01、G02、G03)即被取消。
快速移动刀具到达指定的坐标位置,用于刀具进行:
1、加工前的空行程移动;
2、加工完成后的快速退刀;
以提高工作效率。
G0/G00 是模态代码,一旦前面的程序段指定了 G0/G00,后面的程序段可不再给出(续效范围内可省略),只需给出终点坐标代码即可实现快速运动。
1、该指令使刀具按照点位控制方式快速移动到指定位置,移动过程中不得对工件进行加工;
2、所有编程轴同时以参数所定义的速度移动,当某轴走完编程值便停止,而其他轴继续运动;
3、不参与运动的坐标轴无须编程。
采用独立的快速移动速率来决定每一个运动轴的位置。刀具路径不一定是直线,根据到达的顺序,运动轴依次停止在坐标代码指定的位置。
G00 执行过程是刀具从某一点开始加速移动至最大速度,保持最大速度,最后减速到达终点。至于刀具快速移动的轨迹是一条直线还是一条折线则由各坐标轴的脉冲当量来决定。因此要注意是否会出现撞刀现象。
有些机床支持 G00 运动方式由参数(Pr411)设定:0表示线性,1表示各运动轴独立以最高速度移动。
因此,对于 G00 而言,先抬高度(Z)保证安全性,再走平面(XY)。
G00 的快速移动速度不是由程序来设定,而是机床出厂时由生产厂家设置默认的。
很多大型 CNC 机床常见的快进速度大约是25000mm/min(985in/min),中小型机床的快进速度更高,可达75000mm/min(2950in/min)甚至更高。
G00 的最终移动速度由机床和机床控制面板 快速(进给)倍率按钮(旋钮)(%) 旋钮决定。
G00 的快速移动速度不能在进给速率代码 F- 中规定,可由控制面板上的 快速(进给)倍率按钮(旋钮)(%) 控制。
G00 并不需要进给功能字 F-,如果编写 F 功能,在快速移动 G00 模式下也会忽略它。但该进给速度将被存储到存储器中,并且在任何进给(切削)运动(G01、G02、G03 等)第一次出现时有效(F- 是模态代码),除非给进给运动一个新的进给速率代码 F-。
G90 G00 G54 X100.;
Y100.;
使用绝对模式,在当前工件坐标系中,X 轴先快速移动到(绝对坐标) 100. 的位置,然后 Y 轴再快速移动到(绝对坐标) 100. 的位置。
G91 G00 G54 X-10.;
将当前工件坐标系中的刀具向 X 轴负方向(水平向左)快速移动10.0mm,即刀具快速往左挪10.0mm。
G91 G00 G54 Y10.;
将当前工件坐标系中的刀具向 Y 轴正方向(水平向里)快速移动10.0mm,即刀具快速往里挪10.0mm。
G91 G00 G54 X100.;
Y100.;
使用相对模式,在当前工件坐标系中,X 轴先快速移动到正方向、离当前坐标 100. 的位置,然后 Y 轴再快速移动到正方向、离当前坐标 100. 的位置。
G91 G00 G54 Z10.;
将当前工件坐标系中的刀具向 Z 轴正方向(竖直向上)快速移动10.0mm,即刀具快速往上抬10.0mm。
组别 | 01组 |
---|---|
G 代码 | G1/G01 |
说明 | 直线插补/直线切削/直线进给 |
是否模态 | 模态 |
G01 X- Y- Z- F- M- S- T-;
代码执行前:
机床主轴刀具做直线切削移动(G01)之前需要给出 S- M03 (M08),这样刀具才能与工件相互作用,产生切削运动。
G01 Z0. S3000 M03
M08
F1200.
代码执行后:
机床执行 G1/G01 代码之后主轴刀具将与工件作用(S- F-),直线切削到坐标代码的指定位置(使用绝对模式),或者直线切削到某个距离处(使用相对模式)。
G01 是模态代码,一旦前面的程序段指定了 G01,后面的程序段可不再给出(续效范围内可省略),只需给出终点坐标代码即可实现切削移动。
可被同组(01组)的其他代码取消(取代),例如 G00、G02、G03。
切削运动一定要有 S-、F- 值,要么沿用之前的(都是模态代码),要么重新指定。
G17 G21 G40 G49 G80;
G91 G28 Z0.;
T01 M06;
G90 G00 G54 X0. Y0.;
S5000 M03;
Z30. M08;
G01 Z-2. F2500;
组别 | G 代码 | 说明 | 是否模态 |
---|---|---|---|
01 | G2/G02 | 圆弧插补 CW/顺时针切削圆弧 | 模态 |
G02 X- Y- Z- F- M- S- T-;
可以给出圆弧的半径 R,并且为了保证圆弧不具有二义性(即唯一性),规定:
1、圆心角 α > 180° 的圆弧,半径 R 必须用负值表示;
2、圆心角 α ≤ 180° 的圆弧,半径 R 必须用正值表示。
可以给出圆弧的圆心增量坐标 I- J- K-,分别对应 X、Y、Z 轴上的增量:
1、I = X 圆心坐标 - X 起点坐标;
2、J = Y 圆心坐标 - Y 起点坐标;
3、K = Z 圆心坐标 - Z 起点坐标。
坐标增量为0可以省略不写。
与模式无关:
使用绝对模式 G90 或者使用相对模式 G91 对该增量值无影响。
代码执行后:
机床执行 G2/G02 代码之后会以当前坐标为起点,坐标代码指定的坐标为终点,做顺时针圆弧切削运动,刀具轨迹根据圆弧半径 R- 或者圆心增量坐标 I- J- K- 确定。
G2/G02 是模态代码,一旦前面的程序段指定了 G2/G02,后面的程序段可不再给出(续效范围内可省略),只需给出终点坐标代码和圆弧半径代码或者圆心增量坐标代码即可实现顺时针圆弧切削运动。
可被同组(01组)的其他代码取消(取代),例如 G0/G00、G1/G01、G3/G03。
切削运动一定要有 S-、F- 值,要么沿用之前的(都是模态代码),要么重新指定。
G17 G21 G40 G49 G80;
T01 M06;
G90 G00 G54 X0. Y0.;
G43 H01 Z10.;
S3000 M03;
M08;
G01 Z0. F1000.;
Z-1.
G02 X10. Y10. R10. S2000 F800.;
G02 X10. Y10. I5. J5.;
说明:
以当前(G17: XY 平面,模态代码)坐标位置(X0., Y0.)为起点做圆弧切削,到圆弧终点坐标(X10., Y10.)。
如果圆弧切削移动的起点和终点重合,那么就能切削出整圆,当起点和终点重合时,圆弧的终点坐标可以省略不写,此时还需要给出圆弧圆心坐标 I- J- K-,而给出圆弧半径 R- 的圆弧具有无数个。
整圆加工一般给出 I- J- K- 代码:
G02 I-5.;
组别 | G 代码 | 说明 | 是否模态 |
---|---|---|---|
01 | G3/G03圆弧插补 CCW/逆时针切削圆弧 | 模态 |
固定循环用于孔加工,是一个简化的程序,即用一个 G 代码单段,可表示通常在几个单段的加工操作。
普通钻孔循环。
代码执行后:
一直进给,无暂停,快速退刀。
1、定心钻/中心钻点孔;
2、U 钻打孔;
3、打潜的通孔,一钻到底;
4、对潜的通孔进行攻牙,一攻到底。
深孔往复排屑循环钻孔。
代码执行后:
啄式进给,回退 R,快速退刀。
1、打不能一钻到底的深孔;
2、盲孔。
注意不能用于 U 钻打孔。
攻牙。
取消固定循环。
组别 | G 代码 | 说明 | 是否模态 |
---|---|---|---|
G90 | 绝对值模式 | 模态 |
组别 | G 代码 | 说明 | 是否模态 |
---|---|---|---|
G91 | 相对值模式(增量值模式) | 模态 |
组别-G 代码-说明-是否模态:
00-G4/G04-定时暂停-非模态
语法格式:
G04 X- Y- Z- F- M- S- T-;
执行代码后:
机床执行 G4/G04 代码之后会暂停 G04 后面指定的时间间隔,之后继续执行下一程序段。
代码用途:
1、车削沟槽、钻削盲孔、锪孔以及车台阶轴清根时,可以设置暂停指令,让刀具在短时间内实现无进给光整加工,使槽底或孔底得到较光滑的表面。光整加工是指不切除或从工件上切除极薄材料层,以减小工件表面粗糙度为目的的加工方法,如超级光磨和抛光等;
2、加工盲孔时,在刀具进给到规定深度后,用 G04 暂停指令使刀具作非进给光整切削,然后退刀,保证孔底平整;
3、镗孔完毕后要退刀时,为避免留下螺旋划痕而影响表面粗糙度,应使主轴停止转动,并暂停几秒钟,待主轴完全停止后再退刀;
4、用丝锥攻螺纹时,假如刀具夹头带有正反转机构,可用 G04 暂停指令以暂停时间代替指定的间隔,待攻螺纹完毕,丝锥退出工件后,再恢复机床的动作指令;
5、程序在执行到某一段后,需要暂停一段时间,进行某些人为的调整,这时用 G04 指令使程序暂停,暂停时间一到,继续执行下一程序段。
G17(XY 平面)、G18(XZ 平面)、G19(YZ 平面),模态代码,沿用之前给出的,或者重新指定。
英制/公制单位
G20:程序使用英制单位;G21:程序使用公制单位。
取消刀具半径补偿/刀径补
G17 G21 G40 G49 G80;
G91 G28 Z0.;
T01 M06;
...
G41 X10. D01;
...
G40;
G41-建立刀具半径补偿左偏置/刀径左偏置
G42-建立刀具半径补偿右偏置/刀径右偏置
G17 G21 G40 G49 G80;
G91 G28 Z0.;
T01 M06;
...
G41 X10. D01;
...
G40;
偏移量的大小由 D- 代码对应的寄存器存储的数值给出,偏移量的方向始终由工件指向刀具。
G43-建立刀具长度正补偿/加上刀具长度补偿寄存器 H- 的值
G44-建立刀具长度负补偿/减去刀具长度补偿寄存器 H- 的值。
G49-取消刀具长度补偿
G17 G21 G40 G49 G80;
G91 G28 Z0.;
T01 M06;
...
G41 X10. D01;
...
G40;
偏移量的大小由 D- 代码对应的寄存器存储的数值给出,偏移量的方向始终由工件指向刀具。
G54~G59-使用工件坐标系1~6
G17 G21 G40 G49 G80;
G91 G28 Z0.;
T01 M06;
...
G41 X10. D01;
...
G40;
组别 | G 代码 | 说明 | 是否模态 |
---|---|---|---|
G90 | 绝对值模式 | 模态 |
组别 | G 代码 | 说明 | 是否模态 |
---|---|---|---|
G91 | 相对值模式(增量值模式) | 模态 |
是否模态:
G91 是模态代码,一旦前面的程序段指定了 G91,后面的程序段可不再给出,即续效范围内可省略,只需给出增量坐标即可。
G91 返回参考点:
G91 G28 Z0.;
G91 G28 Y0.;
说明:
1、为了保证正确返回参考点,G91 一般不省略。
G90-使用绝对坐标-模态
G91-使用相对坐标/增量坐标-模态
语法格式:
G83;
是否模态:
是模态代码,沿用之前给出的,或者重新指定。
代码执行后:
啄式进给,回退 R,快速退刀。
代码用途:
1、不能一钻到底的深孔;
2、常规的盲孔;
3、切记!不能用于 U 钻打孔。
G17 G21 G40 G49 G80;
G91 G28 Z0.;
T01 M06;
...
G41 X10. D01;
...
G40;
组别 | G 代码 | 说明 | 是否模态 |
---|---|---|---|
G28 |
机床返回原点/参考点
G91 G28 Z0.;
T01 M06;
...
Z30.;
G91 G28 Z0.;
G91 G28 Y0.;
M05;
M30;
G98-固定循环返回安全平面高度(由编程设置)-非模态
G99-固定循环返回 R- 平面高度-非模态
语法格式:
G98;
代码执行后:
G98:当前循环完成后返回到指定的安全平面高度,之后退刀或移刀到下一循环。要充分考虑循环(即加工孔)之间的干涉。
G99:当前循环完成后返回到指定的 R 高度,之后退刀或移刀到下一循环。要充分考虑循环(即加工孔)之间的干涉。
G17 G21 G40 G49 G80;
G91 G28 Z0.;
T01 M06;
...
G41 X10. D01;
...
G40;
在工件轮廓铣削加工过程中,刀具的中心轨迹与零件轮廓往往不一致,为了避免计算刀具中心轨迹,直接按零件图样上的轮廓尺寸编程,数控系统提供了刀具半径补偿功能。
也就是说,在数控机床加工过程中,实际控制的是刀具中心的轨迹,而编制加工程序时通常是按照零件轮廓来编制。
如果让刀具中心沿着零件轮廓走,那么实际加工零件过程中就会多切削出一个刀具半径的宽度,此时当然可以重新规划刀具中心的轨迹,把刀具半径宽度考虑到刀具中心轨迹中,但是当换刀时,刀具中心轨迹也必须要重新规划,以适应新的刀具半径,这样无疑会增加工作量,并且使问题变得复杂。
为了加工所需的零件轮廓,在进行内轮廓加工时,刀具中心必须向零件的内侧偏移一个刀具半径值;在进行外轮廓加工时,刀具中心必须向零件的外侧偏移一个刀具半径值。这种按零件轮廓编制的程序和预先设定的偏置参数,数控装置能实时自动生成刀具中心轨迹的功能称为刀具半径补偿功能。
“补偿”就是多了减去,少了加上。多出一个半径宽度,那么把这个宽度补偿到零件的加工侧,沿着刀具加工方向,刀具加工轨迹在零件轮廓的左侧,就需要左补偿;反之,沿着刀具加工方向,刀具加工轨迹在零件轮廓的右侧,就需要右补偿。
实线为所需加工的零件轮廓,虚线为刀具中心轨迹。根据 ISO 标准,当刀具中心轨迹在编程轨迹(零件轮廓)前进方向的右边时,称为右刀补,用 G42 指令实现;反之称为左刀补,用 G41 指令实现。
这样,在编程过程当中,就只考虑零件轮廓,编制出相应的加工程序,而与具体刀具半径(直径)无关。
刀径补应用:
仅用一个程序就可以完成粗、精加工,或采用不同刀具直径加工时,可以不必重写加工程序。通常刀具半径补偿功能仅适用于二维编程加工。
G01 ....;
G41 X-33. D01;
...
G40 ....;
在实际数控加工过程中,刀具的长度不统一、刀具磨损、更换刀具等原因引起刀具长度尺寸变化时,编程人员不必考虑刀具的实际长度及对程序的影响。可以通过使用刀具长度补偿指令来解决问题,在程序中使用补偿,并在数控机床上用【MDI】模式输入刀具长度的补偿量,就可以正确的加工。当刀具磨损时也只需修改刀具长度的补偿量,而不必调整程序或刀具的加持长度。
使用什么坐标形式,以什么运动方式,在哪个工件坐标系中,运动终点坐标是多少。
G90 G00 G54 X0. Y0.;
使用绝对坐标,快速移动,使用工件坐标系1,X 轴、Y 轴分别同时快速移动到 X0.、Y0. 的位置,Z 轴保持不动(注意刀具碰撞)。
G91 G00 G54 X-5.;
使用相对坐标,快速移动,使用工件坐标系1,X 轴从当前位置向左移动 5mm。
M 代码-说明:
M00-程序暂停
语法格式:
M00;
注意!该 M 代码独占一行。
代码执行后:
机床执行 M00 代码之后会将刀具的进给(F)停止,主轴(S)停转。重新按【循环启动】开关后,再继续执行后面的程序段。
代码用途:
主要用于编程者想在加工过程中使机床暂停(检验工件、调整、排屑等)。
M 代码-说明:
M01-选择性程序暂停
语法格式:
M01;
注意!该 M 代码独占一行。
代码执行后:
当机床的操作面板上【选择停止】功能开启时(【选择停止】键指示灯亮),M01 代码有效,否则无效。有效执行后的功能与 M00 相同。
代码用途:
常用于关键尺寸的检验或临时暂停。
M 代码-说明:
M02-程序结束
语法格式:
M02;
注意!该 M 代码独占一行。
代码执行后:
机床执行 M02 代码之后会将刀具的进给(F)停止,主轴(S)停转,冷却液关闭。程序执行光标停留在当前程序的尾部。
代码用途:
M 代码-说明:
M03-主轴正转
语法格式:
S3000 M03;
主轴转速3000,主轴正转。
是否模态:
是模态代码。
代码执行前:
主轴正转 M03 前,需要在当前程序段中给出主轴转速 S-。
代码执行后:
机床执行 M03 代码之后主轴将会开始正转,即顺时针旋转(CW),因此 M03 代码之前要给主轴一个转速 S-。
代码用途:
主轴的正转和反转方向:
铣床:从尾座端往主轴端看,顺时针方向为正转,逆时针方向为反转。
车床:操作人员站在数控车床前面,如果刀架位于主轴和操作人员之间的属于前置刀架,如果主轴位于刀架和操作人员之间的属于后置刀架。前置刀架主轴正转时刀尖朝上,后置刀架主轴正转时刀尖则朝下。
M 代码-说明:
M04-主轴反转
语法格式:
S3000 M04;
很少用到。
是否模态:
是模态代码。
代码执行前:
主轴反转 M04 前,需要在当前程序段中给出主轴转速 S-。
代码执行后:
机床执行 M04 代码之后主轴将会开始反转,即逆时针旋转(CCW),因此 M04 代码之前要给主轴一个转速 S-。
代码用途:
很少用到。
主轴的正转和反转方向:
铣床:从尾座端往主轴端看,顺时针方向为正转,逆时针方向为反转。
车床:操作人员站在数控车床前面,如果刀架位于主轴和操作人员之间的属于前置刀架,如果主轴位于刀架和操作人员之间的属于后置刀架。前置刀架主轴正转时刀尖朝上,后置刀架主轴正转时刀尖则朝下。
M 代码-说明:
M05-主轴停转
语法格式:
M05;
是否模态:
是模态代码。
代码执行后:
机床执行 M05 代码之后主轴将会停止转动。
代码用途:
M 代码-说明:
M06-主轴换刀
语法格式:
G91 G28 Z0.;
T01 M06;
T02;
Z 轴返回原点,换刀,备刀。
是否模态:
否。
代码执行后:
机床执行 M06 代码之后将会把主轴的刀具换成 T- 代码指定的刀具号对应的刀具,因此 M06 代码之前通常要指定一个刀具号 T-。
代码用途:
换刀。
M 代码-说明:
M08-开水
语法格式:
S3000 M03 M08;
Z 轴返回原点,换刀,开水,备刀。
是否模态:
是。
代码执行后:
机床执行 M08 代码之后会将冷却液打开。
代码用途:
开水。
M 代码-说明:
M09-关水
语法格式:
M05 M09;
主轴停转,关水。
是否模态:
是。
代码执行后:
机床执行 M09 代码之后会将冷却液关闭。
代码用途:
关水。
M 代码-说明:
M30-主程序结束
语法格式:
M30;
注意!该代码独占一行。
是否模态:
是。
代码执行后:
机床执行 M30 代码之后会将刀具的进给(F)停止,主轴(S)停转,冷却液关闭。程序执行光标返回当前程序的开头,不管 M30 代码后面是否还有其他程序代码。
代码用途:
结束主程序,程序执行光标返回当前程序的开始处。
M 代码-说明:
M98-调用同一文件中的(子)程序
语法格式:
M98 P----;
M98 PN----;
M98 P----LN;
---- 表示要调用的子程序名(注意不带 O),N 表示调用次数。
是否模态:
是。
代码执行后:
机床执行 M98 代码之后会将程序执行光标移动到指定程序名的程序的开始位置处,即开始执行子程序的代码。
代码用途:
如果程序包含固定的加工路线或多次重复的图形,这样的加工路线或图形可以编成单独的程序作为子程序。这样在工件上不同的部位实现相同的加工,或在同一部位实现重复加工,大大简化编程。
示例代码:
O0001;
...
M98 P1001;
...
M30;
O1001;
...
M99;
在 O0001 主程序中用 M98 调用 O1001 子程序,当子程序执行到 M99 代码时,子程序结束,程序执行光标返回到调用子程序的程序段末尾(M98 所在程序段的分号末尾处),并接着往下继续执行主程序其余部分。
M98 P21001; 表示调用程序名为 O1001 的子程序2次。
M98 P1001L2; 表示调用程序名为 O1001 的子程序2次。
M99; 返回主程序调用子程序处,即 M98 的程序段分号结尾处,即该程序段已经执行完毕,将要顺序执行下一个程序段。
M 代码-说明:
M99-结束返回/重复执行
语法格式:
M99;
X- Y- M99;
M99 可不必作为独立的程序段,例如 X100. Y100. M99; 也是允许的。
是否模态:
是。
代码执行后:
如果在主程序中执行 M99 指令,那么光标会移动到主程序的开头,即控制回到主程序的开头,按顺序继续往下执行,即重复执行。
代码用途:
示例代码:
O0001;
...
M98 P1001;
...
M30;
O1001;
...
M99;
在 O0001 主程序中用 M98 调用 O1001 子程序,当子程序执行到 M99 代码时,子程序结束,程序执行光标返回到调用子程序的程序段末尾(M98 所在程序段的分号末尾处),并接着往下继续执行主程序其余部分。
子程序作为单独的程序存储在系统中时,任何主程序都可调用。
子程序与主程序一样,也是由程序名、程序内容和程序结束三部分组成。子程序与主程序唯一的区别是结束指令不同,子程序用 M99,主程序用 M30 或 M02。
当主程序调用子程序时,它被认为是一级子程序,在子程序中可再调用下一级的另一个子程序(二级子程序),子程序调用可以嵌套4级。
M99 指令为子程序结束,并返回主程序,光标移动到开始调用子程序的程序段 M98 P---- 的下一程序段,继续执行主程序。
如果在主程序中执行 M99 指令,那么光标会移动到主程序的开头,即控制回到主程序的开头。
O0001;
开始时,主轴上为任意刀具。
G17 G21 G40 G49 G80;
安全程序段:工作平面(XY 平面)、公制、取消刀径补、取消刀长补、取消固定循环。
T01;
确定主轴刀具是否是 T01,当主轴刀具不是 T01 时,T01 刀具准备(备刀)。
G91 G28 Z0;
主轴快速返回 Z 参考(原)点,即换刀点。
(Y- X-;)
注意换刀前移动到一个安全位置。
M06;
主轴刀具为 T01 时,刀具交换指令不执行,否则执行。
T02;
T01 刀具工作的同时,T02 准备(刀库分离可这样操作),移送到主轴换刀点,准备换刀(备刀)。
(T01 刀具工作中...)