魏 群,段国林,周桂霞
(1. 河北工业大学 机械学院,天津 300130;2. 河北理工大学 理学院,唐山 063009)
产品数据管理(PDM)是一门管理所有与产品相关的信息(包括产品设计文件、零件特征和产品特征等)和所有与产品相关过程的技术。其中,零件特征包括形状特征(描述零件的功能几何形状信息)、精度特征(描述零件的尺寸、公差和粗糙度等信息)、材料特征(描述零件材料的组成和条件)等;产品特征包括产品的版本特征(描述产品功能形状的升级换代信息)和装配特征(描述零件在最终产品中的装配关系信息),所有这些产品相关信息都必须基于产品的组成结构来进行组织和管理。
企业级的PDM系统在集成内部各种计算机应用系统的过程中,大部分采用“点对点”的集成方式,集成的双方采用统一的数据描述格式,通过交换双方都能识别的数据实现产品信息的共享,这种方式在实现企业间文档信息共享中存在较大的局限性。现代企业的发展要求PDM系统面对的是各种不同的应用系统,它不仅要同本企业内CAx、ERP系统实现产品信息共享,而且要同外部企业CAx、ERP甚至PDM系统之间信息共享,显然“点对点”的系统集成方式已不能满足需求,因此迫切需要建立一个集成环境下的统一的产品信息模式。STEP PDM Schema正是可以采用的一个STEP标准,它是CAD/ CAE/ CAM/CAPP中PDM交集的应用技术,提供了一种产品信息的统一描述方式,采用这种模式能实现企业内和企业间集成环境下的产品信息共享。本文利用STEP PDM Schema构建产品信息模型,包括产品、产品版本和产品关系等主要模型,为集成环境下产品全生命周期的信息共享与管理提供了技术基础。
STEP标准将产品定义为:通过加工或自然处理形成的任何物理对象、装配体或产品中的零部件都被看作是一个产品,另外,任何构成产品的零件或装配体以及制造单个零件的原材料也被认为是一个产品,产品的形状或功能随时间的改变产生了产品的版本。针对PDM对产品结构配置设计的要求,本文所建立的产品信息模型包括:产品及产品版本模型(描述产品及其版本的定义)和产品定义关系模型(描述产品的装配配置关系和不同产品之间的关系),EXPRESS-G表示如图1和 2所示。图中每一个方框表示一个类或一种数据类型,实线框表示实体,每个实体都有一个或多个属性,从一个方框引出一个箭头指向另一个方框,箭头线上标有一个名字,这个名字是前一个方框所表示的类的成员变量,变量的类型是箭头所指方框所示的类型,粗实线表示父类实体和子类实体之间的继承关系,细实线表示属性与实体之间组成关系或实体之间的引用关系。
1)产品及产品版本模型,如图1所示,模型包括:
图1 产品及产品版本模型
(1)product:产品类,属性包括id,name,description和category,id是一个产品在计算机系统中的通用标识符,即使是在不同的计算机系统中,对于一个产品实例,id总是唯一的;name提供特定产品的卷标名;description提供对产品的一般性描述。这三个属性都用EXPRESS语言的字符串数据类型(STRING)来描述,category表示该产品在总装配体中的级别(如总装配件、部件或零件),由level和description共同描述。
(2)product_version:产品版本类,产品版本(product_version)的类实例用于描述同类产品在不同时期的变化和当前版本的最新数据信息。产品版本(product_version)对象的属性包括id,description和of_product等,其中id提供在产品模型环境中的版本标识;description对产品版本进行描述;of_product用来指出此版本与哪个产品对象相对应。
2)产品定义关系模型,如图2所示,用于支持产品和产品相关信息之间的连接(如产品与其零部件之问的装配关系,产品与产品设计图纸、设计分析数据文件之间的关联等,模型包括:
(1)product_definition:产品定义类
用于描述产品和产品相关信息的关联特性。产品定义实体通过属性version与产品版本实例相关联,通过属性document将所有与产品相关的设计文件联系在一起(如产品设计图纸、工程分析数据和使用说明书等工程文件)。
图2 产品关系关系模型
product_definition用来标识那些与其它信息产生关联的产品实例的特征。它包括以下成员变量:version,description,id,documents。其中version用来定义产品某一版本的产品定义,version 为product_definition类型;description是对产品定义的简要说明(可选);documents是一个全局唯一的标识符,它指向了该产品的相关说明文档,例如:产品安全证书或质量合格证等。
(2)product_definition_relationship:产品定义关系类
是一个抽象类,不能创建它的实例,其用途是支持不同产品定义实例之间的结合,描述product_definition类不同实例间所存在的约束或关系情况,但并不说明关系的细节。由于关系的多样性和复杂性,所以对于某一方面的特殊关系或约束必须由更具体的类来说明,那些记录具体关系内容的类都是product_definition_relationship的派生类。
(3)product_definition_usage:产品构成关系类
实体product_definition_usage是product_definition_relationship的子类,定义了一个产品实例作为另一个产品实例组成部分的情况,即定义了一个父装配与子装配或零件之间的组成与被组成关系。需要说明的是,这种组成与被组成系并不一定是直接装配关系,如父装配A由子装配Bl和零件B2组成,而子装配Bl由零件Cl,C2,C3组成,则A与Bl、A与Cl、Bl与C3等之间的关系均为实体product_definition_usage的实例[10]。实体product_definition_usage在两个product_definition实体间还定义了两种特殊的子实体made_from_usage_option 和assembly_component_usage来描述两种产品的结构关系。两个product_definition实体实例之间的产品结构关系可以是made_from_usage_option或者是assembly_component_usage,但是不能同时是这两种[11],这种类型的关系通过product_definition_usage中的ONEOF来说明。
(1) make_from_usage_option:制造关系类(记为MFUO),指明一个产品是另一个产品通过机加工或其它处理形成的,同时也用于表达一个产品和它的原材料(也是一种产品)之间的联系。选择原材料的方法或理由由属性rationale给出,这种特殊关系的级别由属性ranking给出,用于制造另一种产品所需的原材料数量及其度量规则由属性quantity给出。
(2) assembly_component_usage:装配关系类(记为ACU),描述产品之间的装配关系,是一个抽象的类,不包含任何实体实例,用于将几个子类聚合在一起,区分不同的装配关系。
quantified_assembly_component_usage:装配数量关系类,用以指明在一个装配体中同一种零部件的装配数量,它是ACU类的一个子类,继承了超类的属性relating和related,属性quantity指明装配部件或零件的数量。
next_assembly_usage_occurrence:紧邻装配关系类,用于定义父装配和它的子装配或零件之间的紧邻关系,是ACU类的子类,只包含从超类product_definition_relationship继承的relating和related属性。
specified_higher_usage_occurrence:最终产品关系类,描述一个零件与最终产品之间的关系,从超类product_definition_relationship继承了两个属性relating和related,relating所对应的产品是related所对应的零件(也是一种产品)的最终产品,还有自己的两个专有属性upper_usage和next_usage。这个类描述了一个零件和它的超级(顶级)父类产品之间的最终产品关系。
promissory_usage_occurrence:借用关系类,定义一个零件或装配体用于另一个产品的信息,即借用关系。通过这个类也可以捕捉一个零部件最终可用于哪些产品装配的意图信息,即一个零部件在企业所有产品中的借用次数,这有益于对企业进行零部件的标准化,可将ABC分类中借用次数较多(一般大于3次)的C类专用件上升为B类通用件。
本文所建立的集成环境下的产品信息EXPRESS模型属于PDM软件的概念模式的信息模型。与具体的实现方式无关,而支持STEP数据交换与共享的底层实现机制必须是某种形式的数据模型、因此,存在着EXPRESS模型向底层实现机制的转换问题。根据应用目的和底层实现机制的不同,相应的转换内容和映射规则也不一样,其底层实现机制主要有以下几种:
为了实现集成环境下不同系统间不同数据格式的数据交换,必须使用STEP中性文件,因此需要按照STEP中性文件的语法规则,将上述EXPRESS模型映射成同时映射成STEP中性文件的物理结构,从而保证STEP中性文件语法的正确性和读写STEP中性文件格式的一致性。
STEP标准的描述语言EXPRESS具有面向对象的特性,因此STEP模式的数据库实现目前主要采用面向对象数据库系统。利用STEP标准的映射表将EXPRESS描述转换成C++的结构或类,用于某些支持C++模式的面向对象数据库。如ObjectStore,O2,Versant等;也可以利用ROSE系统的EXPRESS2C++转换工具将EXPRESS描述的结构定义转换成C++的类,再利用ROSE++程序转换为ROSE数据库或STEP中性文件,其应用过程如图3所示。
图3 EXPRESS数据模型的ROSE数据库应用结构
随着制造业信息化水平的不断提高,制造业信息管理系统(如ERP,PDM等系统)得到了广泛的应用,这些管理系统的底层数据库主要是关系数据库。采用面向对象数据库可以更直接自然地实现EXPRESS语义,但是与关系数据库相比,面向对象的数据库技术不成熟,而关系数据库不仅已有成熟的商品化软件,且与高级编程语言的接口也相当丰富。要实现基于STEP标准的CAx系统和制造业信息管理系统之间的集成,首先需要将以EXPRESS语言描述的产品数据模型转化为关系数据模型,即采用关系数据库技术来实现STEP标准数据库。当采用关系型数据库和客户/服务器体系结构来实现时,可以将EXPRESS模型映射成服务器端关系型数据库的表结构及其关联关系,以及映射成客户端开发工具的开发语言的类模式,以便于PDM系统程序的设计。
信息集成和协同工作是二十一世纪产品快速开发的基础,也是PDM系统必然的发展方向,本文提出一种基于STEP的产品数据结构模型,从产品结构数据建模和产品信息组织的角度,详尽论述了一种合理组织繁杂的产品数据的有效方法,为集成环境下产品全生命周期的信息共享与集成提供了技术基础。
[1] Zhang SiRong,Research on the integrative modeling theory,integrated management method and application of product informarion and process supporting concurrent design[PHD Dissertation].Hangzhou:Zhejiang University,2008.
[2] P Gu K Chan.Product modeling using STEP.Computer Aided Design,2008,27(3):163-179.
[3] A JC Trappey,T-H Liu,C T Hwang.Using EXPRESS data modeling technique for PCB assembly analysis.Computer in Industry,2008,34(1)l11-123.
[4] 李原,李建军,何为平,杨海成.基于PDM的CAX集成技术研究.2007,l.
[5] 李善平,刘乃若,郭鸣.产品数据标准与PDM.清华大学出版社,2002,4.
[6] 孟详生.产品开发过程建模与企业间信息集成模式的研究.清华大学出版社,2007,10.
[7] ISO-10303-203-l994 Industrial automation systems and integration product data representation and exchange-Part293:Application protocol:configuration controlled design
[8] ISO-10303-41-1994 Industrial automation systems and integration -product data representation and exchange-Part41:Integrated generic resources:fundamentals of product description and support
[9] ISO-10303-44-1994 Industrial automation systems and integration-product data representation and exchange-Part44:Integrated generic resources:product structure configuration
[10] 袁梅宇,邓家提.分布式工程协作环境下产品数据共享的研究.计算机集成制造系统-CIMS,2006,9 .
[11] 王峰,卢炎麟.基于STEP/PDM模式的产品配置管理技术.浙江工业大学硕士论文,2004.
[12] 张锰,周鸿伟.并行工程产品数据建模相关技术研究.计算机应用研究,2005,19.
[13] 李海峰,王先速,吴丹.基于XML的异构PDM系统产品数据交换技术.航空精密制造技术,2005,39.