您好,欢迎来到微智科技网。
搜索
您的当前位置:首页《FANUC系统数控编程》讲义

《FANUC系统数控编程》讲义

来源:微智科技网
第1章 数控编程概述

1.1 数控程序编制的基本概念

数控机床是按照事先编制好的零件加工程序自动地对工件进行加工的高效自动化设备。 编程人员,根据加工的工艺路线、工艺参数、刀具的运动轨迹、位移量、切削参数(主轴转速、进給量、吃刀量等)以及辅助功能(换刀、主轴正转、反转、切削液开、关等),按照数控机床规定的指令代码及程序格式编写成加工程序,将程序存储在控制介质上(如穿孔纸袋、磁带、磁盘),输入到数控机床的数控装置中,从而指挥机床动作,加工出零件。这种从零件图的分析到制成控制介质的全过程叫数控程序的编制。

一、数控编程的内容及步骤

数控编程的主要内容有:分析零件图样、工艺处理、数值计算、编写程序、校验程序及首件试切。

图1-1 数控编程的步骤

零件图 确定加工工艺过程分析零件图数值计算编写程序单首件试切程序校验数控机床 1. 分析零件图样

根据加工零件的图纸和技术文件,对零件对结构形状、尺寸精度、形状精度、基准、表面粗糙度、毛坯种类、件数、材料及热处理等项目进行分析。

2.工艺处理

拟定加工工艺方案,确定加工方法、加工路线与余量的分配、定位加紧方式、选择机床、刀具、切削用量等。

3.数值计算

根据零件的几何尺寸、工艺路线和坐标原点的位置,计算各加工轨迹点的坐标值、数值换算、尺寸链解算、辅助计算。对于复杂的曲线和曲面,一般使用计算机辅助计算。

1

4.编写零件加工程序

根据确定的加工路线、刀位数据、切削用量、辅助动作及数据计算的结果,按照数控机床规定的指令代码和程序段格式,逐段编写加工程序。此外,还应填写相关的工艺文件,如数控加工工序单、数控刀具清单、工件安装和编程原点设置单等。

5.程序校验与首件试切

程序校验首先要检查程序运动轨迹和控制数控机床的各种辅助动作的正误。程序在数控机床上空运行,通过观察CRT图形显示屏或观察数控机床的动作来检查程序。其次,进行零件的首件试切,加工出一个零件,观察切削用量、断削效果等,测量其尺寸精度和表面精度,根据零件的实际情况,对程序进行调整确定。

二、程序编制的方法

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

手工编程就是由人工编写零件的加工程序。适用于加工形状不太复杂,计算比较简单,程序段较短的零件。

1. 自动编程

人工制定工艺方案后,由计算机完成包括数学处理、编写程序单、程序校验等工作。目前常用CAD/CAM软件实现自动编程。适合大容量、立体复杂的零件。可简化计算,减少耗时与出错率。

三、程序的结构与格式

加工程序是一系列指令有序的集合。通过这些指令,使刀具按直线、圆弧或其它曲线运动,以完成切削加工,同时控制主轴的正反转、停止,切削液的开关,自动换刀装置的运动等。

数控编程系统主要有两种,FANUC系统和SIEMENS系统。每种系统根据系统本身的特点及编程的需要,都有一定的程序格式。同一系统不同的数控机床,其程序格式与指令格式也有差异。编程人员要按所用数控机床说明书的规定格式编写程序。本书以FANUC编程系统为版本编写。

1.程序的结构

一个完整的程序由程序号、程序内容和程序结束组成。

O1111 程序号 N10 G92 X100 Y200; N20 G90 G00 X50 Y60;

N30 G01 X10 Y50 Z-5 F150 S300 T12 M03; N120 G00 X-50 Y-60;

程序结束

2

程序内容

…………………………………………………. N130 M02; (1)程序号

程序号即为程序开始的标识。为了区分存储器里的程序,每个程序都要有程序编号,一般由四位数字组成,在编号前采用程序编号地址符。在FANUC系统中,数控车床用英文字母“O”作为程序编号的地址符,数控铣床(加工中心)用“%”作为程序编号的地址符。

(2)程序内容

程序内容是整个程序的核心,它由若干个程序段组成,每个程序段由若干个指令字组成,每个指令由地址符和数字组成。

(3)程序结束

程序以程序结束指令M02或M30来结束整个程序。 2.程序段格式

程序段由程序段号开始,中间有若干个指令字,由程序段结束符结束程序段。程序指令字由地址符和数字组成,地址符由英文字母A~Z表示,常见程序段的格式见表1-1。常用地址符的含义见表1-2。

例:N30 G01 X10 Y50 Z-5 F150 S300 T12 M03 ; 程序段结束符 表1-1 常见程序段的格式

N 程序段号

G 准备功能

X

Y 坐标字

Z

F 进给量

S 主轴转速

T 刀具功能

M 辅助功能

LF 结束符

程序段号 程序指令

(1)程序段号(N)

程序段号为程序段的编号,由地址符N和后面的若干位数字组成。程序段号的主要作用是便于编程人员编辑修改程序时查找程序段位于程序中的位置,程序段号编号数字的大小与程序执行顺序无关。程序段号可以省略不写。

(2)准备功能(G代码)

建立机床或控制系统工作方式的一种命令。用于指定坐标、定位方式、插补方式、加工螺纹、各种固定循环等功能。用地址符G和数字表示,一般从G00—G99。

(3)坐标

指定刀具运动的坐标位置。用地址符和数字表示,常用的地址符X、Y、Z、 U、V、W、A、B、C、I、J、K、R,其主要含义见表1-2。数字的最小设定单位0.001。

(4)进给功能(进给量)

切削时刀具中心的进给速度。用地址字F和数字表示,有两种单位毫米/分钟(mm/min ) 和毫米/转(mm/r)。

3

(5)主轴转速功能

指定机床主轴的旋转速度。用地址符S和数字表示,单位为转/分钟(r/min)。 (6)刀具功能

指定刀具号及刀补号。用地址符T和数字表示,数控车床的格式为T**** (四位数字,前两位为刀具号,后两位为刀补号),数控加工中心的格式为T**(两位刀具号)。

(7)辅助功能(M代码)

控制机车辅助装置的开关,机床辅助动作及状态。如主轴的正反转、冷却液的开关、工件的加紧和松开等。用地址符M和两位数字表示。

(8)程序段结束符

程序段结束符数控有“;”、 “回车”等。

表1-2 常用地址符主要含义

地址符 O、% N G X、Y、Z

坐 标 字

U、V、W A、B、C I、J、K R F S T M D、H P L Q

意义 程序号 程序段号 准备功能

X、Y、Z方向的绝对坐标 X、Y、Z方向的相对坐标 绕X、Y、Z方向的旋转轴的坐标

圆弧中心坐标 圆弧半径/固定循环参数

进給速度 主轴转速 刀具功能 辅助功能

刀具半径补偿、刀具长度补偿 指定子程序号/暂停时间/固定循环参数

子程序循环次数 固定循环参数

1.2 数控编程的基础知识

一、数控机床坐标系和运动方向

规定数控机床坐标轴及运动方向,是为了准确地描述机床的运动,简化程序的编制方法,并使程序间有互换性。对此,国际标准化组织已统一了标准坐标系,我国也有相应的国家标准,

4

对数控机床的坐标和运动方向做了明文规定。

1. 坐标和运动方向命名原则

不论机床的具体结构是加工零件时是工件移向刀具,还是刀具移向工件。特规定:数控机床的坐标运动均假定刀具相对于静止的工件坐标系而运动。

2.标准坐标系的规定

数控机床上的坐标系是右手直角笛卡尔坐标系。基本坐标轴为X、Y、Z三轴,大拇指的方向是X的正方向,食指的方向是Y的正方向,中指的方向是Z的正方向。如图1-2所示。

图1-2 右手直角笛卡尔坐标系

3.运动方向的确定

刀具远离工件的方向为坐标轴的正方向。 (1)Z轴

与传递切削力的机床主轴轴线方向平行的方向为Z坐标轴的方向。 (2)X轴

X轴是水平的,它平行于工件的装卡面。对于工件旋转的机床(如车床、磨床等),X轴的方向在工件的径向上,且平行于横滑座。

5

(3)Y轴

根据X轴和Z轴的方向,按右手直角笛卡尔坐标系来确定。 卧式车床和立式铣床的坐标轴方向,如图1-3所示。

卧式车床 立式铣床

图1-3 卧式车床和立式铣床的坐标轴方向

二、坐标原点

数控机床上有三类坐标原点,机床原点、机械原点和工件原点。

1.机床原点

机床原点也称为机床零位。它的位置由机床制造厂确定。 2.机械原点(零点、参考点)

确定机床坐标系位置的一个固定点。其位置在机床各坐标轴的正向最大极限处。该点一般为进给位置反馈的基准点。机床开机后,都要先做回零点的操作,以完成各坐标轴的归零位置调整工作。

3.工件原点(编程原点)

确定工件坐标系的位置。编程时在工件图样上选取,尽量与设计基准或工艺基准重合,以方便取得数据,以此形成工件(编程)坐标系。

6

三、绝对坐标和增量(相对)坐标

在数控加工过程中,有两种方法指令刀具的移动,绝对值指令和增量值指令。在绝对值指令中,用终点位置的坐标值编程;在增量值指令中,用移动距离编程。

1.绝对坐标

刀具(或机床)运动轨迹的坐标值是相对于坐标原点的坐标值。 2.增量(相对)坐标

刀具(或机床)运动轨迹的坐标值是相对于前一位置的坐标值。 3.绝对坐标和增量坐标模式的确定

不同的机床,指定绝对坐标和增量坐标模式的指令格式不同,主要是两种系统,如表1-3所示。

表1-3 绝对坐标或者增量坐标编程 G代码系统 指令方法

A 地址字

B或C G90 、G91

(1)A系统:地址符X、Y、Z后面的数字表示绝对坐标值;地址符U、V、W后面的数字表示增量坐标值。见表1-4。

表1-4 G代码系统A

X轴移动指令 Y轴移动指令 Z轴移动指令

绝对值指令

X Y Z

增量值指令

U V W

(2)B、C系统:指令G90、G91来确定绝对坐标和增量坐标模式,地址符为X、Y、Z。 本书主要采用B、C系统,即G90、G91指令来指定绝对坐标和增量坐标模式。

【例1-1】 刀具从A点快速移动到B点。

A系统: 绝对坐标编程: 增量坐标编程:

图1-4 绝对坐标与增量坐标

G00 X10.0 Y30.0 G00 U-15.0 V25.0 7

B、C 系统: 绝对坐标编程: 增量坐标编程: G91 G00 X-15.0 Y25.0 G90 G00 X10.0 Y30.0 8

第2章 数控车床编程指令

2.1 数控车床概述

一、数控车床坐标系

数控车床的坐标系统,包括坐标系、坐标原点和运动方向,对于数控加工和编程是一个十分重要的概念。数控车床上的主要原点及其坐标系如图2-1所示。

图 2-1 数控车床的主要原点及其坐标系

1. 机床原点

机床原点也称为机床零位。它的位置通常由机床制造厂确定,数控车床的机床坐标系原点的位置大多规定在其主轴轴心线与装夹卡盘的法兰盘端面的交点上,该原点是确定机床固定原点的基准,如图2-1所示。

2. 机械原点(机械零点)

机械原点又称为机床固定原点或机床参考点。机械原点为车床上固定位置,通常设置在X轴和Z轴的正向最大行程处,如图2-1所示,该点至机床原点在其进给轴方向上的距离在机床出厂时已准确确定,利用系统所指定自动返回机械原点指令(G28),可以使指令的轴自动返回机械零点,全自动或高档型的数控车床都设有机械原点,但一般的经济型或改造的数控车床上没有安装机械原点。

数控车床设置机械原点的目的如下:

(1)需要时便于将刀具或刀架自动返回该点。

(2)若程序加工起点与机械原点一致,可执行自动返回程序加工起点。

(3)若程序加工起点与机械原点不一致,可通过快速定位指令返回程序起点方式回到程序加工起点。

(4)可作为进给位置反馈的测量基准点。 3. 工件原点(编程原点)

在工件坐标系中,确定工件轮廓坐标值的计算和编程的原点称为工件编程原点。它属于一

9

个浮动坐标系,以它为原点建立一个直角坐标系来进行数值的换算。零件在设计中有设计基准,在加工过程中有工艺基准,同时应尽量将工艺基准、设计基准与工件编程原点相统一。在数控车床上,一般将工件编程原点设在零件的轴心线和零件两边端面的交点上,如图2-1所示。

确定工件编程原点的原则如下:

(1)工件编程原点的位置在给定的图样上应为已知。

(2)在该点建立的坐标系中,各几何要素关系应简洁明了,便于坐标值的确定。 (3)便于程序原点的设定。 4. 程序原点(起刀点)

程序原点指刀具(刀尖)在加工程序执行时的起点,又称为起刀点。程序原点的位置是与工件的编程原点相对应的。一般情况下,一个零件加工完毕,刀具返回程序原点位置,等候命令执行下一个零件的加工。

二、各类数控车床的坐标系

ISO对数控车床的坐标轴及其运动方向作了规定。常用数控车床的坐标轴及其坐标方向如图2-2所示。

图 2-2 数控车床的坐标轴及其运动方向

三、直径编程与半径编程

数控车床加工的是回转体类零件,其横截面积为圆形,所以径向(X方向)尺寸有直径指定和半径指定两种方法,分别称为直径值编程和半径编程。如图2-3所示。

10

【例1-1】设车刀刀尖的走刀路线为“A→B→C”的顺序,车刀从A点快速移动到B点, 从B点加工到C点。

直径编程: G90 G00 X30 Z0; G01 X30 Z-50; 半径编程: G90 G00 X15 Z0; G01 X15 Z-50;

数控车床出厂时一般设定为直径编程。如需用半径编程,可通过调整系统中相关参数,使系统处于半径编程状态。本章以后,若非特殊说明,各例均为直径编程。

四、绝对编程与增量(相对)编程

在数控加工过程中,有两种方法指令刀具的移动,绝对值指令和增量值指令。在绝对值指令中,用终点位置的坐标值编程;在增量值指令中,用移动距离编程。

G90状态下,程序段中的尺寸数字为绝对值,即刀尖所有轨迹点的坐标值均以工件零点为基准而得;G91状态下,程序段中的尺寸数字为增量坐标值,即刀尖所有轨迹点的坐标值,是以刀尖前一点为基准而得。

格式:G90 X_ Z_;

G91 X_ Z_;

【例1-2】如图2-4所示,车刀刀尖从A点出发,按照“A→B→C”的顺序移动,点B、C的绝对、增量坐标值(采用直径编程)。

绝对编程 G90 G01 X52 Z-20;

X52 Z-57; 增量编程 G91 G01 X23 Z-20;

X0 Z-37;

图 2-3 直径编程与半径编程示例

图 2-4 绝对、增量坐标值示例

11

2.2 数控车床常用M指令

数控车床加工中的动作在加工程序中用指令的方式事先规定,这些常用的功能指令有准备功能G、辅助功能M、刀具功能T、主轴功能S、和进给功能F等。国际上广泛应用ISO(国际标准组织)制定的G代码和M代码标准。我国原机械工业部依据ISO1056—1975(E)国际标准制定的JB3208—83部标准。但在我国目前使用的各种数控车床和数控系统中,指令代码定义还没有完全统一,个别G指令和M指令在不同系统中的含义不完全相同,甚至完全不同。因此,编程人员在编程前必须仔细阅读自己所使用数控系统的功能。本节介绍FANUC数控系统的功能指令。

