EtherCAT诊断-分布时钟同步诊断

我们在做EtherCAT主从通讯测试时,比较容易在DC配置出现错误,特别是使用到从站DC模式时,有时会出现代码为0x1A的“同步错误”,有时即使没报错误,伺服从站运行过程中也会出现电机轴的抖动,什么原因呢?这里以KPA EtherCAT和三洋伺服测试举例,通过采集SYNC0与SM2信号之间相位关系波形图,做出诊断结论。

测试前,需要认识两个概念:1、从站同步模式2、同步错误

一、从站同步模式

简单理解就是从站以某个信号作为同步事件(中断信号)来更新数据,EtherCAT支持一下各种同步模式,这里以常用的1,2,3,4举例说明。

  1. Free Run
  2. Synchronous to SM2/3 (with Shift)
  3. DC Mode 1 (Sync0 Event)
  4. DC Mode 1 (Sync0 Event with Shift)
  5. DC Mode 2 (Sync0, Sync1, with Shift)
  6. DC Mode 3 (SM2 Event, Sync0)
  7. DC Mode 4 (SM2 Event, Sync0, Sync1)
  8. DC Mode with subordinated cycles

二、同步错误

在应用层,每个从站实时监视从ESC收到的同步SYNC信号。假如检测到同步错误,从站会进入safe-op状态并产生对应的应用层状态码,主站可以通过非周期命令读取这一状态码

可能引起同步错误的原因:
1.主站周期时间/同步信号的错误配置
2.不再收到ESC发送的SYNC信号
3.主站发送数据帧时存在较大的抖动,导致数据帧在从站收到SYNC信号之后才到达从站
在这里插入图片描述
所以必须严格保证SYNC0必须在SM2信号之后。

三、概念解释

3.1 COE下0x1C32对象字典对应的几个概念
在这里插入图片描述
在这里插入图片描述
其中也标注了数据从SM拷贝到从站MCU内存的时间和硬件处理延时时间分别为62.5us和30us。
在这里插入图片描述
3.2.FreeRUN模式
自由运行模式通过应用程序控制器的本地计时器中断启动。,本地周期从通信周期或主站周期独立出来单独运行
在这里插入图片描述
3.3 SM2事件
由于从站的处理与SM2事件周期相对应,因此从站的处理保持与SM2事件同步。运行时使用本地周期计时间直到收到SM2事件。
在这里插入图片描述
3.4.DC模式
SYNC0事件收信后也开始从站的本地周期。 在下个SYNC0中断发生前,过程数据帧必须被从站完全接收
在这里插入图片描述

四、开始测试

测试说明:主站周期1ms,分别测试三洋伺服的SYNC0引脚和SM2中断引脚的信号,绿色信号为SYNC0,黄色信号为SM2
在这里插入图片描述
测试一
Sync shift time:0μs, Shift time:0μs,不设置传播延时补偿,不设置SYNC0启动延时
在这里插入图片描述
测试结果:示波器测试IRQ信号与SYNC0的信号时间差基本上为11μs
在这里插入图片描述
测试结果:这时会出现异常的同步错误
在这里插入图片描述
测试二、
Sync shift time:0μs, Shift time:250μs 不设置传播延时补偿,设置SYNC0延时250us启动
在这里插入图片描述
测试结果:IRQ与Sync0之间的时间差为228–238μs左右,而且SYNC0明显在SM2之后,正常
在这里插入图片描述
测试三
Sync shift time:60μs,Shift time:250μs,设置传播延时补偿60us(补偿从站响应时间),设置SYNC0延时250us启动
在这里插入图片描述
测试结果:IRQ与Sync0之间的时间差为282–300μs左右,相对测试二,往后延时60us左右,正常;
在这里插入图片描述
总结:
1.保证SYNC0信号在SM2信号之后;
2.主站的抖动(SM2抖动)会导致从站伺服的抖动,一般如果主站max circle time jitter大于周期的20%-30% ,会出现问题;
3.通过设置Shift time(SYNC0延时启动)时间可以改变SM2与SYNC0的间隔时间,给从站进行数据拷贝留出更多的时间,保证数据全部更新;
4.每个厂家的伺服,shift time的设置大小不同,需咨询具体硬件厂商,一般是周期的四分之一,或者以自己实际测试为主,只要保证可以完整更新数据,不会出现来不及更新数据即可;

发布了5 篇原创文章 · 获赞 0 · 访问量 514

猜你喜欢

转载自blog.csdn.net/hongke_Tech/article/details/103816273