~ Constructi on about on the App1icati on of Macro Pr09ram in the NC of Millin9 Processin9 曾小虎许伯勇 Zeng Xiaohu Xu Boyong (江西生物科技职业学院,江西南昌330200) (Jiangxi Biotech Vocational College,Jiangxi Nanchang,330200) 摘要:数控实际加工中使用宏程序相对来说是一个难点,本文从宏程序的编程原理、宏程序的特点来 讲述FANUC宏程序在数控铣削加工中的应用。 关键词:铣削;变量;数控编程;宏程序 中图分类号:TP39l 文献标识码:A 文章编号:l671-4792一(2011)11.0122—04 Abstract:Using macro program in actual NC process is a relatively diiculfty according to the programming theory and the feature of macro programs,this paper analyses the application of FANUC macro program in NC milling process. Keywords:Milling;Vaffable;NC Process;Macro Programs 0引言 1.1宏程序具有灵活性、通用性和智能性 对于规则曲面的编程来说,使用CAD/CAM软 件编程工作量大,程序庞大,加工参数不易修改。而 数控编程作为数控加工的关键技术之一,其程 序的编制效率和质量在很大程度上决定了产品的加 工精度和生产率。随着我国现代制造技术的发展,数 控机床应用的普及、从事数控加工人员的不断增加, 数控加工越来越受到人们的重视。在我国,有相当多 宏程序则注重把功能参数与编程语言相结合,灵活 的参数设置也使机床具有最佳的工作性能,给予操 作者极大的自由空间。从模块化加工角度看,宏程序 数控铣床(包括加工中心)应用在模具行业,大部分 模具厂都应用CAD/CAM软件,手工编程、宏程序 应用的空间日趋缩小。究其原因就是大家对手工编 程不重视,对宏程序不熟悉。其实手工编程是自动编 具有模块化的思想和物质条件,编程人员只需把零 件信息、加工参数等输入到相应模块的调用语句中, 使编程人员从复杂繁琐的大量重复性的编程工作中 解脱出来。 程的基础,宏程序是手工编程的高级形式,是手工编 程的精髓,也是手工编程的最大亮点和最后堡垒。同 1.2宏程序结构简单、阅读直观、存储方便 自动编程软件生成的程序少则上千行,多则上 时编制简洁合理小容量的数控宏程序,有着非常重 大的现实意义,既能锻炼从业人员的编程能力,又能 解决自动编程在生产实际工作中存在的不足。 1宏程序的特点 10万行,可读性差,存储容量大,一般机床上的内存 容量有限,只能用DNC方式进行在线加工,而DNC 有时受到外界的环境影响不稳定。但宏程序可以弥 补这种不足,它结构严谨、分析方便、可读性好、短小 ]22 精悍,任何合理的、优化的宏程序一般都少于80行, 至多不过3KB的容量。 撑[ 1 2-12]。 2.1.2变量的类型和功能 浅 1-3宏程序加工精度高、加工效率高 自动编程软件生成的数控程序,是用“直线去逼 近曲线曲面因而存在计算误差、后置处理误差,就 必然使加工精度受 影响,还存在大量的刀具路径 ”,变量根据变量号可以分成4种类型,如表一所 示。 表一根据变量号所分的4种变量类型 变量号 变量类型 功能 #0 谈 宏 程 序 .在 数 控 重复现象,使加工效率下降。宏程序能直接调用数 控系统的圆弧插补、螺旋插补等指令,能有效地控制 只能在一个宏程序中使用,例如:运算结果。 抖1-#33 局部变量 当断电时.局部变量被初始化为空。调用宏程 序时,自变量对局部变量赋值。 空 该变量总是空的,没有值能赋给该变量。 铣 销 加 刀具路径,具有运算速度快、加工效率高、加工精度 高等特点。 2宏程序介绍 宏就是用公式来加工零件的,比如说椭圆。如果 没有宏的话,我们要逐点算出曲线上的点,然后慢慢 来用直线逼近。如果是个光洁度要求很高的工件,那 么需要计算很多的点。可是应用了宏后,我们把椭圆 公式输入到系统中,然后给出z坐标,并且每次加 10um那么宏就会自动算出x坐标并且进行切削,实 际上宏在程序中主要起到的是运算作用。宏程序是 以变量的组合,通过各种算术和逻辑运算、转移和循 环等命令,而编制的一种可以灵活运用的程序,只要 改变变量的值,即可以完成不同的加工和操作。宏程序可以简化程序的编制,提高工作效率。宏程序 可以像子程序一样用一个简单的指令调用。 2.1变量 普通加工程序直接用数值指定G代码和移动 距离,例如:G01和X200.0。使用宏程序时,数值可 以直接指定或用变量指定。当用变量时,变量值可 用程序或用MDI面板上的操作进行改变。 2.1.1变量表示 计算机允许使用变量名,用户宏程序不行。变 量用变量符号(撑)和后面的变量号指定,例如: i——(变量号i=O,1,2,3,4……) [表达式]——表达式必须用括号括起来例: #l0o—#199 公共变量 在各宏程序中可以公用的,公共变量在不同的 工 #5O0- ̄999 宏程序中的意义相同。当断电时,变量  ̄100-#199初始化为空。变量#5Oo_#999的数据 中 的 #l00O保存,即使断电也不丢失。 应 一一 系统变量 固定用途变量,系统变量用于读和写CNC运行 用 补偿值等。时各种数据的变化,例如,刀具的当前位置和 2.1.3变量的引用 引用方式:地址字后面指定变量号或表达式。 格式:<地址>撑l、<地址>.≠}1、<地址>[< 表达式>=。 例:F#103,设#103=150则为F150;Z-#1 10,设 撑1 10=250则为Z-250;≠}[撑30],设#30=3则为群3; x[ 24 18 cOsf≠}1]]。 说明: (1)变量不能使用地址O、N。如O挣1;N#3 G01 X0.0 Z0.0。 (2)变量号所对应的变量,对每个地址来说,都 有具体数值范围。 例:#30=100时,则M#30是不允许的。 (3)变量值定义。 在程序中定义时可省略小数点,例:≠}1=123,变 量 1的实际值是123.000。MDI键盘输入时必须输 人小数点,小数点省略时,为机床的最小单位。 2.2算术运算和逻辑运算 表二中列出的运算可以在变量中执行。运算符 右边的表达式可包含常量或由函数或运算符组成的 变量。表达式中的变量州和 可以用常数赋值,左 边的变量也可以用表达式赋值。 - 1 一 表二算术运算和逻辑运算 功能 定义 加法 减法 乘法 2.3.1无条件的转移 各注 格式 #i=#j 朴嘲+桃; #i=井j一#k: #i=#j丰#k: 格式:GOTO n;n为程序的顺序号(1—9999) 如GOTO 99,GOTO#10 除法 #i=#j/#k : 2.3.2条件转移 角度以度指定,90o30’表 示为90.5度。 正弦 反正弦 余弦 反余弦 正切  ̄i=sin[#j]: #i=asin[并j]: #i=cos[抖j]  ̄I=aCOS jJ: #i=tan[g{] 格式:IF[(条件式>]GOTO n 条件式的运算符由两个字母组成,用于两个值 反正切 #i=atan[井j]/[#k] 平方根  ̄i=SQRT[#j]: 取整后的数值的绝对值 绝对值  ̄i=ABS[#j]: 比原来的数值大是称为 舍入  ̄i=ROUNG[#j]: 上取整;反之,称为下取 上取整 #i=FIX[#_j]: 整。 下取整 #i=FUP[#j]: 自然对数 #i=LN j]; 指数函数 #i=EXP[#j]: 或 #i=#jOR掉k: 逻辑运算一位一位地按 异或 #i—jxa腓k: 二进制数执行。 与 ti= ̄jANDl;k: 从BcD转为BIN #i=BfN(#订: 用于与P 的信号交换。 从BIN转为BCD #i=BCD[#j】: 说明: 角度单位、函数SIN、COS、ASIN、ACOS、TAN 和ATAN的角度单位是度,如9O。30’表示为90.5 度。 ARCSIN弹i=ASIN[#j] (1)取值范围如下: 当参数(NO.6004#0)NAT位设为0时,270。~ 90。; 当参数(NO.6004#0)NAT位设为1时,一9O。~ 90。 。 (2)当埘超出一1到1的范围时,发出P/S报警 NO.¨1。 (3)常数可替代变量 ARCCOS#i=ACOS[ ]取值范围从180。~ 0。,当巧超出一1到1的范围时,发出P/S报警 NO.111,常数可替代变量 。 2.3转移与循环 在宏程序中,使用GOTO语句和 语句可以 改变程序的执行方向,转移和循环指令有3种。 ]24 的比较。运算符有: “EQ”表示“一,“NE”表示“≠”,“GT”表示 “>”; “LT”表示“<”,“GE”表示“ ”,“LE”表示 ‘‘S”。 2_3.3循环 格式:WHLE【<条件式>]DO m;(m=l,2,3)… END m 说明: (1)当条件满足时,执行从Do ITI到END m之 间的程序,否则,转到END rfl后的程序段。 (2)省略WHILE语句只有DO rn…END m,则 从DO m到END m之间形成死循环。 (3)嵌套不能多于三级,不能交叉,转移不能进 入循环体。 3宏程序在车削中的应用实例 加工图示的长半轴为36,短半轴为26的椭圆。 加工深度为5mm,加工一个椭圆的内槽,可以通过 改变半径和长度方向的刀补值来进行分层铣削。 椭圆程序代码如下: N010 G54 G90 G40 G49 G80 G17; N020 S1500 M03; N030 G00 X0 YO; N040 G43 Z20.HO1; N050GOZ1: ///\ N2 10… M05; 浅 谈 宏 程 序 在 数 控 铣 销 加 工 中 的 应. 用