比特派钱包链接|ethercat与上位机通信
比特派钱包链接|ethercat与上位机通信
EtherCAT超高速实时运动控制卡XPCIE1032H上位机C#开发(五):通过RTSys进行调试与诊断 - 知乎
EtherCAT超高速实时运动控制卡XPCIE1032H上位机C#开发(五):通过RTSys进行调试与诊断 - 知乎切换模式写文章登录/注册EtherCAT超高速实时运动控制卡XPCIE1032H上位机C#开发(五):通过RTSys进行调试与诊断正运动技术做最好用的运动控制 — www.zmotion.com.cnXPCIE1032H功能简介XPCIE1032H是一款基于PCI Express的EtherCAT总线运动控制卡,可选6-64轴运动控制,支持多路高速数字输入输出,可轻松实现多轴同步控制和高速数据传输。XPCIE1032H集成了强大的运动控制功能,结合MotionRT7运动控制实时软核,解决了高速高精应用中,PC Windows开发的非实时痛点,指令交互速度比传统的PCI/PCIe快10倍。XPCIE1032H支持PWM,PSO功能,板载16进16出通用IO口,其中输出口全部为高速输出口,可配置为4路PWM输出口或者16路高速PSO硬件比较输出口。输入口含有8路高速输入口,可配置为4路高速色标锁存或两路编码器输入。XPCIE1032H搭配MotionRT7实时内核,使用本地LOCAL接口连接,通过高速的核内交互,可以做到更快速的指令交互,单条指令与多条指令一次性交互时间可以达到3-5us左右。RTSys开发软件简介RTSys是正运动推出的集成运动控制+机器视觉功能的开发软件,支持RTBasic、RTPlc梯形图、RTHmi、RTVision机器视觉等二次开发,并可混合编程、实时仿真、在线跟踪以及诊断与调试,快速实现智能装备的视觉定位、测量、识别、检测和复杂的运动控制等系统的开发,RTSys软件开发界面如下图所示。用户可通过串口或网口连接PC与控制器,使用RTSys软件编写的程序可以直接下载到正运动控制器里脱机运行,也可以在PC平台仿真运行。RTSys软件支持四种编程方式:RtBasic、RtPLC梯形图、HMI组态以及C语言编程。RTSys软件支持在线仿真调试,自带仿真器ZMC Simulator和组态程序仿真工具xplc screen。➜XPCIE1032H与MotionRT7实时内核的配合具有以下优势:1.支持多种上位机语言开发,所有系列产品均可调用同一套API函数库;2.借助核内交互,可以快速调用运动指令,响应时间快至微秒级,比传统PCI/PCIe快10倍;3.解决传统PCI/PCIe运动控制卡在Windows环境下控制系统的非实时性问题;4.支持一维/二维/三维PSO(高速硬件位置比较输出),适用于视觉飞拍、精密点胶和激光能量控制等应用;5.提供高速输入接口,便于实现位置锁存;6.支持EtherCAT总线和脉冲输出混合联动、混合插补。➜使用XPCIE1032H和MotionRT7进行项目开发时,通常需要进行以下步骤:1.安装驱动程序,识别XPCIE1032H;2.打开并执行文件“MotionRT710.exe”,配置参数和运行运动控制实时内核;3.使用ZDevelop软件连接到控制器,进行参数监控。连接时请使用PCI/LOCAL方式,并确保ZDevelop软件版本在3.10以上;4.完成控制程序开发,通过LOCAL链接方式连接到运动控制卡,实现实时运动控制。➜与传统PCI/PCIe卡和PLC的测试数据结果对比:平均值C++ LOCALC# LOCAL传统PCI/PCIe卡接口交互PLC网口通讯交互1w次单条读取交互周期4.70us5.3us64us500us-10ms10w次单条读取交互周期3.90us5.7us65us500us-10ms1w次多条读取交互周期6.20us8.85us472us500us-10ms10w次多条读取交互周期5.50us8.37us471us500us-10ms我们可以从测试对比结果看出,XPCIE1032H运动控制卡配合实时运动控制内核MotionRT7,在LOCAL链接(核内交互)的方式下,指令交互的效率是非常稳定,当测试数量从1w增加到10w时,单条指令交互时间与多条指令交互时间波动不大,非常适用于高速高精的应用。XPCIE1032H控制卡安装关闭计算机电源。打开计算机机箱,选择一条空闲的XPCIE卡槽,用螺丝刀卸下相应的挡板条。将运动控制卡插入该槽,拧紧挡板条上的固定螺丝。XPCIE1032H驱动安装与建立连接参考往期文章EtherCAT超高速实时运动控制卡XPCIE1032H上位机C#开发(一):驱动安装与建立连接。一、C#语言进行运动控制开发具体C#新建项目以及程序开发流程具体可参考“运动控制卡应用开发教程之C#”。本文主要以官方提供的C#例程为大家进行讲解。1、进入光盘资料选择“PC函数库2.1.1”。2、点击“Windows平台”。3、点击“库文件与例程”。4、根据需要选择对应的函数库和例程(64位为例),这里选择64位。5、解压后选择“C#”例程。6、打开单轴运动项目文件夹(以单轴运动工程为例)。7、打开项目后,编译程序,可看到该例程控制台程序界面如图。在该界面有一个LOCAL连接BUTTON按钮,关联的方法为ZAUX_FastOpen方法,MotionRT7选择用此方式进行连接。连接上板卡之后,在该界面可先进行对应的轴参数设置,设置完之后轴选择,最后选择运动方式,点击运动即可。二、相关PC函数介绍相关PC函数介绍详情可参考“ZMotion PC函数库编程手册 V2.1.1”。三、RTSys调试与诊断1、控制器连接上位机开发的同时,要在RTSys上进行运动监控,首先要连接控制器。打开RTSys软件,点击菜单栏的控制器选项,选择连接。在弹出连接界面,选择Local,点击连接。2、轴参数界面连接成功之后,在界面右侧,会出现一个轴参数界面,这个界面可以实时监控轴的各个参数变化值。通过上述C#单轴例程进行参数设置之后,RTSys中轴参数会实时同步数据。此时通过上述C#上位机控制轴运动,在该界面可对轴运行进行实时监控,通过DPOS监控是否有脉冲发出以及MPOS参数监控轴是否有实际动作,是否有位置反馈等。通过ZAux_Direct_SetSpeed指令在上位机设置轴速度之后,实际轴速度变化不大;这个时候,我们可以在轴参数界面找到SPEED值,看是否和上位机设置的值一样,进而排查上位机速度值是否写进去。3、手动运动界面通过RTSys软件进行手动运动调试:点击RTSys菜单栏的工具按钮,选择手动运动,弹出手动运动界面,功能具体如下图。4、IO操作界面点击RTSys菜单栏工具按钮,打开“输入口”和“输出口"界面进行IO口的监控与调试。点击IO选择可手动选择想要监控的IO编号范围。上位机使用ZAux_Direct_GetIn指令读取输入口的状态,通过ZAux_Direct_GetOp指令读取输出口状态以及ZAux_Direct_SetOp指令设置输出口状态。通过上位机指令设置对应的IO口之后,这时候要确认上位机是否操作成功,打开IO操作界面的输入口和输出口即可对其进行监控与设置。5、寄存器界面点击RTSys菜单栏的工具,打开寄存器界面,点击该界面的寄存器类型下拉框,可监控或设置MODBUS、VR、TABLE等寄存器的值。该界面的“起始编号”指监控对应寄存器的起始编号。“个数”表示监控的对应寄存器从起始编号开始,监控的寄存器个数。上位机使用ZAux_Direct_MoveTable缓冲修改table寄存器的值,ZAux_Direct_SetVrf指令修改VR寄存器的值,以及ZAux_Modbus_Set0x指令修改modbus位寄存器的值以及其他寄存器的读写操作。上位机设置完对应寄存器之后,便可打开寄存器界面判断相关寄存器的值是否写成功。6、示波器界面点击RTSys菜单栏的工具,打开示波器界面,可对运动过程中的一些参数进行波形的抓取。示波器的操作方法:在RTSys编写好程序后,成功连接到控制器/仿真器后,打开示波器,设置好所需采集的数据源及对应编号,点击“启动”,再将程序下载至RAM/ROM(上位机编程直接编译运行上位机代码),即可采样按以上操作程序里需加入“TRIGGER”指令自动触发示波器采样。否则,需在点击“启动”后,点击“手动触发”再下载程序至RAM/ROM才可成功采样。示波器界面功能说明:(1)设置:打开示波器设置窗口,设置示波器相关参数。(2)启动:启动示波器(但不触发示波器采样)。(3)停止:停止示波器采样。(4)YT模式:有三种模式可切换,包括YT模式、XY模式、XYZ模式。切换成XY模式即XY平面显示两个轴的插补合成轨迹。XYZ模式即XYZ三维平面显示合成轨迹。(5)<<:按下隐藏通道名称和峰值,只显示通道编号。(6)连续采集:不开启连续采集时,到达采集深度后便停止采集,开启了连续采集之后示波器会持续采样。(7)跟随:开启跟随后横轴自动移动到实时采样处,跟随波形显示。(8)显示游标:用于标定测量示波器图形数据或者是坐标距离。在YT模式中使用该工具可测量两点之间所用时间,在XY模式中则测量坐标间距。X1和X2游标线与波形相交的交点横坐标即为通道(x)显示的数据,Y1和Y2游标线与波形相交的交点纵坐标即为通道(Y)显示的数据。(9)手动触发:手动触发示波器采样按钮(自动触发使用trigger指令)。(10)显示:选择当前通道曲线是否显示。(11)编号:选择需要采集的数据源编号,如轴号、数字量IO编号、TABLE编号、VR编号、MODBUS编号等。(12)数据源:选择采集的数据类型,下拉菜单选择,多种类型参数可选。(13)偏移:波形纵轴偏移量设置。(14)垂至刻度:纵轴一格的刻度。(15)水平刻度:横轴一格的刻度。注:若要设置示波器参数,如轴编号、数据源以及启动示波器设置窗口,要先停止示波器再设置。7、控制器状态点击RTSys菜单栏的控制器选项,点击控制器状态,打开控制器状态显示窗口。该状态包括基本信息、Zcan节点信息、槽位0节点信息、控制器通讯配置等内容。(1)基本信息:包括控制器型号、支持最大任务数、IP地址、软硬件版本号等控制器基本信息。(2)Zcan节点:在该界面可显示控制器的本地资源,包括轴数、数字量个数以及模拟量个数,还可显示通过CAN接口扩展的板卡信息。(3)槽位0节点:显示通过EtherCat口所接的设备的节点号、设备ID、拨码号等信息。(4)控制器通讯配置:显示CAN信息与RS232、RS485、RS422串口配置信息。使用上述上位机单轴运动例程抓取轴0指令位置(DPOS)以及轴实际反馈速度(MSPEED)曲线时,先打开示波器界面,设置好抓取的轴号,以及选择需要抓取的参数,设置完成之后,选择YT模式,点击启动,点击手动触发,最后运行上位机程序,抓取波形图如下所示。8、视频讲解https://www.zhihu.com/video/1717479376503816192本次,正运动技术EtherCAT超高速实时运动控制卡XPCIE1032H上位机C#开发(五):通过RTSys进行调试与诊断,就分享到这里。更多精彩内容请关注“正运动小助手”公众号。本文由正运动技术原创,欢迎大家转载,共同学习,一起提高中国智能制造水平。文章版权归正运动技术所有,如有转载请注明文章来源。发布于 2023-12-11 09:45・IP 属地广东C#C# 编程运动控制卡赞同添加评论分享喜欢收藏申请
EtherCat伺服驱动与上位机及PLC之间通讯的那些问题_上位机与汇川伺服驱动器ethercat通信-CSDN博客
>EtherCat伺服驱动与上位机及PLC之间通讯的那些问题_上位机与汇川伺服驱动器ethercat通信-CSDN博客
EtherCat伺服驱动与上位机及PLC之间通讯的那些问题
最新推荐文章于 2023-12-04 18:01:50 发布
VIP文章
机构师
最新推荐文章于 2023-12-04 18:01:50 发布
阅读量7.1k
收藏
6
点赞数
2
分类专栏:
工业自动化编程
文章标签:
工业自动化
伺服驱动器
Ethercat
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/normer123456/article/details/124607362
版权
工业自动化行业的工程师们,就算没用过ethercat协议,肯定也听说过。
一说起Ethercat,觉得似乎挺高大上的,不少支持EtherCat协议的设备,无论是驱动器还是PLC,价格都还不低。
EtherCat给人最大的印象,是通用性和高速,但事实远不是那么回事。这里要吐槽的是通用性。
如果你没有用过EtherCat设备,现在想要使用,那么,在选择控制器(上位机)和驱动器的时候,就千万要小心了,如果商家和你说:
我们的设备使用的是通用的EtherCat协议
这时候,你需要注意的是什么呢?
是兼容性!
也就是所谓的“通用”,这是一个非常大的问题。举个亲身的例子,之前有项目要用到数控系统和伺服驱动,为了方便,决定选用EtherCat总线,最后选择了华中数控的系统和科尔摩根的伺服,当时在选型时,都询问了厂家,关于是否支持EtherCat协议,厂家都给予了肯定回复,信誓旦旦地跟我说,我们的EtherCat协议是通用的,只要你的设备(上位机)是EtherCat,就可以通讯。
但是,等我们把东西买回来,上电测试,发现数控系统和伺服驱动器通讯不了,于是开始查问题,发现EtherCat初始化的时候,初始化不了,数控系统和伺服厂家各有各的说法,最后发现不兼容。
这是非常奇怪的事,大家都用EtherCat,都说是通用的,但最后二者无法通过EtherCat连接
最低0.47元/天 解锁文章
优惠劵
机构师
关注
关注
2
点赞
踩
6
收藏
觉得还不错?
一键收藏
打赏
知道了
1
评论
EtherCat伺服驱动与上位机及PLC之间通讯的那些问题
工业自动化行业的工程师们,就算没用过ethercat协议,肯定也听说过。一说起Ethercat,觉得似乎挺高大上的,不少支持EtherCat协议的设备,无论是驱动器还是PLC,价格都还不低。EtherCat给人最大的印象,是通用性和高速,但事实远不是那么回事。这里要吐槽的是通用性。如果你没有用过EtherCat设备,现在想要使用,那么,在选择控制器(上位机)和驱动器的时候,就千万要小心了,如果商家和你说:我们的设备使用的是通用的EtherCat协议这时候,你需要注意的是什么呢?是兼容性!也
复制链接
扫一扫
专栏目录
1 条评论
您还未登录,请先
登录
后发表或查看评论
四轴伺服驱动器EtherCAT通信协议研究与实现
11-21
四轴伺服驱动器EtherCAT通信协议研究与实现
松下伺服驱动器EtherCAT描述文件
12-11
此xml是松下电机的配置文件,通过此配置文件,能让我们很快的连接EtherCAT主站,搭建运动控制系统,同时XMl是必不可少的从站伺服的描述文件,没有这个就没有办法进行从站的连接
使用C语言通过EtherCat与伺服通讯
weixin_35753291的博客
12-17
1452
在 C 语言中使用 EtherCat 进行伺服通信的方法如下:
首先,需要安装 EtherCat 库,比如可以使用 SOEM (Simple Open EtherCAT Master) 库。这个库提供了 EtherCat 通信所需的头文件和库文件。
然后,在程序中包含头文件,并链接库文件。
接下来,可以使用 SOEM 库提供的 API 函数进行 EtherCat 通信。例如,可以使用 ec_...
Ethercat学习-从站FOE固件更新(QT上位机)
西澳峰的博客
05-30
1533
FOE协议与下位机程序实现过程之前文章有提到,这里不做介绍了。这里主要介绍1、QT上位机通过FOE读写下位机的数据;2、QT上位机读写ESC的EEPROM。SOEM源码中和foe相关的文件为ethercatfoe.c、ethercatfoe.h。主要包含了下面三个函数。
汇川 Ethercat 总线通讯
08-15
汇川 Ethercat 总线通讯模板,汇川H5U
上位机与s7-200通讯控制伺服电机
weixin_42670445的博客
12-18
8891
版权声明:本文为博主原创文章,未经博主允许不得转载。
内容简介:根据所做项目情况与大家分享学习内容,本篇文章主要从上位机和下位机两部分分享plc控制伺服电机的连线、控制方式及上位机部分,包括程序,如有错误,还望指出。
伺服控制系统硬件:松下伺服电机、MLDN25SE松下伺服驱动器、s7-200(cpu226)
伺服控制系统软件:STEP7 Micro/WIN、组态王
1、下位机系统
...
Zmotion运控器+Hiwin伺服驱动的Qt上位机开发(一):EtherCAT通讯、基本单轴控制、回零功能的实现
Zaiton的博客
03-01
2809
学习如何基于Qt框架、用Zmotion运动控制器开发库编写上位机以实现一些基础功能。
一体化Ethercat通信伺服电机在汇川H5U PLC上的应用案例介绍(上)
m0_46512607的博客
11-18
5353
内容介绍了一体化低压伺服Ethercat通信的电机在汇川H5UPLC上的使用,本篇主要讲解环境的搭建以及使用AutoShop软件的在线调试功能,简单控制电机位置、速度模式运行;选择相对定位,目标位置给10,目标速度、加/减速度给5,点击开始,电正向转动10圈。点击TEST,选择USB,再点击测试,如下界面表示PLC与电脑通信连接成功,再点击确定即可;选择连续运动,给定目标速度、加速度、减速度,点击开始,点击即可运行。选中电机,点击更新组态,如下图所示;1、如下图,编译-下载-运行-监控;
EtherCAT设备协议详解三、EtherCAT CoE
EtherCAT
12-16
2940
只需要一个耦合器,后面可以接多个模块,在总线上看到的只有一个从站,需要读取对应的设备描述空间来获取耦合器上接的模块类型和个数。这种模块的设备比每个模块都是从站可以节约硬件成本。比如配置0x1700对象下面映射的数据,就需要通过sdo把0x6040、0x607a等写入到0x1700对象下。CoE 是 CANopen on EtherCAT, 在ethercat报文中封装CANopen协议。关于canopen怎么封装到ethercat报文中的可以参考下面文章。配置pdo的映射的数据就需要用到SDO。
西门子Profinet连接EtheCAT伺服驱动器.pdf
07-29
应用场景:
西门子S7-1200/1500系列的PLC,需要连接带EtherCAT的通讯功能的伺服驱动器等设备。西门子的PLC采用PROFINET实时以太网通讯协议,要连接诶EtherCAT的设备,就必须进行通讯协议转换。赫优讯NT151-RE-RE系列的网关提供了,快速可行的解决方案。
方案介绍:
NT151支持两种实时以太网通讯协议之间的转换,可以主通讯主站(加主站授权),也可以做通讯从站,两个网络独立运行,通过网关内部进行数据映射。
每个以太网网络都提供双端口交换机,方便连接和网络扩展。
步科EtherCAT伺服驱动器描述文件XML
12-11
此XML为步科伺服驱动器高低压通用的描述文件,欢迎大家下载使用。支持步科的低压伺服和高压伺服,是我们目前项目上再用的,作为EtherCAT从站的步科驱动器,很好的能和欧姆龙、倍福等运动控制器相连接,搭建一个完整的运动控制系统
Twincat使用:EtherCAT通信扫描硬件设备链接PLC变量
FL1717的博客
11-24
1504
TwinCAT广泛应用于工业自动化、机械控制、过程控制和实时系统等领域。在 TwinCAT 中的 PLC 编程,External Types 是指外部类型,它们是用于与外部设备进行通信的自定义数据类型。通过创建自定义的 External Types,可以指定传感器数据的结构、字段和属性,并将其与 PLC 程序中的变量进行链接。倍福控制器与常规plc类似,使用时必须要对其硬件进行组态后才可以正常使用,只有组态完后,系统才可能对外部硬件资源进行控制和数据交换,组态可以是系统本身的运行环境、IO设备等资源。
EtherCAT运动控制器的PLC编程(一) 直线插补
weixin_57350300的博客
08-04
4388
梯形图(LAD, LadderLogic ProgrammingLanguage)是PLC使用得最多的图形编程语言,被称为PLC的第一编程语言。
梯形图语言沿袭了继电器控制电路的形式,梯形图是在常用的继电器与接触器逻辑控制基础上简化了符号演变而来的,具有形象、直观、实用等特点,电气技术人员容易接受,是运用上最多的一种PLC的编程语言。
正运动技术的ZMC006CE就是一款高性价比的,支持ZBasic、ZPlC编程语言,以及可以使用正运动技术ZHMI界面编程的EtherCAT运动控制器。在正式学习直线插补之前
汇川H5U PLC通过EtherCAT总线控制SV660N和X3E伺服
热门推荐
RXXW_Dor的博客
10-15
1万+
首先我们看下系统硬件和软件配置:汇川H5U PLC的编程软件是:AutoShop V4.6.3.0 硬件:PLC H5U-1614MTD-A16,汇川伺服型号:SV660NS1R6I 电机型号:MS1H1-10B30CB 100W 220V 3000R/M 0.32N*M 1.3A,禾川伺服驱动器型号:SV-X3EB075A-A2 伺服电机型号:SV-X2MH075A-N2LA。
全国产EtherCAT运动控制边缘控制器(二):统一的上位机API接口
weixin_57350300的博客
08-17
231
正运动API函数封装介绍与自定义API封装例程
倍福PLC通过EtherCAT总线控制伺服电机---(一)硬件配置篇
weixin_42728270的博客
12-04
1429
本文主要介绍倍福TC3如何配置EtherCAT伺服电机。后续两篇会介绍一下程序控制以及程序形成功能块去控制。
信捷PLC通过EtherCat与松下伺服通讯时的断电重启时会产生巨大异响的Bug原因及解决办法
用沸腾的热血,支付我们的人生吧!
03-21
1694
于是,我又再次做了几次测试,即还是分别给PLC和伺服驱动上电,但二者之间的上电先后时间,间隔变短,发现如果间隔在比较短的情况下,则不会出现这种情况,这时候,我更加笃定,出现这种情况,就是PLC在上电初始化EtherCat总线时因为时间原因,导致初始化未成功引起的。虽然临时解决方案有了,但我还是很关注这个问题,我再次咨询信捷技术人员,信捷技术人员这次表示,有其他用户也遇到了同样的问题,并且表示,信捷自家的PLC和伺服驱动,也会出现这样的问题,但目前原因还没找到,其研发人员正在寻找原因中。
vb串口通讯源码手机串口实现短信pdu编码方式
最新发布
03-13
vb串口通讯源码这是一个通过手机串口实现短信发送的实例,采用pdu编码方式,VB开发语言实现的本资源系百度网盘分享地址
ethercat 伺服驱动器
09-01
EtherCAT(Ethernet for Control Automation Technology)是一种实时以太网通信技术,主要用于工业自动化领域。EtherCAT伺服驱动器是使用EtherCAT协议进行通信的伺服驱动器。
EtherCAT伺服驱动器通常用于控制和驱动机械系统中的伺服电机。它们可以接收来自主控制器(如PLC)的指令,并将其转换为电机的运动控制。EtherCAT伺服驱动器具有高效的实时通信特性,可以实现快速精确的运动控制。
使用EtherCAT伺服驱动器可以构建高性能、高精度的运动控制系统。它们通常具有多种运动控制功能,如位置控制、速度控制、力控制等,并且可以与其他设备(如传感器和编码器)进行集成,以实现更复杂的控制任务。
需要注意的是,EtherCAT伺服驱动器通常需要与EtherCAT主控制器或EtherCAT总线进行配合使用,以实现有效的通信和协同工作。此外,还需要相应的软件工具和配置来设置和调试EtherCAT伺服驱动器。
总结来说,EtherCAT伺服驱动器是一种基于EtherCAT通信协议的用于控制和驱动伺服电机的设备,具有高效的实时通信和精确的运动控制能力。
“相关推荐”对你有帮助么?
非常没帮助
没帮助
一般
有帮助
非常有帮助
提交
机构师
CSDN认证博客专家
CSDN认证企业博客
码龄13年
暂无认证
75
原创
2万+
周排名
1万+
总排名
31万+
访问
等级
1384
积分
311
粉丝
421
获赞
133
评论
1024
收藏
私信
关注
热门文章
pycharm界面改为中文,中英文切换
64837
Python 3.9.0 已经可以下载了,但不支持win7和更低的系统版本!
15344
安川电机伺服软件SigmaWin+连接伺服驱动器无法连接问题
12211
《九章算术》中记载的方程是如何算的?
10368
python安装dlib库时报‘ERROR: CMake must be installed to build dlib’解决办法
9501
分类专栏
PLC使用实例分享
付费
3篇
python编程实例
付费
8篇
VB.net实例应用
14篇
工业自动化编程
21篇
Rust窗口开发实例
5篇
Rust学习笔记
2篇
C#实例应用
4篇
最新评论
VisaulStudio2019下用VB.net实现socket与西门子PLC进行通讯案例
机构师:
16进制的31就是1,这是对的,如果读取按钮一点窗口就死掉,可能是没有用多线程,因为读取时可能用的是While true一直循环读取,你可以新建线程,在线程里循环读取,这样就不会影响主窗口了
VisaulStudio2019下用VB.net实现socket与西门子PLC进行通讯案例
ShaoKer866:
通讯正常啦,谢谢。目前发送数据可以,发1PLC接收16#31,可能格式问题。读取数据按钮一点VB窗口就死掉(未响应),不知道哪里出的问题
VisaulStudio2019下用VB.net实现socket与西门子PLC进行通讯案例
机构师:
这说明你要么网线连接有问题,要么IP不正确,你可以先用电脑的cmd窗口ping一下IP看通不通
VisaulStudio2019下用VB.net实现socket与西门子PLC进行通讯案例
ShaoKer866:
我做的一直提示目标计算机积极拒绝,无法连接
<Python>PyQt5自己编写一个音乐播放器(优化版)
机构师:
那是因为这个模块是我自己写的,你需要把这个qssread模块也添加到你的文件夹中
您愿意向朋友推荐“博客详情页”吗?
强烈不推荐
不推荐
一般般
推荐
强烈推荐
提交
最新文章
<.Net>VisaulStudio2022下用VB.net实现socket与汇川PLC进行通讯案例(Eazy521)
vscode自定义插件的开发过程记录
rust-analyzer报错“Failed to spawn one or more proc-macro servers,....“怎么解决?
2024年11篇
2023年19篇
2022年27篇
2021年16篇
2020年2篇
目录
目录
分类专栏
PLC使用实例分享
付费
3篇
python编程实例
付费
8篇
VB.net实例应用
14篇
工业自动化编程
21篇
Rust窗口开发实例
5篇
Rust学习笔记
2篇
C#实例应用
4篇
目录
评论 1
被折叠的 条评论
为什么被折叠?
到【灌水乐园】发言
查看更多评论
添加红包
祝福语
请填写红包祝福语或标题
红包数量
个
红包个数最小为10个
红包总金额
元
红包金额最低5元
余额支付
当前余额3.43元
前往充值 >
需支付:10.00元
取消
确定
下一步
知道了
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝
规则
hope_wisdom 发出的红包
打赏作者
机构师
你的鼓励将是我创作的最大动力
¥1
¥2
¥4
¥6
¥10
¥20
扫码支付:¥1
获取中
扫码支付
您的余额不足,请更换扫码支付或充值
打赏作者
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额
0
抵扣说明:
1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。 2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。
余额充值
倍福EtherCAT的ADS通讯 - 知乎
倍福EtherCAT的ADS通讯 - 知乎首发于机器人的通讯协议切换模式写文章登录/注册倍福EtherCAT的ADS通讯裕如乱点技能树倍福的官方教程:倍福虚拟学院: 登录本网站Beckhoff ADS (Automation DeviceSpecification)提供一个应用程序之间互相通信的接口。一、ADS基本原理在TwinCAT3系统中,TwinCAT PLC,TwinCAT NC,TwinCAT CNC等被设计成虚拟的自动化设备。每个任务均存在一个服务模块,服务端或客户端。由Message Router统一交换数据。TwinCATADS Router(ADS Server)基于TCP/IP协议,监听端口48898用于等待新的客户端。基于UDP协议,使用通讯端口48899用于广播的方式查找路由。ADS设备唯一标识由两个属性组成AdsPortNr 指定通信的虚拟设备(ADS server),用于确定软件服务,比如PLC,NC。AdsAmsNetId 指定ADS路由器,是TCP IP地址的扩展,用于确定设备硬件。例如控制器物理网卡ip为169.254.71.120,其对应的AdsAmsNetId为169.254.71.120.1.1,设备如耦合器,ethercat接口驱动器网址为169.254.71.120.1.x,通过后面两位识别不同的设备。这里可把ADS路由器看成虚拟的路由器,倍福的ipc各个网口内部都连接在此路由,也就是一台twincat控制器(pc)有一个amsNetID,任意一个网口都能通过虚拟路由连接到这个amsNetID上来控制其他硬件,只需在twincat的设备的地方选择某个网卡即可。(原来理解为amsNetID要与硬件相连接的网卡的4段ip地址一致,可以不必相同,amsNetID只是一个用于区分ethercat设备的虚拟ip地址)带来的优势是当其他pc需要与控制器通讯时连接某个网卡上,把pc的ip地址设成同一网段,在控制器中添加该ip路由,使用ads通讯协议即可与控制器的amsNetID建立连接,从而与PLC、NC、CNC建立连接,极大方便工程应用。上位机不局限与某种语言,诸如c++、c#、Delphi等都可以与twincat plc建立连接,很方便读写操作。二、ADS的通讯方式与特点ADS通讯的流程ADS通讯不是一个实时的通讯协议,其通讯过程受到系统和网络状况的多重影响,无法保证一个稳定的通讯时间。ADS有两种通讯方式:(1)同步方式同步读写:ADS 客户端向ADS 服务器发送ADS 请求,在通讯过程中客户端程序停止执行,直到获得ADS 服务器返回的响应。能即时返回结果。高级语言在twincat上注册一个port,然后由twincat调用ads来往这个port发数据,由plc主动触发,而不需要进行轮训。(2)异步方式异步读写:ADS 客户端向ADS 服务器发送ADS 请求,同时客户端继续自己的工作。ADS 服务器处理请求后,把响应以Call-back 函数方式发给客户端。通知方式:ADS 客户端向ADS 服务器发送ADS 请求,ADS 服务器以Call-back 函数的方式不断向客户端发送响应,直到客户端取消该请求。常见的错误代码:ADS错误代码描述解决办法0x745(1861)通讯超时常见故障,检测连线、路由设置、防火墙设置、服务端TwinCAT是否已经启动0x710(1808)对象没有找到检测变量名称是否正确,注意全局变量为:.变量名0x705(1797)参数长度错误常见于批处理,检查计算命令长度0x707(1799)设备未就绪可能为tsm配置不正确,重新激活配置tips:如何判断ads函数执行成功?C++ 看返回值参考:关于倍福EtherCAT3的ADS通讯_澍澍爸的blog-CSDN博客_ads通讯https://github.com/Beckhoff/ADS发布于 2021-11-12 10:36ADS-B Ethernet信息通信技术赞同 71 条评论分享喜欢收藏申请转载文章被以下专栏收录机器人的通讯协议一些与计算机网络、通讯协议相关
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
点赞
踩
1343
收藏
觉得还不错?
一键收藏
知道了
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从站开发使用说明
04-12
1-EtherCAT从站开发板使用说明; 2-EtherCAT SPI通信程序流程分析; 3-EherCAT从站代码架构解析; 4-EtherCAT_ET1100_Datasheet_all_v1i8-解锁; 5-Twincat支持EtherCAT的intel 网卡列表(芯片型号); 6-从Beckhoff...
EtherCAT中文介绍
10-22
实时以太网EtherCAT中文介绍资料,英文不好的可以参考一下。EtherCAT(以太网控制自动化技术)是一个开放架构,以以太网为基础的现场总线系统,其名称的CAT为控制自动化技术(Control Automation Technology)字首的缩写。EtherCAT是确定性的工业以太网,最早是由德国的Beckhoff公司研发。
23 条评论
您还未登录,请先
登录
后发表或查看评论
EtherCAT Slave Stack Code (SSC)
05-28
BECKHOFF(倍福)官方提供EtherCAT从站协议栈代码生成工具
版本:SSC V5.12(Tool 1.4.2)
EtherCAT EoE
weilan0818的博客
01-16
452
EoE:将以太网帧插入到 EtherCAT 协议中。EtherCAT协议中的以太网帧通过非循环邮箱通信进行传输。
Ethercat概念学习
weixin_43914278的博客
04-10
1581
最近我们要基于Ethercat技术进行开发,首先需要了解其基本原理,github上看到了有相关实现,一起来看看吧。
ethercat学习笔记1
08-08
代码的笔记放到第二章。1.8 松下的从站 PDO映射。6040h控制字这个控制字是用来控制伺服电机上使能的。6041状态字这个状态字读取伺服电机的状态。控制模式
EtherCAT.rar
08-12
搜集的EtherCAT官方相关资料,学习EtherCAT参考资料, 协议说明等等
EtherCAT介绍
热门推荐
人人都懂物联网
03-11
1万+
EtherCAT(以太网控制自动化技术)是一个以以太网为基础的开放架构的现场总线系统,EtherCAT名称中的CAT为Control Automation Technology(控制自动化技术)首字母的缩写。最初由德国倍福自动化有限公司(Beckhoff Automation GmbH) 研发。EtherCAT为系统的实时性能和拓扑的灵活性树立了新的标准,同时,它还符合甚至降低了现场总线的使用成本。
EtherCAT简介
weixin_41883890的博客
06-30
2394
EtherCAT(用于控制自动化技术的以太网)是Beckhoff(倍福)在2003年开发的实时以太网网络。它基于CANOPEN协议和以太网,但是与Internet通信或网络通信不同之处在于,它专门针对工业自动化控制进行了优化。这些标准由EtherCAT技术小组(简称ETG)定义和维护。使用OSI网络模型,以太网和EtherCAT依赖于相同的物理和数据链路层。除此之外,由于针对不同任务进行了优化,因此这两个网络在设计上有所不同。例如,以太网被设计为通过许多不同的节点发送大量数据。它能够与数十亿个单独的地址之间
【EtherCAT】一、入门基础
06-09
5258
EtherCAT(Ethernet Control Automation Technology)是一种高性能实时以太网通信协议,用于在工业自动化领域中进行实时控制和通信。它是由德国Beckhoff自动化公司在2003年开发的,并被国际电工委员会(IEC)标准化为IEC 61158标准。EtherCAT的设计目标是实现极低的通信延迟和高带宽的数据传输,以满足高速控制和数据采集的需求。它通过一种特殊的主从架构实现,其中一个主站(Master)负责协调整个网络,而从站(Slave)则负责提供输入输出功能。
工控协议解读之EtherCAT协议硬核分析(转自知乎“智能制造之家“)
qq_43599327的博客
09-07
7035
EtherCAT协议
ethercat_slave_stack_code_tool_SSC_V5i12.rar
08-13
EtherCAT Slave Stack Code Tool 倍福官方从站开发工具5.12版本。
EtherCAT从站快速开发
02-14
简化XML生成,简化编程,快速入门 提供 XML快速生成器 简化编程Keil程序示例: 2个函数即可完成ESC的初始化及调用
EtherCAT从站开发指南.zip_ETHERCAT_EtherCAT Master_EtherCAT 站_EtherCAT中
07-14
EtherCAT从站开发指南中文文档,含软件和硬件选型介绍
快速开发ETHERCAT从站(使用ArduCAT)
05-25
通过Arduino技术,大大简化EtherCAT从站的开发。ArduCAT开发板包含两路可用于EtherCAT实时以太网的100BASE-TX网口,所以它特别适合基于PC的自动化方案。ArduCAT使用ATMega1280 处理器,兼容Arduino Mega开发板,并...
BECKHOFF TwinCAT连接 NI EtherCAT从站.pdf
03-22
BECKHOFF TwinCAT连接 NI EtherCAT从站
东北林业大学《经济动物生产学》2020考研专业课复试大纲.pdf
03-13
东北林业大学考研复试大纲
arm64架构下arangodb3.10.11docker镜像
最新发布
03-13
arm64架构下arangodb3.10.11
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
CSDN认证博客专家
CSDN认证企业博客
码龄16年
暂无认证
142
原创
1万+
周排名
3万+
总排名
68万+
访问
等级
6905
积分
1510
粉丝
898
获赞
150
评论
4870
收藏
私信
关注
热门文章
EtherCAT (学习笔记)
67258
Xenomai (学习笔记)
21769
Device Tree 详解
19630
Unwind 栈回溯详解
18367
Linux bpf 1.1、BPF内核实现
18328
分类专栏
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、付费专栏及课程。
余额充值
EtherCAT - 以太网现场总线系统的EtherCAT (Ethernet for Control Automation Technology)技术教程 - 知乎
EtherCAT - 以太网现场总线系统的EtherCAT (Ethernet for Control Automation Technology)技术教程 - 知乎首发于IT技术专栏切换模式写文章登录/注册EtherCAT - 以太网现场总线系统的EtherCAT (Ethernet for Control Automation Technology)技术教程iiidd777IT技术分享及教程EtherCAT - 以太网现场总线本文深入阐述了基于以太网现场总线系统的EtherCAT (Ethernet for Control Automation Technology)技术。EtherCAT为现场总线技术领域树立了新的性能标准,具备灵活的网络拓扑结构,系统配置简单,和现场总线系统一样操作直观简便。另外,由于EtherCAT实施的成本低廉,因此使系统得以在过去无法应用现场总线网络的场合中选用该现场总线。1. 引言1.1 以太网和实时能力2. EtherCAT 运行原理3. EtherCAT 技术特征3.1 协议3.2 拓扑3.3 分布时钟3.4 性能3.5 诊断3.6 高可靠性3.7 安全性3.8 EtherCAT 取代PCI3.9 设备行规3.9.1 EtherCAT实现CAN总线应用层协议 (CoE)3.9.2 EtherCAT实现伺服驱动设备行规IEC61491 (SoE)3.10 EtherCAT实现以太网(EoE)3.11 EtherCAT实现文件读取(FoE)3.12 ADS over EtherCAT (AoE)4. 基础设施成本5. EtherCAT 实施5.1 主站5.1.1 主站实施服务5.1.2 主站样本代码5.2 从站5.2.1 EtherCAT Slave Controller5.2.2 从站评估工具包6. 小结7. 参考文献1. 引言页首现场总线已成为自动化技术的集成组件,通过大量的实践试验和测试,如今已获得广泛应用。正是由于现场总线技术的普及,才使基于PC的控制系统得以广泛应用。然而,虽然控制器CPU的性能(尤其是IPC的性能)发展迅猛,但传统的现场总线系统正日趋成为控制系统性能发展的“瓶颈”。急需技术革新的另一个因素则是由于传统的解决方案并不十分理想。传统的方案是,按层划分的控制体系通常都由几个辅助系统所组成(周期系统):即实际控制任务、现场总线系统、I/O系统中的本地扩展总线或外围设备的简单本地固件周期。正常情况下,系统响应时间是控制器周期时间的3-5倍。 在现场总线系统之上的层面(即网络控制器)中,以太网往往在某种程度上代表着技术发展的水平。该方面目前较新的技术是驱动或I/O级的应用,即过去普遍采用现场总线系统的这些领域。这些应用类型要求系统具备良好的实时能力、适应小数据量通讯,并且价格经济。EtherCAT可以满足这些需求,并且还可以在I/O级实现因特网技术 (参见图1)。图1: 传统现场总线系统响应时间在现场总线系统 之上的层面(即网络控制器)中,以太网往往在某种程度上代表着技术发展的水平。该方面目前较新的技术是驱动或I/O级的应用,即过去普遍采用现场总线系统的这些领域。这些应用类型要求系统具备良好的实时能力、适应小数据量通讯,并且价格经济。EtherCAT可以满足这些需求,并且还可以在I/O级实现因特网技术。1.1 以太网和实时能力目前,有许多方案力求实现以太网的实时能力。例如,CSMA/CD介质存取过程方案,即禁止高层协议访问过程,而由时间片或轮循方式所取代的一种解决方案;另一种解决方案则是通过专用交换机精确控制时间的方式来分配以太网包。这些方案虽然可以在某种程度上快速准确地将数据包传送给所连接的以太网节点,但是,输出或驱动控制器重定向所需要的时间以及读取输入数据所需要的时间都要受制于具体的实现方式。如果将单个以太网 帧用于每个设备,那么,理论上讲,其可用数据率非常低。例如,最短的以太网帧为84字节(包括内部的包间隔IPG)。如果一个驱动器周期性地发送4字节的实际值和状态信息,并相应地同时接收4字节的命令值和控制字信息,那么,即便是总线负荷为100%(即:无限小的驱动响应时间)时,其可用数据率也只能达到4/84= 4.8%。如果按照10 µs的平均响应时间估计,则速率将下降到1.9%。对所有发送以太网 帧到每个设备(或期望帧来自每个设备)的实时以太网方式而言,都存在这些限制,但以太网帧内部所使用的协议则是例外。2. EtherCAT 运行原理页首EtherCAT技术突破了其他以太网解决方案的系统限制:通过该项技术,无需接收以太网数据包,将其解码,之后再将过程数据复制到各个设备。EtherCAT从站设备在报文经过其节点时读取相应的编址数据,同样,输入数据也是在报文经过时插入至报文中(参见图2)。整个过程中,报文只有几纳秒的时间延迟。图 2: 过程数据插入至报文中由于发送和接收的以太网帧压缩了大量的设备数据,所以有效数据率可达90%以上。100 Mb/s TX的全双工特性完全得以利用,因此,有效数据率可 大于100 Mb/s(即大于2 x 100 Mb/s的90%)(参见图3)。图 3: 带宽利用率的比较符合IEEE 802.3标准的以太网协议无需附加任何总线即可访问各个设备。耦合设备中的物理层可以将双绞线或光纤转换为LVDS(一种可供选择的以太网物理层标准[4,5]),以满足电子端子块等模块化设备的需求。这样,就可以非常经济地对模块化设备进行扩展了。之后,便可以如普通以太网一样,随时进行从底板物理层LVDS到100 Mb/s TX物理层的转换。3. EtherCAT 技术特征页首3.1 协议EtherCAT是用于过程数据的优化协议,凭借特殊的以太网类型,它可以在以太网帧内直接传送。EtherCAT帧可包括几个EtherCAT报文,每个报文都服务于一块逻辑过程映像区的特定内存区域,该区域最大可达4GB字节。数据顺序不依赖于网络中以太网端子的物理顺序,可任意编址。从站之间的广播、多播和通讯均得以实现。当需要实现最佳性能,且要求EtherCAT组件和控制器在同一子网操作时,则直接以太网帧传输就将派上用场。然而,EtherCAT不仅限于单个子网的应用。EtherCAT UDP将EtherCAT协议封装为UDP/IP数据报文(参见图4),这就意味着,任何以太网协议堆栈的控制均可编址到EtherCAT系统之中,甚至通讯还可以通过路由器跨接到其它子网中。显然,在这种变体结构中,系统性能取决于控制的实时特性和以太网协议的实现方式。因为UDP数据报文仅在第一个站才完成解包,所以EtherCAT网络自身的响应时间基本不受影响。图 4: EtherCAT:符合IEEE 802.3 [3]的标准帧另外,根据主/从数据交换原理,EtherCAT也非常适合控制器之间(主/从)的通讯。自由编址的网络变量可用于过程数据以及参数、诊断、编程和各种远程控制服务,满足广泛的应用需求。主站/从站与主站/主站之间的数据通讯接口也相同。从站到从站的通讯则有两种机制以供选择。一种机制是,上游设备和下游设备可以在同一周期内实现通讯,速度非常快。由于这种方法与拓扑结构相关,因此适用于由设备架构设计所决定的从站到从站的通讯,如打印或包装应用等。而对于自由配置的从站到从站的通讯,则可以采用第二种机制—数据通过主站进行中继。这种机制需要两个周期才能完成,但由于EtherCAT的性能非常卓越,因此该过程耗时仍然快于采用其他方法所耗费的时间。按照文献[3]所述,EtherCAT仅使用标准的以太网帧,无任何压缩。因此,EtherCAT 以太网帧可以通过任何以太网MAC发送,并可以使用标准工具(如:监视器)。3.2 拓扑EtherCAT几乎支持任何拓扑类型,包括线型、树型、星型等(参见图5)。通过现场总线而得名的总线结构或线型结构也可用于以太网,并且不受限于级联交换机或集线器的数量。图 5: 灵活的拓扑结构:线型、树型或星型拓扑最有效的系统连线方法是对线型、分支或树叉结构进行拓扑组合。因为所需接口在I/O 模块等很多设备中都已存在,所以无需附加交换机。当然,仍然可以使用传统的、基于以太网的星型拓扑结构。还可以选择不同的电缆以提升连线的灵活性:灵活、经济的标准超五类以太网电缆可采用100BASE-TX模式传送信号;塑封光纤(PFO)则可用于特殊应用场合;还可通过交换机或介质转换器实现不同以太网连线(如:不同的光纤和铜电缆)的完整组合。快速以太网的物理层(100BASE-TX )允许两个设备之间的最大电缆长度为100米。由于连接的设备数量可高达65535,因此,网络的容量几乎没有限制。3.3. 分布时钟精确同步对于同时动作的分布式过程而言尤为重要。例如,几个伺服轴同时执行协调运动时,便是如此。最有效的同步方法是精确排列分布时钟(请参阅IEEE 1588标准[6])。与完全同步通讯中通讯出现故障会立刻影响同步品质的情况相比,分布排列的时钟对于通讯系统中可能存在的相关故障延迟具有极好的容错性。采用EtherCAT,数据交换就完全基于纯硬件机制。由于通讯采用了逻辑环结构 (借助于全双工快速以太网的物理层),主站时钟可以简单、精确地确定各个从站时钟传播的延迟偏移,反之亦然。分布时钟均基于该值进行调整,这意味着可以在网络范围内使用非常精确的、小于1 微秒的、确定性的同步误差时间基(参见图6)。而跨接工厂等外部同步则可以基于IEEE 1588 标准。图 6: 同步性与一致性:相距电缆长度为有120米的两个分布系统,带有300个节点的示波器比较此外,高分辨率的分布时钟不仅可以用于同步,还可以提供数据采集的本地时间精确信息。当采样时间非常短暂时,即使是出现一个很小的位置测量瞬时同步偏差,也会导致速度计算出现较大的阶跃变化,例如,运动控制器通过顺序检测的位置计算速度便是如此。而在EtherCAT中,引入时间戳数据类型作为一个逻辑扩展,以太网所提供的巨大带宽使得高分辨率的系统时间得以与测量值进行链接。这样,速度的精确计算就不再受到通讯系统的同步误差值影响,其精度要高于基于自由同步误差的通讯测量技术。3.4 性能EtherCAT使网络性能达到了一个新境界。借助于从站硬件集成和网络控制器主站的直接内存存取,整个协议的处理过程都在硬件中得以实现,因此,完全独立于协议堆栈的实时运行系统、CPU 性能或软件实现方式。1000个I/O的更新时间只需30 µs,其中还包括I/O周期时间(参见表1)。单个以太网帧最多可进行1486字节的过程数据交换,几乎相当于12000个数字输入和输出,而传送这些数据耗时仅为300 µs。表 1: EtherCAT性能概貌100个伺服轴的通讯也非常快速:可在每100µs中更新带有命令值和控制数据的所有轴的实际位置及状态,分布时钟技术使轴的同步偏差小于1微秒。而即使是在保证这种性能的情况下,带宽仍足以实现异步通讯,如TCP/IP、下载参数或上载诊断数据。超高性能的EtherCAT技术可以实现传统的现场总线系统无法迄及的控制理念。EtherCAT使通讯技术和现代工业PC所具有的超强计算能力相适应,总线系统不再是控制理念的瓶颈,分布式I/O可能比大多数本地I/O接口运行速度更快。EtherCAT技术原理具有可塑性,并不束缚于100 M bps的通讯速率,甚至有可能扩展为1000 M bps的以太网。 3.5 诊断现场总线系统的实际应用经验表明,有效性和试运行时间关键取决于诊断能力。只有快速而准确地检测出故障,并明确标明其所在位置,才能快速排除故障。因此,在EtherCAT的研发过程中,特别注重强化诊断特征。试运行期间,驱动或I/O 端子等节点的实际配置需要与指定的配置进行匹配性检查,拓扑结构也需要与配置相匹配。由于整合的拓扑识别过程已延伸至各个端子,因此,这种检查不仅可以在系统启动期间进行,也可以在网络自动读取时进行(配置上载)。可以通过评估CRC校验,有效检测出数据传送期间的位故障——32 位CRC多项式的最小汉明距为4。除断线检测和定位之外,EtherCAT系统的协议、物理层和拓扑结构还可以对各个传输段分别进行品质监视,与错误计数器关联的自动评估还可以对关键的网络段进行精确定位。此外,对于电磁干扰、连接器破损或电缆损坏等一些渐变或突变的错误源而言,即便它们尚未过度应变到网络自恢复能力的范围,也可对其进行检测与定位。3.6 高可靠性选择冗余电缆可以满足快速增长的系统可靠性需求,以保证设备更换时不会导致网络瘫痪。您可以很经济地增加冗余特性,仅需在主站设备端增加使用一个标准的以太网端口(无需专用网卡或接口),并将单一的电缆从总线型拓扑结构转变为环型拓扑结构即可(见图7)。当设备或电缆发生故障时,也仅需一个周期即可完成切换。因此,即使是针对运动控制要求的应用,电缆出现故障时也不会有任何问题。EtherCAT也支持热备份的主站冗余。由于在环路中断时EtherCAT从站控制器芯片将立刻自动返回数据帧,一个设备的失败不会导致整个网络的瘫痪。例如,拖链设备可以配置为分支拓扑以防线缆断开。图 7: 使用标准从站设备的低成本线缆冗余3.7 安全性为了实现EtherCAT安全数据通信,EtherCAT安全通信协议已经在ETG组织内部公开。EtherCAT被用作传输安全和非安全数据的单一通道。传输介质被认为是“黑色通道”而不被包括在安全协议中(见图8)。EtherCAT过程数据中的安全数据报文包括安全过程数据和所要求的数据备份。这个“容器”在设备的应用层被安全地解析。通信仍然是单一通道的。这符合IEC61784-3附件中的模型A。图 8: 使用黑色通道的EtherCAT安全通信软件构件EtherCAT安全协议已经由德国技术监督局(TÜV)评估为满足IEC61508定义的SIL3等级的安全设备之间传输过程数据的通信协议。设备上实施EtherCAT安全协议必须满足安全目标的需求。相应的产品相关要求也必须考虑进来。图 9: EtherCAT安全系统图9中的应用示例受益于这种技术。安全元件在自动化系统中所需要的任意地方都可以使用。系统中可以使用不同规模的本地输入和输出元件。可以根据需求使用安全或非安全总线端子扩展额外的输入和输出。安全逻辑也嵌入到网络当中。这样不用安全扩展的标准PLC可以继续处理控制任务。安全输入和输出功能需要的本地安全逻辑由智能化的安全总线端子实现。这节约了昂贵的安全PLC所带来的成本,并可以根据当前任务随意裁剪逻辑功能。只有安全EtherCAT主站和所分配的安全从站通过非安全的标准PLC路由。· 本协议在安全数据长度,通信介质或波特率方面么有限制。· EtherCAT被用作“黑色通道”,即,通信系统在安全处理中没有任何作用。· 协议被鉴定符合IEC61508定义的SIL3等级· 提供EtherCAT安全功能的产品已经于2005年就上市了。3.8 EtherCAT 取代PCI随着PC组件急剧向小型化方向发展,工业PC的体积日趋取决于插槽的数目。而快速以太网的带宽和EtherCAT通讯硬件的过程数据长度则为该领域的发展提供了新的可能性——IPC 中的传统接口现在可以转变为集成的EtherCAT接口端子(参见图10)。除了可以对分布式I/O进行编址,还可以对驱动和控制单元以及现场总线主站、快速串行接口、网关和其它通讯接口等复合系统进行编址。图 10: 分布式现场总线接口即使是其他无协议限制的以太网设备变体,也可以通过分布式交换机端口设备进行连接。由于一个以太网接口足以满足整个外围设备的通讯 (参见图11),因此,这不仅极大地精简了IPC主机的体积和外观,而且也降低了IPC主机的成本。图 11: EtherCAT使控制器的体积显著减小3.9 设备行规设备行规描述了设备的应用参数和功能特性,如设备类别相关的机器状态等。现场总线技术已经为I/O设备、驱动、阀等许多设备类别提供了可利用的设备行规。用户非常熟悉这些行规以及相关的参数和工具,因此,EtherCAT无需为这些设备类别重新开发设备行规,而是为现有的设备行规提供了简单的接口。该特性使得用户和设备制造商可以轻松完成从现有的现场总线到EtherCAT技术的转换过程。3.9.1 EtherCAT实现CANopen (CoE)CANopen©设备和应用行规广泛用于多种设备类别和应用,如I/O组件、驱动、编码器、比例阀、液压控制器,以及用于塑料或纺织行业的应用行规等。EtherCAT可以提供与CANopen机制[7]相同的通讯机制,包括对象字典、PDO(过程数据对象)、SDO(服务数据对象),甚至于网络管理。因此,在已经安装了CANopen的设备中,仅需稍加变动即可轻松实现EtherCAT,绝大部分的CANopen©固件都得以重复利用。并且,可以选择性地扩展对象,以便利用EtherCAT所提供的巨大带宽。3.9.2 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分布时钟提供的优点相结合,保证了网络范围内精确时钟同步。可以任意传输位置命令,速度命令或扭矩命令。取决于实现方式,甚至可能继续使用相同的设备配置工具。图 12: 同时并存的多个设备行规和协议3.10 EtherCAT实现以太网(EoE)EtherCAT技术不仅完全兼容以太网,而且在“设计”之初就具备良好的开放性特征——该协议可以在相同的物理层网络中包容其它基于以太网的服务和协议,通常可将其性能损失降到最小。对以太网的设备类型没有限制,设备可通过交换机端口在EtherCAT段内进行连接。以太网帧通过EtherCAT协议开通隧道,这也正是VPN、 PPPoE (DSL) 等因特网应用所普遍采取的方法。EtherCAT网络对以太网设备而言是完全透明的,其实时特性也不会发生畸变(参见图13)。图 13: 对所有以太网协议完全透明EtherCAT设备可以包容其它的以太网协议,因此具备标准以太网设备的一切特性。主站的作用与第2层交换机所起的作用一样,可按照编址信息将以太网帧重新定向到相应的设备。因此,集成万维网服务器、电子邮件和FTP 传送等所有的因特网技术都可以在EtherCAT的环境中得以应用。3.11 EtherCAT实现文件读取(FoE)这种简单的协议与TFTP类似,允许存取设备中的任何数据结构。因此,无论设备是否支持TCP/IP,都有可能将标准化固件上载到设备上。3.12 ADS over EtherCAT (AoE)ADS over EtherCAT (AoE)是由EtherCAT规范定义的客户端-服务器邮箱协议。尽管CoE协议提供了详尽的描述,但AoE则更适合路由与并行服务的应用:通过网关设备访问子网络,如EtherCAT至CANopen® 或 EtherCAT至IO-Link™ 网关设备。AoE使EtherCAT主站应用(如PLC程序)可以访问所属CANopen® 或 IO-Link™从站的各个参数。AoE路由机制开销远低于因特网协议(IP)所定义的开销,并且发送方和接收方寻址参数始终包含在AoE报文中。因此,EtherCAT主站和从站端的实施更为精简。AoE也通过EtherCAT自动化协议(EAP)进行非周期通信的标准化,从而为上位机MES系统或主计算机、EtherCAT主站及其从属的现有设备之间提供无缝通信。同时,AoE也提供了从远程诊断工具获取EtherCAT网络诊断信息的标准化方法。4. 基础设施成本页首由于EtherCAT无需集线器和交换机,因此,在环境条件允许的情况下,可以节省电源、安装费用等设备方面的投资,只需使用标准的以太网电缆和价格低廉的标准连接器即可。如果环境条件有特殊要求,则可以依照IEC标准,使用增强密封保护等级的连接器。5. EtherCAT 实施页首EtherCAT技术是面向经济的设备而开发的,如I/O 端子、传感器和嵌入式控制器等。EtherCAT使用遵循IEEE802.3标准的以太网帧。这些帧由主站设备发送,从站设备只是在以太网帧经过其所在位置时才提取和/或插入数据。因此,EtherCAT 使用标准的以太网MAC,这正是其在主站设备方面智能化的表现。同样,EtherCAT在从站控制器中使用专用芯片,这也是其在从站设备方面智能化的表现——无论本地处理能力是否强大或软件品质好坏与否,专用芯片均可在硬件中处理过程数据协议,并提供最佳实时性能。5.1 主站EtherCAT可以在单个以太网帧中最多实现1486字节的分布式过程数据通讯。其它解决方案一般是,主站设备需要在每个网络周期中为各个节点处理、发送和接收帧。而EtherCAT系统与此不同之处在于,在通常情况下,每周期仅需要一个或两个帧即可完成所有节点的全部通讯,因此,EtherCAT主站不需要专用的通讯处理器。主站功能几乎不会给主机CPU带来任何负担,轻松处理这些任务的同时,还可以处理应用程序,因此EtherCAT 无需使用昂贵的专用有源插接卡,只需使用无源的NIC卡或主板集成的以太网MAC设备即可。EtherCAT主站很容易实现,尤其适用于中小规模的控制系统和有明确规定的应用场合。例如,如果某个单个过程映像的PLC没有超过1486 字节,那么在其周期时间内循环发送这个以太网帧就足够了。因为报文头运行时不会发生变化,所以只需将常数报文头插入到过程映像中,并将结果传送到以太网控制器即可。EtherCAT映射不是在主站产生,而是在从站产生(外围设备将数据插入所经以太网帧的相应位置),因此,此时过程映像已经完成排序。该特性进一步减轻了主机CPU的负担。可以看到,EtherCAT主站完全在主机CPU中采用软件方式实现,相比之下,传统的慢速现场总线系统通过有源插接卡方可实现主站的方式则要占用更多的资源,甚至服务于DPRAM的有源卡本身也将占用可观的主机资源。系统配置工具(通过生产商获取)可提供包括相应的标准 XML 格式启动顺序在内的网络和设备参数。图 14: 主站实施的单个过程映像5.1.1 主站实施服务已经在各种实时操作系统上实现了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]。5.1.2 主站样本代码另一种EtherCAT主站的实现方式是使用样本代码,花费不高。软件以源代码形式提供,包括所有的EtherCAT主站功能,甚至还包括EoE(EtherCAT实现以太网)功能(见图15)。开发人员只要把这些应用于Windows环境的代码与目标硬件及所使用的RTOS加以匹配就可以了。该软件代码已经成功应用于多个系统。图 15: 主站样本代码结构5.2 从站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协议也可以实施。5.2.1 EtherCAT Slave Controller目前,有多家制造商均提供EtherCAT从站控制器。通过价格低廉的FPGA,也可实现从站控制器的功能,可以购买授权以获取相应的二进制代码。从站控制器通常都有一个内部的DPRAM,并提供存取这些应用内存的接口范围:· 串行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)。图 16: 从站硬件:带主机CPU的FPGA图 17: 从站硬件:带直接I/O的FPGA关于EtherCAT从站控制器的最新信息,请登录EtherCAT网站[1]。5.2.2 从站评估工具包倍福公司提供的从站评估工具包使接口操作变得简便易行。由于采用了EtherCAT,无需功能强大的通讯处理器,因此,可将从站评估工具包中的8位微处理器作为主机CPU使用。该工具包还包括源代码形式的从站主机软件(相当于协议堆栈)和参考主站软件包(TwinCAT)。6. 小结页首EtherCAT 拥有杰出的通讯性能,接线非常简单,并对其它协议开放。传统的现场总线系统已达到了极限,而EtherCAT则突破建立了新的技术标准——30 µs内可以更新1000个I/O数据,可选择双绞线或光纤,并利用以太网和因特网技术实现垂直优化集成。使用 EtherCAT,可以用简单的线型拓扑结构替代昂贵的星型以太网拓扑结构,无需昂贵的基础组件。EtherCAT还可以使用传统的交换机连接方式,以集成其它的以太网设备。其它的实时以太网方案需要与控制器进行特殊连接,而EtherCAT只需要价格低廉的标准以太网卡(NIC) 便可实现。EtherCAT拥有多种机制,支持主站到从站、从站到从站以及主站到主站之间的通讯(参见图18)。它实现了安全功能,采用技术可行且经济实用的方法,使以太网技术可以向下延伸至I/O级。EtherCAT功能优越,可以完全兼容以太网,可将因特网技术嵌入到简单设备中,并最大化地利用了以太网所提供的巨大带宽,是一种实时性能优越且成本低廉的网络技术。图 19: 网络结构形式多样7. 参考文献页首[1]EtherCAT Technology Group (ETG) http://www.ethercat.org[2]IEC 61158-3/4/5/6-12 (Ed.1.0), Industrial communication networks – Fieldbus specifications – Part 3-12: Data-link layer service definition – Part 4-12: Data-link layer protocol specification – Part 5-12: Application layer service definition – Part 6-12: Application layer protocol specification – Type 12 elements (EtherCAT)[3]IEEE 802.3: Carrier Sense Multiple Access with Collision Detection (CSMA/CD) Access Method and Physical Layer Specifications[4]IEEE 802.3ae-2002: CSMA/CD Access Method and Physical Layer Specifications: Media Access Control (MAC) Parameters, Physical Layers, and Management Parameters for 10 Gb/s Operation[5]ANSI/TIA/EIA-644-A, Electrical Characteristics of Low Voltage Differential Signaling (LVDS) Interface Circuits[6]IEEE 1588-2002: IEEE Standard for a Precision Clock Synchronization Protocol for Networked Measurement and Control Systems[7]EN 50325-4: Industrial communications subsystem based on ISO 11898 (CAN) for controller-device interfaces. Part 4: CANopen[8]IEC 61800-7-301/304 (Ed.1.0), Adjustable speed electrical power drive systems – Part 7-301: Generic interface and use of profiles for power drive systems – Mapping of profile type 1 to network technologies – Part 7-304: Generic interface and use of profiles for power drive systems – Mapping of profile type 4 to network technologies[9]SEMI E54.20: Standard for Sensor/Actuator Network Communications for EtherCAT.为何使用EtherCAT?EtherCAT独特的运行机制使其成为“工程师的明智之选”。此外,以下特点对某些应用具有特别的优势。1. 卓越的性能总的来说 EtherCAT 是最快的工业以太网技术,同时它提供纳秒级精确的同步。目标系统由总线系统控制或监测的所有应用都将从此大大获益。快速反应时间减少了处理步骤中的状态转换等待时间,从而显著提高了应用的效率。最后,相对于设定了相同循环时间的其他总线系统,EtherCAT 系统结构通常能减少 25%-30%的 CPU 负载。而最好的情况下,EtherCAT 性能可以改善精度,获得更高的吞吐量,并降低成本。2. 灵活的拓扑在 EtherCAT 应用中,机器结构决定网络拓扑结构,而非反之。在传统的工业以太网系统中,可安装的交换机和集线器的数量是有限的,从而限制了整个的网络拓扑结构。而 EtherCAT 无需交换机或集线器,因此没有这样的局限性。简而言之,EtherCAT 在网络拓扑方面没有任何限制。几乎无限数量的节点可以组成线型、树型、星型拓扑及任何拓扑的组合。由于自动链接检测功能,节点和网段可在运行中断开及重新连接——甚至连接到其他地方。线型拓扑可以拓展为环形拓扑,从而实现线缆冗余。主站设备仅需要第二个以太网口即可实现这种冗余功能,而从站设备已经具备了支持冗余功能的条件。因此可在机器运转过程中进行设备交换。3. 简单且耐用配置、检测、维护都与系统的成本息息相关。以太网现场总线使得所有这些任务变得异常简单:EtherCAT 可以自动配置地址,无需手动配置。低总线负载和点对点的物理层改善了抗电磁干扰的能力。网络可靠地定位检测潜在的干扰,从而大大减少了排除错误的时间。在启动时,网络将目标拓扑与现实拓扑对比从而检测差异。EtherCAT 出色的性能使得系统配置时降低对网络调试的需求。由于高带宽,可以将其他的 TCP/IP 与控制数据同时传输。然而,EtherCAT 并不是基于 TCP/IP 的,因此无需使用 MAC 地址或 IP 地址,更不需要 IT 专家配置交换机或路由器。4. 集成安全功能性安全作为一个网络结构的集成部分?对于 FSoE(Functional Safety over EtherCAT)来说不是问题。FSoE 是得到实际验证的,自 2005 年就有了通过 TÜV 认证的FSOE 设备。协议满足 SIL 3 系统要求,且适用于集中控制和分散控制系统。由于黑色通道的方式及特别精简的安全容器(Safety Container),FSoE 也可以应用于其他总线系统。该集成方案及精简的协议可降低系统成本。此外,一个非安全要求的控制器可以接受并处理安全数据。5. 低成本易实现EtherCAT 以相当甚至低于传统现场总线系统的价格水平提供工业以太网的特性。对于主站设备硬件仅需要一个以太网端口——而无需昂贵的接口卡或协处理器。不同形式的 EtherCAT 从站控制器可以从很多供应商获得:ASIC 芯片、FPGA,或标准微处理器的可选总线接口。由于这些便宜的控制器可以承担所有时间关键任务,EtherCAT 自身并不向从站设备 CPU 提出任何性能要求,从而降低了设备成本。因为 EtherCAT 不需要交换机或其他有源基础组件,从而节省了该类组件及其安装、配置和维护的成本。基于这些原因,EtherCAT广泛适用于:· 机器人· 机床· 包装机械· 印刷机· 塑料制造机器· 冲压机· 半导体制造机器· 试验台· 测试系统· 抓取机器· 电厂· 变电站· 材料处理应用· 行李运送系统· 舞台控制系统· 自动化装配系统· 纸浆和造纸机· 隧道控制系统· 焊接机· 起重机和升降机· 农场机械· 海岸应用· 锯木厂· 窗户生产设备· 楼宇控制系统· 钢铁厂· 风机· 家具生产设备· 铣床· 自动引导车· 娱乐自动化· 制药设备· 木材加工机器EtherCAT 常见问题1. EtherCAT技术· 1.1 EtherCAT性能远高于我的应用需求。为什么我还要使用该技术?· 1.2. 为何使用EtherCAT可以降低成本?· 1.3 EtherCAT是否仅局限于主站与从站的通讯应用?· 1.4 如何保证EtherCAT设备的兼容性?2. EtherCAT 技术协会· 2.1 我必须成为ETG会员才可以使用EtherCAT吗?· 2.2 我必须成为ETG会员才可以实施EtherCAT吗?· 2.3 如何成为EtherCAT技术协会的会员?· 2.4. 会员可以享有何种利益?· 2.5 为何ETG会员资格是免费的?· 2.6 将来会否收取会费?· 2.7 ETG会员如何影响该技术的发展?· 2.8 EtherCAT技术协会的法律地位?3. EtherCAT: 开放的技术· 3.1 EtherCAT是一个开放性的技术。这意味着什么?· 3.2 是否有专利权?· 3.3 如何授权?· 3.4 开放源代码是怎样的情况?· 3.5 是否有多种渠道获取EtherCAT从站控制器?4. 实施方面· 4.1 我们想实施一个EtherCAT从站设备,应该如何开始?· 4.2 我们想实施一个EtherCAT主站设备,应该怎么做呢?· 4.3 EtherCAT从站控制芯片的授权如何?· 4.4 FPGA的授权费用如何?· 4.5 是否必须 将我们的EtherCAT设备递交给一致性测试中心接受检测吗?5. EtherCAT Vendor ID· 5.1 什么是EtherCAT Vendor ID?· 5.2 我们的子公司/合作伙伴有EtherCAT Vendor ID。我们可以在我们的设备上使用它吗?· 5.3 我们正在使用技术提供商提供的接口板在我们的设备上增加EtherCAT接口。那么。我们可以在我们的设备上使用该技术提供商的Vendor ID吗?· 5.4 何谓二级Vendor ID?· 5.5 我们有一个CANopen® 的Vendor ID。我们可以在EtherCAT设备上使用它吗?· 5.6 我们如何申请Vendor ID?6. Safety over EtherCAT· 6.1 是否需要添加一个EtherCAT接口来连接我的FSoE设备?· 6.2 是否需要为我的FSoE设备实施一个独立的控制器结构?· 6.3 我是否可以在其他非EtherCAT通讯系统中使用Safety over EtherCAT?· 6.4 是否有经过认证的Safety over EtherCAT堆栈可供使用?· 6.5 是否有Safety over EtherCAT的一致性测试?· 6.6 我的Safety over EtherCAT设备是否需要经过相关机构(如TUV, BGIA)的认可?· 6.7 我是否需要在设备上市前在FSoE测试中心进行官方测试?· 6.8 为何我在设备上实施Safety over EtherCAT协议需要授权?· 6.9 我如何可以获得并使用Safety over EtherCAT的Logo?· 6.10 我是一个EtherCAT主站的提供商。我如何支持Safety over EtherCAT设备?· 6.11 我是机械设备制造商。我需要授权才可以使用Safety over EtherCAT的设备吗?· 1. EtherCAT技术· 1.1 EtherCAT性能远高于我的应用需求。为什么我还要使用该技术?卓越的现场总线性能决不会有坏处。即使对于慢速控制,使用EtherCAT也可以改善响应时间并简化配置工作,因为缺省配置就可以满足要求。此外,更短的响应时间可以改善您应用的性能,因为这缩减了传输等待时间(如,在下一个处理被初始化前对输入信号的等待时间)。如果您对性能要求并不苛刻,也可以因为EtherCAT的其它优势而选用它,比如,成本更低,更加灵活的拓扑结构,或者仅仅是使用方便。总而言之,您采用EtherCAT,就无需采用昂贵慢速的系统了。· 1.2. 为何使用EtherCAT可以降低成本?有这样几种原因:低成本的从站控制器降低了从站设备的成本。无需任何特殊的主站卡,主板集成的以太网控制器即可满足要求。无需交换机或集线器,因此降低了基础设施的成本。使用标准以太网线缆。实施简单,因此降低了实施成本。支持自动配置,无需任何手动设置地址,无需任何网络调整,因此降低了配置成本。· 1.3 EtherCAT是否仅局限于主站与从站的通讯应用?不是的。与其他实时工业以太网系统一样,一个设备(主站)必须要担任网络管理、组织介质读取控制的任务。对于EtherCAT,有两种方式可以实现从站与从站的通讯:在同一个循环周期内基于拓扑结构,其中上游设备可以与下游设备交换数据,而独立于拓扑结构的情况需要在两个总线周期实现数据交换。EtherCAT比其他的协议更具有速度优势,即使需要两个周期实现从站与从站的通讯,相对来讲也是高速高效的。· 1.4 如何保证EtherCAT设备的兼容性? 对于一个通讯技术来说,保证其实施的一致性及兼容性是该技术成功的重要因素。因此EtherCAT技术协会非常重视这些特性。技术实施协议方面的一致性是兼容性的前提,这意味着来自于不同厂商的设备可以在同一个应用网络中协同工作。为保证一致性,必须使用一致性测试工具(CTT)。此外,我们还有遍布全球的一致性测试中心(ETC)。对于通过EtherCAT一致性测试的设备,ETC将颁发官方一致性证书。更多关于一致性测试及设备认证的信息可以在一致性测试页面找到。· 2. EtherCAT 技术协会· 2.1 我必须成为ETG会员才可以使用EtherCAT吗?不需要。但是,您或许希望通过加入ETG来向您的客户或供应商展示您对该技术的支持。对于一个ETG会员,您将被邀请参加ETG会议,获取详细的技术规范及相关信息,并影响该技术的发展。· 2.2 我必须成为ETG会员才可以实施EtherCAT吗?虽然我们建议您加入ETG(见2.3/2.4),但如果您在您的机器或生产线上集成EtherCAT设备,那么我们认为您是最终用户,并不必须加入ETG。EtherCAT设备制造商必须要加入ETG,并获得一个EtherCAT Vendor ID。详情请在下载专区(请使用您的会员登录账号)下载EtherCAT Vendor ID政策(EtherCAT Vendor ID Policy)。会员资格免费获取(见2.5/2.6)。· 2.3 如何成为EtherCAT技术协会的会员?可以通过给ETG总部发邮件info@ethercat.org申请ETG的会员资格。您将得到所有必须的信息,如需求,会员申请表格等。在成为会员之前,请仔细阅读ETG By-Laws· 2.4. 会员可以享有何种利益?ETG会员优先享受技术支持,可获取仅提供给会员的EtherCAT规范、指南、免费从站代码和其他支持工具及相关信息。会员将被邀请参加ETG会议,如技术委员会(TC)或技术工作组(TWG),对规范进行审核和讨论。ETG会员有资格参加指定的EtherCAT培训和研发课程。此外,ETG会员还可以在EtherCAT官网上推广其产品,并作为合作伙伴参与我们的全球系列研讨会和全球重要展览会上的ETG联合展台。ETG会员权益· 2.5 为何ETG会员资格是免费的?会员年费或者其他的高额成本相对于获取一个开放的技术应该不是一个问题。因此,不仅没有ETG的会员费用,而且ETG会员获取协议堆栈,样本代码,评估套件,实施支持和其他的服务都是免费或者仅需很低的费用。· 2.6 将来会否收取会费?目前没有收取ETG会费的计划。如果将来需要收取会费(如,以支持ETG的外加服务),将由会员委员大会讨论通过决定。· 2.7 ETG会员如何影响该技术的发展?在ETG技术委员会会议上将对EtherCAT技术进行详细探讨,鼓励各ETG会员加入技术工作组和项目团队,并提出宝贵的建议和意见。 会员区有所有工作组的列表(需登录)ETG工作组欢迎各用户、OEM、系统集成商和设备制造商提供有价值的需求反馈,ETG的工作历史表明这种反馈非常有效。 技术使用者和开发者之间直接和个人的联系可以加强关于"Know-how"知识和技术信息的深层次交流。 查找ETG会员详细信息请点击这里:EtherCAT组织架构· 2.8 EtherCAT技术协会的法律地位?ETG是(类似于德国大多数工会或政党)受德国法律允许的非注册协会或社团组织。根据相关法规,由于ETG不销售任何产品,因此ETG是一个非盈利性组织。会员对协会资产共同承担有限责任——ETG无资产,因此事实负债为零。· 3. EtherCAT: 开放的技术· 3.1 EtherCAT是一个开放性的技术。这意味着什么?这意味着每一个人都可以使用,实施,并获利于该技术。还意味着EtherCAT实施应该是兼容的,任何人不应为防止他人使用而改变这种技术。EtherCAT是国际标准(IEC61158, IEC 61784, IEC 61800, ISO 15745),同时也是SEMI标准(E54.20)。· 3.2 是否有专利权?是的,EtherCAT技术有专利权,如同其他任何值得拥有专利权的现场总线技术一样。 可以提供独特功能的技术需要专利权和授权以保护其不受复制和伪造的伤害。· 3.3 如何授权?对于EtherCAT主站实施的授权是免费的,但协议要求兼容性,以确保授权免费并提供法律效力。 对于从站设备,EtherCAT采用了CAN的授权模式(CAN是一个受专利保护的标准开放技术的出色样本): 低额的授权费用已经“嵌入到”EtherCAT 从站控制器(ESC)芯片中,因此,设备制造商,最终用户,系统集成商,工具生产商等无需再付授权费用。· 3.4 开放源代码是怎样的情况?EtherCAT技术本身并不开源。 EtherCAT符合IEC,ISO和SEMI标准,因此每个人都可以平等地使用EtherCAT技术。 此外,无需缴纳主站使用授权费用。 ETG所有会员和EtherCAT用户组共同维护并促进EtherCAT技术的进一步发展。如果您有关于技术实施或者EtherCAT技术结合共享和开放源码系统方面的相关问题,请联系ETG总部或EtherCAT技术的专利方Beckhoff。· 3.5 是否有多种渠道获取EtherCAT从站控制器?有。EtherCAT从站控制器(ESC)实施可以从亚信电子、Beckhoff、Hilscher、HMS、英飞凌、Innovasic、Microchip、Profichip、德州仪器、Trinamics、瑞萨电子、Intel以及 Xilinx获取。更多实施也即将发布。EtherCAT从站控制器概述可在资料下载区进行查询:下载区· 4. 实施方面· 4.1 我们想实施一个EtherCAT从站设备,应该如何开始?可以参考EtherCAT Slave Implementation Guide(EtherCAT从站实施指南)作为从站实施的开始,请点击这里下载。该文件涵盖从站实施的起始步骤,包括开发硬件、软件、研讨会和培训、一致性,以及一步步的提示信息。 EtherCAT从站协议栈可以从多个供应商获取。 Beckhoff将从站协议栈代码(SSC)-源代码免费开放给所有ETG会员。 EtherCAT从站实施套件也可以从相关供应商获取。请在官方EtherCAT产品指南中查询更多从站评估套件:EtherCAT产品页面· 4.2 我们想实施一个EtherCAT主站设备,应该怎么做呢?对于主站来讲,你并不需要专用的硬件设备。任何以太网MAC都可以满足要求。EtherCAT对资源消耗非常小,因此也无需特殊的通讯处理器。主站代码可以从多种渠道获得,如一些通过样本代码包提供的免费开放代码,甚至一些包含了RTOS的主站产品。实施服务同样有不同的供应商可以提供。请点击此处了解EtherCAT产品情况。· 4.3 EtherCAT从站控制芯片的授权如何?当您从EtherCAT从站控制器供应商那里购买了ESC芯片,所有的EtherCAT功能已经包含在芯片中。对EtherCAT从站设备供应商来说,取得了ESC供应商资格则包含该授权,无需额外的EtherCAT授权费用。· 4.4 FPGA的授权费用如何?当您从您首选的半导体分销商那里购买了FPGA,EtherCAT代码尚未加载。EtherCAT IP核授权适用于Intel和Xilinx的FPGA。您只需支付一个授权即可制造尽可能多的EtherCAT从站设备。此外,也有基于数量的授权。· 4.5 是否必须 将我们的EtherCAT设备递交给一致性测试中心接受检测吗?不是。在官方EtherCAT测试中心进行一致性测试是可选的——但是,您的客户可能会需要一致性测试证书,而一致性测试证书只能通过官方测试后才能发放。您必须确保您的研发设施中应用了官方一致性测试工具(CTT)。每年,ETG都会维护和进一步发展CTT,CTT以订阅的方式提供。关于一致性的更多详情,请点击此处获得。· 5. EtherCAT Vendor ID· 5.1 什么是EtherCAT Vendor ID?EtherCAT Vendor ID是由EtherCAT技术协会为每一个供应商分配的唯一的标识号码。它与产品编码(product code )一同将包含在EtherCAT设备的 标识对象中。EtherCAT Vendor ID 列表· 5.2 我们的子公司/合作伙伴有EtherCAT Vendor ID。我们可以在我们的设备上使用它吗?如果要求将Vendor ID授予合作伙伴公司,请联系ETG总部。但是,我们建议每个EtherCAT设备用户使用自己单独的Vendor ID。· 5.3 我们正在使用技术提供商提供的接口板在我们的设备上增加EtherCAT接口。那么。我们可以在我们的设备上使用该技术提供商的Vendor ID吗?不可以。该技术提供商的通信设备上附带有Vendor ID。您应使用自己独有的Vendor ID来替代它,以便于您的设备可以在网络中被识别。· 5.4 何谓二级Vendor ID?二级Vendor ID是从原Vendor ID派生出来的,专门用来标识通讯接口设备类产品的Vendor ID,但这类产品无法参加后续的一致性测试。· 5.5 我们有一个CANopen® 的Vendor ID。我们可以在EtherCAT设备上使用它吗?对于您的EtherCAT产品,你需要一个EtherCAT Vendor ID。然而,在您申请EtherCAT Vendor ID时,您可以提出申请与您CANopen® 的Vendor ID相同的号码,如果您申请的号码仍然可用,ETG则会分配给您。· 5.6 我们如何申请Vendor ID?非常简单,您仅需到EtherCAT网站的会员页面下载:EtherCAT Vendor ID 申请表格· 6. Safety over EtherCAT· 6.1 是否需要添加一个EtherCAT接口来连接我的FSoE设备?不需要。RSoE协议采用一个黑色通道实现;无需为此设置安全相关的标准通讯接口。控制器,ASIC以及链接,耦合器相关的通讯接口都可以保留使用。· 6.2 是否需要为我的FSoE设备实施一个独立的控制器结构?使用两个微控制器是实现SIL 3安全设备的常用方式。但这并不是Safety over EtherCAT规范的要求。实现这个协议必须满足以下要求:- 完全符合IEC 61508和IEC 61784-3;- 完全符合FSoE协议规范;- 完全符合安全完整性等级(SIL)要求和相应产品的指定需求。· 6.3 我是否可以在其他非EtherCAT通讯系统中使用Safety over EtherCAT?可以。该协议可以在任何通讯中使用,可以是EtherCAT通讯,现场总线系统,以太网或类似的通讯,光纤,同轴线缆,甚至无线传输。对于通讯总线耦合器或其他设备没有限制或特别要求。· 6.4 是否有经过认证的Safety over EtherCAT堆栈可供使用?有,在ETG内部有服务提供商能够提供预先认证的FSoE协议栈和安全研发服务。Safety over EtherCAT协议非常简洁,协议状态机有明确的界定。经验表明,使用或不使用预认证的堆栈都可以在短时间内轻松实施。· 6.5 是否有Safety over EtherCAT的一致性测试?是的。FSoE测试案例规范适用于FSoE设备,并通过TUV批准。对于FSoE从站,测试案例与EtherCAT测试工具配合使用,可以执行一个自动的测试。通常情况下,由于灵活的主站配置,对于主站堆栈的自动检测更复杂。因此,可用的测试案例规范可以用于对主站的认可。Safety over EtherCAT规则ETG.9100包括了对一个设备验收的完整测试流程。· 6.6 我的Safety over EtherCAT设备是否需要经过相关机构(如TUV, BGIA)的认可?是的。Safety over EtherCAT设备的研发需要评估。设备的实现包括通过EMC报告,Safety over EtherCAT一致性测试,并通过所有符合IEC 61508的安全周期流程。该评估将由机构实现。· 6.7 我是否需要在设备上市前在FSoE测试中心进行官方测试?是的。FSoE测试政策是需要通过官方FSoE测试中心测试的。进行FSoE一致性测试的前提是拥有有效的EtherCAT协议实施认证。FSoE测试中心的所有测试都可以在内部进行准备。· 6.8 为何我在设备上实施Safety over EtherCAT协议需要授权?Safety over EtherCAT是一种为很多设备制造商所采用的技术。对于这样一种技术来说,兼容性是保证在应用领域能进行互操作的重要功能。取得授权的设备制造商都有权实施这一技术,但其设备必须具有符合规范的兼容性。授权是免费的。使用FSoE最终设备的机器制造商及控制系统提供商则无需该项授权。· 6.9 我如何可以获得并使用Safety over EtherCAT的Logo?Safety over EtherCAT的logo可以从ETG总部获取。使用Safety over EtherCAT Logo的产品必须遵循由ETG发布的ETG9001 EtherCAT标识规则。· 6.10 我是一个EtherCAT主站的提供商。我如何支持Safety over EtherCAT设备?如果您只是想在EtherCAT环节支持现有的Safety over EtherCAT设备,则无需在主站上进行任何安全相关的实施。可采用带一个EtherCAT从站接口的FSoE主站,同时也可以被用作安全逻辑设备。只有从-从通信必须由EtherCAT主站支持,将安全数据报从FSoE主站路由至FSoE从站,反之亦然。· 6.11 我是机械设备制造商。我需要授权才可以使用Safety over EtherCAT的设备吗?不。您可以在机械设备中直接使用最终的Safety over EtherCAT产品,而无需授权。您务必留意产品中是否有SIL或PL认证,产品必须执行相关标准(IEC 62061, ISO 13849)或产品标准,以及与其他相关标准的兼容性,如必须符合国际的或国家的法律要求(如Directive of machinery, OSHA, UL等)。Vendor ID每个EtherCAT兼容设备必须使用由ETG分配的全球唯一的Vendor ID。EtherCAT Vendor ID的使用必须符合EtherCAT规范,并由ETG Vendor ID政策和相应的Vendor ID协议约束管理。为明确这一政策,一般规则如下:· 每个EtherCAT设备供应商必须是ETG会员,必须从EtherCAT技术协会取得有效的Vendor ID。· Vendor ID是免费的。· 在EtherCAT设备上市前,供应商必须实现Vendor ID。· 在机器中集成或使用EtherCAT设备的机器制造商,无需申请和使用Vendor ID。发布于 2021-05-28 14:08开放式 IEC 61131 控制系统设计(书籍)以太网(Ethernet)以太网协议赞同 181 条评论分享喜欢收藏申请转载文章被以下专栏收录IT技术专栏IT技术分享
Ethercat上位机开发:概念、原理与实践 - 技象科技
Ethercat上位机开发:概念、原理与实践 - 技象科技
跳至内容
技象科技有限公司官方网站
技象天猫旗舰店技象天猫旗舰店
技象京东旗舰店技象京东旗舰店
IoT演示平台IoT演示平台
首页
解决方案
菜单切换
TPUNB®
城域物联网
菜单切换
智慧农业
环境监测
智慧停车
局域物联网
菜单切换
智慧楼宇
智慧养老
智慧照明
智慧能源
工业智控物联网
菜单切换
动环监控
终端自组网
菜单切换
自组网
产品终端
菜单切换
芯片产品
模组产品
网关产品
应用产品
云平台
关于我们
菜单切换
荣誉资质
合作伙伴
公司一览
招聘岗位
新闻资讯
菜单切换
公司新闻
下载专区
联系我们
首页
TPUNB®
物联网解决方案
菜单切换
城域物联网
局域物联网
工业智控物联网
终端自组网
物联网产品终端
菜单切换
芯片产品
模组产品
网关产品
物联网云平台
关于我们
菜单切换
荣誉资质
合作伙伴
公司新闻
联系我们
Main Menu
首页
TPUNB®
物联网解决方案
菜单切换
城域物联网
局域物联网
工业智控物联网
终端自组网
物联网产品终端
菜单切换
芯片产品
模组产品
网关产品
物联网云平台
关于我们
菜单切换
荣誉资质
合作伙伴
公司新闻
联系我们
技象科技首页 / 行业百科 / Ethercat上位机开发:概念、原理与实践
Ethercat上位机开发:概念、原理与实践作者:
技象物联网
/ 行业百科 / 电子技术 / 2023年10月5日 08:38:01 2023年10月5日 08:38:01
Ethercat是一种基于以太网的工业控制系统,它能够实现高效的实时通信,支持多种类型的设备,可以实现高精度的控制和数据采集。Ethercat上位机开发则是一种基于Ethercat技术的应用,它可以实现精确的控制,从而更好地满足企业对于设备控制的需求。本文将介绍Ethercat上位机开发的概念、原理和实践,以便读者更好地理解Ethercat上位机开发的基本内容。
Ethercat上位机开发的概念
Ethercat上位机开发是指使用Ethercat技术实现上位机控制的应用,它可以提供更加精确的控制,从而更好地满足企业对于设备控制的需求。
Ethercat上位机开发的主要内容包括:
定义Ethercat控制系统的通信协议;
设计Ethercat控制系统的硬件设备;
实现Ethercat控制系统的软件编程;
实现Ethercat控制系统的系统调试。
Ethercat上位机开发的原理
Ethercat上位机开发是一种基于Ethercat技术的应用,它可以实现精确的控制,从而更好地满足企业对于设备控制的需求。其原理主要分为以下几个步骤:
1. 定义Ethercat控制系统的通信协议
Ethercat控制系统的通信协议是指定义Ethercat控制系统的报文格式、报文编码、报文传输方式等内容,以便实现Ethercat控制系统的有效通信。
2. 设计Ethercat控制系统的硬件设备
Ethercat控制系统的硬件设备是指实现Ethercat控制系统的硬件组件,包括主机、从机、总线等,以便实现Ethercat控制系统的有效控制。
3. 实现Ethercat控制系统的软件编程
Ethercat控制系统的软件编程是指实现Ethercat控制系统的软件程序,以便实现Ethercat控制系统的有效控制。
4. 实现Ethercat控制系统的系统调试
Ethercat控制系统的系统调试是指通过对Ethercat控制系统的硬件设备和软件程序进行调试,以便实现Ethercat控制系统的有效控制。
Ethercat上位机开发的实践
Ethercat上位机开发的实践是指将Ethercat控制系统的概念和原理运用到实际应用中,以便实现精确的控制。
Ethercat上位机开发的实践主要包括:
实现Ethercat控制系统的硬件设计;
实现Ethercat控制系统的软件编程;
实现Ethercat控制系统的系统调试;
实现Ethercat控制系统的应用研究。
Ethercat上位机开发的实践可以让企业更好地满足对于设备控制的需求,从而提高企业的效率和竞争力。
总结
Ethercat上位机开发是指使用Ethercat技术实现上位机控制的应用,它可以提供更加精确的控制,从而更好地满足企业对于设备控制的需求。Ethercat上位机开发的概念、原理和实践都是非常重要的,它们可以帮助读者更好地理解Ethercat上位机开发的基本内容,从而更好地满足企业对于设备控制的需求。
相关阅读:
EtherCAT上位机开发:从入门到精通
FFT求功率谱密度:原理与实践
串行数据传输:原理与实践
PC机串口输出的电平会取反:原理与实践
原创声明:文章来自技象科技,如欲转载,请注明本文链接: https://www.techphant.cn/blog/39170.html
文章导航
← 前一篇文章后一篇文章 →
相关推荐
1月 14 2024
数据传输控制方式
10月 17 2023
FreeRTOS框架:一种嵌入式操作系统的解决方案
10月 2 2023
使用LabVIEW项目好做吗?
10月 22 2023
OP放大器有源滤波
11月 4 2023
EMC可穿过多大的孔
1月 14 2024
全局变量放在内存的什么区
联系我们
广州技象科技有限公司聚焦物联网底层关键技术,打造100%自主知识产权的TPUNB物联专网,形成完备的物联感知系统参与各垂直行业的整体解决方案及项目建设。
品牌京东旗舰店
品牌天猫旗舰店
公司招聘岗位
免费技术咨询
站内资讯
lora无线通信模块传输距离
2023年12月3日 15:50:34
智能热水水表怎么使用
2023年10月3日 04:41:21
Win10 COM端口驱动
2024年1月12日 07:45:58
KNX和485通信协议的区别
2023年12月25日 01:38:40
通信工程:解析、原理和应用
2023年9月16日 15:28:32
远动装置RTU:有效的远程监控解决方案
2023年10月8日 06:38:42
DDC转485:实现智能设备的连接
2023年10月3日 11:38:12
CP341 SF指示灯不亮的原因及解决方案
2023年9月27日 19:24:32
PLL锁相环工作原理和作用
2023年11月22日 16:24:41
智慧抄表系统:提高效率、降低成本
2023年9月9日 08:00:16
站内标签
传感器
zigbee
RS232
UART
监测仪
DTU
物联网
USB
RS422
Modbus
无线模块
LoRa
串口通信
智慧农业
电子技术
CAN通信
无线通信
RS485
STM32
通信系统
最新资讯
工业数据采集器的作用有哪些
广域网采用什么拓扑结构
芯片封装工艺流程
物联网通信技术有哪些应用场景
ISP芯片和SoC芯片有什么区别
自组网基站有什么功能
MCU芯片什么意思
433无线模块工作原理
产品服务
TPUNB®
城域物联网
局域物联网
工业智控物联网
终端自组网
芯片产品
模组产品
网关产品
技象科技成立于2018年,是中国电子科技集团公司科技成果转化和混合所有制改革的科技企业。
服务条款隐私政策关于我们联系我们
© 2024 广州技象科技有限公司 版权所有 粤ICP备19000791号-2
首页 | 隐私政策 | 关于我们 | 联系我们 | 网站地图
免费咨询组网方案
EtherCat伺服驱动与上位机及PLC之间通讯的那些问题
EtherCat伺服驱动与上位机及PLC之间通讯的那些问题
首页 精选博文 chatgpt专题 EtherCat伺服驱动与上位机及PLC之间通讯的那些问题 2022/5/6 12:24:19 工业自动化行业的工程师们,就算没用过ethercat协议,肯定也听说过。
一说起Ethercat,觉得似乎挺高大上的,不少支持EtherCat协议的设备,无论是驱动器还是PLC,价格都还不低。
EtherCat给人最大的印象,是通用性和高速,但事实远不是那么回事。这里要吐槽的是通用性。
如果你没有用过EtherCat设备,现在想要使用,那么,在选择控制器(上位机)和驱动器的时候,就千万要小心了,如果商家和你说:
我们的设备使用的是通用的EtherCat协议
这时候,你需要注意的是什么呢?
是兼容性!
也就是所谓的“通用”,这是一个非常大的问题。举个亲身的例子,之前有项目要用到数控系统和伺服驱动,为了方便,决定选用EtherCat总线,最后选择了华中数控的系统和科尔摩根的伺服,当时在选型时,都询问了厂家,关于是否支持EtherCat协议,厂家都给予了肯定回复,信誓旦旦地跟我说,我们的EtherCat协议是通用的,只要你的设备(上位机)是EtherCat,就可以通讯。
但是,等我们把东西买回来,上电测试,发现数控系统和伺服驱动器通讯不了,于是开始查问题,发现EtherCat初始化的时候,初始化不了,数控系统和伺服厂家各有各的说法,最后发现不兼容。
这是非常奇怪的事,大家都用EtherCat,都说是通用的,但最后二者无法通过EtherCat连接,在经过了扯皮、测试之后,最后无奈,放弃科尔摩根伺服,重新买了高创和松下的伺服,这才解决了问题。
看起来,好像是驱动器的问题,对吧?但实际上,选择新的驱动器,也废了一番功夫,问了很多品牌,支持EtherCat,但不支持华中数控,没有适配过,最后也是没办法,才选了高创和松下。
这其中,最让人难以理解的是,EtherCat这个协议的“不通用性”,最初选择EtherCat协议,是看中了其脱离具体品牌和设备的“通用性”,最后却被所谓的“通用性”害了。
再说一个亲身的例子,信捷PLC和松下伺服,本以为PLC会比数控系统要更通用些,但发现,其实是一样的。
买了信捷的XL系列PLC(支持EtherCat),和松下A6BE系列伺服(支持EtherCat),上电一通讯,可以识别,但写入数据时,发现写入不了,试了几次不行,打电话问售后,结果告诉我,要专门适配。
又是要适配,很奇怪吧,大家说起来,都是通用的EtherCat协议,用起来全部要专门适配,如果是这样,那通用性在哪里呢?
这是我在实际应用中发现的,让我十分困扰的问题,而作为用户,也没有办法自己解决这个问题,因为一旦不兼容,就需要厂家去适配,有的时候,厂家甚至都不愿意专门适配,这个时候,所买的设备,就等于白买了。
所以,这里要专门提醒大家,如果要使用EtherCat设备,选择上位机和伺服驱动的时候,千万要问清楚,双方是否兼容,是否适配过,不要轻信厂家所说的“通用”,我可以告诉你,绝对不通用。 查看全文
如若内容造成侵权/违法违规/事实不符,请联系编程学习网邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除! 相关文章 hive查找字符出现的位置find_in_set和locate 函数 问题场景
查找Face这个标签在image_labels字段中出现的位置。
尝试了2个函数,find_in_set和locate 函数,如下所示
select feed_id,db_time, user_id,image_labels,find_in_set(Face,image_labels) as a,locate(Face,image_labels) as b from gravity…... 2022/5/6 12:24:19 Vue :axios请求post、get请求根据后参数类型进行传参 传参过程:
axios.get(“/manage/project/staff/position/lis 《大厂前端面试题解析Web核心总结学习笔记企业项目实战源码最新高清讲解视频》无偿开源 徽信搜索公众号【编程进阶路】 t”, {
params: {
staffId: row.id,
},
headers: {
‘token’: ‘token值或者…... 2022/5/6 12:24:18 Linux查找文件和目录 find命令 Find命令用来搜索Linux中的文件和文件夹。根据搜索条件递归地遍历其子目录。它允许用户根据大小、名称、所有者、组、类型、权限、日期和其他条件执行所有类型的文件搜索 # 文件或者目录
find -name "文件名"
# 忽略大小写查找
find -iname "文件名&qu…... 2022/5/6 12:24:00 Android无用代码、资源扫描的其他思路 设置minifyEnabledtrue进行编译即可, 生成的文件位于build/outputs/mapping/release(或debug)/usage.txt
2、开启R8,生成usage.txt
1、设置minifyEnabledtrue 2. 指定生成路径,在proguard-rules.pro文件中添加…... 2022/5/6 12:23:59 docker容器vim bash: vim: command not found 问题 在使用docker容器时,有时候里边没有安装vim,使用vim命令时提示说:vim: command not found,这个时候就需要安装vim。
1、安装命令:
apt-get install vim 2、如果报错:
Reading package lists... Done
Bui…... 2022/5/6 12:23:58 Logback中使用TurboFilter实现日志级别等内容的动态修改 TurboFIlter不同于之前在[《Logback中如何自定义灵活的日志过滤规则》]一文中介绍的那些通过ch.qos.logback.core.filter.Filter接口实现的过滤器。ch.qos.logback.core.filter.Filter实现的过滤器是与Appender绑定的,而TurboFIlter是与日志上下文绑定的,…... 2022/5/6 12:23:52 Android技能树 — Fragment总体小结 1. 直接在Layout.xml中添加 2. 在代码中动态添加,比如我们添加到一个LinearLayout中:
Button button new Button(mActivity); LinearLayout.LayoutParams params new LinearLa…...
2022/5/6 12:23:46 jeecg-boot table 修改默认排序
方法是重写
PCB编辑器是一个基于网格的设计环境-设计对象被放置在所谓的放置或捕捉网格上。可以定义多个捕捉栅格,如果需要,可以将这些栅格限制在指定区域内。捕捉栅格将按优先级排列,当前位置的最高优先级栅格将自…... 2022/5/6 12:23:04 P3375 【模板】KMP字符串匹配(洛谷) P3375 【模板】KMP字符串匹配(洛谷)
理解
一.求长度 string类型: string s; (1) s.length() (2)s.size()
char类型: char s[100]; (1)strlen(s) (2)sizeof(s) : ‘\0’
二.KMP 模式匹配/字符串匹配 模式串/子串自配 prefix( …... 2022/5/6 12:23:04 linux重装系统步骤 包含raid【主要针对服务器重装】 4、 设置root密码和创建用户后等待进度装完后重启 完成安装
[](()重装一台系统步骤: 该方法是用于实际服务器中重装步骤,虚拟机中可直接跳过重装系统前的准备这步。
[](()重装系统前准备 以华为管理口为例: 1)使用管理口ip登陆…... 2022/5/6 12:22:46 集合-----List接口 集合-----List接口 简单介绍一下List接口
a、List接口是Collection接口的子接口
b、List接口的特点:
有序 有序(元素存入集合的顺序和取出的顺序一致)。List中每个集合都有索引标记.可以根据元素的索引标记(在List中的位置)访问元素,从而精确控制这些元素。 可重…... 2022/5/6 12:22:33 vue vuex 学习小demo state.count
},
sub(state){
state.count–
},
addN(state,step){
state.countstep
},
subN(state,step){
state.count-step
}
},
//如果actions里面想要修改store里面的数据,只能通过commit去触发mutations里面的方法
//不能直接修改
//context.comm…... 2022/5/6 12:22:33 关于js动态添加css方法介绍 转自:微点阅读 https://www.weidianyuedu.com 为了节省代码和写出更兼容的代码,有时我们需要用Javascript动态的增加CSS样式。
IE下,我们可以使用 document.createStyleSheet() 方法;而在非IE浏览器上,就不支持这个方…... 2022/5/6 12:22:32 Minio中文路径造成无法下载问题解决办法 Minio中文路径造成无法下载问题.net core解决办法
//后端需要对含有中文的路径进行加密
var encodedFilePath Encoding.UTF8.GetString(Convert.FromBase64String(filePath));
var lastFilePath HttpUtility.UrlDecode(encodedFilePath);// 前端使用TS, 对url 进行编码
enco…... 2022/5/6 12:20:49 2 ,jdk :下载,安装,卸载 0,软件下载 :百度云盘 链接:https://pan.baidu.com/s/1HPpeqB4Lx4WQC55D7lGRoQ 提取码:1234 1 ,下载 :jdk8 1 ,官网 : www.oracle.com 2 ,下…... 2022/5/6 12:20:43 java基础类库——观察者模式、定时调度(九) 观察者模式、定时调度
1.1 观察者模式 观察者设计模式本身是可以利用多线程实现的,不过这样的实现模式会比较麻烦,所以在java中专门提供了与观察者有关的实现类:java.util.Observable、Observer
首先观察Observer接口定义:
pub…... 2022/5/6 12:20:43 最新文章 纯血鸿蒙来画龙!基于HarmonyOS ArkTS来操作SVG图片 大家好,龙年报喜,大地回春,作为程序员,以代码之名,表达对于龙年的祝福。本节将演示如何在基于HarmonyOS ArkTS的Image组件来实现画一条中国龙,祝大家“码”上“鸿”福到!
创建应用
选择空模板…... 2024/3/14 17:18:17 Redis高级-集群结构、企业级解决方案 1.集群cluster
业务发展过程中遇到的峰值瓶颈:
redis提供的服务OPS可以达到10万/秒,当前业务OPS已经达到10万/秒
内存单机容量达到256G,当前业务需求内存容量1T
使用集群的方式可以快速解决上述问题
1.集群概述
集群就是使用网络将若干…... 2024/3/14 17:17:09 Github 2024-03-13 开源项目日报 Top10 根据Github Trendings的统计,今日(2024-03-13统计)共有10个项目上榜。根据开发语言中项目的数量,汇总情况如下: 开发语言项目数量Rust项目2Python项目2非开发语言项目2HTML项目1CSS项目1Dart项目1TypeScript项目1Go项目1JavaScript项目1《Hello 算法》:动画图解、一键运行的…... 2024/3/14 9:20:59 掌握抽象基础之20个必备原则,看完你还不会,你打我 抽象基础之20个必备原则 1. 面向对象编程(OOP)中抽象原则背后的基本思想是什么?2.抽象和封装的区别?3.提供一个现实生活中说明抽象的例子4.在编程语言中如何实现抽象?5.定义抽象类6.提供一个抽象类的真实世界场景7.解释…... 2024/3/14 8:20:56 配置失败还原请勿关闭计算机,电脑开机屏幕上面显示,配置失败还原更改 请勿关闭计算机 开不了机 这个问题怎么办... 解析如下:1、长按电脑电源键直至关机,然后再按一次电源健重启电脑,按F8健进入安全模式2、安全模式下进入Windows系统桌面后,按住“winR”打开运行窗口,输入“services.msc”打开服务设置3、在服务界面,选中…... 2022/11/19 21:17:18 错误使用 reshape要执行 RESHAPE,请勿更改元素数目。 %读入6幅图像(每一幅图像的大小是564*564)
f1 imread(WashingtonDC_Band1_564.tif);
subplot(3,2,1),imshow(f1);
f2 imread(WashingtonDC_Band2_564.tif);
subplot(3,2,2),imshow(f2);
f3 imread(WashingtonDC_Band3_564.tif);
subplot(3,2,3),imsho…... 2022/11/19 21:17:16 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机... win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”问题的解决方法在win7系统关机时如果有升级系统的或者其他需要会直接进入一个 等待界面,在等待界面中我们需要等待操作结束才能关机,虽然这比较麻烦,但是对系统进行配置和升级…... 2022/11/19 21:17:15 台式电脑显示配置100%请勿关闭计算机,“准备配置windows 请勿关闭计算机”的解决方法... 有不少用户在重装Win7系统或更新系统后会遇到“准备配置windows,请勿关闭计算机”的提示,要过很久才能进入系统,有的用户甚至几个小时也无法进入,下面就教大家这个问题的解决方法。第一种方法:我们首先在左下角的“开始…... 2022/11/19 21:17:14 win7 正在配置 请勿关闭计算机,怎么办Win7开机显示正在配置Windows Update请勿关机... 置信有很多用户都跟小编一样遇到过这样的问题,电脑时发现开机屏幕显现“正在配置Windows Update,请勿关机”(如下图所示),而且还需求等大约5分钟才干进入系统。这是怎样回事呢?一切都是正常操作的,为什么开时机呈现“正…... 2022/11/19 21:17:13 准备配置windows 请勿关闭计算机 蓝屏,Win7开机总是出现提示“配置Windows请勿关机”... Win7系统开机启动时总是出现“配置Windows请勿关机”的提示,没过几秒后电脑自动重启,每次开机都这样无法进入系统,此时碰到这种现象的用户就可以使用以下5种方法解决问题。方法一:开机按下F8,在出现的Windows高级启动选…... 2022/11/19 21:17:12 准备windows请勿关闭计算机要多久,windows10系统提示正在准备windows请勿关闭计算机怎么办... 有不少windows10系统用户反映说碰到这样一个情况,就是电脑提示正在准备windows请勿关闭计算机,碰到这样的问题该怎么解决呢,现在小编就给大家分享一下windows10系统提示正在准备windows请勿关闭计算机的具体第一种方法:1、2、依次…... 2022/11/19 21:17:11 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”的解决方法... 今天和大家分享一下win7系统重装了Win7旗舰版系统后,每次关机的时候桌面上都会显示一个“配置Windows Update的界面,提示请勿关闭计算机”,每次停留好几分钟才能正常关机,导致什么情况引起的呢?出现配置Windows Update…... 2022/11/19 21:17:10 电脑桌面一直是清理请关闭计算机,windows7一直卡在清理 请勿关闭计算机-win7清理请勿关机,win7配置更新35%不动... 只能是等着,别无他法。说是卡着如果你看硬盘灯应该在读写。如果从 Win 10 无法正常回滚,只能是考虑备份数据后重装系统了。解决来方案一:管理员运行cmd:net stop WuAuServcd %windir%ren SoftwareDistribution SDoldnet start WuA…... 2022/11/19 21:17:09 计算机配置更新不起,电脑提示“配置Windows Update请勿关闭计算机”怎么办? 原标题:电脑提示“配置Windows Update请勿关闭计算机”怎么办?win7系统中在开机与关闭的时候总是显示“配置windows update请勿关闭计算机”相信有不少朋友都曾遇到过一次两次还能忍但经常遇到就叫人感到心烦了遇到这种问题怎么办呢?一般的方…... 2022/11/19 21:17:08 计算机正在配置无法关机,关机提示 windows7 正在配置windows 请勿关闭计算机 ,然后等了一晚上也没有关掉。现在电脑无法正常关机... 关机提示 windows7 正在配置windows 请勿关闭计算机 ,然后等了一晚上也没有关掉。现在电脑无法正常关机以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!关机提示 windows7 正在配…... 2022/11/19 21:17:05 钉钉提示请勿通过开发者调试模式_钉钉请勿通过开发者调试模式是真的吗好不好用... 钉钉请勿通过开发者调试模式是真的吗好不好用 更新时间:2020-04-20 22:24:19 浏览次数:729次 区域: 南阳 > 卧龙 列举网提醒您:为保障您的权益,请不要提前支付任何费用! 虚拟位置外设器!!轨迹模拟&虚拟位置外设神器 专业用于:钉钉,外勤365,红圈通,企业微信和…... 2022/11/19 21:17:05 配置失败还原请勿关闭计算机怎么办,win7系统出现“配置windows update失败 还原更改 请勿关闭计算机”,长时间没反应,无法进入系统的解决方案... 前几天班里有位学生电脑(windows 7系统)出问题了,具体表现是开机时一直停留在“配置windows update失败 还原更改 请勿关闭计算机”这个界面,长时间没反应,无法进入系统。这个问题原来帮其他同学也解决过,网上搜了不少资料…... 2022/11/19 21:17:04 一个电脑无法关闭计算机你应该怎么办,电脑显示“清理请勿关闭计算机”怎么办?... 本文为你提供了3个有效解决电脑显示“清理请勿关闭计算机”问题的方法,并在最后教给你1种保护系统安全的好方法,一起来看看!电脑出现“清理请勿关闭计算机”在Windows 7(SP1)和Windows Server 2008 R2 SP1中,添加了1个新功能在“磁…... 2022/11/19 21:17:03 请勿关闭计算机还原更改要多久,电脑显示:配置windows更新失败,正在还原更改,请勿关闭计算机怎么办... 许多用户在长期不使用电脑的时候,开启电脑发现电脑显示:配置windows更新失败,正在还原更改,请勿关闭计算机。。.这要怎么办呢?下面小编就带着大家一起看看吧!如果能够正常进入系统,建议您暂时移…... 2022/11/19 21:17:02 还原更改请勿关闭计算机 要多久,配置windows update失败 还原更改 请勿关闭计算机,电脑开机后一直显示以... 配置windows update失败 还原更改 请勿关闭计算机,电脑开机后一直显示以以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!配置windows update失败 还原更改 请勿关闭计算机…... 2022/11/19 21:17:01 电脑配置中请勿关闭计算机怎么办,准备配置windows请勿关闭计算机一直显示怎么办【图解】... 不知道大家有没有遇到过这样的一个问题,就是我们的win7系统在关机的时候,总是喜欢显示“准备配置windows,请勿关机”这样的一个页面,没有什么大碍,但是如果一直等着的话就要两个小时甚至更久都关不了机,非常…... 2022/11/19 21:17:00 正在准备配置请勿关闭计算机,正在准备配置windows请勿关闭计算机时间长了解决教程... 当电脑出现正在准备配置windows请勿关闭计算机时,一般是您正对windows进行升级,但是这个要是长时间没有反应,我们不能再傻等下去了。可能是电脑出了别的问题了,来看看教程的说法。正在准备配置windows请勿关闭计算机时间长了方法一…... 2022/11/19 21:16:59 配置失败还原请勿关闭计算机,配置Windows Update失败,还原更改请勿关闭计算机... 我们使用电脑的过程中有时会遇到这种情况,当我们打开电脑之后,发现一直停留在一个界面:“配置Windows Update失败,还原更改请勿关闭计算机”,等了许久还是无法进入系统。如果我们遇到此类问题应该如何解决呢…... 2022/11/19 21:16:58 如何在iPhone上关闭“请勿打扰” Apple’s “Do Not Disturb While Driving” is a potentially lifesaving iPhone feature, but it doesn’t always turn on automatically at the appropriate time. For example, you might be a passenger in a moving car, but your iPhone may think you’re the one dri…... 2022/11/19 21:16:57 配置失败还原请勿关闭计算机,电脑开机屏幕上面显示,配置失败还原更改 请勿关闭计算机 开不了机 这个问题怎么办... 解析如下:1、长按电脑电源键直至关机,然后再按一次电源健重启电脑,按F8健进入安全模式2、安全模式下进入Windows系统桌面后,按住“winR”打开运行窗口,输入“services.msc”打开服务设置3、在服务界面,选中…... 2022/11/19 21:17:18 错误使用 reshape要执行 RESHAPE,请勿更改元素数目。 %读入6幅图像(每一幅图像的大小是564*564)
f1 imread(WashingtonDC_Band1_564.tif);
subplot(3,2,1),imshow(f1);
f2 imread(WashingtonDC_Band2_564.tif);
subplot(3,2,2),imshow(f2);
f3 imread(WashingtonDC_Band3_564.tif);
subplot(3,2,3),imsho…... 2022/11/19 21:17:16 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机... win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”问题的解决方法在win7系统关机时如果有升级系统的或者其他需要会直接进入一个 等待界面,在等待界面中我们需要等待操作结束才能关机,虽然这比较麻烦,但是对系统进行配置和升级…... 2022/11/19 21:17:15 台式电脑显示配置100%请勿关闭计算机,“准备配置windows 请勿关闭计算机”的解决方法... 有不少用户在重装Win7系统或更新系统后会遇到“准备配置windows,请勿关闭计算机”的提示,要过很久才能进入系统,有的用户甚至几个小时也无法进入,下面就教大家这个问题的解决方法。第一种方法:我们首先在左下角的“开始…... 2022/11/19 21:17:14 win7 正在配置 请勿关闭计算机,怎么办Win7开机显示正在配置Windows Update请勿关机... 置信有很多用户都跟小编一样遇到过这样的问题,电脑时发现开机屏幕显现“正在配置Windows Update,请勿关机”(如下图所示),而且还需求等大约5分钟才干进入系统。这是怎样回事呢?一切都是正常操作的,为什么开时机呈现“正…... 2022/11/19 21:17:13 准备配置windows 请勿关闭计算机 蓝屏,Win7开机总是出现提示“配置Windows请勿关机”... Win7系统开机启动时总是出现“配置Windows请勿关机”的提示,没过几秒后电脑自动重启,每次开机都这样无法进入系统,此时碰到这种现象的用户就可以使用以下5种方法解决问题。方法一:开机按下F8,在出现的Windows高级启动选…... 2022/11/19 21:17:12 准备windows请勿关闭计算机要多久,windows10系统提示正在准备windows请勿关闭计算机怎么办... 有不少windows10系统用户反映说碰到这样一个情况,就是电脑提示正在准备windows请勿关闭计算机,碰到这样的问题该怎么解决呢,现在小编就给大家分享一下windows10系统提示正在准备windows请勿关闭计算机的具体第一种方法:1、2、依次…... 2022/11/19 21:17:11 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”的解决方法... 今天和大家分享一下win7系统重装了Win7旗舰版系统后,每次关机的时候桌面上都会显示一个“配置Windows Update的界面,提示请勿关闭计算机”,每次停留好几分钟才能正常关机,导致什么情况引起的呢?出现配置Windows Update…... 2022/11/19 21:17:10 电脑桌面一直是清理请关闭计算机,windows7一直卡在清理 请勿关闭计算机-win7清理请勿关机,win7配置更新35%不动... 只能是等着,别无他法。说是卡着如果你看硬盘灯应该在读写。如果从 Win 10 无法正常回滚,只能是考虑备份数据后重装系统了。解决来方案一:管理员运行cmd:net stop WuAuServcd %windir%ren SoftwareDistribution SDoldnet start WuA…... 2022/11/19 21:17:09 计算机配置更新不起,电脑提示“配置Windows Update请勿关闭计算机”怎么办? 原标题:电脑提示“配置Windows Update请勿关闭计算机”怎么办?win7系统中在开机与关闭的时候总是显示“配置windows update请勿关闭计算机”相信有不少朋友都曾遇到过一次两次还能忍但经常遇到就叫人感到心烦了遇到这种问题怎么办呢?一般的方…... 2022/11/19 21:17:08 计算机正在配置无法关机,关机提示 windows7 正在配置windows 请勿关闭计算机 ,然后等了一晚上也没有关掉。现在电脑无法正常关机... 关机提示 windows7 正在配置windows 请勿关闭计算机 ,然后等了一晚上也没有关掉。现在电脑无法正常关机以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!关机提示 windows7 正在配…... 2022/11/19 21:17:05 钉钉提示请勿通过开发者调试模式_钉钉请勿通过开发者调试模式是真的吗好不好用... 钉钉请勿通过开发者调试模式是真的吗好不好用 更新时间:2020-04-20 22:24:19 浏览次数:729次 区域: 南阳 > 卧龙 列举网提醒您:为保障您的权益,请不要提前支付任何费用! 虚拟位置外设器!!轨迹模拟&虚拟位置外设神器 专业用于:钉钉,外勤365,红圈通,企业微信和…... 2022/11/19 21:17:05 配置失败还原请勿关闭计算机怎么办,win7系统出现“配置windows update失败 还原更改 请勿关闭计算机”,长时间没反应,无法进入系统的解决方案... 前几天班里有位学生电脑(windows 7系统)出问题了,具体表现是开机时一直停留在“配置windows update失败 还原更改 请勿关闭计算机”这个界面,长时间没反应,无法进入系统。这个问题原来帮其他同学也解决过,网上搜了不少资料…... 2022/11/19 21:17:04 一个电脑无法关闭计算机你应该怎么办,电脑显示“清理请勿关闭计算机”怎么办?... 本文为你提供了3个有效解决电脑显示“清理请勿关闭计算机”问题的方法,并在最后教给你1种保护系统安全的好方法,一起来看看!电脑出现“清理请勿关闭计算机”在Windows 7(SP1)和Windows Server 2008 R2 SP1中,添加了1个新功能在“磁…... 2022/11/19 21:17:03 请勿关闭计算机还原更改要多久,电脑显示:配置windows更新失败,正在还原更改,请勿关闭计算机怎么办... 许多用户在长期不使用电脑的时候,开启电脑发现电脑显示:配置windows更新失败,正在还原更改,请勿关闭计算机。。.这要怎么办呢?下面小编就带着大家一起看看吧!如果能够正常进入系统,建议您暂时移…... 2022/11/19 21:17:02 还原更改请勿关闭计算机 要多久,配置windows update失败 还原更改 请勿关闭计算机,电脑开机后一直显示以... 配置windows update失败 还原更改 请勿关闭计算机,电脑开机后一直显示以以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!配置windows update失败 还原更改 请勿关闭计算机…... 2022/11/19 21:17:01 电脑配置中请勿关闭计算机怎么办,准备配置windows请勿关闭计算机一直显示怎么办【图解】... 不知道大家有没有遇到过这样的一个问题,就是我们的win7系统在关机的时候,总是喜欢显示“准备配置windows,请勿关机”这样的一个页面,没有什么大碍,但是如果一直等着的话就要两个小时甚至更久都关不了机,非常…... 2022/11/19 21:17:00 正在准备配置请勿关闭计算机,正在准备配置windows请勿关闭计算机时间长了解决教程... 当电脑出现正在准备配置windows请勿关闭计算机时,一般是您正对windows进行升级,但是这个要是长时间没有反应,我们不能再傻等下去了。可能是电脑出了别的问题了,来看看教程的说法。正在准备配置windows请勿关闭计算机时间长了方法一…... 2022/11/19 21:16:59 配置失败还原请勿关闭计算机,配置Windows Update失败,还原更改请勿关闭计算机... 我们使用电脑的过程中有时会遇到这种情况,当我们打开电脑之后,发现一直停留在一个界面:“配置Windows Update失败,还原更改请勿关闭计算机”,等了许久还是无法进入系统。如果我们遇到此类问题应该如何解决呢…... 2022/11/19 21:16:58 如何在iPhone上关闭“请勿打扰” Apple’s “Do Not Disturb While Driving” is a potentially lifesaving iPhone feature, but it doesn’t always turn on automatically at the appropriate time. For example, you might be a passenger in a moving car, but your iPhone may think you’re the one dri…... 2022/11/19 21:16:57 Home Powered By betheme
EtherCAT上位机开发:从入门到精通 - 技象科技
EtherCAT上位机开发:从入门到精通 - 技象科技
跳至内容
技象科技有限公司官方网站
技象天猫旗舰店技象天猫旗舰店
技象京东旗舰店技象京东旗舰店
IoT演示平台IoT演示平台
首页
解决方案
菜单切换
TPUNB®
城域物联网
菜单切换
智慧农业
环境监测
智慧停车
局域物联网
菜单切换
智慧楼宇
智慧养老
智慧照明
智慧能源
工业智控物联网
菜单切换
动环监控
终端自组网
菜单切换
自组网
产品终端
菜单切换
芯片产品
模组产品
网关产品
应用产品
云平台
关于我们
菜单切换
荣誉资质
合作伙伴
公司一览
招聘岗位
新闻资讯
菜单切换
公司新闻
下载专区
联系我们
首页
TPUNB®
物联网解决方案
菜单切换
城域物联网
局域物联网
工业智控物联网
终端自组网
物联网产品终端
菜单切换
芯片产品
模组产品
网关产品
物联网云平台
关于我们
菜单切换
荣誉资质
合作伙伴
公司新闻
联系我们
Main Menu
首页
TPUNB®
物联网解决方案
菜单切换
城域物联网
局域物联网
工业智控物联网
终端自组网
物联网产品终端
菜单切换
芯片产品
模组产品
网关产品
物联网云平台
关于我们
菜单切换
荣誉资质
合作伙伴
公司新闻
联系我们
技象科技首页 / 行业百科 / EtherCAT上位机开发:从入门到精通
EtherCAT上位机开发:从入门到精通作者:
技象物联网
/ 行业百科 / 通信系统 / 2023年10月1日 10:48:31 2023年10月1日 10:48:53
EtherCAT是一种高效、可靠的工业以太网技术,它可以改善设备之间的通信性能,使工业自动化系统更加可靠、稳定和高效。在EtherCAT中,上位机开发是一项重要的任务,它可以帮助用户更好地理解和控制设备,从而提高工业自动化系统的可靠性和性能。本文将介绍EtherCAT上位机开发的基础知识,以及如何使用它来提高系统的可靠性和性能。
什么是EtherCAT上位机开发?
EtherCAT上位机开发是指使用EtherCAT协议来开发上位机,以控制和监控工厂网络中的设备。EtherCAT上位机开发的目标是使用户能够更好地控制设备,从而提高工业自动化系统的可靠性和性能。EtherCAT上位机的开发主要包括:硬件选择、软件开发、网络配置等,它们都是开发EtherCAT上位机的重要组成部分。
硬件选择
EtherCAT上位机开发的第一步是硬件选择。首先,用户需要选择一个基于EtherCAT的处理器,它可以帮助用户更好地控制设备。其次,用户还需要选择一个适合的网络卡,以支持EtherCAT协议的通信。最后,用户还需要选择一个适合的I/O卡,以支持设备的控制和监控。
软件开发
软件开发是EtherCAT上位机开发的第二步。用户需要使用一种适合的编程语言来开发上位机软件,以支持设备的控制和监控。常用的编程语言有C、C++、Java等,用户可以根据自己的需求选择合适的语言来开发上位机软件。此外,用户还需要使用一种适合的开发工具,如Eclipse、Visual Studio等,以便更好地开发上位机软件。
网络配置
网络配置是EtherCAT上位机开发的最后一步。用户需要根据自己的需求来配置EtherCAT网络,以实现设备之间的通信。用户需要确定EtherCAT网络的IP地址、子网掩码、网关等,以便实现网络的正常运行。此外,用户还需要配置EtherCAT网络的节点,以实现节点之间的通信。
总结
EtherCAT上位机开发是一项重要的任务,它可以帮助用户更好地控制和监控设备,从而提高工业自动化系统的可靠性和性能。EtherCAT上位机开发的主要步骤包括:硬件选择、软件开发和网络配置。通过正确的硬件选择、软件开发和网络配置,用户可以更好地控制和监控设备,从而提高工业自动化系统的可靠性和性能。
相关阅读:
模数转换器:从入门到精通
CB1241485编程:从入门到精通
UART接收数据:从入门到精通
大数据技术信息通信
原创声明:文章来自技象科技,如欲转载,请注明本文链接: https://www.techphant.cn/blog/44635.html
文章导航
← 前一篇文章后一篇文章 →
相关推荐
9月 14 2023
通信技术与通信设备的区别
10月 22 2023
WinCC通过OPC与第三方通讯
10月 30 20232023年10月30日 21:55:52
无线通信系统为何要采用多址技术?
10月 18 2023
PUTGET通讯
9月 17 2023
通信接口类型有哪些?
10月 3 2023
RPI:IP通讯的基础
联系我们
广州技象科技有限公司聚焦物联网底层关键技术,打造100%自主知识产权的TPUNB物联专网,形成完备的物联感知系统参与各垂直行业的整体解决方案及项目建设。
品牌京东旗舰店
品牌天猫旗舰店
公司招聘岗位
免费技术咨询
站内资讯
USART和UART的主要区别
2023年9月28日 23:53:33
串口RTS和CTS用法
2023年9月17日 17:02:28
数据采集终端的主要功能?
2023年9月6日 13:39:06
配网终端DTU机箱:让您的网络更安全更可靠
2023年9月30日 10:02:28
IoT智能家居设备:改变家庭生活
2023年9月11日 23:58:45
DMR数字对讲机原理
2023年8月15日 03:49:27
MEMS传感器的工作原理,MEMS传感器能否用无线网关组网?
2023年10月11日 19:18:20
Matter协议与Zigbee协议:深入探究
2023年9月18日 21:15:02
RTU与DTU的区别
2023年10月22日 04:39:42
数据透传服务器:提升企业数据交换效率的利器
2023年10月17日 02:44:57
站内标签
zigbee
USB
传感器
DTU
LoRa
RS232
CAN通信
监测仪
通信系统
电子技术
STM32
UART
RS485
智慧农业
Modbus
物联网
串口通信
无线通信
RS422
无线模块
最新资讯
工业数据采集器的作用有哪些
广域网采用什么拓扑结构
芯片封装工艺流程
物联网通信技术有哪些应用场景
ISP芯片和SoC芯片有什么区别
自组网基站有什么功能
MCU芯片什么意思
433无线模块工作原理
产品服务
TPUNB®
城域物联网
局域物联网
工业智控物联网
终端自组网
芯片产品
模组产品
网关产品
技象科技成立于2018年,是中国电子科技集团公司科技成果转化和混合所有制改革的科技企业。
服务条款隐私政策关于我们联系我们
© 2024 广州技象科技有限公司 版权所有 粤ICP备19000791号-2
首页 | 隐私政策 | 关于我们 | 联系我们 | 网站地图
免费咨询组网方案
基于EtherCAT实时通信的电机驱动控制-AET-电子技术应用
基于EtherCAT实时通信的电机驱动控制-AET-电子技术应用
设计应用
基于EtherCAT实时通信的电机驱动控制
作者:林梦云1,2,马文礼1,熊皑3,钱俊璋1,2
发布日期:2017-06-23
来源:2017年微型机与应用第10期
(1.中国科学院光电技术研究所,四川 成都 610209;2.中国科学院大学,北京 100190;3.成都信息工程大学,四川 成都 610225) 摘要:实时工业以太网EtherCAT凭借着高性能、低成本、应用简易等优点在现代控制领域得到了广泛的应用和迅速的发展。为了将EtherCAT快速应用到电机驱动控制系统中,采用IntervalZero公司的KingStar Motion软件,设计了一种基于EtherCAT实时通信的电机驱动控制方案,并搭建相应实验平台。系统采用经典的位置、速度、电流三闭环控制,分别对速度跟踪、位置定点与正弦跟踪进行了实验测试与分析。实验结果表明,该控制系统可靠性高,跟踪精度良好。 关键词:EtherCAT;KingStar Motion软件;电机驱动控制 中图分类号:TP29文献标识码:ADOI: 10.19358/j.issn.1674-7720.2017.10.001 引用格式:林梦云,马文礼,熊皑,等.基于EtherCAT实时通信的电机驱动控制[J].微型机与应用,2017,36(10):1-4.0引言 随着工业自动化不断发展,传统的现场总线技术已经逐渐无法满足控制领域的要求。工业以太网凭借其传输速度快、数据包容量大、传输距离长、性价比高等优点,成为当今工业现场总线技术的重要发展方向[1]。其中由德国BECKHOFF公司开发的实时工业以太网EtherCAT(Ethernet for Control Automation Technology),以高性能、低成本、应用简易等优点在现代控制领域得到了广泛的应用和迅速的发展。 国内外均有EtherCAT应用于高精度电机驱动控制的实例,市面上的伺服驱动器也大多已集成EtherCAT通信接口,可直接配置作为EtherCAT从站。要实现基于EtherCAT的电机驱动系统,可将重点放在EtherCAT主站设计上。考虑到由样本代码开发主站周期较长,故一般多采用商业主站软件进行二次编程开发。其中IntervalZero公司的KingStar Motion软件,以软件形式取代昂贵的运动控制板,并包含相应EtherCAT主站代码,用EtherCAT标准取代专用网络协议和IO硬件,还支持在EtherCAT的基础上使用CANopen,从而可以搭建更低成本的基于EtherCAT的伺服控制系统[2]。 本文结合EtherCAT总线技术、KingStar Motion软件和商业驱动器,设计一种基于EtherCAT通信的电机驱动控制方案,实现对电机的实时驱动控制。1EtherCAT通信原理 EtherCAT系统采用主从式结构,所有通信均由主站发起。利用以太网设备独立处理双向传输(Tx和Rx)的特性,运行在全双工模式下,主站发出的报文可通过Rx线返回主站控制单元。这种通信机制使整个网络中不会出现通信冲突,从而使网络具有很好的确定性。 整个网络通信结构如图1所示。EtherCAT主站发出下行报文,报文包含各个从站所需数据,并经过所有从站。EtherCAT从站在报文经过时,分析寻址到本站数据,根据相应命令从数据帧中抽取或插入数据,然后更新相应的工作计数器(Working Counter, WKC),以标识出该数据帧被从站处理过,并将数据帧转发到下一个相邻的从站。该过程由从站硬件来完成,这使得EtherCAT数据帧经过每个从站的时间极小,延迟约为100~500 ns,保证了网络的高度实时性。遍历完所有从站后,经过从站处理后的数据帧作为上行报文,从最后一个从站返回主站。主站收到上行数据报文后,处理返回的数据,一次通信结束[3]。2电机驱动控制系统设计 2.1系统整体方案设计 基于EtherCAT通信的电机驱动控制系统主要由工控机、EtherCAT总线、伺服驱动器、伺服电机和反馈编码器五部分组成,系统结构如图2所示。 工控机配置为基于PC的EtherCAT主站,周期性地接收从站上传的位置、速度数据,并做相应的运算,然后下发相应参考电流或转矩;伺服驱动器作为EtherCAT从站,接收编码器所采集的电机参数,将相应数据由EtherCAT总线周期性地传给主站,并接收主站下发数据和控制命令,驱动伺服电机。控制系统设计为典型的三闭环(位置环、速度环、电流环)模式,伺服驱动器只做电流闭环运算;速度、位置闭环运算在工控机上完成。 工控机与伺服驱动器构成EtherCAT主从站结构。其中由伺服驱动器作EtherCAT从站,选用宁波Phase公司AxN型驱动器,已集成相应的EtherCAT从站控制器ESC和微处理器芯片,支持CoE(CANopen over EtherCAT)应用层协议,相关配置较简单,可同时实现与主站通信和驱动电机两部分功能。故整个系统的重点和难点在于工控机实现EtherCAT主站和主从站通信软件的设计。 2.2工控机作EtherCAT主站 基于PC的主站,硬件只需普通的网络接口卡NIC(Network Interface Card)即可,主站功能完全由软件来实现。选用Beckhoff公司的多核双网口工控机C6640-0030。工控机实现EtherCAT主站功能主要包括以下几个部分:搭建实时子系统(Real-Time SubSystem, RTSS);EtherCAT主站代码的二次开发;编写电机实时控制程序;人机交互界面设计。系统架构如图3所示。 (1)搭建实时子系统RTSS。首先考虑到PC上为非实时的Windows操作系统,要保证控制系统中EtherCAT通信的实时性,需将其转变为实时操作系统(Realtime Operating System, RTOS)。IntervalZero公司的KingStar Motion中已包含相应的RTX(RealTime Extension)软件,它修改并扩展Windows的硬件抽象层HAL(Hardware Abstraction Layer),实现独立的内核驱动模式,形成与Windows操作系统并列的实时子系统RTSS[4]。通过在Windows和RTX线程之间增加独立的中断间隔,提供独立的RTSS调度器,从而保证系统的实时性。RTX提供了多种动态库与静态库,用于实现相应的实时程序开发,而且支持友好的编程环境。 (2) EtherCAT主站代码的二次开发。主站代码采用KingStar Motion所包含的商业代码来实现,以静态和动态链接库的形式提供相关应用程序接口(Application Programming Interface,API),包括主站参数配置、主从站数据通信等函数,易于二次编程开发;支持CoE应用层协议;提供十分友好的编程环境,程序代码均可在Microsoft Visual Studio中编写。EtherCAT主站运行在RTSS下以保证EtherCAT通信的实时性。 (3)编写电机实时控制程序。基于EtherCAT的实时控制程序主要是利用RTSS下的高精度定时器和高速的周期性EtherCAT通信来实现相应的闭环控制运算。程序通过运行在RTSS下的EtherCAT主站代码与从站通信,实时接收处理从站反馈数据,并向从站发送相应控制命令。 (4)人机交互界面设计。为方便控制系统参数调试,可由MFC编写相应的人机交互界面程序,通过进程间通信与电机实时控制程序进行数据交互,调试设定相关参数,周期性地显示系统相应状态,并保存实验数据。上位机界面程序可运行在非实时的Windows系统下,由共享内存实现与RTSS实时程序之间的数据通信。 2.3主从站通信软件设计 EtherCAT主从站通信采用CoE应用层协议,包括非周期邮箱通信和周期性过程通信。其中邮箱通信为主从站间的非周期通信,用于非实时应用场合,对应着KingStar Motion所提供的SDO函数ReadSdoObject和WriteSdoObject;过程数据通信为主从站间周期性通信,用于实时应用场合。 由于从站为伺服驱动器,要实现对电机的驱动控制,参考CANopen伺服和运动控制行规CiA402,选择驱动器的运行模式为周期性同步扭矩控制模式(Cyclic Synchronous Torque,CST)。该运行模式结构如图4所示。控制主站周期性地向驱动设备发送目标扭矩指令,驱动设备运行扭矩控制。驱动设备向控制主站提供实际位置值、实际速度值和实际扭矩值[1]。 主从站通信开始时,主站会依据网络信息文件 (EtherCAT Network Information, ENI)初始化网络。通过分析其ENI文件可以看到主站对应过程数据对象字典(Process Data Object, PDO)映射配置。其中RxPDO包含的对象字典6071h代表着电机目标转矩值,TxPDO包含的对象字典6064h代表着电机当前位置值,结合CiA402协议可以实现对电机的驱动控制。 在CST模式下,控制主站向驱动器下发目标转矩,伺服电机为永磁同步电机采用id=0矢量控制,q轴电流与转矩成正比,驱动器实现电流闭环运算,并反馈当前位置值,在控制主站实现位置、速度闭环运算。下发目标转矩和反馈当前位置分别对应着KingStar Motion所提供的函数SetServoTorque和GetServoPosition。 综上所述,在Visual Studio 2013下编写EtherCAT主从站通信程序,程序流程如图5所示。实时任务运行在RTSS子系统下,负责实现EtherCAT主站配置、主从数据实时通信、高精度实时定时器与闭环运算;非实时任务是在Windows系统下设计的,主要完成人机交互界面的设计,包括参数设定和状态显示。3实验平台搭建 本文根据设计的系统整体方案,搭建了基于EtherCAT实时通信的电机驱动控制实验平台。主站为Beckhoff公司的多核双网口工控机,操作系统为Windows7,安装IntervalZero公司的KingStar Motion软件,进行相应配置;从站采用的是宁波Phase公司的AxN型驱动器,已集成相关芯片和EtherCAT通信接口,通过网线直接与工控机实时网口相连;所用电机参数,额定扭矩为35 Nm,最大转速1150°/s;编码器采用27位分辨率海德汉绝对式编码器ECA4000,通信接口为Endat2.2,由接口定义配置相应转接线,直接与伺服驱动器相连。4实验测试与分析 为进行相关实验测试,首先配置好AxN型驱动器作EtherCAT从站,由于主站已适配支持该类型驱动器,无需配置从站信息文件,可直接由网线连接工控机。运行所编写的人机界面程序和电机实时控制程序,进行相应闭环实验测试,并保存实验数据以便分析。由于实验条件有限,本文仅对伺服电机在未接负载的情况下进行了测试。 4.1速度闭环测试 给定电机参考速度为1°/s,测得其速度跟踪误差曲线如图6所示。横坐标为时间,单位为秒(s),纵坐标为速度跟踪误差,单位为角秒(″/s)。分析数据可知,系统在1°/s时速度跟踪均方根误差(Root Mean Square, RMS)为8.602 1″/s,最大速度跟踪误差绝对值为30.510 4″/s。可见该系统速度跟踪误差较小,满足跟踪性能要求。 4.2位置闭环测试 位置定点跟踪:给定参考位置定点为1°,测得其位置定点跟踪误差曲线如图7所示。分析数据可知,系统在1°位置定点跟踪误差RMS为0.076 5″,最大位置跟踪误差绝对值为0.272 5″。可见系统位置定点跟踪性能良好。 位置正弦跟踪:给点参考位置正弦为20°sin(0.1t),测得其位置正弦跟踪误差曲线如图8所示。采集两个周期的位置正弦跟踪误差数据,分析可知,系统位置正弦跟踪误差RMS为0.702 1″,最大位置跟踪误差绝对值为1.407 1″。可见该系统位置正弦跟踪误差很小,正弦跟踪性能良好。 5结论 本文设计了一种基于EtherCAT实时通信的电机驱动控制系统。简要介绍了EtherCAT的工作原理;采用KingStar Motion软件将工控机配置为EtherCAT主站,编写主从站实时通信程序和上位机界面程序;根据系统方案搭建相应实验平台,进行了闭环控制实验。结果表明,该控制系统可靠性高,跟踪精度良好,满足相应性能要求。而且该系统结构简单,拓扑灵活,在EtherCAT总线上增加多个伺服驱动器作从站,即可实现多电机的实时驱动控制;系统所有代码均在Visual Studio 2013下编写,维护方便,可以自定义编写人机交互界面和复杂闭环算法。本文由于条件限制,没有对系统在带载或复杂工况下进行分析,也没有研究转到多电机驱动控制时的问题,这些都有待进一步研究。参考文献 [1] 郇极,刘艳强. 工业以太网现场总线EtherCAT驱动程序设计及应用[M].北京:北京航空航天大学出版社,2010. [2] IntervalZero. KingStar product brief simple chinese[EB/OL].(2014-xx-xx)[2016-12-30]http://www.kingstar.com. [3] 任计羽. EtherCAT从站软件的设计与实现[D].成都:中科院光电技术研究所,2014. [4] 田昊,潘清. RTX实时效果测试及应用[J].计算机系统应用,2007,16(2):103106.
原创声明:此内容为AET网站原创,未经授权禁止转载。
EtherCAT
KingStarMotion软件
电机驱动控制
点击查看ChinaAET Qorvo QSPICE知识专区
《电子技术应用》射频微波优秀论文集锦
《电子技术应用》2024年特约专栏征稿
进入了解AET零信任专题
[公开课]基础电子测试测量仪器系列培训
Copyright © 2005-2020 《电子技术应用》版权所有 京ICP备10017138号
EtherCAT、Modbus等伺服通讯,你弄懂了吗? - 哔哩哔哩
rCAT、Modbus等伺服通讯,你弄懂了吗? - 哔哩哔哩 EtherCAT、Modbus等伺服通讯,你弄懂了吗?奥通Aicortech关注专栏/EtherCAT、Modbus等伺服通讯,你弄懂了吗?EtherCAT、Modbus等伺服通讯,你弄懂了吗?
2023年10月28日 10:24--浏览 ·
--喜欢 ·
--评论
奥通Aicortech粉丝:28文章:17
关注在伺服驱动器选型时,大部分萌新根据已有上位机,即可轻松敲定选用哪一种通讯控制方式。但对于通讯控制中的通讯协议是啥?EtherCAT、Modbus等协议之间有啥区别?往往一知半解。现在,我们不妨花上三分钟来弄清楚上面两个问题。1.什么是通讯协议?在第一期加油站《伺服驱动器是如何驱动伺服电机》中,我们了解到要使设备运动起来,需要控制器发出指令,驱动器解析指令并传达给电机去执行。那么,伺服驱动器为什么能解析控制器的指令呢?主要归功于脉冲控制、模拟量控制、通讯控制等控制方式。今天的主角,就是通讯控制里的通讯协议。根据通讯协议的解释:伺服驱动器通讯协议是指在伺服驱动器与上位机之间进行通讯时所采用的协议,该协议规定了通讯的格式、数据帧结构、数据内容、通讯速率等详细信息。也就是说,伺服驱动器和控制器之间能够配合无间,是因为它们共同遵守一个通讯规程(即通讯协议)。就拿我们日常生活中的语言来举例:当控制器和伺服驱动器采用不同通讯协议,双方是互相听不懂对方话语的。反之不然。所以,想要伺服系统发挥出高精度、高稳定效果,选对通讯协议很有必要。否则,耗时长效果甚微,甚至南辕北辙。2.通讯协议之间有哪些区别?由于地形、社会、政治、历史等影响,各地区一般都有自己的语言系统。同样,由于设计目标、通讯介质、传输方式、硬件性能等影响,工业间也形成了各种各样的通讯协议。小贴士几乎每个稍微大点的厂商,都有自己的专用运动控制通讯协议,如:· 三菱SSCNET、CC-Link· 安川MECHATROLINK· 倍福CANOPEN、EtherCat· 施耐德CANopen· 西门子SiMotion· 贝加莱PowerLink· 博世力士乐SERCOS上位机和伺服驱动器之间常用的两种通讯协议类型:点对点通讯和总线通讯。01点对点通讯指每个伺服驱动器都独自连接到上位机,由上位机直接进行通讯控制。02总线通讯指采用串联连接的方式,将多个伺服驱动器连接在同一总线上,由总线控制器进行通讯调度。两种通讯方式各有优缺点,需要根据实际应用场景进行选择。目前,困扰大家比较多的是通讯协议种类太多了,难以分辨各自的应用场景。这里对常用的三个通讯协议进行小区分,供您参考。01 CANopenCANopen是一种常用的总线通信协议,CANopen伺服采用CAN总线连接多个从站设备,实现分布式控制和数据交换。特点及应用:该协议具有数据实时性高、通信速度快、可靠性强等特点,但编程难度较大,适用于大型过程控制系统,例如汽车生产线、航空航天等。发展趋势:目前,CANopen在欧洲已成为最普通的协议,任何一家自动化公司都有CANopen通讯接口,也成了标配。标配并不代表不好,只是说明其操作更简单、性价比更高、应用更普遍。02 EtherCATEtherCAT是一种高速总线通信协议,EtherCAT伺服采用EtherCAT总线连接多个从站设备,实现快速、稳定的数据传输和控制响应。特点及应用:该协议具有高速、高效、稳定等优点,能够支持高速数据交换和复杂控制算法,适用于大型高速控制系统,例如自动化机床、印刷机等。发展趋势:作为实时以太网通讯协议,EtherCAT凭借其强大的性能,成为近年来发展最快的伺服驱动器通讯协议。03 ModbusModbus协议是一种应用层协议,是面向开放的、非专用的通信协议,适用于多品牌设备之间的通信。特点及应用:它可以通过串口、以太网等多种物理层方式进行通信,具有通讯速率不高,但通信简单、方便、易于掌握,适合小型控制系统。例如流量计、温度控制器等。发展趋势:Modbus是现在应用最广泛的一种基于RS485串口通讯的伺服驱动器通讯协议,一般被视为行业内通用标准协议。Modbus、CANOpen、EtherCAT是应用广泛的伺服驱动器通讯协议,掌握它们的特点和应用场景是工业控制系统设计人员必备的技能。作为萌新,了解通讯协议的区别,有助于挑选出更适合实际工况的设备,从而降低生产成本,提高生产效率。如您还有其他伺服或运动控制小疑问,欢迎后台留言告诉我们,不定期给大家提供解答合集。本文禁止转载或摘编
控制器
伺服系统
通讯协议
分享到:
投诉或建议评论----
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
点赞
踩
1343
收藏
觉得还不错?
一键收藏
知道了
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
452
EoE:将以太网帧插入到 EtherCAT 协议中。EtherCAT协议中的以太网帧通过非循环邮箱通信进行传输。
Ethercat概念学习
weixin_43914278的博客
04-10
1581
最近我们要基于Ethercat技术进行开发,首先需要了解其基本原理,github上看到了有相关实现,一起来看看吧。
EtherCAT.rar
08-12
搜集的EtherCAT官方相关资料,学习EtherCAT参考资料, 协议说明等等
ethercat学习笔记1
08-08
代码的笔记放到第二章。1.8 松下的从站 PDO映射。6040h控制字这个控制字是用来控制伺服电机上使能的。6041状态字这个状态字读取伺服电机的状态。控制模式
EtherCAT介绍
人人都懂物联网
03-11
1万+
EtherCAT(以太网控制自动化技术)是一个以以太网为基础的开放架构的现场总线系统,EtherCAT名称中的CAT为Control Automation Technology(控制自动化技术)首字母的缩写。最初由德国倍福自动化有限公司(Beckhoff Automation GmbH) 研发。EtherCAT为系统的实时性能和拓扑的灵活性树立了新的标准,同时,它还符合甚至降低了现场总线的使用成本。
EtherCAT简介
weixin_41883890的博客
06-30
2394
EtherCAT(用于控制自动化技术的以太网)是Beckhoff(倍福)在2003年开发的实时以太网网络。它基于CANOPEN协议和以太网,但是与Internet通信或网络通信不同之处在于,它专门针对工业自动化控制进行了优化。这些标准由EtherCAT技术小组(简称ETG)定义和维护。使用OSI网络模型,以太网和EtherCAT依赖于相同的物理和数据链路层。除此之外,由于针对不同任务进行了优化,因此这两个网络在设计上有所不同。例如,以太网被设计为通过许多不同的节点发送大量数据。它能够与数十亿个单独的地址之间
【EtherCAT】一、入门基础
06-09
5258
EtherCAT(Ethernet Control Automation Technology)是一种高性能实时以太网通信协议,用于在工业自动化领域中进行实时控制和通信。它是由德国Beckhoff自动化公司在2003年开发的,并被国际电工委员会(IEC)标准化为IEC 61158标准。EtherCAT的设计目标是实现极低的通信延迟和高带宽的数据传输,以满足高速控制和数据采集的需求。它通过一种特殊的主从架构实现,其中一个主站(Master)负责协调整个网络,而从站(Slave)则负责提供输入输出功能。
工控协议解读之EtherCAT协议硬核分析(转自知乎“智能制造之家“)
qq_43599327的博客
09-07
7035
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基础介绍,运行原理与常用协议说明
EtherCAT学习之路——概述
chenweizhen1991的博客
03-13
1万+
首发于知乎
最近在做基于EtherCAT的项目,看了一些网上的博客,感觉写的都比较松散。虽然,自己也是才开始学习,希望能把这段时间学到的东西总结一下。
1.EtherCAT简介
EtherCAT是由德国BECKHOFF自动化公司于2003年提出的实时工业以太网技术。它具有高速和高数据有效率的特点,支持多种设备连接拓扑结构。其从站节点使用专用的控制芯片,主站使用标准的以太网控制器。
Et...
EtherCAT 应用层协议的部分理解(一)
热门推荐
王三三
06-22
2万+
不对EtherCAT进行介绍,只谈谈对EtherCAT应用层协议的简单理解1、COE (CANopen over EtherCAT) 一种基于且完全遵循CANopen协议的通信协议 用途:
1、用于驱动PDO对象,实现PDO对象间数据通信
2、用于驱动SDO对象,实现SDO对象间的数据传输 分类:
1、周期性过程数据通信 – 驱动PDO
[工业互联-23]:EtherCat从站 - EtherCAT协议栈与工作原理, 软硬件解决方案
文火冰糖(王文兵)的博客
07-10
2159
在EtherCAT(以太CAT)网络中,从站(Slave)是指通过EtherCAT总线连接到主站(Master)的外部设备或模块。从站通常是实时控制系统中的执行器(写)、传感器(读)、驱动器(写)等外部设备。从站在EtherCAT网络中起到了连接外部设备和主站之间的桥梁作用。它们接收主站发送的命令和控制信息,根据指令执行相应的操作,并将执行结果和实时数据通过EtherCAT总线返回给主站。每个从站在EtherCAT网络中都有一个唯一的站地址。
EtherCat 从站控制芯片
weixin_46024116的博客
01-05
973
EtherCat 从站控制芯片简称ESC,是实现EtherCat数据链路层协议的专用芯片,用作处理EtherCat数据帧,并为从站控制装置提供数据接口,简单说就是一般我们的MCU不支持EtherCat(当然也有支持的,支持的就不需要ESC),ESC就是个转换器,一般和MCU选择串行(SPI)的方式来通信。ESC存储空间:前面讲到ESC具有64K字节的DPRAM,前4K(0x0000–0x0FFF)字节的寄存器空间。
1.ethercat基本概念
weilan0818的博客
05-24
607
EtherCAT(以太网控制自动化技术)是一个开放框架,以以太网为基础的现场总线系统。是实时以太网的一种。实时以太网是常规以太网技术的延伸,以便满足工业控制领域的实时性数据通信要求。实时以太网有powerlink,profinet,sercosⅢ,ethercat等等。基于TCP/IP的实现:Modbus/TCP, Ethernet/IP基于以太网的实现:powerlink, profinet RT修改以太网的实现:EtherCAT, Sercos3, profinet IRT。
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
CSDN认证博客专家
CSDN认证企业博客
码龄16年
暂无认证
142
原创
1万+
周排名
3万+
总排名
68万+
访问
等级
6905
积分
1510
粉丝
898
获赞
150
评论
4870
收藏
私信
关注
热门文章
EtherCAT (学习笔记)
67258
Xenomai (学习笔记)
21769
Device Tree 详解
19630
Unwind 栈回溯详解
18367
Linux bpf 1.1、BPF内核实现
18328
分类专栏
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控制器就能出现
大家在看
基于的校园招聘系统(源码+开题)
Win11右键不好用?教你右键秒变Win10
静态时序分析:SDC约束命令set_output_delay详解
890
知名Web3 风险投资公机构Hack VC 四位合伙人将亲临hack.summit()2024亚洲区块链开发者大会
C#学习汇总
54
最新文章
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、付费专栏及课程。
余额充值
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
点赞
踩
1343
收藏
觉得还不错?
一键收藏
知道了
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
452
EoE:将以太网帧插入到 EtherCAT 协议中。EtherCAT协议中的以太网帧通过非循环邮箱通信进行传输。
Ethercat概念学习
weixin_43914278的博客
04-10
1581
最近我们要基于Ethercat技术进行开发,首先需要了解其基本原理,github上看到了有相关实现,一起来看看吧。
EtherCAT.rar
08-12
搜集的EtherCAT官方相关资料,学习EtherCAT参考资料, 协议说明等等
ethercat学习笔记1
08-08
代码的笔记放到第二章。1.8 松下的从站 PDO映射。6040h控制字这个控制字是用来控制伺服电机上使能的。6041状态字这个状态字读取伺服电机的状态。控制模式
EtherCAT介绍
人人都懂物联网
03-11
1万+
EtherCAT(以太网控制自动化技术)是一个以以太网为基础的开放架构的现场总线系统,EtherCAT名称中的CAT为Control Automation Technology(控制自动化技术)首字母的缩写。最初由德国倍福自动化有限公司(Beckhoff Automation GmbH) 研发。EtherCAT为系统的实时性能和拓扑的灵活性树立了新的标准,同时,它还符合甚至降低了现场总线的使用成本。
EtherCAT简介
weixin_41883890的博客
06-30
2394
EtherCAT(用于控制自动化技术的以太网)是Beckhoff(倍福)在2003年开发的实时以太网网络。它基于CANOPEN协议和以太网,但是与Internet通信或网络通信不同之处在于,它专门针对工业自动化控制进行了优化。这些标准由EtherCAT技术小组(简称ETG)定义和维护。使用OSI网络模型,以太网和EtherCAT依赖于相同的物理和数据链路层。除此之外,由于针对不同任务进行了优化,因此这两个网络在设计上有所不同。例如,以太网被设计为通过许多不同的节点发送大量数据。它能够与数十亿个单独的地址之间
【EtherCAT】一、入门基础
06-09
5258
EtherCAT(Ethernet Control Automation Technology)是一种高性能实时以太网通信协议,用于在工业自动化领域中进行实时控制和通信。它是由德国Beckhoff自动化公司在2003年开发的,并被国际电工委员会(IEC)标准化为IEC 61158标准。EtherCAT的设计目标是实现极低的通信延迟和高带宽的数据传输,以满足高速控制和数据采集的需求。它通过一种特殊的主从架构实现,其中一个主站(Master)负责协调整个网络,而从站(Slave)则负责提供输入输出功能。
工控协议解读之EtherCAT协议硬核分析(转自知乎“智能制造之家“)
qq_43599327的博客
09-07
7035
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基础介绍,运行原理与常用协议说明
EtherCAT学习之路——概述
chenweizhen1991的博客
03-13
1万+
首发于知乎
最近在做基于EtherCAT的项目,看了一些网上的博客,感觉写的都比较松散。虽然,自己也是才开始学习,希望能把这段时间学到的东西总结一下。
1.EtherCAT简介
EtherCAT是由德国BECKHOFF自动化公司于2003年提出的实时工业以太网技术。它具有高速和高数据有效率的特点,支持多种设备连接拓扑结构。其从站节点使用专用的控制芯片,主站使用标准的以太网控制器。
Et...
EtherCAT 应用层协议的部分理解(一)
热门推荐
王三三
06-22
2万+
不对EtherCAT进行介绍,只谈谈对EtherCAT应用层协议的简单理解1、COE (CANopen over EtherCAT) 一种基于且完全遵循CANopen协议的通信协议 用途:
1、用于驱动PDO对象,实现PDO对象间数据通信
2、用于驱动SDO对象,实现SDO对象间的数据传输 分类:
1、周期性过程数据通信 – 驱动PDO
[工业互联-23]:EtherCat从站 - EtherCAT协议栈与工作原理, 软硬件解决方案
文火冰糖(王文兵)的博客
07-10
2159
在EtherCAT(以太CAT)网络中,从站(Slave)是指通过EtherCAT总线连接到主站(Master)的外部设备或模块。从站通常是实时控制系统中的执行器(写)、传感器(读)、驱动器(写)等外部设备。从站在EtherCAT网络中起到了连接外部设备和主站之间的桥梁作用。它们接收主站发送的命令和控制信息,根据指令执行相应的操作,并将执行结果和实时数据通过EtherCAT总线返回给主站。每个从站在EtherCAT网络中都有一个唯一的站地址。
EtherCat 从站控制芯片
weixin_46024116的博客
01-05
973
EtherCat 从站控制芯片简称ESC,是实现EtherCat数据链路层协议的专用芯片,用作处理EtherCat数据帧,并为从站控制装置提供数据接口,简单说就是一般我们的MCU不支持EtherCat(当然也有支持的,支持的就不需要ESC),ESC就是个转换器,一般和MCU选择串行(SPI)的方式来通信。ESC存储空间:前面讲到ESC具有64K字节的DPRAM,前4K(0x0000–0x0FFF)字节的寄存器空间。
1.ethercat基本概念
weilan0818的博客
05-24
607
EtherCAT(以太网控制自动化技术)是一个开放框架,以以太网为基础的现场总线系统。是实时以太网的一种。实时以太网是常规以太网技术的延伸,以便满足工业控制领域的实时性数据通信要求。实时以太网有powerlink,profinet,sercosⅢ,ethercat等等。基于TCP/IP的实现:Modbus/TCP, Ethernet/IP基于以太网的实现:powerlink, profinet RT修改以太网的实现:EtherCAT, Sercos3, profinet IRT。
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
CSDN认证博客专家
CSDN认证企业博客
码龄16年
暂无认证
142
原创
1万+
周排名
3万+
总排名
68万+
访问
等级
6905
积分
1510
粉丝
898
获赞
150
评论
4870
收藏
私信
关注
热门文章
EtherCAT (学习笔记)
67258
Xenomai (学习笔记)
21769
Device Tree 详解
19630
Unwind 栈回溯详解
18367
Linux bpf 1.1、BPF内核实现
18328
分类专栏
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、付费专栏及课程。
余额充值
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
点赞
踩
1343
收藏
觉得还不错?
一键收藏
知道了
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总结
02-14
ethercat总结,主要是Ethercat基础介绍,运行原理与常用协议说明
EtherCAT中文介绍
10-22
实时以太网EtherCAT中文介绍资料,英文不好的可以参考一下。EtherCAT(以太网控制自动化技术)是一个开放架构,以以太网为基础的现场总线系统,其名称的CAT为控制自动化技术(Control Automation Technology)字首的缩写。EtherCAT是确定性的工业以太网,最早是由德国的Beckhoff公司研发。
23 条评论
您还未登录,请先
登录
后发表或查看评论
EtherCAT Slave Stack Code (SSC)
05-28
BECKHOFF(倍福)官方提供EtherCAT从站协议栈代码生成工具
版本:SSC V5.12(Tool 1.4.2)
EtherCAT EoE
最新发布
weilan0818的博客
01-16
452
EoE:将以太网帧插入到 EtherCAT 协议中。EtherCAT协议中的以太网帧通过非循环邮箱通信进行传输。
Ethercat概念学习
weixin_43914278的博客
04-10
1581
最近我们要基于Ethercat技术进行开发,首先需要了解其基本原理,github上看到了有相关实现,一起来看看吧。
EtherCAT.rar
08-12
搜集的EtherCAT官方相关资料,学习EtherCAT参考资料, 协议说明等等
ethercat学习笔记1
08-08
代码的笔记放到第二章。1.8 松下的从站 PDO映射。6040h控制字这个控制字是用来控制伺服电机上使能的。6041状态字这个状态字读取伺服电机的状态。控制模式
EtherCAT介绍
热门推荐
人人都懂物联网
03-11
1万+
EtherCAT(以太网控制自动化技术)是一个以以太网为基础的开放架构的现场总线系统,EtherCAT名称中的CAT为Control Automation Technology(控制自动化技术)首字母的缩写。最初由德国倍福自动化有限公司(Beckhoff Automation GmbH) 研发。EtherCAT为系统的实时性能和拓扑的灵活性树立了新的标准,同时,它还符合甚至降低了现场总线的使用成本。
EtherCAT简介
weixin_41883890的博客
06-30
2394
EtherCAT(用于控制自动化技术的以太网)是Beckhoff(倍福)在2003年开发的实时以太网网络。它基于CANOPEN协议和以太网,但是与Internet通信或网络通信不同之处在于,它专门针对工业自动化控制进行了优化。这些标准由EtherCAT技术小组(简称ETG)定义和维护。使用OSI网络模型,以太网和EtherCAT依赖于相同的物理和数据链路层。除此之外,由于针对不同任务进行了优化,因此这两个网络在设计上有所不同。例如,以太网被设计为通过许多不同的节点发送大量数据。它能够与数十亿个单独的地址之间
【EtherCAT】一、入门基础
06-09
5258
EtherCAT(Ethernet Control Automation Technology)是一种高性能实时以太网通信协议,用于在工业自动化领域中进行实时控制和通信。它是由德国Beckhoff自动化公司在2003年开发的,并被国际电工委员会(IEC)标准化为IEC 61158标准。EtherCAT的设计目标是实现极低的通信延迟和高带宽的数据传输,以满足高速控制和数据采集的需求。它通过一种特殊的主从架构实现,其中一个主站(Master)负责协调整个网络,而从站(Slave)则负责提供输入输出功能。
工控协议解读之EtherCAT协议硬核分析(转自知乎“智能制造之家“)
qq_43599327的博客
09-07
7035
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示例文档
03-30
EtherCAT示例文档
EtherCAT主站配置过程分析
01-15
固高主站+一个固高GTHD伺服驱动Ethercat通讯建立全过程分析
ethercat技术
11-04
ethercat技术
EtherCAT SSC V5.12
03-29
Ethercat从机协议栈代码工具5.12版,工具tool版本:1.4.2。
ETHERCAT总线控制文件
08-10
ETHERCAT总线控制文件,让你快速学习总线!
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
CSDN认证博客专家
CSDN认证企业博客
码龄16年
暂无认证
142
原创
1万+
周排名
3万+
总排名
68万+
访问
等级
6905
积分
1510
粉丝
898
获赞
150
评论
4870
收藏
私信
关注
热门文章
EtherCAT (学习笔记)
67258
Xenomai (学习笔记)
21769
Device Tree 详解
19630
Unwind 栈回溯详解
18367
Linux bpf 1.1、BPF内核实现
18328
分类专栏
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、付费专栏及课程。
余额充值
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
点赞
踩
1343
收藏
觉得还不错?
一键收藏
知道了
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
452
EoE:将以太网帧插入到 EtherCAT 协议中。EtherCAT协议中的以太网帧通过非循环邮箱通信进行传输。
Ethercat概念学习
weixin_43914278的博客
04-10
1581
最近我们要基于Ethercat技术进行开发,首先需要了解其基本原理,github上看到了有相关实现,一起来看看吧。
EtherCAT.rar
08-12
搜集的EtherCAT官方相关资料,学习EtherCAT参考资料, 协议说明等等
ethercat学习笔记1
08-08
代码的笔记放到第二章。1.8 松下的从站 PDO映射。6040h控制字这个控制字是用来控制伺服电机上使能的。6041状态字这个状态字读取伺服电机的状态。控制模式
EtherCAT介绍
人人都懂物联网
03-11
1万+
EtherCAT(以太网控制自动化技术)是一个以以太网为基础的开放架构的现场总线系统,EtherCAT名称中的CAT为Control Automation Technology(控制自动化技术)首字母的缩写。最初由德国倍福自动化有限公司(Beckhoff Automation GmbH) 研发。EtherCAT为系统的实时性能和拓扑的灵活性树立了新的标准,同时,它还符合甚至降低了现场总线的使用成本。
EtherCAT简介
weixin_41883890的博客
06-30
2394
EtherCAT(用于控制自动化技术的以太网)是Beckhoff(倍福)在2003年开发的实时以太网网络。它基于CANOPEN协议和以太网,但是与Internet通信或网络通信不同之处在于,它专门针对工业自动化控制进行了优化。这些标准由EtherCAT技术小组(简称ETG)定义和维护。使用OSI网络模型,以太网和EtherCAT依赖于相同的物理和数据链路层。除此之外,由于针对不同任务进行了优化,因此这两个网络在设计上有所不同。例如,以太网被设计为通过许多不同的节点发送大量数据。它能够与数十亿个单独的地址之间
【EtherCAT】一、入门基础
06-09
5258
EtherCAT(Ethernet Control Automation Technology)是一种高性能实时以太网通信协议,用于在工业自动化领域中进行实时控制和通信。它是由德国Beckhoff自动化公司在2003年开发的,并被国际电工委员会(IEC)标准化为IEC 61158标准。EtherCAT的设计目标是实现极低的通信延迟和高带宽的数据传输,以满足高速控制和数据采集的需求。它通过一种特殊的主从架构实现,其中一个主站(Master)负责协调整个网络,而从站(Slave)则负责提供输入输出功能。
工控协议解读之EtherCAT协议硬核分析(转自知乎“智能制造之家“)
qq_43599327的博客
09-07
7035
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基础介绍,运行原理与常用协议说明
EtherCAT学习之路——概述
chenweizhen1991的博客
03-13
1万+
首发于知乎
最近在做基于EtherCAT的项目,看了一些网上的博客,感觉写的都比较松散。虽然,自己也是才开始学习,希望能把这段时间学到的东西总结一下。
1.EtherCAT简介
EtherCAT是由德国BECKHOFF自动化公司于2003年提出的实时工业以太网技术。它具有高速和高数据有效率的特点,支持多种设备连接拓扑结构。其从站节点使用专用的控制芯片,主站使用标准的以太网控制器。
Et...
EtherCAT 应用层协议的部分理解(一)
热门推荐
王三三
06-22
2万+
不对EtherCAT进行介绍,只谈谈对EtherCAT应用层协议的简单理解1、COE (CANopen over EtherCAT) 一种基于且完全遵循CANopen协议的通信协议 用途:
1、用于驱动PDO对象,实现PDO对象间数据通信
2、用于驱动SDO对象,实现SDO对象间的数据传输 分类:
1、周期性过程数据通信 – 驱动PDO
[工业互联-23]:EtherCat从站 - EtherCAT协议栈与工作原理, 软硬件解决方案
文火冰糖(王文兵)的博客
07-10
2159
在EtherCAT(以太CAT)网络中,从站(Slave)是指通过EtherCAT总线连接到主站(Master)的外部设备或模块。从站通常是实时控制系统中的执行器(写)、传感器(读)、驱动器(写)等外部设备。从站在EtherCAT网络中起到了连接外部设备和主站之间的桥梁作用。它们接收主站发送的命令和控制信息,根据指令执行相应的操作,并将执行结果和实时数据通过EtherCAT总线返回给主站。每个从站在EtherCAT网络中都有一个唯一的站地址。
EtherCat 从站控制芯片
weixin_46024116的博客
01-05
973
EtherCat 从站控制芯片简称ESC,是实现EtherCat数据链路层协议的专用芯片,用作处理EtherCat数据帧,并为从站控制装置提供数据接口,简单说就是一般我们的MCU不支持EtherCat(当然也有支持的,支持的就不需要ESC),ESC就是个转换器,一般和MCU选择串行(SPI)的方式来通信。ESC存储空间:前面讲到ESC具有64K字节的DPRAM,前4K(0x0000–0x0FFF)字节的寄存器空间。
1.ethercat基本概念
weilan0818的博客
05-24
607
EtherCAT(以太网控制自动化技术)是一个开放框架,以以太网为基础的现场总线系统。是实时以太网的一种。实时以太网是常规以太网技术的延伸,以便满足工业控制领域的实时性数据通信要求。实时以太网有powerlink,profinet,sercosⅢ,ethercat等等。基于TCP/IP的实现:Modbus/TCP, Ethernet/IP基于以太网的实现:powerlink, profinet RT修改以太网的实现:EtherCAT, Sercos3, profinet IRT。
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
CSDN认证博客专家
CSDN认证企业博客
码龄16年
暂无认证
142
原创
1万+
周排名
3万+
总排名
68万+
访问
等级
6905
积分
1510
粉丝
898
获赞
150
评论
4870
收藏
私信
关注
热门文章
EtherCAT (学习笔记)
67258
Xenomai (学习笔记)
21769
Device Tree 详解
19630
Unwind 栈回溯详解
18367
Linux bpf 1.1、BPF内核实现
18328
分类专栏
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、付费专栏及课程。
余额充值