首页 百科知识 主程序与子程序

主程序与子程序

时间:2022-10-29 百科知识 版权反馈
【摘要】:数控编程是针对数控机床编制的加工程序。数控加工程序是数控机床在加工中不可缺少的一部分,数控机床之所以能加工出各种形状、不同尺寸和精度的零件,就是因为编程人员为它编制了不同的加工程序。数控加工程序是有标准可循,有一定的格式要求的。APT语言式自动编程是用语言来编写源程序,由源程序通过计算机处理后自动生成加工程序。必要时还应填写数控加工工序卡片和数控刀具卡片等有关工艺文件。

1 数控编程基础

1.1 概述

数控编程是针对数控机床编制的加工程序。数控机床是近几十年来发展起来的一种新型自动化机床。它集机械制造、计算机、微电子、现代控制及精密测量等多种技术为一体,使传统的机械加工工艺发生了质的变化,使其整个加工过程实现自动化。近年来,各种数控机床的精确性、可靠性、集成性、柔性和宜人性等各方面功能越来越完善,它在机械行业的自动化加工领域中占有越来越重要的地位。

1.1.1 数控编程的概念

数控编程即数控加工程序的编制。数控加工程序是数控机床在加工中不可缺少的一部分,数控机床之所以能加工出各种形状、不同尺寸和精度的零件,就是因为编程人员为它编制了不同的加工程序。如图1.1所示,数控机床与普通机床最大的区别在于:普通机床是通过人工手动操纵机床手柄,为进给机构提供所需进给动力;数控机床则是由数控加工程序控制机床进给运动,即把数控加工程序送入数控机床的“指挥中心”——数控系统,再通过一个使数控机床执行运动的操作中心——伺服系统,从而带动进给机构使机床按数控加工程序的顺序自动加工。

图1.1 数控机床与普通机床的区别

数控加工程序就是把零件加工的工艺过程、工艺参数(进给速度和主轴转速等)、位移数据(几何形状和几何尺寸等)及开关命令(换刀、冷却液开/关和工件装卸等)等信息用数控系统规定的功能代码和格式按加工顺序编写成加工程序单,并记录在信息载体上,即制作成控制介质。

控制介质可以是:穿孔纸带、键盘、磁盘等各种可以记载二进制信息的媒体。通过数控机床的输入装置,将信息载体上的数控加工程序输入机床数控系统,从而指挥数控机床按数控程序的内容加工出合格的零件。

已知信息对应功能代码如表1.1所示,图1.2所示是在数控铣床上加工台阶零件时编写加工程序的过程。

表1.1 已知信息对应功能代码

图1.2 在数控铣床上加工台阶零件

假如,有加工任务:铣刀必须以1 200r/min的速度顺时针转动,快速运动到起点P1,铣刀垂直向下运行深至5mm,然后按一定的进给速度向右纵向铣削台阶面到P2点。

数控加工程序可写为:

数控加工程序是有标准可循,有一定的格式要求的。常用的是ISO标准(国际标准化组织标准)和EIA标准(美国工业电子协会标准)。数控程序编写得如何,直接影响零件加工质量。

1.1.2 数控编程的种类

数控编程一般分为手工编程和自动编程两种。

手工编程是由人工完成刀具轨迹计算及加工程序的编制工作。当零件形状不十分复杂或加工程序不太长时,采用手工编程方便、经济。手工编程目前仍然是被广泛采用的编程方法。先进的自动编程方法中,许多重要的经验都来源于手工编程,手工编程是自动编程的基础,并不断推进自动编程的发展。

自动编程是计算机通过自动编程软件完成对刀具运动轨迹的自动计算,自动生成加工程序并在计算机屏幕上动态地显示出刀具的加工轨迹。当加工零件形状复杂,特别是涉及三维立体形状或刀具运动轨迹计算烦琐时,通常采用自动编程。

自动编程分为APT语言式自动编程和图形交互式自动编程两种方式。APT语言式自动编程是用语言来编写源程序,由源程序通过计算机处理后自动生成加工程序。这种方法直观性差,编程过程较复杂,不易掌握;随着计算机图形处理功能的增强,由图形到数控加工程序的计算机辅助编程技术应运而生。CAD/CAM软件即可实现图形交互式自动编程。其速度快,精度高,直观性好,使用简便。目前常用的CAD/CAM软件有“UG”、“PRO-E”、“MASTERCAM”、“CAXA”等。

1.1.3 数控编程的内容与步骤

数控编程中手工编程的步骤一般分为以下几个过程:

1)分析零件图纸

拿到所要加工零件的图纸,首先应分析该零件的材料、形状、尺寸、精度以及毛坯形状和热处理要求等。其目的是选定在何种类型机床上进行加工。

2)确定加工工艺过程

