EtherCAT工业以太网应用技术
上QQ阅读APP看书,第一时间看更新

2.4 EtherCAT 数据链路层

2.4.1 EtherCAT数据链路层服务和概念

1.工作原理

媒体访问控制采用主站/从站原则,主站节点(通常是控制系统)发送以太网帧给从站节点,从站节点从这些帧中提取和插入数据。

从以太网的角度看,一个EtherCAT网段就是一个单个的以太网设备,它接收和发送标准的ISO/IEC8802-3 以太网帧。然而这种以太网设备并不局限于带有微处理器的单个以太网控制器,也可以包含大量的EtherCAT从站设备。当以太网帧传到这些设备的时候,它们处理传入的以太网帧,并在把帧传到下一个从站设备之前,从中读取数据和/或插入自己的数据。网段内的最后一个从站设备沿着设备链反向发送已完全处理的以太网帧,并通过第一个从站设备把收集的信息返回给主站,主站接收信息作为以太网响应帧。

此方法采用以太网全双工的功能:双方向的通信都是独立执行的,在主站发送的路径上每个从站读和写,并且在返回主站路径上以太网帧再通过各中间从站时,仅执行发送到接收的时间的测量。

主站设备和由一个或几个从站设备组成的EtherCAT网段间的全双工通信可不通过交换机建立。

2.拓扑结构

通信系统的拓扑结构对自动化的成功应用是一个非常重要的因素。拓扑结构对布线、诊断功能、冗余选项和热插拔功能都有很大影响。

以太网常用的星形拓扑结构会导致布线所需人力以及基础设施成本的增加。所以,尤其是对自动化应用,往往优先考虑总线型或树形拓扑结构。

从站节点的排列是一个开环型总线,在开环的一端,主站设备可以直接发送帧,或通过以太网交换机发送;另一端就可以接收环上每个从站处理好的帧。每一个以太网帧从第一个节点传递给下一个节点,然后按顺序传给后续节点。最后一个节点使用全双工以太网能力将以太网帧返回到主站,由此产生的拓扑结构是一个物理线型。

端口n(n不为0)收到的以太网帧被转发到端口n+1,如果没有端口n+1,以太网帧则被转发到端口0。如果没有设备连接或者端口被主站关闭,那么发送到该端口的请求将被处理,就好像相同的数据被该端口接收一样(即环路闭合)。

3.数据链路层

单个以太网帧可以携带多个被无间隙地打包到以太网帧中的EtherCATDLPDU。这些DLPDU可以分别寻址多个节点。以太网帧以最后一个EtherCATDLPDU 结束,除非当该帧小于64个八位位组时,以太网帧将被填充至64个八位位组。

与从每个从站节点单独发送/接收以太网帧相比,这种打包方式提高了以太网带宽利用率。然而,对于仅有两比特用户数据的双通道数字输入节点,单个EtherCATDLPDU的开销依然可能过多。

因此,从站节点也可支持逻辑地址映射。过程数据可以被插入到逻辑地址空间的任何地方。如果EtherCATDLPDU包含的读/写服务针对位于相应逻辑地址的过程映像区,而不是针对某个特定节点,那么从站节点在过程数据的相应位置插入或提取数据,包含单个Ether-CATDLPDU的以太网帧内的逻辑数据映射如图2-10所示。

图2-10 包含单个EtherCATDLPDU的以太网帧内的逻辑数据映射

检测到地址与过程映像相匹配的每个节点插入其数据,因此,用单个EtherCATDLPDU可以实现多个节点同时寻址。这样,通过单个EtherCATDLPDU,主站可以完成一个完整的分类逻辑过程映像,与从站设备的物理布线顺序无关。

主站不再需要额外的映射,所以过程数据可以直接传输到一个或多个不同的控制任务中。每个任务可以创建自己的过程映像并在其时间范围(Timeframe)内交换过程映像。节点的物理顺序完全是任意的,仅和首次初始化阶段相关。

逻辑地址空间大小为232个八位位组(4GB)。EtherCAT工业以太网可以被认为是一个用于自动化系统的串行背板,并使其在大的和非常小的自动化设备下都能连接到分布式进程数据。使用标准的以太网控制器和标准的以太网电缆,大量的I/O通道可与自动化设备连接,因此EtherCAT具有高带宽,低延迟和良好的有效可用数据传输率。

