4. XTS/XPlanar在TwinCAT中的软件对象映射
在TwinCAT中调试XTS或XPlanar,第一步不是写运动指令,而是把物理世界里的输送轨道、动子、悬浮板、工位和命令通道,映射成工程里可命名、可链接、可观察的软件实体。映射关系一旦建立,后续的使能、定位、耦合、解耦和状态判断才有稳定的数据基础。本节围绕轴对象、动子/悬浮板坐标系、耦合与解耦状态、命令接口与状态机,以及变量链接方法展开。
一、物理对象与软件对象的对应关系
XTS的物理对象包括:一段或多段直线/曲线轨道(Track)、轨道上的动子(Mover)、轨道上的工位(Station)以及用于命令交互的接口。XPlanar则包括:定子Tile、悬浮板(Mover/Plate)、Tile上的工位以及命令接口。在TwinCAT中,这些对象不会自动变成可调试实体,需要经过三层映射:
- 硬件层:EtherCAT从站(XTS轨道模块、XPlanar Tile)在I/O中生成过程数据,包含位置反馈、状态字、控制字和命令缓冲区。
- 轴对象层:通过Tc3 XTS或Tc3 XPlanar功能库,把每个动子/悬浮板实例化为一个轴对象(Axis),该轴对象拥有自己的位置、速度、使能状态和运动命令接口。
- PLC变量层:在PLC中建立与轴对象、命令接口、状态字对应的变量,并通过变量链接(Variable Linking)把PLC变量与I/O过程数据或库对象接口绑定。
这三层的关系可以用下面的结构图表示。图中左侧是物理对象,中间是TwinCAT中的软件对象,右侧是PLC中用于调试的变量实体。箭头表示映射方向,而不是数据流方向。
二、轴对象与坐标系
XTS中每个动子对应一个轴对象。轴对象的位置通常以轨道起点为原点,沿轨道方向为正方向,单位由配置决定(常见为毫米或微米)。如果轨道由多段组成,需要先定义轨道坐标系:每段轨道有各自的局部坐标,通过轨道连接关系拼接成全局坐标。动子在轨道上的位置就是全局坐标下的标量值。
XPlanar的坐标系更复杂。每个Tile有自己的局部二维坐标系,悬浮板在Tile上的位置用X、Y表示,同时还有Z高度和绕X、Y、Z的旋转角。当悬浮板跨越多个Tile时,需要把各Tile的局部坐标统一到全局坐标系。TwinCAT的XPlanar库提供了坐标变换接口,但前提是Tile的安装位置和朝向参数必须正确配置。如果坐标系定义不一致,会出现“命令位置正确但实际停在错误位置”的现象。
三、耦合与解耦状态
耦合(Coupling)是指动子/悬浮板与某个工位、外部轴或工艺过程建立固定关系;解耦(Decoupling)则是解除这种关系。在软件对象上,耦合状态通常表现为一组BOOL标志或枚举值。例如:
- bCoupled:为TRUE时表示动子已与目标工位绑定,此时动子位置由工位坐标系决定。
- bDecoupled:为TRUE时表示动子处于自由运动状态,位置由轨道或Tile坐标系决定。
- nCouplingState:枚举值,常见有0=未耦合、1=耦合中、2=已耦合、3=解耦中、4=耦合错误。
耦合与解耦不是瞬间完成的,而是有过渡过程。在过渡期间,命令接口会返回“忙”状态,此时不应发送新的运动命令。调试时可以通过观察状态机的迁移来判断耦合是否成功。如果耦合超时,通常需要检查工位坐标是否在动子可达范围内、耦合速度是否过低、或者是否存在机械干涉。
四、命令接口与状态机
XTS/XPlanar的命令接口通常以“命令缓冲区+反馈缓冲区”的形式存在。PLC写入命令字和参数,库函数在后台执行,反馈缓冲区返回执行结果和当前状态。常见的命令包括:使能、复位、移动到位置、耦合、解耦、停止、急停复位。
状态机是命令接口的核心。一个典型的状态迁移如下:上电后进入Init,使能成功后进入Idle;收到移动命令后进入Moving,到达目标后回到Idle;收到耦合命令后进入Coupling,成功后进入Coupled;解耦后回到Idle;任何阶段出现错误则进入Error,需要复位才能回到Init。调试时,状态机的当前状态和错误码是最重要的观察变量。
// 示例:XTS动子命令接口变量链接(PLC侧)
AxisRef : AXIS_REF; // 轴对象引用
bEnable : BOOL; // 使能命令
bMoveAbs : BOOL; // 绝对移动触发
fTargetPos : LREAL := 250.0; // 目标位置 mm
bCouple : BOOL; // 耦合命令
bDecouple : BOOL; // 解耦命令
nState : INT; // 状态机当前状态
nErrorID : UDINT; // 错误码
fActPos : LREAL; // 实际位置反馈
bCoupled : BOOL; // 耦合状态反馈
五、用变量链接建立映射
变量链接是TwinCAT中把PLC变量与I/O过程数据或库对象接口绑定的操作。对于XTS/XPlanar,链接分为两类:
- I/O链接:把EtherCAT从站的过程数据(如状态字、位置反馈)链接到PLC输入变量;把PLC输出变量链接到从站的控制字和命令缓冲区。
- 库对象链接:把PLC中的AXIS_REF变量与XTS/XPlanar库实例关联,使库函数能够操作对应的轴对象。
实际操作时,先在PLC中声明变量,然后在TwinCAT XAE的“变量链接”视图中,把PLC变量拖到对应的I/O通道或库接口上。链接完成后,编译并激活配置,观察变量是否在线更新。如果某个变量始终为0或不变,优先检查链接是否成功、过程数据是否使能、以及从站是否处于OP状态。
六、调试检查要点
完成映射后,建议按以下顺序检查:轴对象是否使能、坐标系原点与方向是否正确、耦合/解耦状态是否可读、命令接口是否响应、状态机是否按预期迁移、变量链接是否在线更新。每一步都用Scope或Watch窗口观察实际值,而不是只看代码逻辑。只有软件实体与物理对象的行为一致,后续的虚拟调试才有意义。