失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > 数值控制装置及其控制方法与流程

数值控制装置及其控制方法与流程

时间:2019-05-02 06:26:40

相关推荐

数值控制装置及其控制方法与流程

本发明涉及一种数值控制装置及其控制方法。

背景技术:

机床的数值控制装置沿着对nc(numericalcontrol:数值控制)程序所指示的指令点进行插值从而得到的路径来移动刀具或被切削件以进行加工。数值控制装置进行加减速控制,该加减速控制用于进行平滑的加减速以抑制机床的振动。作为加减速控制,有插值后加减速。插值后加减速是如下的方法:在将机床上的路径以驱动脉冲分配给每个可动轴之后,应用利用了移动平均滤波器等的加减速处理。该方法计算简单且稳定性高,但是存在以下问题:当机床的速度变快时,相对于路径的误差变大。在日本专利公开1983年第35607号公报中记载有能够减小相对于路径的误差且高速移动的技术。该技术如下:根据nc程序所指示的被切削件形状和容许误差,在执行一个控制指令之后,延缓用于执行下一个控制指令的脉冲分配运算的开始时机。脉冲分配运算是指对每个可动轴分配路径方向的驱动脉冲的运算。在该技术中,首先利用规定的运算式和多个参数来运算加工误差。接着,根据存储有所运算出的该加工误差同容许误差之差与延缓开始脉冲分配运算的延迟时间的对应关系的表,求出与加工误差同容许误差之差相应的延迟时间。前述的技术存在以下问题:对于加工误差同容许误差之差与延迟时间的对应关系,必须预先运算所设想的全部模式并全部存储在表中,因此作业繁杂,并存储器的用于存储的区域消耗得多。并且,前述的公报没有公开基于加工误差同容许误差之差来运算延迟时间的方法。因此,期望开发如下一种数值控制装置:能够不使用表且以小的计算负荷将刀具移动的路径相对于nc程序所指示的路径的误差始终控制在容许误差内。

技术实现要素:

本发明的目的在于提供一种能够以小的计算负荷将相对于nc程序的路径的误差始终控制在容许误差内的数值控制装置及其控制方法。

技术方案1的数值控制装置沿着对nc程序所指示的多个指令点中的邻接的指令点进行插值从而得到的路径,来移动刀具或被切削件以执行切削加工,该数值控制装置的特征在于,所述nc程序具有多个包括控制指令的块,所述数值控制装置具备:块间角度运算部,其运算块间角度,该块间角度是所述nc程序中的按本次的插值指令进行插值的第一块与按上次的插值指令进行了插值的第二块之间的角度;速度决定部,其决定出所述第一块中的指示所述刀具或所述被切削件的移动速度的指令速度和所述第二块中的指示所述刀具或所述被切削件的移动速度的指令速度中的大的指令速度;运算部,其基于移动所述刀具或被切削件的电动机的加减速时间常数、对所述路径容许的容许误差、所述块间角度运算部所运算出的块间角度以及所述速度决定部所决定出的速度,来运算使所述电动机开始所述本次的插值指令的时机;以及执行部,其基于所述运算部所运算出的所述时机,使所述电动机执行所述本次的插值指令。因此,数值控制装置能够使用加减速时间常数、容许误差、指令速度、块间角度的各种参数,来以小的计算负荷将相对于nc程序所指示的刀具移动路径的误差始终控制在容许误差内。

技术方案2的数值控制装置的特征在于,在所述第一块和所述第二块中的至少一方的块是进行圆弧插值的圆弧插值块时,所述数值控制装置具备:圆弧速度运算部,其基于与所述圆弧插值块对应的圆弧插值指令所指示的指令圆弧的圆弧半径、所述容许误差以及所述加减速时间常数,来运算在所述圆弧插值块中所述刀具或被切削件移动的圆弧速度;以及指令速度设定部,其将所述圆弧速度运算部所运算出的所述圆弧速度与所述圆弧插值块中的指示所述刀具或所述被切削件的移动速度的指令速度进行对比,将小的速度设定为所述圆弧插值块中的指令速度,其中,对于所述圆弧插值块,所述块间角度运算部将以下角度中的小的角度运算为所述块间角度:指令圆弧切线与另一方的块所成的角度,其中,该指令圆弧切线是通过将所述第一块与所述第二块连接的第一指令点的所述指令圆弧的切线;以及实际圆弧切线与所述另一方的块所成的角度,其中,该实际圆弧切线是通过所述第一指令点且包含基于所设定的所述圆弧插值块中的指令速度和所述指令圆弧的圆弧半径所导出的向内周侧误差的实际圆弧的切线。因此,数值控制装置能够运算至少一方为圆弧插值块时的第一块与第二块的块间角度,因此通过使用运算出的块间角度,能够适当地运算开始本次的插值指令的时机。

