Beckoff的EtherCAT从站代码架构解析

简介: Beckoff的EtherCAT从站代码架构解析

用倍福的从站配置工具得到的源代码有以下

2014/12/26  11:24             1,021 1.TXT 2014/12/26  11:24                 0 2.txt 2012/04/11  20:43            22,131 aoeappl.c 2012/04/11  20:43             1,578 aoeappl.h 2012/04/11  20:43             1,757 bootmode.c 2012/04/11  20:43               749 bootmode.h 2012/04/11  20:43            57,363 cia402appl.c 2012/04/11  20:43            43,902 cia402appl.h 2012/04/11  20:43            50,868 coeappl.c 2012/04/11  20:43             1,755 coeappl.h 2012/04/11  20:43            24,151 diag.c 2012/04/11  20:43             5,746 diag.h 2014/04/08  15:36               337 dirtree.bat 2012/04/11  20:44            20,193 ecataoe.c 2012/04/11  20:44             9,276 ecataoe.h 2012/04/11  20:44            40,417 ecatappl.c 2012/04/11  20:44             6,232 ecatappl.h 2012/04/11  20:44             5,736 ecatcoe.c 2012/04/11  20:44             3,626 ecatcoe.h 2012/04/11  20:44            24,095 ecateoe.c 2012/04/11  20:44             6,926 ecateoe.h 2012/04/11  20:44            15,512 ecatfoe.c 2012/04/11  20:44             7,722 ecatfoe.h 2012/04/11  20:44           101,393 ecatslv.c 2012/04/11  20:44            21,611 ecatslv.h 2012/04/11  20:44             6,467 ecatsoe.c 2012/04/11  20:44             4,006 ecatsoe.h 2013/01/08  13:52            37,184 ecat_def.h 2012/04/11  20:44            17,575 el9800appl.c 2012/04/11  20:44            23,075 el9800appl.h 2012/04/11  20:44            40,016 el9800hw.c 2012/04/11  20:44             8,199 el9800hw.h 2012/04/11  20:44            11,044 emcy.c 2012/04/11  20:44             4,598 emcy.h 2012/04/11  20:44            10,046 eoeappl.c 2012/04/11  20:44             7,605 eoeappl.h 2012/04/11  20:44            19,707 esc.h 2012/04/11  20:44               663 EtherCATSampleLibrary.h 2012/04/11  20:44             9,572 fc1100hw.c 2012/04/11  20:44             4,698 fc1100hw.h 2012/04/11  20:44            13,423 foeappl.c 2012/04/11  20:44             1,813 foeappl.h 2013/01/11  11:08            43,814 mailbox.c 2012/04/11  20:44             6,798 mailbox.h 2012/04/11  20:44            13,035 mcihw.c 2012/04/11  20:44             5,398 mcihw.h 2012/04/11  20:44            65,013 objdef.c 2012/04/11  20:44            10,335 objdef.h 2012/04/11  20:44            10,624 sampleappl.c 2012/04/11  20:44             6,379 sampleappl.h 2012/04/11  20:44            10,555 SampleApplicationInterface.c 2012/04/11  20:44             6,322 SampleApplicationInterface.h 2012/04/11  20:44            65,923 sdoserv.c 2012/04/11  20:44            26,002 sdoserv.h 2012/04/11  20:44           403,968 TcHelper.dll 2012/04/11  20:44               829 TcHelper.h 2012/04/11  20:44             2,406 TcHelper.lib 2012/04/11  20:44            38,440 testappl.c 2012/04/11  20:44            29,615 testappl.h 59 个文件      1,439,244 字节


