[发明专利]嵌入式实时EtherCAT主站的实时性优化方法有效

专利信息
申请号: 201711476755.9 申请日: 2017-12-29
公开(公告)号: CN109991887B 公开(公告)日: 2021-08-31
发明(设计)人: 韩文泽;李享;刘德阳;李博;葛军;姜雪 申请(专利权)人: 沈阳高精数控智能技术股份有限公司
主分类号: G05B19/042 分类号: G05B19/042
代理公司: 沈阳科苑专利商标代理有限公司 21002 代理人: 王倩
地址: 110168 辽宁*** 国省代码: 辽宁;21
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 嵌入式 实时 ethercat 优化 方法
【说明书】:

发明涉及嵌入式实时EtherCAT主站实时性优化方法,主站将数据帧发送给参考时钟从站,并通过返回帧接收到参考时钟从站的时钟值,主站根据该时钟值确定发帧时间,并发送下一帧。本发明通过合理估算算法,解决了软件处理时间以及软件操作硬件时间的不确定性问题。具体为将两个不确定并且难以测量的时间消耗,用上一周期能够准确测量的时间值进行替换,用于计算定时器给定值,从而改善主站实时性。

技术领域

本发明涉及数控技术领域,尤其涉及构建嵌入式实时EtherCAT主站的技术领域,具体涉及一种基于嵌入式实时EtherCAT主站的实时性解决方法。

背景技术

随着工业控制领域对速度、实时性等要求的逐渐提高,传统的现场总线已经难以满足需求,多种实时工业以太网现场总线已经投入使用并得到了日益的重视。其中由德国Beckhoff自动化公司提出的EtherCAT技术,完全符合以太网标准,支持多种拓扑结构,高速、高效率、实时性好,较其他的实时工业以太网现场总线协议有明显的优势,已被广泛应用于工业控制领域。

EtherCAT利用分布时钟机制,对系统实时性方面具有很高的要求。目前很多同步方案中主站选用了实时操作系统,由于主站延时函数误差较大,产生了较严重的丢包现象。本文重点研究了分布时钟技术中嵌入式主站的实现方案,优点在于主站实时性能好、精度高。

发明内容

本发明针对嵌入式软件执行时间的不确定性,提出了一种切实可行的时间消耗估算方法用于优化嵌入式EtherCAT主站系统的实时性。

本发明解决其技术问题所采用的技术方案是:嵌入式实时EtherCAT主站的实时性解决方法,包括以下步骤:

主站将数据帧发送给参考时钟从站,并在设定时间内接收参考时钟从站的时钟值,主站根据该时钟值确定发帧时间,并发送下一帧。

主站根据发帧时间确定定时器的值,在定时器设定Tremain后触发中断,进入下一次定时器事件。

所述定时器的值通过以下步骤得到:

1)主站首先计算参考时钟从站本次与下次接收返回数据帧时间的间隔:

Tref_cycle=τ′SYNC0ref_local-TSYNC0_shift

τrel_local为每周期读回的参考时钟从站的时钟值,TSYNC0_shift为帧到达时间与SYNC0事件的相位差,τ′SYNC0为下次SYNC0事件发生时刻;

2)主站定时器的剩余时间为:

Tremain=Tref_cycle-(t1+t2′)=Tref_cycle-T″master

其中,t1为参考从站接收数据帧到主站设定定时器计数器的时间间隔,t2′为下一次本地定时器事件开始到参考从站接收下一帧数据帧的时间间隔,T″master为上一次定时器中断开始到重新设定定时器的时间间隔;

3)设定的主站定时器计数器的值为:

τ=Tmax-Tremain

=Tmax-Tref_cycle+T″master

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于沈阳高精数控智能技术股份有限公司,未经沈阳高精数控智能技术股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/201711476755.9/2.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top