数值控制装置和控制方法与流程

文档序号:15115442发布日期:2018-08-07 19:56阅读:183来源:国知局

本发明涉及数值控制装置和控制方法。



背景技术:

数值控制装置通过使刀具或被切削件沿着nc程序所指示的路径移动来进行加工。数值控制装置自动进行平滑的加减速,进行用于抑制机床振动的加减速控制。在进行加减速控制时,一旦在块与块的连接处停止,则加工周期会延长。因此,数值控制装置通过采用在上一个块减速的过程中开始新的块的加速的控制方式,来谋求缩短加工周期。该方式存在这样的问题:连接部分的拐角处产生向内周侧误差(日文:内回り誤差)。日本特许公开2016年133988号公报所公开的数值控制装置通过延迟开始块的移动指令来调整交叠时间。交叠时间是指在块的连接部分上一个块的减速和下一个块的加速交叠的时间。向内周侧误差起因于交叠时间。因此,数值控制装置能够将向内周侧误差调整在容许误差内。

特别是,上述数值控制装置会在微小块连续的较平滑的移动路径中的块的连接部分处,频繁重复减速和加速,因此,存在加工面的品质降低这样的问题。



技术实现要素:

本发明的目的是提供即使是微小块连续的移动路径,也能够提高加工品质的数值控制装置和控制方法。

技术方案1的数值控制装置具有控制部,该控制部沿着通过对nc程序所指示的多个块的指令点进行插补所获得的路径,创建包含各指令点之间的距离和速度的信息的速度曲线,利用滤波器进行加减速处理,并基于处理结果来控制刀具或被切削件的移动,该数值控制装置的特征在于,所述控制部具有:指定部,其将从所述路径中的所述指令点中作为对象的指令点指定为对象指令点;区间指定部,其在所述指定部指定的所述对象指令点前后,指定基于所述滤波器的时间常数的时间的区间;划分部,其按照规定时间对所述区间指定部指定的所述区间进行划分;处理部,其利用所述滤波器对所述划分部划分出来的所述区间进行处理;误差算出部,其算出由所述处理部处理后的所述区间中的所述对象指令点相对于所述路径的误差;判断部,其对所述误差算出部算出的所述误差是否超出预先设定好的限定值进行判断;算出部,在所述判断部判断为所述误差超出所述限定值时,该算出部算出基于所述限定值和所述误差的减速率;及更新部,其基于所述区间指定部指定的所述区间和所述算出部算出的所述减速率,更新所述速度曲线。数值控制装置不是仅在指令点减速,而是在包含指令点在内的区间减速。因此,即使是微小块连续的路径,数值控制装置也能够避免频繁重复加减速。因此,数值控制装置能够提高被切削件的加工面的品质。数值控制装置能够针对路径中的各指令点按顺序指定多个对象指令点。因此,数值控制装置能够全面抑制路径中的拐角部分、圆弧部分、曲线部分处因加减速产生的误差。

在技术方案2的数值控制装置中,所述区间由将所述对象指令点作为划分点进行二等分划分得到的小区间构成,该小区间是以所述滤波器的时间常数之和的一半的时间移动所形成的区间。影响指令点的误差的区间与所述滤波器的时间常数的一半的时间相等。数值控制装置基于影响指令点的误差的区间更新速度曲线,因此,能够有效地抑制指令点的误差。

较佳的是,在技术方案3的数值控制装置中,所述算出部算出用所述误差除所述限定值得到的比率作为所述减速率。因此,数值控制装置能够容易地算出减速率。

较佳的是,技术方案4~6的数值控制装置具有:误差判断部,其对按照所述算出部算出的所述减速率在所述区间移动时的所述误差相对于所述限定值是否在容许范围内进行判断;及变更部,在所述误差判断部判断为所述误差不在所述容许范围内时,该变更部变更所述减速率,直到所述误差在所述容许范围内。数值控制装置能够变更减速率,直到误差在容许范围内,因此,能够避免减速过度。因此,数值控制装置能够以较短的加工周期完成对被切削件的加工。数值控制装置也能够避免减速不到位,因此,能够更可靠地避免误差超出容许范围。

较佳的是,技术方案7~12的数值控制装置具有:插补判断部,其对所述块是直线插补块还是圆弧插补块进行判断;及追加部,在所述插补判断部判断为所述块是所述圆弧插补块时,该追加部在所述圆弧插补的部分追加虚拟指令点,在所述插补判断部判断为所述块是所述直线插补块时,所述指定部将所述块的终点指定为所述对象指令点,在所述插补判断部判断为所述块是所述圆弧插补块时,所述指定部将所述块的终点和所述追加部追加的所述虚拟指令点指定为所述对象指令点。在路径中的块是圆弧插补块的情况下,数值控制装置会在圆弧插补的部分追加虚拟指令点,从而能够考虑到因圆弧部分的曲率引起的向内周侧误差。因此,即使在圆弧插补的情况下,数值控制装置也能够将虚拟指令点的向内周侧误差即圆弧的向内周侧误差抑制在限定值以下。即使是圆弧插补的部分,数值控制装置也能够提高被切削件的加工面的品质。

较佳的是,在技术方案13~18的数值控制装置中,所述更新部具有:第一设定部,在所述对象指令点是所述块的终点的情况下,该第一设定部将按照所述算出部算出的所述减速率移动的减速区间设定为所述区间;及第二设定部,在所述对象指令点是所述虚拟指令点的情况下,该第二设定部将所述减速区间设定为至少整个所述圆弧插补的区域。在对象指令点是在圆弧上追加的虚拟指令点的情况下,数值控制装置将减速区间设定为整个圆弧插补区域。因此,数值控制装置能够考虑到因圆弧部分的曲率引起的向内周侧误差。

较佳的是,技术方案19的数值控制装置具有:重新算出部,在所述更新部更新所述速度曲线之后,该重新算出部再次算出基于所述速度曲线移动时的所述误差;及重新判断部,其再次对所述重新算出部再次算出的所述误差是否超出所述限定值进行判断,在所述重新判断部判断为所述误差超出所述限定值时,所述控制部重复执行利用所述算出部和所述更新部进行的各处理,直到所述误差变为所述限定值以下。因此,数值控制装置能够可靠地将相对于路径的误差抑制在限定值以下。

在技术方案20的控制方法中,沿着通过对nc程序所指示的多个块的指令点进行插补所获得的路径,创建包含各指令点之间的距离和速度的信息的速度曲线,利用滤波器进行加减速处理,并基于处理结果来控制刀具或被切削件的移动,该数值控制装置的控制方法的特征在于,该数值控制装置的控制方法包括:指定工序,在该指定工序中,将从所述路径中的所述指令点中作为对象的指令点指定为对象指令点;区间指定工序,在该区间指定工序中,在通过所述指定工序指定的所述对象指令点前后,指定基于所述滤波器的时间常数的时间的区间;划分工序,在该划分工序中,按照规定时间对通过所述区间指定工序指定的所述区间进行划分;处理工序,在该处理工序中,利用具有与所述滤波器的时间常数相同的时间常数的滤波器,对通过所述划分工序划分出来的所述区间进行处理;误差算出工序,在该误差算出工序中,算出通过所述处理工序处理后的所述区间中的所述对象指令点相对于所述路径的误差;判断工序,在该判断工序中,对通过所述误差算出工序算出的所述误差是否超出预先设定的限定值进行判断;算出工序,在通过所述判断工序判断为所述误差超出所述限定值时,通过该算出工序,算出基于所述限定值和所述误差的减速率;及更新工序,在该更新工序中,基于通过所述区间指定工序指定的所述区间和通过所述算出工序算出的所述减速率,更新所述速度曲线。因此,数值控制装置通过执行上述各工序,能够获得技术方案1的效果。

附图说明

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

图2是通过二阶移动平均滤波器对移动速度进行了处理所得到的图。

图3是由直线插补块b1和直线插补块b2构成的程序路径r1和滤波处理后的路径r2的图。

图4是表示沿图3所示的路径r2移动时的移动速度1和移动速度2的变化的图。

图5是沿程序路径r3不减速时的路径r4和进行全自动减速处理之后的路径r5的图。