M指令(或辅助指令)使用地址字M及2位数字表示的,主要用于机床加工操作时的工艺性指令。其特点是靠继电器的通断来实现控制机床或系统开关过程。FANUC数控系统的M指令功能见表2-1。

表2-1 常用的辅助功能的M代码、含义及用途

功能

含义

用途

实际上是一个暂停指令。执行M00后,机床所有动作均被切断,重新按动程序

M00

程序停止

启动按钮后,在继续执行后面的程序段

执行过程和M00相同,只是在机床控制面板上的“任选停止”开关置于接通位

M01

选择停止

置时,该指令才有效

该指令编在程序的最后一条,表示执行完程序内所有指令后,主轴停止、进给

M02

程序结束

停止、切削液关闭,机床处于复位状态

M03 M04 M05 M07 M08 M09

主轴正转 主轴反转 主轴停止转动 冷却液开 冷却液开 冷却液关

用于主轴顺时针方向转动 用于主轴逆时针方向转动 用于主轴停止转动 用于切削液开 用于切削液开 用于切削液关

使用M30时,除表示执行M02的内容之外,还返回到程序的第一条语句,准备

M30

程序结束

下一个工件的加工

M98 M99

子程序调用 子程序返回

用于调用子程序 用于子程序结束及返回

2.3 数控车床常用G指令

G指令(准备功能)用地址字G和两位数值来表示,共有G00~G99,FANUC数控系统的G

12

指令功能见表2-2,供读者学习参考。

表 2-2 FANUC 0i-T系统常用G指令

G代码

A G00 G01 G02 G03 G04 G10 G11 G20 G21 G27 G28 G32 G34 G36 G37 G40 G41 G42 G50

B G00 G01 G02 G03 G04 G10 G11 G20 G21 G27 G28 G33 G34 G36 G37 G40 G41 G42 G92

C G00 G01

01

G02 G03 G04 G10 G11 G20

06

G21 G27

00

G28 G33

01

G34 G36

00

G37 G40 G41 G42 G92

00

G52 G53

G52 G53 G54~G59 G65

G65

G65 G52

00

G53

14 00

机床坐标系设定 选择工件坐标系1~6 调用宏指令

G99 — —

G95 G90 G91

G95 G90

03

G91

增量值编程

局部坐标系设定

G98

G94

G94

05

每转进给 绝对值编程 每分钟进给

07

自动刀具补偿Z 取消刀尖半径补偿 刀尖半径左补偿 刀尖半径右补偿 坐标系或主轴最大速度设

G90 G92 G94 G96 G97

G77 G78 G79 G96 G97

G20 G21 G24 G96 G97

02 01

外径/内径车削循环 螺纹车削循环 端面车削循环 恒表面切削速度控制 恒表面切削速度控制取消

变螺距螺纹切削 自动刀具补偿X

G88 G

G88 G

G88 G

侧攻丝循环 侧镗循环

从参考点返回 螺纹切削

G85 G87

G85 G87

G85 G87

10

正面镗循环 侧钻循环

公制输入 返回参考点

G83 G84

G83 G84

G83 G84

钻孔循环 攻丝循环

00

圆弧插补(顺时针) 圆弧插补(逆时针) 暂停

可编程数据输入 可编程数据输入方式取消 英制输入

G72 G73 G74 G75 G76 G80

G72 G73 G74 G75 G76 G80

G74 G75 G76 G77 G78 G80

00

端面粗车循环 多重车削循环 排屑钻端面孔 外径/内径钻孔循环 多头螺纹循环 固定钻循环取消

快速移动定位 直线插补(切削进给)

功 能

A G70 G71

B G70 G71

C G72 G73

精加工循环 外圆粗车循环

G代码

功 能

一、 与坐标系相关的G指令(G54~G59、G92)

1.工件坐标系设定 G92 功能:建立一个以工件原点为坐标原点的工件坐标系,即可确定刀具起点相对于工件坐标系原点的位置。

格式:G92 X__Z__;

13

该指令是规定刀具起点(或换刀点)到工件原点的距离,X、Z为刀尖起刀点在工件坐标系的坐标。如图2-5所示,假定刀尖起始点距工件坐标系的坐标值为(D,L),则执行程序段G92 XD ZL后,系统内部对(D,L)进行记忆,并建立了工件坐标系XPOPZP。

图 2-5 G92指令应用

【例2-3】如图2-6所示,分别以O1、O2为工件坐标系的原点(编程原点),利用G92指令编写程序段。

(1) 设O1为工件坐标系的

原点(编程原点)

G92 X100 Z100;

(2) 设O2为工件坐标系的

原点(编程原点)

G92 X100 Z220

图 2-6 G92指令应用示例

2.预定义工件坐标系 G54~G59

在数控编程中,除了用G92建立工件坐标系以外,还可以在机床参数中预先设定工件坐标系(零点偏置G54—G59)。系统允许预设定六个坐标系:

G54——工件坐标系1 G55——工件坐标系2 G56——工件坐标系3 G57——工件坐标系4 G58——工件坐标系5 G59——工件坐标系6 格式:G54(或G55、G56…)

例: O0001; N10 G54;(调用工件坐标系1) N20 G90 G00 X0 Z0; … N100 G55;(调用工件坐标系2) N110 G01 X0 Z0; 14

G54~G59的操作及使用方法是三步:测量、输入、调用。

(1)测量偏差—— 使用试切法确定工件原点相对于参考点的位置。

(ⅰ)X方向切削(切端面),记录Z值(ZA) (ⅱ)Z方向切削(切外圆),记录X值(XA) (ⅲ)测量工件被切削部分的直径(D) (ⅳ)Z偏差= ZA X偏差= XA +D

(2)输入偏差值:将“偏置值”输入CNC系统,由系统自动记忆。 (3)调用工件坐标系: 编程时调用相应的工件坐标系。

二、移动类指令(G00、G01、G02、G03) 1.快速移动定位 G00

G00指令使刀具以点控制方式,从刀具所在点快速移动到目标点。它只是快速定位,对中间空行程无轨迹要求,G00移动速度是机床设定的空行程速度,与程序段中的进给速度无关。

格式:G00 X__Z__; 说明:

①指令后的参数(X、Z)是目标点的坐标。 ②常用于非加工时,刀具的快速移动。

③常见G00运动轨迹如图2-7所示,从A点到B点常见有以下四种方式:直线AB、直角线ACB、直角线ADB、折线AEB。折线的起始角θ是固定的(如θ=22.5°或45°),它取决于各坐标的脉冲当量。

④移动过程中不进行切削。

图 2-7 车床G00轨迹

2.直线插补指令 G01

G01指令使刀具以一定的进给速度,从所在点出发,直线移动到目标点。 格式:G01 X__Z__F__ 说明:

15

①X、Z是目标点坐标。

②F是进给速度。有3种表达方法:每分钟进给量(mm/min);每转进给量(mm/r);代码表示法,即F后面的数值不直接表示进给量大小,只是进给量的代号(宏程序中应用)。

③移动过程中进行直线切削。

【例2-4】如图2-8(a)所示,毛坯尺寸Ф*110,零件的各加工表面已完成了粗车,设计精加工刀具轨迹,编写加工程序。

图2-8 G00、G01指令应用示例

① 确定工件坐标系位置。工件坐标系原点(即工件零点)OP设在工件右端面与零件轴线相交点(工艺基准处),如图2-8(b)所示。

② 确定刀具起刀点的位置。起刀点(即换刀点)设在工件的右前方O’点,如图2-8(b)所示。

③ 确定刀具工艺路线。如图2-8(b)所示,刀具从起点O’(换刀点)出发,加工结束后再回到O’点,走刀路线为:O’→A→OP→B→C→D→E→F→G→O’。

④ 计算各基点的坐标值。根据如图2-8(b)得各点绝对坐标值为:O’(200,50)、 A(66,0)、OP(0,0)、B(40,0)、C(40,-10)、D(60,-10)、E(60,-30)、F(40,-70)、G(40,-90)。(思考:各点增量坐标值?)

⑤ 编程。精加工程序见表2-3。

表2-3 G00、G01车削实例程序

编程方式

O1001

对坐标方式

N10 G90 G92 X200 Z50 M03 S500; N15 G00 X66 Z0; N20 G01 X0 Z0 F100; N25 G00 Z2 X40; N30 G01 X40 Z-10;

程序

程序名

绝对编程,确定工件原点,主轴正转500r/min 车刀快速移动到A 车右端面至OP 退刀至B外 车轮廓至C

说明

16

N35 X60 Z-10; N40 X60 Z-30; N45 X40 Z-70; N50 X40 Z-90; N55 G00 X200; N60 Z50; N65 M05; N70 M02; O2001

N10 G90 G54 M03 S500; N15 G91 G00 X-134 Z-50; N20 G01 X-66 Z0 F100; N25 G00 Z2 X40;

增量坐标方式

N30 G01 X0 Z-12; N35 X20 Z0; N40 X0 Z-20; N45 X-20 Z-40; N50 X0 Z-20; N55 G00 X160; N60 Z140; N65 M05; N70 M02;

车轮廓至D 车轮廓至E 车轮廓至F 车轮廓至G

车刀快速移动退刀,先退X方向

车刀快速移动退刀,退Z方向,回到起刀点O’ 主轴停转 程序结束 程序名

绝对编程,确定工件原点,主轴正转500r/min 增量编程车刀快速移动到A 车右端面至OP,进给量100mm/min 退刀至B外 车轮廓至C 车轮廓至D 车轮廓至E 车轮廓至F 车轮廓至G

车刀快速移动退刀,先退X方向

车刀快速移动退刀,退Z方向,回到起刀点O’ 主轴停转 程序结束

3. 圆弧插补指令 G02、G03 该指令使刀具刀尖从圆弧起点开始,沿圆弧移动到圆弧终点。G02(顺时针圆弧插补)G03(逆时针圆弧插补)圆弧的顺、逆方向可按图2-9给出的方向判断:本系统中顺时针、逆时针圆

2-9 圆弧顺、逆方向判断

弧的判断,以车刀移动的对称方向决定。

G02 R_ (终点半径方式) 格式: X_ Z_ F__ G03 I_ K_ (终点圆心方式)

说明:

①可用直径或半径编程,也可用绝对或增量方式。当用增量方式时,X、Z为圆弧终点相对

17

圆弧起点的增量坐标。

②终点半径方式:X、Z为圆弧终点坐标,R为圆弧半径值。

③终点圆心方式:X、Z为圆弧终点坐标,I、K为圆心相对圆弧起点的坐标增量,I—对应X方向的圆心坐标增量;K—对应Z方向圆心的坐标增量。

④不管用绝对或增量方式,I、K均为圆心相对于圆弧起点的增量坐标。 ⑥F为进给速度,是模态量。

【例2-5】如图2-10所示,用两种圆弧插补方式编写“A-B”段圆弧加工程序。

终点半径方式:

G03 X40 Z-15 R20 F100; 终点圆心方式:

G03 X40 Z-15 I-13 K-15 F100;

图2-10 圆弧插补指令示例

【例2-6】如图2-11(a)所示,毛坯尺寸Ф*140,零件的各加工表面已完成了粗车,设计精加工刀具轨迹,编写精加工程序。

图2-11 圆弧插补指令综合示例

① 确定工件坐标系位置。工件坐标系原点(即工件零点)OP设在工件右端面与零件轴线相交点(工艺基准处),如图2-11(b)所示。

② 确定刀具起刀点的位置。起刀点(即换刀点)设在工件的右前方O’点,如图2-11(b)

18

所示。

③ 确定刀具工艺路线。如图2-11(b)所示,刀具从起点O’(换刀点)出发,加工结束后再回到O’ 点,走刀路线为:O’→A→OP→B→C→D→E→F→G→O’。

④ 计算各基点的坐标值。根据如图2-11(b)得各点绝对坐标值为:O’(200,50)、 A(66,0)、OP(0,0)、B(40,-20)、C(40,-30)、D(60,-30)、E(60,-50)、F(40,-90)、G(40,-110)。

⑤ 编程。精加工程序见表2-4。

⑥ 思考:利用G91、 G54、 圆弧I K方式进行编程?

表2-4 圆弧插补指令的车削实例程序

编程方式

O1003

N10 G90 G92 X200 Z50 M03 S500; N15 G00 X66 Z0; N20 G01 X0 F200;

N25 G03 X40 Z-20 R20 F100;

对坐标方式

N30 G01 Z-30 F200; N35 X60; N40 Z-50; N45 X40 Z-90; N50 Z-110; N55 G00 X200; N60 Z50; N65 M05; N70 M30;

程 序

程序名

绝对编程,确定工件原点,主轴正转500r/min 车刀快速移动到A 车右端面至OP 车轮廓至B 车轮廓至C 车轮廓至D 车轮廓至E 车轮廓至F 车轮廓至G

车刀快速移动退刀,先退X方向

车刀快速移动退刀,退Z方向,回到起刀点O’ 主轴停转 程序结束

说 明

三、暂停指令 G04

可使刀具作短暂的无进给光整加工,一般用于切槽、镗平面、锪孔等场合。 格式: G04 X(P)__ ; 说明:

①为非模态代码;

②关于G04的地址码X或 P对比说明见表2-5。

表2-5 暂停指令G04

格 式

暂停时间单位

数值取整

实 例

实 例 说 明

19

表示前面的程序执行完后,须经过5s的暂停,下

G04 X _

秒数(s)

可带小数点的数

G04 X 5

面的程序段才执行

表示前面的程序执行完后,须经过1s的暂停,下

G04 P _

毫秒数(ms)

一定是整数

G04 P1000

面的程序段才执行

【例2-7】如图2-12所示,利用暂停G04进行切槽加工。对槽的外圆柱面粗糙度有要求,试编写此段程序。

程序见表2-6。

图2-12 暂停指令G04的应用

表2-6 暂停G04指令的程序示例

编程方式

……

绝对坐标方式

N60 G00 X36; N70 G01 X16 F0.05; N80 G04 X0.24; N90 G00 X36; ……

程 序

快速到 A

以进给速度切削到 B 暂停0.24s 快速到A

说 明

四、返回参考点和从参考点返回 (G27、G28)

G27指令可使刀具以空行程速度,从当前点返回机床有关参考点;G28指令可使刀具以空行程速度,从参考点返回到指定的参考位置。

格式:G27 X__ Z__ ;

G28 X__ Z__ ; 说明:

①执行G27指令时,刀具先快速移动到指令值所指令的中间点(B)位置,然后自动返回到参考点(R)检查。其中X、Z以绝对坐标方式编程时是中间点(B)的坐标值;在增量坐标方式编程时,是中间点(B)相对刀具当前点(A)的移动距离。执行G28指令时,刀具从参考点(R)快速移动到前面G27所指令的中间点(B),然后再移动到G28所指令的返回点(C)定位。其中X、Z以绝对坐标方式编程时是返回点(C)的坐标值;在增量坐标方式编程时,是返回点(C)相对于中间点(B)的移动距离。见图2-13所示。

② 在系统启动之后,当没有执行手动返回参考点功能时,指定G27指令无效。G27指令

20

仅在其被规定的程序段有效。

③ G28指令一般在G27指令后使用;该指令仅在其被规定的程序段内有效。 ④ 二者均为非模态代码。

图2-13 G27、G28指令应用示例

【例2-8】如图2-13所示,要求刀具从当前点A,经中间点B(160,200),返回到参考点R,换刀后再从参考点返回C。其程序见表2-7所示。

表2-7 G27、G28指令应用的程序示例

编程方式

……

绝对坐标方式 N30 G90 G27 X160 Z200; N40 M06 T0303; N50 G28 X80 Z250; …… ……

增量坐标方式

N30 G91 G27 X60 Z120; N40 M06 T0303; N50 G28 X-80 Z50; ……

程序

刀具从当前点A处,经过中间点B,自动返回到参考点R处(B的坐标) 进行换刀

从参考点R,自动到返回点C处(C点坐标)

刀具从当前点A处,经过中间点B,自动返回到参考点R处(B点相对A点坐标) 进行换刀

从参考点R,自动到返回点C处(C点相对B坐标)

说明

21

2.4 螺纹加工 G32

螺纹加工指令包括单行螺纹指令G32、简单螺纹循环指令G92和复合螺纹切削循环指令G76。有关G92、G76的应用,见本节六固定循环内容。

一、单行螺纹切削 G32

G32指令主要加工等导程的圆柱螺纹和圆锥螺纹。 格式:G32 X(U)__ Z(W) __ F __; 说明:

① X(U) 、Z(W)为螺纹终点坐标;F为螺纹导程(mm/r),即主轴每转一周,伺服的进给值。

② 从螺纹粗加工到精加工,主轴的转速必须保持恒定的常数。否则螺纹的导程就将发生改变。

③ 注意在没有停止主轴的情况下,停止螺纹的切削将非常危险。

二、普通螺纹切削深度计算公式

螺纹加工涉及到螺纹牙深度参数,该参数应该通过机械加工手册查出。在此提供一种螺纹牙深度的近似计算方法供参考。

1.单线螺纹:导程=螺距

2.螺纹高度h=0.95×P螺距 (参见图2-14)

3.双边切削深度=2h ④小径=大径-2h

图2-14 普通螺纹相关参数

【例2-8】如图2-15所示,车削一直螺纹,M20x1.5,分两次切削,编写螺纹的粗加工程序。

①设定工件坐标系,工件原点为O,如图2-15所示。 ②计算:2h=2*0.95*1.5=1.9485 第一次:切削深度1,小径=20-1=19

第二次:切削深度0.9485,小径=20-1.9485=18.0515。 ③编程,程序见表2-8所示。

22

图2-15 螺纹车削指令G32应用

表2-8 螺纹车削指令G32应用程序示例

程 序

O1008;

N10 G90 G00 X30 Z5 M03 S500; N20 X19;

N30 G32 Z-52 F1.5; N40 G00 X30; N50 Z5; N60 X18.0515; N70 G32 Z-52 F1.5; N80 G00 X30; N90 Z5; N100 M05; N110 M02;

程序名

绝对方式编程,刀具快速移动到A点,主轴正转,转速为500r/min 刀具快进至B点,X向工进1mm 第一次车削螺纹至C点 刀具快速退至D点 刀具快速退至A点

刀具工进,X向工进0.9485mm 第二次车削螺纹 刀具快速退至D点 刀具快速退至A点 主轴停 程序结束

说 明

2.5 固定循环 G90、G92、G94

对数控车床而言,非一刀加工完成的轮廓表面、加工余量较大的表面,采用循环编程,可以缩短程序段的长度,减少程序所占内存。各类数控系统复合循环的形势和使用方法(主要是编程方法)相差甚大,下面介绍FANUC 0i-TA 数控系统常用的三种车削固定循环:外径/内径车削循环(G90),螺纹车削循环(G92),以及端面车削循环(G94)。

一、外径/内径车削循环 G90 1.直线切削(圆柱面)固定循环

23

主要用于内、外圆柱面的循环切削。如图2-16所示,刀具从循环起点(A)开始按矩形A→B→C→D→A循环,最后又回到循环起点(A),图中刀具路径中AB、DA段按快速R移动,BC、CD按指令F速度移动。

格式:G90 X(U)__ Z(W) __ F __ 说明:

① X、Z为圆柱面切削终点(C)坐标值;U、W为圆柱面切削终点(C)相对循环起点(A)的增量值。

②F为进给量。

图2-16 外圆车削循环 图2-17 外圆车削循环G90示例

【例2-9】如图2-17所示,编制一个粗、精加工Ф32外圆的循环程序,留精加工余量0.5,毛坯尺寸Ф40。

①设定工件坐标系,工件原点为O,如图2-18所示。 ②确定切削深度及循环次数: 加工余量:40-(32+0.5) = 9.5 每次吃刀深度:2

循环次数:9.5/2取整为5次

③起刀点:A(46,2),按A→B→C→D→A顺序为单循环的走刀路线。 ④编程: 程序见表2-9所示。

表2-9 外圆车削循环G90应用程序示例

编程方式

绝对方式编

O1009;

N10 G54 G00 X46 Z2; N20 M03 S500;

程 序

程序名

建立工件坐标系,刀具快速移动到A点 主轴正转,转速为500r/min

说 明

程 N30 G90 X38.5 Z-59.2 F200; 第一次循环粗车削,此时的切削循环终点C坐标为(38.5,-59.2)

24

N40 G90 X36.5; N50 G90 X34.5; N60 G90 X32.5; N70 G90 X32; N80 M05; N90 M02; O2009;

N10 G54 G00 X46 Z2; N20 M03 S500;

增量方式编程 第二次循环粗车削,此时的切削循环终点C坐标为(36.5,-59.2) 第三次循环粗车削,此时的切削循环终点C坐标为(34.5,-59.2) 第四次循环粗车削,此时的切削循环终点C坐标为(32.5,-59.2) 第五次循环精车削,此时的切削循环终点C坐标为(32,-59.2) 主轴停 程序结束 程序名

建立工件坐标系,刀具快速移动到A点 主轴正转,转速为500r/min

N30 G90 U-7.5 W-61.2 F200; 第一次循环粗车削,此时的切削循环终点C坐标为(-7.5,-61.2) N40 G90 U-9.5; N50 G90 U-11.5; N60 G90 U-13.5; N70 G90 U-14; N80 M05; N90 M02;

第二次循环粗车削,此时的切削循环终点C坐标为(-9.5,-61.2) 第三次循环粗车削,此时的切削循环终点C坐标为(-11.5,-61.2) 第四次循环粗车削,此时的切削循环终点C坐标为(-13.5,-61.2) 第五次循环精车削,此时的切削循环终点C坐标为(-14,-61.2) 主轴停 程序结束

2.锥形切削固定循环

主要用于圆锥面的循环切削。如图2-18所示,刀具从循环起点(A)开始按梯形A→B→C→D→A循环,最后又回到循环起点(A),图中刀具路径中AB、DA段按快速R移动,BC、CD按指令F速度移动。

格式:G90 X(U)__ Z(W) __ R __ F __ 说明:

① X、Z为圆锥面切削终点(C)坐标值;U、W为圆锥面切削终点(C)相对循环起点(A)的增量值。

② R为切削始点(B)与切削终点(C)的半径差,即R=r始-r终=I。当算术值为正时,R取正值;为负时,R取负值。

③ F为进给量。

25

图2-18 锥面车削循环 图2-19 锥面车削循环G90示例

【例2-10】如图2-19所示,编制一个粗、精加工锥面的循环程序,留精加工余量0.5,毛坯尺寸Ф40。

①设定工件坐标系,工件原点为O,如图2-19所示。 ②确定切削深度及循环次数:以锥面的左面为参考 加工余量:40-(32+0.5) = 9.5 每次吃刀深度:2

循环次数:9.5/2取整为5次

③起刀点:A(46,2),按A→B→C→D→A顺序为单循环的走刀路线。 ④编程: 其程序见表2-10所示。

表2-10 锥面车削循环G90应用程序示例

编程方式

O1010;

N10 G54 G00 X46 Z2; N20 M03 S500;

绝对方式编程 式编程 增量方

N30 G90 X38.5 Z-59.2 R-6 F200; N40 G90 X36.5; N50 G90 X34.5; N60 G90 X32.5; N70 G90 X32; N80 M05; N90 M02; O2010;

N10 G54 G00 X46 Z2;

程 序

程序名

建立工件坐标系,刀具快速移动到A点 主轴正转,转速为500r/min

第一次循环粗车削,此时的切削循环终点C坐标为(38.5,-59.2) 第二次循环粗车削,此时的切削循环终点C坐标为(36.5,-59.2) 第三次循环粗车削,此时的切削循环终点C坐标为(34.5,-59.2) 第四次循环粗车削,此时的切削循环终点C坐标为(32.5,-59.2) 第五次循环精车削,此时的切削循环终点C坐标为(32,-59.2) 主轴停 程序结束 程序名

建立工件坐标系,刀具快速移动到A点

说 明

26

N20 M03 S500;

N30 G90 U-7.5 W-61.2 R-6 F200;

增量方式编程 N40 G90 U-9.5; N50 G90 U-11.5; N60 G90 U-13.5; N70 G90 U-14; N80 M05; N90 M02;

主轴正转,转速为500r/min

第一次循环粗车削,此时的切削循环终点C坐标为(-7.5,-61.2) 第二次循环粗车削,此时的切削循环终点C坐标为(-9.5,-61.2) 第三次循环粗车削,此时的切削循环终点C坐标为(-11.5,-61.2) 第四次循环粗车削,此时的切削循环终点C坐标为(-13.5,-61.2) 第五次循环精车削,此时的切削循环终点C坐标为(-14,-61.2) 主轴停 程序结束

二、 螺纹车削循环 G92 1.直螺纹切削循环

主要用于直螺纹切削循环,缩短程序段的长度,简捷方便(对比G32的运用)。如图2-20所示,刀具从循环起点(A)开始按矩形A→B→C→D→A循环,最后又回到循环起点(A),图中刀具路径中AB、CD、 DA段按快速R移动,BC按指令F速度移动。

格式:G92 X(U)__ Z(W) __ F __ 说明:

① X、Z为螺纹切削终点(C)坐标值;U、W为螺纹切削终点(C)相对循环起点(A)的增量值。

② F为螺纹导程(mm/r),即主轴每转一周,伺服的进给值。(可对比螺纹切削循环指令G32)

图2-20 直螺纹切削循环

【例2-11】如图2-21所示,车削一直螺纹,M20x1.5,分两次切削,利用直螺纹切削循环G92指令编写加工程序。(对比例2-8)

27

图2-21 直螺纹切削循环G92示例

①设定工件坐标系,工件原点为O,如图2-22所示。 ②计算:2h=2*0.95*1.5=1.9485 第一次:切削深度1 ,小径=20-1=19;

第二次:切削深度0.9485,小径=20-1.9485=18.0515。

③起刀点:A(30,5),按A→B→C→D→A顺序为单循环的走刀路线。 ④编程: 其程序见表2-11所示

表2-11 直螺纹切削循环G92应用程序示例

编程方式

O1011;

N10 G00 X30 Z5 M03 S500;

绝对方式编程 增量方式编程 N20 G92 X19 Z-52 F1.5; N30 G92 X18.0515; N40 M05; N50 M02; O2011;

N10 G00 X30 Z5 M03 S500; N20 G92 U-11 W-57 F1.5; N30 G92 U-11.9485; N40 M05; N50 M02;

程 序

程序名

绝对方式编程,刀具快速移动到A点,主轴正转,转速为500r/min 第一次循环车削螺纹,螺纹的终点坐标C(19,-52) 第二次循环车削螺纹,螺纹的终点坐标C(18.37,-52) 主轴停 程序结束 程序名

绝对方式编程,刀具快速移动到A点,主轴正转,转速为500r/min 第一次循环车削螺纹,螺纹的终点坐标C(-11,-57) 第二次循环车削螺纹,螺纹的终点坐标C(11.9485,-57) 主轴停 程序结束

说 明

2.锥螺纹切削循环

主要用于直螺纹切削循环,缩短程序段的长度,简捷方便(对比G32的运用)。如图2-22所示,刀具从循环起点(A)开始按梯形A→B→C→D→A循环,最后又回到循环起点(A),图中刀具路径中AB、CD 、DA段按快速R移动,BC按指令F速度移动。

28

格式:G92 X(U)__ Z(W) __ R __ F __ 说明:

① X、Z为锥螺纹切削终点(C)坐标值;U、W为锥螺纹切削终点(C)相对循环起点(A)的增量值。

② R为切削始点(B)与切削终点(C)的半径差,即r始-r终。当算术值为正时,R取正值;为负时,R取负值。

③ F为螺纹导程(mm/r),即主轴每转一周,伺服的进给值。

图2-22 锥螺纹切削循环 图2-23 锥螺纹切削循环G92示例

【例2-12】如图2-23所示锥螺纹,在加工好的轮廓上,利用锥螺纹切削循环指令G92进行加工螺纹,编写加工程序。

①设定工件坐标系,工件原点为O,如图2-23所示。

②计算:分六次切削,总的切削深度为2h=2*0.5412*2=2.18,具体数值计算见表2-12。 ③起刀点:A(80,2),按A→B→C→D→A顺序为单循环的走刀路线。 ④编程: 其程序见表2-13所示。

表2-12 切削深度计算

循环次数 第一次 第二次 第三次 第四次 第五次 第六次

切削深度(吃刀量,直径值)

0.9 0.6 0.4 0.4 0.2 0.098

表2-13 锥螺纹切削循环G92应用程序示例

螺纹终点C在X方向坐标值

49.1 48.5 48.1 47.7 47.5 47.402

29

编程方式

O1012;

程 序

程序名

说 明

N10 G54 S500; N20 T0202 M03; N30 G00 X80 Z2;

N40 G92 X49.1 Z-48 R-5 F2;

绝对方式编程 N50 X48.5; N60 X48.1; N70 X47.7; N80 X47.5; N90 X47.402;

N100 G00 X100 Z50 T0200 M05; N110 M02;

刀具快速移动到A点,主轴正转,转速为500r/min 选择2号刀,2号刀具补偿建立,主轴正转 刀具快速移动到循环起点A

第一次循环车削锥螺纹,锥螺纹的终点坐标C(49.1,-48) 第二次循环车削锥螺纹,锥螺纹的终点坐标C(48.5,-48) 第三次循环车削锥螺纹,锥螺纹的终点坐标C(48.1,-48) 第四次循环车削锥螺纹,锥螺纹的终点坐标C(47.7,-48) 第五次循环车削锥螺纹,锥螺纹的终点坐标C(47.5,-48) 第六次循环车削锥螺纹,锥螺纹的终点坐标C(47.402,-48) 快速退刀至(100,50),刀具补偿取消,主轴停 程序结束

三、端面车削循环 G94 1.平端面车削固定循环

用于平端面的车削固定循环。如图2-24所示,刀具从循环起点(A)开始按矩形A→B→C→D→A循环,最后又回到循环起点(A),图中刀具路径中AB、DA段按快速R移动,BC、CD按指令F速度移动。

图2-24 平端面车削循环 图2-25 平端面车削循环G94示例

格式:G94 X(U)__ Z(W) __ F __ 说明:

① X、Z为端面切削终点(C)坐标值;U、W为端面切削终点(C)相对循环起点(A)的增量值。

30

② F为进给量。

【例2-13】加工如图2-25所示零件,利用端面车削固定循环指令,编写粗加工程序。 解:程序见表2-14所示。

表2-14 平端面车削循环G94应用程序示例

程 序

。。。。。。

G94 X50 Z16 F50;

Z13; Z10;

。。。。。。

A→B→C→D→A A→E→F→D→A A→G→H→D→A

说 明

2.锥形切削固定循环 G94

主要用于锥形断面的车削固定循环。如图2-26所示,刀具从循环起点(A)开始按梯形A→B→C→D→A循环,最后又回到循环起点(A),图中刀具路径中AB、DA段按快速R移动,BC、CD按指令F速度移动。

格式:G94 X(U)__ Z(W) __ R __ F __ 说明:

① X、Z为锥形端面切削终点(C)

坐标值;U、W为锥形端面切削终点(C)相对循环起点(A)的增量值。

② R为锥形端面切削始点(B)与切削终点(C)的半径差,即r始-r终。当算术值为正时,R取正值;为负时,R取负值。

③ F为进给量。

图2-26 带锥度的端面车削循环 图2-27 带锥度的端面车削循环G94示例

31

【例2-14】加工如图2-27所示带锥面的零件,利用端面车削固定循环指令,编写粗加工程序。

程序见表2-15所示。

表2-15 带锥度的端面车削循环应用程序示例

程 序

。。。。。。

G94 X15 Z33.48 R-3.48 F50;

Z31.48; Z28.78;

。。。。。。

A→B→C→D→A A→E→F→D→A

A→G→H→D→A,其中28.78=31.48-(28-25.3)

说 明

2.6 多重固定循环 G71、G72、G73、G70

多重固定循环能解决复杂形面的加工,与简单循环的单一程序段不同,它有若干个程序段参加循环。运用多重固定循环切削指令,只需指定精加工路线和粗加工的背吃刀量,系统会自动计算出粗加工路线和加工次数。

FANUC 0i-TA车削系统的多重固定循环的代码、编程格式及其用途见表2-17,循环指令中的地址码含义见表2-18。

表2-17 FANUC 0i-TA车削系统的多重固定循环

G代码 G71 G72 G73 G70

编 程 格 式

G71 P(ns) Q(nf) U(△u) W(△w) D(△d) F_ S_ T_ G72 P(ns) Q(nf) U(△u) W(△w) D(△d) F_ S_ T_

G73 P(ns) Q(nf) I(△i) K(△k) U(△u) W(△w) D(△d) F_ S_ T_ G70 P(ns) Q(nf)

用 途

内、外圆粗车循环 端面粗车循环 固定形状粗车循环 精车循环

表2-18 多重固定循环车削中地址码的含义

地 址 ns nf △i △k △u △w △d

循环程序段中第一个程序段的顺序号 循环程序段中最后一个程序段的顺序号 粗车时,径向切除的余量(半径值) 粗车时,轴向切除的余量

径向(X轴方向)的精车余量(直径值) 轴向(Z轴方向)的精车余量

每次吃刀深度(在外径和端面粗车循环);或粗车循环次数(在固定形状粗车循环)

含 义

32

一、外径/内径粗车固定循环 G71

适用于圆柱毛坯料粗车外圆和圆筒毛坯料粗车内径。

格式:(以直径编程)G71 P(ns) Q(nf) U(△u) W(△w) D(△d) F_ S_ T_

说明:如图2-28所示为用G71粗车外径的加工路径。图中C是粗车循环的起点,A是毛坯外径与端面轮廓的交点,△w是轴向精车余量;△u/2是径向精车余量。△d是切削深度,e是回刀时的径向退刀量(由参数设定)。(R)表示快速进给,(F)表示切削进给。

地址码含义见表2-17,但加工零件内轮廓时,上述程序指令就成为内径粗车固定循环。此时,径向精车余量△u应指定为负值。

图2-28 外径粗车循环G71的加工路径 图2-29 外径粗车循环G71典型示例

【例2-15】用外径粗加工复合循环,编制如图2-29所示零件的加工程序。要求循环起始点在A(46,3),且削深度为2.5mm(半径量)。X方向精加工余量为0.4mm,Z方向精加工余量为0.2mm,其中点划线部分为工件毛坯。加工程序见表2-19。

表2-19 外径粗车固定循环G71应用程序示例

程 序

O1015;

N010 G55 G00 X80 Z80; N020 S400 M03; N030 G01 X46 Z3 F120;

N040 G71 P050 Q130 U0.4 W0.2 D2.5 F100; N050 G00 X0;

N060 G01 X10 Z-2 F80; N070 Z-20 ;

N080 G02 U10 W-5 R5; N090 G01 W-10;

程序号

选定坐标系G55,到程序起点位置 主轴以400r/min正转 刀具到循环起点位置

粗切量2.5mm,精车余量X0.4mm,Z0.2mm 精加工轮廓起始行,到倒角延长线 精加工2×45°倒角 精加工Ф10外圆 精加工R5圆弧 精加工Ф20外圆

说 明

33

N100 G03 U14 W-7 R7; N110 G01 Z-52; N120 U10 W-10; N130 W-20; N140 G70 P50 Q130; N150 G00 X80 Z80; N160 M05 ; N170 M30;

精加工R7圆弧 精加工Ф34外圆 精加工外圆锥

精加工Ф44外圆,精加工轮廓结束行 精加工循环 回到对刀点 主轴停

主程序结束并复位

二、端面粗车固定循环 G72 适用于圆柱毛坯料端面方向粗车。

格式:(以直径编程)G72 P(ns) Q(nf) U(△u) W(△w) D(△d) F_ S_ T_

说明:如图2-30所示为从外径方向往轴心方向车削端面时的走刀路径。地址码含义见表2-18(G72采用双行编程格式)。

图2-30 端面粗车循环G72的加工路径 图2-31 端面粗车循环G72典型示例

【例2-16】利用端面粗车复合循环加工图2-31所示零件,采用直径编程和公制尺寸,加工程序见表2-20。

表2-20 端面粗车固定循环G72应用程序示例

程 序

O1016;

N010 G56 G00 X220 Z190; N020 G00 X176 Z112 S500 M03;

程序号

选定坐标系G56,到程序起点位置

主轴以500r/min正转,刀具到循环起点位置

说 明

34

N030 G72 W7 R1;

N040 G72 P050 Q100 U4 W2 F0.3; N050 G00 Z36 S700 ; N060 G01 X120 W14 F0.15; N070 W10; N080 X80 W10; N090 W20; N100 X36 W22; N110 G70 P050 Q100; N120 M05; N130 M02;

切削深度7mm,回退1mm 端面粗车固定循环

精加工轮廓起始点,到锥面延长线 精加工锥面 精加工∮120外圆 加工锥面 精加工∮80外圆 加工锥面 精加工 主轴停 程序结束

三、 固定形状粗车循环(型车复循环) G73

适用于毛坯轮廓形状与零件轮廓形状基本接近时的粗车。

格式:G73 P(ns) Q(nf) I(△i) K(△k) U(△u) W(△w) D(△d) F_ S_ T_

说明:一般锻件或铸件的粗车,这种循环方式的走刀路线如图2-32所示。地址码含义见表2-18。

图2-32 固定形状粗车循环G73的走刀路径

【例2-17】图2-33所示零件,零件毛坯已基本锻造成型,用FANUC系统固定形状粗车循环指令(G73),编写粗加工程序。加工程序见表2-21。

35

图2-33 固定形状粗车循环G73典型示例

表2-21 端面粗车固定循环G72应用程序示例

程 序

O1017;

N010 G57 G00 X260 Z220; N020 G00 X222 Z160 S500 M03;

N030 G73 P040 Q090 I14 K14 U4 W2 D3 F30; N040 G00 X80 W-40 S800; N050 G01 W-20 F15; N060 X120 W-10;

精加工轮廓

N070 W-20;

N080 G02 X160 W-20 I20; N090 G01 X180 W-10; N100 G70 P040 Q090; N110 M05; N120 M02;

经加工复合循环,循环体N040~N090 主轴停 程序结束 程序号

选定坐标系G57,到程序起点位置

主轴以500r/min正转,刀具快速到循环起点位置 G73为固定形状粗车循环

说 明

36

2.7 子程序

一、调用子程序 M98

调用子程序,可使指定的程序段按要求多次进行循环。也就是说,在程序中同样轨迹的加工部分,只要制作一段程序,其余加工部分通过调用子程序即可。

格式:M98 P__ L__; 说明:

1. P指被调用的子程序号(即子程序名),L指调用次数,在1~9999范围内。 2. 通常在主程序中用绝对坐标方式编程,在子程序中用增量坐标方式编程。 3. 子程序可以嵌套子程序。

四、 子程序结束及返回 M99

用于子程序段的最后,表示子程序结束,同时返回到主程序中继续执行主程序中的指令。 关于M98、M99运用结构示例如下表2-22。

表2-22 M98、M99运用结构示例

程序名 M98的调用

程序结束

主程序 O1000 …… M98 P1001 L10

…… M02

子程序1 O1001 …… M98 P1002 L100 …… M99

M99 子程序2 O1002 ……

三、通用编程方法——子程序增量编程

利用子程序增量编程的方法编写车床轮廓的加工程序,粗加工时根据计算出的循环次数调用若干次子程序,完成粗加工。精加工再调用同样的子程序完成精加工。通过这种方法可以适用于各种轮廓的加工,程序编写简单并且程序相对较短。

如图2-34所示,编程中的相应计算:

1.循环次数=〔(循环起刀点—零件右端尺寸)/每次吃刀量〕余精加工余量 2.循环退刀量(X尺寸)(根据零件结构,有两种计算方法) 左端X尺寸小的零件:

循环退刀量(X尺寸)=(零件最大尺寸-零件左端尺寸)+10 左端X尺寸小的零件: 循环退刀量(X尺寸)=10

3.循环进刀量(X尺寸)= -〔(零件左端尺寸-零件右端尺寸)+循环退刀量〕

37

图2-34 子程序增量编程分析图

【例2-18】图2-35所示零件,零件毛坯尺寸Ф62×160,每次吃刀4mm,留0.5mm的精加工余量,利用子程序增量编程方式,编写粗、精加工程序。

表2-23 循环参数计算

相关项目 图 精加工余量 循环起刀点 循环次数

数 值 0.5 .5

(.5-0)/4=16 (余0.5)

4

(60-40)+10=30

-〔(40-0)+30〕=-70

循环每次进刀量 循环退刀量 循环进刀量

图2-35 子程序增量编程示例

①设定工件坐标系,工件原点为O,如图2-35所示。 ②计算:具体循环参数计算见表2-23。

③起刀点:A(.5,0),按A→B→C→D→E→F→G→H→A顺序为单循环的走刀路线。 ④编程: 其程序见表2-24所示。

表2-24 子程序增量编程应用程序示例

程 序

O1018;

N5 G90 G54 S500 M03; N6 G00 X65 Z0 ;

主程序号

建立工件坐标系G54,绝对坐标编程,主轴以500r/min正转 刀具快速移动到轮廓外(65,0)处

说 明

38

N7 G01 X0 F100; N8 G00 X.5; N10 M98 P2018 L16; N15 G90 G00 X4 Z0; N20 M98 P1001 L1; N100 G90 G00 X200; N105 Z50; N110 M05; N115 M02; O2018;

N5 G91 G01 X-4;

N6 G03 X40 Z-20 R20 F200; N10 G01 Z-10; N15 X20; N20 Z-20; N25 X-20 Z-40 ; N30 Z-20; N35 G00 X30; N40 Z110; N45 X-70; N50 M99;

车右端面

刀具快速移动到粗加工循环起刀点(.5,0)处 调用子程序O2018,进行16次的轮廓粗加工 绝对坐标编程,快移至精加工的起刀点(4,0)处 调用子程序O2018,进行1次的轮廓精加工 绝对坐标编程,向X轴方向快速退刀 向Z轴方向快速退刀 主轴停 程序结束 子程序号

增量坐标编程,沿X轴负方向直线切削4mm(循环每次进刀量) 加工0→B 加工B→C 加工C→D 加工D→E 加工E→F 加工F→G

沿X轴方向,循环退刀量 快移由H→A

沿X轴方向,循环进刀量 子程序结束及返回到主程序中

2.8 数控车床编程实例

如图2-36所示零件图,毛坯尺寸Ф26×150尼龙棒,轮廓粗加工循环每次吃刀3mm,制定零件的加工工艺,编写粗、精车加工程序。

图2-36 典型车削加工零件

39

一、 建立工件原点

在零件的右端面与轴线的交点处,设定工件坐标系,工件原点为O,如图2-36所示。 二、 计算

根据前文中给出的有关螺纹的近似算法,进行计算如下。(建议学习运用时,随时查相应的螺纹手册)

1、螺纹:两次切削 2h=2*0.95*1=1.299

粗加工(第一次):1 小径=16-1=15

精加工(第二次):0.0824 小径=16-1.299=14.701 2、轮廓粗加工循环:

起刀点:26.5

循环次数:L=(26.5-14)/3=4次(余0.5) 循环退刀量:10

循环进刀量:-(24-14+10)=-20

三、 工艺单

关于加工过程中的加工工艺、刀具的选择、切削速度、加工余量等如下表2-25。

加工工艺单

工序 1 2 3

加工工艺 端面精加工 外轮廓粗加工 外轮廓精加工

刀具 90 °偏刀 90 °偏刀 60 °偏刀 割刀

4

切槽

刃宽3.6 左刃基准

5 6 7

螺纹粗加工 螺纹精加工 切断

螺纹刀 螺纹刀 切断刀

02 02 03

02 02 03

螺距 螺距 20

<0.8 0 0

03

03

20

0

刀号 01 01 04

04 刀补号

切削速度 F

200 200 300

加工余量

0 0.5 0

四、

表2-25 加工工艺单

工序 1 2 3 4

加工工艺 端面精加工 外轮廓粗加工 外轮廓精加工

切槽

刀具 90 °偏刀 60 °偏刀 60 °偏刀 割刀

刀号 01 04 04 03

04 03 刀补号

切削速度 F

200 200 300 20

加工余量

0 0.5 0 0

40

刃宽3.6 左刃基准

5 6 7

螺纹粗加工 螺纹精加工 切断

螺纹刀 螺纹刀 切断刀

02 02 03

02 02 03

螺距 螺距 20

<0.8 0 0

五、 六、 七、 程序

关于端面加工、轮廓粗精加工、切槽、螺纹粗精加工、切断等详细程序见表2-26。

表2-26 加工程序

程 序

O1019;

N05 G54 G90 G00 X27 Z0 S500 M03; N10 G01 X0 Z0 F200; N15 G00 X400 Z200; N20 M06 T0404; N25 G00 X26.5 Z0; N30 M98 P2019 L4; N35 G90 G00 X17 Z0; N40 M98 P2001 L1; O2019;

N05 G91 G00 X-3 ; N10 G01 X2 Z-1 F200; N15 Z-28; N20 X8 Z-15; N25 Z-10; N30 G02 Z-18 R15; N35 G01 Z-10; N40 G00 X10; N45 Z82; N50 X-20; N55 M99;

N100 G90 G00 X400 Z200; N105 T0400;

主程序号

建立工件坐标系G54,绝对坐标编程,主轴以500r/min正转,快速移动至(27,0) 右端面精加工 准备轮廓粗加工 换04号刀

刀具快速移动到粗加工循环起刀点(26.5,0)处 调用子程序O2019,进行4次的轮廓粗加工

绝对坐标编程,快移至精加工的起刀点(17,0)处(轮廓精加工) 调用子程序O2019,进行1次的轮廓精加工 子程序号

增量坐标编程,沿X轴负方向直线切削3mm(循环每次进刀量) 加工倒角1×45° 加工螺纹的外圆柱面 加工圆锥柱面 加工Ф24外圆柱面 加工半径为15的圆弧 加工Ф24外圆柱面 沿X轴方向,循环退刀量 退刀至起刀点(17,0)处 沿X轴方向,循环进刀量 子程序结束及返回到主程序中

退刀至安全位置(400,200) (车宽为4mm的退刀槽) 取消04号刀具补偿

说 明

41

N110 M06 T0303 F20; N115 G00 X18 Z-28.6; N120 G01 X12; N125 G00 X18;

换03刀,建立刀补,刀具补偿号为03 快移到(18,25+3.6)处准备切退刀槽 第一次切退刀槽的右面

快移,退刀

N130 Z-29; N135 G01 X12; N140 G00 X18; N145 G00 X400 Z200; N150 T0300; N155 M06 T0202; N160 G00 X17 Z2; N165 G92 X15 Z-27 F1;

