CN101625559B - 一种伺服电机位置控制方法 - Google Patents
一种伺服电机位置控制方法 Download PDFInfo
- Publication number
- CN101625559B CN101625559B CN2009101014231A CN200910101423A CN101625559B CN 101625559 B CN101625559 B CN 101625559B CN 2009101014231 A CN2009101014231 A CN 2009101014231A CN 200910101423 A CN200910101423 A CN 200910101423A CN 101625559 B CN101625559 B CN 101625559B
- Authority
- CN
- China
- Prior art keywords
- counter
- counting
- count value
- control program
- value
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Landscapes
- Control Of Position Or Direction (AREA)
Abstract
本发明公开了一种伺服电机位置控制方法,通过将计数器与计数控制程序结合使用,且在计数控制程序中预先设置一个目标计数值,当目标计数值与已计数的总计数值之差大于计数器的最大计数值时,计数控制程序控制计数器清零重新开始计数,当目标计数值与已计数的总计数值之差小于等于计数器的最大计数值时,计数控制程序控制计数器以计数器的最大计数值减去目标计数值与已计数的总计数值之差的结果为计数初值继续计数,在计数器的计数值超出计数器的最大计数值时计数器产生溢出信号,这样通过计数器与计数控制程序配合实现脉冲个数的计数,在保证计数精度的同时,有效提高了计数速度,适应于高精度高速度计数的要求,同时降低了硬件成本。
Description
技术领域
本发明涉及一种伺服电机控制方法,尤其是涉及一种伺服电机位置控制方法。
背景技术
伺服电机又称执行电动机,在自动控制系统中用作执行元件,伺服电机具有精度高、速度快、可靠性高、操作性好等优点。
伺服电机一般是由脉冲信号驱动的,其转动的角度是由脉冲信号的脉冲个数决定的,这就需要一个高精度的计数器来对脉冲信号的脉冲个数进行精确计数以确定伺服电机的位置,同时由于可能计数的脉冲个数较多,这样要求该高精度的计数器同时具有较多的位数。目前,对脉冲信号的脉冲个数进行计数通常采用两种方法,第一种方法:直接采用市售的计数器,将该计数器与用于产生脉冲信号的可编程信号发生器连接,可编程信号发生器与伺服电机连接,开启可编程信号发生器,可编程信号发生器产生脉冲信号和方向信号,并将脉冲信号和方向信号同时传输给伺服电机和计数器,输入到伺服电机的脉冲信号驱动伺服电机工作,输入到计数器的脉冲信号作为计数器的计数信号,计数器通过计数信号对输入到伺服电机的脉冲信号的脉冲个数进行计数,并保存计数值,当保存的计数值到达预设的目标计数值时,计数器向可编程信号发生器输出溢出信号,该溢出信号控制可编程信号发生器停止工作即停止输出脉冲信号,从而使得伺服电机也停止工作,有效地实现了对伺服电机的转动角度即位置的控制,在该方法中计数器可采用市售的型号为8253的计数器或型号为8254的计数器等;第二种方法:直接利用计数控制程序来进行脉冲个数的计数,当计数控制程序中所计的计数值到达预设的目标计数值时,计数控制程序控制可编程信号发生器停止向伺服电机传输脉冲信号。上述第一种方法虽然能够有效保证对脉冲信号的脉冲个数的计数精度,也可通过采用不同位数的计数器满足不同的计数位数要求,但在计数的脉冲个数较多的情况下,要求计数器具有较多的位数,这样随着计数器位数的增加必然使成本急剧提高,而且随着计数器位数的增加也将大大降低计数速度,无法适应高速计数的要求;第二种方法由于利用了计数控制程序,所以不像第一种方法中的计数器存在位数的限制,其在位数上可以随意增加,适用于需计数较多脉冲个数的情况,另一方面由于无需采用现有的计数器进行计数,所以大大降低了硬件开支,但利用计数控制程序进行计数存在计数精度不高这一致命的缺陷,无法适应高精度计数的要求,另外,随着位数的增加也将降低计数速度,无法适应高速计数的要求,也无法适应实时要求。
发明内容
本发明所要解决的技术问题是提供一种保证计数精度的同时,能够增加计数位数并有效提高计数速度,适应高精度高速度计数的要求,且硬件成本较低的伺服电机位置控制方法。
本发明解决上述技术问题所采用的技术方案为:一种伺服电机位置控制方法,将用于产生脉冲信号的可编程信号发生器分别与伺服电机和计数器连接,再将计数器与一个具有计数控制程序的控制器连接,计数控制程序中预先设置有一个目标计数值,当目标计数值与已计数的总计数值之差大于计数器的最大计数值时,计数控制程序控制计数器清零重新开始计数,当目标计数值与已计数的总计数值之差小于等于计数器的最大计数值时,计数控制程序控制计数器以计数器的最大计数值减去目标计数值与已计数的总计数值之差的结果为计数初值继续计数,在计数器的计数值超出计数器的最大计数值时计数器产生溢出信号,可编程信号发生器在溢出信号的作用下停止产生脉冲信号,达到对伺服电机位置的控制,该伺服电机位置控制方法的具体步骤为:
①在计数控制程序中预先设置一个用于标示伺服电机转动角度的目标计数值、一个总计数值及一个中间变量值,记目标计数值为total,记总计数值为sum,记中间变量值为sum′,其中,sum的初始值为0,sum′的初始值为0;
②开启可编程信号发生器、计数器、控制器及伺服电机,控制器中的计数控制程序控制计数器清零,同时清除计数器的溢出信号,使可编程信号发生器开始产生可变频率的脉冲信号和方向信号,可编程信号发生器将其产生的脉冲信号和方向信号同时传输给伺服电机和计数器,输入到伺服电机的脉冲信号驱动伺服电机开始工作,输入到计数器的脉冲信号作为计数信号使计数器开始脉冲个数的计数;
③当计数器对脉冲个数进行计数所经历的计数时间到达设定的时间间隔时,计数控制程序读取计数器当前的计数值,记为a,然后将计数器当前的计数值a与总计数值sum相加,并将相加的结果保存到中间变量值sum′中,再将中间变量值sum′赋值给总计数值sum;
④计数控制程序计算目标计数值total与总计数值sum之差,记为b,判断目标计数值total与总计数值sum之差b是否大于计数器的最大计数值,如果是,则计数控制程序控制计数器清零重新开始计数,并返回执行步骤③,否则,计数控制程序计算计数器的最大计数值减去目标计数值total与总计数值sum之差b的结果,记为c,计数控制程序控制计数器以结果c为计数初值继续计数,当计数器的计数值超出计数器的最大计数值时,计数器产生溢出信号,并将溢出信号传输给可编程信号发生器,可编程信号发生器接收到溢出信号后停止产生脉冲信号和方向信号,实现对伺服电机位置的精确控制。
所述的计数器采用现有市售的计数位数大于等于8位且小于等于16位的计数器。
所述的计数器采用现有市售的计数位数为8位的计数器,所述的8位的计数器的最大计数值为255。
所述的计数器采用现有市售的最大计数值在100~65535范围内的计数器。
所述的步骤③中设定的时间间隔为计数器计数的脉冲个数小于计数器的最大计数值时计数器计数所经历的计数时间。
所述的计数器采用现有市售的计数位数为8位的计数器,所述的步骤③中设定的时间间隔为计数器计数的脉冲个数在50~250范围内时计数器计数所经历的计数时间。
所述的计数器采用现有市售的计数位数为8位的计数器,所述的步骤③中设定的时间间隔为计数器计数的脉冲个数为100时计数器计数所经历的计数时间。
与现有技术相比,本发明的优点在于通过将计数器与计数控制程序结合使用,且在计数控制程序中预先设置一个目标计数值,当目标计数值与已计数的总计数值之差大于计数器的最大计数值时,计数控制程序控制计数器清零重新开始计数,当目标计数值与已计数的总计数值之差小于等于计数器的最大计数值时,计数控制程序控制计数器以计数器的最大计数值减去目标计数值与已计数的总计数值之差的结果为计数初值继续计数,在计数器的计数值超出计数器的最大计数值(如8位计数器的最大计数值为255)时即计数器的计数值到达计数器的模值(8位计数器的模值为256)时计数器产生溢出信号,可编程信号发生器在溢出信号的作用下停止产生脉冲信号,达到了对伺服电机位置的控制,由于计数器具有计数速度快、计数精度高,而计数控制程序具有控制灵活性好且可根据需要随意增加计数位数,因而在保证了计数精度和计数速度的同时,有效提高了计数位数,适应于高精度高速度计数且需计数较多脉冲个数的场合,从而可实现对伺服电机位置的精确控制;另外,由于使用了计数控制程序来分担计数,使得对计数器的位数的要求降低,从而有效降低了硬件成本,对计数长度无要求;同时也正好完成对计数控制程序的监视功能,当计数控制程序出现故障或速度过慢时,计数器溢出产生溢出信号,溢出信号使可编程信号发生器停止产生脉冲信号,此时伺服电机在没有脉冲信号的驱动下也停止了工作,从而有效防止了伺服电机的飞车。
附图说明
图1为本发明方法中各部件的连接示意图;
图2为本发明方法的流程框图。
具体实施方式
以下结合附图实施例对本发明作进一步详细描述。
在对伺服电机的位置进行控制时,如果纯粹使用计数器来实现,则随着计数器位数的增加,将导致计数速度的降低,同时将增加硬件成本,如果纯粹使用计数控制程序来实现,则存在计数精度不高的问题。为能够在保证计数精度的同时,提高计数速度,以适应高精度高速度计数的要求,同时降低硬件成本,本发明提出了一种伺服电机位置控制方法。
本发明方法将用于产生脉冲信号的可编程信号发生器分别与伺服电机和计数器连接,再将计数器与一个具有计数控制程序的控制器连接,如图1所示,在此可编程信号发生器采用现有技术,可编程信号发生器可以由外部信号来控制是否产生脉冲信号及信号的频率,在此具体实施例中可编程信号发生器由计数器的溢出信号来控制是否产生脉冲信号,控制器可以为PC机或普通芯片,但在PC机上需事先安装好计数控制程序或在普通芯片上烧录有计数控制程序。在计数控制程序中预先设置一个目标计数值,当目标计数值与已计数的总计数值之差大于计数器的最大计数值时,计数控制程序控制计数器清零重新开始计数,当目标计数值与已计数的总计数值之差小于等于计数器的最大计数值时,计数控制程序控制计数器以计数器的最大计数值减去目标计数值与已计数的总计数值之差的结果为计数初值继续计数,这样通过计数器与计数控制程序配合实现脉冲个数的计数,不仅保证了计数精度,而且提高了计数速度,实际上可以将计数器看成是一个低位计数器,而将计数控制程序看成是一个经过计算的高位计数器,该高位计数器同时具有控制低位计数器的功能。本发明方法如图2所示,其具体步骤如下:
①在计数控制程序中预先设置一个用于标示伺服电机转动角度的目标计数值、一个总计数值及一个中间变量值,记目标计数值为total,记总计数值为sum,记中间变量值为sum′,其中,sum的初始值为0,sum′的初始值为0。在此具体实施例中计数器可采用现有市售的计数位数大于6位且小于等于16位的计数器,也可根据最大计数值确定计数器如采用现有市售的最大计数值在100~65535范围内的计数器,采用这些计数器既可保证计数速度,也有效控制了硬件开支。在实际应用过程中一般可采用计数位数为8位的计数器,由于计数器中一般是从0开始计数的,因此8位计数器的最大计数值为28-1=256-1=255。
②开启可编程信号发生器、计数器、控制器及伺服电机的电源,控制器中的计数控制程序控制计数器清零,同时清除计数器的溢出信号,在计数器没有产生溢出信号时可编程信号发生器开始工作,产生可变频率的脉冲信号和方向信号,可编程信号发生器将其产生的脉冲信号和方向信号同时传输给伺服电机和计数器,即将脉冲信号和方向信号一路传输给伺服电机,另一路传输给计数器,输入到伺服电机的脉冲信号驱动伺服电机开始工作,输入到计数器的脉冲信号作为计数信号使计数器开始脉冲个数的计数。溢出信号用于控制可编程信号发生器的开关,在此无溢出信号时,可编程信号发生器工作产生脉冲信号和方向信号,计数器产生溢出信号时,可编程信号发生器停止产生脉冲信号和方向信号。
③当计数器对脉冲个数进行计数所经历的计数时间到达设定的时间间隔时,计数控制程序读取计数器当前的计数值,记为a,然后将计数器当前的计数值a与总计数值sum相加,并将相加的结果保存到中间变量值sum′中,再将中间变量值sum′赋值给总计数值sum,可表达为:sum′=sum+a,sum=sum′。在此,设定的时间间隔为计数器计数的脉冲个数小于计数器的最大计数值时计数器计数所经历的计数时间,由于设定的时间间隔太大时,计数器容易溢出,这样计数器产生的溢出信号将控制可编程信号发生器停止工作,在还未计数到目标计数值total时就终止了计数过程,设定的时间间隔太小时,计数控制程序读取计数器的计数值的频率太高,将影响实时性,因此设定的时间间隔可取计数器计数的脉冲个数小于计数器的最大计数值时计数器计数所经历的计数时间。采用8位计数器时,8位计数器的最大计数值为255,这样设定的时间间隔最大即为255个脉冲的计数时间,但实际应用过程中最好小于255个脉冲的计数时间,如设定的时间间隔可取计数器计数的脉冲个数在50~250范围内时计数器计数所经历的计数时间,这样可保证计数控制程序在计数器溢出之前就读取了计数器当前的计数值且控制了计数器清零重新计数,也可保证计数的实时性,在此具体实施例中,设定的时间间隔取计数器计数的脉冲个数为100时计数器计数所经历的计数时间。
④计数控制程序计算目标计数值total与总计数值sum之差,记为b,即b=total-sum,判断目标计数值total与总计数值sum之差b是否大于计数器的最大计数值,如果是,则计数控制程序控制计数器清零重新开始计数,并返回执行步骤③,否则,计数控制程序计算计数器的最大计数值减去目标计数值total与总计数值sum之差b的结果,记为c,计数控制程序控制计数器以结果c为计数初值继续计数,当计数器的计数值超出计数器的最大计数值时,计数器产生溢出信号,并将溢出信号传输给可编程信号发生器,可编程信号发生器接收到溢出信号后停止产生脉冲信号和方向信号,此时伺服电机在没有脉冲信号的驱动下也停止了工作,实现对伺服电机位置的精确控制。在此,计数器产生溢出信号时总计数值sum刚好达到目标计数值total。
本发明方法通过将计数器与计数控制程序结合使用,利用计数器产生的溢出信号来控制可编程信号发生器的开关,完成精确计数,降低了对计数控制程序进行计数的实时性要求,利用计数控制程序增加计数位数和控制灵活性,满足了较多脉冲个数的计数情况,降低了硬件成本。此外,将计数器与计数控制程序结合使用还存在一个优点,即当计数控制程序由于某种原因出现程序“跑飞”时,能够自动使可编程信号发生器停止输出脉冲信号,其实现原理是:计数控制程序“跑飞”以后,就不会定时对计数器进行清零,这样计数器的计数值就会不断地增加,当计数值增加到计数器的最大计数值时就会发生溢出,此时计数器产生溢出信号使可编程信号发生器停止产生脉冲信号。
Claims (6)
1.一种伺服电机位置控制方法,其特征在于将用于产生脉冲信号的可编程信号发生器分别与伺服电机和计数器连接,再将计数器与一个具有计数控制程序的控制器连接,计数控制程序中预先设置有一个目标计数值,当目标计数值与已计数的总计数值之差大于计数器的最大计数值时,计数控制程序控制计数器清零重新开始计数,当目标计数值与已计数的总计数值之差小于等于计数器的最大计数值时,计数控制程序控制计数器以计数器的最大计数值减去目标计数值与已计数的总计数值之差的结果为计数初值继续计数,在计数器的计数值超出计数器的最大计数值时计数器产生溢出信号,可编程信号发生器在溢出信号的作用下停止产生脉冲信号,达到对伺服电机位置的控制,该伺服电机位置控制方法的具体步骤为:
①在计数控制程序中预先设置一个用于标示伺服电机转动角度的目标计数值、一个总计数值及一个中间变量值,记目标计数值为total,记总计数值为sum,记中间变量值为sum′,其中,sum的初始值为0,sum′的初始值为0;
②开启可编程信号发生器、计数器、控制器及伺服电机,控制器中的计数控制程序控制计数器清零,同时清除计数器的溢出信号,使可编程信号发生器开始产生可变频率的脉冲信号和方向信号,可编程信号发生器将其产生的脉冲信号和方向信号同时传输给伺服电机和计数器,输入到伺服电机的脉冲信号驱动伺服电机开始工作,输入到计数器的脉冲信号作为计数信号使计数器开始脉冲个数的计数;
③当计数器对脉冲个数进行计数所经历的计数时间到达设定的时间间隔时,计数控制程序读取计数器当前的计数值,记为a,然后将计数器当前的计数值a与总计数值sum相加,并将相加的结果保存到中间变量值sum′中,再将中间变量值sum′赋值给总计数值sum;在此,设定的时间间隔为计数器计数的脉冲个数小于计数器的最大计数值时计数器计数所经历的计数时间;
④计数控制程序计算目标计数值total与总计数值sum之差,记为b,判断目标计数值total与总计数值sum之差b是否大于计数器的最大计数值,如果是,则计数控制程序控制计数器清零重新开始计数,并返回执行步骤③,否则,计数控制程序计算计数器的最大计数值减去目标计数值total与总计数值sum之差b的结果,记为c,计数控制程序控制计数器以结果c为计数初值继续计数,当计数器的计数值超出计数器的最大计数值时,计数器产生溢出信号,并将溢出信号传输给可编程信号发生器,可编程信号发生器接收到溢出信号后停止产生脉冲信号和方向信号,实现对伺服电机位置的精确控制。
2.根据权利要求1所述的一种伺服电机位置控制方法,其特征在于所述的计数器采用现有市售的计数位数大于等于8位且小于等于16位的计数器。
3.根据权利要求2所述的一种伺服电机位置控制方法,其特征在于所述的计数器采用现有市售的计数位数为8位的计数器,所述的8位的计数器的最大计数值为255。
4.根据权利要求1所述的一种伺服电机位置控制方法,其特征在于所述的计数器采用现有市售的最大计数值在100~65535范围内的计数器。
5.根据权利要求1所述的一种伺服电机位置控制方法,其特征在于所述的计数器采用现有市售的计数位数为8位的计数器,所述的步骤③中设定的时间间隔为计数器计数的脉冲个数在50~250范围内时计数器计数所经历的计数时间。
6.根据权利要求5所述的一种伺服电机位置控制方法,其特征在于所述的计数器采用现有市售的计数位数为8位的计数器,所述的步骤③中设定的时间间隔为计数器计数的脉冲个数为100时计数器计数所经历的计数时间。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2009101014231A CN101625559B (zh) | 2009-08-04 | 2009-08-04 | 一种伺服电机位置控制方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2009101014231A CN101625559B (zh) | 2009-08-04 | 2009-08-04 | 一种伺服电机位置控制方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101625559A CN101625559A (zh) | 2010-01-13 |
CN101625559B true CN101625559B (zh) | 2011-04-13 |
Family
ID=41521433
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2009101014231A Expired - Fee Related CN101625559B (zh) | 2009-08-04 | 2009-08-04 | 一种伺服电机位置控制方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101625559B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106151994A (zh) * | 2016-07-13 | 2016-11-23 | 孙宝石 | 可升降吊灯及升降控制方法和精确调节灯具缆线长度方法 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1336727A (zh) * | 2001-07-06 | 2002-02-20 | 中国科学院上海冶金研究所 | 一种脉冲计数方法 |
-
2009
- 2009-08-04 CN CN2009101014231A patent/CN101625559B/zh not_active Expired - Fee Related
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1336727A (zh) * | 2001-07-06 | 2002-02-20 | 中国科学院上海冶金研究所 | 一种脉冲计数方法 |
Non-Patent Citations (2)
Title |
---|
JP特开2005-210610A 2005.08.04 |
赵静.扩大计数器计数值的方法.《机床电器》.2002,(第01期),第37-38页. * |
Also Published As
Publication number | Publication date |
---|---|
CN101625559A (zh) | 2010-01-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107850887B (zh) | S型曲线规划方法、装置及数控机床 | |
CN102167065A (zh) | 一种列车停车控制方法及系统 | |
DE102017124182B4 (de) | Regelvorrichtung für ein Handlinggerät | |
US20180229368A1 (en) | Automatic trajectory generation for controlling a drive system | |
CN103197577B (zh) | 机器人控制器脉冲同步调整方法及装置 | |
CN101625559B (zh) | 一种伺服电机位置控制方法 | |
WO2011120803A2 (de) | Modulare struktur zur datenverarbeitung | |
CN108646674A (zh) | 位置s型平滑指令产生方法、系统和电子设备 | |
CN104932540A (zh) | 一种伺服驱动器的位置控制方法 | |
US8532813B2 (en) | Method of controlling thread cutting | |
CN102566496B (zh) | 适用于数控装置的进给速度动态实时前瞻控制方法 | |
CN104518710A (zh) | 一种多轴电机同步控制方法及多轴电机同步控制系统 | |
CN203609721U (zh) | 一种具有速度修正功能的自动注射装置用驱动滑台 | |
CN102975087B (zh) | 滚刀磨削机 | |
CN103441711B (zh) | 一种实现平面运动的伺服或步进电机控制系统及控制方法 | |
WO2016050089A1 (zh) | 玉米去雄机去雄作业响应参数实时调节控制系统及控制方法 | |
CN1280686C (zh) | 数控方法及其装置 | |
DE2334455B2 (de) | Schaltungsanordnung zum Abbremsen eines numerisch gesteuerten Antriebssystems | |
EP2505965A2 (de) | Verfahren und Überwachungseinheit zur Überprüfung von Positionswerten | |
CN109760053B (zh) | 一种桁架机械手的动态规划速度控制方法 | |
CN107918355A (zh) | 一种数控机床攻牙控制系统及其控制方法 | |
CN110421247B (zh) | 一种用于薄脆材料的超快激光等距离打点加工方法 | |
CN201851021U (zh) | 牙轮钻机平台调平控制系统 | |
CN104624667A (zh) | 限动芯棒连轧管机芯棒插入阶段控制方法 | |
CN110262386B (zh) | 一种连续运转冷床的控制方法、系统以及计算机设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
C17 | Cessation of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20110413 Termination date: 20130804 |