北京FANUC 宏教程
FANUC宏程序讲解

变量号
#4107
#4109 #4111 #4113 #4119 #4120 #4130
模态信息Βιβλιοθήκη D代码F代码 H代码 M代码 S代码 T代码 P代码
9.位置信息
变量号 #5001~8 #5021~8 #5041~8 #5061~8 #5081~8 #5101~8
位置信息 程序段终点
当前位置 当前位置 跳转信号位置 刀具长度补偿值 伺服位置误差
●
WHILE[…] DO 2;
●
WHILE[…] DO 3; 程序
END3;
●
END2;
●
END1;
WHILE[…] DO 1; 程序 IF[…] GOTO n; END1; 程序 Nn …;
• 不可以从DO区域 的外部向内部转 移
IF[…] GOTO n; WHILE[…] DO 1; 程序 Nn …; END1;
GOTO n; n:程序段号(1- 99999) 无条件地转移到程序段n去。 • n也可用变量或表达式来代替
GOTO 10; GOTO #10;
2.条件转移(IF 语句 )
IF [<条件表达式>] GOTO n; • 若满足<条件表达式>,下步操作转移到程序段
号为n的程序段去。 • 若不满足,执行下个程序段。
1.运算命令的种类
数据处理
种类 下取整 上取整 四舍五入 绝对值
函数名 FIX FUP
ROUND ABS
格式 #i = FIX[ #k ] #i = FUP[ #k ] #i =ROUND[ #k ] #i =ABS[ #k ]
下取整(FIX):舍去小数点以下部分 上取整(FUP):将小数后部分进位到整数部分 ROUND函数:在算术运算或逻辑运算指令中使用时,在 第1个小数位置四舍五入,在NC语句地址中使用时,根据地 址的最小设定单位将指定值四舍五入
FANUC特殊功能指令应用附宏程序教程说明书(1)

Z
#16 K8
#17 I9
I2
D
J2
E
K2
F
I3
#7
K5
R
#8
I6
S
#9
J6
T
#10 K6
U
#18 J9 #19 K9 #20 I10 #21 J10
K10 运算符
运算符 EQ NE GT GE LT LE
含义 等于 (=) 不等于 (≠) 大于 (>) 大于等于 (≥) 小于 (<) 小于等于 (≤)
时钟
接口输入信号 16 位
#1
#100
#2
#101
…
…
…
…
…
…
#32
#198
#33
#199
#500 #501 ….. …… ……. #598 #599
模态变量
刀具补偿信息变量 刀补 C 变量 99 把刀变量
#4001 #4002 ……. #4120
#2001 #2002 …….. #2499
#10001 #10002
功能 第 1 轴外部工件零点偏移值 .. 第 4 轴外部工件零点偏移值 第 1 轴 G54 工件零点偏移值 .. 第 4 轴 G54 工件零点偏移值 第 1 轴 G55 工件零点偏移值 .. 第 4 轴 G55 工件零点偏移值 第 1 轴 G56 工件零点偏移值 .. 第 4 轴 G56 工件零点偏移值 第 1 轴 G57 工件零点偏移值 .. 第 4 轴 G57 工件零点偏移值 第 1 轴 G58 工件零点偏移值 .. 第 4 轴 G58 工件零点偏移值 第 1 轴 G59 工件零点偏移值 .. 第 4 轴 G59 工件零点偏移值 第 1 轴工件零点偏移值(G54.1 P1) .. 第 4 轴工件零点偏移值 (G54.1 P1) 第 1 轴工件零点偏移值 (G54.1 P2) .. 第 4 轴工件零点偏移值 (G54.1 P2)
fanuc宏程序 第1类 自变量制定法

fanuc宏程序第1类自变量制定法
“fanuc宏程序第1类自变量制定法”这句话的意思是关于FANUC宏程序中的一种自变量制定方法。
FANUC宏程序是一种在数控机床上执行的程序,它可以根据不同的参数和条件来控制机床的运动和加工过程。
自变量制定法是宏程序中的一种方法,它允许用户根据不同的自变量值来控制程序的执行过程。
在FANUC宏程序中,自变量可以定义为程序中的变量,这些变量可以在程序执行过程中被修改或赋值。
自变量制定法允许用户在程序中定义多个自变量,并根据不同的自变量值来选择不同的程序执行路径。
例如,如果一个宏程序中有两个自变量A和B,用户可以根据A和B的值来选择不同的加工路径。
如果A=1且B=2,则程序执行路径1;如果A=2且B=3,则程序执行路径2;如果A=3且B=4,则程序执行路径3。
总结来说,“fanuc宏程序第1类自变量制定法”是一种在FANUC宏程序中根据自变量值来选择不同的程序执行路径的方法。
这种方法可以提高程序的灵活性和可扩展性,使得用户可以根据不同的加工需求和条件来定制程序。
Fanuc螺旋铣螺纹与宏程序铣螺纹教程

