本发明涉及自动控制,尤其涉及一种步进电机控制方法、装置、设备及可读存储介质。
背景技术:
1、步进电机作为执行元件,是机电一体化的关键产品之一,广泛应用在各种自动化控制系统中。虽然步进电机因其具有较高控制精度的特点而被广泛应用,但是在步进电机的转动过程中却经常出现丢步的情况,导致步进电机无法到达指定位置。
技术实现思路
1、本发明的主要目的在于提供一种步进电机控制方法、装置、设备及可读存储介质,旨在解决现有技术中,步进电机丢步导致步进电机无法到达指定位置的问题。
2、第一方面,本发明提供一种步进电机控制方法,所述步进电机控制方法包括:
3、获取步进电机从起始位置转动到目标位置时的第一转动步数以及步进电机从起始位置转动到当前位置时的第二转动步数,其中,当步进电机堵转时,以步进电机上任一点对应的位置作为检测位置,以检测位置作为步进电机转动的起始位置,当前位置与目标位置不重合;
4、根据所述第一转动步数、所述第二转动步数以及步进电机转动一圈的步数计算得到步进电机从起始位置转动到最后一次过检测位置时的实际转动步数;
5、比较步进电机从起始位置转动到最后一次过检测位置时的实际转动步数与步进电机从起始位置转动到最后一次过检测位置时的理论转动步数是否相等;
6、若比较结果为所述实际转动步数与所述理论转动步数不相等,则基于所述实际转动步数、所述理论转动步数、所述第一转动步数以及所述第二转动步数控制步进电机转动。
7、可选的,所述根据所述第一转动步数、所述第二转动步数以及步进电机转动一圈的步数计算得到步进电机从起始位置转动到最后一次过检测位置时的实际转动步数的步骤,包括:
8、比较所述第一转动步数与所述第二转动步数之间的大小;
9、若所述第一转动步数大于所述第二转动步数,则检测所述第一转动步数是否是步进电机转动一圈的整数倍;
10、若第一转动步数是步进电机转动一圈的整数倍,则计算第一转动步数除以步进电机转动一圈的步数的商,计算在上述商的基础上取整减一的差值与步进电机转动一圈的步数的乘积,以所述乘积作为步进电机从起始位置转动到最后一次过检测位置时的实际转动步数;
11、若第一转动步数不是步进电机转动一圈的整数倍,则计算对第一转动步数除以步进电机转动一圈的步数的商取整后乘以步进电机转动一圈的步数的积,得到步进电机从起始位置转动到最后一次过检测位置时的实际转动步数。
12、可选的,在所述比较所述第一转动步数与所述第二转动步数之间的大小的步骤之后,包括:
13、若所述第二转动步数大于所述第一转动步数,则检测所述第一转动步数是否是步进电机转动一圈的整数倍;
14、若第一转动步数是步进电机转动一圈的整数倍,则计算第一转动步数除以步进电机转动一圈的步数的商,计算在上述商的基础上取整加一的和与步进电机转动一圈的步数的乘积,以所述乘积作为步进电机从起始位置转动到最后一次过检测位置时的实际转动步数;
15、若第一转动步数不是步进电机转动一圈的整数倍,则计算对第一转动步数除以步进电机转动一圈的步数的商取整加一后与步进电机转动一圈的步数的乘积,得到步进电机从起始位置转动到最后一次过检测位置时的实际转动步数。
16、可选的,所述基于所述实际转动步数、所述理论转动步数、所述第一转动步数以及所述第二转动步数控制步进电机转动的步骤,包括:
17、计算所述实际转动步数与所述理论转动步数差值的绝对值,得到步进电机的补偿转动步数;
18、计算所述第一转动步数与所述第二转动步数差值的绝对值,得到步进电机的运行步数;
19、计算步进电机的补偿转动步数加上步进电机的运行步数的和,得到步进电机的总运行步数;
20、控制步进电机转动所述总运行步数。
21、可选的,在所述基于所述实际转动步数、所述理论转动步数、所述第一转动步数以及所述第二转动步数控制步进电机转动的步骤之前,包括:
22、统计步进电机收到的驱动指令的次数,以所述次数作为步进电机的理论转动步数。
23、第二方面,本发明还提供一种步进电机控制装置,所述步进电机控制装置包括:
24、获取模块,用于获取步进电机从起始位置转动到目标位置时的第一转动步数以及步进电机从起始位置转动到当前位置时的第二转动步数,其中,当步进电机堵转时,以步进电机上任一点对应的位置作为检测位置,以检测位置作为步进电机转动的起始位置,当前位置与目标位置不重合;
25、计算模块,用于根据所述第一转动步数、所述第二转动步数以及步进电机转动一圈的步数计算得到步进电机从起始位置转动到最后一次过检测位置时的实际转动步数;
26、比较模块,用于比较步进电机从起始位置转动到最后一次过检测位置时的实际转动步数与步进电机从起始位置转动到最后一次过检测位置时的理论转动步数是否相等;
27、转动模块,用于若比较结果为所述实际转动步数与所述理论转动步数不相等,则基于所述实际转动步数、所述理论转动步数、所述第一转动步数以及所述第二转动步数控制步进电机转动。
28、可选的,所述计算模块,用于:
29、比较所述第一转动步数与所述第二转动步数之间的大小;
30、若所述第一转动步数大于所述第二转动步数,则检测所述第一转动步数是否是步进电机转动一圈的整数倍;
31、若第一转动步数是步进电机转动一圈的整数倍,则计算第一转动步数除以步进电机转动一圈的步数的商,计算在上述商的基础上取整减一的差值与步进电机转动一圈的步数的乘积,以所述乘积作为步进电机从起始位置转动到最后一次过检测位置时的实际转动步数;
32、若第一转动步数不是步进电机转动一圈的整数倍,则计算对第一转动步数除以步进电机转动一圈的步数的商取整后乘以步进电机转动一圈的步数的积,得到步进电机从起始位置转动到最后一次过检测位置时的实际转动步数。
33、可选的,所述转动模块,用于:
34、计算所述实际转动步数与所述理论转动步数差值的绝对值,得到步进电机的补偿转动步数;
35、计算所述第一转动步数与所述第二转动步数差值的绝对值,得到步进电机的运行步数;
36、计算步进电机的补偿转动步数加上步进电机的运行步数的和,得到步进电机的总运行步数;
37、控制步进电机转动所述总运行步数。
38、第三方面,本发明还提供一种步进电机控制设备,所述步进电机控制设备包括处理器、存储器、以及存储在所述存储器上并可被所述处理器执行的步进电机控制程序,其中所述步进电机控制程序被所述处理器执行时,实现如上所述的步进电机控制方法的步骤。
39、第四方面,本发明还提供一种可读存储介质,所述可读存储介质上存储有步进电机控制程序,其中所述步进电机控制程序被处理器执行时,实现如上所述的步进电机控制方法的步骤。
40、本发明中,获取步进电机从起始位置转动到目标位置时的第一转动步数以及步进电机从起始位置转动到当前位置时的第二转动步数,其中,当步进电机堵转时,以步进电机上任一点对应的位置作为检测位置,以检测位置作为步进电机转动的起始位置,当前位置与目标位置不重合;根据所述第一转动步数、所述第二转动步数以及步进电机转动一圈的步数计算得到步进电机从起始位置转动到最后一次过检测位置时的实际转动步数;比较步进电机从起始位置转动到最后一次过检测位置时的实际转动步数与步进电机从起始位置转动到最后一次过检测位置时的理论转动步数是否相等;若比较结果为所述实际转动步数与所述理论转动步数不相等,则基于所述实际转动步数、所述理论转动步数、所述第一转动步数以及所述第二转动步数控制步进电机转动。通过本发明,根据步进电机从起始位置转动到目标位置时的第一转动步数、步进电机从起始位置转动到当前位置时的第二转动步数以及步进电机转动一圈的步数计算得到步进电机最后一次过检测位置时距离起始位置的实际转动步数之后,将步进电机最后一次过检测位置时距离起始位置的实际转动步数与理论转动步数进行比较,根据比较结果确定步进电机是否丢步,若丢步,则基于实际转动步数和理论转动步数可计算得到步进电机丢失的步数,再基于步进电机丢失的步数、第一转动步数以及第二转动步数控制步进电机转动,即可保证步进电机到达目标位置,减少了因步进电机丢步导致步进电机无法到达指定位置的情况发生的概率。