一、任务布置
完成如图6-1所示椭圆轮廓的零件加工。零件材料为LY12,毛坯尺寸为80mm×80mm×16mm(长×宽×高)。
图6-1 平面椭圆零件图
【知识目标】
(1)熟悉FANUC系统的宏变量、运算符与表达式等代码意义。
(2)掌握系统中用变量进行算术运算、逻辑运算和函数的混合运算等表达式功能。
(3)掌握循环语句、分支语句和子程序调用语句等编程格式。
【技能目标】
(1)会编制椭圆零件的加工程序。
(2)会操作数控铣床(加工中心)完成椭圆零件的加工及质量检测。
二、知识链接
(一)宏程序的基本概念
1.宏程序的定义
以一组子程序的形式存储并带有变量的程序称为用户宏程序,简称宏程序。调用宏程序的指令称为用户宏程序指令,或宏程序调用指令(简称宏指令)。
宏程序与普通程序相比较,普通的程序字为常量,一个程序只能描述一个几何形状,所以缺乏灵活性和适用性。而在用户宏程序的本体中,可以使用变量进行编程,还可以用宏指令对这些变量进行赋值、运算等处理。通过使用宏程序能执行一些有规律变化(如非圆二次曲线轮廓)的动作。
宏程序分A类和B类两种,由于B类宏程序使用相比A类方便,一般使用中B类宏程序进行编程较多,在这里介绍B类宏程序编程。
2.宏程序中的变量
在常规的主程序和子程序内,总是将一个具体的数值赋给一个地址,为了使程序更加具有通用性、灵活性,故在宏程序中设置了变量。
(1)变量的表示。由符号“#”和变量序号组成,如:# I(I=1,2,…)。此外,变量还可以用表达式进行表示,但其表达式必须全部写入方括号“[]”中。
例:#100,#500,#5,#[#1+#2+#10]
(2)变量的引用。将跟随在地址符后的数值用变量来代替的过程称为引用变量。同样,引用变量也可以用表达式。
例:G01 X#100 Y#101 F[#101+#103]
当#100=100.0、 # 101=50.0、 # 103=80.0时,上例即表示为G01 X100.0 Y50.0 F130;
(3)变量的类型:变量分为局部变量、公共变量(全局变量)和系统变量三种,见表6-1。
表6-1 变量的类型
注:程序号、顺序号、任意段跳跃号不能使用变量。例:O# 1;/ # 2G00X50.0;N# 3Y100.0;均是错误的。
(二)宏程序编程
1.变量的赋值
变量的赋值方法有两种,即直接赋值和引数赋值。其中直接赋值方法较为直观、方便,其书写格式如下:
例:# 100 =100.0
# 101=30.0+20.0;
引数赋值的地址与变量号对应具体参见表6-2。
例:A=1等于#1=1;
T=1等于#20=1;
表6-2 引数赋值的地址与变量号对应
地址G、L、N、O、P不能当作自变量使用。
不需要的地址可以省略,与省略的地址相应的地方变量被置成空。
2.算术和逻辑操作
在表6-3中列出的操作可以用变量进行。操作符右边的表达式,可以含有常数和(或)由一个功能块或操作符组成的变量。表达式中的变量#J和#K可以用常数替换。左边的变量也可以用表达式替换。
表6-3 算术和逻辑操作
(1)角单位。在SIN、 COS、 TAN、 ATAN中所用的角度单位是度。
(2)ATANT功能。在ATANT之后的两个变量用“/”分开,结果在0和360之间。°
例:当#1=ATANT[1]/[1]时,#1=135.0
(3)ROUND功能:当ROUND功能包含在算术或逻辑操作、IF语句、WHILE语句中时,将保留小数点后一位,其余位进行四舍五入。
例:# 1=ROUND[ # 2];其中#2=1.2345,则#1=1.0
当ROUND出现在NC语句地址中时,进位功能根据地址的最小输入增量四舍五入指定的值。
例:编一个程序,根据变量#1、#2的值进行切削,然后返回到初始点。假定增量系统是1/1000mm,# 1=1.2345,# 2=2.3456
则:G00 G91 X # 1;移动1.235mm
G01 X # 2 F300;移动2.346mm
G00 X[#1+#2];因为1.2345+2.3456=3.5801,移动3.580mm,不能返回到初始位置。而换成G00X[ROUND[ # 1]+ROUND[ # 2]],能返回到初始点。
(4)上进位和下进位成整数。
例:#1=1.2、 # 2=-1.2
则:# 3=FUP[ # 1],结果#3=2.0
# 3=FIX[#1],结果#3=1.0
#3=FUP[#2],结果#3=-2.0
# 3=FIX[ # 2],结果#3=-1.0
(5)方括号嵌套。方括号用于改变操作的顺序。最多可用五层,超出五层,出现118号报警。
注意:方括号用于封闭表达式,圆括号用于注释。
3.分支和循环语句
在一个程序中,控制流程可以用GOTO、IF语句改变。有三种分支循环语句如下:
GOTO语句(无条件分支);IF语句(条件分支:if…,then…); WHILE语句(循环语句while…)。
(1)无条件分支(GOTO语句)
功能:向程序的第N句。当指定的顺序号大于1~9999时,出现128号报警,顺序号可以用表达式。
格式:GOTO n; n是顺序号(1~9999)
(2)条件分支(IF语句)
功能:在IF后面指定一个条件表达式,如果条件满足,转向第N句,否则执行下一段。
格式:IF[条件表达式]GOTO n;
其中:一个条件表达式一定要有一个操作符,这个操作符插在两个变量或一个变量和一个常数之间,并且要用方括号括起来,即[表达式 操作符 表达式]。操作符如表6-4所示。
表6-4 操作符
(3)循环(WHILE语句)
功能:在WHILE后指定一个条件表达式,条件满足时,执行DO到END之间的语句,否则执行END后的语句。
格式:WHILE[条件表达式]DO m;(m=1,2,3)
m只能在1、2、3中取值,否则出现126号报警。
嵌套:1)数1~3可以多次使用。
2)不能交叉执行DO语句,如下的书写格式是错误的:
3)嵌套层数最多3级。
4)如下的书写格式是正确的:
5)如下的书写格式是错误的:
注意:1)无限循环。指定了DO m而没有WHILE语句,循环将在DO和END之间无限期执行下去。
2)执行时间。程序执行GOTO分支语句时,要进行顺序号的搜索,所以反向执行的时间比正向执行的时间长。可以用WHILE语句减少处理时间。
3)未定义的变量。在使用EQ或NE的条件表达式中,空值和零的使用结果不同。 而含其他操作符的条件表达式将空值看作零。
(三)宏程序的调用
可以用下列方式调用宏程序:
1)简单调用:G65;
2)模调用:G66、G67;
3)G码宏调用;
4)M码宏调用;
5)G码子程序调用;
6)M码子程序调用;
用G65可以指定一个自变量(传递给宏的数据),而M98没有这个功能。
当M98段含有另一个NC语句时(如:G01 X100.0 M98 Pp),则执行命令之后调用子程序,而G65无条件调用一个宏。
当M98段含有另一个NC语句时(如:G01 X100.0 M98 Pp),在单段方式下机床停止,而使用G65时机床不停止。
用G65地方变量的级要改变,而M98不改变。
三、宏程序编制
1.数学处理及计算
椭圆的参数方程如下:
其中:a为长半轴,b为短半轴,φ为离心角。
在宏程序编程中,零件图椭圆轮廓曲线,以离心角φ(0~360°)为自变量,按公式计算出X、Y坐标值。
根据零件图可知,椭圆的计算如下:
2.程序编制
FANUC系统平面椭圆零件加工程序卡如表6-5所示。
表6-5 FANUC系统平面椭圆零件加工程序卡
注:编程时,程序前几个程序段为机床加工的各项准备工作指令,然后才开始编写加工程序。
四、技能实训
1.实训准备
根据项目任务要求,给出平面椭圆零件加工工具、量具、刃具等准备清单,如表6-6所示。
表6-6 平面椭圆零件加工工具、量具、刃具准备清单
2.加工准备
(1)开机,回机床参考点。
(2)检查毛坯是否符合加工要求,并安装工件,把毛坯用等高块垫在下面,放在已校正平行的平口钳中间位置,使上表面高出钳口6~8mm(留有足够的空间完成平面椭圆的铣削加工),用木槌或橡胶锤敲击工件上表面夹紧平口钳。
(3)完成φ50mm面铣刀、φ16mm立铣刀刀具的对刀,分别设定G54坐标原点。
3.程序输入
输入表6-5所列参考程序到数控系统中。
4.模拟加工
校验程序走刀轨迹是否符合机床刀具运行轨迹要求。
5. 自动加工
换刀首次加工时,为防止对刀或工件坐标系零点偏置有误,在程序执行前先进行单段加工,待确定对刀或程序运行平稳后,再取消“单段”加工,采用自动加工。在加工过程中,应根据机床运行情况,调整机床主轴转速和进给倍率,确保机床平稳、高效地运行。
6.结束准备
完成零件加工,去除零件毛刺,打扫、清理机床和周围设施,并做好机床保养等工作。
五、质量评价
根据完成零件,按照项目评分表对加工零件进行质量评价,评分表如表6-7所示。
表6-7 平面椭圆评分表
六、常见问题解析
(1)椭圆加工应采用刀补进行,如采用长、短轴加刀具半径进行编程,则与实际椭圆有偏差。
(2)宏程序编程时,需要对公式曲线进行数学处理及计算,确定变量值。
七、巩固训练
根据自己所掌握的数控系统完成如图6-2所示公式曲线零件的加工。零件材料:LY12,毛坯尺寸:80mm×80mm×16mm,公式曲线零件评分表如表6-8所示。
图6-2 公式曲线零件图
表6-8 公式曲线零件评分表
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。