在进行EtherCAT主从通讯测试时,比较容易在DC配置出现错误,特别是使用到从站DC模式时,有时会报同步错误,有时即使没报错误伺服从站运行过程中也会出现电机轴的抖动。引起同步错误其中一个原因就是主站发送数据帧时间存在较大的抖动,导致数据帧在从站收到SYNC信号之后才到达从站。因此,需要对EtherCAT主站的时钟进行偏移补偿。
1、DC时钟的工作原理
DC时钟可以使所有EtherCAT设备使用相同的系统时间,从而控制各设备任务的同步执行。DC时钟机制使所有的从站都同步于一个参考时钟。一般将主站连接的第一个具有DC时钟功能的从站作为参考时钟,以参考时钟同步其他设备和主站的从时钟。具体原理可参考《工业以太网现场总线EtherCAT驱动程序设计及应用》书籍。
从站间的同步一般通过ESC的DC单元来保证,也即SYNC0(输出同步)和SYNC1信号(输入同步),这些信号同步精度可以达到很高,一般远远低于1us的,实践中可以做到几个ns。SYNC0/1频率一般与EtherCAT通讯周期相同,例如EtherCAT通讯周期1ms,SYNC脉冲频率通常也设置为1kHz。
2、主站时钟
EtherCAT主站也具有计时功能, 称为主站时钟。通常情况下,EtherCAT主站协议栈通过在其控制硬件中的硬件计时器来循环发送输出数据。例如对于STM32主站而言,一般采用定时器中断来控制。如果系统通讯周期为1ms,那么定时器中断周期应设置为1ms。由于STM32定时器来源于系统时钟,而系统时钟又是基于外部晶振PLL得到,会存在时间偏移。
对于从站而言,接收到主站通讯帧后会产生SM中断信号,这个SM信号与主站的通讯周期直接相关,而从站的SYNC0/1信号是从站ESC产生的。由于主站定时器时钟与从站ESC的SYNC0/1存在偏差,因此SM信号和SYNC0/1信号会存在时间偏差,且这个偏差会随时间偏移。当从站先收到SYNC信号,数据帧才到达从站后,就会引起同步错误。
3、主站时钟偏移补偿
为保证主站发送数据周期与系统DC周期保持一致,需要调整主站器的发送周期,实时进行时钟偏移补偿,从而减少系统抖动。当主站数据帧发送周期大于DC同步信号周期时,减少主站定时器的Period值;当主站数据帧发送周期小于DC同步信号周期时,增大主站定时器的Period值。具体方法可以:周期性计算EtherCAT主站时间和DC时钟主站时间之间的差异,基于PI控制算法计算主站定时器的补偿值,然后修改定时器的Period。
EtherCAT开发学习板:https://shop461235811.taobao.com