FANUC系统编程.docx
《FANUC系统编程.docx》由会员分享,可在线阅读,更多相关《FANUC系统编程.docx(22页珍藏版)》请在冰豆网上搜索。
FANUC系统编程
FANUC系统编程
TMSFD代码
T:
刀具号
M:
辅助代码
S:
主轴转速
F:
进给速度
D:
半径补偿
MCS:
机械坐标系
工厂生产厂家出厂时固定的永久不变的一个坐标系,它的原
点在三个轴的最大位移处
WCS:
工件坐标系
工件坐标系,为了工作方便自己设定的一个坐标系
REL:
相对坐标系
起一个临时辅助的作用,个人感觉来讲应该叫临时坐标系
模态的概念:
一次指定永久有效,只到被同一代码取代。
常用的M代码:
M0:
程序停止M1:
程序选择性停止
M2:
程序结束M3:
主轴正转
M4:
主轴反转M5:
主轴停止
M6:
刀具交换M8:
切削液开启
M9:
切削液关闭M30:
程序结束返回开头
M98:
调用子程序M99:
子程序结束
G代码
注:
不同组的G代码写在同一行同时生效,同一组的G代码写一在同一行最后的一个生效
G17G18G19:
平面选择指令
平面指令平面第一轴/平面第二轴平面第三轴
G17X/YZ
G18Z/XY
G19Y/ZX
注:
平面第三轴的正方向往该平面看,顺时针为正转,逆时针为反转
G0:
快速定位
格式:
G17G0X_Y_
以快速定位的方式到达G17平面的XY位置。
G0不需要指定速度,是系统预设好的。
G1:
直线切削运动
G43:
刀具长度补偿(对刀长)
G0Z0G43H1
(指定刀具补偿号为1号刀补,并快速定位到Z0位置)
G94G95:
进给方式
格式1:
G17G94G1X_Y_F100
在G17平面以mm/分钟的速度直线切削到XY坐标位置。
G94是以mm/分钟的速度进给(分钟进给)
格式2:
G17G94G1X_Y_F0.5
G95是以mm/转为单位,也就是说刀具转一圈往前走多少毫米。
通常情况下用G94比较多,很少用G95
G90:
绝对坐标
G91:
增量坐标
绝对坐标是相对于原点来确定位置的
A(40,40)B(40,60)C(30,60)…………
增量坐标是第二个点是相对于第一个点来确定的,也就是说第二个点是第一个点的坐标增量
G90A(40,40)G91B(0,20)C(-10,0)D(10,30)…………
G0G1小练习
M6T1;换1号刀
G17G54G90;指定平面、工件坐标,以绝对编程的方式
G0X40Y40;到工件起始坐标点准备下刀
Z100G43H1;刀具抬到Z100的位置
M3S600;主轴正转,转速600
M8;开冷却液
G0Z2;靠近工件Z2位置
G1Z-2F20;刀具下刀深2mm速度20开始刀削
Y60;
X30;
X40Y90;
X80;
X90Y60;
X80;
Y40;
X40;
G0Z100;抬刀到100的位置
M9;关冷却液
M5;主轴停转
M30;程序结束并返回程序开头
G2G3:
圆弧指令
G2:
顺时针圆弧G3:
逆时针圆弧
格式1:
(终点+半径)
G17G2/G3X_Y_R_F_
G18G2/G3X_Y_R_F_
G19G2/G3X_Y_R_F_
G17G18G19为平面选择,XY是圆弧终点坐标,R是圆弧半径,
F是进给速度。
注意半径R有大圆弧和小圆弧区别,大圆弧要用负值(-R),小圆弧用正值(R)
例:
小圆弧
G1X50.2Y57.4F300
G2X68.8Y71.6R25
大圆弧
G1X50.2Y57.4F300
G2X68.8Y71.6R-25
格式2:
IJK方式(终点+IJK)
G17G2/G3X_Y_I_J_F_
G18G2/G3X_Z_I_K_F_
G19G2/G3Y_Z_J_K_F_
在半径不知道的情况下,但知道圆心的坐标。
IJK的意思是:
圆心的XYZ坐标相对于起点的XYX坐标的增量。
IJK=(圆心XYZ)-(起点XYZ)
例:
G1X50.2Y57.4F300
G2X68.8Y71.6I22.8J-10.4
如果是绕一个整圆,就不能用终点+半径的方式,只能用IJK方式。
G1X50.2Y57.4F300
G3I22.8J-10.4
逆进针整圆,XY在上一句中已经被指定,所以在下一句中可以省略不写。
而且起点与终点重合,所以只需要写一个起点就可以了。
C:
倒角R:
圆角
在用这个命令之前,先了解一个概念:
虚拟拐点
虚拟拐点:
意思是说,在没有倒角或圆角时,两条直线的交点
用法也很简单,直接在前面的运动轨迹后面加C或R
图a:
G1X70Y20C10
X100Y70
注意C为腰长倒角,也就是等腰倒角
图b:
G1X70Y20R20
X100Y70(用增量坐标方式也可写成:
G1G91X30Y50)
圆弧小练习:
O0001文件名
G91G28Z0回Z0的参考点(G28)Z轴最高位置,
可加可不加,针对老机床换刀时怕回不
到换刀位置
M6T1换刀
G17G55G90选择G17平面G55坐标,绝对编程方
式
G0X-10.0Y6.0快速定位到XY起点位置
Z100.0G43H1抬刀到Z100位置(G43H1刀具长度补偿)
M3S750主轴正转,转速750
G0Z5.0靠近零件5mm位置
M8开启冷却液
G1Z-2.0F20.0直线切削,下刀深度2mm
Y-15.0R5.0F300.0直线走到Y-15位置,插入R5圆角速度
300
X0到X0位置
G3X12.5Y-8.3J15.0逆时针圆弧,终点位置知道X12.5Y-8.3,
半径不知道,用IJK方式,因为I在X
方向的增量是0所以不用写,J的增量是
15
G2X19.9Y-19.9R-7.5顺时针圆弧,知道半径,用终点+半径
方式,且大于半圆R值用负数
G0Z100.0抬刀到Z100位置
M9关闭冷却液
M5主轴停转
M30程序结束并回程序开头
G41G42G40:
刀具半径补偿
G41:
半径左补偿,沿前进的方向看,刀具在轮廓的左边
G42:
半径右补偿,沿前进的方向看,刀具在轮廓的右边
G40:
取消半径补偿(这也是开机时的默认状态)
格式:
G0/G1G41/G42D_X_Y_
D是刀具半径,在机床里设置。
XY是要走到的坐标位置
程序规则:
1、刀补建立
2、刀补进行
3、刀补取消
注意:
1、只有在G0G1程序段才可以建立半径补偿
2、半径补偿模态有效,只到被G40取消
3、半径补偿的程序段内,不允许出现连续2段或2段以上非
当前平面内移动指令
G15G16:
极坐标
G15:
取消极坐标
G16:
开启极坐标
格式:
G16;
G17X_Y_;
G15;
X:
代表目标点到原点的长度
Y:
代表角度
图1打孔小练习
G91G28Z0
M6T1
G17G54G90指定平面(G17)指定坐标(G54)绝对编程方式
G16开启极坐标
G0X50Y30定位到第一个点(X方向为50,角度30度)
Z100G43H1抬刀高度100刀具长度补偿H1
M3S750主轴正转,转速750
G0Z5靠近零件Z5
M8开冷却液
G1Z-10F80向下切削深度-10进给速度80
G0Z100抬刀Z100
X50Y120到第二个点(X方向50,角度120度)
Z5靠近
G1Z-10直线向下切削深度-10
G0Z100抬刀Z100
X50Y-150到第三个点(X方向50,角度-150度)
Z5
G1Z-10
G0Z100
X50Y-60到第四个点
Z5
G1Z-10
G0Z100
G15关闭极坐标
M9关冷却液
M5主轴停转
M30程序结并回到程序开头
图2走六边形
M6T2换刀
G17G54G90指定平面(G17)指定坐标(G54)绝对编程方式
G16开启极坐标
G0X50Y0定位到X50角度0度
Z100G43H2抬刀到Z100位置,刀具补偿H2
M3S800主轴正转转速800
G0Z5靠近
M8开冷却液
G1Z-2F200直线向下切削深度-2进给速度200
X50Y60切削走到X50,角度60度位置
Y120切削走到角度120度位置(X50上句已指定)
Y180切削走到角度180度位置,X值不变
G91Y60采用增量坐标方式(G91)相对于上个角度180增加了60度,所以Y为60度,X值不变
Y60Y增加60度,X值不变
G90Y0改为绝对编程方式(G90)Y为0度,X值不变
G0Z100抬刀到Z100位置
G15关闭极坐标
M9关冷却液
M5主轴停转
M30程序结束并回程序开头
G52:
局部坐标
把工件坐标的原点临时移动到另外一个地方
格式:
G52X_Y_Z_
G52X0Y0Z0
G52X45Y65(到临时坐标点)
G52X0Y0(回到坐标原点)
局部坐标小练习
G91G28Z0
M6T1
G17G54G90指定平面(G17)指定坐标(G54)绝对编程方式
G16开启极坐标
G0X50Y30定位到第一个点(X方向为50,角度30度)
Z100G43H1抬刀高度100刀具长度补偿H1
M3S750主轴正转,转速750
G0Z5靠近零件Z5
M8开冷却液
G1Z-10F80向下切削深度-10进给速度80
G0Z100抬刀Z100
X50Y120到第二个点(X方向50,角度120度)
Z5靠近
G1Z-10直线向下切削深度-10
G0Z100抬刀Z100
X50Y-150到第三个点(X方向50,角度-150度)
Z5
G1Z-10
G0Z100
X50Y-60到第四个点
Z5
G1Z-10
G0Z100
G52X12Y25到临时坐标点
G0X18Y45
Z5
G1Z-10
G0Z100
X18Y135
Z5
G1Z-10
G0Z100
G52X0Y0回到原点位置
G15关闭极坐标
M9关冷却液
M5主轴停转
M30程序结并回到程序开头
G68:
坐标系旋转
G69:
取消旋转
把坐标系旋转一定的角度,后面的刀路也会跟着一起旋转。
G68X_Y_R_
XY是旋转中心,
R是旋转角度
XY的中心点是可以随便指定的一个点
注意:
G69取消旋转指令后的每一个运动指令必须用绝对坐标编程。
也就是说只能用G90编程,不可以用G91编程。
G53:
机床坐标系
为了把工件移到人的面前好装缷工件用,基本上很少用。
例:
G0G90G53Y-2
旋转小练习
把这个六边形旋转45度
M6T2换刀
G17G54G90指定平面(G17)指定坐标(G54)绝对编程方式
G68X0Y0R45开启旋转,以XY为中心点旋转45度
G16开启极坐标
G0X50Y0定位到X50角度0度
Z100G43H2抬刀到Z100位置,刀具补偿H2
M3S800主轴正转转速800
G0Z5靠近
M8开冷却液
G1Z-2F200直线向下切削深度-2进给速度200
X50Y60切削走到X50,角度60度位置
Y120切削走到角度120度位置(X50上句已指定)
Y180切削走到角度180度位置,X值不变
G91Y60采用增量坐标方式(G91)相对于上个角度180增加了60度,所以Y为60度,X值不变
Y60Y增加60度,X值不变
G90Y0改为绝对编程方式(G90)Y为0度,X值不变
G0Z100抬刀到Z100位置
G15关闭极坐标
G69关闭旋转
M9关冷却液
M5主轴停转
G0G90G53Y-2把工件移到人的面前好装缷(机械坐标G53很少
用,正常都用工件坐标)
M30程序结束并回程序开头
镜像指令:
G51.1X_Y_开启镜像
G50.1取消镜像
G51.1后面跟一个数是轴对称,后面跟两个数是中心对称
G51.1Y0G51.1X0G51.1X0Y0
镜像小练习
M6T1;换1号刀
G17G54G90;指定平面、工件坐标,以绝对编程的方式
G51.1Y0开启镜像以Y轴镜像
G0X40Y40;到工件起始坐标点准备下刀
Z100G43H1;刀具抬到Z100的位置
M3S600;主轴正转,转速600
M8;开冷却液
G0Z2;靠近工件Z2位置
G1Z-2F20;刀具下刀深2mm速度20开始刀削
Y60;
X30;
X40Y90;
X80;
X90Y60;
X80;
Y40;
X40;
G0Z100;抬刀到100的位置
G50.1取消镜像
M9;关冷却液
M5;主轴停转
M30;程序结束并返回程序开头
比例缩放指令:
G51G50
G51:
开启缩放G50:
取消缩放
比例缩放系数的计算
O为比例缩放中心
:
X轴比例系数
:
Y轴比例系数
由图和公式可知:
缩放系数其实等于缩放后图形上的某一点到缩放中心的距离与缩放前这一点到缩放中心距离的比值
格式1、
G51X_Y_Z_P_
G50
等比例缩放:
XYZ为缩放中心点,P这比例因子。
P的取值范围是:
1—999999,分别是指0.001—999.999倍。
比如放大1.5倍,就写成1500,把放大的倍数乘以1000就是P的值。
格式2、
G51X_Y_Z_I_J_K_
G50
不等比缩放:
XYZ为缩放中心,IJK分别为XYZ三轴的缩放比例。
比如:
X放大1.5倍,就写成I1500
Y放大2倍,就写成J2000
Z放大3倍,就写成K3000
注:
如果我们要缩放的是圆弧的话,用等比缩放就是把半径缩放相应的倍数。
用不等比缩放的话,它是不会形成那种随圆的,而是哪个轴的放大倍数大就会自动选择那个大的倍数进行放大。
半径补偿不能放在缩放指令外面的程序段,一定要放在缩放指令程序段里面。
缩放小程序练习
还是以这个图为例:
我们把X缩放0.5倍,Y缩放1.5倍
这是一个不等比缩放。
M6T1
G17G54G90
G51X0Y0I500J1500开启缩放指令(G51),设XY坐标为0点(X0Y0),X缩放0.5倍(I500),Y缩放1.5倍(J1500)
G0X40Y40
Z100G43H1
M3S600
M8
G0Z2
G1Z-2F20
Y60
G91X-10
X10Y30
G90X80
G91X10Y-30
X-10
G90Y40
X40Y40
G0Z100
G50取消缩放
M9
M5
M30
钻孔循环:
G81G82
格式:
G81X_Y_Z_R_F_;
G82X_Y_Z_R_P_F_;
动作指令:
G81指令常用于普通孔(浅一点孔),刀具在初始平面快速(G0方式)定位到指定的X、Y坐标位置,再Z向快速定位到R点平面,然后执行切削进给到孔底(Z值)平面,刀具从孔底快速Z向退回到R点平面或初始平面。
G82指令在孔底增加了进给后的暂停动作,以提高孔底表面粗糙度质量,如果指令中不指定暂停参数P,则该指令和G81完全相同
G81打孔时是打到底就抬刀,G82是打到底暂停几秒钟再抬刀,至于暂停几秒钟是根据P值决定的,比如暂停1.5秒,就写成1500。
P值是以毫秒为单位的,不能有小数点。
钻孔练习程序
G91G28Z0
M6T1
G17G55G90
G0X-30Y0
Z100G43H1
M3S800
M8
G81X-30Y0Z-27R5F70如果我们要钻25的深度,假设刀前面的尖角有2毫米,所以我们Z值取-27(Z-27)
此时的程序在每个孔钻孔结束后抬刀是在Z100位置,如果在G81前面加一个G99的话,每个孔结束抬刀会在R点
X0因为钻孔模态有效,所以打第二个孔时给个坐标就行了
X30第三个孔
G80钻孔循环结束
M9
M5
M30
如果把G81那段改成G82只需在里面加一个P值,
G82X-30Y0Z-27P2000R5F70
这样只要改这一段,钻孔时会在底部停留2秒钟(P2000)
深孔啄钻:
G83G73
格式:
G73X_Y_Z_R_Q_F_;
G83X_Y_Z_R_Q_F_;
指令动作:
XY是平面坐标,Z是孔底平面位置,R是回退点,Q每次向下钻的深度,F是进给速度。
G83是每次下钻回退点都在R点,而G73是每次不回到R点,只是向上退回一定的深度,这个深度是由机床内部设定的。
所以G73的排屑没有G83好。
我们编程的时候经常都用G83,很少用到G73。
深孔钻练习程序
G91G28Z0
M6T1
G17G55G90
G0X-50Y30
Z100G43H1
M3S800
M8
G83Z-52Q5R5F80平面XY坐标前面已经指定过了,这里不需要再指定了
X50第二个孔
Y-30第三个孔
X-50第四个孔
G80钻孔循环结束
M9
M5
M30
如果我们要打排孔,比如我们沿X方向每隔15的距离打5个孔,我们就要用到K参数加上G91增量指令:
,
G91G28Z0
M6T1
G17G55G90
G0X-50Y30
Z100G43H1
M3S800
M8
G83Z-30Q5R5F80指定第一个孔的位置
G91X15K4用G91增量方式沿X方向每隔15距离再打4个孔(K4)
G80G90结束钻孔循环,并改回绝对坐标G90方式
M9
M5
M30
打圆周孔:
G91G28Z0
M6T1
G17G55G90
G16开启极坐标
G0X30Y25快速定位第一个孔位置
Z100G43H1
M3S800
M8
G81Z-30R3F70开始钻孔
G91Y65K4以增量方式每隔65度(Y65)钻一个
孔,再钻4个(K4)
G80G15G90结束钻孔循环(G81),关闭极坐标(G15),改为绝对编程方式(G90)
M9
M5
M30
铰孔循环
G85G89
铰孔就是为了获得一个更精确的孔的直径,如果直接钻孔的话有可能会不精确,所以我们就先钻一个稍微小一点的孔再用铰刀钻一次得到一个更精确的孔。
用法和G83是一样的。
格式:
G85X_Y_Z_R_F_;
指令动作:
执行G85固定循环时,刀具以切削进给的方式加工到孔底,然后再以切削进给的方式回到R点。
与G83唯一不同的一点是G83退刀时是以G0方式快速退刀,而G85是G1方式回到R点
G89和G73的用法是一样的,钻到底部时会停留几秒钟,停留时间是P值决定的
铰刀程序小练习
G91G28Z0
M6T1
G17G55G90
G0X-50Y30
Z100G43H1
M3S800
M8
G81Z-30Q5R5F80
G80
M9
M5
(先打底孔,假设我们要打一个8毫米的孔,那么底孔稍微小一点直径7.8)
G91G28Z0
M6T2
G17G55G90
G0X0Y30
Z100G43H2
M3S200
M8
G85Z-28R3F20用8毫米铰刀开始铰孔
G80
M9
M5
M30
攻丝攻螺纹孔
G84右旋螺纹
G74左旋螺纹
格式:
G84X_Y_Z_R_P_F_
G74X_Y_Z_R_P_F_
X、Y是平面坐标,Z螺纹孔底位置,R点回退平面,P停留时间,F进给速度。
注意F的进给速度是根据螺纹的大小有要求的,不是随便定的。
计算F进给速度的公式:
F=S×K
S是主轴转速,K是螺距
练习小程序
(这是一个攻M6丝牙为1毫米的螺纹孔)
G91G28Z0
M6T1
G17G55G90
G0X0Y0
Z100G43H1
M3S800
G81Z-30R3F80
G80
M9
M5
(先打底孔)
G91G28Z0
M6T2
G17G55G90
G0X0Y0
Z100G43H2
M3S200这里主轴正转,如果攻反丝的话就要改成主反转(M4)
M8
G84Z-10R7F200右攻丝,攻反丝的话把G84改成G74
G80结束钻孔循环
M9
M5
M30
镗孔
G76精镗孔循环
G87反镗孔循环
G87很少用,正常都用G76。
格式:
G76X_Y_Z_R_Q_P_F_;
X、Y是孔位置,Z孔底面距离位置,R点平面,Q反向距离,P底部停留时间,F进给速度。