条件转移是宏程序的核心功能之一,它可以根据我们的要求来改变程序运行的方向,配合比较表达式可以实现条件转移,即可某种特定的情况下才发生转移 通俗来说条件转移就是当程序中的某个条件被满足或不满足的条件,程序可以发生转移,指定跳到程序中的任意一行继续运行程序。 此文中我仅解释GOTO和IF的用法,条件转移还有WHILE语句,我个人建议初学者最好养成仅使用IF和GOTO来编写宏程序,因为在某些系统中WHILE语句是选配功能,如果机床没有购买此项功能,将无法使用,另外IF和GOTO是所有系统都支持的,也可以这样认为当你使用IF和GOTO编写的宏程序在格式可以在任何数控系统上运行(国际上来说)。 以下文中_底划线符号为空格,在宏程序中某些地方必须插入空格,若没有空格系统将会报警格式 不正确 GOTO_N** 无条件转移 *代表顺序号 实例解释 O0001 N1 G00 X30.0 Z2.50 N2 GOTO N4 N3 G00 X0.0 Z0.0 N4 M30 以上程序当执行N2段后直接跳过N3继续执行N4 IF_[ 表达式 ]_GOTO N** 条件转移 或 IF_[ 表达式 ]_N** *代表顺序号 当方括号内的条件表达式为真或者说满足条件时,将跳转至方括号后的N行继续执行程序,否则继续往下执行程序 实例解释 O0001 #1=0 N1 G97 M3 S500 N2 T101 N3 G00 X0.0 Z0.0 M08 N666 IF [#1 EQ 0] N12 N4 G01 X10.0 F0.15 G99 N5 Z-10.0 N6 X20.0 N7 Z-20.0 N8 X30.0 N9 Z-30.0 N10 X40.0 N11 G00 X150 Z100.0 N12 M30 以上程序从N1执行到N666后条件判断#1变量等于0满足条件,所以程序跳转到N12行,直接结束程序。若将#1的值改为一个不等于0的数,程序将从N1依次执行至N12 从上述例子可以看出条件转移的特点,若条件满足即跳转,如果条件不满足相当于没有N666行程序段。 因为已经初步的知道了宏程序核心三大要素了,以下仅用三个核心要素知识 点编写一个简单的宏程序 以FUNAC 18I为例,广州数控系统同样适用 O0003 #1=30.0(起始直径) #2=-20.0(长度) #3=1.0(每刀切削量,直径指定) #4=20.0(结束直径) G97 G99 G40 T0101 M08 G97 S1200 G00 X#1 Z10.0 Z2.5 N1 #1=#1-#3 G00 X#1 G01 Z#2 F0.15 U0.5 W0.25 G00 Z2.5 IF[#1 LE #4] N2 GOTO N1 N2 #1=#4 IF[#1 LT #4] N2 GOTO N1 N2 G00 X150.0 Z100.0 M30 上述程序将一个直径30的外圆车至20.0长度20.0,每刀直径车1.0,车至20.0后退刀,结束程序 经过这篇文章和前面的一篇大家应该能写出一个简单的宏程序,如果还不能反复看这二个篇文章,可以懂的。只要读懂这二篇肯定要写出简单的宏程序 。 下篇文章我会讲宏程序真正在哪些情况才能发挥出真正的作用及优势 |
|