FANUC宏程序编程编写.doc
文本预览下载声明
FANUC宏程序编程
2017-03-28
运算符
运算符由2个字母组成,用于两个值的比较,以决定它们是相等还是一个值小于或大于另一个值。注意,不能使用不等号
运算符
含义
EQ
等于(=)
NE
不等于
GT
大于
GE
大于或等于
LT
小于
LE
小于或等于
示例程序 ? ? ? ? ? 下面的程序计算数值1~10的总和
O9500;#1=0;………………………………….存储和的变量初值
#2=1;………………………………….被加数变量的初值
N1 IF[#2GT 10]GOTO 2;…………….当被加数大于10时转移到N2
#1=#1+#2;…………………………….计算和
#2=#2+#1;…………………………….下一个被加数
GOTO 1;………………………………转移到N1
N2 M30;................................................程序结束
算术和逻辑运算
功能
格式
备注
定义
#i=#j:
加法
#i=#j+#k
减法
#i=#j-#k
乘法
#i=#j*#k
除法
#i=#j/#k
正弦
#i=SIN[#j]:
角度以度指定090度30分表示为90.5度
反正弦
#i=ASIN[#j]:
余弦
#i=COS[#j]:
反余弦
#i=ACOS[#j]:
正切
#i=TAN[#j]:
反正切
#i=ATAN[#j]:
平方根
#i=SQRT[#j]:
绝对值
#i=ABS[#j]:
舍入
#i=ROUND[#j]:
上取整
#i=FIX[#j]:
下取整
#i=FUP[#j]:
自然数对数
#i=LN[#j]:
指数函数
#i=EXP[#j]:
或
#i=#jOR#k:
逻辑运算一位一位地按二进制数执行
异或
#i=#jXOR#k:
与
#i=#jAND#k:
从BCD转为BIN
#i=BCD#j;
用于与PMC的信号交换
从BIN转为BCD
#i=BCD#j;
角度单位:
SIN、ASIN、COS、ACOS、TAN和ATAN的角度单位是度
ARCSIN#i=ASIN[#j]:
●取值范围如下:当参数(N0.6004¥0)NAT位设为0时,270~90度;当参数(N0.6004¥0)NAT位设为1时,-90~90度。
● ?当#j超过-1到1的范围时,发出P/S报警N0.111。
● ?常数可替代变量#j。
ARCCOS#i=ACOS[#j];
● ?取值范围从180~0度。
● ?当#j超过-1到1的范围时,发出P/S报警N0.111。
● ?常数可替代变量#j。
ARCTAN#i=ATAN[#j];
● ?指定两边的长度,并用斜杠(/)分开
● ?取值范围如下:当参数(N0.6004¥0)NAT位设为0时,0~360度[例如:当指定#i=ATAN[-1]/[-1];时,#1=225度]。当参数(N0.6004¥0)NAT位设为1时,-180~180度[例如:当指定#i=ATAN[-1]/[-1];时,#1=-135度]
● ?常数可替代变量#j。
自然对数#i=LN[#j];
● ? ? 注意,相对误差可能大于10-8。
● ?当反对数(#j)为0或小于0时,发出报警N0.111。
● ?常数可替代变量#j。
指数函数#i=EXP[#j]:
● ? ? 注意,相对误差可能大于10-8
● ?当运算结果超过3.65×1047(j大约是110)时,出现溢出报警N0.111
● ?常数可替代变量#j。
上取整下取整:
CNC处理数值运算时,若操作后产生整数绝对值大于原数的绝对值时为上取整;小于为下取整。例如:
假设#1=1.2,#2=-1.2。当执行#3=FUP[#1]时,2.0赋给#3;当执行#3=FIX[#1]时1.0赋给#3;当执行#3=FUP[#2]时,-2.0赋给#3;当执行#3=FIX[#2]时,-1.0赋给#3。
宏程序语句:包含算术或逻辑运算(=)的程序;包含控制语句(例如,用GOTO,DO,END)的程序;包含宏程序调用指令(例如,用G65,G66,G67或其它G代码,M代码调用宏程序)的程序段;除宏程序以外任何程序段都为NC语句。
与NC语句的不同:
即使置于单段程序运行方式,机床也不停止。但是,当参数N0.6000#5SBM设定位、为1时,在单段程序方式中,机床停止。在刀具半径补偿方式中宏程序语句段不做为移动程序段处理
与宏程序语句相同性质的NC语句:
含有子程序调用指令(例如,用M98或其它M代码或用T代码调用子程序)但没有除O,N,P或L地址之外的其它地址指令的NC语句,其性质与宏程序语句相同;不包含除O,N,P或L以外的指令地址的程序段其性质与宏程序语句相同。
无限循环;
当指定DO而没有指定WHILE语句时,产生从DO到END的无限循环
显示全部