螺纹切削循环(粗、精)

N170 X14.9176; N175 G00 X400 Z200; N180 T0200; N185 M06 T0303; N190 G00 X18 Z-83.6; N195 G01 X0 F20; N200 G00 X100 N205 Z100; N210 M05; N215 M30;

主轴停 程序结束

退刀至安全位置(400,200) (切断) 取消02号刀具补偿

换03刀,建立刀补,刀具补偿号为03 快移至(18.80+3.6),准备切断 进行切断 快移,退刀 第二次切退刀槽的左面 快移,退刀

退刀至安全位置(400,200) (螺纹粗加工) 取消03号刀具补偿

换02刀,建立刀补,刀具补偿号为02 快移至起刀点(17,2)处

42

第3章 加工中心编程

3.1 加工中心编程基础

加工中心是将数控铣床、数控镗床、数控钻床的功能组合起来,并装有刀库和自动换刀装的数控镗铣床。

一、 加工中心加工对象 1. 平面类零件

加工面平行、垂直于水平面,或与水平面有夹角。如图3-1所示。

图3-1 平面类零件

2. 曲面类零件

加工面为空间曲面。如图3-2所示。

43

图3-2 曲面类零件

二、加工工艺分析 1.刀具的选择

根据零件结构,选择刀具半径和设计工步。其主要原则是: (1)同一把刀,完成尽可能多的工步,减少换刀次数。

(2)尽量选择大半径的刀具,以提高加工效率。刀具半径R≤轮廓内角半径R。 (4)为了保证刀具加工时的刚度,加工深度H<5刀具半径R。如图3-3所示。

图3-3 零件内角与加工高度

H (5)端刀应用的场合为底面为平面的粗精加工、斜面和曲面的粗加工。球头刀应用于斜面和曲面的精加工。

2.轮廓加工路线

轮廓加工路线是指立铣刀沿轮廓周向加工的轨迹(顺铣或逆铣)。如图3-4所示。 顺铣——在刀具和工件切削点上,刀具的旋转的切线方向与工件运动的方向一致。吃刀量小,表面质量好。一般用于精加工。

逆铣——在刀具和工件切削点上,刀具的旋转的切线方向与工件运动的方向一致。吃刀量大,表面质量不好。一般用于粗加工。

44

图3-4 (a)逆铣 (b)顺铣

3.精度要求高的轮廓,精加工时采用切线方向切入、切出。如图3-5所示。

外轮廓加工:刀具从起刀点沿切线切入A点,进行轮廓加工B—C—D—E—A,沿切线切出到k-L-起刀点,完成外轮廓加工。

内轮廓加工:刀具从起刀点到阿点,再沿切线切入不点,进行轮廓加工B—C—B,沿切线切出到D点,回起刀点,完成内轮廓加工。

在主轴正转的情况下,顺铣加工的方向为外轮廓顺时针走刀, 内轮廓逆时针走刀。

外轮廓切削 内轮廓切削

图3-5 刀具沿切线方向切入、切出

4.孔加工

(1)刀具的运动轨迹应选择最短的路线,减少空行程。如图3-6所示。

45

图3-6 最短路径

(2)对孔位置有尺寸公差要求的钻孔路线,避免进给丝杠的反向间隙,提高位置精度。如图3-7所示。

图3-7 避免反向间隙

5.加工顺序 (1)先粗后精 (2)基准面先行 (3)先面后孔 (4)先主后次 (5)减少换刀次数 (6)减少空行程 (7)一般加工顺序:

粗铣大平面——粗镗孔——半精镗孔——钻中心孔——钻孔——攻螺纹——平面和孔精加工(铣、绞、镗)

46

三、加工方法 1.平面铣削

(1)粗铣应达到公差等级IT12—14,表面粗糙度Ra12.5-25。 (2)精铣应达到公差等级IT7—9,表面粗糙度Ra1.6-3.2。 2.孔加工方法有:钻、扩、绞、镗

(1)直径>Ф30mm:有毛坯孔,加工工艺为粗镗、半精镗、倒角、精镗。无毛坯孔:加工工艺为立铣刀粗铣、精铣

(2)直径<Ф30mm:加工工艺为鍯端面、打中心孔、钻、扩(半精镗)、倒角、绞(精镗) 3.螺纹孔加工方法

(1)直径M20:镗刀镗孔 四、切削用量与切削速度

在编程中,选择合适的切削用量、主轴转速、进給速度,使之相互适应,从而达到最佳的加工效果。

1.主轴转速 n=1000v/(πD) n——主轴转速r/min v——切削速度,mm/min D——刀具直径或工件直径 2.进给速度F

(1)一般选择范围100—500mm/min(0.3—0.8mm/r)

(2)切断、加工深孔、高速钢刀具时,选择范围20—50mm/min(0.05—0.2mm/r) (3)精加工时,选择范围50—200mm/min(0.1—0.3mm/r) 3.切削用量

在系统和刀具刚度允许的条件下,尽可能选取较大的切削深度,以减少走刀次数,提高生产效率。一般切削深度,金属材料粗加工1—5mm,精加工余量0.1—0.5mm。

五、尺寸公差的换算

编程时将非对称的尺寸公差转换成对称公差。 基本尺寸=(最大极限尺寸+最小极限尺寸)/2 偏差=(上偏差—下偏差)/2 如图3-8所示。

47

图3-8 对称公差的换算

六、加工中心坐标系

加工中心坐标系为右手迪卡尔坐标系,有X、Y、Z三轴。对于立式加工中心,面对机床主轴,向右为X轴的正方向,向上为Z轴的正方向,向前为Y轴的正方向。如图3-9所示。

图3-9 立式加工中心坐标系

3.2 常用M指令

M指令为辅助功能指令。其指令格式为地址符M和两位数字组成。常用的M指令国家标准已有规定,指令汇总见表3-1。

表3-1 辅助功能M代码

代 码 M00 M01 M02 M03

功 能 程序暂停 选择停止 程序结束 主轴正转

代 码 M08 M09 M10 M11

功 能 冷却液开 冷却液关 夹盘紧 夹盘松

48

M04 M05 M06

主轴反转 主轴停转 换刀

M30 M98 M99

程序结束 调用子程序 子程序结束

一、常用辅助功能

M00——程序暂停 执行完含有该指令的程序段后,主轴的转动、进給、切削液都将停止。按“循环启动”按钮,继续执行后面的程序。

M01——选择停止 M01与M00指令的功能基本相同,不同的是只有按下机床上的“选择停止”键后,M01才有效,否则继续执行后面的程序段。

M02——程序结束 程序结束,切断机床所有动作,程序指针停在程序最后。 M03——主轴正转 主轴顺时针方向旋转。 M04——主轴反转 主轴逆时针方向旋转。 M05——主轴停转 主轴停止旋转。

M06——换刀 主轴停转,在主轴上的刀和刀库位于换刀位置上刀具交换。 M08——冷却液开 M09——冷却液关

M10——夹盘紧 在有液压系统的夹具中,控制夹紧装置夹紧工件。 M11——夹盘松 在有液压系统的夹具中,控制夹紧装置松开工件。

M30——程序结束 程序结束,切断机床所有动作,程序指针回到程序开头位置。 M98——调用子程序 M99——子程序结束

二、使用M指令注意

1.一个程序段只能有一个 M指令。

2.M03和M04,不要直接转换,中间应有M05过渡,以免损坏机床。

3.3 常用G 指令

G指令是准备功能代码,用来规定刀具和工件的相对运动轨迹、机床坐标系、坐标平面、刀具补偿、坐标偏置等多种加工操作。

49

一、 常用G指令汇总(表3-2)

表3-2常用G指令汇总

G代码 G00 ▲G01

01

G02 G03 G04 ▲G17 G18 G19 G28

00

G29 ▲G40 G41 G42

07

由参考点返回 取消半径刀补 刀具半径补偿(左) 刀具半径补偿(右)

G91 G92 ▲G98

10

G99

固定循环返回参考点

00

02 00

顺时针圆弧插补 逆时针圆弧插补 暂停(延时) XY平面选择 ZX平面选择 YZ平面选择 自动返回参考点

▲G49 G54-G59 G80 G81

09

G82 G84 ▲G90

03

增量值编程 工件坐标系设定 固定循环返回初始点 孔底停顿孔加工循环 螺纹孔加工循环 绝对值编程

14

取消刀具长度补偿 工件坐标系1-6选择 取消孔加工固定循环

孔加工循环

组别

功能 快速点定位 直线插补

G代码 G43 G44

08 组别

功能

刀具长度补偿(+) 刀具长度补偿(-)

二、 G指令使用说明 1.模态代码与非模态代码

模态代码——经指定一直有效,直到同组G代码出现才能取代。 非模态代码——只在本程序段中有效。

表3-2中,“00”组G代码为非模态代码,其余各组G代码均为模态代码。 2.默认G代码

表3-2中,有“▲”标记的G代码是电源接通时或按下复位键时就立即生效的G代码。 3.在程序段中的书写规定

(1)不同组的G代码在同一程序段中可以指令多个。

(2)同组G代码在同一程序段中只能出现一个,指定了两个以上属于同组的G代码,仅最后的G代码有效。

三、与坐标系有关的指令(G90、G91、G17、G18、G19、G92、G54~G59) 1.G90——绝对值编程 格式:G90

程序段中的坐标值是相对于编程原点。 2.G91——相对值编程

50

格式:G91

程序段中的坐标值是相对于前一点的增量值。 3.G17、G18、G19——加工平面选择 格式:G17 G18 G19

右手直角笛卡尔坐标系构成了三个平面,即XY平面,ZX平面和YZ平面。G17指定在XY平面,G18指定在ZX平面,G17指定在YZ平面。该组指令用于选择进行圆弧插补和刀具半径补偿的平面。如图3-10所示。

注意:

(1)系统默认G17

(2)指定圆弧插补和半径补偿的平面,与运动类指令无关。如执行G17 G01 Z10指令时,Z轴移动到10。

图3-10 坐标平面设定

例如,加工如图3-11零件,一次装卡。铣削圆弧1时,应在XY平面内进行圆弧插补,应用G17指令。铣削圆弧2时,应在YZ平面内进行圆弧插补,应用G19指令。

圆弧2

Z

Y

圆弧1

图3-11 坐标系应用

X

51

4.G92——工件坐标系设定 格式:G92 X_ Y_ Z_

X、Y、Z——刀具当前位置距工件原点的距离。

在程序开始的程序段中,将刀具起点相对于工件坐标系原点的位置的坐标值写在G92指令中,从而建立工件坐标系。

如要建立图3-12所示的工件坐标系,程序为G92 X30 Y30 Z20。

图3-12 G92建立工件坐标系

注意:

(1)执行该指令后不产生机床运动。

(2)G92建立的工件坐标系与起刀点位置有关,是不稳定坐标系,不适于在批量生产中应用。

5.G54~G59——工件坐标系选择 格式:G54

G55 G56 ……

在加工前,测量工件原点在机械坐标系中的X、Y、Z坐标值,并将其输入机床系统“零点偏置”的G54或G55等中,以建立工件坐标系。在程序中可以直接应用G54或G55等指令,从而调用G54或G55等工件坐标系。

注意:

(1)系统可以设定6个工件坐标系。

(2)在零件有装卡基准的条件下,G54等建立的坐标系是稳定坐标系,一经建立可反复调用,适合于批量生产。

四、移动类指令(G00、G01、G02、G03) 1.G00——快速点定位 格式:G00 X_ Y_ Z_

52

其中:X、Y、Z——快速定位终点位置

G00是快速定位指令,指令刀具从当前位置以各轴预先设定的快速移动速度,快速移动到指令指定的位置点。

(1)快速移动速度由机床参数“快速进給速度”设定,不能用F指令规定。

(2)快速移动的轨迹由各轴联动而合成,因而一般都不是直线。操作者应注意,避免刀具与工件发生碰撞。如图3-13所示刀具从A点快速移动到B点的运动轨迹。

实际轨迹

理想轨迹

图3-13 G00的运动轨迹

2.G01——直线插补 格式:G01 X_ Y_ Z_ F_ X、Y、Z——线性进給的终点 F——合成的进攻速度。

数控机床的刀具(或工作台)沿各坐标轴移动是以脉冲当量为单位的(mm/脉冲)。刀具加工直线或圆弧时,数控系统按程序给定的起点和终点坐标值,在其间进行“数据点密化”,求出一系列中间点的坐标值,然后依顺序按这些坐标值向各轴的驱动机构输出脉冲。数控装置进行的这种“数据点密化”叫插补功能。

G01是直线插补功能,它指定刀具从当前位置,以两轴或三轴联动的方式,向给定目标按F指定的速度运动,加工出任意斜率的平面或空间直线。

注意:

(1)G01指令格式中应包含F进给量,如无F,则认为进给速度为0,即机床不动。 (2)因G01和F都是模态指令,F进给量也可在前面程序段中赋值,一经赋值一直有效,直到新的F值出现才改变。

53

3.G02、G03——圆弧插补 格式: G02 R G17 X_ Y_ F_ G03 I_ J_ G02 R G18 X_ Z_ F_ G03 I_ K_ G02 R G19 Y_ Z_ F_ G03 J_ K_ X、Y、Z——圆弧终点坐标

I、J、K——圆弧圆心点相对于圆弧起点在X、Y、Z轴向的坐标增量。 F——进给速度

G02、G03是按指定进給速度进行圆弧切削。G02为顺时针圆弧插补,G03为逆时针圆弧插补。顺时针和逆时针的方向判断,是指对着第三轴正向看的回转方向。如图3-14所示。

图3-14 三个平面的圆弧方向

注意:

(1)两种圆弧加工指令格式,R方式(终点半径式)和I、J、K方式(终点圆心增量式)。 (2)终点半径式,圆弧所对应的圆心角≤180°时,圆弧半径+R;圆心角<180°时,圆弧半径-R。

(3)整圆的加工,不可使用R,只能用I、J、K方式。 (4)I、J、K为“0”,可以省略。

54

【例3-1】如图3-15所示,圆弧轮廓加工,加工顺序P1-P2-P1。分别用R方式和I、J、K式编程。

R方式:

G90 G17 G02 X0 Y40. R40. G03 X40. Y0 R-40.

I、J、K方式:

G90 G17 G02 X0 Y40. I0 J40. G03 X40. Y0 I0 J-40.

图3-15例3-1圆弧轮廓加工

【例3-2】如图3-16所示,编写整圆轮廓加工的程序。

整圆加工只能用I、J、K方式编程。

方法1:加工起点定在圆弧与X轴交点处,顺时针方向加工。 G90 G17 G02 X40. Y0 I-40. J0 方法2:逆时针方向加工。 G90 G17 G03 X40. Y0 I-40. J0 简化写法:

G90 G17 G02 I-40.

图3-16例3-2整圆加工

(在加工圆之前,刀具应该位于圆弧加工的起点上)

55

【例3-3】如图3-17所示,用绝对坐标和增量坐标,分别编写轮廓加工的程序。

已知参数:

直线进给速度F=200mm/min 圆弧进给速度F=100mm/min 从原点启动,返回原点。 增量方式圆弧切削使用I、J 绝对方式圆弧切削使用R

图3-17例3-3轮廓加工

绝对方式: %1000 N5 G54 G90 G17 G00 X40. Y-40 . M03 N10 G01 X-80. F200 N15 Y-20. N20 G02 X-40. Y20. R40. F100 N25 G03 X20. Y80. R60. N30 G01 X40. F200 N35 Y-40. N40 G00 X0 Y0 M05 N45 M30

