龙空技术网

由浅入深,讲解数控车宏程序编制,第三讲,WHILE循环和宏的调用

数控编程张老师 2224

前言:

现在看官们对“要在宏中运行另一个宏的操作是”可能比较关切,兄弟们都需要分析一些“要在宏中运行另一个宏的操作是”的相关知识。那么小编也在网络上网罗了一些对于“要在宏中运行另一个宏的操作是””的相关资讯,希望我们能喜欢,看官们一起来学习一下吧!

今天针对宏程序进行第三讲,分1.循环语句while、2调用子程序、3案例讲解共三个部分进行讲解!

一、while语句

在讲解IF 和GOTO 语句后,还有一个控制语句while(当什么的时候)

l 循环(WHILE 语句)

格式:WHILE [条件表达式]DO m;(m=1,2,3)

END m;

说明:当指定的条件满足时,执行WHILE 从DO到END之间的程序。否则,转而执行END之后的程序段。这种指令格式适用于IF 语句。DO后的号和END后的号是指定程序执行范围的标号,标号值为1,2,3。若用1,2,3 以外的值会产生报警。

注意:

① DO m必须在END m之间指定;

② DO最多可以嵌套三次;

③ DO m和END m在一个程序中必须彼此对应;

④ 从DO内部可以转移到其外部,不能从DO范围外部向内部转移;

⑤ 从DO范围内部可以调宏程序或子程序。

我们以一个抛物线为例

抛物线的标准方程,见图

抛物线轮廓的编程方法与椭圆轮廓的编程方法一样,我们可以用折线1-2-3-4-5-…逼近,我们只要计算出在不同的z1 z2,z3,z4…值下,利用公式:x= SQRT[ Z / K],计算出x1 x2,x3,x4…值,这样也就得到了点1-2-3-4-5-…的坐标值了,只要用G01直线插补指令就可以完成抛物线轮廓。

抛物线宏程序如下:

#1=;Z值起点

#2=;Z值终点

WHILE[#1GE#2] DO1;循环语句,控制抛物线的范围

#3= SQRT[ #1 / K];计算X坐标值

G01X[2*#3]] Z[#1]F ;切削加工

#1=#1-1;Z值递减

END1;

二、宏程序调用方法

上一讲中,我们是把宏程序指令直接放在了程序里,所以叫做用户宏程序,除了有上述方法外,我们也可以用G65,G66,G67或其它G代码,M代码调用宏程序,这里以G65,G66,G67代码为例。

l 非模态调用(G65)

当指定G65 时,以地址P 指定的用户宏程序被调用。数据(自变量)能传递到用户宏程序体中。

格式:G65 P p L l <自变量指定>;

说明:

①p:要调用的程序

l:重复的次数(默认值为1)

自变量:数据传递到宏程序

②自变量指定

可用两种形式的自变量指定,见表12-1。自变量指定I使用除了G,L,O,N 和P 以外的字母,每个字母指定一次。自变量指定Ⅱ使用A,B,C 和Ii,Ji 和Ki(i 为1~10)。根据使用的字母,自动地决定自变量指定的类型。CNC 内部自动识别自变量指定Ⅰ和自变量指定Ⅱ。如果自变量指定Ⅰ和自变量指定Ⅱ混合指定的话,后指定的自变量类型有效。

③没有小数点的自变量数据的单位为各地址的最小设定单位。传递的没有小数点的自变量的值根据机床实际的系统配置变化。在宏程序调用中使用小数点可使程序兼容性好。

④被调用的程序结束用M99指令。

l 模态调用(G66)

一旦发出G66 则指定模态调用,即指定沿移动轴移动的程序段后调用宏程序。G67 取消模态调用。

格式:G66 P p L l <自变量指定>;

说明:

①p:要调用的程序

l:重复的次数(默认值为1)

自变量:数据传递到宏程序

②指定G67代码时,其后面的程序段不再执行模态宏程序调用。

③在模态调用期间,指定另一个G66 代码,可以嵌套模态调用。

④在G66 程序段中,不能调用多个宏程序。

⑤G66必须在自变量之前指定。

⑥在只有诸如辅助功能但无移动指令的程序段中不能调用宏程序。

⑦局部变量(自变量)只能在G66 程序段中指定。注意,每次执行模态调用时,不再设定局部变量。

三、案例讲解

以抛物线和椭圆加工为例!

先就这样吧!

标签: #要在宏中运行另一个宏的操作是