公司有一台外圆磨床,采用840d系统,外圆尺寸由Marposs量仪控制,X轴控制砂轮进给,程序如下:
;***********************
G01 X=(R100+0.5) F=R134 ;粗磨阶段
G01 X=(R100+0.3) F=R135 ;粗磨阶段
G01 X=(R100+0.2) F=R136 ;粗磨阶段
M20 ;量仪前进
G04 F1.0
WHEN $A_IN[12]==1 DO DELDTG ;量仪精磨信号
G01 X=(R100-0.1) F=R137 ;精磨阶段
WHEN $A_IN[13]==1 DO DELDTG ;量仪光磨(工件合格)信号
G01 X=(R100-0.2) F=R138 ;光磨阶段
M21 ;量仪后退
;**************************
当工件磨削到位后量仪发送信号给NC,删除余程,结束加工。但是经常发生量仪故障导致工件连续报废的情况。
我想在NC中加入一个防错报警功能:
因为砂轮直径不变(砂轮修整导致直径变化另外讨论),假设量仪工作稳定,那么 每次磨削到位X轴的机械坐标应该是相同的,一旦监控到X轴坐标比上一工件到位坐标相差较大,就报警。
于是就有了:
……
R401=R400 ;上一件到位坐标R400赋值给R401
……
M20 ;量仪前进
G04 F1.0
WHEN $A_IN[12]==1 DO DELDTG ;量仪精磨信号
G01 X=(R100-0.1) F=R137 ;精磨阶段
WHEN $A_IN[13]==1 DO DELDTG ;量仪光磨信号
G01 X=(R100-0.2) F=R138 ;光磨阶段
;***********************
R400=$AA_IM[X] ;尺寸合格,X轴坐标赋值给R400
;**********************
M21 ;量仪后退
IF ABS(R400-R401)>0.02 GOTOF ERROR1
……
M30
ERROR1:
MSG("检查量仪工作状态!")
SETAL(7*****)
GOTOB ERROR1
这样修改验证,防错效果确认不错,量仪一旦发生故障,能够及时报警。
但是,虽然异常的时候能够报警,但是工件还是报废了,于是我想能不能再优化一下程序,比如说在光磨阶段,量仪监控尺寸的同时,程序也在实时的监控坐标,不断的在与R401进行对比,一旦 R401-$AA_IM[X]>0.01,也就是说砂轮坐标比上一件到位坐标多走了0.01,但是量仪还未发到位信号,就报警,防止砂轮将工件磨小了。
这样如何实现?
WHEN $A_IN[12]==1 DO DELDTG ;量仪精磨信号
G01 X=(R100-0.1) F=R137 ;精磨阶段
WHEN $A_IN[13]==1 DO DELDTG ;量仪光磨信号
WHEN $AA_IM[X]-R401>0.01 GOTOF ERROR1 ;实时监控坐标值
G01 X=(R100-0.2) F=R138 ;光磨阶段
让两个WHEN同时起作用,可以这样写吗?
如果大家有其他好的思路,请不吝赐教,谢谢!
^_^