FANUC宏程序讲解.ppt
.,宏程序讲解,用户宏程序 程序保护与快捷程序编辑 图形对话编程 Manual Guide i,交流内容,一、变量 二、运算指令 三、控制指令 四、系统变量 五、宏程序调用 六:典型应用举例,用户宏程序相关,主程序,宏程序,主程序和宏程序的关系,形状类似但大小不同(圆、方及其它),其它,自动化功能(刀具长度测量、生产管理等),特殊形状(椭圆、球等),大小相同但位置不同(组孔、阵列等),宏程序的适用范围,宏程序与子程序的比较,变量的种类 变量的显示与设定 变量的使用 未定义变量,一、变量,例:#10,#1005 表达式也可以用于指定变量号,需封闭在括号中。 例:#2-1,#500/2 可在程序段结尾加注释说明变量内容,需用括号封闭。 例:#2=#3-1(TOOL NUMBER);,变量符号(#)+ 变量号,变量的表示,1.变量的种类,变量的种类,1.变量的种类,变量的范围,1.变量的种类,1、按下 显示宏程序变量值,2.变量的显示,2.按 、 显示局部和公共变量值,# i = ,将计算结果赋值给对应的变量号,常数、变量、函数和运算符的组合,表示方法,#1= #2 + 100 ; #1= #2 + #18 SIN#5 ;,3.变量的使用,当在程序中定义变量值时,小数点可以省略,#1 = 123;,#1,123.000,变量的引用,跟在地址后面的数值可用变量来代替。,G01 X10.0 F#1;,F,#1,把#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.;,当变量值未定义时,这样的变量成为变量,变量#0 总是空变量,它不能写只能读,未定义变量的引用,当引用一个未定义的变量时,地址本身也被忽略,4.未定义变量,未定义变量的计算,除了用赋值以外,其余情况下与0 相同,用赋值,条件表达式,EQ和NE中的不同于0,条件表达式,二、运算指令,运算命令的种类 运算顺序,加减乘除,1.运算命令的种类,下取整(FIX):舍去小数点以下部分 上取整(FUP):将小数后部分进位到整数部分 ROUND函数:在算术运算或逻辑运算指令中使用时,在 第1个小数位置四舍五入,在NC语句地址中使用时,根据地 址的最小设定单位将指定值四舍五入,数据处理,1.运算命令的种类,三角函数的角度单位为度。如:9030表示为90.5,三角函数,1.运算命令的种类,其它函数,#2=2; #1=SQRT#2;,1.414,#1,1.运算命令的种类,逻辑运算,对32位的每一位按二进制进行逻辑运算,1.运算命令的种类,2.运算顺序, 函数 乘除运算( ,/,AND ) 加减运算(+, - , OR , XOR ),#1=#2 + #3 SIN#4;,2.运算顺序,可以利用 来改变运算顺序,可嵌套5次,可以使用函数名前面的两个字母来指定该函数。 ROUNDRO FIXFI,无条件转移(GOTO 语句) 条件转移(IF 语句) 循环(WHILE 语句),三、控制指令,GOTO n; n:程序段号(1- 99999),无条件地转移到程序段n去。,n也可用变量或表达式来代替 GOTO 10; GOTO #10;,1.无条件转移(GOTO 语句 ),IF GOTO n;,若满足,下步操作转移到程序段号为n的程序段去。 若不满足,执行下个程序段。,IF THEN ;,若满足,执行THEN后的宏程序语句,只执行一个语句。 IF#1 EQ #2 THEN #3=0;,2.条件转移(IF 语句 ),#j 和 #k 也可用来代替。,条件表达式,2.条件转移(IF 语句 ),WHILE DO m; (m=1,2,3),条件成立时执行的程序,END m;,DO m和 END m必须成对使用,并以 其中的m作为识别号相互识别。 m的范围为1,2,3。可以根据需要多次使用。,3.循环(WHILE 语句 ),END1; 程序 WHILE DO 1;,DO的区域不能交叉,DO 一定要在END之前规定,识别号( 1,2,3)可多次使用,3.循环(WHILE 语句 ),可以从DO区域的内部向外部转移,不可以从DO区域的外部向内部转移,DO 循环可以嵌套3级,3.循环(WHILE 语句 ),常用格式,(当前值)=(初值); WHILE (当前值)比较(目标值) DO m; (执行循环操作); (当前值)=(当前值)1; ENDm;,3.循环(WHILE 语句 ),四、系统变量,刀具补偿值 CNC报警 时间信息 模态信息 位置信息 工件零点偏移,1.刀具补偿值,表达式后为不超过26个字符的报警信息 屏幕上显示报警号和报警信息,报警号为#3000的值加上3000,#3000=1 (WRONG DATA INPUT);,屏幕显示:,3001 WRONG DATA INPUT,例:,2.CNC报警,3.时间信息,当电源接通时,#3003的值为0 当单程序段停止无效时,即使操作面板上的单程序段开关设为ON,也不执行单程序段停止。 当不指定等待辅助功能M 、S 和T 功能完成时,在辅助功能完成之前程序执行到下列程序段而且分配完成信号DEN不输出,4.自动运行,5.SETTING值,6.镜像,7.加工零件数,8.模态信息,9.位置信息,10.工件零点偏移值,11.PMC信号,11.PMC信号,11.PMC信号,五、宏程序的调用,非模态调用G65 模态调用G66 G、M代码调用宏程序 M、T代码调用子程序,G65 Pp Ll 自变量赋值;,要调用的程序号,重复次数,用G65指令,把由P指令的宏程序体调用L次 L的缺省值为1 按照自变量赋值的规定,将自变量的实际数值调到相应的程序体中,1.非模态调用G65,有两种形式的自变量赋值规定:,自变量赋值 自变量赋值,自变量赋值,对字母A-Z后加数值来赋值,但G,L,N,O,P除外 I,J,K须按字母顺序指定,G65 P9003 X30. Y45. Z-3. F300;,#9= 300;,#24= 30.0;,#25= 45.0;,#26= -3.0;,自变量赋值,I,J,K的下标代表自变量赋值的顺序,在实际编程中不写,G65 P9999 A1.0 B1.3 C4.1 I100.0 J50.0 K30.0 I50.0 J30.0 K10.0 I40.0 J60.0 K30.0;,G65 P9999 J1.0 I2.0 K3.0 J4.0 I5.0;,#5(J1) =1.0;,#7(I2) =2.0; #9(K2) =3.0;,#11(J3) =4.0;,#13(I4) =5.0;,G66 Pp Ll 自变量赋值; ; ; G67;,每一轴移动指令调用一次宏程序,p:要调用的宏程序号 l:重复次数(默认值为1) G67:取消模态调用指令,2.模态调用G66,O0001; G66 P9100 L2 A1.0 B2.0; G00 G90 X100.0; Y200.0; X150.0 Y300.0; G67; M30;,O9100; G00 Z-#1; G01 Z-#2 F300; M99;,G指令调用,G65 P9010 X100. Y20. R3. Z-20. F300;,G81 X100. Y20. R3. Z-20. F300;,将宏程序调用指令G65 P901用G 来代替 宏程序号901与G代码之间的对应关系由参数指定 在被调用的宏程序中不能再使用G、M代码调用宏程序,程序体中的G、M代码作为普通的G、M代码处理,变量赋值,3.G、M指令宏程序方式调用,将参数No.6050设为81,G代码调用宏程序时:,M指令调用,G65 P9020 A1.0 B2.0;,M50 A1.0 B2.0;,将宏程序调用指令G65 P902用M 来代替 宏程序号902与M代码之间的对应关系由参数指定 在被调用的宏程序中不能再使用M、G代码调用宏程序,程序体中的M、G代码作为普通的M、G代码处理,变量赋值,将参数No.6080设为50,M代码调用宏程序时:,M指令调用,M98 P9001;,M03;,将子程序调用指令M98 P900用M 来代替 宏程序号900与M代码之间的对应关系由参数指定 在被调用的子程序中不能再使用G、M代码调用宏程序,程序体中的G、M代码作为普通的G、M代码处理,不能进行变量赋值,4.M、T指令子程序方式调用,将参数No.6071设为03,M代码调用子程序时:,T指令调用,当参数No.6001#5设为1时, 使用T代码可调用O9000程序, T代码所指定的数值自动赋值给变量#149,T代码调用O9000,T,刀具选择指令,六、应用举例,圆周等距钻孔 椭圆插补,圆周上等距钻孔,B,B,B,X:圆心坐标(#24) Y:圆心坐标(#25) Z:孔的深度(#26) R:钻孔初始高度坐标(#18) U:圆弧半径(#21) A:起始角度(#1) B:角度增量值(#2) H:孔的个数(#11) F:进给速度(#9),O9999; #30=#4001; #31=#4003; #32=#4109; IF#31 EQ 90 GOTO 1; #24= #24 + #5001; #25= #25 + #5002; #26= #26 + #5003; #18= #18 + #5003; N1 WHILE#11 GT 0 DO1; #5=#24 + #21*COS#1; #6=#25 + #21*SIN#1; G81 G90 X#5 Y#6 Z#26 R#18 F#9; #1= #1 + #2; #11= #11 - 1; END1; G80 G#30 G#31 F#32; M99;,O0001; G90 G92 X0 Y0 Z100.0; G65 P9999 X100.0 Y50.0 R3.0 Z-50.0 F300 U100.0 A0 B45.0 H5.0; M30;,#5:孔当前的位置 #6:孔当前的位置,O0001; G92 X0 Y0; G65 P9999 U100.0 R80.0 A1.0 F300; M30;,椭圆插补,O9999; #30=#4001; #31=#4003; #32=#4109; #5=#1; #24= #5001; #25= #5002; WHILE #5 LE 360 DO1; #2= #24 + #21*COS#5; #3= #25 + #18*SIN#5; G01 G90 X#2 Y#3 F#9; #5=#5+#1; END1; G#30 G#31 F#32; M99;,程序保护与快捷程序编辑,一、程序保护 二、常用快捷程序编辑,程序保护与快捷程序编辑,一、程序保护,PMC信号,一、程序保护,相关参数,一、程序保护,相关参数,一、程序保护,相关参数,二、常用快捷程序编辑,程序检索,程序号,程序号 【O检索】,程序删除,单独程序删除:程序号,程序全部删除:O-9999,二、常用快捷程序编辑,程序批量输出与读取,输出时:O-9999【输出】,读取时:O-9999【读取】,注:此时输出与输入的文件名为固定ALL-PROG.TXT,二、常用快捷程序编辑,程序扩展编辑功能,拷贝:【选择】【拷贝】目标位置【粘贴】,剪切:【选择】【剪切】目标位置【粘贴】,注:如果选择整个程序,可以使用全选择,无需结合,二、常用快捷程序编辑,FANUC MANUAL GUIDE i,MANUAL GUIDE i 有对程序的编辑和操作的引导功能,可完成程序的编辑、检测、准备以及加工现场的全部操作。,加工前准备,加工程序的 生成修正,加工程序的检查,实际加工,加工后测量,强大的程序编辑功能、循环加工的编程简化 缩短了编程时间,模拟3维实体模型的加工过程 方便程序的检查,加工前设定引导功能如测量头的使用、 刀具补偿测量、工件原点的测量 缩短加工准备时间,加工中的机械状态显示、刀具轨迹描绘 更方便的确认加工状态,后台编辑/加工模拟、 加工时可以同时编辑程序 工作效率得到提高,设定引导功能、工件在线测量引导功能 缩短了加工后的测量时间,MANUAL GUIDE i 的作用,什么是MANUAL GUIDE i ?,车床、加工中心及复合加工机床程序的程序的编辑、操作等内容都通过此画面进行操作和支持引导,综合操作画面 所有操作都集成在此画面上,CAD/CAM的高兼容性 可直接使用CAD/CAM生成的ISO代码体系程序。所以可以被正常读入、并进行加工模拟和检查,编程的简化 基于ISO代码格式、复杂加工循环可通过菜单形式简单输入,机床状态的简单确认 当前位置、进给速度、主轴转速、负载表等重要内容的显示,竖排软键操作 (Series 30i /31i /32i ) 经常使用的按键显示在竖排软键上可实现自定义功能设定的操作,方便的菜单选择 菜单以图标形式表示、可方便直观的选择,加工程序的确认 可进行3维模型加工的模拟,CAD/CAM,MANUAL GUIDE i 的特点,车削加工和铣削加工的循环菜单,缩短编程时间、适于复合加工,车削循环,孔加工 棒料粗加工(包括预成型材料) 棒料精加工 螺纹加工(通用螺纹、公制螺纹等) 沟槽加工(普通沟槽梯形沟槽),铣削循环,孔加工(点群直线圆弧方形栅格) 平面加工(方形圆轨迹多边形任意形状) 轮廓加工(方形圆轨迹多边形任意形状) 型腔加工 (方形圆轨迹多边形任意形状) 沟槽加工(方形圆轨迹多边形任意形状),(车削循环输入画面),(铣削循环输入画面),循环加工功能,- 车削、铣削的加工状况可以通过3维模型仿真 - 可模拟斜面加工 - 可根据定义显示刀具形状 - 可以描绘刀具轨迹,机械加工程序检查时间缩短,(刀具轨迹描绘画面),(3维仿真画面),加工仿真功能,大大缩短了加工前准备时间,测头,刀具,刀具测量,工件,测头,工件在线测量,刀具补偿测量、工件中心设定、加工工件在线检测,自动设定工件坐标系原点的 测量结果,自动设定刀具补偿量的测量结果,强大的设定引导功能,适用的车床种类,立式加工中心,卧式加工中心,5轴 (3+2) 加工机床,复合加工机床(铣削加工车削加工),适用的加工中心种类,FANUC数控编程学习,谢 谢,