要点速览
CNC 程序段实际包含什么
G 代码程序是一系列程序段,一个程序段就是控制系统从左到右读取的一行。大多数程序段遵循相同顺序:N 为行号,G 为运动或模式,X Y Z 为坐标,然后 I J K 为圆弧中心,再是 F、S 和 T。这个顺序不是装饰,而是控制系统解析该行的方式,Fanuc 风格的控制系统遇到违反顺序的程序段会报错。
每个程序段都需要你脑中记住模态状态。G 代码会保持有效,直到同组的另一个 G 代码替换它。G01 会一直有效,直到你调用 G00 或 G02。F 会一直有效,直到你写入新的 F。这就是为什么程序可以看起来很短却仍能切出复杂形状,也是为什么固定循环后漏写 G80 会毁掉下一个孔。
大多数控制系统用括号写注释,有些用分号后写注释。要用注释。像 (Rough OD, 12 mm end mill) 这样的程序段不花成本,却能为下一个人节省二十分钟。注释用英文并保持简短,因为一些老控制系统会截断过长的注释行。
许多机床对单个程序段还有长度限制。如果你在一行里串联三段圆弧并各自带 I J K,请拆开。长程序段是错别字藏身之处。我们审查手写程序时,先看程序段长度,再看几何形状。
值得先记住的 G 代码与 M 代码
入门不需要完整代码表。你需要 G00 快速定位、G01 进给、G02 和 G03 圆弧、G17 至 G19 平面、G20 和 G21 单位、G28 返回参考点、G40 至 G42 刀具补偿、G43 刀具长度补偿、G54 至 G59 工件坐标系,以及 G80 取消固定循环。这就是核心。其余都可以查。
M 代码方面,M03 主轴正转、M05 停止、M06 换刀、M08 切削液开、M09 切削液关、M30 结束并复位。换刀是常见的撞机点。M06 前务必把 Z 退到安全高度并取消补偿。在 Z-2 mm 处换刀,坏的是刀柄,不是零件。
单位是无声的杀手。G20 是英寸,G21 是毫米。把正确的单位写在前三行。我们见过用毫米编写的程序在仍处于英寸模式的机床上运行;零件被切成了大约预期尺寸的二十五分之一。
G90 绝对坐标和 G91 增量坐标也应放在开头附近。大多数生产程序运行 G90。增量移动对重复图案有用,但会累积误差。如果一个增量程序段错了,之后每个位置都会错同样的量。
如何设定进给率和主轴转速
进给率从每齿切屑负荷算起,而不是从车间里某人说的一个数字开始。取该材料和刀具直径推荐的每齿切屑负荷,乘以齿数,再乘以 RPM。12 mm 三刃硬质合金立铣刀在 6061 铝中以 8,000 RPM、每齿 0.05 mm 运行,得到 1,200 mm/min。写 F1200。
主轴转速来自线速度。铝用硬质合金时,300 至 500 m/min 是正常范围。304 不锈钢降到 80 至 120 m/min。钛再低,40 至 60 m/min,并保持刀具持续移动。杀死钛刀具的是摩擦,不是转速。
切削深度和步距与进给配套。在铝中,摆线刀路常可采用等于一倍刀具直径的轴向深度和直径 5% 至 10% 的径向步距。在更硬的钢中减半。如果机床开始颤振,先减小径向接触,再减小进给,因为进给太低会使刀具摩擦。
垂直下刀是例外。绝不要用切削进给垂直下刀。在控制系统支持时使用斜线下刀或螺旋下刀,或以切削进给的 30% 至 50% 下刀。以全进给直接垂直扎入钢中,就是三刃刀在头十秒内折断的原因。
工件坐标系、刀具长度与安全 Z
G54 是你最常用的工件坐标系。从零件基准设定,而不是从台虎钳角设定。选择图纸上出现的基准,以便检验员测量同一点。如果图纸从顶面和内孔中心标注尺寸,就在那里设 G54,并从该原点写出每个坐标。
刀具长度补偿写入由 G43 调用的 H 寄存器。G43 H01 Z50 将刀具提升到当前 Z 中工件坐标系上方 50 mm 处。符号弄错,刀具就会扎进工作台。务必在同一程序段中调用 G43 和第一个 Z 移动,并且始终使用正 Z。
安全Z高度是习惯,不是代码。换刀时我们用毛坯上方50 mm,特征间快速移动用5 mm。在高的零件上,50 mm仍可能撞到压板,所以要在仿真中检查工装夹具。退刀高度在CAM中设置,但手写代码时你要逐行决定。
G28使机床经过中间点回参考点。常见形式是G28 G91 Z0。路径畅通时安全,若平口钳或转台挡在路上则危险。在五轴机床上,任何G28移动前先把旋转轴停到安全位置。
为CNC机床编写G代码:分步说明
按下面的顺序操作。每一步列出要写什么,以及通常哪里会出错。
- 1从安全程序头开始第一个程序段:G21 G17 G40 G49 G80 G90。这设定毫米、XY平面、取消补偿、取消刀长、取消固定循环、锁定绝对模式。漏掉取消指令是首次移动撞机最常见的原因。
- 2添加程序号和注释前两行写O1001 (BRACKET OP1)。程序号要唯一。重复的编号会在机床内存中互相覆盖。
- 3调用刀具并启动主轴T01 M06,然后S8000 M03,然后G43 H01 Z50。在刀具接近零件前启动主轴。绝不要把M06和M03放在同一程序段。
- 4设定工件坐标系G54与第一个定位移动放在同一程序段,例如G54 G00 X0 Y0。按循环启动前,确认该偏置已通过测头或对刀确定。
- 5移动到第一个切削点在安全Z高度快速移动XY,然后快速下降到毛坯上方2 mm。最后2 mm用切削进给。从安全Z到毛坯的这段移动,是大多数扎进压板事故的发生处。
- 6用G01、G02、G03切削直线移动用G01加F。圆弧用G02顺时针、G03逆时针,用I J表示圆心相对起点的位置,或用R表示半径。同一圆弧中不要混用I J和R。
- 7正确应用刀具补偿G41左补偿或G42右补偿,然后一段长于刀具半径的切入移动,再走轮廓。用G40在切出移动中取消。在零长度移动上开补偿不起作用,许多系统还会报警。
- 8退刀、停止并结束程序G00 Z50、M09、M05,然后G28 G91 Z0或安全停靠位置,然后M30。让机床处于下一位操作者可以信任的状态。
按材料给出的进给、转速和公差
刚性机床上硬质合金刀具的起始值。根据刀具悬伸和工装夹具刚性调整。
| 材料 | 表面速度 | 每齿进给,12 mm 3刃 | 我们通常控制的公差 |
|---|---|---|---|
| 6061 铝 | 300–500 m/min | 0.05 mm/齿 | ±0.005 mm |
| 7075 铝合金 | 200–350 m/min | 0.04 mm/齿 | ±0.005 mm |
| 304 不锈钢 | 80–120 m/min | 0.03 mm/齿 | ±0.005 mm |
| 17-4PH 不锈钢 | 60–100 m/min | 0.02 mm/齿 | ±0.005 mm |
| Ti-6Al-4V | 40–60 m/min | 0.02 mm/齿 | ±0.005 mm |
| P20 模具钢 | 60–90 m/min | 0.02 mm/齿 | ±0.005 mm |
| POM 塑料 | 300–500 m/min | 0.08 mm/齿 | ±0.02 mm |
常见问题
如果只有图纸,我怎样为CNC机床编写G代码?
先选图纸上出现的基准,然后从该点设定G54。按切削顺序列出每个特征:端面、粗加工、精加工、钻孔、攻丝。每把刀写一段,各段保持独立。
简单零件不需要CAM。两三把刀、十几个特征,手工可以应付。超出这个范围,CAM后处理比手打坐标更快、更不易出错。
G 代码和 M 代码有什么区别?
G代码控制运动和机床模式:定位、进给、圆弧、平面、偏置、补偿。M代码控制开关动作:主轴、切削液、换刀、程序结束。
粗略规则:改变路径几何的是G代码。开关某个功能的是M代码。
同一段G代码能在任何CNC机床上运行吗?
基础层面大多可以。G00、G01、G02、G03、G17、G21、G54和M03接近通用。差异出现在固定循环、换刀语法和高速前瞻设置上。
Fanuc、Siemens、Mitsubishi和Heidenhain都有各自的专有变体。运行针对其他系统编写的程序前,务必查阅机床手册。
为什么我的刀具在第一次下刀时就断了?
通常是进给,不是转速。在钢或钛上以全切削进给直接垂直下刀,会使刀具中心过载,那里的表面速度接近零。改用斜线或螺旋切入。
第二个原因是跳动。检查刀柄和刀具悬伸。标准刀柄伸出60 mm的刀具,即使进给正确也会振颤并折断。
与加工供应商合作需要学G代码吗?
不需要会写,但能读有帮助。能读程序,你就能判断供应商深腔是否用了对的刀具,紧公差是靠精加工走刀保证还是只是口头声称。
我们自己的活,每个程序在首次切削前都要对照图纸检查并仿真。
怎样避免手写程序报废零件?
先仿真,然后关主轴、Z抬高50 mm空跑一遍。在每个换刀点观察位置显示。然后以25%进给倍率单段运行首件。
保留打印的装夹单,含刀具清单、偏置和毛坯尺寸。大多数报废来自装夹不匹配,而不是坐标错误。
