搜索文章与案例

Technical Article

西门子 DIAM90 下写 G91 X-10,直径为什么少了20毫米?

西门子828D的DIAM90遇到G91,X按半径增量解释。用直径40到30的对照与R5圆弧图,算清DIAMON、DIAMOF、DIAM90的X倍率、实际值显示,以及I/K增量圆心为什么不能跟着翻倍。

车床 X 轴处在直径 40 的位置,下一段想走到直径 30,增量该写 X-10 还是 X-5?在西门子 828D 上,这两个数都有可能正确。先把当前的 DIAM 模式找出来:DIAMON 下,G91 的 X-10 是直径减少 10;换成 DIAM90,同样的 G91 X-10 会让刀具沿径向移动 10,终点变成直径 20。

本文按西门子 SINUMERIK 828D、CNC 软件 5.24、2024 年 7 月版官方手册说明。算例采用公制,工件中心线为 X0,机床配置的横向轴为 X;不叠加坐标变换,也不启用轴专用 DIAMONA、DIAMOFA 等覆盖指令。文中的直径与轨迹均为坐标演算。

DIAM90 的“90”,正好要和 G90、G91 一起看

G90、G91 决定这次给的是绝对位置还是增量。DIAMON、DIAMOF、DIAM90 则决定指定横向轴的数值按直径量还是半径量解释,两层状态需要同时核对。

  • DIAMON:G90 的 X 是直径位置,G91 的 X 是直径增量。

  • DIAMOF:G90 的 X 是半径位置,G91 的 X 是半径增量。

  • DIAM90:G90 的 X 是直径位置,G91 的 X 是半径增量。

这三条指令是模态指令,不能只盯着当前运动段找答案,要向前找到最后生效的模式。规则作用于机床配置指定的横向几何轴;本文以常见的 X 轴为例,Z 值不因此折半。程序里写了“车床”,也不能代替对横向轴配置的核对。

从直径 40 到 30,刀具实际只需向内走 5 毫米

把直径换回物理半径,计算就很直接:起点 r=40÷2=20,终点 r=30÷2=15,因此径向位移是 15−20=−5 mm。各组都从这个相同起点单独开始,所需 X 地址如下。

DIAMON + G90:X30
DIAMON + G91:X-10

DIAM90 + G90:X30
DIAM90 + G91:X-5

DIAMOF + G90:X15
DIAMOF + G91:X-5

上面是模式与地址的对应表,不能从第一行到最后一行连续执行。如果把原本配合 DIAMON 使用的 G91 X-10 留下来,只将入口改成 DIAM90,实际径向位移就从 −5 变为 −10 mm。由 r20 向内走到 r10,终点直径是 20,比原计划的直径 30 又小了 10 mm。

西门子828D从直径40到30的三模式对照:DIAMON的G91写X-10,DIAM90与DIAMOF的G91写X-5,均径向移动负5毫米。同写G91 X-10时,DIAMON到直径30,DIAM90到直径20。
图 1 上半图比较同一终点所需的地址,下半图比较同一地址得到的不同终点。横轴是物理半径,每一行分别从 r20 开始。

对照后处理输出时,可以固定这组直径 40→30 的简单几何,分别检查绝对段和增量段。若绝对 X30 都正确,而增量段差一倍,应先核对 DIAM90 与 G91 的配对,再查 X 数值有没有被后处理额外乘二或除二。不要先用刀补去抵消这个倍率差。

程序写 X-5,实际值却从 40 变 30,读数并不矛盾

官方手册还有一处容易漏看:DIAMON 或 DIAM90 生效时,工件坐标系中横向轴的实际值按直径显示。因而在 DIAM90+G91 下,程序的 X-5 表示径向向内移动 5 mm,直径实际值却会减少 10。

这时应把三项记录分开:程序增量 −5、物理径向位移 −5 mm、工件坐标系直径读数 40→30。若只拿 X 地址的差值和屏幕直径读数的差值比,容易把正常的直径显示误认为轴多走了一倍。这里说的是工件坐标系实际值,不能把其他诊断页或机床厂自定义画面的数字一并套入。