4.错误检测

EtherCAT主站与从站节点(DLE)检查以太网帧校验序列(FCS)来确定一个帧是否被正确接收。由于一个或几个从站会在数据传输过程中修改以太网帧,FCS会在每个节点接收时被检查,并在转发过程中重新计算。如果检测到校验和错误,从站不进行FCS修复,而是通过增加错误计数器来通知主站,以确保在一个开环拓扑里能够精准地确定单一错误源的位置。

当向EtherCATDLPDU读或写数据时,被寻址的从站增加位于DLPDU尾部的工作计数器(WKC)。仅转发DLPDU但不从DLPDU提取或插入信息的从站不改变工作计数器。通过比较WKC与期望访问的从站节点数目,主站能检测出期望数目的节点是否已经处理过相应的DLPDU。

5.参数和过程数据处理

在数据传输特性方面,工业通信系统需要满足不同的需求。在对时序要求相对不关键且传输是由控制系统触发的情况下,参数数据可以大批量非周期性传送,在事件驱动模式中,诊断数据也是非周期性传送,但时序要求更为苛刻,传输通常由外围设备触发。

另一方面,过程数据通常以不同的周期时间循环传输。在过程数据通信中时序要求是最严格的。GB/T31230支持各种不同的服务和协议以满足这些不同的要求。

6.节点参考模型

(1)到OSI基本参考模型的映射

EtherCAT服务描述使用GB/T9387.1(OSI)的原则、方法和模型。OSI模型为通信标准提供了一个分层的方法,即层可以独立开发和修改。EtherCAT 规范定义了从整个OSI通信协议栈的顶层到底层的功能。OSI中间层(即3~6层)的功能并入EtherCAT数据链路层或其DL用户。

EtherCAT数据链路参考模型如图2-11所示。

图2-11EtherCAT数据链路参考模型

(2)数据链路层特征

数据链路层为相连的设备之间的数据通信提供时间关键的基本支持。

数据链路层的任务是根据存储在预先定义的内存位置上的数据链路层参数完成计算、比较,且产生帧校验序列,并通过从以太网帧中提取数据或将数据包含到以太网帧中实现通信。在物理内存中通过邮箱配置或过程数据区,DL用户都可以获得该数据。

7.EtherCAT报文寻址

EtherCAT通信由主站发送Ether-CAT数据帧读写从站设备的内部存储区来实现,EtherCAT报文还可用多种寻址方式操作ESC内部存储区,实现多种通信服务。

EtherCAT网络寻址模式如图2-12所示。

图2-12EtherCAT网络寻址模式

一个EtherCAT网段相当于一个以太网设备,主站首先使用以太网数据帧头的MAC地址寻址到网段,然后使用EtherCAT子报文头中的32位地址寻址到段内设备。

段内寻址可以使用两种方式:设备寻址和逻辑寻址。

设备寻址针对某一个从站进行读写操作。逻辑寻址面向过程数据,可以实现多播,同一个子报文可以读取多个从站设备。支持所有寻址模式的从站成为完整型从站,而支持部分寻址模式的从站称为基本从站。

从站支持不同的寻址模式。在EtherCATDLPDU的首部含有一个32位的地址,用来实现物理节点寻址或逻辑寻址。

(1)网段寻址

网段寻址使用符合ISO/IEC8802-3的MAC地址。

根据EtherCAT主站及其网段的连接方式不同,可以使用如下两种方式寻址到网段。

1) 直连模式

一个EtherCAT网段直接连到主站设备的标准以太网端口,如图2-13所示。此时,主站使用广播MAC地址,EtherCAT数据帧如图2-14所示。

图2-13 直连模式中的EtherCAT网段

图2-14 直连模式下的EtherCAT网段寻址内容

2)开放模式

EtherCAT网段连接到一个标准以太网交换机上,如图2-15所示。此时,一个网段需要一个MAC地址,主站发送的EtherCAT数据帧中目的地址是它所控制的网段的MAC地址,如图2-16所示。

EtherCAT网段内的第一个从站设备有一个ISO/IEC8802.3的MAC地址,这个地址表示了整个网段,这个从站称为段地址从站,它能够交换以太网帧内的目的地址区和源地址区。如果EtherCAT数据帧通过UDP传送,这个设备也会交换源和目的IP地址,以及源和目的UDP端口号,使响应的数据帧完全满足UDP/IP协议标准。