技术方案3的数值控制装置的特征在于,所述块间角度运算部具备:第一角度运算部,其在所述第一块和所述第二块这两方均为进行直线插值的直线插值块的情况下,运算两个所述直线插值块之间的所述块间角度;第二角度运算部,其在所述第一块和所述第二块中的一方是所述圆弧插值块而另一方是直线插值块的情况下,运算所述圆弧插值块与另一方的直线插值块之间的所述块间角度;以及第三角度运算部,其在所述第一块和所述第二块这两方均为所述圆弧插值块的情况下,运算两个所述圆弧插值块之间的所述块间角度,其中,所述第二角度运算部将以下角度中的小的角度作为所述块间角度:与所述直线插值块对应的直线插值指令所指示的指令直线与所述指令圆弧切线所成的角度;以及所述指令直线与所述实际圆弧切线所成的角度,所述第三角度运算部将以下角度中的最小的角度作为所述块间角度:所述第一块的所述指令圆弧切线与所述第二块的所述指令圆弧切线所成的角度;所述第一块的所述实际圆弧切线与所述第二块的所述指令圆弧切线所成的角度;所述第一块的所述指令圆弧切线与所述第二块的所述实际圆弧切线所成的角度;以及所述第一块的所述实际圆弧切线与所述第二块的所述实际圆弧切线所成的角度。因此,数值控制装置能够运算直线插值块与直线插值块之间的块间角度、圆弧插值块与直线插值块之间的块间角度以及圆弧插值块与圆弧插值块之间的块间角度,因此能够适当地运算开始本次的插值指令的时机。

技术方案4的控制方法是数值控制装置的控制方法,该数值控制装置沿着对nc程序所指示的多个指令点中的邻接的指令点进行插值从而得到的路径,来移动刀具或被切削件以执行切削加工,该控制方法的特征在于,所述nc程序具有多个包括控制指令的块,所述控制方法包括以下步骤:块间角度运算步骤,运算块间角度,该块间角度是所述nc程序中的按本次的插值指令进行插值的第一块与按上次的插值指令进行了插值的第二块之间的角度;速度决定步骤,决定出所述第一块中的指示所述刀具或所述被切削件的移动速度的指令速度和所述第二块中的指示所述刀具或所述被切削件的移动速度的指令速度中的大的指令速度;运算步骤,基于移动所述刀具或被切削件的电动机的加减速时间常数、对所述路径容许的容许误差、通过所述块间角度运算步骤运算出的块间角度以及通过所述速度决定步骤决定出的速度,来运算使所述电动机执行所述本次的插值指令的时机;以及执行步骤,基于通过所述运算步骤运算出的所述时机,来使所述电动机执行所述本次的插值指令。因此,数值控制装置通过进行上述控制方法,能够得到技术方案1所记载的效果。

附图说明

图1是表示数值控制装置30和机床1的电气结构的框图。

图2是利用二阶fir滤波器对移动速度进行处理的图。

图3是主处理的流程图。

图4是误差固定控制处理的流程图。

图5是块间角度校正处理的流程图。

图6是由直线插值块b1和圆弧插值块b2构成的路径的图。

图7是由直线插值块b1和圆弧插值块b2构成的路径的图。

图8是由圆弧插值块b1和直线插值块b2构成的路径的图。

图9是由圆弧插值块b1和圆弧插值块b2构成的路径的图。

图10是由直线插值块b1和b2构成的路径的图。

图11是表示在图10所示的路径上移动时的移动速度1和2的变化的图。

图12是拐角连续的路径的图。

图13是表示在图12所示的路径上移动时的移动速度与移动时间的关系的图。

图14是表示速度1和速度2的变化(td=0)的图。

图15是表示速度1和速度2的变化(td≥t1-t2)的图。

图16是表示速度1和速度2的变化(td=t1+t2)的图。

具体实施方式

参照附图来说明本发明的实施方式。数值控制装置30控制机床1,对保持于工作台(省略图示)上表面的被切削件(省略图示)进行切削加工。机床1的左右方向、前后方向、上下方向分别是x轴方向、y轴方向、z轴方向。

参照图1来说明机床1的结构。机床1具备未图示的主轴机构、主轴移动机构、换刀装置等。主轴机构具备主轴电动机52,使安装有刀具的主轴进行旋转。主轴移动机构具备x轴电动机53、y轴电动机54、z轴电动机51,使主轴相对于被支承于工作台(省略图示)上表面的被切削件沿x、y、z的各轴方向相对地移动。换刀装置具备刀库电动机55,对收纳多个刀具的刀库(省略图示)进行驱动,将安装于主轴的刀具更换为其它刀具。机床1具备操作板10。操作板10具备输入部24和显示部25。输入部24是进行各种输入、指示、设定等的设备。显示部25显示各种画面。操作板10与数值控制装置30的输入输出部35连接。z轴电动机51具备编码器51b。主轴电动机52具备编码器52b。x轴电动机53具备编码器53b。y轴电动机54具备编码器54b。刀库电动机55具备编码器55b。编码器51b~55b与数值控制装置30的驱动电路51a~55a分别连接。

参照图1来说明数值控制装置30的电气结构。数值控制装置30具备cpu31、rom32、ram33、存储装置34、输入输出部35、驱动电路51a~55a等。cpu31对数值控制装置30进行统一控制。rom32存储主程序等各种程序。ram33存储各种处理执行过程中的各种数据。存储装置34是非易失性存储器。输入输出部35与操作板10连接。驱动电路51a与z轴电动机51及编码器51b连接。驱动电路52a与主轴电动机52及编码器52b连接。驱动电路53a与x轴电动机53及编码器53b连接。驱动电路54a与y轴电动机54及编码器54b连接。驱动电路55a与刀库电动机55及编码器55b连接。驱动电路51a~55a从cpu31接受驱动信号,向分别对应的电动机51~55输出驱动电流(脉冲)。驱动电路51a~55a从编码器51b~55b接受反馈信号,进行位置和速度的反馈控制。驱动电路51a~55a也可以是fpga(fieldprogrammablegatearray:现场可编程门阵列)电路。

