首页 理论教育 交错排列的网格点阵孔群宏程序编程优化方案

交错排列的网格点阵孔群宏程序编程优化方案

时间:2023-06-25 理论教育 版权反馈
【摘要】:图3-47是在一长方形零件上进行交错排列的网格点阵孔群钻(铣)削加工。假设点阵孔群排列成行,共有行m,每行孔数交替n与(n-1)个,孔位交错排列,相邻各行孔的位置在X坐标上偏移半个孔距。为此,在框图中要对行数作奇偶判别。由以上分析,可画出该宏程序的结构流程框图,如图3-48所示。

交错排列的网格点阵孔群宏程序编程优化方案

图3-47是在一长方形零件上进行交错排列的网格点阵孔群钻(铣)削加工。假设点阵孔群排列成行,共有行m,每行孔数交替n与(n-1)个,孔位交错排列,相邻各行孔的位置在X坐标上偏移半个孔距。

设孔距为a,行距为b,左下角的第一个孔与工件坐标系原点的距离为X0、Y0,XT为偶数行内最右边那个孔的X坐标值,则

XT=X0+(n-1)a-(a/2)=X0+(n-1.5)a

为了减少空行程时间,第1行从左至右逐个加工,第2行则从右至左逐个加工,这样交替进行,空行程时间最短。为此,在框图中要对行数作奇偶判别。令每行的序数减1等于j,当j为偶数时(包括0),从左至右逐个加工;当j为奇数时,从右至左逐个加工。

由以上分析,可画出该宏程序的结构流程框图,如图3-48所示。

978-7-111-33271-8-Chapter03-76.jpg

图3-47 交错排列的网格点阵孔群类零件走刀路线示意图

a)交错排列的网格点阵孔群类零件图 b)效果图

978-7-111-33271-8-Chapter03-77.jpg

图3-48 交错排列的网格点阵孔群的用户宏程序结构流程框图

1.HNC—21/22M华中世纪星数控系统对交错排列的网格点阵孔群零件的用户宏程序

局部变量含义:

#1=X0;左下角孔的X绝对坐标值(即X0

#2=Y0;左下角孔的Y绝对坐标值(即Y0

#3=XT;图3-47中的XT

#4=b;各行的距离(即b)

#5=a;孔距(即a)

#6=n;孔数(即n)

#7=m;行数(即m)

#8=Z;最终钻孔深度

#9=R;刀具离工件表面的安全距离

#10=F;进给速度

#107=#6;

%××××;程序号

N010 #100=0;行计数器置零

N015 WHILE#100LT#7;当#100大于或等于#7时,则程序跳转到N105程序段

N020 #101=#100*#4;第i个行距和

N025 #102=#2+#101;当前Y的坐标值

N030 #104=0;列计数器置零

N035 WHILE#104LT#107;当#104大于或等于#107时,则程序跳转到N095程序段

N040 #105=#104*#5;第j个列距和

N045 #111=#100-2*TRUNC[#100/2];取余数

N050 IF#111EQ0;当#111=0时,则程序转移到N070程序段

N055 #106=#3-#105;计算第j个孔的X坐标值

N060 #107=#6-1;孔数减1

N065 ELSE;

N070 #106=#1+#105;第j个孔的X坐标值

#107=#6;将孔数(即n)值赋给中间变数#107

N075 ENDIF;

