第三节 数控编程
数控机床加工时所需全部信息是指零件的图样尺寸、工艺过程、工艺参数、刀具位移量与方向及其他辅助动作(换刀、冷却和夹紧等)的总和,这些信息是按规定的代码及格式(数控语言)编成加工程序单,并把程序单的内容记录在控制介质上,输入到控制装置来实现数控加工的。数控编程是指从零件图样到控制介质的过程。
一、数控机床坐标系数控编程中的坐标系
(一)机床坐标系
在数控机床上加工零件时,刀具与工件的相对运动必须在确定的坐标系中,才能按照规定的程序进行加工,这一坐标系称为机床坐标系,用XmYmZ标示。统一规定数控机床坐标轴名称及其运动的正、负方向,有利于编程的统一和交流。我国制定了《数控机床坐标和运动方向的命名》 (JB3051—82)数控标准,它与国际标准(ISO841)等效。
标准中规定了以右手直角笛卡尔坐标系作为标准坐标系(如图10-9所示)。该坐标系中,三坐标X、 Y、 Z的关系及其正方向用右手定则判定;围绕X、Y、Z各轴的回转运动及其正方向+A、 +B、 +C,分别用右螺旋法则判定。与以上正方向相反的方向应用带“'”的+X'、 +A'……来表示。其规定的原则如下:

图10-9 右手直角笛卡尔坐标系
1.刀具相对于静止的工件运动原则 编程人员能够在不知道是刀具移近工件,还是工件移近刀具的情况下就能依据零件图纸编程。
2.运动部件方向的规定 机床某一运动部件的运动正方向,是刀具和工件距离增大的方向。X坐标轴水平,它平行于工件的装夹表面,是刀具或工件定位平面内运动的主要坐标;Z坐标轴与主轴平行,切入工件的方向为负方向;Y坐标轴垂直于X及Z坐标轴,按右手定则确定方向。
如图10-10、图10-11分别为数控车床和数控铣床的标准坐标系。

图10-10 数控车床的标准坐标系

图10-11 数控铣床的标准坐标系
(二)工件坐标系
工件坐标系是编程时使用的坐标系,是编程人员根据零件图样及加工工艺等建立的坐标系,所以又称为编程坐标系,用XwYwZw标示。数控编程时,应该首先确定工件坐标系和工件原点。
工件原点:零件在设计中有设计基准。在加工过程中有工艺基准,同时要尽量将工艺基准与设计基准统一,该基准点通常称为工件原点,数控车削加工时的工件原点通常如图10-12所示。

图10-12 数控车削工作原点

图10-13 工件坐标系
图10-12工作原点工件坐标系:以工件原点为坐标原点建立的直角坐标系,称为工件坐标系。工件坐标系是人为设定的依据是符合图样要求,从理论上讲,工件原点选在任何位置都是可以的,但实际上,为了编程方便以及各尺寸较为直观,应尽量把工件原点的位置选得合理些。
(三)工作坐标系
1.工作坐标系的基本概念 通常机床坐标系和工件坐标系时相互独立的,编程时依据工件坐标系,加工时依据机床坐标系,加工就是将通过工件坐标系编制的程序在机床上运行,就要保持与机床坐标系的一致,因此引入工作坐标系,用XYZ标示,工作坐标系是机床坐标系和工件坐标系连接的桥梁,这三个坐标系的关系如下式所示:
![]()
因此工作坐标系实际上是机床坐标系和工件坐标系之间的差值,如图10-14所示。

图10-14 工作坐标系
2.工作坐标系的建立(找正对刀) 由式10-1可以看出工作坐标系实际上是机床坐标系相对工件坐标系偏置,因此可以利用如下方法得到工作坐标系。
找正将工件毛坯安装在工作台上,并找出相对于工件坐标系XwYwZw的点、线、面等要素,将百分表安装在机床主轴上,表的测头顶在代表工件坐标方向的相关面上,沿机床坐标系的方向运动,发现表的指针在不断转动,调整工件在工作台上的位置,直至表针相对静止,表明机床坐标系和工件坐标系已经相互平行,这一工作称为找正,如图10-15所示。

