Ethercat总线学习:CAN、CANopen、EtherCAT、PDO与SDO

news2024/11/18 5:33:40

 各种XoE

CoE是什么

CoE == CAN application protocol Over EtherCAT,是EtherCAT应用层协议的一种,根据CiA402协议编写,使用对象和对象字典的功能来实现邮箱通讯。

PDO与SDO是常用的数据传输方式,他们在实现高效数据传输、同步方面发挥着重要的作用。

PDO(Process Data Object)== 过程数据对象

PDO是CANopen网络中用于实时数据传输的一种对象类型。用于将实时数据从一个节点发送到其他节点。PDO具有高实时性和低延迟性,适用于需要快速传输数据的应用场景。PDO的数据传输是基于事件触发,一旦有触发事件发生,PDO数据将立即传输。(需要实例展开)

SDO(Service Data Object)== 服务数据对象

SDO是CANopen网络中用于配置和管理节点参数的一种对象类型。通过请求----响应机制实现数据的读取和写入。SDO适用于配置节点参数、读取设备状态、和进行故障诊断等场景。SDO的数据传输是基于请求和响应,需要节点之间进行交互。

PDO与SDO的比较

数据传输方式:PDO是实时数据传输,数据立即发送。SDO是请求--响应机制的数据传输;

数据传输效率:PDO效率高,SDO效率低;

配置灵活性:PDO通过映射方式将对象字典中的数据直接映射到PDO数据;SDO是单点传输,只有在需要读写的时候才进行传输。

SDO的传输框架

SDO的报文形式

使用SDO消息将值0x20F0写入到ID为2,索引为1801H,子索引为3 的对象字典中

使用SDO消息,将对象字典中,索引为1801H,子索引为3的对象的数据读出 

EtherCAT设计目标和优势

工业现场往往需要稳定并且实时的通信,传感器和IO信号需要高速响应,电机的数据需要实时传输。在EtherCAT之前,就已经有CAN总线等现场总线。但随着现场的自动化系统越来越庞大,传统总线的瓶颈就越来越明显:带宽不够高,传输数据量少,无法充分利用IT技术的发展等。所以就诞生了一批基于Ethernet的现场总线,EtherCAT就是其中的佼佼者之一。

EtherCAT总线的官方描述是基于Ethernet的现场总线,为什么不直接使用Ethernet呢,因为现场通信的一些特征是和IT领域完全不同的:

1.单个系统拥有大量节点(设备)。

2.这些节点一般需要传输数据量比较少,但实时性要求很高。

如果每个节点都用一个Ethernet数据帧来通信的话,最后的通信效率就会非常的低。按照官方的一个计算示例,最终的带宽利用率可能不到5%,并且,基于Ethernet的通信协议,例如TCP,会带来额外的带宽开销和延迟,大量的带宽都被无效的数据占用。

EtherCAT的解决方法就是,所有的节点使用一个数据帧,主站发出数据帧后,所有的从站会在飞行中处理数据,读取自己需要的,塞入自己需要返回的数据,然后继续把数据帧继续向下传输,直到碰到最后一个节点,利用Ethernet的全双工特性再将数据返回给主站。

利用这种传输方式,数据帧的最大有效数据率(maximum effective data rate)可以超过90%,主站是唯一允许主动发送数据报文的设备,其他节点只能顺序传输报文,这样可以避免Ethernet网络中常见的冲突和延时,保证EtherCAT数据传输的实时特性。

并且,从站使用专用芯片(ESC)在飞行中处理数据报文时,完全使用硬件来处理, 使得整个EtherCAT网络的通信时间保持稳定可预测,和每个从站的不同部署完全无关。

EtherCAT网络中可以传输周期性的数据和非周期性的数据。

周期性数据是通过PDO(Process Data Object)来交换的,一般用于实时的数据交换,例如电机的命令位置和反馈位置,IO信号的交互等。

非周期的数据是可以通过邮箱协议来传输,最常见的就是CoE(Canopen Over EtherCAT),可以SDO(Service Data Object)来传输信息,SDO一般用于非实时的通信,例如电机参数的配置(例如分辨率, 最大电流等),包括从站的PDO配置信息也是通过SDO来传输的。

配置PDO就像为你的数据买高铁票,这样主站和从站在正式工作之前就已经提前知道了将会有哪些数据上这列高铁,每过一个从站ESC芯片将会自动取下来对应位置的数据,塞入需要返回的数据。这样可以最大化的缩减无效的数据,并且加快处理速度。

PDO信息的传输周期就是我们经常说的EtherCAT通信周期。例如正运动的常规固件默认都是1ms的周期(1K的通信频率),正运动部分产品可以设置125us的周期(8K的通信频率)。为什么默认是1ms而不是更短的周期(更高的频率)呢?控制器在这1ms内在做什么呢?从站又在做什么呢?

