3. EtherCAT协议原理与从站设备集成
EtherCAT(Ethernet for Control Automation Technology)是一种实时工业以太网协议,其核心思想是“飞读飞写”(processing on the fly):主站发送一个以太网帧,该帧依次经过每个从站,从站在帧经过时读取属于自己的输出数据、写入输入数据,无需逐站存储转发。这一机制使EtherCAT在100 Mbit/s链路上即可实现微秒级周期,是TwinCAT中最常用的现场总线。
一、EtherCAT帧结构与寻址
EtherCAT帧封装在标准以太网帧中,以太网类型字段为0x88A4。EtherCAT数据区由一个或多个EtherCAT子报文(Datagram)组成,每个子报文包含10字节报文头、数据区和2字节工作计数器WKC(Working Counter)。报文头中的命令字段决定寻址方式,常用命令包括:
- APRD/APWR:自动增量寻址,按从站物理顺序读写,用于启动阶段识别拓扑。
- FPRD/FPWR:配置地址寻址,按从站被分配的站地址读写。
- LRD/LWR/LRW:逻辑寻址,使用32位逻辑地址映射到过程数据映像,是周期性过程数据交换的主要方式。
WKC用于判断报文是否被正确处理:每个从站对读写操作按规则累加WKC,主站通过比较期望值与实际返回值判断通信是否正常。例如一个LRW报文经过3个从站,每个从站读写成功各加1,期望WKC为6;若返回值为4,说明有从站未正确响应。
二、分布式时钟DC
分布式时钟(Distributed Clocks, DC)用于实现从站之间的高精度同步。EtherCAT选择第一个支持DC的从站作为参考时钟,其他从站为从时钟。主站发送带有参考时钟时间戳的ARMW/FRMW报文,各从站测量报文到达与离开的时间差,计算自身时钟与参考时钟的偏移和漂移,并通过内部寄存器补偿,使各从站时钟偏差控制在纳秒级。
在TwinCAT中启用DC后,伺服驱动器的位置锁存、多轴插补等对同步要求高的应用才能正常工作。配置时需在从站DC选项卡中设置同步模式(如DC SYNC0)和同步周期,通常与EtherCAT周期一致。若DC未启用或同步丢失,伺服可能出现抖动、报警或位置偏差。
三、过程数据对象PDO与邮箱通信
EtherCAT从站通过两种方式与主站交换数据:
- 过程数据对象(PDO):周期性实时数据,如数字量输入输出、模拟量采样值、伺服控制字/状态字、目标位置/实际位置等。PDO通过逻辑寻址映射到主站过程映像,每个周期自动交换。
- 邮箱通信(Mailbox):非周期性数据,用于参数配置、诊断信息、固件升级等。基于CoE(CANopen over EtherCAT)协议,通过SDO(Service Data Object)读写对象字典。
在TwinCAT中集成从站时,首先扫描设备,然后为每个从站选择PDO映射。例如EL3102模拟量输入模块,默认PDO包含2通道16位采样值;AX5206伺服驱动器需选择“Cyclic Synchronous Position”模式,映射控制字0x6040、状态字0x6041、目标位置0x607A、实际位置0x6064等对象。PDO映射决定了过程映像的大小和结构,直接影响PLC变量链接。
四、从站设备集成实操
以一台CX5130控制器、EK1100耦合器、EL1008数字量输入、EL2008数字量输出、EL3102模拟量输入和AX5206伺服驱动器为例,集成步骤如下:
- 在TwinCAT XAE中新建项目,右键“Device”选择“Scan”,自动识别EtherCAT主站和从站拓扑。
- 检查各从站DC设置:AX5206需启用DC SYNC0,同步周期设为1 ms;EL3102可启用DC用于采样同步。
- 配置PDO映射:EL1008映射8位输入;EL2008映射8位输出;EL3102映射2通道16位输入;AX5206映射控制字、状态字、目标位置、实际位置、目标速度等。
- 在PLC中创建变量并链接到过程映像,例如
bStart AT %I*链接到EL1008通道1,nActualPos AT %Q*链接到AX5206实际位置。 - 激活配置,观察从站LED和TwinCAT在线状态:WKC应等于期望值,DC同步状态显示“Sync”或“Locked”。
五、周期数据交换与同步控制验证
完成配置后,通过以下方式验证:在PLC中编写简单程序,将EL1008输入状态直接映射到EL2008输出,观察LED跟随;读取EL3102模拟量通道值,用电压源输入0~10 V,检查PLC变量是否线性变化;对AX5206,通过PLC写入目标位置,观察伺服实际位置跟随情况,并检查DC同步偏差是否在允许范围内(通常<1 μs)。
若需更精确的同步控制,可在TwinCAT中启用“DC Synchronization”并设置SYNC0周期,同时确保PLC任务周期与EtherCAT周期一致或成整数倍关系。例如EtherCAT周期1 ms,PLC任务周期1 ms,则每个周期交换一次过程数据,伺服位置指令更新与DC同步,实现多轴协调运动。
| 从站 | PDO内容 | 数据方向 | 典型周期 |
|---|---|---|---|
| EL1008 | 8位数字输入 | 从站→主站 | 1 ms |
| EL2008 | 8位数字输出 | 主站→从站 | 1 ms |
| EL3102 | 2×16位模拟输入 | 从站→主站 | 1 ms |
| AX5206 | 控制字/状态字/位置/速度 | 双向 | 1 ms |
通过上述配置,EtherCAT网络实现了从耦合器、数字量/模拟量模块到伺服驱动器的完整集成,过程数据按周期交换,DC同步保证各从站动作一致,为后续运动控制和逻辑控制奠定基础。