Technical Article
三菱M80算分层次数,FUP[-14/3]为什么得到-5?
三菱M800/M80加工中心宏运算中,FUP[-14/3]为-5而FIX为-4。结合U版手册和14毫米分层算例,区分取整方向、正的循环次数与最后一层深度限制,避免把五层写成15毫米。
把负方向的加工深度直接带进取整函数,算出的“次数”也可能是负数。三菱 M80 的 FUP[-14/3] 得到 -5,不是 -4;这里的“上取整”不能照搬数学软件中向正无穷取整的 ceil。
本文限定三菱 M800/M80 加工中心系统,依据编程手册 IB-1501277-U 第14.6.1节。讨论的是用户宏的数值运算,不依赖某个 Mastercam 版本;机床须具备对应用户宏功能。下面的14毫米深度和3毫米步距是独立算法算例,不是某把刀的切削参数。
先看负数在数轴的哪一边
-14 ÷ 3 约为 -4.6667。官方函数表直接给出两组结果:FIX[-14/3] 为 -4,FUP[-14/3] 为 -5。对非整数,FIX丢弃小数部分、向零靠近;FUP增加绝对值到下一整数、远离零。正数14/3时结果分别为4和5,到了负数,不能仍按“数值变大就是FUP”理解。

这不是三菱把减号丢了。减号被保留,变化的是绝对值。若把FUP当成数学ceil,负数例子正好会把判断带反。
方向属于坐标,次数应单独计算
设加工起始面为Z0,目标为Z-14,每层允许的最大增量深度为正3毫米。这里要回答的是“至少分几层”,所以先用深度的绝对值除以正步距,再用FUP:
#1=-14.;
#2=3.;
#3=FUP[ABS[#1]/#2];
这个片段只演示赋值与计算,没有轴运动指令。#1代表目标负深度,#2代表正步距,#3得到正的层数5;这些局部变量编号仅用于说明,接入现有宏时须避开已定义的参数含义。
在实际宏的输入检查中,步距必须大于0。不能用ABS把错误的负步距悄悄变成正数,也不能让0进入除法。本文只处理从Z0向负Z加工的情形,不把这三行扩展成任意起点、任意方向的通用加工宏。
如果先算FIX[-14/3],再取绝对值得到4,用四层固定3毫米只能覆盖12毫米,仍差2毫米。换成FUP得到五层解决了“次数不够”,却还没有解决“最后一层去哪儿”。
五层的最后一层是2毫米,不是3毫米
五次都按3毫米向下,候选终点依次为-3、-6、-9、-12、-15。最后一个点比目标Z-14低1毫米。因此,在形成每层目标坐标时,还要把累计深度限制在14毫米以内:前四层仍是3毫米,第五层只剩14-12=2毫米。

在这个负Z算例中,可以把判断理解为:若候选Z小于-14,就改取-14。不要靠“候选Z刚好等于目标”来终止;手册也提醒宏运算存在数值误差。次数与终点应分别受控,而不是指望同一个取整函数同时承担两件事。
放回后处理或宏程序时,先检查哪一项
若Mastercam后处理输出了分层宏调用,先把传入的深度、步距与宏内变量逐一对上,确认深度是否已经带方向、步距是否约定为正值,再看次数和最后一层坐标。不要只盯着FUP这个单词,也不要把上面的计算片段直接拼到现有运动段。
参数传递不一致可对照三菱G65的D与I/J/K实参覆盖问题;如果错误来自重复执行坐标写入,则应分开排查G10在G91下的偏移累加。它们不是取整问题,修改FUP不会消除原因。
需要核对现有后处理时,可提供控制系统型号、宏调用段、宏内计数与末层坐标计算段,以及期望的各层Z值;先对数值,再决定是否涉及运动输出修改。
资料依据
三菱电机《M800/M80/E80/C80 Series Programming Manual (Machining Center System)》U版,第14.6.1节:印刷509页列出ABS、FIX、FUP;512页列出正负14/3的取整结果;513页说明数值比较误差。图示与14毫米分层推导为本文原创分析,未声称实机加工验证。