数控车FANUC系统宏程序教案.docx

上传人:b****5 文档编号:11749014 上传时间:2023-03-31 格式:DOCX 页数:25 大小:285KB
下载 相关 举报
数控车FANUC系统宏程序教案.docx_第1页
第1页 / 共25页
数控车FANUC系统宏程序教案.docx_第2页
第2页 / 共25页
数控车FANUC系统宏程序教案.docx_第3页
第3页 / 共25页
数控车FANUC系统宏程序教案.docx_第4页
第4页 / 共25页
数控车FANUC系统宏程序教案.docx_第5页
第5页 / 共25页
点击查看更多>>
下载资源
资源描述

数控车FANUC系统宏程序教案.docx

《数控车FANUC系统宏程序教案.docx》由会员分享,可在线阅读,更多相关《数控车FANUC系统宏程序教案.docx(25页珍藏版)》请在冰豆网上搜索。

数控车FANUC系统宏程序教案.docx

数控车FANUC系统宏程序教案

宏程序设计

宏程序与子程序类似,对编制相同加工的操作可以使程序简化.同时宏程序中可以使用变量,算术和逻辑运算及转移指令,还可以方便地实现循环程序设计。

使相同加工操作的程序更方便,更灵活。

本章以FANUC系统为例介绍宏程序设计的内容。

12.1变量的定义

宏程序中使用的变量与日常生活中使用的变量不同,变量用符号“#”后跟变量的变量号指定。

变量可分为四种类型。

1.空变量

#0为空变量,该变量不能赋值。

2.局部变量

#1~#33为局部变量,局部变量只能在宏程序中存储数据。

当断电时局部变量被初始化为空,调用宏程序时,自变量对局部变量赋值。

局部变量的数值范围10-29~1047或-1047~-10-29,如果计算结果超过该范围则发出P/S报警No.111。

3.公共变量

#100~#199、#500~#999为公共变量,公共变量在不同的宏程序中意义相同。

当断电时,变量#100~#199被初始化为空,变量#500~#999的数据不会丢失。

全局变量的数值范围10-29~1047或-1047~-10-29,如果计算结果超过该范围则发出P/S报警No.111。

4.系统变量

#1000~为系统变量,系统变量用于读和写CNC运行时的各种数据,如刀具的当前位置和补偿值等。

5.变量与地址(自变量)的对应关系

系统可用两种形式的自变量指定,表12-1为自变量指定I的自变量与变量的对应关系。

表12-2为自变量指宾II的自变量与变量的对应关系。

表12-1自变量指定I的变量对应关系

地址(自变量)

变量号

地址(自变量)

变量号

地址(自变量)

变量号

A

#1

I

#4

T

#20

B

#2

J

#5

U

#21

C

#3

K

#6

V

#22

D

#7

M

#13

W

#23

E

#8

Q

#17

X

#24

F

#9

R

#18

Y

#25

H

#11

S

#19

Z

#26

在自变量指定I中,G、L、O、N、P不能用,地址I、J、K必须按顺序使用,其它地址顺序无要求。

举例:

G65P3000L2B4A5D6J7K8正确(J、K符合顺序要求)

在宏程序中将会把4赋给#2,把5赋给#1,把6赋给#7,把7赋给#5,把8赋给#6

举例:

G65P3000L2B3A4D5K6J5不正确(J、K不符合顺序要求)

表12-2自变量指定II的变量对应关系

地址(自变量)

变量号

地址(自变量)

变量号

地址(自变量)

变量号

A

#1

K3

#12

J7

#23

B

#2

I4

#13

K7

#24

C

#3

J4

#14

I8

#25

I1

#4

K4

#15

J8

#26

J1

#5

I5

#16

K8

#27

K1

#6

J5

#17

I9

#28

I2

#7

K5

#18

J9

#29

J2

#8

I6

#19

K9

#30

K2

#9

J6

#20

I10

#31

I3

#10

K6

#21

J10

#32

J3

#11

I7

22

K10

#33

自变量指定II使用A、B、C和1次,使用I、J、K各10次。

系统能够自动识别自变量指定I和自变量指定II并赋给宏程序中相应的变量号。

如果自变量指定I和自变量指定II混合使用,则后指定的自变量类型有效。

举例:

G65A1.0B2.0I-3.0I4.0D5.0p1000

宏程序中:

#1:

1.0

#2:

2.0,

#3:

#4:

-3.0

#5:

#6:

#7:

5.0

说明:

