数控车床由浅入深的宏程序实例精讲文档格式.docx

上传人:b****1 文档编号:247209 上传时间:2023-04-28 格式:DOCX 页数:43 大小:511.26KB
下载 相关 举报
数控车床由浅入深的宏程序实例精讲文档格式.docx_第1页
第1页 / 共43页
数控车床由浅入深的宏程序实例精讲文档格式.docx_第2页
第2页 / 共43页
数控车床由浅入深的宏程序实例精讲文档格式.docx_第3页
第3页 / 共43页
数控车床由浅入深的宏程序实例精讲文档格式.docx_第4页
第4页 / 共43页
数控车床由浅入深的宏程序实例精讲文档格式.docx_第5页
第5页 / 共43页
数控车床由浅入深的宏程序实例精讲文档格式.docx_第6页
第6页 / 共43页
数控车床由浅入深的宏程序实例精讲文档格式.docx_第7页
第7页 / 共43页
数控车床由浅入深的宏程序实例精讲文档格式.docx_第8页
第8页 / 共43页
数控车床由浅入深的宏程序实例精讲文档格式.docx_第9页
第9页 / 共43页
数控车床由浅入深的宏程序实例精讲文档格式.docx_第10页
第10页 / 共43页
数控车床由浅入深的宏程序实例精讲文档格式.docx_第11页
第11页 / 共43页
数控车床由浅入深的宏程序实例精讲文档格式.docx_第12页
第12页 / 共43页
数控车床由浅入深的宏程序实例精讲文档格式.docx_第13页
第13页 / 共43页
数控车床由浅入深的宏程序实例精讲文档格式.docx_第14页
第14页 / 共43页
数控车床由浅入深的宏程序实例精讲文档格式.docx_第15页
第15页 / 共43页
数控车床由浅入深的宏程序实例精讲文档格式.docx_第16页
第16页 / 共43页
数控车床由浅入深的宏程序实例精讲文档格式.docx_第17页
第17页 / 共43页
数控车床由浅入深的宏程序实例精讲文档格式.docx_第18页
第18页 / 共43页
数控车床由浅入深的宏程序实例精讲文档格式.docx_第19页
第19页 / 共43页
数控车床由浅入深的宏程序实例精讲文档格式.docx_第20页
第20页 / 共43页
亲,该文档总共43页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

数控车床由浅入深的宏程序实例精讲文档格式.docx

《数控车床由浅入深的宏程序实例精讲文档格式.docx》由会员分享,可在线阅读,更多相关《数控车床由浅入深的宏程序实例精讲文档格式.docx(43页珍藏版)》请在冰点文库上搜索。

数控车床由浅入深的宏程序实例精讲文档格式.docx

H03减指令;

格式G65H03P#101Q#102R#103,把#102的数值减去#103的数值赋予#101

G65H03P#101Q#102R10

G65H03P#101Q10R#103

G65H03P#101Q20R10

上面4个都是减指令的格式都是把Q后面的数值或变量号内的数值减去R后面的数

H04乘指令;

格式G65H04P#101Q#102R#103,把#102的数值乘上#103的数值赋予#101

G65H04P#101Q#102R10

G65H04P#101Q10R#103

G65H04P#101Q20R10

上面4个都是乘指令的格式都是把Q后面的数值或变量号内的数值乘上R后面的数

H05除指令;

格式G65H05P#101Q#102R#103,把#102的数值除以#103的数值赋予#101

G65H05P#101Q#102R10

G65H05P#101Q10R#103

G65H05P#101Q20R10

上面4个都是除指令格式都是把Q后面的数值或变量号内的数值除以R后面的数

值或变量号内的数值然后等于到P后面的变量号中.(余数不存,除数如果为0的话会出现112报警)

三角函数指令

H31SIN正玄函数指令:

格式G65H31P#101Q#102R#103;

含义Q后面的#102是三角形的斜边R后面的#103内存的是角度.结果是#101=#102*SIN#103,也就是说可以直接用这个求出三角形的另

一条边长.和以前的指令一样Q和R后面也可以直接写数值.

H32COS余玄函数指令:

格式G65H32P#101Q#102R#103;

含义Q后面的#102是三角形的斜边

R后面的#103内存的是角度.结果是#101=#102*COS#103,也就是说可以直接用这个求出三角形的

另一条边长.和以前的指令一样Q和R后面也可以直接写数值.

H33和H34本来应该是TAN和ATAN的可是经过我使用得数并不准确,希望有知道的人能够告诉我是为什么?

开平方根指令

H21;

格式G65H21P#101Q#102;

意思是把#102内的数值开了平方根然后存到#101中(这个指令是非常重要的如果在车椭圆的时候没有开平方根的指令是没可能用宏做到的.

