在FANUC 0MD等老系统的面板上没有“+”“-”“*”“/”“=”“[]”等符号,故不能进行这些符号的输入,也不能用这些符号进行赋值及数学运算。因此,在这些系统中只能按A类宏程序进行编程。而在FANUC 0i及其后的系统中,则可输入这些符号,并运用这些符号进行赋值及数学运算,即按B类宏程序进行编程。
(1)变量
在常规的主程序和子程序内,总是将一个具体的数值赋予一个地址。为了使程序更具通用性,更加灵活,在宏程序中设置了变量,即将变量赋予一个地址。
1)变量的表示
变量可用“#”号和跟随其后的变量序号来表示:#i(i=1,2,3,…)。例如,#3,#10,#505等。B类宏程序除可采用A类宏程序的变量表示方法外,还可用表达式进行表示,但其表达式必须全部写入方括号“[]”中。程序中的圆括号“()”仅用于表示注释内容。
例如,#[#1+#3-20],#1=100,#3=40时,该变量表示#120。
例如,G01 X[#100-20] Y-#101 F[#102+#103]。当#100=50,#101=80,#102=40,#103=70时,上面的语句即表示为G01 X30 Y-80 F110。
2)变量的引用
将跟随在一个地址后的数值用一个变量来代替,即引入了变量。
例如,对于F#102,若#102=80时,则为F80;对于Z-#110,若#110=150时,则Z为-150;对于G#120,若#120=2时,则为G02。
3)变量的类型
变量分为局部变量、公共变量(全局变量)和系统变量3类,具体见表9.1。在A,B类宏程序中,其分类均相同。
①局部变量
局部变量(#1—#33)是在宏程序中使用的变量,当宏程序1调用宏程序2而且都有变量#1时,由于变量#1服务于不同的局部,故1中的#1和2中的#1不是同一个变量,因此可以赋予不同的值,而且互不影响。
②公共变量
公共变量是在主程序和主程序调用的各用户宏程序内公用的变量。也就是说,在一个宏指令中的#i与在另一个宏指令中的#i是相同的。
公共变量的序号为:#100—#149;#500—#531。其中,#100—#149公共变量在电源断电后即清零,重新开机时被设置为“0”;#500—#531公共变量即使断电后,它们的值也保持不变,故也称保持型变量。
③系统变量
系统变量定义为:有固定用途的变量,它的值取决于系统的状态。系统变量包括刀具偏置变量,接口的输入/输出信号变量,位置信息变量等。
表9.1 变量的分类
(2)变量的赋值
1)直接赋值
变量可在操作面板上用MDI方式进行直接赋值,也可在程序中以等式方式赋值,但等号左边不能使用表达式。例如,#100=30,#101=30.0+20.0。
2)引数赋值
宏程序以子程序方式出现,所用的变量可在宏程序调用时赋值。例如,G65 P100 X100.0 Y50.0 Z30.0 F100.0。
此处的X,Y,Z并不代表坐标尺寸字,F也不代表进给尺寸字,而是对应于宏程序的变量号。变量的具体数值由引数后的数值决定。引数宏程序的变量对应关系有两种(见表9.2和表9.3),这两种方法可以混用,其中G,L,N,O,P不能作为引数代替变量赋值。
表9.2 变量引数赋值方法Ⅰ
表9.3 变量引数赋值方法Ⅱ
续表
例9.1 变量引数赋值方法Ⅰ:
G65 P0050 A30.0 I40.0 J50.0 K60.0 I50.0 J80.0 K100.0;经赋值后#1=30.0,#4=40.0 #5=50.0,#6=60.0,#7=50.0,#8=80.0,#9=100.0。(www.xing528.com)
例9.2 变量引数赋值方法Ⅱ:
G65 P0060 A50.0 X60.0 F100.0;经赋值后#1=50.0,#24=60.0,#9=100.0。
例9.3 变量引数赋值方法Ⅰ和Ⅱ混合使用:
G65 P0030 A50.0 D40.0 I100.0 K0 I80.0;经赋值后I100.0与D40.0同时分配给变量#7,则后一个#7有效,所以变量#7=100.0,其余同上。
(3)运算指令
B类宏程序的运算指令的运算类似于数学运算,仍用各种数学符号来表示。常用运算指令见表9.4。
表9.4 B类宏程序变量的各种运算
宏程序计算说明如下:
①函数SIN,COS等的角度单位是度(°),分秒的形式要换算成十进制度数。例如,90°30'应表示为90.5°。
②运算的优先顺序如下:
a.函数。
b.乘除、逻辑与。
c.加减、逻辑或、逻辑异或。
③可以用[]来改变运算次序,函数中的括号允许嵌套使用,但最多允许嵌套5级。
(4)控制语句
控制指令起到控制程序流向的作用。
1)条件转移(GOTO语句)
格式: GOTO n;
其中:n——顺序号(1~9999),可用变量表示。
例如:GOTO 1;
GOTO #10;
2)条件转移(IF语句)
格式: IF [条件式] GOTO n;
条件式:
3)循环(WHILE语句)
格式:WHILE [条件式] DO m(m=1,2,3);
…
END m;
其中:
m——循环执行范围的识别号,只能1,2和3,否则系统报警。
注意:DO—END循环能够按需要使用多次,即循环嵌套。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。