您好,欢迎访问三七文档
当前位置:首页 > IT计算机/网络 > 软件工程 > 数控编程与工艺2电子教案
九江职业技术学院教案数控编程与工艺第1页方程曲面类零件数控编程与加工宏程序的基础知识(一)宏程序的应用概述在程序中使用变量,通过对变量进行赋值及处理的方法达到程序功能,这种含有变量的程序叫宏程序。1.宏程序与普通程序的对比一般意义上所讲的数控指令其实是指ISO代码指令编程,即每个代码的功能是固定的,由系统厂家开发,使用者只需按照规定编程即可。但有时候这些指令满足不了用户的需要,系统因此提供了用户宏程序的功能,使用户可以对数控系统进行一定的功能扩展,实际上是数控系统对用户的开放,也可视为用户利用数控系统提供的工具,在数控系统的平台上进行二次开发,当然这里的开放和开发都是有条件和有限制的。用户宏程序和普通程序存在一定的区别,认识和了解这些区别,将有助于宏程序的学习理解和掌握运用。(1)普通程序只能使用常量编程,而宏程序可以使用变量,并可以给变量赋值。(2)普通程序常量之间不可以运算,而宏程序变量之间可以运算。(3)普通程序只能顺序执行,一般不能跳转,而宏程序运行可以跳转。2.宏程序编程的技术特点尽管使用各种CAD/CAM软件来编制数控加工程序已经成为潮流,但是手工编程毕竟还是基础,各种“疑难杂症”的解决往往还要利用手工编程;且手工编程还可以使用变量编程,即宏程序的运用。其最大特点就是将有规律的形状或尺寸用最短的程序段表示出来,具有较好的易读性和易修改性,编写出的程序非常简洁,逻辑严密,通用性极强,而且机床在执行此类程序时,比执行CAD/CAM软件生成的程序更加快捷,反应更迅速。机械零件的数控加工主要有以下特点:(1)机械零件绝大多数都是批量生产,在保证质量的前提下要求最大限度地提高加工效率以降低成本,一个零件哪怕仅仅节省1s,成百上千的同样零件合计起来节省的时间就非常可观了。(2)机械零件的形状主要是由各种凸台、凹槽、圆孔、斜平面、回转面等组成,很少包含不规则的复杂曲面,构成其几何因素无外乎点、直线、圆弧,最多加上各种二次非圆曲线(椭圆、抛物线、双曲线),以及一些渐开线(常用于齿轮及凸轮等),所有这些都是基于三角函数、解析几何的应用,而数学上都可以用数学表达式及参数方程加以表述,因此宏程序在此有广泛的应用空间,可以发挥其强大的作用。(3)机械零件还有一些很特殊的应用,即使采用CAD/CAM软件也不一定能轻易的解决,例如变螺距螺纹的加工,用螺旋插补进行锥度螺纹的加工等,在这些方面宏程序却可以发挥它的优势。3.宏程序与CAD/CAM软件生成程序的加工性能对比而对于CAD/CAM软件生成的程序,情况就要复杂得多:首先,CAD/CAM软件生成的程序通常都比较大,非常容易突破机床数控系统内部程序存储空间的限制,因此一般来说除了相对简单的孔系加工、二维轮廓加工以外,其余绝大部分程序都不得不以DNC方式进行在线加工,显然机床与电脑之九江职业技术学院教案数控编程与工艺第2页间的传输速度成为了影响加工速度的第一个瓶颈因素。除了那些机床系统内置硬盘或机床与电脑之间以以太网等形式进行组网的新型数控机床之外,目前大多数的数控机床都是通过RS-232的串口通信来实现DNC在线加工的。其次,从用户使用的角度说,使用CAD/CAM软件来生成刀具轨迹及加工程序是非常容易的事,但是剖析CAD/CAM软件计算刀具轨迹的原理,就知道它存在一定的弊端。在CAD/CAM软件中,无论构造规则或不规则的曲面,都是一个数学运算的过程,也必然存在着计算的误差和处理,而在对其生成三维加工刀具轨迹时,软件是根据操作者所选择的加工方式、设定的加工参数,并结合所给定的加工误差,使刀具与加工表面接触点逐点移动完成加工,从本质上看,其实就是在允许的误差值范围内沿每条路径用直线去逼近曲面的过程。(二)FANUC0i系统的用户宏程序用户宏程序(Custommacro)由于可以使用变量、算术逻辑运算及条件转移,使得编制形状相同的通用加工程序(例如型腔加工宏程序和用户固定循环)更简便。宏程序一般分为A类宏程序和B类宏程序。A类宏程序是以G65HxxP#xxQ#xxR#xx的格式输入的,而B类宏程序则是以直接的公式和语言输入的和C语言很相似,在FANUC0i系统中应用比较广,使用时,加工程序还可以可用一条简单指令调出用户宏程序,和调用子程序完全一样。1.变量普通加工程序直接用数值指定G代码和移动距离;例如:G01和X100.0。使用用户宏程序时,数值可以直接指定或用变量指定,当用变量时,变量值可用程序或用MDI设定或修改。#11=#22+123;G01X#11F500;(1)变量的表示变量需用变量符号“#”和后面的变量号指定。例如:#11。表达式可以用于指定变量号,这时表达式必须在括号中。例如:#[#11+#12-123](2)变量的类型变量从功能上可归纳为两种,即:系统变量,用于系统内部运算时各种数据的存储。用户变量,包括局部变量和公共变量,用户可以单独使用,系统作为处理资料的一部分,FANUC0i系统的变量类型如表3-1:表3-1FANUC0i变量类型变量名类型功能九江职业技术学院教案数控编程与工艺第3页#0空变量该变量总是空,没有值能赋予该变量用户变量#1~#33局部变量局部变量只能在宏程序中存储数据,例如运算结果。断电时,局部变量清除。#100~#199#500~#999公共变量公共变量在不同宏程序中的意义相同(即公共变量对于主程序和从这些主程序调用的每个宏程序来说是公用的)。断电时,#100~#199清除(初始化为空),通电时复位到0。而#500~#999数据,即使在断电时也不清除#1000以上系统变量系统变量用于读和写CNC运行时各种数据变化,例如,刀具当前位置和补偿值等。(3)小数点的省略当在程序中定义变量值时,整数值的小数点可以省略。例如:当定义#11=123;变量#11的实际值是123.000。(4)变量的引用在程序中使用变量值时,应指定其后变量号的地址。当用表达式指定变量时,必须把表达式放在括号中。例如:G01X[#11+#22]F#3。改变引用变量的值的符号,要把负号(-)放在#的前面。例如:G00X-#11。当引用未定义的变量时,变量及地址都被忽略。例如:当变量#11的值是0,并且#22的值是空时,G00X#11Y#22的执行结果为G00X0。注意:从这个例子可以看出,所谓“变量的值是0”与“变量的值是空”是两个完全不同的概念,可以这样理解:“变量的值是0”相当于“变量的值等于0”,而“变量的值是空”则意味着“该变量所对应的地址根本就不存在,不生效”。不能用变量代表的地址符有:程序号O,顺序号N,任选程序段跳转号/。例如以下情况不能使用变量:O#11;/O#22G00X100.0;N#333Y200.0;另外,使用ISO代码编程时,可用“#”代码表示变量,若用EIA代码,则应用“&”代码代替“#”代码,因为EIA代码中没有“#”代码。宏程序编程格式九江职业技术学院教案数控编程与工艺第4页1.用户宏程序功能组成目前一般的数控系统提供的B类宏程序,其功能由变量、变量赋值符、算术运算符、逻辑运算符、条件判断语句、循环控制语句等组成。其基本功能组成描述如表3-2所示。表3-2用户宏程序功能组成序号功能主要内容1变量空变量、局部变量、公共变量、系统变量2变量赋值符=3算术运算+、-、*、/、SIN、ASIN、COS、ACOS、TAN、ATAN、SQRT、ABS、TOUND、FIX、FUP、LN、EXP4逻辑运算OR、XOR、AND5条件判断EQ、NE、GT、GE、LT、LE6循环控制GOTOn、IF[]GOTOm、IF[]THEN…、WHILE[]Dom…ENDm、一般编程方法允许对变量命名,但用户宏程序不行。变量用变量符号(#)和后面的变量号或表达式指定。如:#1、#[#2+#3-10]。在程序地址后指定变量号即可引用其变量值,当用表达式指定变量时,要把表达式放在括号中,如G01X#2F#3、G01Y[#2+#8-8]F#2。改变引用变量的值的符号,要把符号(-)放在#的前面。2.算术和逻辑运算表3-3中列出的运算可以在变量中运行。等式右边的表达式可包含常量或由函数或运算符组成的变量。表达式中的变量#j和#k可以用常量赋值。等式左边的变量也可以用表达式赋值。其中算术运算主要是指加、减、乘、除、函数等,逻辑运算可以理解为比较运算。表3-3FANUC0i算术和逻辑运算一览表功能格式备注定义、置换#i=#j算术运算加法减法乘法除法#i=#j+#k#i=#j-#k#i=#j*#k#i=#j/#k正弦#i=SIN[#J]三角函数及反三角函数的数值均以度为单位指定。如90°30′应表示为90.5°反正弦#i=ASIN[#J]余弦#i=COS[#J]反余弦#i=ACOS[#J]正切#i=TAN[#J]反正切#i=ATAN[#j]/[#k]平方根#i=SQRT[#J]绝对值#i=ABS[#J]舍入#i=ROUND[#J]指数函数#i=EXP[#J]九江职业技术学院教案数控编程与工艺第5页(自然)对数#i=LN[#J]上取数#i=FIX[#J]下取数#i=FUP[#J]逻辑运算与#i=#JAND#k或#i=#JOR#k异或#i=#JXOR#k从BCD转为BIN#i=BIN[#J]用于与PMC的信号交换从BIN转为BCD#i=BCD[#J]以下是对部分算术和逻辑运算指令的详细说明。(1)上取数#i=FIX[#j]和下取数#i=FUP[#j]CNC处理数值运算时,无条件地舍去小数部分称为上取数;小数部分进位到整数称为下取整(注意与数学上的四舍五入对照)。对于负数的处理要特别小心。例如:假设#1=1.2,#2=-1.2①当执行#3=FUP[#1]时,2.0赋予#3;②当执行#3=FIX[#1]时,1.0赋予#3;③当执行#3=FUP[#2]时,-2.0赋予#3;④当执行#3=FIX[#2]时,-1.0赋予#3;(2)混合运算时的运算顺序上述运算和函数可以混合运算,即涉及到运算的优先级,其运算顺序与一般数学上的定义基本一致,优先级顺序从高到低依次为:函数运算乘法和除法运算(*、/、AND)加法和减法运算(+、-、OR、XOR)例:#1=#2+#3*cos[#4];123其中1、2、3表示运算顺序(3)括号嵌套用“[]”可以改变运算顺序,最里层的[]优先运算。括号[]最多可以嵌套5级(包括函数内部使用的括号)。当超出5级时,触发程序错误P/S报警No.118。例:#6=COS[[[#5+#4]*#3+#2]*#1];(三重嵌套)123九江职业技术学院教案数控编程与工艺第6页45其中1到5表示运算顺序(4)逻辑运算说明逻辑运算相对于算术运算来说,更为特殊和费解,详细说明见表3-4。表3-4Fanuc0i逻辑运算说明运算符功能逻辑名运算特点运算实例AND与逻辑乘(相当于串联)有0得01×1=1,1×0=0,0×0=0OR或逻辑加(相当于并联)有1得11+1=1,1+0=1,0+0=0XOR异或逻辑减相同得0,不同得11-1=0,1-0=1,0-0=0,0-1=1说明:①加减运算由于用户宏程序的变量值的精度仅有8位十进制数,当在加减运算处理非常大的数时,将得不到期望的结果。例如:当试图把下面的值赋给变量#1和#2时,#1=9876543277777.777#2=9876543210123.456变量值实际上已经变成:#1=9876543300000.000#2=9876543200000.000此时,当编程计算#3=#1-#2时,其结果#3并不是期望值67654.321,而是#3=100000.000,显然误差较大,实际计算结果其实与此还稍有误差,因为系统是以二进制执行的。②逻辑运算即使用条件表达式EQ,NE,GT,GE,LT,LE时,也可能造成误差,其情形与加减运算基本相同。例如:IF[#1EQ#2]的运算会受到#1和#2的误差的影响,并不总是能估算正确,要求两个值完全相同,有时不可能,由此会造成错误的判断,因此改用误差来限制比较稳妥,即用IF[ABS[#1-#2]LT0.001]代替上述语句,以避
本文标题:数控编程与工艺2电子教案
链接地址:https://www.777doc.com/doc-7037609 .html