一种脉冲控制方法和系统与流程

文档序号:14842427发布日期:2018-06-30 14:16阅读:842来源:国知局
一种脉冲控制方法和系统与流程

本发明涉及PLC控制领域,尤其涉及一种脉冲控制方法和系统。



背景技术:

多段脉冲输出是指在脉冲发送过程中可根据参数设置的不同自动调速到特定定频率并移动指定的位移量,各段之间需要平滑过渡,不能有明显停顿。另外加减速阶梯要尽可能细腻,否则加减速过程中的频率变化会造成电机抖动,电机从静止到达稳定频率需要有一个加速过程,减速到零也有一个减速过程,在实际处理过程中会将加速和减速过程离散为频率的阶梯变化,当加减速分段数较多时加减速细腻,频率阶梯变化量小,加减速过程电机不会有抖动。反之,电机会有明显的抖动,不利于实际使用。

现有的脉冲输出方法为降低加减速分段数,限制最大段落数的方式具有限制存储空间,加减速计算时间短的优点,可直接将所有段落的参数一次性计算完成。而该方式的缺点是,限制了最大段落数,且数据全部预处理,用户无法追加和修改段落参数,另外,分割段数的降低会使得该频率曲线控制步进电机过程中,加减速会有明显的电机抖动情况。



技术实现要素:

为了解决上述问题,本发明提供一种脉冲控制方法和系统。

本发明采用的技术方案一方面为一种脉冲控制方法,包括步骤:A、根据变化趋势将脉冲频率标记为若干阶段,逐个将所述阶段分成若干子阶段,每个子阶段对应一个脉冲输出值,标记其中一个阶段为当前阶段;B、设置基于FIFO的数据存储队列;C、将所述当前阶段所属子阶段对应的脉冲输出值依次存入所述数据存储队列,标记当前阶段的下一个阶段为次阶段;D、从所述数据存储队列依次读取脉冲频率值并输出;E、更新所述次阶段为当前阶段;F、重复步骤C-E直至全部子阶段对应的脉冲频率值被写入所述数据存储队列。

优选地,所述变化趋势包括:脉冲频率值从第一阈值上升至第二阈值;脉冲频率值从第二阈值下降至第三阈值;脉冲频率值从第三阈值上升至第四阈值,从第四阈值下降至第五阈值。

优选地,所述数据存储队列存在存储上限和存储阈值,所述存储阈值不大于所述存储上限,当步骤C的脉冲频率值存入次数大于存储阈值则执行步骤D。

优选地,所述步骤D与步骤E为同时进行以实现所述数据存储队列存储的脉冲输出值的实时更替。

本发明采用的技术方案另一方面为一种脉冲控制系统,用于执行上述方法,包括:划分模块,用于根据变化趋势将脉冲频率标记为若干阶段,逐个将所述阶段分成若干子阶段,每个子阶段对应一个脉冲频率值,标记其中一个阶段为当前阶段;队列模块,用于设置基于FIFO的数据存储队列;存储模块,用于将所述当前阶段所属子阶段对应的脉冲频率值依次存入所述数据存储队列,标记当前阶段的下一个阶段为次阶段;输出模块,用于从所述数据存储队列依次读取脉冲频率值并输出;更新模块,用于更新所述次阶段为当前阶段;循环模块,用于重复驱动存储模块、输出模块和更新模块直至全部子阶段对应的脉冲频率值被写入所述数据存储队列。

优选地,所述变化趋势包括:脉冲频率值从第一阈值上升至第二阈值;脉冲频率值从第二阈值下降至第三阈值;脉冲频率值从第三阈值上升至第四阈值,从第四阈值下降至第五阈值。

优选地,所述数据存储队列存在存储上限和存储阈值,所述存储阈值不大于所述存储上限,当存储模块执行的脉冲频率值存入次数大于存储阈值则驱动输出模块。

优选地,所述输出模块与更新模块为同时进行以实现所述数据存储队列存储的脉冲输出值的实时更替。

本发明的有益效果为将脉冲频率按照变化趋势分成若干阶段和更小的子阶段,能够更好的区分脉冲频率的变化值,利于电机的控制,通过FIFO进行脉冲频率值的存储能够降低内存的存储限制,提高电机控制效率。

附图说明

图1所示为基于本发明实施例的一种脉冲控制方法的示意图;

图2所示为基于本发明实施例的脉冲频率的示意图;

图3所示为基于本发明实施例的阶段分割图。

具体实施方式

以下结合实施例对本发明进行说明。

基于发明的实施例,如图1所示一种脉冲控制方法,包括步骤:A、根据变化趋势将脉冲频率标记为若干阶段,逐个将所述阶段分成若干子阶段,每个子阶段对应一个脉冲输出值(包括脉冲频率值和脉冲个数,用于控制电机),标记其中一个阶段为当前阶段;B、设置基于FIFO的数据存储队列;C、将所述当前阶段所属子阶段对应的脉冲频率值依次存入所述数据存储队列,标记当前阶段的下一个阶段为次阶段;D、从所述数据存储队列依次读取脉冲频率值并输出;E、更新所述次阶段为当前阶段;F、重复步骤C-E直至全部子阶段对应的脉冲频率值被写入所述数据存储队列。

