宏程序在设备中的运用

2018-01-03 05:46王志欣黄建凌
设备管理与维修 2017年12期
关键词:宏程序刀具运算

王志欣,黄建凌

(浙江亚太机电股份有限公司,浙江杭州 311203)

宏程序在设备中的运用

王志欣,黄建凌

(浙江亚太机电股份有限公司,浙江杭州 311203)

从宏变量运算、接口系统变量、宏程序条件运算等方面,介绍宏程序的变量以及宏程序在设备生产中的运用。

宏程序;变量;数控机床

10.16621/j.cnki.issn1001-0599.2017.12.52

0 前言

宏程序在数控机床上有着重要作用,在现实生产加工中非常重要。有一些复杂零件,离开了宏程序,它的加工程序就无法编制(利用CAM绘图软件并进行后处理生成的程序除外);简单重复的零件,利用宏程序可以大大提高生产效率,减少编程量。

以北京FANUC 0i系统 B-6351C为参考,通过多方面的内容和应用实例,向大家介绍宏程序的变量以及宏程序在设备生产中的运用。

1 宏变量的分类

宏变量根据变量号和用途可以分4大类(表1)。

2 系统变量说明

系统变量是和NC内部数据以及PMC交流通信的变量,各个变量有着不同的功用和性能。有些变量可读可写,有些变量只能写,有些变量只能读,因此,系统变量是机床自动控制和通用加工程序编写以及开发的基础。系统变量与CNC,PMC之间关系如表2~表4所示(一些不常用的变量略谈)。

表1 宏变量的分类

表2 工件零点偏移值的系统变量

表3 机床位置信息的系统变量

表4 刀具补偿的系统变量

表3中,位置信息不能写,只能读取使用;每组变量最后一位数字代表轴号,一般表示第1轴~第4轴。

表4中,刀具补偿的系统变量可读可写。当偏置组数≤200组时,也可以使用括号中的#2001~#2400。

3 宏变量的运算

宏变量的运算包括算术、函数、逻辑以及条件等运算符(表5)。

进行宏变量运算时,需注意10点。

(1)宏变量运算时,必须先赋值,后运算。例如:

(2)反三角函数取值范围由参数P6004.0的取值决定(表6)。

例如:#1=ATAN[-1]/[-1]=225°(变量赋值省略,假设变量等于-1);#1=ATAN[-1]/[-1]=-135°(变量赋值省略,假设变量等于-1)。

(3)宏变量值的精度约为8位十进制数,当在加/减运算处理非常大的数时,可能得不到期望的结果。

(4)宏变量运算先后顺序一般遵循:①先函数,②再乘除,与运算,③最后是加减、逻辑或、逻辑异或运算。

(5)宏变量的运算都是在方括号内进行的,不能用小括号。小括号内只能用作注释。此外,括号可以改变运算顺序,但一行宏程序中最多只能使用5级方括号,超过5级时宏程序会P/S No.118报警。

(6)宏程序中引用的变量值会根据地址的最小单位自动四舍五入。如精度为0.001mm时,当用#1=12.3456,G00 X#1时,实际X位置是12.346。

(7)使用负号“-”时,负号必须放到#号前面,当使用未定义的变量时(也叫空变量,变量#0总是空变量),变量和地址都会被忽略不计,机床不报警。

(8)表达式也可以用于指定变量号,但必须在封闭的方括号中,如:#1=#[#1+#3-29]。

(9)局部变量,公共变量取值是有范围的,正值为+10-29~+1047,0 值;负值时为-1047~-10-29,超出会产生 P/S No.111 报警。

(10)相关参数说明。

参数P3204.0等于0时,括号是方括号“[]”,等于1时是小括号“()”。

参数P6000.5 SMB等于0时程序单节运行时宏程序不停止,等于1时宏程序单节也停止.

参数P6001.6 CCV等于0时局部变量#1~#33值复位时变成空,等于1时不变。

参数P6001.7 CLV等于0时公用变量#100~#199值复位时变成空,等于1时不变。

参数P3209.2 MCY等于0时在MDI方式下可以输入宏变量的值,等于1时不可以输入。

参数P3209.6MC等于0时任何方式下都可以输入宏变量的值,等于1时只有在MDI方式下才能输入。

4 接口系统变量以及对应的接口地址

该类变量可以实现宏程序与PMC之间的信号交流和电平转换,以达到利用外部控制条件实现对宏程序的控制,同时也可以实现利用宏程序对PMC控制的影响(表7)。这类变量在无人值守的自动化以及复杂加工方面有重要应用。

表5 宏变量运算说明

表6 函数取值范围与参数的关系

从表7可以看出,宏程序与PMC信号传递是通过如图1所示方式进行的。

5 #3000系列常用系统变量说明

(1)#3000。给CNC程序设置一个报警的系统变量,其取值范围为0~200。当把以上范围的任何一个值赋予#3000时,CNC就会停止并产生一个报警号为3000+#3000值的报警(例如,#3000=8,则报警号是3008),并且可以在屏幕报警栏上显示不超过26个字符的报警信息。书写格式:#3000=8(PART NOT FOUND)。

