FANUC系统宏程序编程

本系统宏程序体系采用FANUC 系统宏程序B 方式实现

一 变量

普通加工程序直接用数值指定G 代码和移动距离;例如,GO1和X100.0。使用用户宏程序时,数值可以直接指定或用变量指定。当用变量时,变量值可用程序或用MDI 面板上的操作改变。

#1=#2+100

G01 X#1 F300

说明:

变量的表示

计算机允许使用变量名,用户宏程序不行。变量用变量符号(#)和后面的变量号指定。 例如:#1

表达式可以用于指定变量号。此时,表达式必须封闭在括号中。

例如:#[#1+#2-12]

变量的类型

变量根据变量号可以分成四种类型

变量号

#0-#49 变量类型 局部变量 功能 局部变量只能用在宏程序中存储数据, 例如, 运算结果. 当断电

时, 局部变量被初始化为0. 调用宏程序时, 自变量对局部变量赋

值,

公共变量在不同的宏程序中的意义相同. 当断电时, 公共变量

初始化为0.

目前版本中,某些公众变量被赋予特殊意义(系统变量), 用于描

述CNC 运行时各种数据的变化, 这些变量包括:

#449用于指明固定循环退刀模式(G98,G99), 如在G99方式

下,#449变量为1; 如在G98方式下,#449变量为-1.

#450用于指明当前程序段处于绝对坐标编程模式(G90)还是

相对坐标编程模式(G91).如在G90方式下,#450变量为1; 如在

G91方式下,#450变量为-1.

#451,#452,#453,#454用于存储刀具当前位置(X,Y,Z,A轴)

在后期的版本中, 将会安排专门的空间作为系统变量区.

变量值的范围

局部变量和公共变量在系统内采用浮点数方式存储 #50-#499 公共变量

小数点的省略

当在程序中定义变量值时,小数点可以省略。

例:当定义#1=123;变量#1的实际值是123.000。

变量的引用

为在程序中使用变量值,指定后跟变量号的地址。

例如:G01X#1+#2F#3或者G01X[#1+#2]F#3

限制

程序号,顺序号和任选程序段跳转号不能使用变量。

例:下面情况不能使用变量:

0#1;

/#2G00X100.0;

N#3Y200.0;

二 算术运算和逻辑运算

置换

#I=#j

算术运算

加:#I=#j+#k,减:#I=#j-#k,乘:#I=#j*#k,除:#I=#j/#k。

逻辑运算

下一版本将增加以下函数调用:

与:#I=#J AND #k或:#I=#J OR #k,

异:#I=#J XOR #k,

函数

正弦:#I=SIN[#j],余弦:#I=COS[#j] 正切:#I=TAN[#j]

(目前版本角度单位为弧度,后续版本将改为度)

下一版本将增加以下函数调用:

反正切:#I=ATAN[#j]

平方根:#I=SQRT[#j],绝对值:#I=ABS[#j]

下取整:#I=FIX[#j],上取整:#I=FUP[#j]

四舍五入:#I=ROUND[#j]

转移与循环

在宏程序中,使用GOTO 语句和IF 语句可以改变程序的执行方向,转移和循环指令有3种。

无条件的转移

格式:GOTO n;n为程序的顺序号(1—9999)

铣喇叭代码如下:

%101; 定义第99号子程序

#1=0

#2=0

G0 Z1.5

X15 Y0

N11 #2=3*SIN[#1]

#3=3+3*[1-COS[#1]]

G01 Z-#2 F40

X#3

G03 X#3 I-#3

G01 X15 Y0

#1=#1+3

IF [#1 LE 90] GOTO 11

G0 Z3

M99

固定循环指令G81的实现:

本系统可通过宏指令实现用户自定义G 指令,下面以G81指令实现为例进行讲解: G81循环可以用于镗孔,执行程序G81 X~ Y~ Z~ A~ B~ C~ R~ L~ ,其过程如下:

1. 预备移动。

2. 以当前进给移动Z 轴到Z 位置。

3. Z轴以最大进给速度回缩到清除碎片的Z 轴位置。

例 1. 假定当前点的坐标为(1、2、3) ,被选平面为XY 平面,执行下面的数控代码: G90 G81 G98 X4 Y5 Z1.5 R2.8

G90把距离模式设定为绝对距离模式,G98设定回缩模式是回到循环起始点,G81设定固定循环只运行一次。X 数字和 X 位置为 4,Y 数字和 Y 位置为 5,Z 数字和Z 位置为 1.5, R 数字和清除碎片时Z 轴位置为2.8,执行上面的程序会发生以下动作:

1. 平行于XY 平面以最大进给速度移动到坐标为(4、5、3) 的位置。

2. 平行于Z 轴以最大进给速度移动到坐标为(4、5、2.8) 的位置。

3. 平行于Z 轴进给到坐标为(4、5、1.5) 的位置。

4. 平行于Z 轴以最大进给速度移动到坐标为(4、5、3) 的位置。

例2. 假定当前点的坐标为(1、2、3) ,被选平面为XY 平面,执行下面的数控代码: G91 G81 G98 X4 Y5 Z-0.6 R1.8 L3

G91把距离模式设定为增量距离模式,G98设定回缩模式是回到循环起始点,G81设定固定循环次数为3次。X 数字为4,Y 数字为5,Z 数字为-0.6,R 数字为1.8, X 初始位置为 5 (=1+4), Y 初始位置为7 (=2+5), Z 初始位置为4.8 (=1.8+3),Z 位置为

4.2 (=4.8-0.6),固定循环开始前的Z 位置为3。执行上面的程序会发生以下动作:

第一个动作是沿Z 轴以最大进给速度移动到坐标为(1、2、4.8) 的位置,因为固定循环开

始前的Z 位置小于清除碎片的Z 轴位置。

第一个循环包括三个动作:

1. 平行于XY 平面以最大进给速度移动到坐标为(5、7、4.8) 的位置。

2. 平行于Z 轴进给到坐标为(5、7、4.2) 的位置。

3. 平行于Z 轴以最大进给速度移动到坐标为(5、7、4.8) 的位置。 第二个循环包括三个动作,X 位置为9 (=5+4),Y 位置为12 (=7+5) 。

1. 平行于XY 平面以最大进给速度移动到坐标为(9、12、4.8) 的位置。

2. 平行于Z 轴进给到坐标为(9、12、4.2) 的位置。

3. 平行于Z 轴以最大进给速度移动到坐标为(9、12、4.8) 的位置。 第三个循环包括三个动作,X 位置为13 (=9+4),Y 位置为17 (=12+5)。

1. 平行于XY 平面以最大进给速度移动到坐标为(13、17、4.8) 的位置。

2. 平行于Z 轴进给到坐标为(13、17、4.2) 的位置。

3. 平行于Z 轴以最大进给速度移动到坐标为(13、17、4.8) 的位置。

G81实现代码如下:

(#490 X #491 Y #492 Z #493 R #494 L)

;#490变量接收G81指令X 功能字

;#491变量接收G81指令Y 功能字

;#492变量接收G81指令Z 功能字

;#493变量接收G81指令R 功能字

;#494变量接收G81指令L 功能字

O9081; 自定义G81指令子程序号, 如预定义G103号指令, 则该指令的子程序号 ; 为9103

#1=#451;#1变量用于接收刀具X 轴位置, 注意该位置坐标为工件坐标 #2=#452; #2变量用于接收刀具Y 轴位置, 注意该位置坐标为工件坐标 #3=#453; #3变量用于接收刀具Z 轴位置, 注意该位置坐标为工件坐标 IF #450LT0 GOTO1; 判别当前坐标模式为绝对坐标模式还是增量坐标模式 (绝对坐标模式下变量初始化)

#4=#493;

#5=#492

#6=#490-#1

#7=#491-#2

GOTO2

(增量坐标模式下变量初始化)

N1 #4=#3+#493

#5=#3+#492

#6=#490

#7=#491

(初始化后,#4存放R 点Z 轴坐标,#5存放Z 点Z 轴坐标)

(#6存放X 轴增进值,#7存放Y 轴增进值)

N2 IF [#449LT0]*[#4LT#3] GOTO3; 如果固定循环返回指令为G98并且R 点 ; 低于固定循环前初始Z 位置,执行N3指令(返回点位置为固定循环前Z 位置) ; 否则执行下条指令(返回点位置为R 点Z 位置)

本系统宏程序体系采用FANUC 系统宏程序B 方式实现

一 变量

普通加工程序直接用数值指定G 代码和移动距离;例如,GO1和X100.0。使用用户宏程序时,数值可以直接指定或用变量指定。当用变量时,变量值可用程序或用MDI 面板上的操作改变。

#1=#2+100

G01 X#1 F300

说明:

变量的表示

计算机允许使用变量名,用户宏程序不行。变量用变量符号(#)和后面的变量号指定。 例如:#1

表达式可以用于指定变量号。此时,表达式必须封闭在括号中。

例如:#[#1+#2-12]

变量的类型

变量根据变量号可以分成四种类型

变量号

#0-#49 变量类型 局部变量 功能 局部变量只能用在宏程序中存储数据, 例如, 运算结果. 当断电

时, 局部变量被初始化为0. 调用宏程序时, 自变量对局部变量赋

值,

公共变量在不同的宏程序中的意义相同. 当断电时, 公共变量

初始化为0.

目前版本中,某些公众变量被赋予特殊意义(系统变量), 用于描

述CNC 运行时各种数据的变化, 这些变量包括:

#449用于指明固定循环退刀模式(G98,G99), 如在G99方式

下,#449变量为1; 如在G98方式下,#449变量为-1.

#450用于指明当前程序段处于绝对坐标编程模式(G90)还是

相对坐标编程模式(G91).如在G90方式下,#450变量为1; 如在

G91方式下,#450变量为-1.

#451,#452,#453,#454用于存储刀具当前位置(X,Y,Z,A轴)

在后期的版本中, 将会安排专门的空间作为系统变量区.

变量值的范围

局部变量和公共变量在系统内采用浮点数方式存储 #50-#499 公共变量

小数点的省略

当在程序中定义变量值时,小数点可以省略。

例:当定义#1=123;变量#1的实际值是123.000。

变量的引用

为在程序中使用变量值,指定后跟变量号的地址。

例如:G01X#1+#2F#3或者G01X[#1+#2]F#3

限制

程序号,顺序号和任选程序段跳转号不能使用变量。

例:下面情况不能使用变量:

0#1;

/#2G00X100.0;

N#3Y200.0;

二 算术运算和逻辑运算

置换

#I=#j

算术运算

加:#I=#j+#k,减:#I=#j-#k,乘:#I=#j*#k,除:#I=#j/#k。

逻辑运算

下一版本将增加以下函数调用:

与:#I=#J AND #k或:#I=#J OR #k,

异:#I=#J XOR #k,

函数

正弦:#I=SIN[#j],余弦:#I=COS[#j] 正切:#I=TAN[#j]

(目前版本角度单位为弧度,后续版本将改为度)

下一版本将增加以下函数调用:

反正切:#I=ATAN[#j]

平方根:#I=SQRT[#j],绝对值:#I=ABS[#j]

下取整:#I=FIX[#j],上取整:#I=FUP[#j]

四舍五入:#I=ROUND[#j]

转移与循环

在宏程序中,使用GOTO 语句和IF 语句可以改变程序的执行方向,转移和循环指令有3种。

无条件的转移

格式:GOTO n;n为程序的顺序号(1—9999)

铣喇叭代码如下:

%101; 定义第99号子程序

#1=0

#2=0

G0 Z1.5

X15 Y0

N11 #2=3*SIN[#1]

#3=3+3*[1-COS[#1]]

G01 Z-#2 F40

X#3

G03 X#3 I-#3

G01 X15 Y0

#1=#1+3

IF [#1 LE 90] GOTO 11

G0 Z3

M99

固定循环指令G81的实现:

本系统可通过宏指令实现用户自定义G 指令,下面以G81指令实现为例进行讲解: G81循环可以用于镗孔,执行程序G81 X~ Y~ Z~ A~ B~ C~ R~ L~ ,其过程如下:

1. 预备移动。

2. 以当前进给移动Z 轴到Z 位置。

3. Z轴以最大进给速度回缩到清除碎片的Z 轴位置。

例 1. 假定当前点的坐标为(1、2、3) ,被选平面为XY 平面,执行下面的数控代码: G90 G81 G98 X4 Y5 Z1.5 R2.8

G90把距离模式设定为绝对距离模式,G98设定回缩模式是回到循环起始点,G81设定固定循环只运行一次。X 数字和 X 位置为 4,Y 数字和 Y 位置为 5,Z 数字和Z 位置为 1.5, R 数字和清除碎片时Z 轴位置为2.8,执行上面的程序会发生以下动作:

1. 平行于XY 平面以最大进给速度移动到坐标为(4、5、3) 的位置。

2. 平行于Z 轴以最大进给速度移动到坐标为(4、5、2.8) 的位置。

3. 平行于Z 轴进给到坐标为(4、5、1.5) 的位置。

4. 平行于Z 轴以最大进给速度移动到坐标为(4、5、3) 的位置。

例2. 假定当前点的坐标为(1、2、3) ,被选平面为XY 平面,执行下面的数控代码: G91 G81 G98 X4 Y5 Z-0.6 R1.8 L3

G91把距离模式设定为增量距离模式,G98设定回缩模式是回到循环起始点,G81设定固定循环次数为3次。X 数字为4,Y 数字为5,Z 数字为-0.6,R 数字为1.8, X 初始位置为 5 (=1+4), Y 初始位置为7 (=2+5), Z 初始位置为4.8 (=1.8+3),Z 位置为

4.2 (=4.8-0.6),固定循环开始前的Z 位置为3。执行上面的程序会发生以下动作:

第一个动作是沿Z 轴以最大进给速度移动到坐标为(1、2、4.8) 的位置,因为固定循环开

始前的Z 位置小于清除碎片的Z 轴位置。

第一个循环包括三个动作:

1. 平行于XY 平面以最大进给速度移动到坐标为(5、7、4.8) 的位置。

2. 平行于Z 轴进给到坐标为(5、7、4.2) 的位置。

3. 平行于Z 轴以最大进给速度移动到坐标为(5、7、4.8) 的位置。 第二个循环包括三个动作,X 位置为9 (=5+4),Y 位置为12 (=7+5) 。

1. 平行于XY 平面以最大进给速度移动到坐标为(9、12、4.8) 的位置。

2. 平行于Z 轴进给到坐标为(9、12、4.2) 的位置。

3. 平行于Z 轴以最大进给速度移动到坐标为(9、12、4.8) 的位置。 第三个循环包括三个动作,X 位置为13 (=9+4),Y 位置为17 (=12+5)。

1. 平行于XY 平面以最大进给速度移动到坐标为(13、17、4.8) 的位置。

2. 平行于Z 轴进给到坐标为(13、17、4.2) 的位置。

3. 平行于Z 轴以最大进给速度移动到坐标为(13、17、4.8) 的位置。

G81实现代码如下:

(#490 X #491 Y #492 Z #493 R #494 L)

;#490变量接收G81指令X 功能字

;#491变量接收G81指令Y 功能字

;#492变量接收G81指令Z 功能字

;#493变量接收G81指令R 功能字

;#494变量接收G81指令L 功能字

O9081; 自定义G81指令子程序号, 如预定义G103号指令, 则该指令的子程序号 ; 为9103

#1=#451;#1变量用于接收刀具X 轴位置, 注意该位置坐标为工件坐标 #2=#452; #2变量用于接收刀具Y 轴位置, 注意该位置坐标为工件坐标 #3=#453; #3变量用于接收刀具Z 轴位置, 注意该位置坐标为工件坐标 IF #450LT0 GOTO1; 判别当前坐标模式为绝对坐标模式还是增量坐标模式 (绝对坐标模式下变量初始化)

#4=#493;

#5=#492

#6=#490-#1

#7=#491-#2

GOTO2

(增量坐标模式下变量初始化)

N1 #4=#3+#493

#5=#3+#492

#6=#490

#7=#491

(初始化后,#4存放R 点Z 轴坐标,#5存放Z 点Z 轴坐标)

(#6存放X 轴增进值,#7存放Y 轴增进值)

N2 IF [#449LT0]*[#4LT#3] GOTO3; 如果固定循环返回指令为G98并且R 点 ; 低于固定循环前初始Z 位置,执行N3指令(返回点位置为固定循环前Z 位置) ; 否则执行下条指令(返回点位置为R 点Z 位置)


相关文章

  • FANUC数控系统简介
  • 一.FANUC数控系统的发展 FANUC 公司创建于1956年,1959年首先推出了电液步进电机,在后来的若干年中逐步发展并完善了以硬件为主的开环数控系统.进入70年代,微电子技术.功率电子技术,尤其是计算技术得到了飞速发展,FANUC公司 ...查看


  • 数控机床操作面板结构及功能说明
  • 数控机床操作面板结构及功能说明 Saturday, September 29, 2007 12:38:14 AM 发布:sunlight 机床操作面板由大小两块组成,小面板上安装有主轴负载表及控制器电源通断按钮,大操作面板位于操作下部,装有 ...查看


  • FANUC 0i系统数控车床编程指令
  • )FANUC 0i系统数控车床 重要提示:本系统中车床采用直径编程. G20,G21,G40,G41,G42,G54-G59与FANUC 数控铣相同,参考上一节. 支持的M 代码 附录四 加工一零件完整步骤索引 1 选择机床(可参见本章节2 ...查看


  • FANUC数控系统面板介绍与编程操作
  • FANUC 数控系统面板介绍与编程操作 一.基本面板 FANUC 0i Mate-TD数控系统的操作面板可分为:LCD 显示区.MDI 键盘区(包括字符键和功能键等).软键开关区和存储卡接口. 图4-1 FANUC 0i Mate- TD ...查看


  • Fanuc数控铣床镜像指令编程实例一文通
  • (文章底部可以评论,欢迎对文章进行点评和知识补充) 精彩推荐 每天学点机械知识 Fanuc数控系统的镜像功能对编程很有用,可以实现子程序的复用,节省编程时间,提高了工作效率.所用指令介绍如下: 对Y轴镜像   G51.1 X0  系统以垂直 ...查看


  • FANUC系统宏程序编程 1
  • FANUC系统宏程序编程 FANUC系统宏程序编程 一 变量 普通加工程序直接用数值指定G代码和移动距离:例如,GO1和X100.0.使用用户宏程序时,数值可以直接指定或用变量指定.当用变量时,变量值可用程序或用MDI面板上的操作改变. # ...查看


  • [H编程]G代码知识 数控机床编程(附FANUC与SIMENS的G指令列表)
  • G代码功能简述] G00------快速定位:G01------直线插补:G02------顺时针方向圆弧插补:G03------逆时针方向圆弧插补:G04------定时暂停:G05------通过中间点圆弧插补:G06------抛物线 ...查看


  • FANUC系统报警代码表2011
  • FANUC 系统报警代码表 1. 程序报警(P/S报警) 报警号 报 警 内 容 000 修改后须断电才能生效的参数,参数修改完毕后应该断电. 001 TH报警,外设输入的程序格式错误. 002 TV报警,外设输入的程序格式错误. 003 ...查看


  • 法兰克编程说明
  • FANUC 0-TD系统 G 代码命令 代码组及其含义 "模态代码" 和 "一般" 代码 "模态代码" 的功能在它被执行后会继续维持,而 "一般代码" 仅仅在收 ...查看


热门内容