1. 课程导入与ESI工程定位
在EtherCAT网络中,主站启动后要做的第一件事并不是直接发过程数据,而是先“认识”每一个从站:它是什么设备、支持哪些对象字典、能提供哪些输入输出、用哪种同步模式、PDO里映射了哪些数据。主站本身并不内置这些知识,它依赖一份由从站厂商提供的XML文件——ESI(EtherCAT Slave Information,从站信息文件)。可以说,ESI是从站设备向主站递交的“身份证+说明书”,没有它,主站只能看到一个无法配置的裸设备。
ESI文件通常以.xml为扩展名,遵循ETG.2000规范,由EtherCAT技术协会(ETG)定义其结构。它描述的内容包括:厂商与设备标识(Vendor ID、Product Code、Revision No.)、对象字典条目、PDO映射、同步管理器(SM)配置、分布式时钟能力、邮箱协议、FMMU使用方式,以及可选的EEPROM信息。主站配置工具(如TwinCAT、CODESYS、SOEM、IgH EtherCAT Master)读取ESI后,才能生成正确的网络配置和过程映像。
理解ESI的工程定位,需要把它放到从站开发和主站配置两条链路中看。在从站开发侧,工程师先设计硬件与固件,确定对象字典、PDO映射和SM通道,然后编写或生成ESI文件,最后把ESI随设备一起交付。在主站配置侧,工程师把ESI导入配置工具,扫描网络,工具根据ESI匹配到具体从站,再据此生成PDO映射、过程映像和启动参数。两条链路在ESI处交汇,因此ESI既是开发输出物,也是配置输入物。
从图中可以看到,ESI处在两条链路的交汇点。左侧从站开发完成后,ESI作为交付物之一随设备发布;右侧主站配置时,ESI被导入工具,成为匹配和配置的依据。中间的ESI文件本身是XML文本,可以用普通文本编辑器查看,也可以用ETG提供的校验工具检查结构合法性。
学习本课程,建议按“先看懂、再写对、后配通”的路径推进。第一步是能读懂一份真实ESI:找到Vendor ID、Product Code、对象字典、PDO映射和SM配置,理解每个字段的含义。第二步是能根据从站固件实际能力,编写或修改ESI,保证XML描述与设备行为一致。第三步是把ESI导入主站工具,完成扫描、映射、启动和验证,最终让从站进入OP状态并正常交换过程数据。
工具链方面,常用工具包括:文本编辑器(VS Code、Notepad++)用于查看和编辑XML;ETG.2000校验工具或在线校验服务用于检查语法和结构;从站协议栈(如Beckhoff SSC、Microchip LAN9252 SDK、SOES)通常自带ESI模板或生成脚本;主站侧TwinCAT、CODESYS、IgH EtherCAT Master、SOEM各有自己的ESI导入和配置方式;调试阶段可用Wireshark配合EtherCAT解析插件抓取邮箱和过程数据报文,验证ESI描述与实际通信是否一致。
下面给出一个最小ESI片段示例,帮助建立直观印象。它描述了一个简单数字量输入从站的部分信息,包括厂商标识、设备标识和一个TxPDO映射。实际工程中的ESI会包含更多对象和SM配置,但结构逻辑相同。
<EtherCATInfo>
<Vendor>
<Id>#x00000002</Id>
<Name>Example Vendor</Name>
</Vendor>
<Descriptions>
<Devices>
<Device>
<Type ProductCode="#x00000001" RevisionNo="#x00000001">Example DI Slave</Type>
<Sm>
<Sm StartAddress="#x1000" ControlByte="#x26" Enable="1">MBoxOut</Sm>
<Sm StartAddress="#x1080" ControlByte="#x22" Enable="1">MBoxIn</Sm>
<Sm StartAddress="#x1100" ControlByte="#x00" Enable="1">Inputs</Sm>
</Sm>
<TxPdo>
<Index>#x1A00</Index>
<Entry>
<Index>#x6000</Index>
<SubIndex>1</SubIndex>
<BitLen>8</BitLen>
</Entry>
</TxPdo>
</Device>
</Devices>
</Descriptions>
</EtherCATInfo>
这段示例中,Vendor Id和ProductCode是主站匹配从站的关键字段;Sm定义了同步管理器通道,其中邮箱输出、邮箱输入和输入过程数据各占一段地址;TxPdo定义了从站上传给主站的过程数据,索引0x1A00映射到对象0x6000:01,位长8位。主站导入这份ESI后,就能知道该从站有一个字节的输入数据,并把它映射到过程映像中。
需要强调的是,ESI中的地址、索引、位长等参数必须与从站固件和EEPROM中的SII信息保持一致。SII是存储在从站EEPROM中的简化信息,主站上电扫描时先读SII完成基本识别,再结合ESI完成详细配置。如果两者不一致,可能出现“扫描到了设备但配置失败”或“PDO长度不匹配”等问题。因此,在从站开发阶段,ESI和SII应作为同一套配置数据统一维护。
本课程后续将围绕ESI的结构解析、对象字典与PDO映射、SM与FMMU配置、DC同步描述、ESI编写与校验、主站导入与调试、常见故障排查等展开。本章的目标是建立整体定位:ESI是从站开发与主站配置之间的契约文件,学好的关键在于“读懂结构、写对内容、配通链路”。