NC程序断点功能的应用

作者:上汽通用五菱汽车股份有限公司重庆分公司 黄莉 刘鑫 林文清 文章来源:AI《汽车制造业》 点击数:30 发布时间:2017-01-11
本文以NC程序的断点功能为讨论对象,通过讲解断点功能的程序结构帮助大家理解其逻辑思路,了解生产过程中断点功能的基本应用;同时结合生产实际过程中遇到的案例,拓展断点功能的应用,成功避免两种情况下的撞机风险,为生产加工带来良好改善。
NC程序断点功能的应用

一般意义的程序语言在调试时会通过信号设置通知调试器在执行到某个特定点时将程序执行暂时挂起,使其处于中断模式,便于检查所有元素(如函数、变量或对象)是否存在冲突或BUG;同时通过设置断点,记住程序中断位置,下一次执行时程序自动从断点位置开始执行,极大地方便了操作。NC程序借鉴该用法,在程序语句中通过宏变量的设置实现其断点功能,方便机床加工过程中实现不同情况下的功能及应用。

断点功能的程序结构

在CNC机床主加工程序中,工件开始加工前将宏变量#581置1,加工结束后将#581置0,当前加工到的刀具号作为断点号储存在宏变量#585中。当每次执行到主加工程序时,判断#581当前值,若为1表示该工件未加工结束,跳转到断点号的刀具开始执行;若为0则表示上一个工件正常加工结束,顺序执行后续语句,其程序结构如图1所示。

其程序语句如下:

