IgH详解十、EtherCAT DC(3)IgH实现

IgH详解十、EtherCAT DC(3)IgH实现IgHDC 计算 IgH 在主站启动后 等待从站状态机扫描完从站后 就开始计算传输延时

大家好,欢迎来到IT知识分享网。

IgH DC计算

IgH在主站启动后,等待从站状态机扫描完从站后,就开始计算传输延时。

IgH详解十、EtherCAT DC(3)IgH实现

    ec_master_attach_slave_configs  //主站绑定从站配置信息

IgH详解十、EtherCAT DC(3)IgH实现

        通过前面的分析我们知道,需要先选择一个从站作为参考时钟,根据总线的拓扑结构来计算各从站的传输延时。

ec_master_find_dc_ref_clock    // 没有指定参考从站就把第一个带DC的从站作为参考时钟

同时初始化了时钟漂移补偿用的数据报文

ec_datagram_fpwr(&master->ref_sync_datagram, ref ? ref->station_address : 0xffff, 0x0910, 4); //把主站时间写到从站

 ec_datagram_frmw(&master->sync_datagram, ref ? ref->station_address : 0xffff, 0x0910, 4);  //漂移补偿

 ec_datagram_fprd(&master->sync64_datagram, ref ? ref->station_address : 0xffff, 0x0910, 8); //读取从站时间

IgH详解十、EtherCAT DC(3)IgH实现

        计算拓扑结构就是计算出该从站上一个从站接的是谁,下一个从站接的谁,这样就能计算出传输延时。

IgH详解十、EtherCAT DC(3)IgH实现IgH详解十、EtherCAT DC(3)IgH实现         计算出每个从站的传输延迟,可以看到IgH没有计算t_diff,这部分需要漂移补偿来补偿

IgH详解十、EtherCAT DC(3)IgH实现

        计算每个从站相对于参考时钟的传输延时

IgH详解十、EtherCAT DC(3)IgH实现

        当启动主站进入配置流程后,计算各从站的系统时间偏移

IgH详解十、EtherCAT DC(3)IgH实现

        可以看到IgH根据主站时间来依次计算从站时间偏移,这里可能会因为主站的抖动对偏移计算产生一些偏差,最好改成参考从站的时间来计算偏移,从站的转发抖动非常的小

IgH详解十、EtherCAT DC(3)IgH实现

写入时间偏移和传输延时,还需要用户周期任务周期的广播参考从站时钟

IgH详解十、EtherCAT DC(3)IgH实现

从站需要根据当前状态进行配置,跃迁到op状态

从站启动DC流程

配置从站工作周期

IgH详解十、EtherCAT DC(3)IgH实现

IgH详解十、EtherCAT DC(3)IgH实现

        判断当前DC时间是否稳定,等待时间5000ms,如果5S后还不稳定,就继续进行下面工作,不等了,当使用主站作为参考时钟,经常会看到打印

Slave did not sync after 5000 ms

就表明从站同步比较慢

IgH详解十、EtherCAT DC(3)IgH实现

设置从站周期信号触发时间,可以看到启动时间加上了shift_time

        Shift_time保证了主站发送报文时间和从站触发sync信号不在同一时间,从站同一时间不能处理两件事情,就可能会导致报文没有接收。

IgH详解十、EtherCAT DC(3)IgH实现

从图中可以看到,Shift Time和从站的处理周期数据的时间有关系。

正确的Shift Time 不是唯一的, 它可以在主站周期的整个区间里的进行选择。

不能随便设置,周期越短,Shift Time设置的就要越精确。

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/119117.html

(0)
上一篇 2025-11-07 21:10
下一篇 2025-11-07 21:20

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信