EtherCat:打通EtherCat奇经八脉(一)

一、EtherCat背景介绍

    EtherCAT是一种用于实时以太网通信的现场总线协议。它由德国Beckhoff公司于2003年开发,并在2014年成为国际电机工程师协会(IEC)的国际标准(IEC61158-12)。

    EtherCAT的设计目标是实现高性能的实时通信,同时保持低成本和简单的网络结构。它通过在数据帧中实时传输和处理数据,从而实现低延迟和高带宽。这使得EtherCAT适用于需要快速响应和高精度控制的应用,如工业自动化、机器人控制和测试测量。

    EtherCAT采用主从式结构,其中一个主站(Master)负责控制和同步网络中的从站(Slave)。主站发送控制命令和数据,从站接收并执行这些命令。EtherCAT网络可以支持多达1000个从站,每个从站都有自己的网络地址和唯一的标识符。

    通过EtherCAT,从站可以实时传输输入和输出信号,如传感器数据、执行器状态和控制命令。这使得系统能够实现高度的分布和灵活性,从而适应各种应用需求。

    EtherCAT还支持多种拓扑结构,包括线性、树形和环形结构。这使得网络的构建更加灵活,并且可以根据应用的要求进行优化。

    总的来说,EtherCAT是一种高性能实时以太网通信协议,具有低成本、简单的网络结构和灵活性的特点。它在工业自动化和控制领域得到广泛应用,并且在多个国际标准中被采用。

二、EtherCat协议介绍

2.1 EtherCAT链路层

    EtherCAT从站设备在报文经过其节点时读取相应的数据报文,同样输入数据也是在报文经过时插入到报文中。整个过程报文只有几纳秒的时间延迟,实时性获得极大提高。

    EtherCAT作为一种工业以太网总线,充分利用了以太网的全双工特性。使用主从通信模式,主站发送报文给从站,从站从中读取数据或将数据插入至从站。

  • 主站可使用标准网卡实现
  • 从站选用特定的·EtherCAT从站控制器ESC(EtherCAT Slave Controller)或者FPGA实现,

    主要完成通信和控制应用两部分功能,EtherCAT物理层选用标准以太网物理层器件。

    从站能将收到的报文直接处理,并读取或插入有关的数据,再将报文发送给下一个EtherCAT从站。最末尾的EtherCAT从站返回处理完全的报文,然后由第一个从站发送给主站。整个通信过程充运行于全双工模式下,TX线发出的报文又通过RX线返回给主站:
在这里插入图片描述
    对于开发者而言,链路层的原理只需要知道EtherCAT的模型概念:报文是由主站发出,然后像一条列车一样发往各个从站,每个从站认为是串联起来的,会按照目前串联的位置顺序对数据进行发送,就像是列车的轨道一样;每到一站,数据就像货物一样可以以极快的速度进行上下车,到达最后一站就开始原路返回(在网线上看就是在同一根网线里的TXRX,其中TX就是列车出发的方向,RX就是返程的方向。每个从设备一般有两个以太网口,一个口对接上一个从设备,另一个对接下一个从设备,而对应连接的两条网线在本地被“连接”成了一条网线,所以整个网络的所有网线可以认为是同一根网线。),数据每经过一个往返就完成了一次通信,主站就是列车的起始站,所有通信都是由主站发起并把控的。

2.2 实时性

  • 数据包刷新时间的计算
    数据包中所有从站的 Process Data数据 决定了数据包的长度。

    一个Ethernet thernet数据包最小84 字节,不足 84 字节会补齐84 字节。由于EtherCAT Frame中有一些公共开销, 84 字节的数据包最多含18字节的过程数据。考虑到数据包必须经过每个从站两次才能回到主站,所数据包以固定的波特率100 Mbps在网络上传输两次的时间 这就是它的总线刷新时间 。

1.基于这个原则,以包含 1000路开关量信号的数据包为例,计算过程如下:
过程数据长度:1000/8=125Bytes
数据包长度:84-18+125=191Bytes=191*8 Bit= 1528 Bit
总线刷新时间:(1528Bit/100,000,000 Bps)*2=15.28us * 2 = 30.56us

