- 1、本文档共6页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
浅析宏程序在数控车床编程教学中的应用.doc
浅析宏程序在数控车床编程教学中的应用
摘 要:通过一个典型零件的两种不同的宏程序编程实例,分析每种方法的优缺点,归纳出手工编程中应用宏程序解决复杂零件的数控加工编程问题的作用和技巧。
关键词:宏程序;手工编程;子程序调用;数控加工
数控加工程序编制的关键是刀具相对于工件运动轨迹的计算,即计算加工轮廓的基点和节点坐标或刀具中心的基点和节点坐标。数控机床一般只提供平面直线和圆弧插补功能,对于非圆的平面曲线Y=f(X),采用的加工方法是按编程允许误差,将平面轮廓曲线分割成许多小段。然后用数学计算的方法求逼近直线或圆弧轮廓曲线的交点和切点的坐标。随着计算机数控系统(CNC)的不断发展,CNC不仅能通过数字量去控制多个轴的机械运动,而且具有强大的数据计算和处理功能。编程时只要建立加工轮廓的基点和节点的数学模型,按加工的先后顺序,由数控系统即时计算出加工节点的坐标数据,进而控制加工,这就是数控系统提供的宏编程。宏指令编程像高级语言一样,可以使用变量进行算术运算逻辑运算和函数混合运算进行编程。在宏程序形式中,一般都提供循环判断分支和子程序调用的方法。可编制各种复杂的零件加工程序。熟练应用宏程序指令进行编程,可大大精简程序量,还可以增强机床的加工适应能力。比如可以将抛物线、椭圆等非圆曲线的算法标准化后做成内部宏程序,以后就可以像圆弧插补一样按标准格式编程调用,相当于增加了系统的插补功能。
随着数控系统的不断更新,宏指令应用越来越广泛。以日本FANUC-Oi系统为例,Oi系统使用B类宏指令,在O系列的早期版本中,曾使用A类宏指令,主要特征为使用G65代码为宏指令专用代码,包括宏变量的赋值、运算、条件调用等。B类宏指令功能相对A类而言,其功能更强大,编程更直观。在FANUC-Oi系统的固定循环指令中,毛坯切削循环G71指令内轮廓削循环G73指令内部可以使用宏程序进行编程。
宏指令编程虽然属于手工编程的范畴,但它不是直接算出轮廓各个节点的具体坐标数据,而是给出数学公式和算法,由CNC来即时计算节点坐标,因此对于对于简单直观的零件轮廓不具有优势。若零件结构不能用常规插补指令可以完成编程的,则可采用编制宏程序的方法,将计算复杂数据的任务交由数控系统来完成。对于加工方法和加工方式,零件的加工步骤,走刀路线及对刀点起刀点的位置,以及切入、切出方式的设计还是遵循一般手工编程的规则。编制宏程序时,首先应从零件的结构特点出发,分析零件上各加工表面之间的几何关系,据此推倒出各参数之间的数量关系,建立准确的数学模型。为此,必须注意正确选择变量参数并列出正确的参数方程,同时设定合理有效的循环变量。若采用主子程序调用的编程模式,还注意局部变量和全部变量的设定,了解变量传值关系。特别值得注意的是,为提高程序的通用性,尺寸参数尽可能地用宏变量表示,运行程序前先进行赋值。
宏程序编程实例:如下图所示零件:
程序以FAUNC-Oi-TC系统的格式编写
1、程序计算说明:
由抛物线方程Z=-X2/10得X=10,故直线段起点X坐标值XA=20。
由椭圆方程: ,得出, 并且X为半径值。
椭圆中心在如图编程坐标系中的坐(40,-35)。
2、用仿形车削循环指令G73编程,加工程序如下:
O0001;
G99 G97 M03 S600 T0101F0.2;
G0 X42 Z2;
G73 U20 R15
G73 P10 Q20 U0.5;
N10 G0 X0;
G1 Z0;
#1=0(赋抛物线Z轴起始值)
N11#2=2*SQRT[-10*#1];
G1 X#2 Z[#1-40]; (下转第128页)(上接第126页)
#1=#1-0.5;
IF[#1GE-10]GOTO11;
G1 X30 W-5;
W-7.5;
#3=12.5; (赋椭圆Z轴初始值)
N12 #4=8*SQRT[1-#3*#3/256];
G1 X[40-#4*2]Z[#3-35];
#3=#3-0.5;
IF[#3GE-12.5]GOTO12;
G1 Z-55;
X40;
N20 Z-65;
G00 X100 Z100;
M05;
M00;
M03 S1000 T0101F0.1;
G0 X40 Z2;
G70 P10 Q20;
G0 X100 Z100;
M30;
3、子程序调用M99 M98指令编程
O0002;
G99 G97 M03 S600 T0101F0.2;
G0 X42 Z2;
#100=40;
N30 M
文档评论(0)