一种基于实际计算间隔的多轴脉冲补偿方法及系统与流程

摘要: 本发明属于工业自动化、可编程逻辑控制器、运动控制和高速脉冲输出,具体涉及一种基于实际计算间隔的多轴脉冲补偿方法及系统,以实现多轴高速脉冲输出中的周期波动补偿与同...
一种基于实际计算间隔的多轴脉冲补偿方法及系统与流程

本发明属于工业自动化、可编程逻辑控制器、运动控制和高速脉冲输出,具体涉及一种基于实际计算间隔的多轴脉冲补偿方法及系统,以实现多轴高速脉冲输出中的周期波动补偿与同步控制。

背景技术:

1、在plc或工业运动控制系统中,计算处理器通常周期性地执行运动控制程序,计算各轴在一个控制周期内应输出的脉冲个数,再通过内部总线、背板、耦合器或片间接口把脉冲数据发送至fpga或高速脉冲输出模块。fpga根据接收的脉冲个数产生脉冲序列,并驱动步进电机、伺服驱动器或其他以脉冲为位置或速度指令的设备。

2、计算处理器和fpga通常分别具有本地时钟。fpga能够提供确定性较高的硬件定时和多通道同步输出;soc具有较强的运算能力,但其中断响应、任务调度、总线访问和程序执行时间存在波动。

3、现有技术中,常见方式按照固定标称周期计算每轴脉冲数。例如,设定控制周期为4000μs,则每次任务均按照4000μs对应的速度或轨迹计算脉冲数量。标称周期为4000μs时,实际计算间隔可能为4002μs、3998μs或其他数值。若实际计算间隔连续偏大或连续偏小,仍按照4000μs计算脉冲数,长期运行时会产生脉冲累计偏差。尤其在实际周期误差不能成对抵消、速度变化或加减速阶段,该偏差更明显。系统通常不根据相邻两次任务的实际开始时间修正脉冲量,也不区分计算产生的小数余量和因本周期容量不足造成的整数未输出量。

4、部分现有系统通过校准主从节点本地时钟、选择基准从站或给脉冲数据附加绝对生效时间戳来实现同步,例如基于ieee 1588分布式时钟协议或ethercat分布式时钟的同步方案;另一些系统通过编码器反馈计算机实际相位并进行闭环相位校正,例如基于编码器位置反馈的相位误差补偿方案。这些方式需要分布式时钟校准、时间戳数据或编码器反馈闭环,未直接解决soc任务实际周期波动对每周期指令脉冲数量的影响。

5、现有技术存在以下问题:

6、固定周期计算导致脉冲量偏差。标称周期为4000 μs时,实际计算间隔可能为4002μs、3998μs或其他数值。若始终按照4000μs计算脉冲数,长期运行时会产生脉冲累计偏差,尤其在实际周期误差不能完全成对抵消、速度变化或加减速阶段更明显。

7、整数截断导致累计误差。每周期计算结果可能为200.3个脉冲。若每周期均丢弃0.3,长时间运行会累积成明显的位置误差。

8、输出能力不足时脉冲可能丢失。当本周期应输出的脉冲数量超过剩余时间可处理的数量时,若直接截断,未输出的整数脉冲将永久丢失,导致实际输出脉冲总数少于目标脉冲总数,即产生丢步。

9、软件逐轴触发造成轴间时间差。若soc依次启动多个轴,不同轴的启动时刻会受到指令执行顺序、总线访问和中断抖动影响。

10、直接校准本地时钟实现复杂。调整fpga或多个从站本地时钟会影响该节点的全部时间相关功能,且需要复杂的时钟补偿与分布式校时机制。

11、带时间戳的脉冲指令增加协议复杂度。为每组脉冲数据分配绝对生效时间需要维护统一时间域、时间戳解析和过期数据处理。

12、因此,提供一种能够抑制实际计算周期波动造成的长期脉冲累计偏差、提高多轴输出同步性和系统稳定性的基于实际计算间隔的多轴脉冲补偿方法及系统,是本领域技术人员亟待解决的技术问题。

技术实现思路

1、为解决上述技术问题,本发明提供一种基于实际计算间隔的多轴脉冲补偿方法及系统,以克服现有技术中存在的固定周期计算导致脉冲量偏差、整数截断导致累计误差、输出能力不足时脉冲丢失、软件逐轴触发造成轴间时间差的技术缺陷。

2、本发明由fpga内部设置一个64位自由运行计时器,计时分辨率优选为10ns。fpga在每个控制周期中先产生计算触发事件,再经过预设提前间隔产生公共输出事件。计算触发事件优选先于公共输出事件约100μs,该提前间隔可以根据soc运算时间、总线传输时间和fpga缓存准备时间配置。

3、soc响应计算触发事件,在实际开始执行脉冲计算程序时读取fpga自由运行计时器的当前值。fpga不需要在中断发生时预先锁存时间,soc使用两次实际读取值之差作为实际计算间隔。由于两次时间值均来自同一个fpga自由运行计时器,因此不需要计算或校准soc与fpga的本地时钟差。

4、soc根据实际计算间隔计算各轴的脉冲频率、脉冲数量和方向,并读取或接收fpga提供的实际发送脉冲数,以确定尚未完成的整数补偿量。正常小数余量在运动过程中跨周期累计;运动结束时以目标整数脉冲总量和实际发送整数脉冲总量是否一致为准,不能形成完整脉冲的小数部分直接舍弃。