注意,通常的数字量模块, 都是单纯的输出或者输入模块,而不是混合模块。所以 1000 个数字量信号, Frame 中就会分配 125 字节。

2.再以包含100个EtherCAT伺服驱动器 过程数据的EtherCAT数据包为例,假如每个伺服的过程数据只包括控制字(2字节)、状态字(2字节)、目标位置(4字节)、实际位置(4字节),其总线刷新时间的计算过程如下:

过程数据长度:100*(2+4)=600 Byte。
数据包长度:84-18+600=1266 Byte =671*8 Bit =5328 Bit
总线刷新时间:(5328 Bit/100,000,000 Bps) *2=100.656µs

    注意,Frame中只为一个伺服分配了6个字节,这是因为根据Beckhoff公司的控制软件TwinCAT中关于EtherCAT的默认设置是从站的Input和Output使用同一数据段,所以数据包进入伺服驱动器时该数据段存放的是控制字和目标位置,而出来时则存放伺服的状态字和实际位置。

    以上两个数据30.56µs和101.28 µs就是EtherCAT官方宣传资料中,刷新1000个数字量需要30µs,刷新100个伺服轴只需要100µs的数据由来。实际上,根据从站的类型、是否包含分布时钟、是否启用时钟同步、时钟同步的参数设置不同,在数据包中有可能还会增加8-12字节用于传输同步时钟值,以及相应的为每个从站增加一个Bit的标记等等,会增加几个微秒的刷新时间,暂且忽略不计。

    以上计算只是数据包传输需要的理论时间,实际上,数据包经过每个从站会产生短暂的硬件延时。100M超五类网线接口的从站延时约1µs,而EBus的IO模块类从站延时约0.3µs,在毫秒级以下的控制任务中如果从站数量较多,这个时间也相当可观,计算刷新周期时应该考虑进去。

2.3 EtherCAT网络拓扑

所有数据帧在网络中以一种“逻辑闭环”的方式传播,与网络的硬件拓朴无关,无论它是链式、菊花链、星形还是树形拓朴。
在这里插入图片描述

2.3.1 线型拓扑

任意数目的设备成线型连接,最多65535个设备
在这里插入图片描述

2.3.2 数据处理链型拓扑

在这里插入图片描述

2.3.3 带有分支线的数据处理链型拓扑

在这里插入图片描述

2.3.4 树型拓扑

在这里插入图片描述

2.3.5 实时星型拓扑

在这里插入图片描述

2.3.5 冗余线缆

在这里插入图片描述
选择冗余电缆可以满足快速增长的系统可靠性需求,以保证设备更换时不会导致网络瘫痪。可以很经济地增加冗余特性,仅需在主站设备端增加使用一个标准的以太网端口(无需专用网卡或接口),并将单一的电缆从总线型拓扑结构转变为环型拓扑结构即可(见图7)。当设备或电缆发生故障时,也仅需一个周期即可完成切换。因此,即使是针对运动控制要求的应用,电缆出现故障时也不会有任何问题。

EtherCAT也支持热备份的主站冗余。由于在环路中断时EtherCAT从站控制器芯片将立刻自动返回数据帧,一个设备的失败不会导致整个网络的瘫痪。例如,拖链设备可以配置为分支拓扑以防线缆断开。

2.4 ISO/OSI 参考模型 : 三层网络

在这里插入图片描述
EtherCAT仅使用了物理层、链路层、应用层三层协议,与多数传统的现场总线相同,但相比于其它实时以太网协议,如PROFINETEtherNet/IP等,其协议栈更加精简。这也是EtherCAT协议的实时性优越于其它实时以太网协议的重要原因之一。

在这里插入图片描述

  • CoE(Can over EtherCAT)
  • PDO(Process Data Object 过程数据对象)
  • SDO(Service Data Object 服务数据对象)
  • PDI(Process Data Interface 过程数据接口)(uC, SSI, I/O)
  • ESM(EtherCAT State Machine)
  • ESI(EtherCAT Slave Information) (XML device description)
  • ENI(EtherCAT Network Information)
  • CTT(Conformance Test Tool 一致性测试工具)
  • SM(SyncManagers 同步管理器)
  • MDP(modular device description 模块化设备描述 )