图2-15 开放模式中的EtherCAT网段

图2-16 开放模式下的EtherCAT网段寻址地址内容

(2)设备寻址

在设备寻址时,EtherCAT子报文头内的32位地址分为16位从站设备地址和16位从站设备内部物理存储空间地址,如图2-17所示。16位从站设备地址可以寻址65536个从站设备,每个设备最多可以有64KB的本地地址空间。

图2-17EtherCAT设备寻址结构

设备寻址时,每个报文只寻址唯一的一个从站设备,但它有两种不同的设备寻址机制。

1)顺序寻址

顺序寻址时,从站的地址由其在网段内的连接位置确定,用一个负数来表示每个从站在网段内由接线顺序决定的位置。顺序寻址子报文在经过每个从站设备时,其顺序地址加1;从站在接收报文时,顺序地址为0的报文就是寻址到自己的报文。由于这种机制在报文经过时更新设备地址,所以又被称为“自动增量寻址”。

顺序寻址时的从站地址如图2-18所示,网段中有三个从站设备,其顺序寻址的地址分别为0、-1和-2。

图2-18 顺序寻址时的从站地址

主站使用顺序寻址访问从站时子报文地址的变化如图2-19所示。主站发出三个子报文分别寻址三个从站,其中的地址分别为0、-1和-2,如图2-19中的数据帧1。数据帧到达从站1时,从站1检查到子报文1中的地址为0,从而得知子报文1就是寻址到自己的报文。数据帧经过从站1后,所有的顺序地址都增加1,成为1、0和-1,如图2-19中的数据帧2。到达从站2时,从站2发现子报文2中的顺序地址为0,即为寻址到自己的报文。同理,从站2也将所有子报文的顺序地址加1,如图2-19中的数据帧3。数据帧到达从站3时,子报文3中的顺序地址为0,即为寻址从站3的报文。经过从站3处理后,数据帧成为图2-19中的数据帧4。

图2-19 顺序寻址访问从站时子报文地址的变化

在实际应用中,顺序寻址主要用于启动阶段,主站配置站点地址给各个从站。此后,可以使用与物理位置无关的站点来寻址从站。使用顺序寻址机制能自动为从站设定地址。

2)设置寻址

设置寻址时,从站的地址与其在网段内的连接顺序无关。如图2-20所示,地址可以由主站在数据链路启动阶段配置给从站,也可以由从站在上电初始化的时候从自身的配置数据存储区装载,然后由主站在链路启动阶段,使用顺序寻址方式读取各个从站的设置地址,并在后续运行中使用。

图2-20 设置寻址时的从站地址和报文结构

(3)FMMU

现场总线内存管理单元(FMMU)将从站本地物理内存地址映射到网段范围内的逻辑地址,现场总线内存管理单元如图2-21所示。

(4)逻辑寻址和FMMU

逻辑寻址时,从站地址并不是单独定义的,而是使用了寻址段内4G(232)逻辑地址空间中的一段区域。报文内的32位地址区作为整体的数据逻辑地址完成设备的逻辑寻址。

逻辑寻址方式由现场总线内存管理单元(FieldbusMemoryManagementUnit,FMMU)实现,FMMU功能位于每一个ESC内部,将从站本地物理存储地址映射到网段内逻辑地址,其原理如图2-22所示。

图2-21 现场总线内存管理单元

图2-22 现场总线内存管理单元(FMMU)运行原理

FMMU单元由主站设备配置,并在数据链路启动过程中传送给从站设备。每个FMMU单元需要以下配置信息:数据逻辑位起始地址、从站物理内存起始地址、位长度和表示映射方向(输入或输出)的类型位,从站设备内的所有数据都可以按位映射到主站逻辑地址。FMMU配置实例见表2-3,FMMU映射实例如图2-23所示。

将主站控制区0x00014711从第3位开始的6位数据映射到由设备地址0x0F01第1位开始的6位数据写操作。0x0F01是一个开关量输出设备。

表2-3FMMU配置实例

图2-23FMMU映射实例