图6是表示不减速时的速度块和进行全自动减速处理之后的速度块的图。

图7是主处理的流程图。

图8是块信息20的示意图。

图9是全自动减速处理的流程图。

图10是减速计算处理的流程图。

图11是表示设定于圆弧插补的圆弧中央指令点的图。

图12是圆弧中央指令点计算处理的流程图。

图13是表示程序路径中的对象指令点、影响开始点和影响结束点的图。

图14是影响区间计算处理的流程图。

图15是表示比对象指令点靠前的影响区间(t/2)和影响开始点的图。

图16是表示比对象指令点靠后的影响区间(t/2)和影响结束点的图。

图17是误差计算处理的流程图。

图18是表示指令点和探测点的误差的图。

图19是表示构成矢量的角为锐角时的距指令点最近的最接近点的图。

图20是表示从误差最小的动作插补点观察误差第二小的动作插补点所构成的矢量p和从误差最小的动作插补点观察指令点所构成的矢量ε2的图。

图21是表示距图20中的指令点最近的最接近点和误差ε的图。

图22是表示构成矢量的角为钝角时的距指令点最近的最接近点的图。

图23是误差抑制处理的流程图。

图24是表示通过线性插补使误差接近目标误差的方法的图。

图25是速度曲线更新处理的流程图。

图26是表示将指令点c3指定为对象指令点时的影响区间的图。

图27是表示指令点c3的速度曲线的图表。

图28是表示将指令点c4指定为对象指令点时的影响区间的图。

图29是表示指令点c4的速度曲线的图表。

图30是将指令点c3的速度曲线和指令点c4的速度曲线叠在一起得到的图表。

图31是将指令点c3的速度曲线和指令点c4的速度曲线整合在一起得到的速度曲线数据的示意图。

图32是将圆弧中央指令点的减速区间设定为整个圆弧区域的图。

图33是表示圆弧中央指令点的速度曲线的图表。

图34是为了抑制对象指令点的误差进行了减速处理,结果使得下一指令点的误差变大了的情况的移动轨迹和该轨迹的放大图。

图35是误差确认处理的流程图。

图36是在由块b1和块b2构成的路径中追加虚拟指令点所得到的图。

图37是表示通过减速计算处理生成的速度曲线的图。

图38是表示通过误差确认处理生成的速度曲线的图。

图39是将两个速度曲线数据总结起来得到的图。

图40是表示置换处理后的速度曲线数据的图。

图41是表示模拟使用的程序路径的图。

图42是表示模拟结果中的速度曲线的图。

图43是表示模拟结果中的移动速度(滤波处理后)的图。

图44是表示模拟结果中的移动路径的图。

图45是表示模拟结果中的误差的图。

图46是表示在长块后连续有微小块的程序路径的图。

图47是速度划分数调整处理的流程图。

图48是表示速度划分数调整处理前后的速度曲线的图。

具体实施方式

说明本发明的实施方式。图1所示的数值控制装置30通过控制机床1的轴移动,来对在工作台(省略图示)的上表面保持的被切削件(省略图示)进行切削加工。机床1的左右方向为x轴方向,机床1的前后方向为y轴方向,机床1的上下方向为z轴方向。

参照图1,说明机床1的结构。机床1为立式机床。机床1通过使装配在主轴上的刀具相对于在工作台的上表面保持的被切削件沿x轴方向、y轴方向和z轴方向移动,来对被切削件进行切削加工。机床1具有未图示的主轴机构、主轴移动机构、换刀装置等。主轴机构具有主轴马达52,主轴机构能够使装配有刀具的主轴旋转。主轴移动机构具有z轴马达51、x轴马达53和y轴马达54,主轴移动机构能够使主轴相对于在工作台(省略图示)的上表面保持的被切削件相对地沿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~驱动电路55a为伺服放大器。驱动电路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电路。

参照图2,说明加减速处理使用的移动平均滤波器和时间常数。数值控制装置30基于nc程序的插补指令,来对x轴、y轴和z轴各轴运算目标位置、移动距离、移动速度、移动时间等。插补指令是在使轴按用户指定的移动速度运动时使用的控制指令,例如是直线插补指令、圆弧插补指令等。数值控制装置30进行插补后加减速处理。插补后加减速处理是使运算出来的各轴的移动速度通过移动平均滤波器(fir滤波器)至少两次以上来使速度变化平滑的处理。

图2表示利用移动平均滤波器对沿x轴方向移动规定距离时的移动速度进行两次处理后的结果。移动平均滤波器的加减速时间常数(下面称为时间常数)与移动平均滤波器进行平均的采样数相当。例如,在采样时间为1msec,移动平均滤波器的时间常数为10msec的情况下,移动平均滤波器将含本次插补指令在内的之前10个指令的平均作为本次的输出。在本实施方式中,将第一阶段的移动平均滤波器(fir1)的时间常数设为t1,将第二阶段的移动平均滤波器(fir2)的时间常数设为t2。

利用二阶移动平均滤波器(fir1和fir2)对移动速度进行处理,结果是,加速度的变化为固定以下。因此,刀具利用t1+t2的时间缓慢提高速度,直到达到最高速度,之后,再利用t1+t2的时间缓慢降低速度,直到停止。因此,数值控制装置30通过利用多个移动平均滤波器对各轴的移动速度进行处理,能够吸收移动速度的急剧变化,从而能够抑制机床1的振动和动作所需的最大扭矩。

参照图3和图4,说明移动路径中的拐角处产生的向内周侧误差。图3所示的路径r1是由两个直线插补指令(g1指令)形成的,在直线插补块b1的后面紧接着用指令点p连接有直线插补块b2。块b1是沿x轴方向的直线插补,块b2是沿y轴方向的直线插补。块间角度β为90°。因此,指令点p处形成拐角。图4是利用二阶移动平均滤波器(fir1和fir2)对速度1和速度2进行处理之后的图。速度1是块b1的移动速度,速度2是块b2的移动速度。在速度1从最大速度开始减速时,速度2开始加速。在速度1和速度2交叠的部分,刀具在路径r1的拐角处即指令点p附近向内周侧移动(参照路径r2)。在速度1从最大速度开始减速时,刀具位于a1。a2是路径r2上的距指令点p最近的点。从指令点p至a2的距离为向内周侧误差(下面称为误差)。在速度1从最大速度减速到0时,刀具位于a3。a2是相对于路径r1的误差最大的位置。a3是误差被消除的位置。从误差产生到消除的a1~a3的时间与时间常数t1和时间常数t2之和相当。在拐角跟前处减速的方法是将拐角处产生的误差抑制在目标误差以下的方法的一例。数值控制装置30通过在拐角跟前处减速,能够减少速度1和速度2交叠的时间,能够将误差抑制在目标误差以下。如后述那样,有时,在微小块连续的路径的情况下,采用在拐角跟前处减速的方法会出现问题。

参照图5和图6,说明微小块连续的路径中产生的向内周侧误差和本发明的概要。图5的(1)所示的路径r3是基于nc程序的程序路径。路径r3具有多个微小块(移动距离较短的块)即微小块b1~块b6。

图6的(1)是沿图5的(1)中的路径r3移动时的速度曲线。速度曲线设定了块的移动距离和速度(切削进给速度)。滤波处理后的移动速度缓慢提高速度,直到达到最高速度,在微小块b1~块b6之间以最高速度移动,之后,缓慢降低速度,直到停止。图5的(1)所示的路径r4是按照图6的(1)中的移动速度移动时的滤波处理后的路径。在微小块b1~块b6连续的部分,轴较大程度地向内周侧移动。例如,由于在经过指令点c1之后立即就有下一指令点c2,因此,轴在指令点c1处产生的误差还没有被消除就直接经过下一指令点c2。轴依次连续地经过指令点c3、指令点c4……,因此,路径r4相对于路径r3较大程度地向内周侧移动。指令点c0~指令点c6与路径r4的相隔距离相当于误差。为了将该误差抑制在目标误差以下,假设,数值控制装置30采用了像上述那样地在块的连接部分处减速的方法,在该情况下,数值控制装置30会频繁重复在微小块连续的路径中的块的连接部分的减速和下一块的加速。频繁加减速会引发机械振动,因此,加工面的品质会降低。

