您好,欢迎访问三七文档
当前位置:首页 > 机械/制造/汽车 > 制造加工工艺 > FANUC宏程序详解
BEIJING-FANUC用户宏程序用户宏程序BEIJING-FANUC用户宏程序一、变量二、运算指令三、控制指令四、简单练习五、系统变量六、宏程序调用主要内容:BEIJING-FANUC用户宏程序主程序宏程序下一页BEIJING-FANUC用户宏程序宏程序的适用范围:形状类似但大小不同(圆、方及其它)其它自动化功能(刀具长度测量、生产管理等)特殊形状(椭圆、球等)大小相同但位置不同(组孔、阵列等)上一页BEIJING-FANUC用户宏程序宏程序与子程序的比较:宏程序子程序使用变量可使用变量不可以使用变量调用方式G65P_L_自变量赋值;M98P__;调用行有其它NC指令时无条件调用先执行NC指令,再调用子程序嵌套4重4重BEIJING-FANUC用户宏程序宏程序相关的参数#5(SBM)用户宏程序语句中,0:单程序段不停止1:单程序段停止#6(CCV)复位(Reset)后,公共变量#100~#1990:清空1:不清空#7(CLV)复位(Reset)后,局部变量#1~#330:清空1:不清空BEIJING-FANUC用户宏程序#4(NE9)编辑程序号为9000~9999的程序0:不禁止1:禁止#6(NPE)程序登录时,对含有M02,M99,M30的程序段0:视为登录结束1:不视为登录结束BEIJING-FANUC用户宏程序•变量的种类•变量的显示与设定•变量的使用•未定义变量一、变量BEIJING-FANUC用户宏程序1.变量的种类例:#10,#1005表达式也可以用于指定变量号,需封闭在括号中。例:#[#2-1],#[#500/2]可在程序段结尾加注释说明变量内容,需用括号封闭。例:#2=#3-1(TOOLNUMBER);变量符号(#)+变量号变量的表示BEIJING-FANUC用户宏程序变量号变量类型用途#0空变量总为空#1~#33局部变量只能用在当前宏程序中存储变量,断电后数据初始化#100~#199#500~#999公共变量在不同的程序中意义相同,各宏程序公用。断电后#100~#199初始化为空,#500~#999数据保存#1000~系统变量可用于读写CNC运行时的各种数据变量的种类BEIJING-FANUC用户宏程序正值+10-29~+104700负值-10-29~-1047变量的范围BEIJING-FANUC用户宏程序2.变量的显示与设定变量的显示1.按下MDI面板上的功能键OFFSETSETTING2.按几次键,直至出现BEIJING-FANUC用户宏程序3.按下显示宏程序变量值BEIJING-FANUC用户宏程序4.按、显示局部和公共变量值BEIJING-FANUC用户宏程序公共变量的设定1.找到显示公共变量的画面。2.将光标移至欲设定的变量号上。•键入变量号并按键•按换页键、和光标键将光标移至欲设定的变量号上3.键入数据并按BEIJING-FANUC用户宏程序3.变量的使用#i=表达式将计算结果赋值给对应的变量号常数、变量、函数和运算符的组合表示方法#1=#2+100;#1=#2+#18*SIN[#5];BEIJING-FANUC用户宏程序变量的定义•当在程序中定义变量值时,小数点可以省略#1=123;#1123.000变量的引用•跟在地址后面的数值可用变量来代替。G01X10.0F#1;F把#1值作为F的指令值G01X-[#1+#2]F#1;把表达式放在括号中BEIJING-FANUC用户宏程序•把变量用于地址数据的时候,被引用变量的值根据地址的最小设定单位自动地四舍五入G01X#1;当#1赋值为12.3456时,实际指令值为G01X12.346;•改变引用变量的值的符号,要把负号放在#的前面G00X-#1;BEIJING-FANUC用户宏程序•当引用未定义的变量时,变量及地址字都被忽略G00X#1Y#2;当#1=0,#2为空时,G00X0;•程序号、顺序号和任选程序段跳转号不能使用变量O#1;N#3Y200.0;/#2G00X10.;BEIJING-FANUC用户宏程序4.未定义变量当变量值未定义时,这样的变量成为空变量•变量#0总是空变量,它不能写只能读未定义变量的引用当引用一个未定义的变量时,地址本身也被忽略当#1=空时当#1=0时G90X100Y#1↓G90X100G90X100Y#1↓G90X100Y0BEIJING-FANUC用户宏程序未定义变量的计算除了用空赋值以外,其余情况下空与0相同当#1=空时当#1=0时#2=#1↓#2=空#2=#1↓#2=0#2=#1﹡5↓#2=0#2=#1﹡5↓#2=0#2=#1+#1↓#2=0#2=#1+#1↓#2=0用空赋值BEIJING-FANUC用户宏程序条件表达式指令意思#2EQ#1#2=#1#2NE#1#2≠#1#2GT#1#2#1#2LT#1#2#1#2GE#1#2≥#1#2LE#1#2≤#1BEIJING-FANUC用户宏程序条件表达式EQ和NE中的空不同于0当#1=空时当#1=0时#1EQ#0↓成立#1EQ#0↓不成立#1NE0↓成立#1NE0↓不成立#1GE#0↓成立#1GE#0↓成立#1GT0↓不成立#1GT0↓不成立BEIJING-FANUC用户宏程序二、运算指令•运算命令的种类•运算顺序BEIJING-FANUC用户宏程序种类符号格式加法+#i=#j+#k减法-#i=#j-#k乘法*#i=#j*#k除法/#i=#j/#k1.运算命令的种类加减乘除BEIJING-FANUC用户宏程序种类函数名格式下取整FIX#i=FIX[#k]上取整FUP#i=FUP[#k]四舍五入ROUND#i=ROUND[#k]绝对值ABS#i=ABS[#k]下取整(FIX):舍去小数点以下部分上取整(FUP):将小数后部分进位到整数部分数据处理BEIJING-FANUC用户宏程序运算指令#2=1.234时#2=-1.679时#1=FIX[#2]#1=FUP[#2]#1=ROUND[#2]#1=ABS[#2]1.02.0-1.0-2.01.01.234-2.01.679计算相应的变量值#1下取整(FIX):舍去小数点以下部分上取整(FUP):将小数后部分进位到整数部分BEIJING-FANUC用户宏程序种类符号格式结果正弦SIN#i=SIN[θ]c/a余弦COS#i=COS[θ]b/a正切TAN#i=TAN[θ]c/b反正弦ASIN#i=ASIN[c/a]θ反余弦ACOS#i=ACOS[b/a]θ反正切ATAN#i=ATAN[c]/[b]θ•三角函数的角度单位为度。如:90°30′表示为90.5三角函数BEIJING-FANUC用户宏程序•反三角函数的取值范围函数No.6004#0=0No.6004#0=1ATAN0~360-180~+180ASIN270~90-90~90ACOS180~0#1=SIN[90];#1=COS[90];#1=TAN[45];#1=ATAN[1]/[1];#1=ATAN[-1]/[-1];101123.000123.000#1#1#1#1#1BEIJING-FANUC用户宏程序其它函数种类函数名格式平方根SQRT#i=SQRT[#k]自然对数LN#i=LN[#k]指数函数EXP#i=EXP[#k]#2=2;#1=SQRT[#2];1.414#1BEIJING-FANUC用户宏程序逻辑运算种类名称格式或OR#i=#jOR#k异或XOR#i=#jXOR#k与AND#i=#jAND#k•对32位的每一位按二进制进行逻辑运算输入值或异或与00000011101011011101BEIJING-FANUC用户宏程序十进制二进制#22100010101#31200001111#1=#2OR#3#1=#2XOR#3#1=#2AND#329254000111010001100100000100从BCD转为BIN:#i=BIN[#j];从BIN转为BCD:#i=BCD[#j];BEIJING-FANUC用户宏程序2.运算顺序①函数②乘除运算(*,/,AND)③加减运算(+,-,OR,XOR)#1=#2+#3*SIN[#4];①②③BEIJING-FANUC用户宏程序•可以利用[]来改变运算顺序,可嵌套5次•可以使用函数名前面的两个字母来指定该函数。ROUND→ROFIX→FIBEIJING-FANUC用户宏程序三、控制指令•GOTO语句•IF语句•WHILE语句•BEIJING-FANUC用户宏程序1.无条件转移(GOTO语句)GOTOn;n:程序段号(1-99999)无条件地转移到程序段n去。•n也可用变量或表达式来代替GOTO10;GOTO#10;BEIJING-FANUC用户宏程序IF[条件表达式]GOTOn;•若满足条件表达式,下步操作转移到程序段号为n的程序段去。•若不满足,执行下个程序段。2.条件转移(IF语句)IF[条件表达式]THEN…;•若满足条件表达式,执行THEN后的宏程序语句,只执行一个语句。IF[#1EQ#2]THEN#3=0;BEIJING-FANUC用户宏程序条件表达式条件不满足时执行的操作条件满足时是否IFGOTO上一页BEIJING-FANUC用户宏程序常用格式(当前值)=(初值);WHILE[(当前值)比较(目标值)]DOm;(执行循环操作);(当前值)=(当前值)±1;ENDm;BEIJING-FANUC用户宏程序四、简单练习•深孔加工•铣圆内腔•粗车外圆•数据计算BEIJING-FANUC用户宏程序#26=-30.0;#17=-10.0;#1=0;#2=0;#3=0;WHILE[#1GT#26]DO1;#1=#1+#17;IF[#1GE#26]GOTO1;#1=#26;G00G90Z[#2+#3];G01Z#1F300;G00Z0;#2=#1;#3=1.0;END1;N1钻孔最终深度赋值每次钻孔深度赋值当次钻孔深度坐标初始化前次钻孔深度坐标初始化计算当次钻孔深度坐标记录当次钻孔深度与最终钻孔深度比较钻孔深度空程量初始化钻孔深度空程量赋值BEIJING-FANUC用户宏程序O9999;#1=500;WHILE[#1LE507]DO1;#[#1]=#0;#1=#1+1;END1;M30;O9999;#1=0;WHILE[#1LE9]DO1;#[500+#1]=SIN[#1*10];#1=#1+1;END1;M30;将#500~#507的值设为空计算SIN0~SIN90的值并赋值给#500~#509BEIJING-FANUC用户宏程序O9999;#1=501;#506=#500;WHILE[#1LE505]DO1;IF[#506GT#[#1]]GOTO1;#506=#[#1];N1#1=#1+1;END1;M30;O9999;#2=501;WHILE[#2LE505]DO2;#1=#2;#506=#[#2-1];WHILE[#1LE505]DO1;IF[#506GT#[#1]]GOTO1;#506=#[#1];#[#1]=#[#2-1];#[#2-1]=#506;#1=#1+1;END1;#2=#2+1;END2;M30;N1BEIJING-FANUC用户宏程序时间信息变量号单位功能赋值#3001毫秒计时器。电源接通时复位为0。可以#3002小时计时器。循环启动灯亮时开始计时。即使在断电时也保存该值可以#3011年月日读取当前的日期。1999年12月31日19991231不可#3012时分秒读取当前的时间。下午3点34分56秒153456不可示例BEIJING-FANUC用户宏程序#3004进给暂停进给速度倍率修调准确停止0○○○1×○○2○×○3××○4○○×5×○×6○××7×××○:有效×:无效示例BEIJING-FANUC用户宏程序SETTING值变量号功能赋值#3005设定数据可以BEIJING-FANUC用户宏程序镜向变量号功能赋值#3007使用外部开关或SETTING操作设置的各轴镜像状态可以通过输出信号镜像检测信
本文标题:FANUC宏程序详解
链接地址:https://www.777doc.com/doc-5540773 .html