CNC 加工中心代码表真正控制的内容
CNC 程序中的每个程序段都是一条改变机床状态的短指令。有些行移动轴,有些行开启或关闭主轴,有些行告诉控制器主轴中装的是哪把刀、该刀具距基准线的距离。CNC 加工中心代码表就是控制器读取这些行时所理解的词汇表。
在典型的立式加工中心上,G 代码负责运动和几何。M 代码负责主轴旋转、切削液和换刀等机床功能。T 代码选刀,H 代码调用长度偏置,D 代码调用刀具半径偏置。进给和转速用 F 和 S 表示。看懂这五组代码后,冗长的程序就不再像一堆乱码。
同一个字母在不同机床厂商的系统中含义可能不同。在许多基于 Fanuc 的控制器上,G54 到 G59 选择工件坐标系。在 Siemens 控制器上,同一概念的语法看起来不同。以下列表遵循通用的 ISO/Fanuc 惯例,因为它是大多数立式和卧式加工中心的基础方言。
代码不切削金属,它们描述意图。机床仍需将这种意图转化为伺服运动、主轴扭矩和切削液流量。这就是为什么两个使用相同 G 代码的程序可能产生不同的表面质量和不同的刀具寿命。代码是计划;机床、刀具和材料决定结果。
- 1G 代码运动类型、平面选择、偏置和固定循环。
- 2M 代码主轴、切削液、换刀和程序停止功能。
- 3T、H、D 代码刀具号、长度偏置和刀具半径偏置。
- 4F 和 S进给速度(mm/min 或 in/min)和主轴转速(rpm)。
G 代码:CNC 加工中心代码表中的运动部分
G00 是快速定位。机床以最快的安全速度移动到某一点,通常位于零件上方或安全平面。G01 是按编程进给速度的直线插补。如果指令为 G01 F250,刀具将沿你用 X、Y、Z 定义的矢量以 250 mm/min 直线移动。
G02 和 G03 是圆弧插补,分别为顺时针和逆时针。它们需要圆弧终点,以及半径 R 或圆心 I、J、K。R 形式更短、更易读。I、J、K 形式对于超过 180 度的圆弧和整圆更可靠,因为 R 形式在某些控制器上可能产生错误的圆心。
G17、G18 和 G19 选择工作平面:XY、XZ 和 YZ。大多数 3 轴铣削在 G17 下运行。在 5 轴机床上,平面选择与旋转轴及后处理输出相互影响,因此首次切削前值得检查。G20 和 G21 将单位设为英寸或毫米。混用单位是让刀具撞上虎钳的最快方式之一。
G28 使机床返回参考位置,通常经过一个中间点。G43 用 H 号应用刀具长度补偿。G54 到 G59 选择工件偏置。G73 和 G83 是啄钻循环。G81 是简单钻孔循环。G84 是刚性攻丝。G40 取消刀具补偿,G41 是左补偿,G42 是右补偿。G90 和 G91 在绝对定位与增量定位之间切换。G98 和 G99 设定固定循环的返回平面。
- 1G00 / G01快速移动和直线进给移动。
- 2G02 / G03顺时针和逆时针圆弧移动。
- 3G43 / G49应用和取消刀具长度补偿。
- 4G54–G59用于不同工装夹具的工件坐标系。
M 代码:主轴、切削液与机床辅助功能
M03 启动主轴顺时针旋转。M04 启动逆时针旋转。M05 停止主轴。M08 开启切削液,M09 关闭切削液。M06 执行换刀,通常在主轴停止且机床移动到换刀位置后进行。这些是几乎每个程序中都会出现的行。
M00 是程序停止,等待操作员按下循环启动。用于手动清屑、翻面或测头检查。M01 是可选停止,仅在操作员启用可选停止开关时暂停。M30 结束程序并回到程序开头。M02 在较旧控制器上结束程序但不回卷。
在具有主轴中心出水功能的机床上,M07 或厂商特定的 M 代码用于选择该功能。高压切削液通常用 M08 加泵指令,或用单独的 M 代码启用高压回路。务必查阅机床手册,因为这一组是各厂商差异最大的地方。
M 代码并不总是移动轴。在编写手动操作的停止指令时,这一点很关键。如果刀具仍在零件内部,而你发出 M00 却没有退刀,操作员就必须手动点动机床。在任何手动停止之前,先加一条 G00 Z 向安全高度移动。
- 1M03 / M04 / M05主轴正转、反转和停止。
- 2M06换刀指令。
- 3M08 / M09切削液开和关。
- 4M00 / M01 / M30程序停止、可选停止和程序结束。
T、H、D 代码:精度得失所在
T 代码告诉控制器从哪个刀库位取刀。H 代码告诉它该刀具相对基准线的长度。D 代码告诉它刀具直径相对名义值的偏差。其中任何一个出错,机床就会空切、切得过深,或留下超差的侧壁。
刀具长度偏置通常用对刀仪或在机床上对刀设定。长度偏置 0.02 mm 的误差会直接反映在该刀具加工的每个特征的 Z 向深度上。对于公差 ±0.005 mm 的零件,这个误差已经是公差带的四倍。偏置不是纸面工作,它就是零件几何。
刀具半径补偿让你按零件轮廓编程,由控制器按刀具半径偏移刀路。G41 和 G42 负责这一点。好处是重磨过的刀具或直径略有不同的刀具不必重写程序。你更新 D 值,跑同一条刀路即可。代价是控制器现在必须求解偏置几何,如果半径过大,狭窄的内角可能报警或留下接刀痕。
一把磨损的 12 mm 立铣刀可能实测为 11.94 mm。如果不补偿直接跑,它切的每条槽都会窄 0.06 mm。如果用 G41 和 11.94 的 D 值,控制器侧会把槽恢复到 12.00 mm。这就是 D 代码的全部意义。
- 1T01–T99刀库位选择。
- 2H01–H99每把刀的长度偏置。
- 3D01–D99用于补偿的刀具半径偏置。
- 4G41 / G42 / G40左补偿、右补偿和取消。
固定循环、子程序和宏变量
固定循环把重复动作压缩到一行。G81 钻孔,进给到深度后快速退回。G83 啄钻排屑,这在深孔和 6061 铝或 304 不锈钢等粘性材料中很重要。G73 是用于较浅孔的高速啄钻循环。G84 用主轴与进给同步攻丝。
固定循环会一直有效,直到你用 G80 取消。这是常见的陷阱。如果你用 G81 钻一个孔阵,然后写一条 G01 移动却没有 G80,控制器可能把该移动当作另一个钻孔位置。刀具会在你想要直线的地方扎下去。换新的运动类型前,务必先取消循环。
子程序用 M98 调用、M99 返回。它们适用于重复特征,例如螺栓孔阵或一组相同的型腔。宏变量更进一步。宏可以从几个输入计算出刀路,很多车间就是这样处理零件族的,不必为每个尺寸写一个程序。
宏很强大,也很容易出错。一个错误的变量可能改变整个程序的进给率或深度。保持宏逻辑简单,记录输入变量,首件试跑时让刀具远离毛坯。
- 1G81 / G83简单钻孔和啄钻。
- 2G84刚性攻丝循环。
- 3G80取消固定循环。务必使用。
- 4M98 / M99调用子程序和从子程序返回。
代码表止步、机床接手之处
代码表描述的是指令,不是能力。G01 移动在任何机床上都合法。机床能否在该进给率下保持 ±0.005 mm,取决于机床刚性、刀具、装夹和车间的热状态。在磨损机床上,写得再好的程序仍会做出磨损的零件。
进给和转速是决定刀具寿命的两个值。在 6061 铝中,12 mm 硬质合金立铣刀可能跑 3,000 到 6,000 rpm,进给 1,000 到 2,500 mm/min,取决于径向和轴向切深。在 304 不锈钢中,主轴转速下降,每齿进给也随之下降。代码表给你 F 和 S,但不告诉你具体数值。
切削数据还取决于刀路策略。摆线刀路保持低径向切深,让你在硬材料中跑更高进给、获得更长刀具寿命。常规满槽走刀把整个刀宽埋进材料,产生更多热量。同样的 G 代码,结果差别很大。
边界很简单。代码控制位置和顺序,不控制颤振、让刀或热量。零件超差时,先查偏置和程序,再查装夹和刀具。大多数公差问题出在第二组。
- 1偏置误差表现为每个零件上恒定的偏移。
- 2让刀表现为锥度或随深度变化的尺寸。
- 3热增长表现为整批加工中缓慢漂移。
- 4刀具磨损表现为许多零件上逐渐的尺寸变化。
常见 CNC 加工中心代码表条目及其工程影响
阅读程序或编写后处理时,可用作快速交叉核对。
| 代码 | 功能 | 工程影响 |
|---|---|---|
| G00 | 快速定位 | 快速移动,不切削。远离毛坯。 |
| G01 | 直线进给移动 | 进给率 F 决定每齿切屑负载和表面质量。 |
| G02 / G03 | 圆弧插补 | R 形式简短;超过 180° 时 I、J、K 更安全。 |
| G17 / G18 / G19 | 平面选择 | 平面选错会破坏圆弧和固定循环。 |
| G20 / G21 | 英寸或公制单位 | 不匹配可能在第一步就报废零件。 |
| G43 / G49 | 长度补偿开 / 关 | H 偏置误差会偏移每个 Z 向深度。 |
| G54–G59 | 工件坐标系 | 让一个程序在多个工装夹具上运行。 |
| G81 / G83 / G84 | 钻孔、啄钻、攻丝循环 | G83 在深孔和粘性合金中排屑。 |
| G41 / G42 / G40 | 刀具补偿左 / 右 / 关 | D 值吸收刀具磨损和重磨量。 |
| M03 / M05 | 主轴开 / 停 | 主轴升速后,首次切削前需要暂停。 |
| M06 | 换刀 | T 号错误意味着刀具和偏置都错。 |
| M08 / M09 | 切削液开 / 关 | 切削液选择影响排屑和表面质量。 |
工程师常问的 CNC 加工中心代码问题
每台 CNC 加工中心的 G 代码表都一样吗?
不一样。通用的 ISO 和 Fanuc 风格代码集被广泛共用,但各机床厂商会增删或重命名代码。主轴内冷对应的 M 代码就是典型例子。基本运动代码在多数机床上行为一致,所以这张表仍可作为起点使用。
运行不熟悉的代码前,务必查阅机床手册。在一个控制系统上无害的代码,在另一个系统上可能触发报警或产生意外动作。
G41 和 G42 有什么区别?
G41 将刀具偏置到编程路径左侧,G42 偏置到右侧。正确选择取决于进给方向,以及是顺铣还是逆铣。
G40 取消补偿。如果补偿仍处于激活状态就开始加工新特征,控制系统可能偏移你本希望走直线的路径。
为什么取消钻孔循环后它还在继续钻?
很可能你并没有取消它。固定循环会一直保持激活,直到发出 G80。G81 或 G83 之后的任何 XY 移动都会被当作另一个孔位。
在最后一个孔之后、任何轮廓或定位移动之前,立即写入 G80。这是手写代码中最常见的程序错误之一。
刀具长度偏置应多久检查一次?
每个工件开始时检查一次,每次更换新刀或重磨刀具后也要检查。0.02 mm 的偏置误差已经是 ±0.005 mm 公差的四倍。
长时间连续加工时,按固定间隔复查偏置。主轴和滚珠丝杠的热伸长会在几小时内改变有效长度。
能用代码表估算加工时间吗?
只能粗略估算。可以把进给移动相加再除以进给率,但这忽略了快速移动、换刀、加减速和任何暂停。对于包含大量短移动的零件,实际加工节拍可能比简单估算长得多。
要得到确定数值,请在机床上运行程序,或使用 CAM 软件按真实机床加速度值进行时间估算。
五轴机床使用不同的代码表吗?
使用相同的核心代码,另加旋转轴指令,有时还有针对刀尖点控制的机床专用功能。后处理器会处理大部分转换工作。
五轴加工的风险不在代码表,而在装夹。转台上的工件偏置设错,可能让零件旋转撞上刀具。请验证装夹,并在刀具远离毛坯的情况下空运行。
