第2章 数控程序的编制
课时1 数控编程基础
一.数控编程的基本概念
数控加工程序:按规定的代码及格式,记录加工过程的全部信息(工艺过程、工艺参数、位置数据和方向、操作步骤等)的软件。
数控编程(NC programming) :简单说是从零件图纸到生成存储介质程序的全过程。根据零件图样,将零件的加工信息:加工顺序、零件轮廓轨迹尺寸、工艺参数(F、S、T)及辅助动作(变速、换刀、冷却启停、工件夹紧、松开等)等,用规定的文字、数字、符号组成的代码按一定的格式编写加工程序单,并将程序单的信息转换成控制介质的数据信息的整个过程。
二.数控编程的内容和步骤
1.分析图样、确定加工工艺过程
分析图样,根据零件的材料、形状、尺寸、精度、毛坯形状和热处理要求等确定加工方案,选择合适的数控机床。
确定加工工艺过程,主要考虑:确定加工方案,刀具、工夹具的设计和选择,选择对刀点,确定加工路线,确定切削用量等。
2.数值计算
按确定的加工路线和允许的零件加工误差,计算出输入数控装置的数据,主要内容是在规定的坐标系内计算零件轮廓和刀具运动轨迹的坐标值。
3.编写零件加工程序单
根据所使用数控系统的指令、程序段格式,逐段编写零件加工程序;
填写数控加工工艺文件,如工序卡片、刀具卡片等。
4.制备控制介质
将编制好的程序单上的内容记录在控制介质上作为数控装置的输入信息,常用有穿孔带、磁盘等,也可以直接通过数控装置上的键盘输入。
5.程序校验、试切削
空走刀、空运转画图检查机床运动轨迹与动作正确性;
零件的试切削检验加工精度、误差。
三.数控编程的方法
1.手工编程
手工完成程序编制的全部工作(包括用计算机进行辅助数值计算)。
特点:耗费时间长,易出现错误,无法胜任复杂形状零件的编程。
适用情况:几何形状较为简单零件,点位加工及由直线与圆弧组成的轮廓加工。
2.自动编程
在编程过程中,除了分析零件图样和制定工艺方案由人工进行外,其余工作均由计算机辅助完成,如坐标值计算、零件加工程序单的编写、自动输出加工程序单及制备控制介质等。
特点:计算机自动绘制出刀具中心运动轨迹,使编程人员可及时检查程序是否正确,并及时修改。计算机代替程序编制人员完成繁琐的数值计算,可提高编程效率几十倍乃至上百倍,解决手工编程无法完成的复杂零件的编程难题。
根据编程信息的输入与计算机处理信息的方式不同,分为语言式自动编程和以图形交互式自动编程。
适用情况:形状复杂零件,具有非圆曲线、列表曲线或曲面的零件。
四.编程的基本知识
1.零件加工程序的结构
1).程序的构成
零件加工程序由程序号(名)和若干个程序段组成。每个程序段又由程序段号和若干个指令字组成,每个指令字由字母、符号、数字组成。每段程序用;表示结束。程序段是数控程序的基本组成单元。
图2.2零件程序的结构
说明:
Ø 不同数控系统,程序号(名)地址码所用字符可不相同;
Ø 程序段以序号“N××××”开头,以“;”结束,一个程序段表示一个完整的加工工步或动作;
Ø 顺序号不是程序段的必用字,即可以使用顺序号,也可以不用顺序号;
Ø 建议不以0作为程序号(名),不用N0作为顺序号;
Ø 地址符N后面的数字应为正整数,最小顺序号为N1;
Ø 顺序号数字可以不连续使用,也不一定要从小到大使用;
Ø 对于整个程序,可以每个程序段都设顺序号,也可以只在部分程序段中设顺序号,还可以在整个程序中全不设定顺序号。
2).程序段格式
程序段格式是指一个程序段内指令字的排列顺序和表达方式,即程序段的书写规则,程序中的字、字符、数据的安排规则。程序段格式有三种:固定顺序程序段格式、带分隔符的固定顺序(也称表格顺序)程序段格式和字地址程序段格式。
目前广泛采用字地址程序段格式,也称地址符可变程序段格式。每一个程序段由顺序号字、准备功能字、尺寸字、进给功能字、主轴功能字、刀具功能字、辅助功能字和程序段结束符组成。每个字都由字母开头,称为“地址”。其特点:
Ø 程序段中的每个指令字均以字母(地址符)开始,其后再跟符号和数字。
Ø 指令字在程序段中的顺序无严格的规定,即可以任意顺序书写。
Ø 不需要的指令字或者与上段相同的续效代码可以省略不写。
Ø 这种格式虽然增加了地址译码环节,但程序直观、简单,可读性强,便于检查,可缩短穿孔带,广泛现在数控机床。
N0030 G01 X20 Y50 F150 S300 T12 M03;
字地址程序段格式:
N0030 G01 X20 Y50 F150 S300 T12 M03;
图2.3 程序段格式
国际标准和我国标准均推荐使用此种程序段格式。
3).主程序和子程序
数控程序分为主程序和子程序。
在加工程序中,如果几个连续的程序段在多处重复出现,就可将这些重复使用的程序段按规定的格式独立编号成子程序,输入到数控装置的子程序存储区中以备调用。
程序中子程序以外的部分称为主程序。在执行主程序的过程中,如果需要,可多次重复调用子程序。
子程序的格式:除有子程序名或子程序开头代码外,还要有子程序结束代码。其余部分与主程序相同。
图2.4 主程序和子程序调用过程
五.数控机床的坐标系
机床的运动:根据切削过程中所起的作用不同,切削运动分为主运动和进给运动。
主运动(Main movement):形成机床切削速度或消耗主要动力的工作运动。切下金属必须的最主要运动,速度最高,消耗机床功率最多。
进给运动(Feed movement):使工件的多余材料不断被去除的工作运动,使新的金属不断投入切削所需的运动。
切削过程中主运动只有一个,进给运动可以多于一个。主运动和进给运动可由刀具或工件分别完成,也可由刀具单独完成。进给运动系统,尤其是轮廓控制的进给运动系统,必须对进给运动的位置和速度两个方面同时实现自动控制,要求进给系统有较高的定位精度和良好的动态响应特性。
在数控机床上,机床的动作由数控装置来控制,为了确定数控机床上的成形运动和辅助运动,必须先确定机床上运动的位移和运动的方向,这就需要通过坐标系来实现,这个坐标系被称之为机床坐标系。例如铣床上,有机床的纵向运动、横向运动及垂直方向运动,在数控加工中就应该用机床坐标系来描述。
为了确定机床个运动部件的运动方向和移动距离,需要在机床上建立一个坐标系,即机床坐标系。
图2.5 数控铣床主体结构及坐标示意图
1.坐标轴及运动方向的规定
(1)直线进给和圆周进给坐标系
机床的一个直线进给运动或一个圆周进给运动定义一个坐标轴。
Ø 采用右手直角笛卡尔坐标系,直线进给运动(平移)用直角坐标系X、Y、Z表示,对应的圆周进给(旋转)用A、B、C表示。
Ø 机床的运动统一按工件静止而刀具相对于工件运动来描述。
Ø 以增大工件与刀具之间距离的方向(即增大工件尺寸的方向)为坐标轴的正方向。
右手直角笛卡儿坐标系