当从站设备收到一个数据逻辑寻址的EtherCAT子报文时,将检查是否有FMMU单元地址匹配。如果有,则将输入类型数据插入到EtherCAT子报文数据区的对应位置,以及从EtherCAT子报文数据区的对应位置抽取输出数据类型。使用逻辑寻址可以灵活地组织控制系统,优化系统结构。逻辑寻址方式特别适合于传输或交换周期性过程数据。

FMMU操作具有以下功能特点。

1)每个数据逻辑地址字节只允许被一个FMMU读和另一个FMMU写操作,或被同一个FMMU进行读写交换操作。

2)对一个逻辑地址的读写操作,与使用一个FMMU读和另一个FMMU写操作具有相同的结果。

3)按位读写操作不影响报文中没有被映射到的其他位,因此允许将几个从站ESC中的位数据映射到主站的同一个逻辑字节。

4) 读写一个设置的逻辑地址空间不会改变其内容。

(5) 同步管理器(SyncManger)

同步管理器控制对DLS用户内存的访问,每个同步管理器通道定义了一个一致的DLS用户内存区。

8.从站的分类

(1)完整型从站(Fullslave)

基本型从站和完整型从站有一个区别,完整型从站支持所有的寻址方式,基本型从站仅支持寻址方式的一个子集。主站设备可支持基本型从站的功能,以允许与另一主站设备直接通信,从站设备应支持完整型从站的功能。

完整型从站支持以下方式。

1) 逻辑寻址。

2) 位置寻址。

3) 节点寻址。

因此完整型从站设备需要FMMU和地址自增两个功能。

完整型从站支持网段寻址。支持网段寻址的完整型从站被称为网段寻址从站设备。

只有完整型从站才能与EtherCAT网段相连。

(2)基本型从站(Basicslave)

基本型从站设备支持节点寻址和网段寻址。

9.从站的通信层结构

主站可读写的属性与从站的物理内存相关。物理内存包含寄存器和DL用户内存。在DLL中寄存器区内的信息包括配置、管理和设备标识。DL用户内存的用途由DL用户规定。

从站的通信分层如图2-24所示,该图给出了DL用户与DLL之间和DLL与通信之间的交互关系。

图2-24 从站的通信分层

DL对寄存器区的写服务1可能会(取决于所写的寄存器)对DL用户产生一个事件指示原语,然后会从DL用户产生一个本地读请求原语以获取被写的值2。否则,DL写服务只访问寄存器区而不告知DL用户3。DL用户能通过读本地原语随时读取寄存器区。

DL用户在需要和可能时可以通过本地写寄存器来设置寄存器和更新寄存器4。对寄存器区的DL读服务仅访问寄存器区,无须通知DL用户5。

访问DL用户内存区域由同步管理器来协调。在没有同步管理器的情况下,可以通过与寄存器访问相似的方法来访问,但由于一致性限制和缺乏指示由主站引起变化的事件将限制使用这种方法。对DL用户内存访问的描述假设使用同步管理器。

对DL用户内存区的DL写服务6将对DL用户产生事件指示原语,然后由DL用户本地读请求原语得到写入的值7。

DL用户根据本地写请求原语写DL用户内存区8。主站通过DL读服务读取DL用户内存区9,这将给DL用户一个事件指示原语10来表明DL用户内存区已经被读取,并可以被DL用户再次写入。

从站响应所有读和写请求,而且可能响应读/写联合请求。

2.4.2 EtherCAT支持的通信服务

EtherCAT子报文所有的服务都是以主站操作描述的。数据链路层规定了从站内部物理存储、读写和交换(读取并马上写入)数据的服务。读写操作和寻址方式共同决定了子报文的通信服务类型,由子报文头中的命令字节表示。EtherCAT支持的通信服务命令见表2-4。

表2-4EtherCAT支持的通信服务命令

主站接收到返回数据帧后,检查子报文中的WKC,如果不等于预期值,则表示此报文没有被正确处理。子报文的WKC预期值与通信服务类型和寻址地址有关。子报文经过某一个从站时,如果是单独的读或写操作,WKC加1。如果是读写操作,读成功时WKC加1,写成功时WKC加2,读写全部完成时WKC加3。子报文由多个从站处理时,WKC是各个从站处理结果的累加。

数据链路层规定了从站内的读、写、交换(读之后立即覆盖)数据的服务。

