宏程序简介及应用毕业论文

上传人:痛*** 文档编号:130237339 上传时间:2022-08-04 格式:DOC 页数:49 大小:313.50KB
返回 下载 相关 举报
宏程序简介及应用毕业论文_第1页
第1页 / 共49页
宏程序简介及应用毕业论文_第2页
第2页 / 共49页
宏程序简介及应用毕业论文_第3页
第3页 / 共49页
亲,该文档总共49页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
毕 业 设 计(论文)(说 明 书)题 目:宏程序简介及应用姓 名: 编 号: 2011年 5 月 日摘要随着现代制造技术的发展和数控机床的日益普及,数控加工在我国得到广泛的应用,数控加工中很重要的一部分就是编程,从CAD/CAM软件出现以后,人们过分依赖CAD/CAM软件,使得无论程序大小,加工难易编程人员习惯使用各种CAD/CAM软件,而把手工编程遗忘了,尤其是博大精深的宏程序。宏程序在数控编程中不应该被遗忘,而是应该很好的使用,它有着自动编程软件不可取代的优势。使用宏程序可以提高编程效率,并能扩展数控机床的使用范围,分析几个典型零件的宏程序实例,归纳出在数控加工中,用户根据加工零件结构特点,开发设计自己的宏程序,是充分发挥数控机床性能的有效途径。关 键 词:宏程序 变量 非圆曲线 椭圆 FANUC-0i系统AbstractWith the development of modern manufacturing technology and the increasing popularity of CNC machine tools, CNC machining is widely used in China, CNC machining is a very important part of programming, from CAD / CAM software occurred, people over-reliance on CAD / CAM software, making regardless of program size, ease of processing programmers used to use a variety of CAD / CAM software, and the manual programming forgotten, especially profound macro. Macro Program in NC programming should not be forgotten, but should be good to use, it has automatic programming software irreplaceable advantages. Use the macro program can improve programming efficiency, and to expand the scope of the use of CNC machine tools to analyze a few typical examples of parts of the macro program, summarized in the NC, the user processing components according to structural characteristics, development and design their own macro procedures, are fully the performance of NC, effective way.Keywords: macro, variable, CNC machining, non-circular curve, ellipse, FANUC-0i System目录摘要1第一章 引言5第二章 了解宏程序6第三章 用户宏程序73.1 变量的类型73.2 宏程序的运算73.3 条件表达式8第四章 系统变量94.1接口信号94.2刀具补偿值104.3 宏程序报警114.4 停止和信息显示114.5 时间信息114.6 自动运行控制124.7 已加工的零件数134.8 模态信息134.9 当前位置154.10 工件坐标系补偿值(工件零点偏移值)16第五章 算术和逻辑运算20第六章 宏程序语句和NC语句226.1 下面的程序段为宏程序语句:226.2 宏程序语句与NC语句的不同点226.3 与宏程序语句有相同性质的NC语句22第七章 转移和循环237.1 无条件转移(GOTO语句)237.2 条件转移(IF语句)条件表达式237.3 条件表达式237.4 循环(WHILE语句)23第八章 宏程序调用258.1 宏程序调用和子程序调用之间的差别258.2 非模态调用(G65)258.3 模态调用(G66)268.4 用G代码调用宏程序278.5 用M代码调用宏程序278.6 用M代码调用子程序288.7 用T代码调用子程序29第九章 非圆曲线的编程方法309.1 宏程序编程中直线逼近法的缺点及解决方法309.2 抛物线插补329.3 双曲线插补34第十章 系统变量的应用方法3610.1.宏变量中的系统变量#13001的介绍3610.2 编程实例3610.3机械手刀库换刀用宏程序4310.4斗笠式刀库换刀用宏程序4410.5 结束语45致谢46参考文献47第一章 引言随着现代制造技术的发展和数控机床的日益普及,数控加工在我国得到广泛的应用,数控加工中很重要的一部分就是编程,从CAD/CAM软件出现以后,人们过分依赖CAD/CAM软件,使得无论程序大小,加工难易编程人员习惯使用各种CAD/CAM软件,而把手工编程遗忘了,尤其是博大精深的宏程序。宏程序在数控编程中不应该被遗忘,而是应该很好的使用,它有着自动编程软件不可取代的优势。在CAD/CAM软件广泛应用的今天,手工编程的应用空间日趋减小,但数控宏程序仍在广泛地被使用,特别是在一些具有明确的数学模型的复杂外形的零件和生产不同尺寸的同一型号的产品方面。在实际工作中,宏程序手工编程即可实现,简捷高效,并且不受条件的限制。数控加工对于简单零件一般采用手工编程加工,随着CAD、CAM软件的不断普及,数控编程的模式逐渐由自动编程取代了手工编程。但软件编程因为运行环境等因素制约,其编程效率在一些场合不能满足所有数控系统的特殊功能。如何充分结合两种编程模式,合理有效利用数控机床的各种功能,编制精简合理的小容量数控程序,特别在一些数控技能大赛上,有着非常的现实意义。用宏指令手工编程在加工中心上实现二次曲线加工便是一个典型实例。用户可以使用变量进行数学运算、逻辑运算和函数的混合运算,此外,宏程序还提供了循环语句、分支语句和子程序调用语句,以利于编制各种复杂的零件加工程序。第二章 认识宏程序在编程工作中,我们经常把能完成某一功能的一系列指令像子程序那样存入存储器,用一个总指令来代表它们,使用时只需给出这个总指令就能执行其功能所存入的这一系列指令称作用户宏功能主体,简称宏程序。这个总指令称作用户宏程序调用指令。在编程时,编程员只要记住宏指令而不必记住宏程序。 用户宏程序与普通程序的区别在于:在用户宏程序本体中,能使用变量,可以给变量赋值,变量间可以运算,程序可以跳转;而普通程序中,只能指定常量,常量之间不能运算,程序只能顺序执行,不能跳转,因此功能是固定的,不能变化。 在一般的程序编制中程序字为一常量,一个程序只能描述一个几何形状,所以缺乏灵活性和适用性。而宏程序可以使用变量进行算术运算、逻辑运算和函数的混合运算,此外,宏程序还提供了循环语句、分支语句和子程序调用语句,以利于编制各种复杂的零件加工程序。 从模块化加工的角度看,宏程序最具有模块化的思想和资质条件,编程人员只需要根据零件几何信息和不同的数学模型即可完成相应的模块化加工程序设计,应用时只需要把零件信息、加工参数等输入到相应模块的调用语句中,就能使编程人员从繁琐的、大量重复性的编程工作中解脱出来。第三章 用户宏程序3.1 变量的概述及类型1.变量的表示。一个变量由符号#和变量号组成,如#i(i=1,2,3n),也可用表达式表示变量,表达式需加方括号,即#表达式,如:#50.表3-1 变量的类型变量号变量类型功能#0空变量该变量总是空,任何值都不能赋给该变量。#1#33 局部变量局部变量只能在宏程序中存储数据,例如,运算结果。当断电时,局部变量被初始化为空。调用宏程序时,自变量对局部变量赋值。#100#199#500#999 公共变量公共变量在不同的宏程序中的意义相同。当断电时,变量#100#199初始化为空。变量#500#999的数据保存,即使断电也不丢失。#1000系统变量系统变量用于读和写CNC的各种数据,例如,刀具的当前位置和补偿值。3.2 宏程序的运算除了用空赋值以外,其余情况下空与0相同。表3-2 宏程序运算参数表当#1空时当#10时#2=#1#2=空#2=#1#2=0#2=#1*5#2=0#2=#1*5#2=0#2=#2+#1#2=0#2=#1+#1#2=03.3 条件表达式格式:IF条件表达式GOTOn;一个条件表达式一定要有一个操作符,这个操作符插在两个变量或一个变量和一个常数之间,并且要用方括弧括起来,如#24GT#36。EQ和NE中的空不同于0。当#1空时当#10时#1EQ#0成立#1EQ#0不成立#1NE#0成立#1NE#0不成立#1GE#0成立#1GE#0不成立 #1GT#0不成立#1GT#0不成立程序号,顺序号和任选程序段跳转号不能使用变量。第四章 系统变量系统变量用于读和写NC内部数据,例如,刀具偏置值和当前位置数。4.1接口信号这是可编程机床控制器(PMC)和用户宏程序之间交换的信号。接口信号的系统变量(参数No.6001#00时)变量号功能#1000#1015#1032把16位信号从PMC送到用户宏程序,变量#1000到#1015用于按位读取信号,变量#1023,用于一次读取一个16位信号。#1100#1115#1132把16位信号从用户宏程序送到PMC。变量#1100到#1115用于按位写信号。变量#1132用于一次写一个16位信号。#1133变量#1133用于从宏程序一次写一个32位的信号到PMC。注意,#1133的值为99999999到99999999。(参数No.6001#0(MIF)=1时)变量号功能#1000#1031把32位信号从PMC送到用户宏程序,变量#1000到#1031用于按位读取信号。#1100#1131把32位信号从用户宏程序送到PMC。变量#1100到#1131用于按位写信号。#1032#1035此系把32位信号从PMC一次输出到用户宏程序的变量。只能在99999999到99999999的范围内输入。#1132#1135此系把32位信号一次写入到用户宏程序的变量。只能在99999999到99999999的范围内指定。4.2刀具补偿值用系统变量可以读和写刀具补偿值。可使用的变量数取决于刀补数量,即是否区分几何形状补偿和磨损补偿以及是否区分刀长补偿和刀径补偿。当偏置组数小于等于200时,也可使用#2001#2400。刀具补偿值的系统变量补偿号刀具长度补偿(H)刀具半径补偿(D)外形补偿磨损补偿外形补偿磨损补偿1:200:400#11001(#2201):#11201(#2400):#11400#10001(#2001):#10201(#2200):#10400#13001:#13400#12001:#12400使用方法:读取刀具补偿值编程格式:#100#11001或#100#2201;程序执行此句后,系统中便将H1中的长度补偿值读取并储存在公共变量#100中。书写刀具补偿值编程格式:#11001100.;或#2201100.;用程序输入刀具补偿值刀具补偿存储器和刀具补偿值的设置范围刀具补偿存储器的种类CH代码的几何补偿值G10L10P_R_;D代码的几何补偿值G10L12P_R_;H代码的磨损补偿值G10L11P_R_;D代码的磨损补偿值G10L13P_R_;P:刀具补偿号R:绝对值指令(G90)方式时的刀具补偿值。增量值指令(G91)方式时的刀具补偿值为该值与指定的刀具补偿号内的值相加之和(刀具补偿值)。4.3 宏程序报警宏程序报警的系统变量变量号功能#3000当变量号#3000的值为0200时,CNC停止运行且报警。可在表达式后指定不超过26个字符的报警信息。LCD屏幕上显示报警号和报警信息,其中报警号为变量#3000的值加上3000。使用方法:编程格式:#30001;程序执行此句后出现3001号报警。4.4 停止和信息显示程序停止并显示信息报警号功能#3006在宏程序中指令“#30061(MESSAGE);”时,程序在执行完前一程序段后停止。可在同一程序中指定最多26个字符的信息,由控制入“(”和控制出“)”括住,相应信息显示在外部操作信息画面。4.5 时间信息时间信息可以读和写。时间信息的系统变量变量号功能#3001该变量为一个计时器,以1毫秒为计时单位。当电源接通时,该变量值复位为0。当达到2147483648毫秒时,该计时器的值返回到0。#3002该变量为一个计时器,以一小时为单位计时。该计时器即使在电源断电时也保存数值。当达到9544.371767小时,该计时器的值返回到0。#3011该变量用于读取当前的日期(年/月/日)。年/月/日信息转换成十进制数。例如,2001年9月28日表示为20010928。#3012该变量用于读取当前的时刻(时/分/秒)。时/分/秒信息转换成十进制数。例如,下午3点34分56秒表示为153456。4.6 自动运行控制自动运行的系统变量(#3003)#3003单程序段辅助功能的完成0有效等待1无效等待2有效不等待3无效不等待当电源接通时,该变量的值为0。当单程序段停止无效时,即使单程序段开关设为ON,也不执行单程序段停止。当指定不等待辅助功能(M,S和T功能)完成时,在辅助功能完成之前,程序即执行下一程序段,而且分配完成信号DEN不输出。自动运行控制的系统变量(#3004)#3004进给暂停进给速度倍率准确停止0有效有效有效1无效有效有效2有效无效有效3无效无效有效4有效有效无效5无效有效无效6有效无效无效7无效无效无效当电源接通时,该变量的值为0。当进给暂停无效时: 当进给暂停按钮被按下时,机床以单段停止方式停止。但是,当用变量#3003使单程序段方式无效时,单程序段方式无效时,单程序段停止不执行。 当进给暂停按钮压下又松开时,进给暂停灯亮,但是,机床不停止;程序继续执行,并且机床停在进给暂停有效的第一个程序段。当进给速度倍率无效时,倍率值总是为100%,而与机床操作面板上的进给倍率开关的设置无关。当准确停止检测无效时,即使那些不执行切削的程序段也不进行准确停止检测(位置检测)。4.7 已加工的零件数要求的零件数(目标数)和已加工的零件数(完成数)可以读和写。要求的零件数和已加工的零件数的系统变量变量号功能#3901已加工的零件数(完成数)#3902要求的零件数(目标数)注:数量值不能为负值。4.8 模态信息正在处理的程序段之前的模态信息可以读出。模态信息的系统变量变量号 功能#4001#4002#4003#4004#4005#4006#4007#4008#4009#4010#4011#4012#4013#4014#4015#4016:#4022#4102#4107#4109#4111#4113#4114#4115#4119#4120#4130G00,G01,G02,G03,G33,G75,G77,G78,G79 第1组G17,G18,G19 第2组G90,G91 第3组G22,G23 第4组G94,G95 第5组G20,G21 第6组G40,G41,G42 第7组G43,G44,G49 第8组G73,G74,G76,G80G89 第9组G98,G99 第10组G50,G51 第11组G66,G67 第12组G96,G97 第13组G54G59 第14组G61G64 第15组G68,G69 第16组: :G50.1,G51.1 第22组B代码D代码F代码H代码M代码顺序号程序号S代码T代码P代码(当前所选的追加工件坐标系号)使用方法:编程格式:#100#4010;程序执行此句后,系统便将第9组模态信息读取并储存在公共变量#100中,此时#100的数值为98或99,而不是G98或G99,即如原状态为G99,则#100的数值为99。4.9 当前位置位置信息不能写,只能读。位置信息的系统变量变量号位置信息坐标系刀具补偿值运动时的读操作#5001#5004程序段终点工件坐标系不包含可能#5021#5024当前位置机床坐标系包含不可能#5041#5044当前位置工件坐标系#5061#5064跳转信号位置可能#5081#5084刀具长度补偿值不可能#5101#5104伺服位置偏差第1个数字代表轴号(从1到4)。变量#5801#5804存储的刀具长度补偿值是当前的执行值,不是后面程序段的处理值。在G31(跳转功能)程序段中跳转信号接通时的刀具位置储存在变量#5061到#5064中。当G31程序段中的跳转信号未接通时,这些变量中储存的是指令的程序段终点值。移动期间不能读是指由于缓冲(预读)功能的原因,不能读期望值。使用方法:编程格式:#100#5003;程序执行此句后,系统便将当前Z向坐标读取并储存在公共变量#100中。4.10 工件坐标系补偿值(工件零点偏移值)工件零点偏移值的系统变量变量号功能#5201:#5204第1轴外部工件零点偏移值:第4轴外部工件零点偏移值#5221:#5224第1轴G54工件零点偏移值:第4轴G54工件零点偏移值#5241:#5244第1轴G55工件零点偏移值:第4轴G55工件零点偏移值#5261:#5264第1轴G56工件零点偏移值:第4轴G56工件零点偏移值#5281:#5284第1轴G57工件零点偏移值:第4轴G57工件零点偏移值#5301:#5304第1轴G58工件零点偏移值:第4轴G58工件零点偏移值#5321:#5324第1轴G59工件零点偏移值:第4轴G59工件零点偏移值#7001:#7004第1轴工件零点偏移值(G54.1P1):第4轴工件零点偏移值(G54.1P1)#7021:#7024第1轴工件零点偏移值(G54.1P2):第4轴工件零点偏移值(G54.1P2):#7941:#7944第1轴工件零点偏移值(G54.1P48):第4轴工件零点偏移值(G54.1P48)可以使用如下变量轴功能变量号第一轴外部工件零点偏移G54工件零点偏移G55工件零点偏移G56工件零点偏移G57工件零点偏移G58工件零点偏移G59工件零点偏移#2500#2501#2502#2503#2504#2505#2506#5201#5221#5241#5261#5281#5301#5321第二轴外部工件零点偏移G54工件零点偏移G55工件零点偏移G56工件零点偏移G57工件零点偏移G58工件零点偏移G59工件零点偏移#2600#2601#2602#2603#2604#2605#2606#5202#5222#5242#5262#5282#5302#5322第三轴外部工件零点偏移G54工件零点偏移G55工件零点偏移G56工件零点偏移G57工件零点偏移G58工件零点偏移G59工件零点偏移#2700#2701#2702#2703#2704#2705#2706#5303#5223#5243#5263#5283#5303#5323第四轴外部工件零点偏移G54工件零点偏移G55工件零点偏移G56工件零点偏移G57工件零点偏移G58工件零点偏移G59工件零点偏移#2800#2801#2802#2803#2804#2805#2806#5204#5224#5244#5264#5284#5304#5324使用方法:读取刀具补偿值编程格式:#100#5221或#100#2501;程序执行此句后,系统中便将G54中的X坐标偏移值读取并储存在公共变量#100中。书写刀具补偿值编程格式:#5221100.;或#2501100.;可以用外部工件零点偏移或工件零点偏移来改变用G54到G59指定的6个工件坐标系的位置。指令格式:用G10改变G10 L2 Pp IP_; P0:外部工件零点偏移值 P1到6:工件坐标系1到6 的工件零点偏移 IP:对于绝对值指令(G90),为每个轴的工件零点偏移值。 对于增量值指令(G90),为每个轴加到设定的工件零点的偏移量,(相加的结果为新的工件零点的偏移值),追加的工件坐标系(G54.1或G54)指令格式: 选择追加工件坐标系 G54.1 Pn;或G54Pn; Pn:指定追加工件坐标系的代码 n :148 在追加工件坐标系中设置工件零点偏移值 G10 L20 Pn IP_; Pn:指定工件坐标系工件零点偏移值的代码 n:148 IP_;设定工件零点偏移的轴地址和偏移值第五章 算术和逻辑运算算术和逻辑运算功能格式备注定义#i=#j加法减法乘法除法#i=#j+#k#i=#j#k#i=#j*#k#i=#j/#k正弦反正弦余弦反余弦正切反正切#i=SIN#j;#i=ASIN#j;#i=COS#j;#i=ACOS#j;#i=TAN#j;#i=ATAN#j/#k;角度以度指定。9030表示为90.5。平方根绝对值舍入上取整下取整自然对数指数函数#i=SQRT#j;#i=ABS#j;#i=ROUND#j;#i=FIX#j;#i=FUP#j;#i=LN#j;#i=EXP#j;或异或与#i=#jOR#k;#i=#jXOR#k;#i=#jAND#k;逻辑运算一位一位地按二进制数执行。从BCD(十进制)转换为BIN(二进制)从BIN(二进制)转换为BCD(十进制)#i=BIN#j;#i=BCD#j;用于与PMC的信号交换当算术运算或逻辑运算指令IF或WHILE中包含ROUND函数时,则ROUND函数在第1个小数位置四舍五入。CNC处理数值运算时,若操作后产生的整数绝对值大于原数的绝对值时为上取整;若小于原数的绝对值为下取整。对于负数的处理应小心。第六章 宏程序语句和NC语句6.1 下面的程序段为宏程序语句:包含算术或逻辑运算()的程序段。包含控制语句(例如,GOTO,DO,END)的程序段。包含宏程序调用指令(例如,用G65,G66,G67或其它G代码,M代码调用宏程序)的程序段。除了宏程序语句以外的任何程序段都为NC语句。6.2 宏程序语句与NC语句的不同点即使置于单程序段运行方式,机床也不停止。但是,当参数No.6000#5(SBM)设定为1时,在单程序段方式中,机床停止。在刀具半径补偿方式中宏程序语句段不做为不移动程序段处理。6.3 与宏程序语句有相同性质的NC语句 含有子程序调用指令(例如,用M98或其它M代码或用T代码调用子程序)但没有除O,N可L地址之外的其它地址指令的NC语句,基性质与宏程序语句相同。 不包含除O,N,P或L以外的指令地址的程序段其性质与宏程序语句相同。第七章 转移和循环7.1 无条件转移(GOTO语句)指令格式GOTO n; n:顺序号(1到99999)7.2 条件转移(IF语句)条件表达式指令格式 IF条件表达式GOTO n; IF条件表达式THEN;7.3 条件表达式运算符运算符含义EQ等于()NE不等于()GT大于()GB大于或等于()LT小于()LE小于或等于()7.4 循环(WHILE语句)指令格式 WHILE条件表达式 Dom;(m=1,2,3) : END m; :无限循环当指定DO而没有指定WHILE语句时,产生从DO到END的无限循环。处理时间,在处理有标号转移的的GOTO语句时,进行顺序号检索。反向检索的时间要比正向检索长。用WHILE语句实现循环可减少处理时间。未定义的变量,在使用EQ或NE的条件表达式中,空和零有不同的效果。在其它形式的条件表达式中,空被当作零,当替换或者插入用户宏指令时,开始的两个或多个字符可以替换整个字。第八章 宏程序调用8.1 宏程序调用和子程序调用之间的差别宏程序调用(G65)不同于子程序调用(M98),如下所述。 用G65,可以指定自变量(数据传送到宏程序)。M98没有该功能。 当M98程序段包含另一个NC指令(例如,G01 X100.0 M98Pp)时,在指定执行之后调用子程序。相反,G65无条件地调用宏程序。 M98程序段包含另一个NC指令(例如,G01 X100.0 Pp)时,在单程序段方式中,机床停止。相反,G65机床不停止。 用G65,改变局部变量的级别。用M98,不改变局部变量的级别。8.2 非模态调用(G65)指令格式 G65 Pp_L_自变量指定; P_ :要调用的程序 _ :重复次数(默认值为1) 自变量 :数据传递到宏程序自变量指定自变量指定地址变量号地址变量号地址变量号ABCDEFH#1#2#3#7#8#9#11IJKMQRS#4#5#6#13#17#18#19TUVWXYZ#20#21#22#23#24#25#26地址G,L,N,O和P不能在自变量中使用。自变量指定地址变量号地址变量号地址变量号ABCI1J1K1I2J2K2I3J3#1#2#3#4#5#6#7#8#9#10#11K3I4J4K4I5J5K5I6J6K6I7#12#13#14#15#16#17#18#19#20#21#22J7K7I8J8K8I9J9K9I10J10K10#23#24#25#26#27#28#29#30#31#32#33I,J,K的下标用于确定自变量指定的顺序,在实际编程中不写1小数点的位置不带小数点的自变量,其数据单位为各地址的最小设定单位。传递不带小数点的自变量,其值会根据机床实际的系统配置变化。在宏程序调用中使用小数点可使程序兼容性好。2调用嵌套 调用可以嵌套4级,包括非模态调用(G65)和模态调用(G66)。但不包括子程序调用(M98)。3局部变量的级别 局部变量嵌套从0到4级。主程序是0级。宏程序每调用1次(用G65或G66),局部变量级别加1。前1级的局部变量值保存在CNC中。当宏程序执行M99时,控制返回到调用程序。此时,局部变量级别减1,恢复宏程序调用时保存局部变量值。8.3 模态调用(G66)G66 Pp_L_自变量指定;Pp_:要调用的程序号 _:重复次数(默认值为1) 自变量:传递到宏程序的数据 取消用G67。1模态调用嵌套在模态调用期间,指定另一个G66代码,可以嵌套模态调用。2限制在G66程序段中,不能调用宏程序。G66必须在自变量之前指定。在只有诸如辅助功能但无移动指令的程序段中不能调用宏程序。局部变量(自变量)只能在G66程序段中指定。注意,每次执行模态调用时,不再设定局部变量。8.4 用G代码调用宏程序在参数中设置调用宏程序的G代码,按非模态调用(G65)的方法调用宏程序。在参数(No.6050到No.6059)中设置调用用户宏程序(O9010到O9019)和G代码号(从1到9999),调用用户宏程序的方法与G65相同。参数号和程序号之间对应的关系程序号参数号O9010O9011O9012O9013O9014O9015O9016O9017O9018O90196050605160526053605460556056605760586059与非模态调用一样,地址L中指定从1到9999的重复次数。在G代码调用的过程中,不能三G代码调用宏程序。这种程序中的G代码被处理为普通G代码。在用M代码或T代码调用的子程序中,不能用G代码调用宏程序。这种程序中的G代码也处理为普通G代码。8.5 用M代码调用宏程序在参数中设置调用宏程序的M代码,按非模态调用(G65)一样的方法调用宏程序。在参数(No.6080到No.6089)中设置调用用户宏程序(O9020到O9029)的M代码(从1到99999999),调用宏程序的方法同G65相同。参数号和程序号之间的对应关系程序号参数号O9020O9021O9022O9023O9024O9025O9026O9027O9028O90296080608160826083608460856086608760886089与非模态调用一样,地址L指定从1到9999的重复次数。调用宏程序的M代码必须在程序段的开头指定。用G代码调用的宏程序或用M代码或T代码调用的子程序中,不能用M代码调用宏程序。这种宏程序或子程序中的M代码被处理为普通M代码。8.6 用M代码调用子程序在参数中设置调用子程序(宏程序)的M代码号,按与子程序调用(M98)相同的方法调用宏程序。在参数(No.6071到No.6079)中设置调用子程序的M代码(从1到99999999),相应的用户宏程序(O9001到O9009)可按与M98同样的方法调用。参数号和程序号之间的对应关系程序号参数号O9001O9002O9003O9004O9005O9006O9007O9008O9009607060726073607460756076607760786079与非模态调用一样,地址L中指定从1到9999的重复次数。不允许指定自变量。在宏程序中M代码被处理为普通M代码。用G代码调用的宏程序,或用M或T代码调用的子程序中,不能用M代码调用子程序。这种宏程序或程序中的M代码被处理为普通M代码。8.7 用T代码调用子程序通过设定参数,可使用T代码调用子程序(宏程序)。每当在加工程序中指定T代码时,即调用宏程序。设置参数No.6001的5位TCS1,当在加工程序中指定T代码时,可以调用宏程序O9000。在加工程序中指定的T代码赋值到公共变量#149。用G代码调用宏程序中或用M或T代码调用的程序中,不能用代码调用子程序。这种宏程序或程序中的T代码被处理为普通T代码。第九章 非圆曲线的编程方法宏指令编程像高级语言一样,可以使用变量进行算术运算、逻辑运算和函数混合运算进行编程。在宏程序形式中,一般都提供循环、判断、分支和子程序的方法,能够编制各种复杂零件的加工程序。数控加工中熟练应用宏程序指令进行编程,可大大精简程序量,还扩展数控机床的加工适应能力。如果将抛物线、椭圆等非圆曲线的算法标准化后做成内部宏程序,就可以像圆弧插补一样按标准格式编程调用,相当于增加了系统的插补功能,根据加工需要可随时调用,极大提高编程效率。但是由于宏程序大量使用逻辑运算,并且语句多层嵌套,逻辑关系理解性很强,初学编程者难以理解。非圆曲线轮廓是机械零件常见的轮廓要素之一,绝大多数数控机床只具备直线插补和圆弧插补功能。因此,在这些数控机床上加工非圆曲线只能用很多直线段或圆弧段来逼近非圆曲线,其中直线逼近法中的等间距法由于数学处理简单而被编程人员广泛采用。但是对于如何合理地确定间距的大小,很多编程人员往往采用经验法或估算法,结果不是加工精度达不到要求就是节点太多而使加工时间过长。9.1 宏程序编程中直线逼近法的缺点及解决方法非圆曲线按其描述的特点可分为线性非圆曲线和非线性非圆曲线。它们的具体逼近算法有所不同,但计算原理基本一致,即选择适合于被逼近曲线的平行线,获取所需逼近直线段的节点。由于大部分数控机床不具备对非圆曲线刀尖轨迹的插补指令。因此,在编写此类二次曲线刀尖轨迹的数控程序时,通常用直线段或圆弧予以替代。由于直线替代法简单、直观,因此使用较多。在加工过程中不同点的曲率变化不同,容易造成在加工长轴顶点时,容易出现平顶现象。同样在短轴直径处椭圆表面容易出现带状平面。解决方法:1选择合适的刀尖半径补偿量和步距:2在长轴起始处用宏程序编程时,选择X轴(短轴)为自变量,在到达短轴起始处选择Y轴(长轴)为自变量。3使用其它自变量(如角度)来加工X轴和Y轴,可有效提高加工品质。在数控编程的实际应用中,常见的是直线插补和圆弧插补,没有椭圆插补,但在实际生产中,往往遇到许多椭圆的零件需要加工,如果手工常规编程就无法编制出椭圆的加工程序,为了解决这个问题,在数控编程中有宏程序可以做到椭圆的加工。目前,宏程序的应用比较广泛,其实宏就是用公式来加工零件,比如说椭圆,如果没有宏程序的话,要逐点算出曲线上的点,然后慢慢用直线逼近,如果是个光洁度要求很高的工件的话,那么需要计算很多的点,可是应用了宏程序后,只需把椭圆参数输入到系统中,那么宏程序就会自动插补椭圆。为了有效防止平顶现象,我们采用第三种方法加工椭圆。下面为椭圆的宏程序调用程序(本程序可插补椭圆的一部分,并可指定椭圆的铣削方向)的编写方法及步骤:第一步:写出椭圆的方程:第二步:将x和y用参数方程表示:第三步:将x和y用转化为宏程序中的变量:#24#1*COS#19#25=#2*SIN#19第四步:利用直线逼近法编写宏程序,如下:65P1 S_T_X_Y_R_A_B_F_;宏变量分配:S_:起点角度(相对于X轴),赋值给#19;T_:终点角度(相对于X轴),赋值给#20;X_Y_:椭圆中心坐标,赋值给#24和#25;R_:椭圆长轴和X轴的角度,赋值给#18;A_:椭圆长半轴长度,赋值给#1;B_:椭圆短半轴长度,赋值给#2;F_:进给速度,赋值给#9;O0001 ;#100#4003;(读取并储存初始状态,G90或G91)G68 X#24 Y#25 R#18, ;IF#19GE#20GOTO100;(如果起点角度大于或等于终点角度,则转向N100,用于顺时针插补,否则为逆时针插补)WHILE#19LE#20 DO1;(条件判断语句)G90 G01 X#1*COS#19+#24 Y#2*SIN#19+#25 F#9 ;#19=#19+0.05 ;(计数器)END1 ;N100 WHILE#20LE#19 DO2; (条件判断语句)G90 G01 X#1*COS#19+#24 Y#2*SIN#19+#25 F#9 ;#19=#19-0.05 ;(计数器)END2 ;G69 ;G#100;(初始状态复位)M99 ;(子程序结束)9.2 抛物线插补下面是编写方程为YXX的抛物线在Y100处的曲线的方法,为了有效防止平顶现象,我们采用第二种方法加工抛物线。第一步:写出.抛物线的方程:;第二步:将x和y用参数方程表示:第三步:将x和y用转化为宏程序中的变量:#100=#101*#101;#101=-SQRT#100;第四步:求导(我们以Y的导数为正一和负一时为分界线,在其导数介于正一和负一时用X作为自变量,其余部分以Y作为自变量):2x;当1时,x=0.5,y=0.25;当-1时,x=-0.5,y=0.25;第五步:编写如下:O0001 ;G00 G54 G90 X-20 Y100 ; (工件坐标系指定)G43 Z100 H01 M03 S1000 ; (主轴正转,建立刀补)Z0 M8; (切削液开)G01 G42 X-10 Y100 F100 ;(建立刀具半径补偿)#100=100 ;(#100赋初始值(变量#100代表Y方向的变化值)WHILE#100 GE 0.25 DO1; (条件表达式)#101=-SQRT#100 ;(计算X坐标)G01 X#101 Y#100 ;#100=#100-0.01 ;(计数器)END1 ;#100=#101*#101 ;(计算Y坐标)WHILE#101 LE 0.5 DO1 ; (条件表达式)G01 X#101 Y#100 ;#101=#101+0.01 ;(计数器)END1 ;WHILE#100 LE 100 DO1 ; (条件表达式)#101=SQRT#100 ;(计算X坐标)G01 X#101 Y#100 ;#100=#100+0.01 ;(计算X坐标)END1 ;G01 G40 X20 Y100 ;(取消刀具补偿)G91 G28 Z0 M09 ; (Z向退刀,切削液关)M30 ; (程序结束)9.3 双曲线插补下面是编写方程为的抛物线在第一区间内处的双曲线方法:为了有效防止平顶现象,我们采用第二种方法加工双曲线。第一步:写出. 双曲线的方程:第二步:将x和y用参数方程表示:第三步:将x和y用转化为宏程序中的变量:#100=10/#100;#101 = 10/#100;第四步:求导(我们以Y的导数为负一时为分界线,在其导数大于负一时用X作为自变量,其余部分以Y作为自变量): -1时,x=,y=;第五步:编写程序如下:O0001;G00 G54 G90 X-10 Y10 ; (工件坐标系指定)G43 Z100 H01 M03 S1000 ; (主轴正转,建立刀补)Z0 M08; (切削液开)G01 G42 X1 Y100 F100 ; (建立刀具半径补偿)#100=10 ; (#100赋初始值(变量#100代表Y方向的变化值)WHILE#100 GE SQRT10 DO1 ;(条件表达式)#101 = 10/#100 ;(计算X坐标)G01 X#101 Y#100 ;#101=#101-0.01 ;(计数器)END1 ;WHILE#101 LE 10 DO1; (条件表达式)#100=10/#100 ;(计算Y坐标)G01 X#101 Y#100 ;#101=#101+0.01 ;(计数器)END1 ;G01 G40 X10 Y-10;(取消刀具补偿)G91 G28 Y0 Z0 M9;(Z向退刀,切削液关)M30 ;(程序结束)第十章 系统变量的应用方法10.1.宏变量中的系统变量#13001的介绍在FANUC 0i系统中,系统提供的参数可以实现刀补功能。使用系统参数不仅可以传递固定值,还可以传递变量值。下面介绍参数表示的含义: #13001相当于D01,#13002相当于D02,依次类推例如:#13001=6.0,表示将刀补值6.0输入到刀补D01中;#13001=5.0SIN#1,表示将变量值5.0SIN#1输入到刀补D01中。也可用 G10的方法输入刀补值,如G10 L12 P1 R6.0,则表示将刀补值6.0输入到刀补D01中,G10 L12 P1 R5.0SIN#1,则表示将变量值5.0SIN#1输入到刀补D01中。编写宏程序的一般步骤: 用系统变量手工编制数控铣削宏程序的一般步骤如下:1.找到加工图纸中圆角、直角、球类的轨迹,确定曲线类型,找到或者求出曲线的参数方程。 2.确定系统变量#13001刀补所对应的参数计算值,求出#13001的值,一般采用变量式来表示该值,假设刀具直径为10,加工上图所示直角。#13001中的值=刀具直径值-(倒角边长-每次Z方向变化值所对应的X变化值),假设变量#1代表Z方向的变化值,由于该倒角是45度角,X方向的变化值等于#1tan45,因此得出#13001=5-(2-#1),通常由于#1值取为负,故#13001=10-(2-(-#1)。 3.设定宏变量,对于上述直角只需要设定Z方向变化宏变量#1,当然对于圆角而言,采用参数方程就需要设定角度变化宏变量,我们在下面举例中详细介绍变量的设定。 4.应用数控系统中的宏程序指令,开始时写出宏程序判定条件表达式,进行直线插补,然后设定宏变量,通过计算对#13001进行补正并进行轮廓加工,最后写出宏程序结束指令。10.2 编程实例 1.下面以FANUC-0i Mate Mc数控系统为例,进一步来说明#13001手工编制数控铣削宏程序的方法和技巧。例一:编制上图所示倒角的加工程序。O0001; G54 G00G90 X100 Y100;(工件坐标系指定) G43Z100.H1M03 S600;(主轴正转,建立刀补)M08;(切削液开) G00 X60 Y-60;(快速走刀至(60,-60)处N50 Z5;快速下刀至安全平面5mm处) Z-2 F200;(Z轴进给至零点下方2mm处 )#1=-2;(#1赋初始值(变量#1代表Z方向的变化值) #1 LE 0DO1;(条件判断语句) #13001=10-2-(#1);(#13001赋值,或用G10L12P1R10-2-#1亦可) G01 X60 Y-30 D01;(刀补建立 )X-30;(开始加工正方形 )Y3
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 管理文书 > 施工组织


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!