当前位置:   article > 正文

1.ethercat基本概念

ethercat

EtherCAT

请用MarkdownPad或者Typora软件打开此文档阅读更佳

本文档基本概念参考<工业以太网现场总线ETHERCAT驱动程序设计及应用.pdf>写的.
工具:drowio(V13.6.2),xmind(V8)

by weilan, 2021.05.31

概述

EtherCAT(以太网控制自动化技术)是一个开放框架,以以太网为基础的现场总线系统。是实时以太网的一种。

实时以太网是常规以太网技术的延伸,以便满足工业控制领域的实时性数据通信要求。实时以太网有powerlink,profinet,sercosⅢ,ethercat等等。

根据不同的实现原理,大致分三种类型:

  1. 基于TCP/IP的实现:Modbus/TCP, Ethernet/IP
  2. 基于以太网的实现:powerlink, profinet RT
  3. 修改以太网的实现:EtherCAT, Sercos3, profinet IRT

性能

优点:

传输速度快(全双工模式),数据包容量大,传输距离长;

使用通用以太网元器件,性能价格比高;

可以接入标准以太网网端;

控制1000个开关量输入和输出的刷新时间约为30us,单个以太网帧最多可容纳1486字节的过程数据,
相当于12000位开关量数字输入和输出,刷新时间约为300us,控制100个伺服电机的数据通信周期约为100us

比较项powerlinkprofinetsercosⅢethercat
循环周期100us1ms25us100us
传输距离100m100m40m100m
介质双绞线、光纤双绞线光纤双绞线
传输模式半双工半双工全双工全双工
硬件实现简单复杂复杂简单

EtherCAT数据帧结构

|------------------------以太网帧头------------------------------------|

6byte62244-14984
目的地址原地址帧类型(0x88A4)EtherCAT头EtherCAT数据FCS

以太网帧头

长度:14byte

6byte62
目的地址原地址帧类型(0x88A4)

FCS: 帧校验序列

长度:4byte

EtherCAT头

长度:2byte

11bit1bit4bit
EtherCAT数据长度保留位类型

​ EtherCAT数据长度:所有子报文长度总和

​ 类型:1表示与从站通信,其它保留

EtherCAT数据

EtherCAT数据有一个或者多个子报文组成

10byte最大1864byte2byte
子报文头数据WKC

子报文头

长度:10byte

8bit832114116
命令索引地址区长度RM状态位

​ 长度:报文数据区长度

​ R:保留位, M:后续报文标志

UDP/IP传输EtherCAT数据

​ |------------------------EtherCAT数据--------------|

14byte20824
以太网帧头IP协议头UDP协议头EtherCAT头子报文FCS

​ |------16~1470byte—|

寻址

EtherCAT网段寻址

网段寻址使用符合ISO/IEC 8802-3的MAC地址,两种方式寻址到网段:

  1. 开放模式

    在开放模式下,一个或者多个EtherCAT网段可连到一个标准的交换机设备,EtherCAT网段中第一个从站设备具有一个表示整个网段的MAC地址。

  2. 直连模式

    在直连模式下,EtherCAT网段连接到主站的标准以太网口。此时,主站使用广播MAC地址。

数据帧从主站发送给第一个从站,第一个从站传递给下一个从站,最后一个从站通过所有其他从站将数据帧返回到主站。

EtherCAT网内寻址

设备寻址

EtherCAT子报文头内的32位地址分为16位从站设备地址和16位从站设备内部物理存储空间地址。可以寻址65535个从站设备,每个设备内最多可以有64KB的本地地址空间。

  1. 位置寻址(顺序寻址)

    位置寻址时,根据每个从站设备由其在网段内的连接位置确定。当从站收到一个地址字段值为0的报文时,则这个从站是被寻址的设备,否则地址字段值加1。位置寻址中的从站地址被称为一个自动递增地址。

    示例:如果要须知网段内第十个从站,主站将通过位置寻址发送一个初始值为-9的报文,该地址值在经过每个从站时递增1。

    通常,位置寻址用于启动阶段。

  2. 节点寻址(设置寻址)

    节点寻址是通过主站在数据链路层启动阶段配置的节点地址来寻址从站。这确保了即使网段的拓扑结构改变,从站也能通过相同的地址配置来寻址。

逻辑寻址

报文头内的32位地址作为整体的逻辑地址,寻址网段内4GB逻辑地址空间的一段区域。适合于交换周期性的过程数据。

FMMU

现场总线内存管理单元(FMMU, Fieldbus Memory Management Units)将从站本地物理内存地址映射到网段范围内的逻辑地址

