第三章第三节数控镗铣加工及手工编程8.ppt
宏程序宏程序学习目的和要求:1、了解并掌握FANUC-0i 系统的宏程序编制方法。学习重点:变量的表示及运算、功能语句、宏程序及调用。用户宏程序 能完成某一功能的一系列指令像子程序那样存入存储器,用一个总指令来调用它们,使用时只需给出这个总指令就能执行其功能。所存入的这一系列指令就是用户宏程序;调用宏程序的指令就是宏指令;特点;使用变量。一、变量的表示和使用(一)变量表示#I(I=1,2,3)或#例:#5,#109,#501,#1+#212 (二)变量的使用1.地址字后面指定变量号或公式 格式:#I#I 例:F#103,设#103=15 则为F15 Z-#110,设#110=250 则为Z-250 X#24+#18COS#12.变量号可用变量代替 例:#30,设#30=3 则为#33.变量不能使用地址O,N,I例;下述方法下允许 O#1;I#2 6.00X100.0;N#3 Z200.0;4.变量号所对应的变量,对每个地址来说,都有具体数值范围。例:#30=1100时,则M#30是不允许的5.#0为空变量,没有定义变量值的变量也是空变量。6.变量值定义程序定义时可省略小数点,例:#123=149变量的种类1.局部变量#1-#33 一个在宏程序中局部使用的变量例:A宏程序 B宏程序#10=20 X#10 不表示X20 断电后清空,调用宏程序时代入变量值。2.公共变量#100-#109,#500-#999 各用户宏程序内公用的变量 例:上例中#10改用#100时,B宏程序中的X#100表示X20#100-#109 断电后清空#500-#999 保持型变量(断电后不丢失)3.系统变量固定用途的变量,其值取决于系统的状态例:#2001值为1号刀补X轴补偿值#5221值为X轴G54工件原点偏置值 输入时必须输入小数点,小数点省略时单位为m二、运算指令 运算式的右边可以是常数,变量,函数,式子。式中#j,#k也可为常量 式子右边为变量号,运算式1.定义#i=#j2.算术运算加法:#i=#j+#k减法:#i=#j-#k乘法:#i=#j*#k除法:#i=#j/#k3、逻辑运算或:#i=#j OR#k异或:#i=#j XOR#k与:#i=#j AND#k4.函数正弦:#i=SIN#j反正弦:#i=ASIN#j余弦:#i=COS#j反余弦:#i=ACOS#j正切:#i=TAN#j反正切:#i=ATAN#j/#K平方根:#i=SQRT#j绝对值:#i=ABS#j四舍五入化整:#i=ROUND#j下取整:#i=FIX#j上取整:#i=FUP#j自然对数:#i=LN#j指数对数:#i=EXP#j 从BCD转为BIN(二进制):#i=BIN#j从BIN转为BCD:#i=BCD#j说明1、角度单位为度 90度30分为90.5度2、ATAN函数后的两个边长要用“/”隔开3、ROUND用于语句中的地址,按各地址的最小设定单位进行四舍五入例如:设#1=1.2345,#2=2.3456,设定单位1m。X-#1;X-1.235 X-#2;X-2.346 X#1+#2;X3.5804、取整后的绝对值比原值大为上取整,反之为下取整例:设#1=1.2,#2=-1.2时若#3=FUP#1时,则#3=2.0若#3=FIX#1时,则#3=1.0若#3=FUP#2时,则#3=-2.0若#3=FIX#2时,则#3=-1.05、指令函数时,可只写开头个字母例:ROUND-RO FIX-FI6、运算符的优先级函数-乘和除运算(*、/、AND)-L加和减运算(+、-、OR、XOR)例:#1=#2+#3*SIN#47、括号嵌套括号用于改变运算优先级,最多5级。例#1=SIN#2+#3*#4+#5*#6三、功能语句1、无条件转移GOTO语句-转移到有顺序号n的程序段格式:GOTO n ;n指行号例:GOTO 1 ;转移至第一行GOTO#10;转移至变量#10所决定的行2、条件转移(IF)(1)格式:IF GOTO n条件式:#j EQ#K 表示#j NE#K 表示#j GT#K 表示#j GE#K 表示#j LT#K 表示#j LE#K 表示如果指定的条件表达式满足时,转移到标有顺序号n的程序段;如果指定的条件表达式不满足时,则执行下一个程序段。例1:IF#1 GT 10 GOTO 100 。N100 G00 X10;例2:求1到10之和O9500;#1=0;#2=1;N1 IF#2 GT 10 GOTO 2;#1=#1+#2;#2=#2+1;GOTO 1N2 M30(2)格式:IF THEN说明:如果表达式满足,执行预先决定的宏程序语句,且只执行一个宏程序语句。例:IF#1 EQ#2 THEN#3=0表示如果#1和#2的值相同,0赋给#34、循环功能WHILE语句格式:WHILE DO m;(m=1,2,3)END m说明:在WHILE后指定一个条件表达式,当指定条件满足时,执行从DO到END之间的程序;否则,转到END后的程序段。例2:求1到10之和O0001;#1=0;#2=1;WHILE#2 LE 10 DO1;#1=#1+#2;#2=#2+1;END1M30四、宏程序程序示例O4023N1#1=#5043;将起点的Z坐标赋给#1备用N2 G02 Z#26 R#18 F#19;圆弧插补N3 G01 Z#1 F0.5;退刀N4 M99六、宏程序的调用1、M98调用2、G65调用(宏程序非模态调用指令)格式:G65 P-L-自变量地址说明:P为宏程序号。L为调用次数,缺省为1次。自变量地址为用户使用系统提供的自定义地址号表达的变量值。使用示例:。G01 X30 Z-10 F1;至宏程序起点G65 P4023 Z-30 R25 F0.15;表示调用子程序(O4023)1次,子程序中所用参数,如圆弧Z向终点坐标#26直接用Z地址赋值,半径参数#18直接用R地址赋值,进给字参数用#9赋值。七、宏指令示例程序 椭圆加工:G90方式分层粗加工-椭圆外形粗加工至余量-椭圆精加工。O0001N1 T0101;93度外圆车刀N2 G00 X60 Z0.5M03S800N3G90X50.5Z-39.8F0.3车削阶台椭圆外形粗加工N4 G00 X50N5#1=25N6#1=#-4N7#2=SQRT1600-2.56*#1*#1N8 G90X2*#1+0.5Z#2-40+0.2N9IF#1 GT 0 GOTO 6椭圆外形半精加工N10 G01 X0.5 Z0.2N11#1=0N12#1=#1+0.2N13#2=SQRTABS1600-2.56*#1*#1N14 G01 X2*#1+0.5Z#2-40+0.2N15 IF#1 LT 25 GOTO 12椭圆外形精加工N16 G01 Z0N17 X0N18#1=0N19#1=#1+0.05N20#2=SQRTABS1600-2.56*#1*#1N21 G01X2*#1Z#2-40 F0.15N22 IF#1 LT 25 GOTO 19N23 G01 Z-40N24 X61N25 G28 U0 W0N26 M30用宏程序编制如图所示抛物线Z=X2/8在区间0。16内的程序O0002N1#1=0;X坐标N2#2=0;z坐标N3 G92 X0 Z0N4 M03 S600N5 WHILE#1 LE 16 DO1N6 G01 X#1Z#2F100N7#1=#1+0.08N8#2=#1*#1/8N9 END 1N10 G00 Z0 M05N11 G00 X0