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,就要把该工位需要的平移、旋转重新交代完整。少输出一条建立状态的指令,和坐标数字算错一样,都可能改变后续目标位置。

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 语法。旋转和平移通常不能交换,后处理也不能为了把输出排得整齐,随意调整它们的先后。

取消与重新建立,要查工序边界
不带轴值的 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页)。数值和图解为本文独立验算。