参照图2来说明在插值后加减速中使用的移动平均滤波器和时间常数。数值控制装置30基于nc程序中的插值指令,按x轴、y轴、z轴这样的每个驱动轴来运算目标位置、移动距离、移动速度、移动时间等。插值指令是在使轴以所指定的移动速度(指令速度)移动时使用的控制指令,是直线插值指令、圆弧插值指令等。数值控制装置30对所运算出的每个驱动轴的移动速度进行如下的插值后加减速:使其通过移动平均滤波器(以下称为fir滤波器)至少两次以上来使速度变化平滑。nc程序具有多个块,各块包括g代码、m代码等控制指令。

图2表示利用fir滤波器对沿x轴方向从x1向x2移动的刀具的移动速度进行两次处理后的结果。fir滤波器的加减速时间常数(以下称为时间常数)相当于fir滤波器进行平均的采样数。例如在采样时间为1msec,fir滤波器的时间常数为10msec时,fir滤波器将包含本次的插值指令在内的之前10个指令的平均作为本次的输出。将第一阶的fir滤波器(fir1)的时间常数设为t1,将第二阶的fir滤波器(fir2)的时间常数设为t2。利用二阶fir滤波器(fir1、fir2)对移动速度进行处理后的结果是使加速度的变化为固定以下,因此刀具在t1+t2的期间内缓慢地提高速度来达到最高速度。之后在t1+t2的期间内缓慢地降低速度来停止。因此,数值控制装置30通过利用多个fir滤波器对移动速度进行处理,能够吸收移动速度的急剧变化,因此能够抑制机床1的振动和动作所需的最大转矩。在插值后加减速下,由于时间常数t1、t2,刀具实际移动的路径相对于nc程序所指示的路径产生误差。因此,数值控制装置30使本次的插值指令的移动开始时机相对于上次的插值指令的移动结束后延迟,以在使用者预先设定的容许误差内移动刀具。数值控制装置30通过执行主处理,能够以小的计算负荷来简单地运算本次的插值指令的指令开始延迟时间。

参照图3来说明cpu31所执行的主处理。作业人员利用操作板10的输入部24来输入要加工的被切削件形状的nc程序的编号,按下加工开始键(省略图示)。cpu31当检测出加工开始键的按下时,读入rom32中存储的主程序来执行本处理。

cpu31从存储装置34读入与输入部24中输入的编号对应的nc程序(s1)。cpu31从开头行起对nc程序进行解释(s2),识别一行内的控制指令。cpu31判断识别出的控制指令是否为指示nc程序的结束的结束指令(s3)。在控制指令不是结束指令时(s3:“否”),cpu31判断控制指令是否为插值指令(s4)。在控制指令是插值指令以外的指令(例如定位指令、刀具直径校正指令、换刀指令等)时(s4:“否”),cpu31执行与控制指令对应的动作(s14)。在控制指令是插值指令时(s4:“是”),cpu31生成插值后的指令点的坐标位置(指令位置)(s5)。cpu31判断误差固定控制是否有效(s6)。误差固定控制是对机床1的动作进行控制,使得在插值后加减速下刀具实际移动的路径相对于nc程序所指示的路径处于预先设定的容许误差内。作业人员能够预先利用操作板10来选择误差固定控制的有效或无效。cpu31例如使用标志等将作业人员所输入的误差固定控制的有效或无效存储在ram33等中。在误差固定控制无效时(s6:“否”),cpu31不执行误差固定控制而执行插值处理(s12)。在插值处理中,对当前位置和指令位置这两点之间进行插值,按x轴、y轴、z轴这样的每个驱动轴来运算目标位置、移动距离、移动速度、移动时间等。cpu31执行fir滤波处理(s13)。在fir滤波处理中,如上所述,按每个驱动轴来利用二阶fir滤波器(fir1、fir2)对移动速度进行处理。因此,各驱动轴的速度变化变得平滑。cpu31生成驱动信号,输出到对应的驱动电路51a、53a、54a(s11)。驱动信号包含各驱动轴的目标位置、移动距离、移动速度、移动时间等各种信息。驱动电路51a、53a、54a基于从cpu31接收到的驱动信号,分别向对应的电动机51、53、54输出驱动电流。因此,数值控制装置30能够按照nc程序的插值指令所指示的路径来移动刀具。

在误差固定控制有效时(s6:“是”),cpu31执行误差固定控制(s7)。参照图4来说明误差固定控制处理。cpu31判断所解释出的插值指令是否为圆弧插值指令(s21)。在是圆弧插值指令时(s21:“是”),存在以下可能性:由于之后执行的fir滤波处理的时间常数t1和t2,刀具相对于圆弧插值指令所指示的指令圆弧向内周侧移动。因此,cpu31使用以下的参数和[公式1]来计算圆弧速度fc,以使刀具相对于指令圆弧在容许误差内移动(s22)。[公式1]是对fir滤波器的传递函数的增益进行泰勒展开近似来进行整理。

fc:圆弧速度(mm/分)

rc:圆弧半径(mm)

ε:容许误差(mm)

t1:时间常数1(fir1)

t2:时间常数2(fir2)

基于圆弧插值指令来运算rc。在指令圆弧的起始点与终点的半径不同时,cpu31只要以小的一方为圆弧半径即可。ε、t1、t2由作业人员利用操作板10的输入部24来预先输入,例如存储在存储装置34等中。

[公式1]

[t1≠t2的情况]

a=1,

此外,调查作为解的四个候选的(1)~(4)是否为实数解(路径内的计算结果全部为0以上),将实数解中的最小的解作为fc。

[t1=t2的情况]

此外,调查作为解的两个候选的(1)~(2)是否为实数解(路径内的计算结果全部为0以上),将实数解中的最小的解作为fc。

