由于项目需要使用到了EL1258模块以及分布时钟DC的功能,网上相关资料demo较少,因此将自己学习过程以及收集到的资料分享如下,有可能有有误之处,希望指正。
目录
一、同步模式定义
关于从站应用相对主站循环的时间关系,EtherCAT定义了3种主要的同步模式(synchronizationmodes):
- FreeRun(非同步):从站的过程数据处理,由内部事件触发,与主站循环无关。
- SM-Synchronous:从站的过程数据处理,由接收到携带过程数据的周期性数据帧时所产生的硬件中断触发.
- DC-Synchronous:从站的过程数据处理,由基于分布时钟和系统时间的硬件中断触发。
- 支持DC功能的从站,其同步模式在TwinCAT中的“DC”页面进行配置(每个从站的同步模式互相独立):
二、时间定义
参考EtherCAT分布式时钟同步过程的理解_distributed clock-CSDN博客
- Local system time 即本地系统时间:每个DC从站的本地时钟经过补偿和同步之后,都产生本地系统时间,分布时钟同步机制就是使各个从站的本地系统时间保持一致。参考时钟与本地系统时钟对应。
- 参考时钟和从时钟:EtherCAT协议规定主站连接的第一个具有分布时钟功能的从站的时钟作为参考时钟,其他它从站的时钟称为从时钟。参考时钟用于同步其它从时钟和主站时钟。第一个从站的时钟将被用来作为参考时钟。
- 本地时钟、时钟初始偏移和时钟漂移 :每个DC从站都有本地时钟,它独立运行,使用本地的时钟信号计时。从站上电后就开始运行,每个从站的本地时钟之间都有差值(初始值不同),所以与参考时钟的差值称为时钟初始偏移量。运行过程中,由于各个从站时钟源(晶振)的差异,所以本地时钟还存在时钟漂移的现象(类似于钟表累积误差),因此需要对时钟漂移补偿。
- 传输延时:数据帧在从站之间传输会产生一定的延时,包括内部处理延时延时(虽然EtherCAT信号由硬件实时处理,也存在纳秒级的延时) 和物理连接的延时(信号传输延时),所以需要进行补偿和修正,保证从站时钟精度。
- 主站时钟:主站也具有计时功能。在初始化阶段,主站按照系统时间格式发送主站时间给参考时钟从站(第一个DC从站)。