《FANUC系统数控车床B类宏程序编程应用》.doc
文本预览下载声明
FANUC系统数控车床B类宏程序编程应用
虽然子程序对编制相同加工操作的程序非常有用,但用户宏程序由于允许使用变量、算术和逻辑运算及条件转移,使得编制相同加工操作的程序更方便,更容易。可将相同加工操作编为通用程序,如型腔加工宏程序和固定加工循环宏程序。 使用时, 加工程序可用一条简单指令调出用户宏程序,和调用子程序完全一样。
变量
普通加工程序直接用数值指定 G代码和移动距离; 例如, G100和 X100.0。 使用用户宏程序时,数值可以直接指定或用变量指定。当用变量时,变量值可用程序或用 MDI 面板上的操作改变。
如:#2=30;
#1=#2+100;
G01 X#1 F0.3
1、变量的表示
变量用变量符号(#)和后面的变量号指定。
例如:#1
表达式可以用于指定变量号。此时,表达式必须封闭在括号中。
例如:#[#1+#2-12]
变量的类型
变量根据变量号可以分成四种类型。
3、变量值的范围
局部变量和公共变量可以有 0 值或下面范围中的值:
-1047到-10-29
0
10-29到 1047
如果计算结果超出有效范围,则发出 P/S报警No.111.
小数点的省略
当在程序中定义变量值时,小数点可以省略。
例:当定义#1=123;变量#1的实际值是 123.000。
变量的引用
为在程序中使用变量值, 指定后跟变量号的地址。 当用表达式指定变量时,要把表达式放在括号中。
例如:G01X[#1+#2]F#3;
被引用变量的值根据地址的最小设定单位自动地舍入。
例如:
当 G00X#1;以 1/1000mm 的单位执行时,CNC把 12.3456 赋值给 变量#1,实际指令值为 G00X12.346; 。
改变引用的变量值的符号,要把负号(一)放在#的前面。
例如:G00X—#1;
当引用未定义的变量时,变量及地址字都被忽略。
例如:
当变量#1的值是 0,并且变量#2的值是空时,G00X#1 Z#2 的执行结果为 G00X0; 。
6、未定义的变量
当变量值未定义时,这样的变量成为“空”变量。变量#0 总是空变量。它不能写,只能读。
(a) 引用
当引用一个未定义的变量时,地址本身也被忽略。
算术和逻辑运算
下表中列出的运算可以在变量中执行。 运算符右边的表达式可包含常量和/或由函数或运算符组成的变量。表达式中的变量#j 和#k 可以用常数赋值。左边的变量也可以用表达式赋值。
转移和循环
在程序中,使用 GOTO 语句和 IF 语句可以改变控制的流向。有三种转移和循环操作可供使用:
无条件转移 (GOTO 语句)
格式:GOTOn;n:顺序号(1~99999)
转移到标有顺序号 n 的程序段。当指定 1 到99999 以外的顺序号时,出现P/S 报警 No.128。可用表达式指定顺序号。
例:
GOTO1;
GOTO#10;
条件转移 (IF 语句)
IF[条件表达式] GOTO n
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。
宏程序编程举例
曲线公式为X=(36/Z)+3
加工顺序:粗车→半精车→精车
(1)精车程序:
设置变量
变量 表示内容 表达式 取值范围 #1 Z坐标 自变量 2--72 #2 X坐标 #2=[[36/#1]+3] 7--42 G00 X7
显示全部