简单来说,宏就是用公式来加工零件。比如说椭圆,如果没有宏的话,我们要逐点算出曲线上的点,然后慢慢来用直线逼近,如果是个光洁度要求很高的工件的话,那么需要计算很多的点,可是应用了宏后,我们把椭圆公式输入到系统中然后我们给出Z坐标并且每次加一个量,那么宏就会自动算出X坐标并且进行切削,实际上宏在程序中主要起到的是运算作用。
01
关于宏程序
什么是宏程序
在编程时,我们会把能完成某一功能的一系列指令像子程序那样存入存储器,用一个总指令来调用它们,使用时只需给出这个总指令就能执行其功能所存入的这一系列指令称作用户宏程序本体,简称宏程序。
这个总指令称作用户宏程序调用指令。在编程时,编程员只要记住宏指令而不必记住宏程序。
什么场合会用到宏程序编程
1)手工编程加工公式曲线(计算简单,输入快捷)
2)有规律的切削路径(作为一个切削模块)
3)程序间的控制(程序的调度)
4)刀具的管理(刀具的磨损)
5)自动测量(机内测头)
宏程序与普通程序的区别
1)在宏程序本体中,能使用变量,可以给变量赋值,变量间可以运算,程序可以跳转。
2)普通程序中,只能指定常量,常量之间不能运算,程序只能顺序执行,不能跳转,因此功能是固定的,不能变化。
3)宏功能是用户提高数控机床性能的一种特殊功能,在相类似工件的加工中巧用宏程序将起到事半功倍的效果。
02
宏程序的变量与格式
宏程序的特点
宏程序可使用变量,可用变量执行相应操作;实际变量值可由宏程序指令赋给变量。
变量的三种类型
数控系统变量表示形式为“1~100~500~2=-14;
是刀具z向的起刀点(因为刀宽为4mm,所以起刀点定在Z-14的位置)
WHILE〔2〕;
z方向的当前位置
2-2;
z方向的移动步距,每次移动2mm
1GE20〕DO1;
X方向的约束条件,当直径等于20时就不再切削
G01X〔1+1〕;
x方向的相对退刀量
1-1;
x方向的步距(每次切1mm)
1;G00X52;
2;完整程序:
O1234;
G40G97G99;
T0101;
S1000M3;
G00X52Z2;
2GE-30〕DO2;END1;
G00Z〔2=1=52
WHILE〔1〕;
G00X〔1=1=-14;
是刀具的z向起刀点(刀宽为4mm)
N21-2;
是z方向的移动步距
2=2〕;
X方向的当前位置
G00X〔2GE21〕GOTO1;
x方向的约束条件(当x的数值切到20时就进行下面程序,不再返回)
G00X52;
X退刀到52的位置
G00Z〔1GE-30〕GOTO2;
Z方向的约束条件,当z等于-30时,z向就不在移动
完整程序:
O1234;
G40G97G99;
T0101;
S1000M3;
G00X52Z-2;
1=2=52;
N12-1;
G01X〔2+1〕;
IF〔1〕;
IF〔1=a;
a:为刀具的起刀点在相对椭圆的轴线Z的正方向amm处
WHILE〔2=c*SQRT〔1-1/d*d〕;
c:椭圆的短半轴
d:椭圆的长半轴(根据椭圆公式求2代表X的数值,2+e〕Z〔1=1=a;
a:为刀具的起刀点在相对椭圆的轴线Z的正方向amm处
N11*2+d〕Z〔1=1GE-f〕GOTO1
f:椭圆加工的终止
注意事项:当车削凹椭圆时X后括号中的“±”取“﹣”;当车削凸椭圆时X后括号中的“±”取“+”。当椭圆的X轴线向正向偏移则Z后括号中的“±”取“+”;当椭圆的X向轴线向负向偏移则Z后括号中的“±”取“﹣”。
WHILE语句
1GE-20〕DO1;
1*2+50〕Z〔1=1=20;
N11*2+50〕Z〔1=1GE-20〕GOTO1;
完整程序
O1234;
G40G97G99;
T0101;
S1000M3;
G00X50Z2;
G73U5R5;
;
N10G0G42Z-5;
1GE-20〕DO1;
1*2+50〕Z〔1=1=a;
a:为刀具的起刀点在抛物线轴线Z的方向amm处
WHILE〔2=SQRT〔-2,其中SQRT是开平方的意思)
G01X〔±2*1〕;
c:为抛物线的X向轴线相对工件坐标系的偏移量(直径值),“±”
取“+”时为凸,取“-”时为凹
1-1;步距(每次移动1mm)
1;2)抛物线IF语句的标准格式
2=SQRT〔-2,其中SQRT是开平方的意思)
G01X〔±2*1〕;
b:为抛物线的X向轴线相对坐标零点的偏移量(直径值),“±”取“+”时为凸,取“-”时为凹
1-1;
(Z方向的步距,每次移动1mm)
IF〔1=a;
N11*5/3〕;
“+”号可省略
G01X〔2*1〕;
1+1;
IF〔1〕;把抛物线对称到负方向
WHILE语句
1GE-15〕DO1;
1*5/3〕;
G01X〔2*1〕;
1-1;
1;IF语句
2=SQRT〔-2+30〕Z〔1=1GE-15〕GOTO1;
完整程序
O1234;
G40G97G99;
T0101;
S1000M3;
G00X42Z1;
G73U5R5;
;
N10G00G42Z0;
1GE-15〕DO1;
1*5/3〕;
G01X〔2*1〕;
1-1;
1;G00X42;
N20G00G40Z2;
G70P10Q20;
G00X200;
Z200;
M5;
M30;
(4)WHILE语句与IF语句的区别
1)两种语句返的方向不同
WHILE语句向后返
例:WHILE〔1〕;
假设机床执行到此句时1=1的值变为19,不再满足约束条件所以就不会返回去。(X方向切到20)
G00X〔1=2=2〕;假设机床执行到此句时2GE20〕GOTO1;仍然满足条件,它会继续返回到N12-1;而现在的X值就会变为19,不再满足约束条件,而后再执行一
G01X〔2+1);
IF〔#2GE20〕GOTO1;
3)从上面的切槽程序可以看出,IF语句要比WHILE语句的字数要少很多。
4)由于返回的方向不同,在加工中WHILE语句少读一句,IF语句要多读一句。
04
SIEMENS系统(车床)宏程序应用
说明:宏程序是用变量编程,西门子系统的变量号用R表示。
例如用普通编程方法编写的:G01X-10
用宏程序可表示为:
R1=-10
G01X=R1
条件转移:
IFGOTOB:向后跳转
IFGOTOF:向前跳转
用普通编程方法编写的
GO1X100
用变量可表示为:
R1=0
AA:R1=R1+1
G01X=R1
IFR1100GOTOBAA
R1是自变量,初始值为0,R1=R1+1表示的是自变量的递增数值为1,当程序每次走过此行时,R1的值增加1,R1100是条件式,IFR1100GOTOBAA此行的意思是如果自变量R1100则程序向后跳转到标记处: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-
起刀点为-10,对刀时以刀片左边;
对刀,所以应减去刀片的宽度,0.2为精加工余量
G1Z=
刀具到达Z轴起刀点
AA:R2=
R3=50
槽X轴起到点
BB:R3=R3-2
定义每刀切削深度为2mm
G1X=R3
X=R3+1
每切深2mm单边退0.5mm排屑
IFR330+0.4GOTOBBB
定义槽深10mm,如果R330mm程序向后跳转到标记处BB,0.4为精加工余量
G0X50
刀具到达X轴起刀点
G1Z=R2
IFR2-30+0.2GOTOBAA
定义槽宽为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+XZ=R1-Z
设定椭圆的位置和形状,+2为凸形,-2为凹形,X、Z分别是工件轴线和椭圆轴线的距离(直径制)。
R1=R1-1
设定加工步距
IFR1=nGOTOBAA
如过变量R1n,则向后跳转到标记处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+50Z=R1-40
R1=R1-2
IFR1=-20GOTOBAA
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
IFR1-30GOTOBAA
如果变量R1-30,程序向后跳转到标记处:AA
2)编程举例:
T1
Tc
T1D1
G0G40X100Z100
M03S1000
G0X52Z2
CYCLE95()
G0G42
OO:
R1=0
AA:R2=SQRT(-R1×5/3)
G01X=2×R2+30Z=R1
R1=R1-2
IFR1-60GOTOBAA
PP:X52
G0X100Z100
M05
M30