数控车床宏程(一文搞懂数控宏程序的编程及应用,值得收藏)

Posted

篇首语:盛年不重来,一日难再晨。及时当勉励,岁月不待人。本文由小常识网(cha138.com)小编为大家整理,主要介绍了数控车床宏程(一文搞懂数控宏程序的编程及应用,值得收藏)相关的知识,希望对你有一定的参考价值。

数控车床宏程(一文搞懂数控宏程序的编程及应用,值得收藏)

1. 什么场合会用到宏程序编程?

其实说起来宏就是用公式来加工零件,比如说椭圆,如果没有宏的话,我们要逐点算出曲线上的点,然后慢慢来用直线逼近,如果是个光洁度要求很高的工件的话,那么需要计算很多的点,可是应用了宏后,我们把椭圆公式输入到系统中然后我们给出Z坐标并且每次加一个量,那么宏就会自动算出X坐标并且进行切削, 实际上宏在程序中主要起到的是运算作用。

手工编程加工公式曲线(计算简单,输入快捷)

有规律的切削路径(作为一个切削模块)

程序间的控制(程序的调度)

刀具的管理(刀具的磨损)

自动测量(机内测头)

2. 什么叫宏程序?

在编程时,我们会把能完成某一功能的一系列指令像子程序那样存入存储器,用一个总指令来调用它们,使用时只需给出这个总指令就能执行其功能所存入的这一系列指令称作用户宏程序本体,简称宏程序。

这个总指令称作用户宏程序调用指令。在编程时,编程员只要记住宏指令而不必记住宏程序。

3. 用户宏程序与普通程序的区别

1)在用户宏程序本体中,能使用变量,可以给变量赋值,变量间可以运算,程序可以跳转。

2)普通程序中,只能指定常量,常量之间不能运算,程序只能顺序执行,不能跳转,因此功能是固定的,不能变化。

3)用户宏功能是用户提高数控机床性能的一种特殊功能,在相类似工件的加工中巧用宏程序将起到事半功倍的效果。

4. 变量的三种类型

数控系统变量表示形式为“#”后跟1~4位数字,变量种类有三种:

(1)局部变量:#1~#33是在宏程序中局部使用的变量,它用于自变量转移。

(2)公用变量:用户可以自由使用,它对于由主程序调用的各子程序及各宏程序来说是可以公用的。#100~#149在关掉电源后,变量值全部被清除,而#500~#509在关掉电源后,变量值则可以保存。

(3)系统变量:由后跟4位数字来定义,它能获取包含在机床处理器或NC内存中的只读或读/写信息,包括与机床处理器有关的交换参数、机床状态获取参数、加工参数等系统信息。

5. 宏程序的特点

宏程序可使用变量,可用变量执行相应操作;实际变量值可由宏程序指令赋给变量。

6. 指令

(1)宏程序的简单调用格式

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

调用指令格式:

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

其中:G65―宏程序调用指令;

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

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

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

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

(2)宏程序的编写格式

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

0~(0001~8999为宏程序号)

N10 指令

N~ M99

上述宏程序内容中,除通常使用的编程指令外,还可使用变量、算术运算指令及其它控制指令。变量值在宏程序调用指令中赋给。

7. FANUC系统宏程序应用

(1)宏程序切槽

1)WHILE语句

G00 X52 Z2;

#2=-14;

是刀具z向的起刀点(因为刀宽为4mm,所以起刀点定在Z-14的位置)

WHILE〔#2 GE -30〕DO2;

是z方向的约束条件,当z等于-30时,z向就不再移动

G00 Z〔#2〕;

z方向的当前位置

#2=#2-2;

z方向的移动步距,每次移动2mm

#1=52;

是x方向的起刀点

WHILE〔#1 GE 20〕DO1;

X方向的约束条件,当直径等于20时就不再切削

G01 X〔#1〕F0.2;

x方向的切深

G00 X〔#1+1〕;

x方向的相对退刀量

#1=#1-1;

x方向的步距(每次切1mm)

END1;

G00 X52;

END2;

完整程序:

O1234;

G40 G97 G99;

T0101;

S1000 M3;

G00 X52 Z2;

#2=-14;

WHILE〔#2GE-30〕DO2; END1;