cpu31判断所计算出的圆弧速度fc是否小于圆弧插值指令的指令速度f(s23)。计算出的圆弧速度fc是用于在容许误差ε内移动的数值,因此在圆弧速度fc小于指令速度f时(s23:“是”),cpu31将计算出的圆弧速度fc设定为指令速度f(s24)。在指令速度f小于圆弧速度fc时(s23:“否”),刀具能够在容许误差ε内移动,因此cpu31不变更指令速度f。在解释出的插值指令是直线插值指令时(s21:“否”),相对于路径不产生误差,因此cpu31使处理前进到s25。

cpu31判断是否第一块和第二块中的至少一方为圆弧插值块(s25)。第一块是按本次的插值指令进行插值的块,第二块是与第一块的起始点连接的按上次的插值指令进行了插值的块。圆弧插值块是按圆弧轨迹进行插值的块,直线插值块是按直线轨迹进行插值的块。在第一块和第二块中的至少一方是圆弧插值块时(s25:“是”),cpu31计算考虑了圆弧插值的块间角度β(s26)。在第一块和第二块这两方均为直线插值块时(s25:“否”),cpu31计算两个直线插值的块间角度β(s27)。块间角度β是将第一块与第二块连接的指令点处的角度。cpu31求出两个直线插值块的指令所表示的直线(指令直线),求出这些直线所形成的角度来作为块间角度β。例如,从x轴引出垂直线并求出该垂直线与各指令直线的交点,基于由该交点、引出x轴的垂直线的x坐标值以及指令点形成的直角三角形,使用三角函数来进行运算。

在第一块和第二块中的至少一方是圆弧插值块时,刀具相对于圆弧插值指令的指令圆弧向内周侧移动。因此,cpu31除了考虑指令圆弧以外,还需要考虑使该指令圆弧包含向内周侧误差从而得到的实际圆弧来决定圆弧插值块的方向,以计算与另一方的块的方向之间的块间角度β。

在第一块和第二块中的至少一方为圆弧插值块的情况下,若按插值顺序(第二块、第一块的顺序)来表示,则存在以下三个模式。

(1)直线插值块-圆弧插值块

(2)圆弧插值块-直线插值块

(3)圆弧插值块-圆弧插值块

(1)直线插值块-圆弧插值块

图6是在接着直线插值块b1之后通过指令点p来连接圆弧插值块b2的路径。cpu31求出上次的直线插值块的指令直线a、本次的指令圆弧切线b以及本次的实际圆弧切线c。指令圆弧切线b是块b2的指令圆弧的从指令点p引出的切线。实际圆弧切线c是实际圆弧k的从指令点p引出的切线。在此,将指令直线a、指令圆弧切线b以及实际圆弧切线c分别称为a、b、c。实际圆弧k是使块b2的指令圆弧包含向内周侧误差从而得到的轨迹。向内周侧误差能够置换为容许误差ε。实际圆弧k是基于块b2的指令圆弧的指令速度f和实际圆弧k的半径求出的。实际圆弧k的半径是从块b2的指令圆弧的圆弧半径rc减去容许误差ε后得到的长度。cpu31求出a与b所成的角度以及a与c所成的角度。如果速度相同,则角度越小拐角处的向内周侧误差越大。在图6所示的例子中,a与b所成的角度小于a与c所成的角度。因此,cpu31将a与b所成的角度决定为块间角度β。

图7是圆弧插值块b2的指令圆弧变为绕逆时针转后的路径。与图6同样地,cpu31求出上次的指令直线a、本次的指令圆弧切线b以及本次的实际圆弧切线c,求出a与b所成的角度以及a与c所成的角度。在图7所示的例子中,a与c所成的角度小于a与b所成的角度。因此,cpu31将a与c所成的角度决定为块间角度β。

(2)圆弧插值块-直线插值块

图8与图6相反,是在接着圆弧插值块b1之后通过指令点p来连接直线插值块b2的路径。cpu31求出上次的指令圆弧切线a、上次的实际圆弧切线b以及本次的指令直线c。在此,将指令圆弧切线a、实际圆弧切线b以及指令直线c分别称为a、b、c。a是块b1的指令圆弧的从指令点p引出的切线。b是实际圆弧k的从指令点p引出的切线。实际圆弧k是使块b1的指令圆弧包含向内周侧误差从而得到的轨迹。向内周侧误差能够置换为容许误差ε。实际圆弧k是基于块b1的指令圆弧的指令速度f和实际圆弧k的半径求出的。实际圆弧k的半径是从块b1的指令圆弧的圆弧半径rc减去容许误差ε后得到的长度。cpu31求出a与c所成的角度以及b与c所成的角度。在图8所示的例子中,a与c所成的角度小于b与c所成的角度。因此,cpu31将a与c所成的角度决定为块间角度β。

(3)圆弧插值块-圆弧插值块

