第2章 数控车削程序的编制
2.1 FANUC系统数控编程基础
2.1.1 编制零件加工程序过程
编制零件加工程序是把数控加工中所需要的工艺信息和刀具轨迹编入程序中。编制零件加工程序过程如图2⁃1所示,简述如下。
图2⁃1 编制零件加工程序过程
(1)分析零件图样,计算坐标尺寸
数控加工前,应认真分析零件图样,注意以下几点。
① 明确加工任务。确认零件的几何形状、尺寸和技术要求,本工序加工表面和加工质量的要求。
② 确定工件零点,画出工件坐标系。
③ 计算可能缺少的坐标尺寸。
a.标注尺寸的换算。当零件图中标注尺寸与编程使用的尺寸数据不一致时,需要经过换算求解编程的尺寸数据。例如图2⁃2所示小轴,零件图中A点位置是以左端面为基准标注,编程时工件坐标系以轴的右端面为Z轴原点,编程坐标系中A点的Z轴尺寸不能用Z=10mm,需要进行尺寸换算,换算后A点Z坐标值为Z=-50.0mm。
b.基点计算。基点是指构成工件轮廓的不同几何要素之间的交点或切点,如直线与直线的交点、直线与圆弧的交点或切点、圆弧与圆弧的交点或切点等。例如图2⁃3所示凸轮,图中A、B、C、D点是凸轮的基点。确定工件坐标系后,可用几何方法计算出基点坐标。也可以借助CAD/CAM软件,画出工件的几何图形,通过软件查询功能,查出所需的基点坐标,如图2⁃3中的凸轮,用CAD软件1∶1画出凸轮图形,在图上可查询基点坐标:A(X0,Y75),B(X0,Y-30),C(X-7.5,Y29.407),D(X0,Y38.73)。
图2⁃2 A点编程尺寸换算
图2⁃3 变速凸轮基点
c.节点计算。一般数控系统只具备直线和圆弧插补功能,对直线和圆弧以外的复杂曲线,如椭圆线、阿基米德螺旋线等,只能用直线或圆弧逼近,具体方法是将复杂轮廓曲线按允许误差分割成若干小段,再用直线或圆弧逼近这些小段,逼近线段的交点称为节点。节点越密,轮廓曲线的逼近程度越高。人工计算节点很困难,此类情况通常采用自动编程,本书不介绍自动编程。
(2)确定加工过程
① 确定工件的加工表面,确定各表面加工的顺序。
② 在机床上装夹工件的方法。
③ 根据工件加工表面,选择对应的切削刀具,确定切削参数。确定对刀点和换刀点。
④ 确定每一切削过程中的走刀路线,加工中是否需要零点偏移、旋转、镜像等。
⑤ 工件上需要重复加工的部位,是否需要存放到一个子程序中。在其他零件程序或者子程序库中是否有当前工件可以使用的部件轮廓。
⑥ 编制加工操作顺序
(3)确定加工中机床的辅助动作
辅助动作指在刀具不切削时为辅助切削过程所需做的动作,如刀具定位时快速移动,换刀,定位到工作平面,检测工件时机床的空运行,开关主轴,开或闭冷却液,调用刀具数据,进刀,刀具轨迹补偿,返回到轮廓,离开轮廓快速提刀等。
(4)编写加工程序
根据走刀路线、工艺参数及刀具等数据,按FANUC数控系统的指令代码和程序段格式编写加工程序。把加工中的每个步骤编为一个加工程序段(或多个程序段),把所有单个的步骤汇成一个零件加工程序。
(5)在机床上创建加工程序
可在机床上操作数控系统键盘输入加工程序,此外还可以采用存储盘拷贝或通信等手段输入程序。单台数控机床通过V24接口与计算机连接,通过在计算机上的通信软件与数控机床进行数据传输,把计算机中的数控程序传输到数控系统。已实现联网的数控机床,还可采用网络通信传输程序。
(6)程序的校验和试切
创建程序后首先通过程序的空运行和试切削,检验程序是否有误,加工精度是否符合要求。如果不能达到要求,找出原因,采取相应措施进行更改。最后形成正确的加工程序。
2.1.2 FANUC系统数控程序组成
数控加工程序单如图2⁃4所示。加工程序是由各种字符(英文字母和数字)组合而成的,数控系统通过字符的编码识别字符。国际通用的数控程序字符编码有两种,即EIA码(美国电子工业协会)和ISO码(国际标准化协会)。FANUC数控系统能够自动识别这两种字符编码。不同的字符组合定义了各种数控指令。程序中各指令的含义和书写指令的排列顺序称为程序格式。FANUC系统数控程序格式基本上采用国际标准。数控程序记录在数控加工程序单上,可存储在数控系统中,也可存储在存储介质上。
图2⁃4 数控加工程序单
数控加工程序单中显示了组成加工程序的各部分,现解释如下。
(1)纸带开始
纸带开始ISO代码用符号“%”;表示NC程序文件开始的符号,当程序使用个人计算机输入时不需要标记符号。此符号标记不在屏幕上显示,但是如果文件输出,此标记符号自动输出在文件的开头。
文件中在程序之前的文件头为引导部分,即引导区,包括程序文件的标题等。当文件读入数控装置时,引导部分被跳过,引导部分由“%”开始,由“;”结束。
(2)程序部分
① 程序号。程序号用于检索程序,如图2⁃4中的字符“O0250”。程序号命名规定为:字母“O”后跟四位数字。通过程序号可以把一个数控程序作为子程序调用。
② 加工程序。数控加工程序是分行书写的,程序中,每一行称为一个程序段。程序由一系列的程序段组成。“;”表示一个程序段结束,相当于普通计算机按回车键,称为EOB 代码。
③程序段、指令、地址。每一程序段包含了执行一个加工工步的数据。程序段由若干个指令(也称为字)组成,如图2⁃5所示。
图2⁃5 程序段组成
指令(字)是数控程序中的基本信息单元,代表机床的一个位置或一个动作。指令由英文字母和若干个数字组成,其中英文字母称为地址,例如指令“X⁃20.1”的组成:
⁃
各种地址码(英文字母)代表不同功能,FANUC系统加工程序使用的地址码及其功能如表2⁃1所示。指令中的数字分为带符号和不带符号两种,带符号的数字用于定义尺寸,如指令“X⁃20.1”;不带符号的数字用于定义各指令的含义,如准备功能字的G00、G01等。
表2⁃1 数控程序地址码及其功能
④ 为了使加工程序更便于理解,可以为程序段加上注释,括号“( )” 中内容或分号“;”后的内容为注释文字。
⑤ 程序结束指令M30(或M02)。程序中的最后一个程序段必须含有程序结束指令。
(3)纸带结束
表示程序文件结束的符号。纸带结束符号“%”放置在数控(NC)程序文件的末尾,用自动编程系统输入程序时,不需要输入“%”。标记“%”在屏幕上不显示,但是当文件输出时,标记自动输出在文件的末尾。
2.1.3 程序段格式
一个程序段是一个由数控装置执行的指令行。完整程序段的内容包括:刀具动作方式、刀具轨迹(准备功能G)、移动目标(终点坐标值X、Y、Z)、进给速度(进给功能指令F)、切削速度(主轴转速功能指令S)、刀具号(刀具功能T)、刀补号(地址D、H)、机床辅助动作(辅助功能M)等。程序段格式是指一个程序段中各种指令的书写规则,包括指令排列顺序等。FANUC系统的程序段格式如图2⁃6所示。程序段中的各种指令说明如下。
图2⁃6 程序段格式
① N××——顺序号。由地址“N”和后面的数字组成,用作标识程序段运行顺序。书写程序时建议按升序书写程序段号。为减少代码输入和少占内存,在FANUC系统的数控程序中,顺序号不是必需的,也不要求数值有连续性,系统能够自动按照程序段排列先后顺序运行程序。
跳过任选程序段符号“/”。对于不是每次程序运行都需要执行的程序段(如加工中测量或调整时,需要停止运行程序的程序段,该段不是每次程序运行都需要执行),在不需执行时可以选择跳过。方法是在程序段号码前加跳段符号“/”(斜线),同时在机床操作面板上接通“跳段开关”,使“/”有效,程序运行中就可以跳过标有“/”的程序段。如果面板上的“跳段开关”断开,则跳段符号“/”无效,有“/”符号程序段有效。程序中允许连续跳过几个程序段,如图2⁃7所示,图中跳过的程序段有N20,并连续跳过N40、N50、N60程序段。所跳过程序段中的指令不执行,程序从其后的程序段继续执行。
图2⁃7 跳过程序段
② G××——准备。由“G”和两位数字组成,用来规定刀具和工件的相对运动轨迹、机床坐标系、坐标平面、刀具补偿、坐标偏置等多种加工操作。
③ X、Y、Z、A、B、C、I、J、K等——坐标指令。由坐标地址符(英文字母)及数字组成,例如“X⁃25.102”,其中字母表示坐标轴,字母后面的数值表示刀具在该坐标轴上移动(或转动)后的坐标值。
④ F×××——进给速度。用于给定切削时刀具的进给速度。进给速度单位可以用G98/G99指定,G98指定的刀具进给速度单位是每分钟进给量(mm/min),G99指定的单位是主轴每转刀具的进给量(mm/r)。数控车床开机后默认的状态是G99,即进给速度单位是“mm/r”,例如车床开机后指令“F0.2”,表示刀具的进给速度为0.2mm/r。
当数控系统工作在G01、G02、G03方式下编程的F一直有效,直到被新的F 值所取代。而工作在G00方式下快速定位的速度是各轴的最高速度,与所编F 无关。借助操作面板上的倍率按键,F值可在一定范围内进行倍率修调。
⑤ S×××——主轴转速。用以控制主轴转速,其后的数值表示主轴转速,单位为“r/min”,例如“S900”,表示主轴转速为900 r/min。S 是模态指令,S 功能只有在主轴转速可连续调节时有效。
⑥ T××××——刀具,用于选刀。由字母“T”加四位数字组成,其中前两位数值表示选择的刀具号,后两位数字表示刀具补偿号(存储刀具补偿值的地址)。
⑦ H××(或D××)——刀具补偿号地址,由字母“H”(或“D”)加两位数字组成。用于存放刀具长度或半径补偿值。
⑧ M××——辅助。简称M代码,由字母“M”加两位数字表示,用于控制零件程序的走向和机床各种辅助功能的开关动作。通常在一个程序段中仅能指定一个M 代码。在某些情况下可以最多指定三个M代码。代码对应的机床功能由机床制造厂决定。常用的M代码及其功能见表2⁃2。
表2⁃2 常用M代码及其功能(部分)
⑨ “;”——分号是程序段结束符号,表示一个程序段的结束。程序段结束符号位于一个程序段末尾,在用键盘输入程序时,按操作面板上的“EOB”(end of block)键,则“;”号自动添加在程序段末尾,同时程序换行。也有采用“LF”“CR”“*”等符号作为程序段结束符号的。
2.1.4 常用辅助功能M代码
表2⁃2为常用M代码,M00、M01、M02、M30、M98、M99指令用于控制零件程序走向,是数控系统内定的辅助功能,不由机床制造厂决定。其余M代码用于控制机床各种开关的动作,由PLC程序指定,其功能可能因机床制造厂不同而有差异,请读者参考机床说明书。
(1)M00(程序暂停)
功能:M00指令使正在运行的程序在本段停止运行,同时现场的模态信息全部被保存下来。重新按动程序启动按钮后,可继续执行下一程序段。
应用:该指令用于加工中的停车,以进行某些固定的手动操作,如手动变速、换刀等。
(2)M01(选择停止)
功能:M01执行过程和M00指令相同,不同的是只有按下机床操作面板上的 “选择停止”按钮时该指令才有效,否则机床继续执行后面的程序。
应用:该指令常用于加工中的关键尺寸的抽样检查或临时停车。
(3)M02(程序结束)
功能:该指令表示加工程序全部结束。它使主轴、进给、切削液都停止,机床复位。
应用:该指令必须编在最后一个程序段中。
(4)M03(主轴正转启动)、M04(主轴反转启动)、M05(主轴停止转动)
功能:M03、M04指令可分别使主轴正、反转,它们与同段程序其他指令同时执行。M05指令使主轴停止转动,在该程序段中其他指令执行完成后才执行主轴停止转动。
(5)M08(切削液打开);M09(切削液停止)
(6)M30(程序结束并返回)
功能:该指令与M02功能相似,不同之处是该指令使程序段执行顺序指针返回到程序开头位置,以便继续执行同一程序,为加工下一个工件做好准备。该指令必须编在最后一个程序段中。
在初学加工中心编程时,对M00、M01、M02和M30几个M代码容易混淆,它们的区别与联系如下。
•M00为程序暂停指令。程序执行到此进给停止,主轴停转。重新按启动按钮后,可继续执行后面的程序段。主要用于编程者想在加工中使机床暂停(检验工件、调整、排屑等)。
•M01为程序选择性暂停指令。程序执行时控制面板上“选择停止”按钮处于“ON”状态时此功能才有效,否则该指令无效。执行后的效果与M00相同,常用于关键尺寸的检验或临时暂停。
•M02为主程序结束指令。执行到此指令,进给停止,主轴停止,冷却液关闭。但程序执行光标停在程序末尾。
•M30为主程序结束并返回指令。功能同M02,不同之处是,程序执行光标返回程序头位置。
2.1.5 车削程序G功能代码
FANUC T系统G代码如表 2⁃3所示,表中内容说明三点。
① G代码分为不同的组别,组号在表中“分组”一栏中表示。不同组的G代码能够在同一程序段中指定,同一组号内的代码可以互相取代,如果同一程序段中指定同组G代码,则最后指定的G代码有效。
② G代码分为两类:非模态G代码和模态G代码,表2⁃3中00组为非模态码,其余组代码为模态码。非模态G代码只在指令它的程序段中有效,例如G04是非模态码,程序段:“G04 P1000”是使刀具进给暂停。程序运行到该指令,刀具进给暂停1s,非模态码G04只在这个段内有效,不影响下一程序段。模态G代码一旦被指令,在系统内存中保存该代码,该代码一直有效,在以后的程序段中使用该代码可以不重写,直到该代码被程序指令取消或被同组代码取代。
③ 表中标有“①”的G代码为系统通电后默认状态,即默认状态。例如“06”组代码G20和G21,其中标有“①”的是G21,则系统通电后自动进入G21状态(公制输入)。如需英制输入,则需指定G20代码,由G20取代G21,系统成为英制输入状态。
表2⁃3 FANUC T系统G功能及程序段格式(数控车床用)
① 该G代码为系统通电后默认状态。
注:1.本表中00组为非模态码,其余组为模态码。
2.表中绝对坐标编程时地址码为X和Z;增量编程时地址码为U和W。
2.1.6 数字单位英制与公制的转换
FANUC系统程序中的数值单位可以用G21/G20(表2⁃3中06组)指定,G21指定采用公制(毫米)输入;G20指定采用英制(英寸)输入。如果程序中不给出G21/G20指令,数控铣床开机后默认的单位是“G21”。G21/G20代码必须编在程序的开头,在设定坐标系之前以单独程序段指定。
2.1.7 小数点编程
一般数控机床数值的最小输入增量单位为0.001mm,小于最小输入增量单位的小数被舍去。当输入数字值是距离、时间或速度时可以使用小数点,称为小数点编程。下面地址可以指定小数点:X,Y,Z,U,V,W,A,B,C,I,J,K,Q,R和F。
FANUC系统程序中,对没写小数点的数值,默认单位是“μm”,如坐标“X200”,表示X值为200μm。如果数值中有小数点,数值单位则是“mm”,如“X0.2”,此坐标值的单位是“mm”,即0.2mm。X0.2与X200等效。
例如,X值为+30.012mm,Y值为-9.8mm时,以下几种表达方式表示是等效的:
① X30.012 Y-9.8 单位是mm
② X30012 Y-9800 单位是μm
③ X30.012 Y-9800 X值单位是mm,Y值单位是μm