预览加载中,请您耐心等待几秒...
1/5
2/5
3/5
4/5
5/5

在线预览结束,喜欢就下载吧,查找使用更方便

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

EtherCAT主从同步方法1.时钟漂移问题如图所示主站和从站通过EtherCAT总线连接设主站的晶振频率为f0从站1晶振频率f1从站2晶振频率f2假如在3个设备中同时设置一个定时长度为T的周期性定时器由于晶振频率的微小差异不可能使得3个设备同时完成定时器触发。由于是周期性的这微小的触发时间不一致会累积起来直到出现质变例如在相同时间段主站出发了N次从站1触发了M次从站2触发了K次。以伺服驱动器为例:1ms进行8次位置采样Sync0位置采样Eva.T1CNT1ms进行9次位置采样Sync0位置采样Eva.T1CNTSync0信号为1ms(过程数据交换周期也设为1ms)为周期的总线同步型号Eva.T1CNT为从站DSP的控制周期计数器(0Max0为一个周期设定为125us)。由于Sync0信号跟随的是主站的系统时钟Eva计数使用的是从站的晶振因此它们所认为的时间长度T必然会有差异。理论上来说Eva的8个周期125us*8=1ms应该和Sync0的产生周期1ms一致但实际情况由上图可知它们并不一致。这种差异会累积起来导致Eva的控制周期相对于Sync0产生漂移。假设伺服驱动器中位置采样都在Eva.T1CNT=Max时进行正常情况下1个Sync0周期会进行8次位置采样而由于漂移的问题可能会产生9次位置采样。这种情况对于主站来说是不可见的主站依旧会认为获得的位置反馈为8次采样的值。当对位置反馈值做微分获得速度值时就可以看到速度会在9次位置采样时产生跳变。同样的位置漂移对于位置环的运算也是致命的由于位置指令是以增量形式下发的当不能保证每个Sync0周期能有固定次数的Eva周期时观察位置环输出的速度值也是跳变的。2.解决方案EtherCAT总线解决了主站系统时间和各个从站Sync0信号的同步问题即总线能够保证各个从站的Sync0信号能够根据主站的系统时间同时周期性的产生。现在需要一套机制保证控制芯片的控制周期能和Sync0保证同步周期性产生。2.1Sync0/Sync1生成EtherCAT通讯芯片支持Sync0和Sync1两路同步信号其中Sync0为同步源信号Sync1的生成始终跟随Sync0。当主站对从站通讯芯片的0x0981写入0x07后就可以激活这两个信号输出。Sync0和Sync1的关系可以通过如下4个参数来设置:Cycle0:Sync0周期单位nsShift0:从激活DC时钟到产生第一个Sync0所延迟的时间单位nsCycle1:从Sync0产生到Sync1产生所延迟的时间单位nsSync1产生后延迟的时间由下一次Sync0产生时开始计算(Linux主站)。Shift1:Sync1相对于它之前的那个Sync0信号的偏移单位ns(仅在TwinCAT的配置文件中使用Linux主站无效)。注:若想在使用Linux主站时控制Sync1相对于Sync0的偏移Shift1且Sync1的周期为Sync0的N倍则可以做如下设置:Cycle1=Cycle0*(N-1)+Shift1Cycle00x0981=0x07Sync0