首页> 中国专利> 基于CANopen的伺服驱动器位置控制同步方法

基于CANopen的伺服驱动器位置控制同步方法

摘要

一种基于CANopen的伺服驱动器位置控制同步方法,伺服驱动器设有基于CANopen总线的从节点,该方法包括:a、从节点每次在SYNC同步对象到来时获取当前位置环的序号Psync以及当前位置环的位置环时刻Csync,并计算出当前位置环与预设的目标位置环之间的时间偏移量Toffset;b、从节点根据步骤a计算出的时间偏移量Toffset计算要调整后的位置环周期Tperiod_new;c、从节点将位于当前位置环之后、并紧邻当前位置环的连续N个位置环的周期均调整为Tperiod_new,N为同步周期与位置环周期的商。本发明能实现各通信从节点同步对象接收时刻的抖动补偿,确保位置数据同步更新。

著录项

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2019-01-25

    授权

    授权

  • 2017-06-06

    实质审查的生效 IPC(主分类):G05B19/418 申请日:20170110

    实质审查的生效

  • 2017-05-10

    公开

    公开

说明书

技术领域

本发明涉及基于CANopen的伺服驱动器位置控制同步方法。

背景技术

运动控制系统的发展水平决定了一个国家装备制造业的水平。随着现场总线和网络技术的发展,分布式运动控制系统是数控系统的重要发展方向。高水平的分布式运动控制系统需要实现高精度的电流、速度及位置全闭环控制,需要实现高效、高速的信息交互。

传统伺服驱动器接口需配备额外的运动控制卡,运动控制卡和伺服驱动器之间以脉冲命令和模拟信号连接。这种方法布线复杂、通信速率低、集中控制方式复杂、可扩展性差,严重制约了中高档伺服技术的发展和应用。

工业上广泛采用的伺服接口总线有CANopen、EtherCAT、Powerlink等,这些方案通过全数字式信息传输可以实现分布式多轴控制,降低了系统的复杂性且易于扩展。EtherCAT、Powerlink等工业以太网虽然具有通信速率高、传输数据量大的优点,但是,其多采用专有硬件或者大容量FPGA实现,具有较高的硬件成本和最大传输距离仅为100m等不可忽视的缺陷。然而,目前绝大多数的MCU都含有CAN外设,可以通过此外设实现CANopen网络,不仅可以降低系统的成本,而且增加了系统的抗干扰能力,最大传输距离增加到5000m。

CiA402(Device Profile Drives and Motion Control)协议支持同步的插补位置模式,结合CANopen的同步机制,在多轴位置控制应用场合,实现各轴同步输出控制器下发的位置给定。插补位置模式多用于多轴控制或对设定点进行实践插补的单轴系统,以SYNC同步帧作为时间同步基准,对驱动单元进行时间统一。图1示出了CANopen总线实现多轴伺服系统的连接结构示意图。

CANopen总线的同步原理如图2所示,同步对象在每个同步周期的开始被发送,各个具有同步PDO的主从节点在接收到同步对象后开始同步PDO数据传输。同步PDO不一定要在同步窗口内完成数据交换,通常以同步时间窗口长度等于循环周期为考虑问题的出发点。在现有解决方案中,CANopen伺服要么没有插补位置模式,要么采用同步方式的插补位置模式没有给出其同步方法。在CANopen网络中,影响同步的因素主要有:

1.同步生产者(通常是CANopen主节点)发送同步帧的抖动,不同节点基于各自的时钟运行等原因,导致从节点的MCU在不同的时刻接收到同步对象;

2.伺服中断直接控制功率模块,对独立性和周期精度要求较高,因此具有较高的优先级。但是,伺服中断可能打断通信同步中断,无法同步执行数据。

发明内容

本发明所要解决的技术问题在于提供一种基于CANopen的伺服驱动器位置控制同步方法,其能实现各通信从节点同步对象接收时刻的抖动补偿,确保位置数据同步更新。

本发明所要解决的又一技术问题在于提供一种基于CANopen的伺服驱动器位置控制同步方法,其在伺服中断打断通信同步中断的情况下,也能保证插补位置的同步性。

为解决上述技术问题,本发明所采用的技术方案是:

一种基于CANopen的伺服驱动器位置控制同步方法,所述的伺服驱动器设有基于CANopen总线的从节点,该基于CANopen的伺服驱动器位置控制同步方法包括:

a、从节点每次在SYNC同步对象到来时获取当前位置环的序号Psync以及当前位置环的位置环时刻Csync,并计算出当前位置环与预设的目标位置环之间的时间偏移量Toffset,其中,当Psync*Tperiod+Csync-(Ptarget*Tperiod+Ctarget)≤Tsync/2时,Toffset=Psync*Tperiod+Csync-(Ptarget*Tperiod+Ctarget),当Psync*Tperiod+Csync-(Ptarget*Tperiod+Ctarget)>Tsync/2时,Toffset=Psync*Tperiod+Csync-(Ptarget*Tperiod+Ctarget)-Tsync;Tsync为同步周期,Tperiod为默认位置环周期,Ptarget为所述目标位置环的序号,Ctarget为预先设定的、目标位置环在SYNC同步对象到来时的位置环时刻;