图9是在接着圆弧插值块b1之后通过指令点p来连接圆弧插值块b2的路径。在该情况下,第一块和第二块均为圆弧插值块,因此cpu31求出上次的指令圆弧切线a(在此单称为a)、上次的实际圆弧切线b(在此单称为b)、本次的指令圆弧切线c(在此单称为c)以及本次的实际圆弧切线d(在此单称为d)。a是块b1的指令圆弧的从指令点p引出的切线。b是实际圆弧k1的从指令点p引出的切线。实际圆弧k1是使块b1的指令圆弧包含向内周侧误差从而得到的轨迹。向内周侧误差能够置换为容许误差ε。实际圆弧k1是基于块b1的指令圆弧的指令速度f和实际圆弧k的半径求出的。实际圆弧k1的半径是从块b1的指令圆弧的圆弧半径rc减去容许误差ε后得到的长度。c是块b2的指令圆弧的从指令点p引出的切线。d是实际圆弧k2的从指令点p引出的切线。实际圆弧k2是使块b2的指令圆弧包含向内周侧误差从而得到的轨迹。向内周侧误差能够置换为容许误差ε。实际圆弧k2是基于块b2的指令圆弧的指令速度f和实际圆弧k2的半径求出的。实际圆弧k2的半径是从块b2的指令圆弧的圆弧半径rc减去容许误差ε后得到的长度。cpu31求出a与c所成的角度、a与d所成的角度、b与c所成的角度以及b与d所成的角度。如果速度相同,则角度越小拐角处的向内周侧误差越大。在图9所示的例子中,与其它角度相比,a与c所成的角度最小。因此,cpu31将a与c所成的角度决定为块间角度β。

返回到图4,在计算出块间角度β之后(s26、s27),对于计算出的块间角度β,cpu31执行块间角度校正处理(s28)。

参照图10~图12来说明对块间角度β进行校正的理由。图10所示的路径l1由两个直线插值指令形成,是在接着直线插值块b1之后通过指令点p来连接直线插值块b2的路径。块b1是沿x轴方向的直线插值,块b2是沿y轴方向的直线插值。块间角度β是90°。图11是利用二阶fir滤波器(fir1、2)对沿图10的路径l1移动时的块b1的移动速度(速度1)和块b2的移动速度(速度2)进行处理后的图。在速度1从最大速度开始减速时,速度2开始加速。在速度1与速度2重叠的部分,刀具在路径l1的拐角向内周侧移动。在速度1从最大速度开始减速时,刀具位于a1。在速度1与速度2为相同速度从而最重叠时,刀具位于a2。在速度1从最大速度减速从而变为0时,刀具位于a3。a2距路径l1最远,是相对于路径l1的误差最大的位置。a3在路径l1上,是误差消除的位置。从产生刀具的位置相对于路径l1的误差到该误差消除为止的时间,即从a1~a3为止的时间相当于时间常数t1与t2的总和。即,若刀具不通过a3,则在路径l1的拐角处产生的误差不会消除。例如在刀具刚经过a2后就是下一块的拐角时,有可能残留与时间常数的总和的一半时间相应的误差。因此,本实施方式考虑过去在拐角处产生的误差的影响,对通过s26、s27计算出的块间角度β进行校正。

参照图5、图12、图13来说明块间角度校正处理。本实施方式假设图12所示的路径l2来进行说明。路径l2是多个拐角连续从而整体弯曲的路径。pn是本次的插值指令的开始点。pn+1是本次的插值指令的移动指令位置。pn-1是上次(一个之前)的插值指令的开始点。pn-2是两个之前的插值指令的开始点。pn-3是三个之前的插值指令的开始点。pn-4是四个之前的插值指令的开始点。图13是针对沿图12所示的路径l2移动时的移动速度变化的实施fir滤波处理之前的图表。

如图5所示,cpu31利用以下的[公式2]来求出回溯时间tb(s40)。回溯时间tb是时间常数t1、t2的总和的一半。

[公式2]

tb=(t1+t2)/2

tb:回溯时间(msec)

t1:fir1的时间常数(msec)

t2:fir2的时间常数(msec)

cpu31判断tb是否为tn-1以下(s41)。如图13所示,tn-1是一个之前的插值指令的指令开始延迟时间td与移动时间的总和。指令开始延迟时间td是使基于本次的插值指令的移动开始的时机相对于基于一个之前的插值指令的移动结束时所延迟的时间。本次的插值指令的td要在块间角度校正处理之后计算(参照图4的s29),但是过去的插值指令的td是已经计算出的。在tb为tn-1以下时(s41:“是”),过去的路径误差已消除,因此cpu31什么都不做就结束本处理,使处理前进到图4的s29。在tb大于tn-1时(s41:“否”),过去的误差仍有残留,因此cpu31将2代入m(s42),判断tb是否满足以下的[公式3](s43)。m是整数的参数。

[公式3]

tb≤tn-1+tn-2+…+tn-(m-1)+tn-m

tn-m:m个之前的插值指令的指令开始延迟时间与移动时间的总和时间(msec)

βn-m:直线pn-mpn与直线pnpn+1的内角(deg)

β′:校正后的块间角度(deg)

其中,利用以下的[公式4]来求出tn-m。

[公式4]

tdn-m:m个之前的插值指令的指令开始延迟时间(msec)

ln-m:m个之前的插值指令的指令距离(mm)

fn-m:m个之前的插值指令的指令速度(mm/min)

在m=2时满足[公式3]时(s43:“是”),过去的误差已消除,因此cpu31求出角度β~βn-m(s45)。在m=2时不满足[公式3]时(s43:“否”),cpu31使m再加1(s44),返回到s43来再次判断是否满足[公式3]。在满足[公式3]时(s43:“是”),cpu31以满足[公式3]的m的值来求出角度β~βn-m(s45)。例如图12、图13所示,假设从本次的插值指令的开始点pn向过去追溯了回溯时间tb的位置pb(参照图12)。在pb位于pn-2与pn-3之间时,cpu31追溯到三个之前的块(相当于本发明的“过去块”)的插值指令的开始点pn-3,求出角度βn-2、βn-3。cpu31将通过s45求出的角度β~βn-m中的最小的角度决定为校正后的块间角度β′(s46)。在图12所示的例子中,将βn-3决定为β′。cpu31结束本处理,使处理前进到图4的s29。

