4. 设备信息与身份标识
在 EtherCAT 网络中,主站启动后面对的第一件事不是发过程数据,而是“认人”。网络上可能挂着伺服驱动器、耦合器、IO 模块、网关,它们来自不同厂商、不同型号、不同硬件版本。主站必须有一套确定性的身份体系,才能判断“这个从站是不是我配置里期望的那一个”。这套身份体系由 ESI 文件中的四个关键字段承载:Vendor ID、Product Code、Revision No 和 Serial No。理解它们的语义和匹配规则,是排查“从站识别失败”“配置不生效”“换件后无法启动”等问题的前提。
四个标识字段的语义与分配规则
Vendor ID(厂商标识)是一个 32 位无符号整数,由 EtherCAT Technology Group(ETG)统一分配,全球唯一,代表设备制造商。它写在从站 ESC 的 EEPROM 中,也写在 ESI 文件的 <Vendor> 节点里。例如 Beckhoff 的 Vendor ID 为 0x00000002,这是 ETG 注册表分配的固定值,厂商不能自行更改。Vendor ID 的作用是回答“这是谁家的设备”。
Product Code(产品代码)同样是 32 位整数,由厂商自行分配,用于区分同一厂商下的不同产品型号。例如同一家厂商的 EL1008 与 EL1018 是两个不同产品,Product Code 必须不同。它回答“这是哪一款设备”。Product Code 的分配规则由厂商内部管理,但必须保证在同一 Vendor ID 下唯一。
Revision No(版本号)是 32 位整数,由厂商分配,用于标识同一 Product Code 下的硬件或固件版本。它回答“这是这款设备的哪个版本”。Revision No 的语义需要特别注意:它并不总是“越大越新”,也不总是“必须完全相等”。ETG 约定,Revision No 的高 16 位表示主版本,低 16 位表示次版本。主站在匹配时通常采用“从站 Revision No 必须大于等于 ESI 中声明的最低 Revision No”这一规则,从而允许向后兼容的固件升级。例如 ESI 声明 Revision No 为 0x00110000,从站实际为 0x00120000,主站应接受;若从站为 0x00100000,则拒绝。
Serial No(序列号)是 32 位整数,由厂商分配,用于唯一标识单个设备个体。它回答“这是哪一台具体设备”。Serial No 在大多数通用从站中并不参与主站匹配,因为主站通常不关心“必须是第 37 号那台”,只关心“型号和版本对得上”。但在需要精确替换、资产追踪或安全校验的场合,主站可以配置为校验 Serial No,此时换一台同型号设备也会导致匹配失败。
主站识别从站的匹配逻辑
主站扫描到从站后,会读取 ESC EEPROM 中的身份信息,并与 ESI 文件或工程配置中的期望值逐级比对。匹配不是四个字段同时相等,而是有优先级和层次:
- 第一层:Vendor ID 必须完全相等。这是硬性条件,不相等直接判定为“非预期厂商设备”,主站通常拒绝进入 OP 状态。
- 第二层:Product Code 必须完全相等。不相等说明型号不对,主站会报“Product Code mismatch”。
- 第三层:Revision No 按“大于等于”规则匹配。从站实际 Revision No 必须不低于 ESI 中声明的最低版本。若低于,主站报“Revision mismatch”;若高于,通常允许,但部分主站会给出警告,提示 ESI 可能未覆盖新版本特性。
- 第四层:Serial No 可选校验。默认不校验;若工程中启用了序列号绑定,则必须完全相等,否则报“Serial No mismatch”。
这四层关系可以用下面的信号链与判断路径图表示。图中左侧是主站侧期望值,右侧是从站 EEPROM 实际值,中间是逐级比较逻辑,最终输出“匹配通过”或具体失败原因。
工程实践中的典型问题与判断依据
在实际工程中,最常见的匹配失败是 Revision No 不匹配。例如某伺服驱动器 ESI 文件声明 Revision No 为 0x00010000,现场更换的新批次硬件实际为 0x00020000。按照“大于等于”规则,主站应接受;但如果主站配置工具把 Revision No 当作“必须完全相等”处理,就会报错。此时应检查主站工具的匹配策略设置,而不是盲目修改 ESI。
另一个典型场景是 Product Code 相同但功能不同。有些厂商用同一个 Product Code 覆盖多个变体,通过 Revision No 区分功能集。这种情况下,Revision No 的“大于等于”规则可能导致主站加载了错误的 PDO 映射。判断依据是:若从站进入 OP 后过程数据长度或对象字典与预期不符,应回查 Revision No 与 ESI 中 PDO 配置的对应关系。
Serial No 的使用需要谨慎。在批量产线中,如果主站启用了 Serial No 校验,那么任何一台设备故障后更换同型号备件都会导致网络无法启动。因此,除非有明确的资产绑定需求,否则建议保持 Serial No 校验关闭。若确实需要启用,应在工程文档中记录每台设备的 Serial No 与物理位置的对应关系,并在更换备件时同步更新配置。
身份标识与 ESI 文件的对应关系
ESI 文件中的身份信息位于 <Vendor>、<ProductCode>、<RevisionNo> 等节点。主站配置工具在导入 ESI 后,会把这些值作为期望值写入工程。从站上电后,主站通过 EtherCAT 寄存器读取 ESC EEPROM 中的实际值,两者比对。因此,ESI 文件的准确性直接决定匹配结果。若厂商发布了新固件但未更新 ESI,就可能出现“实际 Revision No 高于 ESI 声明”的情况,此时主站通常允许通过,但可能缺少新版本特有的对象或 PDO 配置。
理解这四个字段的语义和匹配逻辑,本质上是在理解 EtherCAT 网络中“身份”与“兼容性”的边界。Vendor ID 和 Product Code 划定了“是不是这个设备”的硬边界;Revision No 划定了“这个版本能不能用”的软边界;Serial No 则划定了“是不是这一台”的可选边界。主站的匹配逻辑就是沿着这三条边界逐级判断,任何一级不通过,状态机就不会继续向 OP 迁移。