b、从节点根据步骤a计算出的时间偏移量Toffset计算要调整后的位置环周期Tperiod_new,Tperiod_new=Tperiod+Tcompensation,其中,Tcompensation为位置环周期补偿值,Tcompensation=Toffset/N,N=Tsync/Tperiod;

c、从节点将位于当前位置环之后、并紧邻当前位置环的连续N个位置环的周期均调整为Tperiod_new。

本发明具有以下优点和特点:

1、本发明通过对从节点位于当前位置环之后、并紧邻当前位置环的连续N个位置环的位置环周期进行调整,使从节点可以在SYNC同步对象到来的时刻处于任何预定的目标位置环,进而能够使通信网络中的各个从节点在相同的时刻接收到同步对象,实现了位置数据同步更新,提高了CANopen伺服插补位置模式的同步性能;

2、本发明在每一同步周期内的多个位置环周期内均匀地补偿时间偏差,提高了数据传输的同步性能,对于高速、高精度分布式运动控制系统的位置控制具有重要意义;

3、本申请不是将插补周期的起始位置环作为SYNC同步对象到来时刻的目标位置环,而是将比插补周期的起始位置环早几个位置环周期的位置环作为目标位置环,这样即使SYNC同步对象的接收被打断,依然有足够的时间余量,保证插补周期开始时插补位置已经准备好,从而保证插补位置的同步性,实现数据的同步执行。

附图说明

图1示出了CANopen总线实现多轴伺服系统的连接结构示意图。

图2示出了CANopen总线的同步原理示意图。

图3示出了根据本发明一个具体应用实施例的两个从节点的位置环周期在调整前和调整后的比较示意图。

图4示出了根据本发明一实施例的使同步周期与插补周期错开的原理示意图。

图5示出了根据本发明一实施例的一个同步周期的流程示意图。

具体实施方式

根据本发明一实施例的一种基于CANopen的伺服驱动器位置控制同步方法,伺服驱动器设有基于CANopen总线的从节点,该基于CANopen的伺服驱动器位置控制同步方法包括以下步骤:

a、从节点每次在SYNC同步对象到来时获取当前位置环的序号Psync以及当前位置环的位置环时刻Csync,并计算出当前位置环与预设的目标位置环之间的时间偏移量Toffset,其中,当Psync*Tperiod+Csync-(Ptarget*Tperiod+Ctarget)≤Tsync/2时,Toffset=Psync*Tperiod+Csync-(Ptarget*Tperiod+Ctarget),当Psync*Tperiod+Csync-(Ptarget*Tperiod+Ctarget)>Tsync/2时,Toffset=Psync*Tperiod+Csync-(Ptarget*Tperiod+Ctarget)-Tsync。Tsync为同步周期,Tperiod为默认位置环周期,Ptarget为目标位置环的序号,Ctarget为预先设定的、目标位置环在SYNC同步对象到来时的位置环时刻。

b、从节点根据步骤a计算出的时间偏移量Toffset计算要调整后的位置环周期Tperiod_new,Tperiod_new=Tperiod+Tcompensation,其中,Tcompensation为位置环周期补偿值,Tcompensation=Toffset/N,N=Tsync/Tperiod。

c、从节点将位于当前位置环之后、并紧邻当前位置环的连续N个位置环的周期均调整为Tperiod_new。

图3示出了根据本发明一个具体应用实施例的两个从节点的位置环周期在调整前和调整后的比较示意图,以下结合图3对本发明的工作原理和过程做更加详细的介绍。在图3中,两条位于SYNC下方的竖直线代表SYNC同步对象到来的时刻,该两条竖线之间的间距代表两个SYNC同步对象到来时刻的差值,也即同步周期。每一个矩形框代表一个位置环,每个矩形框中的数字代表位置环的序号,矩形框的宽度为位置环周期。同步周期Tsync=4毫秒,默认位置环周期Tperiod=200微秒。N=Tsync/Tepriod=20,即,一个同步周期Tsync的大小为1个位置环周期的20倍。现有技术中,同步周期Tsync的大小必定是位置环周期的整数倍。在图中的示例中,位置环的序号按照从0到19排列,但不限于此,例如也可以是1到20,或2到21等等,只要按顺序用自然数连续编号就可以。图3中,节点1和节点2是两个不同的从节点。调整前,节点1在图3中所示的左边一个SYNC同步对象到来时的当前位置环的序号Psync为16,当前位置环的位置环时刻Csync为160微秒。位置环时刻是位置环定时器的计时时刻,位置环定时器以位置环周期作为计时循环周期,在每个计时循环周期从零开始计时一直计时到达位置环周期。例如,默认的位置环周期为200微秒时,那么位置环定时器就在计时达到200微秒时从0开始重新计时。节点2在图3中所示的左边一个SYNC同步对象到来时的当前位置环的序号Psync为1,当前位置环的位置环时刻Csync为20微秒。本实施例中,将目标位置环的序号Ptarget设为0,Ctarget设为0微秒。