图2.6 右手笛卡尔数控机床坐标系示意图
(2)机床坐标系的确定方法
顺序:先确定Z轴,再确定X轴,最后确定Y轴。
1)Z坐标
将平行于机床主轴的刀具运动坐标定义为Z坐标。
所谓主轴是指产生切削动力的轴,例如铣床、钻床、镗床上的刀具旋转轴和车床上的工件旋转轴。
如果主轴能够摆动,即主轴轴线方向是变化的,则以主轴轴线垂直于机床工作台装卡面时的状态来定义Z轴。
对于Z轴的方向,规定以增大刀具与工件间距离的方向为Z轴的正方向。
2)X坐标
X轴为水平面方向,且垂直于Z轴并平行于工件装夹面。
对于不同类型的机床,X轴及其方向有具体的规定:
对于刀具旋转的机床,如铣床、钻床等,若Z轴是水平的(卧式),则X轴规定为从刀具主轴后端向工件方向看向右为正;若Z轴是垂直的(立式),则X轴规定为从刀具向立柱 (若有两个立柱则选左侧立柱)方向看向右为正。
对于工件旋转的机床,如车床,X轴在工件的径向,并平行于横向拖板,刀具离开工件旋转中心的方向是X轴的正方向。
3)Y坐标
Y轴垂直于X、Z坐标,及其方向根据X和Z轴按右手法则确定。
4)A、B、C坐标
A、B、C坐标分别为绕X、Y、Z坐标的回转进给运动坐标,确定X、Y、Z坐标的正方向后,可按右手螺旋定则来确定A、B、C坐标的正方向。
5)附加运动坐标
X、Y、Z为机床的主坐标系或称第一坐标系;如除第一坐标系以外还有平行于主坐标系的其它坐标系则称为附加坐标系。
附加的第二坐标系命名为U、V、W。
附加的第三坐标系命名为P、Q 、R。

