4. EtherCAT从站设备与ESI文件解析
EtherCAT从站是主站控制逻辑真正落地的对象。主站并不直接“认识”一台伺服或一块IO模块,它认识的是从站控制器ESC、ESC外挂的EEPROM,以及由厂商提供的ESI(EtherCAT Slave Information)文件。三者关系可以概括为:ESC负责实时数据链路与过程数据处理,EEPROM保存从站身份与配置信息,ESI文件则把从站能力以XML形式描述给主站配置工具。理解这条链路,才能正确识别多轴伺服与IO从站,并完成PDO/SDO映射。
ESC与EEPROM:从站的硬件身份
ESC(EtherCAT Slave Controller)是从站通信的核心芯片或IP核,常见如ET1100、ET1200、LAN9252、AX58100等。它内部包含过程数据RAM、FMMU(现场总线内存管理单元)、同步管理器SM、分布式时钟DC单元以及ESC寄存器区。主站发出的过程数据帧经过每个从站时,ESC根据FMMU配置把报文中对应数据直接读写到本地过程数据RAM,无需CPU逐帧干预,这正是EtherCAT高实时性的来源。
ESC外接的EEPROM通常为1Kbit~4Mbit,保存两类关键信息:一是ESC寄存器配置字,如上电时FMMU/SM/DC的初始值;二是SII(Slave Information Interface)区,包含厂商ID、产品代码、修订号、序列号、邮箱协议、SM配置、FMMU使用、同步管理器、PDO与SDO描述等。主站上电扫描时读取SII,得到从站基本身份。若EEPROM为空或校验错误,从站可能无法进入OP状态,主站日志常出现“SII read failed”或“invalid EEPROM”。
ESI文件结构:从站能力的XML描述
ESI文件是厂商随从站提供的XML文档,扩展名通常为.xml,主站配置工具(如TwinCAT、CODESYS、IgH EtherCAT Master的ethercat conf)通过它生成从站描述。ESI的核心节点包括:
- Vendor:厂商ID与名称,与EEPROM中SII一致。
- Descriptions/Devices/Device:设备类型、产品代码、修订号、名称。
- Sm:同步管理器配置,定义邮箱SM0/SM1与过程数据SM2/SM3的起止地址、控制字节、使能状态。
- Fmmu:FMMU使用数量与映射方向。
- Dc:分布式时钟能力,如支持64位时间、SYNC0/SYNC1周期。
- Mailbox:邮箱协议,通常为AoE、CoE、EoE、FoE、SoE之一或组合。
- RxPdo/TxPdo:过程数据对象,定义每个PDO的索引、名称、同步管理器、条目与数据类型。
- Dictionary/Objects:对象字典,列出SDO可访问的索引、子索引、数据类型、访问权限与默认值。
ESI文件不是“可执行程序”,而是主站配置的元数据。主站工具解析ESI后,把从站加入网络拓扑,并允许用户选择PDO映射、设置DC模式、配置启动SDO。若ESI与EEPROM中的产品代码、修订号不匹配,主站可能拒绝进入OP状态,或提示“ESI mismatch”。
对象字典、PDO与SDO映射
对象字典(Object Dictionary)是从站内部按索引组织的参数集合。每个对象由16位索引和8位子索引定位,例如0x6040:00为控制字,0x607A:00为目标位置。对象字典中的对象按通信对象、制造商对象、设备子协议对象分类。CoE(CANopen over EtherCAT)协议通过SDO访问对象字典,通过PDO周期传输过程数据。
PDO映射的本质是把对象字典中的若干对象“打包”到过程数据帧的固定位置。以一台支持CSP模式的多轴伺服为例,RxPDO(主站→从站)可映射0x6040控制字、0x607A目标位置、0x60FF目标速度;TxPDO(从站→主站)可映射0x6041状态字、0x6064实际位置、0x606C实际速度。映射关系在ESI的RxPdo/TxPdo节点中声明,主站配置时通过0x1C12/0x1C13对象把PDO分配给同步管理器SM2/SM3。
SDO则用于非周期参数访问,如读取0x1018确认厂商ID与产品代码、写入0x6060设置运行模式、读取0x603F获取错误码。SDO通过邮箱SM0/SM1传输,不占用过程数据带宽,但响应时间较长,适合初始化与诊断。实际工程中,先通过SDO识别从站身份并配置参数,再通过PDO建立周期数据交换,最后启动DC同步进入OP状态。
多轴伺服与IO从站识别方法
多轴伺服从站识别通常分三步。第一步,读取EEPROM SII或通过SDO读取0x1018,获取厂商ID、产品代码、修订号,与ESI文件比对,确认从站型号与固件版本。第二步,检查SM配置与FMMU使用,确认过程数据SM2/SM3地址范围与主站分配一致。第三步,读取0x1C12/0x1C13确认PDO分配,再读取0x6060确认运行模式,最后检查0x6041状态字是否进入“Operation enabled”。
IO从站识别相对简单,但同样需要关注PDO映射。数字量输入从站通常TxPDO映射0x6000系列对象,数字量输出从站RxPDO映射0x7000系列对象。若IO从站PDO映射为空,主站可能只进入PREOP而无法进入OP。此时应检查ESI中RxPdo/TxPdo是否定义,以及0x1C12/0x1C13是否被正确写入。
实际配置时,建议先建立一张从站识别表,记录每个从站的厂商ID、产品代码、修订号、SM配置、PDO映射与DC能力。这样在多轴系统中,当某一轴无法进入OP或位置数据异常时,可以快速定位是ESI不匹配、PDO映射错误还是DC同步问题。ESI文件解析不是一次性工作,而是从站识别、参数配置与故障排查的基础依据。