增量方式: %2000 N5 G54 G91 G17 G00 X40. Y-40 M03 N10 G01 X-120. F200 N15 Y20. N20 G02 X40 Y40. I40. F100 N25 G03 X60. Y60. J60. N30 G01 X20. F200 N35 Y-120. N40 G00 X-40. Y40. M05 N45 M30 56

【例3-4】如图3-18所示,续【例3-3】若轮廓深5,Z轴原点在零件上表面,起刀点在零件上方100,补充上述程序。

图3-18例3-4深度轮廓加工

五、 暂停指令(G04) 格式: X_ G04 P_ X——暂停秒数,可带小数点的数。 P——暂停毫秒数,不可带小数点。

使刀具作暂短的无进给光整加工,一般用于镗平面、鍯孔等场合。

例如G04 X5.5 ,表示前一段程序执行完后,经过5.5秒后,后一段程序才执行。G04 P1000,表示前一段程序执行完后,经过1秒(1000ms)后,后一段程序才执行。

57

绝对方式补充程序: N6 Z5. N7 G01 Z-5. N36 G00 Z100. 增量方式补充程序: N6 Z-95. N7 G01 Z-10. N36 G00 Z105. 六、 返回参考点(G28、G29) 1.G28——自动返回到参考点 格式:G28 X_ Y_ Z_ X、Y、 Z——中间点的坐标。

刀具先快速到达中间点,再快速返回参考点。设置中间点的目的是为了防止刀具返回参考点时与工件或夹具发生干涉。

注意:

(1)通常G28指令用于自动换刀或消除机械误差,原则上应在执行该指令前取消各种刀具补偿。

(2)G28记忆移动指令的坐标值和中间点的坐标值。

2.G29——从参考点返回 格式:G29 X_ Y_ Z_

X、Y、 Z——返回的终点坐标。

刀具先从参考点快速到达G28中设定的中间点,再快速到达坐标指定的终点。 注意:

G28和G29成对使用。

如图3-19所示,刀具定位在A点(70,90),快速到达中间点B点(170,190),再快速到达参考点。从参考点返回到B点(170,190),再到达C点(340,30)。程序如下:

N10 G28 X170. Y190. N15 G29 X340. Y30.

图3-19 G28、G29的应用

58

3.4 刀具半径补偿与长度补偿

一、刀具半径补偿(G40、G41、G42) 1.半径刀补的概念

数控系统根据零件轮廓和刀具半径,计算出刀具中心的轨迹。这样,编程人员按轮廓编程,而刀具边缘沿轮廓切削。

G41左刀补(刀具左偏置) 沿刀具进刀方向看,刀具中心在零件实际轮廓的左侧。 G42右刀补(刀具右偏置) 沿刀具进刀方向看,刀具中心在零件实际轮廓的右侧。如图3-20所示。

G40取消刀具半径补偿。

工件

刀具

刀具

G41左刀补 G42右刀补

图3-20 G41、G42的判断

2.建立刀补 格式:

G17 G41 G00 X_ Y_ G18 Z_ X_ D_ _ G19 G42 G01 Y_ Z_ G17、G18、G19——选择建立半径刀补的平面。 G41、G42——建立半径刀补。

G00、G01、X、Y、Z——移动指令及直线段的终点坐标值。

D——半径刀补号,后面两位数字为存放刀具半径值的内存地址。如D01表示调用存储在刀补内存表第01号中的刀具半径值,刀具半径值预先手工输入系统。

3.取消刀补 格式:

G00 X_ Y_ G40 Z_ X_ G01 Y_ Z_

59

G40——取消半径补偿 4.注意

(1)建立和取消半径刀补,必须与移动类指令G00或G01组合,移动的坐标必须是该平面内的坐标。如G17平面建立和取消刀补,在建立和取消半径刀补的程序段,G00、G01后面的坐标只能是X、Y坐标。

(2)建立半径刀具补偿命令,在应用新的半径刀补指令前,应取消前一个刀补,否则刀补值会累加。即建立和取消半径刀补的命令成对出现。

(3)建立刀补后,使用了两个或两个以上的程序段的无坐标移动指令,会自动取消半径刀补,出现过切现象。

如:

G00 G90 G17 G42 Y-70. D01 G01 X120. F200 Y-30.

G04 P500(无坐标移动) G91 Z0.2(无坐标移动) G90 X80. Y40. X0 Y-110. G00 G40 X-40. ……

建立和取消刀补的过程,如图3-21所示。

图3-21刀补的建立和取消

【例3-5】如图3-22所示,编写上凸台精加工程序。工件原点如图所示,半径刀补号D02。

60

%1000 M03 S1000 N5 G55 G90 G17 G41 G00 X40. Y-40. D02 N8 Z5. N9 G01 Z-5. N10 G01 X-80. F200 N15 Y-20. N20 G02 X-40. Y20. R40 F100 N25 G03 X20. Y80. R60. N30 G01 X40. F200

图3-22例3-5半径刀补

N35 Y-40. N36 G00 Z100. N40 G40 X0 Y0 N42 M05 N45 M30

5.半径刀补的作用

在N5程序段建立了左刀补 在N40程序段取消了刀补

(1)简化编程中的刀心坐标的计算。编程人员只要按零件轮廓尺寸编写程序,数控系统根据零件轮廓和刀具半径,计算出刀具中心的轨迹。

(2)刀具磨损,修改半径补偿中的半径值,不必修改程序。如图3-23所示,刀具未磨损时,刀具半径补偿值为R。刀具磨损了▲量,在半径补偿参数表中修改刀具半径值为R-▲,按原程序加工,可以加工出零件的规定尺寸。

(3)实际加工中可以根据工序的不同,将补偿的半径值设定为不同的值,用同一个程序完成粗加工、半精加工、精加工。如图3-24所示,在刀具半径参数表分别输入三个半径值:R1=刀具实际半径R+粗加工余量,R2=刀具实际半径R+半精加工余量,R刀具实际半径。应用同一个程序,应用三次,分别调用不同的刀补号,即完成了零件的粗加工、半精加工和精加工。

61

3-23 半径刀补在刀具磨损中的应用 图3-24 半径刀补在不同工序中的应用

【例3-6】如图3-25所示,编写矩形轮廓加工程序,分别用不同的半径刀补,用同一个程序,完成零件轮廓的粗加工和精加工。

工件原点定在零件的左下角,上表面。刀具在刀库中的位置1,刀具半径10。 从毛坯外下刀,起刀点(-40,-40),粗精加工都采用顺铣。

图3-25 例3-6半径刀补的应用

刀具参数表中输入的数值: 刀具号 01

62

刀具半径 10 …. 10.15

刀补号 01 …. 25

…. 25

二、刀具长度补偿(G43、G44、G49)

加工中心要换刀,各刀具的长度不同,对刀时,将基准刀的刀尖对准工件原点,测出其余各刀与基准刀的长度差值,并输入系统。系统记忆数值,编程时,加入相应的指令,使各刀都能使用同一工件坐标系。如图3-26所示。T01是基准刀,T02、T03为应用刀,H01和H02是T02和T03与T01的长度差值,该值分别输入系统的长度补偿参数表。

G43、G44是建立长度刀补,G49是取消长度刀补。 粗加工程序: %1111 N10 G55 N20 G90 G00 X-40. Y-40. N25 Z-5. N30 M03 S1000 N40 G17 G41 G00 Y-20.X0 D25 N50 G01 Y50. F100 N60 X100. N70 Y0 N80 X-20. N90 G40 G00 X-40. Y-40. N100 M05 N110 M30 精加工程序: N40 G17 G41 G00 Y-20.X0 D01 其余与粗加工程序相同

图3-26 刀具长度补偿

1.G43、G44——建立长度刀补

63

格式:

G43 G00 Z_ H_ _ G44 G01 G43——刀具长度的正向补偿,即比基准刀长的刀应用的补偿。 G44——刀具长度的负向补偿,即比基准刀短的刀应用的补偿。

H——长度刀补号,后面两位数字为存放刀具长度补偿值的内存地址。如H01表示调用存储在刀补内存表第01号中的刀具长度补偿值,长度补偿值预先测量并手工输入系统。

2.G49——取消长度刀补 格式:

G00 G49 Z_ G01 3.注意

(1)建立和取消半径刀补,必须与移动类指令G00或G01组合,移动的坐标必须是Z坐标。

(2)建立了长度补偿,在换刀前,先取消前一把刀的长度刀补再换刀,并加新的长度刀补。

(3)G44在实际中一般不用,而用G43代替。刀具比基准刀长或短,都用G43指令,在系统长度补偿参数表中,比基准刀长时输入正值,比基准刀短时输入负值。

3.5 换刀

一、刀具选择T 格式:T_ _

T_ _——T后面两位数字,代表刀号,即刀具在刀库中的位置号。

刀具选择是指把刀库中指令了刀号的刀具转到换刀的位置上,为换刀做好准备。

二、换刀M06 格式:M06

换刀是指刀库中位于换刀位置的刀与主轴上的刀进行交换。 3.注意

一般是选刀和换刀在一个程序段中,如T02 M06。

3.6 固定循环

固定循环主要用于孔加工,包括钻孔、镗孔和攻螺纹。固定循环(G73-G)指令和固定循环返回(G98、G99)指令。

一、固定循环指令 固定循环指令见表3-3。

表3-3 固定循环指令

孔加工动作

刀具返回方式

G代码

在孔底动作

用途

(-Z方向)

(+Z方向)

G73 间歇进给 快速 高速深孔往复排屑钻

G74 切削进给 主轴正转 切削进给 攻左旋螺纹 G76 切削进给

主轴定向—刀具移动

快速 精镗孔 G80 取消固定循环

G81 切削进给 快速 钻孔 G82 切削进给 暂停 快速 孔底停顿钻孔 G83 间歇进给 快速 深孔往复排屑钻 G84 切削进给 主轴反转

切削进给 攻右旋螺纹 G85 切削进给 切削进给 精镗孔 G86 切削进给 主轴停止 快速 镗孔 G87 切削进给 刀具移动—主轴启动 快速 反镗孔 G88 切削进给 暂停—主轴停止

手动操作 镗孔 G

切削进给

暂停 切削进给

镗孔

二、固定循环的六个动作

如图3-27所示,固定循环一般由下面六个动作组成。 1.X、Y坐标定位 2.快进到参考点R 3.孔加工 4.孔底动作 5.快速返回R点 6.快速返回初始点

图3-27 固定循环动作

65

三、G98、G99——固定循环返回初始点高度、参考点高度

在固定循环指令前,G99指令使固定循环后返回到参考点R高度。在固定循环指令前,G98指令使固定循环后返回到初始点的高度,用于多个同样尺寸孔的最后一个孔的加工。

四、G73~G——孔加工固定循环 一般指令格式:

G73~G X_ Y_ Z_ R_ Q_ P_ F_ L_ X_ Y_——指定孔心坐标 Z_——孔底坐标 R_——参考点R的坐标

Q_——往复钻孔的每次加工深度,应用在G73、G83指令中。 P_——孔底停顿时间,ms为单位。 F_——孔加工切削进给速度。

L_——指定固定循环的次数,L1可以省略,L0机床不动。程序若是G90方式,刀具在一个位置上重复加工L次,程序若是G91方式,刀具在一条直线位置上加工L个孔。

1.G73——高速深孔往复排屑钻 格式:G73 X_ Y_ Z_ R_ Q_ P_ F_

动作如图3-28所示。通过Z轴方向的间断进给,可以实现断屑与排屑。Q每次加工深度,退刀值d由参数(CYCR)设定。

2.G74——攻左旋螺纹 格式:G74 X_ Y_ Z_ R_ F_

主轴反转到孔底,以进给速度正转返回。 3.G76——精镗孔

格式:G76 X_ Y_ Z_ R_ Q_ P_ F_

动作如图3-29所示。在孔底暂停P毫秒,主轴准停,刀具移动Q的偏移量,然后快速返回。

4.G80——取消固定循环 格式:G80 5.G81——钻孔

格式:G81 X_ Y_ Z_ R_ F_ 到达孔底快速返回。 6.G82——孔底停顿钻孔 格式:G82 X_ Y_ Z_ R_ P_ F_

动作轨迹同G81,在孔底停止进给P毫秒再快速返回。 7.G83——深孔往复排屑钻

66

格式:G83 X_ Y_ Z_ R_ Q_ F_

动作轨迹同G73类似,与G73不同的是每次退刀到参考点R。动作如图3-30所示。 8.G84——攻右旋螺纹 格式:G84 X_ Y_ Z_ R_ F_

主轴正转到孔底,以进给速度反转返回。 9.G85——精镗孔

格式:G85 X_ Y_ Z_ R_ F_

切削进给速度到孔底,以进给速度返回。 10.G86——镗孔

格式:G86 X_ Y_ Z_ R_ F_

与G85动作类似,切削进给速度到孔底,主轴停止,快速返回后主轴再重新启动。 11.G87——反镗孔

格式:G87 X_ Y_ Z_ R_ Q_ F_

动作如图3-31所示。X、Y定位后,主轴定向停止,刀具向与刀尖相反的方向按Q值偏移,快速到达孔底,刀具按Q值返回,主轴正转,沿Z轴向上加工到Z点,主轴再次停止,刀具再次偏移Q,快速返回初始点。

12.G88——镗孔

格式:G88 X_ Y_ Z_ R_ Q_ P_ F_

刀具到底孔底后暂停P毫秒,主轴停止,手动操作把刀具从孔中退出,按“循环启动”按钮,快速返回,主轴正转。

13.G——镗孔

格式:G X_ Y_ Z_ R_ P_ F_

与G85动作类似,切削进给速度到孔底,在孔底有P毫秒的停止进给,再以进给速度返回。 14.G74、G84螺纹孔加工循环注意

*攻螺纹进给时主轴反(正)转,返回退出时主轴正(反)转

*进给速度(F值),由主轴转速和螺纹螺距决定:F=主轴转速(r/min)×螺距 *为了建立导程关系提供必要的加速距,即参考平面(R值)位置与工件表面距离>7mm。

67

图3-28 G73 图3-30 G83 图3-29 G76

图3-31 G87

68

【例3-7】零件如图3-32所示,编写零件的孔加工程序。

工件原点的位置如图所示。

刀具:

T04 Ф10麻花钻长度刀补号 H04

T05 Ф13丝锥 长度刀补号 H05

图3-32 例3-7孔加工循环

应用G81钻孔循环和G84右旋螺纹孔加工循环。 %0001

G55(建立工件坐标系) T04 M06(换4号刀钻头)

G90 G43 G00 Z20. H04(加4号刀的长度刀补) X0 Y0 M03 S500

G99 G81 X10. Y10. R10. Z-7. F50(钻孔循环开始钻第1个孔,抬刀到参考点10的

高度)

Y30. (钻孔循环第2个孔,抬刀到参考点10的高度) X30. (钻孔循环第3个孔,抬刀到参考点10的高度) G98 Y10. (钻孔循环第4个孔,抬刀到初始点20的高度) G80(钻孔循环结束)

G49 G00 Z100.(取消4号刀长度刀补) T05 M06(换5号刀丝锥)

G43 G00 Z20. H05(加5号刀的长度刀补)

G99 G84 X10. Y10. R10. Z-5. F500(第1个螺纹孔循环,F=主轴转速500*螺距1=500) G98 X30. Y30. (第2个螺纹孔循环) G80(循环结束) G00 X0 Y0 M05 M02

69

3.7 子程序

在程序中若有重复的程序段,可以将其按一定格式编写成子程序并存储,主程序通过一定格式调用子程序,以达到简化编程缩短程序段的目的。

一、子程序的嵌套

子程序调用子程序称为子程序嵌套。如图3-33所示。

图3-33 子程序嵌套

