搜索文章与案例

Technical Article

三菱 M80 的 G52 为什么还在?切换 G54/G55 不会清零

三菱 M800/M80 加工中心切回 G54 后仍偏位,先查 G52 清零时的工件坐标与 G90/G91。用坐标验算说明独立偏移、增量累加和 Mastercam 后处理的工位交接。

一套夹具在 G54 下加工,程序里用 G52 把原点挪到第二个工位;中间切到 G55,回到 G54 后,刀路还是整体偏了一段。打开工件坐标表,G54 的数值又没有改。遇到这种情况,先沿着程序找 G52,尤其要看它在哪个工件坐标系下建立、在哪个坐标系下清除。

三菱 M800/M80 加工中心系统中,G54~G59 各自保存自己的 G52 局部偏移。切换 G55 只会换用 G55 那一组状态;再次选 G54,原来挂在 G54 上的局部偏移仍然有效。下面以普通三轴、毫米制的 XY 平移说明这个问题。

在 G55 清过零,为什么 G54 还偏?

把运动段暂时拿掉,只看这几行坐标状态:

N10 G90 G54
N20 G52 X40. Y20. Z0.
N30 G55
N40 G52 X0. Y0. Z0.
N50 G54

N20 给 G54 建立了 X 向 40 mm、Y 向 20 mm 的局部偏移。N40 执行时,当前工件坐标已经是 G55,所以清掉的是 G55 的 G52。到 N50,控制器重新选中 G54,X 向 40 mm、Y 向 20 mm 又成为当前有效的局部偏移。问题出在清除对象,不能用“程序中出现过一行 G52 X0. Y0. Z0.”判断所有工位都已经归零。

G52 指令段本身不产生轴运动。它改变的是后续程序坐标的参照原点,因此常见的现象是:执行 G52 时机床没动,等到后面的定位段才发现位置不对。排查时要向前看状态建立过程,不能只盯住发生偏位的那一行坐标。

同一个 X10. Y10.,到底会落在哪里?

先在 G54 内看。没有局部偏移时,程序点 X10. Y10. 就是 G54 内的 (10,10)。加入 G52 X40. Y20. 后,局部原点位于 G54 内的 (40,20),同样的程序点会落在 G54 内的 (50,30)。两次目标位置的差值恰好是 (40,20)。

G54坐标内,局部原点从零点移到40、20,同一程序点X10 Y10.由10、10变为50、30;图下验算机床目标点为150、130。
G52 的偏移量与程序点相加。图中每格为 10 mm,箭头表示坐标关系。

再给它一个机床坐标中的位置。设 G54 原点为 (100,100),G55 原点为 (260,100),没有外部工件偏移、G92、旋转或缩放叠加,也不计入刀具半径补偿等会改变 XY 目标位置的补偿。程序点都取 (10,10):

  • G54 带着 (40,20) 的 G52:目标点为 (100,100)+(40,20)+(10,10)=(150,130)

  • G55 的 G52 已清零:目标点为 (260,100)+(0,0)+(10,10)=(270,110)

  • 再回到 G54:仍然是 (150,130),不会自动变回 (110,110)

这个算式还可以反过来查后处理。如果 Mastercam 输出的 XY 已经包含了第二工位的平移,控制器端又执行一遍相同的 G52,就会把这次平移重复算进去。接程序时先明确:平移由后处理完成,还是由控制器完成;同一份偏移只保留一个计算入口。

G52 后面的零,还要看前面是 G90 还是 G91

在 G90 下,G52 指定局部原点的位置;在 G91 下,G52 给现有局部偏移再加一段增量。以 X 方向为例,每组都从零偏移开始:连续两次 G90 G52 X40.,最后仍是 40 mm;连续两次 G91 G52 X40.,最后是 80 mm。

所以已有 X 向 80 mm 偏移时,G91 G52 X0. 只是再加零,偏移仍为 80 mm。要把当前工件坐标系中的三轴局部偏移明确清掉,应写成 G90 G52 X0. Y0. Z0.。若程序还涉及其他局部偏移轴,需要把那些轴也纳入清除范围。

两次G90 G52 X40.得到40、40,两次G91 G52 X40.得到40、80;增量加零保持80,绝对设零归零。G54和G55分别保存自己的G52状态。
上半图比较覆盖与累加;下半图展示 G54、G55 之间切换时的独立状态。

这里也别顺手把一行 G90 插进原程序就结束。G90 会影响后面的定位段;如果原程序原本要继续做增量运动,还需要按原来的编程意图安排后续 G90/G91。修改一个坐标状态,要同时看它前后的状态交接。

后处理里,清零要跟着工位边界走

对于由主程序统一管理 G52、子程序只接收局部坐标的方案,可以把边界安排清楚:

  1. 进入工位时,先选定 G54 或 G55,随后用绝对方式明确建立本工位需要的 G52,再调用该工位的加工内容。

  2. 离开工位时,在既定的安全退刀之后、下一次定位之前,清除当前工位的局部偏移。不要先换工件坐标,再清上一工位的偏移。

  3. 允许单独重跑的工序,应能从自己的入口恢复正确状态,不能依赖前一道工序刚好执行过清零。

例如,一段加工结束后仍处于 G54,要交接到不使用局部偏移的 G55 工位,坐标状态部分可以明确写成:

G90 G54
G52 X0. Y0. Z0.
G55
G52 X0. Y0. Z0.

这四行处理的是两个工位的坐标状态,退刀路径、刀长补偿、夹具避让和下一次定位应由完整工艺程序安排。若某个子程序本来就约定继承 G52,也不要在它内部随意归零,否则会破坏主程序安排好的工位关系。

做 Mastercam 后处理回归检查时,至少对照四种输出:从头执行、同一工位重复调用、G54→G55→G54、从允许的工序入口重新开始。逐处记录“当前工件坐标、G90/G91、当前 G52、下一定位点”,比只搜索程序末尾有没有清零更容易发现问题。

RESET 和回参考点,另看机床的取消条件

切换 G54/G55 不会清除各自的 G52,这与 RESET、回参考点不是一回事。三菱功能规格手册把复位信号列入局部坐标取消条件;编程手册也列有重新上电、挡块式回参考点的清除规则,参数手册另有回参考点保留局部偏移的选择。现场应按该机的复位信号和参数配置判断,不能笼统写成“按 RESET 一定保留”或“回零一定清掉”。

让程序显式建立、显式撤销自己负责的 G52,工位之间的交接就容易核对。这里依据 2025 年 1 月 U 版加工中心编程手册,范围是 G54~G59;G54.1 扩展工件坐标的 G52 支持和共享方式另有版本规则,不能直接套用上面的六组独立模型。

查这类偏位,可以先记住两个问题:清零那一行选中了哪个工件坐标?它执行时是 G90 还是 G91?这两处对上,很多看起来像“G54 数据自己变了”的现象就能解释清楚。

相关阅读与手册