FANUC宏程序编程25909

合集下载

FANUC宏程序教程

FANUC宏程序教程

资料来源:国内最大的维修资料库 精通维修下载站 :/
资料来源:国内最大的维修资料库 精通维修下载站 :/
资料来源:国内最大的维修资料库 精通维修下载站 :/
资料来源:国内最大的维修资料库 精通维修下载站 :/
资料来源:国内最大的维修资料库 精通维修下载站 :/
资料来源:国内最大的维修资料库 精通维修下载站 :/
资料来源:国内最大的维修资料库 精通维修下载站 :/
资料来源:国内最大的维修资料库 精通维修下载站 :/
资料来源:国内最大的维修资料库 精通维修下载站 :/
资料来源:国内最大的维修资料库 精通维修下载站 :/
资料来源:国内最大的维修资料库 精通维修下载站 :/
资料来源:国内最大的维修资料库 精通维修下载站 :/
资料来源:国内最大的维修资料库 精通维修下载站 :/
资料来源:国内最大的维修资料库 精通维修下载站 :/
资料来源:国内最大的维修资料库 精通维修下载站 :/
资料来源:国内最大的维修资料库 精通维修下载站 :/
资料来源:国内最大的维修资料库 精通维修下载站 :/
资料来源:国内最大的维修资料库 精通维修下载站 :/
资料来源:国内最大的维修资料库 精通维修下载站 :/
资料来源:国内最大的维修资料库 精通精通维修下载站 :/
资料来源:国内最大的维修资料库 精通维修下载站 :/
资料来源:国内最大的维修资料库 精通维修下载站 :/
资料来源:国内最大的维修资料库 精通维修下载站 :/
资料来源:国内最大的维修资料库 精通维修下载站 :/
资料来源:国内最大的维修资料库 精通维修下载站 :/
资料来源:国内最大的维修资料库 精通维修下载站 :/

FANUC宏程序讲解-优质课件

FANUC宏程序讲解-优质课件

条件表达式
EQ和NE中的<空>不同于0
当#1=<空>时
#1 EQ #0 ↓
成立
#1 NE 0 ↓
成立
#1 GE #0 ↓
成立
#1 GT 0 ↓
不成立
Hale Waihona Puke 当#1=0时#1 EQ #0 ↓
不成立
#1 NE 0 ↓
不成立
#1 GE #0 ↓
成立
#1 GT 0 ↓
不成立
条件表达式
二、运算指令
• 运算命令的种类 • 运算顺序
屏幕显示:3001 WRONG DATA INPUT
3.时间信息
变量号 单位
功能
赋值
#3001 毫秒 计时器。电源接通时复位为0。
可以
#3002
小时
计时器。循环启动灯亮时开始计时。 即使在断电时也保存该值
可以
#3011 #3012
年月日 读取当前的日期。 1999年12月31日 19991231 读取当前的时间。
3.循环(WHILE 语句 )
• DO 循环可以 嵌套3级
• 可以从DO区域的 内部向外部转移
WHILE[…] DO 1;

WHILE[…] DO 2;

WHILE[…] DO 3; 程序
END3;

END2;

END1;
WHILE[…] DO 1; 程序 IF[…] GOTO n; END1; 程序 Nn …;
.
宏程序讲解
交流内容
用户宏程序 程序保护与快捷程序编辑 图形对话编程 — Manual Guide i
用户宏程序相关
一、变量 二、运算指令 三、控制指令 四、系统变量 五、宏程序调用 六:典型应用举例

FANUC系统数控车床B类宏程序编程应用.doc

FANUC系统数控车床B类宏程序编程应用.doc

FANUC系统数控车床B类宏程序编程应用虽然子程序对编制相同加工操作的程序非常有用,但用户宏程序由于允许使用变量、算术和逻辑运算及条件转移,使得编制相同加工操作的程序更方便,更容易。

可将相同加工操作编为通用程序,如型腔加工宏程序和固定加工循环宏程序。

使用时,加工程序可用一条简单指令调出用户宏程序,和调用子程序完全一样。

一、变量普通加工程序直接用数值指定 G代码和移动距离;例如, G100和 X100.0。

使用用户宏程序时,数值可以直接指定或用变量指定。

当用变量时,变量值可用程序或用 MDI 面板上的操作改变。

