课时1 数控加工程序的输入、存储和加工程序前的预处理
数控加工程序的输入,就是把已经编好的加工程序,通过输入装置输入到数控系统的零件程序存储器中,然后转换、译码执行。
1. 常用的输入装置
如果用G代码编写的程序在纸上,或根据零件图纸和工艺要求现场编制程序,都需要通过CNC的MDI键盘输入到CNC零件程序存储器中,早期的数控系统得外存储介质是穿孔纸带,是借助于纸带穿孔机,将编制的G代码程序转换为ISO或EIA代码。如果是用上位机CAD/CAM编程要利用U 盘先存储,在用U盘接口或直接RS-232接口传送到CNC零件程序存储器中,当然现代数控系统配备网络接口,也可以用以太网口远程传送零件程序。
1.1 MDI键盘—MDI键盘是手动数据输入(Manual Dada Input ,MDI)键盘的简称。是数控系统最常用的输入装置,用于手工输入不太复杂的零件程序和参数设置、调整等。
MDI键盘有编码键盘和非编码键盘两种,由硬件电路组成直接将所按键转换成为ASCII代码或其他代码,如计算机键盘。而采用硬件提供行列矩阵信号的输出和输入,而用软件进行键的识别和译码等功能称为非编码键盘,使用灵活,广泛应用于CNC中,如图3.1是常见CNC的MDI键盘。

图3.1分离性MDI键盘
1.2 纸带阅读机—用于读入纸带上的ISO或EIA数控程序代码,是一种光电转换装置。
1.3 串行通讯接口—串行通讯是将计算机或CNC的并行处理转变成为串行信号进行传送,连线简单、可靠性高、抗干扰能力强可实现点对点通。
目前广泛采用的是RS-232标准如图3.2是近程和远距离数据通讯接口图。CNC的RS-232接口功能实现输出并/ 串转换,输入实现串/并转换,并符合RS-232异步通讯协议,并经过电平转换电路将TTL电平转换为±12V电平,可以实现远距离和抗干扰传送。如果借助于Modem变换借助于电话线将逻辑0、1转变成为110V,1500HZ/750HZ的交流正弦信号可以传送几十公里,另一端在用Modem将110V,1500HZ/750HZ的交流正弦信号转变为逻辑0、1后再转变成TTL电平信号。常用的RS-232接口连接形式如图


图3.2 CNC 与PC近距离通讯
3.3所示。

