1、 FANUC-Oi-MD系统数控编程1.1常用编程指令一:准备功能(G功能)准备功能G代码用来规定刀具和工件的相对运动轨迹、机床坐标系、坐标平面、刀具补偿、坐标偏置等多种加工操作。数控加工常用的G功能代码见表4-1.表4-1G代码组功能附注G0001定位 (快速移动)模态G01直线插补模态G02顺时针方向圆弧插补模态G03逆时针方向圆弧插补模态G0400停刀,准确停止非模态G1702XY平面选择模态G18XZ平面选择模态G19YZ平面选择模态G2800机床返回参考点非模态G4007取消刀具半径补偿模态G41刀具半径左补偿模态G42刀具半径右补偿模态G4308刀具长度正补偿模态G44刀具长度负补
2、偿模态G49取消刀具长度补偿模态G5011比例缩放取消模态G51比例缩放有效模态G50.122可编程镜像取消模态G51.1可编程镜像有效模态G5200局部坐标系设定非模态G5300选择机床坐标系非模态G5414工件坐标系1选择模态G55工件坐标系2选择模态G56工件坐标系3选择模态G57工件坐标系4选择模态G58工件坐标系5选择模态G59工件坐标系6选择模态G6500宏程序调用非模态G6612宏程序模态调用模态G67宏程序模态调用取消模态G6816坐标旋转模态G69坐标旋转取消模态G7309排削钻孔循环模态G74左旋攻螺纹循环模态G76精镗循环模态G80取消固定循环模态G81钻孔循环模态G82
3、反镗孔循环模态G83深孔钻削循环模态G84攻螺纹循环模态G85镗孔循环模态G86镗孔循环模态G87背镗循环模态G88镗孔循环模态G89镗孔循环模态G9003绝对值编程模态G91增量值编程模态G9200设置工件坐标系非模态G9405每分钟进给模态G95每转进给模态G9810固定循环返回初始点模态G99固定循环返回R点模态二:辅助功能(M代码)辅助功能代码用于指令数控机床辅助装置的接同和关断,如主轴转/停、切削液开/关,卡盘夹紧/松开、刀具更换等动作。常用M代码见表如下:代码功能 说明M00程序暂停当执行有M00指令的程序段后,主轴旋转、进给切削液都将停止,重新按下(循环启动)键,继续执行后面程序
4、段M01程序选择停止功能与M00相同,但只有在机床操作棉班上的(选择停止)键处于“ON”状态时,M01才执行,否则跳过才执行M02程序结束防在程序的最后一段,执行该指令后,主轴停、切削液关、自动运行停,机床处于复位状态M30程序结束放在程序的最后一段,除了执行M02的内容外,还返回到程序的第一段,准备下一个工件的加工M03主轴正转用于主轴顺时针方向转动M04主轴反转用于主轴逆时针方向转动M05主轴停止用于主轴停止转动M06换刀用于加工中心的自动换刀M08切削液开用于切削液开M09切削液关用于切削液关M98调用子程序用于子程序M99子程序结束用于子程序结束并返回主程序1.2坐标系编程指令一、有关
5、坐标和坐标系的指令 (1)、工件坐标系设定G92格式:G92 X_ Y_ Z_ X、Y、Z、为当前刀位点在工件坐标系中的坐标。1、G92指令通过设定刀具起点相对于要建立的工件坐标原点的位置建立坐标系。2、此坐标系一旦建立起来,后序的绝对值指令坐标位置都是此工件坐标系中的坐标值。例:G92 X20 Y10 Z10其确立的加工原点在距离刀具起始点X=-20,Y=-10,Z=-10的位置上,如图a所示。(2)、绝对值编程G90与增量值编程G91格式: G90 G00/G01 X Y Z G91 G00/G01 X Y Z 注意:铣床编程中增量编程不能用U、W,如果用,就表示为U轴、W轴.例:刀具由原
6、点按顺序向1、2、3点移动时用G90、G91指令编程。注意:铣床中X轴不再是直径.(3)、工件坐标系选择 G54-G59 说明:1、G54G59是系统预置的六个坐标系,可根据需要选用。2、该指令执行后,所有坐标值指定的坐标尺寸都是选定的工件加工坐标系中的位置。16号工件加工坐标系是通过CRT/MDI方式设置的。3、G54G59预置建立的工件坐标原点在机床坐标系中的坐标值可用MDI方式输入,系统自动记忆。4、使用该组指令前,必须先回参考点。5、G54G59为模态指令,可相互注销。选择机床坐标系:(4)、G53 -选择机床坐标系 编程格式:G53 G90 X Y Z ; G53 指令使刀具快速定位
7、到机床坐标系中的指定位置上,式中X、Y、Z后的值为机床坐标系中的坐标值。 例:G53 X-100 Y-100 Z-20 G53为非模态指令,只在当前程序段有效.(5)、G52 局部坐标系设定 编程格式:G52 X Y Z ;式中X、Y、Z后的值为局部原点相对工件原点的坐标值。几个坐标系指令应用举例如图所示从A-B-C-D行走路线编程如下N01 G54 G00 G90 X30.0 Y40.0 快速移到G54中的A点N02 G59 将G59置为当前工件坐标系 N03 G00 X30.0 Y30.0 移到G59中的B点N04 G52 X45.0 Y15.0 在当前工件坐标系G59中建立局部坐标系G5
8、2N05 G00 G90 X35.0 Y20.0 移到G52中的C点N06 G53 X35.0 Y35.0 移到G53(机械坐标系)中的D点二、坐标平面选定坐标平面选择 G17,G18,G19 G17 XY平面 刀具长度补偿值为Z平面G18 XZ平面 刀具长度补偿值为Y平面G19 YZ平面 刀具长度补偿值为X平面 1、坐标平面选择指令是用来选择圆弧插补的平面和刀具补偿平面的。2、G17、G18、G19为模态功能,可相互注销,G17为缺省值。1.3直线插补编程1、快速定位指令G00 格式:G00 X_Y_Z_ 其中,X、Y、Z、为快速定位终点,在G90时为终点在工件坐标系中的坐标;在G91时为终
9、点相对于起点的位移量。(空间折线移动)说明:(1)、G00 一般用于加工前快速定位或加工后快速退刀。(2)、为避免干涉,通常的做法是:不轻易三轴联动。一般先移动一个轴,再在其它两轴构成的面内联动。如:进刀时,先在安全高度Z上,移动(联动)X、Y轴,再下移Z轴到工件附近。退刀时,先抬Z轴,再移动X-Y轴。2、直线进给指令G01 格式: G01 X _Y_ Z_ F_ 其中,X、Y、Z为终点坐标,F为进给速度,在G90时为终点在工件坐标系中的坐标;在G91时为终点相对于起点的位移量。说明:(1) G01指令刀具从当前位置以联动的方式,按程序段中F指令规定的合成进给速度,按合成的直线轨迹移动到程序段
10、所指定的终点。(2)实际进给速度等于指令速度F与进给速度修调倍率的乘积。(3)G01和F都是模态代码,如果后续的程序段不改变加工的线型和进给速度,可以不再书写这些代码。(4)G01可由G00、G02、G03或G33功能注销。3、例子 O1234:G17 G90; (初始化)G54 G00 X0 Y0; (设定工件坐标系)M03 S1000; (主轴正转)G00 Z100.; (刀具下刀)Z5.; (下刀R点)G01 Z-5. F100; (下刀切削深度)G01 X5. Y10.; (原点A点)G01 X5. Y35.; (A点B点)G01 X35. Y35.; (B点C点)G01 X35. Y
11、10.; (C点D点)G01 X5. Y10.; (D点A点)G00 X0 Y0; (快速回到原点)G00 Z100.; (快速抬刀)M05; (主轴停止)M30; (程序结束)1.4 圆弧插补编程圆弧进给指令 G02 :顺时针圆弧插补 G03 :逆时针圆弧插补指令格式:G17 G02 ( G03 ) G90 ( G91 ) X_Y_I_ J_ F_或G17 G02 ( G03 ) G90 ( G91 ) X_Y_ R_ F_ G18 G02 ( G03 ) G90 ( G91 ) X_Z_I_ K_ F_或G18 G02 ( G03 ) G90 ( G91 ) X_Z_ R_ F_G19 G
12、02 ( G03 ) G90 ( G91 ) Y_Z_J_ K_ F_或G19 G02 ( G03 ) G90 ( G91 ) Y_Z_ R_ F_(一)、注明:1、I指圆弧起点指向圆心的连线在X轴上的投影矢量与X轴方向一致为正,相反为负。2、J指圆弧起点指向圆心的连线在Y轴上的投影矢量与Y轴方向一致为正,相反为负。3、K指圆弧起点指向圆心的连线在Z轴上的投影矢量与Z轴方向一致为正,相反为负。4、整圆不能用R编程,只能用I、J、K:1800 R取正值;1800 R取负值(二)、指令参数说明:1、圆弧插补只能在某平面内进行。2、G17代码进行XY平面的指定,省略时就被默认为是G173、当在ZX(
13、G18)和YZ(G19)平面上编程时,平面指定代码不能省略(三)G02/G03判断:G02为顺时针方向圆弧插补,G03为逆时针方向圆弧插补。顺时针或逆时针是从垂直于圆弧加工平面的第三轴的正方向看到的回转方向。 平面圆弧插补(四)编制圆弧程序段例1: 1、大圆弧AB每段圆弧可有四个程序段表示G17 G90 G03 X0 Y25 R-25 F80G17 G90 G03 X0 Y25 I0 J25 F80G17 G91 G03 X-25 Y25 R-25 F80G17 G91 G03 X-25 Y25 I0 J25 F802、小圆弧ABG17 G90 G03 X0 Y25 R25 F80G17 G9
14、0 G03 X0 Y25 I-25 J0 F80G17 G91 G03 X-25 Y25 R25 F80G17 G91 G03 X-25 Y25 I-25 J0 F80例2:整圆编程 要求由A点开始,实现逆时针圆弧插补并返回A点。G90 G03 X30 Y0 I-40 J0 F80G91 G03 X0 Y0 I-40 J0 F80例3:O1234:G17 G90; (初始化)G54 G00 X-30. Y-50.;(设定工件坐标系)M03 S1000; (主轴正转)G00 Z100.; (刀具下刀)Z5.; (下刀R点)G01 Z-5. F100; (下刀切削深度)G01 X-30. Y0.;
15、 (下刀点A点)G02 X30. Y0. R30.; (A点C点)G01 X30. Y-15.; (C点D点)G03 X15. Y-30. R15;(D点E点)G01 X-20. Y-30.; (E点G点)G02 X-30. Y-20. R10.;(G点H点)G03 X-42. Y-20. R6.; (圆弧切出)G01 X-45.;G00 Z100.; (快速抬刀)G00 X0 Y0; (快速回到原点)M05; (主轴停止)M30; (程序结束)1.5刀具半径补偿功能编程G41:刀具半径补偿左偏置 G42:刀具半径补偿右偏置 G40:取消刀具半径补偿格式:G41/G42 G01/G00 X Y
16、 D ; G40 G01/G00 X Y ;G41:左刀补(在刀具前进方向左侧补偿),如图 (a);G42:右刀补(在刀具前进方向右侧补偿),如图 (b);X, Y, Z:G00/G01的参数,即刀补建立或取消的终点(注:投影到补偿平面上的刀具轨迹受到补偿);D:G41/G42的参数,即刀补号码,它代表了刀补表中对应的半径补偿值。G40、G41、G42都是模态代码,可相互注销。注意:(1) 刀具半径补偿平面的切换必须在补偿取消方式下进行(2) 刀具半径补偿的建立与取消只能用G00或G01指令,不得是G02或G031.6刀具长度补偿功能编程格式:G43/G44 G01/G00 Z H ; G49
17、 G01/G00 Z ;G43:刀具长度正补偿G44:刀具长度负补偿G49:取消刀具长度补偿Z:G00/G01的参数,即刀补建立或取消的终点H:刀具长度偏置号例子:O1234;G17 G40 G49 G80 G90;G54 G00 X0 Y0;M03 S1000;G00 X-65. Y-60.;G43 G00 Z100.H01;Z5.;G01 Z-10. F100;G01 X-65. Y30.;G02 X-55. Y40. R10.;G01 X45. Y40.;G02 X65.Y20.R20;G01 Y-20.;G02 X45.Y-40.R20.;G01 X-55. Y-40.;G02 X-6
18、5. Y-30. R10.;G03 X-77. Y-30. R6.;G01 X-80.;G40 G00 X-85.;G49 G00 Z100.;X0 Y0;M05;M30; 1.7子程序编程(M98、M99)把一个程序中按某一固定顺序重复出现的内容抽出并按一定格式编写,则称为子程序,子程序由主程序或子程序调用指令调出执行,调用子程序的格式如下:M98Pxxxx Lxxxx 子程序号 调用次数(1-9999)如果省略了重复次数,则认为重复次数为一次。从子程序返回到主程序用M99。在子程序调用子程序与在主序中调用子程序的情况一样,一般把刀具半径补偿功能放在子程序中使用,用MDI输入M98Pxxxx
19、时,不能调用子程序。例:如下图所示,在一块平板上加工6个边长为10mm的等边三角形,每边的槽深为-2mm,工件上表面为z向零点。其程序的编制就可以用调用子程序的方式来实现(编程时不考虑刀具半径补偿)。O0001(主程序)G54 G90 G01 Z40 F200(进入工件加工坐标系)M03 S1000(主轴启动)G00 Z3(快进到工件表面上方)G01 X0 Y8.66(移动到1号三角形顶点)M98 P0002(调用子程序切削三角形)G90G01X30Y8.66(移动到2号三角形顶点)M98 P20 (调用子程序切削三角形)G90 G01 X60 Y8.66(移动到3号三角形上顶点) M98 P
20、20 (调用子程序切削三角形)G90 G01 X0 Y-21.34 (移动到4号三角形顶点)M98 P20 (调用子程序切削三角形)G90 G01 X30 Y-21.34(移动到5号三角形顶点) M98 P20(调用子程序切削三角形)G90 G01 X60 Y-21.34(移动到6号三角形顶点)M98 P20(调用子程序切削三角形)G00 Z30(抬刀)M05(主轴停止)M30(程序结束)O0002G91 G01 Z-2 F100 G01 X-5 Y-8.66G01 X10 Y0 G01 X5 Y8.66 G00 Z20M991.8固定循环编程(G80G89)1.取消固定循环指令G80格式:G
21、80功能:用G80取消固定循环方式,机床回到执行正常操作状态。孔的加工数据,包括R点,Z点等等,都被取消:但是移动速度命令会继续有效。2. 定点钻孔循环G81格式:G81 X_ Y_ Z_ R_ F_ L_ X_Y_为孔位数据Z_ 孔底深度R_加工初始位置F_切削进给速度L_重复次数功能:G81命令可用以一般孔的加工。加工过程:(1)XY平面孔定位(2)快速下至R基准面(3)Z轴向下钻孔(4)快速返回起始点(G98时)或R基准面(G99时)(5)若有L字段,则循环(1)(4)做完L个孔3.钻孔循环指令 G82格式:G82 X_ Y_ R_ Z_ P_ F_ J_X_ Y_ 为孔位数据Z_ 孔底
22、深度R_ 加工初始位置P_ 在孔底的暂停时间F_ 切削进给速度K_ 重复次数功能:用于孔底暂停钻孔循环加工过程:(1)XY平面孔定位(2)快速下至R基准面(3)Z轴向下钻孔,在孔底暂停P给定的时间(4)快速返回起始点(G98时)或R基准面(G99时)(5)若有L字段,则循环(1)(4)做完L个孔3.排屑钻孔循环G83G83 X_ Y_ Z_ R_ Q_ F_ K_X_ Y_ 为孔位数据Z_ 孔底深度R_ 加工初始位置Q_ 每次切削进给的切削深度P_ 在孔底的暂停时间F_ 切削进给速度K_ 重复次数功能:深孔钻(啄钻)循环4.G84 攻丝循环(G84)1. 格式 G84 X_Y_Z_R_P_F_
23、K_;X_ Y:孔位数据Z_:孔底深度(绝对坐标)R_:每次下刀点或抬刀点(绝对坐标)P_:暂停时间 F_:切削进给速度K_:重复次数 功能:G84 进给 孔底 主轴反转 快速退刀。加工过程:主轴顺时针旋转执行攻丝,当到达孔底时,为了回退,主轴以相反方向旋转,这个过程生成螺纹。在攻丝期间进给倍率被忽略,进给暂停不停止机床,直到返回动作完成。在指定G84之前,用辅助功能使主轴旋转。当G84指令和M代码在同一个程序段中指定时,在执行第一个定位动作的同时,执行到R点的同时加偏置。5.G85 镗孔循环(G85)1. 格式 G85 X_Y_Z_R_F_K_;X_ Y:孔位数据Z_:孔底深度(绝对坐标)R
24、_:每次下刀点或抬刀点(绝对坐标)F_:切削进给速度K_:重复次数 功能:G85 中间进给 孔底 快速退刀。6.G86 镗孔循环(G86)1. 格式 G86 X_Y_Z_R_F_L_;X_ Y:孔位数据Z_:孔底深度(绝对坐标)R_:每次下刀点或抬刀点(绝对坐标)F_:切削进给速度K_:重复次数 功能:G86 进给 孔底 主轴停止 快速退刀。例:N005 G80 G90 G0 X0 Y0 M06 T1;换 ?20镗刀 N010 G55 ;调用G55工件坐标系 N020 M03 S1000N030 G43 H1 Z50 ;调用长度补偿 N040 G86 Z-30 R1 F200 ;镗孔循环 N0
25、50 G80 G0 Z50 ;取消固定循环? N060 M05N070 M30 7.G87 反镗孔循环(G87)1. 格式 G87 X_Y_Z_R_Q_P_F_K_;X_ Y:孔位数据Z_:孔底深度(绝对坐标)R_:每次下刀点或抬刀点(绝对坐标)Q_:刀具偏移量P_:暂停时间F_:切削进给速度K_:重复次数 功能:87 进给 孔底 主轴正转 快速退刀。例:N005 G80 G90 G0 X0 Y0 M06 T1 ;换 20镗刀 N010 G55 ;调用G55工件坐标系 N020 M03 S1000N030 G43 H1 Z50;调用长度补偿 N040 G87 Z-30 R1 Q2 P2000
26、F200 ;反镗孔循环 N050 G80 G0 Z50 ;取消固定循环 N060 M05N070 M30 8.G88 镗孔循环(G88)1. 格式 G88 X_Y_Z_R_P_F_K_;X_ Y:孔位数据Z_:孔底深度(绝对坐标)R_:每次下刀点或抬刀点(绝对坐标)P_:孔底的暂停时间F_:切削进给速度K_:重复次数 说明:沿着X和Y轴定位以后,快速移动到R点,然后,从R点到Z点执行镗孔,当镗孔完成后,执行暂停,然后主轴停止。刀具从孔底手动返回到R点,在R点,主轴正转,并且执行快速移动到初始位置。 在指定G88之前,用辅助功能旋转主轴。 当G88指令和M代码在同一程序段中指定时,在第一个定位动
27、作的同时执行M代码,然后,系统处理下一个镗孔动作。 当指定重复次数K时,只对第一个孔执行M代码,对第二或以后的孔,不执行M代码。对第二或以后的孔,不执行M代码。 当在固定循环中指定刀具长度偏置(G43/G44或G49)时,在定位到R点的同时加偏置。 限制 轴切换? 必须在切换镗孔轴之前取消固定循环 镗加工? 在不包含X.Y.Z或任何其它轴的程序段中,不执行镗加工。 P? 在执行镗孔加工的程序段中指定P,如果在不执行镗孔加工的程序段中指定,P不能作为模态数据被贮存。 取消? 不能在同一程序段中指定01和G代码和G88,否则G88将被取消。 刀具偏置? 在固定循环方式中,刀具偏置被忽略。 9.G8
28、9 镗孔循环(G89)1. 格式 G89 X_Y_Z_R_P_F_L_;X_ Y:孔位数据Z_:孔底深度(绝对坐标)R_:每次下刀点或抬刀点(绝对坐标)P_:孔底的停刀时间F_:切削进给速度K_:重复次数 功能:G89 进给 孔底 暂停 快速退刀。10.G98/G99返回点平面当刀具到达孔底后,刀具可以返回到R点平面或初始位置平面,由G98和G99指定,一般情况下,G99用于第一次钻孔面G98用于最后钻孔,即使在G99方式中执行钻孔,初始位置品平面也不变。 1.9能编程图形镜像指令G51.1、G50.1格式: G51.1 X_ Y_ Z_ (激活镜像功能)M98 P_G50.1 X_ Y_ Z
29、_ (取消镜像功能)例:用镜像功能编程如下图所示程序O0001(子程序,1的加工程序)增量坐标G41 G00 X10 Y4 D01Y 1G01 Z-2 F100 Y25 X10 G03 X10 Y-10 I10 G01 Y-10 X-25G00 Z100 G40 X-5 Y-10 M99O0002(主程序)G91G17M03M98P0001 加工1G51.1X0 Y轴镜像,镜像位置为X0M98P0001 加工2G50 X0 取消Y轴镜像G51.1X0Y0 原点镜像,镜像位置为(0,0) M98P0001 加工3G50.1 X0 Y0 取消Y轴镜像G51.1 Y0 X轴镜像,镜像位置为Y0M98
30、 P0001 加工4G50.1 Y0 取消X轴镜像M05M301.10旋转功能编程图形旋转指令G68、G69指令格式:G68 X_ Y_ R_ (激活旋转功能) M98 P_ G69 (取消激活功能)以给定点(x、y)为旋转中心,将图形旋转R角度;如省略(X、Y)则以原点为旋转中心。例如:G68 R60表示以坐标原点为旋转中心,将图形旋转60度;G68 X15 Y15 R60表示以坐标(15,15)为旋转中心将图形旋转60度。例:如下图所示,编程如下O0001(子程序)G91 G17 G01 X20 Y0 F250 G03 X20 Y0 R5G02 X-10 Y0 R5G02 X-10 Y0
31、R5G00 X-20 Y0M99O0002(主程序)G90 G00 X0 Y0M98 P0001G68 R45M98 P0001 (旋转八次)G68 R315M98 P0001G69 M301.11缩放功能编程图形缩放指令G51、G50指令格式:G51X_Y_Z_P_ (激活缩放功能) M98 P_ G50 (取消缩放功能)以给定点(X、Y、Z)为缩放中心,将图形放大都原始图形的p倍;如省略(x、y、z),则以程序原点为缩放中心。例如:G51 P2表示以程序原点为缩放中心,将图形放大一倍;G51 X15. Y15. P2表示以给定点(15,15)为缩放中心,将图形放大一倍。如下图所示,编程如下: O1000(子程序)G00 G90 X0 Y-10 F100G02 X0 Y10 I10 J10G01 X15 Y0G01 X0 Y-10M99O2000(主程序)G92 X-50 Y-40G51 P2M98 P1000G50M30