如何从容读懂 CNC 程序
G 代码程序是一串简短指令。掌握规律后,这串指令就不再显得杂乱。
一个 G 代码程序段实际包含什么
CNC 程序中的每一行称为一个程序段。程序段由若干字组成,每个字是一个字母加一个数字。字母告诉控制系统后面是哪类信息:G 表示准备功能,M 表示机床功能,X Y Z 表示直线位置,F 表示进给率,S 表示主轴转速,T 表示刀具号。控制系统从左到右读取程序段,并将其作为一条指令执行。
典型程序段如 N40 G01 X25.4 Y12.7 Z-3.0 F250。N 号是顺序号,便于在程序中查找或中途重启。G01 表示按编程进给率进行直线插补。X、Y、Z 字给出移动终点。F250 将进给设为 250 mm/min。改变 F 字,同一几何形状就以不同速度切削。
程序段内的顺序没有人们想的那么重要,但一致性很重要。多数车间先写模态 G 代码,再写坐标,最后写进给。模态是指该代码一直有效,直到同一组中的另一个代码替换它。G01 在其后的每个程序段中都保持有效,所以很少在每一行重复出现。
一个小数点写错不是外观问题。在公差 ±0.005 mm 的钛合金零件上,X 字写成 25.4 而不是 2.54,刀具会越过预定位置 22.86 mm。这就是成品与废品的差别。按下循环启动前,先读坐标字。
- 1N顺序号。便于查找和重启程序段。
- 2G准备功能:运动模式、单位、偏置、固定循环。
- 3M机床功能:主轴、切削液、换刀、程序停止。
- 4XYZ / ABC各轴终点。A、B、C 为旋转轴。
每天都会用到的 G 代码和 M 代码
不需要背下完整代码表。约二十个常用代码就能覆盖多数铣削和车削工作。G00 是快速定位,用于在两次切削之间移动刀具,不接触材料。G01 是直线进给,G02 和 G03 是顺时针和逆时针圆弧。G17、G18、G19 选择圆弧插补平面,因此在 XY 平面编写的圆弧与同样字写在 XZ 平面时表现不同。
在装夹方面,G54 到 G59 是工件坐标系。它们告诉控制系统零件原点相对机床原点的位置。G43 从偏置表应用刀具长度补偿,G41 或 G42 在编程路径左侧或右侧应用刀具半径补偿。如果零件尺寸总是差一个刀具半径,很可能漏了 G41 或 G42。
M 代码处理机床本身。M03 启动主轴顺时针旋转,M05 停止主轴,M06 换刀,M08 开切削液,M09 关切削液。M30 结束程序并回卷。M00 是程序停止,等待操作员,许多车间借此在紧公差特征的精加工前插入检查暂停。
不同控制器并不完全相同。Fanuc、Haas、Siemens 和 Mitsubishi 都使用相同的核心字,但固定循环、宏语法和部分 M 代码有差异。为一种控制器后处理的程序,经修改后可能在另一种上运行,也可能报警。在两个品牌之间传输程序前,务必查阅机床手册。
- 1G00 / G01快速移动和直线进给移动。
- 2G02 / G03圆弧插补,顺时针和逆时针。
- 3G54–G59工件坐标系,即零件原点所在位置。
- 4M03 / M05 / M08主轴开、主轴停、切削液开。
常用 G 代码及其改变的内容
车间现场速查清单。数值和行为取决于你面前的控制器。
| 代码 | 功能 | 何时重要 |
|---|---|---|
| G00 | 快速定位 | 刀具在切削之间移动,不切削 |
| G01 | 直线插补 | 按编程进给率直线切削 |
| G02 / G03 | 圆弧插补 | 圆角、过渡圆角、圆形型腔 |
| G17 / G18 / G19 | 平面选择 | 圆弧方向和固定循环平面 |
| G20 / G21 | 英寸 / 公制单位 | 模式错误会使整个零件尺寸出错 |
| G28 | 返回机床原点 | 换刀和安全退刀位置 |
| G41 / G42 | 刀具半径补偿 | 使路径保持在零件边缘 |
| G43 | 刀长补偿 | 应用偏置表中的刀具偏置 |
| G54–G59 | 工件坐标系 | 为装夹设定零件原点 |
| G81 / G83 | 钻孔和啄钻 | 孔深、排屑、暂停 |
| G90 / G91 | 绝对 / 增量 | 每次移动的位置基准 |
| M03 / M05 | 主轴开 / 停 | 换刀前的转向和停止 |
单位、偏置以及导致零件报废的装夹错误
G20 选择英寸模式,G21 选择公制。程序来自外部来源时,这是首先要检查的。按毫米编程的零件在英寸模式下运行,会试图移动 25.4 倍的距离,多数机床会在刀具到达材料前撞到行程限位。这算幸运结果。若是在行程范围内的短距离移动,刀具就会直接切错位置。
工件偏置和刀具偏置是两套独立系统,两者都必须正确。G54 保存当前装夹的零件原点。刀具偏置表保存每把刀的长度和半径。如果对刀后装入了错误的偏置号,程序中每次 Z 移动都会差出相应差值。所以车间会先在废料块上验证首件,再加工生产件。
进给和转速字是程序与材料交汇之处。铣削时 F 是每分钟进给,车削时若 G99 有效则是每转进给。S 是主轴转速,单位为转/分钟。这两个字都不知道你装的是什么材料。适用于 6061 铝的进给和转速组合,用在 316 不锈钢上会烧掉 4 mm 立铣刀。程序的好坏取决于其背后的切削数据。
在钜亮五金(GreatLight),我们在三个全资工厂运行 127 台高精度 CNC 设备,每道程序在正式加工前都会在装夹上验证。零件公差控制在 ±0.005 mm,出货前 100% 检验,可按需提供报告。干净的程序是这条链的第一步,而不是最后一步。
五轴程序与三轴加工的区别
三轴程序让刀具在 X、Y、Z 方向移动,零件保持不动。这覆盖了很大一部分棱柱类零件:板件、支架、壳体,特征集中在一两个面上。如果几何形状可以从单一装夹方向到达,三轴铣削通常更快、更便宜。
五轴程序增加两个旋转轴,通常是 A 和 B 或 B 和 C,取决于机床。控制系统在同一程序段中协调直线和旋转运动。这样刀具可以到达倒扣区域、在曲面上过渡圆角、钻复合角度孔,而无需二次装夹。对于叶轮或换热器芯体,替代方案是多个工装夹具和多次重新对零,每一步都会增加误差。
编程的变化不止代码列表。刀轴矢量、后处理器输出和碰撞检查都成为工作的一部分。五轴程序在运行前还需要机床仿真,因为屏幕上看起来很短的一段旋转运动,可能让刀柄撞到工作台。我们有 16 台五轴联动加工中心,包括 DMG Mori 铣床,可在 Ø400 mm 工作台上处理旋转加工,大型机床行程达 4,000 × 400 × 150 mm。
五轴程序划算的场景:需要一次连续走刀完成的复杂轮廓、带拔模壁的深腔,以及多次装夹造成的公差链会吃掉预算的零件。不划算的场景:简单板件、平面盖板,以及任何三轴机床一次装夹就能完成的零件。让程序匹配几何形状,而不是匹配机床规格表。
后处理程序告诉你关于加工任务的什么信息
打开后处理程序时,先读文件头。刀具列表、毛坯尺寸、工件坐标系和单位模式通常以注释行形式位于顶部。如果文件头指定的刀具不在机床中,就此停下。换刀行缺少 T 字是常见的后处理错误,也是快速折断刀具的途径。
接下来,扫描接近和退刀运动。靠近工装夹具的 G00 程序段值得手动检查。大多数撞机发生在快速移动中,而不是切削移动中,因为操作员盯着切削、信任快速移动。在程序中设定安全 Z 高度,并对照零件最高点和压板进行验证。
最后,对照刀具直径检查进给率。3 mm 刀具按 12 mm 刀具的进给运行会折断。12 mm 刀具按 3 mm 刀具的进给运行会摩擦、使表面加工硬化并快速磨损。程序中的数字是计划,机床会严格执行计划。
- 1文件头注释刀具列表、毛坯尺寸、工件坐标系、单位模式。
- 2快速移动循环启动前检查与压板和工装夹具的间隙。
- 3进给与刀具尺寸按一种直径写的进给对另一种直径是错的。
新手加工员关于 G 代码的常见问题
运行 CNC 机床需要手写 G 代码吗?
大多数生产工作不需要。CAM 软件从 3D 模型生成后处理程序,操作员验证并运行。手写对于简单端面、定心钻孔和系统面板上的快速修改仍然有用。
G 代码和 M 代码有什么区别?
G 代码控制运动和系统如何解释程序:进给移动、圆弧、单位、偏置、平面选择。M 代码切换机床功能:主轴、切削液、换刀、程序停止。一个程序段可以同时包含两者。
为什么我的零件在一个方向上尺寸不对?
先检查单位模式,然后检查工件坐标系和刀具半径偏置。零件偏差恰好等于刀具半径,通常意味着 G41 或 G42 缺失或应用在了错误的一侧。
同一个程序能在 Fanuc 和 Haas 系统上运行吗?
核心指令相同,但固定循环、宏语法和部分 M 代码不同。为一个系统后处理的程序可能需要为另一个系统修改。运行零件前先在安全程序段上测试。
如何判断零件是否应按五轴编程?
如果几何形状需要倒扣、复合角度孔,或在曲面上一次连续走刀,而替代方案是三四次装夹,五轴通常值得。简单棱柱类零件在三轴机床上更快。
G28 做什么,为什么几乎每个程序里都有?
G28 将机床送回参考点,通常在换刀前或程序结束时。它清空工作区域,使刀具和刀柄不会与零件或工装夹具碰撞。