无条件转移指令

H80;

G65H80P10;

直接跳到第10程序段

有条件转移指令

H81H82H83H84H85H86,分别是等于就转的H81;

不等于就转的H82;

小于就转的H83;

大于就转的H84;

小于等于就转的H85;

大于等于就转的H86;

G65H8xP10Q#101R#102;

将#101内的数值和#102内的数值相比较,按上面的H8x的码带入H8x中去,如果条件符合就跳到第10程序段,如果不符合就继续执行下面的程序段.

4B类宏程序c:

定义

能完成某一功能的一系列指令像子程序那样存入存储器,用户可以设定M、S、T、G代码调用它们,使用时只需给出这个指令代码就能执行其功能,也可以像调用子程序一样使用。

这样的程序也称作用户宏程序

l调用宏程序的指令————宏指令

l特点:

使用变量

变量的表示和使用

(一)变量表示

#I(I=1,2,3,…)或#[<

式子>

]

例:

#5,#109,#501,#[#1+#2-12]

(二)变量的使用

1.地址字后面指定变量号或公式

格式:

 <

地址字>

#I

这里的“I”代表变量号

F#103,设#103=15 则为F15

Z-#110,设#110=250 则为Z-250

X[#24+#18*COS[#1]]

2.变量号可用变量代替

#[#30],设#30=3 则为#3

3.变量不能使用地址O,N,I

下述方法下允许

O#1;

I#2 6.00×

100.0;

N#3 Z200.0;

4.变量号所对应的变量,对每个地址来说,都有具体数值X围

#30=1100时,则M#30是不允许的

5.#0为空变量,没有定义变量值的变量也是空变量

6.变量值定义:

程序定义时可省略小数点,例:

#123=149

MDI键盘输一.变量的种类

1.局部变量#1~#33

一个在宏程序中局部使用的变量,其运算结果其他程序不可使用。

 A宏程序 B宏程序

… …

#10=20 X#10 不表示X20

断电后清空,调用宏程序时代入变量值

2.公共变量。

早期(#100~#149,#500~#531)、新系统(#100~#199,#500~#999)

各用户宏程序内公用的变量,其运算结果任何程序调用都相同。

上例中#10改用#100时,B宏程序中的

X#100表示X20

#100~#149 断电后清空

#500~#531保持型变量(断电后不丢失)

3.系统变量

固定用途的变量,其值取决于系统的状态

#2001值为1号刀补X轴补偿值

#5221值为X轴G54工件原点偏置值

入时必须输入小数点,小数点省略时单位为μm

运算指令

运算式的右边可以是常数、变量、函数、式子

式中#j,#k也可为常量

式子右边为变量号、运算式

1.定义

#I=#j

2.算术运算

#I=#j+#k

#I=#j-#k

#I=#j*#k

#I=#j/#k

3.逻辑运算

#I=#JOK#k

#I=#JXOK#k

#I=#JAND#k

4.函数

#I=SIN[#j]正弦

#I=COS[#j]余弦

#I=TAN[#j]正切

#I=ATAN[#j]反正切

#I=SQRT[#j] 平方根

#I=ABS[#j] 绝对值

#I=ROUND[#j] 四舍五入化整

#I=FIX[#j] 上取整

#I=FUP[#j] 下取整

#I=BIN[#j] BCD→BIN(二进制)

#I=B[#j] BIN→BCD

1.说明

1)角度单位为度

90度30分为90.5度

2)ATAN函数后的两个边长要用“/”隔开

#1=ATAN[1]/[-1]时,#1为了35.0

3)ROUND用于语句中的地址,按各地址的最小设定单位进行四舍五入

设#1=1.2345,#2=2.3456,设定单位1μm

G91 X-#1;

X-1.235

X-#2 F300;

X-2.346

X[#1+#2];

X3.580

未返回原处,应改为

X[ROUND[#1]+ROUND[#2]];

4)取整后的绝对值比原值大为上取整,反之为下取整

设#1=1.2,#2=-1.2时

若#3=FUP[#1]时,则#3=2.0

若#3=FIX[#1]时,则#3=1.0

若#3=FUP[#2]时,则#3=-2.0

若#3=FIX[#2]时,则#3=-1.0

5)指令函数时,可只写开头2个字母

ROUND→RO

FIX→FI

6)优先级

函数→乘除(*,1,AND)→加减(+,-,OR,XOR)

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

7)括号为中括号,最多5重,园括号用于注释语句

#1=SIN[[[#2+#3]*#4+#5]*#6];

(3重)

转移与循环指令

1.无条件的转移

 GOTO 1;

GOTO #10;

