在FANUC0MD系统上用宏程序开发螺旋线插补_陈芳
- 格式:pdf
- 大小:83.25 KB
- 文档页数:2
运用FANUC 0-M系统宏程序功能编制螺旋形腔铣削宏程序全功能性数控系统多具有用户宏程序。
宏程序是一种可由用户自行开发并可任意调用的包括变量运算、条件转移等指令的子程序。
使用用户宏程序编程进行数控加工,可有以下优点:⑴大大缩短程序长度及所占数控系统的内存量。
⑵一个用户宏程序适用于一系列同类型零件的加工,把相似零件的编程工作简化到最低限度。
⑶减少了编程差错,提高了工作效率及可靠性。
我厂M V-40加工中心采用FA N U C 0-M系统,具有的宏程序功能。
我们生产加工当中形腔铣削非常多,如果完全通过计算编制每一刀坐标点,计算麻烦且容易出错。
通过运用FA N U C 0-M系统宏程序功能编制螺旋形腔铣削宏程序,可提高形腔类加工的编程速度和准确性。
1.我们所用到的FA N U C 0-M系统宏程序功能:M98P××××:宏程序调用××××(程序名)G65H01P#i Q#j(定义):#i=#jG65H02P#i Q#j R#k(加运算):#i=#j+#kG65H03P#i Q#j R#k(减运算):#i=#j-#kG65H04P#i Q#j R#k(乘运算):#i=#j×#kG65H05P#i Q#j R#k(除运算):#i=#j÷#kG65H80P n(无条件转移):G O TO nG65H81P n Q#j R#k(条件分离1):I F#j=#k,G O TO nG65H83P n Q#j R#k(条件分离3):I F#j>#k,G O TO nG65H86P n Q#j R#k(条件分离6):I F#j≤#k,G O TO n2.确定“加工中心螺旋形腔铣削宏程序”程序变量:#500:形腔左下角x坐标值#501:形腔左下角y坐标值#502:形腔深度z坐标值#503:下刀时z坐标值#505:形腔x方向长度值#506:形腔y方向长度值#507:同步下刀y(或x)长度值#509:刀具直径D#510:x y平面切削进给率#511:下刀进给率程序中还要采用一些辅助变量(如:#100等)3.加工顺序:⑴刀具定位到X Y平面开始点。
螺旋线加工在数控铣削中的应用范围与技巧发表时间:2017-09-12T11:30:00.490Z 来源:《科学教育前沿》2017年7期作者:雷立勇[导读] 此技巧主要运用数控铣床、加工中心特有的加工性能,采用宏指令编制二维螺旋线、三维螺旋线程序,其中包括了一些关键参数设置、经验应用、使用范围,使加工出的零件无论从质量还是效率上都得到了很大提高。
雷立勇(石家庄海山实业发展总公司河北石家庄 050000)【摘要】此技巧主要运用数控铣床、加工中心特有的加工性能,采用宏指令编制二维螺旋线、三维螺旋线程序,其中包括了一些关键参数设置、经验应用、使用范围,使加工出的零件无论从质量还是效率上都得到了很大提高。
此技巧阐述二维螺旋线(平面螺旋线)、三维螺旋线的应用(圆柱螺旋线)的应用范围与技巧。
【关键词】螺旋锻件加工中图分类号:TG659 文献标识码:A文章编号:ISSN1004-1621(2017)05-062-02 前言随着零备件制造产业的发展,制造精度逐渐提高,对零备件生产质量要求也越来越高,对细节要求也越来越高,尤其零件的表面质量要求更是越来越高。
现将螺旋线应用于机械加工铣削中,尤其在铣削精加工中将二维螺旋线、三维螺旋线灵的活应用,既能提高表面质量,又能提升加工效率,还能完成连续加工,避免接刀痕的产生。
采用螺旋线加工,可以保证刀具更加平滑、稳定过度,刀具进入后能够保证加工过程的连续性,使刀具在一次铣削过程中时时处于进给运动状态,保持切削过程平稳,可以提高加工精度和表面质量,延长刀具寿命。
并且加工柱形锻件类零件也有很好的效果例如(图一),锻件类零件的原状态表层有一层氧化皮,很硬,对刀具磨损很大,一直是铣削加工的难题,利用螺旋线加工方式加工,取得了很好的效果。
TG659一、二维螺旋线(平面螺旋线)的应用1、平面内螺旋槽加工。
手动编程:手工编制此类零件宏程序必须掌握宏程序的使用方法,通过图形所表达出的规律性,用方程描述和概括图形,用小直线段逼近图形。
Fanuc系统铣螺纹编程(宏程序与螺旋插补)举例:如下图铣削5—M30*1、5—深15mm得细牙右旋螺纹.刀具选择如下:(用废旧得钨钢刀柄磨得单刃螺纹铣刀,适合切削1、5螺距得螺纹)工艺分析:三轴联动铣削螺纹,实质就是XY平面加工整圆同时,Z轴每加工一个整圆下降一个螺纹,加工时就是以螺纹孔得中心轴线作为编程参考点,所以铣削单个螺纹孔时,通常将坐标系原点建立在孔中心,若要铣削多个螺孔,就要试着将坐标系偏移至孔得中心。
这题要铣削5个孔,中间得孔直接可以铣削,R50圆周上得4个等分螺孔,可以借助坐标偏移(fanuc系统用G52)来实现。
M30*1、5得螺纹,事先将螺纹底孔加工到28、5mm,螺纹齿高H=0、974刀具直径经检测,直径为8mm,有效加工孔深为22mm,程序如下:1、宏程序铣削螺纹单个螺纹孔铣削程序G54G90G17 坐标系原点建立在孔得中心,底孔事先加工好M03 S3500(单刃切削,高转速,小吃刀,快进给)G00Z50、G00 X0 Y0G00Z3、(安全高度,定位值就是螺距得整倍数)#1=0、3 齿高切深赋值N10#2=10、25+#1 (28、5得孔,单边14、25,刀半径4,刀具往内偏移到10、25定位)G02 X#2 Y0 I [#2/2 ]J0 F300、以半圆形式切入#3=1、5螺距PN20G02X#2Y0 Z#3I-#2 J0F3000、插补螺纹,到Z1、5得高度#3=#3 —1、5IF[#3GE -15、1 ] GOTO20 螺纹切削孔深15mmG02X0Y0 I—[ #2/2]J0F300、半圆形式切出,刀具到中心G00Z3、抬刀到安全高度,前后一致#1= #1 +0、2切削齿高,往X方向增大IF [ #1 LE 0、91]GOTO10 加工到齿高G01 X0 Y0 F300、退刀G00Z100、抬刀M30本题5-M30*1、5—15得程序主程序:G54 G90G17 坐标系原点建立在孔得中心,底孔事先加工好M03S3500 (单刃切削,高转速,小吃刀,快进给)G00 Z50、G00 X0 Y0M98 P1000调用铣床螺纹得子程序#4 = 0 角度初始赋值N30#5=50*COS [ #4 ]X坐标#6= 50*SIN[#4 ] Y坐标G52X#5Y#6 坐标偏移G00X0 Y0 到偏移之后得原点定位M98 P1000调用铣螺纹得子程序#4=#4 +90 角度增加IF [#4LE271]GOTO30加工剩余3个孔,要就是写360,第一个孔要再加工一次G00 Z100、G52 X0 Y0G54 G00 X100、Y100、M30子程序:O1000;G00X0 Y0G00Z3、(安全高度,定位值就是螺距得整倍数)#1=0、3 齿高切深赋值N10 #2=10、25+#1 (28、5得孔,单边14、25,刀半径4,刀具往内偏移到10、25定位)G02X#2 Y0 I [#2/2 ]J0 F300、以半圆形式切入#3=1、5螺距PN20G02X#2Y0Z#3I—#2 J0F3000、插补螺纹,到Z1、5得高度#3=#3 —1、5IF[#3 GE—15、1 ]GOTO20螺纹切削孔深15mmG02X0 Y0 I-[#2/2] J0F300、半圆形式切出,刀具到中心G00 Z3、抬刀到安全高度,前后一致#1 = #1 + 0、2切削齿高,往X方向增大IF [#1LE 0、91]GOTO10加工到齿高G01X0Y0 F300、退刀G00 Z10、抬刀G52 X0Y0 取消坐标偏移M99 返回主程序2、利用螺旋插补加工螺纹单个螺纹孔铣削程序G54 G90G17 坐标系原点建立在孔得中心,底孔事先加工好M03 S3500(单刃切削,高转速,小吃刀,快进给)G00 Z50、G00 X0Y0G00 Z3、(安全高度,定位值就是螺距得整倍数)#1=0、3 齿高切深赋值N10 #2=10、25+#1(28、5得孔,单边14、25,刀半径4,刀具往内偏移到10、25定位)G02X#2 Y0I [ #2/2]J0 F300、以半圆形式切入G91G02 X0 Y0Z-1、5I—#2 J0 L11F3000、每次1、5,重复11次G90G02 X0 Y0I—[#2/2 ]J0 F300、半圆形式切出,刀具到中心G00 Z3、抬刀到安全高度,前后一致#1 =#1 + 0、2切削齿高,往X 方向增大IF [#1 LE0、91 ]GOTO10加工到齿高G01X0Y0F300、退刀G00 Z100、抬刀M30本题5-M30*1、5-15得程序主程序:G54G90 G17坐标系原点建立在孔得中心,底孔事先加工好M03 S3500(单刃切削,高转速,小吃刀,快进给)G00Z50、G00 X0 Y0M98P1000调用铣床螺纹得子程序#4 = 0角度初始赋值N30#5= 50 *COS[#4] X坐标#6 =50 * SIN [#4 ]Y坐标G52 X#5 Y#6坐标偏移G00 X0Y0 到偏移之后得原点定位M98P1000调用铣螺纹得子程序#4=#4 + 90 角度增加IF[#4 LE271 ]GOTO30加工剩余3个孔,要就是写360,第一个孔要再加工一次G00Z100、G52X0Y0G54 G00 X100、Y100、M30子程序:O1000;G00X0 Y0G00Z3、(安全高度,定位值就是螺距得整倍数)#1=0、3 齿高切深赋值N10 #2=10、25+#1 (28、5得孔,单边14、25,刀半径4,刀具往内偏移到10、25定位)G02 X#2 Y0 I[#2/2 ]J0 F300、以半圆形式切入G91G02 X0Y0 Z-1、5 I—#2 J0 L11 F3000、每次1、5,重复11次G90 G02 X0 Y0 I-[ #2/2] J0F300、半圆形式切出,刀具到中心G00Z3、抬刀到安全高度,前后一致#1= #1+ 0、2 切削齿高,往X方向增大IF[#1 LE 0、91 ] GOTO10加工到齿高G90 G01 X0Y0 F300、退刀G00 Z10、抬刀G52X0Y0 取消坐标偏移M99返回主程序。
浅析宏程序在数控车床中加工圆弧螺纹的应用摘要:在 CNC编程中使用宏程序方式并不能代替其他的编程方式,实际上它属于手工编程的范畴,作为手工编程的扩充,提供更为高级的编程方式。
宏程序功能是数控机床的一种选用功能,在特殊工件的加工中巧用宏程序将起到很好的效果。
而且,这对机床设备也提出了相对应的通用性和灵活性的要求。
关键词:宏程序;变量; 圆弧螺纹;前言:数控系统为用户配备了强有力的类似于高级语言的宏程序功能,用户可以使用变量进行算术运算、逻辑运算和函数的混合运算,此外宏程序还提供了循环语句、分支语句和子程序调用语句,利于编制各种复杂的零件加工程序,减少乃至免除手工编程时进行繁琐的数值计算,以及精简程序量。
宏程序的特点:宏程序可使用变量,可用变量执行相应操作;实际变量值可由宏程序指令赋给变量。
1.宏程序的好处与作用数控系统为用户配备了强有力的类似于高级语言的宏程序功能,用户可以使用变量进行算术运算、逻辑运算和函数的混合运算,此外宏程序还提供了循环语句、分支语句和子程序调用语句,利于编制各种复杂的零件加工程序,减少乃至免除手工编程时进行繁琐的数值计算,以及精简程序量。
宏程序指令适合抛物线、椭圆、双曲线等没有插补指令的曲线编程;适合图形一样,只是尺寸不同的系列零件的编程;适合工艺路径一样,只是位置参数不同的系列零件的编程。
较大地简化编程;扩展应用范围。
其实说起来宏就是用公式来加工零件的,比如说椭圆;如果没有宏的话,我们要逐点算出曲线上的点,然后慢慢来用直线逼近,如果是个光洁度要求很高的工件的话,那么需要计算很多的点,可是应用了宏后,我们把椭圆公式输入到系统中然后我们给出Z坐标并且每次加10um那么宏就会自动算出X坐标并且进行切削,实际上宏在程序中主要起到的是运算作用。
宏一般分为A类宏和B类宏。
A类宏是以G65 Hxx P#xx Q#xx R#xx的格式输入的,而B类宏程序则是以直接的公式和语言输入的和C语言很相似在0i系统中应用比较广。
邹军:宏程序案例分享:螺旋插补铣孔与铣锥孔1、铣孔2、铣锥孔一、铣孔说起孔加工,大家常用钻头钻孔,铰刀铰孔,镗刀镗孔等方法。
钻削和镗削依旧是孔加工的最快方法,但是对于小批量生产的零件,零件种类多,可能会因为不同尺寸的孔,采取不同种类的钻头,镗刀加工。
“一个萝卜一个坑”,每个规格的孔需要一种刀具。
而铣孔覆盖各种尺寸的孔,无论是开粗(无论有无欲钻底孔),扩孔,精铣(实现以铣代铰、以铣代镗),铣孔有显著的优势,尤其是用宏程序来编写铣孔程序,对孔尺寸精度的控制及其方便。
那么宏程序的优势在哪呢?如下图:我把孔的直径、孔深、刀具直径都用宏变量来代替,这样的好处是你加工不同尺寸的孔,都可以用此程序来加工。
只需要更具图纸提供的尺寸给变量赋予不同数值即可。
比如:#1=代表:孔的直径#2=代表:孔深#3=代表:刀具直径根据图纸提供的尺寸,给上面变量赋值即可。
如何编写铣孔宏程序?开始编写程序(分析三点内容)一、铣孔刀路分析:刀具快速移动到下刀点,然后刀具每走一圈的同时下一定的距离至到铣至我需要的深度为止。
二、计算两点(下刀点和退刀点)大家都知道编程的时候下刀点和退刀点很重要,无论是软件出程序,还是手工编写程序,以及现场调试程序的时候,需要重视这两点,以防刀具与零件碰撞……。
假设零件孔中心以及零件表面Z=0为编程原点1、下刀点:如上示意图(需要计算出刀具中心到孔中心的距离)#1代表孔直径#3代表刀具直径Y方向坐标是0X方向坐标可以推算出(孔半径减去刀具半径):#6=[#1-#3]/2 知道了下刀点,G0快速移动到下刀点,程序段即:G0X#6 Y0Z方向坐标是工件表面Z零点,即Z0,2、退刀点:如上示意图铣完孔之后,刀具需要远离零件孔内壁,可以计算出[#1-#3]/2-1 注意方向:朝负方向回退1mm所以[#1-#3]/2-1,退刀程序段即G0X[#6-1]三,圆弧插补G17G02/G03X_Y_Z_I_J_ 格式1、G02/G03的格式: G17G02 X_Y_Z_R 或者G17G02 X_Y_Z_I_J_以G02X_Y_Z_I_J_(为例子,同理G03的格式也一样)G02后面的X_Y_Z_ 是圆弧的终点坐标数值2、I_后面的数值是圆弧起点到圆心的距离(X方向)J_后面的数值是圆弧起点到圆心的距离(Y方向)上段程序G01X10Y50 。
1、内梯形螺纹加工程序:G54G99M3S100T0101G0Z3X33#101=0.2; 每一刀的的深度(半径)#102=4 梯形螺纹的深度(半径)#103=1 分层切削的次数N90 G0U[2*#101*#103]G32Z-32F7G0X32Z[3+[#102-#101]*0.268+A];A是槽底宽-刀尖宽的一半X33U[2*#101*#103]G32Z-32F7G0X32Z[3-[#102-#101]*0.268-A] 梯形螺纹的牙顶宽:0.366x螺距梯形螺纹的牙底宽:螺距-牙顶宽-2倍的(螺纹深度Xtg15°)X33U[2*#101*#103]G32Z-32F7G0X32G0Z3X33#102=#102-0.2#103=#103+1IF[#103LE20]GOTO90;G0Z100M5M30;(3)参考程序①编程分析用宏程序编程时变量的设置是核心内容,一是要变量尽可能少,避免影响数控系统计算速度,二是便于构成循环。
经过分析本例中要4个变量,#1为刀头到牙槽底的距离,初始值为5.5mm,#2为背吃刀量(半径值),#3为(牙槽底宽—刀头宽度)/2,#4为每次切削螺纹终点X坐标。
本例中编程关键技术是要利用宏程序实现分层切削和左右移刀切削。
利用G92螺纹加工循环指令功能,左右移刀切削只需将切削的起点相应移动0.268*[#1-#2]+#3(右移刀切削)或者-0.268*[#1-#2]-#3(左移刀切削)就可以实现。
分层切削的实现通过#1和#2变量实现,每层加工三刀后,让#1=#1-#2实现进刀,而在每层中螺纹的X坐标不变,始终为#4=69.0+2*[#1-#2]。
②参考程序(此程序已运用于FANUC 0i Mate TC系统车床加工零件)参考程序注释O0001;程序号N10 T0101;换01号刀具,调用01号偏置值N20 M08;打开切削液N30 M03 S180;主轴正转,转速为180r/minN40 G00 X90.0 Z10.0;刀具快速移动到点(90,10)N50 #1=5.5; #1为刀头到牙槽底的距离,初始值为5.5mmN60 #2=0.2; #2为背吃刀量(半径值)N70 #3=(牙槽底宽—刀头宽度)/2;#3为(牙槽底宽—刀头宽度)/2N80 WHILE [#1 GE 0.2] DO1;当#1≥0.2,执行循环1,底部留0.2mm的精车余量N90 #4=69.0+2*[#1-#2];#4为每次切削螺纹终点X坐标N100 G00 Z5.0 ;移动到直进刀切削的循环起点N110 G92 X#4 Z-286.0 F10.0;直进刀车削螺纹N120 G00 Z[5+0.268*[#1-#2]+#3];移动到右移刀切削的循环起点N130 G92 X#4 Z-286.0 F10.0;右移刀车削螺纹N140 G00 Z[5-0.268*[#1-#2]-#3];移动到左移刀切削的循环起点N150 G92 X#4 Z-286.0 F10.0;左移刀车削螺纹N160 #1=#1-#2;构成循环N170 END1;当#1<0.2,跳出循环1N180 G00 X200.0 Z150.0;快速退刀N190 M09;关闭切削液N200 M30;程序结束说明:①参考程序以工件右端面中心为编程原点。
FANUC 0M 丝杠螺距误差补偿的基本原理和补偿方法一、丝杠螺距误差补偿的基本原理在半闭环位置控制系统中,从位置编码器或旋转变压器等位置测量器件返回到数控系统中的轴运动位置信号仅仅反映了丝杠的转动位置,而丝杠本身的螺距误差和反向间隙必然会影响工作台的定位精度,所以对丝杠的螺距误差进行正确的补偿在半闭环系统中是十分重要的。
图1描述了丝杠螺距误差补偿的基本原理X轴位置值0 100 200 300 400 500 600 700 800 900 1000 1100 1200 1300 1400补偿点号0 1 2 3 4 5 6 7 8 9 10 11 12 13 14补偿量-1 -1 -1 0 0 0 1 1 1 1 0 0 -1 0图中的虚线为补偿前用激光测长仪测得的机床工作台X进给轴上的15个指定的实际位置与指令位置的误差值。
在FANUC 0系统中,螺距误差的补偿是在固定间距的补偿点上补入的,每一个进给轴上最多允许设置128个等距离的补偿点,而每一个补偿点上的最大补偿量为+ 7个检测单位补偿倍率。
图1中X轴补偿后的定位误差控制在+1个检测单位内,补偿前工作台从X0点到X100的定位误差为+1检测单位,而补偿点X100的补偿量为—1,因此补偿后X100点的实际定位误差值变为0,同样,补偿前工作台从X100到X200的定位误差为+1检测单位,而补偿点X200的补偿量为—1,因此补偿后X200的实际定位误差值也变为0;X300点也作同样处理。
由于补偿前X400,X500和X600点相对于前一点的定位误差值均未超过1个检测单位,所以不需补偿(这些点的补偿值为0)。
补偿前X700,X800,X900和X1000相对于前一点的定位误差值均为—1个检测单位,这些点的补偿值均为+1,因此这些点补偿后的实际定位误差值也变为0;由于补偿前X1100和X1200相对于前一点的定位误差值也均未超过1个检测单位,所以也不需补偿(这些点的补偿值也为0)。