宏程序的简单利用
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
浅谈宏程序的简单利用
摘要:数控系统中随机携带有各种固定循环指令,这些指令是以宏程序为基础开发的通用固定循环指令。通用固定循环指令有时在实际的加工过程当中并不以定能满足加工要求和加工效率。针对于FANUC 0i系统为例,本人通过多年的加工经验和实践积累,简单的针对一些零件的特点量身定制了适合这类零件专用的宏程序,有利于挺高加工效率,和简化加工程序。以FANUC 0i系统为例,针对这些问题来探讨。
关键词:宏程序G90 新建功能指令多头螺纹
正文一,G90的简化利用
普通的G90粗车固定循环是由两个G00和两个G01组成,在退出工件时也是G01慢速退刀,这样在加工较大台阶面时退刀时间太长,大大的影响了加工的效率。解决方案有两种:一使起刀点尽量靠近工件,减少空走刀行程,缩短进给路线,节省在加工过程中的执行时间。二是改进G90加快退刀速度。
1.在加工中如果有台阶面相差较大的地零件,如下图(1-2)中,我们将起
刀点尽量靠近工件。利用宏程序和G90进行编程。
程序如下:
O0001;
G50 X100. Z0.; 建立G50坐标系
M03 S400; 主轴正转转速S400
G00 Z2.; 快速移动到Z2的位置
X93.; 快速移动到X93的位置
#1=86.; #1代表X轴的起始值为86。
N10 G90 X#1 Z-50. F0.3;外圆固定循环
G00 X#1; G00快速移动X轴起刀点位置 #1=#1-4.; #1(X)轴坐标依次减小4mm
IF[#1GE50.]GOTO10; 如果#1的值大于等于50就转移到10号程序G00 X100.; 快速移动到X100的位置
Z0.; 快速移动到Z0的位置
M30; 程序结束并回到程序第一条语
此程序每刀车削4mm直到车到φ50 当然φ90车到φ50刚好能被4整除,如果小外圆尺寸是φ51,这就得改变一下程序,将IF [#1GE50.] GOTO10;改为IF [#1GE51.] GOTO10;再在程序后面加一个G90 X51. Z-50. F0.3;这样就可以在最后一刀将φ51.车削出来。
2.用G90加工图1-2,从φ90的外圆车到φ50需要多次退刀和多次进刀,虽然上面G90加宏程序可以改变G90固定循环的起刀点,但其退刀量还是过大,我们可以将指令改为类似于G71的循环指令。这指令可以完成多次切削循环,而且退刀量很小。首先在参数中设置调用宏程序的G代码,按非模态调用G65的方法调用宏程序。在参数(No.6050到No.6069)中设置调用宏程序(09010到09019)的G代码号(从1到9999),调用用户宏程序的方法与G65相同。
如我们要设计的G代码为G80,设置参数No.6050=80,G80就是一个新功能的指令,由G80调用宏程序09010,就可以调用由宏程序编制而成的特殊的加工循环,相当于G65P9010。
宏程序调用指令:
G65P0910X(U) _Z(W)_D_E_F_;
参数的含义是:
X(U)/Z(W)─外圆车削的终点坐标;
D─每次切削的深度(半径值指定);
E─每次切削后的退刀量(如果不指定则自动指定为0.5mm);
F─切削的进给速度。
G80调用户宏程序本体:
O0910;
#31=#5041; 保存X值初值
#32=#5042; 保存Z值初值
IF[#8NE#0]GOTO01; 如果参数E赋值转移到01号程序段
#8=0.5; 参数E缺失时每次切削后的退刀量为0.5mm
N01 IF[#24EQ#0]GOTO02; 如果#24未赋值则转移到02号程序段#1=#24; X值绝对值指令
GOTO03;
N02 IF[#21EQ#0]GOTO09; 如果X轴未赋值则转移到09号程序段报警#1=#31+#21; X轴绝对值坐标
NO3 IF[#26EQ#0]GOTO04; 如果#26未赋值则转移到04号程序段#2=#26; Z值绝对值指令
GOTO05; 无条件转移到05号程序段
N04 IF[#23EQ#0]GOTO09; 如果Z轴未赋值则转移到09号程序段报警#2=#32+#23; Z轴绝对值坐标
N05 IF[#7EQ#0]GOTO09; 如果切削深度D未赋值则转移到09号程序报警IF[#9NE#0]GOTO06; 如果参数F赋值则转移到06号程序段
#9=#4109; 参数F未赋值则用前面的值
N06 #30=#31; #30=X轴初值
WHILE[#30GT#1]DO1; 当X轴初值大于切削目标终点坐标时执行DO1
和END1间的程序段
#30=#30-2*#7; 下一个切削点的X坐标
IF[#30GT#1]GOTO07; 如果X的坐标值大于切削终点坐标值转移到07 #30=#1; 下一个切削点的X坐标是切削目标终点坐标值N07 G00 X#30; 切削循环
G01 Z#2 F#9;
U-2*#8;
G00 Z#32;切削循环结束
END1;
G00 X#31; 返回起始点
GOTO10;
N09 #3000=1(ERROR); 赋值错误报警
N10 M99;
以上图为例将新建的G80代码程序利用在加工中,加工程序如下:
O0002;
G50 X200. Z0.; 建立坐标
M03 S300; 主轴正转S300
G00 Z2.; 快速移动到Z2的位置
X93.; 快速移动到X93的位置
G80 X50. Z-50. D2. E1. F0.3; 调用G65P9010加工
G00 X200.; 快速移动到X200位置
Z0.; 移动到Z0的位置
M30; 程序结束并回到程序起点
注意的是自定义的G80调用的程序中,不能再用自定义的G80代码调用宏程序,这种程序中的自定义的G80代码被处理为普通G代码而且只能用于车削直外圆,而不能车削锥度外圆。
二,多头螺纹的宏程序加工:
在数控车削加工中,多头螺纹的加工是一个难点,而常用的螺纹加工指令无法将其加工出来。在数控机床加工螺纹常用G32、G92和G76
这三条指令。而多头螺纹的加工方法有两种:一个是通过改变切削螺
纹初始位置;第二是改变切削螺纹的初始角来实现。加工下图的螺纹,分别用改变螺纹的初试位置和改变初试角度来加工。在这里我们将改
变初试位置可以用G92指令加宏程序来实现加工,而改变初试角度用
G32加宏程序来进行编程。加工图为1-4
3.加工程序如下:
3.1用 G92加工多头螺纹,程序如下:
O0003;
G50 X100. Z100.; 建立坐标系
M03 S100; 主轴正转S100r∕min
MO8; 打开切削液
G00 X42. Z2.; G00快速移动到X42 Z2的循环起点位置
#1=0.; 轴向分线初始值
#2=4.; 轴向分线总次数
#4=37.8;螺纹切削最终深度
WHILE [#1LE#2] DO1; 轴向分线共三次
#3=39.9; 螺纹切削的第一刀
WHILE [#3GE#4] DO2; 螺纹切削深度的次数
G00 Z[#1+2.]; 轴向分线执行
G92 X#3 Z-45. F6.; 螺纹车削循环
#3=#3-0.1; 螺纹X轴的余量递减
END2; 循环2结束
#1=#1+2.; 轴向分线变量递增
END1; 循环1结束
M09; 切削液关
G00 X100. Z100.; G00快速移动到程序坐标系
M30; 程序结束并回到程序起始点
3.2用G32加工多头螺纹,程序如下: