EtherCat - wkc和sm

WKC

WKC码用来表示子报文的处理情况,主站接受到返回的数据帧后,检查子报文中的WKC,如果不等于预期值,则表示此子报文没有被正确处理。

命令名称WKC值
LRD(读)1
LWR(写)1
LRW(读写)—读成功1
LRW(读写)—写成功2
LRW(读写)—全部完成3

169

SyncManger

SyncManger用来保护DPROM部分免受同时访问,以保证数据的一致性。其拥有16个独立的SM通道。

EtherCAT使用同步管理器SM进行主站与从站间的数据交换,并产生改变通知中断,发送给双方。SM由主站配置,并且使用一个缓冲区用于数据交换。缓冲区的访问由SM硬件控制,而且必须首先访问起始地址,否则将拒绝访问。在起始地址被访问之后,整个缓冲区都可以进行访问,当访问到结束地址时,缓冲区状态将改变,产生中断。如果设置了看门狗,则看门狗也可以触发中断。

通信模式

SM支持两种通信模式

缓存模式

缓存模式支持任意时刻访问主站和从站上的通信缓冲区。接收方总可以读取发送方最新写的缓冲区数据,发送方总可以更新缓冲区的值。如果写缓冲区比读缓冲区速度快,旧数据将会丢失。缓冲模式通常用于PDO的TXPDO和RXPDO通信。

  • 3个同步管理器确保数据一致性
  • 总是有个空闲的缓存来写
  • 总是有持续的缓存来读
  • 用于过程数据通信

170

数据总时先写再读,并在缓冲区进行数据交换,可以看到读时读取缓冲区的最新值,而写也可以不停的更新缓冲区。

邮箱模式

由于使用了握手机制,在邮箱模式数据不会丢失,。主站和从站都可以访问缓冲区,但前提是另一方已经结束访问。首先,发送方写入缓冲区,然后写操作被锁定,直到接收方读取完数据。邮箱模式通常同于应用层的非周期性数据交换。

  • 1个缓存同步管理器支持握手
  • 数据溢出保护
  • 读方读之前写方必须写
  • 写方再次写之前读方必须读
  • 用于非进程数据通信

171

第一次读失败了,因为读之前必须写,所以WKC码也为0,随后进行写操作,成功之后再进行读操作成功。这样的模式数据不会丢失,双方都可以访问缓冲区,但不能同时进行,必须等一方结束另一方才能开始。

评论

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×