编程就是把零件的外形尺寸、加工工艺过程、工艺参数、刀具参数等信息,按照CNC专用的编程代码编写加工程序的过程。数控加工就是CNC按加工程序的要求,控制机床完成零件加工的过程。
1编程基础知识
坐标轴定义
下图(图1-3)为数控车床示意图。
GSK980TDi使用X轴、Z轴组成的直角坐标系,X轴与主轴轴线垂直,Z轴与主轴轴线方向平行,接近工件的方向为负方向,离开工件的方向为正方向。
数控车床刀座
按刀座与机床主轴的相对位置划分,数控车床有前刀座坐标系和后刀座坐标系,图1-4为前刀座的坐标系,图1-5为后刀座的坐标系。从图中可以看出,前、后刀座坐标系的X轴方向正好相反,而Z轴方向是相同的。在以后的图示和例子中,如未特殊说明,则用前刀座坐标系来说明编程的应用。
数控车床坐标系
机床坐标系、机床零点和机床参考点机床坐标系是CNC进行坐标计算的基准坐标系,是机床固有的坐标系。机床零点是机床上的一个固定点,由安装在机床上的零点开关或回零开关决定。通常情况下回零开关安装在X轴和Z轴正方向的最大行程处。机床参考点是机床零点偏移数据参数№114的值后的位置。当数据参数№114的设置值均为0时,机床参考点与机床零点重合。机床参考点的坐标为数据参数№120设置的值。执行机床回零、G28代码回零操作就是回机床参考点位置。进行机床回零操作、回到机床参考点后,GSK980TDi建立了就以№120设置的值为参考点的机床坐标系。机床第2,3,4参考点请详见本篇3.13节。
注:如果车床上没有安装零点开关,请不要进行机床回零操作,否则可能导致运动超出行程限制、机械损坏。
工件坐标系、局部坐标系和程序零点工件坐标系是按零件图纸设定的直角坐标系,又称浮动坐标系。当零件装夹到机床上后,根据工件的尺寸用G50设置刀具当前位置的绝对坐标,在CNC中建立工件坐标系。通常工件坐标系的Z轴与主轴轴线重合,X轴位于零件的首端或尾端。
工件坐标系一旦建立便一直有效,直到被新的工件坐标系所取代。本系统可以预先设定6个工件坐标系G54~G59。工件坐标系的说明具体见3.18。在工件坐标系上编程时,为了方便起见,可以在工件坐标系中再创建一个子工件坐标系。这样的子坐标系称为局部坐标系。
用G50设定工件坐标系的当前位置称为程序零点。
图中,XOZ为机床坐标系,X1O1Z1为X坐标轴在工件首端的工件坐标系,X2O2Z2为X坐标轴在工件尾端的工件坐标系,O为机床零点,A为刀尖,A在上述三坐标系中的坐标如下:A点在机床坐标系中的坐标为(X,Z);A点在X1O1Z1坐标系中的坐标为(X1,Z1);A点在X2O2Z2坐标系中的坐标为(X2,Z2);
插补功能:插补是指2个或多个轴同时运动,运动合成的轨迹符合确定的数学关系,构成二维(平面)或三维(空间)的轮廓,这种运动控制方式也称为轮廓控制。插补时控制的运动轴称为联动轴,联动轴的移动量、移动方向和移动速度在整个运动过程中同时受控,以形成需要的合成运动轨迹。只控制1轴或多轴的运动终点,不控制运动过程的运动轨迹,这种运动控制方式称为定位控制。
直线插补:X轴和Z轴的合成运动轨迹为从起点到终点的一条直线。
圆弧插补:X轴和Z轴的合成运动轨迹为半径由R指定、或圆心由I、K指定的从起点到终点的圆弧。
螺纹插补:主轴旋转的角度决定X轴或Z轴或两轴的移动量,使刀具在随主轴旋转的回转体工件表面图1-6第一章编程基础11第一篇编程说明篇形成螺旋形切削轨迹,实现螺纹车削。螺纹插补方式时,进给轴跟随主轴的旋转运动,主轴旋转一周螺纹切削的长轴移动一个螺距,短轴与长轴进行直线插补。
G32W-27F3;(B→C;螺纹插补)
G1X50Z-30F100;
G1X80Z-50;(D→E;直线插补)
G3X100W-10R10;(E→F;圆弧插补)
…M30;
绝对坐标编程和相对坐标编程编写程序时,需要给定轨迹终点或目标位置的坐标值,按编程坐标值类型可分为:绝对坐标编程、相对坐标编程和混合坐标编程三种编程方式。
使用X、Z轴的绝对坐标值编程(用X、Z表示)称为绝对坐标编程;使用X、Z轴的相对位移量(以U、W表示)编程称为相对坐标编程;GSK980TDi允许在同一程序段X、Z轴分别使用绝对编程坐标值和相对位移量编程,称为混合坐标编程。
示例:A→B直线插补。
绝对坐标编程:G01X200.Z50.;
相对坐标编程:G01U100.W-50.;
混合坐标编程:G01X200.W-50.;或G01U100.Z50.;
注:当一个程序段中同时有指令地址X、U或Z、W时,绝对坐标编程地址X、Z有效。
例如:G50X10.Z20.;G01X20.W30.U20.Z30.;
【此程序段的终点坐标为(X20,Z30)】
直径编程和半径编程按编程时X轴坐标值以直径值还是半径值输入可分为:直径编程、半径编程。直径编程:状态参数№.001的Bit2位为0时,程序中X轴的编程值按直径值输入,此时,X轴的坐标以直径值显示。半径编程:状态参数№.001的Bit2位为1时,程序中X轴的编程值按半径值输入,此时,X轴的坐标以半径值显示。
与直径编程或半径编程的设置有关的地址如下表:
除了上表中所列举的地址之外的其它的地址、数据,如圆弧的半径、G90的锥度等X轴的编程值均按半径值输入,与直径编程或半径编程的设置无关。
注:在本使用手册后述的说明中,如没有特别指出,均采用直径编程。
程序的构成
为了完成零件的自动加工,用户需要按照CNC的编程格式编写零件程序(简称程序)。CNC执行程序完成机床进给运动、主轴起停、刀具选择、冷却、润滑等控制,从而实现零件的加工。
执行表中的程序,刀具将沿A→B→C→D→A的轨迹运动。
程序示例:
O0001;(程序名)
N0005G0X100Z50;(快速定位至A点)
N0010M12;(夹紧工件)
N0015T0101;(换1号刀带上1号刀偏)
N0020M3S600;(启动主轴,置主轴转速600r/min)N0025M8;(开冷却液)
N0030G0X50Z2;(快速定位到B点附近)
N0040W-32F200;(从B点切削至C点)
N0050X80W-20F150;(从C点切削至D点)
N0060G0X100Z50;(快速退回A点)
N0070T0100;(取消刀偏)
N0080M5;(停止主轴)
N0090M9;(关冷却液)
N0100M13;(松开工件)
N0110M30;(程序结束,关主轴、冷却液)
N0120%
程序的一般结构
程序由若干程序段构成。程序段是以程序段号开始(可省略),以“;”结束的若干个代码字构成。
程序名
GSK980TDi最多可以存储10000个程序,为了识别区分各个程序,每个程序都有唯一的程序名(程序名不允许重复),程序名位于程序的开头由O及其后的四位数字构成。
代码字
代码字是用于命令CNC完成控制功能的基本代码单元,代码字由一个英文字母(称代码地址)和其后的数值(称为代码值,为有符号数或无符号数)构成。代码地址规定了其后代码值的意义,在不同的代码字组合情况下,同一个代码地址可能有不同的意义。表1-2为GSK980TDi所有代码字的一览表。
程序段程序段由若干个代码字构成,以“;”结束,是CNC程序运行的基本单位。程序段之间用字符“;”分开,本手册中用“;”表示。
示例如下:
一个程序段中可输入若干个代码字,也允许无代码字而只有“;”号(EOB键)结束符。在同一程序段中,除N、G、S、T、H、L等地址外,其它的地址只能出现一次,否则将产生报警(代码字在同一个程序段中被重复指令)。N、S、T、H、L代码字在同一程序段中重复输入时,相同地址的最后一个代码字有效。同组的G代码在同一程序段中重复输入时,最后一个G代码有效。
程序段号
程序段号由地址N和后面四位数构成:N0000~N9999,前导零可省略。程序段号应位于程序段的开头,否则无效。程序段号可以不输入,但程序调用、跳转的目标程序段必须有程序段号。程序段号的顺序可以是任意的,其间隔也可以不相等,为了方便查找、分析程序,建议程序段号按编程顺序递增或递减。如果在开关设置页面将“自动序号”设置为“开”,将在插入程序段时自动生成递增的程序段号,程序段号增量由参数№42设定。
程序段选跳符
如在程序执行时不执行某一程序段(而又不想删除该程序段),就在该程序段前插入“/”,并打开程序段选跳开关。程序执行时此程序段将被跳过、不执行。如果程序段选跳开关未打开,即使程序段前有“/”该程序段仍会执行。
程序注释
为方便用户查找、阅读程序,每段程序后可编辑程序注释,程序注释位于程序段之后的括号内,在CNC上只能用英文字母和数字编辑程序注释;在PC机上可用中文编辑程序注释,程序下载至CNC后,CNC可以显示中文程序注释。
程序运行的顺序
必须在自动操作方式下才能运行当前打开的程序,GSK980TDi不能同时打开2个或更多程序,因此,GSK980TDi在任一时刻只能运行一个程序。打开一个程序时,光标位于第一个程序段的行首,在编辑操作方式下可以移动光标。在自动操作方式的运行停止状态,用循环启动信号(机床面板的键或外接循环启动信号)从当前光标所在的程序段启动程序的运行,通常按照程序段编写的先后顺序逐个程序段执行,直到执行了M02或M30代码,程序运行停止。光标随着程序的运行而移动,始终位于当前程序段的行首。在以下情况下,程序运行的顺序或状态会发生改变:
程序段内代码字的执行顺序
一个程序段中可以有G、X、Z、F、R、M、S、T等多个代码字,大部分M、S、T代码字由NC解释后送给PLC处理,其它代码字直接由NC处理。M98、M99、M9000~M9999,以及以r/min、m/min为单位给定主轴转速的S代码字也是直接由NC处理。
当G代码与M00、M01、M02、M30在同一个程序段中时,NC执行完G代码后,才执行M代码,并把对应的M信号送给PLC处理。
当G代码字与M98、M99、M9000~M9999代码字在同一个程序段中时,NC执行完G代码后,才执行这些M代码字(不送M信号给PLC)。
当G代码字与其它由PLC处理的M、S、T代码字在同一个程序段中时,由PLC程序(梯形图)决定M、S、T代码字与G代码字同时执行,或者在执行完G代码后再执行M、S、T代码字,有关代码字的执行顺序应以机床厂家的说明书为准。
GSK980TDi标准PLC程序定义的G、M、S、T代码字在同一个程序段的执行顺序为:
M3、M4、M8、M10、M12、M32、M41、M42、M43、M44、S□□、T□□□□与G代码字同时执行;
M5、M9、M11、M13、M33在执行完G代码字后再执行;
M00、M01、M02、M30在当前程序段其它代码执行完成后再执行。
MST代码
M代码(辅助功能)M代码由代码地址M和其后的1~2位数字或4位数组成,用于控制程序执行的流程或输出M代码到PLC。
M98、M99、M9000~M9999由NC独立处理,不输出M代码给PLC。
M02、M30已由NC定义为程序结束代码,同时也输出M代码到PLC,可由PLC程序用于输入输出控制(关主轴、关冷却等)。
M98、M99、M9000~M9999作为程序调用代码,M02、M30作为程序结束代码,PLC程序不能改变上述代码意义。其它M代码都输出到PLC,由PLC程序定义代码功能,请参照机床厂家的说明书。
一个程序段中只能有一个M代码,当程序段中出现两个或两个以上的M代码时,CNC出现报警。
程序结束M02
代码格式:M02或M2
代码功能:在自动方式下,执行M02代码,当前程序段的其它代码执行完成后,自动运行结束,光标停留在M02代码所在的程序段,不返回程序开头。若要再次执行程序,必须让光标返回程序开头。
除上述NC处理的功能外,M02代码的功能也可由PLC程序定义。标准PLC程序定义的功能为:执行M02代码后,CNC当前的输出状态保持不变。
程序运行结束M30
代码格式:M30
代码功能:在自动方式下,执行M30代码,当前程序段的其它代码执行完成后,自动运行结束,加工件数加1,取消刀尖半径补偿,光标返回程序开头(是否返回程序开头由参数决定)。
当CNC状态参数№.005的BIT4设为0时,光标不回到程序开头;当CNC状态参№.005的BIT4设为1时,程序执行完毕,光标立即回到程序开头。
除上述NC处理的功能外,M30代码的功能也可由PLC梯形图定义。标准PLC程序定义的功能为:执行M30代码后,关闭M03或M04、M08信号输出,同时输出M05信号。
子程序调用M98
代码功能:在自动方式下,执行M98代码时,当前程序段的其它代码执行完成后,CNC去调用执行P指定的子程序,子程序最多可执行9999次。
从子程序返回M99
代码功能:(子程序中)当前程序段的其它代码执行完成后,返回主程序中由P指定的程序段继续执行,当未输入P时,返回主程序中调用当前子程序的M98代码的后一程序段继续执行。如果M99用于主程序结束(即当前程序不是由其它程序调用执行),当前程序将反复执行。M99代码在MDI下运行等同于M99用于主程序结束。
示例:
图2-1表示调用子程序(M99中有P代码字)的执行路径。图2-2表示调用子程序(M99中无P代码字)的执行路径。
标准PLC程序定义的M代码
除上述代码(M02、M30、M98、M99、M9000~M9999)外,其它M代码由PLC定义。以下所述为标准PLC程序定义的M代码,GSK980TDi车床CNC用于机床控制,M代码的功能、意义、控制时序及逻辑等请以机床厂家的说明为准。
程序停止M00
代码格式:M00或M0
代码功能:执行M00代码后,程序运行停止,显示“暂停”字样,按循环启动键后,程序继续运行。
程序选择停M01
代码格式:M01或M1
代码功能:在自动、录入方式有效,按键使选择停按键指示灯亮,则表示进入选择停状态,此时执行M01代码后,程序运行停止,显示“暂停”字样,按循环启动键后,程序继续运行。如果程序选择停开关未打开,即使运行M01代码,程序也不会暂停。
顺时针转、逆时针转和主轴停止控制M03、M04和M05
代码格式:M03或M3;
M04或M4;
M05或M5;
代码功能:
M03:顺时针转;
M04:逆时针转;
M05:主轴停止。
注:标准PLC定义的M03、M04、M05的控制时序及逻辑详见本使用手册第三篇《安装连接篇》。
冷却泵控制M08、M09
代码格式:
M08或M8;
M09或M9;
M08:冷却泵开;
M09:冷却泵关。
注:标准PLC定义的M08、M09的控制时序及逻辑详见本使用手册第三篇《安装连接篇》。
主轴功能
S代码用于控制主轴的转速,GSK980TDi控制主轴转速的方式有三种:
主轴转速开关量控制方式:S□□(2位数代码值)代码由PLC处理,PLC输出开关量信号到机床,实现主轴转速的有级变化。
主轴转速模拟电压控制方式:S□□□□(4位数代码值)指定主轴实际转速,NC输出0~10V模拟电压信号给主轴伺服装置或变频器,实现主轴转速无级调速。
主轴转速串行控制方式:S□□□□(4位数代码值)指定主轴实际转速,通过总线发送串行数据直接控制主轴伺服驱动单元,实现主轴转速无级调速。
刀具功能
刀具控制
GSK980TDi的刀具功能(T代码)具有两个作用:自动换刀和执行刀具偏置。自动换刀的控制逻辑由PLC程序处理,刀具偏置的执行由NC处理。
代码功能:自动刀架换刀到目标刀具号刀位,并按代码的刀具偏置号执行刀具偏置。刀具偏置号可以和刀具号相同,也可以不同,即一把刀具可以对应多个偏置号。在执行了刀具偏置后,再执行T□□00,CNC将按当前的刀具偏置反向偏移,CNC由已执行刀具偏置状态改变为未补偿状态,这个过程称为取消刀具偏置。上电时,T代码显示的刀具号、刀具偏置号均为掉电前的状态。
在一个程序段中只能有一个T代码,在程序段中出现两个或两个以上的T代码时,CNC产生报警。
在加工前通过对刀操作获得每一把刀具的位置偏置数据(称刀具偏置或刀偏),程序运行中执行T代码后,自动执行刀具偏置。这样在编辑程序时每把刀具按零件图纸尺寸来编写,可不用考虑每把刀具相互间在机床坐标系的位置关系。如因刀具磨损导致加工尺寸出现偏差,可根据尺寸偏差修改刀具偏置。
G代码
G代码由代码地址G和其后的多位代码值组成,用来规定刀具相对工件的运动方式、进行坐标设定等多种操作,G代码一览表见表3-1。
G代码字分为00、01、02、03、06、07、09、12、14、15、16、21组。除01与00组代码不能共段外,同一个程序段中可以输入几个不同组的G代码字,如果在同一个程序段中输入了两个或两个以上的同组G代码字时,最后一个G代码字有效。没有共同参数(代码字)的不同组G代码可以在同一程序段中,功能同时有效并且与先后顺序无关。如果使用了表3-1以外的G代码或选配功能的G代码,系统出现报警。
G代码表
模态、非模态及初态
G代码分为00、01、02、03、06、07、09、12、14、15、16、21组。
G代码执行后,其定义的功能或状态保持有效,直到被同组的其它G代码改变,这种G代码称为模态G代码。模态G代码执行后,其定义的功能或状态被改变以前,后续的程序段执行该G代码字时,可不需要再次输入该G代码。G代码执行后,其定义的功能或状态一次性有效,每次执行该G代码时,必须重新输入该G代码字,这种G代码称为非模态G代码。
系统上电后,未经执行其功能或状态就有效的模态G代码称为初态G代码。上电后不输入G代码时,按初态G代码执行。
代码字的省略输入为简化编程,表3-2所列举的代码字具有执行后值保持的特点,如果在前面的程序段中已经包含了这些代码字,在后续的程序段中需要使用且值相同、意义相同时,可以不必输入。
注1:有多种功能的编程地址(如F,可用于给定每分进给、每转进给、公制螺纹螺距等)只在代码字执行后、再次执行相同的功能定义代码字时才允许省略输入。如:执行了G98F,未执行螺纹插补的G代码,进行公制螺纹加工时必须用F代码指定螺距;
注2:在地址X(U)、Z(W)用于给定程序段终点坐标时允许省略输入,程序段中未输入X(U)或Z(W)时,系统取当前的X轴或Z轴的绝对坐标作为程序段终点的坐标值;
注3:使用表3-2中未列入的编程地址时,必须输入相应的代码字,不能省略输入。
示例1:O0001;
G0X100Z100;(快速移动至X100Z100;模态代码字G0有效)
X20Z30;(快速移动至X20Z30;模态代码字G0可省略输入)
G1X50Z50F300;(直线插补至X50Z50,进给速度300mm/min;模态代码字G1有效)X100;(直线插补至X100Z50,进给速度300mm/min;未输入Z轴坐标,取当前坐标值Z50;F300保持、G01为模态代码字可省略输入)
G0X0Z0;(快速移动至X0Z0,模态代码字G0有效)
M30;
示例2:O0002;G0X50Z5;(快速移动至X50Z5)
G04X4;(延时4秒)
G04X5;(再次延时5秒,G04为非模态G代码字,必须再次输入)
示例3:O0003;
G98F500G01X100Z100;(G98每分进给,进给速度为500mm/min)
G92X50W-20F2;(螺纹切削,F值为螺距必须输入)
G99G01U10F0.01(G99每转进给,F值重新输入)
G00X80Z50
起点:当前程序段运行前的位置;
终点:当前程序段执行结束后的位置;
X:终点位置X轴的绝对坐标;
U:终点位置与起点位置X轴绝对坐标的差值;
Z:终点位置Z轴的绝对坐标;
W:终点位置与起点位置Z轴绝对坐标的差值;
F:切削进给速度。
快速定位G00
代码格式:G00X(U)Z(W);
代码功能:X轴、Z轴同时从起点以各自的快速移动速度移动到终点,如图3-1所示。两轴是以各自独立的速度移动,短轴先到达终点,长轴独立移动剩下的距离,其合成轨迹不一定是直线。
代码说明:G00为01组G代码的初值;X(U)、Z(W)可省略一个或全部,当省略一个时,表示该轴的起点和终点坐标值一致;同时省略表示终点和始点是同一位置,X与U、Z与W在同一程序段时X、Z有效,U、W无效。X、U、Z、W取值范围为见1.4.1的表1-2,单位为mm/inch。
X、Z轴各自快速移动速度分别由系统数据参数№.022设定,实际的移动速度可通过机床面板的快速倍率键进行修调。
示例:刀具从A点快速移动到B点。图3-2
G0X20Z25;(绝对坐标编程)
G0U-22W-18;(相对坐标编程)
G0X20W-18;(混合坐标编程)
G0U-22Z25;(混合坐标编程)
直线插补G01
代码格式:G01X(U)_Z(W)_F_;
代码功能:运动轨迹为从起点到终点的一条直线。轨迹如图3-3所示。
代码说明:G01为模态G代码;X(U)、Z(W)可省略一个或全部,当省略一个时,表示该轴的起点和终点坐标值一致;同时省略表示终点和始点是同一位置。X、U、Z、W取值范围为见1.4.1的表1-2,单位为mm/inch
F代码值为X轴方向和Z轴方向的瞬时速度的向量合成速度,实际的切削进给速度为进给倍率与F代码值的乘积;
F代码值执行后,此代码值一直保持,直至新的F代码值被执行。后述其它G代码使用的F代码字功能相同时,不再详述。取值范围见1.4.1的表1-2。
注:G98状态下,F的最大值不超过数据参数№.027(切削进给上限速度)设置值。
运动轨迹图:
示例:从直径Φ40切削到Φ60的程序代码,图3-4
程序:
G01X60Z7F500;(绝对值编程)
G01U20W-25;(相对值编程)
G01X60W-25;(混合编程)
G01U20Z7;(混合编程)
圆弧插补G02、G03
代码格式:G02R__X(U)__Z(W)__G03I__K__
代码功能:G02代码运动轨迹为从起点到终点的顺时针(后刀座坐标系)/逆时针(前刀座坐标系)圆弧,轨迹如图3-5所示。
G03代码运动轨迹为从起点到终点的逆时针(后刀座坐标系)/顺时针(前刀座坐标系)圆弧,轨迹如图3-6所示。
代码轨迹:
代码说明:G02、G03为模态G代码;
R为圆弧半径;
I为圆心与圆弧起点在X方向的差值,用半径表示;
K为圆心与圆弧起点在Z方向的差值。圆弧中心用地址I、K指定时,其分别对应于X,Z轴。
I、K表示从圆弧起点到圆心的向量分量,为增量值;如图3-5、3-6所示。I=圆心X坐标-圆弧起始点X坐标;K=圆心Z坐标-圆弧起始点Z坐标;I、K根据方向带有符号,I、K方向与X、Z轴方向相同,则取正值;否则,取负值。
X、U、Z、W、R、I、K取值范围为见1.4.1的表1-2,单位为mm/inch
圆弧方向:G02/G03圆弧的方向定义,在前刀座坐标系和后刀座坐标系是相反的,见图3-8:
注意事项:
1)当I=0或K=0时,可以省略;但地址I、K或R必须至少输入一个,否则系统产生报警;
2)I、K和R同时输入时,R有效,I、K无效;
3)R值必须等于或大于起点到终点的一半,如果终点不在用R定义的圆弧上,系统会产生报警;
4)地址X(U)、Z(W)可省略一个或全部;当省略一个时,表示省略的该轴的起点和终点一致;同时省略表示终点和始点是同一位置,若用I、K指定圆心时,执行G02/G03代码的轨迹为全圆(360°);用R指定时,表示0°的圆;
5)建议使用R编程。当使用I、K编程时,为了保证圆弧运动的始点和终点与指定值一致,系统按半径R=22I+K运动;
6)若使用I、K值进行编程,若圆心到的圆弧终点距离不等于R(R=22I+K),系统会自动调整圆心位置保证圆弧运动的始点和终点与指定值一致,如果圆弧的始点与终点间距离大于2R,系统报警。
7)用R指定时,不能为整圆,R负值时为大于180°的圆弧,R正值时为小于或等于180度的圆弧;
8)G02、G03代码可用于复合循环G70~G73中,但不能用于定位段;
9)G02、G03代码可用于C刀补中,但不用于C刀补的建立与撤消;
示例:从直径Φ45.359切削到Φ63.060的圆弧程序代码,图3-9。
G02X63.060Z-24.071R19.16F300;或
G02U17.701W-24.071R19.16F300;或
G02X63.060Z-24.071I17.785K-7.124;或
G02U17.701W-24.071I17.785K-7.124F300
G02/G03代码综合编程实例:
程序:O0001
N001G0X40Z5;(快速定位)
N002M03S200;(主轴开)
N003G01X0Z0F900;(靠近工件)
N005G03U24W-24R15;(切削R15圆弧段)
N006G02X26Z-31R5;(切削R5圆弧段)
N007G01Z-40;(切削ф26)
N008X40Z5;(返回起点)
N009M30;(程序结束)
1)当P、X、U、Q未输入时,表示程序段间准确停。
3)P、X、U在同一程序段,P有效;X、U在同一程序段,X有效。
工件坐标系设定G50
代码格式:G50X(U)Z(W);
代码功能:设置当前位置的绝对坐标,通过设置当前位置的绝对坐标在系统中建立工件坐标系(也称浮动坐标系)。执行本代码后,系统将当前位置作为程序零点,执行回程序零点操作时,返回这一位置。工件坐标系建立后,绝对坐标编程按这个坐标系输入坐标值,直至再次执行G50建立新的工件坐标系。
代码说明:G50为非模态G代码;
X:当前位置新的X轴绝对坐标;
U:当前位置新的X轴绝对坐标与执行代码前的绝对坐标的差值;
Z:当前位置新的Z轴绝对坐标;
W:当前位置新的Z轴绝对坐标与执行代码前的绝对坐标的差值;
G50代码中,X(U)、Z(W)均未输入时,不改变当前坐标值,把当前点坐标值设定为程序零点;未输入X(U)或Z(W),未输入的坐标轴保持原来设定的程序零点(当G50SXXXX时不设置程序零点)。
如图3-54所示,当执行代码段“G50X100Z150;”后,建立了如图所示的工件坐标系,并将(X100Z150)点设置为程序零点。注:当状况参数003号的Bit4位为1(以坐标偏移方式执行刀具偏置)时,当执行T功能代码而又未执行移动代码时,用G50设定坐标系,系统显示的绝对坐标值为G50设定的坐标值加上或减去未执行的刀补值,并把此点作为程序零点。
多重循环代码
GSK980TDi的多重循环代码包括:轴向粗车循环G71、径向粗车循环G72、封闭切削循环G73、精加工循环G70、轴向切槽多重循环G74、径向切槽多重循环G75及钻孔循环G83/G87。系统执行这些代码时,根据编程轨迹、进刀量、退刀量等数据自动计算切削次数和切削轨迹,进行多次进刀→切削→退刀→再进刀的加工循环,自动完成工件毛坯的粗、精加工,代码的起点和终点相同。
轴向粗车循环G71
G71有两种粗车加工循环:类型I和类型II代码格式:
代码意义:G71代码分为三个部分:
⑴:给定粗车时的切削量、退刀量和切削速度、主轴转速、刀具功能的程序段;
⑵:给定定义精车轨迹的程序段区间、精车余量的程序段;
⑶:定义精车轨迹的若干连续的程序段,执行G71时,这些程序段仅用于计算粗车的轨迹,实际并未被执行。
系统根据精车轨迹、精车余量、进刀量、退刀量等数据自动计算粗加工路线,沿与Z轴平行的方向切削,通过多次进刀→切削→退刀的切削循环完成工件的粗加工。G71的起点和终点相同。本代码适用于非成型毛坯(棒料)的成型粗车。
精车轨迹:由代码的第⑶部分(ns~nf程序段)给出的工件精加工轨迹,精加工轨迹的起点(即ns程序段的起点)与G71的起点、终点相同,简称A点;类型Ⅰ精加工轨迹的第一段(ns程序段)只能是X轴的快速移动或切削进给,ns程序段的终点简称B点;精加工轨迹的终点(nf程序段的终点)简称C点。精车轨迹为A点→B点→C点。
粗车轮廓:精车轨迹按精车余量(Δu、Δw)偏移后的轨迹,是执行G71形成的轨迹轮廓。精加工轨第三章G代码97第一篇编程说明篇迹的A、B、C点经过偏移后对应粗车轮廓的A’、B’、C’点,G71代码最终的连续切削轨迹为B’点→C’点。
类型I:1)代码执行过程:图3-63。
①从起点A点快速移动到A’点,X轴移动Δu、Z轴移动Δw;
②从A’点X轴移动Δd(进刀),ns程序段是G0时按快速移动速度进刀,ns程序段是G1时按G71的切削进给速度F进刀,进刀方向与A点→B点的方向一致;
③Z轴切削进给到粗车轮廓,进给方向与B点→C点Z轴坐标变化一致;
④X轴、Z轴按切削进给速度退刀e(45°直线),退刀方向与各轴进刀方向相反;⑤Z轴以快速移动速度退回到与A’点Z轴绝对坐标相同的位置;
⑥如果X轴再次进刀(Δd+e)后,移动的终点仍在A’点→B’点的联机中间(未达到或超出B’点),X轴再次进刀(Δd+e),然后执行③;如果X轴再次进刀(Δd+e)后,移动的终点到达B’点或超出了A’点→B’点的联机,X轴进刀至B’点,然后执行⑦;
⑦沿粗车轮廓从B’点切削进给至C’点;
⑧从C’点快速移动到A点,G71循环执行结束,程序跳转到nf程序段的下一个程序段执行。
程序:O0004;
G00X200Z10M3S800;(逆时针转,转速800r/min)
G71U2R1F200;(每次切深4mm,退刀2mm,[直径])
G71P80Q120U1W2;(对a---e粗车加工,余量X方向1mm,Z方向2mm)
N80G00X40S1200;(定位)
G01Z-30F100;(a→b)
X60W-30;(b→c)精加工路线a→b→c→d→e程序段
W-20;(c→d)
N120X100W-10;(d→e)
G70P80Q120;(对a---e精车加工)
M30;(程序结束)
径向粗车循环G72
代码意义:G72代码分为三个部分:
⑶:定义精车轨迹的若干连续的程序段,执行G72时,这些程序段仅用于计算粗车的轨迹,实际并未被执行。系统根据精车轨迹、精车余量、进刀量、退刀量等数据自动计算粗加工路线,沿与X轴平行的方向切削,通过多次进刀→切削→退刀的切削循环完成工件的粗加工,G72的起点和终点相同。本代码适用于非成型毛坯(棒料)的成型粗车。
封闭切削循环G73
代码意义:G73代码分为三个部分:
⑴:给定退刀量、切削次数和切削速度、主轴转速、刀具功能的程序段;
⑵:给定定义精车轨迹的程序段区间、精车余量的程序段
⑶:定义精车轨迹的若干连续的程序段,执行G73时,这些程序段仅用于计算粗车的轨迹,实际并未被执行。;
系统根据精车余量、退刀量、切削次数等数据自动计算粗车偏移量、粗车的单次进刀量和粗车轨迹,每次切削的轨迹都是精车轨迹的偏移,切削轨迹逐步靠近精车轨迹,最后一次切削轨迹为按精车余量偏移的精车轨迹。G73的起点和终点相同,本代码适用于成型毛坯的粗车。G73代码为非模态代码,代码轨迹如图3-77。
精加工循环G70
代码格式:G70P(ns)Q(nf);
代码功能:刀具从起点位置沿着ns~nf程序段给出的工件精加工轨迹进行精加工。
在G71、G72或G73进行粗加工后,用G70代码进行精车,单次完成精加工余量的切削。
G70循环结束时,刀具返回到起点并执行G70程序段后的下一个程序段。
其中:
ns:精车轨迹的第一个程序段的程序段号;
nf:精车轨迹的最后一个程序段的程序段号;
G70代码轨迹由ns~nf之间程序段的编程轨迹决定。ns、nf在G70~G73程序段中的相对位置关系如下:
1)G70必须在ns~nf程序段后编写;
2)执行G70精加工循环时,ns~nf程序段中的F、S、T代码有效;
3)G96、G97、G98、G99、G40、G41、G42代码在执行G70精加工循环时有效;
4)在G70代码执行过程中,可以停止自动运行并手动移动,但要再次执行G70循环时,必须返回到手动移动前的位置。如果不返回就继续执行,后面的运行轨迹将错位;
5)执行单程式段的操作,在运行完当前轨迹的终点后程序暂停;
6)在同一程序中需要多次使用复合循环代码时,ns~nf不允许有相同程序段号;
7)ns~nf程序段,最多允许有100个程序段;
8)退刀点要尽量高或低,避免退刀碰到工件。
螺纹切削循环G92
G92X(U)_Z(W)_F_J_K_L;(公制直螺纹切削循环)
G92X(U)_Z(W)_I_J_K_L;(英制直螺纹切削循环)
G92X(U)_Z(W)_R_F_J_K_L;(公制锥螺纹切削循环)
G92X(U)_Z(W)_R_I_J_K_L;(英制锥螺纹切削循环)
代码功能:从切削起点开始,进行径向(X轴)进刀、轴向(Z轴或X、Z轴同时)切削,实现等螺距的直螺纹、锥螺纹切削循环。执行G92代码,在螺纹加工未端有螺纹退尾过程:在距离螺纹切削终点固定长度(称为螺纹的退尾长度)处,在Z轴继续进行螺纹插补的同时,X轴沿退刀方向指数或线性(由参数设置)加速退出,Z轴到达切削终点后,X轴再以快速移动速度退刀,如图3-88所示。
代码说明:G92为模态G代码;
切削起点:螺纹插补的起始位置;切削终点:螺纹插补的结束位置;
X:切削终点X轴绝对坐标;
U:切削终点与起点X轴绝对坐标的差值;
Z:切削终点Z轴绝对坐标;
W:切削终点与起点Z轴绝对坐标的差值;
R:切削起点与切削终点X轴绝对坐标的差值(半径值),当R与U的符号不一致时,要求∣R│≤│U/2│;
F:螺纹导程,取值范围见1.4.1的表1-2,F指定值执行后保持,可省略输入;
I:螺纹每英寸牙数,取值范围见1.4.1的表1-2,I指定值执行后保持,可省略输入;
J:螺纹退尾时在短轴方向的移动量,取值范围0~99999999×最小输入增量,单位:mm./inch不带方向(根据程序起点位置自动确定退尾方向),模态参数,如果短轴是X轴,则该值为半径指定;
K:螺纹退尾时在长轴方向的长度,取值范围0~99999999×最小输入增量,单位:mm/inch。不带方向,模态参数,如长轴是X轴,该值为半径指定;
L:多头螺纹的头数,该值的范围是:1~99,模态参数。(省略L时默认为单头螺纹)
G92代码可以分多次进刀完成一个螺纹的加工,但不能实现2个连续螺纹的加工,也不能加工端面螺纹。
G92代码螺纹螺距的定义与G32一致,螺距是指主轴转一圈长轴的位移量(X轴位移量按半径值)。锥螺纹的螺距是指主轴转一圈长轴的位移量(X轴位移量按半径值),B点与C点Z轴坐标差的绝对值大于X轴(半径值)坐标差的绝对值时,Z轴为长轴;反之,X轴为长轴。
循环过程:直螺纹如图3-88,锥度螺纹如图3-89。
①X轴从起点快速移动到切削起点;
②从切削起点螺纹插补到切削终点;
③X轴以快速移动速度退刀(与①方向相反),返回到X轴绝对坐标与起点相同处;
④Z轴快速移动返回到起点,循环结束。
程序:O0012;
M3S300G0X150Z50T0101;(螺纹刀)
G0X65Z5;(快速定位)
G92X58.7Z-28F3J3K1;(加工螺纹,分4刀切削,第一次进刀1.3mm)
X57.7;(第二次进刀1mm)
X57;(第三次进刀0.7mm)
X56.9;(第四次进刀0.1mm)
多重螺纹切削循环G76代码格式:
G76P(m)(r)(a)Q(△dmin)R(d)J_K_;
G76X(U)Z(W)R(i)P(k)Q(△d)F(I);
代码功能:通过多次螺纹粗车、螺纹精车完成规定牙高(总切深)的螺纹加工,如果定义的螺纹角度不为0°,螺纹粗车的切入点由螺纹牙顶逐步移至螺纹牙底,使得相邻两牙螺纹的夹角为规定的螺纹角度。G76代码可加工带螺纹退尾的直螺纹和锥螺纹,可实现单侧刀刃螺纹切削,吃刀量逐渐减少,有利于保护刀具、提高螺纹精度。
G76代码不能加工端面螺纹。加工轨迹如图3-94所示。
代码说明:
X:螺纹终点X轴绝对坐标;
U:螺纹终点与起点X轴绝对坐标的差值;
Z:螺纹终点Z轴的绝对坐标值;
W:螺纹终点与起点Z轴绝对坐标的差值;
P(m):螺纹精车次数00~99(单位:次)。未输入m时,以系统数据参数№.057的值作为精车次数。在螺纹精车时,每次的进给的切削量等于螺纹精车的切削量。
P(r):螺纹退尾长度00~99(单位:0.1×L,L为螺纹螺距)。未输入r时,以系统数据参数№.019的值作为螺纹退尾宽度。螺纹退尾功能可实现无退刀槽的螺纹加工,系统参数№.019定义的螺纹退尾宽度对G92、G76代码有效;
P(a):相邻两牙螺纹的夹角,取值范围为00~99,单位:度(°)。未输入a时,以系统数据参数№.058的值作为螺纹牙的角度。实际螺纹的角度由刀具角度决定,因此a应与刀具角度相同;Q(△dmin):螺纹粗车时的最小切削量,取值范围为0~999999(IS-C)/0~99999(IS-B),(单位:最小输入增量,半径值)。当(n-n1)×△d<△dmin时,以△dmin作为本次以及后续粗车的切削量,后续的进刀深度将不再按公式计算。设置△dmin是为了避免由于螺纹粗车切削量递减造成粗车切削量过小、粗车次数过多。
未输入Q(△dmin)时,以系统数据参数№.059的值作为最小切削量;R(d):螺纹精车的切削量,取值范围为00~99.999(IS_B)/00~99.9999(IS_C),(单位:mm/inch,无符号,半径值),半径值等于螺纹精车切入点Be与最后一次螺纹粗车切入点Bf的X轴绝对坐标的差值。
未输入R(d)时,以系统数据参数№.060的值作为螺纹精车切削量;R(i):螺纹锥度,螺纹起点与螺纹终点X轴绝对坐标的差值,取值范围为-99999.999~99999.999(IS_B)/-9999.9999~9999.9999(IS_C)(单位:mm/inch,半径值)。未输入R(i)时,系统按R(i)=0(直螺纹)处理;P(k):螺纹牙高,螺纹总切削深度,取值范围为1~99999999(单位:最小输入增量,半径值、无符号)。
未输入P(k)时,系统报警;Q(△d):第一次螺纹切削深度,取值范围为1~99999999(单位:最小输入增量,半径值、无符号)。
未输入△d时,系统报警;F:螺纹导程,取值范围见1.4.1的表1-2;I:螺纹每英寸的螺纹牙数,取值范围见1.4.1的表1-2;J:螺纹退尾时在短轴方向的移动量(退尾量)(取值范围0~99999999×最小输入增量,单位mm/inch,不带方向);如果短轴是X轴,该值为半径指定,非模态参数;K:螺纹退尾时在长轴方向的长度(取值范围0~99999999×最小输入增量,单位mm/inch,不带方向);如果长轴是X轴,则该值为半径指定,非模态参数;
注:G76没有编写J,K,退尾的使用方法和以前一样,按照P(r)或19号参数退尾;若编写了J或K或J,K,退尾方式和G32、G92相同;
示例:图3-96,螺纹为M68×6。
程序:O0013;(系统最小输入增量为0.0001mm)
G50X100Z50M3S300;(设置工件坐标系启动主轴,指定转速)
G04X2;(延时2S,主轴转速稳定)
G00X80Z10;(快速移动到加工起点)
G76P020560Q1500R0.1;(精加工重复次数2,倒角宽度0.5mm,刀具角度60°,最小切入深度0.15,精车余量0.1)
G76X60.64Z-62P36800Q18000F6;(螺纹牙高3.68,第一螺纹切削深度1.8)