图3.3远程串行数据通讯
电缆连接时常见是25针对25针,25对9针和9针对9针。如图4.12所示。图中实线必须连接,虚线的连接与否,可根据通讯双方的传送控制(握手)方式而定。若采用RTS/CTS握手时,虚线必须连接;当采用同步字符XON/XOFF(11H/13H)握手时虚线可以不连接。
图3.4RS-232几种接口的连接形式
异步串行通讯的传送格式如图3.5所示。
图3.5 异步串行通讯传送格式
西门子802S数控系统与PC机串行通讯参数设置如表3-1
表3-1 RS-232接口通讯参数表
参数 | 典型值 | 参数 | 典型值 |
设备 | XON/XOFF | 停止位 | 1 |
波特率(Baud Rate) | 9600 (可变) | 开始字符 | 11H |
奇偶校验(Parity) | Even | 停止字符 | 13H |
数据位(Data Bits) | 8 | 传输结束字符 | 1aH |
2. 零件程序的输入过程
通过输入装置输入到CNC中的程序段,一般先存放在MDI键盘缓冲器或零件程序缓冲器,其规模比较小,只能存放一个或几个程序的数据段,主要用作输入装置和CNC之间的速度匹配,是零件程序输入和执行程序的重要组成部分。然后再传送到CNC中的零件程序存储器。规模较大,可存放许多完整的零件程序。零件程序的输入和译码执行传送过程如图3.6所示。
图3.6 零件程序的输入和输出译码过程
将零件加工程序名和该零件在CNC零件存储器取得首末地址建立一个表,便于零件的执行。
1) 输入工作方式
是执行程序时译码的程序段的来源不同,可分为如图3.7几种工作方式。
纸带工作方式—从纸带阅读一段程序到零件程序缓冲器,可以一边传送一边译码执行直到零件程序传送和执行完,同时纸带的零件程序分段传送到CNC的零件程序存储器保存。
存储器工作方式— 用键盘命令调出零件存储器的零件程序,逐段装入零件程序缓冲器中,供译码执行,直到程序结束。
DNC工作方式—直接数字控制,Direct Numerical Control,通过RS-232串行接口与上位机相连接,用微机中的零件程序直接控制机床的加工过程,一般用于较长的复杂零件和模具的加工,一边逐段传送一边连续执行,也称为外部程序方式。
键盘工作方式—MDI方式,手动输入数据方式,可以直接输入一段程序,并立即执行,通常用于机床维修与调整。
图3.7 几种程序输入方式
2)零件程序的存储编码
外码—零件程序的外部存储编码(ISO和EIA)编码。主要是指穿孔纸带上的编码。要有奇偶校验位。
内码—零件程序在CNC内部的存储编码。是经过转换后,可靠性高,不需要校验位,CNC研制者内部定义的代码。不管外部是何种代码,同意CNC系统的内码是相同的。
表3-2 ASCII码及常用数控代码及其内码
字符 | ASCII | EIA | ISO | 内码 | 字符 | ASCII | EIA | ISO | 内码 | |
0 | 30H | 20H | 30H | 00H | X | 58H | 37 H | D8 | 12H | |
1 | 31 H | 01 H | B1 | 01H | Y | 59 H | 38 H | 59 | 13 H | |
2 | 32 H | 02 H | B2 | 02H | Z | 5A H | 29 H | 5A | 14 H | |
3 | 33 H | 13 H | 33 | 03H | I | 49 H | 79 H | C9 | 15 H | |
4 | 34 H | 04 H | B4 | 04H | J | 4A H | 51 H | CA | 16 H | |
5 | 35 H | 15 H | 35 | 05H | K | 4B H | 52 H | 4B | 17 H | |
6 | 36 H | 16 H | 36 | 06H | F | 46 H | 76 H | C6 | 18 H | |
7 | 37 H | 07 H | B7 | 07H | M | 4D H | 54 H | 4D | 19 H | |
8 | 38 H | 08 H | B8 | 08H | LF/CR | 0D H | 80 H | 0A | 20 H | |
9 | 39 H | 19 H | 39 | 09H | - | 2D H | 40 H | 2D | 21 H | |
N | 4E H | 45 H | 4E | 10H | DEL | 7F H | 7F H | FF | FF H | |
G | 47 H | 67 H | 47 | 11H | %/STOP | 25 H | 0B H | A5 | 22 H |
例如用ISO代码为外码的穿孔纸带的一段零件程序:
N05 G90 G01 G01 X106 Y-60 F46 M05 LF,纸带穿孔后如图3.8
图3.8 SIO外码的穿孔纸带
经过纸带阅读机后,再经代码转换程序转换为内码存储在CNC的内存2000H开始的单元,如表4.3 这一转换和存储过程是由中断服务程序完成的。程序主要是完成转换、删除无效代码,校验和报警等功能。
表3-3零件程序的存储信息
3. 数控加工程序的预处理
数控加工程序输入到零件缓冲器后,要进行预处理,为后续的插补运算工作做好一切准备,预处理包括:数控加工程序的译码、运动轨迹刀补计算和进给速度的处理3个部分。
1). 数控加工程序的译码
为什么要进行译码?
数控加工程序书写格式不统一;尺寸字都是以BCD码形式给定,不便于刀补和插补计算,要转换成为二进制数补码;仅含有本段信息,不包括历史数据,对后续程序的处理不利。
译码定义?—将输入的程序段按一定的规则翻译成统一的数据格式,并按约定的格式存放在指定的一码结果缓冲器中。
译码主要包括代码识别和功能码的译码
(1). 代码识别—软件译码,程序按顺序逐个读取字符,与各个文字码的内码相比较,若相等则说明输入了该字符,并置相应标志或转相应的译码处理子程序,不是内码规定的文字码,说明出错,置出错标志,返回主程序。
(2).功能码的译码—将功能码后面的数字码进行代码转换(BCD—二进制)后送到该功能码指定的译码结果缓冲单元中。如果数字码位数不够,则认为程序出错,置错误标志。
(3).译码结果缓冲器的格式—一定CNC译码格式固定不变的,应含有所有功能码信息,某CNC译码结果缓冲器的格式如表3-4所示
表3-4
地址码 | 字节数 | 数据形式 | 地址码 | 字节数 | 数据形式 | |
N | 1 | BCD | S | 2 | 二进制补码 | |
X | 2 | 二进制补码 | T | 1 | BCD | |
Y | 2 | 二进制补码 | MA | 1 | 特征字(BCD) | |
Z | 2 | 二进制补码 | MB | 1 | 特征字(BCD) | |
I | 2 | 二进制补码 | MC | 1 | 特征字(BCD) | |
J | 2 | 二进制补码 | GA | 1 | 特征字(BCD) | |
K | 2 | 二进制补码 | GB | 1 | 特征字(BCD) | |
F | 2 | 二进制补码 | GC | 1 | 特征字(BCD) |
将互斥的G和M代码归属于同一组,既可以减少缓冲区的容量,还可以查出错误编码。如表3-5为常用的G、M代码的分组表
表3-5
G代码分组 | G代码 | 功能 | M代码分组 | M代码 | 功能 | |
GA | G00 | 快速移动点定位 | MA | M00 | 程序停止 | |
G01 | 直线插补 | M01 | 计划停 | |||
G02 | 顺时针圆弧插补 | M02 | 程序结束(复位) | |||
G03 | 逆时针圆弧插补 | MB | M03 | 主轴正转 | ||
G33 | 螺纹切削 | M04 | 主轴反转 | |||
GB | G04 | 暂停 | M05 | 主轴停 | ||
GC | G90 | 绝对坐标编程 | MC | M06 | 换刀 | |
G91 | 相对坐标编程 |
(4).译码过程
图3.8所示为零件程序译码过程示意图,假设译码结果缓冲器的起始地址为4000H。N后面的两个未压缩字节00H、05H,压缩成为一个字节的BCD代码后“05H”后,存入译码结果缓冲器N代码的对应单元4000H中。G90属于GC组,在译码结果缓冲器对应的4017H中存放“90H”,G01属于GA组,在译码结果缓冲器对应的4015H中存放“01H”,接着读入代码X或Y后面的紧跟的坐标值,这时需要将这些坐标值的内码进行拼接,并转换成2个字节的二进制数的补码,检查无误后存入相应的一码结果缓冲器地址区。。如此重复进行,一直读到结束字符LF后,才进行相关的处理,并返回主程序。对该程序段中没有出现的功能代码,则保留其初始结果(上一程序段的译码结果不变,也就是所说的模态指令)。这样一码结果就包含了CNC后续执行的所有信息和数据。
图3.8 零件程序译码过程示意图
2).刀具补偿原理
刀具补偿定义—编写零件加工程序时,一般按照零件轮廓要求决定零件程序中坐标尺寸,而在数控机床实际加工时,CNC控制的是刀具中心(或基准点)轨迹,靠刀具的刀尖或刀刃外缘来实现切削。因此必须根据刀具的形状、尺寸等对刀具中心位置进行偏置,将编程零件轨迹变换为刀具中心轨迹,从而保证刀具按其中心轨迹移动,能够加工出所要求的零件轮廓,这种变换称为刀具补偿,也叫做刀具偏置。
刀具补偿可分为:如图刀具长度补偿、刀具半径补偿和刀具磨损量的补偿,铣刀主要考虑刀具半径补偿、钻头主要考虑刀具长度补偿、车刀主要考虑两个坐标的长度补偿和刀具半径补偿,刀具编号、长度、半径和磨损量等参数事先要存入CNC的刀补参数表中,不同的刀补号对应着不同的参数,编程人员在编程时,通过调用不同的刀补号来满足不同的刀补要求。
图3.9 不同刀具的补偿原理
(1).刀具的长度补偿
①铣床和钻床的刀具长度补偿,如图3.10所示,若用标准刀具对刀后,并且知道所更换刀具比标准刀具长或短L,则要用要加G43正向偏置或G44负向偏置指令,来计算测量基准点的坐标
是标准刀具的距离基准点的长度,对到时自动计算。
图3.10也可以把刀具长度的测量基准作为刀具。则每一把刀具经过对到后都进行了刀具长度补偿,不需要G43和G44指令,只需要正确选用刀具即可。
图3.10 依标准刀具为基准的铣床刀具长度补偿和应用举例
![]()
可见,刀补计算就是根据编程坐标和刀具尺寸,计算出刀具中心坐标,供后续处理软件插补运算。
②车刀刀具长度补偿
在X、Z平面内实施的刀具刀尖(切削点)到刀架参考点(一般是刀架的中心位置)
作为刀具中心的控制点,在进行X、Z两个方向的长度补偿。如图3.11所示,设编程
图3.11车床刀具补偿计算
点为
,车刀的长度为
,刀架参考点坐标为:
![]()
这里忽略了刀具圆弧半径补偿。认为是理想刀尖,实际上,刀尖处总是存在圆弧的,要想正确的实现零件加工,处了进行长度补偿外,还要进行刀具圆弧半径补偿。
(2).刀具半径补偿
连续轮廓加工过程中。因为刀具不是理想的质点,都有一定形状和大小,如铣刀半径、钼丝半径、车刀的刀尖圆弧半径等。如果不考虑刀具半径,让刀具中心按编程轨迹运动,则加工出来的零件轮廓就会偏离图纸要求,产品报废或不合格。
如图4.17是车刀圆弧半径车内园时,不加刀具圆弧半径对加工表面的影响程度,刀尖圆弧半径越大,影响程度越大,严重时产品质量不合格。
图3.12 刀尖圆弧半径对加工表面形状的影响
因此在实际加工前,由操作者必须将车刀、铣刀或钼丝半径作为刀偏参数输入到CNC的系统中,并由零件的编程人员根据刀具的行进方向与工件之间的相对位置,在零件程序中用G41、G42指令指定偏置方向,CNC就会根据刀补值自动计算做出刀具中心的移动轨迹,加工出符合要求的零件。
图4.18是某连续轮廓轨迹刀具半径补偿示意图,起到点在O1处,从O1到A直线插补并建立刀补G41,否则,将会铣掉A处的刀具半径的圆弧,不再是直线与直线过度,形成废品。整个过程中刀补已知进行,如果想从A2回到原来起到点O1,要撤销刀补G40否则,回不到O1,
图3.13 刀具半径补偿示意图
①刀补方向—刀具沿编程轨迹前进方向左侧行进时,称为左刀补用G41表示。刀具沿编程轨迹前进方向右侧行进时,称为右刀补用G42表示。取消刀补时用G40表示。
②刀补的执行过程—刀补建立—刀补执行—刀补撤销。
图3.14为刀补方向 图3.15 转角示意图(阴影部分为工件侧)
③刀具半径补偿的转接过渡类型
一般CNC加工轨迹仅限于直线与直线(L-L)、直线于圆弧(L-C)、圆弧与直线(C-L)、圆弧与圆弧(C-C)根据两轮廓段交点处在工件侧的夹角
的不同,直线过渡的刀具b半径补偿可分为以下3种转接过渡类型。
缩短型过渡,
伸长型过渡,
插入型过渡。
图2.21为L-L建立刀补过程中三种类型过渡形式,图2.22为L-L刀补进行过程中三种类型过渡形式,图2.23为L-L刀补撤销过程中三种类型过渡形式。

