资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,数控加工中宏程序的编制方法,中国数控信息网欢迎您,FANUC,宏程序简介,在数控编程中,宏程序编程灵活、高效、快捷。宏程序不仅可以实现象子程序那样,对编制相同加工操作的程序非常有用,还可以完成子程序无法实现的特殊功能,例如,型腔加工宏程序、固定加工循环宏程序、球面加工宏程序、锥面加工宏程序等。,FANUC,宏程序特殊用法,宏程序还可以实现系统参数的控制,如,坐标系的读写、刀具偏置的读写、时间信息的读写、倍率开关的控制等。,中国数控信息网欢迎您,SIEMENS,参数编程,与,FANUC,类似,但功能要弱一些。变量以“,R”,开始,如:,R0、R1、R99。,不包含系统变量,系统变量以,“$”,开头。,FANUC宏,程序,的构成,1,)包含变量,2,)包含算术或逻辑运算(,=,)的程序段,3,)包含控制语句(例如:,GOTO,,,DO,,,END,)的程序段,4,)包含宏程序调用指令(,G65,,,G66,,,G67,或其他,G,代码,,M,代码调用宏程,序)的程序段,中国数控信息网欢迎您,FANUC宏,程序,的,变量,FANUC,数控系统变量表示形式为,#,后跟,1,4,位数字,变量种类有四种:,变量号,变量类型,功能,#0,空变量该变量总是空,,没有任何值能赋给该变量,FANUC宏,程序,的,变量,变量号,变量类型,功能,#1#33,局部变量,局部变量只能用在宏程序中存储数据,例如运算结果。当断电时局部变量被初始化为空,调用宏程序时自变量对局部变量赋值。,FANUC宏,程序,的,变量,变量号,变量类型,功能,#100#199,#500#999,公共变量,公共变量在不同的宏程序中的意义相同当断电时变量,#100 #199,初始化为空变量,#500 #999,的数据保存即使断电也不丢失,FANUC宏,程序,的,变量,变量号,变量类型,功能,#1000,系统变量,系统变量用于读和写,CNC,运行时各种数据的变化例如刀具的当前位置和补偿值等,中国数控信息网欢迎您,刀具补偿存储器C的系统变量,当偏置组数小于等于,200,时,也可以用,#2001#2400,补偿号,刀具长度补偿(,H,),刀具半径补偿(,D,),几何补偿,磨损补偿,几何补偿,磨损补偿,1,2,3,:,200,:,400,#11001(#2201),#11002(#2202),#11003(#2203),:,#11200(#2400),:,#11400,#10001(#2001),#10002(#2002),#10003(#2003),:,#10200(#2200),:,#11400,#13001,#13002,#13003,:,#13200,:,#13400,#12001,#12002,#12003,:,#12200,:,#12400,刀具补偿存储器,C,用G10,指令进行,设定,P:,刀具补偿号,R:,绝对值指令(,G90),方式时的刀具补偿值。增量值指令(,G91),方式时的刀具补偿值为该值与指定的刀具补偿号的值相加。,H,代码的几何补偿值,G10L10P,R,;,D,代码的几何补偿值,G10L12P,R,;,H,代码的磨损补偿值,G10L11P,R,;,D,代码的磨损补偿值,G10L13P,R,;,自动运行控制的系统变量,#3003,单程序段,辅助功能的完成,0,有效,等待,1,无效,等待,2,有效,不等待,3,无效,不等待,自动运行控制的系统变量,#3004,进给暂停,进给速度倍率,准确停止,0,有效,有效,有效,1,无效,有效,有效,2,有效,无效,有效,3,无效,无效,有效,4,有效,有效,无效,5,无效,有效,无效,6,有效,无效,无效,7,无效,无效,无效,攻丝加工循环,工件原点偏移值的系统变量,#5201,:,#5204,第,1,轴外部工件零点偏移值,:,第,4,轴外部工件零点偏移值,#5221,:,#5224,第,1,轴,G54,工件零点偏移值,:,第,4,轴,G54,工件零点偏移值,#5241,:,#5244,第,1,轴,G55,工件零点偏移值,:,第,4,轴,G55,工件零点偏移值,工件原点偏移值的系统变量,#5261,:,#5264,第,1,轴,G56,工件零点偏移值,:,第,4,轴,G56,工件零点偏移值,#5281,:,#5284,第,1,轴,G57,工件零点偏移值,:,第,4,轴,G57,工件零点偏移值,#5301,:,#5304,第,1,轴,G58,工件零点偏移值,:,第,4,轴,G58,工件零点偏移值,工件原点偏移值的系统变量,#5321,:,#5324,第,1,轴,G59,工件零点偏移值,:,第,4,轴,G59,工件零点偏移值,#7001,:,#7004,第,1,轴工件零点偏移值(,G54.1P1,),:,第,4,轴工件零点偏移值(,G54.1P1,),#7021,:,#7024,第,1,轴工件零点偏移值(,G54.1P2,),:,第,4,轴工件零点偏移值(,G54.1P2,),工件原点偏移值的系统变量,#7041,:,#7044,第,1,轴工件零点偏移值(,G54.1P3,),:,第,4,轴工件零点偏移值(,G54.1P3,),#7061,:,#7064,第,1,轴工件零点偏移值(,G54.1P4,),:,第,4,轴工件零点偏移值(,G54.1P4,),#7941,:,#7944,第,1,轴工件零点偏移值(,G54.1P48,),:,第,4,轴工件零点偏移值(,G54.1P48,),工件原点偏移值的系统变量,轴,功能,变量号,第一轴,外部工件零点偏移,#2500,#5201,G54,工件零点偏移,#2501,#5221,G55,工件零点偏移,#2502,#5241,G56,工件零点偏移,#2503,#5261,G57,工件零点偏移,#2504,#5281,G58,工件零点偏移,#2505,#5301,G59,工件零点偏移,#2506,#5321,工件原点偏移值的系统变量,轴,功能,变量号,第二轴,外部工件零点偏移,#2600,#5202,G54,工件零点偏移,#2601,#5222,G55,工件零点偏移,#2602,#5242,G56,工件零点偏移,#2603,#5262,G57,工件零点偏移,#2604,#5282,G58,工件零点偏移,#2605,#5302,G59,工件零点偏移,#2606,#5322,工件原点偏移值的系统变量,轴,功能,变量号,第三轴,外部工件零点偏移,#2700,#5203,G54,工件零点偏移,#2701,#5223,G55,工件零点偏移,#2702,#5243,G56,工件零点偏移,#2703,#5263,G57,工件零点偏移,#2704,#5283,G58,工件零点偏移,#2705,#5303,G59,工件零点偏移,#2706,#5323,工件原点偏移值的系统变量,轴,功能,变量号,第四轴,外部工件零点偏移,#2800,#5204,G54,工件零点偏移,#2801,#5224,G55,工件零点偏移,#2802,#5244,G56,工件零点偏移,#2803,#5264,G57,工件零点偏移,#2804,#5284,G58,工件零点偏移,#2805,#5304,G59,工件零点偏移,#2806,#5324,用,G10,改变工件坐标系零点偏移值,格式:,G10L2PpIP,;,P=0,:外部工件零点偏移值,P=1,:工件坐标系,G54,的零点偏移值,P=2,:工件坐标系,G55,的零点偏移值,P=3,:工件坐标系,G56,的零点偏移值,P=4,:工件坐标系,G57,的零点偏移值,P=5,:工件坐标系,G58,的零点偏移值,P=5,:工件坐标系,G59,的零点偏移值,IP,: 对于绝对值指令(,G90,),为每个轴的工件零点偏移值。,对于增量值指令(,G91,),为每个轴加到设定的工件零点偏移值。,FANUC,宏程序运算符,功能,格式,备注,定义,#i=#j,加法,#i=#,j+#k,减法,#i =#j- #k,乘法,#i =#j*#k,除法,#i=#,j/#k,FANUC,宏程序运算符,功能,格式,备注,正弦,#i=,SIN#j,角度以度指定,如,9030,表示为,90.5,度,反正弦,#i=,ASIN#j,余弦,#i=,COS#j,反余弦,#i=,ACOS#j,正切,#i=,TAN#j,反正切,#i=,ATAN#j,FANUC,宏程序运算符,功能,格式,备注,平方根,#i=,SQRT#j,绝对值,#i=,ABS#j,舍入,#i=,ROUND#j,上取整,#i=,FIX#j,下取整,#i=,FUP#j,自然对数,#i=,LN#j,指数函数,#i=,EXP#j,FANUC,宏程序运算符,功能,格式,备注,或,#i=#j OR #k,逻辑运算一位一位的按二进制数执行,异或,#i=#j XOR #k,与,#i=#j AND #k,从,BCD,转为,BIN,#i=,BIN#j,用于与,PMC,的信号交换,从,BIN,转为,BCD,#i=,BCD#j,FANUC,宏程序的转移和循环,无条件转移:,GOTOn,(n,为顺序号,,199999,),例:,GOTO10,为转移到,N10,程序段,中国数控信息网欢迎您,FANUC,宏程序的转移和循环,条件转移:(,IF,语句),IF ,条件表达式,GOTOn,当指定的条件表达式满足时,转移到标有顺序号,n,的程序段,如果指定的条件表达式不满足时,执行下个程序段,中国数控信息网欢迎您,FANUC,宏程序的转移和循环,条件转移:(,IF,语句),IF ,条件表达式,GOTOn,FANUC,宏程序的转移和循环,IF ,条件表达式,THEN,当指定的条件表达式满足时,执行预先决定的宏程序语句。,例:,IF #1EQ #2 THEN #3=0;,中国数控信息网欢迎您,FANUC,宏程序循环,WHILE ,条件表达式, Dom,;,(,m=1,,,2,,,3,),注:循环允许嵌套,最多,3,层,但不允许交叉;,条件不满足,条件满足,ENDm,FANUC,宏程序循环,FANUC,宏程序循环,FANUC,宏程序循环,FANUC,宏程序的条件表达式运算符,运算符,含义,EQ,等于,NE,不等于,GT,大于,GE,大于或等于,LT,小于,LE,小于或等于,中国数控信息网欢迎您,FANUC,宏程序的调用,非模态调用,G65,:,格式:,G65PpLl,其中,p,:要调用的程序号,L,:调用次数(默认为,1,),自变量:数据传递到宏程序,FANUC,宏程序的调用,模态调用(,G66,):,G66PpLl,;,程序点,G67;,(取消模态),其中,p,:要调用的程序号,L,:调用次数(默认为,1,),自变量:数据传递到宏程序,中国数控信息网欢迎您,FANUC,宏程序的调用,FANUC,宏程序的调用,自变量指定,FANUC,宏程序的,G,代码调用,程序号,参数号,O9010,6050,O9011,6051,O9012,6052,O9013,6053,O9014,6054,O9015,6055,O9016,6056,O9017,6057,O9018,6058,O9019,6059,FANUC,宏程序的,G,代码调用,中国数控信息网欢迎您,FANUC,宏程序的,M,代码调用,程序号,参数号,O9020,6080,O9021,6081,O9022,6082,O9023,6083,O9024,6084,O9025,6085,O9026,6086,O9027,6087,O9028,6088,O9029,6089,FANUC,宏程序中刀具半径补偿,SIEMENS,参数编程,格式:,Rn,(,n,的缺省取值范围为,0-99,),例如,:R1 R2 R99,中国数控信息网欢迎您,SIEMENS,参数编程中的数学运算符,SIEMENS,参数编程中的数学运算符,SIEMENS,参数编程中的比较或逻辑运算符,SIEMENS,参数编程示例,SIEMENS,参数编程程序跳转,无条件跳转,GOTOB LABEL,(向后跳转,向程序头跳转),GOTOF LABEL,(向前跳转,向程序尾跳转),LABEL,为程序段标示,中国数控信息网欢迎您,SIEMENS,参数编程程序跳转,条件跳转,IF,表达式,GOTOB LABEL,(向后跳转,向程序头跳转),IF,表达式,GOTOF LABEL,(向前跳转,向程序尾跳转),LABEL,为程序段标示,SIEMENS,参数编程程序跳转,IF R1R2 GOTOF MARKE1,如果,R1,大于,R2,,那么跳跃到,MARKE1,R7=(R8+R9)*743 GOTOB MARKE1,作为条件的复合表达式,IF R10 GOTOF MARK1,允许确定一个变量(,INT,,,REAL,,,BOOL,或,CHAR,)。如果变量值为,0,(,=FALSE,),条件就不能满足;对于所有其他值,条件为,TRUE,IF R1=0 GOTOF MARKE1 IF R1=1 GOTOF MARKE2,同一程序段中的几个条件,宏程序示例,采用,20R4,铣刀加工,SR30,的球,已知球心坐标为(,X0Y0Z-5.,),宏程序示例,宏程序示例,分析:,铣球程序一般采用自动编程来实现,但是,利用宏程序强大的功能同样也可以实现,而且程序更加简洁。,编程思路:,铣球可以认为是多个铣圆的组合。,排刀分布:,有两种方案,一是按,Z,向分布,二是按圆心角分布。从保证表面质量来看,最佳方案为按圆心角分布。,宏程序示例,圆弧起点计算,从,X,正向开始起刀。,刀具根部,R4,的圆心在,XZ,平面的运动轨迹为与,R30,等距的圆,R34,(见图示中红色轨迹),刀尖点上,4mm,处的轨迹(即褐色轨迹)为红色轨迹沿,X,正向平移,6,毫米,刀尖点坐标为褐色轨迹沿,Z,轴向下平移,4mm,(即绿色轨迹)。,起始角度,=ARCSIN,(,5+4,),/34,),=15.349,起始位置,X,值,=34*COS,(,15.349,),+6=38.787,起始位置,Z,值,=0,(通用表达式,=34*sin,(,15.349,),-5-4,),宏程序示例,变量定义:,#1,为圆心角,范围由(,15.349,,,90,),#2,为刀尖中心,X,值,,=34*COS#1+6,#3,为刀尖中心,Z,值,,=34*SIN#1-5-4,宏程序示例,FANUC,SIEMENS,M03S3000,;,G00G90G54Z100.,;,#1=15.349,X50.Y0,;,Z10.,;,WHILE#1 LE 90 DO1,;,#2=34*COS#1+6,;,#3=34*SIN#1-5-4;,G01Z#3F900;,X#2;,G02X#2Y0I-#2J0;,#1=#1+1;,END1;,G00Z100.;,M30;,M03S3000,;,G00G90G54Z100.,;,R1=15.349,X50.Y0,;,Z10.,;,LABEL:R2=34*COS(R1)+6,;,R3=34*SIN(R1)-5-4;,G01Z=R3F900;,X=R2;,G02X=R2Y0I=-R2J0;,R1=R1+1;,IF R1=90 GOTOB LABEL,G00Z100.;,M30;,宏程序示例,用,20R10,铣刀加工轮廓处,R5,圆角,宏程序示例,G00X2.5Y26.664,G01G41D01X-8.991Y2.023,G03X2.5Y-3.336I11.491J9.641,X32.969Y-.208I0.J150.,G02X44.955Y-10.952I2.031J-9.792,G03Y-49.048I199.09J-19.048,G02X33.452Y-59.88I-9.955J-.952,G03X-28.452I-30.952J-197.59,G02X-39.922Y-48.75I-1.548J9.88,G03Y-11.25I-148.823J18.75,G02X-27.969Y-.208I9.922J1.25,G03X2.5Y-3.336I30.469J146.872,X13.991Y2.023I0.J15.,G40G01X2.5Y26.664,下面为铣外形的一段程序,采用刀具半径补偿,宏程序示例,编程思路:利用,G10,指令修改刀具半径偏置值来实现倒圆角。,G10,格式为,G10L12P1R,,,其中,,P1,表示修改,D01,R,后为刀具半径偏置值。,设定倒角的圆心角为变量,#1,,取值范围为,0-90,设定,#2,为刀具半径偏置值,取值,=,COS#1*15-5,设定,#3为,Z,值,取值,=,SIN#1*5+10-5-10,中国数控信息网欢迎您,宏程序示例,M03S3000,G00G90G54Z100.,#1=0,X2.5Y26.64,Z5.,WHILE #1 LE 90 DO1,#2= COS#1*15-5,#3= SIN#1*5+10-5-10,G10L12P1R#2,G01Z#3F900,G00X2.5Y26.664,G01G41D01X-8.991Y2.023,G03X2.5Y-3.336I11.491J9.641,X32.969Y-.208I0.J150.,G02X44.955Y-10.952I2.031J-9.792,G03Y-49.048I199.09J-19.048,G02X33.452Y-59.88I-9.955J-.952,G03X-28.452I-30.952J-197.59,G02X-39.922Y-48.75I-1.548J9.88,G03Y-11.25I-148.823J18.75,G02X-27.969Y-.208I9.922J1.25,G03X2.5Y-3.336I30.469J146.872,X13.991Y2.023I0.J15.,G40G01X2.5Y26.664,#1=#1+5,END1,G00Z100.,M30,宏程序示例(铣圆),#1=,圆心坐标,X,值,#2=,圆心坐标,Y,值,#3=,园孔最终,Z,值,#4=,圆孔直径,#5=,刀具直径,#6=#4+#5/4 (,进刀半径,),#7=#3+50,(进刀高度),#8=#1+#4/2-#6,(进刀圆弧起点,X,值),#9=#2-#6,(进刀圆弧起点,Y,值),#10=#1+#4/2 (,铣圆起点,X,值),#11=-#4/2 (,I,矢量,),#12=#2+#6(,退刀圆弧,Y,值),M03S1000,G00G90G54G43H01Z100.,X#1Y#2,Z#7,G01Z#3 F100,G41D02X#8Y#9,G03X#10Y#2R#6,G03X#10Y#2I#11J0,G03X#8Y#12R#6,G01G40X#1Y#2,G00Z100.,M30,宏程序示例(铣球),#1=球心坐标X值,#2=球心坐标Y值,#3=球孔最终Z值,#4=,球的半径,#5=,球的高度,#6=Z向排刀增量,#7=,刀具直径,#8=,刀具圆角,#9=#4+#5/2+2,#10=0,M03S1000,G00G90G54G43H01Z100.,G00X#9Y#2,Z50.,N20 G01Z#10F100,#12=#4+#8*#4+#8,#13=#10-#3+#8*#10-#3+#8,#11=SQRT#12-#13+#7/2-#8,G01X#1+#11Y#2,G03I-#11J0,#10=#10+#6,IF #10 LE #5 GOTO 20,G00Z100.,M30,
展开阅读全文