返回到图4的误差固定控制处理,cpu31计算td(s29)。以图10所示的路径l1来进行说明。图14与图11同样地表示使td为0时的实施fir滤波处理后的速度1和速度2的变化。速度1与速度2重叠的部分是刀具在拐角处向内周侧移动的部分,其长度相当于时间常数t1+t2。在速度1与速度2重叠的部分,曲线部分相当于第二阶的fir2的宽度t2。a2是误差最大的误差最大点。本实施方式基于该误差来求出td。为了求出误差最大点的误差,需要计算从速度1与速度2开始重叠起的速度以曲线状变化的曲线部分和以直线状变化的直线部分这两方。如图15所示,在速度1与速度2的重叠时间比2×t2短时,速度1与速度2重叠的部分的速度变化全部为曲线。因此,基于误差来求出td的式子与图14时不同。此外,如图16所示,在使td为t1+t2时,速度1与速度2不重叠,拐角处的误差为0。此时的td为最大值。

基于以上,关于td,以下的关系成立。εmax为误差的最大值。

如果td=0则误差=εmax

如果td=t1+t2则误差=0

如图14所示,在td<t1-t2时,速度1与速度2重叠的部分的变化包含直线部分和曲线部分这两方。如图15所示,在td≥t1-t2时,速度1与速度2重叠的部分的变化仅为曲线部分。即,根据td的长度不同,求出误差的式子不同。因此,本实施方式为了基于容许误差ε来求出td,只要预先求出td=t1-t2时的误差εt1-t2,就能够容易地判别出使用两种计算式中的哪个式子来求出td较佳。cpu31将(εt1-t2/εmax)置换为k,如[公式5]和[公式6]所示,根据ε/εmax小于k还是为k以上来判别计算td的式子。[公式5]和[公式6]所示的td的计算式是根据对图15所示的速度波形进行积分从而得到的位置与td的关系来求出的。

[公式5]

[公式6]

其中,

指令速度f越大,则误差越大,因此td越大。因此,关于计算td时的指令速度f,期望使用块b1的指令速度和块b2的指令速度中的大的指令速度。

如图4所示,cpu31根据k的值来使用某一方的式子计算td,将计算出的td存储在存储装置34中(s30)。因此,cpu31能够基于时间常数t1、t2、容许误差ε、指令速度f、块间角度β,根据速度1与速度2的重叠情况来简单地计算td。cpu31结束误差固定控制处理,使处理前进到图3的主处理的s8。

cpu31基于本次的插值指令,执行从上次的插值指令的指令点(当前位置)到指令位置的插值处理(s8)。cpu31对每个驱动轴的移动速度执行二阶fir滤波处理(s9),按每个驱动轴生成驱动信号。cpu31判断从上次的插值指令的移动结束时起是否经过了存储装置34中存储的td(s10)。在未经过td时(s10:“否”),cpu31待机。在经过了td时(s10:“是”),cpu31向与插值指令对应的电动机51、53、54的驱动电路51a、53a、54a输出驱动信号(s11)。接收到驱动信号的驱动电路51a、53a、54a对电动机51、53、54进行驱动。在上次的插值指令的移动结束后经过td之后,开始基于本次的插值指令的刀具的移动。cpu31返回到s2,对下一块进行解释。在下一块不是结束指令时(s3:“否”),cpu31重复下一块的处理。在下一块是结束指令时(s3:“是”),cpu31结束本处理。因此,数值控制装置30通过执行本处理,能够相对于nc程序所指示的路径在容许误差ε内移动刀具。

如以上所说明的那样,本实施方式的数值控制装置30沿着nc程序所指示的路径来移动刀具以执行切削加工。路径是对多个指令点中的邻接的指令点进行插值从而得到的。数值控制装置30的cpu31基于移动刀具的电动机的加减速时间常数t1、t2、对路径容许的容许误差ε、指示刀具的移动速度的指令速度f以及路径内的nc程序中的第一块与第二块的块间角度β,针对电动机51、53、54来运算从上次的插值指令的移动结束后到开始本次的插值指令为止的指令开始延迟时间td。cpu31基于所运算出的td,将用于执行本次的插值指令的移动的驱动信号输出到对应的电动机51、53、54的驱动电路51a、53a、54a。因此,数值控制装置30能够以小的计算负荷将相对于nc程序所指示的路径的路径误差始终控制在容许误差ε内。

上述实施方式还包括:在第一块和第二块中的至少一方的块是进行圆弧插值的圆弧插值块时,基于指令圆弧的圆弧半径、容许误差ε以及时间常数t1、t2,来运算在圆弧插值块中刀具移动的圆弧速度fc。并且,数值控制装置30将运算出的圆弧速度与指令速度f进行对比,将小的一方的速度设定为指令速度f。因此,数值控制装置30在圆弧插值块中能够在容许误差ε内沿路径移动。对于圆弧插值块,数值控制装置30运算以下角度中的小的一方的角度来作为块间角度β:指令圆弧切线与另一方的块所成的角度,其中指令圆弧切线是从将第一块与第二块连接的指令点引出的指令圆弧的切线;以及实际圆弧切线与另一方的块所成的角度,其中实际圆弧切线是从指令点引出的实际圆弧的切线。因此,数值控制装置30能够适当地运算至少一方为圆弧插值块时的第一块与第二块的块间角度β,因此能够适当地运算指令开始延迟时间td。

