Ethercat技术调研

背景

最近我们要基于Ethercat技术进行开发,首先需要了解其基本原理,github上看到了有相关实现,一起来看看吧。

Ethercat技术

速度更快

传输速率:2*100 Mbaud 全双工
高速性、高实时性 微秒级
像火车一样有帧头、帧尾,子报文长度可变,通过车厢号,座位号找到数据

运行原理:飞速传输的以太网协议

EtherCAT 主站发送一个报文,报文顺序经过所有节点。EtherCAT 从站设备高速动态地(on the fly)读取寻址到该节点的数据,并在数据帧继续传输的同时插入数据。这样,数据帧的传输延时只取决于硬件传输延时。当某一网段或分支上的最后一个节点检测到开放端口(无下一个从站)时,利用以太网技术的全双工特性,将报文返回给主站。
简单来说,帧在走的时候是不停的,经过从站交换(提取插入)数据。下图说的每一个循环中帧的报文数据构成可以不同,比如说轴数据,每一个帧都携带这样的报文,那么循环时间是非常短的。

报文结构

不同类型的子报文,逻辑化分类好的数据,从站中处理,CRC校验诊断

性能高

实时性高

Ethecat 是工业以太网

(1)基于TCP/IP实现的工业以太网仍使用TCP/IP协议栈,通过上层合理的控制来解决通信过程中的不确定因素。这种方式具有较高的传输速率,适应于大量数据通信,更适合作为网关和交换设备的应用,不能实现很好的实时性。常用的通信控制方法有:合理调度,减少冲突的概率;定义帧数据的优先级,为实时数据分配最高优先级;使用交换式以太网等。使用这种方式的典型协议有Modbus/TCP和Ethernet/IP等。
(2)基于以太网实现的工业以太网仍然使用标准的、未修改的以太网通信硬件,但是不适用TCP/IP来传输数据。它使用特定的报文进行传输。TCP/IP协议栈能使用时间控制层分发一定的时间片来利用网络资源。该类协议主要有Ethernet Powerlink, EPA C Ethernet for Plant Automation ), PROFINET IRT等。通过这种方式可以实现较好的实时性。
(3)通过修改以太网协议实现的工业以太网,实现应答时间小于lms的硬实时,从站使用特定的硬件实现。由实时MAC控制实时通道内的通信,从根本上避免报文间的冲突。非实时数据依然能在通道中按原协议通信。典型协议有德国倍福的EtherCAT、西门子的PROFINET IRT等。

使用标准帧IEEE 802.3’
可替换为UDP/IP

拓扑灵活性

数据帧结构

数据头中,包含11位的EtherCAT数据长度,1位保留位和4位类型。

数据域由许多个子报文组成。每个子报文由19字节子报文头,最多1486字节的数据和2字节WKC组成。WKC称为工作计数器,初始值为0,每次子报文被从站操作后,WKC增加1位,当报文返回主站时,主站将比较返回报文的WKC值和预期WKC值,来确定报文是否被正确处理。

PDO对象

将CANopen作为EtherCAT的应用层,在保证兼容性的同时,为了适配EtherCAT数据链路层接口,充分发挥EtherCAT的网络优势,需要对CANopen协议相应的功能扩充,然后就有了COE(CANopen over EtherCAT)。

COE对象字典(OD):可以这样理解,“一切信息皆对象”,比如某个数据,属性,设备ID,大小,方向,某个IO变量的值等等。对象字典就是对象的集合。每个对象都有对应的索引和索引。根据索引和子索引就能找到字典里的字(对象)。主站和从站都需要有对象字典,其目的个人理解为方便主站和从站进行信息交换。

RxPDO:主站主动传输RxPDO数据给从站。

TxPDO:从站主动传输TxPDO数据给主站。

参考博客
https://zhuanlan.zhihu.com/p/594760527
https://blog.csdn.net/qq_46211259/article/details/127232886