2.5 EtherCAT 协议格式

2.5.1 EtherCAT数据帧格式

EtherCAT数据直接嵌入在以太网数据帧中进行传输,只是采用了一种特殊的帧类型,该类型为Ox88A4EtherCAT数据帧结构如图所示:

在这里插入图片描述

  • EtherCAT数据包由数据头和数据实体两部分组成,EtherCAT数据头包含2个字节,每个数据包里面可以只包含一个EtherCAT子报文,也可以包含多个子报文;
  • 一个EtherCAT子报文对应着一个从站,因此一个EtherCAT数据包可以操作多个EtherCAT从站,相应的数据长度在44-1498字节之间。
2.5.2 EtherCAT数据帧结构定义:

在这里插入图片描述
其实EtherCAT也还是能支持嵌入了UDP/IP格式的数据帧格式的(只是EtherCAT数据段会让出28个字节长度给UDP/IP段使用),如图:
在这里插入图片描述

2.5.3 EtherCAT子报文结构定义:

在这里插入图片描述

2.5.4 地址区字段

EtherCAT寻址:
在这里插入图片描述
EtherCAT 通信的实现是通过由主站发送至从站的 EtherCAT 数据帧来完成对从站设备内部存储区的读写操作, EtherCAT 报文对 ESC 内部存储区有多种寻址操作方式,从而可以实现多种通信服务。EtherCAT 段内寻址有设备寻址逻辑寻址两种方式。
具备全部寻址方式的从站称为完整性从站,只具备部分寻址方式的从站则称为基本从站.

2.5.4.1 设备寻址
  • 设备寻址是面对一个从站进行读写操作。
  • 设备寻址可以细分为 顺序寻址设置寻址

顺序寻址:就是按照网络连接的顺序,从主站往后数的从站编号,按照负数递减寻址对应的从站,比如0为第一个从站,-1为第二个从站……依次递推。

设置寻址:就是给每个从设备分配一个“从站地址”,通过找到对应的从站地址来确定通信的从站,也是传统主从网络中常见的形式。从站地址可以在ESC外挂的EEPROM中预先设置好,也可以是通信过程中进行修改。

由于这两种寻址方式只是固定地址与位置顺序的区别,其他的方面几乎一致,所以也统称为“设备寻址”,设备寻址的指令对子报文格式中的“地址区”的使用如下图:
在这里插入图片描述

2.5.4.2 逻辑寻址
  • 逻辑寻址是面向过程的数据操作, 实现同一报文读写多个从站设备的多播功能。
    逻辑寻址是另一种更加灵活的寻址方式,基本概念主要需要了解以下几点:
  • 1、我们从前文知道了每个从站的ESC芯片中都有一个16位长度的物理空间,其实主站也有自己的空间,不过是32位长度的,4G大小的“数据逻辑地址”空间。
  • 2、逻辑寻址就是把主站的“数据逻辑地址”与从站的“物理空间”映射起来,一旦映射好了之后,主站访问从站数据就像是访问自己的内部空间一样,只需要发出指定要读写的“数据逻辑地址”即可达成目的。所以使用逻辑寻址的子报文格式中的“地址区”的使用就不是前文的设备寻址的格式了,而是一整段32位地址区来表示主站要访问的“数据逻辑地址”。
  • 3、主站的“数据逻辑地址”与从站ESC的“物理空间”映射是需要在使用逻辑寻址指令通信之前就映射好,进行这个映射功能就是由从站的ESC芯片内的FMMU完成的。

由于FMMUESC中的一个功能模块,在ESC中有专门配置FMMU的相关寄存器,寄存器的具体地址和FMMU的个数可以查看具体使用的ESC芯片手册,但是寄存器的内容都是一样的,如图是一个映射的例子:
在这里插入图片描述
在这里插入图片描述
如图中的例子,映射一旦分配好了之后,主站就可以在子报文中使用逻辑寻址的相关指令,访问“数据逻辑地址”0x00014711时,就可以操作配置了这个FMMU的从站的0x0F01的物理地址的数据了。这里可以看出逻辑寻址有以下几个特点:

  • 1、逻辑寻址完全不关心从站的地址,只关心有配置了FMMU的从站是否映射了当前要访问的逻辑地址。
  • 2、多个从站都可以配置FMMU映射到主站的同一片逻辑地址,这种情况下主站对一个逻辑地址的操作就可以同时对多个映射的从站进行操作。