FMMU0:映射到过程数据(RxPDO)输出区域

FMMU1:映射到过程数据(TxPDO)输入区域

FMMU2:映射到邮箱

SM

同步管理器,Sync Manager

控制对应用存储区的访问,保证应用数据的一致性和安全性

SM0:用于邮箱,输出

SM1:用于邮箱,输入

SM2:用于过程数据,输出

SM2:用于过程数据,输入

SII

从站信息接口,Slave Information Interface

具有EEPROM访问功能,存储ESC和应用配置参数。

PDO

过程数据对象,Process Data Object

PDO映射是指,从对象字典到PDO的应用对象的映射。

过程数据的发送接收,实时,速度快,用来传输实时数据.

SDO

服务数据对象,Service Data Object

服务数据的发送接收,实时性要求不高,一般用来配置和获取节点配置参数.

DC(分布时钟)

分布时钟(DC, Distributed Clock),是所有EtherCAT设备使用相同的系统时间,从而控制各设备任务的同步执行。

系统时钟:从2000年1月1日0点开始,单位为ns

参考时钟:EtherCAT协议规定主站连接的第一个具有分布时钟功能的从站作为参考时钟,其它从站的时钟称为从时钟。

主站时钟:EtherCAT主站也具有计时功能,称为主站时钟。

本地时钟:每个DC从站都有本地时钟,本地时钟独立运行,使用本地时钟信号计时。

偏移量:各从站的本地时钟和参考时钟之间有一定的差值,称为时钟初始偏移量

时钟漂移:在运行过程中,由于参考时钟和本地时钟的时钟源不同,导致时钟运行不同步,本地时钟产生漂移。

时钟同步

通信服务

子报文所有服务都是以主站操作描述的。主站接收到返回的数据帧后,检查子报文中的WKC(工作计数器),如果不等于预期值,表示此报文没有被正确处理。

寻址方式读写模式命令名称编号WKC
空指令NOP00
顺序寻址APRD11
APWR21
读写APRW33
设置寻址FPRD41
FPWR51
读写FPRW63
广播寻址BRD7与寻址到从站个数相关
BWR8同上
读写BRW9同上
逻辑寻址LRD10同上
LWR11同上
读写LRW12同上
顺序寻址读,多重写ARMW13同上
设置寻址读,多重写FRMW14同上

通信模式

周期性过程数据通信

通常使用FMMU进行逻辑寻址

过程输出数据,主站通常发出一个写或者读写命令向多个从站发送过程输出数据。每个从站都获得相应的同步管理器(SM)AL事件。从站的AL控制器可以随时从相关的应用内存中读取过程输出数据。

过程输入数据,主站通常发出一个读或者读写命令向多个从站发送过程输入数据。主站从预先写入的缓存中获取数据。如果输入数据被读,每个从站都获得相应的同步管理器(SM)AL事件。从站的AL控制器可以随时向相关的应用内存中写入过程输入数据。

  1. 从站同步运行模式
    • 自由模式
    • 同步于数据输入或输出事件
    • 同步于分布时钟同步事件
  2. 主站同步运行模式
    • 周期性模式
    • DC模式

非周期性过程数据通信

也称为邮箱数据通信,双向进行

报文结构

子报文头邮箱协议数据WKC

邮箱协议数据

48bit
邮箱数据头命令命令相关数据

邮箱数据头

16bit166244
长度地址通道优先级协议类型计数器
  1. 主站到从站通信–写邮箱命令

    主站发送邮箱数据给从站。主站需检查从站应答报文的WKC,如果WKC为1,表示写命令成功。反之,在限定的时间内没有响应,主站需重发写命令。

  2. 从站到主站通信–读邮箱命令

    从站有数据要发送给主站,必须先将数据写入输入邮箱缓存区,然后由主站来读取。有两种方法,一种是使用FMMU周期性读某个标志位,另一种是简单地轮询输入邮箱缓存区,如果WKC为1表示已将新数据填入。

ESM

EtherCAT状态机(EtherCAT State Machine)负责协调主站和从站应用程序在初始化和运行时的状态关系.

  1. Init
  2. Pre-Operational
  3. Safe-Operational
  4. Operational
  5. Boot-Strap

EtherCAT状态机定义了每个从站设备的分步设置,并指示了可用的功能:

Init(初始化):在这个状态下,主站初始化ESC的一些配置寄存器,但在应用层没有任何交互;如果从站支持邮箱通信,则配置邮箱通道参数(SM0和SM1)。

