王平江,林灵,刘继蕾,王信,陈吉红
(华中科技大学机械科学与工程学院 国家数控系统工程技术研究中心,湖北武汉430074)
珩磨机 (Honingmachine),是一种利用珩磨头对缸体内壁进行磨削精加工的专用机床[1],主要用于对车用、船用发动机油缸内壁、轴承及液压油缸等内孔类零件的精加工[2-3]。其中,大孔径数控珩磨技术是大型船用发动机生产中必不可少的关键技术之一,发动机油缸内壁的加工精度由加工的大型珩磨机的精度决定,而油缸的精度直接决定着船用发动机的效率和使用寿命。相比国外,目前,国内大孔径数控珩磨技术还比较落后,技术水平还停留在单进给控制、无自测功能等普通珩磨机方面。根据市场对于大孔径、深孔径零件的加工精度和加工效率的要求,对大孔径珩磨加工的“龙门数控深孔双进给自测珩磨机床”的需求迫在眉睫[4-6]。文中探讨了在华中HNC-8的数控系统平台上,开发具有集自动测量、双进给、高速短行程及珩磨压力自动控制等功能的珩磨机专用数控系统的方法,重点分析了自动测量、数据分析以及加工等过程中G代码解释器、插补器背景程序以及PLC间信息双向传递的技术难点。
珩磨机床的机械结构如图1所示。
图1 数控珩磨机机械结构图
所研究的珩磨机为C轴、Z轴及X轴的三轴伺服控制的数控机床。X轴为工作台运动轴,有两个特殊位置,分别为下料工位和工作工位;C轴为伺服主轴电机,控制珩磨头的旋转速度;Z轴为伺服液压缸,控制主轴箱 (珩磨头)的上下运动。
珩磨加工主要是通过珩磨头上的油石与待加工零件之间的螺旋状相对运动实现表面的磨削加工,在待加工零件上磨出规定的表面粗糙度与特定形状的网纹。加工工件的孔径在全长不同位置处有不一样的尺寸偏差,甚至会出现不同程度的局部过大或过小。当出现局部过大时,该工件视为废品。为了提高工件的加工效率,需要珩磨机能根据加工工件的具体情况进行加工。文中采用的是具有粗、精珩磨条双进给的珩磨机。粗珩加工主要使工件达到要求的尺寸精度,精珩加工主要使工件达到要求的表面粗糙度[7-8]。
根据珩磨机的加工工艺要求,采用的珩磨机加工流程图如图2所示,采用集在线测量功能的长短行程组合加工的加工模式。当工件内孔径尺寸均匀时,采用长行程加工。当工件全长上出现某些局部区间内径小于规定值时,则在这些局部区域采用高速短行程珩磨加工,直到内孔全长上尺寸基本一致,再开始进行长行程珩磨加工。长、短行程加工方式的决定及其组合,是通过图2中的模块2对全程上采集的工件内孔径进行分析而确定的。工件内孔径的采集由图2中在线测量模块1完成。这种长、短行程合理组合的加工方式,将大大提高工件的加工效率、尺寸精度及表面粗糙度。
图2 具有在线测量功能的数控珩磨机长短行程组合加工的流程图
文中所述的加工控制功能是基于华中HNC-8的数控系统二次开发平台开发的。如图2所示,珩磨机加工主要包括4个功能模块:模块1在线测量、模块2数据分析、模块3短行程加工及模块4长行程加工。这些功能模块在HNC-8上需要G代码解释器、插补器、PLC以及背景程序的相互配合、协调来实现。其中运行在解释器中的G代码程序实现珩磨加工的流程控制;PLC程序实现珩磨压力输出控制以及珩磨头粗、精珩磨条的双进给切换控制等;插补器实现运动控制及孔径的采样;背景程序完成采样通道的配置、采样数据的处理、处理后数据的分析。如图3所示,由于G代码解释器 (以下简称G代码)、插补器、PLC以及背景程序处于4个不同的线程,因此在珩磨加工中必须在4个线程中建立良好的信息交互渠道来保证控制的同步关系及加工工艺参数的传递。文中采用的方法是:在G代码中实现整个珩磨加工的主流程控制,即图2的加工流程图可以理解为是整体加工的G代码流程图;当需要插补器、PLC或背景程序完成相应的工作时,由G代码向插补器、PLC及背景程序发出工作命令,同时PLC或背景程序向G代码解释器反馈工作完成情况及加工参数的信息。下面分别通过在线测量、数据分析、短行程加工 (由于长行程加工和短行程加工在技术实现上的关键技术点类似,因此以短行程加工为代表介绍)中所涉及的关键技术,阐述集成化的珩磨加工的原理。
如图3所示,在一定的时间片内,可以将G代码、PLC、插补器以及背景程序看成是在4个线程中并行运行的,因此珩磨机的复杂的流程控制的关键技术之一是如何实现4个线程之间的信息交互及同步。在HNC-8数控系统的二次开发平台上,G代码、PLC程序、背景程序是用户可以进行修改的。华中八型提供了特殊的用户宏变量,这些用户宏变量能在G代码和背景程序中读写。因此可通这种过宏变量实现G代码与背景程序间的命令、数据的发送和接收,实现信息的交互。在G代码中可通过自定义M代码向PLC发送命令,并可以通过华中八型的专用宏变量完成G代码与PLC之间的数据交互。PLC程序与插补器的数据交互可通过已定义的F、G寄存器进行。同时,背景程序通过二次开发的API接口函数可以读到F、G寄存器的值,因此背景程序也可以得到插补器的状态。通过上述方法,即可以实现4个线程之间的信息交互及同步控制关系。
图3 华中HNC-8数控系统并行运行的泳道图
2.1.1 在线测量模块中的信息交互技术
实现采样功能需要在G代码、插补器、PLC和背景程序这4个线程中完成相应工作,包括:通过运行在G代码解释器中的G代码指令实现采样功能的过程控制;在每个插补周期,插补器按照插补算法向伺服发送指令完成各轴的运动控制,以及在插补器的采样通道中完成采样功能;通过PLC令采样开始或停止;在采样开始前,定义的特殊G代码指令令背景程序进行采样通道的配置以及在插补器采样过程中,在背景程序中完成启动测头模拟量向数值孔径变换及绘制孔径实测图的功能。在G代码中调度插补器、PLC和背景程序完成相应的工作。根据G代码、插补器、PLC和背景程序4个线程的信息交互特点,设计的采样模块的流程控制如图4所示。当G代码流程控制需要背景程序采样准备时,G代码可以直接向背景程序发送命令,然后等待背景程序完成命令执行的信息;当需要插补器开始采样时,G代码先向PLC发送开始采样的命令,当PLC接到该命令后,便向插补器发送命令,让插补器开始采样。当PLC接收到插补器已经开始采样的信息后,便向G代码反馈开始采样命令完成的信息。
图4 G代码程序、插补器、PLC及背景程序的在线测量模块中的信息交互
2.1.2 在线测量模块的实现
G代码中实现在线测量的难点主要为如何向插补器、PLC及背景程序发出指定的工作命令,并能够接收背景程序和PLC反馈的工作完成的信号,实现各线程间的同步工作。
(1)G代码调度背景程序技术
华中八型提供了5 000个用户宏变量 (范围为#50000~#54999,且为全局宏变量)供用户使用。该范围的用户宏变量可直接用于G代码程序的编写以及背景程序的读写。用户宏变量可在G代码程序中进行赋值、条件判断及表达式计算等。同时背景程序中可通过API接口函数读写该段用户宏变量的值。因此G代码或背景程序可通过用户宏变量来发送或反馈信息,这样就可以利用该段宏变量建立G代码与背景程序之间同步及信息传递的桥梁。本文,图4中,背景程序的采样准备模块与G代码流程控制之间的同步,是利用用户宏变量#50052来实现。在G代码采样子程序初始化中将#50052的初始值赋为0,标志新的一轮采样开始。华中八型G代码有超前解释的功能,目前,可以超前解释3 000行。为了避免由于超前解释,在执行#50052的赋值语句后,后面的G代码程序对#50052的赋值而覆盖掉当前对#50052的赋值,在#50052初始化赋值之后,加入G08的指令,以阻止G代码的超前解释功能。在G代码中将#50052值赋为1,向背景程序发出采样准备的命令,然后G代码程序等待采样准备完成的反馈信息。当背景程序检测到#50052的值为1时,便进行采样准备所涉及的一系列的工作。采样准备完成后,背景程序将#50052的值赋为2,向G代码反馈采样准备已经完成的信息。当G代码的while条件判断#50052的值为2成立时,立即跳出while循环。G代码便继续执行新的指令程序段,这个新的指令就是令珩磨头由初始位置向下运动。
(2)G代码调度PLC的技术
G代码可通过M代码调度PLC的工作,对于非标准的M功能,可以采用自定义M指令的方式实现。M代码除具有段前执行、段后执行的属性外,还具有是否需要反馈确认的属性。文中采样模块采用的自定义M代码有M82、M83,分别代表打开采样功能和停止采样功能。M82为段前执行、M83为段后执行,都具有反馈确认的属性。采样模块的G代码流程如图5所示。
图5 采样G代码的设计流程图
2.1.3 在线测量模块中自定义采样M代码在PLC中的实现
在线测量模块中,需要通过PLC实现NC系统开始采样和停止采样的功能。在华中八型中,插补器通过检测寄存器G2960.12、G2960.13的值来决定是否开始采样或停止采样。G2960.12为1时,表示PLC向插补器发出开始采样命令;G2960.13为1时,表示PLC向插补器发出停止采样命令。文中采用自定义M代码M82、M83实现由G代码程序使插补器开始采样和停止采样的功能。M82、M83在PLC中的具体实现如图6所示。图6中MGET和MACK是华中八型PLC提供的功能模块。该功能模块需要输入两个参数,第一个参数表示通道号;第二个参数表示M代码的编号。图5梯形图中,第一行当G代码中执行M82时,PLC中M代码编号为82的MGET为真,输出R290.0为1;第二行,R290.0为1,则置位G2960.12和复位G2960.13;第三行,F2960.12为1时,表示插补器已经开始采样,则PLC向G代码反馈信息,表示M82执行完毕。此时,G代码便可继续执行下一个G代码指令。
图6 M82、M83在PLC中的具体实现
2.2.1 在线测量模块中数据采集与处理
数控珩磨机通过在线测量获得加工工件不同位置处的孔径大小。NC系统开始采样后,气动测量仪随着珩磨头从上采样点运动到下采样点的过程中按照采样配置进行采样。在这段时间里,插补器每隔一个采样周期,采集3个气动测量仪的信号 (经过模数变换)到指定的采样通道中。为在全长上进行采样,并分析全长上的孔径分布,开通了四路采样通道,一路采样通道记录由Z轴编码器反馈的当前直径测量的Z轴绝对位置值,另外三路采样通道分别记录气动测量仪的反馈值,然后计算在各个Z轴位置处孔径值。
数控珩磨机用气动测量仪检测孔径大小原理,如图7所示。图7中,△ABC的外接圆表示在某轴截面处,加工工件的内孔。P为测量仪中心的位置,在测量仪上有3个气动测头,夹角互为120°。这3个测头分别得到PA、PB、PC的长,对应图7中的a、b、c。气动量仪将a、b、c转换为电压值,经过华中八型HIO-1000模拟量输入输出模块接入数控系统。电压值在数控系统中A/D转换为数字量值,放入指定寄存器中。一般情况下,长度值、电压值、数字量值的对应表如表1所示。
图7 工件加工孔径气动矢径采样及工件内径计算图
表1 在线测量长度值、电压值、数字量值对应表
当插补器开始采样后,采样通道中每隔一个采样周期将获得一组由气动测量仪和Z轴编码器反馈的数据。背景程序则在每个刷新周期 (一般为采样周期的整数倍)取出本刷新周期4个采样通道中所有新采集的数组。然后对每一组数据进行处理,计算出每一个采样时刻下Z轴位置所对应的孔径。
对于每一组数据的处理方法是:将由气动测量仪反馈的3个数字量值按照表1进行线性插值,得到3个测头与加工孔壁的距离a、b、c。
在△PAB中,根据余弦定理得a'
同理得 b'、c'为
在△PAB中,根据正弦定理得△PAB的面积S△PAB
同理得 S△PAC、S△PBC为
则△ABC的面积S△ABC为
根据三角形正弦定理,
2R=a'/sin∠BPC
可推导出三角形面积S△ABC、三边a'、b'、c'与外接圆直径D的关系为
根据公式 (1)、(2)、(3)、(4)、(5)可得孔的直径D为
2.2.2 G代码程序与背景程序的数据分析模块的信息交互
由于背景程序用C语言编写,具有强大的数据计算能力,因此数控珩磨机的缸径数据分析模块由背景程序完成。则在背景程序与G代码程序之间存在信息交互的需求,其信息交互关系如图8所示。文中采用用户宏变量#50051实现数据分析模块中G代码程序与背景程序间的信息交互。采样结束后,G代码将#50051赋值为1,向背景程序发出数据分析开始的命令,然后G代码进入while循环,等待数据分析完成。背景程序检测到#50051值为1后,开始对已采样的数据进行分析。分析完成后,背景程序将#50051赋值为2,向G代码反馈数据分析完成信息。G代码检测到#50051值为2后,跳出while循环。如此信息的交互表明本次数据分析模块调用结束,下一步进入G代码程序中的珩磨加工模块。
图8 G代码程序与背景程序的数据分析模块中的信息交互
2.2.3 孔径采样数据的图形化表达及分析处理
在线测量模块对采样数据处理后可获得加工工件不同位置处的孔径大小,如图9所示,曲线部分表示加工工件内孔孔径随Z轴位置的值,本例中加工工件有两处不符合要求孔径段,分别为①、②。
图9 基于测量数据的加工工件孔径分析图
背景程序中的数据分析模块需要进行以下几个方面的分析:(1)加工工件是否出现局部过大或过小;(2)每一段局部过小段的范围、最小直径以及最小直径处的Z轴位置;(3)当只有局部过小段,且段数小于6时,根据每一段局部过小段的具体情况,按照一定的算法,分析出本段的加工参数,如珩磨方式 (粗珩或精珩)、珩磨压力和珩磨时间等;(4)当工件没有局部过大和过小段,或局部过小段太多时,根据工件内径整体情况分析出整个工件的加工参数。数据分析的结果记录在用户宏变量中,如表2所示。值得注意的是,每一次数据分析前,需要将表2中的用户宏变量全部赋值为0。
表2 用户宏变量记录数据分析结果
2.3.1 短行程加工模块G代码程序设计
如表2所示,根据数据分析的结果,当#50052的值为2时,采用短行程加工。短行程加工的G代码设计流程图如图10所示。短行程G代码根据记录短行程加工段数的用户宏变量#50053,依次判断是否需要执行本段的加工模块。
图10 短行程G代码程序流程图
由于每一个加工段的加工参数不一定相同,因此每一个加工段单独使用一个加工模块进行加工。在加工模块中,插补器实现珩磨头的轴向运动控制,PLC实现珩磨条的进给控制、珩磨压力输出控制以及珩磨时间的控制,G代码实现整个过程控制。数据分析后,用户宏变量记录数据分析的结果。G代码可以直接读取用户宏变量的值,但是PLC不能直接读取宏变量的值。因此需要在G代码中传递当前段的加工参数到PLC,以便PLC中进行诸如珩磨压力、时间等的控制。短行程加工G代码程序中某单段加工模块的设计流程图如图11所示,在G代码中可以通过自定义M代码向PLC发送珩磨前准备以及珩磨后复位的命令。具体方法在上文已经提及过。但是需要解决如何通过G代码传递加工参数到PLC以及PLC如何传递珩磨时间到的信息到G代码。
图11 G代码短行程加工单段加工模块控制流程
2.3.2 短行程加工中PLC和G代码的信息交互
单段短行程加工模块中,需要从G代码中传递本段的加工参数到PLC,同时PLC要传递珩磨时间是否到的信息到G代码。如图12所示,华中八型具有PLC与G代码信息交互接口的宏变量#1190和#1191。#1190在G代码中可读,#1191在G代码中可读写。这两个宏变量在PLC中对应的寄存器,分别是F2604与G2584,所谓对应关系是指在数控系统软件中宏变量和寄存器使用的是同一个内存存储地址。因此#1191与F2604的值相同,#1190与G2584的值相同。
图12 PLC和G代码专用交互接口
当G代码和PLC需要进行数据交换时就可用到这两个宏变量。当G代码向PLC中传递数据时,先将数据赋值给#1191,然后在PLC中读取F2604的值,便能在PLC中获取到G代码传递给PLC的值。同理当PLC传递数据给G代码时,先将数据传递给G2584,然后在G代码中读取当前的#1190的值,便能在G代码中获得PLC传递给G代码的数据。
(1)G代码程序向PLC传递信息
G代码传递数据给PLC采用如图13所示的方法。该图是将短行程加工模块1的珩磨压力值通过G代码传递给PLC,然后在PLC中将该数据放到对应的储存珩磨压力值的R寄存器中,然后再向G代码发回应答信息,表示本次数据传递成功。数据分析完成后,#50058记录了短行程加工模块1的珩磨压力值,首先将需要传递的值 (比如#50058)放入宏变量#1191中,然后通过自定义M代码M50通知PLC从F2604中取数据,由M50告知PLC当前F2604中的数据类型。PLC获取命令后,将数据取出,放到指定的R寄存器中。G08为阻止G代码解释器超前解释的指令,其功能为当G08前面一行的G代码程序执行完毕后,解释器才向下面移动。避免由于超前解释而改变将宏变量#1191的值。
图13 G代码传递数据给PLC信息交互图
(2)PLC传递数据给G代码
PLC传递数据给G代码,也需要考虑如何告诉G代码当前宏变量#1190中的数据类型。如图11中,G代码需要获得单段加工珩磨“时间到”的信息。本文采用的方法如图14所示。首先通过自定义M代码M54,告诉PLC当前G代码需要获得珩磨时间是否到的信息,此时PLC会读取指定定时器的状态,当定时器时间到时,将寄存器G2584的第0位赋为1,否则,仍未0。此时G代码再去读#1191中的值,便能获得PLC传递过来的数值,若为1表明珩磨时间都,为0表明珩磨时间未到。值得注意的是,由于只有一个数据传递通道,所以在每次传递数据之前,需要对通道中的数据进行复位。
图14 PLC与G代码信息交互原理
2.3.3 短行程加工自定义M代码的使用
通过前面两小节对短行程加工流程图的设计,以及对PLC和G代码间数据交互的具体分析可知,可制定短行程加工中的自定义M代码表,如表3所示。
表3 短行程加工模块中的自定义M代码表
详细介绍了基于华中HNC-8数控系统二次开发平台开发全自动珩磨数控系统的技术,如图15所示。该专用数控系统通过气动测量仪对工件全长上的孔径进行在线测量,通过对测量数据的分析与处理,得到珩磨机的加工方式以及加工参数等加工信息。根据这些加工信息,通过G代码、PLC、插补器和背景程序的相互配合,实现了珩磨机加工的全自动控制。所开发的珩磨专用数控系统,提高了珩磨的尺寸精度和表面粗糙度,同时长、短行程合理组合的加工方式,也大大提高了珩磨机的加工效率。
图15 珩磨机现场图
[1]张云电.现代珩磨技术[M].北京:科技出版社,2007:1-33.
[2]鲍兴鹏.珩磨机床的应用与发展[J].世界制造技术与装备市场,2012(5):64-68.
[3]倪健,吴世友.珩磨技术及其在机械加工中的应用[J].装备制造技术,2012(1):158-171.
[4]杨维平.大型卧式珩磨装置的研制[J].科学之友,2012(17):39-40.
[5]雷竹峰.深孔珩磨的试验与研究[J].煤矿机械,2012,33(7):125-126.
[6] ZHAO Jiali,CHEN Shanshan,HU Chibing,et al.On the Basis of Fuzzy and PID double Control of Honing Machine Reciprocating Motion[J].Applied Mechanics and Materials,2012,105-107:423-428.
[7]HEIBY P.Electrohydraulic Oscillating Drive in a Honing Machine[J].Oelhydraulik und Pneumatik,1985,8(29):597-602.
[8]CHENGGuangzhen,CHEN Xuqin.Special Honing Machine for Cylinder Internal Hole[J].Applied Mechanics and Materials,2012,101-102:33-36.