魏双羽,白跃伟+,Paul de Vrieze
(1.上海第二工业大学 智能制造与控制工程学院,上海 201209;2.伯恩茅斯大学 科学技术学院,英国 伯恩茅斯 BH12 5BB)
通过在智能制造系统中建立设计、工艺、制造、质量检测的全流程数据驱动机制,使得制造活动的各个环节相互关联,提高了异构系统间的数据互操作,有效解决由于信息孤岛带来的数据来源不统一、关联信息获取困难、数据模型维护困难等问题。由于制造系统通常由许多工业软件组成,如CAD/CAPP/MES(manufacturing execution system)/CMM(coordinate measurement machine)等,企业通过使用这些软件,支持不同阶段开展的制造活动,并管理由此产生的业务数据以及后续使用。因此,制造数据的互操作问题是制造系统建立和维护领域长期存在的一个技术问题。
CMM是目前制造业广泛采用的零件加工质量检测方法之一。利用CMM检测结果,一方面可以提供可信赖的质量报告,另一方面还可以通过数据分析为设备维护管理、工艺路线改进、产品模型改进提供基础数据。CMM在生产检测过程中发挥着至关重要的作用,通过CMM检测结果来制定改进措施,可以确保制造系统持续生产高质量零件[1]。近年来,CMM系统控制技术、测量软件技术均发展迅速,使得零件检测过程变得更加自动化,而且由于新技术还提供了使用更多检测数据的可能性,这为利用MES车间制造质量管理模块来改进车间生产过程提供了有利条件[2]。
开展CMM数据互操作机制研究,有利于解决智能制造系统普遍存在且亟待解决的3个关键问题:
(1)通过MES关联CMM设备校验数据,以及刀具使用数据,应用大数据和人工智能技术,建立机床精度预测模型和刀具参数调整预测模型,开展有预见性的设备维护保养,避免由于维护不当而造成关键设备停机,从而导致经济损失,同时也可减少这些关键机床的维护成本。
(2)通过MES关联CMM设备校验数据,将零件几何特征的加工数据与工艺模型关联,分析工艺参数与实际零件加工质量数据的关联性,改进加工工艺流程和工艺参数。
(3)利用CMM设备校验数据,将几何特征加工数据与设计模型关联,实现设计—制造数据模型关联维护,融入加工成本等因素,改进设计模型。
早期出现的三维数据交换模型ISO 10303-203:2011(STEP AP 203、214)仅包含形状信息,用于下游制造的应用程序提取工程信息(如表面粗糙度、形位公差)来解决工艺所需信息并不完善。为了解决设计、工艺、制造、检测各个环节的数据互操作问题,ISO标准化小组提出了STEP AP 242(ISO 10303-242)“基于管理模型的三维工程”规范[3],用以引导用户通过三维模型来捕获语义产品制造信息(Product Manufacturing Information, PMI),帮助模型信息能够被下游制造环节使用,以支持智能制造。在多学科协同工作环境下,MBD(model based definition)/MBE(model-based engineering)建模方法广泛应用,开始取代传统的工程图纸和文档来指导下游制造。
Venkiteswaran等[3]通过在设计模型中建立附加内部约束公差图(Constraint Tolerance Graph, CTG)文件方法,开发了从AP 203模型到AP 242模式的语义转换器,支持下游应用程序自动获取零件模型中的语义GD&T数据,如CAPP、计算机辅助检验(Computer Aided Inspection, CAI)、计算机辅助公差系统(Computer Aided Tolerance System, CATS)和CMM;Trainer等[4]认为利用这种带有嵌入式PMI的STEP-AP242模型具备了CAD-CAM和CAD-CMM单向数据交换的能力,但Hedberg等[5]认为在CAD和CMM互操作过程中的相互作用研究还不够,即缺乏从CAM和CMM反馈到CAD模型的研究。
目前MBD的应用主要在设计上游端,下游制造和检测过程中还没有普遍应用,这个过程还需要付出更多的努力。为此,Yang等[6]提出并开发了一个面向工艺工程师的制造代理模块,用于在纯三维环境下,将设计阶段与制造阶段连接起来,讨论了系统框架和核心功能模块,开发了原型系统。
在CMM-CAD数据集成方面,Martins等[7]利用数据接口将CMM数据导入CAD,将测量点云与三维CAD模型集成,开发了可以用于测试的软件工具,并以分叉形状的金属板为例进行了说明;Michaloski等[8]探索了一种基于MTConnect的Web实时质量报告,以CMM检测数据互操作为例,通过建立MT-Connect-XML的Web实时质量结果案例进行应用说明。
综上所述,目前与质量检测有关的数据互操作主要存在两个不足:
(1)大多数研究主要关注MBD/MBE建模,支持从上游的设计端向“工艺—制造—检测”下游环节传递CAD模型PMI信息,下游质量检测(包括CMM)再根据模型PMI开展检测工艺规划,而针对质量检测数据的互操作关注较少。
(2)目前开展的CMM检测数据互操作研究主要是围绕检测系统创建的检测报告进行的,受限于CMM创建的检测报告内容与格式,如果要对CMM检测数据进行深入分析,还需要原始检测数据,而这方面的研究还不多。
利用统一建模语言(Unified Modeling Language, UML)的USER-CASE图可以描述CMM互操作中间层需求。在CMM互操作场景中,涉及的角色有:CMM操作者、CMM数据使用者、MES系统使用者、CAD/CAPP设计员以及车间设备维护工程师(如图1),与各角色有关的活动分别描述如下:
(1)CMM操作者 涉及的活动有检测路径规划、执行在线/离线检测、基于CAD模型进行几何精度评价。其中,执行在线/离线检测时,CMM软件开始自动记录DMIS(dimensional measurement interface standard)文件,将测量过程中的命令和原始数据按照DMIS规范进行自动存储,形成DMIS文件;基于CAD模型进行几何精度评价时,CMM软件可以将结果输出到测量报告供用户使用,这也是目前大部分关于CMM数据互操作研究的内容。
(2)CMM数据使用者 主要是指利用CMM数据互操作中间层接口,根据CMM原始数据,自定义所需的几何评价指标,包括从几何原始中提取几何要素(如对圆柱提取轴线、对圆提取圆心,或圆所属平面的法向矢量等),定义CMM报告中不包括的几何评价指标项。这些数据可以提供给DFM(design for manufacturing)改进CAD模型,可以提供给CAPP改进不合理的工艺流程,亦可以提供给车间设备管理小组用于分析关键设备运行状况,是否需要提前或推迟干预性的设备维修维护计划。
(3)MES使用者 使用者可能来自3个业务领域,即车间派工、车间生产质量管理、车间制造资源管理。其中,车间生产质量管理采用统计分析工具,如果发现由于设计模型不合理造成难加工的问题或设计质量不易保证的问题,将定期将问题反映给设计部门,设计部门会根据MES的质量管理小组反馈的问题,结合DFM软件分析来改进CAD模型;如果发现由于工艺方案规划不合理而造成的加工质量问题,车间质量管理小组会定期将这些问题反馈给工艺设计部门。
(4)CAD/CAPP设计员 根据车间质量管理小组的加工质量统计分析,结合由CMM-DIL(CMM Data Interoperation Layer, CMM-DIL)自定义的几何评价指标数据,综合分析CAD模型/CAPP方案是否需要修改。
(5)车间设备维护工程师 根据车间质量管理小组的加工质量统计分析,结合由CMM-DIL自定义的几何评价指标数据,对关键机床设备进行分析,判断是否可以按照设备维护计划来实施,是否需要干预性维修活动介入,以避免由于设备问题而发生经济损失。
要解决如何充分利用CMM测量信息,为MES的质量管理模块提供数据支撑的问题,改进车间关键设备维护管理、CAD/CAPP模型改进,关键是要解决CMM数据互操作组件层CMM-DIL如何可靠、实时获取CMM原始测量命令和数据,才能通过CMM-DIL提供的个性化数据定义工具,为需求CMM检测数据和信息的对象提供服务。
因此,CMM原始数据获取过程将涉及两部分:CMM测量软件和CMM-DIL模块。下面通过角色及其关键活动分析来说明CMM原始数据获取过程(如图2)。
(1)活动参与者
1)CMM操作者。需要介入到两个人机交互的活动中:活动1,针对特定的几何测量对象,要启动一个在线/离线测量任务,如果是自动模式,需要CMM运行DMIS程序,通过CMM软件将测量命令逐一发送给MDE(measurement device equipment);活动6,将测量结果汇总成测量报告,或通过人机交互对特定的几何元素进行评价,如平行、垂直、同轴等,再合并生成测量报告。
2)CMM数据消费者。需要介入到3个人机交互活动中:活动7,主动浏览CMM检测报告;活动9,通过人机交互,在CMM-DIL自定义需要几何元素评价数据;活动10,根据活动9订阅的项目,自动获取由CMM中间层推送的几何元素评价数据。
(2)关键活动
活动1:针对特定的几何原始,CMM操作者通过人机交互运行一个在线/离线测量任务;若在自动模式下,可通过人机交互运行DMIS程序(完整或部分),CMM软件将依据DMIS命令,将测量命令和数据按照I++(inspection-plus plus)协议逐一发送到MDE,由MDE执行具体的检测任务。I++是由欧洲的奥迪、宝马、戴姆勒、沃尔沃等企业联合编制的一个CMM行业集成规范,目的是支持不同CMM软件方便地与DME(dimensional measurement equipment)集成[8],从而实现软件逻辑与硬件隔离。
活动2:MDE收到测量命令后,驱动测头触碰零件表面,触发测量中断信号后,由运动控制器锁存测量点数据,然后按照I++协议可靠反馈给CMM软件,CMM测量软件将暂存当前的测量点数据。
活动3:CMM GUI收到运动控制器反馈的测量点后,测量对话框界面上的测量点数开始逆序计数(n=n-1)。若此时要求的测量点数为零,则测量软件自动跳转到活动5,结束当前测量;否则,将等待MDE下一个测量点。
活动4:CMM操作者通过人机交互,可以在测量对话框中增加或减少当前测量点数量。
活动5:测量软件获取当前测量点后,逆序计数为零,测量软件将自动结束当前测量任务,再根据获取的测量点进行几何拟合,并根据理论值与实测值进行误差计算。
活动6:测量软件拟合完成后,通过调用API函数将测量原始数据(包括测量命令与实际测量点数据)保存到DDE(dynamic data exchange)指定内存。
活动7:CMM-DIL可以通过DMIS接口访问测量软件的DMIS程序,通过解析DMIS可以获取测量系统当前的测量对象及其测量原始数据。
活动8:利用API访问DDE内存,获取当前的测量对象和原始数据,并将其保存到个性化定义的数据对象中。
活动9:通过GUI个性化定义要求的测量数据,将CMM-DIL获取的DDE内存的当前测量原始数据按照预定义的格式存储。
活动10:根据活动9订阅的项目,自动获取由CMM中间层推送的几何元素评价数据。
测量软件在元素测量结束时,按照一定的规范格式,将测量原始数据写入DDE内存,然后CMM-DIL通过监听DDE内存数据变化情况,调用API访问DDE内存中的测量原始数据。现将CMM-DIL访问这些数据的流程总结如下:
CMM-DIL通过CMM软件提供的API监听DDE内存的数据变化情况。当CMM软件结束一个测量任务,将原始数据写入DDE内存后,CMM-DIL可以侦听到这个变化;CMM-DIL根据读取到的测量命令,创建一个临时测量原始对象,然后逐条将测量原始数据读出;当读取完一条完整的测量任务及其原始数据后,CMM-DIL将结束当前的数据读取活动(如图3)。
一个典型元素测量原始测量数据命令格式如下:
//测量命令
Measurement command/Feature type(e.g., POINT, LINE, PLANE, CIRCLE, CYLINDER, SPHERE, CONE, CURVE, NURBS SURFACE, and the other specific features, e.g, SLOT etc.), Feature ID, Target point number to be probed
GOTO/x,y,z//Go to the point of(x,y,z)
Measurement original point data/Coordinate System Type, x, y, z, i, j, k // probed point(x, y, z)and probing direction/vector(i,j,k)
Measurement original point data……
Finish the measurement
当CMM-DIL侦测到DDE内存数据发生变化后,调用CMM软件提供的API依次读取上述典型测量元素的原始测量数据(如三坐标测量软件DIRECT-DMIS提供的RealTimeDataCall.dll库或PC-DMIS提供的PCDLRN.dll,可以直接访问内存中的底层测量数据),然后按照预定义的几何原始评价指标格式发给测量数据使用者。
本章利用一个实际案例来说明CMM-DIL如何与CMM集成,实时读取CMM软件检测时的原始数据。案例使用的CMM软件是本项目组自主研发的DIRECT-DMIS软件(http://www.weiyuansoft.com/)。
表1 Inspection Requirement of CAD/CAPP
具体测量步骤是:在CMM软件中检测孔所在平面,然后测量圆并将圆投影到平面,完成图纸要求的圆直径尺寸测量。MES中质量管理模块通过CMM-DIL可以不断收集这些信息,然后用软件功能提取圆的特征信息(如圆心所在平面矢量等),再计算“平面—圆轴线矢量”的垂直度,并将计算结果存入数据库。
测量软件DIRECT-DMIS打开测量对话框,手动测量目标对象(Hole B),手动驱动CMM测量了3个点(如图5a),可获得测量结果(如图5b)。同理,可以测量Hole A以及圆所在平面(PL1),并通过测量报告得到测量结果。
CMM-DIL调用DIRECT-DMIS底层的RealTimeDataCall.dll库,获取底层实时测量数据时序图,如图6所示。
获取底层实时测量数据的过程是:CMM-DIL首先调用RealTimeDataCall.dll的接口,读取CMM DDE内存数据,获得数据块句柄;然后读取数据块中的Elements,并读取公差数据块数据;完成全部数据读取后,将这些数据转换成标准DMIS命令,供其他CMM数据消费者使用。读取了运动控制器发出的I++数据段如下[9]:
//定义返回数据格式
10:55:37.934 Receive:00011 OnPtMeasReport(X(), Y(), Z(), IJK())
10:55:37.984 Sendout:00011 & //收到测量软件命令
10:55:38.004 Sendout:00011 % //结束当前会话
//到达要求到达的GOTO移动点,并返回测量软件当前坐标
11:00:51.942 Sendout:E0000 # GoTo(X(-255.2000), Y(210.8601), Z(25.7039))
//返回第一个测量点坐标至测量软件
11:00:52.764 Sendout:E0000 # PtMeas(X(-255.19915193),Y(225.49917483), Z(25.70396224),IJK(0.00784314,-0.99996924,0.00000000))
…
//返回第二个测量点坐标至测量软件
11:00:55.476 Sendout:E0000 # PtMeas(X(-280.30098603),Y(203.17146618), Z(25.70366100),IJK(0.99223335,-0.12439040, 0.00000000))
…
//返回当前第三个测量点坐标至测量软件
11:00:58.430 Sendout:E0000 # PtMeas(X(-257.99838641),Y(174.67693614), Z(25.70366921),IJK(0.11756461,0.99306524,0.00000000))
DMM-DIL根据收到的I++数据段,形成标准的尺寸接口标准规范语言DMIS如下:
MEAS/CIRCLE,F(CR1),3
GOTO/-255.200000,210.860100,25.703900
PTMEAS/CART,-255.199152,225.499175,25.703962,0.007843,-0.999969,0.000000
GOTO/-255.176500,222.499300,25.703900
GOTO/-257.324000,203.172000,25.703900
PTMEAS/CART,-280.300986,203.171466,25.703661,0.992233,-0.124390,0.000000
GOTO/-277.325300,202.798800,25.703900
GOTO/-257.997900,200.651300,25.703900
PTMEAS/CART,-257.998386,174.676936,25.703669,0.117565,0.993065,0.000000
ENDMES
OUTPUT/FA(CR1)
CMM数据使用者可以调用DMM-DIL提供的几何对象评价个性化定义功能,获得从CMM测量报告不能直接得到的几何信息。
例如可以用测量原始Hole B创建圆的轴线LN1(如图7a),然后调用垂直度评价对话框(如图7b),获得圆(Hole B)轴线LN1与圆所在平面(PL1)的垂直度评价结果。
CMM测量软件提供的检测报告(格式和内容)通常是固定的,用户不能修改。如果需要的质量数据不能直接从测量报告获得,用户就要通过其他方式来解决,例如手工计算等,这样可能会带入计算误差。本文针对离散制造业关键业务活动质量管理问题,通过采集三坐标测量系统(CMM)底层实时测量数据,为质量管理提供更丰富的检测数据。例如,可以支持车间开展关键设备预防性维护管理,也可以为工艺路线改进、产品设计模型完善等技术改进提供基础数据。
本文通过设计的CMM互操作中间层CMM-DIL开发方法,建立了一个CMM数据使用者和CMM软件间的数据互操作机制,利用DDE方式可以方便地获取CMM原始测量数据,并以一个简单集成案例进行了集成说明。
本研究的目的不是要替代测量软件的检测结果/检测报告,而是为MES软件的质量管理模块提供更底层、更全面的实时数据,以更好地支持基于测量数据分析的质量分析与改进。但是,这种CMM数据互操作性还是局限在CMM软件提供的底层数据访问模块,目前支持访问测量机运动控制器的I++规范但不支持第三方用户直接通过运动控制器获取CMM底层测量数据,因此未来I++协议还需要进一步支持更开放的数据互操作。