一种基于嵌入式处理器的多路步进电机控制方法与系统技术方案

技术编号:19637975 阅读:33 留言:0更新日期:2018-12-01 18:21
本发明专利技术涉及一种基于嵌入式处理器的多路步进电机控制方法与系统,所述方法包括接收上位机发送的指令;根据所述运转顺序,通过FreeRTOS操作系统的多线程任务调度顺序调用所述编号对应的步进电机;根据所述运转参数,以tan_sigmoid电机控制函数分别控制多路步进电机进行相应的加减速运转;当检测到多路步进电机全部完成所述指令时,向所述上位机返回指令完成信息。本发明专利技术基于嵌入式处理器,通过FreeRTOS操作系统的任务调度,以tan_sigmoid电机控制函数控制步进电机运转,实现了步进电机的实时响应,解决步进电机容易出现失步和过冲的问题。

【技术实现步骤摘要】
一种基于嵌入式处理器的多路步进电机控制方法与系统
本专利技术涉及电机控制
,尤其涉及一种基于嵌入式处理器的多路步进电机控制方法与系统。
技术介绍
随着工业自动化的发展,为了提高产品生产效率,流水线在工业生产中得到了广泛地使用,而步进电机以其优异的开环控制性能,被越来越多地应用在流水线上。工作时多路步进电机同步运转,向前推送物品。为了保证产品生产安全和提高控制系统的控制精度,要求同步控制多路步进电机时步进电机能够实时响应控制信号;同时步进电机还存在容易出现失步和过冲的问题。现有技术中采用FPGA或CPLD同步控制多路步进电机,电机控制系统中步进电机响应迅速,但是结构复杂、价格高昂,不利于大范围推广;也有采用多块单片机来控制多路步进电机,每一路步进电机都采用一块单片机通过定时器内部中断输出脉冲信号来控制,这种方式中步进电机响应时间长,不能实时响应控制信号,多路步进电机间同步性差,并且浪费资源。
技术实现思路
为了实现步进电机控制系统中步进电机的实时响应,降低成本,解决步进电机容易出现失步和过冲的问题,本专利技术提供一种基于嵌入式处理器的多路步进电机控制方法与系统。本专利技术解决上述技术问题的技术方案如下:第一方面,本专利技术实施例提供了一种基于嵌入式处理器的步进电机控制方法,所述方法包括:步骤1:接收上位机发送的指令,所述指令包括需要调用的多路步进电机的编号、多路步进电机间的运转顺序和各步进电机对应的运转参数。步骤2:根据所述运转顺序,通过FreeRTOS操作系统的多线程任务调度顺序调用所述编号对应的步进电机。步骤3:根据所述运转参数,以tan_sigmoid电机控制函数分别控制多路步进电机进行相应的加减速运转。步骤4:当检测到多路步进电机全部完成所述指令时,向上位机返回指令完成信息。第二方面,本专利技术提供了一种基于嵌入式处理器的多路步进电机控制系统,所述系统包括嵌入式处理器,所述嵌入式处理器采用FreeRTOS操作系统,所述嵌入式处理器分别与上位机和步进电机连接。所述嵌入式处理器用于接收上位机发送的指令,所述指令包括需要调用的多路步进电机的编号、多路步进电机间的运转顺序和各步进电机对应的运转参数。根据所述运转顺序,通过FreeRTOS操作系统的多线程任务调度顺序调用所述编号对应的步进电机。根据所述运转参数,以tan_sigmoid电机控制函数分别控制多路步进电机进行相应的加减速运转。当检测到多路步进电机全部完成所述指令时,向上位机返回指令完成信息。本专利技术的基于嵌入式处理器的多路步进电机控制方法和系统的有益效果是:在嵌入式处理器上采用FreeRTOS操作系统,通过任务调度控制电机驱动模块驱动步进电机运转,由于FreeRTOS操作系统的任务调度时间非常短,多个任务之间相互切换的速度非常快,调用多路步进电机可以视为并行同时执行,步进电机响应迅速,多路步进电机同步运转,实现步进电机控制系统中步进电机的实时响应,大幅提高了步进电机控制系统的工作效率;通过装载FreeRTOS操作系统的嵌入式处理器来同步控制多路步进电机,系统结构简单,成本较低,适于大范围推广;以tan_sigmoid电机控制函数控制步进电机先加速运转,达到指定速度后匀速运转,在最后预计的步数内减速运转,使步进电机运转过程中加速度变化更平缓,避免运转过程中加速度突变导致的失步和过冲。附图说明图1为本专利技术实施例的一种基于嵌入式处理器的步进电机控制方法流程示意图;图2为本专利技术实施例的步进电机加速过程中频率变化曲线示意图;图3为本专利技术实施例的步进电机减速过程中频率变化曲线示意图;图4为本专利技术实施例的一种基于嵌入式处理器的步进电机控制系统的电路连接示意图;图5为本专利技术实施例的电机驱动芯片的引脚连接示意图。具体实施方式以下结合附图对本专利技术的原理和特征进行描述,所举实例只用于解释本专利技术,并非用于限定本专利技术的范围。步进电机工作时,每接收一个控制脉冲就移动一个步距角,向前转动一步,当连续地输入控制脉冲时,步进电机就相应的连续转动起来。步进电机失步就是漏掉了控制脉冲没有运动到指定的位置,过冲就是运动超过了指定的位置。步进电机失步和过冲会影响步进电机控制系统的稳定性和控制精度,影响产品生产。步进电机的失步和过冲现象分别常出现在步进电机启动和停止时,为了克服失步和过冲现象,则在步进电机启动停止时加入适当的加减速控制,本实施例中采用tan_sigmoid电机控制函数来控制。如图1所示,本专利技术实施例的一种基于嵌入式处理器的多路步进电机控制方法流程示意图,如图1所示方法的执行主体可以是嵌入式处理器,优选为STM32处理器,所述方法包括:步骤1:接收上位机发送的指令,所述指令包括需要调用的多路步进电机的编号、多路步进电机间的运转顺序和各步进电机对应的运转参数。具体地,预先对所有步进电机进行编号,嵌入式处理器通过FreeRTOS操作系统调用以太网口的任务接收上位机发送的指令。步骤2:根据所述运转顺序,通过FreeRTOS操作系统的多线程任务调度顺序调用所述编号对应的步进电机。具体地,各步进电机可以同时运转,也可以当一路步进电机运转结束后下一路步进电机再运转,也可以部分步进电机同时运转、部分步进电机挨个依次运转;FreeRTOS操作系统采用时间片轮转调度的方式实现多线程任务调度。步骤3:根据所述运转参数,以tan_sigmoid电机控制函数分别控制多路步进电机进行相应的加减速运转。具体地,为了克服失步、过冲现象,采用tan_sigmoid电机控制函数控制步进电机平稳加速和减速。步骤4:当检测到多路步进电机全部完成所述指令时,向上位机返回任务完成信息。本实施例中,通过FreeRTOS操作系统的任务调度来控制步进电机运转,由于FreeRTOS操作系统的任务调度时间非常短,多个任务之间相互切换的速度非常快,调用多路步进电机可以视为并行同时执行,步进电机响应迅速,多路步进电机同步运转,实现步进电机控制系统中步进电机的实时响应,大幅提高了步进电机控制系统的工作效率;通过装载FreeRTOS操作系统的嵌入式处理器来同步控制多路步进电机,系统结构简单,成本较低,适于大范围推广;以tan_sigmoid电机控制函数控制步进电机先加速运转,达到指定速度后匀速运转,在最后预计的步数内减速运转,使步进电机运转过程中加速度变化更平缓,避免运转过程中加速度突变导致的失步和过冲。优选地,所述步骤1之前包括如下步骤:预先进行FreeRTOS操作系统的移植。顺序进行硬件初始化。创建所述FreeRTOS操作系统的开始任务,所述开始任务包括以太网口的任务以及与多路步进电机一一对应的电机控制任务,所述电机控制任务用于调用所述tan_sigmoid电机控制函数。具体地,FreeRTOS移植需要在原有工程基础上添加系统内核文件,并进行内核文件、启动代码的修改和配置。首先下载FreeRTOS操作系统的官方源代码,选择相对应的嵌入式处理器的demo,demo中包括FreeRTOSConfig.h文件,将整个demo复制到嵌入式处理器中。然后对文件进行配置,配置部分具体分为8个选项:基础配置选项,内存申请配置选项,钩子有关函数配置选项,运行时间和任务状态收集有关选项,软件定时器有关配置选项,可选函数有关配置选项,中断有关配置选项和中本文档来自技高网...

