FUC宏程序编程精编.docx

上传人:b****4 文档编号:5019278 上传时间:2023-05-07 格式:DOCX 页数:12 大小:20.45KB
下载 相关 举报
FUC宏程序编程精编.docx_第1页
第1页 / 共12页
FUC宏程序编程精编.docx_第2页
第2页 / 共12页
FUC宏程序编程精编.docx_第3页
第3页 / 共12页
FUC宏程序编程精编.docx_第4页
第4页 / 共12页
FUC宏程序编程精编.docx_第5页
第5页 / 共12页
FUC宏程序编程精编.docx_第6页
第6页 / 共12页
FUC宏程序编程精编.docx_第7页
第7页 / 共12页
FUC宏程序编程精编.docx_第8页
第8页 / 共12页
FUC宏程序编程精编.docx_第9页
第9页 / 共12页
FUC宏程序编程精编.docx_第10页
第10页 / 共12页
FUC宏程序编程精编.docx_第11页
第11页 / 共12页
FUC宏程序编程精编.docx_第12页
第12页 / 共12页
亲,该文档总共12页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

FUC宏程序编程精编.docx

《FUC宏程序编程精编.docx》由会员分享,可在线阅读,更多相关《FUC宏程序编程精编.docx(12页珍藏版)》请在冰点文库上搜索。

FUC宏程序编程精编.docx

FUC宏程序编程精编

Documentnumber:

WTT-LKK-GBB-08921-EIGG-22986

 

FUC宏程序编程精编

FANUC宏程序编程

2017-03-28

运算符

运算符由2个字母组成,用于两个值的比较,以决定它们是相等还是一个值小于或大于另一个值。

注意,不能使用不等号

运算符

含义

EQ

等于(=)

NE

不等于

GT

大于

GE

大于或等于

LT

小于

LE

小于或等于

示例程序?

?

?

?

?

下面的程序计算数值1~10的总和

O9500;#1=0;………………………………….存储和的变量初值

#2=1;………………………………….被加数变量的初值

N1IF[#2GT10]GOTO2;…………….当被加数大于10时转移到N2

#1=#1+#2;…………………………….计算和

#2=#2+#1;…………………………….下一个被加数

GOTO1;………………………………转移到N1

N2M30;................................................程序结束

算术和逻辑运算

功能

格式

备注

定义

#i=#j:

加法

#i=#j+#k

减法

#i=#j-#k

乘法

#i=#j*#k

除法

#i=#j/#k

正弦

#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

#i=BCD#j;

角度单位:

SIN、ASIN、COS、ACOS、TAN和ATAN的角度单位是度

ARCSIN#i=ASIN[#j]:

●取值范围如下:

当参数(¥0)NAT位设为0时,270~90度;当参数(¥0)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];

●?

指定两边的长度,并用斜杠(/)分开

●?

取值范围如下:

