WKC工作计数器

基本说明

WKC(Working Counter,工作计数器)是EtherCAT协议中用于确保数据帧处理状态准确性的核心机制。每个EtherCAT数据帧(子报文)都包含一个WKC字段,该字段用于标识该帧是否已被从站设备成功处理。WKC的主要功能在于提供一种方法来验证从站是否已正确接收并处理了主站发送的数据。这对于保证实时通信的可靠性至关重要。WKC的基本工作流程包括以下几个步骤:

1、初始值设定:在主站发送数据帧之前,会为每个子报文设置一个初始的WKC值。ProCon设置的WKC初始值为0。

2、处理反馈:当从站接收到数据帧后,根据其内容执行相应的操作(如读取或写入数据)。如果操作成功完成,从站会修改WKC字段的值,以表明该帧已经被处理。

3、验证过程:数据帧返回主站时,主站检查WKC字段的值是否符合预期。如果匹配,则表示数据被正确处理;如果不匹配,则意味着存在错误或未处理的数据,这将触发报警或其他应对措施。

不同命令类型的子报文对WKC的预期修改值

命令名称 WKC预期值及说明
LRD(读) 1——从站成功读取数据后,WKC应变为1。
LWR(写) 1——从站成功写入数据后,WKC应变为2。
LRW(读写)——读成功 1——仅读操作成功时,WKC变为1。
LRW(读写)——写成功 2——仅写操作成功时,WKC变为2。
LRW(读写)——全部完成 3——读写均成功时,WKC变为3。

WKC在分帧传输中的关键作用

当数据量超过单帧最大传输单元(MTU,通常为1400字节)时,主站会将数据拆分为多个子帧(分帧)。例如,若数据需要4帧传输,则每个子帧的WKC需独立验证:

分帧场景:

  • 主站为每个子帧分配递增的WKC初始值(如0、1、2、3)。
  • 从站需按顺序处理所有子帧,并分别更新对应的WKC值。
  • 异常触发条件:

    若某子帧因处理延迟、通信中断或从站故障未被正确处理,其WKC值将与主站预期不符,导致整个数据包被标记为无效,触发报警。

    举例说明:

    EtherCAT通信中每帧数据最大长度通常是1500字节(以太网帧 MTU),而单个从站最多可支持约1400字节过程数据。当有多个从站(比如16个,每个占用约100字节)时,总共约1600字节, 这已经超过了一帧的容量限制。解决方案是:EtherCAT支持“分多帧”传输,也就是将这些过程数据分成多帧发送给多个从站,再由主站汇总处理。协议本身设计了帧分片机制, 确保即便超出一帧,也能支持较大数据量。


    补充说明

    WKC计数应用

    在多从站EtherCAT总线系统中,若发生WKC计数器丢失报警,丢失的WKC数值可用于辅助定位故障从站。例如:假设总线上正常连接了5个从站,且每个从站处理数据帧后均使WKC增加3(即预期WKC值为 15)。当通讯异常触发报警,主站报WKC丢失计数为6时,表明实际WKC值比预期值少了6。根据WKC在帧传输路径上依次递增的特性,可推断故障点可能位于链路上第4个及后续的从站位置(因为 6 ÷ 3 = 2,相当于丢失了 2 个从站的增量)。 此时,应优先检查第4个从站及其之后的物理连接、供电状态与配置。