本系统宏程序体系采用FANUC系统宏程序B方式实现
一 变量
普通加工程序直接用数值指定G代码和移动距离;例如,GO1和X100.0。使用用户宏程序时,数值可以直接指定或用变量指定。当用变量时,变量值可用程序或用MDI面板上的操作改变。 #1=#2+100 G01 X#1 F300 说明:
变量的表示
计算机允许使用变量名,用户宏程序不行。变量用变量符号(#)和后面的变量号指定。 例如:#1
表达式可以用于指定变量号。此时,表达式必须封闭在括号中。 例如:#[#1+#2-12]
变量的类型
变量根据变量号可以分成四种类型 变量号 #0-#49
变量类型 局部变量
功能
局部变量只能用在宏程序中存储数据,例如,运算结果.当断电时,局部变量被初始化为0.调用宏程序时,自变量对局部变量赋值,
公共变量在不同的宏程序中的意义相同.当断电时, 公共变量初始化为0.
目前版本中,某些公众变量被赋予特殊意义(系统变量),用于描述CNC运行时各种数据的变化,这些变量包括:
#449用于指明固定循环退刀模式(G98,G99), 如在G99方式下,#449变量为1;如在G98方式下,#449变量为-1.
#450用于指明当前程序段处于绝对坐标编程模式(G90)还是相对坐标编程模式(G91).如在G90方式下,#450变量为1;如在G91方式下,#450变量为-1.
#451,#452,#453,#454用于存储刀具当前位置(X,Y,Z,A轴) 在后期的版本中,将会安排专门的空间作为系统变量区.
变量值的范围
局部变量和公共变量在系统内采用浮点数方式存储
#50-#499 公共变量
小数点的省略
当在程序中定义变量值时,小数点可以省略。
例:当定义#1=123;变量#1的实际值是123.000。
变量的引用
为在程序中使用变量值,指定后跟变量号的地址。 例如:G01X#1+#2F#3或者G01X[#1+#2]F#3 限制
程序号,顺序号和任选程序段跳转号不能使用变量。 例:下面情况不能使用变量: 0#1;
/#2G00X100.0; N#3Y200.0;
二 算术运算和逻辑运算 置换
#I=#j
算术运算
加:#I=#j+#k,减:#I=#j-#k,乘:#I=#j*#k,除:#I=#j/#k。 逻辑运算
下一版本将增加以下函数调用:
与:#I=#J AND #k或:#I=#J OR #k, 异:#I=#J XOR #k,
函数
正弦:#I=SIN[#j],余弦:#I=COS[#j] 正切:#I=TAN[#j] (目前版本角度单位为弧度,后续版本将改为度) 下一版本将增加以下函数调用: 反正切:#I=ATAN[#j]
平方根:#I=SQRT[#j],绝对值:#I=ABS[#j] 下取整:#I=FIX[#j],上取整:#I=FUP[#j] 四舍五入:#I=ROUND[#j]
转移与循环
在宏程序中,使用GOTO语句和IF语句可以改变程序的执行方向,转移和循环指令有3种。
无条件的转移
格式:GOTO n;n为程序的顺序号(1—9999)
如GOTO 99,GOTO #10 条件转移 格式:IF[〈条件式〉]GOTO n 条件式的运算符由两个字母组成,用于两个值的比较,运算符有: “EQ”表示“=”,“NE”表示“≠”,“GT”表示“>”, “LT”表示“<”,“GE”表示“≥”,“LE”表示“≤”。 循环 格式:WHLE [〈条件式〉] DO m;(m=1,2,3…) END m 说明: (1)当条件满足时,执行从Do m到END m之间的程序,否则,转到END m后的程序段。 (2)省略WHILE语句只有DO m…END m,则从DO m到END m之间形成死循环。 (3)在一个子程序中,m不能重复,m取值范围0-999。 三 程序举例 铣椭圆: 轨迹: