您好,欢迎来到九壹网。
搜索
您的当前位置:首页FANUC宏程序编程

FANUC宏程序编程

来源:九壹网


FANUC宏程序编程

集团企业公司编码:(LL3698-KKI1269-TM2483-LUI126-ITT2-

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 备注 乘法 除法 正弦 反正弦 余弦 反余弦 正切 反正切 平方根 绝对值 舍入 上取整 下取整 自然数对数 指数函数 或 异或 与 从BCD转为BIN 从BIN转为BCD 角度单位:

#i=#j*#k #i=#j/#k #i=SIN[#j]: #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: #i=BCD#j; #i=BCD#j; 角度以度指定090度30分表示为度 逻辑运算一位一位地按二进制数执行 用于与PMC的信号交换 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指令(例如。P)时,在指令执行之后调用子程序。相反,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 B C I1 J1 K1 I2 J2 K2 I3 J3 #1 #2 #3 #4 #5 #6 #7 #8 #9 #10 #11 K3 I4 J4 K4 I5 J5 K5 I6 J6 K6 I7 #12 #13 #14 #15 #16 #17 #18 #19 #20 #21 #22 J7 K7 I8 J8 K8 I9 J9 K9 I10 J10 K10 #23 #24 #25 #26 #27 #28 #29 #30 #31 #32 #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]DO 1.....直到剩余孔数为0 #5=#24+#4*COS[#1];..........计算X轴上的孔位 #6=#25+#4*SIN[+1];...........计算Y轴上的孔位

G90X#5Y#6;........................移动到坐标位置之后执行钻孔 #1=#1+#2;.............................更新角度 #11=#11-1;...........................孔数-1 END 1;

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

M99; 变量的含义:#3:储存03组的G代码;#5:下个孔的X坐标:#6:下个孔的Y坐标 摸态调用G66 G66P-L-: P:要调用的程序;L:重复次数;自变量:数据传递到宏程序 自变量指定Ⅰ 变量类型: 变量号 #0 #1~#33 变量类型 功能 空变量 该变量总是空,没有值能赋给该变量 局部变量 局部变量只能用于宏程序中存在存储数据量。例如,运算结果。当断电时,局部变量被初始化为空。调用宏程序时,自变量对局不变量赋值 公共变量 公共变量在不同宏程序中的意义相同。当断电时,变量#100—#199初始化为空;当断电时,变量#500—#999的数据保存,即使断电也不丢失 系统变量 系统变量用于读和写CNC的各种数据,例如,刀具的当前位置和补偿值 #100~#199;#500~#999 #1000— 局部变量和公共变量可以为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 #1133 把32位信号从用户宏程序送到PMC。变量#1100到#1135用于按位写信号。变量#1032用于一次读取16位信号 变量#1133用于从用户宏程序一次写一个32位信号到PMC。注意,#1133的值为到 (参数#0(MIF)=1时) 变量号 #1000~#1301 #1100—#1131 #1032—#1035 #1132—#1135 功能 把32位信号从PMC送到用户宏程序,变量#1000到#1031用于按位读取信号 把32位信号从用户宏程序送到PMC。变量#1100到#1131用于按位写信号 把32位信号从PMC统一输出到用户宏程序的变量。只能在的范围内输入 把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到#50中。当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#113宏语句读入缓冲后写入数据 2 #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 © 2019- 91gzw.com 版权所有 湘ICP备2023023988号-2

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务