3FANUC系统数控B类宏程序编程应用.docx
《3FANUC系统数控B类宏程序编程应用.docx》由会员分享,可在线阅读,更多相关《3FANUC系统数控B类宏程序编程应用.docx(12页珍藏版)》请在冰豆网上搜索。
![3FANUC系统数控B类宏程序编程应用.docx](https://file1.bdocx.com/fileroot1/2023-1/30/8d3f5fee-eb6d-4988-8b27-ad3d8ef2a144/8d3f5fee-eb6d-4988-8b27-ad3d8ef2a1441.gif)
3FANUC系统数控B类宏程序编程应用
FANUC系统数控宏程序编程应用
虽然子程序对编制相同加工操作的程序非常有用,但用户宏程序由于允许使用变量、算术和逻辑运算及条件转移,使得编制相同加工操作的程序更方便,更容易。
可将相同加工操作编为通用程序,如型腔加工宏程序和固定加工循环宏程序。
使用时,加工程序可用一条简单指令调出用户宏程序,和调用子程序完全一样。
1、变量
普通加工程序直接用数值指定G代码和移动距离;例如,G100和X100.0。
使用用户宏程序时,数值可以直接指定或用变量指定。
当用变量时,变量值可用程序或用MDI面板上的操作改变。
如:
#2=30;
#1=#2+100;
G01X#1F0.3
1、变量的表示
变量用变量符号(#)和后面的变量号指定。
例如:
#1
表达式可以用于指定变量号。
此时,表达式必须封闭在括号中。
例如:
#[#1+#2-12]
2、变量的类型
变量根据变量号可以分成四种类型。
3、变量值的范围
局部变量和公共变量可以有0值或下面范围中的值:
-1047到-10-29
0
10-29到1047
如果计算结果超出有效范围,则发出P/S报警No.111.
4、小数点的省略
当在程序中定义变量值时,小数点可以省略。
例:
当定义#1=123;变量#1的实际值是123.000。
5、变量的引用
为在程序中使用变量值,指定后跟变量号的地址。
当用表达式指定变量时,要把表达式放在括号中。
例如:
G01X[#1+#2]F#3;
被引用变量的值根据地址的最小设定单位自动地舍入。
例如:
当G00X#1;以1/1000mm的单位执行时,CNC把12.3456赋值给变量#1,实际指令值为G00X12.346;。
改变引用的变量值的符号,要把负号
(一)放在#的前面。
例如:
G00X—#1;
当引用未定义的变量时,变量及地址字都被忽略。
例如:
当变量#1的值是0,并且变量#2的值是空时,G00X#1Z#2的执行结果为G00X0;。
6、未定义的变量
当变量值未定义时,这样的变量成为“空”变量。
变量#0总是空变量。
它不能写,只能读。
(a)引用
当引用一个未定义的变量时,地址本身也被忽略。
2、算术和逻辑运算
下表中列出的运算可以在变量中执行。
运算符右边的表达式可包含常量和/或由函数或运算符组成的变量。
表达式中的变量#j和#k可以用常数赋值。
左边的变量也可以用表达式赋值。
3、转移和循环
在程序中,使用GOTO语句和IF语句可以改变控制的流向。
有三种转移和循环操作可供使用:
1、无条件转移(GOTO语句)
格式:
GOTOn;n:
顺序号(1~99999)
转移到标有顺序号n的程序段。
当指定1到99999以外的顺序号时,出现P/S报警No.128。
可用表达式指定顺序号。
例:
GOTO1;
GOTO#10;
2、条件转移(IF语句)
IF[<条件表达式>]GOTOn
IF之后指定条件表达式。
如果指定的条件表达式满足时,转移到标有顺序号n的程序段。
如果指定的条件表达式不满足,执行下个程序段。
说明:
a、条件表达式条件表达式必须包括算符。
算符插在两个变量中间或变量和常数中间,并且用括号([])封闭。
表达式可以替代变量。
b、运算符运算符由2个字母组成,用于两个值的比较,以决定它们是相等还是一个值小于或大于另一个值。
注意,不能使用不等符号。
C、示例程序
下面的程序计算数值1~10的总和
3、循环(WHILE语句)
在WHILE后指定一个条件表达式,当指定条件满足时,执行从DO到END之间的程序。
否则,转到END后的程序段。
说明:
当指定的条件满足时,执行WHILE从DO到END之间的程序。
否则,转而执行END之后的程序段。
这种指令格式适用于IF语句。
DO后的号和END后的号是指定程序执行范围的标号,标号值为1,2,3。
若用1,2,3以外的值会产生P/S报警No.126。
循环嵌套:
在DO—END循环中的标号(1到3)可根据需要多次使用。
但是,当程序有交叉重复循环(DO范围的重叠)时,出现P/S报警No.124。
4、宏程序编程举例
曲线公式为X=(36/Z)+3
加工顺序:
粗车→半精车→精车
(1)精车程序:
设置变量
变量
表示内容
表达式
取值范围
#1
Z坐标
自变量
2--72
#2
X坐标
#2=[[36/#1]+3]
7--42
G00X7Z74;
#1=72;
WHILE[#1GE2]DO2;
#2=[[36/#1]+3];
G42G01X[#2]Z[#1]F0.1;
#1=#1-0.1;
END2;
(2)粗车程序:
G90来粗车
设置变量
变量
表示内容
表达式
取值范围
变化幅度
#1
Z坐标
#1=[36/[#1-3]]
2--72
#2
X坐标
自变量
7--42
4
#2=38;
WHILE[#1GE7]DO3;
#1=[36/[#1-3]];
G00X[#2+5]Z74;
G90X[#2+0.5]Z[#1]F0.2;
#2=#2-4;
END3;
(3)半精车程序:
设置变量
变量
表示内容
表达式
取值范围
#1
Z坐标
自变量
2--72
#2
X坐标
#2=[[36/#1]+3.5]
7--42
G00X7Z74;
#1=72;
WHILE[#1GE2]DO4;
#2=[[36/#1]+3.5];
G01X[#2]Z[#1]F0.1;
#1=#1-0.1;
END4;
P170
公式曲线方程有两种:
直角坐标方程和参数方程
椭圆方程:
x2/a2+y2/b2=1
或x=acosθ,y=bsinθ