浅谈数控编程中的宏程序应用
- 格式:docx
- 大小:27.01 KB
- 文档页数:3


浅谈数控编程中的宏程序
Monday, November 30, 2009 11:48:53 PM 发布:sunlight
浅谈数控编程中的宏程序
一.引言
在CAD/CAM软件普遍存在的今天,手工编程的应用空间日趋减小,数控世界有一种说法很流行“宏程序已经没有什么用”,其实任何数控系统都有很多指令在一般情况下用不着,那他们是否也没有用呢?这显然不对,对宏程序也是如此,原因只是大家对宏程序不熟悉,往往误以为宏程序深不可测而已,在实际工作中,宏程序确实也有广泛的应用空间,并且能够方便手工编程,锻炼操作者的编程能力,帮助操作者更加深入的了解自动编程的本质。
二.认识宏程序
在一般的程序编制中程序字为常量,一个程序只能描述一个几何形状,当工件形状没有发生改变但是尺寸发生改变时,就没有办法了,只能重新进行编程,缺乏灵活性和适用性。当我们所要加工的零件如果形状没有发生变化只是尺寸发生了一定的变化的情况时,我们只需要在程序中给要发生变化的尺寸加上几个变量再加上必要的计算公式就可以了,当尺寸发生变化时只要改变这几个变量的赋值参数就可以了。
它是利用对变量的赋值和表达式来进行对程序的编辑的,这种有变量的程序叫宏程序。
三.宏程序与自动编程的比较
自动编程有自动编程的好处,但是自动编程也有其不利于加工方面的问题,在加工不规律的曲面时利用自动编程确实是很好,但是在加工有规律的曲面时就不见得了,加工有规律的工件的时候用宏程序加工要比用自动编程软件要强的多,而且宏程序比较精练,不象宏程序那么烦琐,而且比较长,看起来比较麻烦。下文将对CAD/CAM生成的程序与宏程序进行比较:
1.宏程序与普通程序的对比
普通编程是利用每个指令代码的功能,按照规定进行编程即可,有的时候这些简单的指令不能满足加工要求,因此系统提供了用户宏程序功能,使用户可以对数控系统进行一定功能的扩展,普通程序只能使用常量进行编程而且常量之间不可以进行计算,而宏程序则可以使用变量进行编程,并可以给变量进行赋值,变量之间可以根据程序中给出表达式进行计算。
工程技术 SCIENCE&TECHNOLOGY . 皿圆 数控车削编程中宏程序的应用 余抒萌 (常州工程职业技术学院 张在平 江苏常州 21 31 64) 摘要:对于数控车削中的一些曲线轮廓蝙程,不能使用G代码或者鳊程异常复杂,可以使用宏程序壕程。本文通过典型实例探讨了一些 非圊曲线轮廓使用宏程序壕程的方法和技 。 荤篙雾 壕程 宏程序文献标识码:文章 ̄-:72-371216 3 91 01 (b)001。1 中图分类号:TP3 文献标识码:A 文章 (2 0) ,一¨u5 一 在数控车床编程中会经常遇到复杂轮 廓的加工,如椭圆、抛物线、双曲线等,采用 常规的数控编程指令,需要计算每个节点 的坐标值,不但计算量大、精度差、编程速 度慢,而且容易出错,难以满足生产要求, 若采用CAD/CAM软件自动编程,也需要 大量时间来建模和处理,而且程序过于冗 长,程序传输速度慢导致加工滞后,且空刀 多,浪费时间。 1宏程序简介 随着数控技术的发展,现在先进的数 控系统不仅向用户编程提供了一般的准备 功能和辅助功能,而且为编程提供了扩展 数控功能的手段,宏程序的出现为此类图 形的编程提供了很好的解决办法。把用某 一组命令构成的功能像子程序一样存储在 存储器中,将存储的功能用某一个命令代 表,只根据写入的代表命令就能执行其功 能。把存储的一组命令叫用户宏程序主体, 把代表命令叫用户宏程序命令。也可省略 用户宏程序主体而简称宏程序。用户宏程 序由于使用变量、算术和逻辑运算及条件 转移,使得编制相同加工操作的程序更方 便,更容易,可将相同加工操作编为通用程 序,使用时加工程序可用一条简单指令调 出用户宏程序,和调用子程序完全一样。用 户宏程序的最大特点是在用户宏程序主体 中,可以进行变量问题的运算。用宏命令可 以给变量设定实际值。 2宏程序运用实例 宏程序用公式来加工零件,若没有现 成公式就用数学方法拟合成经验公式。如 果不运用宏程序,需要逐点算出曲线上的 点,然后慢慢来用直线逼近,如果是个光洁 度要求很高的工件,就要计算很多的点。应 用宏程序则只要把公式输入到系统中,给 出z坐标和步长值,就能自动算出X坐标并 进行切削加工。 2.1有数学公式的图形 例1.如图l所示,椭圆方程为: 图1 f 2 3‘ 5 , -_’、 I 7 9 I 、 I : -_-、 口 一 2 . //’ 图2 寺+寺 ,毛坯为 ̄32×100,刀具: 外圆车刀(舡 =30。)。 椭圆部分的加工程序为: O0001 G90G90G54G40; #l=26*SQRT[#3】; M03S600T0101} GO1X#1Z#2l GO0X40Z2M8; #2=#2-0.05; G0lX0F60 l END1 Z0; WHILE【#2GE0]D01; #3=1一【#2+20卜[#2+20]/400 2.2无数学公式的图形 如图2所示,该曲线方程未知,只是标 注了lo4点的坐标(坐标值略),如果用直线 指令编程,加工出来的曲线不光顺,有明显 折点。如果加工要求表面很高的工件,则需 要插补计算非常多的点,工作量过大且效 果不好,应用宏程序则工作量大幅减少,加 工出来的曲线光顺、表面光洁。 步骤1.用最小二乘法拟合得到经验公 式: X=24.59l一0.12597Z-0.0013Ze 步骤2.编程(程序略) #150=(60—31.5)/2=16(最大切深量) #1O3=(初值为50,终值为一5O,步距值 为0.5,控制Z向坐标); #105=24.591—0.138568 #1O3—0. 0013 #103 #103; #106=#150+2 #lO5(71尖点的X值); #107=#103—5o(刀尖点的z值,编程原 点与工件原点)。 3结语 宏程序编程,介于手工编程与图形交 互式自动编程之间,应用灵活,形式自由, 具备了计算机高级语言的表达式,逻辑运 算及类似的程序流程,使加工程序简练易 懂,实现普通编程难以实现的功能。 参考文献 [1】袁锋.全国数控大赛试题精选【M】.北 京:机械工业出版社,2005. [2】2曹新林.数控车加工非圆曲线编程探讨 【J】.机电工程技术,2006. 科技资讯SCIENCE&TECHNOLOGY INFORMATION
1
1.根据图样要求、毛坯及前道工序加工情况,确定工艺方案及加工路线
1)以底面为主要定位基准,两侧用压板压紧,固定于铣床工作台上。
2)加工路线
Y方向以行距小于球头铣刀逐步行切形成椭球形成。
2.选择机床设备
根据零件图样要求,选用经济型数控铣床即可达到要求。故选用华中Ⅰ型(ZJK7532A型)数控钻铣床。
3.选择刀具
球头铣刀大小6mm。
4.确定切削用量
切削用量的具体数值应根据该机床性能、相关的手册并结合实际经验确定,详见加工程序。
5.确定工件坐标系和对刀点
在XOY平面内确定以工件中心为工件原点,Z方向以工件表面为工件原点,建立工件坐标系,如图2-25所示。
采用手动对刀方法把0点作为对刀点。
6.编写程序(用于华中I型铣床)
按该机床规定的指令代码和程序段格式,把加工零件的全部工艺过程编写成程序清单。该工件的加工程序如下:
%8005(用行切法加工椭园台块,X,Y按行距增量进给)
#10=100 ;毛坯X方向长度
#11=70 ;毛坯Y方向长度
#12=50 ;椭圆长轴
#13=20 ;椭圆短轴
#14=10 ;椭园台高度
#15=2 ;行距步长
G92 X0 Y0 Z[#13+20]
G90G00 X[#10/2] Y[#11/2] M03
G01 Z0
X[-#10/2] Y[#11/2]
G17G01 X[-#10/2] Y[-#11/2]
X[#10/2]
Y[#11/2]
#0=#10/2 2 #1=-#0
#2=#13-#14
#5=#12*SQRT[1-#2*#2/#13/#13]
G01 Z[#14]
WHILE #0 GE #1
IF ABS[#0] LT #5
#3=#13*SQRT[1-#0*#0/[#12*#12]]
IF #3 GT #2
#4=SQRT[#3*#3-#2*#2]
教你数控宏程序编程
一. 什么是宏程序?
用变量的方式进行数控编程
二. 宏程序与普通程序的区别。
普通程序: 只能使用常量
宏程序: 可以使用变量,并给变量赋值
普通程序: 常量之间不可以运算
宏程序: 变量之间可以运算
普通程序: 程序只能顺序执行,不能跳转
宏程序: 程序可以跳转
三. 变量
#1~#33
在宏程序中储存数据,在程序中对其赋值。赋值是将一个数据赋予一个变量。例如#1=0,表示#1的值就是0,其中#1代表变量,#是变量符号,0就是给变量#1赋的值。
例如
G0 X0 Y0;
G01 X100 F500 ;
#1=100 ;
#2=50 ;
G0 X0 Y0;
G01 X#1F500;
G01 X[#1+#2]F500;
四. 变量之间的运算
变量之间可以进行加,减,乘,除函数等各种运算
例如
#1=60;
#2=SIN#1;
运算顺序和一般数学上的定义相同 例如
#1=#2+3*SIN#4
括号嵌套
最里层的括号优先
例如
#6=COS[[[#5+#4]*#3+#2]*#1]
比较难理解的一种情况
#1=10;
G0 X#1 Y0;
#1=#1+1;
G0 X#1 Y0;
五. 转移和循环
在程序中使用GOTO和IF可以改变程序执行顺序
1. GOTO 语句—--无条件转移
例如
G0 X0 Y0;
G01 X100 Y100 F100;
X500;
GOTO 01;
Y500;
N01 X550;
Y550;
G0 Z200;
2. IF语句
1).IF[条件表达式]GOTO n
如果指定的表达式满足,则转移到标有顺序号n 的程序段,如果不满足指定的条件表达式,则顺序执行下一个程序段。
例如
IF[#1 GT 100] GOTO 01;
G0 X0 Y0; N01 X200;
运算符 含义
EQ 等于 =
NE 不等于 ≠
GT 大于 >
GE 大于或等于 ≥
LT 小于 <