特别说明:

1、这是一个大佬的tao店:1.0 ha:/₴sklPcDGhJOy₤(我是买他的开发板的)

2、源代码设涉及版权问题,所以博客将不提供源码,请大家谅解

3、欢迎大家加我wx:wxk101633  备注:博客  。发布此博客时,正在春节,写得不够好,请大家交流反馈。感谢!!

///

一、基础讲解:

1、EtherCAT从站与EtherCAT主站最大的不同在于:主站完全准寻IP协议的7层网络结构,而从站的物理链路层与主站不同,物理链路层的数据报文格式由倍福公司规定。

2、通常情况下,我们不能使用普通的网卡芯片作为从站的物理链路层;可以使用ET1100、LAN9252、AX58100等协议芯片来实现。

3、这个博客里,我使用的是AX58100芯片,用STM32作为实现应用层的CPU;实现一个16进16出的数字量IO从站。

///

二、从站设备描述文件XML

1、XML文件基础介绍

XML文件是从站设备描述文件,被烧写在从站协议芯片可读写的EEPROM中;AX58100上电后,会从EEPROM中加载相关的配置选项,通过SPI通信与CPU交互,初始化CPU相关资料并初始化通信。

主站则需要根据从站的XML描述文件,发送PDO或SDO数据报文请求读写从站的寄存器。

2、XML文件结构介绍

整体框架如图:

这里重点讲解EtherCATInfo这一栏;Vendor包含设备供应商的描述,Descriptions包含所有设备资源描述,是最重要的地方。

打开Verdor,我们可以通过修改ImageData节点的数据,来修改设备挂载到主站下后的形象:

打开数据节点Descriptions,这里是我们修改自己的数据资源主要地区:

