普通加工程序直接用数值指定G代码和移动距离;例如G01 X200。使用用户宏程序时,数值可以直接指定或用变量指定。当用变量时,变量值可用程序或用MDI面板操作改变。
例如:#1=#2+100;
G01 X#1 F300;
一般编程方法允许对变量命名,但用户宏程序不行。变量用变量符号(#)和后面的变量号指定。
例如:#1
表达式可以用于指定变量号。此时,表达式必须封闭在括号中。
例如:#[#1+#2-12]
变量根据变量号可以分成四种类型,如表3-1所示。
表3-1 变量类型
局部变量和公共变量可以为0值或下面范围中的值:-10 47 ~-10 -29 或10 -29 ~10 47 。
如果计算结果超出有效范围,则发出P/S报警No.111。
当在程序中定义变量值时,小数点可以省略。
例:当定义#1=123;变量#1的实际值是123.000。
在地址后指定变量号即可引用其变量值。当用表达式指定变量时,要把表达式放在括号中。
例如:G01 X[#1+#2] F#3;
被引用变量的值根据地址的最小设定单位自动地舍入。
例如:当系统的最小输入增量为1/1000mm单位,指令G00X#1,并将12.3456赋值给变量#1,实际指令值为G00X12.346;
改变引用变量的值的符号,要把负号(-)放在#的前面。
例如:G00 X-#1。
改变引用未定义的变量时,变量及地址字都被忽略。
例如:当变量#1的值是0,并且变量#2的值是空时,G00X#1Y#2的执行结果为G00X0。
当变量值未定义时,这样的变量成为“空”变量。变量#0总是空变量。它不能写,只能读。
①当引用一个未定义的变量时,地址本身也被忽略。
例如:当变量#1的值是0,并且变量#2的值是空时,G00X#1 Y#2的执行结果为G00 X0。
②除了用<空>赋值以外,其余情况下<空>与0相同。如表3-2所示。
表3-2 空变量与0变量
程序号、顺序号和任选程序段跳转号不能使用变量。
例如:下面情况不能使用变量:
O#1; /#2G00X100.0; N#3Y200.0;