数控加工宏指令编程_第1页
数控加工宏指令编程_第2页
数控加工宏指令编程_第3页
数控加工宏指令编程_第4页
数控加工宏指令编程_第5页
已阅读5页,还剩30页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、数控加工宏指令编程(以FANUC 0i系列为例)1 用于对形状相同或相近、尺寸不同的系列化零件加工。只需要对变量重新赋值即可。特点:可以使用变量并对变量赋值;含有变量运算(算术和逻辑运算)、条件转移功能;具有一般算法语言的逻辑;关键:准确地对变量值、类型、范围进行定义。2一、变量变量号变量类型功 能#0空变量总为空,不能赋值,只读不写#1#33局部变量仅在宏程序内有效。断电清空。调用宏程序时被赋值。#100#149#500#531公共变量在不同的宏程序中都有效。断电时前者清空;后者保持。#1000系统变量用于读取系统变量,如刀具当前位置及补偿值等注意:(1)用表达式指定变量时,需将表达式括起来

2、。如G01 X#1+#2 F#3(2)改变变量符号,要把负号放在#号前。如-#1而不是#-13二、宏指令运算指令:+,-,*,/,SIN,COS,ASIN,ACOS,TAN ATAN, SQRT,ABS,ROUND,LN,EXP;OR,XOR,AND控制语句(1)无条件转移语句:GOTO n or #i(2)条件转移语句:IF.GOTO n or #in为程序段号,可取199999.如GOTO 3GOTO #3格式:IF条件式 GOTO n条件式中运算符含义:EQ(=);NE();GT();GE();LT();LE().如:IF#2GT6 GOTO 80(3) 循环语句:WHILE.DO n

3、or #i格式:WHILE条件式 DO m.;EDN m如:可以嵌套循环4三、宏程序调用可以直接在主程序中应用,也可以为子程序的应用形式。非模态调用指令(G65)格式:G65 P_L_ P_: P之后接四位数字表示程序号; L_:之后的数字表示循环次数(1-9999次);默认为1 :自变量赋值,由地址符及数字构成.5例1:非模态调用(G65)主程序 ;G65 P9010L2A50B30;宏程序O9010;N10 #3=#1+#2;N80 M99;宏程序结束符程序说明:调用程序名为O9010的宏程序,循环2次;通过调用,将宏程序中的局部变量#1(主程序中A)赋值为50.0;局部变量#2(主程序中

4、B)赋值为30.0除I、J、K有顺序要求外,其他无顺序要求。6模态调用指令(G66)格式:G66 P_L_ ; G67;(取消用户宏程序)在至G67指令取消之前,每执行一段有移动指令的代码,就调用一次宏程序。在G66所在段及无移动指令的程序行不执行宏程序。例2:模态调用(G66)主程序O0033 ;N30 G66P9100L2A10B20;N40 G00X100.0;N50 Z120.0;N60 G01X150.0;N70 G67;N90 M30宏程序O9100;N40 G00 Z#1;N50 G01Z-#2F300;M99;主程序在执行完N40、N50、N60后各执行宏程序两次。直至G67停

5、止调用宏程序。7 G指令(系统指令)调用宏程序格式:G 其中:G -调用宏程序的G代码; -自变量;为了实现G代码调用宏程序,需将宏程序名与系统参数号对应进行设置8例3:G指令调用宏程序主程序O4444 ;G81X10.0Z-10.0;M30宏程序O9100;#24=#26+1;M99;将宏程序名设为 O9010在与“O9010”对应的参数号(6050)上设定值为“81”此处,G81后的“X10.0 Z-10.0”分别指将宏程序中的局部变量#24,#26赋值为10.0,-10.0而并非轴进给地址字。9四、宏程序应用实例例1 用G66调用宏指令编制如图所示车槽加工程序。10主程序O0003N10

6、 T0202;N20 M03 S600;N30 G66 P9110 U12.0F0.1; 模态调用宏程序,将槽深、切削速度送入O9110中N40 G00X62.Z80.; 快速定位到槽1后,调用宏程序O9110车槽1N50 G00Z50.; 快速定位到槽2后,调用宏程序O9110车槽2N60 G00Z30.; 快速定位到槽3后,调用宏程序O9110车槽3N70 G67; 取消宏程序调用N80 G00X100.Z200.;N90 M30宏程序O9110;N10 G01X#21F#9;N20 G04 P500;N30 G01X62.;N40 M99;11例2 在半径为35的圆周上分布12个等间隔的

