比特派钱包安卓版|ethercat报文
比特派钱包安卓版|ethercat报文
EtherCAT报文格式详解_ehercat报文-CSDN博客
>EtherCAT报文格式详解_ehercat报文-CSDN博客
EtherCAT报文格式详解
最新推荐文章于 2022-09-07 14:35:44 发布
EtherCat技术研究
最新推荐文章于 2022-09-07 14:35:44 发布
阅读量7.2k
收藏
47
点赞数
3
分类专栏:
EtherCAT
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/gufuguang/article/details/119876404
版权
EtherCAT
专栏收录该内容
13 篇文章
71 订阅
订阅专栏
1、EtherCAT报文组成
从图中抓的包可以看出EtherCAT报文分为三部分(1)、以太网帧头 (2)、EtherCAT帧头 (3)、EtherCAT数据 说明:KUNBUS TAP是实时抓包工具加的时间戳信息,报文的FCS也在里面
2、帧头解析
(1)、EtherCAT是基于以太网的所以头部首先是以太网帧头,包含目的和源MAC地址,EtherCAT帧类型固定为 0x88A4
(2)、EtherCAT帧头2字节,包含ECAT数据长度
3、ECAT数据解析
ECAT数据就是主站发出的命令组成的,每个命令按顺序排列在报文中,ECAT 命令的格式见上面ECAT CMD格式图,具体命令语句的意思可以查询相关文档。
以LRD命令为例,主站连接了6个从站,所以WKC是6,LRD是逻辑读取从站数据命令,也就是映射的TxPDO数据,对应的单个从站是 108 / 6 = 18B,对比配置的XML文件的TxPDO可以看出确实是每个从站配置了18个字节的TxPDO数据。
优惠劵
EtherCat技术研究
关注
关注
3
点赞
踩
47
收藏
觉得还不错?
一键收藏
知道了
9
评论
EtherCAT报文格式详解
1、EtherCAT报文组成从图中抓的包可以看出EtherCAT报文分为三部分(1)、以太网帧头 (2)、EtherCAT帧头 (3)、EtherCAT数据 说明:KUNBUS TAP是实时抓包工具加的时间戳信息,报文的FCS也在里面2、帧头解析(1)、EtherCAT是基于以太网的所以头部首先是以太网帧头,包含目的和源MAC地址,EtherCAT帧类型固定为 0x88A4(2)、EtherCAT帧头2字节,包含ECAT数据长度3、ECAT数据解析ECAT数据就是主...
复制链接
扫一扫
专栏目录
EtherCAT报文-BWR(广播写)抓包分析
kevin1499的博客
10-14
274
使用Wireshark抓包EtherCAT的BWR报文,分析其报文组成。
【EtherCAT详解】基于Wireshark的EtherCAT帧结构解析
自强不息怀壮志以长行,厚德载物携梦想而抚凌。
12-01
1692
EtherCAT的报文比较繁琐,且一些参考书籍错误较多,且晦涩难懂,对于初学者,很难快速的入门。本文适用于有一定基础的研究者,如对报文有一些研究、对canopen协议有一定了解、并且对TwinCAT有了解的研究者。当然,对于初学者来说,也是很好的引导,少走很多弯路。本文测试的数据,可用于对应数据帧结构一一对应来理解帧的结构。
9 条评论
您还未登录,请先
登录
后发表或查看评论
通信与网络中的工业以太网EtherCAT冗余和热插拔技术
11-07
摘要: EtherCAT是一种实时工业以太网协议 ,使用冗余技术是实现热插拔和提高通信可靠性的重要手段.首先介绍了实时工业以太网 EtherCAT的组成、工作原理和报文结构 ,研究了使用环型网络拓扑结构实现基于 EtherCAT的工业自动化控制系统故障容错及热插拔技术 ,分别规划了在网口故障、链路故障和节点故障时冗余帧传播机制、故障点定位和恢复策略.开发了链路冗余 EtherCAT主站驱动程序 ,将常规 EtherCAT主站驱动程序做了修改 ,加入链路冗余机制 ,对上层应用屏蔽了冗余信息和操作. 最后完成了冗余和热插拔的性能测试实验 ,结果表明系统性能优越 ,运行稳定.
工业以太网是改进
wireshark对Ethercat抓包分析
云淡风轻
05-12
1万+
简介wireshark对Ethercat抓包分析工具准备wireshark:www.wireshark.org下载2.0+版本的wireshark,工具已经内嵌了对Ethercat的支持抓包设置过滤器如下就可以显示所有的ethercat数据包了导出特定分组,就可把抓到的包保存下来了
分析单包分析分类分析通过过滤器分析特定的一类数据这里有ethercat协议的过滤显示说明display filter
基于FPGA的EtherCAT从站通信链路分析与验证
10-16
EtherCAT是工业控制领域广泛应用的现场总线之一,从站控制器ESC(EtherCAT Slave Controller)是从站模块实现EtherCAT协议数据通信的关键,对从站控制芯片实现自主可控是工业控制系统国产化研发的重要基础。基于EtherCAT通信协议及基本通信功能逻辑,设计了EBUS编码/解码、Auto-forwarder、Loop-back function关键通信节点的FPGA状态机,并通过解析各阶段数据状态变化,验证了各节点通信数据的正确性。实验结果表明,基于上述状态机的FPGA实现EtherCAT从站基本通信链路是完全可行的。
EtherCAT---帧格式详解
ethercat_i7的博客
11-16
1万+
以COE(CANopen over EtherCAT)的SDO服务为例,EtherCAT帧格式如下图所示:从图中可看出CANopen、EtherCAT和Ethernet这几个协议的大致关系。
EtherCAT使用与解析-子报文填充与发送
lswdcyy的博客
04-03
2493
ethercat数据帧是基于ethernet数据帧的,整体来讲也就是:
ethernet数据报头 + ethernet数据 + FCS这样的格式;
而ethercat子报文则填充在ethernet数据部分进行发送,具体来说呢,整体的格式如下:
先暂时只讨论子报文数据部分,具体的整个的报文组成放在之后描述,那么在子报文中,他的构成也可以大体明白了,就是 子报文头+子报文数据+WKC,先了解子报...
ethercat报文分析
老鹰不捉小鸡
12-04
1825
Line 109822: 12203 0.771592 MS-NLB-PhysServer-27_21:e0:bf:f2 Broadcast ECAT 104 2 Cmds, ‘LRW’: len 11, ‘FRMW’: len 34
Line 109827: EtherCAT datagram(s): 2 Cmds, ‘LRW’: len 11, ‘FRMW’: len 34
Line 110839: 12316 0.779067 MS
工控协议解读之EtherCAT协议硬核分析(转自知乎“智能制造之家“)
qq_43599327的博客
09-07
7060
EtherCAT协议
倍福EtherCAT通信协议详细解析
热门推荐
weixin_41883890的博客
06-07
2万+
单轴的运动控制系统可分为开环、半闭环和闭环伺服系统。多轴运动控制系统可以分成点位控制、连续轨迹控制和同步控制。典型的运动控制系统,从结构上看,包括上位机控制窗口、运动控制器、驱动器、电机以及测量反馈系统等几个部分组成:
1.2 实时以太网
实时以太网(RTE, Real Time Ethernet)是常规以太网技术的延伸,以便满足工业控制领域的实时性数据通信要求。目前,国际上有多种实时工业以太网协议,根据不同的实时性和成本的要求使用不同的原理,大致可以分为以下三类:
(1)基于TCP/IP实现的工业以太
etherCat抓包
01-18
etherCat抓包工具ET2000en应文版,etherCat开发辅助工具
ethercat linux 主站igh程序讲解
01-08
linux,ethercat 开源master igh
汇川伺服电机
igh流程讲解
英文论文Motion Control of 6-DOF Manipulator Based on EtherCAT
六轴机械臂开源控制
EthrCAT抓包及报文分析.docx
03-18
讲述EtherCAT报文的抓取方法,报文过滤及简单的分析
以太网现场总线ethercat实用详解
11-16
以太网现场总线ethercat实用详解以及相关的驱动开发
ethercat以太网报文可用wireshark打开
09-21
ethercat协议以太网报文,可以用wireshark软件打开,适用于学习ethercat报文解析,学习各种工业以太网协议可参考本人其他下载文件
EtherCAT报文wireshark抓包分析.xlsx
最新发布
12-24
EtherCAT报文wireshark抓包分析
Ethercat协议详解.zip
05-12
Ethercat主站协议详解,对于想要开发主站的同学有很大帮助,便于理解主站源代码的相关作用。注:英文文档 1、Ethercat协议原理,应用层,数据链路层,物理层。 2、Ethercat从站寄存器说明 3、ET1200硬件详解
EtherCAT协议栈代码详解
05-31
EtherCAT代码详解,ET9300,开发EtherCAT的的必备文档。
IgH配置EtherCAT流程
EtherCAT
01-22
1万+
IgH设置EtherCAT数据流程
在启动IgH协议栈后,协议栈会自动的把EtherCAT从站初始化到PREOP模式,从PREOP状态迁移到SAFEOP状态,需要设置PDO、DC等数据。以山洋电机为例数据设置流程如图 1.1所示:
图 1.1 PREOP状态迁移流程
IgH应用实现流程
1申请获取主栈
在配置数据之前首先获取一个主栈结构体,该结构和协议栈中的master对应。通过获取到的...
ethercat 报文详解
12-12
EtherCAT(以太网控制器区域网络)是一种实时以太网通讯协议,它允许工控设备之间实现高速数据交换和同步控制。EtherCAT报文是在EtherCAT网络中进行数据传输和通信的基本单位,它承载了从控制器到设备和设备到控制器之间的各种数据和命令。
EtherCAT报文由多个部分组成,其中包含了头部、数据部分和校验部分。头部包括了目的地址、源地址和帧类型等信息,用于指示报文的发送和接收对象以及报文类型,如数据帧、同步帧和配置帧等。数据部分则承载了实际的数据内容,包括传感器数据、执行器命令等。校验部分用于验证报文的完整性和正确性,保证数据的准确传输。
在EtherCAT网络中,报文可以通过多种方式进行传输,包括广播、单播和多播等。广播报文会被所有设备接收和处理,单播报文则只被指定的目标设备接收,而多播报文则由多个设备共同接收和处理。通过这种方式,EtherCAT网络可以实现大规模设备的高效通讯和同步控制,满足了工业自动化领域对高性能实时通讯的需求。
总之,EtherCAT报文是实时以太网通讯中的关键组成部分,它通过承载和传输各种数据和命令,实现了工控设备之间的高速通讯和同步控制,是工业自动化领域中的重要技术之一。
“相关推荐”对你有帮助么?
非常没帮助
没帮助
一般
有帮助
非常有帮助
提交
EtherCat技术研究
CSDN认证博客专家
CSDN认证企业博客
码龄12年
暂无认证
84
原创
3万+
周排名
2万+
总排名
28万+
访问
等级
2395
积分
574
粉丝
170
获赞
261
评论
1122
收藏
私信
关注
热门文章
机内码、国际码、区位码换算
24894
各种ADC转换方式的优缺点
20236
IgH详解 一、概述
12715
IgH配置EtherCAT流程
12359
EtherCAT设备协议详解二、EtherCAT状态机及配置流程
7935
分类专栏
Linuxcnc-ethercat
1篇
IgH详解
23篇
arm_Linux
1篇
TCP/IP
1篇
S3C2440
18篇
EtherCAT
13篇
最新评论
IgH详解十二、IgH实现使用ENI文件配置从站(二)
EtherCat技术研究:
扫描跟兼容性关系不大,先要确保ethercat报文是否有正常收发
IgH详解二、主栈启动流程(二)
EtherCat技术研究:
要看你报文是否有超时,是否有丢包?用的实时网卡驱动吗?需要你根据自己环境去查
IgH详解十二、IgH实现使用ENI文件配置从站(二)
weixin_50007256:
大佬,我偶然会出现伺服和io的从站突然重启后扫描不上来的情况,重启前还是能扫描上来的,是因为兼容性的问题么。
IgH详解二、主栈启动流程(二)
weixin_50007256:
大佬,从站成功切到op之后,为了检测从站是否会断开,我判断ec_slave_config_state_t.online的值,出现有时候online为false的现象,但是从站状态一直是op,这是什么原因呢
IgH详解十、EtherCAT DC(4)主站做参考时钟和从站作参考时钟性能对比
records111:
大神你好,我想请教下你用从站作为参考时钟的话,主站的时钟是怎么被同步的呢,可以详细聊聊吗
您愿意向朋友推荐“博客详情页”吗?
强烈不推荐
不推荐
一般般
推荐
强烈推荐
提交
最新文章
倍福控制器搭建IgH环境
全志A40i PRREMPT-RT Linux平台搭建IgH环境
ubuntu 16.04 阿里软件源
2023年11篇
2022年18篇
2021年12篇
2019年3篇
2018年1篇
2015年2篇
2013年58篇
目录
目录
分类专栏
Linuxcnc-ethercat
1篇
IgH详解
23篇
arm_Linux
1篇
TCP/IP
1篇
S3C2440
18篇
EtherCAT
13篇
目录
评论 9
被折叠的 条评论
为什么被折叠?
到【灌水乐园】发言
查看更多评论
添加红包
祝福语
请填写红包祝福语或标题
红包数量
个
红包个数最小为10个
红包总金额
元
红包金额最低5元
余额支付
当前余额3.43元
前往充值 >
需支付:10.00元
取消
确定
下一步
知道了
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝
规则
hope_wisdom 发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额
0
抵扣说明:
1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。 2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。
余额充值
工控协议解读之EtherCAT协议硬核分析 - 知乎
工控协议解读之EtherCAT协议硬核分析 - 知乎首发于智能制造之家切换模式写文章登录/注册工控协议解读之EtherCAT协议硬核分析智能制造之家化学制品制造业 从业人员写在前面大家好,我是小智,智能制造之家号主~前面我们介绍了西门子、罗克韦尔、施耐德、倍福、三菱等工业巨头的工控协议和端口:西门子、施耐德、三菱、RA:全球主要工控协议及端口解析也原创了很多工业协议相关的硬核文章:技术解读PROFINET、Ethernet/IP等7种主流工业以太网最详细的工业网络通讯技术与协议总结解读(现场总线、工业以太网、工业无线)IT、OT 深度融合的当下,无论是OT侧,还是IT侧,各种协议都起到了至关重要的作用,比如前面我们前面已经解读了西门子的S7CommPlus,罗克韦尔的Ethernet/IP、施耐德的UMAS以及OPC UA等:TIAV17+S7-1200:解析最新西门子S7CommPlus协议入门工业通讯之EtherNet/IP协议分析硬核技术分析OPC UA—面向未来的工业通信全解析西门子、施耐德、罗克韦尔:三大工控厂商PLC密码保护突破之旅工控巨头西门子、施耐德私有S7、UMAS协议解析与PLC密码破解今天我们工业控制协议解读之EtherCAT~转载自网络安全应急技术国家工程实验室 ,作者 | 天融信 一、概述EtherCAT(Ethernet for Control Automation Technology)是一种基于以太网的开发构架的实时工业现场总线通讯协议,最初由德国倍福自动化有限公司(Beckhoff Automation GmbH) 研发。它于2003年被引入市场,于2007年成为国际标准,并于2014年成为中国国家标准。EtherCAT的出现为系统的实时性能和拓扑的灵活性树立了新的标准。EtherCAT的特点还包括高精度设备同步,可选线缆冗余,和功能性安全协议(SIL3)。 二、原理EtherCAT技术突破了其他以太网解决方案的系统限制:通过该项技术,无需接收以太网数据,将其解码,之后再将过程数据复制到各个设备。EtherCAT是一种实时以太网技术,由一个主站设备和多个从站设备构成。主站可以使用标准网卡实现,从站选用特定的EtherCAT从站控制器ESC(EtherCAT Slave Controller)或者FPGA实现。EtherCAT报文(标准的ISO/IEC 8802-3以太网帧)由主站设备发出,途经各个从站设备,从站设备在报文经过时进行提取或插入数据。当报文到达网段内最后一个从站设备时再反方向传输,最后由第一个从站设备把收集到的信息返回到主站设备。图2.1 过程数据插入至报文中 三、拓扑EtherCAT支持总线型、树型或星型等多种拓扑结构。通过现场总线而得名的总线结构或线型结构也可用于以太网,并且不受限于级联交换机或集线器的数量。最有效的系统连线方法是对线型、分支或树叉结构进行拓扑组合。因为所需接口在I/O 模块等很多设备中都已存在,所以无需附加交换机,还可以使用基于以太网的星型拓扑结构。EtherCAT 系统最多可容纳65535个设备,因此整个网络规模几乎是无限制的。采用不同的传输电缆可以最大限度地发挥布线的灵活性。灵活而价格低廉的标准以太网插接电缆可通过以太网模式(100baseTX)或通过E总线来传输信号。光纤(PFO)可以用于特殊的应用场合。以太网带宽(如不同的光缆及铜缆)可以结合交换机或媒介转换器使用。快速以太网的物理特性可以使设备之间的距离达到100米,而E-bus只能保障10米的间距。快速以太网或 E-bus可以按照距离要求进行选择。图3.1 灵活的拓扑结构 四、协议格式介绍4.1 EtherCAT 以太网EtherCAT数据可以使用标准的IEEE 802.3以太网数据帧传输,格式如图4.1所示,由以太网头、EtherCAT帧和FCS(帧校验)组成。图4.14.1.1以太网帧头Dest Mac和Src Mac分别表示接收方MAC地址、发送方MAC地址,VLAN Tag为可选字段,可以省略,值为IEEE 802.1规定的 0x81,0x00和2字节标签控制信息.Ether Type值为0x88A4,表示EtherCAT协议。4.1.2EtherCAT帧EtherCAT帧格式如图4.2所示,分为头和数据两个部分。图4.2EtherCAT头:Length字段值为EtherCAT数据的长度,Res为保留位,Type值的不同后续EtherCAT数据格式也不相同,值可以取:0x0001:EtherCAT DLPDU0x0004:network变量0x0005:邮箱EtherCAT数据(主要介绍EtherCAT DLPDU):EtherCAT数据如图4.3所示,由多个子报文组成,每个子报文由子报文头、数据和WKC构成。图4.3子报文头:数据:数据的类型根据Cmd和Address这个字段确定。Address前16bit代表从站地址,后16bit代表寄存器地址,当Cmd为逻辑寻址类型时,Address整个32bit代表逻辑地址。寄存器地址大于0x1000,考虑是否为邮箱数据,邮箱数据在从站中的地址为SM0-SM1,SM0起始位置为0x1000 ,SM2-SM3属于FMMU(总线内存管理单元),只能逻辑地址访问。WKC:WKC(工作计数器)初始值由主站设置为0,当子报文经过从站时会对WKC进行增加,增加的数值根据Cmd的不同有所区别。当数据帧返回主站后,主站设备会根据WKC的值来判断报文是否被正确处理。4.1.3 FCS接收方可以用FCS值来判断数据是否完整。4.2 EtherCAT UDP在4.1介绍了EtherCAT利用以太网帧传输的报文格式,EtherCAT协议还可以作为UDP/IP数据报传输,如图4.4所示,二者报文格式的区别主要为增加了IP头和UDP头,EtherCAT UDP协议适用于实时性要求不是很严格的场合。图4.44.3 报文示例包含EtherCAT帧的以太网头如图4.5所示:图4.5EtherCAT帧头如图4.6所示:图4.6EtherCAT帧数据中其中子报文如图4.7所示:图4.7五、寻址方式及命令类型在EtherCAT子报文中的Address字段用于对EtherCAT设备进行寻址,寻址方式有位置寻址、节点寻址、逻辑寻址。5.1位置寻址位置寻址方式根据从站的物理位置来实现,在子报文头中Address字段前16bit用于存放地址值,报文每经过一个从站设备,地址值加1,当从站接收到地址值为0的报文则就是该从站需要接收的报文。5.2节点寻址节点寻址是通过主站在数据链路层启动阶段配置的节点地址来寻址从站。这确保了即使网段的拓扑结构改变或者设备增加/减少,从站设备也能通过相同的地址配置来寻址。5.3逻辑寻址首先需要了解FMMU(总线内存管理单元),存在于从站芯片ESC中,主要负责建立从站物理地址与主站逻辑地址的映射关系。逻辑寻址使用子报文头中Address字段全部空间来表示4GB的逻辑地址空间。当从站收到报文时,会检查报文中地址与FMMU中的地址是否相符,相符则根据具体命令进行读写操作。5.4命令类型EtherCAT可以根据寻址方式的不同对命令类型进行分类。六、总结EtherCAT拥有多种机制,支持主站到从站、从站到从站以及主站到主站之间的通讯。它实现了安全功能,采用技术可行且经济实用的方法,使以太网技术可以向下延伸至I/O级。EtherCAT功能优越,可以完全兼容以太网,可将因特网技术嵌入到简单设备中,并最大化地利用了以太网所提供的巨大带宽,是一种实时性能优越且成本低廉的网络技术。硬核专辑ERP/PLM/MES/SCADA/PLC/工业软件研究报告信息化、数字化、智能制造、工业互联网解决方案自动化、信息化、数字化、工业网络、仿真与虚拟调试入门WinCC技术 | 工业网络 | MES技术相关| 工业巨头战略布局 | 工业通讯案例 仿真与虚拟调试 | 职业感悟、认知提升 | 自动化控制标准合集工业数据采集(MES\SCADA\PLC\IOT\传感器..)产业研究报告2021-08-24详细解读全球工业数字孪生主流玩家、技术体系与产业布局2021-08-19西门子、达索、PTC、中望:全球CAD核心玩家产品力对比分析2021-08-16工业软件深度报告之生产管控篇(MES+SCADA+DCS+PLC)2021-08-15MES与ERP主流接口方式与主要交互数据项2021-08-13XX汽车焊装智能工厂控制系统与信息系统(PLC+SCADA+MES)规划设计2021-08-10全球CAE市场:西门子、达索、ANSYS...,国产工业软件“无人区”2021-08-09工控系统行业报告:PLC/DCS/SCADA市场的中国机遇2021-08-08体系解读智能制造、核心技术及关键系统(300页PPT下载)2021-08-07180页PPT,详述汽车数字化工厂核心技术2021-08-06数字化车间网络搭建之PLC间跨网段通讯的4种方法2021-08-03中国智能机床行业全产业链分析2021-08-02工厂信息化系统(ERP、PLM、MES、WMS)架构设计与建设规划2021-07-31海外工业软件研究之西门子:成功密码2021-07-29发布于 2021-09-24 10:44工控工业自动化智能制造赞同 111 条评论分享喜欢收藏申请转载文章被以下专栏收录智能制造之家微信公众号:智能制造之家,10W+朋友共话智
(笔记)EtherCat报文格式详解 - tdyizhen1314 - 博客园
(笔记)EtherCat报文格式详解 - tdyizhen1314 - 博客园
会员
周边
新闻
博问
AI培训
云市场
所有博客
当前博客
我的博客
我的园子
账号设置
简洁模式 ...
退出登录
注册
登录
tdyizhen1314
电子学堂
(笔记)EtherCat报文格式详解
说明:本文是从EtherCat初学者的角度来撰写的,详细介绍的其报文格式,特别是应用层与Canopen之间的关系。特别感谢:https://zhuanlan.zhihu.com/p/406428272?utm_id=0的贡献。
EtherCAT这个名词不仅仅只是代表着一个报文数据格式约定层面的通讯协议,它的从设备是需要使用专用的通信芯片才可以完成传输的,比如EtherCAT的开发者“倍福(Beckhoff)公司“的官方原厂芯片ET1100,其他的各个芯片厂商会取得倍福公司的内核授权,开发相关芯片,如亚信的AX58100等等。
从物理层来看EtherCAT的通信电信号和我们普通的以太网一样,通信线也是使用普通网线+RJ45接口、或者光纤连接。因此理论上任意一个网卡模块都可以收发EtherCAT的数据内容,因此对于主站而言,使用普通的电脑通过网线连接一个EtherCAT从站就可以实现通信了,但是EtherCAT对于从站的要求就有特殊的定义,必须要使用专业的芯片才能完成,这个芯片被称为ESC。
关于从站芯片的特殊性、从站芯片的数据处理以及实现原理,本文不对此进行深入介绍,因为这部分内容参考倍福公司文档、视频;以及网上的各种资料可以有更好的理解,何况其内容之多是不适合用文档进行描述,本文只是重点介绍应用开发人员需要了解的EtherCAT的通信知识,帮助开发者上手EtherCAT的通信理解。
简单的说,应用开发者可以把EtherCAT分为两层:链路层和应用层,本文是以EtherCAT的从设备开发上,对这两层进行介绍。
一、EtherCAT链路层
EtherCAT的从设备是必需要使用专用的通信模块才能实现的,从设备方案上一般是使用MCU(或其他控制器)+ESC芯片来实现。链路层的功能就是在ESC芯片上完成解析、发送的;通过配置ESC芯片,使芯片正常运行链路层功能并把应用层的数据交给MCU。
ESC芯片还具有一个特点,那就是通常会给这个芯片外挂一个EEPROM存储器,里面可以保存一些芯片初始化的寄存器配置,这样就不需要每次上电后由MCU或主站来进行配置了。
对于开发者而言,链路层的原理只需要知道EtherCAT的模型概念:
报文是由主站发出,然后像一条列车一样发往各个从站,每个从站认为是串联起来的,会按照目前串联的位置顺序对数据进行发送,就像是列车的轨道一样;每到一站,数据就像货物一样可以以极快的速度进行上下车,到达最后一站就开始原路返回(在网线上看就是在同一根网线里的TX和RX,其中TX就是列车出发的方向,RX就是返程的方向。每个从设备一般有两个以太网口,一个口对接上一个从设备,另一个对接下一个从设备,而对应连接的两条网线在本地被“连接“成了一条网线,所以整个网络的所有网线可以认为是同一根网线。),数据每经过一个往返就完成了一次通信,主站就是列车的起始站,所有通信都是由主站发起并把控的。
1.1、EtherCAT数据帧格式
首先,需要了解EtherCAT帧格式,如图:
如图所示,报文的起始数据我们看到了熟悉的内容:以太网帧头,只是其中的帧类型是EtherCAT专有的0X88A4,后面的就是EtherCAT的数据内容了。这与我们熟知的网络通信格式不同,不是遵循着TCP/IP的分层格式,没有网络层和传输层。
图中清晰明了的显示了EtherCAT的格式中的各个部分,其中“第三行“的子报文格式结构中的”数据“段就是属于应用层的内容了(也称为一个”邮箱“数据),而其他部分都是由EtherCAT的链路层进行解析的,MCU不需要也无法参与其解析工作。
帧格式说明如下图所示(列出了除了子报文格式的其他内容,子报文格式放到1.2章中进行说明):
其实EtherCAT也还是能支持嵌入了UDP/IP格式的数据帧格式的(只是EtherCAT数据段会让出28个字节长度给UDP/IP段使用),如图:
1.2、EtherCAT链路层通信机制
要了解EtherCAT的链路层通信机制,首先就要明白EtherCAT通信链路层的通信“目标“,也就是通信到底是需要交换什么东西,数据内容又是怎么呈现的?
这个问题的答案就是:EtherCAT的链路层定义每一个从设备都具有一个数据空间,被称为DPRAM,这段空间长度为16位,范围为0x0000~FFFF,主站与从站的通信目标就是能够读、写这段空间内允许被访问的数据。这段空间存在于从站的ESC芯片里,主站和从站MCU都可以访问这段空间(这段空间需要SM进行管理,后文会进行说明),从而作为中间缓存提供给应用层和主站之间建立起通信的桥梁。
好,明确了这个目标之后,我们就要开始了解实现这一目标的方法了,我们可以分两步来进行:
1、主站与从站ESC芯片通信,并可以通知MCU数据的到达等功能。
2、从站MCU与ESC芯片通信。
其中,第1步就是链路层的通信机制需要实现的内容了,这个通信机制主要的内容就是子报文来实现的。
关于子报文,我们从上文的1.1章可以看到一个完整EtherCAT数据包中可以有多个子报文,这里的多个子报文并不是指有几个从设备就一定对应着有几个子报文,而是每个子报文中都有自己的指令逻辑可以寻址找到要通信的从站。
1.2.1、子报文说明
配合1.1章中的EtherCAT数据帧格式,子报文格式说明如图:
简单的说,主站发出来的子报文就是通过上图中的“命令“配合”地址区“和“长度”寻址到目标从设备,从而对”数据区“中的内容进行读、写操作。这里主要就是对”命令“、”地址区“、“长度”、“数据区”四个部分进行说明,其他的内容不是初学者急需了解的,可以查看相关资料就行。
首先需要了解一下子报文的命令码:
一个子报文想寻址到要找的从站,可以分四种命令:顺序、设置、逻辑、广播寻址。与上图中的指令描述一一对应。
1.2.1.1、顺序寻址与设置寻址
顺序寻址:就是按照网络连接的顺序,从主站往后数的从站编号,按照负数递减寻址对应的从站,比如0为第一个从站,-1为第二个从站……依次递推。
设置寻址:就是给每个从设备分配一个“从站地址”,通过找到对应的从站地址来确定通信的从站,也是传统主从网络中常见的形式。从站地址可以在ESC外挂的EEPROM中预先设置好,也可以是通信过程中进行修改。
由于这两种寻址方式只是固定地址与位置顺序的区别,其他的方面几乎一致,所以也统称为“设备寻址”,设备寻址的指令对子报文格式中的“地址区”的使用如下图:
其中地址区被分为”16位的从站地址+16位的从站内存地址“,再配合子报文格式中的“长度”和“数据区”,子报文就找到要寻址的从设备,并对数据内容进行交互了。顺序寻址只是在网络初始化阶段时被使用,对每个从站设备的从站地址进行读写,而后面的通信通常都是使用设置寻址来进行。
1.2.1.2、逻辑寻址
逻辑寻址是另一种更加灵活的寻址方式,基本概念主要需要了解以下几点:
1、我们从前文知道了每个从站的ESC芯片中都有一个16位长度的物理空间,其实主站也有自己的空间,不过是32位长度的,4G大小的“数据逻辑地址”空间。
2、逻辑寻址就是把主站的“数据逻辑地址”与从站的“物理空间”映射起来,一旦映射好了之后,主站访问从站数据就像是访问自己的内部空间一样,只需要发出指定要读写的“数据逻辑地址”即可达成目的。所以使用逻辑寻址的子报文格式中的“地址区”的使用就不是前文的设备寻址的格式了,而是一整段32位地址区来表示主站要访问的“数据逻辑地址”。
3、主站的“数据逻辑地址”与从站ESC的“物理空间”映射是需要在使用逻辑寻址指令通信之前就映射好,进行这个映射功能就是由从站的ESC芯片内的FMMU完成的。
由于FMMU是ESC中的一个功能模块,在ESC中有专门配置FMMU的相关寄存器,寄存器的具体地址和FMMU的个数可以查看具体使用的ESC芯片手册,但是寄存器的内容都是一样的,如图是一个映射的例子:
如图中的例子,映射一旦分配好了之后,主站就可以在子报文中使用逻辑寻址的相关指令,访问“数据逻辑地址”0x00014711时,就可以操作配置了这个FMMU的从站的0x0F01的物理地址的数据了。这里可以看出逻辑寻址有以下几个特点:
1、逻辑寻址完全不关心从站的地址,只关心有配置了FMMU的从站是否映射了当前要访问的逻辑地址。
2、多个从站都可以配置FMMU映射到主站的同一片逻辑地址,这种情况下主站对一个逻辑地址的操作就可以同时对多个映射的从站进行操作。
1.2.2、存储同步管理SM
在前文中我们已经了解到了EtherCAT的链路层通信机制,也就是主站是怎么与从站ESC芯片的物理空间进行数据交互的,那么很容易联想到一个问题:ESC的物理空间既可以被主站操作,也可以被从站的MCU操作,怎么保证这两者的操作的正确性,以及通知对方另一方有最新的操作需要处理?
这就是ESC芯片中的一个功能模块:存储同步管理(SM)的功能需要解决的了,SM用于阻止主站和从站MCU同时访问 ESC存储区,确保数据的一致性,以及通知MCU数据到达等功能。也就是说从站MCU与主站之间通信需要指定ESC的物理空间作为缓存,那么这片缓存必然要被SM进行管理才可以合理的使用,SM管理的区域就是从站MCU应用层与主站之间的通信交互通道。
SM既然是ESC芯片内的一个功能块,也和FMMU一样,有专门的寄存器进行配置,具体可以查看ESC芯片手册,寄存器会有以下功能:
这里不对SM寄存器多做介绍,具体内容还是查看芯片手册,但是需要说明的是SM中可以配置它所管理的物理地址,可以配合FMMU共同指向某片物理空间,使这片空间既可以被逻辑寻址所访问,也同时受到SM的管理:
当SM配合FMMU共同指向一片物理空间的情况,就是用来传输“周期性过程数据”的,也就是“PDO数据”,此时SM中的运行模式配置为3个缓存区以保证数据的一致性。从站MCU通过分别使用SM2和SM3两个通道来接收和发送主站的数据所指向的物理空间由于有FMMU映射,可以使用逻辑寻址进行访问。
当SM不配合FMMU共同来管理一片物理空间时,就是用来传输“非周期性数据”的,也就是“邮箱数据”,此时SM中的运行模式配置为1个缓存区,而从站MCU通过分别使用SM0和SM1两个通道来接收和发送主站的数据以避免读写冲突。这一片物理空间由于没有FMMU管理,所以不能使用逻辑寻址访问,而是通过设置寻址进行访问的。
这里的“PDO数据“、”邮箱数据“就是ESC要与从站MCU交互的数据了,这一部分放到EtherCAT应用层进行描述。
二、EtherCAT应用层
首先,先看一张EtherCAT描述总图:
在结合了前文的链路层讲解之后,配合这张图进行进行理解,会有更直观的感受,图中的DL层就是前文1章节的内容了,前文最后提到了邮箱数据和过程数据,就是要提交给应用层的内容了,所以我们可以看到图中的AL层就是MCU内部要处理的应用层了。
EtherCAT应用层协议支持VOE\FOE\EOE\COE等,本文的应用层主要介绍的是COE,也就是CanOpen Over EtherCAT,顾名思义也就是把CanOpen协议通过EtherCAT来实现,CanOpen协议在本文中不做过多的介绍,可以查看CanOpen相关的资料进行了解,在了解COE这部分内容时,要建立在对CanOpen协议了解的基础上进行,本文认为读者已经了解了CanOpen的对象字典、SDO、PDO的前提下进行说明。
2.1、CanOpen与COE
在看到COE这个词的时候,最容易想到的一个问题就是:原本CanOpen是基于CAN通信方式来设计并实现的,与EtherCAT的通信链路不一样啊,CAN报文含有的ID和8字节数据段,也不是像EtherCAT的列车式的数据运输方式,那么是怎么移植到EtherCAT上来进行通信的呢?
其实就是EtherCAT把CAN通信中的ID部分做了一些变化,这里就以CanOpen中的两个重要通信数据:SDO和PDO进行描述。
2.1.1、COE中实现SDO
对于SDO数据而言:COE中把CAN ID的概念变成一个“类型“参数与CAN的数据段8字节内容全部放到EtherCAT的子报文格式中的“数据区“里,作为一个“邮箱数据”进行发送。邮箱具有专门的格式,如图所示:
邮箱数据头说明:
邮箱协议中的“命令“格式如下图:
邮箱协议的“命令“说明:
由以上内容,我们看到邮箱的数据格式里,在“邮箱数据头“和”命令“中各有一个”类型“,一个是用来指示使用的应用层协议类型的,一个是用来指示这段数据是应用层协议中的什么服务类型的。图中展示的就是COE协议类型的服务类型。
这里我们看到了熟悉的名字:SDO请求和响应(这就替代了原本CAN通信中的SDO数据的ID),而紧随其后的“命令相关数据“就是原本CAN通信中的8字节数据部分。格式如下图所示:
关于标准CanOpen的SDO协议内容这里不做介绍,在上图可以看到SDO数据后面还有一段“可选扩展数据“,COE相当于对SDO数据做了改良:在标准CanOpen协议的寄存上,可以使一个SDO数据发送更多的数据量,而不是仅限于原本使用CAN通信只能发送4个字节的数据了。
MCU对邮箱数据的收发接口可以看第第1.2.2章,SM的介绍。
2.1.1、COE中实现PDO
从上文的SDO介绍中,我们看到COE协议类型的服务类型里除了由SDO类型,还有PDO类型,那么PDO是否就如同SDO的实现那样,仅仅只是更改这个类型参数,并解析不同的数据格式就可以实现了呢?
这是初学者容易混淆的一个地方,也是COE对于PDO数据定义上我认为比较乱的一个问题,这个问题的答案是否定的;其实,邮箱协议格式里的COE服务类型的PDO类型只是一个预留,并不使用。可以说邮箱只是用来实现SDO数据传输的,PDO数据传输与邮箱数据并没有关联。
现在回过头看上文的第1.2.2章,SM的介绍。有提到SM配合FMMU的逻辑寻址通信方式,这才是实现COE的PDO数据传输的方式。也可以看第2章开头的EtherCAT描述总图,里面也有显示PDO数据的传输方法。
其实PDO数据采用这个方式也是符合了CanOpen原本的设计理念,PDO的数据报文是为了快速传输对象字典的内容,数据段里全是实际数据,不用解析报文协议格式,如果COE中使用邮箱来进行传输其实是违背这一原则的。
PDO数据格式如下图所示:
那么很显然,COE中的PDO报文也同样要由映射参数进行映射,如上图所示的例子中,某一个子报文发送的内容是PDO数据,这个子报文通过逻辑寻址找到与逻辑地址映射匹配的从站ESC,并把数据传入FMMU映射的DPRAM物理空间中,这段空间同时也被SM2所管理,于是SM2通知从站MCU从ESC中取走PDO数据。
MCU拿到这段数据之后会根据对象字典进行查找,这里要重点介绍与CanOpen映射逻辑的区别:
1、CanOpen中PDO具有两个参数:“通信参数“和”映射参数“,在COE中不会使用CanOpen中定义的“通信参数“,COE在对象字典中占用了其他的索引定义了专用的参数进行替代,如图所示:
其中的0x1C00的子索引1~32定义SM0~31这32个通道的通信数据类型,如果定义的是过程数据类型,0x1C10~0x1C2F就会生效,用来定义SM0~31所使用的CanOpen的映射参数(RPDO映射参数:索引=1600~17ffh,TPDO映射参数:索引=1A00~1Bffh)。
2、由于COE在一条报文中可以包含多个PDO,相当于是CanOpen的多个PDO数据合并到一起发送了,所以需要做两次映射,第一次是根据获取数据使用的SM(n)通道通过0x1C10+(n)对象字典中的参数确认这条COE报文中有几个PDO,以及每个PDO映射的CanOpen的映射参数,第二次就是根据CanOpen的映射参数进行PDO映射,确认具体的对象内容。
以上两点区别,配前面的PDO格式说明的例子,需要反复阅读理解。
作者:tdyizhen1314(一位从事软硬件开发十年以上的老兵的故事,希望与大家一起交流,共同进步)
邮箱:495567585@qq.com
posted on
2023-03-01 10:36
tdyizhen1314
阅读(2415)
评论(1)
编辑
收藏
举报
会员力量,点亮园子希望
刷新页面返回顶部
Powered by:
博客园
Copyright © 2024 tdyizhen1314
Powered by .NET 8.0 on Kubernetes
导航
博客园
首页
新随笔
联系
订阅
管理
公告
EtherCAT报文抓取与分析1-以研华1203主站为例抓取 - 知乎
EtherCAT报文抓取与分析1-以研华1203主站为例抓取 - 知乎首发于智能制造专栏切换模式写文章登录/注册EtherCAT报文抓取与分析1-以研华1203主站为例抓取客饭时间自由之路版权声明邮箱:IIOT2ABC@163.com请注意:无需授权即可转载甚至无需保留以上版权声明……本文未做申明截图均来源于倍福官方文件,本文相关文件下载见http://iiot2abc.ys168.com/:「本文相关文件下载地址与文件目录」小节EtherCAT数据帧抓取方式EtherCAT 数据帧获取有两种方式 实时获取方式与非实时获取方式(虽非实时,初步分析数据足矣),其中Switch代表两种交换机(EtherCAT交换机非EtherCAT交换机)。方式1 通过EtherCAT交换机(倍福官方与其它ETG会员所生产的),如ET2000(可能需要安装 Et2000WincapPatch.exe,最新使用说明以倍福官网为准,非最新使用手册见-原文链接->工业物联网ABC->EtherCAT 相关文件->et2000en.pdf):With the ET2000 multi channel probe Beckhoff introduces a versatile piece of hardware for analyzing any Industrial Ethernet solution. With eight ports this device enables unlimited synchronized recording of up to four independent channels at a speed of 100 Mbit/s. All realtime Ethernet standards such as EtherCAT,PROFINET, etc. and conventional office Ethernet networks are supported.8个口可以实时监测所有的工业以太网协议,如EtherCAT 和 PROFINET 。方式2:通过非网管型或者网管型型交换机交换机接入后的网络拓扑(IIOT2ABC文件)一般使用网管型交换机,但测试过程中发现非网管型交换机也可以使用,此处使用的TP-link非网管型 千兆交换机(TL-SG1005D 京东有售)。研华1203 主站EtherCAT数据帧获取Step1: 先安装 WireShark软件,然后接好1号孔跟 2号孔的网线,再打开Wireshark软件激活录封包功能。( Step顺序错误会录不到初始化的相关数据)Step2: 再接上 3号孔网线,这时候主站会开始发送初始化( 识别)从站的封包。Step3: 打开 PCI-1203 Utility,触发 Dev_open API才会录到设定 PDO相关封包,以及从站回报错误的讯息。带PCI槽电脑抓取报文示意图(研华文件)下述录像是数据帧获取的过程。再次说明:本文暂附上倍福官方文件截图,本文未做申明截图均来源于倍福官方文件EtherCAT数据帧结构本小结部分内容来源于:https://blog.csdn.net/jldemanman/article/details/79543229EtherCAT采用标准的IEEE 802.3以太网帧,帧类型为0x88A4。EtherCAT帧是由EtherCAT帧头和最大有效长度为1498字节的EtherCAT报文组成。 Ethernet header定义(左右滑动查看)名称含义Destination 目标地址接收方的MAC地址Source 源地址发送方的MAC地址Ether type 帧类型0x88A4FCS校验序列EtherCAT采用“集总帧”的思想,将多个EtherCAT子报文集合在数据帧中。一个数据帧可以包含多个子报文,最大为1486字节。EtherCAT Data 定义(左右滑动查看)名称含义LengthEtherCAT数据长度Res.保留位Type类型Cmd寻址及读写方式Idx帧编码Address从站地址Len报文数据区长度R保留位C帧循环标志M后续报文标志IRQ状态位WKC工作计数器每个 Ether CAT 子报文中都有一个工作计数器(WKC,Working Counter),WKC 记录了 Ether CAT 子报文在主站和从站的一次通信结束后被从站操作的次数,每一个通信服务子报文都有一个预期的WKC,WKC的预期值由主站设置。当子报文被发送时,WKC的值为 0;经过从站时,根据操作类型和操作结果的不同,WKC 的值会有一个相应的增量(下图为LRW操作类型);当子报文返回到主站之后,主站根据子报文中的工作计数器的值和工作计数器的预期值是否相等来判断子报文是否被有效处理。EtherCAT主站种类很多,不同主站支持的运行模式也不一样,比如有些主站只支持PP模式,有些只支持CSP模式(可在主站说明书中查阅)。从站类型也很多,尽管多数从站通过了一致性测试,但不同从站支持的PDO数据的映射和应用不太一样,比如有些支持动态配置(fixed),有些不支持.多数情况下可以通过EtherCAT数据帧的命令+驱动器的ESI得知主站数据的排列方式,比如ESI中告知是DC模式,主站的运行模式是CSP 则过程周期性数据可以确定有至少有如下数据,然后再读取ESI中的数据区看PDO还映射和应用了那些数据。简而言之,通过1.确定主站支持的模式2.确定指令类型(Wireshark会主动解析此)3.ESI文件中PDO数据的映射和应用(要留心是否进行了补足,如不足16位,自动补8位作为16位)以及可供读写的SDO数据的OD。本文相关文件下载地址与文件目录点击阅读原文进入文件下载界面1.EtherCAT数据帧文件以及本文相关pdf文件:工业物联网ABC公众号->EtherCAT 相关文件->封包抓取.zip2.ET2000 说明书 :工业物联网ABC->EtherCAT 相关文件->et2000en.pdf注意事项应该注意到,多字节字段中的值是按照大末尾(big- endian)顺序规定的,具体来说就是最高位的字节出现在高位,而低位的字节出现在低位。这会引起工作在Intel平台上的程序员的迷感,因为在 Intel的平台上。数据是按照小末尾(little-endian)顺序存储的,高位的字节出现在低位。建议阅读数据帧前查看EtherCAT国际标准或者通过《工业以太网现场总线EtherCAT驱动程序设计及应用》获取前置知识。非网管型与网管型的区别:非网管交换机是不能提供管理的交换机、即插即用、不用配置;网管交换机是指能提供管理的交换机、功能强大、可以配置 。字节单位换算字节(Byte)=8位(bit)1KB( Kilobyte,千字节)=1024B1MB( Megabyte,兆字节)=1024KB1GB( Gigabyte,吉字节,千兆)=1024MB1TB( Trillionbyte,万亿字节,太字节)=1024GB1PB( Petabyte,千万亿字节,拍字节)=1024TB1EB( Exabyte,百亿亿字节,艾字节)=1024PB1 ZB(Zettabyte,十万亿亿字节,泽字节)=1024EB1YB( Yottabyte,一亿亿亿字节,尧字节)=1024ZBBB( Brontobyte,千亿亿亿字节)=1024YB工业物联网ABC[基础知识&技能]技术共享平台↑http://iiot2abc.ys168.com/欢迎关注客饭公众号,(微信搜索公众号「工业物联网ABC」,添加关注,ID:IIOT2ABC),获取更多延伸阅读。发布于 2020-12-02 18:43交换机计算机网络赞同 3添加评论分享喜欢收藏申请转载文章被以下专栏收录智能制造专栏智能制造经
EtherCAT协议基础知识(Part 1) - 知乎
EtherCAT协议基础知识(Part 1) - 知乎切换模式写文章登录/注册EtherCAT协议基础知识(Part 1)虹科工业智能互联一、EtherCAT概述1.特性①开放的技术EtherCAT全称EtherNet Control Automation Technology,是由德国倍福(Beckhoff)公司提出的一种实时以太网技术。EtherCAT是一种开放但不开源的技术,意味着您可以任意使用这项技术,但若要进行相关设备的开发,则需要向倍福公司获取相关授权。②快速性相比传统现场总线,EtherCAT的数据传输速率有了极大的提升,可选10Mbit/s或100Mbit/s,甚至依托补充的EtherCAT G技术,传输速率可达1000Mbit/s;同时EtherCAT基于标准以太网帧传输,单帧数据用容量可达1486 Bytes。这使得在传输数据量方面EtherCAT有无比的优越性。③拓扑的灵活性EtherCAT几乎支持所有的拓扑结构:星型、线性、树型、菊花链型等,并支持各类电缆、光纤等多种通信介质,还支持热插拔特性,保证了各设备之间连接的灵活性。同时EtherCAT几乎没有设备容量限制,最大从站设备数可达65535个,使得网络中无需交换机的存在,仅通过设备间的拓扑结构即能使得EtherCAT数据直达每个从站。④同步的精准性对于像多个伺服轴执行协同运动等一类应用,其对数据同步性要求甚高。而EtherCAT可选择使用分布式时钟(DC)的方式同步节点,并采用完全基于硬件的时间校准机制,使得整个系统抖动时间远小于1us,能够完全适用于这样的应用之下。如下图所示,300个EtherCAT站点间的信号时间抖动仅有20ns:⑤高可用性EtherCAT可通过简单的措施实现线缆的冗余性。通过将网络中最后一个站点与主站设备中的以太网端口连接,即可将线型拓扑结构扩展为环型冗余拓扑结构。当线缆损坏或站点故障发生时,主站堆栈中的附加软件检测就会检测到,并立刻切到换冗余线路中运行,而各站点无需为此而改变,甚至不会意识到网络通信正在冗余线路中运行。2. ISO/OSI参考模型图:EtherCAT的ISO/OSI参考模型EtherCAT仅使用了物理层、链路层、应用层三层协议,与多数传统的现场总线相同,但相比于其它实时以太网协议,如PROFINET、EtherNet/IP等,其协议栈更加精简。这也是EtherCAT协议的实时性优越于其它实时以太网协议的重要原因之一。3.EtherCAT主从架构图:EtherCAT主从架构EtherCAT网络采用主从架构,网络组态于PC主机上进行配置,需要使用到相应的EMI(EtherCAT Master Information Files)、ESI(EtherCAT Slave Information Files)文件,经专用配置软件(通常于主站配置软件中集成)进行配置后生成ENI(EtherCAT Network Information Files)文件下载至主站中,主站便依据该文件进行整个网络的识别。图中关于EtherCAT从站设备的内部组成,即是一个实现EtherCAT协议OSI模型的过程:RJ45网口、PHY物理层芯片用于实现物理层协议;ESC用于实现链路层协议,通常使用倍福官方的ET1100芯片实现;MCU则用于实现应用层协议,需要厂商自行根据相应的协议编写程序代码,或是直接使用协议栈代码实现。4.报文帧传输方式EtherCAT报文帧只能由主站进行发送,在一个通讯周期内,主站发送以太网数据帧给各个从站,数据帧到达从站后,每个从站根据寻址从数据帧内提取相应的数据,并把它反馈的数据写入数据帧。当数据帧发送到最后一个从站后返回,并通过第一个从站返回至主站。这种传输方式能够在一个周期内实现数据通讯,还改善了带宽利用率,最大有效数据利用率达90%以上。(这种传输方式有点类似于现实生活中的环型地铁,列车上的人到达自己的目的站点后下车,每个站点的人也会相应上车。)发布于 2020-10-10 14:37以太网(Ethernet)交换机网络通信赞同 323 条评论分享喜欢收藏申请
EtherCAT (学习笔记)-CSDN博客
>EtherCAT (学习笔记)-CSDN博客
EtherCAT (学习笔记)
最新推荐文章于 2024-01-16 16:03:36 发布
pwl999
最新推荐文章于 2024-01-16 16:03:36 发布
阅读量6.7w
收藏
1.3k
点赞数
209
分类专栏:
Motion Control
文章标签:
ethercat
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/pwl999/article/details/109397700
版权
Motion Control
专栏收录该内容
3 篇文章
75 订阅
订阅专栏
文章目录
1. 简介1.1 运动控制1.2 实时以太网1.3 EtherCAT
2. EtherCAT原理介绍2.1 实时性2.2 端口管理2.3 EtherCAT网络拓扑2.4 EtherCAT网络协议栈2.5 EtherCAT数据帧格式2.6 EtherCAT设备寻址方式2.7 分布式时钟(Distribute Clock)2.8 应用层(Application Layer)2.9 设备配置(Device Profile)2.10 主站设计2.11 从站设计
3. 应用层(Application Layer)3.13.2 EtherCAT Slave Implementation (从站实现)
4. 应用实例4.1 主站操作系统(RTAI)4.2 主站EtherCAT程序(IGH)4.3 主站应用开发(LinuxCNC)4.4 ET12004.5 从站程序设计4.6 实验测试
5. 工具5.1 TwinCAT5.2 LinuxCNC5.3 开源的EtherCAT Master
参考资料
1. 简介
1.1 运动控制
运动控制系统处理机械系统中一个或多个坐标上的运动以及运动之间的协调,实现精确的位置控制、速度和加速度控制、转矩和力的控制等。
单轴的运动控制系统可分为开环、半闭环和闭环伺服系统。
多轴运动控制系统可以分成点位控制、连续轨迹控制和同步控制。
典型的运动控制系统,从结构上看,包括上位机控制窗口、运动控制器、驱动器、电机以及测量反馈系统等几个部分组成:
1.2 实时以太网
实时以太网(RTE, Real Time Ethernet)是常规以太网技术的延伸,以便满足工业控制领域的实时性数据通信要求。目前,国际上有多种实时工业以太网协议,根据不同的实时性和成本的要求使用不同的原理,大致可以分为以下三类:
(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等。
1.3 EtherCAT
德国BECKHOFF自动化公司于2003年开发出的EtherCAT实时以太网技术突破了其他以太网解决方案的系统限制:通过该项技术,无需接受以太网数据包,将之解码,然后再将过程数据复制到各个设备。
2. EtherCAT原理介绍
EtherCAT从站设备在报文经过其节点时读取相应的数据报文,同样输入数据也是在报文经过时插入到报文中。整个过程报文只有几纳秒的时间延迟,实时性获得极大提高
EtherCAT作为一种工业以太网总线,充分利用了以太网的全双工特性。使用主从通信模式,主站发送报文给从站,从站从中读取数据或将数据插入至从站。
主站可使用标准网卡实现,从站选用特定的EtherCAT从站控制器ESC(EtherCAT Slave Controller)或者FPGA实现,
主要完成通信和控制应用两部分功能,EtherCAT物理层选用标准以太网物理层器件。
从站能将收到的报文直接处理,并读取或插入有关的数据,再将报文发送给下一个EtherCAT从站。最末尾的EtherCAT从站返回处理完全的报文,然后由第一个从站发送给主站。整个通信过程充运行于全双工模式下,TX线发出的报文又通过RX线返回给主站:
2.1 实时性
数据包刷新时间的计算
数据包中所有从站的 Process Datarocess Datarocess Data rocess Data rocess Data rocess Datarocess Data数据 决定了数据包的长度。
一个Ethernet thernet数据包最小84 字节,不足 84 字节会补齐84 字节。由于EtherCAT Frame中有一些公共开销, 84 字节的数据包最多含18字节的过程数据。考虑到数据包必须经过每个从站两次才能回到主站,所数据包以固定的波特率100 Mbps在网络上传输两次的时间 这就是它的总线刷新时间 。
1.基于这个原则,以包含 1000路开关量信号的数据包为例,计算过程如下:
过程数据长度:1000/8=125Bytes
数据包长度:84-18+125=191Bytes=191*8 Bit= 1528 Bit
总线刷新时间:(1528Bit/100,000,000 Bps)*2=15.28us * 2 = 30.56us
注意,通常的数字量模块, 都是单纯的输出或者输入模块,而不是混合模块。所以 1000 个数字 量信号, Frame 中就会分配 125 字节。
2.再以包含100个EtherCAT伺服驱动器过程数据的EtherCAT数据包为例,假如每个伺服的过程数据只包括控制字(2字节)、状态字(2字节)、目标位置(4字节)、实际位置(4字节),其总线刷新时间的计算过程如下:
过程数据长度:100*(2+4)=600 Byte。
数据包长度:84-18+600=1266 Byte =671*8 Bit =5328 Bit
总线刷新时间:(5328 Bit/100,000,000 Bps) *2=100.656µs
注意,Frame中只为一个伺服分配了6个字节,这是因为根据Beckhoff公司的控制软件TwinCAT中关于EtherCAT的默认设置是从站的Input和Output使用同一数据段,所以数据包进入伺服驱动器时该数据段存放的是控制字和目标位置,而出来时则存放伺服的状态字和实际位置。
以上两个数据30.56µs和101.28 µs就是EtherCAT官方宣传资料中,刷新1000个数字量需要30µs,刷新100个伺服轴只需要100µs的数据由来。实际上,根据从站的类型、是否包含分布时钟、是否启用时钟同步、时钟同步的参数设置不同,在数据包中有可能还会增加8-12字节用于传输同步时钟值,以及相应的为每个从站增加一个Bit的标记等等,会增加几个微秒的刷新时间,暂且忽略不计。
以上计算只是数据包传输需要的理论时间,实际上,数据包经过每个从站会产生短暂的硬件延时。100M超五类网线接口的从站延时约1µs,而EBus的IO模块类从站延时约0.3µs,在毫秒级以下的控制任务中如果从站数量较多,这个时间也相当可观,计算刷新周期时应该考虑进去。
2.2 端口管理
一个从站控制器最多可以有4个端口,如果一个端口关闭了,控制器主动连接下一个端口。端口可以随着EtherCAT命令主动的打开或者关闭。逻辑端口设置决定了EtherCAT帧的处理和发送顺序。
2.3 EtherCAT网络拓扑
所有数据帧在网络中以一种“逻辑闭环”的方式传播,与网络的硬件拓朴无关,无论它是链式、菊花链、星形还是树形拓朴。
所有数据帧都由Master发出,以事前严格定义的顺序,依次经过网络上的所有从站,走过一个完整的闭环后回到Master 。 所有数据帧通过从站中的 EtherCAT Processing Unit (EtherCAT处理单元)只有 1 次。
线型拓扑:
任意数目的设备成线型连接 最多65535个设备
数据处理链型拓扑 带有分支线的数据处理链型拓扑 树型拓扑: 实时星型拓扑: 冗余线缆
选择冗余电缆可以满足快速增长的系统可靠性需求,以保证设备更换时不会导致网络瘫痪。您可以很经济地增加冗余特性,仅需在主站设备端增加使用一个标准的以太网端口(无需专用网卡或接口),并将单一的电缆从总线型拓扑结构转变为环型拓扑结构即可(见图7)。当设备或电缆发生故障时,也仅需一个周期即可完成切换。因此,即使是针对运动控制要求的应用,电缆出现故障时也不会有任何问题。
EtherCAT也支持热备份的主站冗余。由于在环路中断时EtherCAT从站控制器芯片将立刻自动返回数据帧,一个设备的失败不会导致整个网络的瘫痪。例如,拖链设备可以配置为分支拓扑以防线缆断开。
2.4 EtherCAT网络协议栈
CoE(Can over EtherCAT)
PDO(Process Data Object 过程数据对象)
SDO(Service Data Object 服务数据对象)
PDI(Process Data Interface 过程数据接口)(uC, SSI, I/O)
ESM(EtherCAT State Machine)
ESI(EtherCAT Slave Information) (XML device description)
ENI(EtherCAT Network Information)
CTT(Conformance Test Tool 一致性测试工具)
SM(SyncManagers 同步管理器)
MDP(modular device description 模块化设备描述 )
2.5 EtherCAT数据帧格式
EtherCAT数据直接嵌入在以太网数据帧中进行传输,只是采用了一种特殊的帧类型,该类型为Ox88A4, EtherCAT数据帧结构如图所示:
EtherCAT数据包由数据头和数据实体两部分组成,EtherCAT数据头包含2个字节,每个数据包里面可以只包含一个EtherCAT子报文,也可以包含多个子报文;一个EtherCAT子报文对应着一个从站,因此一个EtherCAT数据包可以操作 多个EtherCAT从站,相应的数据长度在44-1498字节之间,EtherCAT数据帧结构定义: 类型 字段:
EtherCAT子报文结构定义:
地址区 字段
EtherCAT 寻址:
EtherCAT 通信的实现是通过由主站发送至从站的 EtherCAT 数据帧来完成对从站设备内部存储区的读写操作, EtherCAT 报文对 ESC 内部存储区有多种寻址操作方式,从而可以实现多种通信服务。EtherCAT 段内寻址有设备寻址和逻辑寻址两种方式。
设备寻址是面对一个从站进行读写操作。
逻辑寻址是面向过程的数据操作, 实现同一报文读写多个从站设备的多播功能。
具备全部寻址方式的从站称为完整性从站,只具备部分寻址方式的从站则称为基本从站。
命令 字段
不同命令通过信息传输系统最优化对所有存取方法的读写
WKC 字段
Working Counter。如果成功寻址了EtherCAT设备,并且成功执行了读操作,写操作或读/写操作,则工作计数器将递增。 可以为每个数据报分配一个工作计数器值,该值是根据预期报文通过所有设备数来设置的。 通过将工作计数器的预期值与所有设备通过后的实际值进行比较,主站可以检查EtherCAT数据报是否已成功处理。
同步管理器
2.6 EtherCAT设备寻址方式
在EtherCAT的每个子报文中,有32位空间用于对EtherCAT设备进行寻址。寻址方式有四种,分别为:
位置寻址
位置寻址方式是根据从站的连接顺序,即物理位置实现的。在报文头的32bit地址中,前16bit的Position用于存放地址值,Offset用于存放ESC逻辑寄存器或者内存地址。报文每经过一个从站设备,其Position中的地址值加1。当一个从站接收到EtherCAT报文后,如果报文中的地址值为0,则该报文就是这个从站要要接收的报文。
在上图中,如果需要总线上第8个设备响应报文,则主站需要将报文的地址设为0xFFF9,当报文经过第1个从站时,地址为0xFFF9,不等于0,第1个从站不会响应报文,报文地址加1,变为0xFFFA。当报文经过第2个从站时,地址为0XFFFA,不等于0,第2个从站不会响应该报文,报文地址加1,变为0xFFFB。以此类推,当报文到达第8个从站时,此时地址值为0x0000,当前从站将接收报文。
位置寻址(Position Address / Auto Increment Address)只应在启动EtherCAT系统时用于扫描现场总线,以后只能偶尔使用以检测新连接的从站。 如果由热连接或链接问题导致循环暂时关闭,使用位置寻址可能会出现问题。 在这种情况下位置地址被移位,并且,如错误寄存器的值到设备的映射变得不可能,因此不能定位故障链路。
节点寻址
在启动阶段,主站通常采用位置寻址方式对总线上的从站进行寻址,之后采用节点寻址方式。
在报文中,报文头的32bit地址,前16bit的Address用于存放站点地址值,Offset用于存放ESC逻辑寄存器或者内存地址。
在每个从站中站点地址保存在寄存器(0x0010) 中。
顺序寻址时,主站可以对每个从站的站点地址进行设置,也可以直接读取每个从站的的站点地址。
节点寻址方式的优点是,每个从站的地址与其在总线中的位置无关。在添加/删除从站,甚至是改变总线拓扑结构的时候都能对从站进行正确的访问。
上图是节点寻址方式的示意图。8个从站的地址与其在总线中的位置并没有关系。出于直观的目的,4台伺服驱动器的地址被设置为连续的,4个I/O模块的地址被设置为连续的,在实际中并没有这样的要求。
EtherCAT从设备可以有两个配置的站点地址,一个由主站分配(Configured Station Address),另一个存储在SII EEPROM,并且可以由从站应用程序更改(Configured Station Alias address)。
配置站点地址由主站在启动期间分配,并且不能由EtherCAT从站更改。 配置站别名地址存储在SIIEEPROM中,可由EtherCAT从站更改。 配置的站别名必须由主站启用。 如果节点地址(NodeAddress)与配置的站地址或配置的站点别名匹配,将执行相应的命令操作。
逻辑寻址
EtherCAT的第三种寻址方式是逻辑寻址,首先需要了解的是FMMU。
FMMU(Fieldbus Memory Management Units)
FMMU称为总线内存管理单元,它存在与从站芯片ESC中,负责对从站物理地址与主站逻辑地址进行翻译并建立映射关系。主站在总线启动过程中对FMMU进行配置,内容包括:
• 逻辑地址的起始地址
• 数据长度(按跨字节数计算)
• 逻辑地址的起始位
• 逻辑地址的终止位
• 从站物理地址的起始地址
• 从站物理地址的起始位
• 操作类型(只读、只写、读写)
• 使能
在报文中,使用报文头的32bit地址的全部,用来表示大小为4GB的逻辑地址空间。 以上图为例,FMMU将逻辑地址中0x00012345第2位开始的,到0x00012346以第2位终止的区域,与从站物理地址中0x0010第0位开始的区域进行映射。
当从站收到来自主站的报文时,会检查报文中的地址是否与FMMU中的地址相符,如果有,将根据操作类型进行读写操作。
这种寻址方式的优点是,在主站想对每个从站进行访问的时候,只需要对逻辑空间中的地址进行操作,而无须关心该地址对应的从站物理地址,减轻了主站的负担。
所有器件读取和写入相同的逻辑4 GB地址空间(EtherCAT数据报中的32位地址字段)。 从器件使用映射单元(FMMU,现场总线存储器管理单元)将数据从逻辑过程数据映像映射到其本地地址空间。 在启动期间,主器件配置每个从器件的FMMU。 从站使用FMMU的配置信息知道逻辑过程数据映像的哪些部分必须映射到哪个本地地址空间。
逻辑寻址支持逐位映射。 逻辑寻址是一种强大的机制,可以减少过程数据通信的开销,因此通常用于访问过程数据。
当从站设备收到的EtherCAT报文带有逻辑寻址标志位时,从站设备将检查自身是否有相应的FMMU单位地址与之匹配。
总结:EtherCAT使用三种方式对设备进行寻址,在启动过程中,使用顺序寻址方式为从站分配节点地址,然后通过节点寻址方式配置从站寄存器,将逻辑地址与从站物理地址进行映射,之后就可以使用逻辑寻址方式进行过程数据交换了。
Broadcast寻址
每个EtherCAT从站都被寻址。
使用广播寻址。 如果从站的预期是相同的,用于所有从站的初始化和检查所有从站的状态。每个从器件具有一个16位Local地址空间:
地址范围0x0000:0x0FFF专用于EtherCAT寄存器,
地址范围0x1000:0xFFFF用作过程数据RAM
通过EtherCAT数据报的偏移字段寻址,过程数据。
2.7 分布式时钟(Distribute Clock)
通过分布式时钟精确的调整,系统可达到精确的同步。
外部时钟同步IEEE1588 EtherCAT设备同步 定义系统时间
定义一个参考时钟:
一个EtherCAT从站被当做参考时钟使用
参考时钟循环的发布它的时钟
参考时钟根据一个全局参考时钟 IEEE1588
2.8 应用层(Application Layer)
应用层AL(Application Layer) 为用户与网络之间提供接口,应用层在EtherCAT 通信协议层次结构中是与用户联系最紧密最直接的一层,它可以直接与用户进行交互,实现面对具体的应用程序和控制任务等功能, EtherCAT 应用层为各种服务协议与应用程序之间定义了接口, 使其能够满足应用层所要求的各种协议共同工作的需求。
EtherCAT 作为网络通信技术,支持CAN open 协议中的CiA402,以及 SERCOS 协议的应用层( 即 CoE 和SoE)等多种符合行规的设备和协议。
EtherCAT状态机 设备和网络的启动
邮箱接口和协议 设备的存取变量 异步传输
协议:
EOE: Ethernet over EtherCAT
COE: CANopen over EtherCAT
FOE: Filetransfer over EtherCAT
SOE: Servo Drive over EtherCAT
从站信息接口 设备特征和配置信息
EtherCAT状态机
状态机构建于数据链路层 定义EtherCAT从站设备一般信息状态 指定对EtherCAT从站设备启用网络时初始化和错误处理 状态和主从站之间通信关系相一致 从站设备的请求状态和当前状态反应于应用层和应用层注册中
定义了五种状态:
Init // 应用层没有数据交互,主站对数据传输信息注册有同路
Pre-Operational // 应用层上的邮箱通信。没有过程数据交互
Safe-Operational // 应用层上的邮箱通信。过程数据通信,但是仅仅是输入被评估,输出置于Safe状态
Operational // 输入和输出都是有效的
Bootstrap // 定义了固件更新。是可选的,但是在固件必须要更新时推荐选择
// 只能和init进行状态间转换,没有过程数据通信,通过应用层的邮箱进行通信,根据需要的情况对邮箱进行配置,只能使用FoE协议。
从站设备的请求状态和当前状态反应于应用层控制和应用层注册中:
应用层控制(0x0120) 初始化设备状态机的状态转换
应用层状态(0x0130) 设备状态机的实际状态
应用层状态代码(0x0134) 错误原因或者其他状态代码
邮箱传输
交换变量数据的标准方式 邮箱接口是可选择的,但是推荐使用 如果过程数据是可设置的,或者有其他的非周期性服务,必须邮箱通信 全双工能力 从站可以发起一个数据交互 预留两个同步管理器通道: Sync Manager 0(主站到从站),Sync Manager 1(从站到主站) 数据交互的早期阶段,邮箱方式是可利用的(State Pre-Operational) 支持多种协议的能力
邮箱通信协议的类型:
EOE: Ethernet over EtherCAT // 通过EtherCAT传输的标准以太网帧
COE: CANopen over EtherCAT // 访问CANopen对象字典和它的对象,CANopen紧急事件和事件驱动的PDO消息
FOE: Filetransfer over EtherCAT // 下载上传固件和其他的一些文件
SOE: Servo Drive over EtherCAT // 存取伺服轮廓检验(IDN)
从站信息接口
强制从站信息接口SII(Slave Information Interface)由所有能被持久保持的对象组成 信息被存储于一个EEPROM,EtherCAT从站控制器和EEPROM之间有一个SPI接口。
SII包括:
boot设置数据
设备一致性
vender id,产品序列号,修正号,serial no
和CoE对象0x1018里,相同的信息
应用程序信息数据
额外的一些数据
AL Status Code(Application Layer Status Code)
Application Layer: Describes the highest layer of the EtherCAT slave stack which includes the EtherCAT State Machine, error handling, Mailbox protocol handling, slave application.
此可选属性由应用程序控制,并报告由AL的状态控制事例检测到的最后错误或ID值。AL(应用层)状态代码给出从机进入错误状态的原因。 如果错误标志(寄存器0x0130:04)为TRUE,则应提供AL状态代码.
2.9 设备配置(Device Profile)
设备行规描述了设备的应用参数和功能特性,如设备类别相关的机器状态等。现场总线技术已经为I/O设备、驱动、阀等许多设备类别提供了可利用的设备行规。用户非常熟悉这些行规以及相关的参数和工具,因此,EtherCAT无需为这些设备类别重新开发设备行规,而是为现有的设备行规提供了简单的接口。该特性使得用户和设备制造商可以轻松完成从现有的现场总线到EtherCAT技术的转换过程。
EtherCAT实现CANopen (CoE)
CANopen©设备和应用行规广泛用于多种设备类别和应用,如I/O组件、驱动、编码器、比例阀、液压控制器,以及用于塑料或纺织行业的应用行规等。
EtherCAT可以提供与CANopen机制[7]相同的通讯机制,包括对象字典、PDO(过程数据对象)、SDO(服务数据对象),甚至于网络管理。
因此,在已经安装了CANopen的设备中,仅需稍加变动即可轻松实现EtherCAT,绝大部分的CANopen©固件都得以重复利用。并且,可以选择性地扩展对象,以便利用EtherCAT所提供的巨大带宽。
EtherCAT实施伺服驱动 设备行规IEC 61491 (SoE)
SERCOS interface™ 是全球公认的、用于高性能实时运行系统的通讯接口,尤其适用于运动控制的应用场合。
用于伺服驱动和通讯技术的SERCOS™框架属于IEC 61491标准[8] 的范畴。该伺服驱动框架可以轻松地映射到EtherCAT中,嵌入于驱动中的服务通道、全部参数存取以及功能都基于EtherCAT邮箱(参见图12)。在此,关注焦点还是EtherCAT与现有协议的兼容性(IDN的存取值、属性、名称、单位等),以及与数据长度限制相关的扩展性。过程数据,即形式为AT和MDT的SERCOS™数据,都使用EtherCAT从站控制器机制进行传送,其映射与SERCOS映射相似。并且,EtherCAT从站的设备状态也可以非常容易地映射为SERCOS™协议状态。EtherCAT从站状态机可以很容易地映射到SERCOS™协议的通信阶段。
EtherCAT为这种在CNC行业中广泛使用的设备行规提供了先进的实时以太网技术。这种设备行规的优点与EtherCAT分布时钟提供的优点相结合,保证了网络范围内精确时钟同步。可以任意传输位置命令,速度命令或扭矩命令。取决于实现方式,甚至可能继续使用相同的设备配置工具。
EtherCAT实现以太网(EoE)
EtherCAT技术不仅完全兼容以太网,而且在“设计”之初就具备良好的开放性特征——该协议可以在相同的物理层网络中包容其它基于以太网的服务和协议,通常可将其性能损失降到最小。对以太网的设备类型没有限制,设备可通过交换机端口在EtherCAT段内进行连接。以太网帧通过EtherCAT协议开通隧道,这也正是VPN、 PPPoE (DSL) 等因特网应用所普遍采取的方法。EtherCAT网络对以太网设备而言是完全透明的,其实时特性也不会发生畸变(参见图13)。 EtherCAT设备可以包容其它的以太网协议,因此具备标准以太网设备的一切特性。主站的作用与第2层交换机所起的作用一样,可按照编址信息将以太网帧重新定向到相应的设备。因此,集成万维网服务器、电子邮件和FTP 传送等所有的因特网技术都可以在EtherCAT的环境中得以应用。
EtherCAT实现文件读取(FoE)
这种简单的协议与TFTP类似,允许存取设备中的任何数据结构。因此,无论设备是否支持TCP/IP,都有可能将标准化固件上载到设备上。
ADS over EtherCAT (AoE)
ADS over EtherCAT (AoE)是由EtherCAT规范定义的客户端-服务器邮箱协议。尽管CoE协议提供了详尽的描述,但AoE则更适合路由与并行服务的应用:通过网关设备访问子网络,如EtherCAT至CANopen® 或EtherCAT至IO-Link™ 网关设备。AoE使EtherCAT主站应用(如PLC程序)可以访问所属CANopen® 或 IOLink™从站的各个参数。AoE路由机制开销远低于因特网协议(IP)所定义的开销,并且发送方和接收方寻址参数始终包含在AoE报文中。因此,EtherCAT主站和从站端的实施更为精简。AoE也通过EtherCAT自动化协议(EAP)进行非周期通信的标准化,从而为上位机MES系统或主计算机、EtherCAT主站及其从属的现有设备之间提供无缝通信。同时,AoE也提供了从远程诊断工具获取EtherCAT网络诊断信息的标准化方法。
2.10 主站设计
EtherCAT可以在单个以太网帧中最多实现1486字节的分布式过程数据通讯。其它解决方案一般是,主站设备需要在每个网络周期中为各个节点处理、发送和接收帧。
而EtherCAT系统与此不同之处在于,在通常情况下,每周期仅需要一个或两个帧即可完成所有节点的全部通讯,因此,EtherCAT主站不需要专用的通讯处理器。主站功能几乎不会给主机CPU带来任何负担,轻松处理这些任务的同时,还可以处理应用程序,因此EtherCAT无需使用昂贵的专用有源插接卡,只需使用无源的NIC卡或主板集成的以太网MAC设备即可。EtherCAT主站很容易实现,尤其适用于中小规模的控制系统和有明确规定的应用场合。
例如,如果某个单个过程映像的PLC没有超过1486 字节,那么在其周期时间内循环发送这个以太网帧就足够了。因为报文头运行时不会发生变化,所以只需将常数报文头插入到过程映像中,并将结果传送到以太网控制器即可。
EtherCAT映射不是在主站产生,而是在从站产生(外围设备将数据插入所经以太网帧的相应位置),因此,此时过程映像已经完成排序。该特性进一步减轻了主机CPU的负担。可以看到,EtherCAT主站完全在主机CPU中采用软件方式实现,相比之下,传统的慢速现场总线系统通过有源插接卡方可实现主站的方式则要占用更多的资源,甚至服务于DPRAM的有源卡本身也将占用可观的主机资源。
系统配置工具(通过生产商获取)可提供包括相应的标准 XML 格式启动顺序在内的网络和设备参数。
已经在各种实时操作系统上实现了EtherCAT主站,包括但并不限于:eCos, INtime, MICROWARE OS-9,MQX, On Time RTOS-32, Proconos OS, Real-Time Java, RT Kernel, RT-Linux, RTX, RTXC, RTAI Linux,PikeOS, Linux with RT-Preempt, QNX, VxWin + CeWin, VxWorks, Windows CE, Windows XP/XPE with CoDeSys SP RTE, Windows NT/NTE/2000/XP/XPE/Vista with TwinCAT RTE, Windows 7 and XENOMAI Linux. 可以获得开源主站协议栈,作为示例代码或商业软件。也有各种公司提供各种硬件平台上的实施服务。可以在EtherCAT网站上的产品区找到快速增长的供应商信息[1]。
另一种EtherCAT主站的实现方式是使用样本代码,花费不高。软件以源代码形式提供,包括所有的EtherCAT主站功能,甚至还包括EoE(EtherCAT实现以太网)功能(见图15)。开发人员只要把这些应用于Windows环境的代码与目标硬件及所使用的RTOS加以匹配就可以了。该软件代码已经成功应用于多个系统。
2.11 从站设计
从站EtherCAT Processing Unit 总是位于 Port 0 之后其它端口之前,并在数据帧传输的过程中提取和插入数据:
DPRAM: 双端口存储器 Dual-Ported RAM,可以分别从主站及本地微处理器uC访问。访问 ESC 的 Dual-Ported RAM 读出 并/或 写入数据。
从器件具有一个16位Local地址空间:
地址范围0x0000:0x0FFF专用于EtherCAT寄存器,
地址范围0x1000:0xFFFF用作过程数据RAM
SyncManagers 阻止主站和从站微处理器(uC)同时访问 ESC存储区,确保数据的一致性
→ 含周期性数据 (Process Data) 和非周期性数据 (Mailbox)
FMMUs 为Lxx数据报文完成逻辑地址到物理地址的转换
→ 仅对于周期性数据 (Process Data)
从站的SyncManagers 和 FMMU 是由主站在初始化阶段自动配置的,该配置基于每个从站的XML文件和整个网络的设置。
EtherCAT从站设备使用一个价格低廉的从站控制器芯片ESC。从站不需要微处理器就可以实现EtherCAT通信。可以通过I/O接口实现的简单设备可以只由ESC和其下的PHY,变压器和RJ45接头。给从站的过程数据接口是32位的I/O接口。这种从站没有可配置的参数,所以不需要软件或邮箱协议。EtherCAT状态机由ESC处理。ESC的启动信息从EEPROM中读取,它也支持从站的身份识别。
更复杂的可配置从站有使用一个CPU。这个CPU和ESC之间使用8位或16位并行接口或串行SPI接口。要求的CPU性能取决于从站的应用,EtherCAT协议软件在其上运行。EtherCAT协议栈管理EtherCAT状态机和应用层协议,可以实现CoE协议和支持固件下载的FoE协议。EoE协议也可以实施。
从站控制器通常都有一个内部的DPRAM(DUAL PORT RAM),并提供存取这些应用内存的接口范围:
串行SPI(串行外围接口)主要用于数量较小的过程数据设备,如模拟量I/O模块、传感器、编码器和简单驱动等。该接口通常使用8位微控制器,如微型芯片PIC、DSP、Intel 80C51等(见图16)。
8/16位微控制器并行接口与带有DPRAM接口的传统现场总线控制器接口相对应,尤其适用于数据量较大的复杂设备。通常情况下,微控制器使用的接口包括Infineon 80C16x、Intel 80x86、Hitachi SH1、ST10、ARM和TI TMS320等系列(见图16)。
32位并行I/O接口不仅可以连接多达32位数字输入/输出,而且也适用于简单的传感器或执行器的32位数据操作。这类设备无需主机CPU(见图17)。
PDO(过程数据对象)、SDO(服务数据对象)
报文通过从站控制器时,从站读取出相关命令并进行对应处理,数据处理通过硬件完成,延间约为100-_500ns,通信性能独立于MCU的响应时间。每个ESC最大有容量为64KB的可用的内存编址,能进行连续或同步的读写。多个EtherCAT命令数据可以被嵌入到一个以太网报文中,每个数据对应独立的设备或内存区。
EtherCAT极大提高了以太网的性能,比如操作1000个I/O信号的时间约为30微秒。单个报文至多容纳1486字节的过程数据,和12000位I/O信号相当,更新所需时间约为300微秒。控制100个伺服单元的时间约为100微秒。
在基于PC的主站中,一般使用网络接口卡NIC(Network Interface Card)其中的网卡芯片集成了以太网通信控制器和物理层数据收发器。但是在嵌入式主站中,通信控制器通常集成在微处理器中。
EtherCAT从站设备同时实现应用控制和数据通信两部分功能,其组成如图所示,由四部分组成:从站控制微处理器、EtherCAT从站控制器ESC芯片、物理层器件和其他应用层器件。
EtherCAT报文由从站控制器来处理,使用双端口存储区完成主从站间的数据交换。每个从站ESC在环路上按各自的顺序移位读写数据。当数据帧经过从站时,ESC从中读取发送给自己的命令数据并放到内部存储区,插入的数据又被从内部 存储区写到子报文中。
从站控制微处理器主要负责处理EtherCAT通信和完成控制任务。微处理器从ESC获取控制数据实现设备控制功能,并采样设备的反馈数据写入ESC。从站控制微处理器的选型根据设备控制任务,可以使用ARM或DSP; 8位、16位或32位的处理器。EtherCAT从站采用MII接口模式时,需要使用标准以太网物理层器件:物理层芯片PHY,隔离变压器等。采用EBUS接口时不需要任何其他芯片。
3. 应用层(Application Layer)
3.1
3.2 EtherCAT Slave Implementation (从站实现)
DPRAM (双端口存储器)size and number of SyncManagers(同步管理 )
The DPRAM is used for exchange of cyclic and acyclic data(循环和非循环的数据交换) via the EtherCAT network. SyncManagers ensure data consistency(保证数据的一致性) within the DPRAM.
Each ESC has 4kByte of registers (addresses 0x0000 to 0x0FFF) which are reserved for (EtherCAT and PDI communication) configuration settings(配置设置 ).
Mailbox(邮箱) and process data is exchanged via additional DPRAM (also called user memory用户存储器 ). EtherCAT allows addressing(编址) of user memory of up to 60kBytes. ASICs provide between 1kByte and 8kByte of DPRAM, IP Cores can be configured to provide the full 60kByte of user memory.
Application Note: The standard SyncManager configuration is(标准的同步管理配置)
- 1 SyncManager per acyclic data output (mailbox out, master to slave)
- 1 SM for acyclic data input (mailbox in, slave to master)
- 1 SM for cyclic data output (process data out, master to slave)
- 1 SM for cyclic data input (process data in, slave to master)
For process data, SM running in 3-buffer-mode(3缓存模式) need three times the length (3倍长度) of actual process data for physical memory(物理内存) . The following table shows a schema(体系结构,模式) of how to allocate(分配) the length for the 4 SM.
Table 5: DPRAM Size Calculation Example( DPRAM大小计算示例)
SyncManagerBuffer CountLength [Byte]Total length [Byte]SM0Output Mailbox1L_MbxOut1*L_MbxOutSM1Input Mailbox1L_MbxIn+ 1*L_MbxInSM2Outputs3L_Out (TxPDO)+ 3*L_OutSM3Inputs3L_In (RxPDO)+3*L_In----∑ DPRAM size
SyncManagers are enabled(开启) by the following settings of the master during network initialization(网络初始化) .
-Physical address of ESC(ESC物理地址)
-Data length (数据长度)
-SyncManager control input(同步管理控制输入) :
i. Operation mode【操作模式】 (mailbox-mode/3-buffer-mode)
ii. Access direction【访问方向:读或者写】 (Read direction/Write direction)
iii. Interrupt settings 【中断设置】 (Valid/Invalid 有效/无效 )
iv. SyncManager watchdog setting【同步管理看门狗定时器设置】 (Valid/Invalid)
v. SyncManager setting (Valid/Invalid)
The default values are set in the ESI (chapter 2.4.1); the master initializes the SyncManager using the values from the ESI.(默认值在 ESI中设置,主站初始化时调用 ESI中的值)
Syncmanagers(同步管理器)
同步管理器简称SM用来协调应用程序和主机的数据交互,同步管理器同步的是数据而非时间,同步管理器确保了应用程序和主机能够正确的写入或读取数据。同时同步管理器可以以中断的形式通知主机和应用程序发生的数据更新事件。
从站的ESC中包含多个同步管理器,每一个同步管理器都可以单独的配置:
同步管理器的配置中包括告知同步管理器其需要管理的内存地址的范围,管理内存的属性(属于读或写,属于邮箱数据或过程数据)。
所以每一种数据交互方式都会有一个同步管理器来管理,应用程序进行数据交互时,只需要更具不同的同步管理器就可以方便的区分数据的类型(PDO 或SDO、读或写)。从站在初始化时会读取SM管理器中的配置来确定数据的存放地址。
数据的交互主要有缓冲模式和邮箱模式。缓冲模式主要应用于周期性过程数据的传送。
Number of Fieldbus Memory Management Units (FMMUs)(现场总线储存管理单元)
In an EtherCAT network, the memory of all slaves can be compiled in the master(所有从站的储存都可以在主站中编辑) to a logical memory(逻辑内存) . This logical memory is managed by FMMUs to map(映射) logical addresses to physical addresses in the slavesFMMUs(逻辑内存通过 的管理和从站中的物理内存相对应) .
For the FMMU configuration in a device, each consistent output and each consistent input block needs one FMMU and an additional FMMU for mailbox status response is necessary. // 对于设备中的FMMU配置,每个一致的输出和每个一致的输入块都需要一个FMMU,并且还需要一个用于邮箱状态响应的附加FMMU。
Application Note: The standard configuration is one FMMU per each, cyclic output and cyclic input data block , optionally an additional one for mapping the mailbox response availability flag into process data (thus, no polling of mailboxes is necessary). If the outputs and inputs are groupede.g. like in Table 5, 3 FMMUs are configured, see Table 6. // 应用说明:标准配置是每个循环输出和循环输入数据块一个FMMU,还可以选择另外一个用于将邮箱响应可用性标志映射到过程数据中(因此,不需要轮询邮箱)。 如果输出和输入被分组,例如 如表5所示,配置了3个FMMU,请参阅表6。
Table 6: FMMU Configuration
FMMUAssigned SyncManagerNameLength [Byte]1SM2OutputsL_Out (TxPDO)2SM3InputsL_In (RxPDO)3SM0 & SM1Mbx-SM Status FlagsMbx In/Out Length
Distributed Clocks (DCs(同步) with other slave devices,分布式时钟 ) for synchronization
Evaluate if the device should support high precise(支持高精度) synchronization with other slave devices. If so, DCs should be supported by the selected ESC. Distributed Clocks refer to the DC function for EtherCAT slaves (chapter 1.3.5). The times held by slaves are adjusted with this mechanism(途径) and thus enable precise synchronization of the nodes(节点) in the EtherCAT network. // 评估设备是否应支持与其他从设备的高精度同步。 如果是这样,所选的ESC应该支持DC。 分布式时钟指的是EtherCAT从站的DC功能(第1.3.5章)。 通过这种机制可以调整从站保持的时间,从而实现EtherCAT网络中节点的精确同步。
EEPROM(电可擦只读存储器)
The EEPROM is mounted(安装) outside the ESC and connected via I2C with point-to-point link(点对点连接) . According to the size of the EEPROM the EEPROM_SIZE signal should be set. For more details, refer to the Knowledge Base, chapter 11.3 d electrical Interface EEPROM an(I 2C)". For EEPROM (SII) Enhanced Link Detection setting (加强连接检测设置) , refer to documentation of the ESC vendor. // EEPROM安装在ESC外部,并通过I2C与点对点链接连接。 根据EEPROM的大小,应设置EEPROM_SIZE信号。 有关更多详细信息,请参见知识库第11.3章“电气接口EEPROM和(I 2C)”。有关EEPROM(SII)增强链接检测设置,请参阅ESC供应商的文档。
Application Controller【应用控制】 (Host Controller, μ C)
If a local software application provides the device functionality, any 8 or 16 bit synchronous or asynchronous microcontroller(任何一个 8位或者 16位同步或者异步微控制器) can be connected to the ESC. The application controller communicates with the ESC via the Process Data Interfaces (PDI).
To adapt the application software on the host(为了和主站的应用程序相适应 ) controller to the ESC, sample software stacks(样本软件栈) are available for communication implementation(通讯的实现), e.g. the Slave Sample Code(从站样本代码) (SCC). If the device is a 32 bit digital I/O interface, no application controller or additional communication software is necessary. // 为了使主机控制器上的应用软件适应ESC,可以使用示例软件堆栈进行通信实现,例如从机样本代码(SCC)。 如果设备是32位数字I/O接口,则无需应用程序控制器或其他通讯软件。
In most cases, manufacturers(制造商) can use a familiar microcontroller type as application controller in the EtherCAT device(使用相似型号的微控制器作为应用控制使用在 EtherCAT设备中) . If application software already exists, e.g. for a different fieldbus, it can be used for the EtherCAT device as well. // 在大多数情况下,制造商可以在EtherCAT设备中使用熟悉的微控制器类型作为应用程序控制器。 如果应用软件已经存在,例如 对于不同的现场总线,它也可以用于EtherCAT设备。
The source code(源代码) for communications software on the host controller allocates(分配) about 70kByte. The following features are a typical configuration (referring to the Slave Sample Code):
EtherCAT State Machine (ESM), including error handling(错误处理)
Device diagnosis(设备诊断)
Master-Slave data synchronization (主从站之间的数据同步) with SyncManager event (no DCs)
Mailbox CoE
Object Dictionary (对象字典) (20 objects) for process data objects (过程数据对象)
CoE services, including CoE Info services(信息服务) , no segmented transfer (无分割转换)
A list of other available sample stacks can be obtained on the product section of the ETG website.
Application Layer Communication Protocols (应用层通讯协议)
In EtherCAT, several protocols are available (see chapter 1.3.6) for the application layer to implement (实施) the required specification of the product development(产品开发时所需的规格) . When to apply them is described here.
CAN application protocol (总线应用协议 )over EtherCAT(CoE) To provide acyclic data exchange as well as mechanisms to configure PDOs for cyclic data exchange in a structured way, CoE (with SDO-Info support) should be implemented.
Servo drive profile(伺服驱动配置文件) over EtherCAT(SoE) SoE is an alternative drive profile to the CiA402 drive profile. It is often used by drive manufacturers which are familiar with the SERCOS interface.
Ethernet(以太网) over EtherCAT(EoE) EoE is usually used to provide webserver interfaces(网络接口) via EtherCAT. It is also used for devices providing decentral standard Ethernet ports(分散生产方式的标准以太网端口) . ? File Access(文件存取组件) over EtherCAT(FoE) If the device should support firmware(固件)download via EtherCAT, FoE should be supported. FoE is based on TFTP. It provides fast file transfer and small protocol implementation.
ADS over EtherCAT(AoE)小协议实施 When planning to control the device via a .Net interface, AoE is an option to apply.
Application Note:An exemplary(典范) CoE implementation is shown below.
The user application runs the device specific software(设备专用软件) on the μ C to implement device features(实现设备功能特性 ). Sample source code(protocol stacks) offered by EtherCAT stack vendors can be used to develop this application or to adapt existing software to EtherCAT.
Application Note:EtherCAT Slave Stack Code (SSC,从站堆栈代码 ).
The SSC is a free sample codefrom Beckhoff(德国倍福自动化有限公司)(免费样本代码) which provides an interface to the ESC. For hardware independent software development(独立于硬件的软件开发) , the SSC runs on several evaluation kits(评估板) and can be customized(自定义) for implementation in accordance with the product specification. Figure 14 shows the SSC structure with the interfaces to the user specific device application(用户特定的设备应用) and the ESC.
Application Note:EtherCAT Slave Protocol Stack.(从站协议栈)
Hilscher(德国赫优讯公司) offers a Slave Control Stack based on its netX hardware withDual Port Memoryinterface (DPM,双端口记忆器 ) and it is available for the user application with an API. Figure 15 shows the protocol stack architecture(协议栈构架) with interfaces to the ESC and the user application.
Device Profiles(设备配置文件)
During network initialization(网络初始化期间) , parameter setup(参数设定) is necessary, where data does not need to be transmitted cyclically(周期性传输) but only during network initialization. Acyclic data exchange is done via mailbox protocols(非循环的数据传输通过邮箱协议) , usually via theCoEprotocol (see chapter 2.3.5). For devices with variable process data structure, the definition of a modular device description(MDP,模块化设备描述 ) is available. The MDP is described in the ETG.5001 Modular Device Profile Specification(说明书) . // 在网络初始化期间,必须进行参数设置,这些数据不需要循环传输,而仅在网络初始化期间需要传输。 非循环数据交换是通过邮箱协议(通常通过CoE协议)完成的(请参阅第2.3.5章)。 对于具有可变过程数据结构的设备,可以使用模块化设备描述(MDP)的定义。 EDP.5001模块化设备配置文件规范中描述了MDP。
The MDP is based on the object dictionary defined byCoE(CAN application protocol over EtherCAT). The object dictionary can be described as a two dimensional list(二维表) . Each list entry (每个表的入口) is identified(识别) by an index(指针,索引) (0x0000–0xFFFF) which represents an object. Each object can contain up to 255 subindices(分目录) , also called object entries. The object list is structured in different areas, see Table 7. // MDP基于CoE(基于EtherCAT的CAN应用协议)定义的对象字典。 对象字典可以描述为二维列表。 每个列表条目均由代表对象的索引(0x0000-0xFFFF)标识。 每个对象最多可以包含255个子索引,也称为对象条目。 对象列表的结构在不同区域中,请参见表7。
The idea of the MDP is to provide a basic structure for masters(为主站提供一个基本构架) and configuration tools(配置工具) to handle(处理) slaves with complex (modular) structure easily. The user has the advantage, that if the slave variables’(变量)s are sorted in an MDP style, he can find the different data types by identical patterns(相同的模式) . // MDP的思想是为主机和配置工具提供基本结构,以轻松处理具有复杂(模块化)结构的从机。 用户的优势在于,如果以MDP样式对从属变量进行排序,则他可以通过相同的模式找到不同的数据类型。
The MDP can be applied to various types of devices. It is applicable to multiple axis(多轴) servo drive system(伺服驱动系统) of various functionality groups(各种功能组) , such as positioning(位置控制) , torque(扭矩控制) and velocity control(转速控制) . It is further applicable to gateway(网关) between different fieldbuses, i.e., Profibus, DeviceNet. Modular devices are driven by two aspects: // MDP可以应用于各种类型的设备。 适用于各种功能组的多轴伺服驱动系统,例如定位,转矩和速度控制。 它进一步适用于不同现场总线之间的网关,即Profibus,DeviceNet。 模块化设备由两个方面驱动:
Comprise(包含) physically connectable modules and plurality of functionalities(多数功能) .
//包括物理上可连接的模块和多种功能。
Comprise plurality of channels(多数通道) directly being connected to the EtherCAT network.
//包括多个直接连接到EtherCAT网络的通道。
The MDP imagines slaves which consist of one or several modules. A module can be hardware which is connected/disconnected to a slave. Examples are gateways between EtherCAT and e.g. CANopen or a bus coupler(总线耦合器) between EtherCAT and a proprietary backbone bus(专用主干总线) . // MDP设想从站由一个或几个模块组成。模块可以是已连接/断开连接到从站的硬件。示例是EtherCAT与例如CANopen或EtherCAT与专有骨干总线之间的总线耦合器。
A module can also be a logical module which describes data sets, e.g. a drive which supports a velocity controlled mode and a position controlled mode –the MDP would describe the data as two modules, one for each mode.(把数据描述成 2种模式,每个对应相应的模式) // 模块也可以是描述数据集的逻辑模块,例如。一个支持速度控制模式和位置控制模式的驱动器-MDP将数据描述为两个模块,每个模式一个。
No matter what kind of module is described it needs more or less the same information categories(需要相对应的信息分类) , which are organized in the profile specific index range (Table 7). // 无论描述哪种模块,它都或多或少需要相同的信息类别,这些信息类别在配置文件特定的索引范围内进行组织(表7)。
Application Note:Modular Device Profile Structure(模块化设备配置文件结构) . // 应用说明:模块化设备配置文件结构。
Consider an MDP for a line of slave device modules which are connected together on a backbone layer(主干网层面) via LVDS and via a coupler(耦合器) with MII. Figure 16 shows a schema how to define device profiles(如何定义设备配置文件) such that a modular profile dictionary is set up for the slave device line. // 考虑一排从设备模块的MDP,这些设备通过LVDS和带有MII的耦合器在主干层上连接在一起。图16显示了一种模式,该模式如何定义设备配置文件,以便为从属设备线设置模块化配置文件字典。
For implementation of the profile (CiA402 Drive Profile) for servo drive, build the program with reference to the corresponding specifications(技术规格,说明书) . In this example, this would be the
ETG.6010 Implementation Directive(指令) for the CiA402 Drive Profile, and
IEC 61800-7 Drive Profiles and Mapping to EtherCAT.
4. 应用实例
由于EtherCAT实时工业以太网技术具有适用范围广、拓扑结构灵活、数据通信效率高、实时性强和同步性能好等多种优点,所以特别适用于实时性要求高、通信数据量大的运动控制系统。
控制系统设计采用“PC+运动控制器”的方案,构建多轴运动控制系统,采用PC机为主站、ARM+MCX314为从站处理器的架构。其核心插补与控制算法都放在工业PC中完成,运动控制器要求大为降低,其主要完成数字给定量到实际脉冲信号的转变。该控制系统方案的优势在于简化硬件设计工作,主要以标准化的硬件为主:上位机可以采用工业PC机、下位机使用开发的通用运动控制器,方便日后升级维护。工业PC机与运动控制器直接采用EtherCAT实时工业以太网进行通信连接。
4.1 主站操作系统(RTAI)
PC机部分软件以LinuxCNC为基础,往下LinuxCNC通过HAL(硬件抽象层)与EtherCAT主站驱动之间进行通信连接,然后EtherCAT主站通过以太网线给从站运动控制器发控制命令;往上利用LinuxCNC提供的Python调用接口和人机界面通信,数控系统人机界面采用PyQt开发;由于LinuxCNC需要运行实时任务,需要将普通操作系统进行改造。因此,目前的主要工作是对Linux系统进行实时性改造、安装EtherCAT主站、编写HAL模块、编写人机界面。
虽然EtherCAT主站程序能够安装在非实时操作系统上,但一般情况下会对主站进行实时性改造,而且LinuxCNC中有运行实时任务的需要,所以对Linux系统进行实时性改造迫在眉睫。众所周知,Linux系统本质上是一个分时操作系统,不是一个实时操作系统。Linux系统实时性不强使其在嵌入式应用中有一定的局限性,受内核可抢占性、进程调度方式、中断处理机制、时钟粒度、虚拟内存管理等几个方面的制约。
根据实时性系统要求以及Linux的特点和性能分析,对标准Linux实时性的改造存在多种方法,较为合理的两大类方法为:直接修改Linux内核源代码和双内核法。
1.直接修改Linux内核源代码:对Linux内核代码进行细微修改并不对内核作大规模的变动,在遵循GPL协议的情况下,直接修改内核源代码将Linux改造成一个完全可抢占的实时系统。核心修改面向局部,不会从根本上改变Linux内核,并且一些改动还可以通过Linux的模块加载来完成,即系统需要处理实时任务时加载该功能模块,不需要时动态卸载该模块。这种方法存在的问题是:很难百分之百保证,在任何情况下,GPOS(通用操作系统)程序代码绝不会阻碍RTOS的实时行为。也就是说,通过修改Linux内核,难以保证实时进程的执行不会遭到非实时进程所进行的不可预测活动的干扰。2.双内核法:双内核法是在同一硬件平台上采用两个相互配合,共同工作的系统核心,通过在Linux系统的最底层增加一层实时核心来实现。其中的一个核心提供精确的实时多任务处理,另一个核心提供复杂的非实时通用功能。其优点是可以做到硬实时,并且能很方便地实现一种新的调度策略。目前采用这种方案的主要有RTAT,RT-Linux和Xenomai。本课题采用RTAI实时包的方式完成对Linux系统的实时性改造,如图所示。
RTAI(实时应用接口)是Linux内核的一个实时扩展,RTAI是基于ADEOSC Adaptive Domain Environment for Operating System)实现,ADEOS位于Linux系统和硬件之间管理硬件中断,并控制实时内核和Linux内核的优先级,其中实时内核优先级高于Linux内核优先级。
RTAI安装:
1.下载RTAI压缩包并解压到urs/src目录下,输入命令:
cd /usr/src
sudo tar -bzip2 -xvf rtai一3.8.tar.bz2
2.下载Linux内核压缩包并解压到urs/src目录下,输入命令:
sudo cp suoxd/linux-2.6.37.1.tar.bz2 /usr/src
sudo tar -bzip2 -xvf linux一2.6.32.2.tar.bz2
3.利用RTAI源码中的文件给内核打补丁,未安装p atch需安装patch后,输入命令:
sudo patch -pl
4.配置内核,Linux2.6.32引入新的方式用于简化kernel的配置,使用命令拷贝当前配置,省去很多繁琐的内核配置选项。
5.安装内核模块,输入命令:
sudo make clean
sudo make
sudo make modules
sudo make modules install
sudo make install
6.配置RTAI,下载安装MESA库文件和EFLTK包,然后进入RTAI文件夹,执行配置,输入命令:
cd /usr/src/rtai
sudo make config
7.编译并安装RTAI,命令行窗口的RTAI安装结果如图4-2所示,输入命令:
sudo make
sudo make install
8.RTAI内核延时测试,利用RTAI源码包中的测试案例进行测试,测试结果如下:
cd /usr/realtime/testsuite/user/latency
sudo ./run
9.RTAI内核抢占实现测试,测试结果如图4-4所示,输入命令行:
cd /usr/realtime/testsuite/user/preempt
sudo ./run
4.2 主站EtherCAT程序(IGH)
本控制系统EtherCAT主站以实时Linux操作系统为基础,在Linux环境下开发主站有两方面优势,一方面Linux为开源系统,方便对底层进行修改;另一方面便于进行嵌入式移植。Linux下的EtherCAT主站架构如图所示:
Linux操作系统可分为内核态和用户态。内核态是操作系统的核心,负责进程管理、内存管理、进程间通信和设备管理和驱动等,实时性要求高。用户态主要运行人机交互、数据监控等实时性要求不高的程序。
EtherCAT主站模块运行在内核态,可支持一个或多个EtherCAT主站,且同时提供应用接口和设备接口。用户通过应用接口访问主站,通过设备接口连接设备到指定主站。EtherCAT的以太网设备驱动模块通过主站设备接口与主站连接,EtherCAT设备协议可直接由以太网帧传送,因而主站能同时并行处理EtherCAT数据帧和通用以太网通信。
在Linux上安装EtherCAT主站程序,这里选择EtherLab开发的IgH EtherCAT Master,首先下载主站安装文件gHEtherLab.tar.bz2,下载文件后解压缩进入含有Makefile文件的目录安装主站,输入命令:
make ethercatMaster
make ethercatMasterinstall
sudo /etc/init.d/ethercat start
ethercat master
若最后两条指令运行正常则说明主站安装成功。
4.3 主站应用开发(LinuxCNC)
LinuxCNC是一款运行在Linux平台下的实时开源数控软件。起源于美国国家标准与技术研究院的增强型运动控制器EMC (Enhanced Machine Controller)研究项目,用于机床的数控系统。经过十几年的发展,LinuxCNC系统广泛用于冲床、车床、3D打印机、激光切割机、等离子切割机、机器人手臂等领域。其主要优点有:提供多个标准化的用户界面、用户也可以采用自主开发的GUI、自带G代码解析器、支持伺服电机控制步进电机开环控制、运动控制器功能强大、支持非笛卡尔坐标运动系统、采用2.4或2.6的Linux内核支持RT-Linux或RTAI实时补丁。LinuxCNC源代码可以免费下载,安装在Linux系统上。LinuxCNC软件架构如图所示。
LinuxCNC是一个模块化设计的软件,大致可以分为以下四个主要模块:运动控制器(EmcMot)、数字I/O控制器(EmcIO )、任务控制器(EmcTask )、图形用户界面(GUI)。
用户操作界面负责接收用户命令并反馈最新状态;
任务控制器是整个系统的决策层,主要负责对各种命令进行决策分类、解析发送给不同的模块;
运动控制器是实时刷新的,主要完成路径规划、插值运算等;
数字I/O控制器负责处理I/O信号,通过NML消息与运动控制器通信,因为不同设备I/O各不相同,这时需要硬件抽象层HAL文件建立软逻辑电路来控制实际I/O ;
HAL
HAL硬件抽象层是LinuxCNC系统的关键技术之一,通过引入HAL机制,为用户提供了统一的驱动开发接口,方便编写驱动,还能利用配置文件将相应的HAL模块连成一个复杂系统,方便数据传递。HAL模块结构图如图所示。
EtherCAT主站驱动与LinuxCNC之间采用HAL机制进行通信,硬件抽象层将各个底层的硬件驱动、实时算法抽象出来,构成一个组件,组件是由函数、参数、输入输出引脚所组成,输入信号包括来自LinuxCNC的控制信号、用户配置信息,输出信号包括提供给LinuxCNC的反馈量等。将编写好的HAL模块命令为ec.comp,编译生成ec.ko,利用insmod命令将其安装后就可以加载到线程中。
当HAL模块启动的时候,需要对变量进行初始化,但完成EtherCAT主站的初始化是更重要的,只有初始化了主站,设置好参数,建立起完整的通信网络,才能进行接下来的周期数据传输,其中PDO为进程数据对象、SDO为服务数据对象。如图为EtherCAT主站的初始化流程图。
主站初始化完成后,LinuxCNC开始正常运行。LinuxCNC在每个控制周期通过硬件抽象层下发控制命令,并获取从站设备反馈的信息。
HAL周期任务流程图如图所示。
对于采用位置控制的伺服单元,HAL模块每次都要计算出本控制周期的位移或目标点,然后通过EtherCAT总线发送到从站运动控制器;
然后从站运动控制器在每个控制周期上报编码器位置增量和I/O状态,HAL模块计算出轴的实际位置后发送给LinuxCNC。
UI界面
在Linux环境下开发用户界面的语言有Python, C++等,图形库有QT, GTK等。由于控制界面运行于用户态,实时性要求不高,同时兼顾开发难度和周期,本课题采用Python语言,结合PyQT图形库开发冲床控制界面。Python是一种面向对象的脚本语言,与其他语言相比,Python具有如下优点:面向对象、公开免费、跨平台可移植、功能强大、使用简单、模块丰富。QT是一个功能丰富广泛使用的GUI图形库,可用于Windows, Linux等平台,具有很好的可移植性。PyQt是Python语言与Qt图形库相结合的产物,从而可以通过Python来使用Qt图形库,具有模块丰富、跨平台和使用信号与槽机制的优点。数控界面调用LinuxCNC抽象出的Python接口与任务控制器通信,并监视LinuxCNC状态信息和错误信息。
本课题冲床数控系统设计加工状态、参数设置、警告与诊断和软件设置四个状态界面,四个状态界面下一共分设13个子界面,各个界面之间可以通过按钮进行切换,数控系统界面结构图如图所示。 系统的主界面由菜单栏、工作窗口、快捷工具栏和消息提示栏这四部分构成。菜单栏可以根据不同的操作需求切换不同的工作窗口,快捷工具栏是一些常用的快捷按钮,消息提示栏是提示快捷按钮内容和显示系统运行状况、错误信息汇报的区域,如图所示。 2.参数设置界面:参数设置界面用于设置控制系统及机械的参数,分设了系统参数设置、运动轴参数设置及模具库参数设置这3个子界面。下面主要讲解运动轴参数,运动轴参数设置界面如图所示。
3.警告与诊断界面:息记录界面这2个子界面。警告与诊断界面下设有警告信息诊断界面、历史警告信,如图所示。
4.软件设置界面:软件设置界面用于设置软件与外部设备的通讯参数和显示软件的版本等信息,设有软件信息、外部设备通讯设置及高级设置这3个子界面。下面讲解外部设备通讯设置界面,如图所示。
4.4 ET1200
EtherCAT从站控制器ESC(EtherCAT Slave Controller)是由德国BECKHOFF自动化有限公司提供的,包括ASIC芯片和IP-Core,实现EtherCAT数据链路层协议。目前ASIC从站控制专用芯片有ET1100和ET1200,也可以使用IP-Core将EtherCAT通信功能集成到设备控制FPGA当中,并根据需要配置功能和规模。图为ET1200从站控制器结构图: ET1200最多支持3个EtherCAT物理通信端口:
其中一个可以作为MII接口,用于与物理层PHY芯片交换数据。因为EtherCAT并不定义该接口的物理层,MII接口也是和传输介质无关接口,因此这种接口方式下的数据链路层与物理层彻底隔开,从而以太网能够选用任意的传输介质,包括无线电和光纤。ET1200其余两个接口均为EBUS接口,EBUS是德国倍福公司使用的LVDS(Low Voltage Differental Signaling)标准定义的数据传输标准,通信速率高达100Mbit/s,能与ESC芯片直接相连,减小PCB板体积和降低成本。EBUS的传输距离最大为10m。ET1200提供的物理设备接口有数字I/O和SPI两种,选用ARM作为从站微处理器是一般通过SPI接口访问ET1200。ET1200采用3.3 V供电,最大工作电流约为70mA,芯片发热量很小。
ET1200的主要技术指标:
ET1200从站控制器使用外部EEPROM来存储从站设备信息,下表是EEPROM存储数据分布示意图,其中0~63为基本信息,每次ESC启动时都会从EEPROM中读取其中的配置信息。
4.5 从站程序设计
运动控制器软件设计包括ARM主控制程序及外围电路驱动程序,外围驱动程序包括ET 1200驱动程序、AD采样芯片驱动程序、RS232驱动程序、SPI串行总线、FSMC并行总线驱动程序以及MCX314加减速控制程序设计等。运动控制器程序在STM32F427这款MCU上使用C语言开发,开发环境为Windows 7下的Keil uVision_5集成开发环境。
ARM主控制程序是运动控制器的核心,需要完成各个函数初始化、参数配置、数据处理、逻辑流程控制及控制算法运算等,图为支持查询模式(自由运行模式)的流程图。
ARM芯片在上电后不久进入main()函数,在main()函数中最先完成一系列系统正常运行相关函数的初始化,如延时初始化函数、LED初始化函数、串口初始化函数、中断向量表配置初始化函数,然后完成SPI初始化函数、定时器初始化函数、EtherCAT初始化函数以及FSMC总线初始化函数等。
接着完成通信初始化工作,查询主站的状态控制寄存器,读取事件请求寄存器0x220、相关配置寄存器,启动或关断相关通讯服务。
在完成以上工作后就进入主循环while(1),进行应用层任务处理和周期性数据处理,周期性数据处理和应用层任务处理有查询模式(自由运行模式)或同步模式(中断模式)这两种,本程序采用同步运行模式,所以在主循环中主要处理非周期性的任务。同步运行模式下周期性数据在中断服务程序中处理。
void main(void)
{
//--一执行一系列初始化函数--一
Delay_Init(168); //初始化延时函数
Led_Init(); //初始化LED端口
Uart_Init(9600); //初始化串口
AD7606_Init(); //初始化AD采样芯片
NVIC_Config(); //初始化STM32时钟及外设
SPI_Config(); //ET 1200用SPI总线初始化配置
Timer2_Init_ Config(); //Timer2初始化配置
ET 1200_GPIO_Config(); //ET 1200 GPIO初始化配置
ECAT_Init(); //初始化通信变量和ESC寄存器
FSMC_Init(); //FSMC并行总线初始化
//--一初始化完成,进入主循环--一
while(1)
{
ET1200_AlEvent=pEsc->AlEvent; //读应用层事件请求寄存器,
// ET1200_AlEvent为全局变量,在头文件中定义
if(!ET1200_IntEnabled) //处于自由运行模式(ET 1200_ IntEnabled -=0
//处于同步模式(ET1200 IntEnabled==1)
free_ run(); //处于自由运行模式时,进行周期性数据查询
el_event(); //应用层任务处理,包括状态机和非周期性数据等
}
}
从站设备可以运行于同步模式或自由运行模式,在自由运行模式中使用查询方式处理周期性过程数据,在同步模式使用中断服务程序处理性数据。
变量ET1200 IntEnabled来控制运行模式。ET1200 IntEnabled为1时,使用同步模式,ET1200 IntEnabled为0时,使用自由运行模式。
根据主站对SM的配置,在函数、参数初始化阶段来初始化变量ET1200_ IntEnabled,确定当前的运行模式。
本程序选择同步模式,以下将按照该模式讲解一个中断服务数据处理的工作流程,如图所示。
4.6 实验测试
实验测试平台由一台PC机、一套自主研发的冲床数控系统软件、一台自主研发的五轴高速运动控制器、一套单轴丝杠滑台、一套二维伺服平台、一套四轴同步测试架组成。
实验过程中需要注意,因为目前运动控制器专为数控冲床设计,仅保留1个M II接口连接主站,且设计最多连接轴数为五轴,故连接四轴同步测试架时不能接单轴丝杠滑台和二维伺服平台;测试过程中工业PC机和显示器使用笔记本代替。在平台上测试通过后将控制系统接入到LX230B型数控转塔冲床上进行测试和参数调试,最终成功开发出30T数控转塔冲床用高速运动控制系统。
基本通信功能测试
EtherCAT主从站基本通信功能测试时首先按图所示,使用网线将PC机与从站运动控制器连接起来后,在数控软件通信设置的外部设备通信设置中找到运动控制器连接状态,点击重新连接。使用Wireshark抓包工具抓取连接过程中主站广播的数据包,最终连接成功时运动控制器连接状态指示灯变为ON,从站状态变为操作状态(OP),从站状态机启动正常,如图所示。
由图可知该实验中EtherCAT报文的格式。报文总长度60个字节,前14个字节是以太网数据帧头,包括6字节的目的地址(ff:ff:ff:ff:ff:ff ) } 6字节的源地址(78:a5:04:c0:be:6f)} 2字节的帧类型(Ox88a4);接着是2字节的EtherCAT头,包括11位数据长度(Ox02a)}1位保留位(Ox0)}4位类型位(0x1);然后是EtherCAT数据,数据为2个子报文,每个子报文包含10字节子报文头,16字节数据,2字节WKC(工作计数器)。Wireshark抓取的报文与2.1节中的EtherCAT帧格式一 致,从而主从站之间实现了基本通信。
控制系统基本功能测试
控制系统基本功能测试是验证系统软硬件功能正常的重要实验,该项测试在单轴丝杠滑台完成,连接好PC机、运动控制器和单轴丝杠滑台,如图所示。在数控软件的手动加工中对输出I/O如伺服使能、紧急停止,回零点如X轴回零、Y轴回零,单轴位移控制如X+, X-, Y+, Y-进行测试,并观察滑台的运动情况和伺服驱动器面板显示来判断各项功能是否正常。经测试,软件上的相关按钮都工作正常,五个轴的接口、I/O接口工作正常,产生的脉冲精度误差为0。故数控系统软硬件基本功能测试通过。
G代码解释、圆弧插补测试
通过二维伺服运动平台圆弧插补实验测试运动控制系统G代码解释、圆弧插补等功能。该项测试主要在二维伺服平台上完成,连接PC机、运动控制器和二维伺服平台,如图所示,通过数控系统控制二维伺服运动平台的X轴和Y轴电机做圆弧插补,利用上方横梁固定的笔杆记录二维平台上白纸相对运动下的轨迹。二维平台中的两组伺服机丝杠的参数完全一致,丝杠螺距为20mm,设定伺服驱动器驱动电机旋转一圈为2000个脉冲,可知丝杠走1 mm需要100个脉冲,由此设置数控软件中的X, Y轴脉冲当量都为1000。
使用AutoCAD设计一个直径D为80mm的圆周,如图所示,绘制完成后保存为.dxf格式,然后使用一体化饭金CAD/CAM编程软件cncKad将.dxf格式的图纸转化为冲床数控软件所需的.PNC文件,即G代码。然后将G代码文件导入到数控软件中,预加工仿真运行无误后启动伺服,进行实际加工,最终得到实际绘制效果图如图_5 -6所示。绘制出的圆周尺寸精确,控制系统通过圆弧插补测试。
多轴运动的同步性能测试
多轴同步测试实验用来测试运动控制系统多轴运动的同步性能。该项测试主要利用四轴同步测试架完成,如图所示,测试架上固定安装有A, B, C, D共4组电机和驱动器。将电机驱动器与运动控制连接,控制器通过EtherCAT总线与PC机连接,打开数控软件,在加工状态中选择手动加工,控制伺服电机A, B,C, D同时做顺时针运动旋转,通过长时间运行测试观察轴上4个光盘指向分析电机运动的同步性。经过长时间测试观察后,电机按钮停止伺服轴转动,可以看到4个电机指向同一方向,驱动器面板显示脉冲数也一致。
实际产品应用
在上一节的一系列实验后,控制系统的各项功能都顺利通过测试,接下来把开发好的控制系统制作成便于使用的操作台和控制柜接入到LX230B型30T的数控转塔冲床上,取代原有的控制系统,操作台和控制柜如图所示。该冲床选用安川 -7系列AC伺服电机、 -V系列AC伺服驱动器。首先调试好伺服电机与伺服驱动器之间构成电流环、速度环的PID参数,让闭环的性能达到较好水平,再接入控制系统,其中编码器分频脉冲输出C相信号在轴回原点时使用。
为观测控制系统在数控转塔冲床上的应用效果,需要采用非接触测量仪测量板材运动过程中的振动曲线。根据实验室现有的条件,采用由日本Keyence公司生产的LK-G400型激光位移传感器和LK-GD_500型控制器作为非接触式测量工具。 LK-G400的主要技术参数为:使用距离为400mm,测量范围为士100mm,取样率20us,钡量精度为gum o LK-GD_500型控制器主要参数为:最小显示单位为O.Olum,显示周期10次/秒。
在冲床大板材(1200mm X 2_SOOmm)上选取测试点W点,如图所示。采用S型曲线加减速规划,加速度g为6,控制板材在X轴上高速移动lOmm,运动控制器输出的PULS(脉冲)信号局部波形如图所示。
使用软件LK-Navigator读取传感器测量的数据,如图所示。由图分析可知调节时间为130ms(按士0._5%误差带)、稳态误差士0.0_Smm,各项指标良好,达到工业应用要求。
5. 工具
5.1 TwinCAT
EtherCAT主站方案实现一般都采用倍福公司的TwinCAT, TwinCAT实现了强大的EtherCAT主站功能,从站XML表配置、EEPROM配置文件操作、扫描EtherCAT从站等,下图为使用TwinCAT开发冲床数控系统的过程。因为TwinCAT是基于Windows风格,拥有较好的人机交互界面,功能强大,非常适合上位机控制窗口的开发,但TwinCAT运行于Windows环境下,实时性很差,而且TwinCAT和Windows系统需要付费才能商业化应用,价格较高。
在学习EtherCAT的时候,TwinCAT是必须要学习的。TwinCAT软件其功能强大,可以写plc程序,可以写图形化界面,可以观察波形等等。初次学习时我就参考TwinCAT 3运动控制教程和TwinCAT NC PTP实用教程,把TwinCAT 3中界面的一些功能都试了一遍。另外用功能块学着写了凸轮、齿轮的程序,并用Visualization图形化界面来控制。(在学习TwinCAT时,要充分利用好帮助文档)。
因为我的任务是做一致性测试,所以关注点大部分放在了对协议的了解上,涉及到一致性测试的文档有ETF7000.2、ETG7010。具体可以去ETG官网上查找相关资料。做一致性测试时需要用到ET9400,这款软件不是免费的。目前还没开始测这部分。
对于带有EtherCAT伺服驱动器的性能的测试,用TwinCAT带着简单测过csp、csv、cst这三种模式。如果想要系统的测试驱动器所支持的操作模式,必须对驱动器的相关知识有一定的了解。另外就是对对象字典中对象充分了解。TwinCAT中的Process Data和CoE-Online界面是很重要的。这点我也没有完全掌握。没有以太网基础,对协议没有了解,直接接触EtherCAT这条学习之路感觉很艰难!
5.2 LinuxCNC
PC机部分软件以LinuxCNC为基础,往下LinuxCNC通过HAL(硬件抽象层)与EtherCAT主站驱动之间进行通信连接,然后EtherCAT主站通过以太网线给从站运动控制器发控制命令;往上利用LinuxCNC提供的Python调用接口和人机界面通信,数控系统人机界面采用PyQt开发;由于LinuxCNC需要运行实时任务,需要将普通操作系统进行改造。因此,目前的主要工作是对Linux系统进行实时性改造、安装EtherCAT主站、编写HAL模块、编写人机界面。
5.3 开源的EtherCAT Master
EtherCAT的主站开发是基于EtherCAT机器人控制系统的开发中非常重要的环节。目前常见开源的主站代码为的RT-LAB开发的SOEM (Simple OpenSource EtherCAT Master)和EtherLab的the IgH EtherCAT® Master。使用起来SOEM的简单一些,而the IgH EtherCAT® Master更复杂一些,但对EtherCAT的实现更为完整。
具体比较如下表:
参考资料
EtherCAT协议介绍.pdfEtherCAT Technology Group _ 技术概览记录STM32开发一个完整的EtherCAT的过程
优惠劵
pwl999
关注
关注
209
点赞
踩
1345
收藏
觉得还不错?
一键收藏
知道了
23
评论
EtherCAT (学习笔记)
文章目录1. 简介1.1 运动控制1.2 实时以太网1.3 EtherCAT2. EtherCAT原理介绍2.1 实时性2.2 端口管理2.3 EtherCAT网络拓扑2.4 EtherCAT网络协议栈2.5 EtherCAT数据帧格式2.6 EtherCAT设备寻址方式2.7 分布式时钟(Distribute Clock)2.8 应用层(Application Layer)2.9 设备配置(Device Profile)2.10 主站设计2.11 从站设计3. 应用层(Application Layer)
复制链接
扫一扫
专栏目录
EtherCAT中文介绍
10-22
实时以太网EtherCAT中文介绍资料,英文不好的可以参考一下。EtherCAT(以太网控制自动化技术)是一个开放架构,以以太网为基础的现场总线系统,其名称的CAT为控制自动化技术(Control Automation Technology)字首的缩写。EtherCAT是确定性的工业以太网,最早是由德国的Beckhoff公司研发。
EtherCAT Slave Stack Code (SSC)
05-28
BECKHOFF(倍福)官方提供EtherCAT从站协议栈代码生成工具
版本:SSC V5.12(Tool 1.4.2)
23 条评论
您还未登录,请先
登录
后发表或查看评论
EtherCAT EoE
weilan0818的博客
01-16
457
EoE:将以太网帧插入到 EtherCAT 协议中。EtherCAT协议中的以太网帧通过非循环邮箱通信进行传输。
Ethercat概念学习
weixin_43914278的博客
04-10
1588
最近我们要基于Ethercat技术进行开发,首先需要了解其基本原理,github上看到了有相关实现,一起来看看吧。
ethercat学习笔记1
08-08
代码的笔记放到第二章。1.8 松下的从站 PDO映射。6040h控制字这个控制字是用来控制伺服电机上使能的。6041状态字这个状态字读取伺服电机的状态。控制模式
EtherCAT学习之路——概述
chenweizhen1991的博客
03-13
1万+
首发于知乎
最近在做基于EtherCAT的项目,看了一些网上的博客,感觉写的都比较松散。虽然,自己也是才开始学习,希望能把这段时间学到的东西总结一下。
1.EtherCAT简介
EtherCAT是由德国BECKHOFF自动化公司于2003年提出的实时工业以太网技术。它具有高速和高数据有效率的特点,支持多种设备连接拓扑结构。其从站节点使用专用的控制芯片,主站使用标准的以太网控制器。
Et...
EtherCAT介绍
热门推荐
人人都懂物联网
03-11
1万+
EtherCAT(以太网控制自动化技术)是一个以以太网为基础的开放架构的现场总线系统,EtherCAT名称中的CAT为Control Automation Technology(控制自动化技术)首字母的缩写。最初由德国倍福自动化有限公司(Beckhoff Automation GmbH) 研发。EtherCAT为系统的实时性能和拓扑的灵活性树立了新的标准,同时,它还符合甚至降低了现场总线的使用成本。
EtherCAT简介
weixin_41883890的博客
06-30
2396
EtherCAT(用于控制自动化技术的以太网)是Beckhoff(倍福)在2003年开发的实时以太网网络。它基于CANOPEN协议和以太网,但是与Internet通信或网络通信不同之处在于,它专门针对工业自动化控制进行了优化。这些标准由EtherCAT技术小组(简称ETG)定义和维护。使用OSI网络模型,以太网和EtherCAT依赖于相同的物理和数据链路层。除此之外,由于针对不同任务进行了优化,因此这两个网络在设计上有所不同。例如,以太网被设计为通过许多不同的节点发送大量数据。它能够与数十亿个单独的地址之间
【EtherCAT】一、入门基础
06-09
5331
EtherCAT(Ethernet Control Automation Technology)是一种高性能实时以太网通信协议,用于在工业自动化领域中进行实时控制和通信。它是由德国Beckhoff自动化公司在2003年开发的,并被国际电工委员会(IEC)标准化为IEC 61158标准。EtherCAT的设计目标是实现极低的通信延迟和高带宽的数据传输,以满足高速控制和数据采集的需求。它通过一种特殊的主从架构实现,其中一个主站(Master)负责协调整个网络,而从站(Slave)则负责提供输入输出功能。
工控协议解读之EtherCAT协议硬核分析(转自知乎“智能制造之家“)
qq_43599327的博客
09-07
7060
EtherCAT协议
EtherCAT.rar
08-12
搜集的EtherCAT官方相关资料,学习EtherCAT参考资料, 协议说明等等
ethercat_slave_stack_code_tool_SSC_V5i12.rar
08-13
EtherCAT Slave Stack Code Tool 倍福官方从站开发工具5.12版本。
Ethercat xml规范
05-12
Ethercat xml规范
ethercat总结
02-14
ethercat总结,主要是Ethercat基础介绍,运行原理与常用协议说明
2015全国大学生电子设计竞赛-风板控制.doc
03-14
中国电子设计竞赛,大学生,获奖论文,资料分享,历届,方案参考
30.工作计划甘特图模板.xlsx
最新发布
03-14
30.工作计划甘特图模板
面试问题(1).xmind
03-14
面试问题(1)
pandas_market_calendars-0.20a0-py2.py3-none-any.whl
03-14
Python库是一组预先编写的代码模块,旨在帮助开发者实现特定的编程任务,无需从零开始编写代码。这些库可以包括各种功能,如数学运算、文件操作、数据分析和网络编程等。Python社区提供了大量的第三方库,如NumPy、Pandas和Requests,极大地丰富了Python的应用领域,从数据科学到Web开发。Python库的丰富性是Python成为最受欢迎的编程语言之一的关键原因之一。这些库不仅为初学者提供了快速入门的途径,而且为经验丰富的开发者提供了强大的工具,以高效率、高质量地完成复杂任务。例如,Matplotlib和Seaborn库在数据可视化领域内非常受欢迎,它们提供了广泛的工具和技术,可以创建高度定制化的图表和图形,帮助数据科学家和分析师在数据探索和结果展示中更有效地传达信息。
Ethercat学习资料
04-02
以下是关于EtherCAT学习资料的一些推荐:
1. EtherCAT官方网站:https://www.ethercat.org/
官方网站提供了EtherCAT协议的详细介绍、技术规范、应用案例等内容,是学习EtherCAT的重要参考资料。
2. EtherCAT技术手册
EtherCAT技术手册是一本详细介绍EtherCAT协议的书籍,包括EtherCAT协议的基本原理、应用案例、网络拓扑结构等内容,对于学习EtherCAT协议非常有帮助。
3. EtherCAT开发者论坛:https://forum.ethercat.org/
EtherCAT开发者论坛是一个交流和分享EtherCAT开发经验的平台,里面有很多有关EtherCAT协议的讨论和问题解答,对于学习和开发EtherCAT应用非常有帮助。
4. EtherCAT开发工具
EtherCAT开发工具包括EtherCAT协议分析器、EtherCAT节点开发工具等,可以帮助开发者更好地理解和开发EtherCAT应用。
5. EtherCAT培训课程
EtherCAT培训课程可以帮助初学者快速入门EtherCAT协议,掌握EtherCAT网络的设计和应用,提高开发效率。
总之,学习EtherCAT需要系统的学习和实践,建议初学者从官方网站入手,逐步深入学习,同时结合实际应用场景进行实践。
“相关推荐”对你有帮助么?
非常没帮助
没帮助
一般
有帮助
非常有帮助
提交
pwl999
博客等级
码龄16年
博客专家认证
142
原创
898
点赞
4876
收藏
1512
粉丝
关注
私信
热门文章
EtherCAT (学习笔记)
67375
Xenomai (学习笔记)
21785
Device Tree 详解
19639
Unwind 栈回溯详解
18407
Linux bpf 1.1、BPF内核实现
18333
分类专栏
Linux Kernel解析
51篇
Riscv
2篇
Trace
29篇
Arm Linux
11篇
Android
1篇
Linux 驱动三板斧
21篇
Linux Monitor
9篇
Security
12篇
Misc
6篇
VxWorks
6篇
Stability
2篇
Performance
1篇
Power
Virtualization
2篇
RealTime OS
3篇
Motion Control
3篇
AI
最新评论
RISCV 入门 (学习笔记)
中南甘帅问贴贴:
开芯院和日报的网址都寄掉了,不看好riscv的未来
Linux usb 4. Device 详解
努力学习LINUX的嵌入式开发工程师:
我怎么没早点看到你
Linux usb 7. Linux 配置 ADBD
-Promise810:
其实不用执行命令 我记得/etc/ 目录下有个启动脚本专门 执行命令的 你可以看看那个脚本怎么写的
Linux usb 7. Linux 配置 ADBD
一名不会算法的在职算法工程师:
老兄,你还记得执行什么命令吗?
Linux usb 7. Linux 配置 ADBD
-Promise810:
检查一下设备树配置 对应的 usb 接口是否支持从机模式 支持的话 这个usb控制器就能出现
您愿意向朋友推荐“博客详情页”吗?
强烈不推荐
不推荐
一般般
推荐
强烈推荐
提交
最新文章
Linux 驱动模块内存精简
Linux Phy 驱动解析
Linux mem 2.8 Kfence 详解
2023年1篇
2022年5篇
2021年29篇
2020年43篇
2018年26篇
2017年45篇
目录
目录
分类专栏
Linux Kernel解析
51篇
Riscv
2篇
Trace
29篇
Arm Linux
11篇
Android
1篇
Linux 驱动三板斧
21篇
Linux Monitor
9篇
Security
12篇
Misc
6篇
VxWorks
6篇
Stability
2篇
Performance
1篇
Power
Virtualization
2篇
RealTime OS
3篇
Motion Control
3篇
AI
目录
评论 23
被折叠的 条评论
为什么被折叠?
到【灌水乐园】发言
查看更多评论
添加红包
祝福语
请填写红包祝福语或标题
红包数量
个
红包个数最小为10个
红包总金额
元
红包金额最低5元
余额支付
当前余额3.43元
前往充值 >
需支付:10.00元
取消
确定
下一步
知道了
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝
规则
hope_wisdom 发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额
0
抵扣说明:
1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。 2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。
余额充值
-1.5 %����26278 0 obj <> endobj
26289 0 obj <>/Filter/FlateDecode/ID[<4455FBE4BC74D843850EAF314F591BBC>]/Index[26278 31]/Info 26277 0 R/Length 74/Prev 3007229/Root 26279 0 R/Size 26309/Type/XRef/W[1 3 1]>>stream
h�bbd```b``�"���b�j "�
���`5n@�������. ��^�0012���ā�iN�g��� � ��.
endstream endobj startxref
0
%%EOF
26308 0 obj <>stream
h��U�O[ezzz��t;�
-K���%ki�� �P�*r�@�:Yڙ��[b�C;�1@�S��K�H�H���K�`@aB�_`��(��`����-�ſ�7�<���>��< (��@�d��Ȑ��U� ���m�C4g��G�A��sN}L���u�Ѓ�g[�[�)�ǩO{�Z=)86ݳe�4ª��_/����J+:[`g�>�2U��On�(��������LD��
�`��=1,�ɰ��6���J;g��P�lD�;=m~��C�q A/-�L��6�vX7X�!c���4a���]Q���aӑ����KNۭm~Ki_ũ���?�T��|���"_1�f��������+C��ԥgx�x��_�]�Jz�1:�hh�\
�,�n�_���2�v�si璼�_�!����|�JH69�,�����J�!��6�s��)���dʓ� ���3�%�hh��K�{�`��Nq�iG�,T�Fq��5���(#�u �Խ��/��u �7���?�ݕo�n���ߚ�
�� �}�b��_e���uY�b7�9�f�,��=���I��4�B�Q[�8\�������"o�H�]>u }�s��.�~|�m�5�ď8�9�k�Uҁ 4�D"A0>Mh �7�d�� Xz�����;� �#`K>&Ҍ�)�4$�Ƈ�aD�:�/�'R^�'jF(�e����Dc�3'�O�?:��n��,����p���s�'����?A�B�^��Ȩ�
����dJ�&�
gBs3�I�U}��`Bb�HQԂ=p�{H;FxoV&L�?@`�'i ާ�-%����?�2Z<�z�*��YAk-?���/e�~;)d!!��O��>X
�\�*���)^�L(������_���|�zd��-P���&�_�p�
6��G�_�*�F@��
����{ �>�
���0 W3�
endstream endobj 26279 0 obj <>/Metadata 620 0 R/Pages 26276 0 R/StructTreeRoot 687 0 R/Type/Catalog>> endobj 26280 0 obj <>/MediaBox[0 0 720 540]/Parent 26276 0 R/Resources<>/Font<>/ProcSet[/PDF/Text/ImageB/ImageC/ImageI]/XObject<>>>/Rotate 0/StructParents 0/Tabs/S/Type/Page>> endobj 26281 0 obj <>stream
h��kk�F�,�KB���*�A~]ɵĹ�`LP��#�HFRJ��;3z�Nݜ8�������s���!g%���B�!G8&d��1y"4C�P�B��a����rBp 4�A�+� IrkG�P��BCP�(H�A�0P��?�B�铌p���۩�{�Z��4�h}~��W��Fw��v�IW1������&�M�5@��nˋ~_f�h. ��p�]U����7t{���}�9�3f)gU�~��UB���CE���~Y n䗼x�7�^���++W�P��+� ��џ�y�T��u���+��+h#G�F��
�d�K�h9ɳj0�_�����^1R,��K���Q�(��� �U�We� �m���Z8���_j%4�D��ӯ�O�>� M�t[���QP{x_�g0Zhv�����Ck�ix����M��<�y�c)@>stream
x��T]��0|�����pf�^۱�x��tU������!U���R�~�1!p��bp���� �g����p8��d�����c�æP_`_(��i �'�E���T(��� gtMPZ���,q��=*FYN��M&s7Sz�.� ]��O��v�`�ڈ��D��\Z�}��X煮�D�#�4W��F*� �������\��z��ηMo2�aGK)uF"C�^�Vr�"�Z��u�����<�c�V�厗[w{���'֓�&= �M�+,?j*��v���U�V^������)!�8͂Mc��YD �wP��#Is�J����Z������1�ȷ��uJ�U��g䕖�ݸ���ޟ�-
]V`���BE6���6� h�dpL�M~�{�� k����]����F06j2��� ����8H��҆��j@L#d'%��̣ue0q�q�| �37lo=/�:ۦ����Pw�VF���o7�����f_ѽGp�^K�Dž����P�ܨ�.�m�%Bdc����ȓ�l1�2d�盿k�0���TR�y)�
endstream endobj 26283 0 obj <>stream
x�}��jcG��z���,�����
^�B�<�,;�X���ۧ�/e��"�|T�No�C{8�������q�.���Ჾ�}\���O��q���_w��v*?~�_�ׇ�����n��>������%ޞ֟6�_/��r<�,_����?�����t]���~9����ϻ�/��u�B���aʏ�ϯS�|��ŀ��;����~��N/��N͟��n̟��z:� VԞ���.�� Ǖ�g��3��L�O�L^�n� dnd�(j�-B�<�5P�L^9P� �@�
�^��74Ȋ�^"�E�=�Q{�������b��P%#TA�CL}�ׁ@9�"��U�"x����%�9x��� �JHdVd̓�`JV���D^Hd��[�(����Q�f�jZ�
�_v���*��N�IB��#�,�pR�\E�Do�^�^QV3�41�n@�0Dg�����>J�FF�!�n����1&�9D�&�* ̄O2Ë̈,�����W���e�(����"+��^�]�CE����օ,�ς��=��M��\�<�d�C�݄�i�;���ծ�2=����'D���3wW���rw�ǭ��ZϨ@����IP����A�Vkrle��*B$�
(#����jId�&�6�Y��m�R"�>xۅ��Et��m)�� V
frR *>stream
���� JFIF ` ` �� C
!(!0*21/*.-4;K@48G9-.BYBGNPTUT3?]c\RbKSTQ�� C''Q6.6QQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQ�� 0 �" ��
�� � } !1AQa"q2���#B��R��$3br�
%&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz���������������������������������������������������������������������������
�� � w !1AQaq"2�B���� #3R�br�
$4�%�&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz�������������������������������������������������������������������������� ? �
*v�$�� ������V%Oz ���c ?���f��G����( ��|q��
(�T�lꥉ\��8�RB�Z e_�H��$�Uv�>nƪ���8���H5+���DH6��2q��D���ӇT~���+� b^� u?�?�/����[�Կ�����M�X��w2A��ƣ��_._�Eo�K����G�%��S���)��U�#���N�Կ�����G�C�/�!�:(��6��T��s����R�J�� mj_� r��o��\Ǻh�z2���N�I�xZ�����s:�(�O4�2�-&Ӵq�� !'ڤ0=�O���\ch���p���������'��H��1�ƻNy�J�V�F�9��� ���4X�����*p+�hY�=����icl�c ���5�*������>FX�2Kȫ(H�Ug������N����$l��ث��"ަ�-�*� ��T��zgh�̰��}*���@\8�V!���ˌ{�[��3zh��R"è�rN�.��3�*���������@Gh�*jѹ"ˀñ�tP"�I迕5�ЩҢ��
(��
(��
(��
(��
|j�H$�3��S��$�B?J R���H��J"8l���iF209ǽ!e
�I;�E ��~^��n�qRT��*O1q�wmێ� ���F@8����<ȥ��Ňiz�b|��� BT���qUQ��� �Nr@�2~��"��Wv>stream
x��}[�~�u�:����}�s�_��c;��؎�I���ƹ��iz A��K+��&�SEMx��@ԇ>�P�/UP�T �
B�Tx )����*UH�����o~k���������/��K���y�?o�٧s�Ϟ������u����gҶ��)Oۇ睗=�o̟�{�y� �'=��u��;���{�����m�����7yZ仞εÂw'�����{�\Δ��<�H�;��@:_��/�� �ӄ��s��7x�CN�x����O�=ڿ|�.���t�L:?����K�|������|{:���t~կ����:�{����e�X:��wO��{��t��������a�p��?����8���������n�+��t����`H������ ����>�����.<��߿>���gOz������#^��x����<��~��O��}ܯ���t�����#�����T:?��?��g������/���O����H�Չ��/7��\:�{_����}�?_��S�3�}��������t����߿���a������i�qo�-?_Λ^�k�m7=�C~��rw��l������}��������Î��3�P�����Wq��p��t?���L��������K�w?��Ws~mq}��Z:��wb�=��&�x���h>��R��F�^�7���I{���ϓyCW�<.�^�-�s�:�_��o.�v8�w����>�����e:��u�ߍ�>~�������������w_�6e�p�p17fq��d>�6��Y���{���q�ۃ�o�r�p�f�������w#��a��c��)/���[��E�8|ڟ���9�9�۽]�y���w{�o��=��=���{O���s|(�?��yY���|����߿�ayʯw8_����<��3���g2O��s����x��z�q:7��������N:�����,[��I��yS��wIV�Z� �t\OR��$�!=ݤ�.]u�zL��t�1&�a�J�����&��t�9g�h��m���yMn�w-I>�O��/���������|,��w����y�{s*ᙤY=�j}&�&i%O��v>�iO��z�7�ٔ�c �$���� ���O'�>�`��t�r���Y~����}z�T�=_}C��t�AM0�N��Z*����(�-� �hv\�q��� ����|G1�O�W�&�=�����M�R)�,�����sJ��)is��7�^.a�^��{���nJor��ґK��uڷ����R{�HP�R�L *L��r�Z�`{8=�В�^˾���3) �oL��6��YN��2���;��1�`J�n*��
_��L��R�^[c������N���T�n=G���:�b�Rz���Q!�s�ʙ5g��Q�:���6ݯ��)6r SJ��s�5X�b�W�;���ՠ0�:�r5����S���i�]��s���x?��6�z�����.�ܔzV�܄�F�Y}H�V����� ���{��������+�����u��]�'ϳ�|}КFmR��B���v_`�u�x��X�qo�k�1U�#���a?{�Rwb=�-�-�[b�����}W�.