图1 宏程序与PMC信号传递方式

(2)#3006。给CNC程序设置一个信息显示的系统变量,取值范围是“1”,当程序运行到该段程时,停止运行并停止,并且可以书写不超过26个字符的信息并在屏幕信息栏上显示。书写格式:#3006=1(PARTFOUND)。

(3)#3001。该系统变量以毫秒(ms)为单位计时器,当计时值累积到2 147 483 648 ms时,归零重计。当电源接通时,该变量值复位为0。该变量可以读,也可以写,常用作一次开机时间统计。

表7 接口系统变量对PMC的控制及影响

(4)#3002。该系统变量是当循环启动灯亮起时以小时为单位计时器,当计时值累积到9544.371 767 h时,归零重计。该计时器即使电源断电时,累积值也不会丢失。该变量可以读,也可以写,常常用作设备自动运行时间统计。

(5)#3011。该系统变量用于读取CNC系统的当前日期,并以10进制显示年、月、日。如日期是2015年6月18日,则显示为20150618。该变量不能写,只能读,常用作程序运行时间(日期)报警。

(6)#3012。该系统变量用于读取CNC系统的当前时间,以24 h制并以10进制方式显示时、分、秒时间。如12:30:46,则显示123046。该变量不能写,只能读,常用作程序运行时间(日期)报警。

(7)#3003。该系统变量用于改变程序自动运行中的状态,并且有时不受操作面板上单段按钮选择以及一些辅助(如常用的M,S,T等)功能命令是否完成信号输出的影响(表8)。

(8)#3004。该系统变量用于改变程序自动运行中的状态,并且有时不受操作面板上进给暂停、进给速度倍率按钮选择的影响(表9)。

(9)#3005。该系统变量是一个16位二进制数,以SEETING画面方式输入10进制数,它会变化成二进制后按位写入。如果读出时它会把二进制变换成10进制。0i系统中起作用的各位如表10所示。

表8 系统变量#3003取值及功用

表9 系统变量#3004取值及功用

表10 0i系统中#3005常用起作用的各位

#0(TVC):是否进行TV检查。

#1(ISO):输出代码是国际标准,否则是ETA标准。

#2(INI):英寸输入,否则以公制输入。

#5(SEQ):是否需要自动插入行顺序号。

#9(FCV):纸带格式FS10,否则使用FS11格式(以前程序保存在纸带上,以打点的格式,不同的孔代表不同的内容)

(10)#3007。该变量是利用SETTING或外部信号输入设置各轴的镜像功能,同时也可以读出以查看各轴镜像,它是一个8位二进制数,输入时自动分解成二进制按位写入。0i系统中起作用的各位见表11。

需要说明的是:①值是0时镜像无效,1是有效;②当用镜像信号和SEETING两者对一个轴设置镜像时,信号值和设定值相或(其中一个是1,则为1),然后输出;③它是一个写保护变量,只能在SEETING画面设定,其他方式输入则产生P/S116“WRITEPROTECTEDVARIABLE”报警。

表11 0i系统中#3007常用起作用的各位

(11)#3901。该变量是一个统计已加工的零件数(完成数),可读可写,但不能用负数写入。

(12)#3902。该变量可以设置要求加工的零件数(目标数),可读可写,但不能用负数写入。

6 宏程序一些条件运算简要说明

(1)GOTON 语句,N的取值范围是1~99999.如果超出取值范围,则产生P/S 128报警。

(2)IF[ ]GOTON 语句,当IF方括号里边条件满足时,跳转到N语句的地方。

(3)IF[ ]THEN 语句,当IF方括号里边条件满足时,执行一个语句。

(4)WHILE[ ]DOm

当WHILE语句方括号里的条件是满足时,执行DOm~ENDm之间的程序。不满足执行ENDm后边的程序。

需要说明的是:①m取值只能是1,2,3,以外其他值产生报警P/S 126;②当指定了DOm和ENDm,而没有指定WHILE[]条件语句时,程序在Dom和ENDm无限循环;③DOm~ENDm循环中的标号(m取值1,2,3)可以多次使用,但是不同的条件语句DO范围不能有重叠,条件转移时也不能进入循环内部,如有重叠或转移进入循环内部时则会产生P/S 124报警(图2)。

7 宏程序在日常生产中的应用举例

以上是对系统变量以及系统变量运算的简要叙述,下面以实例说明宏变量的具体使用方法。

7.1 实例1

为了平衡生产,生产中产品夹具一般同时加工左右2个产品,分别设定坐标系为G54和G55。由于特殊原因需要单独生产左产品或右产品时,需要调试员去转换程序,调出左产品程序或右产品程序,加工结束后还要调出左右都有的程序,非常麻烦,而且影响生产。新手操作时,还容易出现调错程序,发生撞刀事故的风险。为了适合生产要求,利用宏程序解决了上述问题。解决过程如下:

第1步:对产品夹具进行改造,在夹具的防错位置加装了传感器,左边的用A传感器,来感知左产品是否存在,作为机床的输入点设定为X1020.1;右边的用B传感器,来感知右产品是否存在,作为机床的输入点设定为X1020.2。