所述变化趋势包括:脉冲频率值从第一阈值上升至第二阈值;脉冲频率值从第二阈值下降至第三阈值;脉冲频率值从第三阈值上升至第四阈值,从第四阈值下降至第五阈值。

所述数据存储队列存在存储上限和存储阈值,所述存储阈值不大于所述存储上限,当步骤C的脉冲频率值存入次数大于存储阈值则执行步骤D。

所述步骤D与步骤E为同时进行以实现所述数据存储队列存储的脉冲输出值的实时更替(即一个存储的脉冲输出值在被读出之后,新的脉冲输出值被写入,确认存储队列不会空)。

基于发明的实施例,一种脉冲控制系统,用于执行上述方法,包括:划分模块,用于根据变化趋势将脉冲频率标记为若干阶段,逐个将所述阶段分成若干子阶段,每个子阶段对应一个脉冲频率值,标记其中一个阶段为当前阶段;队列模块,用于设置基于FIFO的数据存储队列;存储模块,用于将所述当前阶段所属子阶段对应的脉冲频率值依次存入所述数据存储队列,标记当前阶段的下一个阶段为次阶段;输出模块,用于从所述数据存储队列依次读取脉冲频率值并输出;更新模块,用于更新所述次阶段为当前阶段;循环模块,用于重复驱动存储模块、输出模块和更新模块直至全部子阶段对应的脉冲频率值被写入所述数据存储队列。

所述变化趋势包括:脉冲频率值从第一阈值上升至第二阈值;脉冲频率值从第二阈值下降至第三阈值;脉冲频率值从第三阈值上升至第四阈值,从第四阈值下降至第五阈值。

所述数据存储队列存在存储上限和存储阈值,所述存储阈值不大于所述存储上限,当存储模块执行的脉冲频率值存入次数大于存储阈值则驱动输出模块。

所述输出模块与更新模块为同时进行以实现所述数据存储队列存储的脉冲输出值的实时更替。

作为实施例的进一步改进,如图2所示脉冲频率示意图,X轴为时间t,Y轴为频率值。

根据加减速的趋势分割示意图,预处理的结果包括阶段1、阶段2和阶段3(阶段1为从第一阈值上升至第二阈值,阶段2为从第二阈值下降至第三阈值,阶段3为从第三阈值上升至第四阈值再下降到第五阈值),如图3所示的阶段分割图,阶段1、2和3进行更细的分割,例如阶段1和2分成32小段(即子阶段),阶段3分成64小段(划分的小段书越多,需要的存储空间越大,且计算时间更长),其目的是根据脉冲频率的变化趋势进行区域的划分。

设置可以存放192个小段的内存空间,该192小段的空间至少可以存放3个阶段(实际的脉冲频率远不止3个阶段,这里只是举例说明),至多存放192个阶段(此时每个阶段即为一个小段,当无加减速或者数据不合法时即存在该情况);在初始状态时,FIFO中为空值,指针NextFeedAddr指向FIFO的首地址,将小段对应的脉冲频率值依次存入FIFO中,每当填入1小段数据,指针则后移1小段,为下次填充做准备,依次填充,每填充一个小段,UseStepNum会自动记录写入数据的小段的总数,当第一大段中的32小段填充完毕,判断此时填充的小段总数是否超过了128小段(即预设的存储阈值,具体数据基于处理能力限制,用于提醒进行下一步的输出步骤),如果超过128小段,则预处理完毕(预处理完毕时FIFO中的状态可能是192段被填满,也可能填充了128+1~32个小段,填充是以一个大段为单位填充,在预处理过程中指针还不会越过192的界限);预处理完毕后,启动脉冲发送,将待发送的小段对应的频率值从FIFO首地址开始发送/输出,每发送一个小段的数据则UseStepNum会自减一次,当有用小段数小于128时,会触发一次加减速预处理(即填充新的数据),预处理的过程并不在高优先级中断中进行,因此可在主程序中执行,只需在发送指针指向未更新区域前填充新数据更新即可,对应的NextFeedAddr和UseStepNum会和上述机制相同的方式进行偏移自加,当NextFeedAddr移动到最后一段时,再填充一次就指向起始段,SendingStep指向最后一段时,发送完成最后一段也会移动到起始段,而起始段数据是之前预处理再填充的数据,构成了一个循环填充,循环发送的机制。

以上所述,只是本发明的较佳实施例而已,本发明并不局限于上述实施方式,只要其以相同的手段达到本发明的技术效果,都应属于本发明的保护范围。在本发明的保护范围内其技术方案和/或实施方式可以有各种不同的修改和变化。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1