图10-15 找正

图10-16 对刀

图10-17 工作坐标系原理
在找正后,按式10—1建立工作坐标系如图10-16所示,具体做法是:首先将对刀用的对刀器安装在机床主轴上,然后低速转动主轴, 由于对刀器由上下两部分组成,此时可以看到对刀器上下不同心,将对刀器移动至代表工件坐标的平面(侧面)处,将对刀器的下部分圆柱与其接触,并慢慢相向运动,此时可以看见对刀器上下圆柱具有同心的趋势,但上下同心时记下此时的机床坐标,并输入到机床的控制系统中,就找出了机床坐标系与工件坐标系之间的差值,即建立了工作坐标系如图10-17所示。
二、数控的插补原理
在数控机床上加工零件时, 由伺服系统接受数控装置送来的指令脉冲,并将其转化为执行件(工作台或刀架)的位移。每一个脉冲可使执行件沿指令要求的方向走过一小段直线距离(0.01~0.001mm),这个距离称为“脉冲当量”。加工时执行件沿每个坐标的运动都是根据脉冲当量一步一步完成的,因此执行件的运动轨迹是一条折线。为保证执行件以一定的折线轨迹逼近所加工的零件轮廓(曲线或曲面),必须根据被加工零件的要求准确地向各坐标分配和发送指令脉冲信号,这个分配指令脉冲信号的方法称为“插补”。
插补运算就是数控装置根据输入的基本数据(直线的起点和终点坐标值,圆弧的起点、圆心、半径和终点坐标值),计算出一系列中间加工点的坐标值(数据密化),使执行件在两点之间的运动轨迹与被加工零件的廓形相近似。
数控系统的主要问题是根据插补运算去控制刀具或工件的运动轨迹。这种运动轨迹可以是平面曲线,也可以是空间曲线。凡是能用数学函数表达的任意曲线均可用无数小段的直线、圆弧和小平面来拟合。在两坐标联动的数控机床中,插补运算主要有直线、圆弧插补两种,在三坐标联动的数控机床中还有平面插补运算。
数控机床中常用的插补运算方法有逐点比较法、数字积分法和时间分割法等。 目前国内普遍采用的是逐点比较法。
1.逐点比较法直线插补原理 要在XOY平面中加工斜直线OA(如图10-18所示),刀具(或工件)并不是从O点沿OA走到A点,而是沿O→1→2→3→…A的顺序逼近OA。即先沿X坐标走一步到1点,再沿Y坐标走一步到2点……沿阶梯形折线走完全程。只要折线与直线的最大偏差不超过加工精度允许的范围,就可将该折线近似为直线OA。显然折线线段长的加工误差大;反之,则逼近程度好,加工误差小。即用加密折线来插补所要加工的直线(缩短“步距”),可提高加工精度。同理,数控机床的脉冲当量越小,加工精度越高。
数控装置具有偏差判别等一系列逻辑功能,其作用是:当加工点在直线下方,即偏差值F<0时(F为该点与O点连线的斜率与OA线斜率的差值),就向+Y方向前进一步;当加工点在直线上或直线上方时(F≥0),沿+X方向进给一步。每走一步都与OA线进行比较(判别加工点对规定轮廓的偏离位置),并对其偏差值进行计算以决定走向,直到终点。
2.逐点比较法圆弧插补原理 圆弧插补与直线插补原理相同(如图10-19所示)。当加工点在AB圆弧上或圆弧外侧时(F≥0),沿-X方向进给一步;当F<0时,沿+Y方向前进一步,直到终点。

图10-18 直线插

图10-19 圆弧插
三、数控编程方法
数控编程分为手工编程和自动编程两大类。
1.手工编程 手工编程是指从分析零件图,确定加工工艺,运动轨迹的坐标计算,编写加工程序,制作控制介质及校对程序的全过程均由手工完成的编程方法(如图10-20所示)。

