EtherCAT主从同步方法

上传人:pu****.1 文档编号:568507757 上传时间:2024-07-25 格式:PDF 页数:5 大小:335.13KB
返回 下载 相关 举报
EtherCAT主从同步方法_第1页
第1页 / 共5页
EtherCAT主从同步方法_第2页
第2页 / 共5页
EtherCAT主从同步方法_第3页
第3页 / 共5页
EtherCAT主从同步方法_第4页
第4页 / 共5页
EtherCAT主从同步方法_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
资源描述

《EtherCAT主从同步方法》由会员分享,可在线阅读,更多相关《EtherCAT主从同步方法(5页珍藏版)》请在金锄头文库上搜索。

1、EtherCATEtherCAT主从同步方法主从同步方法1. 1. 时钟漂移问题时钟漂移问题如图所示,主站和从站通过 EtherCAT总线连接,设主站的晶振频率为 f0,从站 1 晶振频率f1,从站2 晶振频率 f2,假如在3 个设备中同时设置一个定时长度为T 的周期性定时器,由于晶振频率的微小差异, 不可能使得 3 个设备同时完成定时器触发。 由于是周期性的,这微小的触发时间不一致会累积起来,直到出现质变例如在相同时间段,主站出发了 N 次,从站 1 触发了 M 次,从站 2 触发了 K 次。以伺服驱动器为例:1ms进行8次位置采样Sync0位置采样Eva.T1CNT1ms进行9次位置采样S

2、ync0位置采样Eva.T1CNTSync0 信号为 1ms(过程数据交换周期也设为1ms)为周期的总线同步型号,Eva.T1CNT为从站 DSP 的控制周期计数器(0Max0 为一个周期,设定为 125us) 。由于 Sync0 信号跟随的是主站的系统时钟,Eva计数使用的是从站的晶振,因此它们所认为的时间长度T 必然会有差异。理论上来说,Eva的 8 个周期,125us*8=1ms 应该和 Sync0 的产生周期 1ms 一致,但实际情况由上图可知,它们并不一致。这种差异会累积起来,导致Eva 的控制周期相对于Sync0 产生漂移。假设伺服驱动器中位置采样都在Eva.T1CNT=Max时进

3、行, 正常情况下 1 个 Sync0 周期会进行8 次位置采样,而由于漂移的问题,可能会产生9 次位置采样。这种情况对于主站来说是不可见的, 主站依旧会认为获得的位置反馈为8 次采样的值。 当对位置反馈值做微分获得速度值时,就可以看到速度会在9 次位置采样时产生跳变。同样的,位置漂移对于位置环的运算也是致命的, 由于位置指令是以增量形式下发的, 当不能保证每个 Sync0 周期能有固定次数的 Eva周期时,观察位置环输出的速度值也是跳变的。2. 2. 解决方案解决方案EtherCAT总线解决了主站系统时间和各个从站Sync0 信号的同步问题, 即总线能够保证各个从站的 Sync0 信号能够根据

4、主站的系统时间同时周期性的产生。 现在需要一套机制保证控制芯片的控制周期能和 Sync0 保证同步周期性产生。2.1Sync0/Sync12.1Sync0/Sync1 生成生成EtherCAT 通讯芯片支持 Sync0 和 Sync1 两路同步信号,其中 Sync0 为同步源信号,Sync1 的生成始终跟随 Sync0。当主站对从站通讯芯片的0x0981 写入 0x07 后,就可以激活这两个信号输出。Sync0和 Sync1的关系可以通过如下4 个参数来设置:Cycle0 :Sync0周期,单位 nsShift0 :从激活 DC 时钟到产生第一个 Sync0所延迟的时间,单位 nsCycle1

5、 :从 Sync0产生到 Sync1产生所延迟的时间,单位 ns,Sync1产生后,延迟的时间由下一次 Sync0产生时开始计算(Linux主站) 。Shift1 :Sync1相对于它之前的那个 Sync0信号的偏移,单位 ns (仅在 TwinCAT的配置文件中使用,Linux主站无效) 。注: 若想在使用 Linux主站时控制 Sync1相对于 Sync0的偏移 Shift1 , 且 Sync1的周期为 Sync0的 N 倍,则可以做如下设置:Cycle1=Cycle0*(N-1)+Shift1Cycle00x0981=0x07Sync0Cycle1Shift0Sync1Shift1以伺服

