一、宏变量
先看一段简单的程序:
G00 X25.0
上面的程序在X轴作一个快速定位,其中数据25.0是固定的,引入变量后可以写成:
宏程序中,用“#”号后面紧跟1~4位数字表示一个变量,如#1,#50,#101,…变量有什么用呢?变量可以用来代替程序中的数据,如尺寸、刀补号、G指令编号等,变量的使用给程序设计带来了极大的灵活性。
使用变量前,变量必须带有正确的值。例如:
用变量不仅可表示坐标,还可表示G,M,F,D,H,M,X,Y,…各种代码后的数字,例如:
注:用户编程仅限使用#0~#599局部变量。#599以后变量用户不得使用,只能供系统使用。
例如,使用了变量的宏子程序:
1.局部变量
编号#0~#49的变量是局部变量,局部变量的作用范围是当前程序(在同一个程序号内)。如果在主程序或不同子程序里,出现了相同名称(编号)的变量,它们不会相互干扰,值也可以不同。
例如:
2.全局变量
编号#50~#199的变量是全局变量(其中,#100~#199也是刀补变量)。全局变量的作用范围是整个零件程序,不管是主程序还是子程序,只要名称(编号)相同就是同一个变量,带有相同的值,在某个地方修改它的值,所有其他地方都受影响。(www.xing528.com)
例如:
如果只有全局变量,由于变量名不能重复,就可能造成变量名不够用;全局变量在任何地方都可以改变它的值,这是它的优点,也是它的缺点。说是优点,是因为参数传递很方便;说是缺点,是因为当一个程序较复杂的时候,一不小心就可能在某个地方用了相同的变量名或者改变了它的值,造成程序混乱。局部变量的使用,解决了同名变量冲突的问题,编写子程序时,不需要考虑其他地方是否用过某个变量名。
在一般情况下,你应优先考虑选用局部变量。局部变量在不同的子程序里,可以重复使用,不会互相干扰。如果一个数据在主程序和子程序里都要用到,就要考虑用全局变量。用全局变量来保存数据,可以在不同子程序间传递、共享,以及反复利用。
刀补变量(#100~#199)。这些变量里存放的数据可以作为刀具半径或长度补偿值来使用。例如:
注意:上面的程序中,如果把D100写成了D[#100],则相当于D8,即调用8号刀补,而不是补偿量为8。
3.系统变量
#300以上的变量是系统变量。系统变量是具有特殊意义的变量,它们是数控系统内部定义好的,不可以改变它们的用途。系统变量是全局变量,使用时可以直接调用。
#0~#599是可读写的,#600以上的变量是只读的,不能直接修改。
其中,#300~#599是子程序局部变量缓存区。这些变量在一般情况下,不用关心它的存在,也不推荐使用它们。要注意同一个子程序,被调用的层级不同时,对应的系统变量也是不同的。#600~#899是与刀具相关的系统变量。#1000~#1039是与坐标相关的系统变量。#1040~#1143是与参考点相关的系统变量。#1144~#1194是与系统状态相关的系统变量。
有时需要判断系统的某个状态,以便程序作相应的处理,就要用到系统变量。
二、宏常量
PI:圆周率π;TRUE:条件成立(真);FALSE:条件不成立(假)。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。