I4.0为自变量指定II,D为自变量指定I,所以#7使用指定类型中的D5.0,而不使用自变量指定II中的I4.0。

6.本级变量#1~#33

作用于宏程序某一级中的变量称为本级变量,即这一变量在同一程序级中调用时含义相同,若在另一级程序(如子程序)中使用,则意义不同。

本级变量主要用于变量间的相互传递,初始状态下未赋值的本级变量即为空白变量。

局部变量#1~#33(一个宏程序中的同名变量)从0到4级,主程序是0级。

每调用一个含有同名变量的宏程序,级别加1,前一级的变量被保存。

当一个宏程序结束(执行M99)时,级别减1。

例如:

主程序宏程序宏程序宏程序宏程序

(0级)(1级)(2级)(3级)(4级)

O0001O0002O0003O0004O0005

#1=1;#1=2#1=3#1=4#1=5

G65P2A2;G65P3A3G65P4A4G65P5P5……

……………………M99

M30M99M99M99

12.2变量的运算

对宏程序中的变量可以可以进行算术运算和逻辑运算。

1.算术运算

可以进行加、减、乘、除运算。

运算功能和格式如表12-3所示。

举例:

G00X[#1+#2]

X坐标的值是变量1与变量2之和。

2.三角函数计算

对宏程序中的变量可进行正弦(SIN)、反正弦(ASIN)、余弦(COS)、反余弦(ACOS)、正切(TAN)、反正切(ATAN)函数运算。

三角函数中的角度以度为单位。

运算功能和格式如表12-3所示。

表12-3变量运算功能表

类型

功能

格式

举例

备注

加法

#i=#j+#k

#1=#2+#3

常数可以代替变量

减法

#i=#j-#k

#1=#2-#3

乘法

#i=#j*#k

#1=#2*#3

除法

#I=#j*#k

#1=#2/#3

正弦

#i=SIN[#j]

#1=SIN[#2]

角度以度指定35°30’

表示为35.5

常数可以代替变量

反正弦

#i=ASI[#j]

#1=ASIN[#2]

余弦

#i=COS[#j]

#1=COS[#2]

反余弦

#i=ACOS[#j]

#1=ACOS[#2]

正切

#i=TAN[#j]

#1=TAN[#2]

反正切

#i=ATAN[#j]

#1=ATAN[#2]

平方根

#i=SQRT[#j]

#1=SQRT[#2]

常数可以代替变量

绝对值

#i=ABS[#j]

#1=ABS[#2]

舍入

#i=ROUN[#j]

#1=ROUN[#2]

上取整

#i=FIX[#j]

#1=FIX[#2]

下取整

#i=FUP[#j]

#1=FUP[#2]

自然对数

#i=LN[#j]

#1=LN[#2]

指数对数

#i=EXP[#j]

#1=EXP[#2]

逻辑

运算

#i=#jAND#k

#1=#2AND#2

按位运算

#i=#jOR#k

#1=#2OR#2

异或

#i=#jXOR#k

#1=#2XOR#2

转换运算

BCD转BIN

#i=BIN[#j]

#1=BIN[#2]

BIN转BCD

#i=BCD[#j]

#1=BCD[#2]

对于反反正弦(ASIN)取值范围如下:

当参数(No.6004#0)NAT位设为0时:

270°~90°

当参数(No.6004#0)NAT位设为1时:

-90°~90°

当#j超出-1~1时发出P/S报警No.111。

对于反余弦(ACOS)的取值范围如下:

取值范围180°~0°

当#j超出-1~1时发出P/S报警No.111。

对于反正切(ATAN)的取值范围如下:

当参数(No.6004#0)NAT位设为0时:

0°~360°

当参数(No.6004#0)NAT位设为1时:

-180°~180°

3.其它函数计算

对宏程序中的变量还可以进行平方根(SQRT)、绝对值(ABS)、舍入(ROUN)、上取整(FIX)、下取整(FUP)、自然对数(LN)、指数(EXP)运算。

运算功能和格式如表12-3所示。

对于自然对数LN[#j],相对误差可能大于10-8。

当#j≤0时,发出P/S报警No.111。

对于批数函数EXP[#j],相对误差可能大于10-8。

当运算结果大于3。

65×1047(j大约110)时,出现溢出并发出P/S报警No.111。

对于取整函数ROUN[#j],根据最小设定单位四舍五入。

例如,假设最小设定单位为1/1000mm,#1=1.2345,则#2=ROUN[#1]的值是1.0。

对于上取整FIF[#j],绝对值值大于原数的绝对值。

对于下取整FUP绝对值小于原数的绝对值。

例如,假设#1=1.2,则#2=FIX[#1]的值是2.0。

假设#1=1.2,则#2=FUP[#1]的值是1.0。

假设#1=-1.2,则#2=FIX[#1]的值是-2.0。

假设#1=-1.2,则#2=FUP[#1]的值是-1.0。

4.逻辑运算

对宏程序中的变量可进行与、或、异或逻辑运算。

逻辑运算是按位进行。

运算功能和格式如表12-3所示。

5.数制转换

变量可以在BCD码与二进制之间转换。

6.关系运算

由关系运算符和变量(或表达式)组成表达式。

系统中使用的关系运算符如下。

(1)等于(EQ)

用EQ与两个变量(或表达式)组成表达式,当运算符EQ两边的变量(或表达式)相等时,表达式的值为真,否则为假。

例如,#1EQ#2,当#1与#2相等时,表达式的值为真。

(2)不等于(NE)

用NE与两个变量或表达式组成表达式,当运算符NE两边的变量(或表达式)不相等时,表达式的值为真,否则为假。

例如,#1NE#2,当#1与#2不相等时,表达式的值为真。

(3)大于等于(GE)

用GE与两个变量或表达式组成表达式,当左边的变量(或表达式)大于或等于右边的变量(或表达式)时,表达式的值为真,否则为假。

例如,#1GE#2,当#1大于或等于#2时,表达式的值为真。

否则为假。

(4)大于(GT)

用GT与两个变量或表达式组成表达式,当左边的变量(或表达式)大于右边的变量(或表达式)时,表达式的值为真,否则为假。

例如,#1GT#2,当#1大于#2时,表达式的值为真。

否则为假。

(5)小于等于(LE)

用LE与两个变量或表达式组成表达式,当左边的变量(或表达式)小于或等于右边的变量(或表达式)时,表达式的值为真,否则为假。

例如,#1LE#2,当#1小于或等于#2时,表达式的值为真。

否则为假。

(6)小于(LT)

用LT与两个变量或表达式组成表达式,当左边的变量(或表达式)小于右边的变量(或表达式)时,表达式的值为真,否则为假。

例如,#1GE#2,当#1大于#2时,表达式的值为真。

否则为假。

7.运算优先级

运算符的优先顺序是

(1)函数。

函数的优先级最高。

(2)乘、除、与运算。

乘、除、与运算的优先级次于函数的优先级。

(3)加、减、或、异或运算。

加、减、或、异或运算的优先级次于乘、除、与运算。

乘、除、与运算的优先级。

(4)关系运算。

关系运算的优先级最低。

用方括号可以改变优先级,括号不能超过5层。

超过5层时,发出P/S报警No.111。

8.变量值的精度

变量值的精度为8位十进制数。

例如,用赋值语句#1=9876543210123.456时,实际上#1=9876543200000.000。

用赋值语句#2=9876543277777.456时,实际上#1=9876543300000.000。

12.3宏程序结构

宏程序从结构上可以有顺序结构、分支结构和循环结构。

本节介绍分支和循环结构的实现方法。

1.无条件转移(GOTO)

格式:

GOTOn;n为顺序号(1~9999)

例如,GOTO6;

语句组

N6G00X100;

执行GOTO6语句时,转去执行标号为N6的程序段。

2.条件转移(IF)

格式:

IF[关系表达式]

GOTOn;

例如,IF[#1LT30]

GOTO7

语句组

N7G00X100X5

如果#1大于30,转去执行标号为N7的程序段,否则执行GOTO7下面的语句组。

3.条件转移(IF)

格式:

IF[表达式]THEN

THEN后只能跟一个语句。

例如,IF[#1EQ#2]THEN#3=0;

当#1等于#2时,将0赋给变量#3。

4.循环(WHILE)

格式:

WHILE[关系表达式]DOm;

语句组;

ENDm;

当条件表达式成立时执行从DO到END之间的程序,否则转去执行END后面的程序段。

例如,#1=5;

WHILE[#1LE30]DO1;

#1=#1+5;

G00X#1Y#1;

END1;

M99;

当#1小于等于30时,执行循环程序,当#1大于30时结束循环返回主程序。

12.4宏程序的调用与返回

1.宏程序的简单调用

宏程序的简单调用是指在主程序中,宏程序可以被单个程序段单次调用。

调用指令格式:

 G65 P(宏程序号) L(重复次数)(变量分配)

其中:

G65——宏程序调用指令

P(宏程序号)——被调用的宏程序代号;

L(重复次数)——宏程序重复运行的次数,重复次数为1时,可省略不写;

(变量分配)——为宏程序中使用的变量赋值。

宏程序与子程序相同的一点是,一个宏程序可被另一个宏程序调用,最多嵌套4层。

2.宏程序的开始与返回

宏程序的编写格式与子程序相同。

其格式为:

O0010(0001~8999为宏程序号)//程序名

N10 ……//指令

……

N30M99//宏程序结束

宏程序以程序号开始,以M99结束。

12.5宏程序应用举例

例1:

加工如图12-1所示的椭圆表面,材料为中碳钢。

由于一般的数控系统无椭圆插补功能,手工编程可用宏程序实现编程计算。

本例使用Ø20键槽铣刀分两层铣削,每一次切削深度为5mm。

按刀具刀具轨迹编程。

图12-1椭圆轮廓图

主程序

O0001

N0001G92X0.0Y0.0Z150.0;工件坐标系原点设在工件中心距顶面上

N0002M03S300;主轴正转,转速

N0003G00X-80.0;刀具移至椭圆左端点处

N0004G00Z1.0;快速接近工件

N0005G01Z0.0F100.0慢速接近工件

N0006G65P0100A80.0B50.0C-5.0椭圆长半轴为80,短半轴为50。

Z向进刀5mm

N0007G65P0100A80.0B50.0C-10.0椭圆长半轴为80,短半轴为50。

Z向进刀5mm

N0007G00Z150.0;抬刀

N0008G00X0.0Y0.0;刀具回起点

N0009M05;主轴停

N0010M30;程序结束

宏程序

O1000

#10=-#1;#1为长半轴=80,#2为短半轴=50,#10为X坐标

N1000G01Z#3;#3为Z向进刀深度

WHIL[#10LE#1]DO1;X坐标小于等于80循环加工上半椭圆

#11=SQRT[#1*#1-#10*#10]*#2/#1;#11为Y坐标用椭圆公式计算

N1001G01X#10Y#11F100.0;切削进给

#10=#10+0.05;修改X坐标,X+0.05

END1;

#10=#1;#1为长半轴=80,#2为短半轴=50,#10为X坐标

WHIL[#10GE-#1]DO2;X坐标小于等于80循环加工下半椭圆

#11=-SQRT[#1*#1-#10*#10]*#2/#1;#11为Y坐标用椭圆公式计算

N1002G01X#10Y#11F100;切削进给

#10=#10-0.05;修改X坐标,X-0.05

END2;

N1003M99返回主程序

例2:

加工如图12-2所示的凹槽表面。

零件材料为中碳钢。

为保证表面质量,内外轮廓先粗加工后精加工,粗加工内轮廓时刀补半径比刀具半径大0.2mm,作为精加工余量。

精加工的刀补半径与刀具半径相同。

工序卡片和刀具卡片见表12-4和表12-5所示。

图12-2凹槽表面零件

表12-1实例3用刀具卡片

产品名称或代号

数控车实训

零件名称

典型零件3

零件图号

03

序号

刀具号

刀具规格名称

数量

加工表面

刀具直径

mm

备注

1

T01

Ø20键槽铣刀

1

中心岛轮廓粗第1层

20.0

刀补号1

2

T01

Ø20键槽铣刀

1

深度进刀

20.0

刀补号1

3

T01

Ø20键槽铣刀

1

中心岛轮廓粗第2层

20.0

刀补号1

4

T01

Ø20键槽铣刀

1

中心岛轮廓精

20.0

刀补号2

5

T01

Ø20键槽铣刀

1

矩形凹槽第1层

20.0

无刀补

6

T01

Ø20键槽铣刀

1

深度进刀

20.0

无刀补

7

T01

Ø20键槽铣刀

1

矩形凹槽第2层

20.0

无刀补

8

T01

Ø20键槽铣刀

1

异形凹槽第1层

20.0

无刀补

9

T01

Ø20键槽铣刀

1

深度进刀

20.0

无刀补

10

T01

Ø20键槽铣刀

1

异形凹槽第2层

20.0

无刀补

11

T02

Ø8键槽铣刀

1

凹槽外轮廓粗第1层

8.0

刀补号3

12

T02

Ø8键槽铣刀

1

深度进刀

8.0

刀补号3

13

T02

Ø8键槽铣刀

1

凹槽外轮廓粗第2层

8.0

刀补号3

14

T02

Ø8键槽铣刀

1

凹槽外轮廓精

8.0

刀补号4

15

T01

Ø20键槽铣刀

1

中心处的上斜面

20.0

刀补号2

16

T01

Ø20键槽铣刀

1

中心处的下斜面

20.0

刀补号2

17

T01

Ø20键槽铣刀

1

中心处的右斜面

20.0

刀补号2

18

T01

Ø20键槽铣刀

1

中心处的左斜面

20.0

刀补号2

表12-2数控加工工序卡

单位

名称

北华航天工业学院

产品名称或代号

零件名称

零件图号

数控铣实训

典型零件3

03

工序号

程序编号

夹具名称

使用设备

车间

001

O0010

平口钳

XH714

实训中心

工步

工步内容

刀具号

刀具规格

mm

主轴转速

r/min

进给速度

mm/min

切削深度

mm

备注

1

中心岛轮廓粗第1层

T01

Ø20

300

100

6

D1=20.4

2

深度进刀

T01

Ø20

300

50

6

D1=20.4

3

中心岛轮廓粗第2层

T01

Ø20

300

100

6

D1=20.4

4

中心岛轮廓精

T01

Ø20

300

100

12

D2=20.0

5

矩形凹槽第1层

T01

Ø20

300

100

6

6

深度进刀

T01

Ø20

300

50

6

7

矩形凹槽第2层

T01

Ø20

300

100

6

8

异形凹槽第1层

T01

Ø20

300

100

6

9

深度进刀

T01

Ø20

300

50

6

10

异形凹槽第2层

T01

Ø20

300

100

6

11

凹槽外轮廓粗第1层

T02

Ø8

350

80

6

D3=8.4

12

深度进刀

T02

Ø8

350

50

6

D3=8.4

13

凹槽外轮廓粗第2层

T02

Ø8

350

80

6

D3=8.4

14

凹槽外轮廓精

T02

Ø8

350

80

12

D4=8.0

15

中心处的上斜面

T01

Ø20

300

100

计算

D2=20.0

16

中心处的下斜面

T01

Ø20

300

100

计算

D2=20.0

17

中心处的右斜面

T01

Ø20

300

100

计算

D2=20.0

18

中心处的左斜面

T01

Ø20

300

100

计算

D2=20.0

图12-3工步1~工步4的走刀路线图图12-4工步5~工步7的走刀路线图

图12-5工步8~工步10的走刀路线图图12-16工步5~工步7的走刀路线图

图12-3至图12-6给出了有关工步的走刀路线图。

主程序

O0100

N0101G92X0.0Y0.0Z150.0;设定坐标系

N0102M06T01H01;换第1号刀

N0103G00Z1.0M03S300.0;接近工件起动主轴

N0104G00X30.0Y25.0;进入切削起点A

N0105G01Z-6.0F50.0;Z向切入工件(粗加工第1次深度)

N0106G01X15.0Y15.0G42D1F100.0;A-B(D1刀补比实际直径大0.2mm,右刀补)

N0107G65P0200I15.0J15.0;调用切矩形宏程序

N0108G01X30.0Y25.0G40;回切削起点A

N0109G01Z-12.0F50.0;Z向切入工件(粗加工第2次深度)

N0110G01X15.0Y15.0G42D1F100.0;A-B(D1刀补比实际直径大0.2mm,右刀补)

N0111G65P0200I15.0J15.0;调用切矩形宏程序

N0112G01X30.0Y25.0G40;回切削起点A

N0113G01X15.0Y15.0G42D2F100.0;A-B(D2与实际直径相同,精加工)

N0114G65P0200I15.0J15.0;调用切矩形宏程序

N0115G01X30.0Y25.0G40;回切削起点A

N0116G00Z-6.0;抬刀(粗加工第1次深度)

N0117G01X35.0Y29.0;A-B(切削矩形无刀补)

N0118G65P0200I35.0J29.0;调用矩形宏程序

N0119G01X30.0Y25.0回切削起点A

N0120G01Z-12.0F50.0;Z向切入工件(粗加工第2次深度)

N0121G01X35.0Y29.0;A-B(切削矩形无刀补)

N0122G65P0200I35.0J29.0;调用矩形宏程序

N0123G01X30.0Y25.0回切削起点A

N0124G01Z-6.0;切削两端余量(粗加工第1次深度)

N0125G65P0300;

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

当前位置:首页 > 经管营销 > 金融投资

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

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