一种自动单边补偿的数控加工方法
技术领域
本发明涉及数控加工的研究领域,特别涉及一种自动单边补偿的数控加工方法。
背景技术
在数控机床加工过程中,由于长期使用会造成的丝杠磨损,导致加工时的实际加工路径与加工程序路径有一定的偏离。如果是根据工件尺寸编制的加工程序,往往要不断的修改程序,在实际应用中很不方便。因此,在数控系统中一般会有刀具补偿功能,只需要修改对应刀具的补偿值,在加工过程中会对当前规划的路径和补偿值进行计算,对所有对应的刀具路径进行重新规划,达到了对应刀具的整体补偿,既保证了加工的精度,又不必变更加工程序的内容,大大提高了生产效率。
由于现有的刀具补偿方法是对工件进行一个整体均匀的补偿,在X轴和Y轴丝杆磨损不一致的情况下,会对一些不必要进行补偿的刀具路径也进行了补偿,在一定程度上造成了偏差,影响了工件的加工形状和加工精度,降低了产品的良品率。所以,为满足工业生产需求,找出更精确的补偿方法极其重要。
发明内容
本发明的主要目的在于克服现有技术的缺点与不足,提供一种自动单边补偿的数控加工方法,能自动检索程序中的刀具信息,单独对X轴或Y轴进行补偿,补偿精度为0.001mm,解决由于X轴Y轴丝杠磨损的不同造成的加工偏差。
为了达到上述目的,本发明采用以下技术方案:
一种自动单边补偿的数控加工方法,包括下述步骤:
(1)数控系统上电并完成加工前的准备工作,如果该程序需要用到补偿,则设置好刀具对应的刀具补偿值,所述刀具补偿值用于在运行过程中对运行的刀具路径进行补偿;
(2)载入需要执行的程序文件,载入程序时对整份程序进行第一次解析,根据程序内容获取到程序指令对应的刀具信息和距离信息,并记录下来;
(3)根据记录下来的程序指令的刀具信息和位置信息,计算出程序内所用到的刀具中心点;
(4)从步骤(1)中获取该刀具的刀具补偿值,并保存在解析器内部,等待调用,所述刀具补偿值包括刀具X方向补偿值和刀具Y方向补偿值;
(5)运行程序,对程序代码进行第二次解析,第二次解析是把程序代码解析成对应的移动指令和数控机床命令并添加到解析器队列里,等待调用;
(6)运行过程中会检查队列是否为空,若队列不为空,则从解析器队列中取出G代码处理后的指令信息进行处理,若队列为空,则说明该程序文件已经结束或者发生异常错误,结束程序运行;
(7)从队列取出G代码处理后的指令信息后,获取为G代码处理后的指令信息对应的起始点和终点,其起始点和终点信息将与该指令信息的刀具路径的中心点相比较;
(8)根据刀具运行的轨迹,将终点值X方向的值和Y方向的值分别与刀具中心点X方向值和Y方向值进行比较,根据比较的结果,对X方向和Y方向分别单独进行补偿;
(9)经过步骤(8)的补偿运算之后,检查结果是否会产生过度补偿;
(10)当队列解析完毕后,即队列为空时,程序运行退出。
优选的,步骤(1)中,所述准备前的工作包括机床回零以及设置工件偏移点。
优选的,步骤(2)中,所述刀具信息是指该指令所对应的轨迹是属于哪一型号刀具;
所述位置信息是指该指令所对应的轨迹的起始点和结束点。
优选的,步骤(8)中,当刀具运行的轨迹为直线时,在X方向,如果指令终点X值比该指令刀具中心点的X值大,则把刀具X补偿值与指令终点X值相加,如果指令终点X值比刀具路径中心点X值小,则指令终点X值减去补偿值X值,如果补偿值X值为正,则在X方向该刀具路径向外扩大,如果补偿值X值为负,则X方向上该刀具路径向内缩小,Y方向上直线的补偿同理。
优选的,步骤(8)中,当刀具运行的轨迹为圆弧时,在X方向上补偿,当指令终点X值比该指令刀具中心点的X值大,则把刀具X补偿值与指令终点X值相加,再将刀具X补偿值与指令圆弧中心点X值相加;如果指令终点X值比刀具路径中心点X值小,则把刀具X补偿值与指令终点X值相减,再将刀具X补偿值与指令圆弧中心点X值相减;当补偿值为正时,指令中心点右边的圆弧整体向右移,指令中心点左边的圆弧整体向左移,该刀具路径在X方向上往外扩大,如果补偿值X值为负,指令中心点右边的圆弧整体向左移,指令中心点左边的圆弧整体向右移,该刀具路径在X方向上往内缩小;Y方向圆弧的补偿同理。
优选的,步骤(9)中,检查结果是否会产生过度补偿是根据中心点来判断的,补偿前比中心点大的点补偿结束后必须比中心点大,补偿前比中心点小的点补偿结束后必须比中心点小,否则为补偿出错,在系统上提醒出错并退出程序运行,如果确认结果正确,则把该结果发送到下层软件,再由下层软件转化为脉冲输出。
优选的,步骤(2)中,第一次解析具体为:
把NC程序文件的G代码扫描进内部代码解析器队列里,然后历遍整个解析器队列的每一行,把G代码对应的D值和T值记录下来作为程序的刀具信息,把G代码对应的X值和Y值记录下来作为程序中的距离信息,而程序中的刀具信息和距离信息根据内部代码解析器队列里的行号进行一一对应。
优选的,步骤(5)中,第二次解析具体为:
在第一次解析的基础上,按顺序处理内部解析器队列里面的代码,处理过程中会根据G代码所代表的功能分类调用相应的处理函数,而第一次解析得到的距离信息会进行进一步处理,把坐标系偏移值,工件偏移值,刀具偏移值等信息累加上去后得到机床坐标系下的绝对坐标值。
优选的,上述整个补偿过程都是在数控系统自动运行的情况下完成的。
本发明与现有技术相比,具有如下优点和有益效果:
1、补偿是为了解决由机械磨损所带来的误差,X方向和Y方向单独补偿能有效的解决由于X轴和Y轴丝杆磨损不一致带来的偏差,而现有的补偿方法是整体补偿,补偿过程中在X,Y方向上补偿一样的值,相比之下本发明的单独补偿更灵活和精确。
2、在进行补偿时,基本原则是补偿时尽可能不改变工件的原加工形状。本发明的单独补偿方法能保证圆弧长度不变,弧度不变,在补偿过程中确保圆弧不变型,而现有的补偿方法会改变圆弧的长度,影响加工的精确度。
附图说明
图1是数控系统的结构图;
图2是本发明自动单边补偿方法的流程图。
具体实施方式
下面结合实施例及附图对本发明作进一步详细的描述,但本发明的实施方式不限于此。
实施例1
为了更深入地阐述本发明自动单边补偿的数控加工方法,本实施例先简要介绍一下本数控系统在运行程序时的一个的简化流程,运行过程的结构图如图1所示。
如果对数控系统内部功能进行一个简单的分类,可以分为三个部分:第一部分也是顶层部分是人机界面,这一层主要功能是提供一个用户接口用于操作数控系统。第二部分是任务层,这一层包括任务管理器和解析器模块,这一层主要功能用于接收用户命令并进行解析处理,并由任务管理层把处理好的指令发送到底层控制层。这一层还是链接上层和下层的桥梁,能为上层人机界面提供底层控制层的状态信息。第三部份也就是最底层是底层控制层,这一层的功能是对任务管理器发过来的数据通过特定的算法处理后,提供输出脉冲控制电机运动,是数控系统中的核心部分。
在数控系统运行之前,数控系统需要完成所有准备工作,进入自动运行状态时,先由人机界面加载程序文件。当接受到运行指令,人机界面层发出运行命令到任务管理层,任务管理层收到运行命令后,控制解析器对加载的程序文件进行解析,这里所说的解析过程是把程序指令语句变成对应的位置点,这些解析出来的位置点信息将返回给任务管理层,任务管理层对这些位置点信息进行相应的处理后,把各指令的位置点发送到底层控制层,经过运动控制模块处理后再发送到底层硬件驱动,驱动硬件执行。
接下来描述整个运行过程中自动单边补偿的详细步骤,具体流程图如图2所示。
(1)数控系统上电和完成加工前的准备工作,包括机床回零,设置工件偏移点,如果该程序需要用到补偿,则要求设置好各刀具对应的刀补值,用于在运行过程中对运行的刀具路径进行补偿。
(2)载入需要执行的程序文件,载入程序时对整份程序进行第一次解析,根据程序内容获取到程序指令对应的刀具信息和距离信息,并记录下来。此处的刀具信息所指的是该指令所对应的轨迹是属于哪一号刀具,距离信息指的是该指令所对应的轨迹的起始点和结束点。
上述第一次解析具体为:把NC程序文件的G代码扫描进内部代码解析器队列里,然后历遍整个解析器队列的每一行,把G代码对应的D值和T值记录下来作为程序的刀具信息,把G代码对应的X值和Y值记录下来作为程序中的距离信息,而程序中的刀具信息和距离信息根据内部代码解析器队列里的行号进行一一对应。
(3)根据记录下来的程序指令的刀具信息和位置信息,计算出程序内所用到的刀具的中心点。
(4)从步骤1中用户设置好的刀补信息表中获取各刀具的刀补值,并保存在解析器内部,等候调用。
(5)运行程序,对程序代码进行第二次解析,这一次解析过程把程序代码解析成对应的移动指令和数控机床命令并添加到解析器队列里,等待调用。
上述第二次解析具体为:在第一次解析的基础上,按顺序处理内部解析器队列里面的代码,处理过程中会根据G代码所代表的功能分类调用相应的处理函数,而第一次解析得到的距离信息会进行进一步处理,把坐标系偏移值,工件偏移值,刀具偏移值等信息累加上去后得到机床坐标系下的绝对坐标值。
(6)运行过程中会检查队列是否为空,若队列不为空,则从解析器队列中取出指令进行处理,若队列为空,则说明该程序文件已经结束或者发生异常错误,结束程序运行。
(7)从队列取出指令后,获取指令对应的起始点和终点。其起始点和终点信息将与该指令的刀具路径的中心点相比较。
(8)在直线情况下,在X方向,如果指令终点值比该指令刀具中心点的X值大,则把刀具X补偿值与指令终点X值相加,如果指令终点X值比刀具路径中心点X值小,则指令终点X值减去补偿值X值。如果补偿值X值为正,则在X方向该刀具路径向外扩大,如果补偿值X值为负,则X方向上该刀具路径向内缩小。
在Y方向上,如果指令终点值比该指令刀具中心点的Y值大,则把刀具Y补偿值与指令终点Y值相加,如果指令终点Y值比刀具路径中心点Y值小,则指令终点Y值减去补偿值Y值。如果补偿值Y值为正,则在Y方向该刀具路径向外扩大,如果补偿值Y值为负,则Y方向上该刀具路径向内缩小。
(9)指令终点与补偿值运算后,检查结果是否会产生过度补偿,检查是否过度补偿的方法根据中心点来判断,补偿前比中心点大的点补偿结束后必须比中心点大,补偿前比中心点小的点补偿结束后必须比中心点小,否则为补偿出错,在系统上提醒出错并退出程序运行,如果确认结果正确,则把该结果发送到下层软件,再由下层软件转化为脉冲输出。
(10)当队列解析完毕后,即队列为空时,程序运行退出
该补偿方法具体步骤和方法如上所述,整个补偿过程都是在数控系统自动运行的情况下完成的。
实施例2
本实施例的技术方案除了下述技术特征之外,其他技术方案与实施例1相同,如图2所示,本实施例中,上述步骤(8)中是刀具的运行轨迹为圆弧为例进行说明:在圆弧轨迹情况下,在X方向上补偿,当指令终点值比该指令刀具中心点的X值大,则把刀具X补偿值与指令终点X值相加,还要把刀具X补偿值与指令圆弧中心点X值相加,如果指令终点X值比刀具路径中心点X值小,则把刀具X补偿值与指令终点X值相减,还要把刀具X补偿值与指令圆弧中心点X值相减。当补偿值为正时,指令中心点右边的圆弧整体向右移,指令中心点左边的圆弧整体向左移,该刀具路径在X方向上往外扩大,如果补偿值X值为负,指令中心点右边的圆弧整体向左移,指令中心点左边的圆弧整体向右移,该刀具路径在X方向上往内缩小。
在Y方向上补偿,当指令终点值比该指令刀具中心点的Y值大,则把刀具Y补偿值与指令终点X值相加,还要把刀具Y补偿值与指令圆弧中心点Y值相加,如果指令终点Y值比刀具路径中心点Y值小,则把刀具Y补偿值与指令终点Y值相减,还要把刀具Y补偿值与指令圆弧中心点Y值相减。当补偿值为正时,指令中心点右边的圆弧整体向右移,指令中心点左边的圆弧整体向左移,该刀具路径在Y方向上往外扩大,如果补偿值Y值为负,指令中心点右边的圆弧整体向左移,指令中心点左边的圆弧整体向右移,该刀具路径在Y方向上往内缩小。
上述实施例为本发明较佳的实施方式,但本发明的实施方式并不受上述实施例的限制,其他的任何未背离本发明的精神实质与原理下所作的改变、修饰、替代、组合、简化,均应为等效的置换方式,都包含在本发明的保护范围之内。