当未进行同步操作前,SYNC同步对象的到达时刻与伺服位置环时刻之间的偏移量是随机的,不同从节点的位置环触发时刻偏差也是随机的,即输出数据在不同的时刻被执行。为解决各从节点在不同时刻接收到SYNC同步对象的问题,需要根据SYNC同步对象到达时的位置环时刻和目标位置环时刻之间的偏差调整位置环周期,使得各节点都在目标位置环时刻同步更新和执行插补位置。调整的目的是当同步对象到来时,位置环恰好处于新的插补周期的开始,在本实施例中为位置环0的开始。

对节点1来说,Psync*Tperiod+Csync-(Ptarget*Tperiod+Ctarget)=16.8*Tperiod,由于其大于10*Tperiod(即Tsync/2),因此Toffset=16.8*Tperiod-20*Tperiod=-3.2*Tperiod。Tperiod_new=Tperiod+Tcompensation=Tperiod-0.16*Tperiod=0.84*Tperiod。也就是说,调整后的位置环周期Tperiod_new比默认位置环周期Tperiod要短。从节点1将位于序号为16的当前位置环之后的连续20个位置环的周期均要调整为0.84*Tperiod,即从序号为17的位置环开始一直到下一个序号为16的位置环的周期均调整为0.84*Tperiod。可以通过调整定时器的值达到调整位置环周期的目的。

对节点2来说,Psync*Tperiod+Csync-(Ptarget*Tperiod+Ctarget)=1.2*Tperiod,由于其小于等于10*Tperiod,因此Toffset=1.2*Tperiod。也就是说,调整后的位置环周期Tperiod_new比默认位置环周期Tperiod要长。从节点2要将位于序号为1的当前位置环之后的连续20个位置环的周期均要调整为1.2*Tperiod,即从序号为2的位置环开始一直到下一个序号为1的位置环的周期均调整为1.2*Tperiod。

完成上述调整后,在下一个SYNC同步对象到来时,如图3中的下方两幅图所示,节点1和节点2均在位置环0的0时刻接收到SYNC同步对象,即节点1和节点2在相同的时刻接收到了SYNC同步对象,从而可实现位置数据同步更新。而在该下一个SYNC同步对象到来时,节点1和节点2又会重复前述的步骤a至步骤c。

为了防止补偿值过大,引起伺服出现其他问题,最好是对Tcompensation加一个限幅,从而保证位置环周期的波动不超过2%。正常周期通信后,主从节点都基于各自的时钟运行,且时钟是有漂移的,因此本实施例采用了动态调整的方式,即在每个同步周期内都对位置环周期做出调整。

伺服电流环定时器具有较高的优先级,可能打断SYNC同步对象的接收中断,造成同步抖动和延迟。根据本发明一实施例的一种基于CANopen的伺服驱动器位置控制同步方法为了在同步对象的接收被打断时还能够保证插补位置的同步性,采用了同步周期和插补周期错位的方法解决上述问题。具体而言,在本实施例中,将比插补周期的起始位置环早n个位置环周期的位置环作为前述预设的目标位置环;n为大于等于1小于等于4的整数。图4示出了这种方法的工作原理。如图4所示,插补周期的起始位置环是序号为0的位置环,即位置环0。在图4所示的实施例中,不采用位置环0作为调整目标,而是采用提前位置环0两个位置环周期的位置环18作为调整目标,这样即使SYNC同步对象的接收被打断,依然有足够的时间余量,保证插补周期开始时插补位置已经准备好。

根据本发明一实施例的一种基于CANopen的伺服驱动器位置控制同步方法可通过从节点的MUC的同步程序来实现。如图5所示,从节点至少包含两个任务,一个是定时器触发的按照插补周期周期性运行的插补位置模式任务,一个是中断触发的CANopen数据处理任务。在通信过程中,从节点首先接收到SYNC同步对象,再接收到过程数据对象。当接收到SYNC同步对象时,从节点根据当前插补周期处于的位置环时刻和调整目标位置环时刻计算出同步偏差,计算出调整位置环周期的补偿值,并微调位置环周期;然后将上个周期接收到的过程数据更新到插补模块;最后触发TPDO(发送过程数据对象)发送输入过程数据。当接收到过程数据对象时,解析数据到对象字典中,在下个同步对象到来时更新到插补模块。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号