G00 Z〔#2〕;

#2=#2-2;

#1=52

WHILE〔#1GE20〕DO1;

G01X〔#1〕F0.2;

G00X〔#1+1〕;

#1=#1-1;

G00 X52;

END2;

G00 X150 Z150;

M30;

2)IF语句

G00 X52 Z-2;

#1=-14;

是刀具的z向起刀点(刀宽为4mm)

N2 #1=#1-2;

是z方向的移动步距

#2=52;

为x方向的起刀点

N1#2=#2-1;

是x方向的步距(每次切深1mm)

G01 X〔#2〕F0.2;

X方向的当前位置

G00 X〔#2+1〕;

X方向的相对退刀量

IF 〔#2 GE 21〕GOTO1;

x方向的约束条件(当x的数值切到20时就进行下面程序,不再返回)

G00 X52;

X退刀到52的位置

G00 Z〔#1〕;

Z方向的当前位置

IF 〔#1 GE -30〕GOTO2;

Z方向的约束条件,当z等于-30时,z向就不在移动

完整程序:

O1234;

G40G97G99;

T0101;

S1000M3;

G00 X52 Z-2;

#1=-14;

N2 #1=#1-2;

#2=52;

N1#2=#2-1;

G01 X〔#2〕F0.2;

G00 X〔#2+1〕;

IF〔#2GE21〕GOTO1;

G00X52;

G00Z〔#1〕;

IF〔#1GE-30〕GOTO2;

G00X200;

Z200;

M5;

M30;

(2)椭圆编程

1)椭圆WHILE语句的标准格式:

#1=a;

a :为刀具的起刀点在相对椭圆的轴线Z的正方向a mm处

WHILE〔#1 GE b〕DO1;

b: 为椭圆加工的终点在相对椭圆的轴线Z的负方向b mm处(如果加工的是一个完整的半椭圆,那a、b是数值相同符号不同的两个数值)

#2= c*SQRT〔1-#1*#1/d*d〕;

c: 椭圆的短半轴

d: 椭圆的长半轴(根据椭圆公式求#2,长半轴为d,短半轴为c,#2代表X的数值,#1为Z的数值,SQRT是开方的意思)

G01 X〔±2*#2+e〕Z〔#1±f〕;

e: 椭圆的X向轴线相对工件坐标系的偏移量(直径值)

f: 椭圆的Z向轴线相对工件坐标系的偏移量

#1=#1-1;步距(每次移动1mm)

END1;

注意事项:当车削凹椭圆时X后括号中的“±”取“﹣”;当车削凸椭圆时X后括号中的“±”取“+”。

当椭圆的X轴线向正向偏移则Z后括号中的“±”取“+”;当椭圆的X向轴线向负向偏移则Z后括号中的“±”取“﹣”

2)椭圆IF语句的标准格式

#1=a;

a: 为刀具的起刀点在相对椭圆的轴线Z的正方向a mm处

N1#2=b*SQRT〔1-#1*#1/c*c〕;

b:椭圆的短半轴c:椭圆的长半轴(根据椭圆公式X/c+ Y/b=1,SQRT是开方的意思)

G01X〔±2*#2+d〕Z〔#1±e〕F0.2; d:椭圆的X向轴线相对坐标零点的偏移量(直径值)e:椭圆的Z向轴线相对零面的偏移量

#1=#1-1;

步距(每次移动1mm)

IF〔#1 GE -f〕GOTO1

f:椭圆加工的终止

注意事项:当车削凹椭圆时X后括号中的“±”取“﹣”;当车削凸椭圆时X后括号中的“±”取“+”。当椭圆的X轴线向正向偏移则Z后括号中的“±”取“+”;当椭圆的X向轴线向负向偏移则Z后括号中的“±”取“﹣”。

WHILE语句

#1=20;

WHILE〔#1GE-20〕DO1;

#2=10*SQRT〔1-#1*#1/400〕;

G01X〔-2*#2+50〕Z〔#1-25〕;

#1=#1-1;

END1;

IF语句

#1=20;

N1#2=10*SQRT〔1-#1*#1/400〕;

G01X〔-2*#2+50〕Z〔#1-25〕F0.2;

#1=#1-1;

IF〔#1GE-20〕GOTO1;

