您好,欢迎访问三七文档
当前位置:首页 > 机械/制造/汽车 > 制造加工工艺 > 浅谈数控编程中的宏程序
浅谈数控编程中的宏程序[摘要]随着现代制造技术的发展和数控机床的日益普及,数控加工在我国得到广泛的应用,数控加工中很重要的一部分就是编程,从CAD/CAM软件出现以后,人们过分依赖CAD/CAM软件,使得无论程序大小,加工难易编程人员习惯使用各种CAD/CAM软件,而把手工编程遗忘了,尤其是博大精深的宏程序。宏程序在数控编程中不应该被遗忘,而是应该很好的使用,它有着自动编程软件不可取代的优势。[关键词]数控编程宏程序CAD/CAM数控加工一.引言在CAD/CAM软件普遍存在的今天,手工编程的应用空间日趋减小,数控世界有一种说法很流行“宏程序已经没有什么用”,其实任何数控系统都有很多指令在一般情况下用不着,那他们是否也没有用呢?这显然不对,对宏程序也是如此,原因只是大家对宏程序不熟悉,往往误以为宏程序深不可测而已,在实际工作中,宏程序确实也有广泛的应用空间,并且能够方便手工编程,锻炼操作者的编程能力,帮助操作者更加深入的了解自动编程的本质。二.认识宏程序在一般的程序编制中程序字为常量,一个程序只能描述一个几何形状,当工件形状没有发生改变但是尺寸发生改变时,就没有办法了,只能重新进行编程,缺乏灵活性和适用性。当我们所要加工的零件如果形状没有发生变化只是尺寸发生了一定的变化的情况时,我们只需要在程序中给要发生变化的尺寸加上几个变量再加上必要的计算公式就可以了,当尺寸发生变化时只要改变这几个变量的赋值参数就可以了。它是利用对变量的赋值和表达式来进行对程序的编辑的,这种有变量的程序叫宏程序。三.宏程序与自动编程的比较自动编程有自动编程的好处,但是自动编程也有其不利于加工方面的问题,在加工不规律的曲面时利用自动编程确实是很好,但是在加工有规律的曲面时就不见得了,加工有规律的工件的时候用宏程序加工要比用自动编程软件要强的多,而且宏程序比较精练,不象宏程序那么烦琐,而且比较长,看起来比较麻烦。下文将对CAD/CAM生成的程序与宏程序进行比较:1.宏程序与普通程序的对比普通编程是利用每个指令代码的功能,按照规定进行编程即可,有的时候这些简单的指令不能满足加工要求,因此系统提供了用户宏程序功能,使用户可以对数控系统进行一定功能的扩展,普通程序只能使用常量进行编程而且常量之间不可以进行计算,而宏程序则可以使用变量进行编程,并可以给变量进行赋值,变量之间可以根据程序中给出表达式进行计算。当工件形状没有变化,但尺寸发生变化时,只需改变变量中几个与尺寸有关的值,其他的表达式无须改变。同时在控制工件尺寸时也很方便,只要将跟刀具有关的变量改变其值就可以。2.宏程序编程比较简短宏程序是程序编制的高级形式,程序编制的质量与编程人员的素质息息相关,宏程序里应用了大量的编程技巧。它利用数学关系的表达,加工刀具的选择,走刀方式的取舍等等,这些都使得宏程序的精度很高,特别是对于中等难度的零件,使用宏程序加工要比自动编程加工快的多。另外很重要的一点,CAD/CAM所生成的程序很多,而且非常的烦琐,有的时候自动编程的程序长度可能是宏程序长度几十倍,甚至几百倍,加工时间也会大大增加。加工一个半径为25的半球的程序同时采用自动编程和手工编程,采用同样的刀具同样的加工参数,宏程序只有20几行,而进行自动编程软件编制的程序则多达2000多行,而且自动编程所生成的程序几乎是G01,G02,G03等简单的指令组成,但是后面的数字全部是小数,采用的直线逼近圆或直线逼近曲线组成的,修改很麻烦,有的时候可以说是无从下手。从此可以看出宏程序是很精练的程序。宏程序是手工编程,CAD/CAM是自动编程,手工编程是自动编程的基础在任何时候手工编程都是必须掌握的。3.影响自动编程的加工精度的因素自动编程产生的加工程序的精度受多方面因素的影响,,首先它受CAD/CAM软件建模时的计算精度,不同软件之间CAD图档的转换精度的影响,其次受自动编程软件在生成NC刀具轨迹是的计算精度影响,再者就是后处理环节有时也会对其有影响。上面说过,自动编程生成的程序多数采用的直线逼近曲线,表面看上去是圆或曲线,而实际上是很多的台阶或者是N边形,只不过是这个台阶很小或者N边形的N很大而已。在加工圆时走的轨迹不是一个整圆,精度可想而知不如轨迹为整圆。如下图示:4.自动编程与宏程序的加工速度的区别因为自动编程生成的程序比较烦琐,可能加工一个简单的东西,就会有几千乃至上万行的程序,而机床内部程序的存储空间是有限的,FANUC0I系统的标准配置一般为128K或256K,这上千乃至上万行的程序不止128K或256K,这就需要DNC方式在线加工,此时机床与电脑之间的传输速度成了影响加工速度的关键,目前的机床大多数采用的是R232口的串口通信来实现在线加工,大多数系统所支持的R232口最大的传输波特率为19200bit/s,即使是在最大的传输速度下,当计算精度较高,进给速度较快时,程序的传输速度就跟不上,出现进给运动有明显的断续的现象,采用其他方法也不会太大的改观。使用宏程序加工时由于计算的速度较快,不会出现加工中断续的现象。四.编制宏程序的步骤及宏程序常出现的问题1.宏程序编程的步骤:(1).确定走刀轨迹,确定加工工件时的走刀轨迹,刀具如何运动,确定程序中有几个变量值。需要几个变量号。(2).由动作可知道有几层变量,确定每层的计算表达式,一层变量为一个循环。确定这曾循环之间的关系及数学表达式。(3).将变量的初始值放在此层循环的外边,不可放在此层循环内,否则,没有计算结果,永远执行初始值。执行死循环。将计算表达式放在循环内,以便刀具按照计算的轨迹进行运动。2.例:半球的加工思路:从下往上进行加工,在当前角度时进行加工,铣一个整圆,之后改变上升的高度和加工当前角度的圆半径。首先按照上面的步骤进行分析,本例采用球刀从下往上进行加工。先在半球底部铣整圆,之后Z轴进行抬高并改变上升后整圆的半径。半球的加工主要控制的是每次Z轴的上升的尺寸,这里同过控制半球的角度来进行控制Z轴的变化,即每变化一个角度半径的变化量(主要控制#4就可以了)。由此可见,我们加工半球的宏程序只需要一层表达式,就是每次角度变化后的Z轴的高度,以及X方向的尺寸(半球的半径从下往上逐渐减小),X为7号变量,Z为8号变量,7号8号变量都可以根据4号的变量值进行计算,因此只要控制4号变量就可以了,控制每次的递增量。球加工的宏程序采用一层循环,控制角度的变化,角度从0度增加到90度一个半球即加工好,每次增加2度。每层上升的距离采用圆弧加工,较直线进刀准确一些。半球加工的宏程序O0001;程序号#1=球半径#2=刀具半径#12=#1+#2刀具中心的走刀轨迹#4=0起始角度#17=2角度每次的变化量#5=90角度变化的终止值G90G54G40G49;对加工进行设置,绝对坐标编程,取消补偿G00X0Y0Z30;主轴到达要求位置S500M03;主轴正转,500r/minX#12;X向到达加工位置Z10;Z轴快速下刀G01Z-#1F80;Z轴下到Z向加工开始位置WHILE[#4LE#5]DO1;判断角度如果没有达到90度,执行循环一#6=#2*COS[#4];当前角度的X向尺寸,即该角度时的圆半径G90G17G03I-#6F150;用该角度时的半径进行加工圆#7=#12*[COS[#4+#7]-COS[#4];计算增加角度后的X向增量#8=#12*[SIN[#4+#7]-SIN[#4];计算增加角度后的Z向增量G91G18G02X#7Y#8R#12;用相对坐标移动刀具至增加后的坐标值#4=#4+#17;计算角度END1;循环结束G00Z50;Z轴抬刀M30;程序结束上述程序已经在FANUC0I系统上验证过,能够正常运行。但是有的时候理论上没有任何问题的宏程序到机床不一定能够正常运行的。哪怕是有一点的小问题也是不行的。有的时候变量赋值错了,不执行循环而是只执行一个次。这些都是常见的问题。下面是在执行宏程序时常见的几种报警信息以及解决方法:3.宏程序常出现的问题及解决方法(1).FORMATERRORINMACRO检查:查看程序的格式,如:#1=30*COS[#3]输成#1=30*COS#3(错误)(2).NCMACROSTATEMENTINSAMEBLOOK检查:①.#3=30*COS[#5]#3=30*COS[#5]#4=30*SIN[#5]G41#4=30*SIN[#5]D01(错误,半径补偿不能在这建立)G41G01X#3Y#4D01G01X#3Y#4②.#1=10#2=20#1=10#2=20G01X#1Y#2G01#1Y#2(3).ADDRESNOTFOUND检查:(1).G01X[#5-1]G01[#5-1](4).走刀轨迹错误检查:各个变量的赋值有没有错误五:小结宏程序在现在的加工中都能用到,而且在加工有规律的工件时无论是加工速度还是加工精度都比自动编程来得好,手工编程是基本工,任何时候都是必须掌握的。不能落在一边,要利用起来,不能单纯的依赖自动编程,现在的全国数控大赛只允许手工编程,而且国外的一些数控相关的考试都是采用手工编程,不允许使用CAD/CAM软件进行编程,可见宏程序是很重要的。在能用手工编程的工件尽量用手工编程,我们在平时就应该在能用宏程序加工时把宏程序用上,以锻炼操作者的编程能力,经过一定的努力宏程序一定能应用得很够熟练。参考文献:1.方沂主编.数控机床编程与操作[M].北京:国防工业出版社,1999.2.北京FANUC机电有限公司.BEIJIN-FANUCOI-MB系统操作说明书.3.孙德茂.数控机床铣削加工直接编程技术[M].北京:机械工业出版社,2004.
本文标题:浅谈数控编程中的宏程序
链接地址:https://www.777doc.com/doc-291447 .html