F 【2 】anuc体系铣螺纹编程(宏程序和螺旋插补)举例:如下图铣削5-M30*1.5-深15mm的细牙右旋螺纹.刀具选择如下:(用废旧的钨钢刀柄磨的单刃螺纹铣刀,合适切削1.5螺距的螺纹)工艺剖析:三轴联动铣削螺纹,本质是XY平面加工整圆同时,Z轴每加工一个整圆降低一个螺纹,加工时是以螺纹孔的中间轴线作为编程参考点,所以铣削单个螺纹孔时,平日将坐标系原点树立在孔中间,若要铣削多个螺孔,就要试着将坐标系偏移至孔的中间.这题要铣削5个孔,中央的孔直接可以铣削,R50圆周上的4个等分螺孔,可以借助坐标偏移(fanuc体系用 G52)来实现.M30*1.5的螺纹,事先将螺纹底孔加工到28.5mm,螺纹齿高H=0.974刀具直径经检测,直径为8mm,有用加工孔深为22mm,程序如下:1.宏程序铣削螺纹单个螺纹孔铣削程序G54 G90 G17 坐标系原点树立在孔的中间,底孔事先加工好M03 S3500(单刃切削,高转速,小吃刀,快进给)G00 Z50.G00 X0 Y0G00 Z3. (安全高度,定位值是螺距的整倍数)#1=0.3 齿高切深赋值N10 #2=10.25+#1 (28.5的孔,单边14.25,刀半径4,刀具往内偏移到10.25定位)G02 X#2 Y0 I [ #2/2 ] J0 F300. 以半圆情势切入#3=1.5 螺距PN20 G02 X#2 Y0 Z#3 I-#2 J0 F3000. 插补螺纹,到Z1.5的高度#3= #3 - 1.5IF [ #3 GE - 15.1 ] GOTO20 螺纹切削孔深15mmG02 X0 Y0 I-[ #2/2 ] J0 F300. 半圆情势切出,刀具到中间G00 Z3. 抬刀到安全高度,前后一致#1 = #1 + 0.2 切削齿高,往X偏向增大IF [ #1 LE 0.91 ] GOTO10 加工到齿高G01 X0 Y0 F300. 退刀G00 Z100. 抬刀M30本题5-M30*1.5-15的程序主程序:G54 G90 G17 坐标系原点树立在孔的中间,底孔事先加工好M03 S3500 (单刃切削,高转速,小吃刀,快进给)G00 Z50.G00 X0 Y0M98 P1000 挪用铣床螺纹的子程序#4 = 0 角度初始赋值N30 #5 = 50 * COS [ #4 ] X坐标#6 = 50 * SIN [ #4 ] Y坐标G52 X#5 Y#6 坐标偏移G00 X0 Y0 到偏移之后的原点定位M98 P1000 挪用铣螺纹的子程序#4 = #4 + 90 角度增长IF [ #4 LE 271 ] GOTO30加工残剩3个孔,如果写360,第一个孔要再加工一次G00 Z100.G52 X0 Y0G54 G00 X100. Y100.M30子程序:O1000;G00 X0 Y0G00 Z3. (安全高度,定位值是螺距的整倍数)#1=0.3 齿高切深赋值N10 #2=10.25+#1 (28.5的孔,单边14.25,刀半径4,刀具往内偏移到10.25定位)G02 X#2 Y0 I [ #2/2 ] J0 F300. 以半圆情势切入#3=1.5 螺距PN20 G02 X#2 Y0 Z#3 I-#2 J0 F3000. 插补螺纹,到Z1.5的高度#3= #3 - 1.5IF [ #3 GE - 15.1 ] GOTO20 螺纹切削孔深15mmG02 X0 Y0 I-[ #2/2 ] J0 F300. 半圆情势切出,刀具到中间G00 Z3. 抬刀到安全高度,前后一致#1 = #1 + 0.2 切削齿高,往X偏向增大IF [ #1 LE 0.91 ] GOTO10 加工到齿高G01 X0 Y0 F300. 退刀G00 Z10. 抬刀G52 X0 Y0 撤消坐标偏移M99 返回主程序2.应用螺旋插补加工螺纹单个螺纹孔铣削程序G54 G90 G17 坐标系原点树立在孔的中间,底孔事先加工好M03 S3500 (单刃切削,高转速,小吃刀,快进给)G00 Z50.G00 X0 Y0G00 Z3. (安全高度,定位值是螺距的整倍数)#1=0.3 齿高切深赋值N10 #2=10.25+#1 (28.5的孔,单边14.25,刀半径4,刀具往内偏移到10.25定位)G02 X#2 Y0 I [ #2/2 ] J0 F300. 以半圆情势切入G91 G02 X0 Y0 Z-1.5 I-#2 J0 L11 F3000. 每次1.5,反复11次G90 G02 X0 Y0 I-[ #2/2 ] J0 F300. 半圆情势切出,刀具到中间G00 Z3. 抬刀到安全高度,前后一致#1 = #1 + 0.2 切削齿高,往X偏向增大IF [ #1 LE 0.91 ] GOTO10 加工到齿高G01 X0 Y0 F300. 退刀G00 Z100. 抬刀M30本题5-M30*1.5-15的程序主程序:G54 G90 G17 坐标系原点树立在孔的中间,底孔事先加工好M03 S3500 (单刃切削,高转速,小吃刀,快进给)G00 Z50.G00 X0 Y0M98 P1000 挪用铣床螺纹的子程序#4 = 0 角度初始赋值N30 #5 = 50 * COS [ #4 ] X坐标#6 = 50 * SIN [ #4 ] Y坐标G52 X#5 Y#6 坐标偏移G00 X0 Y0 到偏移之后的原点定位M98 P1000 挪用铣螺纹的子程序#4 = #4 + 90 角度增长IF [ #4 LE 271 ] GOTO30加工残剩3个孔,如果写360,第一个孔要再加工一次G00 Z100.G52 X0 Y0G54 G00 X100. Y100.M30子程序:O1000;G00 X0 Y0G00 Z3. (安全高度,定位值是螺距的整倍数)#1=0.3 齿高切深赋值N10 #2=10.25+#1 (28.5的孔,单边14.25,刀半径4,刀具往内偏移到10.25定位)G02 X#2 Y0 I [ #2/2 ] J0 F300. 以半圆情势切入G91 G02 X0 Y0 Z-1.5 I-#2 J0 L11 F3000. 每次1.5,反复11次G90 G02 X0 Y0 I-[ #2/2 ] J0 F300. 半圆情势切出,刀具到中间G00 Z3. 抬刀到安全高度,前后一致#1 = #1 + 0.2 切削齿高,往X偏向增大IF [ #1 LE 0.91 ] GOTO10 加工到齿高G90 G01 X0 Y0 F300. 退刀G00 Z10. 抬刀G52 X0 Y0 撤消坐标偏移M99 返回主程序。
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用户宏程序

