3. 运动控制基础与轴类型

在 TwinCAT 中做多轴运动控制,第一步不是写运动指令,而是把“轴”这个概念建立正确。TwinCAT 的运动控制建立在 NC(Numerical Control,数值控制)子系统之上:NC 负责轨迹规划、插补、位置环与状态机,PLC 负责逻辑、使能与指令下发。两者之间通过“轴映射”连接。理解轴类型与映射关系,是后续所有 PTP、插补、凸轮、G代码功能的基础。

一、四类轴的本质区别

TwinCAT 中常见的轴对象可分为四类,它们的差别不在“能不能动”,而在“位置反馈从哪来、指令如何闭环”。

  • 伺服轴(Servo Axis):由伺服驱动器 + 电机 + 编码器构成闭环。NC 输出速度/位置指令给驱动器,驱动器内部完成电流环、速度环,编码器反馈回 NC 形成位置环。它是精度最高、动态最好的轴类型,适合插补、电子凸轮、高精度定位。
  • 步进轴(Stepper Axis):由步进驱动器 + 步进电机组成,通常为开环。NC 输出脉冲/方向信号,驱动器按脉冲数走步。没有位置反馈,因此存在失步风险。TwinCAT 中可将其配置为“开环步进轴”,也可加装编码器构成半闭环。
  • 虚拟轴(Virtual Axis):没有物理硬件,位置由 NC 内部积分生成。它常用于做主轴、做凸轮基准、做仿真验证,或作为多轴同步的“时间基准”。虚拟轴是调试阶段最安全的对象。
  • 编码器轴(Encoder Axis):只有编码器输入,没有驱动输出。它只“读位置”,不“发指令”,常用于把外部编码器(如手轮、传送带编码器)接入 NC,作为从动轴的参考或测量轴。
判断轴类型的一个简单方法:看它有没有“指令输出”和“位置反馈”。有指令有反馈=伺服轴;有指令无反馈=步进轴;无指令无反馈=虚拟轴;无指令有反馈=编码器轴。

二、轴参数配置的关键项

在 TwinCAT 中,轴参数主要在 NC 轴的 Axis 配置页与 Scaling、Limits、Dynamics 等子页中设置。以下参数直接决定轴能否正确运动:

参数类别典型项作用与示例
单位与标定Scaling Factor、Reference Velocity把脉冲/编码器增量换算为 mm 或 °。例如 10000 inc/mm,则 1 mm = 10000 增量。
软限位Software Limit Switch设定正负行程边界,防止机械撞限位。示例:-200 mm ~ +200 mm。
动态限制Max Velocity、Max Acceleration限制轴的最大速度与加速度,保护机械。示例:500 mm/s、2000 mm/s²。
回零Homing Mode、Homing Velocity决定轴如何找参考点,如“编码器零脉冲 + 限位开关”。
监控Position Lag、Following Error设定跟随误差窗口,超限即报错,用于判断机械卡滞或参数不匹配。

配置顺序建议:先设单位标定,再设软限位与动态限制,最后设回零与监控。标定错误会导致所有位置、速度、加速度全部错位,是最常见的“轴能动但位置不对”的根因。

三、NC 轴与 PLC 轴的映射

在 TwinCAT 中,NC 轴是底层对象,PLC 不能直接操作它。PLC 通过 AXIS_REF 类型的变量引用 NC 轴,这个过程叫“轴映射”。映射的本质是把 PLC 中的轴引用变量与 NC 配置中的某个轴对象绑定。

典型操作流程:在 PLC 项目中声明 AXIS_REF 变量,例如 Axis1 : AXIS_REF;;然后在 TwinCAT 的 Motion 或 NC 配置中,将该变量链接到对应的 NC 轴(如 Axis 1)。链接完成后,PLC 通过 MC_Power、MC_MoveAbsolute 等库函数操作该轴。

VAR
    Axis1 : AXIS_REF;          // PLC 轴引用
    Power : MC_Power;
    MoveAbs : MC_MoveAbsolute;
END_VAR

Power(Axis := Axis1, Enable := TRUE, ...);
MoveAbs(Axis := Axis1, Execute := TRUE, Position := 100.0, Velocity := 200.0, ...);

映射关系一旦建立,PLC 轴引用就代表该 NC 轴。若映射错误,会出现“指令下发但轴不动”或“动的是另一根轴”的现象。排查时应先确认 AXIS_REF 是否已链接、NC 轴是否已使能、轴状态是否为 Standstill。

四、轴状态与使能逻辑

NC 轴有明确的状态机:Disabled → Standstill → Discrete Motion / Continuous Motion → ErrorStop。PLC 侧通过 MC_Power 使能轴,使能成功后轴进入 Standstill,此时才能接受运动指令。若轴处于 ErrorStop,必须先 MC_Reset 复位,再重新使能。

虚拟轴同样需要 MC_Power 使能,否则运动指令不会执行。很多初学者以为虚拟轴“不需要使能”,这是常见误区。

五、四类轴的选择与组合

实际项目中,四类轴常组合使用。例如:用虚拟轴做主轴,伺服轴做从动轴,通过电子凸轮实现同步;用编码器轴采集传送带位置,作为从动轴的参考;用步进轴做低成本辅助定位。选择依据是:精度要求、是否需要反馈、成本、动态响应。

TwinCAT 轴类型与 NC/PLC 映射关系 PLC 层(逻辑与指令) AXIS_REF Axis1 MC_Power MC_MoveAbsolute MC_Reset 轴映射 NC 层(轨迹规划与状态机) 伺服轴 闭环 · 高精度 步进轴 开环 · 脉冲/方向 虚拟轴 无硬件 · 内部积分 编码器轴 只读 · 无输出 硬件/信号层 伺服驱动器 + 编码器 步进驱动器 + 电机 无(软件生成) 外部编码器输入 反馈

图中展示了从 PLC 指令层、NC 轴对象层到硬件信号层的完整链路。可以看到:伺服轴与步进轴有向下输出,编码器轴只有向上反馈,虚拟轴则完全在 NC 内部闭环。轴映射发生在 PLC 的 AXIS_REF 与 NC 轴对象之间,是整条链路的“接口”。

六、配置检查清单

完成轴配置与映射后,建议按以下顺序检查,避免“能动但不对”:

  1. 单位标定是否正确:手动移动 10 mm,观察 NC 位置是否变化 10 mm。
  2. 软限位是否生效:尝试超出限位,轴应报错并停止。
  3. 动态限制是否合理:速度、加速度不超过机械承受范围。
  4. 回零是否可靠:重复回零,参考点位置应一致。
  5. 映射是否正确:PLC 轴引用与 NC 轴一一对应,无交叉。
  6. 使能与复位逻辑是否完整:MC_Power、MC_Reset 状态处理正确。

掌握轴类型与映射,等于掌握了 TwinCAT 运动控制的“入口”。后续的 PTP、插补、凸轮、G代码,都是在这条链路上叠加功能。轴配置正确,后面的调试才会顺畅。