第2步:利用FANUC编程软件对PMC梯图进行修改,在合适位置加入如图3所示的一段程序。

第3步:将不同的状态分别编程,作为子程序进行调用。图4是将不同状态进行了分解和编程。

状态1是2种产品都有,设定程序为:

图3 利用FANUC软件修改PMC梯图的程序1

图4 不同状态的分解和编程

状态2:只有左产品,设定程序为:

状态3:只有右产品,设定程序为:

第4步:编制主程序,见下列主程序(仅作参考,不同设备辅助功能不同)

检查左右产品是否都存在,如存在跳转至程序O0001

检查左产品是否存在,如存在跳转至程序O0002

检查右产品是否存在,如存在跳转至程序O0003

通过以上步骤,可以方便而且不用更改程序就能达到目的,提高了生产效率和安全性。

7.2 实例2

图5左边是泵体产品,为了保证产品的几何精度和减少工艺步骤,将其放到带有4轴的加工中心上进行加工。右边是该产品的工装夹具。

图5 泵体加工程序示意

产品工艺及加工过程要求:① 以产品的X面,Y面定位,从Z面压紧,同时C面用摆转油缸压紧,以免加工Φ20mm时产品移动。②伺服电机转动至90°加工A面以及孔Φ20mm。③完毕之后,伺服电机带动夹具转动到-90°,加工B面,同时完成M10螺纹加工(要求:在加工上述过程中,为防止产品在加工过程中移动,回转油缸压紧在产品的C面)。④上述2个工序完成之后,伺服电机再转回到0°,松开回转油缸,压脚分别向左右摆转45°,再对C面进行加工,同时完成M8螺纹的加工。⑤最后压紧缸松开,取出产品,并放置新的产品,压紧缸压紧产品(注:产品侧面压紧用按钮)。

为了实现上述工艺要求,利用宏程序解决了上述问题。

第1步:对液压油路进行了改进,主要是在回转油缸夹紧松开油路加入了压力继电器,进行油缸位置的辅助监控,以免撞刀,其夹紧压力用SP1 X1000.0作为压紧信号。压紧动作控制用Y1000.0来控制,放松压力用SP2 X1000.1作为放松信号,放松动作控制用Y1000.1(图6)。

第2步:利用FANUC编程软件对PMC梯图进行了修改,在合适的位置加入了如图7所示的一段程序。

第3步:根据工艺要求编制程序

图6 液压油路的改进

图7 利用FANUC软件修改PMC梯图的程序2

摆转缸是否夹紧检查,如夹紧转跳到加工程序进行加工

如果摆转油缸没夹紧则报警停止。

摆转缸是否放松检查,如放松跳转到加工程序进行加工

如果摆转缸没松开则报警停止

通过这个程序,你就很容易的达到了工艺过程要求。

7.3 实例3

在生产加工中刀具会出现磨损,如果检查后刀具仍可继续使用,就需要修改刀具的磨损量,以保证产品尺寸。如果刀具需要更换,则需要修改刀具的几何尺寸。修改磨损量和修改刀具几何尺寸,都有可能修改错误,特别是新职工更容易出现这种情况。修改发生错误后,机床运行时会出现撞刀和报废产品,日常管理发现,修改刀具参数错误引起的撞刀故占总事故率的5%左右。为了减少该类事故的发生,利用宏程序,将刀具参数变化量限制到1mm,磨耗变化量限制在0.05mm之内。如果修改量超出控制范围,将出现报警,停止运行(图8)。具体操作如下(仅以长度为例说明)。

第1步:从图8a)可以看出,该程序的T1用的是H8(程序的第5行),对应下图中应该是8#刀偏,其具体尺寸是形状H=-428.8,磨损 H=-0.020。

第2步:通过查看上边表4,该刀具参数宏变量对应是#11008和#10008。

第3步:如果刀具长度更改量控制在±1mm,那么#11008应-429.8≤#11008≤-427.8。如果长度磨损更改量控制在±0.05mm,那么#10008应在-0.08≤#10008≤+0.03。

第4步:宏程序编写如下:

图8 程序与刀具参数

8 结语

宏程序在设备中应用相当广泛,本文通过对FANUC 0i系统B-6351C宏变量运算、接口系统变量以及对应的接口地址等等说明,加入作者自己的注解和理解,同时通过实际应用实例进行解说,叙述了宏程序在产品加工中的应用,对实际工作有一定借鉴意义。

TP271+.4

B

〔编辑 吴建卿〕

猜你喜欢
宏程序刀具运算
重视运算与推理,解决数列求和题
椭球槽宏程序编制及其Vericut仿真
有趣的运算
无织构刀具与织构刀具铣削性能对比研究
切削刀具刃口形貌对刀具使用寿命的影响
应用Fanuc宏程序的球面螺旋加工程序编制
“整式的乘法与因式分解”知识归纳
多功能刀具
基于Vericut的四轴数控加工宏程序仿真研究
G代码B类宏程序在数控切割参数化图形库中的应用