同样不能只看一行开头有没有 G90。西门子允许单轴使用 AC、IC 写法;本版功能手册明确给出,DIAM90 对 G90/AC 按直径,对 G91/IC 按半径。也就是说,即使总体保持 G90,X=IC(-5) 仍是半径增量 −5。需要先分清坐标基准时,可对照G90、G91 与 AC、IC 的单轴写法。

到圆弧段,再把 X 终点和 I 圆心分开

不能把“X 按直径”理解成圆弧段里所有横向数字都乘二。普通增量圆心 I、J、K 仍按半径量解释,不受这三种 DIAM 模式影响;G90、G91 控制终点的绝对或增量解释,也不会把默认增量圆心自动改成绝对圆心。

取 G18 平面上的一段 R5 圆弧,用物理坐标描述:起点 A 为 Z0、r20,终点 B 为 Z−5、r15,圆心 C 为 Z0、r15。DIAMON+G90 下,终点的直径是 30,圆心相对起点的径向差是 −5,轴向差为 0。把相关地址拆开检查:

终点:X30 Z-5
增量圆心:I-5 K0

I = 圆心半径15 - 起点半径20 = -5
K = 圆心Z0 - 起点Z0 = 0

这里的 X30 和 I-5 正确地出现在同一段圆弧中。若因为 X 是直径量,就将 I 也翻倍写成 I-10,圆心会落到 Z0、r10。此时起点到圆心的距离为 10,终点到圆心的距离是 √(5²+5²)≈7.071 mm,两端已经不在同一个圆上。

G18平面R5圆弧的物理坐标图:起点A为Z0半径20,终点B为Z负5半径15,圆心C为Z0半径15。DIAMON和G90下终点写X30 Z-5,增量圆心写I-5 K0;误写I-10使起终点到错误圆心的距离分别为10和约7.071毫米。
图 2 蓝色 R5 圆弧按物理半径绘制。橙色虚线表示误写 I-10 后的两条半径,用来检查几何一致性;右侧仅拆解地址,没有拼成完整运动段。

若程序采用 I=AC(...)、K=AC(...),那又是绝对圆心写法,横向分量要按相应直径模式核对。本文图 2 只用普通 I、K 增量圆心,不能把这张图的 I-5 原样搬到绝对圆心栏。

查一倍尺寸差时,把入口状态和输出倍率放在一起

我会先用同一个物理起点和终点,把程序展开成几项明确的信息:当前 DIAM 模式、该轴本段采用绝对还是增量、X 地址对应多少实际径向位移。圆弧再另外算一遍起点到圆心、终点到圆心的距离。这样可以定位究竟是坐标基准读错,还是直径与半径的倍率用错。

回到 Mastercam 后处理,重点比较程序入口、子程序边界和绝对/增量切换附近的 NC。不要因为看见 DIAMON 就把所有 X、I 一起翻倍,也不要把车削循环的专用参数当普通 X 轴地址统一处理。修改前后的文本可按后处理 NC 输出比较方法逐段核对,保留那组已算清楚的直径 40→30 作为检查例。

最后再回到对应版本的仿真中,看实际轨迹是否落在 r15、圆心是否落在 C;上机核验则从已确认的坐标系、补偿状态和安全位置开始。先把倍率算对,后续的刀补、进给和切削结果才有可比较的基础。

参考资料

西门子《SINUMERIK 828D NC programming》,07/2024,CNC 5.24,A5E48764001B AH。第 175~177 页说明横向轴直径/半径模式、模态属性、实际值显示及圆心例外;第 202~203 页说明圆弧终点和圆心地址。本文两组坐标与配图为依据手册规则编制的原创演算。

西门子《SINUMERIK 828D Axes and spindles》,07/2024,CNC 5.24,A5E48764224B AH,第 265 页 §8.5 示例 1 的 N60 注释,明确 DIAM90 对 G90/AC 与 G91/IC 的解释。