在本实施方式中,为了将微小块连续的路径中产生的误差抑制在预先设定好的目标误差以下,执行后述的全自动减速处理(参照图9)。全自动减速处理是这样的处理:针对各指令点求出影响误差的影响区间,计算该影响区间的减速率,确定最佳速度曲线。影响区间是指指令点前后的区间,在本实施方式中,影响区间是以时间常数之和的一半的时间移动所形成的小区间。

图6的(2)所示的速度曲线是对图6的(1)中的速度曲线进行全自动减速处理之后得到的。全自动减速处理后的移动速度不同于仅经滤波处理之后的移动速度,全自动减速处理后的移动速度在提高速度达到最高速度之后,在微小块b1~块b6之间移动的期间里,与指令点c0~指令点c6各自的影响区间相应地缓慢减速。在微小块b1~块b6连续的部分,移动速度不会频繁重复减速和加速。轴在经过块b6之后,再次加速至最高速度,之后,减速直到停止。图5的(2)所示的路径r5是全自动减速处理后的移动路径。与路径r4相比,路径r5相对于路径r3的误差较小。因此,本实施方式能够抑制微小块连续的路径中产生的误差。

参照图7,说明主处理。当操作者通过操作面板10指定nc程序并输入执行操作时,cpu31从rom32调出主程序,执行本处理。cpu31从存储装置34调出所指定的nc程序并解读该程序(s1)。cpu31基于对nc程序的解读,生成多个移动指令(s2)。移动指令指定使轴移动到的位置(坐标值)。直线插补指令和圆弧插补指令是移动指令的一例。移动指令指定的位置是指令点。指令点与指令点之间是块。将各指令点连结起来构成的路径是程序路径。

cpu31基于生成的多个移动指令,创建块信息20(s3)。如图8所示,块信息20具有块编号和轴移动信息。块编号是构成程序路径的块的次序。轴移动信息是各块中的有关轴移动的信息,例如包含移动矢量、块长、移动速度、移动时间等各种信息。块信息20存储在ram33中。块长表示轴移动距离。移动矢量是块的方向矢量。

cpu31对全自动减速模式是否开启进行判断(s4)。全自动减速模式是这样的模式:通过在各指令点的影响区间进行减速,从而自动地将移动路径的误差调整在预先设定好的目标误差以下。例如能够通过操作面板10的输入部24来进行全自动减速模式的设定。在cpu31判断为全自动减速模式开启时(s4:是),cpu31执行全自动减速处理(参照图9)(s5)。cpu31在执行全自动减速处理之后,结束本处理。在cpu31判断为全自动减速模式关闭时(s4:否),cpu31执行常规处理(s6)。在常规处理中,基于ram33中存储的块信息20进行移动速度的滤波处理,对轴移动进行加减速控制。cpu31在执行常规处理之后,结束本处理。

参照图8和图9,说明全自动减速处理。在本实施方式中,需要在执行某个块的移动指令之前确定速度曲线。为了确定速度曲线,cpu31需要执行图9所示的全自动减速处理的后述的减速计算处理(s11)和误差确认处理(s12)。因此,cpu31在执行块的移动指令时,需要预读块信息20。预读是指预先读入将来要执行的块。在减速计算处理中,cpu31针对各指令点变更比指令点靠前的过去的影响块的速度和比指令点靠后的将来的影响块的速度,以使得各指令点的路径误差在目标范围内。即,cpu31更新速度曲线。影响块是指处于会影响各指令点的误差的范围内的块。如后述那样,影响块是这样的块:其在指令点的前后分别存在于时间常数之和的一半的时间的范围。在误差确认处理中,cpu31对在减速计算处理更新得到的速度曲线,确认各指令点的路径误差是否在目标范围内。在cpu31确认为路径误差不在目标范围内时,cpu31再次进行速度曲线的更新处理。如上所述,cpu31在减速计算处理更新各指令点和其前后的影响范围内的块的速度。为了避免减速计算处理和误差确认处理相互影响对方,需要对进行减速计算处理的指令点的影响范围外的块进行误差确认处理。即,cpu31在减速计算处理和误差确认处理中,都得变更过去的影响块的速度和将来的影响块的速度。因此,cpu31在执行块的移动指令时,需要预读在时间常数的至少两倍的时间里要处理的块。

预读使用常数s和常数g。常数s是预读块数,常数g是影响块数。影响块数由时间常数之和决定。因此,对时间常数可变的系统而言,时间常数之和最大的情况是最差条件。在本实施方式中,作为最差条件,考虑到例如是时间常数之和为6000msec(最大设定值)的情况。在cpu31的处理周期(采样时间)为1msec的情况下,cpu31所能处理的最短的块是以1msec完成移动的块。在所有块都是以采样时间1msec完成移动的块的情况下,g取最大值。在时间常数为最大设定值6000msec的情况下,g为6000/2=3000块。如上所述,预读所需的块数是在时间常数的两倍的时间里要处理的块数。因此,cpu31需要预读2×6000=12000块。如图8所示,在将k设为误差确认块编号的情况下,减速计算块编号为k+2g,预读块编号为k+3g,执行块编号为k-g。减速计算块编号是执行减速计算处理的块编号。误差确认块编号是执行误差确认处理的块编号。执行块编号是执行的块编号。

参照图9,说明从初始状态开始的处理流程。cpu31从ram33中存储的块信息20(参照图8)读入块b(1)~块b(3g)(s7)。本实施方式的g为3000。因此,cpu31读入块b(1)~块b(9000)。cpu31对所读入的块b(1)~块b(2g)执行减速计算处理(s8)。cpu31将1设定为误差确认块编号k(s9)。

参照图10,说明减速计算处理。由于k+2g=6001,因此,cpu31以块b(6001)为对象即可。cpu31对作为对象的块b(6001)的移动指令是直线插补指令(g1指令)还是圆弧插补指令(g2指令)进行判断(s22)。在cpu31判断为是直线插补指令时(s22:直线插补),cpu31将块b(6001)的终点设为对象指令点(s25)。在cpu31判断为是圆弧插补指令时(s22:圆弧插补),cpu31执行圆弧中央指令点计算处理(s23)。

参照图11和图12,说明圆弧中央指令点计算处理。在全自动减速处理中,cpu31计算对象指令点的误差,求出能使该误差为目标误差以下的移动速度。但是,例如,如图11所示,在为利用圆弧在a点和b点之间进行插补的圆弧插补指令的情况下,仅抑制圆弧起点部的指令点的误差和圆弧终点部的指令点的误差的话,存在圆弧中段部的误差超出目标误差的可能性。在本实施方式中,通过在圆弧中央部创建虚拟的指令点(下面称为圆弧中央指令点),还抑制圆弧中央指令点的误差,从而还能够抑制因圆弧的曲率引起的误差。圆弧中央指令点是这样的点:该点处于从圆弧起点部的指令点向圆弧终点部的指令点进行圆弧插补时的移动距离的一半位置处。

参照图13和图14,说明影响区间计算处理。在图13所示的程序路径中,对象指令点为第i指令点posi。本计算处理使用的符号的含义如下。

·li:第i块的块长(mm)

·fi:第i块的速度(mm/分钟)

·nci:第i块的指令插补点数(实数)(个)

·nblock:预读出的指令的最大个数(个)

·dt:采样时间(msec)

·t:时间常数之和(msec)

·posxi、posyi、poszi:第i块与第i+1块的连接处的指令点

·posxis、posyis、poszis:最早影响误差的指令点(mm)

·posxie、posyie、poszie:最晚影响误差的指令点(mm)

·is:最早影响误差的指令编号

·ie:最晚影响误差的指令编号

·posxsti、posysti、poszsti:第i指令点所对应的影响开始点(mm)

·posxeni、posyeni、poszeni:第i指令点所对应的影响结束点(mm)

采样时间dt与处理周期相当。

如图14所示,在影响区间计算处理中,cpu31针对各块根据移动距离和移动速度以实数求出指令插补点数(s51)。cpu31例如利用下面的算式计算第i块的指令插补点数(实数)。