完整程序

O1234;

G40G97G99;

T0101;

S1000 M3;

G00 X50 Z2;

G73 U5 R5;

G73 P10 Q20 U0.5 F0.2;

N10 G0 G42 Z-5;

#1=20;

WHILE〔#1GE-20〕DO1;

#2=10*SQRT〔1-#1*#1/400〕;

G01X〔-2*#2+50〕Z〔#1-25〕F0.2;

#1=#1-1;

END1;

G00 X50;

N20 G00 G40 Z2;

G70 P10 Q20;

G00 X200;

Z200;

M5;

M30;

IF语句完整格式省略,(IF语句也一样,只要加上循环就可以),在FANUC-0i系统中宏程序只能加在G73中。

(3)抛物线的加工

1)抛物线WHILE语句的标准格式:

#1=a;

a: 为刀具的起刀点在抛物线轴线Z的方向a mm处

WHILE〔#1 GE -b〕DO1;

b: 为椭圆z向的加工长度

#2=SQRT〔-#1*5/3〕;

(根据抛物线公式Z=-3/5*X*X,求其中的X值,也就是#2,其中SQRT是开平方的意思)

G01 X〔±2*#2+c〕Z〔#1〕;

c: 为抛物线的X向轴线相对工件坐标系的偏移量(直径值),“±”

取“+”时为凸,取“-”时为凹

#1=#1-1; 步距(每次移动1mm)

END1;

2)抛物线IF语句的标准格式

#1=a;

a: 为刀具的起刀点在抛物线轴线Z的方向a mm处

N1 #2=SQRT〔-#1*5/3〕;

(根据抛物线公式Z=-3/5*X*X,求其中的X值,也就是#2,其中SQRT是开平方的意思)

G01 X〔±2*#2+b〕Z〔#1〕;

b:为抛物线的X向轴线相对坐标零点的偏移量(直径值),“±”取“+”时为凸,取“-”时为凹

#1=#1-1;

(Z方向的步距,每次移动1mm)

IF〔#1 GE -c〕GOTO1; c:为椭圆z向的加工长度

抛物线IF语句的另一种形式

#1=a;

N1 #2=SQRT〔(+)#1*5/3〕;

“+”号可省略

G01 X〔2*#2+b〕Z〔-#1〕;

#1=#1+1;

IF〔#1 LE c〕GOTO1;

假设抛物线是向Z的正方向,再用Z〔-#1〕;把抛物线对称到负方向

WHILE语句

#1=0;

WHILE〔#1 GE -15〕DO1;

#2=SQRT〔-#1*5/3〕;

G01 X〔2*#2+30〕Z〔#1〕;

#1=#1-1;

END1;

IF语句

#1=0;

N1 #2=SQRT〔-#1*5/3〕;

G01X〔2*#2+30〕Z〔#1〕;

#1=#1-1;

IF〔#1 GE -15〕GOTO1;

完整程序

O1234;

G40 G97 G99;

T0101;

S1000 M3;

G00 X42 Z1;

G73 U5 R5;

G73 P10 Q20 U0.5 F0.2;

N10 G00 G42 Z0;

#1=0;

WHILE〔#1 GE -15〕DO1;

#2=SQRT〔-#1*5/3〕;

G01 X〔2*#2+30〕Z〔#1〕;

#1=#1-1;

END1;

G00 X42;

N20 G00 G40 Z2;

G70 P10 Q20;

G00 X200;

Z200;

M5;

M30;

(4)WHILE语句与IF语句的区别

1)两种语句返的方向不同

WHILE语句向后返

例:WHILE〔#1 GE 20〕DO1;

G01 X〔#1〕F0.2;

假设机床执行到此句时#1=20,它会继续往下执行,执行到#1=#1-1后#1的值变为19,不再满足约束条件所以就不会返回去。(X方向切到20)

G00 X〔#1+1);

#1=#1-1;

END1;

2)IF语句向前返

例:N1 #2=#2-1;

G01X〔#2〕F0.2;假设机床执行到此句时#2=20,它会继续往下执行,执行到IF〔#2 GE 20〕GOTO1;仍然满足条件,它会继续返回到N1 #2=#2-1;而现在的X值就会变为19,不再满足约束条件,而后再执行一