为了简化表达,使用“读内存”来替代“从物理内存读数据”。同样,使用“写内存”来替代“写数据到物理内存”。

通过读服务,主站从一个或多个从站中读取寄存器或者DL用户内存。

除了广播读外,所有读服务的变型的基本服务过程是一样的。被寻址的单元将数据拷贝到data参数中。而在广播服务中,从站将对data参数与内存或寄存器数据执行按位或操作。

如果只有一个从站连接到主站,服务过程将按照客户端-服务器模型执行。如果有多个从站连接(总是串联),服务过程的调用将以一个从站的输出作为下一个从站的输入的方式处理。

服务过程和IEEE802.1D中定义的过程类似,但将转发和处理合并了。由于EtherCAT使用证实服务而不是IEEE802.1D中规定的非证实服务,因此服务原语之间的信息流处理过程适用于这种情况。主站发起一个请求服务并接收一个相应的证实。每个从站接收一个它所接收的数据指示,同时在可能的更新后转发给下一个从站。EtherCAT服务原语流如图2-25所示。

图2-25EtherCAT服务原语流

1.读服务

通过读服务,主站从一个或多个从站的内存区中读取数据。

(1) 位置物理读(Positionalphysicalread,APRD)

通过APRD服务,主站按照网段中的物理顺序的先后选择一个从站,从其内存或者寄存器中读取数据。

(2)配置的地址物理读(Configured-addressphysicalread,FPRD)

通过FPRD服务,主站依据从站的配置站地址去选择一个从站,并从其内存或寄存器中读取数据。

(3)广播读(Broadcastread,BRD)

通过BRD,主站从物理内存或寄存器中读取数据,这些数据是将输入数据与所有从站中被选择的对象执行按位或操作而得到的。

(4)逻辑读(Logicalread,LRD)

通过LRD服务,主站依据逻辑地址选择从站,并从一个或多个从站的内存或寄存器中读取数据。

2.写服务

通过写服务,主站向一个或多个从站的内存或寄存器中写入数据。

(1) 位置物理写(Positionalphysicalwrite,APWR)

通过APWR服务,主站依据在这个网段中从站的物理顺序选择一个从站,往其内存或寄存器中写入数据。

(2)配置的地址物理写(Configured-addressphysicalwrite,FPWR)

通过FPWR服务,主站依据从站的配置站地址选择一个从站,并往其内存或寄存器中写入数据。

(3)广播写(Broadcastwrite,BWR)

通过BWR服务,主站向所有从站的物理内存写数据。

(4) 逻辑写(Logicalwrite,LWR)

通过LWR服务,主站依据逻辑地址选择一个或多个从站并往其内存或寄存器中写入数据。

3.组合读写服务

被寻址从站的读和/或写的规则适用于组合读写服务。

(1)位置物理读/写(Positionalphysicalread/write,APRW)

通过APRW服务,主站按照网段中从站的物理顺序选择从站,读取其内存或寄存器,并往该从站内存或寄存器中写入数据。

(2)配置的地址物理读/写(Configured-addressphysicalread/write,FPRW)

通过FPRW服务,主站依据从站的配置站地址选择一个从站,并从其内存或寄存器中读并写入数据。

(3)广播读/写(Broadcastread/write,BRW)

通过BRW服务,主站读取被所有从站按位或操作的物理内存或寄存器,并写入在前面的所有从站处收集的数据。

(4)逻辑读/写(Logicalread/write,LRW)

通过LRW服务,主站通过逻辑地址选择一个或多个从站,并对其内存进行读写。

(5) 位置物理读/多重写(Positionalphysicalread/multiplewrite,ARMW)

通过ARMW服务,主站通过从站在网段内的物理顺序选择一个从站,读取其内存或寄存器的数据,并向其后所有其他从站的相同内存或寄存器写入参数data值。

(6) 配置的地址物理读/多重写(Configured-addressphysicalread/multiplewrite,FRMW)

通过FRMW服务,主站通过从站的配置站地址选择一个从站,从其内存或寄存器中读取数据,并且把数据写入所有其他从站的相同对象。

4.网络服务

(1) 概述

网络变量服务从发布者的角度来描述。数据链路层规定发布的服务。该服务是专门为主站之间,或主站和标准的以太网设备之间的通信服务。

(2)提供网络变量(Providenetworkvariable,PNV)

