FANUC宏程序编程Word文档下载推荐.docx
《FANUC宏程序编程Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《FANUC宏程序编程Word文档下载推荐.docx(12页珍藏版)》请在冰豆网上搜索。
#i=SIN[#j]:
角度以度指定090度30分表
反正弦
#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
角度单位:
SIN、ASIN、COSACOSTAN和ATAN的角度单位是度
ARCSIN#i=ASIN[#j]:
•取值范围如下:
当参数(Y0)NAT位设为0时,270~90度;
当参数(Y0)NAT位设为1
时,-90~90度。
•当#j超过-1到1的范围时,发出P/S报警。
•常数可替代变量#j。
ARCCOS#i=ACOS[#j];
•取值范围从180~0度。
•当#j超过-1到1的范围时,发出P/S报警。
•常数可替代变量#j。
ARCTAN#i=ATAN[#j];
•指定两边的长度,并用斜杠(/)分开
当参数(Y0)NAT位设为0时,0~360度[例如:
当指定#i=ATAN[-1]/[-1];
时,#1=225度]。
当参数(Y0)NAT位设为1时,-180~180度[例如:
当指定#i=ATAN[-1]/[-1];
时,#1=-135度]
•常数可替代变量#j。
自然对数#i=LN[#j];
•注意,相对误差可能大于10-8。
•当反对数(#j)为0或小于0时,发出报警。
指数函数#i=EXP[#j]:
•注意,相对误差可能大于10-8
•当运算结果超过X1047(j大约是110)时,出现溢出报警
上取整下取整:
CNC处理数值运算时,若操作后产生整数绝对值大于原数的绝对值时为上取整;
小于为下取整。
例如:
假设#1=,#2=。
当执行#3=FUP[#1]时,赋给#3;
当执行#3=FIX[#1]时赋给#3;
当执行#3=FUP[#2]时,赋给#3;
当执行#3=FIX[#2]时,赋给#3。
宏程序语句:
包含算术或逻辑运算(=)的程序;
包含控制语句(例如,用GOTO,DO,END)
的程序;
包含宏程序调用指令(例如,用G65,G66,G67或其它G代码,M代码调用宏程序)的程序段;
除宏程序以外任何程序段都为NC语句。
与NC语句的不同:
即使置于单段程序运行方式,机床也不停止。
但是,当参数#5SBM设定位、为1时,在单段
程序方式中,机床停止。
在刀具半径补偿方式中宏程序语句段不做为移动程序段处理与宏程序语句相同性质的NC语句:
含有子程序调用指令(例如,用M98或其它M代码或用T代码调用子程序)但没有除0,N,
P或L地址之外的其它地址指令的NC语句,其性质与宏程序语句相同;
不包含除0N,P
或L以外的指令地址的程序段其性质与宏程序语句相同。
无限循环;
当指定DC而没有指定WHILE语句时,产生从D0到END的无限循环。
宏程序调用和子程序调用之间的差别:
宏程序调用(G65)不同于子程序调用(G98),如下所述:
•用G65,可以指定自变量(数据传送到宏程序)。
M98没有该功能。
•当M98程序段包含另一个NC指令(例如。
100.0M)时,在指令执行之后调用子程序。
相反,G65无条件的调用子程序。
•M98程序段包含另一个NC指令(例如,G01X100.0M98P)时在单程序方式中,机床停止。
相反,G65机床不停止。
•用G65,改变局部变量的级别。
用M98,不改变局部变量的级别。
G65P-L-(自变量指定);
P:
要调用的程序;
L:
重复次数;
自变量:
数据传递到宏程序自变量指定I
地址
变量号
A
#1
I
#4
T
#20
B
#2
J
#5
U
#21
C
#3
K
#6
V
#22
D
#7
M
#13
W
#23
E
#8
Q
#17
X
#24
F
#9
R
#18
Y
#25
H
#11
S
#19
Z
#26
地址G,L,N,0和P不能在自变量中使用
不需要指定的地址可以省,对于省的地址的局部变量为空
地址不需要按字母顺序指定。
但应符合字地址的格式。
I,J和K需要按
字母的顺序指定
自变量指定n
K3
#12
J7
I4
K7
J4
#14
I8
I1
K4
#15
J8
J1
I5
#16
K8
#27
K1
J5
I9
#28
I2
K5
J9
#29
J2
I6
K9
#30
K2
J6
I10
#31
I3
#10
K6
J10
#32
J3
I7
K10
#33
I,J,K的下标用于确定自变量指定的顺序,在实际编程中不写。
G65P-X-Y-Z-R-F-I-A-B-H-
X:
圆心的X坐标(绝对值或增量值指定)(#24)
Y:
圆心的Y坐标(绝对值或增量值指定)(#25)
乙孔深(#26);
R:
趋近点坐标(#18)
F:
切削进给速度(#9);
I:
圆半径(#4)
A:
第一孔的角度(#1)
B:
增量角(指定负值时为逆时针)(#2)
H:
孔数(#11)
宏程序调用程序:
00002
90G;
G65P9100X100Y50R30Z-50F500I100A0B45H5
M30
被调用的宏程序:
09100
#3=#4003;
储存03组的G代码
G81Z#26R#18F#9K0(注)钻孔循环;
注:
也可以使用L0
IF[#3EQ90]GOTO1;
在G90方式转移到N1
#24=#5001+#24;
计算圆心的X坐标
#25=#5002+#25;
计算圆心的Y坐标
N1WHILE[#11GT0]DO1••…直到剩余孔数为0
#5=#24+#4*COS[#1];
计算X轴上的孔位
#6=#25+#4*SIN[+1];
计算Y轴上的孔位
G90X#5Y#6移动到坐标位置之后执行钻孔
#1=#1+#2;
更新角度
#1仁#11-1;
孔数-1
END1;
G#3G80返回原始状态G代码
M99
变量的含义:
#3:
储存03组的G代码;
#5:
下个孔的X坐标:
#6:
下个孔的Y坐标摸态调用G66
G66P-L-:
数据传递到宏程序
自变量指定I
变量类型
#0
空变量
该变量总是空,没有值能赋给该变量
#1~#33
局部变量
局部变量只能用于宏程序中存在存储数据量。
例如,运算结果。
当断电时,局部变量被初始化为空。
调用宏程序时,自变量对局不变量赋值
#100~#199;
#500~#999
公共变量
公共变量在不同宏程序中的意义相同。
当断电时,变量#100
—#199初始化为空;
当断电时,变量#500—#999的数据保存,
即使断电也不丢失
#1000—
系统变量
系统变量用于读和写CNC的各种数据,例如,刀具的当前位
置和补偿值
局部变量和公共变量可以为0值或下面范围中的值:
-1047到-10-29或10-29到1047
宏程序报警的系统变量:
#3000
当变量#3000的值为0~200时,CNC停止运行且报警。
可在表达式后指定不超过26个字符的报警信息。
LCD屏幕上显示报警号和报警信息,其中报警号为变量#3000的值
加上3000
接口信号的系统变量:
(参数#0(MIF)=0时)
#1000—
把16位信号从PMC送到用户宏程序,变量#1000到#1035用于按位读取信号,
#1015#1032
变量#1032,用于一次读取16位信号
#1100—
把32位信号从用户宏程序送到PMC变量#1100到#1135用于按位
#1115#1132
写信号。
变量#1032用于一次读取16位信号
#1133
变量#1133用于从用户宏程序一次写一个32位信号到PMC注意,#1133的
值为-到+
(参数#0(MIF)=1时)
#1000~#1301
把32位信号从PMC送到用户宏程序,变量#1000到#1031用于按位读取信号
把32位信号从用户宏程序送到PMC变量#1100到#1131用于按位
#1131
写信号
#1032—
把32位信号从PM(统一输出到用户宏程序的变量。
只能在-~+的范
#1035
围内输入
#1132—
把32位信号统一写入到用户宏程序的变量。
只能在-~+的范围内指
#1135
疋
自动运行控制(#3003)
#3003
单程序段
辅助功能的完成
有效
等待
1
无效
2
不等待
3
当电源接通时,该变量的值为0。
当单程序段停止无效时,即使单程序段开关设为ON也不执行程序段停止。
当指定不等待辅助功能(MS和T功能)完成时,在辅助功能完成之前,程序即执行到下一程序段。
而且分配完成信号DEh不输出。
位置信息系统变量
位置信息
坐标系
刀具补偿值
运行时的读操作
#5001—#5003
程序段终止
工件坐标系
不包含
可能
#5021—#5023
当前位置
机床坐标系
包含
不可能
#5041—#5043
#5061—#5063
跳转信息位置
#5081—#5083
刀具长度补偿值
#5101—#5103
伺服位置误差
第1位代表轴号(1~3);
变量#5081~#5083存储的刀具长度补偿值是当前的执行值,不是后面程序的处理
值;
在G31(跳转功能)程序段中跳转信号接通时的刀具位置储存在变量#5061到#5064中。
当G31程序段中的跳转信号未接通时,这些变量中储存指定程序段的终点值。
移动期间不能读是指由于缓冲(预读)功能的原因,不能读取期望值
G65P9110X-Y-Z-R-F-L-;
圆心的X坐标(绝对值指定)(#24)
圆心的Y坐标(绝对值指定)(#25)
乙孔深(#26)(绝对值指定);
R:
趋近点坐标(绝对值指定)(#18)
重复次数
使用系统变量时的注意事项
读写
注(未指定禁止缓冲
的M代码或G53程序
段时)
接口信号
读
#100—#1015#1032
宏语句读入缓冲后
读入数据
写
#1100—#1115#1132
写入数据
刀具补偿
值
#10001-
宏报警
在宏语句前最多两
个程序段处产生报
警
送出信息
#3006
的同时程
序停止
个程序段处产生停
止
时间信息
#3001,#3002
读写入数据
#3011,#3012
自动运行控制
#3003,#3004
个程序段处设定数
据
设定
#3005
镜像
#3007
当前选择追加工件坐标系
#4130(P)#4014(G54-G59
在宏语句前最多二
个程序段处读入数
(机床坐
标系
#5021-#5023
读入移动中的不确
.(亠
疋位置
(工件坐
标系)
刀长偏置
读入当前程序段的
/p-r口冃
偏置量
位置偏差
读入移动中的不正
确偏差
工件零点偏置
#5021-#5023#5021-#5023