二、宏程序的适用范围
✓ 形状类似但大小不同(圆、方及其它)
加工程序编程 ✓ 大小相同但位置不同(组孔、阵列等)
生产管理
✓ 特殊形状(椭圆、球等) ✓ 自动化功能(刀具长度测量) ✓换刀功能
PMC强电控制 ✓ 其它
4
BEIJING-FANUC
三、宏程序与子程序的比较
使用变量 调用方式 程序结束
嵌套
宏程序 可使用变量 G65 P_ L _<自变量赋值> ;
11
BEIJING-FANUC
二、变量的种类
变量号 #0、 #3100★
#1~#33
#100~#199 #500~#999
变量类型 空变量
局部变量
公共变量
用
途
总为空,不能写,只能读
只能用在当前用户宏程序中存储变量 断电/复位后数据初始化
在不同的程序中意义相同,各用户宏程 序公用. 断电后:#100~#199初始化为空, 500~#999数据保存
• 公共变量的写保护:参数6031~6032 ★对#500~#999进行保护,属性 为READ,以防止输入/全清的误操作.
• 系统变量:在系统中固定,属性有只读、只写、可读可写三种. • 系统常量:其值不变的常量,属性只读.
13
BEIJING-FANUC
变量的显示
四、变量的显示与设定
1).按下MDI面板上 的功能键 OFFSET
33
BEIJING-FANUC
...
34
BEIJING-FANUC
35
BEIJING-FANUC
36
BEIJING-FANUC
举例
37
BEIJING-FANUC
Fanuc螺旋铣螺纹与宏程序铣螺纹教程