G01X〔#2〕F0.2;最后就执行下面的程序(X方向已经切到19)

G00X〔#2+1);

IF〔#2 GE 20〕GOTO1;

3)从上面的切槽程序可以看出,IF语句要比WHILE语句的字数要少很多。

4)由于返回的方向不同,在加工中WHILE语句少读一句,IF语句要多读一句。

8. SIEMENS系统(车床)宏程序应用

说明:宏程序是用变量编程,西门子系统的变量号用R表示。

例如用普通编程方法编写的:G01X-10

用宏程序可表示为:

R1=-10

G01 X=R1

条件转移:

IF GOTOB:向后跳转

IF GOTOF:向前跳转

用普通编程方法编写的

GO1X100

用变量可表示为:

R1=0

AA:R1=R1+1

G01X=R1

IF R1<100 GOTOB AA

R1是自变量,初始值为0,R1=R1+1表示的是自变量的递增数值为1,当程序每次走过此行时,R1的值增加1,R1<100是条件式,IF R1<100 GOTOB AA此行的意思是如果自变量R1<100则程序向后跳转到标记处:AA

如果R1大于或等于100,则程序往下走。

宏程序在G90和G91模态下都可以使用,不过它们含义不同,例如;

R1=0,G90R1=R1+1,G1X=R1,此程序走完第二遍X的值是2.

R1=0,G91R1=R1+1,G1X=R1,此程序走完第二遍X的值是3. 解释:程序走完第一遍R1的值是1,走第二遍的时候R1的值是2,但是在G91模态下它是在前面的基础上走的。

(1)切槽

T1

TC

T1D1

G0G40X100Z100

M03S1000

G0X54Z2

快速到达起刀点

Z-10

R1=3

定义刀片宽度为3mm

R2=-10-R1-0.2

起刀点 为-10,对刀时以刀片左边;

对刀,所以应减去刀片的宽度,0.2为精加工余量

G1Z=R2F0.1

刀具到达Z轴起刀点

AA:R2=R2-2.5

R3=50

槽X轴起到点

BB:R3=R3-2

定义每刀切削深度为2 mm

G1X=R3

X=R3+1

每切深2mm单边退0.5mm排屑

IF R3>30+0.4 GOTOB BB

定义槽深10mm,如果R3>30mm程序向后跳转到标记处BB,0.4为精加工余量

G0X50

刀具到达X轴起刀点

G1Z=R2

IF R2>-30+0.2 GOTOB AA

定义槽宽为20mm,0.2是精加工余量

G0X50

G01Z-13

精加工

X30

Z-16

G0X50

Z-30

G01X30

Z-16

G0X50

退刀

G0X100

Z100

M05

M30

(2)椭圆

1)基本格式

R1=0

定义变量R1初始值为0

AA:R2=b×SQRT(1-R1×R1/a×a)

根据椭圆方程所得,a是椭圆的长半轴,b是椭圆短半轴,SQRT是开平方符号。

G1X=±2×R2+X Z=R1-Z

设定椭圆的位置和形状,+2为凸形,-2为凹形,X、Z分别是工件轴线和椭圆轴线的距离(直径制)。

R1=R1-1

设定加工步距

IF R1>=n GOTOB AA

如过变量R1<n,则向后跳转到标记处AA,n为Z向终点坐标。

2)编程举例:

T1D1

G0G40X100Z100

M3S1000

G0X52Z2

Z-20

CYCLE95( )

G42S1500

OO:

R1=20

AA:R2=5×SQRT(1-R1×R1/400)

G1X=-2×R2+50 Z=R1-40

R1=R1-2

IF R1>=-20 GOTOB AA

PP:X42

G0G40X100Z100

M05

M09

M30

(3)抛物线

1)基本格式:

R1=0

设定变量R1的初始值为0

AA:R2=SQRT(-R1×n)

根据抛物线基本格式所得,式中SQRT为开平方符号,n是系数

G01X=2×R2+n

Z=R1

加工路径,+2是凸形,n是X轴起点数值

R1=R1-1

变量增量值为1mm

IF R1>-30 GOTOB AA

如果变量R1>-30,程序向后跳转到标记处:AA

2)编程举例:

T1

Tc

T1D1

G0G40X100Z100

