1、数控车床宏程序烟台南山学院江吉勇宏程序定义 利用数控系统提供的变量、数学运算功能、逻辑判断、条件转移等功能编写的加工程序。宏程序中的变量 一个普通的零件加工程序指定G码并直接用数字值表示移动的距离,例:G100 X100.0。而利用用户宏,既可以直接使用数字值也可以使用变量号。当使用变量号时,变量值既可以由程序改变,也可以用MDI面板改变。 #1=#2+100 G01 X#1 F300变量的表示 计算机允许使用变量名,宏程序不可以。 变量用变量符号(#)和后面的变量号指定例:#1 表达式可用于指定变量号,表达式必须封闭在方括号里。例:#1+#2-12变量的类型 根据变量号将变量分为四类,见下表
2、: 变量号变量类型 功能#1#33局部变量 局部变量只能用在宏程序中存储数据,例如运算结果。当断电时局部变量被初始化为空,调用宏程序时自变量对局部变量赋值。变量号变量类型功能#100#199#500#999公共变量 公共变量在不同的宏程序中的意义相同当断电时变量#100 #199初始化为空变量 #500 #999 的数据保存即使断电也不丢失变量号变量类型功能#1000系统变量 系统变量用于读和写CNC 运行时各种数据的变化例如刀具的当前位置和补偿值等变量的范围 小数点的省略 当程序中定义变量值时,小数点可以省略 例:当定义#1=123;变量#1的实际值是 123.000 变量的引用 为了在程序
3、中使用变量,指定后面跟变量号的地址。当用表达式指定一个变量时,须用方括号括起来。例:G01 X#1+#2 F#3。 引用的变量值根据地址的最小输入增量自动舍入。 例:G00 X#1;其中#1值为12.3456,CNC最小输入增量1/1000mm,则实际指令值为G00 X12.346。 改变引用的变量值的符号,要把“”号放在(#)前面。 例:G00 X#1; 当引用未定义的变量时,变量及地址字都被忽略。例:#1=0 ,#2=“空”, 则G00 X#1 Y#2;的执行结果是G00 X0; 变量的赋值程序中的地址在宏程序体中的变量程序中的地址在宏程序体中的变量A#1Q#17B#2R#18C#3S#1
4、9D#7T#20E#8U#21F#9V#22H#11W#23I#4X#24J#5Y#25K#6Z#26M#13 变量的算术与逻辑运算变量的运算符等于:EQ 格式: #j EQ #k不等于:NE格式: #j NE #k大于:GT格式: #j GT #k小于:LT格式: #j LT #k大于等于:GE格式: #j GE #k小于等于:LE格式: #j LE #k宏程序语句的转移循环 在程序中,使用IF语句和GOTO语句可以改变控制的流向。有三种转移和循环操作可供使用 无条件转移(GOTO)语句 条件转移(IF)语句 IFTHEN 循环(WHILE)语句 嵌 套在DOEND之间循环中的标号(13)可
5、根据需要多次使用。但是当程序有交叉重复循环(DO范围的重叠)时,会出现P/S报警NO.124 说明 1.无限循环:当指定DO而没有WHILE语句时,产生从DO到END的无限循环。 2.处理时间:当在GOTO语句中有标号转移的语句时,进行顺序号检索,反向检索要比正向检索的时间长,用WHILE 语句实现循环可减少处理时间。 3未定义的变量:在使用EQ和NE的表达式中和零有不同的效果,在其他形式的表达式中,空被当作零。 示例程序 宏程序在车床编程中的应用实例 参数编程 参数编程用于系列零件的加工,此系列零件形状相同,但有部分尺寸不同。如果将这些不同的尺寸用宏变量(参数)形式给出,由程序自动对相关节点
6、坐标进行计算,则可用同一程序完成一个系列零件的加工。 如下图示:该系列零件的右端面半球球径可取R15和R10,可将球径用变量表示。编程零件设在工件右端面中心,棒料45。 从图中可以看出,编程所需节点,除A、D、E三点外,B、C点均与球径R有关。下面给出各节点坐标。加工程序如下加工程序如下: %1001 G98 S800 M3; T0101; G00 X45.0 Z2 .0M07; #1=15; G71 U7 R1; G71 P10 Q20 U1 W0.2 F0.4 S750; N10 G0 X0 S1200;G3 X2*#1 Z-#1 R#1 F0.15;G1 Z-20-2*#1; X40.0
7、 Z-60.0; Z-100.0; N20 X45; G70 P10 Q20; G0 X200. Z200.0; M30; 方程曲线的车削加工 在实际车削加工中,有时会遇到工件轮廓是某种方程曲线的情况,此时可采用宏程序完成方程曲线的加工。1.方程曲线车削加工的走刀路线: 粗加工:应根据毛坯的情况选用合理的走刀路线。 对棒料、外圆切削,应采用类似G71的走刀路线; 对盘料,应采用类似G72的走刀路线; 对内孔加工,选用类似G72的走刀路线较好,此时镗刀杆可粗一些,易保证加工质量。 精加工:一般应采用仿形加工,即半精车、精车各一次 椭圆轮廓的加工椭圆轮廓的加工 对椭圆轮廓,其方程有两种形式。对粗加
8、工,采用G71/G72走刀方式时,用直角坐标方程比较方便;而精加工(仿形加工)用极坐标方程比较方便。 极坐标方程极坐标方程 直角坐标方程直角坐标方程: 示例: 加工下图所示椭圆轮廓,棒料45,编程零点放在工件右端面。 %200G98 S700 M3; T0101;G0 X41 Z2;G1 Z-100 F150; 粗加工开始G0 X42;Z2;#1=20*20*4; 4a2#2=60; b#3=35 ; X初值(直径值)WHILE #3 GE 0 DO1; 粗加工控制#4=#2*SQRT1-#3*#3/#1; ZG0 X#3+1 ; 进刀G1 Z#4-60+0.2 F150; 切削G0 U1;
9、退刀 Z2; 返回#3=#3-4; 下一刀切削直径END1;#10=0.8; x向精加工余量#11=0.1; z向精加工余量WHILE #10 GE 0 DO1; 半精精加工控制G0 X0 S800; 进刀,准备精加工#20=0 ; 角度初值WHILE #20 LE 90 DO2; 曲线加工 #3=2*20*SIN#20; X #4=60*COS#20; Z G1X#3+#10Z#4+#11-40 F100; #20=#20+1; END2; G1 Z-100; G0 X45 Z2; #10=#10-0.8;#11=#11-0.1;END1;G0 X100 Z200;M30; 抛物线加工 加工
10、下图所示抛物线孔,方程为Z=X2/16,换算成直径编程形式 为Z=X2/64,则X=sqrtZ/8。采用端面切削方式,编程零点放在 工件右端面中心,工件预钻有30底孔。加工程序O0002G98S800M3;T0101;G0 X28 Z2;#1=-3; ZWHILE #1 GE 81 DO1; 粗加工控制#2=SQRT100+#1/8; XG0 Z#1+0.3;G1 X#2-0.3 F150;G0 X28 W2;#1=#1-3;END1;#10=0.2;#11=0.2;WHILE #10 GE 0 DO1; 半精、精加工控制#1=-81; G0 Z-81 S1000;WHILE #1 LT 0.5 DO2; 曲线加工控制 #2=SQRT100+#1/8; X G1 X#2-#10 Z#1+#11 F80; #1=#1+0.3;END2; G0 X28; #10=#10-0.2; #11=#11-0.2;END1;G0 X100 Z200; M05; M30;完谢谢大家