这个要从CSP的工作模式和电机的控制环路说起,后面章节会再详细介绍。[一般1ms已经足够小了(1K已经足够高了)。并且,电机之间的同步不是靠数据帧的到达时间,而是靠分布式时钟的,可以实现纳秒级的同步。

前面提到,因为EtherCAT数据帧的独特设计,有效数据率非常高,所以在工业自动化领域可以充分利用起来Ethernet的百兆带宽,实际上百兆带宽也可以让非常多的电机实现1ms的通信周期,例如正运动家就有128轴的控制器。

那上次留下的一个问题是,既然EtherCAT百兆总线已经这么好了,为什么还要去设计千兆和万兆总线?

答案是随着技术的发展,已经出现了更庞大更复杂的系统,例如先进的物流系统或者磁悬浮系统需要非常多的轴(几百甚至上千),并且这些轴之间需要精确同步;或者需要采集大量传感器数据的测量设备,都对总线的带宽提出了更高的要求。

更高的带宽可以让现场总线进入更多的应用领域,同样更强的总线也可以支撑设计以前没有的复杂系统。

推荐文章:EtherCAT和Ethernet的不同点有哪些, 通信周期又是什么意思?-正运动技术 (zmotion.com.cn)

工业以太网时代,该如何选择总线运动控制器? (qq.com)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1697405.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

html中被忽略的简单标签

1&#xff1a; alt的作用是在图片不能显示时的提示信息 <img src"https://img.xunfei.cn/mall/dev/ifly-mall-vip- service/business/vip/common/202404071019208761.jp" alt"提示信息" width"100px" height"100px" /> 2&#…

Vue2基础及其进阶面试(二)

vue2的生命周期 删除一些没用的 App.vue 删成这个样子就行 <template><router-view/></template><style lang"scss"></style>来到路由把没用的删除 import Vue from vue import VueRouter from vue-router import HomeView from .…

Java进阶学习笔记25——Objects类

为啥比较两个对象是否相等&#xff0c;要用Objects的equals方法&#xff0c;而不是用对象自己的equals方法来解决呢&#xff1f; Objects&#xff1a; Objects类是一个工具类&#xff0c;提供了很多操作对象的静态方法供我们使用。 package cn.ensource.d14_objects;import ja…

无货源抖店怎么起店?教你两种起店方法,记得收藏!

大家好&#xff0c;我是喷火龙。 开通抖音小店之后最重要的一步就是起店了&#xff0c;今天就给大家分享两种起店方法。 大家都知道&#xff0c;产品是做店的核心&#xff0c;品不行&#xff0c;就算平台给你免费的流量&#xff0c;那你也承接不住。 第一个&#xff0c;商品卡…

Steam在连接至服务器发生错误/连接服务器遇到问题解决办法

Steam作为全球最大的数字游戏分发平台&#xff0c;构建了一个活跃的玩家社区&#xff0c;用户可以创建个人资料&#xff0c;添加好友&#xff0c;组建群组&#xff0c;参与讨论&#xff0c;甚至直播自己的游戏过程。通过创意工坊&#xff0c;玩家还能分享自制的游戏模组、地图、…

【古董技术】ms-dos应用程序的结构

序 制定一个MS-DOS应用程序计划需要认真分析程序的大小。这种分析可以帮助程序员确定MS-DOS支持的两种程序风格中哪一种最适合该应用程序。.EXE程序结构为大型程序提供了好处&#xff0c;因为所有.EXE文件之前都有额外的512字节&#xff08;或更多&#xff09;的文件头。另一方…

跨境选品师不是神话:普通人也能轻松掌握,开启全球贸易新篇章!

随着互联网技术的飞速发展&#xff0c;跨境电商行业已成为全球经济的新增长点。在这个背景下&#xff0c;一个新兴的职业——跨境选品师&#xff0c;逐渐走进了人们的视野。那么&#xff0c;跨境选品师究竟是做什么的?普通人又该如何成为优秀的跨境选品师呢? 一、跨境选品师的…

Docker compose 的方式一键部署夜莺

官方安装文档&#xff1a;https://flashcat.cloud/docs/content/flashcat-monitor/nightingale-v7/install/docker-compose/ 介绍&#xff1a;夜莺监控是一款开源云原生观测分析工具&#xff0c;采用 All-in-One 的设计理念&#xff0c;集数据采集、可视化、监控告警、数据分析…

数据结构(四)串

2024年5月26日一稿(王道P127) 定义和实现

日志的介绍及简单实现

个人主页&#xff1a;Lei宝啊 愿所有美好如期而遇 目录 日志是什么&#xff1f; 为什么需要日志&#xff1f; 实现一个简单日志 时间戳 clock_gettime time & localtime 可变模板参数(使用C语言)&#xff0c;va_start & va_end & vsprintf 宏 __LINE__…

推荐一款媒体影音嗅探神器—Chrome扩展插件(猫抓cat-catch)

目录 1.1、前言1.2、下载地址1.3、github Releases 版本说明1.4、安装步骤1.5、猫抓插件常规设置1.5.1、设置抓取文件的类型1.5.2、设置抓取文件的后缀名 1.1、前言 我们在日常上网的过程中&#xff0c;很多音频、视频网站下载资源都非常不方便&#xff0c;要么需要安装客户端&…

【高阶数据结构】AVL树的旋转与底层(C++实现)

1.AVL树的概念及作用 2.AVL树插入数据的规则 1.按照搜索树的规则插入&#xff0c;然后更新父亲的平衡因子 2.更新父亲的平衡因子后&#xff0c;如果出现一下三种情况需要进行相应处理 3.AVL树的旋转 3.1右单旋 右单旋的所有情况可以抽象为上图&#xff1a;图中&#xff0c;a,…

【识人】感情与交友中,如何判断一个人的性格,以及是否值得交往和相处

【识人】感情与交友中&#xff0c;如何判断一个人的性格&#xff0c;以及是否值得交往和相处 文章目录 序言正文1、学会筛选&#xff0c;贴标签&#xff0c;学会区别对待&#xff0c;2、男生女生一定要在年轻的时候学会对外在祛魅3、培养付出意识&#xff0c;学会顶风相见。4、…

protobuf —— 认识和安装

protobuf —— 认识和安装 什么是序列化和反序列化有哪些常见的什么是序列化和反序列化工具Protobuf安装安装依赖开始安装 连接动态库一些遗留问题 我们今天来看一个序列化和反序列化的工具&#xff1a;protobuf。 什么是序列化和反序列化 序列化&#xff08;Serialization&a…

Yolov9调用COCOAPI生成APs,APm,APl

最近在做小目标检测的东西&#xff0c;因为后期毕业论文需要&#xff0c;所以开始使用Yolov9模型&#xff0c;运行val.py的时候不会自己产生小目标的AP指标&#xff0c;所以研究了一下&#xff0c;步骤非常简单&#xff1a; 第一步&#xff1a; 在数据集中生成json格式的Annota…

【LLM多模态】综述Visual Instruction Tuning towards General-Purpose Multimodal Model

note 文章目录 note论文1. 论文试图解决什么问题2. 这是否是一个新的问题3. 这篇文章要验证一个什么科学假设4. 有哪些相关研究&#xff1f;如何归类&#xff1f;谁是这一课题在领域内值得关注的研究员&#xff1f;5. 论文中提到的解决方案之关键是什么&#xff1f;6. 论文中的…

AIGC时代算法工程师的面试秘籍(2024.4.29-5.12第十三式) |【三年面试五年模拟】

写在前面 【三年面试五年模拟】旨在整理&挖掘AI算法工程师在实习/校招/社招时所需的干货知识点与面试方法&#xff0c;力求让读者在获得心仪offer的同时&#xff0c;增强技术基本面。也欢迎大家提出宝贵的优化建议&#xff0c;一起交流学习&#x1f4aa; 欢迎大家关注Rocky…

LVS精益价值管理系统 DownLoad.aspx 任意文件读取漏洞复现

0x01 产品简介 LVS精益价值管理系统是杭州吉拉科技有限公司研发的一款专注于企业精益化管理和价值流优化的解决方案。该系统通过集成先进的数据分析工具、可视化的价值流映射技术和灵活的流程改善机制&#xff0c;帮助企业实现高效、低耗、高质量的生产和服务。 0x02 漏洞概述…

【数据库】基于PyMySQL连接并使用数据库(代码示例)

这里写目录标题 前言1、安装PyMySQL2、打开要连接的数据库3、创建数据库连接4、获取数据库版本5、新建数据库表6、向表中插入数据7、查询表中的相关记录8、更新表中的相关记录9、删除表中的相关记录10、关闭游标和连接完整代码 前言 本文演示了如何基于PyMySQL使用代码来创建数…

异步获取线程执行结果,JDK中的Future、Netty中的Future和Promise对比

JDK中的Future和Netty中的Future、Promise的关系 三者源头追溯 Netty中的Future与JDK中的Future同名&#xff0c;但是是两个不同的接口。Netty中的Future继承自JDK的Future&#xff0c;而Promise又对Netty中的Future进行了扩展。 JDK中的Future源自JUC并发包&#xff1a; Net…