EtherCAT开发_3_SSC生成协议栈移植到STM32F405

目录

一、协议栈的生成

1、Hardware中

2、Application

3、简版Excel生成

4、简版协议栈生成    

二、协议栈的移植

1、APPL_OutputMapping和APPL_InputMapping      

2、APPL_Application

三、编译过后的调试

1、OBJ_DWORD_ALIGN和OBJ_WORD_ALIGN    

2、ConfigData

3、效果展示


一、协议栈的生成

协议栈的生成可参考《https://blog.youkuaiyun.com/g360250466/article/details/129847081》

几个重点的字段:

1、Hardware中

EL9800_HW, 设置为1,在该基础上进行修改

CONTROLLER_16BIT,设置为0

CONTROLLER_32BIT,设置为1

_IPC24,               设置为0

2、Application

EL9800_APPLICATION,设置为0

APPLICATION_FILE, 我整的是#include "MyApplication.h"

3、简版Excel生成

a7e943d44384430fc40c50e35c1174f8.png

一个uint16类型的输入,一个输出。

4、简版协议栈生成    

b89d08e8a07dcf3f716a592ba55fe003.png

       el9800hw文件名未做修改,其他硬件的修改都在该文件,像spi,定时器等。

57ef4ea99d0efe6e7dfc5bbf4e9fdc81.png

       生成的所有文件,MyApplication需要给到EtherCAT主站。使用TWinCAT3作为主站,放置于E:\twincat3\3.1\Config\Io\EtherCAT,注意自己的安装目录。

二、协议栈的移植

spi、定时器等的配置不做说明。

代码组织结构:

main()函数MyApplication.c中,

HW_Init(),硬件平台初始化,spi,定时器,GPIO等初始化在这。

1、APPL_OutputMapping和APPL_InputMapping      

APPL_OutputMapping可以获取主站的写入的数据,本移植程序将主站的输出给到输入。      

void APPL_OutputMapping(UINT16* pData)
{      
      DO0x7000.Do1 = *pData;
}
void APPL_InputMapping(UINT16* pData)
{
       *pData = DO0x7000.Do1;
}

DO0x7000的定义在MyApplicationObjects中。

PROTO TOBJ7000 DO0x7000

typedef struct OBJ_STRUCT_PACKED_START {


UINT16 u16SubIndex0;


UINT16 Do1; /* Subindex1 - do1 */


} OBJ_STRUCT_PACKED_END


TOBJ7000;
2、APPL_Application

       未添加任何代码。

三、编译过后的调试

       当移植编译过后,主站并不能变成OP状态。

1、OBJ_DWORD_ALIGN和OBJ_WORD_ALIGN    

90dac61fff18527cda4b87a630dd104f.png

改成这样:

cf00084bc2e86cdc235c50f618586e13.png

2、ConfigData

         05020300000000000000

这个开始没修改的时候,Online始终无法变成OP状态,一直是Init状态。后面开始谷歌,找到了ConfigData字段,改成板子自带的,就OK了。后面改成不行的,也不行了。    

主要就这两点。

3、效果展示

2efbc5e6e6421723bf6e07117f79b296.png

75b3dce9b135d1d8ac6868acfa07d686.png

72eb95beca04a868bb7f8cd1613add28.png

欢迎关注,所有软件资料均可分享。

后台留言"ecat从站移植"即可获得。

其他进一步的测试需后续完成。

其他EtherCAT文章相关:

EtherCAT开发_1_软硬件环境介绍

EtherCAT开发_2_SSC使用记录

EtherCAT开发_4_分布时钟知识点摘抄笔记1

314af332020e071459a618c88150883e.png

评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值