【技术保护点】
1.一种基于嵌入式处理器的多路步进电机控制方法,其特征在于,所述方法包括:步骤1:接收上位机发送的指令,所述指令包括需要调用的多路步进电机的编号、多路步进电机间的运转顺序和各步进电机对应的运转参数;步骤2:根据所述运转顺序,通过FreeRTOS操作系统的多线程任务调度顺序调用所述编号对应的步进电机;步骤3:根据所述运转参数,以tan_s igmoid电机控制函数分别控制多路步进电机进行相应的加减速运转;步骤4:当检测到多路步进电机全部完成所述指令时,向上位机返回指令完成信息。

【技术特征摘要】
2018.06.20 CN 20181063813591.一种基于嵌入式处理器的多路步进电机控制方法,其特征在于,所述方法包括:步骤1:接收上位机发送的指令,所述指令包括需要调用的多路步进电机的编号、多路步进电机间的运转顺序和各步进电机对应的运转参数;步骤2:根据所述运转顺序,通过FreeRTOS操作系统的多线程任务调度顺序调用所述编号对应的步进电机;步骤3:根据所述运转参数,以tan_sigmoid电机控制函数分别控制多路步进电机进行相应的加减速运转;步骤4:当检测到多路步进电机全部完成所述指令时,向上位机返回指令完成信息。2.根据权利要求1所述的基于嵌入式处理器的多路步进电机控制方法,其特征在于,所述步骤1之前包括如下步骤:预先进行所述FreeRTOS操作系统的移植;顺序进行硬件初始化;创建所述FreeRTOS操作系统的开始任务,所述开始任务包括与多路步进电机一一对应的电机控制任务,所述电机控制任务用于调用所述tan_sigmoid电机控制函数。3.根据权利要求2所述的基于嵌入式处理器的多路步进电机控制方法,其特征在于,所述步骤2的具体实现为:根据所述运转顺序,在所述FreeRTOS操作系统上通过时间片轮转调度实现多线程任务调度,依次调用所述编号对应的多路步进电机的所述电机控制任务。4.根据权利要求3所述的基于嵌入式处理器的多路步进电机控制方法,其特征在于,所述运转参数包括步进电机的运转频率和运转步数,所述步骤3具体包括:步骤3.1:根据步进电机的所述运转频率,通过步进电机对应的所述电机控制任务调用所述tan_sigmoid电机控制函数;步骤3.2:以所述tan_sigmoid电机控制函数控制步进电机加速运转,加速过程中步进电机的速度曲线呈S型向上延伸;步骤3.3:当步进电机达到指定速度时,控制步进电机匀速运转;步骤3.4:在最后预计的所述运转步数内控制步进电机减速运转,减速过程中步进电机的速度曲线为加速过程中的速度曲线的镜像曲线。5.根据权利要求4所述的基于嵌入式处理器的多路步进电机控制方法,其特征在于,所述步骤4的具体实现为:当检测到调用的步进电机全部运转完所述步数时,生成指令完成信息,并将所述指令完...

【专利技术属性】
技术研发人员:宋树祥王宜瑜
申请(专利权)人:广西师范大学
类型:发明
国别省市:广西,45

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1