2.条件转移

 IF[<

条件式>

] GOTO n

条件式:

#j EQ#k表示=

#j NE#k表示≠

#j GT#k表示>

#j LT#k表示<

#j GE#k表示≥

#j LE#k表示≤

 IF[#1 GT 10] GOTO 100;

N100 G00 G91X10;

求1到10之和

O9500;

#1=0

#2=1

N1 IF [#2 GT10] GOTO 2

#1=#1+#2;

#2=#2+1;

GOTO 1

N2 M30

1.循环

WHILE[<

]DO m;

(m=1,2,3)

ENDm

说明:

1.条件满足时,执行DOm到ENDm,则从DOm的程序段

不满足时,执行DOm到ENDm的程序段

2.省略WHILE语句只有DOm…ENDm,则从DOm到ENDm之间形成死循环

3.嵌套

4.EQ NE时,空和“0”不同

其他条件下,空和“0”相同

O0001;

#1=0;

#2=1;

WHILE [#2LE10] DO1;

#2=#2+#1;

END1;

M30

由浅入深宏程序1-宏程序入门基础之销轴加工

对于没有接触过宏程序人,觉得它很神秘,其实很简单,只要掌握了各类系统宏程序的基本格式,应用指令代码,以及宏程序编程的基本思路即可。

对于初学者,尤其是要精读几个有代表性的宏程序,在此基础上进行模仿,从而能够以此类推,达到独立编制宏程序的目的。

本教程将分步由浅入深的将宏程序讲解给大家,作者水平有限,也希望各位XX提供更好的思路。

下面大家先看一个简单的车床的程序,图纸如下:

要求用外圆刀切削一个短轴,这里只列举程序的前几步:

T0101M3S800G0X82Z5G0X76G1Z-40F0.2X82

G0Z5G0X72G1Z-40F0.2X82G0Z5G0X68

G1Z-40F0.2X82G0Z5G0X68

G1Z-40F0.2X82G0Z5........G0X40G1Z-40F0.2

X82G0Z5G0X150Z150M5M30

从上面程序可以看出,每次切削所用程序都只是切削直径X有变化,其他程序代码未变。

因此可以将一个变量赋给X,而在每次切削完之后,将其改变为下次切削所用直径即可。

O5679

T0101

M3S800

G0X82Z5

#1=76赋初始值,即第一次切削直径

N10G0X[#1]将变量赋给X,则X方向进刀的直径则为#1变量中实际存储值。

N10是程序

G1Z-40F0.2段的编号,用来标识本段,为后面循环跳转所用。

X82

G0Z5

#1=#1-4每行切深为2mm,直径方向递减4mm

IF[#1GE40]GOTO10如果#1>

=40,即此表达式满足条件,则程序跳转到N10继续执行。

G0X150Z150当不满足#1>

=40,即#1<

40,则跳过循环判断语句,由此句继续向后执行。

M5

由浅入深宏程序2-宏程序之销轴粗精加工

本篇文章利用宏程序简单模仿数控系统的外圆车削循环功能。

在此用前一篇的图纸与程序

原程序:

O0985

G0X82Z5粗加工开始

#2=0.05Z向的加工余量

#3=0.5外圆方向的加工余量

#4=0.3每层切削后的回退量

#1=76+2*#3考虑了精加工余量的第一次切削直径

G1Z[-40+#2]F0.2段的编号,用来标识本段,为后面循环跳转所用。

X[#1+#4]每次切削只回退#4的值

#1=#1-4单边切深为2mm,直径方向每次递减4mm

M03S1200当不满足#1>

G0X40由此开始精加工

G1Z-40F0.1

G0X150Z150

由浅入深宏程序3-宏程序车半球面

在不使用循环切削加工圆弧时,可以有几种不同的方式来安排走刀轨迹,本篇文章采用将圆弧段沿X方向偏移,由外籍内的加工方式进行。

如图所示R20圆弧,假设刀具每次单边切深2mm,直径每刀吃4mm,则由端面切入的位置可以计算出需要切削:

40/4=10刀

每条圆弧起点和终点的Z坐标不变,但X坐标都同时向+X方向偏移一个相同的值,因此可设偏移量为#1,初始值为#1=36

圆弧起点X坐标为#2=0+#1

圆弧终点X坐标为#3=40+#1

宏程序编制如下:

O3456

G0X42Z5

#1=36赋初始值,即第一个圆弧直径偏移量

N10#2=0+#1计算圆弧起点的X坐标

#3=40+#1计算圆弧终点的X坐标

G0X[#2]快速到达切削直径

G1Z0F0.1直线切至圆弧起点

G3X[#3]Z-20R20F0.1切削圆弧

G1X42直线插补切削至外圆

G0Z5退至端面外侧

#1=#1-4直径方向递减4mm

IF[#1GE0]GOTO10如果#1>

=0,即此表达式满足条件,则程序跳转到N10继续执行。

=0,即#1<

0,则最后一条圆弧已经切完,跳出循环。

由浅入深宏程序4-圆的标准方程编制宏程序车半球面

我们知道无论什么样的曲线,数控系统都是CAD/CAM软件在处理时都会将其按照内部的算法划分成小段的直线进行加工,接下来我们利用圆的方程来将直线划分成小段直线在利用宏程序对其加工。

下图为圆的标准方程

X*X+Y*Y=R*R,若将X和Y用参数变量代替可改写为#1*#1+#2*#2=R*R

圆弧可沿#1方向划分成无数小段直线,然后求出其相应端点坐标,再求出相对的数控车床中的坐标,再按直线进行编程加工。

如下图所示:

则此段圆弧精加工轨迹为:

G0X0

G1Z0F0.1

N10#2=SQRT[20*20-#1*#1]SQRT表示开平方

#3=#1-20圆的原点在工件坐标左侧20,所以圆弧上所有点坐标Z要减20

#4=2*#2圆的方程计算出的为半径值,需转化为直径值才能与直径编程对应。

G1X[#4]Z[#3]F0.1沿小段直线插补加工

#1=#1-0.5递减一小段距离,此值越小,圆弧越光滑。

IF[#1GE0]GOTO10条件判断是否到达终点。

G1X42直线切出外圆

如果要再加上分层的粗加工,设偏移量为#5,则程序改为

O6789

#5=36

N5G0X[#5]

#1=20

#4=2*#2+#5圆的方程计算出的为半径值,需转化为直径值才能与直径编程对应。

IF[#1GE0]GOTO10条件判断是否到达终点。

G1X42直线插补切出外圆

#5=#5-4

IF[#5GE0]GOTO5

以上程序分内外二层循环,外层循环为分层加工,内层循环为小段直线插补一条圆弧。

由浅入深宏程序5-圆的参数方程编制宏程序车半球面

圆的标准方程为:

X=R*COSθ

Y=R*SINθ

可改写为:

#1=20*cos[#3]#3为参数方程对应图纸中角度

#2=20*sin[#3]

使用参数方程比圆的标准方程具有一个优点,从下图中可以看出,使用标准方程式,在工件最右端,划分直线坡度较大,从右至左划分线段不均匀,而使用圆的参数方程所划分的直线段是按照圆周方向划分的,因此分布均匀,从而使用零件表面加工质量好。

相应程序修改如下:

O9876

#6=36

N5G0X[#6]

#3=0

N10#1=20*COS[#3]

#2=20*SIN[#3]

#4=2*#2+#6圆的方程计算出的为半径值,需转化为直径值才能与直径编程对应。

#5=#1-20

G1X[#4]Z[#5]F0.1沿小段直线插补加工

#3=#3+3递减3度,此值越小,圆弧越光滑。

IF[#3LE90]GOTO10条件判断是否到达终点。

G1X42直线插补切到工件外圆之外

#6=#6-4

IF[#6GE0]GOTO5

 

由浅入深宏程序6-利用椭圆标准方程编制数控车宏程序

椭圆的标准方程:

椭圆宏程序结构流程:

如果看了前几篇,那么接下来这两篇加工椭圆的宏程序应该很容易理解。

椭圆标准方程X*X/a*a+Y*Y/b*b=1,其中a为长半轴,b为短半轴,若将X和Y用参数变量代替可改写为#1*#1/a*a+#2*#2/b*b=1

椭圆可沿长半轴#1方向划分成无数小段直线,然后求出其相应端点坐标,再求出相对的数控车床中的坐标,再按直线进行编程加工。

假设椭圆a=30,b=20,只加工半个椭圆,则此段椭圆精加工轨迹为:

#1=30

N10#2=20*SQRT[1-30*30/#1*#1]SQRT表示开平方

#3=#1-30椭圆的原点在工件坐标左侧30,所以椭圆上所有点坐标Z要减20

#4=2*#2方程计算出的为半径值,需转化为直径值才能按直径编程。

#1=#1-1递减一小段距离,此值越小,椭圆越光滑。

O5678

N10#2=20*SQRT[30*30-[#1*#1]]/30SQRT表示开平方

以上程序分内外二层循环,外层循环为分层加工,内层循环为小段直线插补一条四分之一椭圆弧。

由浅入深宏程序7-椭圆的参数方程编制宏程序车椭球面

椭圆的参数方程为

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

当前位置:首页 > 自然科学 > 物理

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2