通过PNV服务,主站给一个或其他多个站(主站或从站)提供数据。主要通过目的MAC地址寻址(组地址/单独地址)。收到指示的站将数据传送给DL用户。

5.邮箱

邮箱是双向工作的:由主站到从站,及由从站到主站。它支持2个方向上独立全双工通信和多数据链路用户协议。从站与从站间的通信通过类似路由器的主站进行管理。邮箱首部包含了一个允许主站进行重定向服务的地址字段。

邮箱使用了两个同步管理器通道,每个方向一个通道(例如同步管理器通道0用于主站发送到从站,而同步管理器通道1为从站到主站)。配置为邮箱模式的同步管理器通道防止另一边的数据超限。通常邮箱通信是非周期性的,并对单个从站进行寻址。因此使用不需要FMMU(现场总线内存管理单元)的物理寻址,而不是用逻辑寻址。

(1)主站到从站的通信

主站必须检查从站邮箱命令的应答中的工作计数器(Workingcounter)。如果工作计数器没有增加(通常是因为从站没有完全读取上一条命令),或在规定的时间期限内没有响应,主站必须重发该邮箱命令。进一步的错误校正由更高层协议负责。

(2)从站到主站的通信

主站必须确定从站是否用邮箱命令填满了同步管理器,并且尽快地发送适当的读命令。

确定从站是否填满同步管理器有各种不同的方法。一个很好的办法是把同步管理器1的配置首部的“writtenbit”配置为一个逻辑地址,并周期性的读取该位。使用逻辑地址能够从多个从站同时读取该位,并且给每个从站配置一个独立的位地址。该方法的缺点是每个从站都需要一个FMMU。

另外一个方法就是简单地轮询同步管理器数据区,如果从站通过新命令填充了该区域,则读命令的工作计数器就递增一次。

主站必须检查从站邮箱命令的应答中的工作计数器。如果工作计数器没有增加(通常是因为从站没有完全读取上一条命令),或在规定的时间期限内没有响应,主站必须重发该邮箱命令。主站必须翻转同步管理器区的重试(retry)参数。通过翻转重试参数,从站必须把上次读取的数据放入邮箱内。进一步的错误校正由更高层协议负责。

邮箱服务原语映射到DL用户内存原语的对应关系为

Mailbox writeevent,readlocal

Mailbox readupdateWritelocal

Mailbox readevent

成功的邮箱写序列如图2-26所示。该图给出在邮箱写序列成功时主站和从站间的原语。

图2-26 成功的邮箱写序列

成功的邮箱读序列如图2-27所示。该图给出邮箱读序列成功时主站和从站间的原语。

图2-27 成功的邮箱读序列

2.4.3 EtherCAT的通信模式

在实际自动化控制系统中,应用程序之间通常有两种数据交换形式:时间关键(Time-critical)和非时间关键(Non-time-critical)。时间关键表示特定的动作必须在确定的时间窗口内完成。如果不能在要求的时间内完成通信,则有可能引起控制失效。时间关键的数据通常周期性发送,称为周期性过程数据通信。非时间关键数据可以非周期性发送,在Ether-CAT中采用非周期性邮箱(Mailbox)数据通信。

1.周期性过程数据通信

周期性过程数据通信通常使用FMMU进行逻辑寻址,主站可以使用逻辑读、写或读写命令同时操作多个从站。在周期性数据通信模式下,主站和从站有多种同步运行模式。

(1)从站设备同步运行模式

从站设备有以下三种同步运行模式。

1) 自由运行

在自由运行模式下,本地控制周期由一个本地定时器中断产生。周期时间可以由主站设定,这是从站的可选功能。自由运行模式的本地周期如图2-28所示。其中,T1为本地微处理器从ESC复制数据并计算输出数据的时间;T2为输出硬件延时;T3为输入锁存偏移时间。这些参数反映了从站的时间性能响应。

图2-28 自由运行模式的本地周期

2)同步于数据输入或输出事件

本地周期在发生数据输入或输出事件的时候触发,同步于数据输入或输出事件的本地周期如图2-29所示。主站可以将过程数据帧的发送周期写给从站,从站可以检查是否支持这个周期时间或对周期时间进行本地优化。从站可以选择支持这个功能。通常同步于数据输出事件,如果从站只有输入数据,则同步于数据输入事件。

