Technical Article
三菱 M80 G16 等分孔:G91 多写 X50,孔位为什么偏50毫米?
三菱M80在G16下转到下一个等分孔,G91 Y90与G91 X50 Y90为何相差50毫米?用同一起点、两段NC和等比例图,核对省略半径、增量半径的极点规则及量化回归。
同为直径100毫米分度圆,从A=(50,0)转到90°孔位,G91 Y90.会到B=(0,50);补成G91 X50. Y90.却到E=(50,50),孔位偏了50毫米。这里多写的X50.不是重复声明原半径,而是让本段改用A作为极点。以下按三菱M80加工中心的G16规则拆开验算。
关键在半径地址有没有出现。这里X代表半径,Y代表角度;显式增量半径会改变本段极点,省略半径则另有规则。只记“G90绝对、G91增量”,还不足以审查这类程序。
本文按三菱M800/M80/E80/C80加工中心编程手册IB-1501277(ENG)-U、2025年1月U版、第6.13节核验,适用于该手册描述的G16语义。它与G12.1极坐标插补是不同功能,不应相互套用。实际机床还要核对系统、软件版本、选项和机床厂说明。
判断极点,要先看半径
G17选择XY平面后,G16内的X给半径,Y给角度,逆时针为正。审核时可按以下顺序读:
1. 出现G90 X时,半径从工件坐标原点量起;启用G52局部坐标系时,按局部原点处理。相关状态可结合三菱M80的G52局部偏移核对。
2. 出现G91 X时,上一程序段终点成为本段极点。X给出以该点为中心的半径,不能理解为沿原分度圆简单增大半径。
3. X被省略时,极点采用工件坐标原点,或已设置的局部原点,半径取该原点到当前位置的距离。这条规则同样适用于G91 Y。
因此,“省略X就保留半径”只是本例中的简便说法。准确含义是根据当前位置与相应原点的距离确定半径,并非无条件沿用上一条X数值。
角度单独检查:G90 Y指定绝对角度,G91 Y在上一段角度基础上增加指定值。本文所有定位块都明确给出Y,不借用省略角度的状态。
原创算例:直径100毫米分度圆
设工件原点O=(0,0),未启用G52,按毫米计算,G94每分钟进给。第一目标A在半径50毫米、角度0°处,所以A=(50,0)。第二目标为逆时针90°处的B=(0,50)。
以下两组代码只比较安全高度上的XY终点,必须独立从共同首点A开始。它们不是可直接上机的完整程序:不含钻孔、主轴、刀具、Z向定位及完整安全初始化。分析前提是固定循环已取消、坐标系正确、相关变换不生效,且刀具和刀柄均已处于经确认可避开工件与夹具的高度。
对照A:会偏离预期孔位的写法
N10 G17 G90 G15; N20 G16; N30 G01 X50. Y0. F300.; N40 G91 X50. Y90.; N50 G15 G90;
N30先到A。N40同时给出G91和X50.,因此本段极点变为A。角度由0°增加到90°,相对A的位移为(0,50),终点E=(50,50)。
E到原点的距离为√(50²+50²)=70.711毫米,已经离开半径50毫米的分度圆。相对目标B,X方向多50毫米,Y方向相同,位置偏差为50毫米。这是按指令语义计算的理论结果,并非机床实测数据。
这里有两个容易混用的数:错误终点到圆心的距离比设计半径多20.711毫米,而错误终点到正确孔位的距离是50毫米。前者是径向距离变化,后者才是本例的点位偏差。审核记录应写明测量基准,不能把两者当成同一个误差。

图1 XY等比例教学图。G01实线为独立定位段,虚线为几何辅助线;没有实机测量数据。 手机上可在图内左右滑动。
对照B:只递增角度的写法
N10 G17 G90 G15; N20 G16; N30 G01 X50. Y0. F300.; N40 G91 Y90.; N50 G15 G90;
N40省略X,极点仍取O,半径由OA确定为50毫米。角度从0°增加到90°,得到B=(50×cos90°,50×sin90°)=(0,50)。
两段只差一个X50.,却采用不同极点。若程序已经走到错点E,不能直接从“修正后的N40”续跑;应重新核对当前坐标、模态与起始位置,再按机床规定验证。

图2 两份程序只差N40的X50,必须分别建立相同首点;错误分支仅供离线判读。 手机上可在图内左右滑动。
交接程序时,让每个孔位更容易复核
若不需要角度累加,可把正确示例的N40改为G90 X50. Y90.,明确给出半径与绝对角度。后续180°孔位可写G90 X50. Y180.。这种写法更便于把每个目标点单独换算为直角坐标检查。
排查时,可把当前点、坐标原点、本段极点、目标半径和目标角度逐项记下,再计算终点。对照的是整段执行前后的状态,不能只看有问题的那一行。尤其是从其他程序复制来的片段,前面残留的模态可能改变同一行文字的实际含义。
另一个容易混淆的地方是运动轨迹。G16规定终点如何表达;示例用G01从首点直线走到计算终点,图中的实线表示这两个独立定位段;G16不会把G01变成沿分度圆的圆弧运动。F300只用于公制G94教学片段,不是切削参数建议。直线经过的空间也必须有净空。
按同一初始状态做回归检查
先确认单位、工件原点、G52和当前坐标,再确认G17、G90/G91、G16/G15及固定循环状态。本例按补偿和相关坐标变换不影响XY终点的前提计算;实际机床若存在这些附加状态,必须先按机床厂资料处理。
回归检查可保留三个独立分支:第一支从A执行G91 Y90.,预期到B;第二支从A执行G90 X50. Y90.,预期同样到B;第三支在离线环境中对照G91 X50. Y90.,预期到E。每次都恢复相同初始条件,记录起点、有效模态与终点。保留修改前后NC,按后处理修改的NC差异检查逐段比对。错误分支只用于离线语义分析,无须在机床上故意重现错误运动。
核对时看逐段终点,不能只看画面是否“像一个圆”。若前两个分支不能得到相同结果,应先检查初始状态、仿真器对该三菱功能的支持,以及坐标和单位设置;不要通过修改零点去迁就一个尚未解释的结果。
组合功能仍有边界:该版手册明确G16与高速高精度控制I(G05.1 Q1)互相组合会产生P34错误,不能把本例直接并入未知状态的高精度加工段。
离线计算统一保留三位小数:前两条正确分支的终点必须同为(0.000,50.000),错误分支必须算到(50.000,50.000),两点距离50.000毫米。再独立检查退出:G15 G90之后给G01 X20. Y10. F300.,应按直角坐标得到(20.000,10.000),不再将Y10解释为10°。这里的0.001毫米只是计算显示位数,不是机床精度或零件公差承诺。
最后依机床厂规定进行安全高度、单段和受控速度验证。代码末行同时给出G15与G90,分别结束极坐标表达并恢复绝对模式,便于后续程序接续。没有报警也不代表孔位正确;错误示例可以表达有效终点,只是该终点不符合设计要求。遇到孔位异常,先查极点与模态,再讨论机械精度。
原厂资料与计算边界
三菱M800/M80/E80/C80加工中心编程手册U版:上册§6.13,印刷102—108页;省略半径规则见105页,绝对半径加增量角度示例见107页。高速高精度控制I组合限制见下册762、764页。本稿坐标、点位误差与图形为原创教学演算,未经实机测试,不属于特定机床的运行批准。