FANUC 0iMC系统加工中心A或铣床宏程序.docx

上传人:b****9 文档编号:26333441 上传时间:2023-06-17 格式:DOCX 页数:35 大小:427.28KB
下载 相关 举报
FANUC 0iMC系统加工中心A或铣床宏程序.docx_第1页
第1页 / 共35页
FANUC 0iMC系统加工中心A或铣床宏程序.docx_第2页
第2页 / 共35页
FANUC 0iMC系统加工中心A或铣床宏程序.docx_第3页
第3页 / 共35页
FANUC 0iMC系统加工中心A或铣床宏程序.docx_第4页
第4页 / 共35页
FANUC 0iMC系统加工中心A或铣床宏程序.docx_第5页
第5页 / 共35页
点击查看更多>>
下载资源
资源描述

FANUC 0iMC系统加工中心A或铣床宏程序.docx

《FANUC 0iMC系统加工中心A或铣床宏程序.docx》由会员分享,可在线阅读,更多相关《FANUC 0iMC系统加工中心A或铣床宏程序.docx(35页珍藏版)》请在冰豆网上搜索。

FANUC 0iMC系统加工中心A或铣床宏程序.docx

FANUC0iMC系统加工中心A或铣床宏程序

FANUC-0i-MC系统宏程序

虽然子程序对编制相同的加工程序非常有用,但用户宏程序由于允许使用变量、算术和逻辑运算及条件转移,使得编制同样的加工程序更简便。

(一)变量

1.变量的表示

