EtherCAT(扒自百度百科)
EtherCAT(以太网控制自动化技术)是一个开放架构,以以太网为基础的现场总线系统,其名称的CAT为控制自动化技术(Control Automation Technology)字首的缩写。EtherCAT是确定性的工业以太网,最早是由德国的Beckhoff公司研发。
自动化对通讯一般会要求较短的资料更新时间(或称为周期时间)、资料同步时的通讯抖动量低,而且硬件的成本要低,EtherCAT开发的目的就是让以太网可以运用在自动化应用中。
机能原理
一般工业通讯的网络各节点传送的资料长度不长,多半都比以太网帧的最小长度要小。而每个节点每次更新资料都要送出一个帧,造成带宽的低利用率,网络的整体性能也随之下降。EtherCAT利用一种称为“飞速传输”(processing on the fly)的技术改善以上的问题。 [1]
在EtherCAT网络中,当资料帧通过EtherCAT节点时,节点会复制资料,再传送到下一个节点,同时识别对应此节点的资料,则会进行对应的处理,若节点需要送出资料,也会在传送到下一个节点的资料中插入要送出的资料。每个节点接收及传送资料的时间少于1微秒,一般而言只用一个帧的资料就可以供所有的网络上的节点传送及接收资料。
通讯协定
EtherCAT通讯协定是针对程序资料而进行优化,利用标准的IEEE 802.3以太网帧传递,Ethertype为0x88a4。其资料顺序和网站上设备的实体顺序无关,定址顺序也没有限制。主站可以和从站进行广播及多播等通讯。若需要IP路由,EtherCAT通讯协定可以放入UDP/IP资料包中。
性能
EtherCAT的周期时间短,是因从站的微处理器不需处理以太网的封包。所有程序资料都是由从站控制器的硬件来处理。此特性再配合EtherCAT的机能原理,使得EtherCAT可以成为高性能的分散式I/O系统:包含一千个分散式数位输入/输出的程序资料交换只需30us,相当于在100Mbit/s的以太网传输125个字节的资料。读写一百个伺服轴的系统可以以10kHz的速率更新,一般的更新速率约为1–30kHz,但也可以使用较低的更新速率,以避免太频繁的直接内存存取影响主站个人电脑的运作。
拓扑
EtherCAT使用全双工的以太网实体层,从站可能有二个或二个以上的埠。若设备没侦测到其下游有其他设备,从站的控制器会自动关闭对应的埠并回传以太网帧。由于上述的特性,EtherCAT几乎支援所有的网络拓扑,包括总线式、树状或是星状,现场总线常用的总线式拓扑也可以用在以太网中。
EtherCAT的拓扑可以用网络线、分枝或是短线(stub)作任意的组合。有三个或三个以上以太网接口的设备就可以当作分接器,不一定一定要用网络交换器。 由于使用100BASE-TX的以太网物理层,二个设备之间的距离可以到100米,一个EtherCAT区段的网络最多可以有65535个设备。若EtherCAT网络是使用环状拓扑(主站设备需要有二个通讯埠),则此网络还有缆线冗余的机能。
同步
为了系统的同步,EtherCAT协定中有提供分散式时钟机制,即使通讯循环周期有抖动,时钟的抖动远小于1µs,大约接近IEEE 1588精密时间协议的标准。因此EtherCAT的主站设备不需针对时钟使用特殊的硬件,可以用软件实现在任何标准的的以太网MAC,即使没有特殊的通讯协处理器也没有关系。
标准建立分散式时钟的程序是由主站送出一特定位址的广播讯息给所有从站来启动。若使用环状拓扑,所有从站会在收到讯息时闩锁内部时钟,当讯息回来时会再闩锁内部时钟一次。主站会读所有从站闩锁的值,计算各个从站的延迟。为了消除抖动的影响及求得平均值,主站会尽可能的多次进行上述的程序。所有的从站延迟会依各从站在从站环状拓扑的位置来计算,并记录在一个偏移寄存器中。最后主站送出一个读写系统时钟的广播讯息,会使第一个从站的时钟为参考时钟,其他从站的内部时钟会调整到和第一个从站相同。
为了在初始化后保持时钟的同步,主站或从站需定期的再送出广播讯号,以计算各个从站内部时钟的速度差异,若有需要时,从站需要可以调整自身时钟的速度,或是有其他调整时钟的机制。
系统时钟是一个64位元的计时器,计数内容是从2000年1月1日0点0分开始所经过的时间,单位是纳秒(ns)。
设备行规
设备行规(device profile)描述应用需要的参数及设备的机能特性,包括可能依设备种类而不同的状态机。总线技术中已有许多可靠的设备行规,例如I/O设备、驱动器或阀等设备。EtherCAT同时支援CANopen设备行规及Sercos驱动器行规。从CANopen或Sercos移植到EtherCAT时,在应用观点看到的内容是一様的,也可方便使用者或设备制造商的转换。
机能安全
EtherCAT有一个加强的协定版本,称为Safety over EtherCAT,可以在同一个网络上进行机能安全相关的通讯和一般的控制通讯。此安全通讯是以EtherCAT的应用层为基础,不会影响底层的通讯协定。Safety over EtherCAT有通过IEC 61508的认证,符合安全完整性等级(SIL)3的要求。自2005年起已有使用Safety over EtherCAT的产品上市。
实现
EtherCAT主站可以用软件,在标准的以太网媒体接入控制器中实现。许多供应商有提供在不同操作系统下的程式码,也有许多开源软件或共享软件。EtherCAT从站需要特殊的EtherCAT从站控制器,才能实现飞速传输(processing on the fly)的技术。EtherCAT从站控制器可以用FPGA来实现,且已有现成的代码,此控制器也可以用ASIC来实现。
EtherCAT(扒自百度百科)的更多相关文章
- python爬虫—爬取百度百科数据
爬虫框架:开发平台 centos6.7 根据慕课网爬虫教程编写代码 片区百度百科url,标题,内容 分为4个模块:html_downloader.py 下载器 html_outputer.py 爬取数 ...
- [Python爬虫] Selenium获取百度百科旅游景点的InfoBox消息盒
前面我讲述过如何通过BeautifulSoup获取维基百科的消息盒,同样可以通过Spider获取网站内容,最近学习了Selenium+Phantomjs后,准备利用它们获取百度百科的旅游景点消息盒(I ...
- Python3爬取百度百科(配合PHP)
用PHP写了一个网页,可以获取百度百科词条.源代码已分享至github:https://github.com/1049451037/xiaobaike/tree/master 那么通过Python来爬 ...
- redis百度百科和维基百科知识总结:
1. 百度百科知识总结: Redis是一个开源的使用ANSI C语言编写.支持网络.可基于内存亦可持久化的日志型.Key-Value数据库,并提供多种语言的API.从2010年3月15日起,Redis ...
- Apache Mesos_百度百科
Apache Mesos_百度百科 Apache Mesos
- JEFF BANKS_百度百科
JEFF BANKS_百度百科 JEFF BANKS
- RCMTM _百度百科
RCMTM _百度百科 RCMTM
- c31 rotc_百度百科
c31 rotc_百度百科 c31 rotc
- bda_百度百科
bda_百度百科 bda
随机推荐
- [osg][osgEarth][原]基于OE自定义自由飞行漫游器(第二版)
在初级版上,进行新的漫游方式调整 头文件: #pragma once //南水之源 20180101 #include <osgGA/CameraManipulator> #include ...
- anusplina 4.36版本使用提示 说明
1),必须要注意的是,你生成的dat文件中,第一列必须是气象站点编号:第二列必须是经度数值,而且是投影坐标下,以 米 为单位:第三列必须是纬度了:第四列必须是海拔了:之后就是你自己的数据,比如平均温度 ...
- @Value注解分类解析
1.1.1 @Value注解 @Value的作用是通过注解将常量.配置文件中的值.其他bean的属性值注入到变量中,作为变量的初始值. (1)常量注入 @Value(" ...
- RedHat/CentOS根目录扩容
下面以redhat为例,介绍如何扩容系统根目录,CentOS也是一样的. 1. 登录到系统中,查看硬盘情况. /dev/sdb就是增加的硬盘. [root@test ~]# fdisk -l 2. 操 ...
- JavaScript中的prototype和__proto__细致解析
最近在学js,体会了一点点它的灵活性.对于初学者的我,总是被它的灵活感到晕头转向,最近发现了一点东西想与大家分享. JavaScript中的prototype和_proto_: 我们先了解一点js中的 ...
- SPOJ 刷题记录
按点赞数降序 297 二分 #include<bits/stdc++.h> using namespace std; #define fi first #define se second ...
- Asp.net core 学习笔记 (Excel 读写)
EPPlus 已经支持 .net core 了 https://www.nuget.org/packages/EPPlus https://github.com/JanKallman/EPPlus 写 ...
- L1 正则为什么会使参数偏向稀疏
2018-12-09 22:18:43 假设费用函数 L 与某个参数 x 的关系如图所示: 则最优的 x 在绿点处,x 非零. 现在施加 L2 regularization,新的费用函数()如图中蓝线 ...
- selenium+Page Objects(第三话)
写好BasePage基类和页面元素定位后,就可以针对每个页面写业务逻辑了 1.编写每个页面page类,拿其中一个页面为例 fourth_page.py(名字我随便取的,实际中希望能取一些有意义的名字) ...
- (转+整理)C#中使用GUID
GUID(全局统一标识符)是指在一台机器上生成的数字,它保证对在同一时空中的所有机器都是唯一的.通常平台会提供生成GUID的API.生成算法很有意思,用到了以太网卡地址.纳秒级时间.芯片ID码和许多可 ...