![b14807a6c643869ae1195e0807f61424.png](https://i-blog.csdnimg.cn/blog_migrate/65ecf9a600808db3d2f1902bf34a8456.jpeg)
发两篇之前在今日头条上写的文章,内容都是现成的,增加点人气………………
……………………………………………………&&&我是分割线&&&………………………………………………
今天在这里讲一下EtherCAT报文寻址中的设备寻址。
EtherCAT通信由主站发送EtherCAT数据帧请求读写从主站设备的内部存储区来实现,EtherCAT报文使用多种寻址方式操作ESC内部存储区,实现多通信服务。
![fa8af258dc4e9602e8deaf6d9aee222e.png](https://i-blog.csdnimg.cn/blog_migrate/f7478beb435b9c91dd70a0b879b1877a.jpeg)
如上图1 EtherCAT网络寻址模式,先是网段寻址,然后是段内寻址。
一个EtherCAT网段相当于一个以太网设备,主站首先使用以太网数据帧头的MAC地址寻找到网段,然后使用EtherCAT子报文头中的32位地址寻址到段内设备。
段内寻址可以使用两种方式:设备寻址和逻辑寻址。设备寻址针对某一个从站进行读写操作。逻辑寻址面向过程数据,可以实现多播,同一个子报文可以读写多个从站设备。
今天在这里说一下设备寻址,不对逻辑寻址做说明。
在设备寻址时,每个报文只寻址唯一的一个从站设备,EtherCAT子报文头内的32位地址分为16位从站设备地址和16位从站设备内部物理存储空间地址,如下图2 EtherCAT设备寻址结构所示。16位从站设备地址可以寻址65535个从站设备,每个设备内最多可以有64KB的本地地址空间。
![384c004933b8187f4b26aaeddfc1c404.png](https://i-blog.csdnimg.cn/blog_migrate/6f6fb44ffa74a6393bcb804c01143ad7.jpeg)
从图1EtherCAT网络寻址模式可以看出,设备寻址有两种不同的设备寻址机制,顺序寻址和设置寻址。
顺序寻址:
顺序寻址,从字面意思我们就可以知道,是按照设备接入网段的顺序位置来确定从站地址的。在实际的应用中,用一个负数来表示每个从站在网段内按照设备接线顺序决定的位置,即从站1地址为0(0x0000),从站2地址为-1(0xFFFF),从站3地址为-2(0xFFFE)……,依次类推。为什么这样做呢?原因在于顺序寻址的自动增量寻址机制。顺序寻址子报文在经过每个从站设备时,其顺序地址加1;从站在接收到报文时,顺序地址为0的报文就是寻址到自己的报文。
举例说明:网段中有三个从站设备,其顺序寻址的地址分别为0、-1、-2。主站发出三个子报文分别寻址三个从站,其中的地址分别时0、-1、-2。数据帧到达从站1时,从站1检测到子报文1中的地址为0,从而得知子报文1就是寻址到自己的报文。数据帧经过从站1后,所有的顺序地址都增加1,成为1、0、-1。到达从站2时,从站2发现子报文2中的顺序地址为0,即为寻址到自己的报文。数据帧经过从站2后,也将所有子报文的顺序地址加1,变为2、1、0。依次类推,数据帧到达从站3时,子报文3中的顺序地址为0,即为寻址从站3的报文。经过从站3处理后,即返回主站的地址。
在实际应用中,顺序寻址主要用于启动阶段,主站配置站点地址给各个从站。此后,可以使用与物理位置无关的站点地址来寻址从站。使用顺序寻址机制能自动为从站设定地址,国内许多EtherCAT I/O扩展模块,伺服厂家采用此种寻址方式。
设置寻址
设置寻址时,从站的地址与其在网段内的连接顺序无关。其地址可以由主站在数据链路启动阶段配置给从站,也可以由从站在上电初始化的时候从自身的配置数据存储区装载,然后由主站在链路启动阶段使用顺序寻址方式读取各个从站的设置地址,并在后续运行中使用。国内许多伺服厂家支持设置寻址方式,从站在上电初始化的时候从自身的配置数据存储区装载,然后由主站在链路启动阶段使用顺序寻址方式读取各个从站的设置地址。