图2.7 几种常见机床坐标系示意图
说明:
l 加工过程中不论是刀具移动还是工件移动,一律假定工件静止不动,而刀具在移动,并规定刀具远离工件的运动方向为坐标轴的正方向。编程人员在不知道机床加工时是刀具移动还是工件移动的情况下,可以根据零件图纸确定机床的加工工艺过程。
l 如果把刀具看作静止不动,工件移动,那么在坐标轴的字母上加“′” ;加“′”字母表示的工件运动正方向与不加“′” 表示的刀具运动正方向相反。
2.机床坐标系、工件坐标系(编程坐标系)
(1)机床坐标系与机床原点及机床参考点
n 机床坐标系是机床固有的坐标系,且具有唯一性。机床坐标系的原点称为机床原点(Machine Origin)或机床零点。
n 机床原点是在机床设计制造、装配调试时就已设置下来的固定点,是数控装置控制机床运动的基准参考点,也是数控机床进行位置测量、控制、显示的统一基准。机床原点是一个定义点不能直接测量,用户无修改权限。
n 数控车床的机床原点多定在主轴前端面的中心,数控铣床的机床原点多定在进给行程范围的正极限点处(X、Y、Z坐标轴的正方向极限位置处),但也有的设置在机床工作台中心,使用前可查阅机床用户手册。
n 机床坐标系是机床固有的坐标系统,它是通过操作刀具或工件返回机床零点M的方法建立的。但在大多数情况下,当已装好刀具和工件时,机床的零点已不能返回,因而需设参考点R。
n 机床参考点R是由机床制造厂家定义的一个点,R和M的坐标位置关系是固定的,其位置参数存放在数控系统中。当数控系统启动时,通过返回参考点R,从而建立机床坐标系。
n 参考点是用于对机床工作台(或滑板)与刀具相对运动的测量系统进行定标与控制的点,一般设定在各轴正向行程极限点的位置。该位置是在每个轴上用挡块和限位开关精确地预先调整好的,通常在数控铣床上机床原点和机床参考点是重合的;而在数控车床上机床参考点是离机床原点最远的极限点。
n 回参考点操作建立机床坐标系后,CNC机床的测量系统就可以在机床坐标系中对测量目标点进行追踪测量控制。通常,在没有任何偏置与补偿的情况下,数控车床坐标系的测量目标是刀架参考点;数控铣床坐标系的测量目标是主轴端面中心。
n 每次开机启动后,或当机床因意外断电、紧急制动等原因停机而重新启动时,都应该先让各轴返回参考点,进行一次位置校准,测量系统置零,以消除上次运动所带来的位置误差,之后测量系统即可以以参考点作为基准,随时测量运动部件的位置。“回零操作”
n 机床坐标系一般不作为编程坐标系,仅作为工件坐标系的参考坐标系。
图2.8 机床原点与参考点之关系
图2.9 数控机床四个点的关系
(2)工件坐标系(编程坐标系)和工件原点
n 工件坐标系是编程人员在编程时使用的,由编程人员以工件图纸上的某一固定点为原点(也称工件原点)所建立的坐标系,编程尺寸都按工件坐标系中的尺寸确定,也称编程坐标系。工件坐标系的各坐标轴与机床坐标系相应的坐标轴平行。
n 在对零件图进行编程计算时,必须要建立用于编程的坐标系,其坐标原点即为程序原点。而要把程序应用到机床上,必须让机床的数控系统知道程序原点在机床坐标系中的坐标,这些需通过”对刀操作”完成。编程坐标系在机床上就表现为工件坐标系,坐标原点就称之为工件原点。
工件原点一般按如下原则选取:
Ø 工件原点选在工件图样的尺寸基础上;
Ø 能使工件方便地装夹、测量和检验;
Ø 工件原点尽量选在尺寸精度高、粗糙度较细的工件表面上;
Ø 对于有对称形状的几何零件,工件零件最好选在对称中心上。
车床的工件原点一般设在主轴中心线上,多定在工件的左端面或右端面;铣床的工件原点一般设在工件外轮廓的某一角上或工件对称中心处,进刀深度方向上的零点大多取工件上表面。
对于形状较复杂的工件,有时为编程方便可根据需要通过相应的程序指令随时改变新的工件坐标原点;对于在一个工作台上装夹加工多个工件的情况,在机床功能允许的条件下,可分别设定编程原点独立地编程,再通过工件原点预置的方法在机床上分别设定各自的工件坐标系。
(3)机床坐标系与工件坐标系的关系
n 通常,工件坐标系的坐标轴与机床坐标系相应的坐标轴相平行,方向相同,但原点不同。
n 在加工中,工件随夹具在机床上安装后,要测量工件原点与机床原点之间的坐标距离,这个距离称为工件原点偏置,这个偏置值需预置到数控系统中。在加工时,工件原点预置值使能自动加到工件坐标系上,使数控系统可按机床坐标系确定加工时的坐标值。
3.绝对坐标系与相对坐标系
(1)绝对坐标系
所有坐标值均从坐标原点计量的坐标系,所用的编程指令称为绝对指令。绝对坐标常用X、Y、Z代码表示。
(2)增量坐标系
运动轨迹的终点坐标值相对于起点计量的坐标系,其坐标原点是移动的,所用的编程指令称为增量指令。增量坐标常用U、V、W代码表示。
说明:同样的加工轨迹,既可用绝对编程也可用相对编程,或者二者混用;采用恰当的编程方式,可以大大简化程序的编写。因此,实际编程时应根据使用状况选用合适的编程方式。
图2.10 绝对于相对坐标关系
例:如图加工直线AB,
在绝对坐标系中表示B点坐标值:
XB=30,YB=50;
在增量坐标系中表示B点坐标值为:
UB=20,VB=30
4.最小设定单位与编程尺寸的表示法
(1)最小设定单位
机床的最小设定单位即数控系统能实现的最小位移量,称脉冲当量(0.01-0.0001㎜)。
(2)编程尺寸的两种表示法
1)以最小设定单位为最小单位来表示;
2)以毫米为单位,以有效位小数来表示。
例:X=524.295㎜,Y=36.52㎜,最小设定单位为0.01㎜,
则:
1)最小设定单位表示:X52430 Z3652
2)毫米表示:X524.30 Z36.52
说明:以上两种方法都有应用,具体情况视具体机床而定。
六.功能代码简介
1.准备功能G指令(Preparatory Function)
n 使机床或数控系统建立起某种加工方式的指令。在数控系统插补运算之前或进行加工之前需要预先设定,为插补运算或某种加工方式作好准备的指令,如刀具沿那个坐标平面运动,是直线插补还是圆弧插补,是在直角坐标系下还是极坐标系下等。
G代码构成:
地址码G后跟2位数字组成,从G00-G99共100种。
(1)模态指令(续效指令):是指该指令一旦在某程序段中被使用,将一直保持有效到被同组的其它指令取代(或注销),或整个程序结束为止。由此可知:
①同组指令在一个程序段中只能出现一个,否则只有最后的代码有效。
②模态指令只需在使用时指定一次即可,而不必在
后续的程序段中重复指定。
(2)非模态指令(非续效指令):是指该指令仅在使用它的某程序段中有效。若需继续使用该功能则必须在后续的程序段中重新指定。
2.辅助功能M指令 (Miscellaneous Function)
功能:这类指令与数控系统插补运算无关,而是根据操作机床的需要予以规定的工艺指令,用于控制机床的辅助动作,主要用于机床加工操作时的工艺性指令,如主轴正反转、冷却液的开停、工件的夹紧松开等,也有续效指令和非续效指令。
(1)程序停止指令(M00)
是一个暂停指令。程序运行停止后,模态信息全部被保存,利用机床的“启动”键,可使机床继续运转。常用于加工过程中测量工件的尺寸、工件调头、手动变速等固定操作。
(2)选择停止指令(M01)
作用和M00相似,但它必须是在预先按下操作面板上的“选择停止”按钮并执行到M01指令的情况下,才会停止执行程序。如果不按下“选择停止”按钮,M01指令无效,程序继续执行。该指令常用于工件关键性尺寸的停机抽样检查或临时停车的场合等,当检查完毕后,按“启动”键可继续执行以后的程序。
(3)程序结束指令(M02)
当全部程序结束后,用此指令可使主轴、进给及切削液全部停止并使机床复位,位于最后一个程序段。
(4)与主轴有关的指令(M03、M04、M05)
M03表示主轴正转,M04表示主轴反转。所谓主轴正转,是从主轴向Z轴正向看,主轴顺时针转动;而反转时,观察到的转向则相反。M05为主轴停止。
(5)换刀指令(M06)
手动或自动换刀指令。它不包括刀具选择功能,常用于加工中心换刀前的准备工作。
(6)与切削液有关的指令(M07、M08、M09)
M07、M08为切削液开,M09为切削液关。
(7)程序结束指令(M30)
M30与M02基本相同,但M30能自动返回程序起始位置,为加工下一个工件作好准备。
3. F、S、T指令
(1)进给速度指令(F)(Feed Function)
进给速度指令用字母F及其后面的若干位数字来表示,单位为mm/min或mm/r。例如,F150表示进给速度为150mm/min。
(2)主轴转速指令(S) (Spindle Function)
用字母S及其后面的若干位数字来表示,单位为r/min。例如,S300表示主轴转速为300r/min。
(3)刀具功能指令(T)(Tool Function)
在自动换刀的数控机床中,该指令用以选择所需的刀具号和刀补号。刀具可以用字母T及其后面的两位或四位数字表示。如T06表示6号刀具,T0602表示6号刀具选用2号刀补号。