Fanuc系统铣螺纹编程(宏程序与螺旋插补)举例:如下图铣削5—M30*1、5—深15mm得细牙右旋螺纹.刀具选择如下:(用废旧得钨钢刀柄磨得单刃螺纹铣刀,适合切削1、5螺距得螺纹)工艺分析:三轴联动铣削螺纹,实质就是XY平面加工整圆同时,Z轴每加工一个整圆下降一个螺纹,加工时就是以螺纹孔得中心轴线作为编程参考点,所以铣削单个螺纹孔时,通常将坐标系原点建立在孔中心,若要铣削多个螺孔,就要试着将坐标系偏移至孔得中心。
这题要铣削5个孔,中间得孔直接可以铣削,R50圆周上得4个等分螺孔,可以借助坐标偏移(fanuc系统用G52)来实现。
M30*1、5得螺纹,事先将螺纹底孔加工到28、5mm,螺纹齿高H=0、974刀具直径经检测,直径为8mm,有效加工孔深为22mm,程序如下:1、宏程序铣削螺纹单个螺纹孔铣削程序G54G90G17 坐标系原点建立在孔得中心,底孔事先加工好M03 S3500(单刃切削,高转速,小吃刀,快进给)G00Z50、G00 X0 Y0G00Z3、(安全高度,定位值就是螺距得整倍数)#1=0、3 齿高切深赋值N10#2=10、25+#1 (28、5得孔,单边14、25,刀半径4,刀具往内偏移到10、25定位)G02 X#2 Y0 I [#2/2 ]J0 F300、以半圆形式切入#3=1、5螺距PN20G02X#2Y0 Z#3I-#2 J0F3000、插补螺纹,到Z1、5得高度#3=#3 —1、5IF[#3GE -15、1 ] GOTO20 螺纹切削孔深15mmG02X0Y0 I—[ #2/2]J0F300、半圆形式切出,刀具到中心G00Z3、抬刀到安全高度,前后一致#1= #1 +0、2切削齿高,往X方向增大IF [ #1 LE 0、91]GOTO10 加工到齿高G01 X0 Y0 F300、退刀G00Z100、抬刀M30本题5-M30*1、5—15得程序主程序:G54 G90G17 坐标系原点建立在孔得中心,底孔事先加工好M03S3500 (单刃切削,高转速,小吃刀,快进给)G00 Z50、G00 X0 Y0M98 P1000调用铣床螺纹得子程序#4 = 0 角度初始赋值N30#5=50*COS [ #4 ]X坐标#6= 50*SIN[#4 ] Y坐标G52X#5Y#6 坐标偏移G00X0 Y0 到偏移之后得原点定位M98 P1000调用铣螺纹得子程序#4=#4 +90 角度增加IF [#4LE271]GOTO30加工剩余3个孔,要就是写360,第一个孔要再加工一次G00 Z100、G52 X0 Y0G54 G00 X100、Y100、M30子程序:O1000;G00X0 Y0G00Z3、(安全高度,定位值就是螺距得整倍数)#1=0、3 齿高切深赋值N10 #2=10、25+#1 (28、5得孔,单边14、25,刀半径4,刀具往内偏移到10、25定位)G02X#2 Y0 I [#2/2 ]J0 F300、以半圆形式切入#3=1、5螺距PN20G02X#2Y0Z#3I—#2 J0F3000、插补螺纹,到Z1、5得高度#3=#3 —1、5IF[#3 GE—15、1 ]GOTO20螺纹切削孔深15mmG02X0 Y0 I-[#2/2] J0F300、半圆形式切出,刀具到中心G00 Z3、抬刀到安全高度,前后一致#1 = #1 + 0、2切削齿高,往X方向增大IF [#1LE 0、91]GOTO10加工到齿高G01X0Y0 F300、退刀G00 Z10、抬刀G52 X0Y0 取消坐标偏移M99 返回主程序2、利用螺旋插补加工螺纹单个螺纹孔铣削程序G54 G90G17 坐标系原点建立在孔得中心,底孔事先加工好M03 S3500(单刃切削,高转速,小吃刀,快进给)G00 Z50、G00 X0Y0G00 Z3、(安全高度,定位值就是螺距得整倍数)#1=0、3 齿高切深赋值N10 #2=10、25+#1(28、5得孔,单边14、25,刀半径4,刀具往内偏移到10、25定位)G02X#2 Y0I [ #2/2]J0 F300、以半圆形式切入G91G02 X0 Y0Z-1、5I—#2 J0 L11F3000、每次1、5,重复11次G90G02 X0 Y0I—[#2/2 ]J0 F300、半圆形式切出,刀具到中心G00 Z3、抬刀到安全高度,前后一致#1 =#1 + 0、2切削齿高,往X 方向增大IF [#1 LE0、91 ]GOTO10加工到齿高G01X0Y0F300、退刀G00 Z100、抬刀M30本题5-M30*1、5-15得程序主程序:G54G90 G17坐标系原点建立在孔得中心,底孔事先加工好M03 S3500(单刃切削,高转速,小吃刀,快进给)G00Z50、G00 X0 Y0M98P1000调用铣床螺纹得子程序#4 = 0角度初始赋值N30#5= 50 *COS[#4] X坐标#6 =50 * SIN [#4 ]Y坐标G52 X#5 Y#6坐标偏移G00 X0Y0 到偏移之后得原点定位M98P1000调用铣螺纹得子程序#4=#4 + 90 角度增加IF[#4 LE271 ]GOTO30加工剩余3个孔,要就是写360,第一个孔要再加工一次G00Z100、G52X0Y0G54 G00 X100、Y100、M30子程序:O1000;G00X0 Y0G00Z3、(安全高度,定位值就是螺距得整倍数)#1=0、3 齿高切深赋值N10 #2=10、25+#1 (28、5得孔,单边14、25,刀半径4,刀具往内偏移到10、25定位)G02 X#2 Y0 I[#2/2 ]J0 F300、以半圆形式切入G91G02 X0Y0 Z-1、5 I—#2 J0 L11 F3000、每次1、5,重复11次G90 G02 X0 Y0 I-[ #2/2] J0F300、半圆形式切出,刀具到中心G00Z3、抬刀到安全高度,前后一致#1= #1+ 0、2 切削齿高,往X方向增大IF[#1 LE 0、91 ] GOTO10加工到齿高G90 G01 X0Y0 F300、退刀G00 Z10、抬刀G52X0Y0 取消坐标偏移M99返回主程序。
FANUC系统宏程序基础讲解

