2022年11月7日【Jiawei_Z】EtherCAT从站设备描述文件xml详解

2023-11-06 07:59

本文主要是介绍2022年11月7日【Jiawei_Z】EtherCAT从站设备描述文件xml详解,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

EtherCAT从站设备描述文件xml

具体是个啥?
如何编写这个描述文件?

一、 从站设备描述文件ESI:

   从站设备描述文件 ESI( EtherCAT Slave Information)是 EtherCAT 从站设备的配置文件,文件为 XML 格式。 XML 文件编写好后,通过主站程序或其它烧写工具下载到从站设备的 EEPROM 中。ESC上电时,通过 I2C总线读取EEPROM,配置芯片内部的寄存器。从站设备描述文件的主要功能是描述 EtherCAT 从站的配置信息,主要包含以下两个部分内容: EtherCAT 从站制造商信息和 therCAT 从站描述信息。

在这里插入图片描述
设备描述文件
第一部分:描述制造商信息,主要包括制造商名称制造商ID两部分。其中制造商ID可以通过注册ETG协会会员并申请Vendor ID的方法从ETG协会官方获取。
第二部分:从站描述信息,这部分内容对从站设备的基本信息和数据通讯的相关变量进行了配置,从站的基本信息主要包括从站设备的标识、名称和接口类型等,这些信息用来表示特定的从站设备。数据通讯的相关变量包括以下几个部分:FMMU单元的类型、通道数量、映射关系;SM通道的数量、大小、起始地址;过程数据的索引、名称、类型;邮箱协议的选择、邮箱变量的定义和字典映射;分布时钟的使能和EEPROM的配置信息等等。同时,设备描述文件还有较强的扩展性,制造商除了可以配置上面所述的必要信息之外,还可以根据自己产品开发的需求添加相应的功能模块。

 在从站xml文件设计时,使用Altova XML spy软件编写XML程序,该软件是XML文件的专用编辑器,使用该软件编辑XML文件不仅可以像文本编辑器一样查看XML文件源码,还能够以表格的形式显示属性列表、数据类型和元素符号,能够让用户更直观得浏览修改配置信息。另外利用Notepad++查看和编写xml文件也很清晰,不过不能以表格形式显示。

下面对从站描述文件中一些重要的配置信息做一些说明。

(1)制造商信息:制造商信息包括制造商名称和ID。

(2)设备名称与接口类型:XML文件的Physical定义了设备的接口类型,当使用MII接口0和接口1时,Physical定义为“YY”。设备的名称定义为“SPI-Slave”。

在这里插入图片描述

(3)FMMU通道设置:定义了3个FMMU通道Outputs、Inputs和Mailbox,分别用于过程数据输出、过程数据输入和邮箱数据通讯。
在这里插入图片描述
(4)SM通道设置:SM通道一共用到4个。通道1用于邮箱数据输出,起始地址设为0x1000,控制位设为0x26,使能位设为使能;通道2用于邮箱数据输入,起始地址设为0x1080,控制位设为0x22,使能位设为使能;通道3用于过程数据输出,起始地址设为0x1100,控制位设为0x24,使能位设为使能;通道4用于过程数据输入,起始地址设为0x1180,控制位设为0x20,使能位设为使能。
在这里插入图片描述
(5)过程数据设置:在XML文件中,可以配置周期性过程数据。配置信息包括对应的SM通道、FMMU单元、索引号、数据类型、数据长度和数据名称。从站还可以定义其他类型的变量,支持的变量见EtherCATSlaveInformationSpecification。
在这里插入图片描述
(6)邮箱通讯设置:EtherCAT支持4种邮箱协议,分别是:CoE,SoE,FoE和EoE。

(7)分布时钟设置:从站运行有两种模式,一种是自由模式,一种是同步模式。自由模式时,不需要分布时钟单元的同步信号输出;但是在同步模式时,需要ET1100芯片输出同步脉冲。所以同步时钟模块有两种状态,一种是同步信号使能模式,一种是同步信号失能模式。
在这里插入图片描述
(8)EEPROM设置:在EtherCAT从站中,需要配置EEPROM的大小和一些寄存器的初始化数据。这里EEPROM的ByteSize大小为2K,相关寄存器的初始化数据为0x050E03EEE803,这个数据主要用来配置过程数据接口信息以及使能同步时钟输出信号的相关硬件驱动。
在这里插入图片描述
——————————————————————————————————————————————————————————
二、EEPROM
在EEPROM中存储从站信息。 当从设备一上电会从这里读取设备信息,对设备内部的寄存器进行配置,而且主站通过扫描来确定从设备的信息进行一系列的处理工作。 主站或者 PDI 通过读写 ESC 的 EEPROM 控制寄存器来读写EEPROM,在复位的情况下由主站来控制 EPROM 的操作,之后给 PDI 控制,使用XML 进行配置寄存器,主要是针对模式的配置使用什么接口。
使用官方提供的et1100_configuration_and_pinout_v4.4.xls 进行配置寄存器。
——————————————————————————————————————————————————————————