2.5.5 命令字段

不同命令 通过信息传输系统对所有存取方法最优化 的读写。
在这里插入图片描述
在这里插入图片描述

2.5.6 WKC(Working Counter)字段
  • 如果成功寻址了EtherCAT设备,并且成功执行了读操作,写操作或读/写操作,则工作计数器将递增
  • 可以为每个数据报分配一个工作计数器值,该值是根据预期报文通过所有设备数来设置的。
  • 通过将工作计数器的预期值与所有设备通过后的实际值进行比较,主站可以检查EtherCAT数据报是否已成功处理。
    在这里插入图片描述
2.5.7 同步管理器

在前文中我们已经了解到了EtherCAT的链路层通信机制,也就是主站是怎么与从站ESC芯片的物理空间进行数据交互的,那么很容易联想到一个问题:ESC的物理空间既可以被主站操作,也可以被从站的MCU操作,怎么保证这两者的操作的正确性,以及通知对方另一方有最新的操作需要处理?

这就是ESC芯片中的一个功能模块:存储同步管理(SM)的功能需要解决的了,SM用于阻止主站和从站MCU同时访问 ESC存储区,确保数据的一致性,以及通知MCU数据到达等功能。也就是说从站MCU与主站之间通信需要指定ESC的物理空间作为缓存,那么这片缓存必然要被SM进行管理才可以合理的使用,SM管理的区域就是从站MCU应用层与主站之间的通信交互通道。

SM既然是ESC芯片内的一个功能块,也和FMMU一样,有专门的寄存器进行配置,具体可以查看ESC芯片手册,寄存器会有以下功能:

在这里插入图片描述
这里不对SM寄存器多做介绍,具体内容还是查看芯片手册,但是需要说明的是SM中可以配置它所管理的物理地址,可以配合FMMU共同指向某片物理空间,使这片空间既可以被逻辑寻址所访问,也同时受到SM的管理:

  • 当SM配合FMMU共同指向一片物理空间的情况,就是用来传输“周期性过程数据”的,也就是“PDO数据”,此时SM中的运行模式配置为3个缓存区以保证数据的一致性。从站MCU通过分别使用SM2和SM3两个通道来接收和发送主站的数据所指向的物理空间由于有FMMU映射,可以使用逻辑寻址进行访问。
  • 当SM不配合FMMU共同来管理一片物理空间时,就是用来传输“非周期性数据”的,也就是“邮箱数据”,此时SM中的运行模式配置为1个缓存区,而从站MCU通过分别使用SM0和SM1两个通道来接收和发送主站的数据以避免读写冲突。这一片物理空间由于没有FMMU管理,所以不能使用逻辑寻址访问,而是通过设置寻址进行访问的。
    这里的“PDO数据”、“邮箱数据”就是ESC要与从站MCU交互的数据了,这一部分放到EtherCAT应用层进行描述。

2.6 EtherCAT设备寻址方式

在这里插入图片描述
在这里插入图片描述
在EtherCAT的每个子报文中,有32位空间用于对EtherCAT设备进行寻址。寻址方式有四种,分别为:
在这里插入图片描述

2.6.1 位置寻址

位置寻址方式是根据从站的连接顺序,即物理位置实现的。在报文头的32bit地址中,前16bit的Position用于存放地址值,Offset用于存放ESC逻辑寄存器或者内存地址。报文每经过一个从站设备,其Position中的地址值加1。当一个从站接收到EtherCAT报文后,如果报文中的地址值为0,则该报文就是这个从站要要接收的报文。
在这里插入图片描述
在上图中,如果需要总线上第8个设备响应报文,则主站需要将报文的地址设为0xFFF9,当报文经过第1个从站时,地址为0xFFF9,不等于0,第1个从站不会响应报文,报文地址加1,变为0xFFFA。当报文经过第2个从站时,地址为0XFFFA,不等于0,第2个从站不会响应该报文,报文地址加1,变为0xFFFB。以此类推,当报文到达第8个从站时,此时地址值为0x0000,当前从站将接收报文。