图2-29 同步于数据输入或输出事件的本地周期

3)同步于分布时钟同步事件

本地周期由SYNC事件触发,同步于SYNC事件的本地周期如图2-30所示。主站必须在SYNC事件之前完成数据帧的发送,为此要求主站时钟也要同步于参考时钟。

图2-30 同步于SYNC事件的本地周期

为了进一步优化从站同步性能,从站应该在数据收发事件发生时从接收到的过程数据帧复制输出数据,然后等待SYNC信号到达后继续本地操作,优化的同步于SYNC事件的本地周期如图2-31所示。数据帧必须比SYNC信号提前T1时间到达,从站在SYNC事件之前已经完成数据交换和控制计算,接收SYNC信号后可以马上执行输出操作,从而进一步提高同步性能。

图2-31 优化的同步于SYNC事件的本地周期

(2) 主站设备同步运行模式

主站有以下两种同步模式。

1) 周期性模式

在周期性模式下,主站周期性地发送过程数据帧。主站周期通常由一个本地定时器控制。从站可以运行在自由运行模式或同步于接收数据事件模式。对于运行在同步模式的从站,主站应该检查相应的过程数据帧的周期时间,保证大于从站支持的最小周期时间。

主站可以以不同的周期发送多种周期性的过程数据帧,以便获得最优化的宽带。例如,以较小的周期发送运动控制数据,以较大的周期发送I/O数据。

2)DC模式

在DC模式下,主站运行与周期性模式类似,只是主站本地周期应该和参考时钟同步。主站本地定时器应该根据发布参考时钟的ARMW报文进行调整。在运行过程中,用于动态补偿时钟漂移的ARMW报文返回主站后,主站时钟可以根据读回的参考时钟时间进行调整,使之大致同步于参考时钟时间。

DC模式下,所有支持DC的从站都应该同步于DC系统时间。主站也应该使其通信周期同步于DC参考时钟时间。主站DC模式如图2-32所示。

主站本地运行由一个本地定时器启动。本地定时器应该比DC参考时钟定时存在一个提前量,提前量为以下时间之和。

图2-32 主站DC模式

① 控制程序执行时间。

② 数据帧传输时间。

③ 数据帧传输延时D。

④ 附加偏移U,与各从站延迟时间的抖动和控制程序执行时间的抖动值有关,用于主站周期的调整。

2.非周期性邮箱数据通信

EtherCAT协议中非周期性数据通信称为邮箱数据通信,它可以双向进行——主站到从站和从站到主站。它支持全双工、两个方向独立通信和多用户协议。从站到从站的通信由主站作为路由器来管理。邮箱通信数据头中包括一个地址域,使主站可以重寄邮箱数据。邮箱数据通信是实现参数交换的标准模式,如果需要配置周期性过程数据通信,或需要其他非周期性服务时,需要使用邮箱数据通信。

邮箱数据通报文结构如图2-33所示。通常邮箱通信只对应一个从站,所以报文中使用设备寻址模式。其数据头中各数据元素的解释见表2-5。

图2-33 邮箱数据通报文结构

表2-5 邮箱数据头

(1)从站到主站通信——写邮箱命令

主站发送写数据区命令将邮箱数据发送给从站。主站需要检查从站邮箱命令应答报文中工作计数器WKC。如果工作计数器为1,表示写命令成功。反之,如果工作计数器没有增加,通常因为从站没有完成上一个命令,或在限定的时间内没有响应,主站必须重发写邮箱数据命令。

(2)从站到主站通信——读邮箱命令

从站有数据要发送给主站,必须先将数据写入输入邮箱缓冲区,然后由主站来读取。主站发现从站ESC输入邮箱数据区有数据等待发送时,会尽快地发送适当的读命令来读取从站数据。主站有两种方式来测定从站是否已经将邮箱数据填入数据区。一种是使用FMMU周期性地读某一个标志位。使用逻辑寻址可以同时读取多个从站的标志位,但其缺点是每个从站都需要一个FMMU单元。另一个方法是简单地轮询ESC输入邮箱的数据区。读命令的工作计数器增加1表示从站已经将新数据填入了输入数据区。

邮箱通信错误时应答数据定义见表2-6。

表2-6 邮箱通信错误时应答数据定义