...总线型伺服与脉冲型伺服的同步方法[发明专利]

(19)中华人民共和国国家知识产权局
(12)发明专利申请
(10)申请公布号 (43)申请公布日 (21)申请号 202011546399.5
(22)申请日 2020.12.23
(71)申请人 上海新时达电气股份有限公司
地址 201801 上海市嘉定区思义路1560号
申请人 深圳众为兴技术股份有限公司
(72)发明人 王科 李延法 钟前进 郝佳佳 
黎永杨 崔永强 胡向明 吴芸 
赵璐瑶 
(74)专利代理机构 上海华祺知识产权代理事务
所(普通合伙) 31247
代理人 刘卫宇
(51)Int.Cl.
H04L  7/00(2006.01)
H04L  12/40(2006.01)
(54)发明名称基于CoDeSys控制器的EtherCAT总线型伺服脉冲型伺服的同步方法(57)摘要一种基于CoDeSys控制器的EtherCAT总线型伺服与脉冲型伺服的同步方法,包括:将第一时钟域中的周期任务的当前周期开始时的第二时钟域时间与上一周期开始时的第二时钟域时间做差,得到差值SystemTimeD
iff;所述第二时钟域为周期中断所在的时钟域;根据第二时钟域中的周期中断的周期值与差值SystemTimeDiff之间的偏差对第一时钟域中的周期任务的周期进行动态调节,以使第一时钟域中的周期任务的周期值与第二时钟域中的周期中断的周期值一致。本发明在EtherCAT总线型伺服和脉冲型伺服使用同一个CoDeSys周期任务时,可使周期任务的
时钟与周期中断的时钟同步。权利要求书1页  说明书5页  附图3页CN 112769535 A 2021.05.07
C N  112769535
A
1.一种基于CoDeSys控制器的EtherCAT总线型伺服与脉冲型伺服的同步方法,其特征在于,包括:
将第一时钟域中的周期任务的当前周期开始时的第二时钟域时间与上一周期开始时的第二时钟域时间做差,得到差值SystemTimeDiff;所述第二时钟域为周期中断所在的时钟域;
根据第二时钟域中的周期中断的周期值与差值SystemTimeDiff之间的偏差对第一时钟域中的周期任务的周期进行动态调节,以使第一时钟域中的周期任务的周期值与第二时钟域中的周期中断的周期值一致。
2.根据权利要求1所述的基于CoDeSys控制器的EtherCAT总线型伺服与脉冲型伺服的同步方法,其特征
在于,以第二时钟域中的周期中断的周期值为给定值,以差值SystemTimeDiff为反馈值,通过PID控制或PI控制对所述第一时钟域中的周期任务的周期进行动态调节。
3.根据权利要求2所述的基于CoDeSys控制器的EtherCAT总线型伺服与脉冲型伺服的同步方法,其特征在于,PID控制周期或PI控制周期与第二时钟域中的周期中断的周期值一致。
4.根据权利要求1至3任意一项所述的基于CoDeSys控制器的EtherCAT总线型伺服与脉冲型伺服的同步方法,其特征在于,还包括以下步骤:
当第二时钟域中的周期中断的周期值与差值SystemTimeDiff之间的偏差稳定在预定的偏差范围内时中止对周期任务的周期进行动态调节;
将第一时钟域中的周期任务的当前周期开始时的时间与第二时钟域中的周期中断的下一个周期的开始时间做差,得到差值Offset;
将周期任务的下一个周期的周期值设为T+Offset,并在周期任务的下一个周期中将周期任务的周期值重新设为T;
在周期值重新成为T后的第二个周期将第一时钟域中的周期任务的当前周期开始时的第二时钟域时间与上一周期开始时的第二时钟域时间做差,得到差值SystemTimeDiff;
根据第二时钟域中的周期中断的周期值与差值SystemTimeDiff之间的偏差对第一时钟域中的周期任务的周期进行动态调节,以使第一时钟域中的周期任务的周期值与第二时钟域中的周期中断的周期值一致。
5.根据权利要求1所述的基于CoDeSys控制器的EtherCAT总线型伺服与脉冲型伺服的同步方法,其特征在于,所述第一时钟域为x86/ARM时钟域,所述第二时钟域为FPGA时钟域。
权 利 要 求 书1/1页CN 112769535 A
基于CoDeSys控制器的EtherCAT总线型伺服与脉冲型伺服的
同步方法
技术领域
[0001]本发明涉及工业控制技术,尤其涉及CoDeSys控制器。
背景技术
[0002]工业以太网EtherCAT总线具有拓展性好,同步性高、抗干扰强等优点,随着工业以太网EtherCAT总线的不断发展,其被越来越多的机器人控制器所支持,同时,为了满足项目现场对步进电机、脉冲型
伺服的需求,机器人控制器也会提供对高速脉冲的支持。[0003]针对既支持EtherCAT总线型伺服又支持脉冲型伺服的CoDeSys控制器来说,对于某些特定的项目场合,EtherCAT总线型伺服与脉冲型伺服会搭配使用,但EtherCAT总线型伺服使用CoDeSys控制器中的x86/ARM处理器进行控制,脉冲型伺服使用CoDeSys控制器中的FPGA进行控制,若x86/ARM处理器与FPGA不在同一时钟域时,会产生同步问题。[0004]图1示出了机器人控制器的EtherCAT总线型伺服与脉冲型伺服的结构框图。如图1所示,对于既支持EtherCAT总线型伺服又支持脉冲型伺服的机器人控制器来说,主要由3层组成:CoDeSys软件部分、Linux系统部分、硬件部分(x86/ARM和FPGA)。晶振1为x86/ARM处理器提供时钟源,晶振2为FPGA提供时钟源,x86/ARM和FPGA处于不同的时钟域。
[0005]若控制系统中只连接EtherCAT总线型伺服,即不会用到处于另一个时钟域的FPGA 硬件模块时,其控制逻辑如图1左侧所示,自上而下的控制原理:控制器在一个CoDeSys周期任务中进行位置规划,然后依次通过CoDeSys实时内核(CoDeSys Runtime)模块、Linux系统模块、x86/ARM以及PHY模块将规划的位置值发送到EtherCAT总线型伺服,完成数据更新。其中,EtherCAT主从站有两种同步方法(EtherCAT组织规定,可自由选择):所有的设备时钟同步到第一个具有DC(时钟分布)功能的EtherCAT从站时钟上;所有设备的时钟同步到EtherCAT主站时钟上。
[0006]若控制系统中只连接脉冲型伺服,即同时会用到处于不同时钟域的x86/ARM和FPGA硬件模块,其控制逻辑如图1中右侧所示,先自下而上后自上而下控制原理:FPGA以周期值(即周期时间)T周期性
地产生中断给x86/ARM处理器,Linux中断处理将中断事件传递到Linux用户空间,Linux用户空间再将事件发送给CoDeSys中,进而唤醒CoDeSys外部事件任务,进行规划位置,当前周期规划完毕后,通过CoDeSys自定义组件将位置值通过与FPGA 相连接的硬件接口更新到FGPA硬件模块中,最终将数据发送到脉冲型伺服,完成脉冲更新。[0007]对于控制系统中只存在脉冲型伺服的情况,在未同步的情况下,不能用周期任务规划位置并更新脉冲,因为x86/ARM和FPGA位于不同的时钟域,CoDeSys周期任务的周期值(即周期时间)T是基于处于x86/ARM时钟域的时钟产生的,而FPGA周期中断的周期值T(即周期时间)是基于处于FPGA时钟域的时钟产生的,x86/ARM中的周期值T和FPGA中的周期值T可能并不相等。CoDeSys周期任务的周期与FPGA周期中断的周期不相等是由于晶振工工作频率有差异时,会导致以下三种情况:
[0008]晶振2与晶振1工作频率完全一样,虽然CoDeSys周期任务的周期T与FPGA周期中断
的周期T的时间一样长,但周期任务每次开始时间与FPGA周期中断每次开始时间偏移不固定,偏移不固定时,CoDeSys周期任务执行代码的时间不定时,脉冲型伺服更新时可能会处于当前周期,也可能处于下一个周期,导致脉冲不准;
[0009]晶振2比晶振1的工作频率快,即CoDeSys周期任务的周期值T比FPGA周期中断的周期值T的时间长,如图2所示,经过一段时间误差累积后,FPGA周期计数次数比CoDeSys周期任务计数次数多,会产生脉冲多发的情况,导致脉冲不准问题;
[0010]晶振2比晶振1的工作频率慢,即CoDeSys周期任务的周期值T比FPGA周期中断的周期值T的时间短,经过一段时间误差累积后,FPGA周期计数次数比CoDeSys周期任务计数次数少,会产生脉冲少发的情况,导致脉冲不准问题;
[0011]晶振因材料微小差异,同时受周围环境温度的影响比较大,总会出现工作频率不一样的情况。
[0012]下表示出了总线型伺服/脉冲型伺服在执行周期任务、外部事件任务时与同步的关系:
[0013]
[0014]由上表可知,总线型伺服和脉冲型伺服搭配使用,用外部事件任务无法解决存在的问题,只能使用周期任务实现同步去解决。
发明内容
[0015]本发明所要解决的技术问题在于提供一种基于CoDeSys控制器的EtherCAT总线型伺服与脉冲型伺服的同步方法,其在EtherCAT总线型伺服和脉冲型伺服使用同一个CoDeSys周期任务时,可使CoDeSys周期任务的时钟与周期中断的时钟同步。
[0016]本发明所要解决的技术问题在于提供一种基于CoDeSys控制器的EtherCAT总线型伺服与脉冲型伺服的同步方法,其在CoDeSys周期任务时钟与周期中断的时钟同步成功后,可使周期任务的周期的开始时间与周期中断的周期的开始时间实现同步。
[0017]本发明实施例的一种基于CoDeSys控制器的EtherCAT总线型伺服与脉冲型伺服的同步方法,包括:
[0018]将第一时钟域中的周期任务的当前周期开始时的第二时钟域时间与上一周期开始时的第二时钟域时间做差,得到差值SystemTimeDiff;所述第二时钟域为周期中断所在的时钟域;
[0019]根据第二时钟域中的周期中断的周期值与差值SystemTimeDiff之间的偏差对第一时钟域中的周期
任务的周期进行动态调节,以使第一时钟域中的周期任务的周期值与第
二时钟域中的周期中断的周期值一致。
[0020]进一步地,上述的基于CoDeSys控制器的EtherCAT总线型伺服与脉冲型伺服的同步方法,还包括以下步骤:
[0021]当第二时钟域中的周期中断的周期值与差值SystemTimeDiff之间的偏差稳定在预定的偏差范围内时中止对周期任务的周期进行动态调节;
[0022]将第一时钟域中的周期任务的当前周期开始时的时间与第二时钟域中的周期中断的下一个周期的开始时间做差,得到差值Offset;
[0023]将周期任务的当前周期的下一个周期的周期值设为T+Offset,并在周期任务的下一个周期中将周期任务的周期值重新设为T;
[0024]在周期值重新成为T后的第二个周期将第一时钟域中的周期任务的当前周期开始时的第二时钟域时间与上一周期开始时的第二时钟域时间做差,得到差值SystemTimeDiff;
[0025]根据第二时钟域中的周期中断的周期值与差值SystemTimeDiff之间的偏差对第一时钟域中的周期
任务的周期进行动态调节,以使第一时钟域中的周期任务的周期值与第二时钟域中的周期中断的周期值一致。
[0026]本发明至少具有以下优点:
[0027]1、本实施例的基于CoDeSys控制器的EtherCAT总线型伺服与脉冲型伺服的同步方法在EtherCAT总线型伺服和脉冲型伺服使用同一个CoDeSys周期任务时,将CoDeSys周期任务时钟实时同步到FPGA时钟,即CoDeSys周期任务的周期与FPGA周期中断的周期时间长短一样,实现了周期同步;
[0028]2、本实施例的基于CoDeSys控制器的EtherCAT总线型伺服与脉冲型伺服的同步方法在CoDeSys周期任务时钟与周期中断时钟同步成功后,解决了周期任务每个周期的开始时间与周期中断的每个周期开始时间的相对偏移问题,实现了相对偏移同步。
附图说明
[0029]为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0030]图1示出了机器人控制器的EtherCAT总线型伺服与脉冲型伺服的结构框图。[0031]图2示出了CoD
eSys周期任务的周期和FPGA周期中断的周期的示意图。
[0032]图3示出了根据本发明一具体实施方式的基于CoDeSys控制器的EtherCAT总线型伺服与脉冲型伺服的同步方法的流程示意图。
[0033]图4示出了基于CoDeSys控制器的控制系统的原理框图。
[0034]图5示出了实现CoDeSys周期任务的周期的开始时间与FPGA周期中断的周期的开始时间同步的原理示意图。
具体实施方式
[0035]根据本发明实施例的基于CoDeSys控制器的EtherCAT总线型伺服与脉冲型伺服的

本文发布于:2024-09-20 12:25:08,感谢您对本站的认可!

本文链接:https://www.17tex.com/xueshu/796135.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:伺服   脉冲   时钟
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议