·nci=(li×60×1000/fi)/dt

cpu31求出最早影响对象指令点的指令点的指令编号(s52)。最早影响对象指令点的指令点是指存在于下述范围中的指令点中的指令编号最小的指令点,该范围是从对象指令点到向前追溯到时间常数之和的一半的时间的时间点的范围。

cpu31求出最晚影响对象指令点的指令点的指令编号(s53)。最晚影响对象指令点的指令点是指不在下述范围的指令点中的指令编号最小的指令点,该范围是从对象指令点到经过时间常数之和的一半的时间的时间点的范围。

cpu31求出影响开始点(s54)。影响开始点是指影响作为对象的块的误差的区间的开始位置。如图15所示,第i指令点posi的影响开始点possti的位置比指令点posi靠前,且该影响开始点possti距指令点posi的距离与时间常数之和的一半相当。

cpu31求出影响结束点(s55)。影响结束点是指影响作为对象的块的误差的区间的结束位置。如图16所示,第i指令点posi的影响结束点poseni的位置比指令点posi靠后,且该影响结束点poseni距指令点posi的距离与时间常数之和的一半相当。cpu31结束本处理,并使处理前进到图10中的s27。cpu31执行指令插补点计算处理(s27)。指令插补点计算处理是求出从影响开始点至影响结束点之间的指令插补点的处理。指令插补点是通过以采样时间对各块进行划分得到的,能够根据各块的移动速度和采样时间来计算指令插补点。

cpu31执行滤波处理(s28)。滤波处理是这样的处理:利用移动平均滤波器对通过s27的处理计算出来的指令插补点进行处理,从而求出动作插补点。通常使用两个以上的移动平均滤波器。cpu31例如使用三个具有不同的切削进给时间常数的移动平均滤波器,分三个阶段进行滤波处理。本计算处理使用的符号的含义如下。

·pxi、pyi、pzi:指令插补点(mm)

·prxi、pryi、przi:动作插补点(mm)

·t1:时间常数1(msec)

·t2:时间常数2(msec)

·t3:时间常数3(msec)

·dt:采样时间(msec)

时间常数1~时间常数3均为采样时间的整数倍。

第i插补点的移动平均滤波器的计算式为下面的[算式1]。

[算式1]

j=1~3。为了使指令插补点的起点和终点与动作插补点的起点和终点一致,cpu31在指令插补点的起点前和终点后在指令插补点添加(tj/dt)个与起点和终点相同的值来进行计算。cpu31执行误差计算处理(s29)。

参照图17~图22,说明误差计算处理。如图18所示,误差是指指令点与动作插补点的距离为最小时的值,以单一解求出。本计算处理使用的符号的含义如下。

·posxi、posyi、poszi:第i块与第i+1块的连接处的指令点

·prxi、pryi、przi:动作插补点(mm)

·isp:探测点

·ε1:探测点的前一个动作插补点与指令点的距离(mm)

·ε2:探测点与指令点的距离(mm)

·ε3:探测点的后一个动作插补点与指令点的距离(mm)

·ε:误差(mm)

·矢量p:从误差最小的动作插补点观察误差第二小的动作插补点所构成的矢量

·矢量ε2:从误差最小的动作插补点观察指令点所构成的矢量

如图17所示,cpu31以动作插补点为探测点(参照图18),利用下面的[算式2]计算探测点与对象指令点的误差(s71)。初始探测点为距对象指令点最近的指令插补点所对应的动作插补点。

[算式2]

cpu31计算探测点前后的动作插补点与对象指令点的误差(s72)。cpu31利用下面的[算式3]计算探测点的前一个动作插补点与对象指令点的误差。

[算式3]

cpu31利用下面的[算式4]计算探测点的后一个动作插补点与对象指令点的误差。

[算式4]

cpu31对探测点和探测点前后的动作插补点进行比较(s73),对探测点的误差ε2是否为最小进行判断(s74)。在cpu31判断为探测点的误差ε2为最小时(s74:是),即,在cpu31判断为ε2≤ε1且是ε2≤ε3时,cpu31使处理前进到后述的s78。在cpu31判断为探测点的误差ε2不为最小时(s74:否),cpu31对探测点的前一个动作插补点的误差ε1是否为最小进行判断(s75)。在cpu31判断为误差ε1为最小时(s75:是),即,在cpu31判断为ε1<ε2时,cpu31视为isp=isp-1,从而使探测点向前移动一个点(s76),并使处理返回s71,重复处理。在cpu31判断为探测点的后一个动作插补点的误差ε3为最小时(s75:否),即,在cpu31判断为ε3<ε2时,cpu31视为isp=isp+1,从而使探测点向后移动一个点(s77),并使处理返回s71,重复处理。

在cpu31判断为探测点的误差ε2为最小时(s74:是),如图19和图20所示,cpu31利用下面的[算式5]或[算式6]计算将探测点前后的动作插补点中的误差第二小的点和探测点连结起来的线段的矢量p以及将探测点和指令点连结起来的线段的矢量ε2(s78)。

·ε1≤ε3时

[算式5]

·ε3<ε1时

[算式6]

cpu31对通过计算求得的矢量所构成的角是否为锐角(内积是否为正)进行判断(s79)。在cpu31判断为像图20所示的那样,矢量所构成的角为锐角时(s79:是),cpu31像图21所示的那样,基于勾股定理,利用下面的[算式7]计算距指令点最近的最接近点(s80)。cpu31根据指令点和通过计算求得的最接近点计算误差(s81)。cpu31通过像上述这样地进行内插,即使在矢量所构成的角为锐角的情况下,也能够更高精度地求出最接近点。

[算式7]

其中,(d为将投影到线上时的距离)

在cpu31判断为像图22所示的那样,矢量所构成的角为钝角时(s79:否),相对于将探测点和误差第二小的动作插补点连结起来的直线的垂线的垂足(最接近点)成为外插点。因此,存在误差与理想值相差甚远的可能性。因此,cpu31将通过s74求得的误差ε2确定为误差ε(s82)。将误差ε存储至ram33。cpu31结束误差计算处理,并执行误差抑制处理(s30)。

参照图23和图24,说明误差抑制处理。假设为:在本处理中,误差和速度呈线性关系。本处理是这样的处理:通过内插处理计算减速率,与减速率相应地调整移动速度,从而使误差和目标误差一致。在本实施方式中,针对对象指令点为第i块的终点时的第k次误差抑制处理进行说明。本处理使用的符号的含义如下。

·ε:误差(mm)

·εk:重新计算k次后得到的对象指令点的误差(mm)

·εr:目标误差(mm)

·εt:误差收敛容许值(mm)

·rk:重新计算k次后得到的减速率(-)

·fik:重新计算k次后得到的速度(mm/分钟)

·is:最早影响误差的指令(-)

·ie:最晚影响误差的指令(-)

·nblock:最大预读块数(-)

如图23所示,cpu31对通过误差计算处理求得的误差ε是否小于或等于目标误差εr进行判断(s91)。在cpu31判断为误差ε小于或等于目标误差εr时(s91:是),cpu31结束本处理,并使处理前进到图10中的后述的s31。在cpu31判断为误差ε大于目标误差εr时(s91:否),cpu31利用下面的算式计算减速率rk(s92)。

·rk=εr/ε

cpu31利用下面的算式计算影响区间的速度(s93)。

·fik=fi×rk

is≤i≤ie。

cpu31利用求得的移动速度重新计算影响区间(s94)。计算方法与图14所示的影响区间计算处理的计算方法相同。cpu31重新计算指令插补点(s95)。cpu31再次执行指令插补点计算处理。cpu31使用求得的指令插补点重新计算动作插补点(s96)。计算方法与图10中的s28的滤波处理的计算方法相同。cpu31使用指令点和求得的动作插补点重新计算误差εk(s97)。计算方法与图17中的误差计算处理的计算方法相同。

cpu31对通过计算求得的误差是否满足误差条件进行判断(s98)。本实施方式的误差条件是这样的条件:目标误差减去误差后的差值大于或等于0且小于或等于误差收敛容许值(0≤εr-εk≤εt)。在cpu31判断为误差满足误差条件时(s98:是),cpu31分别将减速率、影响开始点和影响结束点确定为通过s92和s94求得的值(s99)。cpu31使处理返回图10中的处理,并使处理前进到后述的s31。