上述实施方式还包括:在第一块和第二块这两方均为直线插值块时,运算直线插值块间的块间角度β。在第一块和第二块中的一方是圆弧插值块时,数值控制装置30将指令圆弧切线与另一方的直线插值块的指令直线所成的角度和实际圆弧切线与另一方的直线插值块的指令直线所成的角度中的小的一方的角度作为块间角度β。在第一块和第二块这两方均为圆弧插值块时,数值控制装置30将从连接圆弧插值块的指令点引出的同第一块对应的指令圆弧切线及实际圆弧切线与同第二块对应的指令圆弧切线及实际圆弧切线相互所成的角度中的最小的角度作为块间角度β。因此,数值控制装置30能够适当地运算直线插值块与直线插值块、圆弧插值块与直线插值块、圆弧插值块与圆弧插值块各自的块间角度β,因此能够适当地运算指令开始延迟时间td。

通过以上说明,执行s7的处理的cpu31相当于本发明的运算部,执行s10、s11的处理的cpu31相当于本发明的执行部,执行s22的处理的cpu31相当于本发明的圆弧速度运算部,执行s27的处理的cpu31相当于本发明的第一角度运算部,通过s26来运算圆弧插值块与直线插值块间的块间角度β的cpu31相当于本发明的第二角度运算部,通过s26来运算圆弧插值块与圆弧插值块的块间角度β的cpu31相当于本发明的第三角度运算部。cpu31所执行的s7的处理步骤相当于本发明的运算步骤,cpu31所执行的s10、s11的处理步骤相当于本发明的执行步骤。

本发明不限于上述实施方式,能够进行各种变更。例如上述实施方式利用二阶fir滤波器(fir1、fir2)对移动速度进行处理,但是也可以利用三阶以上的fir滤波器进行处理。例如将利用三阶fir滤波器进行处理时的时间常数按从大到小的顺序设为t1、t2、t3时,只要如以下的[公式7]~[公式11]那样进行指令开始延迟时间td的计算即可。下面,分为[t1≤t2+t3时]和[t1>t2+t3时]来进行说明。

[t1≤t2+t3时]

0≤ε/εmax≤k1时

[公式7]

k1<ε/εmax≤k2时

[公式8]

k2<ε/εmax≤k3时

[公式9]

a=1,b=-8(t2+t3),

将作为[公式9]的解的候选的(1)~(4)中满足下面两个条件[1]、[2]的解作为td。

[1]路径内的计算结果为0以上。

[2]td满足“-t1+t2+t3≤td≤t1-t2+t3”。

k3<ε/εmax≤1时

[公式10]

a=1,b=-4(t1+t2+t3),

将作为[公式10]的解的候选的(1)~(4)中的满足下面两个条件[1]、[2]的解作为td。

[1]路径内的计算结果为0以上。

[2]td满足“0≤td≤-t1+t2+t3”。

其中

[公式11]

[t1>t2+t3时]

0≤ε/εmax≤k1时

[公式12]

k1≤ε/εmax≤k2时

[公式13]

k2≤ε/εmax≤k3时

[公式14]

a=1,b=-8(t2+t3),

将作为[公式14]的解的候选的(1)~(4)中的满足下面两个条件[1]、[2]的解作为td。

[1]路径内的计算结果为0以上。

[2]td满足“t1-t2-t3≤td≤t1-t2+t3”。

k3≤ε/εmax≤1时

[公式15]

其中

[公式16]

上述实施方式还能够进行各种变更。上述实施方式也可以省略图4所示的误差固定控制处理中的块间角度校正处理(s28)。

上述实施方式沿着nc程序所指示的路径移动刀具,但是也可以使被切削件沿着路径移动。

上述实施方式以主轴的轴线沿着上下方向延伸的立式的机床1为例进行了说明,但是也能够应用于主轴的轴线沿着水平方向延伸的卧式的机床。

上述实施方式将进行移动平均的fir滤波器的时间常数用作电动机的加减速时间常数,但是也能够应用具有时间常数的其它滤波器。例如也可以使用[公式17]所示的一阶低通滤波器来代替fir滤波器。

t是时间常数。

[公式17]

技术特征:

1.一种数值控制装置(30),沿着对nc程序所指示的多个指令点(p)中的邻接的指令点进行插值从而得到的路径,来移动刀具或被切削件以执行切削加工,该数值控制装置的特征在于,

所述nc程序具有多个包括控制指令的块,

所述数值控制装置具备:

块间角度运算部,其运算块间角度(β),该块间角度是所述nc程序中的按本次的插值指令进行插值的第一块与按上次的插值指令进行了插值的第二块之间的角度,即该块间角度是与所述第一块对应的指令所指示的指令直线、指令圆弧切线或实际圆弧切线和与所述第二块对应的指令所指示的指令直线、指令圆弧切线或实际圆弧切线之间的角度,其中,所述实际圆弧切线是使所述指令圆弧包含向内周侧误差从而得到的实际圆弧从将所述第一块与所述第二块连接的第一指令点引出的切线;

速度决定部,其决定出所述第一块中的指示所述刀具或所述被切削件的移动速度的指令速度和所述第二块中的指示所述刀具或所述被切削件的移动速度的指令速度中的大的指令速度(f);

运算部(31),其基于移动所述刀具或被切削件的电动机(51-54)的加减速时间常数(tn)、所述块间角度运算部所运算出的块间角度以及所述速度决定部所决定出的速度计算相对于所述路径的误差最大值,然后基于计算出的所述误差最大值、对所述路径容许的容许误差(ε)、所述第一块的移动速度的波形与所述第二块的移动速度的波形的重叠情况来运算使所述电动机开始所述本次的插值指令的时机;以及

