
《发那科宏程序》PPT课件.ppt
48页用户宏程序,*,BEIJING,-,FANUC,用户宏程序,用 户 宏 程 序,用户宏程序,一、,变量,二、运算指令,三、控制指令,四、简单练习,五、系统变量,六、宏程序调用,主要内容:,用户宏程序,主程序,宏程序,下一页,用户宏程序,宏程序的,适用范围:,形状类似但大小不同(圆、方及其它),其它,自动化功能(刀具长度测量、生产管理等),特殊形状(椭圆、球等),大小相同但位置不同(组孔、阵列等),上一页,用户宏程序,宏程序,与子程序的比较:,宏程序,子程序,使用变量,可使用变量,不可以使用变量,调用方式,G65 P,_,L,_,;,M98 P,_ _,;,调用行有其它,NC,指令时,无条件调用,先执行,NC,指令,再调用子程序,嵌套,4,重,4,重,用户宏程序,宏程序,相关的参数,#5(SBM),用户宏程序语句中,,0:,单程序段不停止,1:,单程序段停止,#6(CCV),复位(,Reset,)后,公共变量,#100#1990:,清空,1:,不清空,#7(CLV),复位(,Reset,)后,局部变量,#1#33 0:,清空,1:,不清空,用户宏程序,#4(NE9),编辑程序号为,90009999,的程序,0:,不禁止,1:,禁止,#6(NPE),程序登录时,对含有,M02,M99,M30,的程序段,0:,视为登录结束,1:,不视为登录结束,用户宏程序,变量的种类,变量的显示与设定,变量的使用,未定义变量,一、变量,用户宏程序,1.,变量的种类,例:,#10,,,#1005,表达式,也可以用于指定变量号,需封闭在括号中。
例:,#2-1,,,#500/2,可在程序段结尾加,注释,说明变量内容,需用括号封闭例:,#2=#3-1(TOOL NUMBER);,变量符号(,#,),+,变量号,变量的表示,用户宏程序,变量号,变量类型,用 途,#0,空变量,总为空,#1#33,局部变量,只能用在当前宏程序中存储变量,,断电后数据初始化,#100#199,#500#999,公共变量,在不同的程序中意义相同,各宏程序公用断电后,#100#199,初始化为空,,#500#999,数据保存,#1000,系统变量,可用于读写,CNC,运行时的各种数据,变量的种类,用户宏程序,正 值,+10,-29,+10,47,0,0,负 值,-10,-29,-10,47,变量的范围,用户宏程序,2.,变量的显示与设定,变量的显示,1.,按下,MDI,面板上的功能键,OFFSET,SETTING,2.,按几次 键,直至出现,用户宏程序,3.,按下 显示宏程序变量值,用户宏程序,4.,按 、显示局部和公共变量值,用户宏程序,公共变量的设定,1.,找到显示公共变量的画面2.,将光标移至欲设定的变量号上键入变量号并按 键,按换页键 、和光标键将光标移至欲设定的变量号上,3.,键入数据并按,用户宏程序,3.,变量的使用,#i =,将计算结果赋值给对应的变量号,常数、变量、函数和运算符的组合,表示方法,#1=#2+100;,#1=#2+#18,SIN#5;,用户宏程序,变量的定义,当在程序中定义变量值时,小数点可以省略,#1=123,;,#1,123.000,变量的引用,跟在地址后面的数值可用变量来代替。
G01 X10.0 F#1,;,F,把,#1,值作为,F,的指令值,G01 X-#1+#2 F#1,;,把表达式放在括号中,用户宏程序,把变量用于地址数据的时候,被引用变量的值,根据地址的最小设定单位自动地四舍五入,G01 X#1;,当,#1,赋值为,12.3456,时,实际指令值为,G01 X12.346;,改变引用变量的值的符号,要,把负号放在,#,的前面,G00 X-#1;,用户宏程序,当引用未定义的变量时,,变量及地址字都被忽略,G00 X#1 Y#2;,当,#1=0,,,#2,为空时,,G00 X0;,程序号、顺序号,和,任选程序段跳转号,不能使用变量,O#1;,N#3 Y200.0;,/#2 G00 X10.;,用户宏程序,4.,未定义变量,当变量值未定义时,这样的变量成为,变量,变量,#0,总是空变量,它不能写只能读,未定义变量的引用,当引用一个未定义的变量时,地址本身也被忽略,当,#1=,时,当,#1=0,时,G90 X100 Y#1,G90 X100,G90 X100 Y#1,G90 X100 Y0,用户宏程序,未定义变量的计算,除了用,赋值以外,其余情况下,与,0,相同,当,#1=,时,当,#1=0,时,#2=#1,#2=,#2=#1,#2=0,#2=#15,#2=0,#2=#15,#2=0,#2=#1+#1,#2=0,#2=#1+#1,#2=0,用,赋值,用户宏程序,条件表达式,EQ,和,NE,中的,不同于,0,当,#1=,时,当,#1=0,时,#1 EQ#0,成立,#1 EQ#0,不成立,#1 NE 0,成立,#1 NE 0,不成立,#1 GE#0,成立,#1 GE#0,成立,#1 GT 0,不成立,#1 GT 0,不成立,用户宏程序,示例,用户宏程序,二、运算指令,运算命令的种类,运算顺序,用户宏程序,种 类,符 号,格 式,加法,+,#i=#j+#k,减法,-,#i=#j-#k,乘法,#i=#j,#k,除法,/,#i=#j/#k,1.,运算命令的种类,加减乘除,用户宏程序,种 类,函数名,格 式,下取整,FIX,#i=FIX#k,上取整,FUP,#i=FUP#k,四舍五入,ROUND,#i=ROUND#k,绝对值,ABS,#i=ABS#k,下取整,(FIX),:舍去小数点以下部分,上取整,(FUP),:将小数后部分进位到整数部分,数据处理,用户宏程序,运算指令,#2=,1.234,时,#2=,-1.679,时,#1=FIX#2,#1=FUP#2,#1=ROUND#2,#1=ABS#2,1.0,2.0,-1.0,-2.0,1.0,1.234,-2.0,1.679,计算相应的变量值,#1,下取整,(FIX),:舍去小数点以下部分,上取整,(FUP),:将小数后部分进位到整数部分,用户宏程序,种 类,符 号,格 式,结果,正弦,SIN,#i=SIN,c/a,余弦,COS,#i=COS,b/a,正切,TAN,#i=TAN,c/b,反正弦,ASIN,#i=ASINc/a,反余弦,ACOS,#i=ACOSb/a,反正切,ATAN,#i=ATANc/b,三角函数的角度单位为,度,。
如:,9030,表示为,90.5,三角函数,用户宏程序,反三角函数的取值范围,函 数,No.6004#0=0,No.6004#0=1,ATAN,0360,-180+180,ASIN,27090,-9090,ACOS,1800,#1=SIN90;,#1=COS90;,#1=TAN45;,#1=ATAN1/1;,#1=ATAN-1/-1;,1,0,1,123.000,123.000,#1,#1,#1,#1,#1,用户宏程序,其它函数,种 类,函数名,格 式,平方根,SQRT,#i=SQRT#k,自然对数,LN,#i=LN#k,指数函数,EXP,#i=EXP#k,#2=2;,#1=SQRT#2;,1.414,#1,用户宏程序,逻辑运算,种 类,名称,格 式,或,OR,#i=#j OR#k,异或,XOR,#i=#j XOR#k,与,AND,#i=#j AND#k,对,32,位的每一位按二进制进行逻辑运算,输入值,或,异或,与,0,0,0,0,0,0,1,1,1,0,1,0,1,1,0,1,1,1,0,1,用户宏程序,十进制,二进制,#2,21,00010101,#3,12,00001111,#1=#2,OR,#3,#1=#2,XOR,#3,#1=#2,AND,#3,29,25,4,00011101,00011001,00000100,从,BCD,转为,BIN:,#i=BIN#j;,从,BIN,转为,BCD:,#i=BCD#j;,用户宏程序,2.,运算顺序,函数,乘除运算(,,/,,,AND),加减运算,(+,-,OR,XOR),#1=#2+#3,SIN#4,;,用户宏程序,可以利用,来改变运算顺序,可,嵌套,5,次,可以使用函数名,前面的两个字母,来指定该函数。
ROUNDRO,FIXFI,用户宏程序,三、控制指令,GOTO,语句,IF,语句,WHILE,语句,用户宏程序,1.,无条件转移(,GOTO,语句),GOTO n,;,n,:程序段号(,1-99999,),无条件地转移到程序段,n,去n,也可用变量或表达式来代替,GOTO 10,;,GOTO#10,;,用户宏程序,IF GOTO n,;,若满足,,下步操作转移到程序段号为,n,的程序段去若不满足,执行下个程序段2.,条件转移(,IF,语句),IF THEN ,;,若满足,,执行,THEN,后的宏程序语句,只执行一个语句IF#1 EQ#2 THEN#3=0,;,用户宏程序,条件表达式,条件不满足时执行的操作,条件满足时,是,否,IF,GOTO,上一页,用户宏程序,常用格式,(当前值),=,(初值);,WHILE,(当前值)比较(目标值),DO m;,(执行循环操作);,(当前值),=,(当前值),1,;,ENDm;,用户宏程序,四、简单练习,深孔加工,铣圆内腔,粗车外圆,数据计算,用户宏程序,#26=-30.0;,#17=-10.0;,#1=0;,#2=0;,#3=0;,WHILE#1 GT#26 DO1;,#1=#1+#17;,IF#1 GE#26 GOTO1;,#1=#26;,G00 G90 Z#2+#3;,G01 Z#1 F300;,G00 Z0;,#2=#1;,#3=1.0;,END1;,N1,钻孔最终深度赋值,每次钻孔深度赋值,当次钻孔深度坐标初始化,前次钻孔深度坐标初始化,计算当次钻孔深度坐标,记录当次钻孔深度,与最终钻孔深度比较,钻孔深度空程量初始化,钻孔深度空程量赋值,用户宏程序,O9999;,#1=500;,WHILE#1 LE 507 DO1;,#1=#0;,#1=#1+1;,END1;,M30;,O9999;,#1=0;,WHILE#1 LE 9 DO1;,#500+#1=SIN#1*10;,#1=#1+1;,END1;,M30;,将,#500#507,的值设为,计算,SIN0SIN90,的值并赋值给,#500#509,用户宏程序,O9999;,#1=501;,#506=#500;,WHILE#1 LE 505 DO1;,IF#506 GT#1 GOTO1;,#506=#1;,N1#1=#1+1;,END1;,M30;,O9999;,#2=501;,WHILE#2 LE 505 DO2;,#1=#2;,#506=#2-1;,WHILE#1 LE 505 DO1;,IF#506 GT#1 GOTO1;,#506=#1;,#1=#2-1;,#2-1=#506;,#1=#1+1;,END1;,#2=#2+1;,END2;,M30;,N1,用户宏程序,时间信息,变量号,单位,功 能,赋值,#3001,毫秒,计时器。
电源接通时复位为,0,可以,#3002,小时,计时器循环启动灯亮时开始计时即使在断电时也保存该值,可以,#3011,年月日,读取当前的日期1999,年,12,月,31,日,19991231,不可,#3012,时分秒,读取当前的时间下午,3,点,34,分,56,秒,153456,不可,示 例,用户宏程序,#3004,进给暂停,进给速度倍率修调,准确停止,0,1,2,3,4,5,6,7,:有效,:无效,示 例,用户宏程序,SETTING,值,变量号,功能,赋值,#3005,设定数据,可以,用户宏程序,镜向,变量号,功能,赋值,#3007,使用外部开关或,SETTING,操作设置的各轴镜像状态可以通过输出信号,镜像检测信号读出,不可,用户宏程序,加工零件数,变量号,功 能,赋值,#3901,已加工零件数,可以,#3902,所要求的零件数,可以,。