在cpu31判断为误差不满足误差条件时(s98:否),例如像图24所示的那样,误差εb大于目标误差εr。为了使误差为目标误差εr,cpu31需要变更减速率。虽然误差εa小于目标误差εr,但是,目标误差εr减去误差εa后的差值大于误差收敛容许值εt。由于相对于路径的误差足够小,因此能够确保加工品质,但是,由于减速率变小,因此,速度变慢,导致加工周期延迟。因此,为了使误差εa小于或等于误差收敛容许值εt,cpu31需要变更减速率。cpu31例如通过线性插补来变更减速率,直到误差εk变为目标误差εr(s100)。在本实施方式中,假设为误差与减速率的关系为线性关系。例如,在减速率rb时的误差为εb,且应用通过再次进行减速处理求得的减速率rb时的误差为εa的情况下,cpu31利用下面的[算式8]计算减速率rk+1。一般情况下,误差与减速率的关系不为线性关系,但是,cpu31能够通过重复多次试验来求出满足误差收敛容许值的减速率。在本实施方式中,在通过线性插补求减速率时,为了能高效求得满足误差收敛容许值的减速率,将作为目标的误差设为由目标误差εr减去误差收敛容许值εt的一半所得到的值。

[算式8]

rk+1=ra+{(εr-εt/2)-εa}*(ra-rb)/(εa-εb)

在εk<εr的情况下,若εa<εk,则视为εa=εk,ra=rk。在εk>εr的情况下,若εb>εk,则视为εb=εik,rb=rk。cpu31使处理返回s93,重复上述处理,来重新计算误差。设为:εa的初始值为0,εb的初始值为ε,ra的初始值为0,rb的初始值为1。

在cpu31判断为通过重新计算求得的误差满足误差条件时(s98:是),cpu31确定减速率、影响开始点和影响结束点(s99)。误差为目标误差以下且是在误差容许值的范围内。因此,本实施方式能够提高加工品质,且能够以较短的加工周期完成加工。cpu31执行速度曲线更新处理(s31)。

参照图25~图33,说明速度曲线更新处理。在本实施方式中,以创建图26所示的程序路径的速度曲线的情况为一例进行说明。如图25和图26所示,例如,在将指令点c3作为对象指令点的情况下,cpu31对指令点c3是否为圆弧中央指令点,且该圆弧的移动时间是否为时间常数之和以上进行判断(s101)。由于指令点c3是块终点(s101:否),因此,cpu131将影响区间设定为减速区间(s102)。减速区间是指按照通过图23中的误差抑制处理确定的减速率减速的区间。cpu31基于通过误差抑制处理确定的指令点c3所对应的影响开始点、影响结束点和减速率,确定对象块的速度(s104),生成速度曲线(s105)。

图27是以指令点c3为对象指令点时的速度曲线。指令点c3的影响开始点位于指令点c1~指令点c2之间的块长l2的中段。指令点c3的影响结束点位于指令点c4~指令点c5之间的块长l5的中段。减速区间为从影响开始点至影响结束点的影响区间。在将块长l1~块长l6所对应的块的移动速度设为f,且通过误差抑制处理确定的减速率为r3的情况下,从影响开始点至影响结束点的移动速度为f×r3。将生成的速度曲线存储至ram33。

在生成指令点c3的速度曲线之后(s105),cpu31将所生成的速度曲线和先前生成并存储在ram33中的速度曲线整合起来,更新速度曲线(s106)。当指令点c3的速度曲线的更新完成时,如图28所示,cpu31将下一指令点c4设定为对象指令点,以与指令点c3同样的方式创建速度曲线。图29是以指令点c4为对象指令点时的速度曲线。在将指令点c4设定为对象指令点的情况下,指令点c4的影响开始点位于指令点c2~指令点c3之间的块长l3的中段。指令点c4的影响结束点位于指令点c5~指令点c6之间的块长l6的中段。减速区间为从影响开始点至影响结束点的影响区间。因此,在将块长l1~块长l6所对应的速度块的速度设为f,且通过误差抑制处理确定的减速率为r4的情况下,从影响开始点至影响结束点的移动速度为f×r4。将生成的速度曲线存储至ram33。

图30是通过将指令点c3的速度曲线和指令点c4的速度曲线叠在一起得到的图表。该两个速度曲线具有移动速度不同的重复区间。cpu31选择重复区间中的移动速度较小的部分(参照图30中的深灰色部分)。因此,移动速度在块长l2的中段从速度f减速至速度f×r3,在块长l3的中段从速度f×r3进一步减速至速度f×r4。之后,移动速度在块长l6的中段从速度f×r4加速至速度f。将速度曲线整合。

图31是作为图30中的整合结果的速度曲线数据的。速度曲线数据例如包含指令、块长、速度、速度划分数、距离、减速率等,将上述各种数据相互对应地存储起来。图26和图28所示的程序路径是由移动指令1~移动指令6所指示的块b1~块b6构成的。在速度曲线数据中,以移动指令1对应块长l1,移动指令2对应块长l2,移动指令3对应块长l3,移动指令4对应块长l4,移动指令5对应块长l5,移动指令6对应块长l6的方式进行存储。移动速度是移动指令指定的速度,移动指令1~移动指令6中的移动速度均为相同的移动速度f。

速度划分数是在各块b1~块b6中对移动速度进行划分的数量。如图30所示,在块长l2、块长l3和块长l6中移动速度被划分。因此,块长l2、块长l3和块长l6的速度划分数为1,除此以外的块长没有被划分,因此,速度划分数为0。距离是从块起点至观察到的速度变化点的距离。在速度曲线数据中,例如,与块长l2对应地存储距离p2和距离l2。减速率是使速度减速的比率。在速度曲线数据中,例如,就块长l2而言,与距离p2相对应地存储为减速率=1,与距离l2相对应地存储为减速率=r3。cpu31将速度曲线数据存储至ram33,并返回图10中的流程图,使处理前进到s32。

参照图25、图32和图33,说明圆弧中央指令点的速度曲线。图32所示的程序路径是在两个直线插补指令(g1指令)之间夹着圆弧插补指令(g2指令)的路径。圆弧插补的路径存在因圆弧的曲率产生误差的问题。因此,cpu31像上述那样地在圆弧中央部追加圆弧中央指令点。如图25所示,在cpu31判断为对象指令点是圆弧中央指令点,且该圆弧的移动时间为时间常数之和以上时(s101:是),cpu31将整个圆弧区域设定为减速区间(s103)。在cpu31判断为圆弧的移动时间小于时间常数之和,且影响区间大于整个圆弧区域时(s101:否),cpu31只要按原则将影响区间设定为减速区间即可(s102)。

图33是将图32所示的圆弧中央指令点作为对象指令点时的速度曲线。在将g1指令和g2指令所对应的块的移动速度设为f,且通过误差抑制处理确定的减速率为r的情况下,整个圆弧区域即g2指令所对应的块的移动速度为f×r。在圆弧插补的情况下,除了会在圆弧插补的块端的指令点产生的路径误差之外,还会在整个圆弧区域产生因圆弧的曲率引起的误差。即,在距圆弧插补的块端的指令点时间常数之和的一半以上的任何圆弧位置处,因曲率引起的路径误差都相同。因此,在本实施方式中,作为代表点,例如追加圆弧中央指令点,在整个圆弧区域进行减速处理,直到圆弧中央指令点的位置的误差变为目标误差。因此,在本实施方式中,不仅能够考虑到指令点的误差,还能够考虑到因圆弧插补的圆弧部分的曲率引起的误差。

在更新速度曲线之后(图25中的s106),cpu31对对象指令点是否为圆弧中央指令点进行判断(s32)。在cpu31判断为对象指令点为圆弧中央指令点时(s32:是),cpu31将圆弧插补块的终点作为对象指令点(s25),并重复上述处理。在cpu31判断为对象指令点不是圆弧中央指令点,而是块终点时(s32:否),cpu31视为误差确认块编号k=1(s9),并读入块b(k+3g)(s10)。cpu31执行块b(k+2g)的减速计算处理(s11)。cpu31以块b(k)为对象,执行误差确认处理(s12)。