在分析零件图纸的基础上,确定加工顺序、加工路线、装卡方法,选择刀具、工装以及切削用量等工艺参数。同时充分利用数控机床的指令功能特点,简化程序,缩短加工路线,充分发挥机床效能。

3)数值计算

根据已确定的加工路线和零件加工误差,计算出数控机床所需输入的数据。数值计算的复杂程度取决于零件的复杂程度和数控系统的功能。对于加工较简单的由圆弧与直线组成的平面零件,只需计算零件轮廓的相邻几何元素的交点或切点、起点、终点、圆弧的圆心坐标值或圆弧半径的坐标值。对于形状较复杂的零件并且组成该零件的几何元素与数控系统的插补功能不一致时,就需要较复杂的数值计算。例如对非圆曲线(如渐开线,阿基米德螺旋线等)需要用直线段或圆弧来逼近,在满足其精度要求的条件下计算出其节点坐标。对于这种情况,一般需采用计算机辅助计算。

4)编写程序单

加工路线、工艺参数及刀具运动轨迹的坐标值确定以后,编程人员可以根据数控系统具有的功能指令代码和程序段格式,编写加工程序单。必要时还应填写数控加工工序卡片和数控刀具卡片等有关工艺文件。

5)制作控制介质

制作控制介质就是把编写好的程序单上的内容记录在控制介质即信息载体上,通过数控机床的输入装置,将信息载体上的数控加工程序输入机床数控装置。

6)校验程序和首件试切

为了保证零件加工的正确性,数控程序必须经过校验和试切才能用于正式加工。一般通过图形显示和动态模拟功能或空走刀校验等方法以检查机床运动轨迹与动作的正确性。并通过对第一个零件的试切削,检验被加工零件的加工精度。若发现加工精度达不到要求时,应分析误差产生的原因,采取措施,加以纠正。

1.2 数控机床的坐标系统

在数控机床的编程中,为了便于描述机床运动,简化程序的编制,保证其通用性,数控机床的坐标和运动方向均已标准化,国际上采用ISO和EIA标准。我国采用JB3051—1999《数控机床坐标和运动方向的命名》标准。

1.2.1 数控机床标准坐标系的规定

1)标准坐标系的规定

为了精确控制机床移动部件的运动,需要在机床上建立一个坐标系,这个坐标系就叫标准坐标系,也叫机床坐标系。

数控机床的坐标系采用右手直角笛卡儿标准坐标系,如图1.3所示,坐标轴为X、Y、Z直角坐标,围绕X、Y、Z各轴的旋转运动轴为A、B、C。用右手直角笛卡儿坐标法则可判断X、Y、Z三轴的关系和正方向;用右手螺旋法则可判定三个直角坐标轴与A、B、C三个旋转轴的关系和A、B、C轴的正方向。当考虑刀具移动时,用X、Y、Z表示运动的正方向;当考虑工件移动时,则用X′、Y′、Z′表示运动的正方向。

图1.3 数控机床标准坐标系

2)坐标和运动方向命名的原则

这一原则规定,不论机床的具体结构是工件静止、刀具运动,还是工件运动、刀具静止,在编写程序时一律看成是刀具相对于静止的工件而运动。机床某一部件运动的正方向,是增大工件与刀具之间距离的方向。

1.2.2 数控机床直角坐标轴、旋转运动坐标轴、附加坐标轴的确定

1)数控机床直角坐标轴的确定

(1)Z轴坐标 由传递切削力的主轴所决定,规定为平行于机床主轴的坐标轴。如果机床有一系列主轴,则选尽可能垂直于工件装夹面的主要轴作为Z轴。Z轴的正方向是增大工件与刀具之间距离的方向,如图1.4所示。

图1.4 常见数控机床的坐标系

(2)X轴坐标 作为水平的、平行于工件装夹平面的轴,它平行于主要的切削方向。对于工件旋转运动的机床(如车床),X轴方向是指直径方向。正方向是增大工件与刀具之间距离的方向,如图1.4所示。

(3)Y轴坐标 垂直于X及Z坐标,当+X、+Z确定后,按右手直角坐标系确定,如图1.4所示。

2)旋转运动坐标轴的确定

旋转运动坐标轴A、B和C分别表示其轴线平行于X、Y、Z坐标的旋转运动。其正方向是按照右旋螺纹前进的方向。

3)附加坐标轴的确定

对于直线运动:X、Y、Z为主坐标系,或称第一坐标系。若有平行于X、Y、Z的第二组坐标和第三组坐标,则分别指定为U、V、W和P、Q、R。靠近主轴的直线运动为第一坐标系,稍远的为第二组坐标,如图1.5所示。

对于旋转运动:除A、B、C之外,若还有第二组坐标,则分别指定为D、E、F,如图1.6所示。

图1.5 数控双柱式立式车

图1.6 龙门移动式数控铣

