热插拔
工作原理
SDK 核心特性:
- PDO 周期零影响
- 全自动恢复
- 支持断电重连, 同型号设备热插拔
- 单一设备多实例支持
- 单实例支持冗余环+多分支, 支持车间复杂多设备的复杂布线场景
恢复流程
线缆拔插(地址保留)
从站短暂断开后重连,配置地址仍在 ESC 寄存器中:
恢复时间: 约 3-5 个 PDO 周期(3-5ms @ 1kHz)
断电重连(地址丢失)
从站断电后重新上电,ESC 寄存器全部重置,需要完整重配:
恢复时间: 约 15-25 个 PDO 周期(15-25ms @ 1kHz)
事件通知
从站离线和恢复时会触发事件:
// 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 周期异常。
支持同时恢复多个从站吗?
支持。多个从站离线时,调度器按轮询顺序逐个恢复。所有从站最终都会被恢复。
断电重连后从站配置会丢失吗?
不会。恢复 FSM 会自动重新写入 SM 和 FMMU 寄存器,并将从站状态恢复到 OP。对于使用 EEPROM 默认 PDO 映射的从站(绝大多数场景),无需额外操作。
备注
如果从站在初始启动时通过 SDO 进行了自定义配置(如自定义 PDO 映射、驱动参数等),这些配置在断电重连后不会被自动重发。应用层需要在 SlaveOnline 事件回调中自行重新下发 SDO 配置。
如果自动配置已经写入自定义的Startup属性则会被自动重发。