没有合适的资源?快使用搜索试试~ 我知道了~
宏程序编程[归纳].pdf
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 20 浏览量
2021-10-13
03:12:45
上传
评论
收藏 750KB PDF 举报
温馨提示
试读
36页
宏程序编程[归纳].pdf
资源推荐
资源详情
资源评论
第五章 宏程序编程
实训要点:
熟悉 FANUC系统宏程序编程的基本指令;
掌握常用的几个宏程序应用范例
第一节 宏程序编程概述
宏程序编程简单地解释就是利用变量编程的方法。
在本书第二章中介绍的数控指令,其指令代码的功能是固定的,使用者只需 ( 只能 ) 按照
指令规定的参数编程。但有时候这些指令满足不了用户的需求,数控系统因此提供了宏程序
编程功能,利用数控系统提供的变量、数学运算功能、逻辑判断功能、程序循环功能等功能,
来实现一些特殊的用法。宏程序编程实际上是数控系统对用户的开放,在数控系统的平台上
进行二次开发,当然这里的开放和开发都是有条件和有限制的。
宏程序与普通程序存在一定的区别,认识和了解这些区别,将有助于宏程序的学习理解
和掌握运用,表 5-1 为宏程序和普通程序的简要对比。
表 5-1 宏程序和普通程序的简要对比
普通程序 宏程序
只能使用常量 可以使用变量,并给变量赋值
常量之间不可以运算 变量之间可以运算
程序只能顺序执行,不能跳转 程序运行可以跳转
宏程序编程的技术特点和应用领域
手工编程是数控编程的基础,在手工编程中使用宏程序编程。其最大特点就是将有规律
的形状或尺寸用最短的程序段表示出来,编写出的程序非常简洁,逻辑严密,通用性强。
任何数控加工只要能够用宏程序完整地表达,即使再复杂,其程序篇幅都比较精炼,任
何一个合理、优化的宏程序,极少会超过 60 行,换算成字节数,至多不过 2KB。即使是最廉
价的机床数控系统,其内部程序存储空间也完全容纳得下任何复杂的宏程序。
为了对复杂的加工运动进行描述,宏程序必然会最大限度地使用数控系统内部的各种指
令代码,例如直线插补 G01指令和圆弧插补 G02/G03指令等。因此机床在执行宏程序时,数
控系统的计算机可以直接进行插补运算,且运算速度快,再加上伺服电动机和机床的迅速响
应,使得加工效率极高。
宏程序的技术特点,使其特别适宜机械零件的批量加工。
机械零件的形状主要是由各种凸台、凹槽、圆孔、斜平面、回转面等组成,很少包含不
规则的复杂曲面,构成其的几何因素无外乎点、直线、圆弧,最多加上各种二次圆锥曲线 ( 椭
圆、抛物线、双曲线 ) ,以及一些渐开线 ( 常应用于齿轮及凸轮等 ) ,所有这些都是基于三角函
数、解析几何的应用,而数学上都可以用三角函数表达式及参数方程加以表述,因此宏程序
在此有广泛的应用空间,可以发挥其强大的作用。
机械零件绝大多数都是批量生产,在保证质量的前提下要求最大限度地提高加工效率以
降低生产成本,一个零件哪怕仅仅节省 1 秒,成百上千的同样零件合计起来节省的时间就非
常可观了。另外批量零件在加工的几何尺寸精度和形状位置精度方面都要求保证高度的一致
性,而加工工艺的优化主要就是程序的优化,这是一个反复调整、尝试的过程,要求操作者
能够非常方便地调整程序中的各项加工参数 (如刀具尺寸、刀具补偿值、每层切削量、步距、
计算精度、进给速度等 ) 。
宏程序在这方面有很大的优越性,只要能用宏程序来表述,操作者就根本无需触动程序
本身,而只需针对各项加工参数所对应的自变量赋值做出个别调整,就能迅速的将程序调整
到最优化的状态。
如果使用 CAD/CAM软件编制机械零件的批量加工程序,前面提到的加工参数,只要其中
一项或几项发生变化, 再智能的 CAD/CAM软件也要根据变化后的加工参数重新计算刀具轨迹,
再经后处理生成程序,这个过程繁琐且耗时很多。
当然,宏程序也不是无所不能。对于主要由大量不规则复杂曲面构成的模具成型零件,
特别是各种注塑模、压铸模等型腔类模具的型芯、型腔和电极,以及汽车覆盖件模具的凸模、
凹模等, 由于从设计、 分析到制造的整个产业链在技术层面及生产管理上都是通过以各种 CAD
/CAM软件为核心 ( 还包括 PDM、CAE等) 的纽带紧密相联的,从而形成一种高度的一体化和关
联性,无论从哪个角度来看,此类零件的数控加工程序几乎百分之百地依赖各种 CAD/CAM软
件来编制,宏程序在这里的发挥空间是非常有限的。
第二节 宏程序基础 (FANUC Oi 系统)
FANUC 0i 系统提供两种用户宏程序,即用户宏程序功能 A 和用户宏程序功能 B。
由于用户宏程序功能 A 的宏程序需要使用“ G65Hm”格式的宏指令来表达各种数学运算和
逻辑关系,极不直观,且可读性非常差,因而导致在实际工作中很少人使用它。由于绝大部
分的 FANUC系统都支持用户宏程序功能 B,本书篇幅有限, 只介绍用户宏程序功能 B 的相关知
识。
一.变量
普通加工程序直接用数值指定 G 代码和移动距离;例如: G01 和 X100.0 。
使用用户宏程序时,数值可以直接指定或用变量指定,当用变量时,变量值可用程序或
由 MDl 设定或修改。例如:
#1=#2+100;
G01X#1 F80 ;
1.变量的表示
宏程序的变量是用变量符号“ #”和后面的变量号指定。例如: #2
表达式可以用于指定变量号,这时表达式必须封闭在括号中。例如: #1[#2+#41-15]
2.变量的类型
变量根据变量号可以分成四种类型。
表5-2 变量类型
变量号 变量类型 功能
#0 空变量 该变量总是空,没有值能赋给该变量。
#1~#33 局部变量 局部变量只能用在宏程序中存储数据,例如,运算结果。当断电时,局
部变量被初始化为空。调用宏程序时,自变量对局部变量赋值。
#100~#199
#500~#999
公共变量 公共变量在不同的宏程序中的意义相同。当断电时,变量 #10~#199 初
始化为空。变量 #500~ #999 的数据保存,即使断电也不丢失。
#1000以上 系统变量 系统变量用于读和写 CNC 的各种数据, 例如, 刀具的当前位置和补偿值。
变量从功能上主要可归纳为两种,即:
系统变量 (系统占用部分 ),用于系统内部运算时各种数据的存储。
用户变量,包括局部变量和公共变量,用户可以单独使用,系统作为处理资料的一部分。
3.变量值的范围
局部变量和公共变量可以为 0 值或下面范围中的值:
-10
47
到 10
-29
或10
-29
到10
47
如果计算结果超出有效范围,则触发程序错误 P/S 报警 No.111 。
4. 小数点的省略
当在程序中定义变量值时,小数点可以省略。例:当定义 #1=123;变量 #1的实际值是
123.000。
5. 变量的引用
在地址后指定变量号即可引用其变量值。当用表达式指定变量时,要把表达式放在括号
中。例如: G01 X[#1+#2] F#3 ;
被引用变量的值根据地址的最小设定单位自动地舍入。例如:当系统的最小输入增量为
0.001mm 单位,指令 G00X#1 ,并将 12.3456 赋值给变量 #1,实际指令值为 G00X12.346; 。
改变引用变量的值的符号,要把负号( -)放在 #的前面。例如: G00X - #1;
当引用未定义的变量时,变量及地址字都被忽略。例如:当变量 #1的值是 0,并且变量 #2
的值是空时, G00 X#1 Y#2 ;的执行结果为 G00X0 ;。
注意: 从这个例子可以看出, 所谓“变量的值是 0”与“变量的值是空”是两个完全不同
的概念,可以这样理解: “变量的值是 0”相当于“变量的数值等于 0”,而“变量的值是空”
则意味着“该变量所对应的地址根本就不存在,不生效”。
不能用变量代表的地址符有:程序号 O,顺序号 N,任选程序段跳转号/。例如以下情况
不能使用变量: O#11; /O#22 G0 X100.0 ; N#33 Y200.0 ;
另外,使用 IS0 代码编程时,可用“ #”代码表示变量,若用 EIA 代码,则应用“ &”代
码代替“ #”代码,因为 EIA 代码中没有“ #”代码。
二. 系统变量
系统变量用于读和写 NC 内部数据,例如,刀具偏置值和当前位置数据。但是,某些系统
变量只能读。系统变量是自动控制和通用加工程序开发的基础,在这里仅介绍与编程及操作
相关性较大的系统变量部分。
表 5-3 FANUC 0i 系统变量一览表
变量号 含 义
#1000~#l015 ,#1032 接口输入变量
#1100~#1115,#1132,#1133 接口输出变量
#10001~#10400,#l1001 ~#11400 刀具长度补偿值
#12001~#12400,#13001~#13400 刀具半径补偿值
#2001~#2400 刀具长度与半径补偿值 ( 偏置组数≤ 200时)
#3000 报警
#3001,#3002 时钟
#3003,#3004 循环运行控制
#3005 设定数据 (SETTING值 )
#3006 停止和信息显示
#3007 镜像
#3011,#3012 日期和时间
#3901,#3902 零件数
#4001~#4120,#4130 模态信息
#5001~#5104 位置信息
#5201~#5324 工件坐标系补偿值 ( 工件零点偏移值 )
#7001~#7944 扩展工件坐标系补偿值 ( 工件零点偏移值 )
1. 刀具补偿值
用系统变量可读和写刀具补偿值。通过对系统变量赋值,可以修改刀具补偿值。
表 5-4 FANUC 0i 刀具补偿存储器 C的系统变量
补偿号
刀具长度补偿 (H) 刀具半径补偿 (D)
几何补偿 磨损补偿 几何补偿 磨损补偿
1
2
,,
24
,,
400
#11001(#2201)
#11002(#2202)
,,
#11024(#2224)
,,
#11400
#10001(#2001)
#10002(#2002)
,,
#10024(#2024)
,,
#10400
#13001
#13002
,,
#13024
,,
#13400
#12001
#12002
,,
#12024
,,
#12400
在 FANUC 0i 系统中,刀具补偿分为几何补偿和磨损补偿,而且长度补偿和半径补偿也是
分开的。刀具补偿号可达 400 个,理论上数控系统支持控制达 400 把刀的刀库。
当刀具补偿号≤ 200 时( 一般情况也的确如此 ) ,刀具长度补偿 (H) 也可使用 #2001~#2400。
刀具补偿值的系统变量,在宏程序编程中,可以这样使用:
假设有一把 Φ10mm的立铣刀,在机床上刀号为 10 号刀,刀具半径补偿 (D) 为 5.0 ,即
#130lO=5.0 ;刀具半径补偿中的磨损补偿为 0.02 ,即 #12010=0.02 。那么在应用宏程序编写
加工程序时,就可以有以下形式的描述:
#2=#13010 ;把 lO 号刀的半径补偿值赋值给变量 #2,即 #2=5.0 。
#3=#12010 ;把 lO 号刀的半径补偿值中的磨损补偿值赋值给变量 #3,即 #3=0.02 。
在程序中,调用 #2 就可以理解为对刀具的识别,设置和调整磨损补偿值 (#3) 则可以控制
10 号刀铣削零件的尺寸了。
2. 模态信息
正在处理的当前程序段之前的模态信息可以从系统变量中读出。
表 5-5 FANUC 0i 模态信息的系统变量
变量号 功 能 组号 变量号 功 能 组号
#4001
#4002
#4003
#4004
#4005
#4006
#4007
#4008
#4009
#4010
#4011
#4012
#4013
G00,G01,G02,G03,G33
G17,Gl8,Gl9
G90,G91
G94,G95
G20,G21
G40,G41,G42
G43,G44,G49
G73,G74,G76,G80~G89
G98,G99
G50,G51
G65,G66,G67
G96,G97
( 组 Ol)
( 组 02)
( 组 03)
( 组 04)
( 组 05)
( 组 06)
( 组 07)
( 组 08)
( 组 09)
( 组 10)
( 组 11)
( 组 12)
( 组 13)
#4022
#4102
#4107
#4109
#4111
#4113
#4114
#4115
#4119
#4120
#4130
待定
B代码
D代码
F代码
H代码
M代码
顺序号
程序号
S代码
T代码
P代码 ( 现在选择的附
加工件坐标系 )
( 组 22)
#4014
#4015
#4016
,,
G54~G59
G61~G64
G68,G69
,,
( 组 14)
( 组 15)
( 组 16)
注: l .P 代码为当前选择的附加工件坐标系。
2.当执行 #1=#4002 时,在 #1 中得到的值是 l7 ,18 或 19。
3.系统变量 #4001~#4l20 不能用于运算指令左边的项。
4.模态信息不能写,只能读。如果阅读模态信息指定的系统变量为不能用的 G 代码时,系统则发出程
序错误 P/S 报警。
3. 当前位置信息
FANUC 0i 系统中当前位置信息的系统变量见表 5-6 。
表 5-6 FANUC 0i 当前位置信息的系统变量
变量号 位置信息 相关坐标系
移动时的
读操作
刀具补偿值
( 长度、半径补偿 )
#5001
#5002
#5003
#5004
X轴程序段终点位置 (ABSIO)
Y轴程序段终点位置 (ABSIO)
Z轴程序段终点位置 (ABSIO)
第4轴程序段终点位置 (ABSIO)
工件坐标系 可以
不考虑刀尖位置
( 程序指令位置 )
#5021
#5022
#5023
#5024
X轴当前位置 (ABSMT)
Y轴当前位置 (ABSMT)
Z轴当前位置 (ABSMT)
第4轴当前位置 (ABSMT)
机床坐标系 不可以
考虑刀具基准点位置
( 机床坐标 )
#5041
#5042
#5043
#5044
X轴当前位置 (ABSOT)
Y轴当前位置 (ABSOT)
Z轴当前位置 (ABSOT)
第4轴当前位置 (ABSOT)
工件坐标系 不可以
考虑刀具基准点位置
( 与位置的绝对坐标显示相同 )
#5061
#5062
#5063
#5064
X轴跳跃信号位置 (ABSKP)
Y轴跳跃信号位置 (ABSKP)
Z轴跳跃信号位置 (ABSKP)
第4轴跳跃信号位置 (ABSKP)
工件坐标系 可以 已考虑刀具基准点位置
#5081
#5082
#5083
#5084
X轴刀具长度补偿值
Y轴刀具长度补偿值
Z轴刀具长度补偿值
第4轴刀具长度补偿值
不可以 已考虑
#5101
#5102
#5103
#5104
X轴伺服位置补偿
Y轴伺服位置补偿
Z轴伺服位置补偿
第4轴伺服位置补偿
不可以 已考虑
注: l .ABSIO:工件坐标系中,前一程序段终点坐标值。
ABSMT:机床坐标系中,当前机床坐标位置。
ABSOT :工件坐标系中,当前坐标位置。
ABSKP :工件坐标系中, G31程序段中跳跃信号有效的位置。
2 .在 G31(触发功能 ) 程序段中,当触发信号接通时的刀具位置存储在变量 #5061~ #5064 中。当 G31程序
段中的触发信号不接通时,这些变量存储指定程序段的终点值。
剩余35页未读,继续阅读
资源评论
cyh76339129
- 粉丝: 1
- 资源: 14万+
下载权益
C知道特权
VIP文章
课程特权
开通VIP
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功