数控加工中心常用的G代码G 代码与 M 代码完全指南:功能分类、常用代码列表、编程示例及安全提示数控加工中心常用的G代码

G代码功能概述

G代码(Preparatory Function)是用来指令机床移动方式和加工类型的代码。它通常与坐标地址(X, Y, Z)和进给速度(F)等结合使用。

模态代码 vs. 非模态代码

  • 模态代码:一旦被指定,会一直保持有效,直到被同组的其他G代码取消或取代。例如,G01模式会持续有效,直到遇到G00、G02或G03。
  • 非模态代码:只在被指定的程序段中有效。

常用G代码详细列表

第一组:单位与坐标设定

| G代码 | 功能描述 | 模态/非模态 | 备注 |
| :— | :— | :— | :— |
G00 | 快速定位 | 模态 | 机床以最快速度移动到目标点,不进行切削。路径通常为折线,需小心避障。 |
G01 | 直线插补 | 模态 | 以指定的进给速度(F)进行直线切削。G01 X_Y_Z_F_; |
G02 | 顺时针圆弧插补 | 模态 | 加工顺时针方向的圆弧。需指定终点和圆心(I, J, K)或半径(R)。 |
G03 | 逆时针圆弧插补 | 模态 | 加工逆时针方向的圆弧。需指定终点和圆心(I, J, K)或半径(R)。 |
G04 | 暂停/延时 | 非模态 | 使程序暂停一段时间(如G04 P2000; 暂停2秒),用于光整加工(去毛刺)、让主轴停稳等。 |

第二组:平面选择

| G代码 | 功能描述 | 模态/非模态 | 备注 |
| :— | :— | :— | :— |
G17 | 选择XY平面 | 模态 | 默认平面。圆弧插补和刀具半径补偿在此平面内进行。 |
G18 | 选择ZX平面 | 模态 | |
G19 | 选择YZ平面 | 模态 | |

第三组:刀具半径补偿 (Cutter Radius Compensation)

极其重要的功能,允许程序员按零件轮廓编程,由CNC系统自动计算刀具中心轨迹。
| G代码 | 功能描述 | 模态/非模态 | 备注 |
| :— | :— | :— | :— |
G40 | 取消刀具半径补偿 | 模态 | |
G41 | 左刀补 | 模态 | 沿刀具前进方向看,刀具中心在零件轮廓的左侧。 |
G42 | 右刀补 | 模态 | 沿刀具前进方向看,刀具中心在零件轮廓的右侧。 |
G43 | 刀具长度正补偿 | 模态 | 将刀具长度偏置值(在H地址中)到程序坐标上。最常用。 |
G44 | 刀具长度负补偿 | 模态 | 将刀具长度偏置值(在H地址中)从程序坐标中减去。很少用。 |
G49 | 取消刀具长度补偿 | 模态 | |

第四组:固定循环 (Canned Cycles)

用于简化钻孔、攻丝、镗孔等重复性操作的编程。
| G代码 | 功能描述 | 模态/非模态 | 典型格式与说明 |
| :— | :— | :— | :— |
G73 | 高速深孔啄钻循环 | 模态 | 断屑式钻孔,适合深孔加工。 |
G74 | 左旋攻丝循环 | 模态 | 攻左旋螺纹(反转主轴,正转退出)。 |
G76 | 精镗循环 | 模态 | 镗孔完成后,主轴准停并让刀,避免刮伤孔壁。 |
G80 | 取消固定循环 | 模态 | 必须用此代码取消循环,否则后续的移动会继续执行循环! |
G81 | 钻孔循环 | 模态 | G81 X_Y_Z_R_F_; (X,Y:孔位,Z:孔深,R:安全高度) |
G82 | 锪孔/镗平循环 | 模态 | 在孔底有暂停,保证底面平整。 |
G83 | 深孔啄钻循环 | 模态 | 排屑式钻孔,完全退出排屑,最适合深孔。 |
G84 | 右旋攻丝循环 | 模态 | 攻右旋螺纹(正转进给,反转退出)。F = 主轴转速 × 螺距 |
G85 | 镗孔循环 | 模态 | 进给速度镗孔,进给速度退出。 |
G86 | 镗孔循环 | 模态 | 主轴停止退出。 |
G87 | 背镗循环 | 模态 | 从孔底向外加工。 |
G88 | 手动退刀镗孔循环 | 模态 | |
G89 | 镗孔循环 | 模态 | 孔底暂停,进给退出。 |

第五组:坐标系统与参考点

