2. TwinCAT 工程建立与 XTS 硬件组态

在上一节中,我们已经理解了 XTS(eXtended Transport System)的模块化构成:供电模块、轨道模块、动子以及它们之间的 EtherCAT 通信关系。本节要把这些概念落到 TwinCAT 3 的实际工程里——从新建项目、扫描 EtherCAT 拓扑,到识别每一个 XTS 设备、完成过程映像映射。这是后续所有轨道规划与站点控制的前提,因为只有硬件组态正确,PLC 才能通过过程映像访问到真实的动子位置、状态和命令接口。

一、工程建立的基本路径

在 TwinCAT 3 中,XTS 属于 EtherCAT 从站设备,因此工程建立遵循标准的“新建项目 → 添加 EtherCAT 主站 → 扫描从站 → 配置过程映像”的路径。具体操作如下:

  1. 打开 TwinCAT XAE(Visual Studio 集成环境),选择 File → New → Project,在 TwinCAT 项目模板中选择 TwinCAT XAE Project (.tsproj),命名例如 XTS_Demo,保存到本地目录。
  2. 在 Solution Explorer 中展开 SYSTEM → I/O → Devices,右键选择 Scan,系统会提示是否扫描 EtherCAT 主站设备,确认后 TwinCAT 会自动识别本机网卡并建立 Device 1 (EtherCAT) 节点。
  3. 在 Device 1 上右键选择 Scan Boxes,TwinCAT 会通过 EtherCAT 总线扫描所有从站。此时需要确保 XTS 系统已上电,且 EtherCAT 通信线(通常为 RJ45)已正确连接。

扫描完成后,TwinCAT 会在 Device 1 下自动生成从站树。对于 XTS 系统,典型的从站顺序是:EK1100 耦合器(如果使用分布式结构)→ XTS 供电模块(如 AX2000-0000)→ XTS 轨道模块(如 AX2100-0000,可多个级联)→ XTS 末端模块(如 AX2190-0000)。每个模块在 TwinCAT 中都有对应的设备名称和修订号,需要核对是否与实际硬件一致。

二、识别 XTS 供电模块、轨道模块与动子

扫描完成后,TwinCAT 会为每个 XTS 模块分配一个从站地址。供电模块通常作为第一个 XTS 从站,负责为整个轨道系统提供动力电源和通信接口;轨道模块则依次级联,每个轨道模块内部包含多个动子位置检测点和线圈段。动子本身不是独立的 EtherCAT 从站,而是通过轨道模块的磁场检测被识别和跟踪的。因此,在 TwinCAT 的从站列表中,我们看不到“动子”这个设备,但可以通过轨道模块的过程数据对象(PDO)读取动子数量、位置和状态。

在 TwinCAT 中,每个 XTS 模块的 Process Data 选项卡下会列出可用的 PDO。对于供电模块,通常包含状态字、控制字、电流反馈等;对于轨道模块,则包含动子位置、速度、温度、错误码等。这些 PDO 需要根据实际控制需求进行勾选,例如:

  • 供电模块:Status、Control、Voltage、Current
  • 轨道模块:MoverPosition、MoverVelocity、MoverCount、ErrorCode

勾选后,TwinCAT 会自动生成过程映像变量,例如 AX2000_Status、AX2100_MoverPosition 等。这些变量可以直接在 PLC 程序中使用,也可以通过 Linked to PLC 功能与 PLC 变量建立映射。

三、过程映像映射与变量链接

过程映像映射是硬件组态与 PLC 程序之间的桥梁。在 TwinCAT 中,有两种方式完成映射:

  1. 自动映射:在 PLC → Project → PLC Project 下右键选择 Add New Item,创建一个 PLC 项目。然后在 I/O → Devices → Device 1 → Box 1 的 Process Data 中,将需要的过程数据变量拖拽到 PLC 项目的 Global Variables 或 MAIN 程序中,TwinCAT 会自动生成链接。
  2. 手动映射:在 PLC 项目中定义变量,例如 moverPos : ARRAY[1..10] OF LREAL;,然后在 I/O 下找到对应的 PDO 变量,右键选择 Change Link,手动选择 PLC 变量。这种方式适合需要精确控制变量名和数据类型的情况。