位置寻址(Position Address / Auto Increment Address)只应在启动EtherCAT系统时用于扫描现场总线,以后只能偶尔使用以检测新连接的从站。 如果由热连接或链接问题导致循环暂时关闭,使用位置寻址可能会出现问题。 在这种情况下位置地址被移位,并且,如错误寄存器的值到设备的映射变得不可能,因此不能定位故障链路。

2.6.2 节点寻址
  • 在启动阶段,主站通常采用位置寻址方式对总线上的从站进行寻址,之后采用节点寻址方式。
  • 在报文中,报文头的32bit地址,前16bit的Address用于存放站点地址值,Offset用于存放ESC逻辑寄存器或者内存地址。
  • 在每个从站中站点地址保存在寄存器(0x0010) 中。
  • 顺序寻址(设备寻址的一种,前面 2.5.4 我们已经介绍过)时,主站可以对每个从站的站点地址进行设置,也可以直接读取每个从站的的站点地址。
    节点寻址方式的优点是,每个从站的地址与其在总线中的位置无关。在添加/删除从站,甚至是改变总线拓扑结构的时候都能对从站进行正确的访问。
    在这里插入图片描述

上图是节点寻址方式的示意图。8个从站的地址与其在总线中的位置并没有关系。出于直观的目的,4台伺服驱动器的地址被设置为连续的,4个I/O模块的地址被设置为连续的,在实际中并没有这样的要求。

EtherCAT从站设备可以有两个配置的站点地址,一个由主站分配(Configured Station Address),另一个存储在SII EEPROM,并且可以由从站应用程序更改(Configured Station Alias address)。

配置站点地址由主站在启动期间分配,并且不能由EtherCAT从站更改。 配置站别名地址存储在SIIEEPROM中,可由EtherCAT从站更改。 配置的站别名必须由主站启用。 如果节点地址(NodeAddress)与配置的站地址或配置的站点别名匹配,将执行相应的命令操作。

2.6.3 逻辑寻址

EtherCAT的第三种寻址方式是逻辑寻址,首先需要了解的是FMMU。

FMMU(Fieldbus Memory Management Units)

FMMU称为总线内存管理单元,它存在与从站芯片ESC中,负责对从站物理地址与主站逻辑地址进行翻译并建立映射关系。主站在总线启动过程中对FMMU进行配置,内容包括:

  • 逻辑地址的起始地址
  • 数据长度(按跨字节数计算)
  • 逻辑地址的起始位
  • 逻辑地址的终止位
  • 从站物理地址的起始地址
  • 从站物理地址的起始位
  • 操作类型(只读、只写、读写)
  • 使能

在报文中,使用报文头的32bit地址的全部,用来表示大小为4GB的逻辑地址空间。
在这里插入图片描述
以上图为例,FMMU将逻辑地址中0x00012345第2位开始的,到0x00012346以第2位终止的区域,与从站物理地址中0x0010第0位开始的区域进行映射。

当从站收到来自主站的报文时,会检查报文中的地址是否与FMMU中的地址相符,如果有,将根据操作类型进行读写操作。
在这里插入图片描述
这种寻址方式的优点是,在主站想对每个从站进行访问的时候,只需要对逻辑空间中的地址进行操作,而无须关心该地址对应的从站物理地址,减轻了主站的负担。

所有器件读取和写入相同的逻辑4 GB地址空间(EtherCAT数据报中的32位地址字段)。 从器件使用映射单元(FMMU,现场总线存储器管理单元)将数据从逻辑过程数据映像映射到其本地地址空间。 在启动期间,主器件配置每个从器件的FMMU。 从站使用FMMU的配置信息知道逻辑过程数据映像的哪些部分必须映射到哪个本地地址空间。

逻辑寻址支持逐位映射。 逻辑寻址是一种强大的机制,可以减少过程数据通信的开销,因此通常用于访问过程数据。