图3.16 刀补建立示意图

图3.17 刀补进行示意图

图3.18刀补撤销示意图
刀具半径补偿的计算—主要是计算各种转接类型的转接点坐标,也就是根据相邻编程轮廓段的起止点坐标值,判断转接类型,然后调用相应的计算程序,计算出转接点坐标值。
现代CNC称为全功能数控,刀补计算已经完全由CNC完成,用户不在关心各种转接类型,只需按工件轮廓编程即可,这种计算都有CNC系统程序自动完成,只需建立刀补、执行刀补和撤销刀补以及刀具半径D即可。
(3)进给速度处理
零件加工时的进给速度是用F代码给定的,经译码后存放在缓冲寄存器指定单元中供处理程序使用,并且依插补方式的不同分为两种处理方式,
I. 脉冲增量插补方式的速度处理计算
脉冲增量插补方式大多用于以步进电机作为执行元件的开环数控系统中,而坐标轴的运动速度是通过控制向步进电机发出的脉冲频率来实现的,所以进给速度处理就是根据编程的进给速度值来确定脉冲源频率的过程。
现假设编程进给速度为F(mm/min),脉冲源频率为(f) ,数控系统的脉冲当量是δ,则可推导出如下关系F=60δf
反过来可以求得脉冲源频率为f=F/(60δ)
可见对于给定的F值,只要是按上式来选择脉冲源频率,即可实现要求的进给速度。
II. 数据采样插补方式的速度处理计算
该方式大多用于依直流或交流伺服电动机作为执行元件的闭环或半闭环数控系统中,而坐标轴进给速度的控制是通过伺服系统的位移给定值,即一个插补周期的位移量来确定的。
假设某数控系统的插补周期为Ts(ms),编程的进给速度值为F(mm/min),数控机床上的进给倍率开关设置的速度系数为K,则可推导得到一个插补周期内要求的进给位移为
ΔL=KFTs/(60×1000) (mm)
只要数控系统在每个插补周期内保证ΔL的进给量,则可实现编程的进给速度。
当然,以上给出的是稳定状态下的进给速度处理,事实上,当机床启动、停止或加工过程改变速度时,还需要进行自动的加、减速度处理。
III、加减速控制
由于机床的运动存在惯性,因此,在进行启动和停止时要进行加减速度控制,使速度曲线沿一定斜率上升或下降,保证系统不产生失步或超调。图3.19所示为两种常用的加减速度控制方法的速度曲线,分别称为指数加减速控制和直线加减速控制曲线。

图3.19 加减速控制