二、子程序的调用与子程序的结束(M98、M99) 1.M98——子程序的调用 格式:M98 P_ _ _ _ L_ _ P——子程序号,一般为4位数字。

L——调用次数,L1可以省略,L范围1~9999。 2.M99——子程序结束 格式:M99

写在子程序的最后一个程序段。

70

【例3-8】如图3-34所示,零件上要加工七个正六边形,槽宽9.8mm,深4mm,利用子程序编写程序。

编程原点如图所示,Z轴原点在工件上表面。

图3-34 例3-8子程序应用

O200(主程序) G92 X0 Y0 Z20. M03 S1000 M08 M98 P210 G91 G00 Y162 M98 P220 L3 G91 G00 X-70.148 Y202.5 M98 P220 L2 G91 G00 X-140.296 Y162. M98 P220 L2 G91 G00 X-70.148 M05 M09 M30 应用Ф8键槽铣刀加工。

71

O210(子程序1) G92 X0 Y0 Z20. G90 G00 Y121.5 Z5. G01 Z-4. F20. G41 D21 X4.9 F40 G03 X0 Y126.4 R4.9 G01 X-26.212 X-49.594 Y85.9 X-96.36 X-122.571 Y40.5 X-99.1 Y0 X-122.571 Y-40.5 X-96.36 Y-85.9 X-49.594 X-26.212 Y-126.4 X26.212 X49.594 Y-85.9 X96.36 X122.571 Y-40.5 X99.1 Y0 X122.571 Y-40.5 X99.1 Y0 X122.571 Y40.5 X96.36 Y85.9 X49.594 X26.212 Y126.4 X0 G03 X-4.9 Y121.5 R4.9 G40 G01 X0 G90 G00 Z20. Y0 M99 O220(子程序2) G91 G00 Y-81. G92 X0 Y0 Z20. G90 G00 Y40.5 Z5. G01 Z-4. F20. G41 D21 X-4.9 F40 G03 X0 Y35.6 R4.9 G01 X20.554 X41.107 Y0 X20.554 Y-35.6 X-20.554 X-41.107 Y0 X-20.554 Y35.6 X0 G03 X4.9 Y40.5 R4.9 G40 G01 X0 G90 G00 Z20 Y0 M99 72

3.5 简化编程指令

一、镜像(G24、G25) 1.G24——建立镜像 格式:G24 X_ Y_ X_ Y_——镜像轴坐标 2.G25——取消镜像 格式:G25 X_ Y_

(1)G25与G24成对出现,G25中的坐标与G24相同。 (2)使用镜像后,坐标值和刀补同时按指定的镜像线反向。

【例3-9】如图3-35所示,四个对称轮廓的精加工。应用镜像指令编程。轮廓深5mm。工件原点如图,Z轴原点位于工件上表面。

主程序:

%4000 图3-35 例3-9镜像应用 G54 G90 G17 G00 X0 Y0

M03 S1000 子 程序: M98 P4001 %4001 G24 X0 G41 G00 X5. Y5. D01 M98 P4001 G01 Z-5. F100 G25 X0 Y30. G24 X0 Y0 X15. M98 P4001 G03 X30. Y25. R15. G25 X0 Y0 G01 Y10. G24 Y0 X5. M98 P4001 G00 Z20. G25 Y0 G40 G00 X0 Y0 M05 M99 M30 73

二、缩放(G50、G51) 1.G51——建立缩放 格式:G51 X_ Y_ Z_ P_ X_ Y_ Z_——缩放中心坐标

P_——缩放倍数,P>1放大,P<1缩小。 2.G50——取消镜像 格式:G50

【例3-10】如图3-36所示,用缩放指令编写上、下两个三角形轮廓的加工程序。

工件原点位置如图。 已知大三角形顶点坐标a’(10,30)、b’(90,30)、c’(50,110),小三角形是缩放后的图形,缩放系数0.5倍。

图3-36 例3-10缩放应用

子程序 主程序 %5001 %5000 G42 G00 X10. Y30. D01 G55 G90 G17 G00 X0 Y0 M03 S1000 G91 G01 Z-9. F200 G00 Z5 G90 X90. M98 P5001 X50. Y80. G51 X50. Y50. P0.5 X30. Y110. G00 Z1 X10. Y30. M98 P5001 G00 Z20. M05 G40 X0 Y0 M30 M99 74

三、旋转(G68、G69) 1.G68——建立旋转 格式:G68 X_ Y_ P_ X_ Y_——旋转中心坐标

P_——旋转角度,单位度“°”,逆时针方向,0≤P≤360。 2.G69——取消旋转 格式:G69

【例3-11】如图3-37所示,用旋转指令编写轮廓的加工程序。

工件原点位置如图。Z轴原点位于工件上表面。

图3-37 例3-11旋转应用

主程序 %6000 子程序 G54 G90 G17 G00 X0 Y0 M03 S1000 %6001 M98 P6001 G42 G00 X10. Y0 D01 G68 X0 Y0 P45 G01 Z-4. F100 M98 P6001 G02 X20. R5. G69 G03 X30. R5. G68 X0 Y0 P90 X10. R10. M98 P6001 G00 Z20. G69 G40 X0 Y0 M05 M99 M30

75

3.6 加工中心综合应用实例

压板零件图见图3-38。毛坯尺寸100*60*21,表面达到精度要求。完成零件凸起部分的加工。

图3-38 压板零件图

1.加工工艺单

刀具半径

工步

工艺

刀具

刀补号

1 2 3 4

轮廓粗加工 轮廓精加工 钻螺纹底孔 攻螺纹

Ф20立铣刀 Ф20立铣刀 Ф10麻花钻 Ф12丝锥

D15 D01

刀补号 H02 H03

S1000 S2000 S500 S500

200 100 50 50

刀具长度

主轴转速

进给量

2.设定工件原点,工件原点与设计基准重合,定在压板中间,工件上表面。如图3-39所示。

3.计算各基点坐标值。如图3-39所示。

76

图3-39 工件原点和基点坐标

4.计算钻孔深度

钻孔深度可以查机加工手册得出,也可用三角函数计算。见图3-40。 钻孔深度=孔深+R*tg30º=13+6*0.577=16.4

图3-40 孔深计算

5.计算起刀点

轮廓加工刀具半径较大,用一个刀次加工完轮廓。起刀点的位置(-45,-45),在工件外下刀。

6.程序

77

主程序 %8000 G55 G90 G17 M03 S1000 G00 Z100. X0 Y0 F200 G41 G00 X-45. Y-45. D15 M98 P8001(轮廓粗加工) G41 G00 X-45. Y-45. D01 F100 M98 P8001(轮廓精加工) T02 M06(钻螺纹底孔) M03 S500 G43 G00 Z20. H02 G99 G81 X-30. Y-10. R5. Z-16.4 F50 G98 X30. Y10. G80 G49 G00 Z100 X0 Y0 T03 M06(攻螺纹) M03 S500 G43 G00 Z20. H03 G99 G84 X-30. Y-10. R5. Z-12. F50 G98 X30. Y10. G80 G49 G00 Z100. X0 Y0 M05 M30 子程序(轮廓加工) %8001 G01 Z-5. G01 Y-45. G02 X-35. Y25. R10. G01 X45. Y-15. G03 X35. Y-25. R10. G01 X-65. G00 Z100. G40 X0 Y0 M99 78

第4章 宏程序

在数控编程中,宏程序编程灵活、高效、快捷。宏程序不仅可以实现子程序那样,对编制相同加工操作的程序的重复调用,还可以完成子程序无法实现的特殊功能,例如,型腔加工宏程序、固定加工循环宏程序、球面加工宏程序、锥面加工宏程序等。

宏程序还可以实现系统参数的控制,如,坐标系的读写、刀具偏置的读写、时间信息的读写、倍率开关的控制等。

4.1宏程序概念

一、宏程序的定义

在程序中使用变量,通过对变量进行赋值及处理,使程序具有特殊功能。这种有变量的程序叫宏程序。

二、宏程序与普通程序的对比 见表4-1。

表4-1 宏程序与普通程序的对比 普通程序 只能使用常量 常量之间不能运算 程序顺序执行

宏程序 可以使用变量 常量之间可以运算 程序可以跳转

三、宏程序的构成 1.包含变量

2.包含算术或逻辑运算(=)的程序段

3.包含控制语句(例如:GOTO,DO,END)的程序段

4.包含宏程序调用指令(G65,G66,G67或其他G代码,M代码调用宏程序)的程序段。

4.2 FANUC宏程序的变量

一、变量的表示 变量有两种表示方式: 1. # 变量号 2. #[〈表达式〉]

79

FANUC数控系统变量表示形式为# 后跟1~4位数字; 如:#11

#i (i=1,2,3,…) 如:#[#50] #[#2001-1] #[#4/2]

二、变量的使用 在地址符后可使用变量。 如:F#9 若#9=100.0则表示F100 Z-#26 若#26=10.0则表示Z-10.0 G#13 若#13=2.0则表示G02 M#5 若#5=8.0则表示M08

三、变量的赋值 1.直接赋值

变量可以在操作面板MACRO内容处输入,也可用MDI方式赋值,也可在程序内用以下方式赋值。

格式: #_ =数值(或表达式) 如: #1=124.0 #2=#1+#5

(1)直接赋值等号左边不能是表达式

(2)定义变量值时,整数值的小数点可以省略。如#11=123,变量#11的实际值是123.0 。 2.自变量赋值

宏程序体以子程序方式出现,所用变量可在宏调用时在主程序中赋值。 如: G65 P1912 A200. X100. Y20. F20. A200. X100. Y20. F20.——自变量赋值

其中:X、Y、F对应于宏程序中的变量号,变量的具体数值由地址字后的数值决定。 自变量与宏程序体中变量的对应关系有2种,2种方法可以混用。 (1)变量赋值方法Ⅰ

80

表4-2变量赋值方法Ⅰ

自变量 变量 自变量 变量 自变量 变量 自变量 变量 A #1 H #11 R #18 X #24 B #2 I #4 S #19 Y #25 C #3 J #5 T #20 Z #26 D #7 K #6 U #21 E #8 M #13 V #22 F

#9

Q

#17

W

#23

21个英文字母可以给变量赋值。G、L、N、O、P不能作为自变量为变量赋值。 (2)变量赋值方法Ⅱ

表4-3变量赋值方法Ⅱ

引数 变量 引数 变量 引数 变量 引数 变量 A #1 I3 #10 I6 #19 I9 #28 B #2 J3 #11 J6 #20 J9 #29 C #3 K3 #12 K6 #21 K9 #30 I1 #4 I4 #13 I7 #22 I10 #31 J1 #5 J4 #14 J7 #23 J10 #32 K1 #6 K4 #15 K7 #24 K10 #33 I2 #7 I5 #16 I8 #25 J2 #8 J5 #17 J8 #26 K2

#9

K5

#18

K8

#27

例:变量赋值方法Ⅰ

G65 P1912 A200. X100. Y100. F20. #1=200. #24=100. #25=20. #9=20.

例:变量赋值方法Ⅱ

G65 P2021 A10. I5. J0 K0 I0 J30. K9. #1=10. #7=0 #4=5. #8=30. #5=0 #9=9. #6=0

81

例:变量赋值方法Ⅰ、Ⅱ混合

G65 P1010 A1.0 B2.0 I-3.0 I4.0 D5.0 #1=1.0 #2=2.0 #4=-3.0 #7=4.0(无效) #7=5.0 (3)注意:

*混合使用变量赋值方法Ⅰ、Ⅱ,较后的自变量类型有效。

*变量赋值Ⅰ地址和变量一一对应,建议使用变量赋值Ⅰ的方法进行赋值。

四、变量的类型

变量有系统变量和用户变量。

1.系统变量(系统占用部分),用于系统运算时各种数据的存储。 2.用户变量 包括局部变量和公共变量,用户可以使用的变量。 变量类型见表4-4。

表4-4变量类型

变量名

类型

功 能 变量名

该变量总是空,没有值可以

#0

空变量

#0 赋予该变量。

局部变量只能在宏程序中存储数据,

#1~#33

局部变量

断电时,局部变量清空。

用 可以在程序中对其赋值。

户 公共变量在不同的宏程序中意义相变 同,即公共变量对于主程序和从这个主程量 #100~#199

序中调用的每个宏程序中的变量值是相同

公共变量

#500~#999

的。

断电时, #100~#199清空,通电时“0” 断电时, #500~#999数据不变

系统变量用于读写CNC运行

#1000以上

系统变量

时各种数据变化。 #1000以上

例:刀具补偿#2000~#2200

82

4.3 常量

有三个常量: 1.PI——π 2.TRU——真 3.FALSE——假

4.4 宏程序应用

一、宏程序的调用与取消(G65、G66、G67) 1.G65——宏程序非模态调用

非模态调用(单纯调用),指一次性调用宏程序,即宏程序只在一个程序段内有效。 格式:G65 P_ _ _ _ L_ _ _ _ <自变量赋值> P_ _ _ _—— 调用的用户宏程序号

L_ _ _ _—— 重复次数。L范围1~9999,L1可省略。 <自变量赋值>——传递到宏程序中的数据。 (1)任何自变量前必须指定G65 (2)自变量赋值为有小数点的正、负数 (3)L为执行次数,最多9999次,L1可省略

(4)使用自变量赋值,其值被赋给宏程序中相应的局部变量。 例:

2.用户宏程序调用G65与子程序调用M98的区别 (1)G65可以给自变量赋值,M98不能。

(2)M98程序段中包含另一个NC指令,可以执行完再转移到子程序,G65无条件调用宏程序。

3.宏程序的模态调用与取消(G66、G67)

83

主程序: O1111 …… G65 P1000 L2 X100. Z-12. R-7. F80 ……. M30; 宏程序: O1000 #3=#1+#2; IF [#3 GE 180] GOTO 99; G00 G91 X#3; N99 M99; 宏程序模态调用,即指定沿移动轴移动的程序段后调用宏程序,G67取消宏程序模态调用。 模态调用功能近似固定循环的续效作用,在调用宏程序的语句后,机床在指定的多个位置循环执行宏程序。

格式:G66 P_ _ _ _ L_ _ _ _ <自变量赋值> …… G67 例: 主程序: 宏程序: O0110 O9001 … … G66 P9001 L2 A1.0 B3.0 G00 Z-#1 G00 G90 X10.0 G01 Z-#2 F200 Y20.0 … X100. Y250. M99 G67 … G66/G67M30 成对使用

4.5 运算指令

宏程序具有算术运算、逻辑运算、函数运算等功能。 变量的各种运算见表4-5。

84

表4-4变量运算

功能 定义置换 算术运算 三角函数运算

加 减 乘 除 正弦 反正弦 余弦 反余弦 正切 反正切 平方根 绝对值

指数

自然对数

取整

上取整 下取整

逻辑运

异或

#i XOR #j

与 或

#i=FIX[#j] #i=FUP[#j] #i AND #j #i OR #j

去尾取整,小数点以下舍去 进位取整,小数点以下进位

#i=ROUND[#j]

四舍五入整数化

#i=LN[#j]

#i=EXP[#j]

形式 #i=#j #i=#j+#k #i=#j-#k #i=#j*#k #i=#j/#k #i=SIN[#j] #i=ASIN[#j] #i=COS[#j] #i=ACOS[#j] #i=TAN[#j] #i=ATAN[#j] #i=SQRT[#j] #i=ABS[#j]

备注

三角函数及反三角函数值均以度为单位。

如90°30’应表示为90.5°

4.6 控制指令

控制指令起到控制程序流向的作用。FANUC系统有三种控制指令,无条件转移 ( GOTO语句)、条件转移 (IF语句)和循环(WHILE、END语句)。