参照图34~图36,说明误差确认处理。图10所示的减速计算处理是为了减小对象指令点的误差进行减速的算法,未考虑到对象指令点以外的其他指令点的误差。图34的(1)是对程序路径、程序路径的各指令点进行减速计算处理之后的情况和不对程序路径、程序路径的各指令点进行减速计算处理的情况进行比较的图表。图34的(2)是图34的(1)所示的w1区域的放大图。有时,为了抑制对象指令点的误差,执行减速计算处理,结果使得其他指令点的误差超出了目标误差。附图中的误差p是下述这种情况的例子:为了减小w2区域内的误差,执行减速计算处理,结果与不进行减速处理时相比,误差变大了。减速计算处理的算法基于这样的假设:进行减速就会使误差变小。图34的(2)所示的轨迹是这样的轨迹:随着移动方向(加速方向)发生变化,程序路径和将动作插补点连结起来构成的路径相交。就该轨迹而言,有时,通过减速处理,反而会使误差变大。为了解决误差变大的问题,cpu31执行误差确认处理。误差确认处理是针对执行过减速计算处理的块再次进行与减速计算处理同样的处理。

在图8所示的例子中,误差确认块编号k=3001。如图35所示,cpu31针对作为对象的块执行与图10中的减速计算处理同样的处理(s111)。就生成速度曲线之后的块而言,对减速计算处理前的块按照速度划分数进行划分,且在一个块移动速度发生变化。因此,cpu31无法直接使用减速计算处理用过的上述算式。在本实施方式中,将生成速度曲线之后的块视为针对每个移动速度发生变化的连接处进行了划分的虚拟块,将虚拟块与虚拟块的连接处的点设为虚拟指令点。cpu31通过将虚拟块视为块,将虚拟指令点视为指令点,能够使用上述算式。

如图36的(1)所示,在本实施方式中,假设出例如由块b1和块b2这两个块构成的呈大致字母l形的移动路径。块b1和块b2的连接处为指令点cn。块b1的块长为l1,块b2的块长为l2。针对指令点cn进行减速计算处理(参照图10),结果,就图36的(2)所示的速度曲线而言,块b1被划分成块b1-1和块b1-2这两部分,块b2被划分成块b2-1和块b2-2这两部分。移动速度在块长l1中的距离p11处减速,之后,在块长l2中的距离p21处加速。

如图36的(3)所示,cpu31将块长l1和块长l2中的速度发生变化的两个连接处设为虚拟指令点。块b1-1、块b1-2、块b2-1和块b2-2成为虚拟块。将生成的虚拟块视为块,将生成的虚拟指令点视为指令点来处理,从而cpu31能够使用上述算式。由于虚拟指令点不是要被抑制误差的指令点,因此,为了减少计算量,也可以是,cpu31不执行在图35的误差确认处理中进行的减速计算处理中的误差计算处理(参照图10中的s29)。因此,即使在cpu31执行了减速计算处理(s111),结果使得其他指令点的误差大于目标误差的情况下,cpu31也能够通过进行误差确认处理,来抑制误差变大了的其他指令点的误差,并能够再次更新速度曲线。cpu31执行置换处理(s112),并使处理返回图9中的流程图。

参照图37~图40,说明置换处理的内容。如上所述,对每个虚拟块进行误差确认处理并更新速度曲线。但是,向用于控制轴移动的驱动电路51a、驱动电路53a和驱动电路54a(参照图1)输出速度曲线数据是针对每个块,而不是每个虚拟块。因此,cpu31需要将按照虚拟块计算出来的速度曲线数据置换成块的速度划分数、距离、减速率。cpu31通过执行置换处理来转换成各块的速度曲线数据。

本处理使用的块的速度划分数、距离和减速率以下述方式进行定义。

·块的速度划分数:(误差确认处理时的各虚拟块的速度划分数+1)之和-1

·块的距离:从块的起点至观察到的速度变化点的距离

速度变化点也包含块的终点。

·块的减速率:通过减速计算处理求得的减速率与通过误差确认处理求得的减速率之积

图37是通过减速计算处理求得的速度曲线的一例。速度曲线是由块b1~块b4这四个块构成的路径的速度曲线。块b1的块长为l1,块b2的块长为l2,块b3的块长为l3,块b4的块长为l4。r3和r4为减速率。块长l2、块长l3和块长l4中的移动速度均发生了变化。在块长l2的中段,从速度f减速至速度f×r3。在块长l3的中段,从速度f×r3进一步减速至速度f×r4。在块长l4的中段,从速度f×r4加速至速度f。块b2被划分成两部分:块b2-1和块b2-2。块b3也被划分成两部分:块b3-1和块b3-2。块b4也被划分成两部分:块b4-1和块b4-2。块b1未被划分。

图38是通过误差确认处理求得的速度曲线的一例,图38是通过对图37中的生成速度曲线之后的块像上述那样地再次进行与减速计算处理同样的处理得到的图。在该速度曲线中,也是块长l2、块长l3和块长l4中的速度均发生了变化。在块b3-1和块b3-2中,移动速度进一步分阶段地发生了变化。r3~r7为减速率。在块b3-1中,从速度f×r3减速至速度f×r3×r5(=f×r4×r6),在块b3-2中,从速度f×r3×r5加速至速度f×r4×r7。

图39是通过将图37和图38中的各速度曲线数据总结在一起得到的。在通过减速计算处理生成的速度曲线数据中,块编号1(b1)的速度划分数为0,距离为l1,减速率为1。块编号2(b2)的速度划分数为1。距离分别是指从块b2的起点至块b2-1的距离和从块b2的起点至块b2-2的距离,因此,距离分别为p2和l2。块b2-1的减速率为1,块b2-2的减速率为r3。块编号3(b3)的速度划分数为1。距离分别是指从块b3的起点至块b3-1的距离和从块b3的起点至块b3-2的距离,因此,距离分别为p3和l3。块b3-1的减速率为r3,块b3-2的减速率为r4。块编号4(b4)的速度划分数为1。距离分别是指从块b4的起点至块b4-1的距离和从块b4的起点至块b4-2的距离,因此,距离分别为p4和l4。块b4-1的减速率为r4,块b4-2的减速率为1。

在通过误差确认处理生成的速度曲线数据中,块编号1(b1)的速度划分数为0,距离为l1,减速率为1。块编号2(b2)中的块b2-1的速度划分数为0,距离为p2,减速率为1。块b2-2的速度划分数为0,距离是指距块b2的虚拟指令点的距离,因此,距离为l2-p2,减速率为1。块编号3(b3)中的块b3-1的速度划分数为1。由于块b3-1又进一步被划分成两部分,因此,块b3-1的距离是指从块b3-1的起点分别至两个速度变化点的距离,因此,距离分别为p31和p3。减速率分别为1和r5。块b3-2的速度划分数为1。由于块b3-2又进一步被划分成两部分,因此,块b3-2的距离是指从块b3-2的起点分别至两个速度变化点的距离,因此,距离分别为p32和l3-p3。减速率分别为r6和r7。块编号4(b4)中的块b4-1的速度划分数为0,距离为p4,减速率为1。块b4-2的速度划分数为0,距离是指距块b4的虚拟指令点的距离,因此,距离为l4-p4,减速率为1。

cpu31将通过误差确认处理生成的速度曲线数据置换成块的速度划分数、距离和减速率。图40是置换处理后的速度曲线数据。置换处理后的减速率为通过减速计算处理求得的减速率与通过误差确认处理求得的减速率之积。块编号2(b2)中的块b2-2的距离从距离l2-p2置换成距块b2的起点的距离l2。块编号3(b3)中的块b3-2的距离从距离p32置换成距块b3的起点的距离p3+p32,从距离l3-p3置换成距离l3。块编号4(b4)中的块b4-2的距离从距离l4-p4置换成距离l4。各虚拟块的速度曲线数据均被转换成各块的速度曲线数据。将置换处理后的速度曲线数据存储至ram33。