1.2.3 机床坐标轴的运动与联动

数控机床的坐标运动由数控系统来控制。不同的数控系统控制的坐标轴数不同,数控系统可以控制坐标运动或坐标联动。坐标联动和坐标运动的概念不同,坐标联动是控制某几个坐标轴同时到达某个目标点,如数控车床是两轴联动,可控制X、Z坐标轴走直线或圆弧插补运动,使两轴同时到达某个目标点;坐标运动的概念是数控机床控制系统可以控制坐标运动,但不一定是坐标同时联动到达某个目标点。如一台数控加工中心控制X、Y、Z、A四轴运动,但只能X、Y、Z三轴联动同时到达某个目标,则称为四轴三联动。若X、Y、Z三轴坐标可以X、Y轴联动,Y、Z轴联动和X、Z轴联动时,称为两轴半联动。数控系统控制的坐标轴数越多,同时联动的轴越多,系统功能就越强,价格也就越昂贵。如图1.7所示叶轮零件必须用五轴联动的数控机床才能加工出来。图1.8所示的车削中心可以控制八个坐标轴运动,但不一定是八个坐标轴联动。

图1.7 叶轮加工图

图1.8 车削中心坐标轴示意图

1.3 数控的程序结构与格式

1.3.1 程序结构

数控加工程序是由若干程序段组成,程序段由一个或若干个指令字(如G01)组成。指令字代表某一信息单元,由地址符(如G)和数字(01)组成,它代表机床的一个位置或一个动作;地址符由字母组成,每一个字母、数字和符号都称为字符。一个完整的加工程序包括开始符、程序名、程序主体和程序结束指令。加工程序的结构如图1.9所示。

图1.9 加工程序的结构

起始为程序段序号功能字,随后为工艺和几何方面的功能字,段末以换行符或回车符结束。其中准备功能字(G)指定数控系统应准备好某种运动和工作方式;辅助功能字(M)指定数控系统在加工过程中的辅助开关量控制功能。例如某数控加工程序段如下:

N010 M03 S800 T01 M06 G01 X60 Y40 F60;

表示本程序段为第10段,主轴以转速800r/min顺时针方向旋转,换用1号刀具,机床运动部件以直线形式移动到X=60mm、Y=40mm的点,移动速度为60mm/min。

1.3.2 程序段格式

程序段格式是指程序段中字、字符和数据的安排形式。分为固定程序段格式和可变程序段格式。常用的是字地址可变程序段格式。这种格式的程序段由若干个字组成,字首是一个英文字母作为地址符。在此格式程序段中,上一段程序中已写明,本程序段又不必变化的那些字仍然有效,例如对于模态(时序有效)G指令(如G00、G01),若在前面程序段中已有则可不再重写。这种格式的程序段,每个字长不固定,各个程序段的长度和程序字的个数都是可变的。

如下两段程序,字数和字符的个数就相差很大:

N20 G01 X50 Y60 Z10 F60 M03 S600 T0101 M06;

N21X100;

第一个程序(N20段)也可写成:

N20 T0101 M06 M03 S600 G01 X50 Y60 Z10 F60;

或N20 M03 S600 G01 X50 Y60 Z10 F60 T010 1M06;

即同一程序段中各指令字的位置可以任意排列。但为了书写、输入、检查和校验方便,习惯按一定的顺序排列,如N、G、X、Y、Z、F、S、T、M顺序。

1.3.3 主程序与子程序

在程序中,若某一固定的加工操作重复出现时,可把这部分操作编写成子程序,然后根据需要调用,这样可使程序变得非常简单。调用第一层子程序的指令所在的加工程序叫做主程序。一个子程序调用语句,可以多次重复调用子程序。主程序与子程序的执行关系如下:

主程序执行到N0020时转去执行子程序,M98为子程序调用指令,P1010指令为被调用的子程序名,L2表示指令调用两次。子程序执行到N1060时跳出子程序,继续向后执行主程序,M99为子程序返回指令。

子程序可以由主程序调用,已被调用的子程序还可以调用其他子程序,这种方式称为子程序嵌套,子程序嵌套可达四次,其结构如图1.10所示。

图1.10 子程序嵌套

1.4 常用功能指令

常用的功能指令有准备功能(G功能)和辅助功能(M功能),另外还有进给功能(F功能),主轴转速功能(S功能)和刀具功能(T功能)等。准备功能和辅助功能描述了程序段的各种操作和运动特征,是程序段的主要组成部分。国际上已广泛使用ISO制定的G代码和M代码标准。我国也已制定了与ISO等效的JB/T3208—1999标准。

1.4.1 准备功能G指令

准备功能G指令又称G功能或G代码。该功能主要命令数控机床进行何种运动,为控制系统的插补运算作准备。

