FANUC系统宏程序基础讲解

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
• 举例: • #1=0 • N10 G0 X 100. Z 0; 若条件满足转移到此程序段中) • … (程序部分) • IF [#1 LE 10] GOTO10;若条件不满足执行下面程序 • G0 X 50. Z50.;
(3)循环指令:
WHILE[条件表达] DO1;
当条件表达式满足时,循环标有END1之间的程序, 如果表达式不满足时,不做循环,执行END1之后的 程序。
• (2)有条件转移: • IF [条件表达] GOTO10; • 当指定的条件表达式满足时,转移到标有顺序号N
的程序段,如果指定的条件表达式不满足时,执行 下个程序段。
• IF [#1 LE 1] GOTO1;如果条件满足,#1小于或等
于1的话,那么就转移到标有N1的程序段中,如果 条件不满足,程序往下执行,不进行转移.
书中常说——宏程序是手工编程的堡垒
宏程序的分类
▪ 宏程序分为A类和B类宏程序
▪ A类宏程序属于老系统所使用,由于编程比较麻 烦,慢慢的已被淘汰。但目前部分的国产系统仍 使用A类宏程序,如GSK、KND系统等。
▪ B类宏程序因其编程简捷直观,目前被广泛使用。
▪ 本章主要以介绍B类宏程序为主,A类宏程序只做 简单了解。
FANUC系统宏程序基础知识
编制: 姜仁义
宏程序简介
在数控编程中,利用宏程序能让程序变得灵活、简洁。宏程序与普通 的程序不同就在于它可以进行数值计算、逻辑判断、系统控制等。宏 程序主要针对复杂零件的加工,如:曲面、曲线、型腔、固定循环等。
针对某些零件利用宏程序可以把几十条甚至上百条的程序简化成几句 程序。在当今自动编程软件日益流行之际,人们觉得手工编程似乎显 得“无用武之地”,但是针对某些特殊零件的加工,宏程序还是它有 一定的优势,也是自动编程所无法替代的,所以说宏程序在我们工作 当中还是起着很重要的作用。
例题二
根据上题利用宏程序完成由粗到精的加工,毛坯直径为Ф225,每次粗车3mm,精车留量1mm; O1234; M3 S200 T101; G0 X230.; Z2.; #1=1(精车次数); #101=222(留量); #102=-300(加工长度); N10WHILE[#101GE200]DO1; G0 X#101; G1 Z#102 F0.25; G0 U5. Z2.; #101=#101-3(每次粗车3mm); END1; #101=200(精车最终尺寸); #1=#1-1(精车控制); IF[#1EQ0]GOTO10; G0 X300. Z300.; M30;
1. FANUC系统变量号为#表示。
#1~#33为局部变量,局部变量只能用在宏程 序中存储数据,例如运算结果。当断电时局 部变量被初始化为空,调用宏程序时自变量 对局部变量赋值。
#100~#199为公共变量,当系统断电后初始化 为空。
#500~#999为公共变量,当系统断电后数据被 保存,不丢失。
抛物线加工
G1 X 0 Z 0 F0.3; #1=0; #2=0; WHILE[#1 LE 12] DO1; G1X#1*2Z#2; #1=#1+0.5; #2=-#1*#1/12;
O9001;
G0 X#1;(此时X值为100)
G1 X#2 ;(此时X值为200)
G1 Z#3 ;(此时Z值为300)
M99;
例题一
利用宏程序加工一件直径为200,长度为300的轴,要求:只 走一刀精车;
O1234; M3 S200 T101; #101=200; #102=-300; G0 X#101; Z2.; G1 Z#102 F0.2; G0 X300. Z300.; M30;
#1000以上为系统变量(如读取刀偏、系统年 份时间修改、单段及倍率的控制等)
2. 常用的运算符号及功能:
运算符号
含义
EQ
等于
NE
不等于
GT
ຫໍສະໝຸດ Baidu大于
GE
大于或等于
LT
小于
LE
小于或等于
❖ 功能 ❖ 正弦 ❖ 余弦 ❖ 正切 ❖ 绝对值 ❖ 平方根 ❖ 舍入 ❖ 上取整 ❖ 下取整
格式 SIN COS TAN ABS SQRT ROUND FIX FUP
G0 X300.;
M30;
被调用的宏程序:
O9001;
G0 X#1;(此时X值为100)
G1 X#2 ;(此时X值为200)
G1 Z#3 ;(此时Z值为300)
M99;
宏程序模态调用:
G66 P9001 A100 B200 C300 ;
G0 X300.;
G0 X400.;
G67;
M30;
被调用的宏程序:
WHILE[#2GT10] DO1; 当#2大于10的话,循环到 END1之间的程序,当条件不满足时,结束循环,程 序往下执行。循环最多可以3级嵌套。
举例:
#100=10;
WHILE[#100GT0] DO1;(条件满足时执行此程序
段到END1之间的程序)
…(程序部分)
END1; (条件不满足执行下满的程序)
G0 X 100.;
关于循环控制的注意事项
G65 宏程序非模态调用
格式:G65 P_ X_ Z_ A_ B_ C_ ; G65为自变量,直接对相对应的变量号赋 值,被调用的程序内无需再赋值, P表示被 调用的程序号。,X对应#24,Z对应#26, A对应#1,B对应#2,C对应#3。被调用 的程序最多可以4级嵌套,被调用的程序可 以再执行程序调用。被调用的程序结束符 为M99。
计算数值或条件表达必须用方括号括上
❖ 如:X[2+3]; ❖ X[#1+#2];
如取负值负号应放在括号前面 Z-[3+1];
如先算加减后乘除应表示为 X[[20+40]/[10-3]];
条件表达和循环
❖ (1)无条件转移: ❖ GOTON;N为要转移的程序段。 ❖ GOTO10表示转移到N10段的程序。
G66 宏程序模态调用
格式相同,但不同于G65的是G66为模态 调用,当执行完被调用的程序,返回到主 程序时,若主程序段出现轴移动,如G0或 G1,那么它执行完轴移动后再去调用宏程 序,直到主程序中出现G67,才能停止调用。
G67 取消宏程序模态调用
宏程序非模态调用:
G65 P9001 A100 B200 C300 ;
相关文档
最新文档