搜索文章与案例

Technical Article

三菱M80的LN[100]为什么不是2?常用对数要先换底

三菱M80宏程序LN使用底数e,LN[100]约为4.60517。依据IB-1501277-U,说明常用对数换底、正输入负结果及负参数P282的区别,附原创图解。

把计算器上的“log 100=2”搬进三菱 M80 宏程序,写成 LN[100],结果却约为 4.60517。这里先别改小数位,也别补一个取整函数:LN 使用的底数是 e,和以 10 为底的常用对数不是同一种运算。

本文限定三菱 M800/M80/E80/C80 加工中心编程手册 IB-1501277-U 的用户宏语法,以 M80 为讨论对象。数值为数学复算,不代表具体机床显示位数或实机验证;是否可用用户宏,以机床配置和机床厂资料为准。

1. LN[100] 求的是“e 的几次方等于 100”

原厂手册第 509 页将 LN 列为自然对数。它对应的关系是:如果 y=LN[x],那么 e 的 y 次方等于 x,其中 e 约为 2.71828。把 x 取 100,就得到 y 约为 4.605170。

常用对数问的则是“10 的几次方等于 100”,答案才是 2。两种运算都正确,错误出在把公式要求的底数与程序使用的函数混为一谈。尤其是工艺计算表只写了 log、没有注明底数时,必须先查公式定义,不能按计算器某个键的习惯猜。

同一个输入100,自然对数LN得到约4.605170,常用对数得到2,两者底数分别为e和10
图1:输入相同,底数不同,结果就不同。数值按数学关系复算。

2. 公式确实要以 10 为底时,用换底关系

常用对数可以用两个自然对数相除:log₁₀(x)=LN[x]/LN[10]。例如 LN[100] 约为 4.605170,LN[10] 约为 2.302585,两者相除为 2。这里的 2 是数学结果,控制器的浮点计算与显示可能存在舍入。

下面只展示运算片段,没有轴移动。#101、#102、#103 仅为示例变量,使用前应确认它们没有被现有宏、测量程序或机床厂功能占用;不要直接覆盖生产变量。

#101 = LN[100.]
#102 = LN[10.]
#103 = #101 / #102

若只保留 LN[100],得到的仍是自然对数;若把它取整,也不会变成常用对数。手工用 2.3 代替 LN[10] 又会引入额外近似误差。更清楚的写法是保留函数关系,并在自己的工艺说明中写明底数与输入含义。

3. 结果为负,不等于输入非法

对正实数输入,0<x<1 时,LN[x] 本来就为负;x=1 时为 0;x>1 时为正。手册第 513 页给出的 LN[0.5] 结果约为 −0.693,正好说明“小于 1 的正数”可以进入 LN。不要因为结果带负号,就用 ABS 把结果强行改为正值。

负数输入是另一回事。同页明确列出 LN[-5] 触发 P282,并在注意事项中说明 LN 的负参数会产生该程序错误。本文仅对 x>0 使用实数对数;零输入也应在运算前排除,但上述手册页没有明确说明 LN[0] 的具体处理,因此本文不据此推定零输入的报警号。

LN输入范围核对:0到1之间的正数得到负结果,1得到0,大于1得到正结果;零不进入计算,负数原厂示例报P282
图2:检查输入是否大于零,不要把负结果误判为非法输入。零的具体控制器处理须另核对应资料。

4. 先核原公式,再核程序里的三件事

  • 底数是否明确:工艺公式要求自然对数,直接使用 LN;明确要求以 10 为底,才使用换底关系。不要只凭“log”字样替换。

  • 传入的是什么量:若公式写的是两个同单位量的比值,应先形成该比值再取对数,避免把 100 mm 与 0.1 m 当成两个不同的无量纲输入。变量的含义必须与原公式一致。

  • 输入和精度是否合适:排除非正输入,确认示例变量不会冲突;核对几个已知结果,保留所需精度。后续若按结果分支判断,应使用适合工艺的误差范围,而不是依赖屏幕显示值精确相等。

可以先用 LN[1]=0、LN[10]约为2.302585、LN[100]约为4.605170 做纸面核对,再核换底后的 0、1、2。这里是验证公式含义,不是用三个点证明整套加工宏安全;把运算接入轴运动、补偿或循环次数之前,仍需按现场规范仿真、单段和安全验证。

官方依据与延伸阅读

原厂来源:三菱 M800/M80/E80/C80 Series Programming Manual(Machining Center System),IB-1501277-U,第 14.6.1 节,印刷第 509 页(LN 定义与运算格式)、第 513 页(LN 数值示例及负参数 P282)。本文换底关系及 100 的算例为数学推导,不是手册原例;不将同页 POW 的 [M8] 标记套给 LN。

还可对照阅读:M80 的 EXP 与 POW 为什么不能互换,以及宏变量显示相同,EQ 为什么未必成立。前者帮助理解自然指数与自然对数的关系,后者用于检查数值比较的误差边界。