数控铣床宏程序编程实例

数控铣床宏程序编程实例,第1张

现成的 用12的球头刀

圆柱上面 有个半球

编写:

程序

O123

90G80G49G40

G0G90G54X40Y0S1600M3

G43H1Z100M8

Z10

G1Z0F300

M98P110L15

G90G1Z20F500

G1X40Y0

M98P210

G91G28Z0

M5

G91G28Y0

M30

子程序 一 先加工 圆柱 30个深度

O110

G91Z-2F500

G90G41G1X28D1

G2X28I-28

G01X40Y0

M99

子程序二 加工半球

O210

#24=28

#26=-20

#1=20

#2=0

#18=20

N29G1Z#26

X#24

G2X#24Y0I-#24

#2=#2+0.1

#1=SQRT[#18*#18-#2*#2]

#24=#1+8

#26=-20+#2

IF[#26LE0]GOTO29

G1Z20

G01X0Y40

M99

一、非圆曲面类的宏程序的编程技巧

1、非圆曲面可以分为两类;

(1)、方程曲面,是可以用方程描述其零件轮廓的曲面的。如抛物线、椭圆、双曲线、渐开线、摆线等。

这种曲线可以用先求节点,再用线段或圆弧逼近的方式。以足够的轮廓精度加工出零件。选取的节点数目越多,轮廓的精度越高。然而节点的增多,用普通手工编程则计算量就会增加的非常大,数控程序也非常大,程序复杂也容易出错。不易调试。即使用计算机辅助编程,其数据传输量也非常大。而且调整尺寸补偿也很不方便。这时就显出宏程序的优势了,常常只须二、三十句就可以编好程序。而且理论上还可以根据机床系统的运算速度无限地缩小节点的间距,提高逼近精度。

(2)、列表曲面,其轮廓外形由实验方法得来。如飞机机翼、汽车的外形由风洞实验得来。是用一系列空间离散点表示曲线或曲面。这些离散点没有严格一定的连接规律。而在加工中则要求曲线能平滑的通过各坐标点,并规定了加工精度。加工列表曲线的方法很多,可以采用计算机辅助编程,利用离散点形成曲面模型,再生成加工轨迹和加工程序。对于一些老机床或无法传送数据的机床,我们也可以将轮廓曲线按曲率变化分成几段,每段分别求出插值方程。采用宏程序加密逼近曲线的方法。

2、非圆曲面类的宏程序的编程的要点有:

建立数学模型和循环体

(1)、数学模型是产生刀具轨迹节点的一组运算赋值语句。它可以计算出曲面上每一点的坐标。它主要从描述其零件轮廓的曲面的方程转化而来。

(2)、循环体是由一组或几组循环指令和对应的加法器组成。它的作用是将一组节点顺序连接成刀具轨迹,再依次加工成曲面。

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

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

一、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软件普遍应用的今天,手工编程的应用空间日趋缩小。但手工编程是自动编程的基础。宏程序的运用,其最大的特点就是将有规律的形状或尺寸用最短的程序段表示出来,具有极好的易读性和易修改性。


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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存