cpu31使处理返回图9中的处理。若cpu31判断为k>g(s13:是),则完成了最初的块的误差确认处理,因此,cpu31执行块b(k-g)(s14)。在cpu31判断为k≤g时(s13:否),未完成最初的块的误差确认处理,因此,cpu31不执行块而直接前进到下一处理。在图8所示的例子中,在误差确认块编号k=3001的情况下,执行块编号为k-g=3001-3000=1。cpu31向各轴的驱动电路51a、驱动电路53a和驱动电路54a输出ram33中存储的速度曲线数据,执行执行块的移动指令。驱动电路51a、驱动电路53a和驱动电路54a基于块信息20的轴移动信息和速度曲线数据,进行插补后加减速,来执行轴移动。cpu31在k上加1(s15)。

cpu31对k+3g是否大于总块数进行判断(s16)。在cpu31判断为k+3g小于或等于总块数时(s16:否),cpu31使处理返回s10,读入块b(k+3g),并重复处理。在cpu31判断为k+3g大于总块数时(s16:是),cpu31对k+2g是否大于总块数进行判断(s17)。在cpu31判断为k+2g小于或等于总块数时(s17:否),cpu31使处理返回s11,执行块b(k+2g)的减速计算处理,并重复处理。在cpu31判断为k+2g大于总块数时(s17:是),cpu31对k是否大于总块数进行判断(s18)。在cpu31判断为k小于或等于总块数时(s18:否),cpu31使处理返回s12,执行块b(k)的误差确认处理,并重复处理。在cpu31判断为k大于总块数时(s18:是),cpu31对k-g是否大于总块数进行判断(s19)。在cpu31判断为k-g小于或等于总块数时(s19:否),cpu31使处理返回s13,若cpu31判断为k>g(s13:是),则cpu31执行块b(k-g)(s14),并重复处理。在cpu31判断为k-g大于总块数时(s19:是),说明预读出的所有块的执行已完成,因此,cpu31使处理返回图7中的处理,并结束主处理。

参照图41~图45,说明全自动减速处理的模拟结果。在本实施方式中,进行对图41所示的程序路径执行全自动减速处理时的模拟,并验证了该模拟的作用效果。如图41所示,程序路径由g1块、g1微小块和g1块构成。排第一的g1块沿x轴方向按照直线插补移动。排第二的g1微小块从该g1块的终点向y轴方向以较大程度地呈圆弧状弯曲的方式移动。排第三的g1块从g1微小块的终点沿y轴方向按照直线插补移动。模拟条件如下。

·移动平均滤波器的时间常数:25、22、13(msec)

·程序指令速度:f5000(mm/min)

·目标误差:0.100(mm)

图42的(1)是不进行全自动减速处理时的速度曲线,图42的(2)是执行全自动减速处理时的速度曲线。数值控制装置30通过执行全自动减速处理,以多个微小块连起来的弯曲部分为中心平滑地减速。如图43所示,可知,即使都存在移动速度的变化,但是,与不进行全自动减速处理的情况相比,进行全自动减速处理非常平滑地减速,并且再平滑地加速。数值控制装置30通过执行全自动减速处理,能够避免重复减速和加速,而且还能够减小速度变化。因此,数值控制装置30不会给机床1增加负担,能够使轴移动稳定。

如图44所示,就程序路径中的g1微小块的弯曲部分而言,与不进行全自动减速处理的情况相比,全自动减速处理后的移动路径较大程度地偏向程序路径侧。因此,可知,本实施方式能够大幅地抑制误差。图45是对形成程序路径的弯曲部分的九个指令点的误差进行调查后得到的。不进行全自动减速处理的移动路径产生了约0.2mm~0.3mm左右的较大误差。在全自动减速处理后的移动路径中,各指令点的误差的最大值均被抑制在目标误差以下。因此,数值控制装置30通过预先将目标误差设定为参数,能够自动计算最佳移动速度。数值控制装置30能够避免各指令点的拐角处的误差过大的情况、相反地速度降得过低的情况。因此,该模拟证实了:能够实现加工精度的提高和较短的加工周期这两方面。

参照图46~图48,说明移动路径的一个块中的速度划分数。图46是在移动距离较长的块(下面称为长块)后连续连接有移动距离较短的微小块的路径的一例。微小块连续的部分呈圆弧状弯曲。当在长块后连接多个微小块时,有时,微小块的各指令点的影响区间的开始点大量位于长块。在该情况下,长块的速度划分数可能会变多。当一个块的速度划分数变多时,向驱动电路51a、驱动电路53a和驱动电路54a输出的速度曲线数据的数据量会变大。因此,可能发生下述等问题:cpu31的处理速度跟不上,不得不确保大量的用于存储数据的存储器容量。在本实施方式中,为了解决该问题,预先用参数设定一个块的最大速度划分数。在本实施方式中,在一个块的速度划分数超出最大速度划分数的情况下,也可以是,执行图47所示的速度划分数调整处理,调整速度曲线,直到速度划分数变为最大划分数。

参照图47和图48,说明速度划分数调整处理。cpu31例如也可以在执行图25所示的速度曲线更新处理之后,从rom32读入速度划分数调整程序,执行本处理。cpu31针对通过速度曲线更新处理生成的速度曲线,判断一个块的速度划分数是否超出最大速度划分数(s121)。最大速度划分数预先存储在存储装置34中。在cpu31判断为一个块的速度划分数没超出最大速度划分数时(s121:否),cpu31结束本处理。

图48的(1)是程序路径中含长块时的速度曲线的一例。a1区间是受到了长块前面的块的影响的区间。因此,a1区间被划分出大量的块,移动速度反复发生变化。a3区间是受到了长块后面的块的影响的区间。因此,a3区间也被划分出大量的块,移动速度也反复发生变化。处于a1区间与a3区间之间的a2区间是未受到前后的块的影响的区间。因此,a2区间没被划分,移动速度恒定。由于a1区间和a3区间被划分出大量的块,因此,整体的速度划分数变多了。

在cpu31判断为速度划分数超出最大速度划分数时(s121:是),cpu31按照最大划分数对处于一个块内的影响区间均匀地进行划分(s122)。在像图48的(1)所示的速度曲线那样,存在没受到前后的块的影响的a2区间的情况下,cpu31只要对受到了前后的块的影响的a1区间和a3区间按照(最大速度划分数-1)÷2的数量均匀地进行划分即可。最大速度划分数设定为奇数。a2区间不被划分。如图48的(2)所示,a1区间和a3区间均被划分出四个部分。

cpu31选择被划分出来的各区间中的最小移动速度,生成速度曲线(s123)。如图48的(2)所示,对各块的速度按照灰色表示的部分那样进行调整。在图48的(2)中,划分前的区间的界线与划分后的区间的界线是一致的。即使在界线不一致的情况下,cpu31也以与界线一致的情况同样的方式选择新的各区间中的最小移动速度。与调整前的速度曲线相比,调整后的速度曲线中的速度划分数有所减少。因此,cpu31能够减少向驱动电路51a、驱动电路53a和驱动电路54a输出的速度曲线的数据量。与调整前的速度曲线相比,cpu31能够减小速度变化,因此,施加给机床1的负担变小。cpu31将调整后的速度曲线存储至ram33,并结束本处理。

上述实施方式的圆弧中央指令点是本发明的虚拟指令点的一例。目标误差是本发明的限定值的一例。cpu31是本发明的控制部的一例。执行图10中的s24和s25的处理时的cpu31是本发明的指定部的一例。执行s26的处理时的cpu31是本发明的区间指定部的一例。执行s27的处理时的cpu31是本发明的划分部的一例。执行s28的处理时的cpu31是本发明的处理部的一例。执行s29的处理时的cpu31是本发明的误差算出部的一例。执行图23中的s91的处理时的cpu31是本发明的判断部的一例。执行s92的处理时的cpu31是本发明的算出部的一例。执行图10中的s31的处理时的cpu31是本发明的更新部的一例。

执行图23中的s98的处理时的cpu31是本发明的误差判断部的一例。执行s100的处理时的cpu31是本发明的变更部的一例。执行图10中的s22的处理时的cpu31是本发明的插补判断部的一例。执行s23和s24的处理时的cpu31是本发明的追加部的一例。执行图25中的s102的处理时的cpu31是本发明的第一设定部的一例。执行s103的处理时的cpu31是本发明的第二设定部的一例。