M03S1000

G0X52Z2

CYCLE95( )

G0G42

OO:

R1=0

AA:R2=SQRT(-R1×5/3)

G01X=2×R2+30 Z=R1

R1=R1-2

IF R1>-60 GOTOB AA

PP:X52

G0X100Z100

M05

M30

相关参考

数控机床宏程序入门知识(数控机床宏程序详细教学速来领取学习吧)

...午好,我是你们的美丽老师,今天给大家分享《数控机床宏程序详细教学》需要学习的朋友们可以来领取完整版哦!感谢大家的支持,喜欢的话可以多多转发+关注我哦~宏编程及其技术应用椭圆方程椭圆拟合算法用户宏程序宏编...

数控车床内圆R角怎么编(数控车上加工圆弧螺纹宏程序,这个案例值得你学习)

运用宏程序编程优点还很多,比如说刀具寿命管理,安全预测程序开发,数控G指令开发,产品、磨具参数化编程等等。学会宏程序编程是一件多么夸姣的事啊!说起大螺距圆弧螺纹加工,批量生产大多用旋风铣来加工可是一些...

广数控车钻孔宏程序(数控车编程与操作)

...的分类与应用范围第三节数控机床的主要性能指标第二章数控车床编程简介第一节数控车床编程基础第二节数控机床常用刀具和切削用量的选择第三章FANUC-0i数控系统编程与操作第一节程序格式与相关编程知识第二节G代码编程与...

数控车大螺距螺纹借刀(数控中级编程:解析矩形螺纹的加工思路,用宏程序编程的方法一)

如果说宏程序在数车加工中,哪一块具有很高的价值,那么无疑是大螺距螺杆的应用了,而非圆曲线,其实也是为大螺距螺杆做铺垫。因为有些螺杆的牙型是非圆曲线形。今天分享的是——矩形螺纹。说到矩形螺纹,它的主要用...

数控宏程序编程100例(数控车宏程序编程实例,大螺距圆弧螺纹宏程序分享)

做数控车的师傅遇到大螺距螺纹,圆弧螺纹,异性螺纹的编程,往往束手无策,因为普通的G指令(G32,G92,G76)很难实现这类零件的加工。那么,遇到这类零件如何编程呢?很棒的方法就是利用宏程序,那么清风给你讲三点,让你明白...

数控分度头怎么编程(邹军爱数控:邀你一起学数控宏程序编程,扩展你的编程思路)

...序也只能默默的看着别人装逼了!如果你有钱可以买五轴数控机床,没有人有意见的。光看看这些,用宏程序加工的作品就知道,月薪上万是没有问题的。这样的技术你是不是觉得离自己很遥远?只有想不到没有做不到的。宏程...

数控车床宏程序钻孔怎么编(数控加工侧洗头(90度)打孔编程方法讲解(手编)转载)

角度头怎样与机床主轴(spindle)连接。角度头的应用。角度头的方向(这种角度头有称之为侧铣头)。从角度头与主轴的连接可以看出,当主轴定位后(如M19),通常角度头的朝向只有一个,所以在加工几个方向时需要几个角度头...

数控车床宏程序难学吗(赚大发了数控编程之宏程序高级教程找到了)

今天从多年的老师傅那边找来了数控编程的高级宏程序教程,里面很详细讲解了各种数控编程的高级用法,包括两大章节(铣工篇和车工篇)数控编程机加必备!那么如何领取这么全的资料呢!(关注+私信)即可!一:铣工篇...

数控车床车凸圆弧实例(宏程序入门的第四讲,含上凹圆弧零件的编程之同心圆法)

今天进行数控车床编程宏程序入门的第四讲,关于轴上凹球面零件的加工。从下图中可知,该零件是一个中级工考工的简单轴类零件的加工。1、从学生实训的角度而言:学生主要是学代码指令的应用,更在乎通过程序编制能正...

数控车床车圆球编程(什么是数控“宏程序”自动生成?对我们有什么好处)

大家好,我是羽夜老师,有很多人不知道宏程序是什么,今天给大家简单介绍一下数控宏程序编程:它是用变量的方式进行数控编程的方法。数控宏程序分为A类和B类宏程序,其中A类宏程序比较老,编写起来也比较费时费力,B...