一、 用户宏程序的概念
将一群命令所构成的功能,如同子程序一样登录在数控系统的存储体中,再把这些功能用一个命令作为代表,执行时只需要写出这个代表命令,就可以执行其功能。
二﹑变量及变量的使用方法
1、变量的形式
变量使用符号 # 后面加上变量号码所构成的,即:
#i (i = 1,2,3 … )
例如:#5; #109;#1005
也可以用表达式指定变量号,这时表达式要用方括号括起来,如:
#[#4]
#[#105-3]
#[#1006-#1005]
注意在这里的变量形式不同于计算机语言中的变量形式,它是不允许命名的。
2、变量的赋值
在宏程序中我们可以用符号“=”来对变量赋值,如:
#5=20 (#5的值为20.0)
#3=20+30 (#3的值为50.0)
#4=#3+20 (#4的值为70.0)
#5=#5+#4 (#5的值为90.0)
另外有些变量我们可以直接在操作面板上输入变量的值。
3、变量的引用 :
(1)在地址符后的数值可以用变量来置换。
如:F#103,当#103=200时就等同与F200。
(2)改变引用变量的值的符号,要把负号放在#的前面。
如:Z-#5,当#5=48时就等同于Z-48。
(3)当用表达式指定变量时,要把表达式放在方括号中 。
如:G01 X[#1+#2] F#3
(4)有些地址符是不可以引用变量的。
如:O#26;N#12等都是错误的。
三﹑变量的种类
1、局部变量 :
所谓局部变量,就是在宏程序中局部使用的变量。调用宏程序时,局部变量级会随着调用多重度的增加而增加。
2、公共变量 :
公共变量是在主程序,以及调用的子程序中通用的变量 。公共变量可以在程序中赋值,也可以通过操作面板输入 。
3、系统变量 :
四、变量的运算
变量的运算次序依次为:
① 函数
② 乘和除运算(*、/、AND)
③ 加和减运算(+、-、OR、XOR)
方括号嵌套,方括号用于改变运算的次序。方括号最多可用五层。
五、转移与循环
在宏程序中,我们可以通过指令来改变和控制程序的运行流程。这里有三种转移和循环指令可供使用:
2、条件转移(IF语句)
IF[<条件表达式>]GOTO n 形式
如果指定的条件表达式满足时,转移到标有顺序号n 的程序段。如果指定的条件表达式不满足,执行下个程序段。
例如;如果#1大于10则跳到N2程序段。
2、条件转移(IF语句)
IF[<条件表达式>]THEN 形式
如果条件表达式满足,执行预先决定的宏程序语句。只执行一个宏程序语句。
例:如果#1与#2的值相等,把0赋值给#3。
则:IF [#1 EQ #2] THEN #3=0
示例:下列程序计算数值1-10的总和
3、循环(WHILE 语句)
在WHILE 后指定一个条件表达式。当指定条件满足时,执行从DO 到END 之间的程序。否则,转到END 后的程序段。
示例:下列程序计算数值1-10的总和
1、非模态调用(G65)
G65被指定时,地址P所指定的用户宏被调用,数据(自变量)能传递到用户宏程序中。
格式:G65 P— L— <自变量表>;
自变量:传递给宏的数。通过使用自变量表,值被分配给相应的局部变量。
自变量的运用:通过使用自变量表,值被分配给相应的局部变量。
如下列中#1=1.0,#2=2.0
自变量表:
2、模态调用(G66、G67)
一旦指定了G66,那么在以后的含有轴移动命令的段执行之后,地址P所指定的宏被调用,直到发出G67命令,该方式被取消。
格式:G65 P— L— <自变量表>;
自变量:传递给宏的数。通过使用自变量表,值被分配给相应的局部变量。
实例