Ethercat概念学习相关推荐

  1. Linux Ethercat主站

    IGH EtherCAT 开源主站安装及测试       看来这个开源的是能用的,直接用了一个装ubuntu的普通工控机就可以控制松下驱动器让电机转. LinuxCNC搭配Igh EtherCat M ...

  2. COMET | 概念学习使机器具有人的思维方式

    作者 | 李芬 审稿 | 涂心琪 本期介绍在斯坦福大学Jure Leskovec教授课题组于2020年7月发表的一篇论文"Concept Learners for Generalizable ...

  3. Zookeeper概念学习系列之分布式事务

    不多说,直接上干货! 初学者来说,肯定会有这么一个疑问.为什么会在zookeeper里牵扯到分布式事务? zookeeper到底是什么? zookeeper实际上是yahoo开发的,用于分布式中一致性 ...

  4. 操作系统概念学习笔记 11 进程同步(一)

    操作系统概念学习笔记 11 进程同步(一) 互相协作的进程之间有共享的数据,于是这里就有一个并发情况下,如何确保有序操作这些数据.维护一致性的问题,即进程同步. 从底层到高级应用,同步机制依次有临界区 ...

  5. Hadoop HDFS概念学习系列之熟练掌握HDFS的Shell访问(十五)

    调用文件系统(FS)Shell命令应使用 $HADOOP_HOME/bin/hadoop fs  *** 的形式!!! 所有的FS Shell命令使用URI路径作为参数. URI格式是scheme:/ ...

  6. 操作系统概念学习笔记 15 内存管理(一)

    操作系统概念学习笔记 15 内存管理(一) 背景 内存是现代计算机运行的中心.内存有非常大一组字或字节组成,每一个字或字节都有它们自己的地址.CPU依据程序计数器(PC)的值从内存中提取指令.这些指令 ...

  7. ethercat通讯协议_工业控制常用接口协议大全,长见识了

    I/O接口概念 I/O接口是一电子电路(以IC芯片或接口板形式出现 ),其内有若干专用寄存器和相应的控制逻辑电路构成.它是CPU和I/O设备之间交换信息的媒介和桥梁.CPU与外部设备.存储器的连接和数 ...

  8. 操作系统概念学习笔记 16 内存管理(二) 段页

    操作系统概念学习笔记 16 内存管理 (二) 分页(paging) 分页(paging)内存管理方案允许进程的物理地址空间可以使非连续的.分页避免了将不同大小的内存块匹配到交换空间上(前面叙述的内存管 ...

  9. EtherCAT(扒自百度百科)

    EtherCAT(以太网控制自动化技术)是一个开放架构,以以太网为基础的现场总线系统,其名称的CAT为控制自动化技术(Control Automation Technology)字首的缩写.Ether ...

最新文章

  1. poj1741(树的点分治)
  2. 特朗普“模仿”奥巴马?进阶版换脸技术DeepFakes来了
  3. nodejs 中on 和 emit
  4. jquery ajax(实现单独提交某个form)
  5. LTE上行加扰的目的是什么?
  6. 使用Python运算一个字符串表达式
  7. 生成模型与判别模型区别
  8. 【转载】adb shell dumpsys 查看内存
  9. 用两个文件a.txt;b.txt.使用linux命令,复制,a.txt文档倒数第十行的记录to b.txt文档
  10. 七大排序的个人总结(二) 归并排序(Merge
  11. 面试官 | 如何在 Spring Boot 中进行参数校验?
  12. StringUtils 方法介绍(转载)
  13. Redis无法保存ef复杂对象
  14. php phpmailer发送邮件
  15. openwrt信号弱掉线_QCA9880 openwrt 信号非常差
  16. c#控件chart制作自动更新的温湿度实时曲线图
  17. win10不能拖动文件到其它软件
  18. 基于Springboot的个人博客网站系统——可用于毕业设计(课程设计)
  19. 推荐系统:CTR模型学习总结--LR、FM、FFM、Wide and Deep、DeepFM
  20. 传统制造业数字化转型方案怎么写?

热门文章

  1. 【flash基础】简单的 打飞机小游戏
  2. TP-LINK 703N无线路由器开启IPV6功能
  3. php投屏代码,乐享影视app源码 e4a影视app开源源码 支持下载存缓投屏等功能源码下载...
  4. mdadm linux,mdadm命令_Linux mdadm 命令用法详解: mdadm是一个用于创建、管理、监控RAID设备的工具,它使用linux中的md驱动。...
  5. 《CLR via C#》设计类型.接口
  6. VSIX 插件右键菜单
  7. python if嵌套语句_Python if语句的嵌套
  8. 文本相似度算法的对比及python实现
  9. 一招解决树莓派系统黑边(没有填满显示器)的问题
  10. Gmai 账号提示