用数控车床车一个外圆,宏程序应该怎么写?需要注意什么?数控车床车外圆编程实例
针对这个问题,可分为两个方面进行回答,第一,如何针对一个外圆编制宏程序?第二,需要注意什么事项?
一、编程方面
首先,以一个外圆加工为例,毛坯直径为100mm,系统为FANUC。
加工思路:采用90°外圆车刀,背吃刀量为2mm,即每次直径去除4mm!
1.采用WHILE[ 表达式]DO1
....
END1
主要参考程序如下:
%O1
G99M3S1000T0101
G0X102
Z2
#1=100
#2=80
WHILE[#1GE#2]DO1
#1=#1-4
G01X#1F0.1
Z-40
G0X102
Z2
END1
Z100
M5M30
仿真效果如下图所示:
2.采用IF[ 表达式]GOTON
参考程序如下:
%O2
G99M3S1000T0101
G0X102
Z2
#1=100
#2=80
N1#1=#1-4
G01X#1F0.1
Z-40
G0X102
Z2
IF[#1GE#2]GOTO1
Z100
M5M30
二、注意事项
通过以上两种编程方法,不难看出,宏程序其实并不难,难的是思路和语法问题!但是在用宏程序时,个人认为有以下三点需要特别注意一下!
1.首先,这个零件的加工是否适合采用宏程序?本例可以采用G90,G80等单一外圆车削指令就可以,没必要这么麻烦。所以,要根据具体的零件来选择什么就时候用宏!
2.以上宏程序的编制是采用FANUC系统,如果你用的是其它数控系统,那么在语法上就有区别了,比如:
1)华中系统
WHILE[#1GE#2];没有DO1
#1=#1-4
G01X#1F0.1
Z-40
G0X102
Z2
ENDW;END1改为ENDW
其它是没有任何地方需要修改的!
2)新代系统
WHILE(#1>=#2)DO;GE改>=,DO1变改DO
#1=#1-4
G01X#1F0.1
Z-40
G0X102
Z2
ENDWHILE;END1改ENDWHILE
如果是IFGOTO
N1;
#1=#1-4;
G01X#1F0.1;
Z-40;
G0X102;
Z2;
IF(#1>=#2)GOTO1;
ENDIF
此外,在新代系统中还有其它的注意事项,在此就不一一区别了!
3)西门子系统
R1=100
MA1:R1=R1-4
G1 X=R1F0.1
Z-40
G0X102
Z2
IFR1>=80GOTOBMA1
Z100
注意西门子和以上的语法的区别!
4)广数系统
广数系统,有的支持A类宏程序,需要利用G65调用,个人认为比较麻烦,比如
无条件转移语句GOTO 1,采用A类:
G65H80P1=GOTO 1
G65H81就是有条件转移的了!
有的支持B类宏程序,B类基本上和发那科区别不大,可以直接使用!
3.在编制程序或校验程序时,有的时候宏的思路是对的,格式也对,但是就是不运行。因此特别要注意一些变量较多时,建议大家给每一个变量赋值,不然系统有时是无法识别的,这里面的道理不好解释,如果你学过电脑编程的话,应该能明白这个道理,是语法的问题!
最后,针对这个问题,通过以上两个方面进行回答,不知是否解释清楚了,本人水平有限,不当之处,请批评补充,祝好!
现今社会已经不做这行业了,在研究也没毛用。再厉害做十年也买不起房。还不如那个来钱快干那个。为什么还研究,好几年不做了。
本人曾经从事数控十几年,也很热爱这个行业。不敢说自己技术有多么高超,但绝对担得起数控业的中坚力量。残酷的现实让我不得不放弃这个行业,真是感慨万千啊。做数控找不到老婆、买不起房!这是我个人悲哀,可能也是许多现今技术工人的悲哀吧!如今只能在这里寄托一丝情怀……