宏程序编程实例与技巧方法.ppt
下午4时32分,数控加工编程及操作,1,用户宏程序编程,在数控编程中,宏程序编程灵活、高效、快捷,是加工编程的重要补充。宏程序不仅可以实现象子程序那样,例如,型腔加工宏程序、固定加工循环宏程序、球面加工宏程序、锥面加工宏程序等。,FANUC数控宏程序SIEMENS数控参数编程,下午4时32分,数控加工编程及操作,2,一、构成1.包含变量2.包含算术或逻辑运算(=)的程序段3.包含控制语句(例如:GOTO,DO,END)的程序段4.包含宏程序调用指令(G65,G66,G67或其他G代码,M代码调用宏程序)的程序段,FANUC数控系统用户宏程序,下午4时32分,数控加工编程及操作,3,二、FANUC宏程序的变量,FANUC数控系统变量表示形式为#后跟14位数字,变量种类有四种:,下午4时32分,数控加工编程及操作,4,下午4时32分,数控加工编程及操作,5,三、刀具补偿存储器C用G10指令进行设定,P:刀具补偿号R:绝对值指令(G90)方式时的刀具补偿值。增量值指令(G91)方式时的刀具补偿值为该值与指定的刀具补偿号的值相加。,下午4时32分,数控加工编程及操作,6,四、FANUC宏程序的转移和循环,1.无条件转移:GOTOn(n为顺序号,199999)例:GOTO10为转移到N10程序段。,2.条件转移:(IF语句)1)IF 条件表达式 GOTOn 当指定的条件表达式满足时,转移到标有顺序号n的程序段,如果指定的条件表达式不满足时,执行下个程序段。,下午4时32分,数控加工编程及操作,7,2)IF 条件表达式 THEN当指定的条件表达式满足时,执行预先决定的宏程序语句。例:IF#1EQ#2 THEN#3=0;,3.WHILE 条件表达式 DO m;(m=1,2,3),条件满足,条件不满足,ENDm,注:循环允许嵌套,最多3层,但不允许交叉,下午4时32分,数控加工编程及操作,8,下午4时32分,数控加工编程及操作,9,下午4时32分,数控加工编程及操作,10,五、运算符,FANUC数控车削宏程序,1.概念:“宏程序”一般指含有变量的程序。由宏程序体和程序中调用宏程序的指令。即宏指令构成。主要应用于抛物线、椭圆、双去想等各种数控系统没有插补指令的轮廓曲线编程。用户宏程序有两个要点:(1)在宏程序中存在变量;(2)宏程序能依据变量完成某个具体操作。,下午4时32分,数控加工编程及操作,11,(2)特点:1)可以进行变量的算术运算、逻辑运算和函数的混合运算。还可以使用循环语句、分支语句和子程序调用语句。2)宏程序能依据变量,用事先指定的变量代替直接给出的数值,在调用宏程序或宏程序本身执行时,得到计算好的变量值。3)宏程序通用性强,灵活方便,一个宏程序可以描述一种曲线,曲线的各种参数用变量表示。,下午4时32分,数控加工编程及操作,12,(3)基本原理宏程序编程是用户用变量作为数据进行编程,变量在编程中充当“媒介”作用。在后续程序中可以重新再赋值,原来内容被新赋的值所取代,利用系统对变量值进行计算和可以重新赋值的特性,使变量随程序的循环自动增加并计算,实现加工过程的自动循环,使之自动计算出整个曲线无数个密集坐标值,从而用很短的直线或圆弧线逼近理想的轮廓曲线。,下午4时32分,数控加工编程及操作,13,下午4时32分,数控加工编程及操作,14,3.变量与赋值(1)变量表示法 用一个可赋值的代号“#i”(i=1,2,3)来代替具体的坐标值或数据,这个代号“#i”就称为变量。变量用变量符号“#”(变量的标志)和后续数值(变量的标号)来表示,如#5,#21等,其后续数值不允许带小数点。变量可以在宏程序体中使用,宏程序体中可以含有复杂的表达式,并完成很复杂的计算。而普通加工程序直接用G或数值编写,如“G00 X50 Z50”,而用户在编写宏程序时,数值可以直接指定或用变量指定,如“G00 X#1+#1F#3”,下午4时32分,数控加工编程及操作,15,下午4时32分,数控加工编程及操作,16,下午4时32分,数控加工编程及操作,17,下午4时32分,数控加工编程及操作,18,宏程序零件编制实例,1.抛物线宏程序的应用如图所示。已知前端椭圆的方程为抛物线,Z=-X2/24.2。设X轴步距为0.06,原始毛坯为3070,T01为粗车刀,T02为精车刀,各部分尺寸见图1,试编写加工程序。计算抛物线线底的直径:将Z=20代入,的直径为22mm。,下午4时32分,数控加工编程及操作,19,方法一:调用子程序,O0010G00 X100 Z100;T0101 S800 M03;G40 X30;G00 G42 Z2;#60=30;设定毛坯最大切削量;WHILE#60 GE 0.75;判定毛坯余量是否大于0.75M98 P0009;调用子程序#60=#60-2.4;每次切削量单边为1.2mm;ENDW;G00 G40 X100 Z100;M05;T0202;换2号精车刀;G40 X30;G00 G42 Z2;G01 Z0 F0.1;#60=0;设定毛坯切削量为0M98 P0009;调用子程序ENDW;G00G40 X100 Z100;M30;,下午4时32分,数控加工编程及操作,20,O0009#1=0;#2=0;WHILE#2 LE 20;判定z轴是否到终点#2=#1*#1/24.2;z轴变量G01 X#1+#60Z-#2 F0.2;抛物线插补;#1=#1+0.06;设定x轴的步距为0.06;ENDW;G01 W-5;U3;W-10;U5;G00 Z0;M99;,下午4时32分,数控加工编程及操作,21,方法二:复合循环法,O0110G00 X100 Z100;T0101 M03 S800;G00G40 X30 Z2;G73 U15 W0R7.0;G71 P10Q20 X0.6 Z0.2 F0.2;N10 G00 G42 X0;G01 Z0 F0.1 S1000;#1=0;#2=0;WHILE#2LE 20;判定z轴是否到终点;#2=#1*#1/24.2;Z轴变量G01 X#1 Z-#2 抛物线插补#1=#1+0.06;设定x轴的步距为0.06;ENDWG01 Z-25;X25;,下午4时32分,数控加工编程及操作,22,X25;N20 Z-35;T0202;G70 P10 Q20;M30;,以参数(角度)为初始变量如图3,毛坯为30mm70mm的棒料,45号钢。编程原点设在右端面与中心轴线的交点上,椭圆原点在编程坐标系(0,-20)处。,下午4时32分,数控加工编程及操作,23,分析:三爪卡盘夹住左端,伸出55mm,手动车右端面,选择1号30外圆车刀加工外轮廓。切削用量的选择:粗加工主轴转速为600r/min,进给量为0.25mm/r,精加工主轴转速为800r/min,进给量为0.1mm。在椭圆坐标系中,其标准方程为:;参数方程为:X=14sin,Z=20cos。从零件图上可以看出,椭圆轮廓的起点角度为0,终点角度为144(180-36=144),所以适合采用以参数(角度)为初始变量,应用参数方程来表达椭圆上点的坐标。编制程序如下。,O1234;T0101 M03 S600;GOO X34 Z2.0;G73 U14 W0 R7;G73 P10 Q20 U1 W0.05 F0.25;N10 G00 X0.;G42 G01 Z0.F0.1;#1=0;(角度初始值)WHILE#1 LE 144 DO1;#2=14*SIN#1;#3=20*COS#1;G01 X2*#2 Z#3-20F0.1;#1=#1+0.5;END 1;G01 Z-40;X28;W-10;N20 G40 X33;M03 S800;G70 P10 Q20;G00 X150 Z150;M5;M30;,下午4时32分,数控加工编程及操作,24,下午4时32分,数控加工编程及操作,25,四、以Z坐标为初始变量如图4,毛坯为30mm50mm的棒料,45号钢。编程原点设在右端面与中心轴线的交点上,椭圆原点在编程坐标系(0,-15)处。,下午4时32分,数控加工编程及操作,26,四、以Z坐标为初始变量如图4,毛坯为30mm50mm的棒料,45号钢。编程原点设在右端面与中心轴线的交点上,椭圆原点在编程坐标系(0,-15)处。编制程序如下:O1235;G40 T0101 M03 S600;GOO X34 Z2.0;G73 U14 W0 R7;G73 P10 Q20 U1 W0.05 F0.25;N10 G00 X0.;G42 G01 Z0.F0.1;#1=15;(Z初始值)WHILE#1 GE 0 DO1;#2=10*SQRT15*15-#1*#1/15;G01 X2*#2 Z#1-15 F0.1;#1=#1-0.1;END 1;G01 W-5;X28;Z-30;N20 G40 X33;M03 S800;G70 P10 Q20;G00 X150 Z150;M30;,下午4时32分,数控加工编程及操作,27,O1211,下午4时32分,数控加工编程及操作,28,下午4时32分,数控加工编程及操作,29,如图5,毛坯为30mm80mm的棒料,45号钢。编程原点设在右端面与中心轴线的交点上,椭圆原点在编程坐标系(14.15,-22)处,椭圆轮廓位于零件中间。,编制程序如下:G00 X34 Z2.0;#1=10*SQRT20*20-14*14/20;#2=2*17.5-#1;G00 X#2;G01 Z-8 F0.1;#3=14;(Z初始值)WHILE#3 GE-14 DO1;#4=10*SQRT20*20-#3*#3/20G01 X2*17.15-#4 Z#3-22 F0.1;#3=#3-0.1;END 1;G01 W-8;上例引入了4个变量,变量#1和#2的引入是为了表达曲线起点的坐标值,变量#3和#4表达的是椭圆曲线上点的Z、X值。,下午4时32分,数控加工编程及操作,30,O0003;G00 X100Z100LT0101S500M03;G00 X75 Z2;G73 U22.5W0R10;G73P10Q20U0.3W0F0.2;N10 GOO X30;G01 X-15;#21=20;#22=10;#23=0;WHILE-10LE#23 DO1#24=20*SQRT#22*#22-#23#23/10;G01 X2*35-2*#24Z#23-15#23=#23-0.05;END 1;N20 G01 Z-50;G00 X100Z100;M30;,下午4时32分,数控加工编程及操作,31,下午4时32分,数控加工编程及操作,32,用户宏程序训练,有以角度为初始变量的椭圆宏程序编程;有以Z(X)坐标为初始变量的椭圆宏程序编程;有的椭圆曲线轮廓位于零件的最右(左)端;有的曲线位于零件中间部位。但不管是什么情况,椭圆宏程序编程都要有以下几个的要点。根据零件图中椭圆轮廓的形状和位置,选取合适的初始变量,角度 或Z(X)坐标。正确表达椭圆曲线上点的坐标。根据零件图上的尺寸标注,选择标准方程或参数方程表达椭圆上点的坐标。找出(有时需计算出)椭圆原点在 编程坐标系中的坐标,正确表达椭圆上的点在编程坐标系中的坐标。,下午4时32分,数控加工编程及操作,33,下午4时32分,数控加工编程及操作,34,六、FANUC宏程序的调用,1.非模态调用G65:格式:G65 Pp Ll 其中 p:要调用的程序号 L:调用次数(默认为1)自变量:数据传递到宏程序,例:G65 P8000 L2 A10.B2.;调用2次程序号8000,经自变量A传递到宏程序#1=10;自变量B传递到宏程序#2=2。,下午4时32分,数控加工编程及操作,35,自变量指定,根据使用的字母,CNC系统自动地决定自变量指定的类型。地址不需要按字母顺序指定。但应符合字地址的格式。但是,I,J 和K 需要按字母顺序指定。,下午4时32分,数控加工编程及操作,36,自变量指定,根据使用的字母,系统自动决定自变量指定的类型。自变量指定用于传递诸如三维坐标值的变量。I,J,K 的下标用于确定自变量指定的顺序,在实际编程中不写。,下午4时32分,数控加工编程及操作,37,如果自变量指定和自变量指定混合指定的话,后指定的自变量类型有效。,下午4时32分,数控加工编程及操作,38,六、FANUC宏程序的调用,2.模态调用(G66):G66 Pp Ll;程序点G67;(取消模态),例:G66 P8000 L2 A10.B2.;G00 G90 Z-10.X-5.G67一旦发出G66 则指定模态调用,即指定沿移动轴移动的程序段后调用宏程序。移动到Z-10,调用2次程序号8000,移动到X-5,再调用2次程序号8000。,下午4时32分,数控加工编程及操作,39,%1000;长半轴40、短半轴30的椭圆G54 G90 G00 Z30M03 S800G00 X45 Y-15;Z3G01 Z-5 F100#0=0;给角度赋0初值WHILE#0 LE 360;#1=40*COS#0*PI/180;#2=30*SIN#0*PI/180;G01 X#1 Y#2;#0=#0+1;ENDWX45 Y15;G00 Z30X0 Y0 M05M30,七、FANUC与华中系统用户宏程序编程对照,G54 G90 G00 Z30M03 S800G00 X45 Y-15;Z3G01 Z-5 F100#10=0;给角度赋0初值WHILE#10 LE 360 DO 1;#11=40*COS#10;#12=30*SIN#10;G01 X#11 Y#12;#10=#10+1;END 1X45 Y15;G00 Z30X0 Y0 M05M30,下午4时32分,数控加工编程及操作,40,SIEMENS数控系统参数编程,与FANUC类似,但功能要弱一些。变量以“R”开始,如:R0、R1、R99。不包含系统变量,系统变量以“$”开头。,一、格式:Rn(n的缺省取值范围为0-99)例如:R1 R2 R99,二、运算符:,下午4时32分,数控加工编程及操作,41,下午4时32分,数控加工编程及操作,42,三、SIEMENS参数编程程序跳转,1.无条件跳转GOTOB LABEL(向后跳转,向程序头跳转)GOTOF LABEL(向前跳转,向程序尾跳转),2.条件跳转IF 表达式 GOTOB LABEL(向后跳转,向程序头跳转)IF 表达式 GOTOF LABEL(向前跳转,向程序尾跳转)LABEL 为程序段标示符,下午4时32分,数控加工编程及操作,43,下午4时32分,数控加工编程及操作,44,四、编程示例,下午4时32分,数控加工编程及操作,45,G54 G90 G00 Z30M03 S800G00 X45 Y-15;Z3G01 Z-5 F100R10=0;给角度赋0初值AA:R11=40*COS(R10);R12=30*SIN(R10);G01 X=R11 Y=R12;R10=R10+1;IF R10=360 GOTOB AAX45 Y15;G00 Z30X0 Y0 M05M30,五、SIEMENS与FANUC用户宏程序编程对照,长半轴40、短半轴30的椭圆G54 G90 G00 Z30M03 S800G00 X45 Y-15;Z3G01 Z-5 F100#10=0;给角度赋0初值WHILE#10 LE 360 DO 1;#11=40*COS#10;#12=30*SIN#10;G01 X#11 Y#12;#10=#10+1;END 1X45 Y15;G00 Z30X0 Y0 M05M30,