1、寻址模式
寻址模式就是在EtherCAT报文的地址数据写入不同的数据和CMD是相关的
模式 | 内容 | 描述 |
位置寻址 / 自增量寻址 | 位置 | 各从站位置递增,postion = 0 的从站被寻址 |
偏移地址 | ESC内部寄存器或内存地址 | |
节点寻址 / 固定地址寻址 | 地址 | 报文的站地址和设置的站地址一致时,从站被寻址 |
偏移地址 | ESC内部寄存器或内存地址 | |
广播 | 位置 | 每个从站对位置加1(从站不使用该位置) |
偏移地址 | ESC内部寄存器或内存地址 | |
逻辑寻址 | 地址 | 逻辑地址和从站配置的FMMU地址一致时,从站被寻址 |
EtherCAT 寻址模式一般介绍有3种模式,其实广播是一种特殊的寻址方式,可以访问到所有从站,广播一般用于EtherCAT初始化过程使用
自增量寻址: 只用在 EtherCAT 系统启动期间用于扫描现场总线。之后,位置寻址应该只用于检测新添加的从站。
固定地址寻址:用于对已识别的单个设备进行数据访问。
逻辑寻址: 所有设备读取和写入 EtherCAT 报文的相同地址范围。每个从站使用一个映射单元(FMMU,现场总线内存管理单元)将数据从逻辑过程数据映像映射到其本地地址和内存区域。主机在启动期间配置每个从机的 FMMU。
2、EtherCAT命令
Cmd | Abbreviation | Name | Description |
0 | NOP | No Operation | 空操作,从站不做任何处理 |
1 | APRD | Auto Increment Read | 报文经过一个从站时,对地址加1,当地址为0时,该从站把从站数据取出填入报文 |
2 | APWR | Auto Increment Write | 报文经过一个从站时,对地址加1,当地址为0时,该从站把数据取出写入从站 |
3 | APRW | Auto Increment Read Write | 报文经过一个从站时,对地址加1,当地址为0时,该从站读取内部数据填入报文,并把收到的报文数据写入到从站 |
4 | FPRD | Configured Address Read | 和从站地址一致时,从站读取内部的数据填入报文 |
5 | FPWR | Configured Address Write | 和从站地址一致时,从站读取报文数据写入从站 |
6 | FPRW | Configured Address Read Write | 和从站地址一致时,从站读取内部数据填入报文,并把收到的报文数据写入到从站 |
7 | BRD | Broadcast Read | 所有从站内部数据和报文数据逻辑或后写入报文,每个从站对地址加1 |
8 | BWR | Broadcast Write | 向所有从站写入数据,每个从站 对地址加1 |
9 | BRW | Broadcast Read Write | 所有从站内部数据和报文数据逻辑或后写入报文,同时把数据也写入从站,每个从站对地址加1(一般不使用该命令) |
10 | LRD | Logical Memory Read | 读取的逻辑地址和从站设置FMMU一致时,把从站数据写入报文 |
11 | LWR | Logical Memory Write | 写入的逻辑地址和从站设置FMMU一致时,把报文数据写入从站 |
12 | LRW | Logical Memory Read Write | 读取的逻辑地址和从站设置FMMU一致时,把从站数据写入报文 写入的逻辑地址和从站设置FMMU一致时,把报文数据写入从站 |
13 | ARMW | Auto Increment Read Multiple Write | 每个从站对地址加1,当地址为0时,该从站读取内部数据写入报文,其它从站把报文数据写入从站 |
14 | FRMW | Configured Read Multiple Write | 和从站地址一致时,从站读取内部数据写入报文,其它从站把报文数据写入从站 |
EtherCAT报文是由一个或多个命令组成,来获取或写入从站数据。
3、报文分析
主站启动时发送的第一个报文就是广播报文,报文内容是读取从站的AL status。
报文初始的slave addr为0,每经过一个从站就会加1,可以看出当前网络上有6个从站,WKC也为6
第二个报文使用自增量寻址,读取6个从站的数据
上图是使用固定地址寻址读取从站数据
逻辑寻址报文之前的文章已经介绍过来,这里就不再列出来了