在数控编程中,利用数控系统提供的变量、数学运算功能、逻辑判断、条件转移等功能编写的加工程序,我们可称为宏。宏程序编程灵活、高效、快捷,是加工编程的重要补充,不仅可以实现象子程序那样,对编制相同加工操作的程序非常有用,还可以完成子程序无法实现的特殊功能,例如,型腔加工宏程序、固定加工循环宏程序、球面加工宏程序、锥面加工宏程序等。
通常数控系统用户宏程序主要由以下四部分构成。
1.变量;
2.包含算术或逻辑运算(=)的程序段;
3.包含控制语句(例如:GOTO,DO,END)的程序段;
4.包含宏程序调用指令(G65,G66,G67或其他G代码,M代码调用宏程序)的程序段。
在接下来的几篇文章里,按照由简到难,我尽可能地把宏程序讲解清楚,本文主要先讲解一下什么是变量,以及变量的简单运用。
一、宏程序中的变量
虽然子程序对编制相同加工操作的程序非常有用,但用户宏程序由于允许使用变量、算术和逻辑运算及条件转移,使得编制相同加工操作的程序更方便,更容易。所以,用户宏程序三大特点是:在用户宏程序本体中,能使用变量;变量间可以运算;用宏指令可以给变量赋予实际值,那么什么是变量?
1.变量定义
变量用变量符号(#)和后面的变量号指定。
例如:#i
i可为数字,如#5,#9。
i可用表达式代替,如#[6/4]。
i还可用变量#[[表达式]]代替,此时,表达式必须封闭在括号中,如#[#],#[#1-1]。
2.变量的赋值
格式:宏变量=常数或表达式
把常数或表达式的值送给一个宏变量称为赋值。
例如:#1=.0;
#2=表达式
表达式:运算命令的右项是常数、变量、函数和运算符的组合。
例如:算术运算符:+,-,*,/
加法运算:#i=#j+#k;
乘法运算:#i=#j*#k;
引用的变量值根据地址的最小输入增量自动舍入。
例:G00X#1;其中#1值为12.,CNC最小输入增量1/0mm,则实际指令值为G00X12.。
改变引用的变量值的符号,要把“—”号放在(#)前面。
例:G00X—#1;
此外没有定义的变量值被称为空,可称为非定义变量,变量及地址字都被忽略。例:#1=0,#2=“空”,则G00X#1Y#2;的执行结果是G00X0;
接下来,我们通过一个案例来进行讲解一下
一个普通的零件加工程序指定G码并直接用数字值表示移动的距离,例:G01X.0F
我们可以把这一程序段换成如下程序
#1=
G01X#1F
我们也可以把程序修改为别的方式
#1=20
#2=80
#3=#1+#2
G01X#1F
或者你可以换成别的方式,等等,都可以!
#1=
#2=60
#3=#1-#2
G01X#1F
3.变量的种类
变量值可以分为空变量,局部变量,公共变量和系统变量,取决于变量号的不同。各种变量的用法和性质不同。
一般我们在教学中用到的局部变量比较多。
二、案例运用
本文主要讲解一下宏程序中的第一个组成部分变量,在文章结束的最后,咱们拿一个零件图来实际感受一下,宏程序在数控车编程中的一个简单的应用吧!零件图如下:该系列零件的右端面半球球径可取R15,可将球径用变量表示。
程序如下:
%1S0M3T;
G0X50Z2;
/G71U2R1;
/G71P1Q2U0.5W0.02F0.1;
N1G0X0
Z0;
#1=15
G3X[2*#1]Z-#1R#1;
G1Z[-20-2*#1];
X40Z-60;
Z-94;
N20G0X52;
G0Z;
M5M30;
假如说,这个右端面半球球径现在变为R10了,那么我们只需要把上面程序中的#1=15改为#1=10即可,也就不需要额外再编程了,不知你明白本文所要表达的意思吗?
好吧,关于宏的第一讲,就先这样吧!