到这里,我将通过具体的例子来讲解如何改写XML文件:(如果不这样,很难描述清楚

第一步:修改设备挂载后的名字

打开Descriptions-->Devices-->Devices-->Type-->Text,这里修改的是,主站设备挂载该从站IO后的默认实例名称;打开Descriptions-->Devices-->Devices-->Name,将内容修改为设备的名称。

/

第二步:配置各种通信超时时间(通常保持默认,后期主站挂载从站时可以通过主站来调整)

打开Descriptions -->Devices-->Device-->Info

/

第三步:开始创建16路IO映射变量区(重要环节)

1、首先,需要想好实际要映射的数据PDO;例如我们要映射16路的数字量输入(Tx)和16路的数字量输出(Rx)。

2、先讲解一下,EtherCAT协议规范的PDO数据映射关系

3、注意:AX58100等协议芯片中,数据寄存器的地址是按16位(字)单位偏置的,所以在定义PDO数据报文时,每个PDO报文必须至少传递一个字的数据长度,不足的需要补齐!!

4、现在,我们先修改或添加对应PDO的数据类型(如果是DINT INT等标准数据类型,则必须是EtherCAT协议允许的才可以):Descriptions-->Devices-->Device-->Profile-->Dictionary-->DataTypes-->DataType

5、类型定义好了,接下来修改对应的PDO报文申明:Descriptions-->Devices-->Device-->Profile-->Dictionary-->Objects-->Object

6、申明好PDO数据报文后,接下来我们需要修改SM同步数据通道,将数据映射到父级,协议芯片将从这里开始逐级索引数据报文:Descriptions-->Devices-->Device-->sm、Rxpdo、Txpdo(协议芯片从这里开始加载数据到内核,并从报文中读取数据到内核)

7、修改SM内容后,你会发现,父级PDO x1601(Rxpdo)和x1a00 PDO节点的映射内容也发生了改变;所以这些父级节点对应的数据类型与PDO申明也需要修改:(父节点PDO的每个成员是子PDO节点的寄存器地址,32位数据

//

第四步:将修改好的XML文件通过twcat软件烧写到协议芯片的EEPROM中。

三、STM32应用层代码的修改

实际上,单纯修改XML文件只是可以让协议芯片在于主站交互数据报文时,有一个依据而已,实际需要交互的数据需要有从站的CPU和外设提供,通过SPI与协议芯片交互。所以,我们还需要再STM32程序内驱动对应的硬件设备,并实现spi数据读写交互。

这里只讲解需要修改的部分:

第一步:在源代码的el9800app.h中,添加数据节点结构体系列描述:(有四个东西需要创建或修改)

第二步:将新创建的PDO节点,加入应用PDO节点管理数据(在源代码的el9800app.h中)

第三步:在源代码的el9800app.h中,对应修改1601映射数据管理对象的四个东西

第四步:在源代码的el9800app.h中,修改1c12PDO对象,因为1600~1602是映射到1c12上,最终完成主从数据交换的

第五步:在el9800appl.c文件中,按照需求为数据节点PDO分配内存空间,用于交互数据

第六步:在el9800appl.c文件中,将PDO数据缓存区内容赋值给具体的硬件接口,实现硬件操作

第七步:硬件驱动初始化,否则数据也无法在硬件上体现出来

基于STM32的EtherCAT从站IO讲解相关推荐

  1. COMX51 基于 STM32 实现 PROFINET 从站开发

    关键词: COMX51 STM32 PROFINET 摘要:comX CA-RE 实时以太网嵌入式模块(如图 1 所示)的主机接口为50根管脚的排针,支持所有主流的实时工业以太网协议(EtherCAT ...

  2. ethercat从站io输入输出模块,lan9252,stm32f407,提供原理图,源代码及相关资料

    ethercat从站io输入输出模块,lan9252,stm32f407,提供原理图,源代码及相关资料 编号:41419628426794133博文丽娜

  3. 多通路fpga 通信_【论文精选】基于FPGA的EtherCAT从站通信链路分析与验证

    原标题:[论文精选]基于FPGA的EtherCAT从站通信链路分析与验证 马保全1,2,姚旺君1,2,刘云龙1,2,张晓莉1,2,黄 兵1,2,赵德政1,2 (1.工业控制系统信息安全技术国家工程实验 ...

  4. 基于STM32+腾讯云IO+微信小程序设计的混凝土智能养护系统

    1. 前言 混凝土是现在建筑工程中非常重要的一个模块,在桥梁.道路.隧道.房子等等的建设上都少不了混凝土的使用:混凝土一般会与钢筋结合使用,作为建筑的承重结构,包括承重墙.楼板等等,需要用到混凝土,而 ...

  5. 【EtherCAT分析】一、EtherCAT从站硬件分析

    原文:https://blog.csdn.net/zhandouhu/article/details/102882356?utm_medium=distribute.pc_relevant_downl ...

  6. (转载)STM32与LAN9252构建EtherCAT从站

    目录 (一):项目简介 EtherCAT及项目简述 LAN9252工作模式 整体开发流程 移植要处理的问题 代码层面的工作 开发中使用的工具 (二):SSC的使用 SSC简介和下载 SSC构建协议栈文 ...

  7. stm32跑web服务器和协议栈的区别,STM32与LAN9252构建EtherCAT从站(二):使用SSC生成协议栈和XML文件——丁丁的个人网站...

    mdi-chevron-left Last:STM32与LAN9252构建EtherCAT从站(一):项目简介 Next:STM32与LAN9252构建EtherCAT从站(三):LAN9252的XM ...

  8. 基于赫优讯COMX嵌入式模块开发EtherCAT从站设备

    摘要:随着实时工业以太网技术的发展,在最新版本的IEC61158 Ed.4标准中已经包含了Profinet,EtherCAT,Ethernet/IP,SERCOS III等11种实时以太网行规集.以n ...

  9. 基于XMC4800 Ethercat从站的工厂自动化解决方案

    背景 随着"工业4.0"与"工业互联网"概念的提出,"互联网+制造"的概念被大众所熟知,人们称之为第四次工业革命.在这样的背景下,新的工业自 ...

最新文章

  1. matlab中表示拉普拉斯分布_CHAPT1:场论;电磁学和微波学的基本的数学手段和表示...
  2. win32汇编使用win32 api实现字符串拷贝
  3. 第二十三模板 18标准模板库
  4. ML之API:国内外各大人工智能平台(百度云/华为云/阿里云/Face++等)及其API的简介、使用方法之详细攻略
  5. oracle 对表空间 #039;users#039; 无权限,ORA-01950: 对表空间 'USERS' 无权限
  6. 《Python机器学习——预测分析核心算法》——2.2 分类问题:用声纳发现未爆炸的水雷...
  7. linux怎么添加windows引导文件,Linux与Windows 10用grub引导教程
  8. 虚拟模拟器可以用服务器,云服务器可以用什么模拟器
  9. Java基础知识清单
  10. 【JavaScript】多行文本省略,并且判断是否需要省略。
  11. F.conv2d实现代码
  12. 百度女程序员半夜打车被司机嘲讽:加班到一点,收入不如我,图啥
  13. small team
  14. 电脑开机正常,但显示器没反应怎么办
  15. 专科生的逆袭之路,比你想象中还要励志
  16. vue2和elementUI 打造落日余晖登录页和滑块校验
  17. 网络基础一(物理层)
  18. fusion 360调整字体大小
  19. 【财经期刊FM-Radio|2020年11月19日】
  20. Parse 教程:网络后台基础

热门文章

  1. springboot蛋糕甜品点销售商城系统java
  2. php计算qqbkn,QQ 加密算法最新版 _tk,bkn算法
  3. 机器学习基石-05-1-Recap and Preview
  4. 红孩儿编辑器的核心控制子系统的函数依赖关系图
  5. 手机wifi服务器文件途径,查看手机wifi服务器dns地址
  6. 下载编译curaEngine
  7. 1.广电、电信、联通、移动、无线覆盖、物联网络、校园入网统一认证问题痛点分析
  8. 一. APP连续闪退修复方案初版
  9. HTML5之Worker用法
  10. 苹果手机直播怎么投屏 苹果手机投影电脑屏幕