1.2 地址符详解
1.2.1 程序段号地址符N
数控程序的每一单节之前可以加一顺序号码,以地址符N后面加上1~9999数字表示。顺序号码与数控程序的加工顺序无关,它只是那一单节的代号,故可任意编号。但最好以由小到大的顺序编写,较符合人们的思维习惯。
使用技巧:为节省存储空间,提高编程效率,每一单节前面无需都书写程序段号,程序段号常跟注释、说明,并不影响加工。例如:
N1; (FIRST)
G90 G54 G40 G17 G49 G80;
…
N2;(SECOND)
…
同时,程序段号也可以作为循环语句的标识。例如:
N1 IF[#2 LT 1.0] GOTO3
#1=#1+5.0;
#2=#2-1.0;
GOTO1;
N3#2=#2-1.0;
使用CAM软件时,生成的刀路文件经过后处理,程序段号可以自动生成,自动换行,省去了单节结束指令“;”,具体的示例如下:
%
00000
(PROGRAM NAME-HY10)
(DATE=DD-MM-YY-27-02-02 TIME=HH:MM-12:50)
((UNDEFINE)T00L-1 DIA.OFF.-41 LEN.-1 DIA.-10.)
N100G21
N102G0G40G49G80G90
N104T1M6
N106G0G90G54X-19.305Y-15.6S1200M3
N108G43H1260.M8
N110234.8
N112G1Z29.8F2.
N114X19.305
N116G0250.
N118X24.248Y-5.2
1.2.2 主轴功能地址符S
用代码指定主轴速度,并不会使机床主轴转动,需和M03、M04指令配合使用。一个程序段只能包含一个S代码,关于S代码后的数值位数和S代码与运动指令在同一程序段时程序如何执行可参考相关的机床说明书。
直接指定主轴速度值,主轴速度可以直接用地址符S后的最多5位数值(r/min)指定。指定主轴转速的5位数值的单位,取决于机床厂的规定,详细情况见机床制造厂提供的说明书,操作时结合机床操作面板的主轴倍率开关一起使用。
1.2.3 刀具功能地址符T
在地址符T后一般指定2位数字用以选择机床上的刀具。在一个程序段中只能指定一个T代码。数控铣床无ATC(自动换刀装置),只能手动换刀,所以T功能只用于加工中心,且加工中心并不是在任意位置都可以换刀,要避免与工作台、工件、夹具等发生碰撞,一般是设定在参考点换刀的。例如:
G91 G28 Z0;(Z轴回归参考点)
G28 X0 Y0; (X、Y轴回参考点)
M06 T03; (主轴更换第3把刀具)
1.2.4 进给功能地址符F
直线插补G01及圆弧插补G02、G03等的进给速度是用F代码后面的数值指令的,主要用如下两种方式指定。
(1)每分进给(G94)
在地址符F之后指定每分钟的刀具进给量,单位为mm/min,如图1-1所示。
图1-1 每分进给量示意图
(2)每转进给(G95)
在地址符F之后指定主轴每转的刀具进给量,单位为mm/r。
1.2.5 辅助功能地址符M
辅助功能又称M功能,由地址符M及其后的两位数字组成。它与数控系统的插补运算无关,是根据加工时机床操作的需要给予规定的工艺性指令。常用的M代码及其功能如表1-2所示。
表1-2 常用的M代码及其功能
通常在一个程序段中仅能指定一个M代码,对于M03和M04,主轴的正转和反转是从Z轴的正向朝负向观察,主轴顺时针转动为M03,主轴逆时针转动为M04,具体可参见图1-2。
图1-2 M03和M04示意图
1.2.6 准备功能G指令
准备功能又称G功能,它是建立机床或控制系统工作方式的一种命令,它由地址符G及其后的两位数字组成。常用的G代码及其功能如表1-3所示。
表1-3 常用的G代码及其功能
可以看到,G代码被分为了不同的组,这是由于大多数的G代码是模态的。模态G代码,是指这些G代码不只在当前的程序段中起作用,而且在以后的程序段中一直起作用,直到程序中出现另一个同组的G代码为止。同组的模态G代码控制同一个目标但起不同的作用,它们之间是不兼容的。
00组的G代码是非模态的,这些G代码只在它们所在的程序段中起作用。标有带★号的G代码是机床通电时默认的代码。对于G00和G01、G90和G91,机床通电时的状态由系统参数决定。如果程序中出现错误的G代码,CNC会显示报警。
同一程序段中可以有几个G代码出现,但当两个或两个以上的同组G代码出现时,最后出现的一个(同组的)G代码有效。
在固定循环模态下,任何一个01组的G代码都将使固定循环模态自动取消,成为G80模态。
(1)快速点定位(G00)
指令格式:G00 IP ;
IP 在本书中代表任意不超过三个进给轴地址的组合,当然,每个地址后面都会有一个数字作为赋给该地址的值,一般机床有三个或四个进给轴即X、Y、Z、A,所以IP 可以代表如 X18.Y179.Z-39.或 X257.3 Z73.5 A45.等内容。
G00这条指令就是使刀具快速移动到IP 指定的位置,被指令的各轴之间的运动是互不相关的,也就是说刀具移动的轨迹不一定是一条直线。其移动速率可由执行操作面板上的“快速进给率”旋钮调整,并非由F机能制定。
若X、Y、Z轴最快移动速率为3000mm/min,则“快速进给率”旋钮调整方式如表1-4所示。
表1-4 “快速进给率”旋钮调整方式
只要非切削的移动,通常使用G00指令,如由机床原点快速定位至切削起点,切削完成后的Z轴退刀及X、Y轴的定位等,以节省加工时间。
G00编程举例:起始点位置为X10 Y10,执行指令G00 X40 Y40将使刀具走出如图1-3(a)所示的轨迹;如果起始点位置仍为X10 Y10,执行指令G00 X40 Y60将使刀具走出如图1-3(b)所示的轨迹,这是CNC装置插补运算的结果。
图1-3 G00示意图
(2)直线插补(G01)
指令格式:G01 IP F ;
G01指令使当前的插补模态成为直线插补模态,刀具从当前位置移动到 IP指定的位置,其轨迹是一条直线,F指定了刀具沿直线运动的速度,单位为mm/min(X、Y、Z轴)。该指令是最常用的指令之一。
假设当前刀具所在点为X10 Y10,执行如下程序段:
N10 G01 X40 Y40 F100;
N20 X80 Y40;
将使刀具走出如图1-4所示轨迹。
图1-4 G01示意图
由上可知,程序段N20并没有指令G01,由于G01指令为模态指令,所以N10程序段中所指令的G01在N20程序段中继续有效;同样地,指令F100在N20段也继续有效,即刀具沿两段直线的运动速度都是100mm/min。
(3)圆弧插补(G02/G03)
下面所列的指令可以使刀具沿圆弧轨迹运动。
在XY平面:
在ZX平面:
在YZ平面:
①平面选择。
G17:指定XY平面上的圆弧插补。
G18:指定ZX平面上的圆弧插补。
G19:指定YZ平面上的圆弧插补。
②圆弧方向。
G02:顺时针方向的圆弧插补。
G03:逆时针方向的圆弧插补。
这里所讲的圆弧方向,对于XY平面来说,是由Z轴的正向往Z轴的负向看XY平面所看到的圆弧方向;同样,对于ZX平面或YZ平面来说,观测的方向则应该是从Y轴或X轴的正向到Y轴或X轴的负向(图1-5)。
图1-5 圆弧判别方向示意图
③终点位置。
G90 模态:当前工件坐标系中终点位置的坐标值。
G91 模态:从起点到终点的距离(有方向)。
④两种不同的编程方式。
方法一 给定终点和向量。
【例1-1】 编写如图1-6所示刀具从A点到B点的加工程序。
图1-6 向量编程
G17 G03 X5.0 Y14.0 I-10.0 J0 F100;
地址符I、J后的数据表示的是圆弧起点指向圆心的向量,数值的计算方法是用圆心的坐标减去圆弧起点的坐标差值。
方法二:给定半径和终点。
对一段圆弧进行编程,还可以用给定半径和终点位置的方法,用地址符R来给定半径值,替代给定圆心位置的地址。R的值有正负之分,一个正的R值用于一段小于或等于180°圆弧的编程,一个负的R值则用于一段大于或等于180°圆弧的编程。编程加工一个整圆时,只能使用给定终点和向量的方式。
【例1-2】 编写如图1-7所示刀具从A点到B点的加工程序。
图1-7 半径编程
G17 G03 X5.0 Y14.0 R10.0 F80;
G17在机床通电时默认,进给率也可以由自保持功能不写,故以上程序段也可以写为:
G03 X5.0 Y14.0 R10.0;
【例1-3】 编写如图1-8所示刀具从A点到B点再沿顺时针方向回到B点的加工程序。
图1-8 半径和向量编程
G3 X10.0 Y15.0 R-15.0 F240;
G2 I0 J15.0;
以上第二个程序段也可以写为:
G2 J15.0;
(4)绝对值和增量值编程(G90和G91)
有两种指令刀具运动的方法:绝对值指令和增量值指令。在绝对值指令模态下,指定的是运动终点在当前坐标系中的坐标值;而在增量值指令模态下,指定的则是各轴运动的距离。
G90和G91这对指令被用来选择使用绝对值模态或增量值模态。在同一程序中可以绝对和增量值混合使用,原则是依据工件图上的尺寸的表示,用哪种方式表示方便,则使用哪种。现以图1-9~图1-11说明。
图1-9 G90示意图
图1-10 G91示意图
图1-11 绝对值和增量值的混合使用示意图
指令格式:G90 X Y Z ;
G91 X Y Z ;
在使用上,人工编程大都以绝对值和增量值混合使用较多。简而言之,哪种方式不用计算即可得到坐标位置,则以哪种方式表示,这样比较方便。现以图1-11进行说明。
设定刀具在H点,沿着A→B→C→D→E→F→G→工件原点→A点,完成轮廓切削的程序如下:
G90 G01 X18.F100;(H→B,用绝对值表示较方便)
G91 X35.Y-20.;(B→C,用增量值表示较方便)
G90 X92.;(C→D,用绝对值表示较方便)
Y15.;(D→E,用绝对值表示较方便)
G91 X-60.;(E→F,用增量值表示较方便)
Y-15.;(F→G,用增量值或绝对值表示均方便,但沿用上单节增量指令,可不必再用G90设定为绝对值,故用增量值表示)
X-32.;(G→程序原点,理由同上)
Y60.;(程序原点→A,理由同上)
(5)英制/公制单位选择(G20/G21)
G20:设定程序以in为单位,最小数值为0.0001in。
G21:设定程序以mm为单位,最小数值为0.001mm。
数控铣床或加工中心一开机即自动设定为公制单位(mm),故程序中不需再指定G21。但若加工以in为单位的工件,则于程序的第一单节必须先指定G20,如此以下所指令的坐标值、进给率、螺纹导程、刀具半径补偿值、刀具长度补偿值、手动脉冲发生器(MPG)手轮每格的单位值等均被设定为英制单位。
G20或G21通常单独使用,不和其他指令一起出现在同一单节,且应位于程序的第一单节。同一程序中,只能使用一种单位,不可公、英制混合使用。刀具补偿值及其他有关数值均需随单位系统改变而重新设定。
(6)暂停(G04)
指令格式:G04 X ;或G04 P ;
例如想要暂停2s,则应写成:G04 X2.0;G04 X2000或G04 P2000;
由以上可知X后面可用带小数点或者是不用小数点的方式来表示;但P后面的数值不可以用带小数点的方式表示。
暂停指令用于下列情况。
①主轴有高、低速挡切换时,于M05指令后,用G04指令暂停几秒,使主轴真正停止时再换挡,以避免损伤主轴的伺服电机。
②孔底加工时暂停几秒,使孔的深度正确及增加孔底面的光洁度。
(7)设定坐标系(G92,G54~G59,G52,G53)
编写CNC程序时必须根据编程坐标系来描述工件轮廓尺寸,此编程坐标系的零点即编程原点。
①G92指令。指令格式:G92 X Y ;
X、Y值是指程序原点到刀位点的向量值,在使用时,必须将X、Y值表示出来。
②G54~G59指令。其后不需写X、Y值,用于指定机床原点与程序原点的向量值。一般使用G54~G59指令后,就不再使用G92指令。但如果使用,则原来G54~G59设定的程序原点将被G92后面的X、Y值取代。
③注意事项。
a. G54与G55~G59的区别。G54~G59设置加工坐标系的方法是一样的,但在实际情况下,机床厂家为了用户的不同需要,在使用中有以下区别:利用G54设置机床原点的情况下,进行回参考点操作时机床坐标值显示为G54的设定值,且符号均为正;利用G55~G59设置加工坐标系的情况下,进行回参考点操作时机床坐标值显示零值。
b. G92与G54~G59的区别。G92指令与G54~G59指令都是用于设定工件加工坐标系的,但在使用中是有区别的。G92指令是通过程序来设定、选用加工坐标系的,它所设定的加工坐标系原点与当前刀具所在的位置有关,这一加工原点在机床坐标系中的位置是随当前刀具位置的不同而改变的。
c. G54~G59的修改。G54~G59指令是通过MDI在设置参数方式下设定工件加工坐标系的,一旦设定,加工原点在机床坐标系中的位置是不变的,它与刀具的当前位置无关,除非再通过MDI 方式修改。
④G52指令。
局部坐标系指令G52用于将原坐标系中分离出数个子坐标系统。
指令格式:G52 X Y ;
X、Y的定义是原坐标系程序原点到子坐标系程序原点的向量值,G52 X0 Y0表示回复到原坐标系。
⑤G53指令。指令格式:G53 G90 X Y Z ;
G53指令使刀具快速定位到机床坐标系中的指定位置上。X、Y、Z后面的值为机床坐标系中的坐标值,其尺寸均为负值。
【例1-4】 G53 G90 X-100.0 Y-100.0 Z-20.0;
执行后刀具在机床坐标系中的位置如图1-12所示。
图1-12 G53选择机床坐标系
⑥附加工件坐标系。
除了6个工件坐标系(标准工件坐标系)G54~G59外,还可以使用48个附加工件坐标系。
指令格式:G54.1Pn;或G54Pn;
Pn指定附加工件坐标系的代码,n的范围从1~48。
例如,G90 G17 G40 G54.1 P23表示调用的是23号附加工件坐标系。
(8)刀具长度补偿(G43、G44、G49)
指令格式:
指令欲定位至Z轴的坐标位置。H后为长度补偿号,用2位数字表示。例如H01表示刀具长度补偿号为01,01号的数据-412.867表示该刀具的长度补偿值为-412.867mm。执行G43或G44指令时,控制器会到H所指定的刀具长度补偿号内提取长度补偿值,作为补偿依据。
G43或G44是模态指令,H指定的补偿号也是模态的,使用这条指令,编程人员在编写加工程序时就可以不必考虑刀具的长度而只考虑刀尖的位置。刀具磨损或损坏后更换新的刀具时也不需要更改加工程序,可以直接修改刀具补偿值。
G43指令为刀具长度正补偿,也就是说Z轴到达的实际位置为指令值与补偿值相加的位置;G44指令为刀具长度负补偿,也就是说Z轴到达的实际位置为指令值减去补偿值的位置(一般较少使用),如图1-13所示。
图1-13 刀具长度补偿示意图
H的取值范围为00~200,H00意味着取消刀具长度补偿。取消刀具长度补偿的另一种方法是使用指令G49。NC执行到G49指令或H00时,立即取消刀具长度补偿,并使Z轴运动到不加补偿值的指令位置。补偿值的取值范围是-999.999~999.999mm或-99.9999~99.9999in。
注意事项如下。
①使用G43或G44进行长度补偿时,只能是Z轴的移动,如果出现其他坐标轴,机床就会出现报警画面。
②若对刀时没有建立基准刀具,而是通过长度补偿来设定工件坐标系中的Z值,即使用指令G54时工件坐标系中的Z值为0,则不要使用G49取消长度补偿,否则可能引起撞刀。
(9)刀具半径补偿(G40、G41、G42)
使用数控机床进行铣削编程加工时,使用刀具下表面中心作为刀位点,代替整把刀具进行编程加工。
为了编程方便,数控系统使用G41或G42指令,按照零件实际尺寸编写加工程序,如图1-14所示。
图1-14 刀具半径补偿示意图
指令格式:;
G41:左侧刀具半径补偿,它产生的效果相当于顺铣。
G42:右侧刀具半径补偿,它产生的效果相当于逆铣。
执行该指令,刀具中心就在运动轨迹的法线方向上偏移一个距离,距离的大小通过程序指定。X、Y、Z三轴中配合平面选择(G17、G18、G19)任两轴。D后为半径补偿号,以2位数表示。例如D11表示半径补偿号为11,11号的数据是4.0,表示铣刀半径为4.0mm。执行G41或G42指令时,控制器会到D所指定的半径补偿号内提取刀具半径补偿值,以作为补偿依据。
在G41或G42指令中,D指定了一个补偿号,每个补偿号对应一个补偿值。补偿号的取值范围为0~200。和长度补偿一样,D00意味着取消半径补偿,取消半径补偿的另外一种方法是使用G40,补偿值的取值范围和长度补偿相同。
刀具半径补偿方向判别方法如下:沿着刀具路径,向铣削前进的方向观察,铣刀在工件的右侧,以G42指令;反之,以G41指令,如图1-15所示。
图1-15 左、右刀具补偿方向判别示意图
刀具补偿的建立是在该程序段的终点也就是下一个程序段的起点作出一个偏置量,大小等于D中指定的数值,方向由G41/G42规定。取消刀具补偿是在上一个程序段的终点,也就是本段的起点作出一个偏置量,大小等于D中指定的数值,方向由G41/G42规定,如图1-16所示(刀具开始位置在X0 Y0 Z0)。
图1-16 刀具半径补偿建立和取消的过程
N10 G90 G17 G00 G41 D08 X250.0 Y550.0;(开始刀具半径补偿,刀具用D08指定的距离偏移到编程轨迹的左边)
N20 G01 Y900.0 F150;(从P1到P2加工)
N30 X450.0;(从P2到P3加工)
N40 G03 X500.0 Y1150.0 R650.0;(从P3到P4加工)
N50 G02 X900.0 R-250.0;(从P4到P5加工)
N60 G03 X950.0 Y900.0 R650.0;(从P5到P6加工)
N70 G01 X1150.0;(从P6到P7加工)
N80 Y550.0;(从P7到P8加工)
N90 X700.0 Y650.0;(从P8到P9加工)
N100 X250.0 Y550.0;(从P9到P1加工)
N110 G00 G40 X0 Y0;(取消偏置方式,刀具返回到开始位置)
使用刀具半径补偿时应注意下列事项。
①不能和G02、G03一起使用,只能与G00或G01一起使用,且接下来的两个程序单段中不能都是Z轴的移动,或者刀具不移动,否则会产生过切。
②补偿值的正负号改变时,G41及G42的补偿方向会改变。如G41指令给予正值时,其补偿向左;若给予负值时,其补偿会向右;G42同理。故一般键入正值(即铣刀半径值)较合理。
③当刀具处于半径补偿状态,若加入G28、G29、G92指令,当这些指令被执行时,补偿状态将暂时被取消,但是控制系统仍记忆着此补偿状态,因此在执行下一单节时,又自动恢复补偿状态。
④使用G40的时机,最好是铣刀已远离工件。
⑤在补偿状态下,铣刀的直线移动量及内侧圆弧切削的半径值要大于或等于铣刀半径,否则补偿向量产生干涉,会发生过切,控制器命令停止执行,且显示报警号码。
(10)参考点(G27、G28、G29)
①G27返回参考点检查。指令格式:G27 IP ;(IP:指定参考点的指令)
G27指令,刀具快速定位。如果刀具到达参考点返回参考点指示灯亮;如果刀具到达的位置不是参考点则显示报警。
②返回参考点(G28)。指令格式:G28 IP ;(IP:中间点坐标)
各轴快速执行中间点或参考点的定位。为了安全,在执行该指令前应清除刀具半径补偿和刀具长度补偿。中间点的坐标存储在CNC中,每次只存储G28程序段中指令轴的坐标值,对其他轴用以前指令过的坐标值,具体示例如图1-17所示。
图1-17 G28与G29指令
③从参考点返回(G29)。指令格式:G29 IP ;(IP:指定返回点的坐标)
在G28指令后立即使用从参考点返回指令,各轴快速经中间点返回指定点,具体示例如图1-17所示。
G28与G29指令及其含义如下:
M06 T01;(调1号刀)
G90 G28 Z50.;(由A点经中间点B回到机床原点(Z轴))
M06 T02;(换2号刀)
G29 X35.Y30.Z5.;(2号刀由机床原点经中间点B快速定位至C点)