一、任务目标
❖掌握变量的概念及运算
❖掌握宏程序的结构及类型
❖掌握简单工件的宏程序编制
❖激发学生的编程热情
二、任务资讯
1) 宏程序的含义
以一组子程序的形式存储并带有变量的程序称为用户宏程序,简称宏程序;调用宏程序的指令称为用户宏程序指令或宏程序调用指令(简称宏指令)。普通的程序字为常量,一个程序只能描述一个几何形状,所以缺乏灵活性和适用性。而在用户宏程序的本体中,我们可以使用变量进行编程,还可以用宏指令对这些变量进行赋值、运算等处理。通过使用宏程序能执行一些有规律变化的动作。FANUC-0i 数控系统的宏程序有A 类和B 类两种,A 类主要用代码实现,B 类不需要代码,相对A 类而言比较直观、便于理解,本项目主要讲解B 类宏程序。
2) 变量
宏程序中的变量在常规的主程序和子程序内,总是将一个具体的数值赋给一个地址。为了使程序具有通用性、灵活性,故在宏程序中设置了变量。
3) 变量的表示
变量用变量符号“#” 和后面的变量号指定,例如#100。表达式也可以用来指定变量号,此时,表达式必须封闭在括号中,例如: # [#1 +#2-12]。
4) 变量的类型及功能
变量的类型及功能见表10-1 (FANUC 数控系统)。
▼表10-1 变量的类型及功能
续表
▼表10-2 变量的赋值(对应) 关系Ⅰ
5) 变量值的范围
局部变量和公共变量可以有0 值或下面范围中的值:-1047 ~-1029或1029 ~1047。
6) 变量的赋值
在程序中对局部变量进行赋值时,可以通过自变量地址对局部变量进行传递。有Ⅰ和Ⅱ两种形式的自变量赋值方法。自变量赋值形式Ⅰ使用了除G,L,O,N 和P 以外的字母,每个字母对应一个局部变量,对应关系见表10-2。
▼表10-3 变量的赋值(对应) 关系Ⅱ
自变量形式Ⅱ使用A,B 和C 各1 次和I,J,K 各10 次对局部变量赋值。自变量Ⅱ用于传递诸如三维坐标值的变量,对应关系见表10-3。
7) 变量的运算
在利用变量进行编程时,变量之间可以进行算术运算和逻辑运算。以FANUC-0i 数控系统为例,其算术运算的功能和格式见表10-4,具体请参阅相应数控系统的编程手册。
▼表10-4 算术运算指令
其逻辑运算的运算符和含义见表10-5。
▼表10-5 逻辑运算符及含义
续表
8) 关于变量运算的几点说明
①上取整和下取整: CNC 处理数值运算时,若操作后产生的整数绝对值大于原数的绝对值,为上取整;反之为下取整。如: #1=1.2,#2 =-1.2,当执行#3 =FUP [#1] 时,#3 =2;#3=FIX [#1] 时,#3=1;#4=FUP [#2] 时,#4=-2;#4=FIX [#2] 时,#4=-1。
②混合运算时的运算顺序: 与一般数学上的定义基本一致。如: #6=COS [ [ [#5+#4]*#3+#2]*#1] ( “[ ]” 最多可以嵌套五级)。
③赋值与变量: 赋值是将数据赋予一个变量。如#1 =0,表示#1 的值是0,“ =” 是赋值号。
④赋值的规律: 赋值号“ =” 两边内容不能随意互换,左边只能是变量,右边可以是表达式、数值或变量;一个赋值语句只能给一个变量赋值;可以多次给一个变量赋值,新变量值将取代原变量(最后赋的值生效)。赋值语句具有运算功能,它的一般形式为: 变量=表达式。赋值运算中,表达式可以是变量自身与其他数据的运算结果,如#1 =#1 +1 表示#1的值为#1 +1。需要强调: “#1 =#1 +1” 形式的表达式可以说是宏程序运行的“原动力”。任何宏程序几乎都离不开这种类型的赋值运算。
9) 程序控制指令
宏程序为实现其灵活编程的功能,具有以下几种控制指令。
①无条件转移指令: 程序段若要实现无条件转移功能,可以用GOTO n 语句。当程序执行到此条语句时,将转移到标有顺序号n 的程序段,n 的取值范围为1 ~99 999。例如: GOTO 10,表示转移到语句标号10 的程序段;GOTO#10 ,表示转移到10 号变量指定的程序段。
②条件转移指令: 条件转移指令的语句格式为
当指定的条件表达式满足时,则转移到标有顺序号n 的程序段;当指定的条件表达式不满足时,则执行下一个程序段。
③循环指令: 循环指令的语句格式为
当指定条件满足时,则执行从DO m 到END m 之间的程序,否则,就转到END m 后的程序段。采用循环指令须知:
a. m=1,2,3,可以多次使用,最多嵌套3 层。
b. 省略WHILE ,则产生从DO 到END 的无限循环。
c. WHILE 比GOTO 处理速度快。
10) 宏程序的调用
①非模态调用( G65 )。在主程序中用G65 指令可以实现子程序的非模态调用,调用格式如下:
其中,P× ×指要调用的子程序号;L × ×为调用次数,默认值为1 ;自变量为主程序中传输到宏程序中的数据。宏程序调用G65 不同于子程序调用M98,用G65 可以指定自变量数据传送到宏程序,M98 没有该功能;当M98 程序段包含另一个NC 指令(例如: G01 X100 M98 PP) 时,在指令执行之后调用子程序,相反,G65 为无条件地调用宏程序;当M98 程序段包含另一个NC 指令(例如: G01 X100 M98 PP) 时,在单程序段方式中机床停止,相反,G65 机床不停止;用G65 改变局部变量的级别,而用M98 不改变局部变量的级别。②模态调用( G66 、G67 )。调用格式如下:
其中,P× × 指要调用的子程序号;L × ×为调用次数,默认值为1;自变量指定是指主程序中输到宏程序中的数据;G67 为取消模态调用。使用G66 格式要注意G66 程序段中不能调用多个程序段;G66 必须在自变量之前指定;指定G67 代码时,其后面的程序段不再执行模态宏程序调用。
③宏程序的结构。宏程序可以分为“主程序” 及被调用的“宏程序”。宏程序本体中,可以用普通NC 指令、变量的NC 指令、计算指令和转移指令等。以字母O 后的程序号为开始,以M99 为结束。例如:
为了使宏程序表达方便,我们在很多情况下采用“一体化” 的程序构成,即没有“主程序” 及被调用的“宏程序” 之分,而是在一个可以独立运行的完整的宏程序中完成所有的动作及指令,包括对各变量赋值等。这种结构的优点是思路相对简单,不易分散、混乱;缺点是在同一个程序中包含对变量的赋值,会使宏程序的“标准化” 程度有所降低,特别在使用加工中心进行大批量、连续生产的情形下,加工参数的调整和程序调用等方面没那么方便(需要直接进入程序内部修改加工参数,而不仅是在主程序中修改加工参数和变量的赋值)。例如:
三、任务实施
1. 椭圆槽加工
任务图纸如图10-1 所示,选用合适的刀具加工如图10-1 所示的工件,其毛坯尺寸为90 mm×90 mm×20 mm,加工深度为2 mm,完成椭圆槽切削加工。
加工准备
(1) 详细阅读工件图,并按照图纸检查坯料的尺寸。
(2) 编制加工程序,输入程序并选择该程序。
(3) 用平口虎钳装夹工件,伸出钳口8 mm 左右,用百分表找正。
(4) 安装寻边器,确定工件零点为坯料上表面的中心,设定可选择工件坐标系。
(5) 选择合适的铣刀并对刀,设定加工相关参数,选择自动加工方式加工工件。
工艺分析及处理
1) 工件图样分析
该工件要求在毛坯为90 mm×90 mm×20 mm 的长方体铝块上加工一个宽度为12 mm 的椭圆槽。材料为硬铝,加工性能较好。精度要求一般,可以靠铣刀的直径保证槽的宽度。由于加工深度较浅,采用直接下刀的方式下刀。
▲图10-1 椭圆槽加工
2) 加工工艺分析
(1) 加工机床的选择。工件毛坯较小,选择VM600 数控铣床加工该工件。
(2) 根据图纸要求选择合适的刀具和切削用量( vc,f,ap);确定工件的加工路线、下刀点、切入点、退刀点,相关刀具卡和工序卡见表10-6 和表10-7。
▼表10-6 刀具卡
▼表10-7 工序卡
3) 基点计算
由于数控系统一般只能实现直线和圆弧插补,而本工件的椭圆槽为平面非圆曲线,对于此类曲线如椭圆、正弦曲线、抛物线等轮廓一般采用直线逼近被加工轮廓的方法,通过公式计算各直线段的终点坐标,最后用G 指令完成直线插补。
该椭圆的参数方程为X=36 ×cosθ,Y=26 ×sinθ,θ 为角度变量,变化范围为0° ~360°,每次变化1°。通过参数方程计算线段终点坐标,用G01 指令进行直线插补,完成椭圆轮廓的走刀。下刀点为(36,0),不采用刀具半径补偿。
4) 编写程序单
5) 输入程序单
6) 模拟、加工、检验
参考程序(铣平面程序略)
注意事项
(1) 使用寻边器确定工件零点时应采用对边分中法。
(2) 应根据加工情况随时调整进给开关和主轴转速倍率开关。
(3) 键槽铣刀的垂直进给量不能太大,约为平面进给量的1/3 ~1/2。
2. 含正弦曲线的外轮廓加工
任务图纸如图10-2 所示,选用合适的刀具加工如图10-2 所示的工件,其毛坯尺寸为90 mm×90 mm×20 mm,加工深度为2 mm,完成正弦曲线的切削加工。
加工准备
(1) 详细阅读工件图,并按照图纸检查坯料的尺寸。
(2) 编制加工程序,输入程序并选择该程序。
(3) 用平口虎钳装夹工件,伸出钳口8 mm 左右,用百分表找正。
(4) 安装寻边器,确定工件零点为坯料上表面的中心,设定可选择工件坐标系。
(5) 选择合适的铣刀并对刀,设定加工相关参数,选择自动加工方式加工工件。
▲图10-2 正弦曲线加工
工艺分析及处理
1) 工件图样分析(www.xing528.com)
该工件要求在毛坯为90 mm×90 mm×20 mm 的长方体铝块上加工图10-2 所示的外轮廓。材料为硬铝,加工性能较好。图中有一段半个周期的正弦曲线,我们采用直线逼近的方法加工该曲线。
2) 加工工艺分析
(1) 加工机床的选择。零件毛坯较小,选择VM600 数控铣床加工该工件。
(2) 根据图纸要求选择合适的刀具和切削用量( vc,f,ap);确定工件的加工路线。刀具卡见表10-8,工序卡见表10-9。
▼表10-8 刀具卡
▼表10-9 工序卡
3) 基点计算
由于数控系统一般只能实现直线和圆弧插补,而本工件的正弦曲线为平面非圆曲线,对于该曲线轮廓一般采用直线逼近被加工轮廓的方法,通过公式计算各直线段的终点坐标,最后用G 指令完成直线插补。
该曲线的参数方程为Y=30 ×sinx,正弦曲线的幅值为30,最小正半周期180°所对应的长度为60 mm,编写正弦曲线轮廓段程序时将半个周期180°平均分成180 份,每份在X 轴上投影的长度为60/180。设变量#1 为当前的角度,变化范围为0° ~180°。设变量#2 为当前的Y 坐标,#2 =30*SIN [#1]。#3 为对应变量#1 在X 轴上投影的长度,#3 =60/180*#1。通过方程计算线段终点坐标,用G01 指令进行直线插补,完成正弦曲线轮廓的走刀。下刀点为(-60,-60),采用刀具半径补偿。
4) 编写程序单
5) 输入程序单
6) 模拟、加工、检验
参考程序(铣平面程序略)
注意事项
(1) 使用寻边器确定工件零点时应采用对边分中法。
(2) 应根据加工情况随时调整进给开关和主轴转速倍率开关。
3. 半球体加工
任务图纸如图10-3 所示,选用合适的刀具加工如图10-3 所示的工件,其毛坯尺寸为90 mm×90 mm×20 mm,完成半球体的切削加工。
本任务中毛坯尺寸较大,而加工球体直径较小,在实际中可以先做从大到小不同直径的圆柱体加工,最后加工半球体,这样可以节省材料。
▲图10-3 半球体加工
加工准备
(1) 详细阅读工件图,并按照图纸检查坯料的尺寸。
(2) 编制加工程序,输入程序并选择该程序。
(3) 用平口虎钳装夹工件,伸出钳口13 mm 左右,用百分表找正。
(4) 安装寻边器,确定工件零点为坯料上表面的中心,设定可选择工件坐标系。
(5) 选择合适的铣刀并对刀,设定加工相关参数,选择自动加工方式加工工件。
工艺分析及处理
1) 工件图样分析
该工件要求在毛坯为90 mm×90 mm×20 mm 的长方体铝块上加工图10-3 所示的半球体。材料为硬铝,加工性能较好。半球的半径为10 mm。
2) 加工工艺分析
(1) 加工机床的选择。工件毛坯较小,选择VM600 数控铣床加工该工件。
(2) 根据图纸要求选择合适的刀具和切削用量( vc,f,ap);确定工件的加工路线。刀具卡见表10-10,工序卡见表10-11。
▼表10-10 刀具卡
▼表10-11 工序卡
3) 基点计算
加工本任务半球体,可以用若干个平行于XY 平面的平面簇与半球相切割,切割所得的交线在XY 平面的投影为一系列直径不相等的圆,而圆的加工用G02 或G03 就可以完成。切割面的位置通过θ 角来控制,设θ 角变量为#1,初始值为0°,终止角为#2,角度为90°,球的半径为#3,刀具半径为#7,对应θ 角刀具实际刀位点(刀具底部中心点) 的X坐标为#5,Y 坐标为0,Z 坐标为#6,根据三角函数关系,可以得出刀位点的X 坐标和Z 坐标分别为#5 =#3*COS [#1] +#7,#6 =#3*SIN[#1]-#3。
本例采用G65 指令调用宏程序,自变量赋值A0 表示#1 =0 为初始角,B90 表示#2 =90为终止角,C10 表示#3 =10 为球体半径,D8 表示#7 =8 表示刀具半径。不采用刀具半径补偿。利用G65 指令调用宏程序,当零件尺寸数据发生变化,例如本任务半球体的半径或刀具半径发生变化时,只需要在主程序里直接修改#3 和#7 的赋值,而不需要修改宏程序,所以该程序使用起来相对比较方便。
4) 编写程序单
5) 输入程序单
6) 模拟、加工、检验
参考程序(铣平面及铣圆柱体程序略)
注意事项
(1) 使用寻边器确定工件零点时应采用对边分中法。
(2) 应根据加工情况随时调整进给开关和主轴转速倍率开关。
4. 轮廓倒角加工
任务图纸如图10-4 所示,选用合适的刀具加工如图10-4 所示的工件,其毛坯尺寸为90 mm×90 mm×20 mm,完成轮廓倒角的切削加工。
▲图10-4 轮廓倒角加工
加工准备
(1) 详细阅读工件图,并按照图纸检查坯料的尺寸。
(2) 编制加工程序,输入程序并选择该程序。
(3) 用平口虎钳装夹工件,伸出钳口8 mm 左右,用百分表找正。
(4) 安装寻边器,确定工件零点为坯料上表面的中心,设定可选择工件坐标系。
(5) 选择合适的铣刀并对刀,设定加工相关参数,选择自动加工方式加工工件。
工艺分析及处理
1) 工件图样分析
该工件要求在毛坯为90 mm×90 mm×20 mm 的长方体铝块上加工图10-4 所示半球体。材料为硬铝,加工性能较好。在图示轮廓上进行C2 倒角加工。
2) 加工工艺分析
(1) 加工机床的选择。工件毛坯较小,选择VM600 数控铣床加工该工件。
(2) 根据图纸要求选择合适的刀具和切削用量( vc,f,ap);确定工件的加工路线。刀具卡见表10-12,工序卡见表10-13。
▼表10-12 刀具卡
▼表10-13 工序卡
3) 基点计算
轮廓倒角一般有三种加工方法: 一是用成型铣刀铣削,简单方便,但是同一把成型刀只能用于相同尺寸的工件倒角,使用范围小,成本高,因此在小批量的工件加工中较少使用;二是用CAD/CAM 软件进行自动编程生成刀具路径加工,生成的加工程序很长,要求用户掌握相关CAD/CAM 软件知识,而且受刀具的影响较大,如果加工过程中刀具半径有所变化,那么必须利用软件重新完成程序的编制,然后再传输至机床加工,效率会相应地降低;三是使用球头铣刀或立铣刀逐层拟合成型加工,通过找出刀具中心与编程轮廓之间距离的变化规律,利用FANUC 数控系统的可编程参数设定指令G10表达刀补值使用变量,将不断变化的刀补值赋值给半径补偿存储器,结合宏指令编写加工程序,从而实现棱边倒角的加工。用第三种方法编制的程序通用性较强,且程序较简洁。
G10 指令称为可编程参数设定指令,在程序中,用H 或D 地址指定的代码从存储器中选择刀具补偿值,该值用于刀具长度补偿、刀具半径补偿或刀具偏移,G10 指令的格式取决于使用的刀具补偿存储器,见表10-14。
▼表10-14 刀具补偿存储器的各类指令格式
上表指令格式中的P 指刀具补偿号,R 表示刀具补偿值。当采用增量值指令方式时,R表示刀具补偿值与指定的刀具补偿号内的值相加之和。本例编程轮廓为一个80 mm ×80 mm的圆角正方形,刀具从倒角底部Z-2 处开始加工,此时刀具中心离编程轮廓的距离为实际刀具半径6 mm,接下来Z 方向按0.1 的步距逐步上抬,刀具中心离编程轮廓的距离按公式#4-[2-#8*TAN [#7]] 变化,通过G10 指令调用半径补偿变量,最后到倒角顶部Z0 处时,刀具中心离编程轮廓的距离变为4 mm,采用刀具半径补偿编程。
4) 编写程序单
5) 输入程序单
6) 模拟、加工、检验
参考程序(铣平面及铣外形程序略)
注意事项
(1) 使用寻边器确定工件零点时应采用对边分中法。
(2) 应根据加工情况随时调整进给开关和主轴转速倍率开关。
四、任务评价
任务评价细则见表10-15。
表10-15 任务评价细则
续表
五、相关资讯
1) 宏程序与普通程序对比
一般定义上讲的数控指令其实是指ISO 代码指令编程,即每个代码的功能是固定的,用户只需要按照数控系统规定编程即可。但有时这些指令满足不了用户需要,系统因此提供给用户宏程序功能,让用户可对数控系统进行一定的功能扩展。宏程序与普通程序对比情况见表10-16。
▼表10-16 宏程序与普通程序对比
2) 数控编程技术的应用现状
我国六成以上的数控铣(加工中心) 都被应用在模具行业。由于模具加工的特殊性,普通的手工编程已无法满足需求,所以CAD/CAM 软件在相关企业得到广泛应用,UG,Cimatron,Mastercam 等软件也被引入职业院校的教学中。
3) 宏程序编程的技术特点
宏程序的主要特点可以概括为: 简单便捷,能解决“疑难杂症”,通用性与灵活性较强,适用于机械工件的批量生产。
与CAD/CAM 软件生成程序相比,宏程序比较短小,而CAD/CAM 软件生成的程序通常量都较大,有些系统内存不够大,只能采用DNC 在线加工,影响加工速度;CAD/CAM软件计算的刀轨存在一定的弊端,它实质上是在允许的误差值范围内沿每条路径用直线去逼近曲面的过程,当执行真正的整圆或圆弧轨迹时,软件无法智能地判断这是整圆还是圆弧,生成的程序并不是G02/G03 指令,而是用G01 逐点逼近形成“圆”,而宏程序不存在这个问题。
六、练习与提高
在90 mm×90 mm×20 mm 的长方体铝块上用φ10 麻花钻加工如图10-5 所示的孔,深度为通孔,根据给定参数试用宏程序编程。
图10-5 均布孔加工
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。