EtherCAT从站开发要点

目录

1、EtherCAT从站开发工具

        (1)  SSC TOOL软件工具

        (2) excel表格,如下示例

2、从站代码架构图

(1)从站代码架构

(2)EtherCAT帧格式详解

3、从站文件概要

4、从站代码执行架构

5、中断处理

5.1 中断源有四个

5.2 中断处理API

6、过程数据处理

6.1 输出映射

6.2 输入映射

7、接口函数(需要用户实现)

7.1 通用接口

7.2 EtherCAT 状态机接口

7.3 过程数据处理接口

7.4 邮箱处理接口

8、对象字典索引范围

9、同步

9.1 ESC中断信号

           ​编辑9.2 支持的同步模式

(1) Free Run

(2) SM

(3) SM/Sync0

(4) SM/Sync0/Sync1

(5) Sync0

(6) Sync0/Sync1

​编辑(7) Subordinated Cycles

10、CiA402 state transitons and option codes

11、Excel应用示例

11.1 PDO映射和SM分配对象

11.2 Excel语法

12、过程数据

13、EtherCAT状态机 

重要问题汇总

1、wState不能显示状态的问题


注:本文主要摘自《Application Note ET9300(EtherCAT Slave Stack Code)》。

       本文主要简述EtherCAT从站开发关键知识点:COE对象字典、PDO、SDO、状态机、同步模式、关键API接口等。其他知识盲点后续逐渐补充完善

0、常见缩写和关键字注释

AoE、FoE、EoE、SoE、VoE、CoE 解释见[第2章-从站代码架构图]章节。

DC: Distributed Clock, 分布式时钟;
ENI: EtherCAT Network Information(EtherCAT XML Master Configuration),EtherCAT网络信息;
DPRAM:Dual-Ported RAM,双端口RAM;
EoE: Ethernet over EtherCAT, 基于EtherCAT的以太网;
ESC:EtherCAT Slave Controller,EtherCAT从站控制器;
ESI:EtherCAT Slave Information(EtherCAT XML Devices Description),EtherCAT从站信息;
ESM:EtherCAT State Machine,EtherCAT状态机;
ETG:EtherCAT Technology Group;
FMMU: Fieldbus Memory Management Unit;
MDP: Modular Device Protocol;
OD: Object Dictionary, 对象字典;
PDO: Process Data Object, 过程数据对象;
SDO:Service Data Object, 服务数据对象;
DLPDU:数据链路层处理数据单元;
SM: Sync Manager, 同步管理;
SII:从站信息接口;
SOP:Start of Frame, 开始帧;

NIC:Network Interface Card,即网卡。

/* excel表中 ObjectCode类型解释 */
VARIABLE:  只有一个基本数据类型作为一个对象
ARRAY:   相同基本数据类型的集合作为一个对象
RECORD: 将不同基本数据类型的集合作为一个对象


1、EtherCAT从站开发工具

        (1)  SSC TOOL软件工具

                该软件自动生成EtherCAT从站核心代码。

        (2) excel表格,如下示例

EtherCAT从站开发要点_第1张图片

说明:该表格用来配置对象字典,SSC工具导入该表格自动生成EtherCAT从站代码和xml设备描述文件。

2、从站代码架构图

(1)从站代码架构

EtherCAT从站开发要点_第2张图片

        基于EtherCAT总线的应用层协议有AoE、FoE、EoE、SoE、VoE、CoE,各个协议的具体描述如下:

AoE ADS over EtherCAT

ADS(Automation Device Specification),

由Message Router统一交换数据ADS路由器看成虚拟的路由器

FoE File Access over EtherCAT 在EtherCAT总线上传输文件的协议
EoE EtherCAT over EtherCAT 在EtherCAT总线上执行Ethernet协议
SoE Servo Drive Profile over EtherCAT 在EtherCAT总线上执行SERCOS协议
VoE Vendor Specific Protocol over EtherCAT 供应商自定义协议,基于邮箱
CoE CAN Application Protocol over EtherCAT 在EtherCAT总线上执行CANopen协议

(2)EtherCAT帧格式详解

EtherCAT从站开发要点_第3张图片

(3)Datagram Header解析和寻址方式简介

        Datagram Header帧结构:cmd | idx | Address | Len | IRQ 。

        不同寻址方式,报文头的Address字段组成也有所不同。

EtherCAT从站开发要点_第4张图片

EtherCAT寻址方式只有4种:位置寻址(Position address)、节点寻址(Node address)、广播寻址(Broadcast address)、逻辑寻址(Logical address)。表中为不同的cmd所采用的寻址方式。

EtherCAT从站开发要点_第5张图片

3、从站文件概要

EtherCAT从站开发要点_第6张图片

4、从站代码执行架构

 EtherCAT从站开发要点_第7张图片

 EtherCAT从站开发要点_第8张图片

5、中断处理

5.1 中断源有四个

(1) 定时器中断:平台内部1ms定时器设置EtherCAT led和看门狗。如果没有配置定时器中断(ECAT-TIMER_INT = 0),所需的1ms周期基于主循环和平台内部计数器。

(2) Sync0: 使用分布式时钟(DC)处理数据和应用程序同步。

(3) Sync1: 使用分布式时钟(DC)处理数据和应用程序同步。

(4) PDI中断:进程数据处理和应用程序同步。

EtherCAT从站开发要点_第9张图片

5.2 中断处理API

        void ECAT_CheckTimer(void);

        void PDI_Isr(void);

        void Sync0_Isr(void);

        void Sync1_Isr(void);

6、过程数据处理

