FANUC0i系统_宏程序
FANUC 0I数控车床的宏程序编制

FANUC 0I数控车床的宏程序编制摘要:用户宏程序是提高数控车床性能的一种特殊功能,它是使用变量来代替程序中的功能代码或地址值面编制的加工程序。
这些变量可同因数一样进行逻辑运算,因而可以使复杂的程序大大简化。
关键词:宏程序、宏指令、非圆二次曲线、变量Macro Programming of CNC Lathe with FANUC oi SystemAbetract: User macro programs are special functions to improve the performance of CNC lathe which replaces the functional codes or addresses with variables. These variables can do logical operations like the factors so that they can simplify the complex programs effectively. Keywords:macro program,macroinstruction,non-circular quadratic curves,variable0、引言随着我国机械行业的飞速发展,数控加工技术在机械制造业中得到了越来越广泛的运用,很多企业都引进了数控机床设备。
用户在使用数控机床设备加工工件时,只需按照各种数控编程指令的格式编程即可。
通用的数控系统在处理插补和伺服时都是采用边插补边控制伺服的方式。
由于非圆曲线形状较为复杂,在插补时需要处理的数据量大,同时响应速度的要求较高,因此,一般的数控系统只有直线插补和圆弧插补两种插补功能,并不具备其它曲线的插补功能。
在传统的CNC编程时有时这些指令满足不了用户的要求,入加工椭圆、抛物线、双曲线等,这时就可使用用户宏程序功能,用户可以根据需要自己扩展数控系统的功能。
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-0i系统下螺旋槽宏程序的

参考文献: [1] 陈海舟. 数控铣削加工宏程序及应用实例[M]. 北京:机械工
业出版社,2007.
FANUC- 0i System based on Macro Program of Spiral Groove
ZHANG Bin (Jiangsu zhangjiagang vocational education center,Zhangjiagang Jiangsu 215600,China)
52
《装备制造技术》2012 年第 12 期
表 1 实例参考程序
O1000; N10 G17 G94 G54 G90 G40 G49; N20 M06 T1; N30 G00 X0 Y0; N40 G00 G43 H1 Z100; N50 M03 S2000; N60 G00 X0 Y60; N70 G00 Z2 M08; N80 G01 Z- 5 F50; N90 G01 Y37.75 F200; N100 #1=450; N110 WHILE [#1GE0] DO1; N120 #2=0.035*#1+22; N130 #3=#2*COS[#1]; N140 #4=#2*SIN[#1]; N150 G01 X#3 Y#4 F200; N160 #1=#1- 3; N170 END1; N180 G00 Z100; N190 G00 X0 Y0; N200 M30;
中图分类号:1672- 545X(2012)12- 0052- 02
37.75 #4 37.75
在数控编程中,常见的编程方法有手动编程和自 动编程。手动编程在院校教学中应用的较多,因为手 动编程是编程的基础,需熟练掌握才能为今后的自动 编程打下基础,而自动编程则在企业生产中应用较 广,主要是为了提高加工精度和生产效率,以便获得 更多的经济利润。手动编程不仅可以实现简单的轮廓 编程,如直线、圆构成的轮廓,还可以实现二次函数曲 线轮廓编程,如:椭圆、抛物线、双曲线构成的轮廓。上 述轮廓编程比较常见,那对于螺旋槽这样的宏程序又 是怎样编程的呢?现通过实例来介绍 FANUC 数控系 统螺旋槽宏程序的编制。零件图尺寸及实体模型,如 图 1 所示,函数方程为 R = 0.035×a + 22。
FANUC 0i-MC系统加工中心A或铣床宏程序