映射完成后,需要激活配置(Activate Configuration),TwinCAT 会将硬件组态和 PLC 程序下载到控制器。此时,如果 XTS 系统已上电,可以在 Online 视图中看到从站状态变为 OP(Operational),表示通信正常。如果某个模块显示 PREOP 或 SAFEOP,则需要检查电源、通信线或模块配置。

四、硬件组态检查与常见问题

在完成组态后,建议进行以下检查:

  • 确认所有 XTS 模块的 Revision Number 与实际硬件一致,避免因固件版本不匹配导致通信失败。
  • 检查 EtherCAT State 是否全部为 OP,且 Working Counter 无错误。
  • 在 Process Data 中确认动子位置变量是否已正确映射,并能在 PLC 中读取到非零值。
  • 如果使用多个轨道模块,注意级联顺序和地址分配,确保动子可以在整个轨道上连续移动。
在扫描 EtherCAT 拓扑时,建议先断开所有 XTS 模块的电源,只连接 EtherCAT 通信线,然后逐个上电扫描。这样可以避免因电源顺序导致的从站识别错误。
TwinCAT 3 中 XTS 硬件组态与过程映像映射 TwinCAT 工程结构 SYSTEM → I/O → Devices Device 1 (EtherCAT) Box 1: AX2000 供电模块 Box 2: AX2100 轨道模块 1 Box 3: AX2100 轨道模块 2 Box 4: AX2190 末端模块 PLC 项目 (XTS_Demo) 扫描与映射流程 1. 新建 TwinCAT XAE 项目 2. Scan Devices → 识别主站 3. Scan Boxes → 扫描 XTS 从站 4. 勾选 PDO 过程数据 5. 链接 PLC 变量 6. Activate Configuration 过程映像变量示例 AX2000_Status : WORD AX2000_Control : WORD AX2100_MoverPos : ARRAY[1..10] AX2100_MoverVel : ARRAY[1..10] AX2100_MoverCount : INT AX2100_ErrorCode : DWORD AX2190_Temp : REAL AX2190_Status : WORD 注:动子不作为独立 EtherCAT 从站,其位置与状态通过轨道模块 PDO 读取

上图展示了从 TwinCAT 工程结构到扫描流程,再到过程映像变量的完整关系。左侧是工程树中 XTS 从站的层级结构,中间是扫描与映射的操作步骤,右侧是映射后可在 PLC 中直接使用的变量示例。需要特别注意的是,动子本身不是 EtherCAT 从站,因此不会出现在从站列表中,但通过轨道模块的 PDO 可以读取到动子位置、速度和数量。

五、组态完成后的验证

激活配置后,进入 Online 视图,观察每个从站的状态。正常情况下,所有 XTS 模块应显示 OP,且 Working Counter 无错误。此时可以在 PLC 中编写一段简单的测试代码,例如读取动子数量并输出到变量:

moverCount := AX2100_MoverCount;
IF moverCount > 0 THEN
    bMoverDetected := TRUE;
END_IF

如果 moverCount 能正确反映实际动子数量,说明过程映像映射成功。如果读到的值始终为 0,则需要检查 PDO 是否勾选、变量链接是否正确,以及 XTS 系统是否已上电并处于运行状态。

在扫描 EtherCAT 拓扑时,如果出现“Box not found”或“Invalid revision”错误,通常是因为模块固件版本与 TwinCAT 中 ESI 文件不匹配。此时需要从 Beckhoff 官网下载对应版本的 ESI 文件,并放入 TwinCAT 的 ESI 目录中重新扫描。

完成以上步骤后,TwinCAT 工程中的 XTS 硬件组态就建立完毕。后续的轨道规划、站点控制和动子调度,都将基于这里建立的过程映像变量进行。因此,建议在组态完成后保存项目,并记录每个模块的从站地址和 PDO 映射关系,以便后续调试时快速定位。