如:#2=30;#1=#2+100;G01 X#1 F0.31、变量的表示变量用变量符号(#)和后面的变量号指定。

例如:#1表达式可以用于指定变量号。

此时,表达式必须封闭在括号中。

例如:#[#1+#2-12]2、变量的类型变量根据变量号可以分成四种类型。

3、变量值的范围局部变量和公共变量可以有 0 值或下面范围中的值:-1047到-10-29 0 10-29到 1047如果计算结果超出有效范围,则发出 P/S报警No.111.4、小数点的省略当在程序中定义变量值时,小数点可以省略。

例:当定义#1=123;变量#1的实际值是 123.000。

5、变量的引用为在程序中使用变量值,指定后跟变量号的地址。

当用表达式指定变量时,要把表达式放在括号中。

例如:G01X[#1+#2]F#3;被引用变量的值根据地址的最小设定单位自动地舍入。

例如:当 G00X#1;以 1/1000mm 的单位执行时,CNC把 12.3456 赋值给变量#1,实际指令值为 G00X12.346;。

改变引用的变量值的符号,要把负号(一)放在#的前面。

例如: G00X—#1;当引用未定义的变量时,变量及地址字都被忽略。

例如:当变量#1的值是 0,并且变量#2的值是空时,G00X#1 Z#2 的执行结果为 G00X0。

6、未定义的变量(当变量值未定义时,这样的变量成为“空”变量。

FANUC系统宏程式详解

FANUC系统宏程式详解

宏程序的简单调用格式:格式:G65 P程序序号L重复次数变量分配变量对照表控制命令1.If [条件表达式]GOTO n2.While [条件表达式]DO mEnd m运算符号相等:EQ 不等于:NE 大于:GT小于:LT 大于等于:GE 小于等于:LEFANUC系统宏程式FANUC系统宏程序编程一变量普通加工程序直接用数值指定G代码和移动距离;例如,GO1和X100.0。

使用用户宏程序时,数值可以直接指定或用变量指定。

当用变量时,变量值可用程序或用MDI面板上的操作改变。

#1 = #2 + 100G01 X#1 F300说明:变量的表示计算机允许使用变量名,用户宏程序不行。

变量用变量符号(# )和后面的变量号指定。

例如:#1表达式可以用于指定变量号。

此时,表达式必须封闭在括号中。

例如:#[#1+#2-12]变量的类型变量根据变量号可以分成四种类型变量号变量类型功能#0 空变量该变量总是空,没有值能赋给该变量.#1-#33 局部变量局部变量只能用在宏程序中存储数据,例如,运算结果.当断电时,局部变量被初始化为空.调用宏程序时,自变量对局部变量赋值,#100-#199 公共变量公共变量在不同的宏程序中的意义相同.当断电时,变量#100-#199 初始化为空#500-#999 变量#500-#999 的数据保存,即使断电也不丢失.#1000 系统变量系统变量用于读和写CNC运行时各种数据的变化,例如,刀具的当前位置和补偿值.变量值的范围局部变量和公共变量可以有0值或下面范围中的值-1047 到-10-29 或-10-2 到-1047如果计算结果超岀有效范围,则发岀P/S报警NO.111.小数点的省略当在程序中定义变量值时,小数点可以省略。

例:当定义#1 = 123 ;变量#1的实际值是123.000变量的引用为在程序中使用变量值,指定后跟变量号的地址。

当用表达式指定变量时,要把表达式放在括号中。

例如:G01X[#1+#2]F#3;被引用变量的值根据地址的最小设定单位自动地舍入。

FANUC数控车床宏程序

FANUC数控车床宏程序

数控车床宏程序程序段为宏程序语句:术或逻辑运算(=)的程序段.制语句的程序段程序调用指令的程序段程序以外的任何程序段都为NC语句.与NC语句的不同使置于单程序段运行方式,机床也不停止.但是,当参数N0.6000#5SBM设定为1时,在单程序段方式中,止.刀具半径补偿方式中宏程序语句段不做为不移动程序段处理.序语句有相同性质的NC语句有子程序调用指令,但没有除O,N或L地址之外的其它地址指令的NC语句其性质与宏程序相同.包含除ONP或L以外的指令地址的程序段其性质与宏程序语句相同.移和循环中,使用GOTO语句和IF语句可以改变控制的流向.有三种转移和循环操作可供使用;循环----------GOTO语句(无条件转移)语句(条件转移)语句(当…时循环)无条件转移(GOTO语句)标有顺序号n的程序段.当指定1到99999以外的顺序号时,出现P/S报警NO.128.可用表达方式指定.n:顺序号(1到99999)条件转移(IF)语句后指定条件表达式.件表达式>]GOTOn如果指定的条件表达式满足时,转移到标有顺序号n的程序段.如果指定的条件表达足,执行下个程序段.件表达式>]THEN如果条件表达式满足,执行预先决定的宏程序语句.只执行一个宏程序语句.达式达式必须包括算符.算符插在两个变量中间或变量和常数中间,并且用括号([,])封闭.表达式可以替代由2个字母组成,用于两个值的比较,以决定它们是相等还是一个值小于或大于另一个值.注意,不能使号.含义于等于于于或等于于于或等于序:程序计算数值1-10的总和最新教案FANUC数控车床宏程序FANUC系统宏程序编程教案车工实习教学教案数控加工与编程实训教案数控编程与操作教案数控宏程序加工斜椭圆CAXA数控车实例教案CAXA数控车教案数控车床实训教案—G73加工国蜗杆车削教案热门教案数控电火花线切割加工教案40多种电子产品制作电路图红外线遥控电子制实例教案.do 自制音响遥控电路教案汽车驾驶教案金属材料教案FLASH相册制作教案微机ATX电源电路的工作原理与钳工常用工具的介绍及使用教案单片机原理及应用教案(附教学推荐教案SQL实验教案.rar计算机组装与维修实验教案模拟电子技术教案.rar数控车床工艺品图纸—印章数控车床工艺品图纸—葫芦数字电子技术实验教案.rar跆拳道教案.doc体育课教案(田径).doc建筑材料教案.rar机械制图期中试卷.doc存储和数变量的初值被加数变量的初值2GT10]GOTO2;当被加数大于10时转移到N2#2;计算和数#1;下一个被加数;转到N1程序结束循环(WHILE语句)E后指定一个条件表达式.当指定条件满足时,执行从D0到END之间的程序.否则,转到END后的程序段.的条件满足时,执行WHILE从D0到END之间的程序.否则,转而执行END之后的程序段,这种指令格式适F语句.D0后的号和END后的号是指定程序执行范围的标号,标号值为1,2,3.若用1,2,3以外的值会产报警NO.126.END循环中的标号可根据需要多次使用.但是,当程序有交叉重复循环(DO范围的重叠)时,出现P/S报警.环当指定DO而没有指定WHILE语句时,产生从DO到END的无限循环.间当在GOTO语句中有标号转移的语句时,进行顺序号检索.反向检索的时间要比正向检索长.用WHILE 现循环可减少处理时间.的变量在使用EQ或NE的条件表达式中,<空>和零有不同的效果,在其它形式的条件表达式中,<空>被当序下面的程序计算数值1到10的总和.#2LE10]DO1;#2;1;案名称:FANUC数控车床宏程序大小:84K时间:2010-11-3 23:04:19次数统计:: 2: 6:22221 使用快车下载。

FANUC用户宏程序[谷风详析]

FANUC用户宏程序[谷风详析]
• 4.刀补400个:补偿个数为400, #10001~#10400
特制分析
40
BEIJING-FANUC
刀具补偿(M)
• 刀具补偿存储器A,参数8136#6 ★
★为0i-D 适用
特制分析
41
BEIJING-FANUC •刀补补偿存储器C,参数8136#6=0;6000#3=0 ★
特制分析
42
BEIJING-FANUC
BEIJING-FANUC
一、接口信号
.. .
特制分析
31
BEIJING-FANUC
特制分析
32
BEIJING-FANUC
特制分析
33
BEIJING-FANUC
...
特制分析
34
BEIJING-FANUC
特制分析
35
BEIJING-FANUC
特制分析
36
BEIJING-FANUC
举例
特制分析
• 公共变量的写保护:参数6031~6032 ★对#500~#999进行保护, 属性为READ,以防止输入/全清的误操作.
• 系统变量:在系统中固定,属性有只读、只写、可读可写三种. • 系统常量:其值不变的常量,属性只读.
特制分析
13
BEIJING-FANUC
变量的显示
四、变量的显示与设定
1).按下MDI面板上 的功能键 OFFSET
嵌套
宏程序 可使用变量 G65 P_ L _<自变量赋值> ;
M99; 4重
0i-D:5重★
子程序 不可以使用变量
M98 P_ _; M99; 4重
注释:★为0i-D、30i系列的新增功能
特制分析

FANUC系统宏程式详解

FANUC系统宏程式详解

宏程序的简单调用格式:格式: G65 P 程序序号 L 重复次数变量分配变量对照表控制命令1. If [ 条件表达式 ] GOTO n2. While [ 条件表达式 ] DO mEnd m 运算符号相等:EQ 不等于: NE 大于:GT小于:LT 大于等于: GE 小于等于: LEFANUC系统宏程式FANUC系统宏程序编程一变量普通加工程序直接用数值指定G代码和移动距离;例如,GO1和X100.0 。

使用用户宏程序时,数值可以直接指定或用变量指定。

当用变量时,变量值可用程序或用MDI 面板上的操作改变。

#1=#2+100G01 X#1 F300 说明:变量的表示计算机允许使用变量名,用户宏程序不行。

变量用变量符号(例如:#1表达式可以用于指定变量号。

此时,表达式必须封闭在括号中例如:#[#1+#2-12]变量的类型变量根据变量号可以分成四种类型变量号变量类型功能#0空变量该变量总是空, 没有值能赋给该变量.#1-#33局部变量局部变量只能用在宏程序中存储数据,例如,运算结果.当断电时, 局部变量被初始化为空.调用宏程序时, 自变量对局部变量赋值,#100-#199 #500-#999公共变量公共变量在不同的宏程序中的意义相同.当断电时,变量#100-#199 初始化为空.变量#500-#999 的数据保存, 即使断电也不丢失.#1000系统变量系统变量用于读和写CNC运行时各种数据的变化,例如, 刀具的当前位置和补偿值.变量值的范围局部变量和公共变量可以有0 值或下面范围中的值: -1047 到-10-29 或-10-2 到-1047 如果计算结果超出有效范围,则发出P/S 报警NO.111.小数点的省略当在程序中定义变量值时,小数点可以省略。

例:当定义#1=123 ;变量#1 的实际值是123.000 。

变量的引用为在程序中使用变量值,指定后跟变量号的地址。

当用表达式指定变量时,要把表达式放在括号中。

FANUC宏程序编程

FANUC宏程序编程

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 ;⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯移到 N1N2 M30 ; ................................................程序束算和运算功能格式备注定义#i=#j:加法#i=#j+#k减法#i=#j-#k乘法#i=#j*#k除法#i=#j/#k正弦#i=SIN[#j]:角度以度指定090度 30分反正弦#i=ASIN[#j]:表示为 90.5 度余弦#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 度;当参数(¥0) NAT 位设为 1 时, -90~90 度。

FANUC系统宏程式详解.doc

FANUC系统宏程式详解.doc

宏程序的简单调用格式:格式: G65 P 程序序号L 重复次数变量分配变量对照表A #1 I #4 T #20B #2 J #5 U #21C #3 K #6 V #22D #7 M #13 W #23E #8 Q #17 X #24F #9 R #18 Y #25 H #10 S #19 Z #26 控制命令1. If [ 条件表达式 ] GOTO n2.While [ 条件表达式 ] DO mEnd m运算符号相等: EQ 小于: LT 不等于 : NE大于等于:GE大于: GT小于等于:LEFANUC系统宏程式FANUC系统宏程序编程一变量普通加工程序直接用数值指定G代码和移动距离;例如,GO1和 X100.0 。

使用用户宏程序时,数值可以直接指定或用变量指定。

当用变量时,变量值可用程序或用MDI 面板上的操作改变。

#1= #2 + 100G01 X#1 F300说明:变量的表示计算机允许使用变量名,用户宏程序不行。

变量用变量符号(#)和后面的变量号指定。

例如: #1表达式可以用于指定变量号。

此时,表达式必须封闭在括号中。

例如: #[#1+#2-12]变量的类型变量根据变量号可以分成四种类型变量号变量类型功能#0 空变量该变量总是空 , 没有值能赋给该变量 .#1-#33 局部变量局部变量只能用在宏程序中存储数据, 例如 , 运算结果 . 当断电时 , 局部变量被初始化为空 . 调用宏程序时 , 自变量对局部变量赋值,#100-#199 公共变量公共变量在不同的宏程序中的意义相同. 当断电时 , 变量 #100-#199 初始化为空 . #500-#999 变量 #500-#999 的数据保存 , 即使断电也不丢失 .#1000 系统变量系统变量用于读和写CNC运行时各种数据的变化, 例如 , 刀具的当前位置和补偿值 .变量值的范围局部变量和公共变量可以有0 值或下面范围中的值:-1047 到-10-29 或 -10-2 到 -1047如果计算结果超出有效范围, 则发出 P/S 报警 NO.111.小数点的省略当在程序中定义变量值时,小数点可以省略。

数控FANUC系统宏程序及教程

数控FANUC系统宏程序及教程

宏程序设计宏程序与子程序类似,对编制相同加工的操作可以使程序简化•同时宏程序中可以使用变量,算术和逻辑运算及转移指令,还可以方便地实现循环程序设计。

使相同加工操作的程序更方便,更灵活。

本章以FANUC系统为例介绍宏程序设计的内容。

12.1变量的定义宏程序中使用的变量与日常生活中使用的变量不同,变量用符号“#”后跟变量的变量号指定。

变量可分为四种类型。

1.空变量#0为空变量,该变量不能赋值。

2.局部变量#1~#33为局部变量,局部变量只能在宏程序中存储数据。

当断电时局部变量被初始化为空,调用宏程序时,自变量对局部变量赋值。

局部变量的数值范围10-29~1047或-10 47~-10-29,如果计算结果超过该范围则发出P/S报警No.111。

3.公共变量#100~#199、#500~#999为公共变量,公共变量在不同的宏程序中意义相同。

当断电时,变量#100~#199被初始化为空,变量#500~#999的数据不会丢失。

全局变量的数值范围10-29~1047或-1047~-10-29,如果计算结果超过该范围则发出P/S报警No.111 o4.系统变量#1000~为系统变量,系统变量用于读和写CNC运行时的各种数据,如刀具的当前位置和补偿值等。

5.变量与地址(自变量)的对应关系系统可用两种形式的自变量指定,表12-1为自变量指定I的自变量与变量的对应关系。

表12-2为自变量指宾II的自变量与变量的对应关系。

I G L0N P I J K顺序无要求。

举例:G65 P3000 L2 B4 A5 D6 J7 K8 正确(J、K符合顺序要求)在宏程序中将会把4赋给#2,把5赋给#1,把6赋给#7,把7赋给#5,把8赋给#6举例:G65 P3000 L2 B3 A4 D5 K6 J5 不正确(J、K不符合顺序要求)II A B C 1I J K 10系统能够自动识别自变量指定I 和自变量指定II 并赋给宏程序中相应的变量号。

FANUC机器人宏程序相关知识

FANUC机器人宏程序相关知识

FANUC机器人宏程序相关知识
在程序调试完成后,投入到生产中,我们可以使用几种方法实现程序自动运行,且不需要按住使能键??
第一使用宏程序;
第二使用RSR程序;
第三使用PNS程序;
等等
那么现在小编带你一起学习宏程序的相关知识
一、步骤:
1、打开程序一览界面,如下图所示;
2、按下F2 创建,进入程序创建界面,如下图所示;
3、移动光标选择合适的命名方式,对应按下功能键F1 ~F5,输入与对应的符号,按下 [ENTER] 回车键,如下图所示;
4、再按下F2 详;细,把子类型选择为Macro (宏程序),如下图所示;
5、按下F1 结束,该程序就创建完成,并且编写好程序,如下图所示;
二、启动宏程序
1 按下 MENUS(菜单)键→设置→ 类型→ 宏,进入宏设定界面,如下图所示;
2 光标移到指令名称,按下 ENTER 键,输入名称,如下图所示;
3、光标移到程序,按下F4 选择,点击宏指令,如下图所示;
4 选择我们刚刚所创建的宏程序,如下图所示;
5 光标移到分配,按下F4 选择,选择执行方式(如 RI )如下图所示;
6 通过移动光标,右移到 [ 0 ] 处输入对应RI号码,如下图所示;
7 按下 FCTN 辅助菜单键,选择中止程序,如下图所示;
8 示教器开关模式打至OFF,如下图所示;
9 控制柜模式开关打至AUTO档,如下图所示;
10 示教器处于非单步执行状态,如下图所示;
11 将对应的RI [2] 接通,如下图所示,此时机器人就会运行所设定的宏程序;
这样就可以现实无限循环动作了,并且不需要我们按住使能开关。

END。

FANUC宏程序编程

FANUC宏程序编程

#1131
寫信號
#1032 — 把 32 位 信 號 從 PMC 統 一 輸 出 到用 戶 宏 程 式 的 變數 。 只 能 在
#1035
-99999999~+99999999 的範圍內輸入
#1132 — 把 32 位 信 號 統 一 寫 入 到 用 戶 宏 程 式 的 變 數 。 只 能 在
#1135
#2=1;………………………………….被加數變數的初值
N1 IF[#2GT 10]GOTO 2;…………….當被加數大於 10 時轉移到 N2
#1=#1+#2;…………………………….計算和
#2=#2+#1;…………………………….下一個被加數
GOTO 1;………………………………轉移到 N1
N2 M30;................................................程式結束
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)
宏程式調用(G65)不同於副程式調用(G98),如下所述: ● 用 G65,可以指定引數(數據傳送到宏程式)。M98 沒有該功能。 ● 當 M98 程式段包含另一個 NC 指令(例如。G01.X100.0M98PP)時,在指令執行之後調
用副程式。相反,G65 無條件的調用副程式。 ● M98 程式段包含另一個 NC 指令(例如,G01X100.0M98PP)時在單程序方式中,機床

数控机床宏程序编程实例FANUC

数控机床宏程序编程实例FANUC

数控机床宏程序编程实例相关知识:用户宏程序是以变量的组合,通过各种算术和逻辑运算,转移和循环等命令,而编制的一种可以灵活运用的程序,只要改变变量的值,即可以完成不同的加工和操作。

用户宏程序可以简化程序的编制,提高工作效率。

宏程序可以像子程序一样用一个简单的指令调用。

宏程序分为A、B两类。

在一些较老的数控系统中采用A类宏程序,而现在常用的一些较为先进的数控系统中则采用B类程序。

本书主要介绍B类宏程序。

(一)变量在常规程序中,总是将一个具体的数值赋给一个地址,为了使程序更具有通用性,更加灵活,在宏程序中设置了变量。

1、变量的表示变量由变量符号#和后面的变量号组成:#i(i=1,2,3,…)。

例如#100,#110,#5等。

变量序号可用表达式,但表达式必须放在[ ]中。

例:#5,#109,#[100+#5 ]。

2、变量的引用将跟随在一个地址后的数值用一个变量来代替,即引入了变量。

例:G01 X#100 Z#101 F#102,当#100=25、#101=-30、#102=0.1时,上式即表示为G01 X25 Z-30 F0.1。

①用表达式指定变量,表达式要放在方括号里:G01 X[#1+#2] F#3。

②引用一个未定义变量时,在遇到地址字之前,该变量被忽略。

③要改变被引用变量的符号,在#前加负号G01 X-#1。

3、变量的类型变量分为局部变量、公共变量和系统变量三种。

①局部变量(#1~#33)局部变量是一个在宏程序中局部使用的变量,可以服务于不同的宏程序,在不同的宏程序中局部变量可以赋不同的值,相互之间不影响。

②公共变量(#100~#199,#500~#999)公共变量也叫通用变量,可在各级宏程序中被共同使用,即这一变量在不同程序级中调用时含义相同。

因此,一个宏程序中经计算得到的一个通用变量的数值,可以被另一个宏程序调用。

③系统变量(#1000~)系统变量用来读取和写入各种数控数据项,如当前位置和刀具偏置值,它的值决定于系统的状态。

FANUC 宏程序

FANUC 宏程序

FANUC 宏程序FANUC 宏程序大家都在问宏程序~其实说起来宏就是用公式来加工零件的,比如说椭圆,如果没有宏的话,我们要逐点算出曲线上的点,然后慢慢来用直线逼近,如果是个光洁度要求很高的工件的话,那么需要计算很多的点,可是应用了宏后,我们把椭圆公式输入到系统中然后我们给出Z坐标并且每次加10um那么宏就会自动算出X坐标并且进行切削,实际上宏在程序中主要起到的是运算作用..宏一般分为A类宏和B类宏.A类宏是以G65 Hxx P#xx Q#xx R#xx的格式输入的,而B类宏程序则是以直接的公式和语言输入的和C语言很相似在0i系统中应用比较广.由于现在B 类宏程序的大量使用很多书都进行了介绍这里我就不再重复了,但在一些老系统中,比如法兰克OTD系统中由于它的MDI键盘上没有公式符号,连最简单的等于号都没有,为此如果应用B类宏程序的话就只能在计算机上编好再通过RSN-32接口传输的数控系统中,可是如果我们没有PC机和RSN-32电缆的话怎么办呢,那么只有通过A类宏程序来进行宏程序编制了,下面我介绍一下A类宏的引用;A类宏是用G65 Hxx P#xx Q#xx R#xx或G65 Hxx P#xx Qxx Rxx格式输入的xx的意思就是数值,是以um级的量输入的,比如你输入100那就是0.1MM~~~~~.#xx就是变量号,关于变量号是什么意思再不知道的的话我也就没治了,不过还是教一下吧,变量号就是把数值代入到一个固定的地址中,固定的地址就是变量,一般OTD系统中有#0~~~#100~#149~~~#500~#531关闭电源时变量#100~#149被初始化成“空”,而变量#500~#531保持数据.我们如果说#100=30那么现在#100地址内的数据就是30了,就是这么简单.好现在我来说一下H代码,大家可以看到A类宏的标准格式中#xx和xx都是数值,而G65表示使用A类宏,那么这个H就是要表示各个数值和变量号内的数值或者各个变量号内的数值与其他变量号内的数值之间要进行一个什么运算,可以说你了解了H代码A类宏程序你基本就可以应用了,好,现在说一下H代码的各个含义:以下都以#100和#101和#102,及数值10和20做为例子,应用的时候别把他们当格式就行,基本指令:H01赋值;格式:G65H01P#101Q#102:把#102内的数值赋予到#101中G65H01P#101Q#10:把10赋予到#101中H02加指令;格式G65 H02 P#101 Q#102 R#103,把#102的数值加上#103的数值赋予#101G65 H02 P#101 Q#102 R10G65 H02 P#101 Q10 R#103G65 H02 P#101 Q10 R20上面4个都是加指令的格式都是把Q后面的数值或变量号内的数值加上R后面的数值或变量号内的数值然后等于到P后面的变量号中.H03减指令;格式G65 H03 P#101 Q#102 R#103,把#102的数值减去#103的数值赋予#101G65 H03 P#101 Q#102 R10G65 H03 P#101 Q10 R#103G65 H03 P#101 Q20 R10上面4个都是减指令的格式都是把Q后面的数值或变量号内的数值减去R后面的数值或变量号内的数值然后等于到P后面的变量号中.H04乘指令;格式G65 H04 P#101 Q#102 R#103,把#102的数值乘上#103的数值赋予#101G65 H04 P#101 Q#102 R10G65 H04 P#101 Q10 R#103G65 H04 P#101 Q20 R10上面4个都是乘指令的格式都是把Q后面的数值或变量号内的数值乘上R后面的数值或变量号内的数值然后等于到P后面的变量号中.H05除指令;格式G65 H05P#101 Q#102 R#103,把#102的数值除以#103的数值赋予#101G65 H05 P#101 Q#102 R10G65 H05 P#101 Q10 R#103G65 H05 P#101 Q20 R10上面4个都是除指令格式都是把Q后面的数值或变量号内的数值除以R后面的数值或变量号内的数值然后等于到P后面的变量号中.(余数不存,除数如果为0的话会出现112报警)三角函数指令:H31 SIN正玄函数指令:格式G65 H31 P#101 Q#102 R#103;含义Q后面的#102是三角形的斜边R后面的#103内存的是角度.结果是#101=#102*SIN#103,也就是说可以直接用这个求出三角形的另一条边长.和以前的指令一样Q和R后面也可以直接写数值.H32 COS余玄函数指令:格式G65 H32 #101 Q#102 R#103;含义Q后面的#102是三角形的斜边R后面的#103内存的是角度.结果是#101=#102*COS#103,也就是说可以直接用这个求出三角形的另一条边长.和以前的指令一样Q和R后面也可以直接写数值.H33和H34本来应该是TAN 和ATAN的可是经过我使用得数并不准确,希望有知道的人能够告诉我是为什么?开平方根指令:H21;格式G65 H21 P#101 Q#102 ;意思是把#102内的数值开了平方根然后存到#101中(这个指令是非常重要的如果在车椭圆的时候没有开平方跟的指令是没可能用宏做到的.无条件转移指令:H80;格式:G65 H80 P10 ;直接跳到第10程序段有条件转移指令:H81 H82 H83 H84 H85 H86 ,分别是等于就转的H81;不等于就转的H82;小于就转的H83;大于就转的H84;小于等于就转的H85;大于等于就转的H86;格式:G65 H8x P10 Q#101 R#102;将#101内的数值和#102内的数值相比较,按上面的H8x的码带入H8x中去,如果条件符合就跳到第10程序段,如果不符合就继续执行下面的程序段.用户宏程序能完成某一功能的一系列指令像子程序那样存入存储器,用一个总指令来它们,使用时只需给出这个总指令就能执行其功能。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

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;………………………………转移到N1N2 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的无限循环。

宏程序调用和子程序调用之间的差别:宏程序调用(G65)不同于子程序调用(G98),如下所述:●用G65,可以指定自变量(数据传送到宏程序)。

M98没有该功能。

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

G01.X100.0M98P P)时,在指令执行之后调用子程序。

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

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

相反,G65机床不停止。

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

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

G65P-L -(自变量指定);P:要调用的程序;L:重复次数;自变量:数据传递到宏程序自变量指定Ⅰ地址变量号地址变量号地址变量号A #1 I #4 T #20B #2 J #5 U #21C #3 K #6 V #22D #7 M #13 W #23E #8 Q #17 X #24F #9 R #18 Y #25H #11 S #19 Z #26地址G,L,N,O和P不能在自变量中使用不需要指定的地址可以省,对于省的地址的局部变量为空地址不需要按字母顺序指定。

但应符合字地址的格式。

I,J和K需要按字母的顺序指定自变量指定ⅡA #1 K3 #12 J7 #23B #2 I4 #13 K7 #24C #3 J4 #14 I8 #25I1 #4 K4 #15 J8 #26J1 #5 I5 #16 K8 #27K1 #6 J5 #17 I9 #28I2 #7 K5 #18 J9 #29J2 #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;G90G92X0Y0Z100.0;G65P9100X100Y50R30Z-50F500I100A0B45H5;M30被调用的宏程序:O9100;#3=#4003;........................... 储存03组的G代码G81Z#26R#18F#9K0;........(注)钻孔循环;注:也可以使用L0IF[#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;...........................孔数-1END 1;G#3G80;...............................返回原始状态G代码M99;变量的含义:#3:储存03组的G代码;#5:下个孔的X坐标:#6:下个孔的Y坐标摸态调用G66G66P-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接口信号的系统变量:(参数N0.6001#0(MIF)=0时)变量号功能#1000—#10 15#1032 把16位信号从PMC送到用户宏程序,变量#1000到#1035用于按位读取信号,变量#1032,用于一次读取16位信号#1100—#11 15#1132 把32位信号从用户宏程序送到PMC。

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

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

注意,#113 3的值为-99999999到+99999999(参数N0.6001#0(MIF)=1时)变量号功能#1000~#1 301 把32位信号从PMC送到用户宏程序,变量#1000到#1031用于按位读取信号#1100—#1131把32位信号从用户宏程序送到PMC。

变量#1100到#1131用于按位写信号#1032—# 1035 把32位信号从PMC统一输出到用户宏程序的变量。

只能在-99999999~+99 999999的范围内输入#1132—# 1135 把32位信号统一写入到用户宏程序的变量。

只能在-99999999~+99999999的范围内指定自动运行控制(#3003)#3003 单程序段辅助功能的完成0 有效等待1 无效等待2 有效不等待3 无效不等待当电源接通时,该变量的值为0。

相关文档
最新文档