跳到主要内容

热插拔

EtherCAT 标准功能

热插拔(Hot Connect)是 EtherCAT 主站的标配功能。SDK 默认启用,无需额外配置。 相关文档:Master 事件 | Slave 事件(其他语言版本请参考 SDK 文档

工作原理

当从站离线时,EtherCAT 帧会跳过该从站位置继续转发,其余从站保持 OP 状态正常通信。离线从站的 PDO 输入数据被清零,WKC 相应降低。主站检测到从站恢复后自动重新配置。

行为特性:

  • 离线从站不影响其余从站的 PDO 周期通信
  • 全自动恢复(SM/FMMU 重配 + 状态恢复至 OP)
  • 支持断电重连和同型号设备替换
  • 线型拓扑中,中间从站断开会导致其后方从站全部不可达(除非有环形冗余)
  • 耦合器(如 EK1100)断开会导致其分支端口下游从站全部不可达

恢复流程

线缆拔插(地址保留)

从站短暂断开后重连,配置地址仍在 ESC 寄存器中:

恢复时间: 约 3-5 个 PDO 周期(3-5ms @ 1kHz)

断电重连(地址丢失)

从站断电后重新上电,ESC 寄存器全部重置,需要完整重配:

恢复时间: 约 15-25 个 PDO 周期(15-25ms @ 1kHz)

GUI 热插拔组管理

GUI 主界面的 热插拔组面板 提供可视化的组定义与状态监控,无需手写代码即可管理整套热插拔策略。

组管理面板

面板列出所有已定义的热插拔组,每行展示组名、模板从站、当前状态和启用开关。常用操作:

操作说明
添加组选中拓扑中的从站后右键 → "加入热插拔组",或在面板工具栏点击"新建组"
删除组选中目标组 → 工具栏"删除",对应从站位恢复为常规配置
启用 / 禁用行末开关切换。禁用后该位的从站离线不会触发恢复,便于现场临时调整
编辑双击组行打开属性对话框,可修改别名地址、模板 Vendor / Product Code、备注等

组状态实时显示

每个组提供三态可视化指示:

状态颜色含义
Present绿色期望的从站已上线、模板匹配、PDO 通信正常
Absent灰色该位置当前没有从站,主站正在等待替换设备接入
Unknown黄色检测到从站但身份与模板不匹配(Vendor / Product Code 不同),或处于校验中

状态变化会实时反映在面板和拓扑图上,配合右下角的事件浮窗给出即时提示。

别名地址输入

热插拔组使用别名地址(Alias Address) 作为从站身份标识,从而摆脱物理位置依赖。 在组属性对话框中填写 Alias 后,主站会写入从站 EEPROM;之后无论该从站接到拓扑哪一段, 只要别名匹配就归属对应组。

典型用法: 同型号驱动器多台共用一个工位,现场维护时换一台备机即可,不需要重新映射地址。

模板 Vendor / Product Code 输入

模板字段用于约束"哪些从站允许填入这个组":

字段说明
Vendor ID厂商 ID,从 ESI / 拓扑面板自动带出,也可手填
Product Code产品编号,必须与替换设备一致
Revision (可选)固件修订号。留空表示忽略修订号差异

模板不匹配时组状态会显示为 Unknown,主站不会启动该位置的 OP 切换,从而避免错装设备造成误动作。

热插拔事件日志入口

GUI 工具栏点击 "事件日志" 或使用快捷键打开热插拔事件窗口,按时间倒序展示:

  • 从站上线:组名、别名、Vendor / Product Code、上线耗时
  • 从站下线:组名、别名、最后一次有效通信时间
  • 模板不匹配:实际检测到的 Vendor / Product Code 与期望模板的差异
  • 状态重切:进入 / 退出 OP 的关键节点

事件支持按组过滤、按级别(Info / Warn / Error)筛选,可一键导出 CSV 用于交班记录或售后排查。

事件通知

从站离线和恢复时会触发事件:

// Master 级别
master.Events.SlaveOffline += (slaveIndex) =>
{
Console.WriteLine($"从站 {slaveIndex} 离线");
};

master.Events.SlaveOnline += (slaveIndex) =>
{
Console.WriteLine($"从站 {slaveIndex} 恢复上线");
};

// Slave 级别
slave.Events.Offline += () => { /* 处理离线 */ };
slave.Events.Online += () => { /* 处理恢复 */ };

常见问题

热插拔期间 PDO 通信是否受影响?

常规情况不受影响。PDO 周期频率和抖动保持不变。 极端满负载情况会导致 PDO 周期异常。

支持同时恢复多个从站吗?

支持。多个从站离线时,调度器按轮询顺序逐个恢复。所有从站最终都会被恢复。

别名地址和位置地址有什么区别?

位置地址由从站在拓扑中的物理位置自动分配,更换位置后会变化;别名地址写入从站 EEPROM, 跟随设备本身,不随拓扑位置改变。热插拔组优先使用别名匹配,从而支持"同型号备机即插即用"。

组状态长期停留在 Unknown 怎么办?

打开事件日志查看不匹配详情:

  • Vendor / Product Code 不一致 → 设备型号错误或固件版本差异,更换正确型号
  • 别名未写入 → 在组属性中重新写入 Alias,或使用 ESI 工具直接烧录 EEPROM
  • EEPROM 校验失败 → 设备 EEPROM 损坏,需联系设备厂商

断电重连后从站配置会丢失吗?

不会。恢复 FSM 会自动重新写入 SM 和 FMMU 寄存器,并将从站状态恢复到 OP。对于使用 EEPROM 默认 PDO 映射的从站(绝大多数场景),无需额外操作。

备注

如果从站在初始启动时通过 SDO 进行了自定义配置(如自定义 PDO 映射、驱动参数等),这些配置在断电重连后不会被自动重发。应用层需要在 SlaveOnline 事件回调中自行重新下发 SDO 配置。

如果自动配置已经写入自定义的 Startup 属性则会被自动重发。