7、孔,用宏程序编程。宏指令:G54;M03 S50 T01;G00 X Y Z;G65 P9207 R35 A30 H12 X0 Y0;G00 X Y Z;M30;O9027;#32=1 ; (孔计数用,设定初始值为1)WHILE #32LE #11 D1 ;(当孔计数值小于或等于孔数12时,执行D1和END1之间的程序)#33=#1+360*#32-1/#11 ; (第I个孔与X轴的夹角)#101=#24+#18*COS#33;#102=#25+#18SIN#33;G00 X#101 Y#102 ;G81 G98 Z-20 R10 F50 ;#32=#32+1 ;END 1 ;M99 ;12椭

8、圆加工13例3设计一宏程序,可车削加工任意位置、任意长、短半轴的椭圆凸轮廓。14提示:各变量参数设计如图所示,通过改变#1、#2、#3、#4、及#6号变量即可#1:长轴长度#2:短轴长度#3:Z向椭加工起点距离中心的距离,初始值为#3=35,每次移动步距0.2, 表达式为:#3=#3-0.2。同时用IF#3GE#4GOTO5;判断是否到达终点;#4:Z向椭圆加工终点至椭圆中心距离,#4=-10。 终点在椭圆中心左边为负值,在右边为正值;#5:X坐标变值,表达式为: #5=2*#2/#1*SQRT#1*#1- #3*#3;#6:Z向工件原点到椭圆中心到距离15O1005;T0101;G00 X5

9、4. Z5. M03 S1200;#1=50.; (长半轴)#2=23.; (短半轴)#3=35.;(椭圆车削起始点至椭圆中心点的长度)#4=-10.;(椭圆加工终点至椭圆中心的长度)#6=55.; (椭圆中心到工件原点长度)G01 G42 X28. Z2.; (外圆起点) Z-20.; (加工外圆台阶)N5 #5=2*#2/#1*SQRT#1*#1- #3*#3; (计算X坐标值)G01 X#5 Z(#3-#6);(拟合椭圆,Z值为距工件原点的坐标值)#3=#3-0.2; (Z向重新赋值,移动步距0.2)IF#3 GE #4GOTO5; (判断是否到达椭圆终点)G01 X60.; (退刀)G

10、00 G40 Z20.;M30;16主程序O1005;T0101;G00 X54. Z5. M03 S1200;G01 G42 X28. Z2.; ( 外圆起点) Z-20.; (加工外圆台阶)G65 P9110 A50 B23 C35 I-10 K55;G01 X60.; (退刀)G00 G40 Z20.;M30;宏程序O9110;N10 #5=2*#2/#1*SQRT#1*#1- #3*#3; (计算X坐标值)N20 G01 X#5 Z(#3-#6); (拟合椭圆,Z值为距工件原点的坐标值)N30 #3=#3-0.2; (Z向重新赋值,移动步距0.2)N40 IF#3 GE #4GOTO5

11、; (判断是否到达椭圆终点)N50 M99;17例4 椭圆半球体的加工。系统:FANUC-0i MA机床:南通机床厂XH713A立式加工中心XYZO18宏程序运行设计思路毛坯为四方块,分粗加工(椭圆柱)和精加工(椭圆半球体)粗加工以椭圆轮廓自上而下分层加工,刀具为平底立铣刀;精加工时,加工路线,以自下而上090度间等角度分层。每层以圆弧切入切出,根据当前层的长短半轴以椭圆轮廓水平环绕加工,直至椭圆球顶完成椭圆球面加工。工件坐标系原点设在椭圆球体的中心,以球头刀的球心轨迹编程(不用刀具半径补偿),球头铣刀加工,对刀点为球刀底平面(非球心)。1920 (1)初始变量的设置: #1:椭圆球面在X方向

12、上的半轴长度a #2:椭圆球面在Y方向上的半轴长度b #3:椭圆球面在Z方向上的半轴长度c #4:刀具半径(球头铣刀) #17:环绕椭圆一周时的角度递增量 #18:自下而上分层时角度递增量 (2)精加工宏程序中变量及表达式#11=#1+#4; 刀具中心在椭圆球面X方向上的最大半轴长度a#12=#2+#4; 刀具中心在椭圆球面Y方向上的最大半轴长度b#13=#3+#4; 刀具中心在椭圆球面Z方向上的最大半轴长度c#6=0; 自下而上分层时角度自变量,赋初始值为0(起点与X水平轴重合,终点为90度)#9=#11*COS#6;根据椭圆参数方程,计算任意层时(随#6的角度变化)刀具中心在X方向上的 半

