项目四非圆曲线加工
学习任务十三宏程序应用基础
学习目标
能够了解宏程序编程原理。
能够掌握变量含义及运算方法及功能语句的含义。
相关知识
1、变量
(1)定义:用可赋值的代号代替具体的数值,这个代号就称为变量。
(2)表示方法:FANUC系统变量用变量符号“#”和后面的变量号表示,变量号可用数字或表达式表示,当用表达式时,要将表达式放在括号中,例如,#1、#[#1+#2]、X[#1﹢#2]、X#[#1+#2]等,以下几点需要注意。
a.当在程序中定义变量值时,小数点及后面的零可省略。
b.被引用变量的值根据地址的最小设定单位自动舍入,例如:#1=12.3456,当机床精度为0.001时,X#1的值为12.346。
c.负号要放在“#?”前面,例如:G00 X‐#1。
d.当变量未定义时为空变量,当引用空变量时,变量及地址字都被忽略,例如:#1=0,#2未定义,则程序段“G00 X#1 Z#2”的执行结果为“G00 X0”。
e.变量“#0”总是空变量,只能读不能写。
(3)变量的类型
根据变量号可分为四种类型
表13—1 变量的类型
说明:系统变量用于读和写NC内部数据,其变量号和含义在一个系统中是一一对应的,有些可以读和写,有些只能读。
例如:#3002是时间信息系统变量,该变量为一个定时器,当循环启动灯亮时,以1小时为单位计时,它可以被读和写,例如#3002=0测表示定时器清零,可以重新开始计时。
#5041-#5043为位置信息的系统变量,表示包含刀具补偿值的当前位置。
例如:#1 = # 5043 . 表示将当前位置的Z坐标值赋给“#1”
G01 W-50 F0.1 表示从当前位置(起点)做Z向切削50mm长
G01 Z #1 切削退回起点
更多具体的参数含义请阅读系统的说明书。
2、变量的运算
⑴下表中的运算可在本系统的变量中被执行,“=”的用法是将其右侧的结果赋给左侧的变量。
⑵运算符解析
①上取整和下取整
当执行后产生整数的绝对值大于原数的绝对值时为上取整,若小于原数的绝对值为下取整。
例如:假定#1 = 1.2,并且#2= -1.2。
当执行#3 = FUP [#1] 时,2.0赋给#3。
当执行#3 = FIX [#1] 时,l.0赋给#3。
当执行#3 = FUP [#2 ] 时,-2.0赋给#3。
当执行#3 = FIX [#2 ] 时,-1.0赋给#3。
②舍入
a.当算术运算或逻辑运算IF或WHILE中包含ROUND时,则在第一个小数位置四舍五入。
例:当#2=1.2345 时,执行#1=RODND [#2 ]时,结果为#1=1.0。
b.当NC语句中使用ROUND时,根据地址的最小设定单位将指定值四舍五入。
例如#2= 1.2345(假定最小设定单位是0.001 )。
执行“G91G00 X- #2”时,快速移动距离为1.235mm
③运算次序
按照优先的先后顺序依次是括号、函数、乘除、加减,括号最多可使用5级,且只能用方括号,圆括号用于注释。
2、功能语句
数控程序的运行是按导入的顺序依次执行程序,要想改变其执行顺序,必须要通过一系列功能语句。
(1)无条件转移语句
GOTO n ;表示转移到顺序号为“n” 的程序段继续运行。
例如:N10 GOO X50.0 Z10.0;
N20 G01 X45.0 F0.2;
N30 G01 Z0.0;
N40 GOT0 20;
表示执行N40程序段时,程序无条件转移到N20程序段继续运行。
(2)条件转移语句
①IF [表达式] GOTO n
表示如果指定的条件表达式满足时,转到标有顺序号“n” 的程序段,如果不满足时,则执行下一个程序段。
<条件式>成立时,从顺序号为n的程序段以下执行;<条件式>不成立时,执行下一个程序段。
IF [#1 GT 50.0 ]GOTO 10; G0 X50.0 Z10.0;
┆
N10 G00 X100.0 Z100.0 ;
该语句中的条件表达式必须包括运算符,这个运算符插在两个变量或一个变量和一个常量之间,并且要用方括号封闭,常用<条件式>运算符见下表。
②IF [表达式] THEN (宏程序语句)
表示如果表达式满足时,则执行预先决定的宏程序语句,且只执行一个语句,表达式必须包括运算符。
例如IF [#1 EQ #2] THEN #3=0
表示如果 #1与 #2 值相等,则将O 赋给#3。
③常见的用于比较两个值大小的运算符
(3)循环功能语句
①格式 WHILE [表达式] DO
m (m=1,2,3) …………END m
…………
表示当指定条件满足时,执行从DO 到END 之间的程序,否则转到END 后的程序段。
②几点说明: a 、“m ”值是指定程序执行范围的标号,可根据需要多次使用,但其值只能取1,2,3。
b 、DO 循环可嵌套3级,但范围不能交叉。
c 、循环语句中可以用条件转移语句,并可以转移到循环之外,但条件转移语句的目标语句不能进入循环内部。
3、宏程序的含义 ⑴定义:含有变量运算或功能语句的程序称为宏程序。
也就是用一些变量代替一般程序中的常数值,这样就可以在程序中进行运算或应用一些功能语句,从而使可编程序的范围更大或用一个宏程序实现一类功能。
⑵分类
①A 类宏程序:用G65作为宏指令专用代码,H 代码表示变量运算及功能语句的一类宏程序。
②B 类宏程序:直接对变量进行赋值和运算及使用功能语句的一类宏程序。
条件成立
45钢,Φ50×100)
1
2、程序示例
O0130
N10 T0101 M03 S800
N20 G00 X50 Z1
N30 #1=48.5 将48.5赋给变量﹟1,作为变量的初值
N40 G90 X#1 Z-50 F0.2 以变量#1作为G90循环的X坐标值,Z坐标值不变(-50)N50 #1=#1-2 变量#1的值每次减去2,作为新的#1(G90循环的X坐标值)N60 IF[#1 GE 40.5] GOTO 40 若新的#1≧40.5,则执行N40程序段,以新的#1为X坐标
N70 G00 X40.5 执行G90循环(其中X坐标值分别为48.5,46.5,44.5,42.5,40.5)N80 #1=18 将18赋给变量﹟1,作为变量的初值(#1表示X轴坐标值)N90 #2=-#1 根据直线方程计算Z坐标值,用#2表示,(#1,#2)为该直
线上的任意点坐标
N100 G90 X[2﹡#1 +0.5 ] Z#2 G90循环的终点分别为(36.5,-18),(32.5,-16), (28.5,-14),
(24.5,-12)
N110 #1=#1-2 X轴等分间距为2。
(20.5,-10),(16.5,-8),(12.5,-6),(8.5,-4),(4.5,-2),(0.5,0)
N120 IF[#1 GE 0 ] GOTO 90 如果每次减去2得到新的#1值大于等于0,则返回N90程序段
执行
N130 G00 X-2 S1200
N140 G01 X40 Z-20 F0.1 精加工轮廓
N150 Z-50
N160 X51
N170 G00 X100 Z100
N180 M30
程序校验(用图形显示功能)、自动加工。
分析零件加工质量及其原因。
1
2、
A 类宏程序和
B 类宏程序是如何区分的?
3、假设#1=1.2345,,2=-1.2345,请写出下列各式的运算结果。
(1)#3=FUP [#1] (2)#3=FUP[#2] (3)#3=FLX[#1] (4)#
3=FLX[#2] 4、条件转移语句有哪两种形式?它们的使用方法有何异同? 5、请写出循环功能语句的格式及用法。
6、用变量和功能语句编程加工下图零件。
图13—2 功能语句编程加工练习图(例题件掉头)。