FANUC-0i系统中宏程序编程
所谓用户宏程序是将某种持定的功能或加工循环象子程序一样事先输入到存储器中,调用时利用一条指令即可代表其全部功能,我们将这一组程序或命令称为宏程序本体,简称用户宏程序。
调用用户宏程序称为宏程序调用,又称宏程序呼叫。
编程人员不必记忆用户宏程序本体,只要记住作为代表命令的用户宏指令就行了。模态调用用户宏程序用G66来指定,指令格式:G66Pxxxx,P后面紧跟的是被呼叫的宏程序本体的程序号。G67用来取消宏程序模态调用。G65Pxxxx为非模态调用用户宏程序。
现在我们来编制一个均匀分布的圆周孔排列宏程序,编制如下:
O9100 程序名
N10 #3= #4003
N20 G81 Z#26 R#18 F#9 K0
N30 IF [#3 EQ 90 ] GOTO60
N40 #24= #5001+#24
N50 #25= #5002+#25
N60 WHILE [#11 GT 0] DO 1
N70 #5= #24+#4*COS[#1]
N80 #6= #25+#4*SIN[#1]
N90 G90 X#5 Y#6
N100 #1= #1+#2
N110 #11= #11-1
N120 END 1
N130 G#3 G80
N140 M99
在主程序中我们只需调用就可以来加工均匀分布的圆周孔,主程序编制如下:
O1200 主程序名
N10 G00 G54 G17 G90
N20 G00 G43 Z100 H1
N30 S600 M3 F120
N40 G65 P9100 X200 Y200 R5 Z-20 I150 A0 B45 H8
N50 M30
程序段N40句的注释如下:
G65 P9100 宏程序调用P9100子程序
XxxYxx 圆心位置坐标
Rxx 安全位置
Zxx 最后钻削深度
Ixx 圆周半径
Axx 起始角度
Bxx 角度增量
Hxx 加工的所有孔数
在FANUC-0i系统中参数编程用#xxx表示,如:#1=#1+1,在SIEMENS系统中参数编程用Rxxx表示,如:R1=R1+1,因此不同CNC家厂生产的数控系统编程格式也就有所差异,我们千万不能将两种系统混合使用。
FANUC-0i系统中的参数编程所使用的算术和逻辑运算如下:
加法 #i= #j+#k
减法 #i= #j-#k
乘法 #i= #j*#k
除法 #i= #j/#k
正弦 #i=SIN[#j]
余弦 #i=COS[#j]
反正弦 #i=ASIN[#j]
反余弦 #i=ACOS[#j]
正切 #i=TAN[#j]
余切 #i=ATAN[#j]/ #k
平方根 #i=SQRT[#j]
绝对值 #i=ABS[#j]
比较语句中所使用的符号如下:
EQ 等于 =
NE 不等于 ≠
GT 大于 >
GE 大于等于 ≥
LT 小于 <
LE 小于等于 ≤
比较语句的编程格式有几种表达方法,在此列举两种常用的格式表示如下:
a) WHILE [条件表达式] DO m(m=1、2、3)
… 如果程序满足条件就执行
END m
或
b) N10 G54 G90 …
… 如果程序满足条件就执行
N100 IF [条件表达式] GOTO10
在编制比较语句时,根据每个人的编程风格,可以随便选择任意一种。
下面的程序计算数值从1到10的总和
编程示例:
O1000
N10 #1=0 #1赋初始值为0
N20 IF [#1 GT 10] GOTO50 当#1大于10时程序就跳跃到N50句
N30 #1=#1+1 计算变量值
N40 GOTO20 程序跳跃到N20句
N50 M30 程序结束
或
O1000
N10 #1=0
N20 WHILE [#1 LE 10 ] DO 1
N30 #1= #1+1
N40 END 1
N50 M30
比较语句在使用中还可以进行嵌套,嵌套格式如下:
#1=0
#2=0
WHILE [#1 LE 10 ] DO 1
…
WHILE [#2 LE 10 ] DO 2
…
#2=#2+1
END 2
#1= #1+1
END 1
注:比较语句嵌套级别可为4级
下面我们编制一个由我公司生产的TH6363卧式加工中心换刀宏程序编制如下:
N10 IF [#1000 EQ 1] GOTO100
N20 G00 G40 G61 G49 G80 G15
N30 #149= #403
N50 G91 G30 Z0 M19
N60 G91 G30 Y0
N70 G04 X1
N80 M69
N90 G04 X1
N100 G#149
N110 M99
閱讀更多 機加工人員 的文章