图10-20 手工编程的过程
手工编程经济、便捷,适于点位控制的形状简单零件,如直线与圆弧组成的轮廓零件。
数控编程中的有关代码、坐标系统、加工指令、辅助功能及程序格式等,都有一定的标准。 目前通用的标准有ISO(国际标准化组织)标准(如表10-1所示)和EIA(美国电子工业协会)标准。我国在JB3208-83标准中已规定了准备功能G代码(如表10-2所示)和辅助功能M代码(如表10-3所示)。从表中可看出,有些代码的功能未指定,加上有的数控机床生产厂家甚至不按标准自行指定代码功能,使得各类数控机床使用的指令、代码含义不完全相同。因此,编程时要按照数控机床使用手册的具体规定进行。
表10-1 数控机床用ISO编码表

续表

表10-2 准备功能G代码(JB3208-83)

续表

表10-3 辅助功能M代码(JB3208—83)

续表

下面介绍一些常用的编辑功能代码。
(1)准备功能代码(G代码) 准备功能代码的作用是指定数控机床的运动方式,为数控系统的插补运算做好准备。G代码从G00到G99共有100种,通常位于程序段的坐标指令的前面。
①快速点定位指令G00本指令可使刀具快速移动到所需位置上,一般作为空行程运动。
例N10 G00 X45 Y120 Z60; [注:第10号程序段,将刀具快速移动到点(45,120, 60)] 。
②直线插补指令G01本指令可使刀具沿直线移动到所需位置,一般作为直线切削指令。
例N20 G01 X45 Z60 F12;[注:第20号程序段,将刀具以12mm/min的速度直线移动到X坐标为45, Z坐标为60, Y坐标不变的点]。
③圆弧插补指令G02、 G03本指令可使刀具作圆弧切削运动,G02为顺时针圆弧,G03为逆时针圆弧。知道圆弧的圆心和起点、终点即可编制程序。
例N30 G02 X45 Z60 I—70 K25 F30;[注:第30号程序段,刀具沿圆弧进行切削加工,圆心坐标为(I-70 K25) (以圆弧起点为原点的圆心的相对坐标,与X、 Y、 Z相对应分别用I、 J、 K表示),圆弧终点坐标为(X45, Z60)]。
(2)辅助功能代码(M代码) 辅助功能代码是用于机床加工操作时的工艺性指令。M代码从M00到M99共有100种。
①程序结束指令M02表示程序结束。
②主轴停止指令M05表示让主轴停止。
③子程序调用指令M98,子程序返回指令M99。
M98执行后就调用P指令的子程序,开始执行子程序。在子程序的最后应是子程序返回指令M99,程序执行到此即返回主程序继续执行。
例……

![]()
(3)进给功能代码(F代码)F代码后跟一个数字表示进给速度的大小(一般以mm/min来表示)
(4)主轴速度功能代码(S代码)S代码后跟一个数码表示主轴速度的大小(一般以r/min来表示)
(5)刀具功能代码(T代码)T代码常与换刀(M06)辅助功能同时使用,同时也用来为新刀具寻址。
2.自动编程 自动编程是利用计算机把输入的零件图纸信息改写成数控机床能执行的数控加工程序,即数控编程的大部分工作由计算机来完成。编程人员只需根据零件图纸及工艺要求,使用规定的数控编程语言编写一个较简短的零件程序,并将其输入计算机(或编程机),计算机(或编程机) 自行处理,计算出刀具中心轨迹,输出零件数控加工程序。与手工编程相比,可以减轻编程的劳动强度,缩短编程时间,提高编程质量,有效地解决各种模具及复杂零件的加工问题,大大提高了数控机床的利用率,降低了制造成本,减少了开发新产品的时间。
自动编程根据编程信息的输入和计算机对信息的处理方式不同,可分为语言输入式和图形交互式两类。
语言输入式自动编程是指编程人员将全部加工内容用数控语言编写好零件源程序,输入计算机进行处理,改写成可直接用于数控机床的NC加工程序的编程方法。其过程分为编写零件源程序、计算机自动编程加工程序和加工程序的输入三个阶段(如图10-21所示)。 目前国内外可利用的自动编程语言很多,最基本且应用最广的是APT (Automatically Programmed Tool)语言。