5、需要说明的是,所述公共输出事件为固定周期事件,其周期为标称控制周期;所述实际计算间隔为相邻两次计算开始时间值之差,可能大于或小于所述标称控制周期。本发明以实际计算间隔计算理论新增脉冲量,并通过所述小数余量和所述整数补偿量将实际计算间隔与标称控制周期之间的偏差跨周期吸收,从而在不调整公共输出事件周期的情况下抑制长期脉冲累计偏差.

6、经计算的数据通过dsmc或其他总线写入fpga。地址和数据布局可以自定义,数据可以包括频率、脉冲数、方向、实际发送脉冲数和脉冲模式等字段。公共输出事件到达时,fpga同时使多个脉冲输出通道的数据生效。

7、根据本发明的一个方面,提供了一种基于实际计算间隔的多轴脉冲补偿方法,所述方法由计算处理器和执行处理器协同执行,所述执行处理器用于驱动多个轴,并具有与所述多个轴对应的多个脉冲输出通道,包括如下步骤:

8、所述执行处理器提供自由运行参考计时器,并在每个控制周期中产生计算触发事件和公共输出事件,所述计算触发事件先于所述公共输出事件一个预设提前间隔;

9、所述计算处理器响应所述计算触发事件,在当前控制周期中实际开始执行脉冲计算程序时读取所述自由运行参考计时器的当前值作为本次计算开始时间值,并根据所述本次计算开始时间值与上一次计算开始时间值之差确定本次实际计算间隔;

10、所述计算处理器针对每个轴,根据所述本次实际计算间隔计算该轴在所述当前控制周期的新增脉冲量,根据上一控制周期的实际发送脉冲数确定该轴的整数补偿量,并根据所述新增脉冲量和所述整数补偿量确定该轴在所述当前控制周期的计划输出脉冲数,其中所述上一控制周期的实际发送脉冲数为所述执行处理器在所述上一控制周期的公共输出事件之后统计并反馈的实际发送脉冲数;

11、所述计算处理器通过通信接口将包括各轴在所述当前控制周期的计划输出脉冲数在内的多轴脉冲控制数据写入所述执行处理器;

12、所述执行处理器在所述公共输出事件到达时,同时使所述多个脉冲输出通道按照所述多轴脉冲控制数据生效,以按照各轴在所述当前控制周期的计划输出脉冲数输出脉冲;

13、所述执行处理器在所述当前控制周期的公共输出事件之后统计所述当前控制周期的实际发送脉冲数,并提供给所述计算处理器,以供下一控制周期确定所述整数补偿量。

14、本发明的另一方面,提供了一种多轴脉冲量补偿及同步输出系统,包括计算处理器和执行处理器;

15、所述执行处理器用于驱动多个轴,并包括:自由运行参考计时器;事件生成单元,用于在每个控制周期中产生计算触发事件和公共输出事件,所述计算触发事件先于所述公共输出事件一个预设提前间隔;多个脉冲输出通道,分别对应所述多个轴;通信接口,用于与所述计算处理器交换数据;

16、所述计算处理器包括:计算开始时间值读取单元,用于响应所述计算触发事件,在当前控制周期中实际开始执行脉冲计算程序时读取所述自由运行参考计时器的当前值作为本次计算开始时间值;实际计算间隔确定单元,用于根据所述本次计算开始时间值与上一次计算开始时间值之差确定本次实际计算间隔;脉冲量计算单元,用于针对每个轴,根据所述本次实际计算间隔计算该轴在所述当前控制周期的新增脉冲量,根据上一控制周期的实际发送脉冲数确定该轴的整数补偿量,并根据所述新增脉冲量和所述整数补偿量确定该轴在所述当前控制周期的计划输出脉冲数,其中所述上一控制周期的实际发送脉冲数为所述执行处理器在所述上一控制周期的公共输出事件之后统计并反馈的实际发送脉冲数;数据写入单元,用于通过所述通信接口将包括各轴在所述当前控制周期的计划输出脉冲数在内的多轴脉冲控制数据写入所述执行处理器;

17、所述执行处理器在所述公共输出事件到达时,同时使所述多个脉冲输出通道按照所述多轴脉冲控制数据生效,以按照各轴在所述当前控制周期的计划输出脉冲数输出脉冲,并在所述当前控制周期的公共输出事件之后统计所述当前控制周期的实际发送脉冲数,提供给所述计算处理器,以供下一控制周期确定所述整数补偿量。

18、与现有技术相比,本发明具有如下有益效果:

19、两次计算开始时间均从同一fpga自由运行计时器读取,不需要比较或校准soc与fpga本地时钟;

20、soc在实际开始计算时读取时间,而非使用中断发生时锁存时间,能够把实际响应和调度变化反映到脉冲量计算中;

21、10ns计时分辨率和64位计数宽度提供细粒度且长时间连续的实际间隔测量;

22、计算触发事件相对公共输出事件具有可配置提前量,为soc计算、dsmc传输和缓存切换预留确定窗口;

23、通过小数余量累计避免逐周期截断产生的系统性误差;

24、通过fpga实际发送脉冲数校验,确保补偿以实际完整脉冲为准,而不是仅以计划下发量为准;

25、通过大于50%且小于100%的周期占用比例兼顾输出利用率与计算、通信及方向切换裕量;

26、通过fpga固定周期公共输出事件同时启动多轴,降低软件调用顺序和总线访问抖动造成的轴间启动差;

27、数据地址和字段可配置,可支持频率、脉冲数、方向、实际发送数和脉冲模式等多种信息;

28、当前8轴、每轴200khz实施例的总线占用率低于1%,具有较大的扩展余量。

29、本发明能够抑制或消除由实际计算周期波动和逐周期取整造成的长期整数脉冲累计偏差,并保证累计实际发送整数脉冲数满足目标要求。