13、轴长度#7=#13*SIN#6;任意层时刀具中心在Z方向上的半轴长度#8=1-#7*#7/#13*#13; 8的表达式是为了简化计算Y向半轴10而设#10=SQRT#8*#12*#12; 任意层时刀具中心在Y方向上的半轴长度#5=0;圆周初始角赋值#15=#9*COS#5;根据椭圆方程序计算X坐标值#16=-#10*SIN#5;计算Y坐标值21O2003;椭圆柱粗加工程序G28; (回原点)T02M06;(直径24mm)G54;G90G00X48.Y50.M03S800;工件外围的加工起点G43 Z50.H02;G01Z15.F200;#1=40.;长半轴(X)#2=30.;短半轴(Y)#3=

14、15.;工件上平面坐标N50 G00Z#3-5.;每层下刀5mmG01G41X#1Y0D02;建立半径补偿至X半轴顶点#103=360.;角度变量赋初值N100 #104=#1*COS#103;X坐标值变量#105=#2*SIN#103; Y坐标值变量G01X#104 Y#105;椭圆加工#103=#103-1.;角度每次增量为1度IF#103GE0GOTO100;角度大于或等于0,返回N100段执行循环G00Z20.;G40X48.Y50.;回到加工起点#3=#3-5.;每层平面坐标值减5mmIF#3GE-8.GOTO50;G00Z50.;M05;M30;22半椭球体精加工宏程序O1032;

15、 #1=40.;椭圆球面在X方向上的半轴长度a为40#2=30.; 椭圆球面在Y方向上的半轴长度b为30#3=15.; 椭圆球面在Z方向上的半轴长度c为15#4=4.;刀具半径(球头铣刀)为4#17=2.;环绕椭圆一周时的角度递增量为2#18=1.5.;自下而上分层时角度递增量为1.5(能整除)M03S1500;N05 G00X0Y0Z#3+15.;快速移到椭圆球面中心上方#11=#1+#4;刀具中心在椭圆球面X方向上的最大半轴长度a#12=#2+#4; 刀具中心在椭圆球面Y方向上的最大半轴长度b#13=#3+#4; 刀具中心在椭圆球面Z方向上的最大半轴长度c#6=0; 自下而上分层时角度自变

16、量,赋初始值为0(起点与X轴重合, 终点为90度)WHILE#6LT90DO1;当#6小于90,即还没到Z向椭圆顶时,循环1继续#9=#11*COS#6;根据椭圆参数方程,计算任意层时(随#6的角度变化)刀具中心 在X方向上的半轴长度#7=#13*SIN#6;任意层时(刀具中心在Z方向上的半轴长度)#8=1-#7*#7/#13*#13;8的表达式是为了简化计算Y向半轴10而设23#10=SQRT#8*#12*#12; 任意层时刀具中心在Y方向上的半轴长度N10 G00X#9+#4Y#4; XY轴移到切入起点坐标(让出刀具半径距离)N20 Z#7-#4;Z轴移到层的加工平面N30 G03 X#9

17、 Y0 R#4 F300;圆弧切入#5=0;圆周初始角赋值WHILE#5LE360.DO2;当5小于或等于360度,循环2继续,完成一周的铣削#15=#9*COS#5;根据椭圆方程序计算X坐标值#16=-#10*SIN#5;计算Y坐标值N40 G01X#15Y#16F2000;直线拟合插补段#5=#5+#17;圆周角度递增量赋值END2;椭圆每层圆周加工循环结束N50 G03X#9+#4Y-#4R#4;圆弧切出N60 G00Z#7-#4+1.;Z轴提刀N70 Y#4;Y轴从切出点移到切入起点#6=#6+#18;分层角度递增量赋值END1;循环1结束N80 G00Z#3+30.;提刀至安全高度M

18、05;主轴停M30;程序结束24例5使用平底铣刀,以螺旋铣削方式在实体上加工圆孔内型腔。工件原点为圆孔中心上平面,绝对值编程。循环加工路线为: 根据圆孔直径、刀具直径及步距所计算的螺旋加工次数确定每次螺旋下刀坐标,每次从1处以开始螺旋铣削一周,每一周螺旋下刀进给一个深度,到达预定孔深度后,刀具向中心移动1mm后快提刀,再移到2处开始螺旋铣削,依次类推,直到完成精加工。25O5018;螺旋铣圆孔宏程序G54;G00X0Y0Z10.;M03S800;#1=100; 圆孔直径#2=15; 圆孔深度#3=16; 刀具直径#4=0; Z向下刀起始点坐标#17=2; 每次螺旋Z向切深,即层间距#5=0.8

19、*#3; 以刀具直径计算步距(12.8)#6=#1-#3;精加工时刀具中心回转直径(最大直径84)#7=FIX#6/#5; 在XY平面内螺旋次数,刀中心最大回转直径#6除以步距#5,并上取 整数(84/12.86.5625,取整为7)#8=FIX#7/2;换成以半径计算坐标时的加工次数取上整数为4次WHILE#8GE0DO1; 判断加工次数是否#80,即还没完成粗加工,则循环1继续 ,(在循环最后要对#8进行递减,#8#8-1)#10=#6/2-#8*#5;XY平面内每次螺旋加工时在X向的起点坐标值(绝对值,此例中分别是X3.6,X16.4,X29.2,X42,)26G00X#10; 快速移到

