1.用户宏程序
用户宏程序(简称宏程序)是FANUC数控系统的特殊编程功能,它可用于数控机床特殊加工程序或其他运动控制程序的编制,其主要特点如下。
1)宏程序可采用变量编程,程序中不仅可使用算术运算式、逻辑运算式、条件转移等高级语言编程指令,来自动计算、判别坐标轴位置,简化CNC加工程序;同时,它还可通过宏程序调用指令和变量的赋值功能,实现CNC加工程序的参数化编程,程序设计灵活、方便。
2)宏程序不仅可通过特定的变量,直接读取或改变CNC参数及工作状态数据,如坐标轴的当前位置值、CNC的刀具补偿值、工件坐标系设定值、M/S/T/B代码等;而且还可直接读取或输出PMC的I/O信号,以检查机床的工作状态、控制PMC程序的动作。
3)用户宏程序既可作为普通的加工程序独立执行,还可由CNC加工程序中的特定G、M、T代码,以子程序的形式直接调用,完成特定的机床动作。宏程序执行完成后,可自动返回到调用的程序段,继续执行原程序。
因此,对于主轴移动式换刀、工作台自动交换等需要通过CNC和PMC进行联合控制的特殊机床运动,采用宏程序进行编程,不仅可大大简化PMC程序设计,而且程序编制容易,机床调试、检查方便、工作可靠性高,它是机床生产厂家经常使用的设计方法之一。有关FS-0iD等CNC宏程序编制的详细内容可参见本书作者编写的《FANUC-0iD编程与操作》(机械工业出版社,2013年5月)一书。
2.换刀宏程序设计
(1)宏程序调用
当用户宏程序用于加工中心自动换刀控制时,一般都通过CNC加工程序中的M06代码自动调用换刀控制的用户宏程序。为此,需要通过CNC参数的设定,确定调用自动换刀宏程序的M代码及所调用的用户宏程序号。
在FS-0iD等CNC上,调用用户宏程序的M代码可通过CNC参数PRM6071~6079、PRM6080~6089进行设定;M代码可调用的宏程序号分别为O9001~O9009、O9020~O9029。例如,当自动换刀控制的宏程序通过M06调用,换刀宏程序号为O9001时,可设定CNC参数PRM6071=06,这样,只要CNC加工程序执行到M06指令,便可自动调用用户宏程序O9001;如换刀宏程序号为O9020,则可设定CNC参数PRM6080=06等。
用于宏程序调用的M代码将由CNC的操作系统进行内部处理,M代码信号不再输出到PMC,也无须PMC程序进行处理与完成应答。
(2)M代码定义
为了便于PMC程序设计,在用户宏程序中,通常需要将自动换刀时的机床动作,分解成为由宏程序中特定的辅助功能代码M控制的独立动作。这样,不仅可简化PMC程序的设计,提高程序可靠性,而且还可通过MDI方式执行M代码,进行每一步动作的检查和动作调试。
对于上述主轴/刀库混合移动式换刀控制,其动作可分解为由以下CNC的M代码控制的独立运动。
M80:刀库前移;
M81:刀库后移;
M82:主轴刀具夹紧、吹气关闭;(www.xing528.com)
M83:主轴刀具松开、吹气;
M84:刀库回转选刀。
根据机床的特点和要求,上述的M80~M84代码也可以是与CNC内部控制无关的其他M代码,如M50~M54等,但不能使用表5-1中系统生产厂规定用途的M代码。
(3)宏程序输入/输出
CNC和PMC程序之间的二进制状态信号交换,可通过宏程序输入信号UI000~UI015和宏程序输出信号UO000~UO015进行。UI000~UI015为PMC传送到CNC的二进制位信号,其状态可利用PMC程序在G054.0~G055.7上输出;在宏程序中,则可通过系统变量[#_UI[0]]~[#_UI[15]]进行读取。UO000~UO015为CNC传送到PMC的二进制位信号,其状态可利用宏程序对系统变量[#_UO[0]]~[#_UO[15]]的赋值进行改变;在PMC程序中,则可通过信号F054.0~F055.7读取。
对于上述主轴/刀库混合移动式换刀控制,当加工程序中的T代码出错或主轴现行刀号和CNC指令刀号一致时,可通过宏程序输入信号UI000(G054.0),将PMC程序中的信号传送到CNC,并在宏程序中利用条件转移指令,直接结束换刀宏程序的执行。
3.换刀宏程序典例
当机床自动换刀宏程序调用指令为M06、宏程序号为O9001(PRM6071=06),并假设自动换刀时的Z轴起始点0为Z轴参考点、卸刀行程为120mm(参考值)、Z轴移动速度为5000mm/min(参考值)、Z轴移动到位的延时为0.5s(参考值),则按以上思路设计的主轴/刀库混合移动式换刀控制宏程序典例如下。
N10 M99; //宏程序结束返回
以上程序中的[#_UI[0]]、[#_M_SBK]、[#_M_FIN]、[#_M_FHD]、[#_M_OV]是以“变量名”形式定义的宏程序系统变量,变量的含义如下。
[#_UI[0]]:宏程序输入信号UI000。UI000是来自PMC程序的CNC-PMC接口信号G054.0(UI000)的状态。在宏程序中,[#_UI[0]]也可直接以系统变量#1000的形式表示,即用宏程序指令“IF[#3003 EQ 1]GOTO 10”,替代程序中的指令N1。
[#_M_SBK]、[#_M_FIN]:宏程序运行控制的系统变量1。[#_M_SBK]、[#_M_FIN]也可通过系统变量#3003或变量名[#_CNTL1],进行一次性赋值,即用宏程序指令#3003=1或[#_CNTL1]=1,替代程序中的指令[#_M_SBK]=1和[#_M_FIN]=0。
[#_M_FHD]、[#_M_OV]:宏程序运行控制的系统变量2。[#_M_FHD]、[#_M_OV]也可用系统变量#3004或变量名[#_CNTL2],进行一次性赋值,即用宏程序指令#3004=0或[#_CNTL2]=0,替代程序中的指令[#_M_FHD]=0和[#_M_OV]=0。
有关FS-0iD系统变量的功能、含义等详细内容,可参见本书作者编写的《FANUC-0iD编程与操作》(机械工业出版社,2013年5月)一书。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。