6.1 输出映射

EtherCAT从站开发要点_第10张图片

6.2 输入映射

 EtherCAT从站开发要点_第11张图片

7、接口函数(需要用户实现)

7.1 通用接口

                void APPL_Application(void);

                UINT16 APPL_GetDeviceID(void);

                 UINT16 (*pAPPL_EEPROM_Read)(UINT32 wordaddr);

                 UINT16 (*pAPPL_EEPROM_Write)(UINT32 wordaddr);

                UINT16 (*pAPPL_EEPROM_Reload))(void);

                UINT16 (*pAPPL_EEPROM_Store))(void);

                void (*pAPPL_MainLoop)(void);

7.2 EtherCAT 状态机接口

                UINT16 APPL_StartMailboxHandler(void);

                UINT16 APPL_StopMailboxHandler(void);

                UINT16 APPL_StartInputHandler(UINT16 *pIntMask);

                UINT16 APPL_StopInputHandler(void);

                UINT16 APPL_GenerateMapping(UINT16 *pInputSize, UINT16 *pOutputSize);

                void APPL_AckErrorInd(UINT16 stateTrans);

7.3 过程数据处理接口

                void APPL_InputMapping(UINT16 *pData);

                void APPL_OutputMapping(UINT16 *pData);

7.4 邮箱处理接口

                void (*pAPPL_CoEReadInd)(UINT16 Index, UINT8 Subindex, BOOL CompleteAccess);

                void (*pAPPL_CoEWriteInd)(UINT16 Index, UINT8 Subindex, BOOL CompleteAccess);

                void (*pAPPL_EoeReceive)(UINT16 *pData, UINT16 length);

                void (*pAPPL_EoeSettingInd)(UINT16 *pMac, UINT16 *plp, UINT16 *pSuvNet, UINT16                                                         *pDefaultGateway, UINT16 *pDnsIP);

                UINT16 (*pAPPL_FoeRead)(UINT16 MBXMEM *pName, UINT16 nameSize,                                                         UINT32 password, UINT16 maxBlockSize, UINT16 *pData);

                UINT16 (*pAPPL_FoeReadData)(UINT32 offset, UINT16 maxBlockSize, UINT16                                 *pData);

                void (*pAPPL_FoeError)(UINT32 errorCode);

                UINT16 (*pAPPL_FoeWrite)(UINT16 MBXMEM *pName, UINT16 nameSize,                                                                         UINT32 password);

                UINT16 (*pAPPL_FoeWriteData)( UINT16 MBXMEM *pData, UINT16 Size, BOOL                                                                         bDataFollowing);

8、对象字典索引范围

EtherCAT从站开发要点_第12张图片

EtherCAT从站开发要点_第13张图片

9、同步

9.1 ESC中断信号

           EtherCAT从站开发要点_第14张图片9.2 支持的同步模式

(1) Free Run

         EtherCAT从站开发要点_第15张图片

(2) SM

EtherCAT从站开发要点_第16张图片

(3) SM/Sync0

        EtherCAT从站开发要点_第17张图片 

(4) SM/Sync0/Sync1

 EtherCAT从站开发要点_第18张图片

(5) Sync0

EtherCAT从站开发要点_第19张图片

(6) Sync0/Sync1
EtherCAT从站开发要点_第20张图片(7) Subordinated Cycles

EtherCAT从站开发要点_第21张图片

10、CiA402 state transitons and option codes

 EtherCAT从站开发要点_第22张图片

11、Excel应用示例

EtherCAT从站开发要点_第23张图片

11.1 PDO映射和SM分配对象

EtherCAT从站开发要点_第24张图片

 EtherCAT从站开发要点_第25张图片

11.2 Excel语法

EtherCAT从站开发要点_第26张图片

EtherCAT从站开发要点_第27张图片

 EtherCAT从站开发要点_第28张图片

(1) Default / Min / Max

(2) M/O/S :mandatory  ,optional or conditional.

(3) B/S:       backup or settion object;

(4) rx/tx :  output ,input

(5) access:

   EtherCAT从站开发要点_第29张图片

(6) CoeRead/CoeWrite

(7) ENUM(枚举)

EtherCAT从站开发要点_第30张图片

EtherCAT从站开发要点_第31张图片

12、过程数据

 EtherCAT从站开发要点_第32张图片

EtherCAT从站开发要点_第33张图片

13、EtherCAT状态机 

        EtherCAT从站开发要点_第34张图片

补充:

COE 对象字典和PDO映射简介文章参考:【EtherCAT】COE对象字典与PDO映射简介_pdo映射是什么意思_小可嵌入式的博客-CSDN博客

重要问题汇总

1、wState不能显示状态的问题

PLC程序需加如下指令(方法来自网上,亲测有效):

EtherCAT从站开发要点_第35张图片

注意如果未加该段指令AM600 ECT模块其状态一直会为ETC_SLAVE_BOOT,加上后可正常显示从站状态。

【未测试】当EtherCAT组网中包含伺服与及ECT模块时,wState不能正确反映ECT模块的状态机,此时可以用m_wSlaveStateAct反映所有从站的状态机。实际上,Ethercat芯片(ET1100)寄存器地址0x0130:0x0131的值为从站设备的状态,该值的意义如下图所示。从站变量m_wSlaveStateAct获取的即为Ethercat芯片(ET1100)寄存器地址0x0130:0x0131的值。编程时可以通过m_wSlaveStateAct来获取从站的状态机。

你可能感兴趣的:(工业总线,自动化,网络协议,嵌入式硬件,网络,物联网)