图10-21 语言输入式自动编程过程
图形交互式自动编程是指编程人员利用自动编程软件中辅助设计(CAD)的功能,以人机对话的方式,在CRT显示器上画出零件图形,再利用软件的CAM功能,改写成NC加工程序的编程方法。其过程分为几何造型、刀具路径的产生和后置处理(形成数控加工文件)三个阶段。 目前国内外有许多优秀的自动编程软件(CAD/CAM),主要有:CAXA—ME是由我国北航海尔软件有限公司自主研制的,基于微机平台的,面向机械制造业的全中文三维复杂型面加工的CAD/CAM软件;Master CAM是由美国CNC software公司开发的微机版CAD/CAM软件;UG (Unigraphics)及Solid Edge是由美国麦道航空公司开发的较完整的CAD/CAE/CAM/PDM系统软件;Pre/E是由美国PTC公司开发的大型CAD/CAM/CAE集成软件。其中Pre/E和UG一般在大型工厂使用,Master CAM大多用于中小工厂的模具制造,它们均已广泛地应用于机械制造工业、汽车工业、航空工业、造船工业、摩托车行业以及家电工业。
四、数控程序的结构与格式
1.程序的结构 一个完整的程序是由程序号、程序内容和程序结束三部分组成。

(1)程序号 程序号为程序的开始部分,作为程序的开始标记,供在数控装置存储器中的程序目录中查找、调用。程序号由地址码(如%或O)和四位编号数字(1~9999)组成。
(2)程序内容 程序内容是整个程序的主要部分, 由许多程序段组成,每个程序段由若干个字组成。每个字又是由地址码和若干个数字组成。在程序中能做指令的最小单位是字。
(3)程序结束 程序结束一般用辅助功能代码M02(程序结束)和M30(程序结束,返回起点)等来表示。
常用的地址码及其含义如表10-4所示。
表10-4 常用的地址码

续表

2.程序段的格式 程序段的格式是指一个程序段中的字、字符和数据的书写规则。 目前常用的是字地址可变程序段格式。程序段应包括机床所要求执行的功能和运动所需要的所有几何数据和工艺数据,其格式为:N_G_X_Y_Z_……F_S_T_M_LF
五、程序编制中的坐标系
1.零件坐标系
在编程时,应该首先在零件图上设定零件坐标系和坐标原点。为使编程方便及各尺寸较为直观,坐标原点应尽量设置在工艺基准与设计基准上。
零件坐标系是用来确定刀具和程序起点的,即对刀点和起始点。对刀点是数控加工中刀具相对于工件运动的起点。 由于加工也是从这一点开始执行,所以对刀点也可称为加工起点。对刀的目的是确定程序原点在机床坐标系中的位置。对刀点可以设在零件上、夹具上或机床上,但必须与程序原点有确定的坐标联系。当对刀精度要求较高时,对刀点应尽量选在零件的设计基准或工艺基准上。对于以孔定位的零件,可以取孔的中心作为对刀点。
对刀时应使对刀点与刀位点重合。刀位点是指确定刀具位置的基准点。换刀点应根据工序内容安排。为了防止换刀时刀具碰伤工件,换刀点常设在零件的外面。
2.绝对坐标系与增量(相对)坐标系
在具体编程时,标准坐标系又可分为绝对坐标系和增量坐标系两种。
(1)绝对坐标系 绝对坐标系是指刀具(或机床)运动位置的坐标值是对于设定的坐标原点为基准给出的值,用X、 Y、 Z来表示。
(2)增量坐标系 增量坐标系是指刀具(或机床)运动位置的坐标值是相对于前一位置(或起点)来计算的,用U、 V、 W来表示。该坐标系实际上是以刀具在上一点的位置作为它的坐标原点。