FANUC系统宏程序的设计毕业设计.docx
- 文档编号:14603387
- 上传时间:2023-06-24
- 格式:DOCX
- 页数:46
- 大小:120.21KB
FANUC系统宏程序的设计毕业设计.docx
《FANUC系统宏程序的设计毕业设计.docx》由会员分享,可在线阅读,更多相关《FANUC系统宏程序的设计毕业设计.docx(46页珍藏版)》请在冰点文库上搜索。
FANUC系统宏程序的设计毕业设计
烟台工程职业技术学院
数控技术系数控技术专业11级
毕业设计(论文)
题目:
FANUC系统宏程序的设计
烟台工程职业技术学院毕业设计(论文)
诚信承诺书
本人慎重承诺:
我所撰写的设计(论文)《FANUC系统宏程序的设计》是在老师的指导下自主完成的,没有剽窃或抄袭他人的论文或成果,如有剽窃、抄袭,本人愿意为由此引起的后果承担相应责任。
毕业论文(设计)的研究成果归属学校所有。
学生(签名):
年月日
数控编程宏程序的运用
【摘要】
随着数控技术以及计算机辅助制造软件的迅速发展,在数控编程方面,手工编程越来越多的被计算机自动编程所取代,从而使大家慢慢忽略了手工编程特别是宏程序的重要性,一个宏程序可以很方便地编制三维曲面的加工程序,而且程序非常简洁,通用性好,对于相同形状、不同尺寸的零件,只要在调用宏程序时赋不同的数值即可。
宏程序的优越性同时体现在孔系加工、口袋及轮廓加工、各类圆柱面、斜面、内外球面、椭球面及倒R面加工。
本文通过对FANUCOi系统研究,以宏程序的理论知识及应用为基础,从宏程序编制的数学基础开始,涉及到了宏程序的编译,给出了一种典型的可以用于任意宏程序的编译方法,以及用户宏程序B的应用,并对其常见问题进行了归纳总结,并以典型车削及铣削实例的形式加以具体阐述,希望为宏程序的应用及推广起到一定的借鉴作用。
前言
数控加工程序编制的关键是刀具相对工作运动轨迹的计算,即计算加工轮廓的基点和节点坐标或刀具中心的基点和节点坐标。
数控机床一般只提供平面直线和圆弧插补功能,对于非圆的平面曲线Y=f(X),采用的加工方法是按编程允许误差,将平面轮廓曲线分割成许多小段,然后用数学计算的方法求逼近直线或圆弧轮廓曲线的交点和切点坐标。
随着计算机数控系统(CNC)的不断发展。
CNC不仅能通过数字量去控制多个轴的机械运动,而且具有强大的数据计算和处理能力,编程时只要建立加工轮廓的基点和节点的数学模型,按加工的先后顺序。
由数控系统即时计算出加工节点的坐标数据。
进而控制加工,这就是数控系统提供的宏编程。
宏指令编程像高级语言一样,可以使用变量惊醒算术运算逻辑运算的函数混合运算进行编程。
在宏程序形式中,一般都市提供循环判断分支和子程序调用的方法。
可编制各种复杂的零件加工程序,熟悉应用宏程序指令进行编程,可大大精简程序量,还可以增强机床的加工适应能力。
比如可以控制抛物线、椭圆的那个非圆曲线的算法标准化后做成内部宏程序,以后就可以像圆弧插补一样按照标准格式编程调用,相当于增加了系统的插补功能。
随着数控系统的不断更新,宏指令应用越来越广泛。
以日本FANUC-0i系统为例。
0i系统使用B类宏指令,包括宏变量的赋值、运算、条件调用等,其功能强大,编程直观。
宏指令编程虽然属于手工编程的范畴,但它不是直接算出轮廓各个节点的具体坐标数据,而是给出数学公式的算法,由CNC来即时计算节点坐标,因此对于简单直观的零件轮廓不具有优势。
若零件结构不能用常规插补指令可以完成编程的,则可采用编制宏程序的方法,将计算复杂数据的任务交由数控系统来完成。
对于加工方法和加工方式,零件的步骤,走刀路线及对刀点、起刀点的位置以及切入、切出方式的设计还是遵循一般手工编程的规则。
编制宏程序时,应从零件的结构特点出发,分析零件加工表面之间的几何关系,应从零件的结构特点出发,分析零件上各加工表面之间的几何关系,据此推到出各参数之间的数量关系,建立准确的数学模型。
一、宏程序应用概述·················································································
(一)宏程序概述··························································································
(二)宏程序与普通程序的对比·······································································
(三)数控编程技术的应用现状·······································································
(四)宏程序编程的技术特点···········································································
(五)宏程序与CAD/CAM软件生成程序的加工性能对比·········································
二、宏程序的变量和数学基础的应用······················································
(一)宏程序基本变量·····················································································
(二)双轨迹的公共变量··················································································
(三)算术和逻辑运算·····················································································
(四)宏程序的控制指令················································································
(五)FANUC-0i刀具补偿值的系统变量·····························································
(六)宏程序报警、停止和信息显示、时间信息变量············································
(七)自动运行控制可以改变自动运行的控制状态的变量·····································
三、非圆曲线宏程序加工工艺·································································
(一)非圆曲线宏程序的使用步骤···································································
(二)非圆曲线宏程序的具体应用实例·······························································
(三)用户宏程序应用举例···············································································
四、宏程序编程实例··················································································
(一)编程实例·····························································································
(二)加工实例的工艺分析···············································································
(三)数控车宏程序编程················································································
五、总结·································································································
结论···········································································································
致谢···········································································································
参考文献·······························································································
一、宏程序应用概述
(一)宏程序概述
1、数控编程技术的分类
数控编程方法可以分为两类:
一类手工编程,另一类是自动编程。
2、手工编程
手工编程是指编制零件数控加工程序的各个步骤,即从零件图纸分析,工艺决策,确定加工路线和工艺参数,计算刀尖轨迹坐标数据,编写零件的数控加工程序单直至程序的检验,均由人工完成。
对于点位加工或几何形状不太复杂的轮廓加工,几何计算较简单,程序段不多,手工编程即可实现。
如简单阶梯轴的车削加工,一般不需要复杂的坐标计算,往往可以由技术人员根据工序图纸数据直接编写数控加工程序。
但对轮廓形状不是由简单的直线,圆弧组成的复杂零件,特别是空间复杂曲面零件,数值计算则相当繁琐,工作量大,容易出错,且很难孝对,采用手工编程是难以完成的。
3、自动编程
使用计算机编制数控加工程序,自动地输出零件加工程序单及自动的制作控制介质的过程称作自动编程。
自动编程就是编程人员根据零件图纸和工艺要求,使用规定的数控语言编写一个较简短的零件加工源程序,输入到计算机中。
计算机自动地进行数学处理,计算出刀具中心运动轨迹,编写出零件加工程序单,并生成控制介质。
有预见在计算机上可自动地绘出所编程的图形及走刀轨迹,所以能及时的检查程序是否错误,并进行修改,得到正确的程序。
在自动编程时,工艺处理部分工作还需编程人员来完成并按自动编程系统要求的格式输入。
(二)宏程序与普通程序的对比
一般意义上所讲的数控指令其实是指ISO代码指令编程。
即每个代码的功能是固定的,由系统生产厂家开发,使用者只需(只能)按照规定编程即可。
但有时候这些指令满足不了用户的需要,系统因此提供了用户宏程序功能,便用户可以对数控系统进行一定的功能扩展,实际上是数控系统对用户的开放,也可视为用户利用数控系统提供的工具,在数控系统的平台上进行二次开发,当然这里的开放和开发都是有条件和有限制的。
用户宏程序和与普通程序存在一定的区别,认识和了解这些区别,将有助于宏程序的学习理解和掌握运用,表一是用户宏程序与普通程序的简要对比。
表一
普通程序
宏程序
只能使用常量
可以使用变量,并给变量赋值
常量之间不可以运算
变量之间可以运算
程序只能顺序执行,不能跳转
程序运行可以跳转
(三)数控编程技术的应用现状
在我国,六成以上的数控铣床(包括加工中心)都是应用在模具行业,由于模具加工的特殊性和一些非技术性原因,CAD/CAM软件的应用由来已久,且日趋成熟,特别是在数控三维曲面加工中,手工编程几乎已没有用武之地,而由于强大对我思维定势和使用习惯,使得编程人员不论程序大小、加工难易,都习惯并乐于使用各种CAD/CAM软件来编程加工。
手工编程似乎被遗忘在角落里,大有无人问津之势。
(四)宏程序编程的技术特点
尽管使用各种CAD/CAM软件来编制数控加工程序已经成为潮流(或主流),但手工编程毕竟还是基础,各种”疑难杂症“的解决往往还要利用手工编程;且手动编程还可以使用变量编程,即宏程序的运用。
其最大特点就是将有规律的形状或尺寸用最短的程序段表示出来,具有极好的易读性和易修改性,编写出的程序非常简洁,逻辑严密,通用性极强,而且机床在执行此类程序时,较执行CAD/CAM软件生成的程序更加快捷,反应更迅速。
随着技术的发展,自动编程逐渐取代手工编程,但宏程序简捷的特点使之依然具有使用价值,我个人认为,宏程序的运用应该是手工编程应用中最大的亮点和最后的堡垒。
宏程序具有灵活性、通用性和智能性等特点,例如对于规则曲面的编程来说,使用CAD/CAM软件编程一般都有工作量大,程序庞大,加工参数不容易修改等缺点,只要任何一个参数发生任何变化,再智能的软件也要根据变化后的加工参数重新计算刀具轨迹,尽管软件计算刀具轨迹的计算速度非常快,但始终是个比较麻烦的过程。
而宏程序则注重把机床参数与编程语言结合,而且灵活的参数设置也使机床具有最佳的工作性能,同时也给予操作工人极大的自由调整空间。
从模块化加工的角度看,宏程序最具有模块化的思想和资质条件,编程人员只需要根据零件几何信息和不同的数学模型即可完成相应的模块化加工程序设计,应用时只需要把零件信息,加工参数等输入到相应的模块的调用语句中,就能使编程人员从繁琐的、打量重复性的编程工作中解脱出来,有中一劳用逸的效果。
另外,由于宏程序基本上包含了所有的加工信息(如所使用刀具的几何尺寸信息等),而且非常简明直观,通过简单的存储和调用,就可以很方便的重现当时的加工状态,给周期性的生产特别是不定期的间隔式生产带来了极大的方便。
客观的说,对于主要由于大量的不规则复杂曲面构成的模具成型零件,由于设计、分析道制造的整个生产链在技术层面及生产管理上都是通过以上各种CAD/CAM软件为核心(还包括PDM/CAE等)的纽带紧密相连的,从而形成一种高速的一体化和关联性,无论从哪个角度来看,数控加工程序编制几乎百分百的依赖各种CAD/CAM软件,宏程序在这里的发挥空间是非常有限的。
但是,数控加工领域还有很大一片天空是属于机械零件的批量加工,虽然同样是数控加工,它与上述的模具类零件的数控加工还是有着相当大的差别的,机械零件的数控加工主要有以下几个特点:
(1)机械零件绝大多数都是批量生产,在保证质量的前提下要求最大限度的提高生产效率以降低生产成本。
另外批量零件字加工的几何尺寸精度和形状位置精度要求保证高度的一致性,而加工工艺的优化主要就是程序的优化,是一个反复调整、尝试的过程,这就要求操作者能够非常方便的调整程序中的各项加工参数(如刀具尺寸、刀具补偿值、层降、步距、计算精度、进给速度等),宏程序在这方面就有强大的优越性,只要能用宏程序来表述,操作者就根本无需触动程序本身,而只需要针对各项加工参数所对应得自变量赋值做出个别调整,就能迅速的将程序调整到最优化的状态,这就体现出宏程序的一个突出优点,即一次编程,终身受益。
(2)机械零件的形状主要是由于各种凸台、凹槽、圆孔、斜平面、回转面等组成,很少包含不规则的复杂曲面,构成其的几何因素无外乎点、直线、圆弧,最多加上各种二次圆锥曲面(椭圆、抛物线、双曲线),以及一些渐开线(常应用于齿轮及凸轮等),所有这些都是基于三角函数,解析几何的应用,而数学上都可以用三角函数表达式及参数方程加以表述,因此宏程序在此有广泛的应用空间,可以发挥其强大的作用。
(3)机械零件还有一些很特殊的应用,即使采用CAD/CAM软件也不一定能轻易地解决,例如变螺距螺纹的加工、用螺旋插补进行锥度螺纹的加工和钻深可变式深孔钻加工等,而在这些方面宏程序却可以发挥它的优势。
(五)宏程序与CAD/CAM软件生成程序的加工性能对比
只要能够用宏程序完整地表达,即使再复杂,其程序篇幅都非常有限,可以说任何一个比较合理、优化的宏程序,极少会超过60行,换算成字节数,至多不过2kbytes。
一方面,宏程序天生短小精悍,即使是最廉价的机床数控系统,其内部程序存储空间再小也会有个10kbytes左右,完全容纳得下任何“庞大”的宏程序,因此根本无需考虑机床与外部电脑的传输速度对实际加工速度的影响。
另一方面,为了对复杂的加工运动进行描述,宏程序必然会最大限度地使用数控系统内部的各种指令代码,例如直线插补G01指令、圆弧(螺旋)插补G02/G03指令等,因此机床在执行宏程序时,数控系统的计算机可以直接进行插补运算,运算速度极快,伺服电机响应快,机床反应迅速,加工效率极高。
而对于CAD/CAM软件生成的程序,情况则要复杂得多
首先,CAD/CAM软件生成的程序通常都比较大,非常容易就突破机床数控系统内部程序存储空间的限制,因此一般来说除了相对简单的孔系加工、二维轮廓或口袋加工以外,其余绝大部分程序都不得不以DNC方式进行在线加工,显然机床与电脑之间的传输速度成为了影响加工速度的第一个“瓶颈”因素。
当计算精度较高、进给速度F值又较大(如F1800~F2500)时,程序传输速度往往还是跟不上机床的节拍,在实际加工中可以看到机床的进给运动有明显的断续、迟滞,对于Fanuc系统,即使打开DNC缓冲,或设置G51.1参数,也难以有大的改观。
其次,在CAD/CAM软件中,无论构造规则或不规则的曲面,都有一个数学运算的过程,也必然存在着计算的误差和处理,而在对其生成三维加工刀路时,软件是根据你选择的加工方式、设定的加工参数,并结合所设定的加工误差(或称为曲面的计算精度),使刀具与加工表面接触点(相交点或相切点)逐点移动完成加工,从本质上看,其实就是在允许的误差值范围内沿每条路径用直线去逼近曲面的过程!
二、宏程序的变量和数学基础的应用
(一)宏程序基本变量
普通加工程序直接用指定G代码和移动距离;例如G01和X100.使用用户宏程序是,数值可以直接指定或变量指定。
当用变量时,变量值可以用程序或用MDI面板上的操作改变。
如#1=#2+100
G01X#1F300
1、变量的表示
计算机允许使用变量名,用户宏程序不行。
变量用变量符号(#)和后面的变量号指定。
例如:
#1
表达式可以用于指定变量号。
此时,表达式必须封闭在括号中。
例如:
#[#1+#2-12]
2、变量值的范围
局部变量和公共变量可以有0值或下面范围中的值:
-1047到-10-19或-10-2到-1047范围。
如果计算范围超出有效范围,则发出P/S报警NO.111。
3、小数点的省略
当在程序中定义变量值时,小数点可以省略。
例:
当定义#1=123;变量#1的实际值时123.000。
4、变量的引用
[1]为在程序中使用变量值,指定后跟变量号的地址。
当用表达式指定变量时,要把表达式放在括号中。
例如:
G01X[#1+#2]F#3
[2]被引用变量的值根据地址的最小设定单位自动地舍入。
例如:
当G00X#1;以1/1000mm的单位执行时,CNC把123456赋值给变量#1,实际指令值为G00X123456
[3]改变引用变量的值的符号,要把负号(-)放在#的前面。
例如:
G00X-#1
[4]当引用未定义的变量时,G00X#1Y#2的执行结果G00X0。
(二)双轨迹的公共变量
对双轨迹控制,系统为每一轨迹都是提供了单位的宏变量,但是,根据参数N0.6036和6037的设定,某些公共变量可同时用于两个轨迹。
1、未定义的变量
当变量值未定义时,这样的变量成为空变量。
变量#0总是空变量。
它不能写,只能读。
[1]引用:
当引用一个未定义的变量时,地址本身也被忽略。
[2]运算:
除了用赋值以外,其余情况下与0相同。
[3]条件表达式:
EQ和NE中的<空>不同于0。
1、限制
程序号,顺序号和任选程序段跳转不能使用变量。
例:
下面情况不能使用变量:
0#1;
/#G00X100.0;
N#3Y200.0;
(三)算术和逻辑运算
线面运算可在变量中执行运算表达式可包含常量和由函数或运算符组成的变量。
表达式中的变量#j#k可以用常数赋值。
1、常用变量
#i=#j【加】#i=#j+#k【减】#i=#j-#k【乘】#i=#j*#k【除】#i=#j/#k
2、角度单位为度
【正弦】#i=sin[#j]【余弦】#i=cos[#j]
【正切】#i=tan[#j]【反正切】#i=atan[#j]
3、函数
【平方根】#i=sqrt[#j]【绝对值】#i=abs[#j]
【四舍五入圆整】#i=round[#j]【舍入】#i=round[#j]
【上取整】#i=fin[#j]【下取整】#i=fup[#j]
【自然对数】#i=ln[#j]【指数函数】#i=exp[#j]
4、逻辑变量逻辑运算对二进制数逐位进行
【或】#i=#jor#k【异或】#i=#jxor#k【与】#i=#jand#k
5、运算符
EQ等NE不等于GT大于
GE大于或等于LT小于LE小于或等于
6、说明
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
G91 X-#1;X-1.235
X-#2 F300;X-2.346
X[#1+#2];X3.580
未返回原处,应改为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
6)优先级
函数→乘除(*,1,AND)→加减(+,-,OR,XOR)
例:
#1=#2+#3*SIN[#4];
7)括号为中括号,最多5重,园括号用于注释语句
例:
#1=SIN[[[#2+#3]*#4+#5]*#6];(3重)
(四)宏程序的控制指令
在宏程序中,有三种转移和循环操作可供使用。
1、无条件转移(GOTO语句)
语句格式为:
GOTOn
其中n为顺序号(1—9999),可用变量表示。
例如:
GOTO1;GOTO#10;
2、条件转移(IF语句)
语句格式为:
IF[条件式]GOTOn
条件式成立时,从顺序号为n的程序段开始执行;条件式不成立时,执行下一个程序段。
条件式有以下几类:
#jEQ#KEQ等于#jNE#KNE不等于
#jGT#KGT大于#jLT#KLT小于
#jGE#KGE大于等于#jLE#KLE小于等于
条件式中变量#J或#K可以是常量也可以是表达式,条件式必须用括弧括起来。
下面的程序可以得到1到10的和:
O7100
#1=0
#2=1
N1IF[#2GT10]GOTO2
#1=#1+#2
#2=#2+1
GOTO1
N2M30
3、循环语句(WHILE语句)
语句格式为:
WHILE[条件式]
DOm(m=1,2,3)…
ENDm
如右图所示:
当条件语句成立时,程序执行从DOm到ENDm之间的程
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- FANUC 系统 程序 设计 毕业设计