EtherCAT的COE报文

2024-01-04 14:44
文章标签 报文 ethercat coe

本文主要是介绍EtherCAT的COE报文,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

本文主要用于记录工作中需要学习的内容,如有冒犯请私信!

COE协议
下面我们介绍以下CANOpen在EtherCAT中的应用。

COE的对象字典
COE协议是完全遵循CANopen协议的,但针对EtherCAT通信做了一些扩展,索引为0x1c00~0x1c4f,用于设置存储同步管理器的类型,通信参数和PDO数据分配。


                                                        COE对象字典

                                                COE通信数据对象
上面这个表的数据会以xml文件存储在从站的EEPROM中,标签为objects 。

这里0x1C12和0x1C13两个Entry非常重要,一般我们使用这两个Entry对PDO进行管理。

周期性数据通信
周期性数据主要通过PDO进行通信。前面提到,主站通过解析对象字典来了解EtherCAT报文的PDO分配。0x1C10~0x1C2F对象字典的内容确定报文中PDO的分配。其中,子索引0是分配的PDO数目,其他子索引是PDO映射对象的索引号,也就是前面的0x1600~0x17FF。然后根据PDO映射对象的子索引和数值,就可以知道这个PDO的具体含义了,一个配置对象如下图所示:


                                                                0x1c12配置示例
对象字典的Entry一般包含索引和子索引,这里的1C12包含4个子索引。第一个子索引是包含PDO映射的数目,后面3个是映射的具体PDO。也就是说后面要使用到0x1600,0x1601和0x1602这3个PDO。每一个PDO就是一个对象,类似于C语言里的结构体,它还包括许多成员变量。例如这里1600PDO还包含2个子索引,分别是0x7000:01和0x7010:01,可见从对象字典到最终要传输的具体数据,是一个层层映射的关系。

但如果要快速理清传输的是什么数据,答案也很简单:检查1C12和1C13。

这里顺便提一提动态PDO配置的概念。动态PDO配置包括PDO Assignment和PDO Configuration,前者指的是,已经有配置好的一堆1600,1601,1602等等PDO,我们可以选择如何组合成我们自己的传输数据。PDO Configuration是指,可以修改1600,1601这些具体PDO映射的内容。实际上一个商用从站应该支持动态PDO,后面的文章会介绍如何实现动态PDO。

非周期性数据通信
EtherCAT主站通过读写邮箱数据SM通道来实现非周期性数据通信。前面我们讲过,EtherCAT处理非周期性数据通信是通过邮箱的方式,邮箱数据单元结构如下图所示:


邮箱数据
这里面类型字段如果为3,代表当前运行的是COE协议。COE的命令位只有两个字节:


                        COE数据头

SDO数据单元
SDO的传输分为上传和下载两种,下载传输常用于主站设置从站参数,上传用于主站读取从站性能参数。这里内容比较多,就不详细介绍了,感兴趣的小伙伴可以自行查阅相关资料学习。

这篇关于EtherCAT的COE报文的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

802.11报文类型在wireshark的过滤条件

– Common Filters for wireshark sniffer: #地址过滤 wlan.addr == wlan.sa eq 00:09:5b:e8:c4:03 and wlan.bssid ne ff:ff:ff:ff:ff:ff wlan.bssid eq 00:11:92:6e:cf:00 wlan.sa eq 00:09:5b:e8:c4:03 #802.11报文类型过滤

2024年最新版Ajax+Axios 学习【包含原理、Promise、报文、接口等...】

基础知识 AJAX概念 AJAX概念:是浏览器与服务器进行数据通信的技术。 认识URL 定义:统一资源定位符,简称网址,用于访问网络上的资源。 组成: http协议:超文本传输协议,规定浏览器和服务器之间传输数据的格式。域名:标记服务器在互联网中方位。资源位置:标记资源在服务器下的具体位置。 查询参数 定义:浏览器提供给服务器的额外信息,让服务器返回浏览器想要的数据。 语法:

前端报文加密

前端加密功能 前端提供简单的AES对称加密算法,注意key 和后端网关配置相同,这里打包混淆后,相对安全。 (lun-ui\src\store\modules\user.js、base-gateway-dev.yml) 后端解密功能 使用hutool提供的工具类进行解密public class PasswordDecoderFilter extends AbstractGat

XStream解析和读取xml报文

XStream读取和解析xml文件很简单,把xml结点定义好对象,最小的结点不用定义对象。不过这里要注意的是,当一个结点下有同样结点的多个时要把这个结点定义成List对象。如: 我的报文: <request>   <order>     <supplier>100000000000001</supplier>     <buyer>上海航空1</buyer>     <orderId>O

解析json报文,获取key的value

新增解析json报文,获取key的value 建立如下两种类型 CREATE OR REPLACE TYPE ty_row_str_split as object (strValue VARCHAR2 (4000));CREATE OR REPLACE TYPE ty_tbl_str_split AS TABLE OF ty_row_str_split; 新建json截取通用方法 CREAT

LIN总线CAPL函数—— 更新特定报文数据(linUpdateResponse)

🍅 我是蚂蚁小兵,专注于车载诊断领域,尤其擅长于对CANoe工具的使用🍅 寻找组织 ,答疑解惑,摸鱼聊天,博客源码,点击加入👉【相亲相爱一家人】🍅 玩转CANoe,博客目录大全,点击跳转👉 linResetRespBaudrate函数用于更新一个从节点的数据,语法如下 激活LIN从节点,使LIN从节点报文周期发送,如下图0x23 报文的默认数据如下: 通

【EtherCAT】运行原理

目录 1、有个兄弟提了个问题,如下: 2、EtherCAT运行原理 1、有个兄弟提了个问题,如下:         “您好,在这篇文章中https://blog.csdn.net/qq_46211259/article/details/139824335 EtherCAT的数据区有三个子报文,我的问题是,如果要交换过程数据的话,使用LRW不是就可以了吗,LRD和BRD的作用是什么呢

【研发日记】吃透新能源充电协议(一)——GB27930实例报文解析

文章目录 前言 背景介绍 充电协议框架 充电握手阶段 充电准备阶段 充电传输阶段 充电结束阶段 错误处理阶段 总结 参考资料 前言         近期在一个嵌入式开发项目中,用到了新能源充电协议,期间在翻阅各种资料文件时,一些地方还是容易理解偏差的。所以利用晚上和周末时间,把这些内容标注了一下,尽可能地把它们解释透彻。后面会用若干篇文章把这些内容总结分享出来,一方

EtherCAT总线

EtherCAT(Ethernet for Control Automation Technology)是一种基于以太网技术的实时工业以太网通信协议,由德国倍福(Beckhoff)公司于2003年推出。它广泛应用于工业自动化领域,特别是在运动控制、机器人、CNC机床等对实时性要求较高的场合。EtherCAT具有高速、实时、低成本和灵活的网络拓扑结构等优点。 EtherCAT 总线的主要特点 高速

MATLAB生成COE文件

MATLAB代码  % 参数设置N = 4096; % 数据点数量t = linspace(0, 2*pi, N); % 时间向量width = 12; % 位宽% 正弦波,幅度在0到5之间sine_wave = 2.5 * sin(t) + 2.5;% 三角波,幅度在0到5之间tri_wave = 5 * (1 - abs(mod(t/(2*pi)*4, 2) - 1));% 方波,