数控铣削宏程序

数控铣削宏程序,第1张

数控铣削加工宏程序的编制与应用

在数控编程中,宏程序编程灵活、高效、快捷。宏程序不仅可以实现象子程序那样,对编制相同加工 *** 作的程序非常有用,还可以完成子程序无法实现的特殊功能,例如,型腔加工宏程序、固定加工循环宏程序、球面加工宏程序、锥面加工宏程序等。

一、FANUC宏程序的理论基础

(一)FANUC宏程序的构成

1)包含变量

2)包含算术或逻辑运算(=)的程序段

3)包含控制语句(例如:GOTO,DO,END)的程序段

4)包含宏程序调用指令(G65,G66,G67或其他G代码,M代码调用宏程序)的程序段

(二)FANUC宏程序的变量

FANUC数控系统变量表示形式为# 后跟1~4位数字,变量有四种:

1、FANUC宏程序的变量Ⅰ

变量号

变量类型

功能

#0

空变量该变量总是空

没有任何值能赋给该变量

2、FANUC宏程序的变量Ⅱ

变量号

变量类型

功能

#1——#33

局部变量

局部变量只能用在宏程序中存储数据,例如运算结果。当断电时局部变量被初始化为空,调用宏程序时自变量对局部变量赋值。

3、FANUC宏程序的变量Ⅲ

变量号

变量类型

功能

#100—#199

#500—#999

公共变量

公共变量在不同的宏程序中的意义相同当断电时变量#100 #199初始化为空变量

#500 #999 的数据保存即使断电也不丢失

4、FANUC宏程序的变量Ⅳ

变量号

变量类型

功能

#1000——

系统变量

系统变量用于读和写CNC 运行时各种数据的变化例如刀具的当前位置和补偿值等

(三)刀具补偿存储器C用G10指令进行设定

H代码的几何补偿值

G10L10P R

D代码的几何补偿值

G10L12P R

H代码的磨损补偿值

G10L11P R

D代码的磨损补偿值

G10L13P R

P:刀具补偿号

R:绝对值指令(G90)方式时的刀具补偿值。增量值指令(G91)方式时的刀具补偿值为该值与指定的刀具补偿号的值相加。

用G10改变工件坐标系零点偏移值

格式:G10L12PpIP ;

P=0:外部工件零点偏移值

P=1:工件坐标系G54的零点偏移值

P=2:工件坐标系G55的零点偏移值

P=3:工件坐标系G56的零点偏移值

P=4:工件坐标系G57的零点偏移值

P=5:工件坐标系G58的零点偏移值

P=5:工件坐标系G59的零点偏移值

IP: 对于绝对值指令(G90),为每个轴的工件零点偏移值。

对于增量值指令(G91),为每个轴加到设定的工件零点偏移值。

(四)FANUC宏程序运算符Ⅰ

1、FANUC宏程序运算符Ⅰ

功能

格式

备注

定义

#i=#j

加法

#i=#j+#k

减法

#i =#j- #k

乘法

#i =#j*#k

除法

#i=#j/#k

2、FANUC宏程序运算符Ⅱ

功能

格式

备注

正弦

#i=SIN[#j]

角度以度指定,如90º30’表示为90.5度

反正弦

#i=ASIN[#j]

余弦

#i=COS[#j]

反余弦

#i=ACOS[#j]

正切

#i=TAN[#j]

反正切

#i=ATAN[#j]

3、FANUC宏程序运算符Ⅲ

功能

格式

备注

平方根

#i=SQRT[#j]

绝对值

#i=ABS[#j]

舍入

#i=ROUND[#j]

上取整

#i=FIX[#j]

下取整

#i=FUP[#j]

自然对数

#i=LN[#j]

指数函数

#i=EXP[#j]

4、FANUC宏程序运算符Ⅳ

功能

格式

备注

#i=#j OR #k

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

异或

#i=#j XOR #k

#i=#j AND #k

从BCD转为BIN

#i=BIN[#j]

用于与PMC的信号交换

从BIN转为BCD

#i=BCD[#j]

(五)FANUC宏程序的转移和循环

1、FANUC宏程序的转移和循环Ⅰ

条件转移:GOTOn

(n为顺序号,1——99999)

