简介一份关于倍福EtherCAT HotConnect设置方法的PDF技术资料面向工业自动化现场工程师与倍福控制器开发人员解决设备热插拔或物理线路变动导致EtherCAT网络通讯中断、IO值停止刷新的常见问题。资源为单个PDF文件压缩包大小119KB内容精炼以图文步骤详解配置流程。文档基于CX9010作为EtherCAT主站配合EK1122网关与两个EK1100从站分别演示星型与线型拓扑下的故障现象。重点说明了在System Manager中扫描模块、将EK1100加入Hot Connect组、设置双地址访问、验证Free Run模式断开效果等关键操作并介绍通过WcState参数判断数据报文状态。读者按此操作可快速启用HotConnect实现设备不停机维护提升产线灵活性与可靠性。目前已有221人学习下载适合需要排查倍福EtherCAT网络断线问题的工程技术人员参考。1. 为什么星型拓扑一断线整条 EtherCAT 网就瘫了接手过倍福系统的工程师基本都遇到过这个场景CX9010 做主站EK1122 分出两个网口下面挂两组 EK1100各自带几个 IO 模块。平时跑得好好的一旦维护时把其中一组 EK1100 的网线拔了另一组还在运行的 IO 数值立刻冻住整条总线跟死了一样。第一次遇到的人多半会怀疑是硬件坏了换 EK1100、换网线、甚至换 CX9010问题依旧。这不是硬件故障而是 EtherCAT 数据帧在逻辑上被断开的从站卡住了环形链路走不通后续从站根本拿不到数据。HotConnect 就是解决这个问题的机制它把需要频繁插拔维护的从站组单独隔离出来让主站在该组离线时能自动跳过从而保证其他从站继续刷新 IO。本文按实际操作顺序展开先从星型拓扑下 EtherCAT 报文格式和 DC 同步原理讲明白为什么断线会影响整网再给出 System Manager 里 Add to Hot Connect Groups 的完整配置过程然后聊 WcState 和 Free Run 验证方法最后补一些多组 HotConnect、线型拓扑、CX9010 WinCE 环境的坑。适合现场调试工程师和做设备维护的人参考。2. EtherCAT 帧传递机制与 EK1122 星型拓扑的断线故障模型2.1 EtherCAT 数据帧在 EK1122 两个网口中的传递路径EtherCAT 本质上是主站发出的以太网帧依次经过每个从站处理从站收到帧后在自己的寻址空间内读写数据然后把帧从 X1 转发到 X2最终回到主站。每个从站都有两个网口PHY 层把收到的数据帧做短暂延迟后继续向下游发送中间只插入一小段处理时间。主站发送的帧格式由 EtherCAT 头、数据报Datagram、FCS 校验三部分组成每个数据报包含一个工作计数器Working CounterWcState 相关从站每完成一次逻辑读或写操作就会把工作计数器的值加 1。主站通过对比配置时的期望工作计数器和实际收到的值判断哪些从站的数据没被处理。EK1122 是一个网口进、两个网口出的星型扩展器它内部实际是一个两端口交换结构把收到的帧复制到两个下游端口再从两个下游端口收回处理后的帧。这个器件在 EtherCAT 从站设备表中被映射为两个逻辑从站名称上通常显示为 Port A 和 Port B各自有独立的物理地址和拓扑位置。问题就出在这个复制转发机制上如果 Port A 下的 EK1100 断开那么主站发给该分支的数据帧在 EK1122 处仍然会尝试写入该端口的 PHY但物理上没有应答帧在 EK1122 内部等待超时这会导致 Port B 的数据帧处理被阻塞最终主站认为整条链路异常。2.2 从站断线为什么会冻住整条总线从 EtherCAT 状态机的角度看从站处于 OP 状态时它的 SMSyncManager通道一直在等待主站发送有效的循环数据帧。如果物理链路断了从站收不到帧它的 IO 输出会被内部控制逻辑锁存输入数据也不再更新。但问题在于主站侧EtherCAT 主站在一个循环周期内只发送一次帧如果这个帧因为某个分支没有回应而无法完成完整的发送和接收流程那么该周期的时间就被拉长甚至触发总线抖动检测导致整个网络从 OP 掉到 SAFEOP 或 INIT。对于星型拓扑来说还有一个容易被忽视的细节EK1122 的下游端口在检测到リンク down 之后会把该端口的链路状态寄存器标记为断开但它仍然会在帧中把该分支的从站计数为在线因为主站下发的是广播帧不区分实际连接状态。这就造成了主站认为从站还在但该从站的数据始终没有返回WcState 值不增加。倍福的解决方案不是在主站侧做超时判断而是通过 HotConnect 参数告诉主站这一组从站可以被跳过不参与整网工作计数器的计算。2.3 Tool 配置中 HotConnect 的作用范围与适用边界HotConnect 在 TwinCAT System Manager 中表现为一个组对象组内的从站被从原来的总线扫描位置移除放到一个独立的分组中组属性里有 Previous Port 字段表示主站到该组从站的相对路径。主站扫描时如果发现该路径上的物理链路中断会自动跳过这个组并且在拓扑视图中用红色标记组内从站。这个机制适用于设备现场频繁更换的末端模块比如机器人工具端 IO 板、夹具上的阀岛、测试台上的可更换治具。并不是所有从站都适合加入 HotConnect。如果某组从站参与安全联锁逻辑比如急停回路、光栅信号加入 HotConnect 后主站会忽略其离线状态安全隐患极大。另外如果加了 DC 同步Distributed Clock并且该组从站是同步基准源就不能把它加入 HotConnect否则其他从站的 Sync0 脉冲会因为缺少参考而从新同步造成抖动。我一般建议只把纯 IO 模块或非安全数据采集模块放入 HotConnect并且每次断线重连后检查 WcState 是否恢复。3. System Manager 中 Hot Connect Groups 配置的具体步骤3.1 扫描拓扑后正确识别 EK1122 下的分支结构先把 CX9010 和两个 EK1100 按星型接好打开 TwinCAT System Manager选择 CX9010 对应的 PLC 配置点 I/O 设备右键 EtherCAT Master 设备选择 Scan Boxes。扫描完成后设备树中应该能看到 EK1122 下挂两个 EK1100每个 EK1100 下面有各自的 Term 模块。不同固件版本显示略有差异EK1122 的 Revision 是 0016EK1100 的 Revision 是 0017如果扫描出来的对象和实际物理模块对不上检查 CX9010 的 WinCE Image 和 TwinCAT 版本Image HMI220e 对应的系统补丁必须装全。扫描完成后先把系统切换到 Config Mode然后手动把每个从站的状态切换到 OP确认所有 IO 都能正常刷新。此时断掉其中一个 EK1100 的连接观察另一个 EK1100 的输入变化确认问题可以稳定复现。接下来右键点击需要加入 HotConnect 的 EK1100 设备在弹出菜单中选择 Add to Hot Connect Groups。注意这里有个版本差异TwinCAT 2.11 以下右键菜单直接显示该选项TwinCAT 2.11 以上可能需要先选中设备再点右键并且在 I/O 配置的树形视图里展开到设备层级才能看到。一定不要在多任务模式下操作先把 CPU 负载降下来。CX9010 的处理器性能有限系统扫描期间如果后台有 PLC 程序在跑容易造成配置写入超时。3.2 Add to Hot Connect Groups 与 2 Address 参数的含义点击 Add to Hot Connect Groups 之后会弹出一个对话框里面显示当前设备所在的位置信息要求你选择一个地址。这个地址不是 IP 地址而是 EtherCAT 从站地址空间中的逻辑位置标识。倍福的 HotConnect 支持 2 Address 和 3 Address 两种模式默认选 2 Address。2 Address 表示主站通过两个地址来定位该组从站第一个地址是 EK1122 上的物理端口位置第二个地址是 EK1100 自身的站地址。当主站扫描到 EK1122 的 Port A 没有物理链路时它知道 A 分支下的所有从站都无法访问就直接跳过整个分支不再往下寻找第二级地址。这里有一个容易踩的坑如果你选 3 Address那么主站会尝试从第三个地址维度去定位从站但 CX9010 自带的 EtherCAT 主站驱动在 WinCE5.0 下对 3 Address 的支持不够完善容易在循环周期内产生额外的寻址开销。对于只用 EK1122 做星型扩展的场景2 Address 足够不要盲目选 3 Address。选择 2 Address 并点击 OK 以后观察 System Manager 左侧的树形结构可以发现该 EK1100 已经从原来的位置被移出出现在设备列表的最下方并且用红色线条标记。展开该组对象的属性可以看到 Previous Port 字段被自动填充为类似 PortA:1 的值。这个值的意思是主站在访问这个组时需要先经过 EK1122 的 Port A然后到达站地址为 1 的从站。主站维护一份路径表当路径表中的端口状态变为断开时组内所有从站自动变为离线状态但不影响其他组。配置完成后重点检查一件事原来 EK1100 下面挂的 IO 模块是否也一起被移入了 Hot Connect 组。倍福的 HotConnect 是按组管理的整个 EK1100 带其下游 Term 都会整体移动不能只把单个 IO 模块加入组。如果扫描后 IO 模块没有跟着移走说明该 EK1100 的拓扑可能不完整需要重新扫描。3.3 配置文件保存与 TwinCAT 2 的激活方式配置完成后先把窗口切换到 Free Run 模式然后激活配置。TwinCAT 2 在 WinCE 下激活需要注意顺序先保存项目文件到 CX9010 的硬盘再点 Activate Configuration最后把系统从 Config Mode 切换到 Run Mode。如果在 Config Mode 下直接激活CX9010 可能会报错重启。激活完成后重新回到 I/O 设备视图确认 Hot Connect 组的红色标记仍然存在并且组内从站的 Previous Port 属性没有被自动清除。接下来验证一个关键场景在 Free Run 模式下断开其中一个 EK1100 的网线观察 System Manager 的拓扑视图。正常的现象是断开的 EK1100 显示为红色另一个 EK1100 显示为绿色并且绿色组的 IO 数值继续刷新。如果你发现绿色组也变为红色说明 HotConnect 的地址选择不对或者 EK1122 的固件版本太低。EK1122 的 Revision 0016 已经支持 HotConnect但如果你的模块是 0015 或更早版本需要先更新固件。同时检查一下 CX9010 的 CPU 负载。HotConnect 启用后主站驱动会定期发送探测帧去检查断开分支的物理链路状态这会增加一部分负载。如果负载超过 70%建议把周期时间从 1ms 调到 2ms 或者 4ms。EtherCAT 的刷新周期不是越快越好对于纯 IO 控制场景2ms 完全够用。4. Free Run 与 OP 模式下验证 HotConnect 在线插拔效果4.1 用 System Manager 的拓扑着色判断插拔状态配置完成后的第一项验证是看拓扑着色。把系统切到 Free Run 模式然后用任意一种方式触发一个数字量输出信号比如在 PLC 程序里加一个定时翻转的变量或者直接通过 System Manager 里的 Online Write 功能给某个输出模块写入一个值。等输出模块正常动作后手动断开一个 EK1100 的 EtherCAT 网线。观察 System Manager 的拓扑图会出现三种状态标识绿色代表该从站处于 OP 状态且数据通信正常红色代表从站物理链路断开或通信超时橙色代表初始化中。如果 HotConnect 配置成功断开的那组 EK1100 显示红色另一组保持绿色并且绿色组对应的 IO 输入值持续更新。可以在其中一个输入模块上接一个开关快速通断几次确认数值跟着变化。这里要特别留意断开的组显示红色的同时主站控制器的 System Manager 日志中应该不出现 error 级别的报文最多只在 Info 级别显示 HotConnect group offline 之类的内容。如果出现 error说明 HotConnect 并没有真正生效主站仍然在等待这组从站的响应。此时重新插回网线正常情况是红色标记消失该组从站自动回到 OP 状态IO 值开始刷新整个过程不需要手动复位。要注意整个过程必须在 Free Run 模式下验证如果系统处于 Config Mode配置不生效断线还是会导致整网通信中断。4.2 WcState 参数如何判断数据报文处理是否正常WcState 是验证 EtherCAT 数据帧处理状态的直接指标。在 System Manager 中展开任意一个 EK1100 组下的 IO 模块双击打开模块的 Online 参数列表找到 WcState 这个参数。它有两种状态值0 代表当前帧的处理没有达到期望工作计数器换句话说就是该从站的数据报没有被正确写入1 代表工作计数器匹配成功数据帧被该从站正确处理。在 HotConnect 验证中的操作方法是先在两组 EK1100 都正常连接时分别查看两组内任意一个 IO 模块的 WcState确认均为 1。然后断开其中一组观察这组模块的 WcState 是否变为 0同时检查另一组模块的 WcState 是否保持为 1。如果断开的一组 WcState 变为 0而另一组仍为 1说明主站已经正确跳过了离线组数据帧仍然能完成对其他组的处理。如果断开一组后另一组的 WcState 也变为 0说明 HotConnect 没有生效帧没有到达该组。对于 TwinCAT 2 环境WcState 的更新延迟约在 100ms 到 200ms 之间拔线后不要立即看屏幕等半秒再刷新。CX9010 的 WinCE 界面响应速度本来就偏慢这一点需要耐心。另外如果在验证过程中发现两组 WcState 都变为 0先把所有网线插回系统恢复到初始状态然后重新检查一下 HotConnect 组的 Previous Port 属性最常见的错误是配置时选错了端口比如把原本在 Port B 下的 EK1100 配置成了通过 Port A 访问导致主站找不到从站。4.3 多次插拔测试与系统稳定性观察验证 HotConnect 不能只做一次插拔连续做多组测试才能确认配置的稳定性。测试方法如下在 Free Run 模式下以 2 到 5 秒的间隔连续插拔 EK1100 的网线十次以上每次插拔后观察剩余在线组的 IO 刷新和 WcState 状态。重点关注两类异常现象一是剩余组在拔线瞬间出现 IO 数据冻结但几秒后自动恢复这种情况说明主站驱动在切换拓扑时出现了抖动可以试着把周期时间调大一点来缓解二是插回网线后该组从站无法自动回到 OP 状态卡在 PREOP 或 SAFEOP需要手动重新激活这种情况通常是 EK1100 的固件对 HotConnect 的支持不完全需要升级。我实际测过 EK1100-0000-0017 版本在不同固件下的表现Rev 1017 以后的固件对热插拔的支持明显改善断线重连后能在两个周期内恢复 OP。如果你的模块固件太老即使配置正确也可能出现重连后无法自动恢复的情况。CX9010 上可以通过 PLC 程序读取 EtherCAT 设备信息来确认固件版本也可以通过 System Manager 的 Online 界面直接查看。总之固件版本和 HotConnect 的稳定性强相关这一点在批量部署时需要提前确认好所有 EK1100 的固件一致性。测试完成后再把其中一个 EK1100 从原来位置拔掉插到另一个端口上也就是改变拓扑位置重新扫描并配置 HotConnect 组。这样可以验证 Previous Port 路径的更新是否成功文化点说就是确认主站的路径表刷新没问题。5. 多组 HotConnect 同时离线时的优先级与重连顺序5.1 多分支挂载后如何避免 Index 冲突如果现场不止两组 EK1100而是通过 EK1122 扩展成四五个星型分支那么 HotConnect 组就会面临一个优先级问题主站在一个循环周期内只能有限次尝试重新扫描离线分支当多个分支同时离线时主站会按组的创建顺序一个一个探测而不是同时探测所有离线分支。所以多组 HotConnect 场景下需要显式控制每组 EK1100 的站地址Index不要重复否则主站可能在探测时访问到错误的物理从站。在 System Manager 中每组 EK1100 的 Index 是独立的右键点击设备属性可以看到。倍福默认自动分配站地址但如果之前做过多次扫描有可能出现两个 EK1100 拥有相同站地址的情况。手动修改站地址的方法右键 EK1100选择 Properties切到 EtherCAT 选项卡找到 Index 字段改成 1 到 65535 之间的一个唯一值。每组 EK1100 的 Index 都不相同即可。注意修改站地址后总线扫描的顺序也会跟着变这个对 HotConnect 没有影响只要组内地址不冲突就行。另外还要注意HotConnect 组内的从站是相对路径访问的也就是说主站是通过 EK1122 的端口号加组内的 Index 来定位的而不是整条总线的绝对地址。这样的话同样一个 Index 值出现在不同的星型端口下是可以的但为了排查方便我还是建议全总线保持统一编号。5.2 线型拓扑下 HotConnect 的 Previous Port 路径特殊性EtherCAT 的线型拓扑是最常见的连接方式EK1122 一个网口出来EK1100 串在一条链上后面的 EK1100 从前面的 X2 口往下接。这种拓扑下如果其中一台 EK1100 断开下游所有设备都会失联HotConnect 的配置逻辑和星型不同的是它不再只是隔离一个分支而是要从主站视角指定一条可跳过的子路径。在线型拓扑下需要把断线点之后的 EK1100 组加入 HotConnect。比如第一台 EK1100 挂三个 IO 模块第二台 EK1100 挂四个 IO 模块如果第二台可能被拔掉那么把第二台 EK1100 而不是第一台加入 HotConnect。误区在于有人把第一台也加入 HotConnect理由是担心第二台拔线时冲击第一台。实际上第一台不会受影响拔掉第二台时第一台的 X2 口收不到链路信号但它自己作为从站仍然可以正常处理主站发来的帧这是因为 EtherCAT 的帧是逐跳转发的X2 口没有下游回应只是少了转发动作并不会阻塞 X1 的帧接收。线型拓扑下 Previous Port 的值通常是类似 PortA:2:1 这样的格式表示主站通过 Port A 访问站地址为 2 的从站即第一台 EK1100再通过它的 X2 口往下到达站地址为 1 的从站即第二台 EK1100。这个路径上的中间从站必须保持在线否则 HotConnect 组同样无法访问。因此如果你有一个星型加线型的混合拓扑把最末端的线型设备加入 HotConnect 时要确保前端设备永远不掉线。5.3 热插拔后从站自动恢复 OP 状态的参数条件HotConnect 组从站断线重连后能否自动恢复到 OP 状态取决于两个关键参数一个是组内从站的 Startup 配置里是否有完整的 SM 和 FMMU 映射另一个是主站的 Restart 策略是否开启。在 TwinCAT 2 中右键 HotConnect 组进入属性设置切换到 Startup 选项卡确认勾选 Set all slaves to OP 之类的选项这样主站在检测到链路恢复后会主动把该组从站重新发到 OP 状态。另一个容易被忽视的参数是 EtherCAT Master 设备的 DC 设置。如果开机的 DC 同步在某个从站上启动失败主站可能会拒绝将该组恢复到 OP。CX9010 这种老设备的 WinCE 系统资源有限如果 DC 同步的补偿计算跟不上建议在 HotConnect 组内的从站上关闭 DC 功能只保留标准同步模式。关闭方法右键 EK1100进入 Advanced Settings找到 DC 选项卡取消勾选 Enable DC Synchronization。注意关闭 DC 会让该组从站的同步抖动增大对模拟量采样的应用有一定影响但对数字量 IO 基本无感。设置完这些参数后还需要在 System Manager 的 EtherCAT Master 设备属性里调整一下 Retry on Link Down 的选项默认是关闭的。把它打开并且把重试次数设置为 3 次。主站在链路恢复后会在接下来的三个周期内尝试重新扫描并激活该组从站如果超过三次失败则放弃并报错。这个参数直接决定了插回网线后多久能恢复正常刷新我实测过在重试次数为 3、周期 2ms 的条件下恢复时间大约在 10ms 以内。关于验证有一个更省事的方法在 PLC 里写一段程序读取 EtherCAT 设备状态字。每个 EK1100 的输入首字是状态字最低位为 1 表示从站处于 OP 状态。通过监视这个状态字的上升沿可以精确记录每次插拔后从站恢复到 OP 的时间差。用这个方法比对不同参数配置下的恢复速度比肉眼盯着 System Manager 的着色要可靠得多。最后提醒一个线型拓扑特有的情况如果断线位置发生在两台 EK1100 之间而不是在最后一台后面那么断点下游的所有从站都会进入 HotConnect 离线状态而断点上游的从站会继续正常通信。这个行为是符合预期的不要试图通过配置让下游组在断开后继续维持输出这是物理上不可能的只有带本地 IO 保持功能的模块才能做到。本文还有配套的精品资源点击获取