FANUC宏程序编程
FANUC系统宏程序编程

FANUC系统宏程序编程FANUC系统宏程序编程一变量普通加工程序直接用数值指定G代码和移动距离;例如,GO1和X100.0。
使用用户宏程序时,数值可以直接指定或用变量指定。
当用变量时,变量值可用程序或用MDI面板上的操作改变。
#1=#2+100G01 X#1 F300说明:变量的表示计算机允许使用变量名,用户宏程序不行。
变量用变量符号(#)和后面的变量号指定。
例如:#1表达式可以用于指定变量号。
此时,表达式必须封闭在括号中。
例如:#[#1+#2-12]变量的类型变量根据变量号可以分成四种类型变量号变量类型功能#0空变量该变量总是空,没有值能赋给该变量.#1-#33局部变量局部变量只能用在宏程序中存储数据,例如,运算结果.当断电时,局部变量被初始化为空.调用宏程序时,自变量对局部变量赋值,#100-#199#500-#999公共变量公共变量在不同的宏程序中的意义相同.当断电时,变量#100-#199初始化为空.变量#500-#999的数据保存,即使断电也不丢失.#1000系统变量系统变量用于读和写CNC运行时各种数据的变化,例如,刀具的当前位置和补偿值.变量值的范围局部变量和公共变量可以有0值或下面范围中的值:-1047到-10-29或-10-2到-1047如果计算结果超出有效范围,则发出P/S报警NO.111.小数点的省略当在程序中定义变量值时,小数点可以省略。
例:当定义#1=123;变量#1的实际值是123.000。
变量的引用为在程序中使用变量值,指定后跟变量号的地址。
当用表达式指定变量时,要把表达式放在括号中。
例如:G01X[#1+#2]F#3;被引用变量的值根据地址的最小设定单位自动地舍入。
例如:当G00X#/;以1/1000mm的单位执行时,CNC把123456赋值给变量#1,实际指令值为G00X12346.改变引用变量的值的符号,要把负号(-)放在#的前面。
例如:G00X-#1当引用未定义的变量时,变量及地址都被忽略。
FANUC系统宏程式详解

宏程序的简单调用格式:格式:G65 P程序序号 L重复次数变量分配控制命令1.If [条件表达式] GOTO n2.While [条件表达式] DO mEnd m运算符号相等:EQ 不等于: NE 大于:GT 小于:LT 大于等于:GE 小于等于:LEFANUC系统宏程式FANUC系统宏程序编程一变量普通加工程序直接用数值指定G代码和移动距离;例如,GO1和。
使用用户宏程序时,数值可以直接指定或用变量指定。
当用变量时,变量值可用程序或用MDI面板上的操作改变。
#1=#2+100G01 X#1 F300说明:变量的表示计算机允许使用变量名,用户宏程序不行。
变量用变量符号(#)和后面的变量号指定。
例如:#1表达式可以用于指定变量号。
此时,表达式必须封闭在括号中。
例如:#[#1+#2-12]变量的类型变量根据变量号可以分成四种类型变量号变量类型功能#0 空变量该变量总是空,没有值能赋给该变量.#1-#33 局部变量局部变量只能用在宏程序中存储数据,例如,运算结果.当断电时,局部变量被初始化为空.调用宏程序时,自变量对局部变量赋值,#100-#199 #50 0-#999 公共变量公共变量在不同的宏程序中的意义相同.当断电时,变量#100-#199初始化为空.变量#500-#999的数据保存,即使断电也不丢失.#1000 系统变量系统变量用于读和写CNC运行时各种数据的变化,例如,刀具的当前位置和补偿值.变量值的范围局部变量和公共变量可以有0值或下面范围中的值:-1047到-10-29或-10-2到-1047如果计算结果超出有效范围,则发出P/S报警.小数点的省略当在程序中定义变量值时,小数点可以省略。
例:当定义#1=123;变量#1的实际值是。
变量的引用为在程序中使用变量值,指定后跟变量号的地址。
当用表达式指定变量时,要把表达式放在括号中。
例如:G01X[#1+#2]F#3;被引用变量的值根据地址的最小设定单位自动地舍入。
FANUC系统宏程式详解

FANUC系统宏程式FANUC系统宏程序编程一变量普通加工程序直接用数值指定G代码和移动距离;例如,GO1和X100.0。
使用用户宏程序时,数值可以直接指定或用变量指定。
当用变量时,变量值可用程序或用MDI面板上的操作改变。
#1=#2+100G01 X#1 F300说明:变量的表示计算机允许使用变量名,用户宏程序不行。
变量用变量符号(#)和后面的变量号指定。
例如:#1表达式可以用于指定变量号。
此时,表达式必须封闭在括号中。
例如:#[#1+#2-12]变量的类型变量根据变量号可以分成四种类型变量号变量类型功能#0 空变量该变量总是空,没有值能赋给该变量.#1-#33 局部变量局部变量只能用在宏程序中存储数据,例如,运算结果.当断电时,局部变量被初始化为空.调用宏程序时,自变量对局部变量赋值,#100-#199 #500-#999 公共变量公共变量在不同的宏程序中的意义相同.当断电时,变量#100-#199初始化为空.变量#500-#999的数据保存,即使断电也不丢失.#1000 系统变量系统变量用于读和写CNC运行时各种数据的变化,例如,刀具的当前位置和补偿值.变量值的范围局部变量和公共变量可以有0值或下面范围中的值:-1047到-10-29或-10-2到-1047如果计算结果超出有效范围,则发出P/S报警NO.111.小数点的省略当在程序中定义变量值时,小数点可以省略。
例:当定义#1=123;变量#1的实际值是123.000。
变量的引用为在程序中使用变量值,指定后跟变量号的地址。
当用表达式指定变量时,要把表达式放在括号中。
例如:G01X[#1+#2]F#3;被引用变量的值根据地址的最小设定单位自动地舍入。
例如:当G00X#/;以1/1000mm的单位执行时,CNC把123456赋值给变量#1,实际指令值为G00X12346.改变引用变量的值的符号,要把负号(-)放在#的前面。
例如:G00X-#1当引用未定义的变量时,变量及地址都被忽略。
《数控加工工艺与编程》第5章 FANUC系统宏程序编程

的数值则不会丢失。当我们需要长期保存一些数据时,我们可以把这些数据存放到变量#500~
#599 中。
刘书溢
陈英
陈英
王庆成 梅
8
3 宏程序函数
(FA1N)UC 0i 系统可利用多种公式和变换,对现有的变量执行许多算术、代数、三角函数、辅助和 逻辑运算。在变量的定义格式中,不但可以用常数为变量赋值,还可以用表达式为变量赋值。宏 程序函数为宏程序的编写提供了强有力的工具。
我们必须对变量中的数据进行处理,以符合程序要求。
ROUND 是四舍五入,例:ROUND [9.8]=10;ROUND [9.1]=9FIX 是下取整(截尾取整),例:
FIX [9.8]=9;FIX [9.1]=9 ,FUP 是上取整(进位取整),例:FUP [9.8]=10;FUP [9.1]=10
把确定的变量分别用数控编程中允许的 表示方法表达出来即可。由图5-4可知椭圆 长半轴45mm,短半轴35mm。用直径Ф8mm立 铣刀加工。以上为FANUC系统的表示方式。 编程见表5-7所示:内轮廓切削深度编程 见表5-8所示。
椭圆的宏程序设计
椭圆的宏程序设计
椭圆的宏程序设计
半球(凸凹球)宏程序设计
32
数控铣床(加工中心)切削深度宏程序设计
铣外轮廓由直线和圆弧组成,68mm×68mm×30mm的铝料,外轮廓铣深10mm,无 法一次切深10mm,此时,用直径16的立铣刀使用宏程序分次铣削深度比较简便。编 程见表5-11。
33
数控铣床(加工中心)切削深度宏程序设计
34
数控铣床(加工中心)切削深度宏程序设计
宏编程就是一种手工编写工件加工程序的方法,它附加于标准 CNC 程序,使数控编程功能 更强大、更灵活。从编程特点上说,具有计算机高级语言(例如:BASIC)编程的特征。 用户宏程序是用户知识、技巧、经验的积累和总结。
FANUC系统宏程式详解

宏程序的简单调用格式:格式: G65 P 程序序号 L 重复次数变量分配变量对照表控制命令1. If [ 条件表达式 ] GOTO n2. While [ 条件表达式 ] DO mEnd m 运算符号相等:EQ 不等于: NE 大于:GT小于:LT 大于等于: GE 小于等于: LEFANUC系统宏程式FANUC系统宏程序编程一变量普通加工程序直接用数值指定G代码和移动距离;例如,GO1和X100.0 。
使用用户宏程序时,数值可以直接指定或用变量指定。
当用变量时,变量值可用程序或用MDI 面板上的操作改变。
#1=#2+100G01 X#1 F300 说明:变量的表示计算机允许使用变量名,用户宏程序不行。
变量用变量符号(例如:#1表达式可以用于指定变量号。
此时,表达式必须封闭在括号中例如:#[#1+#2-12]变量的类型变量根据变量号可以分成四种类型变量号变量类型功能#0空变量该变量总是空, 没有值能赋给该变量.#1-#33局部变量局部变量只能用在宏程序中存储数据,例如,运算结果.当断电时, 局部变量被初始化为空.调用宏程序时, 自变量对局部变量赋值,#100-#199 #500-#999公共变量公共变量在不同的宏程序中的意义相同.当断电时,变量#100-#199 初始化为空.变量#500-#999 的数据保存, 即使断电也不丢失.#1000系统变量系统变量用于读和写CNC运行时各种数据的变化,例如, 刀具的当前位置和补偿值.变量值的范围局部变量和公共变量可以有0 值或下面范围中的值: -1047 到-10-29 或-10-2 到-1047 如果计算结果超出有效范围,则发出P/S 报警NO.111.小数点的省略当在程序中定义变量值时,小数点可以省略。
例:当定义#1=123 ;变量#1 的实际值是123.000 。
变量的引用为在程序中使用变量值,指定后跟变量号的地址。
当用表达式指定变量时,要把表达式放在括号中。
FANUC系统宏程式详解

F A N U C系统宏程式详解集团标准化工作小组 #Q8QGGQT-GX8G08Q8-GNQGJ8-MHHGN#宏程序的简单调用格式:格式:G65 P程序序号 L重复次数变量分配1.If [条件表达式] GOTO n2.While [条件表达式] DO mEnd m运算符号相等:EQ 不等于: NE 大于:GT 小于:LT 大于等于:GE 小于等于:LEFANUC系统宏程式FANUC系统宏程序编程一变量普通加工程序直接用数值指定G代码和移动距离;例如,GO1和。
使用用户宏程序时,数值可以直接指定或用变量指定。
当用变量时,变量值可用程序或用MDI面板上的操作改变。
#1=#2+100G01 X#1 F300说明:变量的表示计算机允许使用变量名,用户宏程序不行。
变量用变量符号(#)和后面的变量号指定。
例如:#1表达式可以用于指定变量号。
此时,表达式必须封闭在括号中。
例如:#[#1+#2-12]变量的类型变量根据变量号可以分成四种类型变量号变量类型功能#0 空变量该变量总是空,没有值能赋给该变量.#1-#33 局部变量局部变量只能用在宏程序中存储数据,例如,运算结果.当断电时,局部变量被初始化为空.调用宏程序时,自变量对局部变量赋值,#100-#199 #500-#999 公共变量公共变量在不同的宏程序中的意义相同.当断电时,变量#100-#199初始化为空.变量#500-#999的数据保存,即使断电也不丢失.#1000 系统变量系统变量用于读和写CNC运行时各种数据的变化,例如,刀具的当前位置和补偿值.变量值的范围局部变量和公共变量可以有0值或下面范围中的值:-1047到-10-29或-10-2到-1047如果计算结果超出有效范围,则发出P/S报警.小数点的省略当在程序中定义变量值时,小数点可以省略。
例:当定义#1=123;变量#1的实际值是。
变量的引用为在程序中使用变量值,指定后跟变量号的地址。
当用表达式指定变量时,要把表达式放在括号中。
FANUC系统宏程式详解

宏程序的简单调用格式:格式:G65 P程序序号 L重复次数变量分配控制命令1.If [条件表达式] GOTO n2.While [条件表达式] DO mEnd m运算符号相等:EQ 不等于: NE 大于:GT 小于:LT 大于等于:GE 小于等于:LEFANUC系统宏程式FANUC系统宏程序编程一变量普通加工程序直接用数值指定G代码和移动距离;例如,GO1和X100.0。
使用用户宏程序时,数值可以直接指定或用变量指定。
当用变量时,变量值可用程序或用MDI面板上的操作改变。
#1=#2+100G01 X#1 F300说明:变量的表示计算机允许使用变量名,用户宏程序不行。
变量用变量符号(#)和后面的变量号指定。
例如:#1表达式可以用于指定变量号。
此时,表达式必须封闭在括号中。
例如:#[#1+#2-12]变量的类型变量根据变量号可以分成四种类型变量号变量类型功能#0 空变量该变量总是空,没有值能赋给该变量.#1-#33 局部变量局部变量只能用在宏程序中存储数据,例如,运算结果.当断电时,局部变量被初始化为空.调用宏程序时,自变量对局部变量赋值,#100-#199 #500-#999 公共变量公共变量在不同的宏程序中的意义相同.当断电时,变量#100-#199初始化为空.变量#500-#999的数据保存,即使断电也不丢失.#1000 系统变量系统变量用于读和写CNC运行时各种数据的变化,例如,刀具的当前位置和补偿值.变量值的范围局部变量和公共变量可以有0值或下面范围中的值:-1047到-10-29或-10-2到-1047如果计算结果超出有效范围,则发出P/S报警NO.111.小数点的省略当在程序中定义变量值时,小数点可以省略。
例:当定义#1=123;变量#1的实际值是123.000。
变量的引用为在程序中使用变量值,指定后跟变量号的地址。
当用表达式指定变量时,要把表达式放在括号中。
例如:G01X[#1+#2]F#3;被引用变量的值根据地址的最小设定单位自动地舍入。
FANUC宏程序编程

运算符运算符由2个字母组成,用于两个值的比较,以决定它们是相等还是一个值小于或大于另一示例程序下面的程序计算数值1~10的总和O9500;#1=0;………………………………….存储和的变量初值#2=1;………………………………….被加数变量的初值N1 IF[#2GT 10]GOTO 2;…………….当被加数大于10时转移到N2#1=#1+#2;…………………………….计算和#2=#2+#1;…………………………….下一个被加数GOTO 1;………………………………转移到N1N2 M30;................................................程序结束算术和逻辑运算角度单位:SIN、ASIN、COS、ACOS、TAN和ATAN的角度单位是度ARCSIN #i=ASIN[#j]:●取值范围如下:当参数(N0.6004¥0)NAT位设为0时,270~90度;当参数(N0.6004¥0)NAT位设为1时,-90~90度。
●当#j超过-1到1的范围时,发出P/S报警N0.111。
●常数可替代变量#j。
ARCCOS #i=ACOS[#j];●取值范围从180~0度。
●当#j超过-1到1的范围时,发出P/S报警N0.111。
●常数可替代变量#j。
ARCTAN #i=ATAN[#j];●指定两边的长度,并用斜杠(/)分开●取值范围如下:当参数(N0.6004¥0)NAT位设为0时,0~360度[例如:当指定#i=ATAN[-1]/[-1];时,#1=225度]。
当参数(N0.6004¥0)NAT位设为1时,-180~180度[例如:当指定#i=ATAN[-1]/[-1];时,#1=-135度]●常数可替代变量#j。
自然对数#i=LN[#j];●注意,相对误差可能大于10-8。
●当反对数(#j)为0或小于0时,发出报警N0.111。
●常数可替代变量#j。
指数函数#i=EXP[#j]:●注意,相对误差可能大于10-8●当运算结果超过3.65×1047(j大约是110)时,出现溢出报警N0.111●常数可替代变量#j。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
运算符
运算符由2个字母组成,用于两个值的比较,以决定它们是相等还是一个值小于或大于另一
示例程序下面的程序计算数值1~10的总和
O9500;#1=0;………………………………….存储和的变量初值
#2=1;………………………………….被加数变量的初值
N1 IF[#2GT 10]GOTO 2;…………….当被加数大于10时转移到N2
#1=#1+#2;…………………………….计算和
#2=#2+#1;…………………………….下一个被加数
GOTO 1;………………………………转移到N1
N2 M30;................................................程序结束
算术和逻辑运算
角度单位:
SIN、ASIN、COS、ACOS、TAN和ATAN的角度单位是度
ARCSIN #i=ASIN[#j]:
●取值范围如下:当参数(N0.6004¥0)NAT位设为0时,270~90度;当参数(N0.6004¥0)NAT位设为1时,-90~90度。
●当#j超过-1到1的范围时,发出P/S报警N0.111。
●常数可替代变量#j。
ARCCOS #i=ACOS[#j];
●取值范围从180~0度。
●当#j超过-1到1的范围时,发出P/S报警N0.111。
●常数可替代变量#j。
ARCTAN #i=ATAN[#j];
●指定两边的长度,并用斜杠(/)分开
●取值范围如下:当参数(N0.6004¥0)NAT位设为0时,0~360度[例如:当指定
#i=A TAN[-1]/[-1];时,#1=225度]。
当参数(N0.6004¥0)NAT位设为1时,-180~180度[例如:当指定#i=A TAN[-1]/[-1];时,#1=-135度]
●常数可替代变量#j。
自然对数#i=LN[#j];
●注意,相对误差可能大于10-8。
●当反对数(#j)为0或小于0时,发出报警N0.111。
●常数可替代变量#j。
指数函数#i=EXP[#j]:
●注意,相对误差可能大于10-8
●当运算结果超过3.65×1047(j大约是110)时,出现溢出报警N0.111
●常数可替代变量#j。
上取整下取整:
CNC处理数值运算时,若操作后产生整数绝对值大于原数的绝对值时为上取整;小于为下取整。
例如:
假设#1=1.2,#2=-1.2。
当执行#3=FUP[#1]时,2.0赋给#3;当执行#3=FIX[#1]时1.0赋给#3;当执行#3=FUP[#2]时,-2.0赋给#3;当执行#3=FIX[#2]时,-1.0赋给#3。
宏程序语句:包含算术或逻辑运算(=)的程序;包含控制语句(例如,用GOTO,DO,END)的程序;包含宏程序调用指令(例如,用G65,G66,G67或其它G代码,M代码调用宏程序)的程序段;除宏程序以外任何程序段都为NC语句。
与NC语句的不同:
即使置于单段程序运行方式,机床也不停止。
但是,当参数N0.6000#5SBM设定位、为1时,在单段程序方式中,机床停止。
在刀具半径补偿方式中宏程序语句段不做为移动程序段处理
与宏程序语句相同性质的NC语句:
含有子程序调用指令(例如,用M98或其它M代码或用T代码调用子程序)但没有除O,N,P或L地址之外的其它地址指令的NC语句,其性质与宏程序语句相同;不包含除O,N,P或L以外的指令地址的程序段其性质与宏程序语句相同。
无限循环;
当指定DO而没有指定WHILE语句时,产生从DO到END的无限循环。
宏程序调用和子程序调用之间的差别:
宏程序调用(G65)不同于子程序调用(G98),如下所述:
●用G65,可以指定自变量(数据传送到宏程序)。
M98没有该功能。
●当M98程序段包含另一个NC指令(例如。
G01.X100.0M98P P)时,在指令执行之后调
用子程序。
相反,G65无条件的调用子程序。
●M98程序段包含另一个NC指令(例如,G01X100.0M98P P)时在单程序方式中,机床
停止。
相反,G65机床不停止。
●用G65,改变局部变量的级别。
用M98,不改变局部变量的级别。
G65P-L -(自变量指定);P:要调用的程序;L:重复次数;自变量:数据传递到宏程序
I,J,K的下标用于确定自变量指定的顺序,在实际编程中不写。
G65P-X-Y-Z-R-F-I-A-B-H-:
X:圆心的X坐标(绝对值或增量值指定)(#24)
Y:圆心的Y坐标(绝对值或增量值指定)(#25)
Z:孔深(#26);R:趋近点坐标(#18)
F:切削进给速度(#9);I:圆半径(#4)
A:第一孔的角度(#1)
B:增量角(指定负值时为逆时针)(#2)
H:孔数(#11)
宏程序调用程序:O0002;
G90G92X0Y0Z100.0;
G65P9100X100Y50R30Z-50F500I100A0B45H5;
M30
被调用的宏程序:O9100;
#3=#4003;........................... 储存03组的G代码
G81Z#26R#18F#9K0;........(注)钻孔循环;注:也可以使用L0
IF[#3EQ90]GOTO 1;..........在G90方式转移到N1
#24=#5001+#24;.................计算圆心的X坐标
#25=#5002+#25;.................计算圆心的Y坐标
N1 WHILE[#11GT0]DO 1.....直到剩余孔数为0
#5=#24+#4*COS[#1];..........计算X轴上的孔位
#6=#25+#4*SIN[+1];...........计算Y轴上的孔位
G90X#5Y#6;........................移动到坐标位置之后执行钻孔
#1=#1+#2;.............................更新角度
#11=#11-1;...........................孔数-1
END 1;
G#3G80;...............................返回原始状态G代码
M99;
变量的含义:#3:储存03组的G代码;#5:下个孔的X坐标:#6:下个孔的Y坐标摸态调用G66
G66P-L-:
P:要调用的程序;L:重复次数;自变量:数据传递到宏程序
自变量指定Ⅰ
变量类型:
接口信号的系统变量:(参数N0.6001#0(MIF)=0时)
为ON,也不执行程序段停止。
当指定不等待辅助功能(M,S和T功能)完成时,在辅助功能完成之前,程序即执行到下一程序段。
而且分配完成信号DEN 不输出。
位置信息系统变量
变量#5081~#5083存储的刀具长度补偿值是当前的执行值,不是后面程序的处理值;
在G31(跳转功能)程序段中跳转信号接通时的刀具位置储存在变量#5061到#5064中。
当G31程序段中的跳转信号未接通时,这些变量中储存指定程序段的
终点值。
移动期间不能读是指由于缓冲(预读)功能的原因,不能读取期望值。
G65P9110X-Y-Z-R-F-L-;
X:圆心的X坐标(绝对值指定)(#24)
Y:圆心的Y坐标(绝对值指定)(#25)
Z:孔深(#26)(绝对值指定);
R:趋近点坐标(绝对值指定)(#18)
F:切削进给速度(#9);
L:重复次数。