FANUC-0i-MC 系统宏程序虽然子程序对编制相同的加工程序非常有用,但用户宏程序由于允许使用变量、算术和逻辑运算及条件转移,使得编制同样的加工程序更简便。
(一)变量 1.变量的表示变量用变量符号(#)和后面的变量号指定,如:#1;表达式可以用于指定变量号,此时表达式必须封闭在括号中,如:#[#1+#2-12]。
变量号可用变量代替,如#[#3],设#3=1,则#[#3]为#1。
2.变量的类型变量根据变量号可以分成四种类型,具体见表1-1。
表1-1 变量的类型在地址后指定变量号即可引用其变量值。
当用表达式指定变量时,要把表达式放在括号中。
如:G01 X[#1+#2] F#3;改变引用变量值的符号,要把负号“-”放在#的前面,如:G00 X -#1;当引用未定义的变量时,变量及地址字都被忽略,如:当变量#1的值是0,并且变量#2的值是空时,G00 X#1 Y#2的执行结果为G00 X0。
在编程时,变量的定义、变量的运算只允许每行写一个(见表1-2),否则系统报警。
表1-2 变量的正确和错误编程方法对比变量的算术和逻辑运算见表1-3。
表1-3 算术和逻辑运算1.上取整和下取整CNC 处理数值运算时,若操作后产生的整数绝对值大于原数的绝对值时为上取整;若小于原数的绝对值为下取整。
对于负数的处理应注意。
如:#1=1.2,#2=-1.2,则#3=FUP[#1]→#3=2;#3=FIX[#1]→#3=1;#3=FUP[#2]→#3=-2;#3=FIX[#2]→#3=-1。
2.运算次序函数→乘和除运算(*、/、AND )→加和减运算(+、-、OR 、XOR )。
3.括号嵌套括号(方括号)用于改变运算次序。
括号可以使用5级,包括函数内部使用的括号。
圆括号用于注释语句。
如:#1=SIN[[[#2+#3]*#4+#5]*#6] (3重括号) 4.运算符运算符见表1-4。
表1-4 运算符5.(1)# i=ASIN[# j]当参数No.6004#0设为“0”时,90°~270°;当参数No.6004#0设为“1”时,-90°~90°。
FANUC系统宏程序编程

本系统宏程序体系采用FANUC系统宏程序B方式实现一变量普通加工程序直接用数值指定G代码和移动距离;例如,GO1和X100.0。
使用用户宏程序时,数值可以直接指定或用变量指定。
当用变量时,变量值可用程序或用MDI面板上的操作改变。
#1=#2+100G01 X#1 F300说明:变量的表示计算机允许使用变量名,用户宏程序不行。
变量用变量符号(#)和后面的变量号指定。
例如:#1表达式可以用于指定变量号。
此时,表达式必须封闭在括号中。
例如:#[#1+#2-12]变量的类型变量根据变量号可以分成四种类型#0-#49 局部变量局部变量只能用在宏程序中存储数据,例如,运算结果.当断电时,局部变量被初始化为0.调用宏程序时,自变量对局部变量赋值,#50-#499 公共变量公共变量在不同的宏程序中的意义相同.当断电时, 公共变量初始化为0.目前版本中,某些公众变量被赋予特殊意义(系统变量),用于描述CNC运行时各种数据的变化,这些变量包括:#449用于指明固定循环退刀模式(G98,G99), 如在G99方式下,#449变量为1;如在G98方式下,#449变量为-1.#450用于指明当前程序段处于绝对坐标编程模式(G90)还是相对坐标编程模式(G91).如在G90方式下,#450变量为1;如在G91方式下,#450变量为-1.#451,#452,#453,#454用于存储刀具当前位置(X,Y,Z,A轴)在后期的版本中,将会安排专门的空间作为系统变量区.变量值的范围局部变量和公共变量在系统内采用浮点数方式存储小数点的省略当在程序中定义变量值时,小数点可以省略。
例:当定义#1=123;变量#1的实际值是123.000。
变量的引用为在程序中使用变量值,指定后跟变量号的地址。
例如:G01X#1+#2F#3或者G01X[#1+#2]F#3限制程序号,顺序号和任选程序段跳转号不能使用变量。
例:下面情况不能使用变量:0#1;/#2G00X100.0;N#3Y200.0;二算术运算和逻辑运算置换#I=#j算术运算加:#I=#j+#k,减:#I=#j-#k,乘:#I=#j*#k,除:#I=#j/#k。
数控FANUC系统宏程序及教程

宏程序设计宏程序与子程序类似,对编制相同加工的操作可以使程序简化.同时宏程序中可以使用变量,算术和逻辑运算及转移指令,还可以方便地实现循环程序设计。
使相同加工操作的程序更方便,更灵活。
本章以FANUC系统为例介绍宏程序设计的内容。
12.1 变量的定义宏程序中使用的变量与日常生活中使用的变量不同,变量用符号“#”后跟变量的变量号指定。
变量可分为四种类型。
1. 空变量#0为空变量,该变量不能赋值。
2. 局部变量#1~#33为局部变量,局部变量只能在宏程序中存储数据。
当断电时局部变量被初始化为空,调用宏程序时,自变量对局部变量赋值。
局部变量的数值范围10-29~1047或-1047~-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。
4. 系统变量#1000~为系统变量,系统变量用于读和写CNC运行时的各种数据,如刀具的当前位置和补偿值等。
5. 变量与地址(自变量)的对应关系系统可用两种形式的自变量指定,表12-1为自变量指定I的自变量与变量的对应关系。
表12-2为自变量指宾II的自变量与变量的对应关系。
表12-1 自变量指定I的变量对应关系地址(自变量)变量号地址(自变量)变量号地址(自变量)变量号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在自变量指定I中,G、L、O、N、P不能用,地址I、J、K必须按顺序使用,其它地址顺序无要求。
基于FANUC 0i数控系统宏程序应用研究

2、宏 程 序 与 普 通 程 序 的 对 比
通常所讲 的数控指 令是 指I0代码指令 编程 , s 即每个代码 的功 部 的各 种 指 令 代码 , 如 圆 弧插 补 或螺 旋 插补 指 令 等 。 执 行 宏程 序 例 在
能 是 定 的 , 系 统 生 产 厂 家 开 发 , 用 者 只 需 ( 能 ) 照规 定 编 时 , 系统 可 以直 接 识别 这些 指 令进 行插 补运 算 , 由 使 只 按 数控 且运 算速 度极 快 , 程 即 可 。 有 时 候 这 些 指 令 满 足 不 了用 户 的 需 要 , 统 因 此提 供 了 再 加 上伺 服 电动 机 和 机 床 的迅 速 响 应 , 得 加 工 效率 极 高 。 但 系 使 用户 宏程 序 功 能 , 用 户 可 以 对 数 控 系 统 进 行 … 定 的 功 能 扩 展 , 使 实 际上 是 数 控 系 统 对 用 户 的 开放 , 可 视为 用 户 利 用 数 控 系 统 提 供 的 也 而 对 于 CAD C / AM软 件 生 成 的 程 序 , 况 则要 复 杂 的 多 。 情 首先, CAD/CAM软 件 生 成 的 了路 轨迹 生 成 不 够优 化 合 理 。 J 工上 , 数控 系 统 的 平 台 上 进 行 二 次开 发 , 然 这 的开 放 和 开 发 c I C M软件 中, 在 当 ) A A / 生成刀路轨迹的实质就是在允许的误差值范同内滑 都是有条件 和有限制 的。 每条路径用直线去逼近曲面的过程。 这样任意曲面 自然都能对付 , 日 而 ・ 的 区 别 , 识 和 』解 这 些 区 也 是完 全合理 的做 法 , 是枉 加工 规则 曲面 (『 定 认 , 但 女 1球面 ) , 艺 就 …现 l 时 工 卜 别, 将 ‘ r宏 序 的学 >押 解 和 掌 握运 用 , 1 1 E, 宏程 序 和 r ‘ 题 , 助 J 表 .为 jL }r I 些 由丁 C D C M ̄件 构造 曲 面的底层 数学 模 型所 限 , H A /A  ̄ 也 I 黹通程序 的简要对 比。
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。
变量的引用为在程序中使用变量值,指定后跟变量号的地址。
当用表达式指定变量时,要把表达式放在括号中。
例如:G01X[#1+#2]F#3;被引用变量的值根据地址的最小设定单位自动地舍入。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
O7000;(子程序) … G91 G00 X#24 Y#25 Z0; G01 Z#26 F#9; #100=#18+#26; G00 Z-#100; M99;
表4 变量引数赋值方法
引数 (自变量)
变量
引数 (自变量)
变量
引数 (自变量)
变量
引数 (自变量)
变量
A #1
H #11 R #18 X #24
3、宏变量的类型
根据变量号,宏变量可分1~#33
#100~#199 #500~#999 #1000~#9999
变量类型
功
能
空变量 该变量总是空,没有值能赋给该变量。
局部变量
局部变量只能用在宏程序中存储数据,例 如,运算结果。当断电时,局部变量被初 始化为空。调用宏程序时,自变量对局部 变量赋值。
例: #100,#500,#5,#[#1+#2+10];
2、变量的引用
将跟随在地址符后的数值用变量来代替的过程称为 引用变量。同样,引用变量也可以采用表达式。
例: G01 X#100 Y-#101 F[#101+#103]; 当#100=100.0、#101=50.0、#103=80.0时,上 例即表示为: G0l Xl00.0 Y-50.0 F130;
数控车仿真训练
非圆公式曲线加工
-宏程序法(FANUC0i系统)
一、非圆公式曲线的加工方法 1.非圆公式曲面的加工特点
椭圆曲线
2.非规则曲面的编程方法
(1)自动编程法
(2)宏程序法
宏程序的编程加工,一般是采用厂方所提供的宏程
序(或用户自行开发的宏程序)通过对变量进行赋值及处
理后完成程序的加工任务。 普通加工程序直接用数值指定G代码和移动距离;例
正弦 余弦 正切 反正切
平方根 绝对值 四舍五入 向下取整 向上取整
或OR 异或XOR 与AND
十—二进制转换 二—十进制转换
格式
#i=#j
#i=#j+#k #i=#j-#k #i=#j*#k #i=#j/#k
#i=SIN[#j] #i=COS[#j] #i=TAN[#j] #i=ATAN[#J]/[#k]
6、宏程序使用格式
7、宏程序使用方法
(1)非模态调用(单纯调用) 非模态调用指一次性调用宏主体,即宏程序只在一个程序段
内有效。格式: G65 P(宏程序号)L(重复次数)<指定引数值> 一个引数是一个字母,对应于宏程序中变量的地址,引数后
边的数值赋给宏程序中对应的变量,同一语句可以有多个引数。
O0001;(主程序) … G65 P7000 L2 X100.0 Y100.0 Z-12.0 R-7.0F80.0; G00 X-200.0 Y100.0; … M30;
(3)循环语句 在WHILE 后指定一条件表达式,当条件满足时,执
行WHILE到END之间的程序,(然后返回到WHILE 重新 判断条件,) 不满足则执行END后的下一程序段。
格式:
WHILE [条件表达式]DOm ;
…
ENDm ;
例:O0002 WHILE[#3LE90.0]DO2;
…;
END 2; M99;
全局变量
公共变量在不同的宏程序中的意义相同。
当断电时,变量#100-#199 初始化为空, 变量#500-#999 的数据保存,即使断电也 不丢失。
系统变量
系统变量用于读和写CNC 运行时的各种 数据,例如,刀具的当前位置和补偿值。
4、算术和逻辑运算(见表2)
表2 算术和逻辑运算
函数
赋值
求和 求差 乘积 求商
如,G01X100.0Z2.0。 使用用户宏程序时,数值可以直接指定或用变量指
定。当用变量时,变量值可用程序或用MDI 面板上的 操作改变。
二、宏程序编程 1、变量的表示
一个变量由符号“#”和变量序号组成,如:#i (i=1, 2,3,…),此外,变量还可以用表达式进行表示,但 其表达式必须全部写入方括号“[ ]”中。
三、宏程序编程实例
加工如图1所示椭圆零件。毛坯尺寸 62mm棒料, 材料为45#钢。
图1
计算方法一:
1、椭圆参数方程
z2 a2
x2 b2
1
式中:a—长轴半径; b—短轴半径。
表3 比较运算符
运算符
含义
EQ 相等equal to (=)
NE 不等于not equal to (≠)
GT 大于Greater than (>)
GE 大于等于greater than or equal to(≥)
LT 小于less than (<)
LE 小于等于less than or equal to (≤)
5、宏程序指令
(1)无条件转移
格式:GOTO n; n——(转移到的程序段)顺序号
例:GOTO1;
GOTO#10;
(2)条件分支IF语句
在IF后指定一条件,当条件满足时,转移到顺序号为n的程
序段,不满足则执行下一程序段。
格式:
例:O0002(宏程序)
IF [表达式] GOTOn;
N5 IF
…;
[#3GT90.0]GOTO10; …;
B
#2
I
#4
S #19 Y #25
C #3
J
#5
T #20 Z #26
D #7
K #6 U #21
E
#8
M #13 V #22
F
#9
Q #17 W #23
(2)模态调用
模态调用功能近似固定循环的续效作用,在调用后,机床在指定的多 个位置循环执行宏程序。用G67指令取消模态调用。格式:
G66 P(宏程序号)L(重复次数)<指定引数>;此时机床不动 X_Y_;机床在这些点开始加工 X_Y_; … G67;停止宏程序调用
#i=SQRT[#j] #i=ABS[#j] #i=ROUND[#j] #i=FIX[#j] #i=FUP[#j]
#I=#J OR #K #I=#J XOR #K #I=#J
#I=BIN[#J] #I=BCD[#J]
备注
角度用十进制度表示。 90°30′表示为90.5 度。
逻辑运算用二进制数按位操作 用于转换发送到PMC的信号或从PMC 接收的 信号
Nn …; n:顺序号(1~99999) GOTO5;
N10 M99;
①条件表达式 条件表达式由两变量或一变量一常数中间夹比较运算 符组成,条件表达式必需包含在一对方括号内。条件表达 式可直接用变量代替。 ②比较运算符 比较运算符由两个字母组成,用于比较两个值,来判 断它们是相等,或一个值比另一个小或大。注意不能用不 等号(见表3)。