执行部,其基于所述运算部所运算出的所述时机,使所述电动机执行所述本次的插值指令。

2.根据权利要求1所述的数值控制装置,其特征在于,

在所述第一块和所述第二块中的至少一方的块是进行圆弧插值的圆弧插值块时,所述数值控制装置具备:

圆弧速度运算部,其基于与所述圆弧插值块对应的圆弧插值指令所指示的指令圆弧的圆弧半径(rc)、所述容许误差以及所述加减速时间常数,来运算在所述圆弧插值块中所述刀具或被切削件移动的圆弧速度(fc);以及

指令速度设定部,其将所述圆弧速度运算部所运算出的所述圆弧速度与所述圆弧插值块中的指示所述刀具或所述被切削件的移动速度的指令速度进行对比,将小的速度设定为所述圆弧插值块中的指令速度,

其中,对于所述圆弧插值块,所述块间角度运算部将以下角度中的小的角度运算为所述块间角度:

指令圆弧切线(b)与另一方的块所成的角度,其中,该指令圆弧切线是通过所述第一指令点的所述指令圆弧的切线;以及

实际圆弧切线(c)与所述另一方的块所成的角度,其中,该实际圆弧切线是通过所述第一指令点且包含基于所设定的所述圆弧插值块中的指令速度和所述指令圆弧的圆弧半径所导出的向内周侧误差的实际圆弧的切线。

3.根据权利要求2所述的数值控制装置,其特征在于,

所述块间角度运算部具备:

第一角度运算部,其在所述第一块和所述第二块这两方均为进行直线插值的直线插值块的情况下,运算两个所述直线插值块之间的所述块间角度;

第二角度运算部,其在所述第一块和所述第二块中的一方是所述圆弧插值块而另一方是直线插值块的情况下,运算所述圆弧插值块与另一方的直线插值块之间的所述块间角度;以及

第三角度运算部,其在所述第一块和所述第二块这两方均为所述圆弧插值块的情况下,运算两个所述圆弧插值块之间的所述块间角度,

其中,所述第二角度运算部将以下角度中的小的角度作为所述块间角度:

与所述直线插值块对应的直线插值指令所指示的指令直线与所述指令圆弧切线所成的角度;以及

所述指令直线与所述实际圆弧切线所成的角度,

所述第三角度运算部将以下角度中的最小的角度作为所述块间角度:

所述第一块的所述指令圆弧切线与所述第二块的所述指令圆弧切线所成的角度;

所述第一块的所述实际圆弧切线与所述第二块的所述指令圆弧切线所成的角度;

所述第一块的所述指令圆弧切线与所述第二块的所述实际圆弧切线所成的角度;以及

所述第一块的所述实际圆弧切线与所述第二块的所述实际圆弧切线所成的角度。

4.一种数值控制装置(30)的控制方法,该数值控制装置沿着对nc程序所指示的多个指令点(p)中的邻接的指令点进行插值从而得到的路径,来移动刀具或被切削件以执行切削加工,该控制方法的特征在于,

所述nc程序具有多个包括控制指令的块,

所述控制方法包括以下步骤:

块间角度运算步骤,运算块间角度(β),该块间角度是所述nc程序中的按本次的插值指令进行插值的第一块与按上次的插值指令进行了插值的第二块之间的角度,即该块间角度是与所述第一块对应的指令所指示的指令直线、指令圆弧切线或实际圆弧切线和与所述第二块对应的指令所指示的指令直线、指令圆弧切线或实际圆弧切线之间的角度,其中,所述实际圆弧切线是使所述指令圆弧包含向内周侧误差从而得到的实际圆弧从将所述第一块与所述第二块连接的第一指令点引出的切线;

速度决定步骤,决定出所述第一块中的指示所述刀具或所述被切削件的移动速度的指令速度和所述第二块中的指示所述刀具或所述被切削件的移动速度的指令速度中的大的指令速度(f);

运算步骤,基于移动所述刀具或被切削件的电动机(51-54)的加减速时间常数(tn)、通过所述块间角度运算步骤运算出的块间角度以及通过所述速度决定步骤决定出的速度计算相对于所述路径的误差最大值,然后基于计算出的所述误差最大值、对所述路径容许的容许误差(ε)、所述第一块的移动速度的波形与所述第二块的移动速度的波形的重叠情况来运算使所述电动机开始所述本次的插值指令的时机;以及

执行步骤,基于通过所述运算步骤运算出的所述时机,使所述电动机执行所述本次的插值指令。

技术总结

本发明涉及一种数值控制装置及其控制方法。数值控制装置在主处理中执行误差固定控制处理。在误差固定控制处理中,数值控制装置基于电动机的加减速时间常数、对路径容许的容许误差、指示刀具的移动速度的指令速度以及构成路径的各块之间的块间角度,来针对电动机运算从上次的插值指令的移动结束后到开始本次的插值指令为止的指令开始延迟时间。数值控制装置基于所运算出的指令开始延迟时间,针对电动机将执行本次的插值指令的移动的驱动信号输出到驱动电路。因此,数值控制装置能够以小的计算负荷将相对于NC程序所指示的路径的路径误差始终控制在容许误差内。

技术研发人员:寺田弦;小岛辉久;大高崇;石川友哉;社本英二;伯拉克·森瑟;石崎浩资

受保护的技术使用者:兄弟工业株式会社

技术研发日:.01.20

技术公布日:.02.18

如果觉得《数值控制装置及其控制方法与流程》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。