前言:
现在看官们对“要在宏中运行另一个宏的操作是”可能比较关切,兄弟们都需要分析一些“要在宏中运行另一个宏的操作是”的相关知识。那么小编也在网络上网罗了一些对于“要在宏中运行另一个宏的操作是””的相关资讯,希望我们能喜欢,看官们一起来学习一下吧!今天针对宏程序进行第三讲,分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 程序段中指定。注意,每次执行模态调用时,不再设定局部变量。
三、案例讲解
以抛物线和椭圆加工为例!
先就这样吧!
标签: #要在宏中运行另一个宏的操作是