赞
踩
(Distributed Clocks) 分布式时钟
分布式时钟相当于每个节点都有一个时钟,在同一时刻,触发所有节点做给定的动作,要达到同一时刻触发就要求大家的时钟保持一致,也就是同步。
比如每个人都有手机,只要手机接入网络,就会进行时间同步,获得一致的时间,比如早上9点上班,网购的整点秒杀,如果我们的手机时间不同步,可能就上班迟到了,点开网页秒杀已经结束了。
比如买了两个打印机,左边的1万,右边的9.9包邮,现在要在纸上打印一条斜线,左边的完全同步,X,Y同时动画了一条斜线,右边的没有同步,X轴收到移动信号先动了,过了1S,Y轴也收到信号开始动了,X轴发现到坐标点了,就停止了,Y轴发现还没到坐标点就继续运动等到了坐标点停止运动。左边按照要求画了直的斜线,右边有明显的错位。
从图中可以看到,虽然都达到了最终的点位,但是中间走过的路径却不一样,用机器人加工作业也是一样,同步性越好做出来的东西就更符合设计规划。
下面介绍EtherCAT DC
EtherCAT主站上接了如下设备,一般会选择第一个带DC功能的从站作为参考时钟,利于参考时钟的往后传播(后面介绍)。
引起时钟不同步的有:
比如第一个从站为参考时钟,第一个从站收到报文的时间是 9:00:00.000,000,000,第二个从站收到报文的时间9:00:00.000,000,500,第一个从站处理转发报文到第二个从站中间产生了500ns的延迟,当总线上设备很多的时候就会累积比较大的延时
两个从站不是同时启动的,第一个从站启动了一个小时后,第二个从站才上电,就会出现1h的时间偏移
每个从站的晶振的振动频率会有差异,比如第一个从站1S 振 1000000010,第二个从站1S振999999990,这样1S就会产生20ns的差异,累积起来会是一个很大的差异。
DC同步就是要解决上述存在的问题。
先计算出传输延时,再计算出时间偏移,就能得到一个基本准确的时间了,再通过周期性的补偿漂移,就能得到很准确的同步时钟。
EtherCAT理论上时钟同步可以控制在100ns内。
DC计算
EtherCAT DC时钟计算方法
延迟时间写入
主站的时钟偏移
偏移时间写入
上述的计算还不是特别的精确,不精确的部分可以通过漂移补偿来消除
漂移补偿需要参考时钟的从站每个周期广播自己的时间,从站根据时间来进行微调
ARMW/FRMW 0x910寄存器
两个命令功能是一样的就是参考时钟从站把自己的时间读出来写入包文,其他从站从报文中读出时间写入从站(只是寻址方式不一样),这也就是为什么选第一个从站作为参考时钟,选择其他从站会带来前面从站同步的问题。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。