4. TwinCAT XTS项目创建与硬件组态
在完成XTS系统选型与机械布局规划之后,工程实施的第一步是在TwinCAT 3开发环境中建立可运行的项目骨架,并把真实的EtherCAT硬件拓扑扫描进系统。这一步决定了后续所有运动控制逻辑、动子调度和工艺参数能否正确映射到物理设备上。本节围绕“新建工程—扫描EtherCAT设备—配置XTS模块参数—动子数量与地址映射”这条主线,给出可直接参照的操作过程与判断依据。
一、新建TwinCAT XTS工程
打开TwinCAT 3 XAE(eXtended Automation Engineering),在Start Page中选择“New TwinCAT Project”,或通过菜单 File → New → Project 创建。工程模板建议选择“TwinCAT XAE Project (XML format)”,这样工程以XML形式保存,便于版本管理与团队协作。命名时建议包含产线代号与工位信息,例如 XTS_LineA_Station3,避免使用中文或空格,防止后续生成代码或导出配置时出现路径问题。
工程创建后,Solution Explorer中会出现SYSTEM、MOTION、PLC、I/O等节点。此时系统尚未绑定任何真实硬件,Target System处于未指定状态。需要先在工具栏右下角将目标系统切换为实际控制器(例如CX2043、C6030或工控机IP),并确认TwinCAT Runtime版本与工程版本一致。若目标系统显示为“Local”,则说明当前工程运行在本机,适合离线仿真验证;接入真实产线时必须切换到实际控制器。
二、扫描EtherCAT设备
在Solution Explorer中展开I/O节点,右键点击“Devices”,选择“Scan Devices”。TwinCAT会通过目标系统的EtherCAT主站端口广播扫描请求,自动识别从站设备。扫描前需确认:EtherCAT网线连接正确(通常使用控制器上的X000或X001口)、从站供电正常、EtherCAT状态LED处于闪烁或常亮状态。
扫描结果会以树形结构呈现,典型XTS系统的从站顺序如下:
Device 1 (EtherCAT Master)
├─ Box 1: EK1100 EtherCAT Coupler
├─ Box 2: EL2xxx 数字量输出模块(用于抱闸/使能)
├─ Box 3: AX8000 / AX5000 伺服驱动器(XTS供电与驱动)
├─ Box 4: XTS Module 1 (XTS_Module)
└─ Box 5: XTS Module 2 (XTS_Module)
扫描完成后,TwinCAT会提示“Scan for boxes”和“Scan for devices”,选择“Yes”以自动创建过程映像。此时每个从站会获得一个Auto-Increment地址,并在I/O树中生成对应的输入输出变量。需要重点检查XTS模块是否被正确识别为“XTS_Module”类型,而不是通用EtherCAT从站。若识别异常,通常是因为ESI(EtherCAT Slave Information)文件未安装或版本不匹配,需从Beckhoff官网下载对应固件版本的ESI文件并放入 TwinCAT\3.1\Config\Io\EtherCAT 目录后重新扫描。
三、配置XTS模块参数
扫描完成后,双击XTS模块节点进入“XTS Module”配置页面。该页面包含几个关键参数组,直接影响动子运动学与系统性能:
- 模块类型与几何参数:选择实际使用的XTS型号(如XTS 120、XTS 240),系统会自动加载对应的轨道长度、动子间距限制和最大加速度。若使用自定义轨道,需手动输入轨道周长(单位mm)和最小动子间距。
- 动子数量(Mover Count):设置该模块上实际安装的动子数量。该值必须与物理动子数量一致,否则TwinCAT会报“Mover count mismatch”错误。示例中Module 1配置为6个动子,Module 2配置为6个动子。
- 通信周期与同步模式:XTS通常运行在DC(Distributed Clocks)同步模式下,通信周期建议设置为1ms或2ms。周期越短,动子位置更新越平滑,但对控制器CPU负载要求越高。
- 过程数据(PDO)映射:确认每个动子的Position、Velocity、Status、Control Word等PDO是否已正确映射到过程映像。若缺少Position PDO,后续无法读取动子实际位置。
四、动子数量与地址映射
XTS系统中每个动子都有唯一的逻辑编号(Mover ID),从1开始递增。TwinCAT在过程映像中为每个动子生成一组变量,命名规则通常为:
XTS_Module1.Mover[1].Position // 动子1当前位置
XTS_Module1.Mover[1].Velocity // 动子1当前速度
XTS_Module1.Mover[1].Status // 动子1状态字
XTS_Module1.Mover[1].Control // 动子1控制字
XTS_Module2.Mover[1].Position // 模块2上动子1位置(全局动子7)
地址映射的核心逻辑是:EtherCAT Auto-Increment地址在扫描阶段临时分配,激活配置后TwinCAT会为每个从站分配固定EtherCAT地址(可通过“EtherCAT”选项卡查看和修改)。过程映像变量则通过“Linked to”方式绑定到具体从站的PDO条目上。工程中应避免直接使用Auto-Increment地址编写逻辑,而应使用过程映像变量名,这样在更换从站或调整拓扑时无需修改代码。
对于多模块XTS系统,建议在PLC中建立全局动子编号与模块内编号的映射表。例如全局动子7对应Module 2的Mover[1],全局动子12对应Module 2的Mover[6]。这样上层调度算法只需操作全局编号,底层通过映射表转换为具体模块和局部编号,降低耦合度。
| 全局动子编号 | 所属模块 | 模块内编号 | 过程映像变量前缀 |
|---|---|---|---|
| 1–6 | XTS Module 1 | Mover[1]–Mover[6] | XTS_Module1.Mover[n] |
| 7–12 | XTS Module 2 | Mover[1]–Mover[6] | XTS_Module2.Mover[n] |
完成上述配置后,执行“Activate Configuration”并切换到Run Mode。观察EtherCAT主站状态是否为OP,各从站是否无错误。随后在PLC中读取任一Mover的Position变量,手动推动动子,确认数值随位置变化。若数值不变或跳变,需检查PDO映射和编码器信号。至此,项目创建与硬件组态完成,系统已具备运行XTS运动控制逻辑的基础条件。