6、的情况配置如下:Cycle0=125000Shift0=0Cycle1=Cycle0*(8-1)+50000=925000Shift1=0这样将会产生 125us 为周期的 Sync0 和周期为 1ms 的 Sync1,Sync1 滞后 Sync0 时间为 50us。Sync0 作为同步 Eva周期使用,Sync1 作为过程数据交换触发使用。由于 Sync0 和 Sync1 保持了 8 倍频率关系, 因此只要 Eva 周期能和 Sync0 保持一一对应的同步就能够使从站控制周期和过程数据交换同步以及不同从站之间的控制周期同步。2.22.2 从站控制周期和从站控制周期和 Sync0Sync0 同

7、步同步为了保证同步, 需要实时调整从站控制周期, 以伺服驱动器为例, 就是要实时调整 Eva.T1PR。Eva.T1CNT 是以 DSP 的 150M 频率进行计数的计数器,其计数周期规律为 0Max0,当Eva.T1PR=9375时,093750 所需时间为 125us。此处 125us 时间是以从站晶振频率来考虑时的时间,与 Sync0 的 125us 周期不同(以主站系统时钟来考虑) 。实际测试可知,Sync0 的 125us 周期时间对应 Eva.T1PR约等于 9373,且Sync0 的周期维持的非常稳定,其周期抖动可以基本忽略。为此可以设计如下控制策略控制Eva.T1PR:Sync

8、0ShiftT(n-1)T(n)T(n+1)Eva.T1CNTt(n-1)0t(n)0t(n+1)0定义 T 为 Eva.T1PR的值,t 为 Sync0 信号产生时的 Eva.T1CNT值,Shift 为 Sync0 和 Eva 周期中断(在 Eva.T1CNT=0时产生)期望的偏差时间(应当为一个固定值) 。=Shift t(n)0 Shift 9375T(n1)937510 0T(n1)937510 0T(n1)T(n) 010的调节偏差足够 Eva 周期中断快速收敛到指定的Shift 偏差处,9375 为预设的控制周期(125us) 。2.32.3 程序实现程序实现在伺服实现中,将 E

9、therCAT通讯芯片的 Sync0 直接引入 XINT1 管脚,Sync1 直接引入 XINT2管脚。0x0981=0x07Sync0Eva.T1CNTb1Eva.T1CNT自由运行a同步阶段1b2c同步阶段2d同步阶段3自由运行:Eva 按照从站晶振频率定义的125us 周期运行。同步阶段 1:通过检测 Sync0 信号来停止 Eva 的周期计数和中断产生。同步阶段 2:在合适的时刻重新启动 Eva 周期计数,并开始调节 Eva 周期和使之向 Sync0 同步。同步阶段 3:在经过不断的调整后,Eva周期和 Sync0 保持同步,并拥有稳定的Shift 偏移关系。a)当 EtherCAT总

10、线从 PREOPOP 并激活 DC 时钟后,产生了第一个Sync0 信号。b1)DSP 程序在本控制周期检测到Sync0 第一次产生,遂将Eva.T1CNT停止计数,等待后续同步时机。b2)DSP 程序未在本控制周期检测到Sync0 第一次产生,但是在接下来的一个控制周期中检测到 Sync0 第二次产生,遂将 Eva.T1CNT停止计数,等待后续同步时机。c)第 3 个 Sync0 信号产生,立刻将 Eva.T1CNT=0,并开始 Eva.T1CNT计数,初始的 Eva.T1PR可使用 9375。使用章节 2.2 描述的方法对 Eva.T1PR每个 Eva周期都进行调整。d)经过几十个控制周期

11、的调整,同步完成,只要Sync0 信号存在,就一直进行调整保持。注:1)在同步阶段 2,可能会出现 Eva 周期和 Sync0 信号不一一对应的情况。2)同步阶段 2 的时间长度取决于 Shift 的设置,Shift 越大,所用时间越长。3)Shift 的值不易设置的太小或太大,避免调节时 Eva.T1CNT做递增操作(章节 2.2 的控制策略只适用于 Eva.T1CNT做递减操作的情况) ,一般来说最好设在100Shift9275。4)Sync0 信号引入 XINT1 中断时触发的中断回调函数被响应的时间和 DSP 程序当前执行指令的状态有关, 其本身的响应时间会有小围浮动, 因此单次调节时的补偿值不应该太小,避免因为干扰造成的调节失效,10是一个比较合理的设置。

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 建筑/环境 > 施工组织

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号