史佳兆
(广州珠江机床厂有限公司研究院电气部,广东广州 511450)
随着机械工业的发展,零件的批量化加工在机械加工行业已经非常普遍,而随着机械加工行业的标准化及规范化,需要对加工完成的零件添加编号和日期等后期处理。这样不仅可以很方便地知道零件的加工数量,而且便于对加工的零件进行系统管理及追踪。但是由于零件编号和日期一般都是变化的,所以传统的方法是采用手工敲码或者编制许多加工编号的程序,或者不断地修改程序来满足加工编号和日期的要求,这在批量化生产时代已经显得力不从心,而且极大地影响了生产的效率。本文主要针对此问题,基于FANUC数控系统,利用其宏程序调用和宏变量功能编制了一种可以自动更新编号和日期的程序,并可以自动对零件进行编号和日期的加工。
针对机械加工的要求,零件自动加工编号和日期功能的实现必须具有可操作性,且方便操作,而且对零件进行加工编号动作和加工日期动作应该各自独立,用户可以分别使用,也可以一起使用。对于机械加工的零件来说,如果加工结束后只需要调用一个子程序,就可以实现相应的功能,那无疑是比较方便的。那么可以对加工编码的功能和加工日期的功能分别编制相应的功能程序,可称之为“编码功能程序”和“日期功能程序”。其次零件编号一般是从一个初始号码N1开始的,而且编号一般是以“A”为增量,比如A=1,依此递增的,比如N1,N1+A,N1+2A…。零件的加工日期一般也是时时更新的,所以相应的程序应该具有自动更新功能,这样用户在每次调用时,就不必每次设置编号和日期,这也是此功能设计的核心。而且对于不同的零件编号不应该相互干扰,不同批次类型的编号可以重置和修改,也就是说一个类型批次加工完成后,如果需要重新开始编号,起始数据应该具有可重置性,而且可以执行用户指定的特定编号。并且由于不同零件的大小不同,零件上加工的编号和日期的字体大小也会要求不同,所以此程序应该实现字体大小和字间距的可修改的功能。另外,相应加工零件的材质不同,加工编号和日期的速度应该也要有所不同,所以相关参数应该方便用户修改,以适应不同用户对不同工况的使用要求。
由以上功能分析可知,首先需要编制一个可供用户方便调用的程序,用户通过相应的初始设置及调用相应的功能程序就可以满足对零件进行“加工”编号和日期的要求。并且对于用户没有进行初始设置的情况,功能程序应该可以进行默认设置。初始设置完成后,功能程序应该依次求出编号和日期每一位的相应数值,并调用对应的功能子程序,直到结束返回用户主程序。设计流程框图如图1所示。
(1)子程序的调用:可以通过M98、M99来实现。
(2)用户初始值的设定:由于需要便于用户更改,且断电需要保存,及需要便于计算,所以可以利用#500~#999号宏变量来实现,这样用户既可以通过程序对初始值进行设置,也可以在系统操作的宏变量设定画面进行手动设置,对于用户没有进行初始设定的情况,也可以通过功能程序进行默认设置。
(3)求出相应编码各自位的数值:可以通过数学的方法,进行求商取整,比如1 234,可以对其除以1 000,结果1.234 再取整,即就 1,对于小于 1 000,如987,那么千分位就取0,然后调用对应数字程序。
(4)数字程序的对应调用:由于数字都是0~9的组合,所以可以编写10个对应数字的功能子程序,然后通过功能主程序调用(3)中所求出的数字对应的子程序,由于(3)中求出的数字式随机的,所以可以通过变量来调用对应的子程序。
(5)编号的自动更新:可以通过IF循环语句进行自动加处理,即每一次调用功能程序可以对编号进行一次加A处理,这样,下次调用程序时编号就自动进行更新。
(6)读取日期:可以通过FANUC系统自带的系统变量#3011读取对应的日期信息,这样也避免日期更新的问题。
(7)日期的数据的处理:读出日期书库后,可以按照(3)~(4)步骤中的方法对每一位进行处理。
通过以上功能分析,可以5位编号为例,编制以下编号和日期功能程序。
变量说明:#540为起始编号;#541为增量编号;#550为字间距;#551为字高;#560为字码切削深度;#570为切削进给速度;#581~584为中间运算变量;#590~594为中间运算变量。
(1)编制功能子程序
可以编制0、1、2、…、9十个数字分别对应程序号为O6000~O6009。
例如,可以参见图2编制数字“5”的功能子程序如下:
同样,可以编制出其余9个数字对应的子程序。
(2)编号主程序的编制
可以根据实际流程图和功能实现的分析编制以下编号主程序:
(3)日期功能主程序的实现
首先确定程序号为O8001,由于FANUC日期数据(年月日)保留在系统变量#3011中,比如2013年1月12日,#3011=20130112,所以我们可以利用变量#3011的值来进行计算处理,直按照编号功能程序中对编号变量#540的处理方式对#3011中的数据进行处理,就可以逐位求出日期上对应的数字,并调用对应的数字子程序,就可以完成对加工日期的功能主程序的编制,而且由于#3011的值是与系统时钟保持关联的,所以也可以避免日期数据更新的问题。
需要注意的是:由以上程序可知,由于程序的执行时从P0点开始的,所以用户在调用程序之前,需要提前指定P0点的位置。
例如:
通过以上编程的方法,就可以编制多位编号和日期的功能程序,适用不同的场合,实现相应的功能。
通过以上编程的方法,就可以编制多位编号和日期的功能程序,适用不同的场合,实现自动加工零件编号和日期的功能。而且编号和日期可以自动更新,编号数据也可以按照用户指定的数据执行,可以满足大多数的使用要求,避免了落后的手工敲号及重复修改程序,可以极大地提高劳动生产率,方便批量机械加工中批量零件的管理,提高企业效益。
[1]FANUC SERIES OI Mate-MODEL,车床系统/加工中心系统通用用户手册[Z].B-64304CM/01