CNC Path Analyzer

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
用 G91 增量画出 20×15 的矩形并回到 G90 — XY 路径XY
浅蓝虚线表示G00快速移动,橙色实线表示切削移动。圆弧以计算后的静态曲线展开。

上图是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. F100G90-(10, 10, -1)
G91 X20. F300G91X +20(30, 10, -1)
Y15.G91Y +15(30, 25, -1)
X-20.G91X -20(10, 25, -1)
Y-15.G91Y -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 文章。

常见问题

同一程序段中可以混用绝对和增量吗?
加工中心的 G90/G91 是以程序段为单位的模式,不能在同一程序段中混用。车床的 X/Z 与 U/W 是以地址为单位的,可以像 X30. W-5. 这样混用。
在工具中有没有容易找到增量区段的方法?
在 CNC Path Analyzer 中逐段播放时,会显示每个程序段的终点坐标。如果线条从意想不到的位置开始,请检查紧挨着的上一段是否切换了 G90/G91。

后续步骤

在CNC Path Analyzer中检查路径