当从站设备收到的EtherCAT报文带有逻辑寻址标志位时,从站设备将检查自身是否有相应的FMMU单位地址与之匹配。

2.6.4 Broadcast寻址

每个EtherCAT从站都被寻址。
使用广播寻址。 如果从站的预期是相同的,用于所有从站的初始化和检查所有从站的状态。
每个从器件具有一个16位Local地址空间:

  • 地址范围0x0000:0x0FFF专用于EtherCAT寄存器,
  • 地址范围0x1000:0xFFFF用作过程数据RAM
    通过EtherCAT数据报的偏移字段寻址,过程数据。

三、 EtherCAT应用层

在这里插入图片描述
在结合了前文的链路层讲解之后,配合这张图进行进行理解,会有更直观的感受,图中的DL层就是前面章节的内容了,前文最后提到了邮箱数据和过程数据,就是要提交给应用层的内容了,所以我们可以看到图中的AL层就是MCU内部要处理的应用层了。

EtherCAT应用层协议支持VOE\FOE\EOE\COE等,本文的应用层主要介绍的是COE,也就是CanOpen Over EtherCAT,顾名思义也就是把CanOpen协议通过EtherCAT来实现,CanOpen协议在本文中不做过多的介绍,可以查看CanOpen相关的资料进行了解,在了解COE这部分内容时,要建立在对CanOpen协议了解的基础上进行,本文认为读者已经了解了CanOpen的对象字典、SDOPDO的前提下进行说明。

3.1 CanOpen与COE

在看到COE这个词的时候,最容易想到的一个问题就是:原本CanOpen是基于CAN通信方式来设计并实现的,与EtherCAT的通信链路不一样啊,CAN报文含有的ID和8字节数据段,也不是像EtherCAT的列车式的数据运输方式,那么是怎么移植到EtherCAT上来进行通信的呢?

其实就是EtherCAT把CAN通信中的ID部分做了一些变化,这里就以CanOpen中的两个重要通信数据:SDOPDO进行描述。

3.1.1 COE中实现SDO

对于SDO数据而言:COE中把CAN ID的概念变成一个“类型”参数与CAN的数据段8字节内容全部放到EtherCAT的子报文格式中的“数据区”里,作为一个“邮箱数据”进行发送。邮箱具有专门的格式,如图所示:
在这里插入图片描述
邮箱数据头说明:
在这里插入图片描述
邮箱协议中的“命令”格式如下图:
在这里插入图片描述
邮箱协议的“命令”说明:
在这里插入图片描述

由以上内容,我们看到邮箱的数据格式里,在“邮箱数据头”和“命令”中各有一个“类型”,一个是用来指示使用的应用层协议类型的,一个是用来指示这段数据是应用层协议中的什么服务类型的。图中展示的就是COE协议类型的服务类型

这里我们看到了熟悉的名字:SDO请求和响应(这就替代了原本CAN通信中的SDO数据的ID),而紧随其后的“命令相关数据”就是原本CAN通信中的8字节数据部分。格式如下图所示:
在这里插入图片描述
关于标准CanOpenSDO协议内容这里不做介绍,在上图可以看到SDO数据后面还有一段“可选扩展数据”,COE相当于对SDO数据做了改良:在标准CanOpen协议的寄存上,可以使一个SDO数据发送更多的数据量,而不是仅限于原本使用CAN通信只能发送4个字节的数据了。

MCU对邮箱数据的收发接口可以看第第1.2.2章,SM的介绍。

3.1.2 COE中实现PDO

从上文的SDO介绍中,我们看到COE协议类型的服务类型里除了有SDO类型,还有PDO类型,那么PDO是否就如同SDO的实现那样,仅仅只是更改这个类型参数,并解析不同的数据格式就可以实现了呢?

这是初学者容易混淆的一个地方,也是COE对于PDO数据定义上我认为比较乱的一个问题,这个问题的答案是否定的;其实,邮箱协议格式里的COE服务类型的PDO类型只是一个预留,并不使用。可以说邮箱只是用来实现SDO数据传输的,PDO数据传输与邮箱数据并没有关联。

