数控编程 非圆曲线数学处理的基本过程Word格式.docx
《数控编程 非圆曲线数学处理的基本过程Word格式.docx》由会员分享,可在线阅读,更多相关《数控编程 非圆曲线数学处理的基本过程Word格式.docx(150页珍藏版)》请在冰豆网上搜索。
为了提高工效,降低出错率,有效的途径是计算机辅助完成坐标数据的计算,或直接采用自动编程。
一个零件的轮廓往往是由许多不同的几何元素所组成,如直线、圆弧、二次曲线以及阿基米德螺线等。
各几何元素间的联结点称为基点。
如两直线间的交点,直线与圆弧或圆弧与圆弧间的交点或切点,圆弧与二次曲线的交点或切点等。
显然,相邻基点间只能是一个几何元素。
对于由直线与直线或直线与圆弧构成的平面轮廓零件,由于目前一般机床数控系统都具有直线、圆弧插补功能,故数值计算比较简单。
此时,主要应计算出基点坐标与圆弧的圆心点坐标。
将组成零件轮廓的曲线,按数控系统插补功能的要求,在满足允许的编程误差的条件下进行分割,即用若干直线段或圆弧段来逼近给定的曲线,逼近线段的交点或切点称为节点。
对刀时是通过一定的测量手段使刀位点与对刀点重合,数控系统从对刀点开始控制刀位点运动,并由刀具的切削刃部分加工出要求的零件轮廓。
用直线逼近零件轮廓曲线的节点计算非圆曲线节点坐标的计算
非圆曲线节点坐标的计算,用直线逼近零件轮廓曲线的节点计算
常用的计算方法有:
等间距法、等弦长法、等误差法和比较迭代法等。
等间距法就是将某一坐标轴划分成相等的间距。
如图2-12(a)所示,沿X轴方向取∆X为等间距长,根据已知曲线的方程y=f(x),可由xi求得yi,xi+1=xi+x,yi+1=f(xi+∆x)。
如此求得的一系列点就是节点。
将相邻节点联成直线,用这些直线段组成的折线代替原来的轮廓曲线。
坐标增量∆X取得愈小则δ插愈小,这使得节点增多,程序段也增多,编程费用高,但等间距法计算较简单。
字串5
a)
b)字串8
图2-12
等间距法和等弦长法
a)等间距法
b)等弦长法
等弦长法就是使所有逼近直线段长度相等,如图2-12(b)所示。
由于零件轮廓曲线y=f(x)的曲率各处不等,因此首先应求出该曲线的最小曲率半径Rmin,由Rmin及δ允确定允许的步长l,然后从曲线起点a开始,按等步长l依次截取曲线,得b、c、d、…点,则ab=bc=…=l即为所求各直线段。
总的看来,此种方法比等间距法的程序段数少一些。
但当曲线曲率半径变化较大时,所求节点数将增多,所以,此法适用于曲率变化不大的情况。
等误差法是使逼近线段的误差相等,且等于δ允,所以此法较上两种方法合理,特别适合曲率变化较大的复杂曲线轮廓。
如图2-13所示。
下面介绍用等误差法计算节点坐标的方法。
设零件轮廓曲线的数学方程为Y=f(X)。
图2-13
等误差法
(1)以起点a(Xa,Ya)为圆心,以为半径作圆。
其圆方程为
(2-1)
式中Xa、Ya为已知的a点坐标值。
(2)作δ允圆与曲线Y=f(X)的公切线MN,则可求公切线MN的斜率K
为求YN,YM,XN,XM,需解下面的方程组:
字串8
式中的允差圆即δ允圆,Y=F(X)表示δ允圆的方程,见(2-1)式。
(3)过a点作斜率为K的直线,则得到直线插补段ab,其方程式为
Y-Ya=K(X-Xa)
(4)求直线插补节点b的坐标。
字串6
联立方程组:
求的交点b(Xb,Yb)的坐标值,便是第一个直线插补节点。
(5)按以上步骤顺次求得c,d、…
各节点坐标。
用等误差法,虽然计算较复杂,但可在保证δ允的条件下,得到最少的程序段数目。
此种方法的不足之处是直线插补段的联结处不光滑,使用圆弧插补段逼近,可以避免这一缺点。
用圆弧逼近零件轮廓曲线的节点计算非圆曲线节点坐标的计算
用圆弧逼近零件轮廓曲线的节点计算
用圆弧逼近非圆曲线,目前常用的算法有曲率圆法、三点圆法和相切圆法等。
(1)曲率圆法圆弧逼近的节点计算
1)基本原理
曲率圆法是用彼此相交的圆弧逼近非圆曲线。
已知轮廓曲线Y=f(X)如图2-14所示,从曲线的起点开始,作与曲线内切的曲率圆,求出曲率圆的中心。
以曲率圆中心为圆心,以曲率圆半径加(减)δ允为半径,所作的圆
(偏差圆)与曲线Y=f(X)的交点为下一个节点,并重新计算曲率圆中心,使曲率圆通过相邻的两节点。
图2-14
曲率圆法圆弧段逼近
重复以上计算即可求出所有节点坐标及圆弧的圆心坐标。
2)计算步骤
①以曲线起点(xn,yn)开始作曲率圆:
圆心
半径
②偏差圆方程与曲线方程联立求解:
得交点(xn+1,yn+1)
③求过(xn,yn)和(xn+1,yn+1)两点,半径为Rn的圆的圆心:
得交点(ζm,ηm),该圆即为逼近圆。
(2).三点圆法圆弧逼近的节点计算
图2-15
三点圆弧段逼近
三点圆法是在等误差直线段逼近求出各节点的基础上,通过连续三点作圆弧,并求出圆心点的坐标或圆的半径。
如图2-15所示,首先从曲线起点开始,通过P1、P2、P3三点作圆。
圆方程的一般表达形式为
x2+y2+Dx+Ey+F=0
其圆心坐标
通过已知点P1(x1,y1)、P2(x2,y2),P3(x3,y3)的圆,其
为了减少圆弧段的数目,应使圆弧段逼近误差δ=δ允,为此应作进一步的计算。
设已求出连续三个节点P1、P2、P3处曲线的曲率半径分别为RP1、RP2、RP3,通过P1、P2、P3三点的圆的半径为R,取
,按算出δ值,
按δ值进行一次等误差直线段逼近,重新求得P1、P2、P3三点,用此三点作一圆弧,该圆弧即为满足δ=δ允条件的圆弧。
(3).相切圆法圆弧逼近的节点计算
如图2-16所示粗线表示工件廓形曲线,在曲线的一个计算单元上任选四个点A、B、C、D,其中A点为给定的起点。
AD段(一个计算单元)曲线用两相切圆弧M和N逼近。
具体来说,点A和B的法线交于M,点C和D的法线交于N,以点M和N为圆心,以MA和ND为半径作两圆弧,则M和N圆弧相切于MN的延长线上G点。
曲线与M、N圆的最大误差分别发生在B、C两点,应满足的条件是:
图2-16
用相切圆弧逼近轮廓线
两圆相切G点
(2-2)
满足δ允要求
(2-3)
2)计算方法:
①
求圆心坐标的公式。
点A和B处曲线的法线方程式为
(x-xA)-kA(y-yA)=0
(x-xB)-kB(y-yB)=0字串1
式中kA和kB为曲线在点A和B处的斜率,k=dy/dx。
解上两式得两法线交点M(圆心)的坐标为:
(2-4)
同理可通过C、D两点的法线方程求出N(圆心)点坐标为:
(2-5)
②
求B、C、D三点坐标。
根据(2-2)和(2-3)式,得
(2-6)字串5
(2-7)
式中的A、B、C、D的y坐标值分别由以下公式求出
yA=f(xA),yB=f(xB)
yC=f(xA),yD=f(xD)
再代入(2-6)和(2-7)式,用迭代法可求出B、C、D坐标值。
③求圆心M、N坐标值和RM、RN值。
将B、C、D坐标值代入(2-4)和(2-5)式即求出圆心M和N的坐标值,并由此求出RM和RN值。
应该指出的是,在曲线有拐点和凸点时,应将拐点和凸点作为一个计算单元(每一计算单元为四个点)的分割点
FUNAC用户宏程序简介
用户宏程序
能完成某一功能的一系列指令像子程序那样存入存储器,用一个总指令来它们,使用时只需给出这个总指令就能执行其功能。
l所存入的这一系列指令——用户宏程序
l调用宏程序的指令————宏指令
l特点:
使用变量字串6
一.变量的表示和使用字串8
(一)变量表示
#I(I=1,2,3,…)或#[<式子>]字串4
例:
#5,#109,#501,#[#1+#2-12]
(二)变量的使用
1.地址字后面指定变量号或公式字串1
格式:
<地址字>#I
<地址字>-#I
<地址字>[<式子>]字串1
F#103,设#103=15 则为F15
Z-#110,设#110=250 则为Z-250
X[#24+#18*COS[#1]]
2.变量号可用变量代替
#[#30],设#30=3 则为#3
3.变量不能使用地址O,N,I
下述方法下允许
O#1;
I#26.00×
100.0;
N#3Z200.0;
4.变量号所对应的变量,对每个地址来说,都有具体数值X围
#30=1100时,则M#30是不允许的
5.#0为空变量,没有定义变量值的变量也是空变量
6.变量值定义:
程序定义时可省略小数点,例:
#123=149字串4
MDI键盘输一.变量的种类
1.局部变量#1~#33
一个在宏程序中局部使用的变量
A宏程序 B宏程序
……
#10=20X#10 不表示X20
……字串7
断电后清空,调用宏程序时代入变量值
2.公共变量#100~#149,#500~#531
各用户宏程序内公用的变量
上例中#10改用#100时,B宏程序中的字串5
X#100表示X20
#100~#149 断电后清空
#500~#531保持型变量(断电后不丢失)字串7
3.系统变量
固定用途的变量,其值取决于系统的状态
#2001值为1号刀补X轴补偿值
#5221值为X轴G54工件原点偏置值
入时必须输入小数点,小数点省略时单位为μm
一.运算指令
运算式的右边可以是常数、变量、函数、式子字串9
式中#j,#k也可为常量
式子右边为变量号、运算式
1.定义
#I=#j字串8
2.算术运算
#I=#j+#k
#I=#j-#k
#I=#j*#k
#I=#j/#k
3.逻辑运算
#I=#JOK#k
#I=#JXOK#k
#I=#JAND#k
4.函数字串9
#I=SIN[#j]正弦
#I=COS[#j]余弦
#I=TAN[#j]正切
#I=ATAN[#j]反正切
#I=SQRT[#j] 平方根
#I=ABS[#j] 绝对值
#I=ROUND[#j] 四舍五入化整
#I=FIX[#j] 下取整
#I=FUP[#j] 上取整字串1
#I=BIN[#j]BCD→BIN(二进制)
#I=B[#j]BIN→BCD
1.说明
1)角度单位为度字串1
90度30分为90.5度
2)ATAN函数后的两个边长要用“1”隔开
#1=ATAN[1]/[-1]时,#1为了35.0
3)ROUND用于语句中的地址,按各地址的最小设定单位进行四舍五入
设#1=1.2345,#2=2.3456,设定单位1μm字串5
G91X-#1;
X-1.235
X-#2F300;
X-2.346字串4
X[#1+#2];
X3.580
未返回原处,应改为字串1
X[ROUND[#1]+ROUND[#2]];
4)取整后的绝对值比原值大为上取整,反之为下取整
设#1=1.2,#2=-1.2时
若#3=FUP[#1]时,则#3=2.0
若#3=FIX[#1]时,则#3=1.0
若#3=FUP[#2]时,则#3=-2.0
若#3=FIX[#2]时,则#3=-1.0
5)指令函数时,可只写开头2个字母
ROUND→RO
FIX→FI字串5
6)优先级字串6
函数→乘除(*,1,AND)→加减(+,-,OR,XOR)
#1=#2+#3*SIN[#4];
7)括号为中括号,最多5重,园括号用于注释语句
#1=SIN[[[#2+#3]*#4+#5]*#6];
(3重)
一.转移与循环指令
1.无条件的转移
GOTO1;
GOTO #10;
2.条件转移字串8
IF[<条件式>]GOTOn字串1
条件式:
#jEQ#k表示=
#jNE#k表示≠字串3
#jGT#k表示>
#jLT#k表示<
#jGE#k表示≥
#jLE#k表示≤
IF[#1GT10]GOTO100;
…字串5
N100G00691X10;
求1到10之和
O9500;
#1=0字串1
#2=1
N1IF[#2GT10]GOTO2
#1=#1+#2;
#2=#2+1;
GOTO1
N2M301.循环字串8
WHILE[<条件式>]DOm;
(m=1,2,3)
…字串6
…
…字串8
ENDm
说明:
1.条件满足时,执行DOm到ENDm,则从DOm的程序段字串7
不满足时,执行DOm到ENDm的程序段
2.省略WHILE语句只有DOm…ENDm,则从DOm到ENDm之间形成死循环字串4
3.嵌套
4.EQNE时,空和“0”不同
其他条件下,空和“0”相同
例:
O0001;
#1=0;
#2=1;
WHILE[#2LE10]DO1;
#1=#1+#2;
#2=#2+#1;
END1;
M30;
使用FANUC宏程序编制单轴磨削循环及补偿功能
单轴外圆数控磨床,径向采用数控轴(X轴)控制,轴向仍用液压油缸驱动,因此无法使用两轴磨床数控系统提供的磨削循环功能。
在实践中,可以使用FANUC系统提供的用户宏程序,编制单轴的磨削循环功能。
根据机床的具体结构,又编制了砂轮手动修整、自动补偿及手动测量工件、自动补偿的控制功能。
在XX重型机床厂生产
的CA8311B轴颈车磨床上,经过一年多的生产使用,证明是实用的。
下面分别介绍软件的内容。
1 功能介绍
1.1 外圆磨削循环
由于只有径向控制轴(X轴),无法实现连续进给磨削,只能实现两端进给的轴向磨削循环。
因此在左右两端各设1个轴向行程识别开关(如图1所示)。
当砂轮移到工件的左端时,左端行程开关闭合,发出到位信号,程序中用接口输入变量#1005=1表示。
控制系统接到该信号后,发出X轴进给移动指令,砂〖LL〗轮前进一个A值;
同理,当系统接到右端行程开关发出的到位信号,程序中用接口输入变量#1006=1表示,砂轮前进一个B值。
依次循环,直到到达指令的位置。
实现给定磨削量的磨削加工,可以按A、B两值相加为一个循环,将被磨除量均分。
砂轮快速移至R点,经n次(A+B)磨削之后,其剩余量为h′。
若砂轮在工件左端,且h′<A时,按h′进给,否则按A值进给。
若在工件右端,且h′<B值时,按h′进给,否则按B值进给。
软件必须保证只在工件两端进给,中间不得进给。
当磨除量变为零时,必须磨到另一端才能退砂轮。
整个磨削过程分粗磨、精磨和光磨。
在实际使用中,在R点设置一个暂停,操作者可以插入手动磨削,以利于修活使用,也可以再转为自动磨削。
磨削初值用现在位置变量#5041取值。
1.2 测量值的自动补偿字串4
在粗磨结束后,精磨开始前插入手动测量,操作者将测量结果输入到系统中,系统根据指令值与实测值之差,对磨削量进行补偿。
是否需要测量,由面板上的开关设置,此开关状态用接口输入信号#1007输入系统。
当开关接通,即信号为“1”时进行测量。
当开关断开,即信号为“0”时,则不进行测量,直接进行精磨加工。
当实测值与指令值相同时,可以不输入实测值,此时,系统不修正磨削量,仍按原磨削量进行磨削。
如需测量,在测量之前安排光磨加工,以求与完成零件磨削的状态相同。
1.3 砂轮修整量的自动补偿
根据机床采用普通金刚笔修整砂轮、手动进给、手动换向修整这样的操作,软件自动计算修整量,并修正工件坐标原点设定值。
砂轮修整之后,不需对刀,即可进行磨削加工。
在面板上设置砂轮修整开关,此开关状态用接口输入信号#1004输入系统。
当修整开关合上,即信号为“1”时,执行砂轮修整服务程序。
当开关断开,即信号为“0”时,系统执行磨削加工。
2 软件框图字串5
按主程序、子程序结构编制软件。
(1)主程序(O0001) 见图2。
(2)砂轮修整子程序(O0020) 见图3。
字串3
(3)磨削子程序(O0010) 见图4。
(4)测量子程序(O0030) 见图5。
3 菜单编程
将磨削所需数据用系统断电不清除的宏变量表示。
编程时,操作者只需把所需数据输入,不需要修改程序。
零件变化时,只需改变相关尺寸数据。
具体设置如下:
#500 粗磨开始点
#501 粗磨结束点,即精磨开始点字串1
#502 精磨结束点,即光磨开始点,亦即零件尺寸
#503 粗磨左进刀量,即第一次切深
#504 粗磨右进刀量,即第二次切深
#505 粗磨进刀进给速度
#506 精磨左进刀量
#507 精磨右进刀量
#508 精磨进刀进给速度
#509 光磨次数
#510 工件坐标原点设定值
#511 金刚笔尺寸
#514 测量点设定值(系统自动设置)
#515 测量点实测值(先由系统自动设置为设定值,再由操作者修改)〖字串1
4 程序
(1)主程序
G98;
IF[#1004EQ0]G0T010;
(修砂轮开关,1:
修砂轮,0:
磨工件)字串1
M98P0020;
(修砂轮)字串9
N10M98P0010;
(磨工件)
N20M30;
(2)磨削子程序
O0010;
G50X#510;
(设置工件坐标原点)
G00X[#500+1.0];
(分段趋近工件)字串9
G01