Pre-Operational(预运行):邮箱通信被激活。主站使用邮箱初始化过程数据映射,配置过程数据通信使用的SM通道,配置FMMU。在这个状态下不允许过程数据通信。

Safe-Operational(安全运行):从站应用程序读取输入数据,但是不产生输出信号。设备无输出。,也可以使用邮箱通信。

Operational(运行):可以使用过程数据通信,也可以使用邮箱通信。

Bootstrap(引导状态)(可选):下载设备固件程序。主站可以使用FOE协议的邮箱通信下载一个新的固件程序给从站。

5.状态机迁移图

应用层协议

  1. CANopen over EtherCAT(COE)

    基于CANopen协议的EtherCAT,使用邮箱通信访问CANopen对象字典及其对象进行初始化,通过使用对象字典映射过程数据,周期性交换数据。

  2. Servo Drive over EtherCAT(SOE)

    基于伺服驱动器控制的EtherCAT,也就是使用SERCOS应用层协议实现,使用邮箱通信访问伺服控制规范参数(IDN),配置伺服系统参数;使用SERCOS数据报格式配置EtherCAT过程数据报文。

  3. Ethernet over EtherCAT(EOE)

    EtherCAT也支持IP标准协议,如TCP/IP,UDP/IP等所有其他高层协议。

  4. File Access over EtherCAT(FOE)

    该协议通过EtherCAT下载和上传固件程序。

EtherCAT从站控制芯片

ESC(EtherCAT Slave Controler)是实现EtherCAT数据链路层协议的专用集成电路芯片。处理EtherCAT数据帧。

ESC提供64kb的DPRAM地址空间,前4kb(0x0000-0x0FFF)为寄存器空间。0x1000-0xFFFF为过程数据存储空间。

对象字典

所谓对象字典就是一个有序的对象组,描述了对应CANOpen节点的所有参数,每个对象都描述了它的功能、名字、索引、子索引、数据类型、以及这个对象是否必须、读写属性等等。

每个对象采用一个16位的索引值来寻址,范围在0x0000-0xFFFF之间。子索引可以进一步描述对象的参数和功能,其范围在0x00-0xFF之间。

索引对象
0000
0001-009F数据类型区域
00A0-0FFF保留
1000-1FFF通讯子协议区域
2000-5FFF制造商特定子协议区域
6000-9FFF标准的设备子协议区域
A000-FFFF保留

例如:

0x6099,Homing Speeds

0x6099:0x00,Number of entries

0x6099:0x01,Speed during search for switch

0x6099:0x02,Speed during search for zero

对象字典的描述及作用可以参考松下驱动器文档<SX-DSV03244_r8_0C.pdf>

数据报流程

从站将收到的报文直接处理,读取或插入有关的数据,再将报文发送给下一个从站,最末尾的从站返回处理完全的报文给上一个从站,然后由第一个从站发送给主站。

ESI

ESI(EtherCAT Slave Information),EtherCAT从站信息文件,商家提供,以xml格式,这个文件的目的是告诉用户,从站实现了哪些功能,可配置哪些项

xml文件格式详细参考<ETG2000_S_R_V1i0i1_EtherCATSlaveInformationSpecification.pdf>

主站命令

ethercat命令

ethercat [OPTIONS] [ARGUMENTS]

Commands:

​ alias 修改从站别名

​ config 显示从站配置信息

​ debug 设置主站调试级别

​ download 向从站写入SDO条目

​ upload 读从站SDO条目

​ reg_read 读从站寄存器

​ reg_write 写从站寄存器

Options:

​ -force -f 强制执行命令

​ --quiet -q 输出更少信息

​ --verbose -v 输出更多信息

​ --help -h 显示帮助信息

  • 想知道更多命令,执行ethercat --help
  • 查看每个命令用法,执行ethercat [command] --help,如ethercat slave --help

参考官方手册<igh-ethercat-1.5.2.pdf>

EtherCAT使用

参考<3.EtherCAT使用.xmind>

linuxcnc-ethercat

linuxcnc-ethercat,缩写lcec,是linuxcnc的一个实时模块,通过hal引脚和调用igh ethercat接口,实现控制电机运动.

参考<2.lcec的xml格式.xmind>
参考<6.lcec代码分析.xmind>

主站代码分析

参考<igh ethercat主站分析.xmind>

官方文档<igh-ethercat-1.5.2.pdf>

问题分析

参考<4.ethercat问题.md>

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小蓝xlanll/article/detail/521107
推荐阅读
相关标签
  

闽ICP备14008679号