G90 绝对坐标与 G91 增量坐标:同一数字变成不同位置的那一刻
用矩形示例和坐标追踪表说明 G90 绝对指令与 G91 增量指令的区别、增量模式有用的重复加工,以及忘记切回模式导致的事故。
一句话说明两种方式的区别
在 G90(绝对)下,X20. 的意思是“去工件原点 X 方向 20 的位置”;在 G91(增量)下,X20. 的意思是“从当前位置沿 X 再走 20”。同样的字母和数字,因模式不同而成为完全不同的目的地。
这两个代码是同一组的模态指令,一旦指令就会一直保持,直到出现另一个。即使程序段中没有写 G90/G91,也会采用上方某处最后指令的模式。
示例与坐标追踪
用 G91 增量画出 20×15 的矩形并回到 G90
O3004
T1 M6
G21 G90 G17 G94
G54
S3000 M03
G00 X10. Y10. Z5.
G01 Z-1. F100
G91 X20. F300
Y15.
X-20.
Y-15.
G90 G00 Z50.
M30上图是CNC Path Analyzer对该程序的解析结果 (快速移动 2 段, 直线切削 5 段).
逐行跟踪位置
增量区段的四个程序段,无论起点在哪里,都会画出 20×15 的矩形。把起点 (10,10) 改为 (40,30),矩形也会随之平移。这一性质是增量指令最大的优点。
| 程序段 | 模式 | 移动量 | 移动后的位置(X, Y, Z) |
|---|---|---|---|
G00 X10. Y10. Z5. | G90 | - | (10, 10, 5) |
G01 Z-1. F100 | G90 | - | (10, 10, -1) |
G91 X20. F300 | G91 | X +20 | (30, 10, -1) |
Y15. | G91 | Y +15 | (30, 25, -1) |
X-20. | G91 | X -20 | (10, 25, -1) |
Y-15. | G91 | Y -15 | (10, 10, -1) |
G90 G00 Z50. | G90 | - | (10, 10, 50) |
用增量坐标加工重复轮廓
需要在多个位置加工同一形状时,增量模式特别有用。把形状用增量写成子程序,主程序只需移动到各个位置后调用即可。重复加工等间距的孔或槽时,也只要重复 G91 X15. 这样的同一行,错误会更少。
反过来,增量的误差会累积。如果圆弧终点计算因舍入每次偏差 0.001 mm,重复十次后就是 0.01 mm。需要精确位置的基准孔或最终位置,最好用绝对坐标指令,切断误差累积。
最常见的事故:没有取消 G91 就结束
增量区段结束后如果不回到 G90,接下来的 G00 Z50. 就不是“到高度 50”,而是“比现在高 50 mm”;G00 Z-5. 这样的程序段也不是“到高度 -5”,而是“比现在低 5 mm”。本以为是去换刀位置的移动却冲向工件,事故就是这样发生的。
这就是示例最后一段像 G90 G00 Z50. 这样把模式切换和移动写在同一行的原因。子程序以 G91 结束的情况也很多,所以在调用之后于主程序第一行重新写 G90 是安全的习惯。
默认用哪一种
- 整个程序默认使用 G90 绝对。看任何一行都能立刻知道目的地,便于审查。
- 只在重复形状、子程序、等间距移动等相对形状重要的部分使用 G91,区段结束后立即回到 G90。
- 请记住,在大多数控制器中,圆弧的 I/J/K 与模式无关,都按增量(以起点为基准)读取。详情见 G02/G03 文章。
常见问题
同一程序段中可以混用绝对和增量吗?
X30. W-5. 这样混用。