CNC(计算机数字控制)机床根据数控系统中加载的程序指令运行。该程序语言主要由G代码和M代码构成。G代码(准备功能)决定刀具的运动方式、坐标系选择和工作模式;M代码(辅助功能)则控制主轴、冷却、换刀及程序流程等机床功能。本文将介绍最常用的代码含义,并附简短示例程序。
代码基本结构
CNC程序由若干程序段(行)组成。每段包含地址字母和数值:N为行号,G为准备功能,X/Y/Z为轴坐标,F为进给速度,S为主轴转速,T为刀具号,M为辅助功能。多数G代码具有模态性——即写入后持续有效,直至被同组其他代码取代或取消。
运动指令代码
G00:快速定位。刀具以最高速移动至目标点(非切削状态)
G01:直线插补。刀具按F设定进给率沿直线切削
G02:顺时针圆弧插补
G03:逆时针圆弧插补。圆弧可通过R半径值或I/J/K圆心坐标定义
G04:暂停(Dwell)。用于孔底光整等需要短暂停留的场合
平面/单位/坐标系代码
G17/G18/G19:分别选择XY/XZ/YZ工作平面(铣削常用G17)
G20/G21:英制/公制单位选择
G28:返回机床参考点
G90:绝对编程(坐标值相对于工件零点)
G91:增量编程(坐标值相对于当前位置)
G54-G59:工件坐标系。可为不同夹具或零件设定独立零点
刀具补偿代码
G40:取消刀具半径补偿
G41/G42:左/右刀具半径补偿(轮廓加工时自动计算刀径)
G43:刀具长度补偿(需配合H地址)。G49取消补偿
孔加工循环(铣削)
G81:标准钻孔循环
G83:啄钻深孔循环(断屑排渣)
G84:刚性攻丝循环
G80:取消固定循环
车床专用代码
G96:恒线速控制(直径减小时自动升速)
G97:恒转速模式
G71/G70:粗/精车复合循环(Fanuc系统)
G76:螺纹切削循环
注:车床进给单位通常用G98(分进给)/G99(转进给)设定,铣床则使用G94/G95
M功能代码
M00:程序暂停(需手动继续)
M01:选择性暂停(需机床开关激活)
M03/M04:主轴正转/反转
M05:主轴停止
M06:自动换刀
M08/M09:冷却液启停
M19:主轴定向
M30:程序结束并返回开头
M98/M99:子程序调用/返回
示例程序:三孔钻削
O1001 (样例钻孔)
G21 G17 G40 G49 G80 G90
T1 M06 (Φ10钻头)
G54 G00 X0 Y0
S2000 M03
G43 H01 Z50. M08
G81 R2. Z-15. F150
X40.
X80.
G80
G00 Z100. M09
M05
G28 G91 Z0
M30
此程序通过安全初始化行重置模态,调用1号刀具,定位至G54零点,启动主轴与冷却液,使用G81循环在X0/X40/X80位置钻削15mm深孔,随后取消循环,抬刀至安全高度并结束程序。
注意事项
• 程序开头使用安全初始化行(如G21 G17 G40 G49 G80 G90)可避免残留模态干扰
• 相同代码在不同控制系统和机床上可能存在差异,特别是循环和M代码需以设备手册为准
• 首次运行新程序时,建议启用单段模式、降低快移倍率及空运行以降低碰撞风险
• 使用CAM软件时,选择匹配机床的后处理器对代码准确性至关重要
SIFIR MAKINA为其销售的数控车床和加工中心提供装机服务,同时配备操作与编程培训,并为配备Fanuc和三菱系统的机床提供编程支持。
常见问题
G代码与M代码的区别?
G代码控制刀具运动和加工模式,M代码管理主轴/冷却/换刀等机床功能。
什么是模态代码?
写入后持续有效,直至被同组代码取代或取消的指令。如G01、G90、G54均为模态代码。
所有机床的G代码都相同吗?
基本运动指令大体标准化,但循环、部分M代码及参数可能因控制系统而异。