20、每次螺旋加X坐标起点Z1.; 快速定位到工件上平面1mm 处G01Z0.F#9*0.2; 工进速度接近加工平面#4=0; Z向加工坐标初始值。一定要放在循环语句之前WHILE#4LT#2DO2;判断Z向坐值变量#4是否小于孔深#2的值,如还没到孔底则循环2继续#4=#4+#17; 依次递增Z向切深#17的值,重新对Z向坐标赋值。G03I-#10Z-#4F#9; 螺旋铣削程序段,G03逆时针螺旋加工至下一层END2; 循环2结束,当螺旋加工到孔底时,继续执行该段后的程序G03I-#10; 到达圆孔深度逆时针整圆铣削,平整加工孔底G01X#10-1.; 沿X向圆孔中心移动1mmG00Z30.; 快

21、速提刀#8=#8-1.;XY平面内螺旋加工次数依次减至0END1; 循环1结束,加工次数依次减至0则加工完成M30;27例6 正多边形周边斜面加工设计思路: 设计正多边形外轮廓斜面、倒角或锥台的加工宏程序。以平底立铣刀实现边数为n边的外轮廓周边斜面自下而上环绕分层加工能通过控制多边形中心与其中一顶点的连线与水平方向的夹角,加工出不同摆放位置的正多边形。为编程方便,将编程起始点,即多边形的一个顶点A放在X水平轴上,要加工出所要求的摆放位置,用G68指令进行坐标系旋转,旋转角度为OA与OA的夹角)根据标准正多边形的各边长总是相等,边长之间的夹角也相同的规律,用极坐标编程方式,循环完成每一边的加工。

22、28 以五边形为例,如图所示,工件坐标系设在多边形中心的上平面,以刀具中心点编程,编程起始点为X轴上的A点,用G68指令进行坐标系旋转。以顺铣方式(顺时针方向)由下而上分层加工。(1)初始变量的设置#1正多边形的边数 #2多边形外接圆的直径#3周边斜面的高度尺寸值 #4刀具半径(平底立铣刀)#5 Z向加工起始点坐标,为自变量,初始值Z0#7斜面与垂直面的夹角 #15分层加工的层间距#23OA与水平X轴的正向夹角29(2)宏程序中变量及表达式每层正多边形的加工:加工每层多边形采用极坐标编程,首先要计算加工每条边的极角和极半径,#10、#11、#12变量的含义与计算表达式:(1)#10,夹角。在多

23、边形中心与某边中点做一连线OC,OC与OD之间的夹角设为变量#10,赋值表达式为:#10=360/(2*#1);(180度除以边数)(2)以刀具中心点编程,要计算出极半径OA,需确定AOB 中OB的边长,计算OB边长首先要确定OC边长:在OCD中,已知(#10),边长OD(外接圆半径,#2/2),根据余弦COS等于邻边比斜边,即COSOC/OD,那么:OCOD*COS#2/2* COS#10#11,OB边长。在AOB中,OBOCBC(刀具半径r为#4),设OB边长为变量#11,赋值表达式为:#11=#2/2*COS#10+#4;#12,极半径OA边长。那么在AOB中,已知OB和,余弦COS等于

24、邻边比斜边的定义,即COSOB/OA,那么:OAOB/COS,设OA变量#12,赋值表达式为:#12=#11/COS#10;30(3)周边斜面的加工关键点是每层的正多边形外接圆随着高度的上升而缩小,即每层的极半径OA在变化,极角不变。如图所示,计算每层多边形的极半径OA的表达式如下:#18,OB边长。首先确定OB边长,OB边长等于OB(#11)减去图中的BC边长,在ABC中,已知(#7)和AC(#5)边长,根据正切函数TAN等于对边比邻边定义,即BCAC*TAN,那么OB边长赋值表达式为: #18=#11-#5*TAN#7;#19,每层多边形的极半径OA的赋值表达式为:#19=#18/COS#10;31(4)转移循环设计每层以极角变化次数循环加工边数#17=1;极角变化次数,初始值为1WHILE#17LE#1DO2;极角变化次数小(等)于边数,循环2继续G01X#19 Y0-#17*#10*2;极坐标,每加工一边极角依次递减2#17=#17+1;极角变化次数递增到边数即结束循环END2;深度分层加工循环次数WHILE#5LE#3DO1;加工高度循环判断

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论