当参数(¥0)NAT位设为0时,0~360度[例如:

当指定#i=ATAN[-1]/[-1];时,#1=225度]。

当参数(¥0)NAT位设为1时,-180~180度[例如:

当指定#i=ATAN[-1]/[-1];时,#1=-135度]

●?

常数可替代变量#j。

自然对数#i=LN[#j];

●?

?

注意,相对误差可能大于10-8。

●?

当反对数(#j)为0或小于0时,发出报警。

●?

常数可替代变量#j。

指数函数#i=EXP[#j]:

●?

?

注意,相对误差可能大于10-8

●?

当运算结果超过×1047(j大约是110)时,出现溢出报警

●?

常数可替代变量#j。

上取整下取整:

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代码调用子程序)但没有除O,N,P或L地址之外的其它地址指令的NC语句,其性质与宏程序语句相同;不包含除O,N,P或L以外的指令地址的程序段其性质与宏程序语句相同。

无限循环;

当指定DO而没有指定WHILE语句时,产生从DO到END的无限循环。

宏程序调用和子程序调用之间的差别:

宏程序调用(G65)不同于子程序调用(G98),如下所述:

●?

用G65,可以指定自变量(数据传送到宏程序)。

M98没有该功能。

●?

当M98程序段包含另一个NC指令(例如。

)时,在指令执行之后调用子程序。

相反,G65无条件的调用子程序。

●?

M98程序段包含另一个NC指令(例如,)时在单程序方式中,机床停止。

相反,G65机床不停止。

●?

用G65,改变局部变量的级别。

用M98,不改变局部变量的级别。

G65P-L-(自变量指定);P:

要调用的程序;L:

重复次数;自变量:

数据传递到宏程序

自变量指定Ⅰ

地址

变量号

地址

变量号

地址

变量号

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,O和P不能在自变量中使用

不需要指定的地址可以省,对于省的地址的局部变量为空

地址不需要按字母顺序指定。

但应符合字地址的格式。

I,J和K需要按字母的顺序指定

自变量指定Ⅱ

A

#1

K3

#12

J7

#23

B

#2

I4

#13

K7

#24

C

#3

J4

#14

I8

#25

I1

#4

K4

#15

J8

#26

J1

#5

I5

#16

K8

#27

K1

#6

J5

#17

I9

#28

I2

#7

K5

#18

J9

#29

J2

#8

I6

#19

K9

#30

K2

#9

J6

#20

I10

#31

I3

#10

K6

#21

J10

#32

J3

#11

I7

#22

K10

#33

I,J,K的下标用于确定自变量指定的顺序,在实际编程中不写。

G65P-X-Y-Z-R-F-I-A-B-H-:

X:

圆心的X坐标(绝对值或增量值指定)(#24)

Y:

圆心的Y坐标(绝对值或增量值指定)(#25)

Z:

孔深(#26);R:

趋近点坐标(#18)

F:

切削进给速度(#9);I:

圆半径(#4)

A:

第一孔的角度(#1)

B:

增量角(指定负值时为逆时针)(#2)

H:

孔数(#11)

宏程序调用程序:

O0002;

G65P9100X100Y50R30Z-50F500I100A0B45H5;

M30

被调用的宏程序:

O9100;

#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;.............................更新角度

#11=#11-1;...........................孔数-1

END1;

G#3G80;...............................返回原始状态G代码

M99;

变量的含义:

#3:

储存03组的G代码;#5:

下个孔的X坐标:

#6:

下个孔的Y坐标

摸态调用G66

G66P-L-:

P:

要调用的程序;L:

重复次数;自变量:

数据传递到宏程序

自变量指定Ⅰ

变量类型:

变量号

变量类型

功能

#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—#1015#1032

把16位信号从PMC送到用户宏程序,变量#1000到#1035用于按位读取信号,变量#1032,用于一次读取16位信号

#1100—#1115#1132

把32位信号从用户宏程序送到PMC。

变量#1100到#1135用于按位写信号。

变量#1032用于一次读取16位信号

#1133

变量#1133用于从用户宏程序一次写一个32位信号到PMC。

注意,#1133的值为-到+

(参数#0(MIF)=1时)

变量号

功能

#1000~#1301

把32位信号从PMC送到用户宏程序,变量#1000到#1031用于按位读取信号

#1100—#1131

把32位信号从用户宏程序送到PMC。

变量#1100到#1131用于按位写信号

#1032—#1035

把32位信号从PMC统一输出到用户宏程序的变量。

只能在-~+的范围内输入

#1132—#1135

把32位信号统一写入到用户宏程序的变量。

只能在-~+的范围内指定

自动运行控制(#3003)

#3003

单程序段

辅助功能的完成

0

有效

等待

1

无效

等待

2

有效

不等待

3

无效

不等待

当电源接通时,该变量的值为0。

当单程序段停止无效时,即使单程序段开关设为ON,也不执行程序段停止。

当指定不等待辅助功能(M,S和T功能)完成时,在辅助功能完成之前,程序即执行到下一程序段。

而且分配完成信号DEN不输出。

位置信息系统变量

变量号

位置信息

坐标系

刀具补偿值

运行时的读操作

#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:

圆心的X坐标(绝对值指定)(#24)

Y:

圆心的Y坐标(绝对值指定)(#25)

Z:

孔深(#26)(绝对值指定);

R:

趋近点坐标(绝对值指定)(#18)

F:

切削进给速度(#9);

L:

重复次数

使用系统变量时的注意事项

含义

读写

变量号

注(未指定禁止缓冲的M代码或G53程序段时)

接口信号

#100—#1015#1032

宏语句读入缓冲后读入数据

#1100—#1115#1132

宏语句读入缓冲后写入数据

刀具补偿值

#10001-

宏语句读入缓冲后写入数据

宏报警

#3000

在宏语句前最多两个程序段处产生报警

送出信息的同时程序停止

#3006

在宏语句前最多两个程序段处产生停止

时间信息

读写

#3001,#3002

宏语句读入缓冲后读写入数据

#3011,#3012

宏语句读入缓冲后读入数据

自动运行控制

#3003,#3004

在宏语句前最多两个程序段处设定数据

设定

#3005

宏语句读入缓冲后写入数据

镜像

#3007

宏语句读入缓冲后读入数据

当前选择追加工件坐标系

#4130(P)#4014(G54-G59)

在宏语句前最多三个程序段处读入数据

当前位置(机床坐标系

#5021-#5023

读入移动中的不确定位置

当前位置(工件坐标系)

#5021-#5023

读入移动中的不确定位置

刀长偏置

#5021-#5023

读入当前程序段的偏置量

位置偏差

#5021-#5023

读入移动中的不正确偏差

工件零点偏置值

#5021-#5023#5021-#5023

宏语句读入缓冲后写入数据

 

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 总结汇报 > 学习总结

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2