《FANUC用户宏程序学习教程.docx》由会员分享,可在线阅读,更多相关《FANUC用户宏程序学习教程.docx(8页珍藏版)》请在优知文库上搜索。
1、用户宏程序宏程序是指含有变成的子程序,在程序中调用用户宏程序的那条指令叫做用户宏指令(这里用G65)】、变量用一个可赋值的代号代替详细的坐标值,这个代号称为变埴。变量分为系统变量:、全局变量和局部变量三类,它们的性质和用途个不相同。(1)系统变量是固定用途的变量,它的值确定了系统的状态。FANUC中的系统变量为#1000#1005、#1032、#3000等。(2)全局变量是指在主程序内和由主程序调用的各用户宏程序内公用的变量。FANUC中的全局变量有60个,它们分两组,一组是#100#149;另一组是#500#509。(3)局部变量是仅局限于在用户宏程序内运用的变量。同一个局部变量在不同的宏程
2、序内的值是不通用的。FANUC中的局部变量有33个,分别为#1#33。表】FANUC系统中局部变量赋值(部分)比照表赋值代号变量号赋值代号变量号赋值代号变量号A#1E#8T#20B#2F#9U#21C#3H#11V#22I#4M#13W#23J#5Q#17X#24K#6R#18Y#25D#7S#19Z#262、变成的演算(1)加减型运算加减型运算包括加、减、逻辑加和排它的逻辑加。分别用以卜四个形式表达:# i=#j+#k# i=#j-#k# i=#jOR#k# i=#jXOR#k式中,i、j、k为变量;+、一、OR、XoR称为为演算子。(2)乘除型运答乘除型运算包括乘、除和逻辑乘。分别用以卜形
3、式表达:# i=#j*#k# i=#j/#k# i=#jAND#k4 .变量的赋值由于系统变址的赋值状况比较困难,这里只介绍公共变肽和局部变量的赋值。变量的赋值方式可分为干脆和间接两种。(1)干脆赋值例:#1=115(表示将变量115赋值于#1变地)#100=#2(表示将变破#2的即时值赋于变#100)(2)间接赋值间接赋值就是用演算式赋值,即把演算式内演算的结果赋给某个变成。在演算式中有自变后代号,自变后每得到一个即时值,相应就得到一个演算结果,该结果就赋值给变地,该变量也叫应变量。5 .转向语句转向语句分为无条件转向语句和条件转向语句两种。(1)无条件转向语句程序段格式:GOTON_其中N
4、后面的数值为程序段号。例如:GOTO55;表示无条件转向执行N55程序段,向不论N55程序段在转向语句之前还是之后。(2)条件转向语句条件转向语句一般由推断条件式和转向目标两部分构成。程序段格式:IFIaGTblGOTOc;表示为“假如ab,那么转向执行第NC句程序段,a和b可以是数值、变侬或含有数值与变星的算式,C是转向目标的程序段。大于、等于、大于等于、小于等于分别用GT、EQ.GEx1.E表示。三、用户宏程序的应用下面就以椭圆为例,介绍宏程序间接赋值法的应用。1、椭圆的中心偏离工件原点一个Z向距离如下图是一个椭圆,椭圆的中心偏离工件原点一个Z向距离W=40,欲车削1/4椭圆(图中粗线部分
5、)的回转轮廓线,要求在数控程序中用随意一点D的Z值(用#3号变盘指定)来表达该点的X值(用#5号变量指定),由此可知,这里是以Z作为自变埴,以X作为应变最。依据椭圆的方程即可以写出自变最Z与应变地X之间的关系表达武。那么,假如我们在Z向分段,以0.5mm为一个步距给Z赋值,就可以得到相应的一个X值。然后把所得各个点的坐标值用直线插补方式来靠近,就可以得到椭圆的近似轨迹。步距取的越小,所得的轨迹就越接近椭圆。如F图所示椭圆方程为:(式中X为半径值)X2,Z2v+-=180依据公式可得:(式中X值为直径值)X二2aTFT用宏参数间接赋值状况为:#1=40(长半轴);#2=24(短半轴);#3=40
6、(起点A的Z坐标);#6=8(终点B的Z坐标);#7=0.5(Z变量步距);#5=X(应变凿)则演算式为:#5=(#2+#2*SQRT11#3*#3)/(#1*#1)2、编制数控加工程序分析编程时存在的问题(1)由于工件坐标系和椭圆的坐标系不重合,Z向偏底的距尚为W=40,所以在编程时,直线插补中点的Z坐标须耍进行相应的坐标变换。变换公式为:Z=#3-4O;(2)假定毛坯直径为500则可得该椭圆加工的最大切削余减为50(#100全同变量:指定),选定粗车循环时每刀切削双边余属2mm,留精加工余成Imrrio(3)由于椭圆上最高点的直径为48,而粗车循环时,可能存在空走刀状况,所以可用宏程序条件
7、转向语句限制空走刀,即:假如计算得到X值大于等于48,则不加工椭,返回重新推断计克。编程如下:(FANUC-Oi系统)OoOo1;(主程序)NloG97G99;(设定主轴转速为rmin,进给量为mmr)N20TOlOlS800M03;(选1号粗车外圆刀,主轴800rmin,正转)N30GOOXlOOZlOO;(快速进刀到换刀点)N40G00X52Z2;(快速进刀到循环加工起点)N50#100=50;(设置最大切削余量为50)N60G65P000240B24C40D8KO.5;(调用椭圆力口工宏程序)N70#100=#100-2;(每次切削深度双边2mm)N80IF#100GE1GOTO60;(
8、推断毛坯余St是否大于等于1)N90IF(#100GEO)GOTO100;(推断毛坏余量是否大于等于0)NlOOGoOX100;(快速退刀到换刀点)NllOZ100;N120T0202;(选2号精车外圆刀,与调用其刀具补偿值)N130G96S120M03;(改用恒线速切削,主轴120mmin,正转)N140G00X52Z2;(快速进刀到循环加工起点)N150#100=0;(设置切削余量为0)N160G65P0002A40B24C40D8K0.5;(调用椭网加工宏程序)N170GOOXlOO;(快速退刀到换刀点)N180ZlOO;N190M30;(程序结束)OoOO2;(宏程序)NlO#5=(#2+#2)*SQRT1(#3*#3/I#l*#l);(X轴应变量计算式)N20IF|#5+#100GE48GOTO60;(假如X直径大于N30GOlX(#5+#100Z(#3-40)F0.06N40#3=#3-#6;0.5mm)N50IF#3GE#7GOTO10;终点)N60GOlW-l;lmm)N70GOOU5;N80Z2;面2mm处)N90M99;等于48,转向执行N60程序段);(椭圆插补)(Z向步距,每次(推断Z向是否走到(Z负向直线插补(X向退刀5mm)(Z向退刀到离开端(宏程序结束,返回主程序)