一、无条件转移 ( GOTO语句) 跳转到指定的程序段号N的程序段。 格式:GOTO n

n——程序段号,范围1~99999。 例:GOTO 10为转移到N10程序段

85

二、条件转移:(IF语句) 1.IF、GOTO 语句

格式:IF [条件表达式] GOTO n

当指定的条件表达式满足时,转移到标有顺序号n的程序段,如果指定的条件表达式不满足时,执行下个程序段

例:

IF [#1 GT 100] GOTO 99 如果条件满足

N99 G00 G90 Z100.

程 序 如果条件不满足

2.IF、THEN语句

格式:IF [条件表达式] THEN

当指定的条件表达式满足时,则执行设定的模式,如果指定的条件表达式不满足时,执行下个程序段。

例:IF [#1 EQ #2] THEN #3=10;如果#1和#2的值相同,则10赋给#3。

三、循环(WHILE、END语句) 格式:WHILE [条件表达式] DO m …… END m

M——程序执行范围的标号,值为1、2、3。如果使用了1、2、3之外的值,系统会报警。 在WHILE后面指定一个条件表达式,当指定条件满足时,则执行从DO到END之间的程序段。否则,转到END后的程序段。

例:

WHILE [#9 GT 360] DO 1 如果条件满足

END 1

程 序 如果条件不满足

循环嵌套

在D0~END循环中的标号(1~3)可根据需要多次使用。但要注意标号在1~3之中。

86

1. 标号(1~3)多次使用

WHILE [条件表达式] DO 1 程 序 END 1 WHILE [条件表达式] DO 1 程 序 END 1 2.DO的范围不能交叉

WHILE [条件表达式] DO 1 程 序 WHILE [条件表达式] DO 2 …… END 1 程 序 END 2

3.DO循环可以三次嵌套

WHILE [条件表达式] DO 1 WHILE [条件表达式] DO 2 WHILE [条件表达式] DO 3 程 序 END 3 END 2 END 1 4.转移可以跳出循环外

WHILE [条件表达式] DO 1

IF [条件表达式] GOTO n

END 1 Nn 5. 转移不能进入循环区 错87

IF [条件表达式] GOTO n

WHILE [条件表达式] DO 1 错

Nn END 1

四、运算符

在控制指令中的条件表达式必须包括运算符,运算符由两个字母组成,不能使用符号,如<、>、≥、≤等。运算符见表4-5。

表4-5 运算符

运算符 含义

英文注释 EQ 等于(=) EQual NE 不等于(≠) Not Equal GT 大于(>) Great Than

GE 大于等于( ≥ ) Great Than or Equal LT 小于(<) Less Than

LE

小于等于( ≤ )

Less Than or Equal

4.7 宏程序应用例题

【例4-1】计算数值1~100累加总和 O8000 #1=0 #2=1

N5 IF [#2 GT 100] GOTO 99 #1=#1+#2 #2=#2+1 GOTO 5 N99 M30

88

【例4-2】铣圆的宏程序 宏程序:

%1010 变量设置: M03 S1000 #1=圆心坐标X值 G00 G90 G54 G43 H01 Z100. #2=圆心坐标Y值 X#1 Y#2 #3=园孔最终Z值 Z#7 #4=圆孔直径 G01 Z#3 F100 #5=刀具直径 G41 D02 X#8 Y#9 #6=[#4+#5]/4 (进刀半径) G03 X#10 Y#2 R#6 #7=#3+50 (进刀高度) G03 X# 10 Y#2 I#11 J0 #8=#1+#4/2-#6(进刀圆弧起点X值) G03 X#8 Y#12 R#6 #9=#2-#6 (进刀圆弧起点Y值) G01 G40 X#1 Y#2 #10=#1+#4/2 (铣圆起点X值) G00 Z100. #11=-#4/2 (I矢量) M05 #12=#2+#6(退刀圆弧Y值) M30

【例4-3】铣球的宏程序 变量设置: 宏程序: #1=球心坐标X值 %2020 #2=球心坐标Y值 M03S1000 #3=球孔最终Z值 G00G90G54G43H01Z100. #4=球的半径 G00X#9Y#2 #5=球的高度 Z50. #6=Z向排刀增量 N20 G01Z#10F100 #7=刀具直径 #12=[#4+#8]*[#4+#8] #8=刀具圆角 #13=[#10-#3+#8]*[#10-#3+#8] #9=#4+#5/2+2 #11=SQRT[#12-#13]+#7/2-#8 #10=0 G01X[#1+#11]Y#2 G03I-#11J0 #10=#10+#6 IF [#10 LE #5] GOTO 20 G00Z100. M05 M30

【例4-4】车床宏程序。零件如图4-1所示,阶梯轴加工宏程序。

方法1——直接宏程序 O0005 G54 S1000; T0100 M03; #6=60.; #7=60.; G00 X#7 Z[#6+5.] T0101; G01 Z#6 F1.0; #2=116.0; #8=10.0; X[#2-2*#8] F0.4; G03 X#2 W-#8 R#8; #5=32.0; G01 Z#5; #3=144.0; #4=18.0; X#3 Z#4;

G00 U10.0 W10.0 T0100; 图4-1 阶梯轴

G28 U0 W0 M05; M30;

方法2——调用宏程序

主程序: 宏程序: O0006; O33; G54 S1000; G00 X#7 Z[#6+5.] T0100; T0100 M03; G01 Z#6 F1.0; G65 P33 A70. B116. C144. D60. I18. X[#2-2*#8] F0.4; J32. K60. E10.; G03 X#2 W-#8 R#8; G00 U10. W10. T0100; G01 Z#5; G28 U0 W0 M05; X#3 Z#4; M30; M99; 90

【例4-5】编制宏程序,如图4-2所示,加工圆周均匀分布的孔群。

自变量赋值说明 #1=(A) 第1个孔的开始角α #2=(B) 等分角度β #4=(I) 圆周半径R #9=(F) 切削进给速度 #11=(H)孔数 #18=(R)固定循环参考点R的Z坐标 #24=(X)圆心X坐标值

#25=(Y)圆心Y坐标值 图4-2 圆周均匀分布的孔群

#26=(Z)孔深

圆心X坐标值=50 圆心Y坐标值=20 圆周半径R=20

第1个孔的开始角α=22.5 等分角度β=45 孔数=4

宏程序: 切削进给速度=200

O1531 固定循环参考点R的Z坐标=10 #3=1 孔深=-12 WHILE [#3 LE #11] DO 1 #5=#1+[#3-1]*#2 #6=#24+#4*COS[#5] 主程序: #7=#25+#4*SIN[#5] O0531 G98 G81 X#6 Y#7 Z#26 R#18 F#9 S1000 M03 F300 #3=#3+1 G54 G90 G00 X0 Y0 Z30. END 1 G65 P1531 X50. Y20. Z-12. R10. G80 F200 A22.5 B45. I20. H4. M99 M30 91

【例4-6】编制宏程序,如图4-3所示,椭圆外轮廓加工。

自变量赋值说明 #1=(A) 椭圆长半轴 #2=(B) 椭圆短半轴 #3=(C) 刀具半径 #4=(I) 椭圆长半轴与水平线夹角 #11=(H) Z坐标每次切深(层间距) #17=(Q) Z坐标,初始值为0 #18=(R) 角度,初始值为0 #19=(S) 角度每次递增量

#24=(X) 圆心X坐标值 #25=(Y) 圆心Y坐标值 #26=(Z) 轮廓高度

图4-3 椭圆外轮廓加工

O18 G52 X#24 Y#25 G00 X0 Y0 G68 X0 Y0 R#4 #13=#3/2 #5=#1+#13 #6=#2+#13 WHILE [#17 LE #26] DO 1 G00 X[#5+#13] Y#13 Z[-#17+1.] G01 Z-#17 F500 G03 X#5 Y0 R#13 #18=0 WHILE [#18 LE 360] DO 2 #7=#5*COS[#18] #8=#6*SIN[#18] G01 #7 Y-#8 #18=#18+#19 END 2 G03 X[#5+#13] Y-#13 R#13 #17=#11+#17 END 1 G00 Z30. G69 G52 X0 Y0 M99 主程序: O08 S1000 M03 G54 G90 G00 X0 Y0 Z30. G65 P18 X50. Y20. Z-10. A50. B30. C10. I20. Q0 H1 R0. S1. M30 92

附表1 常用的辅助功能的M代码、含义及用途

功能 M00

含义 程序停止

程序启动按钮后,在继续执行后面的程序段

执行过程和M00相同,只是在机床控制面板上的“任选停止”开关置于接

M01

选择停止

通位置时,该指令才有效

该指令编在程序的最后一条,表示执行完程序内所有指令后,主轴停止、

M02 M03 M04 M05 M07 M08 M09 M30 M98 M99

程序结束

进给停止、切削液关闭,机床处于复位状态

主轴正转 主轴反转 主轴停止转动 冷却液开 冷却液开 冷却液关 程序结束

准备下一个工件的加工

子程序调用 子程序返回

用于调用子程序 用于子程序结束及返回 用于主轴顺时针方向转动 用于主轴逆时针方向转动 用于主轴停止转动 用于切削液开 用于切削液开 用于切削液关

使用M30时,除表示执行M02的内容之外,还返回到程序的第一条语句,

用途

实际上是一个暂停指令。执行M00后,机床所有动作均被切断,重新按动

93

附表2 数控车床FANUC 0i-T系统常用G指令

G代码

A G00 G01 G02 G03 G04 G10 G11

B G00 G01 G02 G03 G04 G10 G11

C G00 G01

01

G02 G03 G04 G10

00

G11

可编程数据输入方式取消

G20 G21 G27 G28 G32 G34 G36 G37 G40 G41 G42 G50

G20 G21 G27 G28 G33 G34 G36 G37 G40 G41 G42 G92

G20

06

G21 G27

00

G28 G33

01

G34 G36

00

G37 G40 G41 G42 G92

00

设定

G52 G53

G52 G53 G54~G59 G65

G65

G65 G52

00

G53

14 00

机床坐标系设定 选择工件坐标系1~6 调用宏指令

G99 — —

G95 G90 G91

G95 G90

03

G91

增量值编程

局部坐标系设定

G98

G94

G94

05

每转进给 绝对值编程 每分钟进给

07

自动刀具补偿Z 取消刀尖半径补偿 刀尖半径左补偿 刀尖半径右补偿 坐标系或主轴最大速度

G90 G92 G94 G96 G97

G77 G78 G79 G96 G97

G20 G21 G24 G96 G97

02 01

外径/内径车削循环 螺纹车削循环 端面车削循环 恒表面切削速度控制 恒表面切削速度控制取消

变螺距螺纹切削 自动刀具补偿X

G88 G

G88 G

G88 G

侧攻丝循环 侧镗循环

从参考点返回 螺纹切削

G85 G87

G85 G87

G85 G87

10

正面镗循环 侧钻循环

公制输入 返回参考点

G83 G84

G83 G84

G83 G84

钻孔循环 攻丝循环

英制输入

G80

G80

G80

固定钻循环取消

G76

G76

G78

多头螺纹循环

圆弧插补(顺时针) 圆弧插补(逆时针) 暂停

可编程数据输入

G72 G73 G74 G75

G72 G73 G74 G75

G74 G75

00

G76 G77

排屑钻端面孔 外径/内径钻孔循环 端面粗车循环 多重车削循环

快速移动定位

直线插补(切削进给)

功 能

A G70 G71

B G70 G71

C G72 G73

精加工循环 外圆粗车循环

G代码

功 能

94

附表3 数控铣床/加工中心常用G指令汇总

G代码 组别

功能 G代码 组别

功能

G00 快速点定位 G43 刀具长度补偿(+) ▲G01

直线插补

G44

08 刀具长度补偿(-)

01

G02 顺时针圆弧插补 ▲G49 取消刀具长度补偿 G03 逆时针圆弧插补 G54-G59 14

工件坐标系1-6选择 G04 00

暂停(延时) G80 取消孔加工固定循环

▲G17 XY平面选择 G81

孔加工循环

09

G18 02 ZX平面选择 G82 孔底停顿孔加工循环 G19 YZ平面选择 G84 螺纹孔加工循环 G28

自动返回参考点

▲G90

绝对值编程

00

03

G29 由参考点返回 G91 增量值编程 ▲G40 取消半径刀补 G92 00

工件坐标系设定 G41 07

刀具半径补偿(左) ▲G98

固定循环返回初始点 10

G42

刀具半径补偿(右)

G99

固定循环返回参考点

附表4 数控铣床/加工中心固定循环指令

刀具返回方

孔加工动作

G代码

在孔底动作

用途

(-Z方向)

(+Z方向)

G73 间歇进给 快速 高速深孔往复排屑钻

G74 切削进给 主轴正转 切削进给

攻左旋螺纹

主轴定向—刀具移

G76 切削进给

快速

精镗孔

G80 取消固定循环

G81 切削进给 快速 钻孔 G82 切削进给 暂停 快速 孔底停顿钻孔 G83 间歇进给 快速 深孔往复排屑钻 G84 切削进给 主轴反转

切削进给 攻右旋螺纹 G85 切削进给 切削进给 精镗孔 G86 切削进给 主轴停止 快速

镗孔

刀具移动—主轴启

G87 切削进给

快速

反镗孔

G88 切削进给 暂停—主轴停止

手动操作 镗孔 G

切削进给

暂停

切削进给

镗孔

95

附表5 宏程序变量赋值方法Ⅰ

自变量 变量 自变量 变量 自变量 变量 自变量 变量 A #1 H #11 R #18 X #24 B #2 I #4 S #19 Y #25 C #3 J #5 T #20 Z #26 D #7 K #6 U #21 E #8 M #13 V #22 F

#9

Q

#17

W

#23

附表6 宏程序变量赋值方法Ⅱ

引数 变量 引数 变量 引数 变量 引数 变量 A #1 I3 #10 I6 #19 I9 #28 B #2 J3 #11 J6 #20 J9 #29 C #3 K3 #12 K6 #21 K9 #30 I1 #4 I4 #13 I7 #22 I10 #31 J1 #5 J4 #14 J7 #23 J10 #32 K1 #6 K4 #15 K7 #24 K10 #33 I2 #7 I5 #16 I8 #25 J2 #8 J5 #17 J8 #26 K2

#9

K5

#18

K8

#27

附表7 宏程序运算符

运算符 含义

英文注释 EQ 等于(=) EQual NE 不等于(≠) Not Equal GT 大于(>) Great Than

GE 大于等于( ≥ ) Great Than or Equal LT 小于(<) Less Than

LE

小于等于( ≤ )

Less Than or Equal

96

附表8 宏程序变量运算

功能 形式 备注 定义置换 #i=#j 算加 #i=#j+#k 术减 #i=#j-#k 运乘 #i=#j*#k 算 除 #i=#j/#k

三正弦 #i=SIN[#j] 三角函数及反三角函数值角反正弦 #i=ASIN[#j] 均以度为单位。

函余弦 #i=COS[#j] 如90°30’应表示为90.5° 数反余弦 #i=ACOS[#j]

运正切 #i=TAN[#j] 算

反正切 #i=ATAN[#j] 平方根 #i=SQRT[#j] 绝对值

#i=ABS[#j] 函指数

#i=EXP[#j]

自然对数

#i=LN[#j]

运取整 #i=ROUND[#j] 四舍五入整数化 算

上取整 #i=FIX[#j] 去尾取整,小数点以下舍去 下取整

#i=FUP[#j] 进位取整,小数点以下进位

逻与 #i AND #j 辑或

#i OR #j

运异或

#i XOR #j

97

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- 7swz.com 版权所有 赣ICP备2024042798号-8

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务