现在回过头看上文对SM的介绍。有提到SM配合FMMU的逻辑寻址通信方式,这才是实现COE的PDO数据传输的方式。在EtherCAT描述总图,里面也有显示PDO数据的传输方法。

其实PDO数据采用这个方式也是符合了CanOpen原本的设计理念,PDO的数据报文是为了快速传输对象字典的内容,数据段里全是实际数据,不用解析报文协议格式,如果COE中使用邮箱来进行传输其实是违背这一原则的。

PDO数据格式如下图所示:
在这里插入图片描述

在这里插入图片描述
那么很显然,COE中的PDO报文也同样要由映射参数进行映射,如上图所示的例子中,某一个子报文发送的内容是PDO数据,这个子报文通过逻辑寻址找到与逻辑地址映射匹配的从站ESC,并把数据传入FMMU映射的DPRAM物理空间中,这段空间同时也被SM2所管理,于是SM2通知从站MCU从ESC中取走PDO数据。

MCU拿到这段数据之后会根据对象字典进行查找,这里要重点介绍与CanOpen映射逻辑的区别:

1、CanOpen中PDO具有两个参数:“通信参数”和“映射参数”,在COE中不会使用CanOpen中定义的“通信参数”,COE在对象字典中占用了其他的索引定义了专用的参数进行替代,如图所示:
在这里插入图片描述
其中的0x1C00的子索引1~ 32 定义SM0 ~ 31 这32个通道的通信数据类型,如果定义的是过程数据类型,0x1C100x1C2F就会生效,用来定义SM0 ~31所使用的CanOpen的映射参数(RPDO映射参数:索引=1600 ~ 17ffh,TPDO映射参数:索引=1A00~1Bffh)。

2、由于COE在一条报文中可以包含多个PDO,相当于是CanOpen的多个PDO数据合并到一起发送了,所以需要做两次映射,第一次是根据获取数据使用的SM(n)通道通过0x1C10+(n)对象字典中的参数确认这条COE报文中有几个PDO,以及每个PDO映射的CanOpen的映射参数,第二次就是根据CanOpen的映射参数进行PDO映射,确认具体的对象内容。

more


参考:
1、https://zhuanlan.zhihu.com/p/406428272
2、关于EtherCAT学习笔记 - 大鹏工控智能 | 大鹏工控智能
3、EtherCAT (学习笔记)-CSDN博客

EtherCat:打通EtherCat奇经八脉(一)-CSDN博客

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
EtherCATEthernet for Control Automation Technology)是一种基于以太网的开发构架的实时工业现场总线通讯协议,它于2003年被引入市场,于2007年成为国际标准,并于2014年成为中国国家标准。EtherCAT的出现为系统的实时性能和拓扑的灵活性树立了新的标准。 1)EtherCAT是最快的工业以太网技术之一,同时它提供纳秒级精确同步。相对于设置了相同循环时间的其他总线系统,EtherCAT系统结构通常能减少25%-30%的CPU负载。 2)EtherCAT在网络拓扑结构方面没有任何限制,最多65535个节点可以组成线型、总线型、树型、星型或者任意组合的拓扑结构。 3)相对于传统的现场总线系统,EtherCAT节点地址可被自动设置,无需网络调试,集成的诊断信息可以精确定位到错误。同时无需配置交换机,无需处理复杂的MAC或者IP地址。 4)EtherCAT主站设备无需特殊插卡,从站设备使用可以由多个供应商提供的高集成度、低成本的芯片。 5)利用分布时钟的精确校准EtherCAT提供了有效的同步解决方案,在EtherCAT中,数据交换完全基于纯粹的硬件设备。由于通讯利用了逻辑环网结构和全双工快速以太网而又有实际环网结构,“主站时钟”可以简单而精确地确定对每个“从站时钟”的运行补偿,反之亦然。分布时钟基于该值进行调整,这意味着它可以在网络范围内提供信号抖动很小、非常精确的时钟。 总体来说EtherCAT具有高性能、拓扑结构灵活、应用容易、低成本、高精度设备同步、可选线缆冗余和功能性安全协议、热插拔等特点。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值