三、举例

    下面举一个例子。

1、整体信息:
在这里插入图片描述
2、Device整体情况
在这里插入图片描述
3、Fmmu与Sm信息:
在这里插入图片描述
4、RxPdo信息:
在这里插入图片描述
5、TxPdo信息(2个):

(1)TxPdo 1 :0x1a00 —— Entry:0x6000 —— SubIndex:0~8 。
在这里插入图片描述
(2)TxPdo 2 :0x1a02 —— Entry:0x6020 —— SubIndex:8个。
在这里插入图片描述
6、Mailbox信息:
在这里插入图片描述
7、DC信息:
在这里插入图片描述
8、Eeprom信息:
在这里插入图片描述
四、映射的概念

1、XML中的一些重要信息:

在这里插入图片描述

2、数据映射关系:

图中最左边一列是应用对象,中间一列是映射对象、最右边一列是分配对象。
在这里插入图片描述

这篇关于2022年11月7日【Jiawei_Z】EtherCAT从站设备描述文件xml详解的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/355415

相关文章

Go语言使用select监听多个channel的示例详解

《Go语言使用select监听多个channel的示例详解》本文将聚焦Go并发中的一个强力工具,select,这篇文章将通过实际案例学习如何优雅地监听多个Channel,实现多任务处理、超时控制和非阻... 目录一、前言:为什么要使用select二、实战目标三、案例代码:监听两个任务结果和超时四、运行示例五

Linux线程同步/互斥过程详解

《Linux线程同步/互斥过程详解》文章讲解多线程并发访问导致竞态条件,需通过互斥锁、原子操作和条件变量实现线程安全与同步,分析死锁条件及避免方法,并介绍RAII封装技术提升资源管理效率... 目录01. 资源共享问题1.1 多线程并发访问1.2 临界区与临界资源1.3 锁的引入02. 多线程案例2.1 为

Python使用Tenacity一行代码实现自动重试详解

《Python使用Tenacity一行代码实现自动重试详解》tenacity是一个专为Python设计的通用重试库,它的核心理念就是用简单、清晰的方式,为任何可能失败的操作添加重试能力,下面我们就来看... 目录一切始于一个简单的 API 调用Tenacity 入门:一行代码实现优雅重试精细控制:让重试按我

Python标准库之数据压缩和存档的应用详解

《Python标准库之数据压缩和存档的应用详解》在数据处理与存储领域,压缩和存档是提升效率的关键技术,Python标准库提供了一套完整的工具链,下面小编就来和大家简单介绍一下吧... 目录一、核心模块架构与设计哲学二、关键模块深度解析1.tarfile:专业级归档工具2.zipfile:跨平台归档首选3.

idea的终端(Terminal)cmd的命令换成linux的命令详解

《idea的终端(Terminal)cmd的命令换成linux的命令详解》本文介绍IDEA配置Git的步骤:安装Git、修改终端设置并重启IDEA,强调顺序,作为个人经验分享,希望提供参考并支持脚本之... 目录一编程、设置前二、前置条件三、android设置四、设置后总结一、php设置前二、前置条件

python中列表应用和扩展性实用详解

《python中列表应用和扩展性实用详解》文章介绍了Python列表的核心特性:有序数据集合,用[]定义,元素类型可不同,支持迭代、循环、切片,可执行增删改查、排序、推导式及嵌套操作,是常用的数据处理... 目录1、列表定义2、格式3、列表是可迭代对象4、列表的常见操作总结1、列表定义是处理一组有序项目的

python使用try函数详解

《python使用try函数详解》Pythontry语句用于异常处理,支持捕获特定/多种异常、else/final子句确保资源释放,结合with语句自动清理,可自定义异常及嵌套结构,灵活应对错误场景... 目录try 函数的基本语法捕获特定异常捕获多个异常使用 else 子句使用 finally 子句捕获所

C++11范围for初始化列表auto decltype详解

《C++11范围for初始化列表autodecltype详解》C++11引入auto类型推导、decltype类型推断、统一列表初始化、范围for循环及智能指针,提升代码简洁性、类型安全与资源管理效... 目录C++11新特性1. 自动类型推导auto1.1 基本语法2. decltype3. 列表初始化3

SQL Server 中的 WITH (NOLOCK) 示例详解

《SQLServer中的WITH(NOLOCK)示例详解》SQLServer中的WITH(NOLOCK)是一种表提示,等同于READUNCOMMITTED隔离级别,允许查询在不获取共享锁的情... 目录SQL Server 中的 WITH (NOLOCK) 详解一、WITH (NOLOCK) 的本质二、工作

springboot自定义注解RateLimiter限流注解技术文档详解

《springboot自定义注解RateLimiter限流注解技术文档详解》文章介绍了限流技术的概念、作用及实现方式,通过SpringAOP拦截方法、缓存存储计数器,结合注解、枚举、异常类等核心组件,... 目录什么是限流系统架构核心组件详解1. 限流注解 (@RateLimiter)2. 限流类型枚举 (