张俊,赵旺,王奎章
(1.湖北文理学院机械工程学院, 湖北襄阳 441053;2.襄阳市智能制造与机器视觉重点实验室,湖北襄阳 441053;3.湖北万盟数控机床集团有限公司,湖北襄阳 441800)
组合机床是以通用零部件为支撑,选配部分专用部件,按照预先拟订好的多道工序对一种或者多种工件实施半自动化或自动化加工的专用机床,其工作稳定、操作方便、生产效率高,能够有效保证工件的尺寸和形位精度,适合大规模批量化生产。随着我国经济的快速发展和人们生活水平的提高,对水暖卫浴产品的需求量越来越大,水龙头被广泛使用,在水龙头出水口处通过螺纹连接有过滤嘴,以过滤水中的沉沙等杂质。由于水龙头出水口处的螺纹长度较短,为防止漏水渗水现象的发生,对出水口处螺纹形位精度要求较高。但是采用传统的手工钻孔与攻丝方式,不仅无法保证精度,而且生产效率较低。为此,本文作者以水龙头出水口螺纹孔为加工对象,在华中8型数控系统的基础上,开发一套具有示教功能的钻攻专用数控系统,可满足水龙头出水口钻孔与攻丝工艺组合加工的需求。
用户需求如下:(1)一次装夹工件,完成钻孔与攻丝两道加工工序,减少产品的装夹次数和重复定位误差,提高生产效率和加工精度;(2)加工过程中不需对刀操作,以减少非切削时间;(3)无需操作者编写数控加工程序,使操作流程简捷、易于掌握,降低对操作人员技术水平的要求;(4)一名操作者负责两个工位的工件装卸,降低企业的人工成本。据此确定组合机床的功能要求,采用手摇示教方式,先自动生成G代码,使用双通道数控系统实现并行控制,两个通道可以相互独立工作,达到异步装夹工件的目的。
对于单通道加工工件的工艺流程:机床上电后,将工件装夹到治具滑台上,按下循环启动按钮,治具滑台带动工件向上移动到钻孔位置执行钻孔循环加工,然后治具滑台继续向上移动到攻丝位置执行攻丝循环加工,攻丝结束后治具滑台向下返回到初始工位,取出工件即可执行下一个加工周期。
双通道钻攻组合机床的机械结构采用左右对称布局,各通道的攻丝和钻孔工位按照竖直上下的形式设置,可以节省空间,其单侧通道的机械结构总体方案如图1所示。轴是钻孔工位的进给轴,由伺服电机驱动,实现钻孔操作时的轴向运动;轴是钻孔工位的主轴,可选用普通变频电机驱动;轴为攻丝工位的进给轴,应由伺服电机驱动;轴为攻丝工位的主轴,为保证刚性攻丝操作时轴向进给量与主轴旋转角度之间的同步协调关系,轴必需使用伺服电机驱动;轴竖直上下运动,是控制治具滑台运动的移动轴,需由伺服电机驱动,实现工件在不同工位之间的上下运动和定位;产品在钻攻组合加工时的定位由夹具和示教保证,故不必设置运动轴。
图1 单侧通道机械结构示意
本文作者所开发的示教式钻攻数控组合机床是在标准的华中8型数控系统(HNC8)上进行二次开发实现的。HNC8采用的是模块化、开放式的现场总线体系结构,方便用户进行定制开发。根据钻攻组合机床的机械结构分析其运动轴类型和控制方式,确定其配置需求和硬件连接关系。图2所示为具有双通道控制的钻攻组合机床数控装置硬件结构。
图2 双通道钻攻数控装置的硬件结构
在软件二次开发方面,华中8型数控系统为用户提供了人机交互界面层HMI和应用程序编程接口层API。通过HMI层可以建立可视化的窗口界面,便于操作者直观地查询或修改机床的信息和参数值,实现人机交互中的事件响应,如文中的双通道模式的显示、示教参数的录入、螺纹参数的设置等界面;API层提供大量的接口函数,可以访问数控系统的核心功能,实现对各种数据的保存与重装、用户宏变量与参数间的数据交换、示教程序的自动生成等功能。
华中8型数控系统的钻孔和攻丝动作分别由G81和G84指令实现,但它不具备示教功能。为满足用户的使用要求,通过示教方式代替人工编写数控加工程序,利用华中8型数控系统提供的手摇控制器、G31跳步指令和宏变量等,二次开发手摇示教功能。示教的基本原理:按照被加工对象的工序规划运动轴和刀具运动路径,编制示教宏程序,通过手摇控制器的方式控制机床运动轴运动;由G31跳段指令记录该运动轴的实际坐标值,借助设置在数控系统操作面板上的按键将所记录的运动轴位置信息(即坐标值)赋给用户宏变量,并生成被加工对象的G代码程序,示教完成后可直接用于生产加工。
G31跳步指令是非模态的G代码,用于实现G代码的跳步,即在执行当前G31代码过程中,一旦CNC系统接收到有外部跳步信号输入,则终止当前指令执行的任务,直接跳转并执行下一行的程序段,同时机床的各个运动轴坐标值会自动存放到相应轴的用户宏变量中。
G31跳步指令的格式为:G31 L_IP。其中:L后面是外部跳步信号的触发点编号,该编号要在PLC编程器里先设定好,与PLC触发点保持统一;IP为需要跳过的示教G代码段。
具体操作过程:在华中8型数控系统的操作面板上增设一个“位置录入”的跳步按钮,当旋转手摇脉冲发生器对某一运动轴进行示教到达预定位置时,按下“位置录入”按钮,PLC动作并触发G31跳步指令,程序跳转至下一行继续执行。由于机床各个运动轴的坐标值会存储在固定的用户宏轴变量中,要获取该运动轴在示教过程中的实际坐标值,只需从对应轴的用户宏变量中提取即可。华中8型数控系统约定:轴宏变量的起始序号为60000,每根轴分配100个宏变量,其中宏变量#60012、#60112、#60212分别存放逻辑轴轴(0号)、轴(1号)、轴(2号)在收到测量信号时的实际位置值,轴、轴、轴分别对应于该机床的钻孔进给轴、攻丝进给轴、滑台移动轴,这些宏变量可以直接在宏程序中进行赋值或引用。
以G81钻孔指令的示教为例,其示教动作分解为快进至初始位置→主轴正转并快进至点→工进至点→退回至初始位置,主要G代码示教程序段为
G31 L1 G01X[#54056]F[#54002];
#54006= #60012/100000 ;
M03S[#54010];
G31 L1 G00X[#54057];
#54007= #60012/100000 ;
#54001=0 ;
N80 #50002= #50001 ;
G31 L1 G01X[#54058]F[#54009];
#50001= #60012 ;
IF[INT[#50001/100]NE INT[#50002/100]]
GOTO N80 ;两次录入坐标值不同时再示教
ENDIF
#54008= #60012/100000 ;
G00 X[#54006];钻孔轴退至初始位置
其中:宏变量#54056、#54057、#54058分别存放示教过程中钻孔轴的初始指令位置、点指令位置、工进点指令位置;经示教调试后按下“位置录入”按钮时,跳步信号接通,此时钻孔轴的初始实际坐标、点实际坐标、工进点实际坐标分别存放到#54006、#54007、#54008,待后续生成加工G代码时调用;100000为长度计算分辨率。
为减少示教过程中在运动轴还未达到预定位置时,因发生误操作而触发跳步指令,在示教宏程序段中加入IF语句,采用连续按下两次“位置录入”按钮的双击方式,如果两次之间没有转动手摇脉冲发生器,录入的是同一坐标值,则向下跳转,否则返回上段重新示教。
华中8型数控系统的攻丝指令G84包含多个点位,无法直接示教,同样通过手摇控制器和示教G代码共同完成。首先,对G84攻丝指令的动作按运动顺序进行拆解,分成多个单步示教程序段,具体分为:刀具快速移至初始位置→快速移至点→主轴正转并工进至点→主轴停止→主轴反转并退回至点→主轴停止→快速退回至初始位置;然后,将运动轴的控制模式切换到手轮插补模式,这样数控系统就会自动接收由手轮插补量变化而引起的移动指令,通过摇动脉冲发生器实现手轮的进给,攻丝轴的运动方向和运动速度均通过手摇控制器控制。
为保证螺纹的加工精度,该系统中采用刚性攻丝的方式。由于轴向运动和旋转运动分别由各自独立的伺服电机驱动,必须保证轴向进给速度和主轴转速之间满足关系式(1),以实现两个轴的同步联动。
=/
(1)
式中:为螺纹螺距,mm;为轴向进给速度,mm/min;为主轴转速,r/min。
在手摇示教G代码中,需要确定螺纹加工深度即轴向进给量为时,主轴的旋转角度。它们应满足同步联动关系,如式(2)所示:
(2)
该系统中攻丝进给轴被定义为轴、攻丝主轴被定义为轴,故采用G01加工指令编写示教G代码的基本格式为
G01 G91 Yh Bα Fs
其中:h为轴的进给量,mm;α为轴的旋转角度,(°);s为攻丝主轴的转速,(°)/min。
借助华中8型数控系统提供的接口函数及GUI界面库进行二次开发,G代码宏程序中螺纹加工参数通过创建的螺纹参数界面进行输入给定,其值会存放在指定的用户宏变量中。通道1中宏变量#54015存放攻丝主轴转速(r/min)、#54016存放螺纹螺距(mm)、#54017存放螺纹加工深度(mm),通过这些用户宏变量完成G84攻丝指令的分步示教过程,其示教G代码为
G31 L1 G01 Y[#54062]F[#54053];
#54012= #60112/100000 ;
S[#54015];
G31 L1 G00 Y[#54063];
#54013= #60112/100000 ;
#54067= #54064-#54063 ;
G31 L1 G01 G91 Y[-#54067]B[#54067*360/[#54016]]F[#54015*360]; 攻丝轴示教至点
#54014= #60112/100000 ;
#54017= #54013-#54014 ;
G01 G91 Y[#54107]B[-#54107*360/[#54066]]F[#54065*360]; 攻丝轴返回至实际点
G90 G00 Y[#54012]; 轴返回至实际初位
其中:宏变量#54062、#54063、#54064、#54067分别存放示教过程中攻丝轴的初始指令位置、点指令位置、攻丝点指令位置、示教螺纹加工深度;#54012、#54013、#54014、#54017分别存放跳步信号接通时攻丝轴的初始实际坐标、点实际坐标、攻丝点实际坐标、螺纹实际加工深度。
用户宏变量保存的人机界面中设置的钻孔参数、螺纹参数、示教参数等数据,可通过宏变量和寄存器传递到内核程序,供PLC和加工G代码程序使用,主要加工G代码段如下:
G01 X[#54006]Y[#54012]F[#54002];
G01 Z[#54004]F[#54001];
G01 Z[#54005]F[#54001]M03 S[#54010];
G98G81G90 X[#54008]R[#54007]F[#54009]P2;
G01 Z[#54011]F[#54001]S[#54015];
G98G84G90 Y[#54014]R[#54013]P2F[#54016]J2;
G00 Z[#54004];
为有效降低人工费用、节约硬件成本,该机床中采用双通道控制技术,同时支持两个加工工艺过程的控制,两个通道均拥有完全独立的CNC参数、通道轴、宏变量、G代码加工程序等,且共用一个显示器,采用分屏显示模式。华中8型数控系统具有多通道控制功能,只需对与多通道有关的参数进行合理配置,就能实现钻攻组合加工的功能。
双通道参数配置主要有机床用户参数、通道参数和坐标轴参数,包括设置最大通道数、配置各通道每个进给轴的轴号、设置轴类型。文中钻攻组合机床采用双通道结构形式,通道数为2;每个通道配置4个伺服轴,分别对应、、、运动轴,通道0的逻辑轴号依次定义为0、1、2、5,该轴号均置位为1,轴标志表示为二进制0000 100111或十六进制0×27,通道1的逻辑轴号依次为6、7、8、9,轴标志为1111 000000或十六进制0×3C0;、、轴为直线轴,其轴类型均置1,轴是主轴,轴类型置10,从而建立通道进给轴与逻辑轴之间的映射关系。
两个通道的PLC配置也采用独立控制方式,互不干扰。示教钻攻时只能有一个通道处于激活状态,需对两个通道分别执行示教操作,通过在控制面板上设置的“通道1”、“通道2”按键来实现切换。加工时可以在数控系统内通过菜单按钮完成两个通道的切换,既可实现各通道的独立加工,也可同时激活两通道,实现并行加工。
华中8型数控系统提供了API应用接口及事件响应机制,能够通过定制菜单按钮实现人机交互界面的二次开发,主要包括菜单定义、参数列表定义、图形显示绘制、消息响应、数据更新、界面刷新等内容。
在华中8型数控系统提供的二次开发包中,通过程序bmppathdef.cpp添加菜单图标的存放路径,在menu 818.cpp程序的结构体enum MenuIndexDef{}里定义菜单变量和排列顺序,并添加各菜单按钮的响应代码,便可完成多级菜单的定义。参数列表定义包括参数名称的命名、参数变量的定义、参数值的设置与获取、列表的信息显示与消息响应等,如增加teach_chan1_para_redraw()、chan1_para_set_content()等函数,在menu818.cpp程序中调用这些函数,执行相应的功能。图3所示为该钻攻组合机床参数显示的可视化界面。
图3 钻攻组合机床可视化界面
该机床主要完成钻孔和攻丝工艺,在操作方面对华中8型系统标准面板进行扩展,增加了“通道1、通道2、手动攻丝、位置录入”4个按键,为每个通道配备1个操控器,分别设置了工件夹紧、松开、启动、暂停、急停按钮5个按钮。该组合机床在厦门某公司得到了应用验证,效果良好。现场应用情况如图4所示。
图4 现场应用
(1)在华中8型数控系统上进行二次开发,采用G代码用户宏程序的方式,实现了钻攻动作的示教功能,可以直接通过示教来获取加工对象的工艺参数,并借助宏变量将参数值传递给加工G代码,能够在示教操作完成后直接生成加工G代码,操作便捷,省时高效。
(2)设计了双通道控制的组合机床,加工过程互相独立,既节省硬件成本,也减少了操作人员,降低了人工成本,适合大批量生产。
(3)采用双击方式录入示教坐标位置,有效克服了因误操作需从头重运行示教G代码的不足,节省了示教时间。