邹军写文章的目标:让每篇文章都能解决你一个问题
分享一个利用局部坐标系完成圆周铣孔宏程序例子。
如下图,零件一周(360度)均匀分布了60个孔。
螺旋插补加工这60个孔,如果用软件编写程序,程序量非常大,如果机床内存小,估计保存不下这么大的程序。短小精悍是宏程序一大特点,给你分享一个如何用宏程序编写此程序。
讲三个知识点:
一、螺旋插补铣孔
螺旋插补铣刀路就像弹簧一样,有这么一个规律:
每旋转一圈的同时Z需要下一定深度,也就是说Z方向的下刀有规律的递增。
假如我任意设置个变量如#4,并且让#4也有规律的递增。这在宏程序中称作变量的自增运算。
FANUC系统变量自增格式为:#4=#4+1
#4=#4+1其后面的+1代表这个运算式每运算一次变量#4就增加1。(当然,根据需要你也可以+2,代表每运算一次变量#4就增加2。)
如何实现变量的自增运算,这就需要配合宏程序的语句,比如WHILE语句。
FANUC系统的WHILE语句格式如下:
WHILE[ ] DO 2
……
END2
学过英文的人看到此语句应该明白大致意思,当XXX的时候就执行XXX。
中括号中为条件,也就是说中括号中的条件成立,那么就执行WHILE 到END之间的程序。不成立就执行END后面程序。
我们来看具体一个孔的简图,我随意设置了几个变量,如下简图。
比如孔直径#1,孔深#2,刀具直径#3。
那么注意观察下面的语句,变量#4的自增,是如何配合WHILE语句的。
#4=0
WHILE[#4LT#2] DO 2
#4=#4+1
……
END2
……
我设定的条件是:【#4LT#2】
注意,设置的条件是【#4LT#2】,也就是当#4的值小于#2那么就执行WHILE 到END之间程序。这说明什么?
假如孔深是2,即#2=2
我们看上面程序运行的过程:
#4=0
#2=2
WHILE[#4LT#2] DO 2
#4=#4+1
……
END2
……
1, 程序读取#4,#2后得知变量的值分别为0和3
2, 读取WHILE语句后,得知设置的条件是#4小于#2,那么“机床”判断了下,条件满足,于是就执行WHILE与END之间程序段。注意,条件满足就执行WHILE与END之间程序段。不满足就执行END后面程序段。
3, 在执行WHILE与END之间程序时候,读取了#4=#4+1,此时#4的值为1了。
4, 接着执行下面程序段至到END2程序后返回WHILE语句,“机床”再次做了判断#4小于#2吗?小于#2,所以又执行WHILE与END之间的程序。
5, 机床又读取了#4=#4+1 ,此时#4的值为2,接着又按顺序执行程序段,当程序运行到END后,又返WHIEL语句,机床”再次做了判断#4小于#2吗?此时#4的值为2, 2不小于2,条件不满足了,所以就执行END之后的程序段了。
变量的自增配合WHILE语句,就这么一次次累加起来,至到不满足我们设置的条件。
那么在WHILE与END之间写上螺旋插补铣孔程序段,这不就完成了螺旋插补铣孔程序?
我利用上面WHILE语句结构,添加螺旋插补铣孔程序段,程序如下:
二、G52指令的应用
上面螺旋插补铣孔宏程序,坐标系是以孔为中心来编写的。而实际图纸的孔是在D1200的外圆上,怎么解决呢?
这就用到了G52,在工件坐标系(G54-G59)内再设定子坐标系。
格式:
G52 X_ Y_ Z_ (设定局部坐标系)
……….
G52 X0 Y0 Z0 (注销局部坐标系)
用心看一下上面程序。
用心看下右侧图示。
简单吗?
很有用,不信,你现在把程序和图形对照看三遍,你就秒懂了。
三,宏程序的嵌套
所谓嵌套其实就是一个语句包裹着另外一个语句,比如下面WHILE语句的嵌套。
“WHILE[#1 GT 0] DO1”包裹着“WHILE[#2 GT 0]DO2”语句!
关于嵌套循环,有很多可圈可点之处,因篇幅原因我直接上程序,简单分析嵌套运行的过程。
上面程序,当程序执行到“WHILE[#5LT360]DO1”这一行的时候,它发现有“DO1”但还不知道与之对应的“END1”在哪,于是它只能按顺序往下执行。
当执行到“WHILE[#4LT#2]DO2”语句时,它发现了“END2”,于是系统就执行“WHILE[#4LT#2]DO2” 与“END2”之间的程序。
当执行完“DO2”与“END2”之间的程序后,也就是螺旋插补铣完一个孔后,条件不满足了,它往END2下面执行,发现了“END1”这时候系统已经知道这是个嵌套循环程序。
于是又返回“WHILE[#5LT360]DO1 语句,再次做判断,看看中括号中的条件满足与否,满足就按顺序执行。不满足也就是一周孔加工完毕,则执行END1后面的G91G28Z0.程序段。
好了,先分享到这儿,好东西,你要学!
特别推荐:
邹军:一套给您赋能的数控高级编程教程
邹军:数控编程高手是如何炼成的
邹军:很多行业顶尖高手,都在悄悄掌握数控刀具知识