当前位置:首页 >> 机械/仪表 >>

宏程序基础


第一章 宏程序的基础
1.1 概述

#2=1(把数值 1 赋值给#2) #2=#1(程序从上往下执行,思考一下现在#2 的 值等于多少?) 解: 当程序执行第一步的时候#1 的值等于 2, 当执行第二步的时候#2 的值等于 1,当执行第 三步的时候这里要注意了,刚才讲过赋值过程, 是等号后面的值赋值给等号前面,所以当#1 在 第一步赋值以后,#1

已经等于 2 了,所以在执 行第三步的时候#2 的值应该等于 2,不在是第 二步的 1 了。从这里我们可以看出,当程序中 有相同的变量#的时候,后面的#号代替前面的# 号。 比如:#1=2 #1=3 最后结果#1 的值因该是等于 3 的。所以说后面 的代替前面的。

一、宏程序的分类 首先我们来讲一下宏程序的分类,A 类和 B 类。 首先在数控车系统比较老的时候,我们系统里 面有 A 类宏,A 类宏格式为 G65 格式,现在已 经基本淘汰。 随着科技发达, 系统的升级优化, 现在的数控系统大多支持 B 类宏程序,总体而 言,现在 B 类宏是一个主流发展趋势,所以接 下来我们的实例讲解都以 B 类宏程序为例。

二、宏程序的概念 简单来理解宏程序是什么?可以这样理解,宏 程序就是利用数学公式,函数等计算方式,配 合数控系统中的 G 代码编制出的一种程序,主 要加工一些像椭圆,曲线,各类大螺距螺纹和 刀具路线相识的一些零件。随着科技发达,像 椭圆,抛物线,等线性零件,用软件或则系统 自代 G 代码可以完成加工,而大螺距异型螺纹 这类零件,软件还没达到成熟,所以我们学会 宏程序在加工中可以起到一个非常大的作用。 可以弥补多年来数控车对大螺距螺纹的编程难 的一个提高。

四、变量的取值范围 1.局部变量(#1-#33) 什么叫局部变量,局部变量就是在局部或则可 以理解为在单个程序中有效。断电以后系统自 动清零。 2.公共变量(#100-#199,#500-#999) 公共变量和局部变量的区别在于,局部变量是 在局部,或则单个程序中有效,而公共变量是 指如果一个程序同时拥有主程序和子程序的情 况下,在主程序中如果已经赋值,在子程序中 可以不用从新赋值,可以共用。而#100-#199 和 #500-#999 的区别在于,前者断电清零,而后者 不会清零会一直保存在系统内部。比如: #500=TAN[15] #500 一旦赋值就将保存在系统内部,下次可以 直接调用#500 使用。 3.系统变量(#1000-#17200) 系统变量是用于我们机床系统储存一些刀补数 据参数等等的东西,我们可以不用管它,不会
1

三、宏程序的特征 1.赋值 在宏程序中我们通常用法最多的就是变量,比 如: #1=1 它就是一个变量。我们把这一过程,称为 赋值。也就是说,我们把等号后面的数值 1,赋 值给#1。而现在#1 的值就等于 1,也可以理解 为#1 就是一个代号,用来代替数值 1。 2.变量和应用 比如:#1=2(把数值 2 赋值给#1)

用的,慎用) 总结: 一般情况下我们写程序用#1-#33, 当有子 程序的时候我们用#100-#199. 七、宏程序的常用符号和含义 GT(大于) GE(大于或等于) LT(小于) LE(小于或等于) EQ(等于) NE(不等于) ABS(绝对值) AND(与) OR(或者) 八、常用的语法和应用 1.无条件转移 GOTO n(n 表示数值) 例如: GOTO01 此程序段的意思是当程序中执行 到这一程序段的时候无条件跳转到程序段中 N1 的地方,执行 N1 后面的程序段。 M3 S500 G99 T101 M08 GOTO 10 (当程序执行到这里的时候,直接跳 转到 N10 那个程序段执行 M30,跳过了 G0 那 一步,所以这叫做无条件跳转,和我们一般程 序中跳段功能一样) G0 X100. Z100. 六、常用三角函数运算 1.TAN(正切) 例如#1=2*TAN[20] 中括号里面是角度 2.SIN(正玄) 例如#1=3*SIN[3] 同上 3.COS(余玄) 例如#1=COS[15] 4.ASIN、ACOS、ATAN(反三角) 5.SQRT(数学中的开平方的意思,和数学中根 号一样) 例如#1=SQRT[9] 那么计算出来#1 的值等于 3 N10 M30 2.有条件跳转 IF[条件表达式] GOTO n 例如:IF[#1 GT 15] GOTO 10 从这段程序当中, 我们这样理解,如果中括号里面的条件满足, 那么就执行后面的 GOTO 跳转语句, 如果中括号 里面条件不满足, 那么不执行后面的 GOTO 跳转, 执行后面一个程序段。 我们简单来写一个程序: M3 S500 G99 T101 M08 N10#1=30(把数值 30 赋值给#1)