从站软件协议栈从通信层次上来看分为两层:数据链路层(DL, DataLink Layer)和应用层(AL,  Application Layer,分别实现EtherCAT协议以及应用层通讯协议。


数据链路层是ESC与从站微处理器的数据交换层,ESC与从站微处理器
复制代码


之间可以采用SPI ( Serial Peripheral Interface,串行外设接口)或MCI ( Micro

Controller Interface,微控制器接口)两种模式传输数据,协议栈将两种模式封装成统一接口,供上层协议直接调用。根据EtherCAT协议对实时性及数据量的要求,本文选用MCI并行微控制器接口来传送数据,


以下功能模块用于实现底层通信:

Spihw:串行模式处理器接口模块。定义了串行模式下的微处理器与ESC通信接口函数,供上层应用通信时调用,完成底层数据的交换。


Mcihw:并行控制器接口模块。定义了并行模式下的微控制器与ESC通信接口函数,供上层应用通信时调用,完成底层数据的交换。

应用层是真正实现EtherCAT协议的部分,包括状态机处理,周期性过
复制代码


程数据的处理以及非周期性邮箱数据的处理,应用层包括以下功能模块:Ecatslv:处理EtherCAT状态机模块。状态机转换请求由主站发起,主站将请求状态写入A1Control寄存器中,从站采用查询的方式获取当前该状态转换的事件,将寄存器值作为参数传入AL_ControlInd()函数中,该函数作为核心函数来处理状态机的转换,根据主站请求的状态配置SM通道的开启或关闭,检查SM通道参数是否配置正确等。


Ecatappl:  EtherCAT从站应用层接口,整个协议栈运行的核心模块,
复制代码


EtherCAT从站状态机和过程数据接口。Main()函数的定义,输入输出程数据

对象的映射处理,ESC与处理器本地内存的输入输出过程数据的交换等;

Mailbox:处理EtherCAT邮箱服务模块。


包括邮箱通信接口的初始化,

邮箱通道的参数配置,根据当前状态机来开启或关闭邮箱服务,邮箱通信失

败后的邮箱重复发送请求,邮箱数据的读写以及根据主站请求的不同服务类

型调用相应服务函数来处理,本文主要研究的是CoE邮箱服务类型的处理。


Ecatcoe:    CoE ( CANopen overEtherCAT)处理函数定义模块。包括CoE

接口的初始化,对当前请求的CoE服务的处理以及对保存而未处理过的CoE

服务的处理。


Sdoserv:    SDO服务处理模块。处理所有SDO及SDO信息服务,包括对

主站发送的上传、下载SDO服务请求的处理,处理完成后SDO响应数据由

主站来主动读取。

Objdef:访问CoE对象字典模块。读写对象字典,获得对象字典的入口,

以及对象字典的具体处理函数由该模块实现。


Coeappl:  CoE服务的应用层接口模块。对CoE服务实际应用的处理以

及CoE对象字典的处理。包括对象字典的初始化,添加对象到对象字典,移

除对象字典中的某一条目以及清除对象字典等处理函数的实现。



相关文章
|
9月前
|
SQL 前端开发 关系型数据库
如何开发一套研发项目管理系统?(附架构图+流程图+代码参考)
研发项目管理系统助力企业实现需求、缺陷与变更的全流程管理,支持看板可视化、数据化决策与成本优化。系统以MVP模式快速上线,核心功能包括需求看板、缺陷闭环、自动日报及关键指标分析,助力中小企业提升交付效率与协作质量。
|
9月前
|
数据采集 机器学习/深度学习 人工智能
YOLOv11浅浅解析:架构创新
YOLOv11是YOLO系列最新升级版,通过C3k2模块、SPPF优化和解耦检测头等创新,显著提升检测精度与速度,mAP提高2-5%,推理更快,支持多平台部署,适用于工业、安防、自动驾驶等场景。
|
8月前
|
前端开发 JavaScript BI
如何开发车辆管理系统中的车务管理板块(附架构图+流程图+代码参考)
本文介绍了中小企业如何通过车务管理模块提升车辆管理效率。许多企业在管理车辆时仍依赖人工流程,导致违章处理延误、年检过期、维修费用虚高等问题频发。将这些流程数字化,可显著降低合规风险、提升维修追溯性、优化调度与资产利用率。文章详细介绍了车务管理模块的功能清单、数据模型、系统架构、API与前端设计、开发技巧与落地建议,以及实现效果与验收标准。同时提供了数据库建表SQL、后端Node.js/TypeScript代码示例与前端React表单设计参考,帮助企业快速搭建并上线系统,实现合规与成本控制的双重优化。
|
9月前
|
机器学习/深度学习 人工智能 搜索推荐
从零构建短视频推荐系统:双塔算法架构解析与代码实现
短视频推荐看似“读心”,实则依赖双塔推荐系统:用户塔与物品塔分别将行为与内容编码为向量,通过相似度匹配实现精准推送。本文解析其架构原理、技术实现与工程挑战,揭秘抖音等平台如何用AI抓住你的注意力。
2324 7
从零构建短视频推荐系统:双塔算法架构解析与代码实现
|
8月前
|
机器学习/深度学习 人工智能 自然语言处理
34_GPT系列:从1到5的架构升级_深度解析
大型语言模型(LLM)的发展历程中,OpenAI的GPT系列无疑扮演着至关重要的角色。自2018年GPT-1问世以来,每一代GPT模型都在架构设计、预训练策略和性能表现上实现了质的飞跃。本专题将深入剖析GPT系列从1.17亿参数到能够处理百万级token上下文的技术演进,特别关注2025年8月8日发布的GPT-5如何引领大模型技术迈向通用人工智能(AGI)的重要一步。
988 2
|
9月前
|
监控 供应链 前端开发
如何开发ERP(离散制造-MTO)系统中的财务管理板块(附架构图+流程图+代码参考)
本文详解离散制造MTO企业ERP系统中财务管理模块的搭建,聚焦应收账款与应付账款管理,涵盖核心功能、业务流程、开发技巧及Python代码示例,助力企业实现财务数据准确、实时可控,提升现金流管理能力。
1210 32
|
9月前
|
供应链 监控 JavaScript
如何开发ERP(离散制造-MTO)系统中的库存管理板块(附架构图+流程图+代码参考)
本文详解MTO模式下ERP库存管理的关键作用,涵盖核心模块、业务流程、开发技巧与代码示例,助力制造企业提升库存周转率、降低缺货风险,实现高效精准的库存管控。
|
9月前
|
前端开发 API 定位技术
如何开发车辆管理系统中的用车申请板块(附架构图+流程图+代码参考)
本文详细解析了如何将传统纸质车辆管理流程数字化,涵盖业务规则、审批流、调度决策及数据留痕等核心环节。内容包括用车申请模块的价值定位、系统架构设计、数据模型构建、前端表单实现及后端开发技巧,助力企业打造可落地、易扩展的车辆管理系统。

热门文章

最新文章

推荐镜像

更多
  • DNS