变量用变量符号(#)和后面的变量号指定,如:

#1;表达式可以用于指定变量号,此时表达式必须封闭在括号中,如:

#[#1+#2-12]。

变量号可用变量代替,如#[#3],设#3=1,则#[#3]为#1。

2.变量的类型

变量根据变量号可以分成四种类型,具体见表1-1。

表1-1变量的类型

变量号

变量类型

功能

#0

空变量

该变量总是空,没有值能赋给该变量。

#1~#33

局部变量

局部变量只能用在宏程序中存储数据,例如,运算结果。

当断电时局部变量被初始化为空。

调用宏程序时,自变量对局部变量赋值。

#100~#199

#500~#999

公共变量

公共变量在不同的宏程序中的意义相同。

当断电时变量#100~#199初始化为空;变量#500~#999的数据保存,即使断电也不丢失。

#1000~

系统变量

系统变量用于读和写CNC的各种数据,例如,刀具的当前位置和补偿值。

3.变量的引用

在地址后指定变量号即可引用其变量值。

当用表达式指定变量时,要把表达式放在括号中。

如:

G01X[#1+#2]F#3;

改变引用变量值的符号,要把负号“-”放在#的前面,如:

G00X-#1;

当引用未定义的变量时,变量及地址字都被忽略,如:

当变量#1的值是0,并且变量#2的值是空时,G00X#1Y#2的执行结果为G00X0。

在编程时,变量的定义、变量的运算只允许每行写一个(见表1-2),否则系统报警。

表1-2变量的正确和错误编程方法对比

正确的编程方法

错误的编程方法

N100#1=0

N100#1=0#2=6#3=8

N110#2=6

N110#4=#2*SIN[#1]+#3#5=#2-#2*COS[#1]

N120#3=8

N130#4=#2*SIN[#1]+#3

N140#5=#2-#2*COS[#1]

(二)算术和逻辑运算

变量的算术和逻辑运算见表1-3。

表1-3算术和逻辑运算

功能

格式

备注

功能

格式

备注

定义

#i=#j

平方根

#i=SQRT[#j]

加法

减法

乘法

除法

#i=#j+#k

#i=#j-#k

#i=#j*#k

#i=#j/#k

绝对值

#i=ABS[#j]

舍入

#i=ROUND[#j]

四舍五入取整

上取整

#i=FUP[#j]

下取整

#i=FIX[#j]

正弦

反正弦

余弦

反余弦

正切

反正切

#i=SIN[#j]

#i=ASIN[#j]

#i=COS[#j]

#i=ACOS[#j]

#i=ATN[#j]

#i=ATAN[#j]/[#k]

角度以度指定。

表示为65.5度

自然对数

#i=LN[#j]

指数函数

#i=EXP[#j]

#i=#jOR#k

逻辑运算一位一位地按二进制数执行

异或

#i=#jXOR#k

#i=#jAND#K

从BCD转为BIN

从BIN转为BCD

#i=BIN[#j]

#i=BCD[#j]

用于与PMC的信息交换

(BIN:

二进制;BCD:

十进制)

几点说明:

1.上取整和下取整

CNC处理数值运算时,若操作后产生的整数绝对值大于原数的绝对值时为上取整;若小于原数的绝对值为下取整。

对于负数的处理应注意。

如:

#1=1.2,#2=-1.2,则#3=FUP[#1]→#3=2;#3=FIX[#1]→#3=1;#3=FUP[#2]→#3=-2;#3=FIX[#2]→#3=-1。

2.运算次序

函数→乘和除运算(*、/、AND)→加和减运算(+、-、OR、XOR)。

3.括号嵌套

括号(方括号)用于改变运算次序。

括号可以使用5级,包括函数内部使用的括号。

圆括号用于注释语句。

如:

#1=SIN[[[#2+#3]*#4+#5]*#6](3重括号)

4.运算符

运算符见表1-4。

表1-4运算符

运算符

含义

运算符

含义

EQ

等于(=)

GE

大于或等于(≥)

NE

不等于(≠)

LT

小于(<)

GT

大于(>)

LE

小于或等于(≤)

5.反三角函数的取值范围

(1)#i=ASIN[#j]

当参数No.6004#0设为“0”时,90°~270°;当参数No.6004#0设为“1”时,-90°~90°。

(2)#i=ACOS[#j]

取值范围为0°~180°。

(3)#i=ATAN[#j]/[#k]

当参数No.6004#0设为“0”时,0°~360°;当参数No.6004#0设为“1”时,-180°~180°。

(三)宏程序语句和NC语句

下面的程序段为宏程序语句:

1.包含算术或逻辑运算(=)的程序段;

2.包含控制语句(如:

GOTO、DO、END)的程序段;

3.包含宏程序调用指令(如:

用G65、G66、G67或其它G指令、M指令调用宏程序)的程序段。

除了宏程序语句以外的任何程序段都为NC语句。

(四)转移和循环

在程序中,使用GOTO语句和IF语句可以改变控制的流向。

1.无条件转移(GOTO语句)

转移到标有顺序号N的程序段。

可用表达式指定顺序号。

编程格式:

GOTON__(N__:

顺序号。

1~99999)

例:

GOTO1

GOTO#10

2.条件转移(IF语句)

IF之后指定条件表达式。

(1)如果指定的条件表达式满足时,转移到标有顺序号N的程序段;如果指定的条件表达式不满足,执行下个程序段。

编程格式:

IF[条件表达式]GOTON__

例:

如果变量#1大于10,转移到程序段号N70的程序段。

(2)如果条件表达式满足,执行预先决定的宏程序语句。

只执行一个宏程序语句。

编程格式:

IF[条件表达式]THEN宏程序语句

例:

如果#1和#2的值相同,0赋给#3→IF[#1EQ#2]THEN#3=0

3.循环(WHILE语句)

在WHILE后指定一个条件表达式。

当指定条件满足时,执行从DO到END之间的程序。

否则,转到END后的程序段。

编程格式:

WHILE[条件表达式]DOm

1,2,3

ENDm

DO后的号和END后的号是指定程序执行范围的标号,标号值为1,2,3。

循环语句的嵌套可以使用以下几种:

(1)标号1到3可以根据要求多次使用。

(2)循环可以从里到外嵌套3级

图1-1圆弧的宏程序

(3)控制可以转到循环的外边

例1-1用G1指令编写图1-1中AB圆弧的宏程序如下(不考虑刀具半径):

用IF语句

用WHILE语句

%

%

:

3012

程序名

:

3112

程序名

M6T1

换上1号刀

M6T1

换上1号刀

G54G90G0G43H1Z50

选择坐标系,调入长度补偿

G54G90G0G43H1Z50

选择坐标系,调入长度补偿

M3S800

主轴正转,转速800r/min

M3S800

主轴正转,转速800r/min

X30Y0

快速定位到A点上方

X30Y0

快速定位到A点上方

Z2

主轴下降

Z2

主轴下降

G1Z-2F30

切入Z-2

G1Z-2F30

切入Z-2

#1=0

被加数变量的初值

#1=0

被加数变量的初值

#2=30

存储数变量的初值

#2=30

存储数变量的初值

N1#3=#2*COS[#1]

计算变量

WHILE[#1LE90]DO1

当角度小于等于90时循环DO1

#4=#2*SIN[#1]

计算变量

#3=#2*COS[#1]

计算变量

IF[#1GT90]GOTO2

当角度大于90时转移到N2

#4=#2*SIN[#1]

计算变量

G1X#3Y#4F50

以50mm/min进给

G1X#3Y#4F50

以50mm/min进给

#1=#1+1

计算和数(角度增加1度)

#1=#1+1

计算和数

GOTO1

转移到N1

END1

循环到END1

N2G0Z200

快速上升

G0Z200

快速上升

G49Z0

取消长度补偿

G49Z0

取消长度补偿

M30

程序结束

M30

程序结束

%

%

(五)宏程序调用

宏程序的调用方法有:

①非模态调用(G65);②模态调用(G66、G67);③用G指令调用宏程序;④用M指令调用宏程序;⑤用M指令调用子程序;⑥用T指令调用子程序。

宏程序调用不同于子程序调用(M98),用宏程序调用可以指定自变量(数据传送到宏程序),M98没有该功能。

1.非模态调用(G65)

编程格式:

G65P__L

<自变量指定>

P__:

要调用的程序

重复次数(1~9999的重复次数,省略L值时,默认值为1)

自变量:

数据传递到宏程序(其值被赋值到相应的局部变量)

如:

A1.0代表#1=1.0

B2.0代表#2=2.0

自变量的指定形式有两种。

自变量指定Ⅰ使用除了G、L、O、N和P以外的字母,每个字母指定一次(表1-5);自变量指定Ⅱ(表1-6)使用A、B、C和Ii、Ji和Ki(i为1~10)。

根据使用的字母,自动地决定自变量的类型。

任何自变量前编写指定G65。

表1-5自变量指定Ⅰ

地址

变量号

地址

变量号

地址

变量号

地址

变量号

地址

变量号

地址

变量号

地址

变量号

A

#1

I

#4

D

#7

H

#11

R

#18

U

#21

X

#24

B

#2

J

#5

E

#8

M

#13

S

#19

V

#22

Y

#25

C

#3

K

#6

F

#9

Q

#17

T

#20

W

#23

Z

#26

表1-6自变量指定Ⅱ

地址

变量号

地址

变量号

地址

变量号

地址

变量号

地址

变量号

地址

变量号

A

#1

I1

#4

I3

#10

I5

#16

I7

#22

I9

#28

B

#2

J1

#5

J3

#11

J5

#17

J7

#23

J9

#29

C

#3

K1

#6

K3

#12

K5

#18

K7

#24

K9

#30

I2

#7

I4

#13

I6

#19

I8

#25

I10

#31

J2

#8

J4

#14

J6

#20

J8

#26

J10

#32

K2

#9

K4

#15

K6

#21

K8

#27

K10

#33

2.模态调用(G66)

编程格式:

G66P__L

<自变量指定>

G67

P__:

要调用的程序

重复次数(1~9999的重复次数,省略L值时,默认值为1)

自变量:

数据传递到宏程序(其值被赋值到相应的局部变量)

如:

A1.0代表#1=1.0

B2.0代表#2=2.0

指定G67指令时,其后面的程序段不再执行模态宏程序调用。

(六)宏程序的编制

(a)(b)

图1-2球面台与凹球面宏程序加工

数控系统不能同时处理宏程序中的坐标位置计算和半径补偿的计算,即数控系统在遇到宏程序的程序段时将取消半径补偿的功能。

因此在编制宏程序时必须计算出刀具中心的轨迹,并且以此轨迹作为编程的轨迹,这一点在编程过程中必须注意。

1.用立铣刀加工球面台、用球铣刀加工凹球面的宏程序

例1-2在图1-2a、b中,球面的半径为SR20(#2)、球面台展角(最大为90°)为

(#6),图1-2a中所用立铣刀的半径为R8(#3);图2-2b中所用球铣刀的半径为R6(#3),球铣刀的刀位点在球心处,在对刀及编程时应注意。

球面台外圈部分应先切除,即已加工出圆柱,程序略。

用立铣刀加工球面台的宏程序为:

%

:

3113

程序名

N10M6T1

换上1号刀,

球铣刀

N20G54G90G0G43H1Z200

刀具快速移动Z200处(在Z方向调入了刀具长度补偿)

N30M3S2000

主轴正转,转速2000r/min

N40X0Y0

刀具快速定位(下面#1=0时#5=0)

N50Z2

Z轴下降

N60M8

切削液开

N70G1Z0F50

刀具移动到工件表面的平面

N80#1=0

定义变量的初值(角度初始值)

N90#2=20

定义变量(球半径)

N100#3=8

定义变量(刀具半径)

N110#6=67

定义变量的初值(角度终止值)

N120WHILE[#1LE67]DO1

循环语句,当#1≤67°时在N120~N190之间循环,加工球面

N130#4=#2*[1-COS[#1]]

计算变量

N140#5=#3+#2*SIN[#1]

计算变量

N150G1X#5Y0F200

每层铣削时,X方向的起始位置

N160Z-#4F50

到下一层的定位

N170G2I-#5F200

顺时针加工整圆

N180#1=#1+1

更新角度(加工精度越高,则角度的增量值应取得越小,这儿取1°)

N190END1

循环语句结束

N200G0Z200M9

加工结束后返回到Z200,切削液关

N210G49G90Z0

取消长度补偿,Z轴快速移动到机床坐标Z0处

N220M30

程序结束

%

用球铣刀加工凹球面的宏程序为:

%

:

3213

程序名

N10M6T1

换上1号刀,

立铣刀

N20G54G90G0G43H1Z200

刀具快速移动Z200处(在Z方向调入了刀具长度补偿)

N30M3S2000

主轴正转,转速2000r/min

N40X8Y0

刀具快速定位(下面#1=0时#5=#3=8)

N50Z8

Z轴下降(注意球铣刀的刀位点,Z<6就会撞刀=

N60M8

切削液开

N70#1=1

定义变量的初值(角度初始值)

N80#2=20

定义变量(球半径)

N90#3=6

定义变量(刀具半径)

N100#6=67

定义变量的初值(角度终止值)

N110#7=#2-#2*COS[#6]

计算变量

N120G1Z-[#7-#3]F50

刀具向下切削

N130WHILE[#1LE67]DO1

循环语句,当#1≤67°时在N130~N190之间循环,加工凹球面

N140#4=[#2-#3]*COS[#1]-#2*COS[#6]

计算变量

N150#5=[#2-#3]*SIN[#1]

计算变量

N160Z-#4F50

到上一层的定位

N170G1X#5Y0

每层铣削时,X方向的起始位置

N180G3I-#5F200

逆时针加工整圆

N190#1=#1+1

更新角度

N200END1

循环语句结束

N210G0Z200M9

加工结束后返回到Z200,切削液关

N22G49G90Z0

取消长度补偿,Z轴快速移动到机床坐标Z0处

N230M30

程序结束

%

2.用键槽铣刀加工圆锥台的宏程序

例1-3在图1-3中,圆锥台上面的半径为R12(#2)、下面的半径为R20(#3),键槽铣刀的半径为R6(#6)。

圆锥台R20以外部分应先切除(即已加工出圆柱),程序略。

(a)放射切削(b)等高切削

图1-3圆锥台的宏程序加工

(1)用放射切削时,编写的宏程序为:

%

:

3114

程序名

N10M6T1

换上1号刀,

键槽铣刀

N20G54G90G0G43H1Z200

刀具快速移动Z200处(在Z方向调入了刀具长度补偿)

N30M3S2000

主轴正转,转速2000r/min

N40X18Y0

刀具快速定位(下面#1=0时#4=#2+#6=18)

N50Z2

Z轴下降

N60M8

切削液开

N70G1Z0F50

刀具移动到工件表面的平面

N80#1=0

定义变量的初值(角度初始值)

N90#2=12

定义变量(锥台上面的半径)

N100#3=20

定义变量(锥台下面的半径)

N110#6=6

定义变量(刀具半径)

N120#9=20

定义变量(圆锥台高)

N130WHILE[#1LE360]DO1

循环语句,当#1≤360°时在N130~N220之间循环,加工圆锥台

N140#4=[#2+#6]*COS[#1]

计算变量

N150#5=[#2+#6]*SIN[#1]

计算变量

N160#7=[#3+#6]*COS[#1]

计算变量

N170#8=[#3+#6]*SIN[#1]

计算变量

N180G1X#4Y#5Z0F200

铣削时,圆锥台上面的起始位置

N190X#7Y#8Z-#9

铣削时,圆锥台下面的终止位置

N200G0Z0

快速抬刀

N210#1=#1+1

更新角度(加工精度越高,则角度的增量值应取得越小,这儿取1°)

N220END1

循环语句结束

N230G0Z200M9

加工结束后返回到Z200,切削液关

N240G49G90Z0

取消长度补偿,Z轴快速移动到机床坐标Z0处

N250M30

程序结束

%

(2)用等高切削时,编写的宏程序为:

%

:

3214

程序名

N10M6T1

换上1号刀,

键槽铣刀

N20G54G90G0G43H1Z200

刀具快速移动Z200处(在Z方向调入了刀具长度补偿)

N30M3S2000

主轴正转,转速2000r/min

N40X18Y0

刀具快速定位(下面#1=0时#4=#2+#6=18)

N50Z2

Z轴下降

N60M8

切削液开

N70G1Z0F50

刀具移动到工件表面的平面

N80#2=12

定义变量(锥台上面的半径)

N90#3=20

定义变量(锥台下面的半径)

N100#6=6

定义变量(刀具半径)

N110#9=20

定义变量(圆锥台高)

N120#10=0

定义变量的初值

N130#12=ATAN[#3-#2]/[#9]

定义变量(计算角度)

N140WHILE[#10LE#9]DO1

循环语句,当#10≤#9时在N140~N200之间循环,加工圆锥台

N150#11=#2+#6+#10*TAN[#12]

计算变量

N160G1X#11Y0F200

每层铣削时,X方向的起始位置

N170Z-#10F50

到下一层的定位

N180G2I-#11F200

顺时针加工整圆,分层等高加工圆锥台

N190#10=#10+0.1

更新切削深度(加工精度越高,则增量值应取得越小)

N200END1

循环语句结束

N210G0Z200M9

加工结束后返回到Z200,切削液关

N220G49G90Z0

取消长度补偿,Z轴快速移动到机床坐标Z0处

N230M30

程序结束

%

3.用立铣刀加工上圆下方的宏程序

图1-4上圆下方的宏程序加工

例1-4在图1-4中,上圆的半径为R15(#2)、下方的半边长为20(#3),立铣刀的半径为R8(#4)。

下方以外部分应先切除(即已加工出一个方台),程序略。

用放射切削时,编写的宏程序为:

主程序

%

:

3015

主程序名

N10M6T1

换上1号刀,

立铣刀

N20G54G90G0G43H1Z200

刀具快速移动Z200处(在Z方向调入了刀具长度补偿)

N30M3S2000

主轴正转,转速2000r/min

N40Z2M8

Z轴下降,切削液开

N50M98P43115

调用O3115子程序4次

N60G0Z200M9

加工结束后返回到Z200,切削液关

N70G49G90Z0

取消长度补偿,Z轴快速移动到机床坐标Z0处

N80M30

程序结束

%

子程序

%

:

3115

子程序名

N10G68X0Y0R90

增量绕原点旋转90°

N20G0X16.263Y-16.263

快速定位到起始点(#1=-45时刀具中心所处的位置)

N30G1Z0F50

下降到Z0平面

N40#1=-45

定义变量的初值(角度初始值)

N50#2=15

定义变量(上面的半径)

N60#3=20

定义变量(下面的半边长)

N70#4=8

定义变量(刀具半径)

N80#9=20

定义变量(锥台高)

N90WHILE[#1LE45]DO1

循环语句,当#1≤45°时在N90~N180之间循环,加工锥台

N100#5=[#2+#4]*COS[#1]

计算变量

N110#6=[#2+#4]*SIN[#1]

计算变量

N120#7=#3+#4

计算变量

N130#8=#3*TAN[#1]

计算变量

N140G1X#5Y#6Z0F300

铣削时,上面的起始位置

N150X#7Y#8Z-#9

铣削时,下面的终止位置

N160G0Z0

快速抬刀

N170#1=#1+1

更新角度(加工精度越高,则角度的增量值应取得越小,这儿取1°)

N180END1

循环语句结束

N190G0Z2

切削结束后快速返回到Z2平面

N200M99

子程序结束并返回到主程序

%

对于上方下圆、方锥台的宏程序编写可参考进行。

4.加工抛物线回转体的宏程序

抛物线回转体在车灯的加工中是非常常用的,其方程及编程点的计算式见表1-7。

表1-7抛物线方程及刀具中心编程点的计算式

图形

方程及特性点

标准方程:

极坐标方程:

顶点

,焦点

,准线

法线

曲率半径

(顶点曲率半径

用球铣刀加工抛物线回转体:

用立铣刀加工抛物线回转体:

用球铣刀加工抛物线回转凹面:

所选的球铣刀半径应满足

在由抛物线回转体与回转凹面组成的车灯模具中,凸模注出的为车灯的发光面。

注塑件一般有一定的壁厚,此厚度应

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > PPT模板 > 动态背景

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1