G代码由地址符G后跟两位数字组成,从G00至G99共100种。随着数控机床功能的增加,G00至G99已不够使用,有些数控系统的地址符G后已经使用三位数字。从目前国内生产的数控系统和使用的国外数控系统所用功能来看,只有一些常用的G指令按标准规定,具有一定的灵活性。因此用户在编程时必须依据机床系统说明书,不可张冠李戴。G指令的具体用法将在以下章节中具体讲述。

表1.2为我国制定的JB/T3208—1999标准规定的G代码定义,表序号(2)中的a、c、…、k、i各字母所对应的G代码称为模态代码(即时序有效代码)。它表示一旦被应用(如a组中的G01)就一直有效,且可省略不写,直到出现同组(a组)其他任一G代码(如G00)时才失效。其他c、d、f等各组同理。序号(3)中有“*”号的G代码为非模态代码,即只在本句有效,下一程序段需要时必须重写。序号(4)中的“不指定”代码用作将来修订标准时,有可能指定新的功能定义;“永不指定”代码,表示即使将来修订标准时,也不指定新的定义。

表1.2 准备功能G代码

注:(1)“#”号表示:如选作特殊用途,必须在程序格式说明中说明;
(2)如在直线切削控制中没有刀具补偿,则G43~G52可指定作其他用途;
(3)表中第(2)栏括号中的字母(d)表示:可以被同栏中没有括号的字母d所注销或代替,亦可被有括号的字母(d)所注销或代替;
(4)G45~G52的功能可用于机床上任意两个预定的坐标;
(5)控制机上没有G53~G59、G63功能时,可以指定作其他用途。

1.4.2 辅助功能M指令

辅助功能M指令又称M功能或M代码。该功能主要是为数控机床加工、操作而设定的工艺性指令。如主轴的正反转,冷却液的开关等。数控机床档次越高,M功能就用得越多。

M代码由地址符M后跟2位数字组成,从M00~M99共100种。表1.3为我国制定的JB/T3208—1999标准的M代码定义。

表1.3 辅助功能M代码

续表1.3

注:(1)“*”号表示:如选作特殊用途,必须在程序中说明。
(2)M90~M99可指定为特殊用途。

1)程序停止指令M00,M01,M02,M30

M00:为程序停止。在完成该程序段其他指令后,用以停止主轴转动、进给和切削液,以便执行某一固定的手动操作,如手动变速、手动换刀等。此后需重新启动才能继续执行以下程序。

M01:为计划(任选)停止。与M00相似,但必须经操作员预先按下操作面板上的任选停止按钮确认,这个指令才能生效,否则此指令不起作用,继续执行以下程序。

M02:为程序结束。放在最后一条程序段中,用以表示加工结束。它使主轴、进给、冷却都停止,并使数控系统处于复位状态。

M30:为纸带结束。M30除与M02的作用相同外,还可使程序返回至开始位置。

2)主轴控制指令M03,M04,M05

M03、M04、M05:分别命令主轴正转、反转和停转。所谓主轴正转是从主轴往正Z方向看去,主轴顺时针方向旋转。逆时针方向为反转。主轴停止旋转是在该程序段及其他指令执行完成后才停止。一般在主轴停止的同时,进行制动和关闭切削液。

3)换刀指令M06

M06:为换刀指令。常用于加工中心机床刀库换刀前的准备动作。

4)冷却液控制指令M07,M08,M09

M07、M08:分别命令2级冷却液(雾状)及1级冷却液(液状)开(冷却泵启动)。

M09:为冷却液关闭。

5)运动部件夹紧和松开指令M10,M11

M10、M11:为运动部件的夹紧及松开。

1.4.3 进给功能F指令

进给功能F指令又称F功能或F代码。它的功能是指令切削的进给速度。对于车床,可分为每分钟进给和主轴每转进给两种;对于车削以外的控制,一般用每分钟进给;在螺纹切削程序段中还用来指令螺纹导程。

1.4.4 主轴转速功能S指令

主轴转速功能S指令又称S功能或S代码。它用来指定主轴的转速。如M03S1200则表示主轴正转,转速为1 200r/min。对于中档以上的数控车床,还有一种恒线速度切削功能,即在切削过程中,当工件直径变化时主轴每分钟的转速也随之变化,这样就保证了切削速度不变,从而提高了切削质量。这时程序中的S指令是指车削加工的线速度。

1.4.5 刀具功能T指令

刀具功能T指令又称T功能或T代码。它的功能是用来指定加工时用的刀具号和刀偏号。当一个零件在进行加工时,需选择各种刀具,每把刀具都指定了特定的刀具号。若程序中指定了刀具号和刀偏号,便可进行自动换刀,选择相应的刀具和刀具偏置值。如T0101表示为1号刀,1号刀具偏置号。若T0100则表示取消刀具偏置补偿。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