抛物线加工
G1 X 0 Z 0 F0.3; #1=0; #2=0; WHILE[#1 LE 12] DO1; G1X#1*2Z#2; #1=#1+0.5; #2=-#1*#1/12;
END1;
• 椭圆加工(参数编程)
• 程序:#1=0 (角度赋值) • WHILE[#1LE90] DO1;(循环) • #2=25*SIN[#1];(X坐标计算) • #3=25*COS[#1]-25.;(Z坐标计算,-25取Z轴的负方向) • G1 X#2 Z#3 F0.3;(直线拟合) • #1=#1+0.5;(角度计算) • END1;
G0 X 100.;
关于循环控制的注意事项
G65 宏程序非模态调用
格式:G65 P_ X_ Z_ A_ B_ C_ ; G65为自变量,直接对相对应的变量号赋 值,被调用的程序内无需再赋值, P表示被 调用的程序号。,X对应#24,Z对应#26, A对应#1,B对应#2,C对应#3。被调用 的程序最多可以4级嵌套,被调用的程序可 以再执行程序调用。被调用的程序结束符 为M99。
G66 宏程序模态调用
格式相同,但不同于G65的是G66为模态 调用,当执行完被调用的程序,返回到主 程序时,若主程序段出现轴移动,如G0或 G1,那么它执行完轴移动后再去调用宏程 序,直到主程序中出现G67,才能停止调用。
G67 取消宏程序模态调用
宏程序非模态调用:
G65 P9001 A100 B200 C300 ;
பைடு நூலகம்
WHILE[#2GT10] DO1; 当#2大于10的话,循环到 END1之间的程序,当条件不满足时,结束循环,程 序往下执行。循环最多可以3级嵌套。
举例:
#100=10;