N080 G90 G99 G81 X[#106] Y[#102] Z[#8] R[#9] F[#10];执行孔加工固定循环

N085 #104=#104+1;列计数器加1

N090 ENDW;返回循环体

N095 #100=#100+1;行计数器加1

N100 ENDW;返回循环体

N105 G80;取消固定循环

N110 M99;返回主程序

2.SINUMERIK802D数控系统对交错排列的网格点阵孔群零件的用户R参数程序

R参数含义:

R1=X0;左下角孔的X绝对坐标值(即X0

R2=Y0;左下角孔的Y绝对坐标值(即Y0

R3=XT;图3-47中的XT

R4=b;各行的距离(即b)

R5=a;孔距(即a)

R6=n;孔数(即n)

R7=m;行数(即m)

R8=Z;最终钻孔深度

R9=R;刀具离工件表面的安全距离

R10=F;进给速度

R107=R6;

RTP=50;后退平面(绝对值)

REP=0;参考平面(绝对值)

SDIS=0;安全间隙(无符号)

DP=Z;最终钻孔深度(绝对值)

DPR=Z;相当于参考平面的最后钻孔深度(无符号)

L3328.SPF;R参数子程序名

N010 R100=0;行计数器置零

N020 MARKE3:R101=R100*R4;第i个行距和

N025 R102=R2+R101;当前Y的坐标值

N030 R104=0;列计数器置零

N035 MARKE2:R105=R104*R5;第j个列距和

N040 R111=R100-2*TRUNC(R100/2);取余数

N045 IF R111==0 GOTOF MARKE1;当R111=0时,则程序转移到N065MARKE1程序段

N050 R106=R3-R105;计算第j个孔的X坐标值

N055 R107=R6-1;孔数减1

N060 GOTOF MARKE0;无条件转移到N075程序段

N065 MARKE1:R106=R1+R105;第j个孔的X坐标值

N070 R107=R6;将孔数(即n)值赋给中间变数R107

N075 MARKE0:G90 G99 G81 X=R106 Y=R102;执行孔加工

N078 CYCL81(RTP,REP,SDIS,DP,DPR);调用固定循环程序钻定该孔

N080 Z=R9;快速下降到安全高度

N085 Z=R8 F=R10;以工进速度R10切削进给到最终深度

N090 G00 Z=R9;快速退回到安全高度

N095 R104=R104+1;列计数器加1

N100 IF R104<R107 GOTOB MARKE2;当R104<R107时,则程序转移到标志符MARKE2

N105 R100=R100+1;行计数器加1

N110 IF R100<R7 GOTOB MARKE3;当R100<R7时,则程序转移到标志符MARKE3

N120 RET;R参数子程序结束,返回主程序

3.FANUC0i数控系统对该零件的用户宏程序

自变量含义:

#1=X0;左下角孔的X绝对坐标值(即X0

#2=Y0;左下角孔的Y绝对坐标值(即Y0

#3=XT;图3-47中的XT

#4=b;各行的距离(即b)

#5=a;孔距(即a)

#6=n;孔数(即n)

#7=m;行数(即m)

#8=Z;最终钻孔深度

#9=R;刀具离工件表面的安全距离(www.xing528.com)

#10=F;进给速度

O3328;宏程序名

N010 #100=0;行计数器置零

N020 #101=#100*#4;第i个行距和

N025 #102=#2+#101;当前Y的坐标值

N030 #104=0;列计数器置零

N035 #105=#104*#5;第j个列距和

N040 #111=#100-2*TRUNC(#100/2);取余数

N045 IF[#111EQ0] GOTO 065;当#111=0时,则程序转移到N065程序段

N050 #106=#3-#105;计算第j个孔的X坐标值

N055 #107=#6-1;孔数减1

N060 GOTO 075;无条件转移到N075程序段

N065 #106=#1+#105;第j个孔的X坐标值

N070 #107=#6;将孔数(即n)值赋给中间变数#107

N075 G90 G99 G81 X#106 Y#102 Z#8 R#9 F#10;执行孔加工固定循环

N080 #104=#104+1;列计数器加1

N085 IF[#104LT#107] GOTO 035;当#104小于#107时,则程序转移到N035程序段

N090 #100=#100+1;行计数器加1

N095 IF[#100LT#7] GOTO 020;当#100小于#7时,则程序转移到N020程序段

N100 G80;取消固定循环

N105 M99;返回主程序

4.编程举例

铣床或加工中心上钻削图3-49所示一长方形零件上交错排列的网格点阵孔群。交错

978-7-111-33271-8-Chapter03-78.jpg

图3-49 交错排列的网格点阵孔群编程实例零件走刀路线示意图

a)零件尺寸图 b)效果图

排列的网格点阵孔群排列共有6行,每行孔数交替10与(10-1)个,孔位交错排列,相邻各行孔的位置在X坐标上偏移半个孔距。孔距为10.0mm,行距为10.0mm,左下角的第1个孔与工件坐标系原点的距离为(10,10),偶数行内最右边那个孔距离工件坐标原点的X坐标值为95.0mm。试编写出其宏程序。

解:

(1)工艺设计 建立工件坐标系,工件左下角为工件坐标系X、Y轴的零点,工件表面为工件坐标系Z轴的零点,机床坐标系偏置值设置在G54寄存器中。

为了减少空行程时间,采用第1行从左至右逐个钻削加工,第2行则从右至左逐个钻削加工,这样交替进行交错排列的网格点阵孔群的加工。选择ϕ5mm的麻花钻,取主轴转速为800r/min,钻削进给速度为150mm/min,主轴起始位置在零件上方50.0mm处,刀具起始切削高度为4.0mm,最终钻孔深度为Z-20.0mm。根据不同数控系统,运用变量(或参数)直接赋值编制宏程序。

(2)参考程序

1)HNC—21/22M华中世纪星数控系统。

O××××;文件名

%××××;主程序号

N10 T01 M06;调用1号刀

N15 G17 G90 G21 G94 G54 G40 G49 G80;工艺加工初始状态设置

N20 G43 G00 Z50.0 H01 S800 M03;建立刀具长度补偿,主轴正转,转速为800r/min

N25 X0.0 Y0.0 M07;刀具快速移动到工件坐标零点,打开切削液

N30#1=10.0;左下角孔的X绝对坐标值(即X0

#2=10.0;左下角孔的Y绝对坐标值(即Y0

#3=95.0;图3-47中的XT

#4=10.0;各行的距离(即b)

#5=10.0;孔距(即a)

#6=10.0;孔数(即n)

#7=6.0;行数(即m)

#8=-20.0;最终钻孔深度

#9=4.0;刀具离工件表面的安全距离

#10=150.0;进给速度

#107=#6;孔数初始值赋给中间变量#107

N35 M98 P3328;调用钻削交错排列的网格点阵孔群的用户宏程序

N40 G00 Z100.0 M09;刀具退到工件上表面100mm处,切削液关闭

N45 G49;取消刀具长度补偿

N50 X0 Y0 M05;刀具退回工件坐标零点,主轴停止

N55 M30;程序结束并返回程序开头

%3328;交错排列的网格孔群钻削用户宏程序(见前面)

M99;子程序结束,返回主程序

2)SINUMERIK 802D数控系统。

FZG×××××;主程序名

N05 R1=10.0 R2=10.0 R3=95.0 R4=10.0 R5=10.0 R6=10 R7=6.0 R8=-20.0 R9=4.0 R10=150.0 R107=R6;参数设置

N10 T1 D1;调用1号刀,1号刀补

N15 G17 G90 G71 G94 G54 G40;工艺加工状态设置

N20 G00 Z50.0 S800 M03;建立刀具长度补偿,主轴正转,转速为800r/min

N25 X0.0 Y0.0 M07;刀具快速移动到工件坐标零点,打开切削液

N30 L3328;调用钻削交错排列的网格点阵孔群的用户R参数子程序

N35 G00 Z100.0 M09;刀具退到工件上表面100mm处,切削液关闭

N40 X0 Y0 M05;刀具退回工件坐标零点,主轴停止

N45 M02;程序结束并返回程序开头

L3328;交错排列的网格孔群钻削用户R参数子程序(见前面)

RET;R参数子程序结束,返回主程序

3)FANUC 0i数控系统。

O××××;主程序名

N05 #1=10.0;左下角孔的X绝对坐标值(即X0

#2=10.0;左下角孔的Y绝对坐标值(即Y0

#3=95.0;图3-47中的XT

#4=10.0;各行的距离(即b)

#5=10.0;孔距(即a)

#6=10.0;孔数(即n)

#7=6.0;行数(即m)

#8=-20.0;最终钻孔深度

#9=4.0;刀具离工件表面的安全距离

#10=150.0;进给速度

#107=#6;孔数初始值赋给中间变量#107

N10 T01 M06;调用1号刀

N15 G17 G90 G21 G94 G54 G40 G49 G80;工艺加工状态设置

N20 G43 G00 Z50.0 H01 S800 M03;建立刀具长度补偿,主轴正转,转速为800r/min

N25 X0.0 Y0.0 M07;刀具快速移动到工件坐标零点,打开切削液

N30 G65 P3328;调用钻削交错排列的网格点阵孔群的用户宏程序

N35 G00 Z100.0 M09;刀具退到工件上表面100mm处,切削液关闭

N40 G49;取消刀具长度补偿

N45 X0 Y0 M05;刀具退回工件坐标零点,主轴停止

N50 M30;程序结束并返回程序开头

O3328;交错排列的网格孔群钻削用户宏程序(见前面)

M99;子程序结束,返回主程序

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