执行在图35中的s111的减速计算处理中进行的误差计算处理(参照图10中的s29)时的cpu31是本发明的重新算出部的一例。执行在s111的减速计算处理中进行的误差抑制处理的s91(参照图23)的处理时的cpu31是本发明的重新判断部的一例。

如上面说明的那样,本实施方式的数值控制装置30的cpu31沿着通过对nc程序所指示的多个指令点进行插补获得的路径,创建速度曲线。速度曲线包含各指令点之间的距离和速度的信息。cpu31利用加减速处理使用的移动平均滤波器对速度曲线进行处理,并基于该处理的结果控制轴移动。cpu31计算将从程序路径中的指令点中作为对象的对象指令点。cpu31在所计算出来的对象指令点前后,计算基于加减速处理使用的移动平均滤波器的时间常数的影响区间。cpu31按照采样时间对通过计算求得的影响区间进行划分,并计算指令插补点。cpu31利用具有与加减速处理使用的移动平均滤波器的时间常数相同的时间常数的移动平均滤波器,对通过计算求得的指令插补点进行处理,计算动作插补点。cpu31算出由移动平均滤波器处理后的动作插补点的相对于程序路径的误差。cpu31对动作插补点的误差是否超出目标误差进行判断。在cpu31判断为误差超出目标误差时,cpu31算出基于目标误差和误差的减速率。cpu31基于通过计算求得的影响区间和减速率,更新速度曲线。数值控制装置30不是仅在指令点减速,而是在包含指令点在内的影响区间减速。因此,即使是微小块连续这样的路径,数值控制装置30也能够避免频繁重复加减速。因此,数值控制装置30能够提高被切削件的加工面的品质。数值控制装置30能够针对路径中的各指令点按顺序指定多个对象指令点。因此,数值控制装置30能够全面抑制路径中的例如弯曲的拐角部分、圆弧部分、曲线部分处因加减速产生的误差。

在上述实施方式的影响区间计算处理(参照图14)中,影响区间包含位于对象指令点前后的两个小区间。该两个小区间是以加减速处理使用的移动平均滤波器的时间常数之和的一半的时间移动所形成的区间。因此,数值控制装置30能够在影响区间更新速度曲线,因此,能够有效地抑制指令点的误差。也可以是,小区间是以大于上述时间常数之和的一半的时间移动所形成的区间。

在上述实施方式的误差抑制处理(参照图23)中最初使用的减速率是用误差除目标误差得到的比率。因此,数值控制装置30能够容易地算出减速率。

在上述实施方式的误差抑制处理中,cpu31对按照减速率在影响区间移动时的误差与目标误差之差是否小于或等于误差收敛容许值进行判断。在cpu31判断为该差超出误差收敛容许值时,cpu31变更减速率,以使得误差与目标误差之差小于或等于误差收敛容许值。因此,数值控制装置30能够避免减速过度,因此,能够以较短的加工周期完成对被切削件的加工。也能够避免减速不到位,因此,能够更可靠地避免误差与目标误差之差超出误差收敛容许值。

在上述实施方式的减速计算处理(参照图10)中,cpu31对程序路径中的块是直线插补块还是圆弧插补块进行判断。在cpu31判断为块是直线插补块时,cpu31将块的终点指定为对象指令点。在cpu31判断为块是圆弧插补块时,cpu31将圆弧中央指令点指定为对象指令点。因此,数值控制装置30能够考虑到因圆弧部分的曲率引起的误差。即使在圆弧插补的情况下,cpu31也能够将圆弧中央指令点的误差即圆弧的误差抑制在限定值以下。因此,即使是圆弧插补的部分,数值控制装置30也能够提高被切削件的加工面的品质。

在上述实施方式的速度曲线更新处理(参照图25)中,在cpu31判断为对象指令点是块的终点时,cpu31将减速区间设定为影响区间。在cpu31判断为对象指令点是圆弧中央指令点时,cpu31将减速区间设定为整个圆弧插补区域。因此,数值控制装置30能够考虑到因圆弧部分的曲率引起的误差。

在上述实施方式中,cpu31在通过减速计算处理(参照图9)更新速度曲线之后,执行误差确认处理。在误差确认处理中,cpu31再次计算误差,并再次对计算出来的误差是否超出目标误差进行判断。在cpu31判断为误差超出目标误差时,cpu31再次重新计算减速率和更新速度曲线。因此,数值控制装置30能够将误差抑制在目标误差以下。

在上述实施方式中,在cpu31判断为误差超出目标误差时,cpu31仅进行一次重新计算减速率和一次重新更新速度曲线,但是,也可以重复进行多次,也可以是,例如一直进行到误差小于目标误差为止。

本发明不限于上述实施方式,能够进行各种变更。在上述实施方式中,将移动平均滤波器的时间常数用作了马达的时间常数(加减速时间常数),但是,也能够应用具有时间常数的其他滤波器。例如,也能够应用低通滤波器、陷波滤波器等。还能够使用加权移动平均滤波器(普通的fir滤波器)。在上述实施方式中,利用三阶移动平均滤波器对移动速度进行处理,但是,也可以用二阶或四阶以上的移动平均滤波器进行处理。在上述实施方式中,即使是以恒定的时间进行加减速这样的处理,也能够与滤波器同样地来使用。

在上述实施方式中,减速计算处理(图9中的s8和s11)和误差确认处理(图9中的s12)使用的采样时间使用的是与cpu处理周期相等的值。为了简化计算处理,采样时间也可以使用cpu处理周期的整数倍的值。但是,有时,误差计算的精度会降低,无法达到目标误差。

为了简化计算处理,也可以省略上述实施方式的全自动减速处理中的误差确认处理(图9中的s16)以及与之相连的置换处理。在该情况下,执行块的移动指令时需要预读出在时间常数之和的时间里要处理的块。

在上述实施方式中,也可以省略误差抑制处理(参照图23)中的s93~s100的处理。s98的误差条件是:误差小于或等于目标误差(εr≥εk),或误差与目标误差之差小于或等于误差收敛容许值(0≤εr-εk≤εt)。误差条件也可以设定为上述以外的条件,也可以是,例如,误差条件仅设定为误差小于或等于目标误差(εr≥εk),或设定为|εr-εk|≤εt。

但是,若考虑到缩短加工周期,则优选的是,误差条件中附加这样的条件:误差与目标误差之差小于或等于误差收敛容许值。

在上述实施方式中,将指令点前后的影响区间设定为与时间常数之和的一半的时间相当的距离。影响区间只要是包含与时间常数之和的至少一半的时间相当的距离的区间即可。

在上述实施方式的减速计算处理的s23和s24中,在cpu31判断为作为对象的块是圆弧插补块时,cpu31在圆弧中央部创建虚拟指令点(圆弧中央指令点)。也可以是,cpu31在圆弧的除了端点以外的其他位置创建虚拟指令点。也可以创建多个虚拟指令点。也可以是,cpu31不对作为对象的块是直线插补块还是圆弧插补块进行判断,而是一律将块终点作为对象指令点进行计算。也可以是,cpu31将圆弧分解成微小线段的块,针对各块按照直线插补指令进行误差的计算。

上述实施方式的机床1是主轴的轴线沿上下方向延伸的立式机床。机床也可以是主轴的轴线沿水平方向延伸的卧式机床。驱动电路51a~驱动电路55a(参照图1)设于数值控制装置30,但也可以设于机床1。

也可以是,机床的结构除了具有x轴、y轴和z轴以外,还具有例如a轴、b轴、c轴等旋转轴。机床的结构也可以仅具有旋转轴。

上述实施方式的cpu31通过图7所示的主处理来进行全自动减速处理(s5),但也可以是,在主处理之前实施全自动减速处理,将其结果存储至ram33或存储装置34,然后使用该结果来进行处理。在上述实施方式中,也可以是,利用除了数值控制装置30以外的计算机预先处理nc程序,进行全自动减速处理,将其结果输入数值控制装置30,从而来获得同样的效果。

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