搜索文章与案例

Technical Article

西门子 TRANS 和 ATRANS 有什么区别:偏移覆盖与旋转顺序

以 SINUMERIK 840D sl CNC 4.91 为例,用两张原创坐标图算清 TRANS 重建可编程框架、ATRANS 沿当前局部轴追加偏移,以及旋转和平移调换顺序后为什么得到不同位置。

西门子程序里,把 TRANS 改成 ATRANS,差别不只是多了一个字母。前者重新建立可编程坐标框架,后者在当前框架上追加变换。已有旋转时,追加的 X 偏移还会沿旋转后的 X 方向走。查坐标偏差,先还原这些指令的执行顺序,再看最后一个坐标值。

本文按 SINUMERIK 840D sl/840DE sl《Fundamentals》12/2018、CNC 软件 4.91 的原生编程规则说明。数值例取毫米、G17 平面,固定 Z,G54 上游框架保持不变,无缩放、镜像及额外变换,MD24000=0,可编程偏移采用合并存储。图中的坐标均相对 G54 建立的设定零点系,不是机床坐标。

这里把上游条件固定,是为了单独看清可编程框架。若 G54 或更上游本身还有旋转,本文算出的点还要继续向上游换算,才能得到相应的机床轴目标,不能直接当作机床坐标加减。机床若启用了独立细偏置存储,TRANS 与 ATRANS 对粗、细偏移的处理也要另查;不要为了套用算例更改机床参数。

TRANS 会把哪些状态覆盖掉

先依次写 TRANS X100 Y50、AROT Z90,可编程原点位于(100,50),局部 X 轴已经转向上游坐标的正 Y 方向。这里从正 Z 看向原点,正角度为逆时针。

此时再写 TRANS X20,会重新建立可编程框架。按本例条件,原点变为(20,0),前面的 90° 旋转也被清除;不能理解成“保留 Y50 和旋转,只把 X100 改为 X20”。覆盖的范围是可编程框架,并不是把已选 G54 的偏置表一起改掉。

所以,若后处理在每个工位开头都输出 TRANS,就要把该工位需要的平移、旋转重新交代完整。少输出一条建立状态的指令,和坐标数字算错一样,都可能改变后续目标位置。

相同起始可编程框架为原点100、50及绕Z正90度旋转;追加ATRANS X20后原点为100、70且保留旋转,改用TRANS X20则原点为20、0并清除旋转。局部点10、0分别映射为100、80与30、0。
图1:两个分支从同一状态出发,各自执行;不是把左右指令连续运行。

ATRANS 的 X20 要沿当前 X 轴计算

仍从原点(100,50)、旋转 90° 的共同状态出发,这次追加 ATRANS X20。局部正 X 已朝上游正 Y,因此原点增加的是(0,20),得到(100,70),旋转仍保留。若下一处几何点在局部坐标(10,0),映射后的点就是(100,80)。

把当前框架写成“原点偏移 t 加旋转矩阵 R”,局部点 p 的上游坐标为 q=t+Rp。追加位移 d 时,新原点为 t′=t+Rd,而不是直接把 d 加到上游 X、Y。对本例,R 把(20,0)变成(0,20)。没有旋转时,两种算法恰好相同,很容易把错误藏住。

同样两条指令,前后顺序不能交换

在 TRANS X100 Y50 之后,先 AROT Z90 再 ATRANS X20,原点是(100,70);若先 ATRANS 再 AROT,先沿尚未旋转的 X 轴移到(120,50),然后绕这个新原点旋转,原点仍为(120,50)。两边局部轴方向相同,后者相对前者的原点偏差却为(20,−20)。

采用列向量记法,两条变换链分别是 T(100,50)R(90°)T(20,0) 与 T(100,50)T(20,0)R(90°)。这是为验算写的矩阵表达,不是 NC 语法。旋转和平移通常不能交换,后处理也不能为了把输出排得整齐,随意调整它们的先后。

按每毫米十二像素绘制的两条变换路径:从共同原点100、50出发,先旋转再沿局部X平移20到100、70;先平移再旋转则到120、50。两条路径最终方向均为正90度,局部点10、0分别到100、80和120、60。
图2:箭头表示坐标框架的建立关系,不表示刀具实际走过的轨迹;坐标间距按比例绘制。

取消与重新建立,要查工序边界

不带轴值的 TRANS 用于清除可编程框架,已选的可设定零点偏置仍保留。TRANS、ATRANS、ROT、AROT 应各占自己的程序段;这些框架指令本身不产生轴移动,改变的是后续位置指令的解释。取消后再写同一个 X、Y,目标位置可能已经不同,不能把“取消”当成退刀动作。

观察坐标显示时,也要先确认显示的是机床坐标还是工件坐标。框架变化后,工件坐标读数可以改变,不能据此认定轴已经移动。比对 NC 时,把变换段与紧随其后的定位段分开记录,才能看出新框架在哪一次运动中影响了目标点。

还要分清两种顺序:不同程序段按编程先后生效,是否保留原框架,要看使用替换指令还是追加指令;同一条 ROT/AROT 中若给多个轴角度,旋转约定由机床数据 MD10600 决定,不由 X、Y、Z 的书写先后决定。本文只绕 Z 旋转,避免把多轴角度约定混入算例;遇到真实多轴输出,应先核对对应版本及厂家配置。

检查后处理时,记录每个工序入口、出口的原点和方向,再用一个局部零点及一个非零点验算。单测零点只能发现平移问题,非零点才能暴露方向错误。同时保留变换前后的坐标状态记录,便于把首件位置问题追到具体程序段。重复调用后若偏移越加越大,应检查 ATRANS 是否重复累加,以及调用边界有没有按设计恢复。

修改前可按后处理修改资料清单整理系统版本、原始 NC 与期望坐标;改完再沿NC 输出变化检查工序衔接。重点是每一步建立了什么坐标关系,而不只是程序里有没有出现那条指令。

依据:Siemens《Fundamentals》12/2018,§13.2、§13.3、§13.5、§13.10;同版本《Machine data and parameters》,MD10600(第66页)、MD24000(第344页)。数值和图解为本文独立验算。