| G代码 | 功能描述 | 模态/非模态 | 备注 |
| :— | :— | :— | :— |
G54 ~ G59 | 选择工件坐标系 | 模态 | 最常用的方式。G54对应机床中设定的第1个坐标系原点。 |
G90 | 绝对坐标编程 | 模态 | 所有坐标值均相对于编程原点(工件原点)。 |
G91 | 增量坐标编程 | 模态 | 坐标值相对于刀具的当前位置,是增量的。 |
G92 | 设定工件坐标系 | 非模态 | 现在较少使用,通常被G54-G59取代。 |
G94 | 进给速度单位:毫米/分钟 (mm/min) | 模态 | 铣床默认模式。 |
G95 | 进给速度单位:毫米/转 (mm/rev) | 模态 | 主要用于车床,铣床上攻丝时也可能用到。 |

其他重要G代码

| G代码 | 功能描述 | 模态/非模态 | 备注 |
| :— | :— | :— | :— |
G20 | 英制单位输入 | 模态 | 单位:英寸 (inch) |
G21 | 公制单位输入 | 模态 | 单位:毫米 (mm)。国内默认。 |
G28 | 返回机床参考点 | 非模态 | G91 G28 Z0; (Z轴先回零) G91 G28 X0 Y0; (X, Y轴再回零) |
G30 | 返回第2、3、4参考点 | 非模态 | 常用于换刀点。 |
G68 | 坐标系旋转 | 模态 | 简化有旋转角度分布的零件编程。 |
G69 | 取消坐标系旋转 | 模态 | |
G80 | 取消固定循环 | 模态 | 再次强调,非常重要! |
G98 | 固定循环返回到初始点(R点) | 模态 | 在固定循环中,加工完一个孔后返回初始高度(安全平面)。 |
G99 | 固定循环返回到R点 | 模态 | 在固定循环中,加工完一个孔后返回R点高度(参考平面),效率更高。 |


常用M代码(辅助功能)列表

M代码用于控制机床的辅助动作,如主轴启停、冷却液开关等。

| M代码 | 功能描述 | 备注 |
| :— | :— | :— |
M00 | 程序暂停 | 按下“循环启动”后继续。用于检测工件、手动换刀等。 |
M01 | 选择暂停 | 只有操作面板上的“选择停”按钮打开时才有效。 |
M02 | 程序结束 | 主轴、冷却液全部停止,光标停在程序末尾。 |
M03 | 主轴正转 | 从主轴看向刀柄,逆时针旋转。 |
M04 | 主轴反转 | 从主轴看向刀柄,顺时针旋转。 |
M05 | 主轴停止 | |
M06 | 自动换刀 | T01 M06; (将主轴上的刀换为刀库中的1号刀) |
M07 | 喷雾冷却开启 | |
M08 | ** flood冷却液开启** | 最常用的冷却方式。 |
M09 | 冷却液关闭 | |
M19 | 主轴准停 | 使主轴固定在特定角度,用于换刀或镗孔让刀。 |
M30 | 程序结束并返回 | 比M02更常用,程序结束后自动返回到程序开头。 |
M98 | 调用子程序 | M98 Pxxxx Ln; (调用程序号为Oxxxx的子程序n次) |
M99 | 子程序结束返回 | 子程序的最后一个程序段必须是M99。 |


一个简单的编程示例

%
O1000 (程序名)
G90 G94 G17 G21 G54 (安全启动行:绝对/分进给/XY平面/公制/G54坐标系)
G00 Z100. (快速抬刀到安全高度)
M03 S2000 (主轴正转,2000rpm)
G00 X0 Y0 (快速定位到X0Y0)
Z5. (快速下刀到工件上方5mm)
G01 Z-2. F100 (以100mm/min进给下切2mm)
G01 X50. Y20. F300 (直线切削)
G02 X70. Y0 R20. F250 (顺时针铣圆弧)
...
G00 Z100. (快速抬刀到安全高度)
M05 (主轴停止)
M09 (冷却液关闭)
G91 G28 Z0 (Z轴返回机床零点)
G91 G28 X0 Y0 (X、Y轴返回机床零点)
M30 (程序结束并返回)
%

重要提示:

  1. 查阅手册:不同机床厂商的G/M代码定义可能存在差异,以上为通用列表,务必以您机床的编程手册为准
  2. 安全第一:在运行新程序前,务必使用单段模式降低进给倍率空运行等方式验证程序,避免撞刀。
  3. 模态组:理解模态组的概念可以大大简化编程,避免重复输入相同的G代码。
THE END
喜欢就支持一下吧
分享