例:GOTO10为转移到N10程序段

2、FANUC宏程序的转移和循环Ⅱ

条件转移:(IF语句)

IF [条件表达式] GOTOn

当指定的条件表达式满足时,转移到标有顺序号n的程序段,如果指定的条件表达式不满足时,执行下个程序段

3、FANUC宏程序的转移和循环Ⅲ

条件转移:(IF语句)

IF [条件表达式] GOTOn

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

如果条件不满足 IF [#1 GT 10] GOTO 2

如果条件满足

程 序

程程序序

N20 G00 G90 X100. Y20.

:

4、FANUC宏程序的转移和循环Ⅳ

IF [条件表达式] THEN

当指定的条件表达式满足时,执行预先决定的宏程序语句。

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

(六)FANUC宏程序的循环

FANUC宏程序循环Ⅰ

WHILE [条件表达式] Dom;

(m=1,2,3)

条件不满足 条件满足

ENDm

注:循环允许嵌套,最多3层,但不允许交叉;

FANUC宏程序循环Ⅱ

FANUC宏程序循环Ⅲ

(七)FANUC宏程序的条件表达式运算符

运算符

含义

EQ

等于

NE

不等于

GT

大于

GE

大于或等于

LT

小于

LE

小于或等于

(九)FANUC宏程序的调用Ⅰ

FANUC宏程序的调用Ⅰ

非模态调用G65:

格式: G65PpLl<自变量指定>

其中

p:要调用的程序号

L:调用次数(默认为1)

自变量:数据传递到宏程序

FANUC宏程序的调用Ⅱ

模态调用(G66):

G66PpLl<自变量指定>;

程序点

G67(取消模态)

其中

p:要调用的程序号

L:调用次数(默认为1)

自变量:数据传递到宏程序

(十)FANUC宏程序的自变量指定

1、FANUC宏程序的自变量指定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

2、FANUC宏程序的调用II

地址

变量

地址

变量

地址

变量

A

#1

K3

#12

J7

#23

B

#2

I4

#13

K7

#24

C

J4

#14

I8

#25

I

#4

K4

#15

J8

#26

J

#5

I5

#16

K8

#27

K

#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

二、FANUC宏程序的应用

(一)宏程序示例(铣圆)

#1=圆心坐标X值

#2=圆心坐标Y值

#3=园孔最终Z值

#4=圆孔直径

#5=刀具直径

#6=[#4+#5]/4 (进刀半径)

#7= #3+50 (进刀高度)

#8= [#1+#4]/2-#6(进刀圆弧起点X值)

#9 = #2 - #6 (进刀圆弧起点Y值)

#10= #1+#4/2 (铣圆起点X值)

#11= -#4/2 (I矢量)

#12= #2+#6(退刀圆弧Y值)

%

O100

M03S1000

G00G90G54G43H01Z100.

X#1Y#2

Z#7

G01Z#3 F100

G41D02X#8Y#9

G03X#10Y#2R#6

G03X#10Y#2I#11J0

G03X#8Y#12R#6

G01G40X#1Y#2

G00Z100.

M30

%

(二)宏程序示例(铣半圆球)

自上而下等角度水平圆弧环绕球面精加工

#1=(A)球面的圆弧半径

#2=(B)球头铣刀刀具半径

#3=(C)球面的起始角度

#4= (I)球面的终止角度,#4≤90°

#17=(Q)Z坐标每次递减量

#24=(X)球心坐标X值

#25=(Y)球心坐标Y值

#26=(Z)球心坐标Z值

%

O200

M03S1000

G00G90G541Z100.

G00X0Y0

G65P1912X Y Z A B C I Q

M30

%

O1912 (宏程序)

G52X#24Y#25Z#26

G00X0Y0Z[#1+30]

#12=#1+#2

WHILE [#3LT#4]DO1

#5 = #12*COS[#3]

#6 = #12*SIN[#3]

X[#5+#2] Y#2

G03X#5Y0R#2F1000

G02 I-#5

G03X[#5+#2]Y-#2R#2

G00Z[#7+1]

Y#2

#3 = #3 + #17

END 1

GOO Z[#1+30]

G52 X0 Y0 Z0

M99

%

注释说明

(主程序)

调用宏程序O1912

(空格处为变量赋值)

在球心处建立局部坐标

球心与刀心连线距离

如果#3<#4,循环1继续

任意角度刀心X坐标值

任意角度刀心Y坐标值

G00定位于下刀点

圆弧进刀

沿球面切削

圆弧退刀

提刀1

移到进刀点

角度#3每次递增#17

循环1结束

提刀

恢复G54坐标

宏程序结束返回

(三) 宏程序示例Ⅰ

采用Φ20R4铣刀加工SR30的球,已知球心坐标为(X0Y0Z-5.)

宏程序示例Ⅱ

1、分析:铣球程序一般采用自动编程来实现,但是,利用宏程序强大的功能同样也可以实现,而且程序更加简洁。

2、编程思路:

铣球可以认为是多个铣圆的组合。

3、排刀分布:

有两种方案,一是按Z向分布,二是按圆心角分布。从保证表面质量来看,最佳方案为按圆心角分布。

圆弧起点计算,从X正向开始起刀。

刀具根部R4的圆心在XZ平面的运动轨迹为与R30等距的圆R34(见图示中红色轨迹),刀尖点上4mm处的轨迹(即褐色轨迹)为红色轨迹沿X正向平移6毫米,刀尖点坐标为褐色轨迹沿Z轴向下平移4mm(即绿色轨迹)。

起始角度=ARCSIN((5+4)/34)=15.349º

起始位置X值=34*COS(15.349)+6=38.787

起始位置Z值=0 (通用表达式=34*sin(15.349)-5-4)

4、变量定义:

#1为圆心角,范围由(15.349,90)

#2为刀尖中心X值,#2=34*COS[#1]+6

#3为刀尖中心Z值,#3=34*SIN[#1]-5-4

%

O300

M03S3000;

G00G90G54Z100.;

#1=15.349

X50.Y0;

Z10.;

WHILE[#1 LE 90] DO1;

#2=34*COS[#1]+6;

#3=34*SIN[#1]-5-4

G01Z#3F900

X#2

G02X#2Y0I-#2J0

#1=#1+1

END1

G00Z100.

M30

%

(四)宏程序示例II

用Φ20R10铣刀加工轮廓处R5圆角

下面为铣外形的一段程序,采用刀具半径补偿

G00X2.5Y26.664

G01G41D01X-8.991Y2.023

G03X2.5Y-3.336I11.491J9.641

X32.969Y-.208I0.J150.

G02X44.955Y-10.952I2.031J-9.792

G03Y-49.048I199.09J-19.048

G02X33.452Y-59.88I-9.955J-.952

G03X-28.452I-30.952J-197.59

G02X-39.922Y-48.75I-1.548J9.88

G03Y-11.25I-148.823J18.75

G02X-27.969Y-.208I9.922J1.25

G03X2.5Y-3.336I30.469J146.872

X13.991Y2.023I0.J15.

G40G01X2.5Y26.664

编程思路:

利用G10指令修改刀具半径偏置值来实现倒圆角。

G10格式为G10L12P1R ,其中,P1表示修改D01,R后为刀具半径偏置值。

设定倒角的圆心角为变量#1,取值范围为0-90º

设定#2为刀具半径偏置值,取值=COS[#1]*15-5

设定#3为Z值,取值=SIN[#1]*[5+10]-5-10

%

O400

M03S3000

G00G90G54Z100.

#1=0

X2.5Y26.64

Z5.

WHILE [#1 LE 90] DO1

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

#3= SIN[#1]

*[5+10]-5-10

G10L12P1R#2

G01Z#3F900

G00X2.5Y26.664

G01G41D01X-8.991Y2.023

G03X2.5Y-3.336I11.491J9.641

X32.969Y-.208I0.J150.

G02X44.955Y-10.952I2.031

J-9.792

G03Y-49.048I199.09J-19.048

G02X33.452Y-59.88I-9.955J-.952

G03X-28.452I-30.952J-197.59

G02X-39.922Y-48.75I-1.548J9.88

G03Y-11.25I-148.823J18.75

G02X-27.969Y-.208I9.922J1.25

G03X2.5Y-3.336I30.469J146.87

X13.991Y2.023I0.J15.

G40G01X2.5Y26.664

#1=#1+5

END1

G00Z100.

M30

%

三、小结

随着现代制造技术的发展和数控机床的日益普及,数控加工得到广泛应用。对于加工形状简单的零件,计算比较简单,程序不多,采用手工编程较容易完成。因此,在点定位加工及由直线与圆弧组成的轮廓加工中,手工编程仍广泛应用。但对于形状复杂的零件,特别是具有非圆曲线、列表曲线及曲面的零件,用一般的手工编程就有一定的困难,且出错机率大,有的甚至无法编出程序。在CAD/CAM软件普遍应用的今天,手工编程的应用空间日趋缩小。但手工编程是自动编程的基础。宏程序的运用,其最大的特点就是将有规律的形状或尺寸用最短的程序段表示出来,具有极好的易读性和易修改性。

首先你的程序有问题

DO 后面的数字只能从1到3.

while[布尔表达式] do1

代码

end1

do数字和end数字对应,比do1和end1对应

while的意思是当方括号内的布尔表达式成立则执行doX-endx内的代码,后再检查布尔表达式,如果成立再执行,直到不成立为止.

比如上式 GE是大于或等于的意思,连起来就是如果#1>=-360 则执行dox-endx内的代码.

明的了吗?

以下是资料,我只用B类的多,这个A类难学一点不实用,要记很多指令的,建议你用B类吧!

逻辑或 #i=#j OR #k

编程格式 G65 H11 P#i Q#j R#k

例 G65 H11 P#101 Q#102 R#103;(#101=#102 OR #103)

2)逻辑与 #i=#j AND #k

编程格式 G65 H12 P#i Q#j R#k

例 G65 H12 P#101 Q#102 R#103;(#101=#102 AND #103)

(3)三角函数指令 (表4.6)

表4.6 三角函数指令

G码 H码 功 能 定 义

G65 H31 正弦 # i=# j · SIN (# k)

G65 H32 余弦 # i=# j · COS (# k)

G65 H33 正切 # i=# j · TAN(# k)

G65 H34 反正切 # i=ATAN(# j/# k)

1)正弦函数 #i=#j×SIN(#k)

编程格式 G65 H31 P#i Q#j R#k (单位:度)

例 G65 H31 P#101 Q#102 R#103;(#101=#102×SIN(#103))

2)余弦函数 #i=#j×COS(#k)

编程格式 G65 H32 P#i Q#j R#k (单位:度)

例 G65 H32 P#101 Q#102 R#103;(#101=#102×COS(#103))

3)正切函数 #i=#j×TAN#k

编程格式 G65 H33 P#i Q#j R#k (单位:度)

例 G65 H33 P#101 Q#102 R#103;(#101=#102×TAN(#103))

4)反正切 #i=ATAN(#j/#k)

编程格式 G65 H34 P#i Q#j R#k (单位:度,0o≤ #j ≤360o)

例 G65 H34 P#101 Q#102 R#103;(#101=ATAN(#102/#103))

(4)控制类指令(表4.7)

表4.7 控制类指令

G码 H码 功 能 定 义

G65 H80 无条件转移 GO TO n

G65 H81 条件转移1 IF # j=# k,GOTOn

G65 H82 条件转移2 IF # j≠# k,GOTOn

G65 H83 条件转移3 IF # j># k,GOTOn

G65 H84 条件转移4 IF # j<# k,GOTOn

G65 H85 条件转移5 IF # j≥# k,GOTOn

G65 H86 条件转移6 IF # j≤# k,GOTOn

G65 H99 产生PS报警 PS报警号500+n出现

1)无条件转移

编程格式 G65 H80 Pn (n为程序段号)

例 G65 H80 P120;(转移到N120)

2)条件转移1 #j EQ #k(=)

编程格式 G65 H81 Pn Q#j R#k (n为程序段号)

例 G65 H81 P1000 Q#101 R#102

当#101=#102,转移到N1000程序段;若#101≠ #102,执行下一程序段。

3)条件转移2 #j NE #k(≠)

编程格式 G65 H82 Pn Q#j R#k (n为程序段号)

例 G65 H82 P1000 Q#101 R#102


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/11215756.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-14
下一篇 2023-05-14

发表评论

登录后才能评论

评论列表(0条)

保存