五、宏程序中常用的计算 1.加法运算 例如:#1=2 #1=#1+3 那么#1 的值等于 2+3=5 2.减法运算 例如:#1=3 #1=#1-1 那么经过计算我们的#1 的值等于 3-1=2 3.乘法运算 程序中用*号来代替乘法 例如:#1=5 #2=#1*2 那么计算出来#2 的值等于 5*2=10 4.除法运算 程序中用/ 号来代替除法运算 例如:#1=10 #1=#1/2 那么经过计算#1 的值等于 10/2=5

2

IF[#1 LT 50] GOTO 10(首先判断中括号是不是满 足条件,如果满足执行跳转,不满足执行下一 步) M30 从这个程序中我们可以发现当#1=30 的时候, 我 们执行条件判断,我们来判断一下,#1 现在等 于 30,那么重括号里面就可以理解为 30 小于 50,现在条件满足。所以他会执行后面 GOTO 跳转语句,跳转到 N10 地方继续执行) 3.强制赋值语句 IF[条件表达式]THEN (执行语句) 例如:IF[#1 GT 20] THEN#1=20 (我们这样来理解 这个语句,如果#1 大于 20,那么#1 等于 20, 也就是说和上面一样,中括号里面条件满足的 话,执行后面 THEN 语句,如果不满足,不执行 后面 then 语句。 ) 写一段简单程序: #1=3(把数值 3 赋值给#1) #1=#1-5(把#1-5 计算出来的值从新赋值给#1, 也就是 3-5=-2,现在#1=-2) IF[#1 LT 0] THEN#1=0 (强制赋值, 如果#1 小于 0, 那么强制让#等于 0) M30 我们来分析一下上面程序段,当我们#1 执行完 减法运算以后#1 的值已经等于-2,那么我们在 执行强制赋值语句的时候我们来判断一下中括 号里面条件是不是满足,-2 小于 0,条件满足, 所以执行后面 THEN 语句, 如果不满足的时候不 执行 THEN 语句) 4.条件判断语句 WHILE[表达式]DO n ( n 为数值, 取值范围 1-99) END n(n 与开头 n 的数值对应) 例如:WHILE[#12 GT 50]DO 1 END 1
3

下面写一个程序段: #1=60 WHILE[#1 GT 50] DO 1 G0 X#1 G1 Z-20. F0.2 G0 U1. Z1. END 1 M30 这个程序当条件判断语句里面中括号里面条件 满足的时候执行 DO 1 和 END 1 中间的程序段, 如果条件不满足, 执行 END 1 后面的程序段 M30。

以上介绍的语法格式用法,以 FANUC oi 系列,广数,三菱系统为例。西门子,宝 源,新代等系统以说明书为准! ! !

第二章 宏的入门
实例 1.单外径粗车宏的应用 本实例介绍一个简单的车削外径的宏程序,目的为 了让读者熟悉宏语句用法和逻辑。

3.图纸要求直径 30 赋值给#2 4.吃刀量赋值给#3,每层吃刀量为 3.

4.0 加工程序编程与注释 O0010 M3 S300 G99 T101 M08 G0 X51. Z10. Z0. G1 X-0.7 F0.12(平端面) G0W1.X50. #1=50(毛培赋值) #2=30(图纸要求尺寸) #3=3(吃刀量赋值) N10#1=#1-#3 (利用减法运算, 计算出每一层的 X 值) G0 X#1(X 进刀)

上图为一个单一外圆车削图, 材料为直径 50 的棒料, 车削到直径 30,长度 30. 图纸要求,平面见光就行,采用宏程序粗加工,每 刀吃刀量为 3 毫米。 2.0 工艺分析 1.采用 3 爪自定心卡盘夹持直径 50,台阶爪定位左 端面。 2.选择加工刀具,选用 90 度外圆机架刀车刀。 3.0 宏程序编程思路 1.模仿 G71 路线。 2.毛培直径 50 赋值给#1,通过毛培每次递减,实现 车削到指定直径。
4

G1 Z-30. F0.12 G0 U1. Z1. IF[#1 GT #2] GOTO 10(如果#1 大于#2,那么执行跳 转到 N10 的地方执行后面程序,如果不满足,执行 后面一步) G0 X120. Z130. M30

程序编制完成,我们来检查一下这个程序对不对, 首先我们来看#1=#1-#3 这一步, 当#1 等于 50, #3=3 的时候,我们就因该是 50-3=47,然后把 47 从新赋 值给#1,当执行完一刀外径车削以后,我们条件判 断, 如果#1 大于#2, 也可以理解为如果 47 大于 30, 跳转到 N10 继续执行 N10 后面程序段,现在 47 明 显大于 30,所以跳回 N10 的地方,继续执行,当跳 回 N10 以后,#1=#1-#3,现在的#1 应该是前面计算 出来的 47,也就是说#1 现在等于 47-3=44,然后在 执行外径车削, 条件判断。 但是我们现在来想一下, 当他一直这样循环, 循环 6 次以后, 每次吃刀量 3, 也就是 50-3*6=32, 当#1 等于 32 的时候, #1 任然大 于#2,所以他会继续跳转 N10,循环第七次,当第 7 次执行#1=#1-#3 的时候,结果#1=32-3=29,然后在 执行 G0X#1,也就是 G0X29. 通过这里我们就可以看 出如果程序这样编制,它会过切一个毫米,也就是 说本来图纸要求直径为 30,现在它车到了直径 29, 所以报废!下面我们看一下下面的程序怎么改进。 改进后程序如下: O0010 M3 S300 G99 T101 M08 G0 X51. Z10. Z0. G1 X-0.7 F0.12(平端面) G0 W1. X50. #1=50(毛培赋值) #2=30(图纸要求尺寸) #3=3(吃刀量赋值) N10#1=#1-#3 (利用减法运算, 计算出每一层的 X 值)

IF[#1 LT #2] THEN#1=#2(强制赋值语句,如果#1 每次 递减 3,当它小于了我们图纸要求直径 30 的时候, 强制让#1=30) G0 X#1(X 进刀) G1 Z-30. F0.12 G0 U1. Z1. IF[#1 GT #2] GOTO 10(如果#1 大于#2,那么执行跳 转到 N10 的地方执行后面程序,如果不满足,执行 后面一步) G0 X120. Z130. M30

从这个优化过的程序我们可以看到,其实我们就在 #1=#1-#3 这一步计算后面加了一个强制赋值语句, 防止过切,通过这一个强制赋值语句,刚才第一个 程序的问题得到解决!接下来我们来讲解一下还有 一种情况, 如果 IF[#1 GT #2] GOTO 10 这个条件判断, 把 GT 大于换成 GE 大于或等于,会出现什么情况呢? 我们来看一下,当换成大于或等于以后,也就是说 当我们#1 大于或者等于只要满足其中一个条件他就 执行 GOTO 10 语句,继续循环,我们现在已经加了 强制赋值语句,#1 已经等于#2,但是现在条件判断 任然满足,所以他会继续跳转 N10,从而出现一个 问题,他会一直在循环下去,停不下来了。 。 。 。 。 。 。 。 这个我们把它称为死循环!下面我们来解决一下死 循环的问题,程序继续优化,如下: O0010 M3 S300 G99 T101 M08 G0 X51. Z10. Z0.

5

G1 X-0.7 F0.12(平端面) G0 W1. X50. #1=50(毛培赋值) #2=30(图纸要求尺寸) #3=3(吃刀量赋值) N10#1=#1-#3 (利用减法运算, 计算出每一层的 X 值) IF[#1 LT #2] THEN#1=#2(强制赋值语句,如果#1 每次 递减 3,当它小于了我们图纸要求直径 30 的时候, 强制让#1=30) G0 X#1(X 进刀) G1 -30. F0.12 G0 U1. Z1. IF[#1 EQ #2]GOTO 20 IF[#1 GE #2] GOTO 10(如果#1 大于#2,那么执行跳 转到 N10 的地方执行后面程序,如果不满足,执行 后面一步) N20 G0 X120. Z130. M30 总结: 1.赋值的应用。 2.减法运算的应用 3.有条件转移的应用 4.强制赋值语句的应用 5.对宏程序循环体的认识

今天我们讲的课程虽然简单,但是里面包含了学习 宏程序必须的语法和逻辑思维, 看完教程仔细思考, 一定务必把这一个实例完全理解透彻在学习下一课 内容,教程都是循循渐进的,如果这一课内容不能 理解透测后面内容根本无法学习,多动手,多思考 是学习宏程序的关键!文字教程配合视频讲解更通 熟易懂,希望各位学者多多努力。

从上面程序中我们可以看出,我们在执行完一个外 圆车削路线后面加上了一步 IF[#1EQ#2]GOTO20 如果 #等于#2 那么跳转到 N20 的地方执行 G0X120.Z130. 如果#1 不等于#2,继续执行下面一步程序段,通过 这一步我们可以达到一个防止死循环的作用。程序 完美运行!

6

第三章 宏程序在深孔钻 削的应用
今天我们来讲解一个钻深孔的宏,我们都知道我们 在钻深孔的时候由于钻头难以冷却, 铁销难以排出, 会造成钻头寿命减短,卡削,严重会断钻头,今天 我们利用宏程序可以让钻头得到冷却,铁销容易排 出,合理保护刀具寿命,我们来看下图:

左端面定位。 数控程序与注释如下: O0010 M3 S1000 G99 T101 M08(平面刀) G0 X31. Z10. Z1. G1 Z0. F0.3 G1 X-0.7 F0.12(平面) G0 X120. Z150. T0202 M08(中心钻) G0 X0. Z10. Z1. G1 Z-1. F0.08(钻引孔防止钻孔的时候偏心)

从上图可以看出, 我们需要钻孔直径为 12, 长度 100, 我们一般 G 代码 G74 循环代码,难以达到理想,效 果,所以我们采用宏程序,每次钻深 2 毫米,然后 快速退刀到 Z10.地方,带出铁销,钻头冷却,然后 在快速进刀到离上次钻削深度 0.5 的地方继续钻孔, 重复同一动作,直到钻孔深度到达。 图纸要求: 1.每次钻深 2 毫米,退刀,排铁销,冷却钻头。 2.平面见光 3.防止钻孔偏,先用中心钻打引孔。 刀具使用: 1.90 度平面外径车 2.中心钻 3.直径 12 的钻头 装夹:采用三爪自定心卡盘,夹持毛培直径 30,以
7

G0 Z10. X120. Z150. T303 S600(直径 12 的钻头) G0 X0. Z10. #1=2(每一次钻深的深度) #2=-105 (这里为什么不是-100?因为按上图要求孔是 通孔考虑钻头前面有锥度,所以多钻深 5) #3=0(平面 Z0 赋值) N10#3=#3-#1(计算出每次钻深的 Z 值坐标)

IF[#3 LT #2] THEN#3=#2(强制赋值,防止深度过切) G0 Z[#3+#1+0.5](Z 每次定位,定位在离上次钻深 0.5 的地方) G1 Z#3 F0.06(钻孔)

0.5 的地方) G74 R0.2(每次钻深 0.5,退刀 0.20) G74 Z#3 Q500 F0.06(钻孔循环) G0 Z10.(当钻完一个深度退刀到 Z10 的地方)

G0 Z10.(当钻完一个深度退刀到 Z10 的地方) G4 X1.(暂停 1 秒,让钻头冷却) G4 X1.(暂停 1 秒,让钻头冷却) IF[#3 EQ #2] GOTO 20(防止死循环,如果#3 等于#2 那么跳转 N20 的地方) IF[#3 GE #2] GOTO 10(条件判断,如果#3 大于或等 于#2 跳转到 N10 地方继续循环) N20 G0 X120. Z150.(退刀) M30(程序结束) M30(程序结束) 从上程序可以看出,我们实现了每次钻深 2 毫米, 然后快速退刀, 暂停, 快速进刀, 继续钻深 2 毫米, 重复执行同一动作, 直到深度到达跳出循环, 退刀。 这里我们使用 G1 Z#3 来钻孔,下面我把 G1 改进为 G74 钻孔,和宏程序配合使用,效果更佳,程序如 下: T303 S600 (直径 12 的钻头) G0 X0. Z10. #1=2 (每一次钻深的深度) #1=2 (每一次钻深的深度) #2=-105 (这里为什么不是-100?因为按上图要求孔 是通孔考虑钻头前面有锥度,所以多钻深 5) #3=0 (平面 Z0 赋值) N10#3=#3-#1 (计算出每次钻深的 Z 值坐标) N10#3=#3-#1 (计算出每次钻深的 Z 值坐标) IF[#3 LT #2] THEN#3=#2 (强制赋值, 防止深度过切) IF[#3 LT #2] THEN#3=#2(强制赋值,防止深度过切) G0 Z[#3+#1+0.5](Z 每次定位,定位在离上次钻深
8

IF[#3 EQ #2] GOTO 20(防止死循环,如果#3 等于#2 那么跳转 N20 的地方) IF[#3 GE #2] GOTO 10(条件判断,如果#3 大于或等 于#2 跳转到 N10 地方继续循环) N20 G0 X120. Z150.(退刀)

通过上面程序优化,我们可以达到一个最佳加工效 果!下面我们来讲一下目前国内用的最多的系统, 前面的程序都是以 FANUC OI 系列编程,如果你是 广数系统,你需要改动一些程序段,按照上面程序 我来讲解一下广数和 FANUC 的区别,程序如下: T303 S600 (直径 12 的钻头) G0 X0. Z10.

#2=-105 (这里为什么不是-100?因为按上图要求孔是 通孔考虑钻头前面有锥度,所以多钻深 5) #3=0 (平面 Z0 赋值)

#4=[#3+#1+0.5] (计算 Z 每次定位,定位在离上次 钻深 0.5 的地方)区别在这里,先计算带入#号,下

面一步定位,把#号带入进去 G0 Z#4 (Z 定位) G74 R0.2 (每次钻深 0.5,退刀 0.20 G74 Z#3 Q500 F0.06 (钻孔循环) G0 Z10.(当钻完一个深度退刀到 Z10 的地方) G4 X1.(暂停 1 秒,让钻头冷却) IF[#3 EQ #2] GOTO 20(防止死循环,如果#3 等于#2 那么跳转 N20 的地方) IF[#3 GE #2] GOTO 10(条件判断,如果#3 大于或等 于#2 跳转到 N10 地方继续循环) N20 G0 X120. Z150.(退刀) M30(程序结束)

3.广数和 FANUC 系统格式的区别

看完本节内容,多思考,多动手!完全理解本节教 学内容以后,在看下一节,祝各位喜爱宏编程的学 者早日入门,完全理解以上内容以后。这里恭喜你 已经对宏程序有了一个认识!

看过上面程序,你有没有发现区别在哪里?好!现 在我来讲解一下, 他的区别在于 FANUC 系统它在 X Z 后面可以直接加上[#3+#1+0.5]直接计算,而广数不 行,广数必须先把中括号里面的计算带入一个#号, 然后在执行 G0#,这就是唯一的区别,很好理解。

总结: 1.利用宏程序钻削深孔 2.宏程序配合 G74 循环代码效果更佳
9

2.采用 G75 和宏配合使用 3.采用 3 毫米宽切刀加工

第四章 多个等距曹的宏 程序应用
今天我们来讲解一下外径多个等距曹的宏程序加工, 一般如果我们不会宏程序的话只能依靠子程序来完 成,不然程序会非常繁琐,如果用子程序来加工, 如果中途坏刀,停下来以后只能从程序开头在重新 执行,而我们如果使用宏程序加工的话可以避免这 种情况,如果从中途停下来我们便于修改就可直接 从我们停下来那里开始加工。我们来看下图:

装夹方式: 1.外径 50 以加工完毕,采用台阶爪夹持直径 50,左 端面定位,顶尖顶住加工 2.切刀以左侧面对平面为 Z0. 程序和注释如下: O0001 M3 S600 G99 T101 M08 G0 X50.5 Z10. Z1. #1=0 (平面 Z 值) #2=-80(最后一个曹的 Z 值) N10#1=#1-10(计算出每个曹的 Z 定位) G0 Z#1(Z 定位) G75 R0.2 G75 X45. P500 F0.08(切曹循环) G0 W-0.5(进刀到左侧圆角倒角起点) G1 X50. F0.2 G2 X49. W0.5 R0.5 F0.06(倒左侧圆角)

从上图可以看出这是一个等距曹加工图,每个曹曹 宽都是 3,曹与曹之间都是相距 10,我们使用宏程 序来编制这个程序。 图纸要求: 1.曹两侧倒去毛刺圆角 R0.5
10

G0 X50.5 W0.5(进刀到右侧圆角起点) G1 X50. F0.2

G3 X49. W-0.5 R0.5 F0.06(倒右侧圆角) N20 #4=#4-0.5(算出每次 X 的值) G0 X50.5(退刀) IF[#1 GT #2] GOTO 10(条件判断如果#1 大于#2 跳 转 N10 继续执行下一个切槽) G0 X120. Z1.(退刀) G0 X[#4+0.2](以上次切曹的深度退刀 0.2) M30(程序结束) IF[#4 EQ 45] G0TO 30(防止死循环) 根据上面程序,我们可以实现给出一个曹的走刀路 线,就可以切削多个曹的作用,如果中途在任意一 个曹停下来了,我们只需要改一下#1 的赋值,就可 以实现从停的那个曹开始加工,这个是宏程序的一 个特点!仔细思考这个程序为什么没有加强制赋值 语句和跳出死循环语句! ! ! !什么时候改加,什么时 候可以不用加,这个要多多思考! ! 下面我们还是用这个图来编制一个不用 G75 循环切 槽,用 G1 模仿 G75 路线来增加难度,前面我们都 是一重循环, 下面我们来编制一个 2 重循环的程序: O0001 M3 S600 G99 G2 X49. W0.5 R0.5 F0.06(倒左侧圆角) T101 M08 G0 X50.5 G0 X50.5 Z10. W0.5(进刀到右侧圆角起点) Z1. G1 X50. F0.2 #1=0(平面 Z 值) G3 X49. W-0.5 R0.5 F0.06(倒右侧圆角) #2=-80(最后一个曹的 Z 值) G0 X50.5(退刀) #4=50(曹大直径) N10#1=#1-10(算出每个曹的 Z 值坐标) G0 Z#1(Z 定位) G1 X50. F0.2(定位到大直径处)
11

IF[#4 LT 45] THEN#4=45(强制赋值防止 X 过切,这 里可以不用写) G1 X#4 F0.06(切曹)

IF[#4 GE 45] GOTO 20(如果切曹深度现在大于或 等于 45,跳转 N20 继续切曹) N30 #4=50(这里很关键,当执行到这里的时候,# 4 实际已经等于 45,所以这里从新赋值,下一个曹 才能正确加工,仔细思考这里) G0 X50.5(退刀) W-0.5(进刀到左侧倒角起点) G1 X50. F0.2

IF[#1 GT #2] GOTO 10 (如果#1 大于#2 跳转 N10 执 行下一个曹的加工) G0 X120. Z1.(退刀) M30(程序结束)

工。 上面程序我们用 G1 来代替 G75 的走刀路线来编制 程序,目的是为了锻炼各位学者的思维,从而真正 的掌握宏程序,相比 G75 来编制增加了难度,从一 重循环提升到 2 重循环,希望各位学者仔细思考, 跟着程序思路去理解,而不是像 G 代码一样一直向 下执行! 如果这一节课程你已经理解透测, 恭喜你, 你的宏程序又更上一个台阶了。 工艺要求: 1.采用 3 毫米切刀。 2.每层吃刀量 1.5 3.刀具以左侧对平面 Z0. 4.夹持大直径 30 以左平面定位 外径平面已加工到位下面来编制这个程序: O0001 M03 S600 G99

第五章 外径深曹的宏程 序分层法加工
今天我们来讲解一下外径深曹的加工,大家因该知 道我们在加工深曹的时候,铁销不容易排出,容易 卡削坏刀!利用 G 代码 G75 循环只能径向车削到底 部,在执行 Z 进刀,这样的加工方式有所不足,今 天我们利用宏程序分层法可以合理解决这个问题, 也为后面的矩形螺纹打好基础,看下图:

T0101 M8 G0 X35 Z10 Z-13. #1=30(外圆大直径为 30) #2=12 (槽底直径为 12) #3=17 (如图槽宽度为 20,我们用 3 毫米刀,所以 20-3=17,槽的宽度) #4=1.5(每层的吃刀深度为 1.5) N10#1=#1-#4 (算出第一层的 X 值) IF[#1 LT #2] THEN#1=#2(强制赋值,防止过切) #5=0(Z 方向的赶刀初始值) N20 G0 X[#1+#4+0.3] (算出每车完一层的 X 定位) Z[-13-#5](Z 方向的实际定位) G1 X#1. F0.04(径向车削) IF[#5 EQ #3] GOTO 30(如过加工完一层跳转到 N3 0 的地方,如果条件不满足走下面的程序段)

从上图可以看出,我们曹大直径 30,底部直径 12, 曹宽 20,曹比较深。我们采用分层加工的方法来加
12

#5=#5+2.5(Z 方向每次赶刀 2.5) IF[#5 GT #3] THEN#5=#3(防止每层的宽度过切, 所以强制赋值) IF[#5 LE #3] GOTO 20 (条件判断, 判断如果赶刀的 宽度没有达到槽宽,跳转 N20 的地方继续循环) N30 G0 X35(X 退到安全位置) Z-13(Z 方向退到第一刀加工起点) IF[#1 EQ #2] GOTO 40(判断如果切槽深度到达跳 转 N40,跳出循环) IF[#1 GE #2] GOTO 10(如果深度没有到达跳转 N1 0 的地方继续循环) N40 G0 X120 Z150(退刀程序结束) M30 通过上面程序我们可以实现分层切削,当切削完一 个径向车削以后,退刀,Z 方向往负方向移动 2.5, 继续执行径向车削,当一层宽度到达以后,执行下 一层,重复执行,直到深度到达! 下面我在这里介绍一种利用宏程序和 G75 并用的程 序,这样写法可以让程序更加简单化,程序如下: O0001 M3 S800 G99 T0101 M08 G0 X35. Z10. #1=30 #2=12 #3=1.5

N10#1=#1-#3 IF[#1 LT #2] THEN#1=#2 G0 Z-13. X[#1+#3+0.2] G75 R0.2 G75 X#1 Z-30. P500 Q2500 F0.08 G0 X35. Z-13. IF[#1 EQ #2] GOTO 20 IF[#1 GE #2] GOTO 10 N20 G0 X100. Z130. M30

仔细思考这个程序,完全理解以后,以这个图编写 一个 Z 方向从中间下刀往两边移动的宏程序,多思 考多动手,祝愿你早日达到目标!

13

第六章 端面深曹的分层 加工
下图需要加工大直径为 80,小直径为 60,深度 15 的端面曹,如果轴向进刀到槽底,铁销卡住刀具难 以承受,今天我们介绍分层法用宏程序来解决:

M3 S500 G99 T101 M08 G0 X60. Z10. Z1. #1=60(小直径赋值) #2=[80-6]-60(用大直径减去两个刀宽在减去小直径 等于实际需要移动的 X 值) #3=2(初始 Z 方向吃刀量) #4=0(平面 Z 值) #5=-15(曹深度) N10 #3=#3-0.1(吃刀量每层递减 0.1) IF[#3 LT 0.5] THEN#3=0.5 (强制赋值最小吃刀量为 0.5) #4=#4-#3(算出每层的 Z 值) IF[#4 LT #5] THEN#4=#5(强制赋值防止 Z 深度过切) #6=0(X 移动初始值) N20 G0 X[#1+#6](X 每次定位) Z[#4+#3+0.3] 的地方) (Z 每次定位离上次切曹起点距离 0.3

工艺安排: 1.夹持直径 100,以左端面定位 2.选用 3 毫米宽端面切曹刀分层加工 3.刀具以刀具内侧对刀 4.初始吃刀量为 2,每层递减 0.1,最小吃刀量 0.5 程序注释如下: O0001
14

G1 Z#4 F0.06(曹车削) Z[#4+#3+0.3] (退刀到距离上次切曹定位 0.3 的地方) IF[#6 EQ #2] GOTO 30(防止 X 方向死循环) #6=#6+5(刀具每次移动直径 5,刀宽为 3,端面曹 我们需要刀宽*2)

IF[#6 GT #2] THEN#6=#2(强制赋值,防止 X 曹宽过 切) IF[#6 LE #2] GOTO 20(条件判断,如果宽度没有到达 跳转 N20 继续循环) N30 IF[#4 EQ #5] GOTO 40(防止 Z 方向死循环)

N10 #4=#4-0.1(吃刀量每层递减 0.1) IF[#4 LT 0.5] THEN#4=0.5(最小吃刀量为 0.5) #5=#5-#4(算出每一层的 Z 值) IF[#5 LT #3] THEN#5=#3(防止深度过切) G0 Z[#5+#4+0.3](Z 每次定位)

IF[#4 GE #5] GOTO 10 (如果深度没有到达, 跳转 N10 继续下一层车削) N40 G0 Z10.(退刀,程序结束) Z130. M30 上图程序整体思路为,执行完一个切槽动作,然后 移动 X 方向,切削下一个切槽,直到曹宽到达,进 入下一层,重复执行!直到深度到达!由于端面曹 加工涉及曹刀宽度,如果不好理解我们下面介绍宏 和 G74 代码共同使用的方法可以简化程序。 程序如下: O0001 M3 S600 G99 T101 M08 G0 X60. Z10. Z1. #1=60(曹小直径) #2=80-6(大直径减去 2 个刀宽等于 X 终点坐标) #3=-15(曹深度)

G74 R0.2 G74 X#2 Z#5 P2500 Q500 F0.06(端面切槽循环) IF[#5 EQ #3] GOTO 20(如果深度到达跳出循环) IF[#5 GE #3] GOTO 10(如果深度没有到达跳转 N10 进入下一层) N20 G0 Z10. X120. Z130. M30(程序结束) 上面程序通过宏和 G74 的共用,简化了程序,让思 路更加清晰。

总结: 1.强化 2 重循环的思维‘ 2.理解切端面曹刀宽对 X 坐标的影响 3.利用分层合理保护刀具 4.利用现有 G 代码 G74 切曹循环和宏共用的方法 5.学习完这以上课程完全理解以后可进入第三章学 习

更多数控宏程序请访问 http://www.zgsklm.com #4=2(初始吃刀量) #5=0(平面 Z 值)

15


相关文章:
宏程序基础
宏程序基础_机械/仪表_工程科技_专业资料。数控车床宏程序入门基础第一章 宏程序的基础 1.1 概述 #2=1(把数值 1 赋值给#2) #2=#1(程序从上往下执行,思考...
宏程序基础教程
宏程序基础教程_机械/仪表_工程科技_专业资料。宏程序教案 一、宏程序的概述 宏程序是指利用变量编制的 NC 程序。它可使得编制相同加工操作的程序更方 便、更容易...
宏程序基础知识
宏程序基础知识_机械/仪表_工程科技_专业资料。瑞鹄汽车模具有限公司内部教材 第一章 宏程序基础知识第一节 常量与变量的含义 常量与变量的含义及编程案例 数控程序...
宏程序基础材料
宏程序基础材料_计算机软件及应用_IT/计算机_专业资料。其实说起来宏就是用公式来加工零件的,比如说椭圆,如果没有宏的话,我们要逐点算出曲线上的点,然后慢慢来...
宏程序基础
首页 日志 相册 音乐 收藏 博友 关于我 日志 金陵十二金钗(5 套收藏) 永世不要忘记 日本侵华滔天罪行(60 图配文) 引用 宏程序基础数控技术 2010-05-11 14:...
宏程序基础
宏程序基础星阁提供 宏程序 用户宏程序: 虽然子程序对编制相同加工操作的程序非常有用,但用户宏程序由于允许使用“变量算术和逻辑运算及条件转移”使得编制相同...
数控车宏程序入门二
NO.2 椭圆为例的宏程序(第三节) 讲完方程的基础,这一节就要综合使用前面三篇所有的知识了!在正式编制椭圆程序前,先 讲解下一个运算符:平方根 我们都看过第...
数控宏程序编程入门
数控宏程序编程入门_机械/仪表_工程科技_专业资料 暂无评价|0人阅读|0次下载|举报文档 数控宏程序编程入门_机械/仪表_工程科技_专业资料。自己整理的有不足之处...
宏程序的基本概念
数控铣削宏程序编程( 数控铣削宏程序编程(一)一、宏程序的基本概念 1、宏程序...淘宝客推广操作基础 90份文档 2014年执业医师考试指导 口腔执业医师实践技能复习...
FANUC系统用户宏程序基础
FANUC系统用户宏程序基础_一年级语文_语文_小学教育_教育专区。FUANC系统使用宏程序的入门级备用资料,加工人员人守一册FANUC 系统用户宏程序基础 相关搜索: 相关搜索...
更多相关标签:
宏程序基础资料 | 宏程序 | 宏程序编程入门 | 数控宏程序实例教程 | 宏程序编程实例 | 数控宏程序 | 数控宏程序编程入门 | fanuc宏程序编程实例 |