N01000IF[#581EQ1]GOTO[#585]

N01010IF[#539EQ0]THEN#581=1

(第一把刀加工内容:TNo.1)

N[No.1]#585=No.1

……

……

(最后一把刀加工内容(假设为第10把刀):TNo.10)

N[No.10]#585=No.10

……

N99990#581=0

其中,#539=0表示机床处于正常加工模式。

CNC机床在运行过程中,通常有两种模式供操作者选择,即空运行模式及正常加工模式。空运行模式下,机床不带工件执行加工程序,程序从任一把刀开始执行无撞刀风险或质量风险,因此无需在加工开始前设置#581=1以表示工件未加工完用于过程中的中断模式设置。而正常加工模式下机床带工件运行,加工过程中出现中断,当前程序须从断点开始加工才能避免重复加工引起的质量问题,因此在程序加工前设置#581=1以实现执行断点加工的可行性。

结合宏变量#581及#585在程序中不同位置的赋值,即实现了NC程序中的断点功能。

断点功能的基本应用

在理解NC程序中断点功能的程序结构后,机床加工过程中断点功能的基本应用就比较明了了。

1.防止加工中断的工件被重复加工

在工件加工过程中,由于机床报警或人为操作的原因,造成工件的加工中断,如果该工件从第一把刀顺序加工,则会造成已经加工的特征被重复加工,造成节拍的增加或引起工件质量问题,轻则造成加工尺寸不合格,重则造成工件加工报废。

通过断点功能的设置,当循环启动时,机床执行到主加工程序,判断当前#581为1(表示该工件未加工完),机床跳转到#585保存的顺序号,从工件加工中断时的刀具进行再次加工直至当前工位最后一把刀具加工完成,成功避免了已经完成加工的特征面被再次加工。

2.实现跳刀加工功能

NC程序的主程序通过判断机床当前状态来确定机床下一步应该执行的程序。

N10110IF[#10021AND8EQ8]GOTO10900(Stop Cycle End)

N10120IF[#10021AND2EQ2]GOTO10600(WARM UP)

N10130IF[#1034AND1EQ1]GOTO10300(Part Unclamp - Unloading)

N10140IF[#1034AND2EQ2]GOTO10400(Part Clamp - Loading)

N10150IF[#1034AND4EQ4]GOTO10500(Machining Part)

当机床在夹紧状态下且回到“home”位置时,机床执行主加工程序。在当前状态下,将#581的值更改为1,#585的值更改为任一刀具号,再次循环启动时,机床将从#585保存的刀具开始执行。

这种方法通常在以下两种情况下得到广泛应用:

第一种情况,跳刀验证程序。对加工工艺进行优化通常不是针对所有刀具,而只是对其中一把刀具或某几把刀具进行路径或参数的更改。程序调试验证者可通过设置#581和#585的值,使程序从被优化过的刀具开始执行以便观察优化后的程序是否有撞机风险。未做优化的刀具则无需运行,减少验证者的等待时间。

第二种情况,跳刀返修工件。部分工件因设备故障或刀具断刀等原因,从当前工位加工仓被送出,但工件实际未加工完成;或工件因设备定位面原因或人为修改补偿错误等原因,造成部分特征加工不合格;或工件在后续工位移动过程中造成零件表面划伤等缺陷。这些工件能够被机床返修达到合格工件的状态被继续使用,操作者即可通过设置#581和#585的值,跳转到加工需要被返修特征的加工刀具开始执行,达到节省时间和避免重复加工的目的。

该方法要求操作者对加工工艺和机床操作较为熟悉,避免人为修改错误造成跳刀错误,从而出现零件加工质量风险和机床运行撞机等安全风险。

断点功能的扩展用法

在实际加工过程中,我们遇到过两种情况的撞机。

一是机床加工过程中出现报警,操作人员按照正常的流程查看报警信息后复位报警,按下“循环启动”按钮重新加工工件。通常一名操作者需要同时操作几个工位,当前工位开始正常执行程序后操作者即开始下个工位的操作。部分报警出现后,工件在机床台面的状态被改变,如图2所示。机床执行到主程序时判定当前状态不适合加工,执行松开程序,此时未加工完的工件被放出该工位。当操作者重新回到该工位时,误认为该工件按照正常流程被加工完,直接将该工件放入后续工位加工。如果机床加工过程中出现报警,操作者人为将未加工完成的工件松开放出该工位。但由于操作者的失误未正确处理该工件,导致未加工完成的工件流入后续工位。

二是由于人为操作失误,在上一个工件未加工完成的情况下,通过手动操作方式夹紧工件开始加工。但当前状态下,#581的值为1,机床跳过前面的刀具,直接从#585记录的刀具开始加工。

这两种情况下,因工件的特征未加工完,机床加工时工件与刀具或夹具有干涉,直接造成加工过程中撞机,造成刀具报废或主轴损坏。更换主轴所造成的停机浪费以及主轴备件的维修成本都是巨大的,因此需要采取措施预防这种情况的发生。

这两种情况都与工件的漏加工有关,结合#581的用法:“#581=1时表示工件未加工完;#581=0时表示工件加工完成”,我们可通过NC语句编程来避免这两种撞机情况。

针对第一种情况,可称之为漏加工造成后续工位撞机,主要原因为操作者未及时发现或判断出当前工位流出的工件未加工完成。通过在“PART-UNCLAMP”程序(即工件松开程序)中,判断#581的值是否为0以确认当前工件是否加工完,未加工完成则报警提醒操作者检查工件,从而防止漏加工工件逃逸。NC程序如下:

N0005IF[#581EQ0]GOTO10

N0008#3000=1(The part isn't finished,check #581)

N0010……

针对第二种情况,可称之为跳刀加工造成的当前工位撞机,主要原因为机床在执行到主加工程序时,#581的值不为0,机床从#585记录的刀具号开始执行。因新工件要执行加工程序,必须要达到夹紧状态。而无论是自动方式下运行夹紧程序,或通过面板操作执行夹紧程序,机床都会调用“PART-CLAMP”程序(即工件夹紧程序)。通过在“PART-CLAMP”程序中设置#581=0,强制复位上一个加工件的状态,使新工件从第一把顺序加工,避免跳刀加工的情况发生。

结语

断点功能的应用要考虑到NC程序整个结构,确认清楚所有程序中#581的值被改变的情况,避免状态更改错误引起的加工风险。断点功能的扩展应用还可以结合PMC程序来实现,具体的情况需要使用者充分考虑操作者的使用习惯和机床的实际加工情况。