1第一章引言制造业是国民经济的基础,它的发展程度突出反映了一个国家、地区的经济实力和综合国力,人民的生活水平和生活质量,国防能力和社会发展程度。近年来,工业发达国家和一些新兴工业化国家已把发展制造业作为一项极其重要的发展战略和政策,投入巨大的财力、人力和物力,进行先进制造技术的研究。先进制造技术逐步成为国家中长期发展的重大关键技术和经济增长的根本动力。数控加工技术是先进制造技术的重要组成部分和基础之一,在数控机床上加工非圆曲面和其它复杂曲面一直是数控加工的难题,而市场竞争日益激烈,要求加工周期越来越短,如何提高这些复杂零件的加工效率和加工质量已成为数控加工技术的一个重要课题。1.1数控技术的现状数控技术是用数字程序控制数控机床实现自动加工的技术。它综合了应用数学、计算机、通讯、微电子、自动控制、传感测试、机械制造等多门技术。自上世纪50年代第一台数控机床诞生以来,经历半个多世纪的发展,数控系统由最初的电子管、晶体管、集成电路到超大规模集成电路,尤其自20世纪80年代以来,数控装置广泛采用32位到64位CPU组成的微处理器,极大地提高了系统的集成度,使体积缩小,机构模块化;驱动装置广泛采用交流伺服、数字化;CNC系统人工智能化,并有多种通信功能,数控系统可靠性不断提高。近年,随着计算机技术的迅猛发展,不同层次的开放式数控系统应运而生,目前正朝标准化开放体系结构前进。1.2发展数控技术的目的和重要性数控技术和数控装备是制造工业现代化的重要基础。这个基础直接影响国家的经济发展和综合国力,关系到国家的战略地位。因此,世界各工业发达国家均采取特别措施来发展自己的数控技术及其产业。我国数控技术虽然起步晚,但国家非常重视。近年来,我国数控机床制造业取得了快速发展,数控机床的产量以年超过30﹪的速度递增,数控机床的可供品种达1500余种,2007年产量预计10万台。目前全国在役数控机床20多万台。充分发挥数控机床在制造业中的作用,需要大量的数控机床编程和加工人才,尤其是对复杂零件的编程及加工,各行业急需大批这样高水平人才。1.3设计的目的和要求在数控车床上加工常规零件,如圆柱面、圆锥面、圆弧面,现在系统已比较成熟,但在加工非圆曲面和其它的复杂曲面就缺乏统一性、成熟性和系统性。本2文通过对复杂零件的工艺设计和非圆曲面的刀具轨迹优化算法设计,编制出复杂零件的加工程序,并利用此程序对零件进行加工。3第二章数控机床加工的原理在数控机床上自动加工零件,首先根据被加工零件的图样,将工件的形状、尺寸及技术要求数字化,采用手工或计算机按运动顺序和所用数控机床规定的指令代码及程序格式编制加工程序。并将该程序输入到数控系统,系统读出信息,并送入数字控制装置。数控装置就依照指令上的代码进行一系列的处理和运算,变成脉冲信号,并将其输入驱动装置,驱动机床主运动、进给运动及辅助运动,并使其相互协调来实现对零件的自动加工。CNC系统对数控机床的控制分为“轨迹控制”和“逻辑控制”。2.1轨迹控制轨迹控制是对机床各坐标轴的速度和位置控制,它通过插补实现。实际加工中零件的形状各式各样,有由直线、圆弧组成的零件轮廓;也有由诸如自由曲线、曲面、方程曲线和曲面体构成的零件轮廓。对这些复杂的零件轮廓最终还是要用直线和圆弧进行逼近以便数控加工。插补计算就是对数控系统输入基本数据(如直线的起点、终点坐标,圆弧的起点、终点及圆心坐标等),运用一定的算法计算,并根据计算结果向相应的坐标发出进给指令,对应着每一个进给指令,机床在相应的坐标方向上移动一定距离,最终将工件加工出所需的轮廓形状。数控系统中最常用的插补方法是逐点比较法。2.1.1逐点比较法直线插补如图2-1所示,设直线OA为第一象限的直线,起点为坐标原点O(0,0),终点为A(Xe,Ye),P(Xi,Yj)为加工点。令:Fi,j=XeYj-XiYe。根据加工点位置的不同有以下三种情况:(1)如Fi,j=0,则点P在直线OA上;(2)如Fi,j>0,则点P在直线OA上方;(3)如Fi,j<0,则点P在直线OA下方;图2-1逐点比较法第一象限直线插补4为了逼近直线,规定Fi,j≥0时,刀具向+X方向进给一步(一个脉冲当量);Fi,j<0时,刀具向+Y方向进给一步。每走一步利用递推公式计算出新加工点的Fi,j值,以决定下一步进给方向。总步数J=Xe+Ye,每走一步J减1,当J为0时刀具到达直线终点,插补结束。第一象限的直线插补算法流程图如图2-2所示。图2-2第一象限直线插补算法流程图其它三个象限的直线插补可根据相同原理得到其插补计算方法。根据以上算法,每个象限可设计一个子程序。下面是第一象限的子程序,其它象限只须加以修改即可。该程序用MCS-51指令编写,电机采用步进电机,采用8255并行接口的A、B两端口进行控制。图2-3是直线插补程序的流程图。内存分配表见表2-1。5图2-3直线插补流程图表2-1内存分配表内存单元地址存放内容28H终点坐标SE值29H终点坐标SE值2AH插补值X2BH插补值Y2CH偏差值A70H控制电机正、反转的控制字14H计数器开始设栈指针,8255初始化,A口、B口输出,清内存,送控制电极代码进内存确定控制字初值#0AH→70H循环次数#14→R3各坐标值及偏差值送内存Xe→28HX→2AHF→2EHYe→29HY→2BHF≥0?置控制字为03H置控制字为0CH调环分子程序沿+X走一步,调延时程序调环分子程序沿+Y走一步,调延时程序F=F-YeX=X+1F=F+XeY=Y+1Y=Ye?结束终点判别NNY6直线插补的程序清单如下:ORG2300HMAIN:MOVSP,#60H;主程序开始MOVR0,#T8255;8255初始化MOVA,#80HMOV@R0,ALOP4:MOV28H,#0C8H;XeMOV29H,#0C8H;YeMOV2AH,#00H;XMOV2BH,#00H;YMOV2EH,#00H;FMOV70H,#0AHLOP3:MOVA,2EHJBACC.7,LOP1MOVA,70HSETBACC.0CLRACC.2MOV70H,A;OB+XLCALLMOTR;调环行分配器,x方向走一步LCALLDELAGMOVA,2EHSUBBA,29H;F-YeINC2AH;X+1AJMPLOP2LOP1:MOVA,70HSETBACC.2CLRACC.0MOV70H,A;OF+YLCALLMOTR;Y方向走一步LCALLDELAYMOVA,2EHADDA,28H;F+XeINC2BH;Y+1LOP2:MOV2EH,A7MOVA,28HCJNEA,2AH,LOP3;Xe=X?ST:MOVR0,#T8255;关8255MOVA,#00HMOVX@R0,ALJMPST2.1.2逐点比较法圆弧插补如图2-4所示,设逆圆弧AB在第一象限,原点为圆心O,起点A(Xo,Yo),终点B(Xe,Ye),半径为R,瞬时加工点为P(Xi,Yj),令Fi,j=Xi2+Yj2-R2。根据加工点位置的不同有以下三种情况:(1)如Fi,j=0,则点P在圆弧AB上;(2)如Fi,j>0,则点P在圆弧AB外侧;(3)如Fi,j<0,则点P在圆弧AB内侧;图2-4逐点比较法第一象限圆弧插补为了逼近圆弧,规定Fi,j≥0时,刀具向-X方向进给一步(一个脉冲当量);Fi,j<0时,刀具向+Y方向进给一步。每走一步利用递推公式计算出新加工点的Fi,j值,以决定下一步进给方向。总步数J=|Xe-Xo|+|Ye-Yo|,每走一步J减1,当J为0时刀具到达圆弧终点,插补结束。8第一象限的逆圆弧插补算法流程图如图2-5所示。图2-5第一象限逆圆弧插补算法流程图对于第一象限的顺圆及其第二、三、四象限的顺逆圆弧插补,可根据相同原理得到其插补计算方法。根据以上算法,每个象限可设计顺、逆圆弧两个子程序。下面是第一象限逆圆的子程序,其它象限只须加以修改即可。该程序用MCS-51指令编写,电机采用步进电机,采用8255并行接口的A、B两端口进行控制。图2-6是圆弧插补程序的流程图。程序清单如下:XLEQU18HXHEQU19HYLEQU28HYHEQU29HXeLEQU1AHXeHEQU1BHYeLEQU2AHYeHEQU2BHFLEQU2CHFHEQU2DHORG2400H9图2-6是圆弧插补程序的流程图MAIN:MOVSP,#60HMOVR0,#0EBHMOVA,#80HMOVX@R0,ALCALLDSUP;调装码子程序开始设栈指针,8255初始化清内存,送控制电极代码进内存确定控制字初值#08H→70H各坐标值及偏差值送内存F→A检测最高位F≥0?置控制字为09H置控制字为0CH调环分子程序沿-X走一步,调延时程序调环分子程序沿+Y走一步,调延时程序F-2X+1→FX-1→XF+2Y+1→FY+1→YYL=YeL?结束终点判别NY调乘法子程序2X→F调乘法子程序2Y→FYH=YeH?NNYYY10MOVR5,#11HMOVR6,#21HMOV70H,#08HMOVXL,#80H;XLMOVXH,#0CH;XHMOVYeL,#00H;YeLMOVYeH,#00H;YeHMOVXeH,#00H;XeHMOVXeL,#00H;XeLMOVYL,#00H;YLMOVYH,#00H;YHMOVFL,#00H;FLMOVFH,#00H;FHMOV1CH,#00HMOV1DH,#00HLOOP3:MOVA,FHJNBACC.7.LOOP1MOVA,70HSETBACC.2CLRACC.0MOV70H,A;OC+YLCALLMOTRLCALLDELAYMOVR1,#28H;YLMOVR0,#1CHMOVR7,#02HLCALLCHFZ;2*YADD:CLRCMOVA,FLADDCA,1CHMOVFL,AMOVA,FHADDCA,1DH;F+2YMOVFH,A11CLRCMOVA,YLADDA,#01HMOV28H,AMOVA,YHADDCA,#00HMOVYH,A;Y+1CLRCMOVA,FLADDA,01HMOVFL,A;F+2Y+1MOVA,FHADDCA,00HMOVFH,AAJMPLOOP2LOOP1:MOVA,70HSETBACC.0MOV70H,A;09-XLCALLMOTRLCALLDELAYMOVR1,#18H;XLMOVR0,1CHMOVR7,02HLCALLCHFZ;2*XSUB:CLRCMOVA,FLSUBBA,1CHMOVFL,AMOVA,FHSUBBA,1DHMOVFH,A;F-2XCLRCMOVA,XLMOVXH,A;X-112CLRCMOVA,FLADDA,#01HMOVFL,AMOVA,FHADDCA,00HMOVFH,A;F-2X+1LOOP2:MOVA,YHCJNEA,YEH,LOOP3A;YH=YEH?MOVA,YLCJNEA,YEH,LOOP3A;YL=YEH?STMOVP0,0EBHMOVA,00HMOVX@R0,AAJMPSTLOOP3AAJMPLOOP3END;主程序结束ORG2500HCHFZ:PUSHPSW;双字节乘2子程序PUSHAPUSHBPUSHCMOVR2,00HSHIOMOVA,@R1MOVB,#02HPUSHPSWMULABPOPPSWADDCA,R2MOV@R0,AMOVR2,BINCR0INCR1DJNZR7,SHIO13POPBPOPAPOPPSWRET2.1.3对非圆曲线面加工的程序设计非圆曲线的加工编程采用等距离逼近法。图2-7非圆曲线的程序设计如图2-7所示,按曲线的一个坐标轴把曲线平均分成若干段,每一段为一个步距△X,利用曲线方程分别计算出各点的Y值,把这些点依次用直线连接起来,就可以获得一个逼近曲线的折线。步距越小折线越接近曲线。此算法可用C语言的循环指令来实现,程序设计的流程图如图2-8所示。2.2逻辑控制逻辑控制由PLC(可编程序控制器)来完成。在数控机床运行过程中,以CNC内部和机床各行程开关、传感器、按钮、继电器等开关信号状态为条件,按预先规定的逻辑关系对主轴的启停、换向、刀具的更换、工