您的位置:网站首页 > CAD新闻

在CORBA平台上实现CAD/CAPP/PDM系统集成

时间:2011-02-26 19:31:08 来源:

0 前言

    目前国内外对于分布式技术和网络化制造的应用研究十分活跃,分布网络化制造是当前研究的一个热点。许多专家学者提出了分布式异地协同设计、分布式产品数据管理等系统模型并进行了一些理论研究。一些制造企业为了增强市场竞争力,在进行信息化建设过程中,也开发了一些应用系统和部分实现了企业内部的信息集成。但是如何在分布环境下实现企业之间、企业内部各应用系统之间信息的共享,以及对原有系统的兼容,是一个十分突出的问题。因为一个典型的分布环境包括有大型主机,ICNI工作站和PC机,各种机器所采用的操作系统、网络通信协议和数据库管理系统千差万别。同时企业原有系统采用的体系结构也不尽相同,功能上也不能满足网络化制造的需要,但是全部重新开发也不现实。因此基于分布式技术、向后兼容的、适用于产品网络化制造的集成平台的开发是制造企业当前的迫切需要。

    1 分布式系统集成框架

    1.1 问题的引出

    1)对现有数据格式的不统一,有以下集成方案:

    ①产品数据管理(PDM)集成;

    ②基于STEP的集成;

    ③先进的XML技术的信息集成。由于XML数据模式

    比较灵活,基于XML技术的信息集成可以随时修改和添加实体信息相对于采用固定数据模式的STEP集成标准和粗粒度的数据管理(PDM)集成而言更适合于产品全生命周期中信息的交换和共享。采用XML作为数据传输格式,XML是W3C制定的用于描述数据文档中关于数据组织结构的标记语言。XML作为一种互联网交换数据的标准,其目标是让各种结构的文档都作为统一的网络文件的一部分在网上传输,以实现在不同系统间进行数据交换。XML具有可扩展性、平台无关性、结构化语义、数据无缝集成以及面向数据而独立于应用等特点。利用这些特性可以充分满足Internet和分布式异构环境的要求,将成为下一代网络数据传输的主要载体。

    2)针对不同操作系统、网络通信协议和数据库管理系统以及向后兼容的必要,可采用CORBA标准作为集成的技术平台,可以从技术上解决集成过程中操作的透明性和系统的可扩展性,即无论任何数据源只要进行适当的封装并向系统提供用CORBAIDL语言编写的界面,就可以加入系统。表现在集成企业或者企业联盟已有的应用系统上,如Pro/Engineer,I-DEAS,MDT,MIS/MRP·/ERP系统,电子商务等等,需要通过CORB系统集成到一起实现信息的交互和共享。

    1.2 总体结构

    系统框架如图1所示,主要由3部分构成:

    1)建立CORBA集成技术平台,采用动态连接技术,以便新服务能实时加入该平台,利用CORBA可以方便地实现不同系统之间的通信,CORBAORB/IIOP相当于一根软总线各个系统的功能模块都作为CORBA的特定应用对象,实现与其他信息系统和具有人机界面的设备控制器的通信和互操作。

    2)采用XML作为数据传输的中间格式,收发两端需要进行XML数据转换,XML结构可以把两个数据来源集成一个整体,用户不必关心显示的数据来自何处,各系统通过映射表把数据转换成XML数据,集成后的数据是结构化的XMI.数据,详细地定义了某个数据对象的数据结构,如:如描述图纸,详细定义该图纸的编号、名称、版本号,类型等信息,客户端可以通过XPATH检索关键字得到所需要的信息。

    3)对CAD,CAPP,PDM系统分别进行二次开发,增加含网络功能的插件到系统中,二次开发目的是提供给用户友好的界面和统一的开发平台,便于以后对系统进行功能扩展。

    图1 分布式系统集成框架

    2 实现分布式系统集成的关键技术

    2.1 CORBA部分

    采用CORBA的ORB作为该集成框架的“软件总线CAD/CAPP/PDM等应用程序只要给出用IDL语言书写的界面,即可插到ORB上而实现与其他对象的互操作各个异构数据源和服务也被封装成对象,其界面亦用IDL语言进行描述。不同的ORB之间则通过HOP协议进行通讯。

    2.2 XML技术部分

    需要解决3个问题:

    1)如何用IDL定义XML的传输格式;

    2)如何把CADCAPP的数据文件映射为XML文件;

    3)如何提取XML中的数据到各个系统。

2.2.1 用IDL定义XML传输

    图2 XML数据传输

    通过CORBA传输XML文档有三种方式:

    1)最普遍的使用方式如

    缺点是:①不能保证get_details返回有效的XML,ORB只能保证返回的值是字符串类型,而这个值是不是有效的XML字符串,OBR却无能为力。②效率低,服务器通过在内存创建DOM树实现get_details对数据的访问,需要在DOM树和XML字符串之间进行转换,其应用承担了编码和解码工作,传输的内容全通过字符串传递,数据量小还可以,对于制造业的二维三维图将大大降低传输效率。

    2)字符串方式如

    缺点:这样的结构操作起来比较困难,而且容易出错。比如,由于这里采用sequence的结构,在映射到C++语言时,很难实现从sequence的中间插入或删除子元素,这也就丧失使用XML的灵活性。

    3)DOM/ValueMapping方式

    把需要传送的数据(节点),以一定的规则(XPATH等技术定位)取出,传送FRAGMENT对象。DOM/value用IDL值类型值(valuetypes)表示XML解析树中的结点,而DOM是用IDL界面(interfaces)表示XML解析树中的结点。由于IDL值类型支持方法实现,结点拥有自己的方法实现,因此不需要将结点的数据成员公布给所有的应用。更重要的是传递的是值而不是地址,应用能直接将XML数据作为树结构发送和接受,而不需要转化为字符串格式。这对应用来说,避免了低效的字符串格式转换,提高了应用性能。

    2.2.2 数据映射

    从CAD/CAPP各个系统提取数据生成XML格式的数据作为中性格式进行操作:

    1)CAD信息模型(图3)

    图3 CAD信息模型
 

CAD以XML格式导出零件信息模型的总体属性,形状特性,精度特性通过CORBA存入PDM供其他系统调用。

    2)CAPP信息模型(图4)

    CAPP系统中的数据,可以分为零件特征信息、工艺规程数据、工艺约束信息和制造环境数据。零件特征信息是来自设计阶段零件的几何数据、拓扑关系描述数据和技术要求数据,是对零件特征的描述;工艺规程数据包括表示零件制造的工艺过程和操作方法的所有文件,工艺过程卡片、工序卡属于工艺规程数据进行工艺设计各阶段的中间结果也是工艺规程数据;工艺约束信息,是生产流程中系统受到的约束条件,是进行工艺设计不可忽略的信息,是进行工艺决策必须参照的规则;制造环境数据是CAPP的主要设备资源数据,分为对设备的管理信息和设备自身的静态特性数据和动态特征数据。

    图4 CAPP信息模型

    为了后面开发的方便和系统中数据结构的清楚.首先我们要对建模的数据进行编码。然后建摸,最后完成数据映射XML表达。

    ①零件的编码规则(基于特征的编码)零件信息编码的目的是将零件的加工信息代码化,以便于计算机的处理。这里,我们是基于零件的特征编码。对于一个具体零件,所有的特征都用唯一的特征ID来标识。主特征号用字符串“01~99”表示;辅特征的ID号用“主特征ID+01~99"表示。主特征编号的原则是从左至右、先外特征、后内特征。0101~0103分别代表01号主特征的3个辅特征,其它辅特征的表示方法由此类推。

    ②建模零件的每一个主特征抽象为第一层节点(元素),节点(元素)编号依据以上的编码原理得到。为"01~99";辅特征抽象为第二层节点(子元素),其编号为“主特征编号+01~99";特征的相关信息比如尺寸、表面质量等抽象为边(子元素或属性)。这样子就可以抽象出零件的信息模型。

    ③数据表达基于上面建立的概念模型进行逻辑模式的设计.把模型中每个节点变成一个具有同名的元素类型。对于没有引出边的概念根据本身意义,定义为属性或者是子元素。物理建模的时候,我们选用了XML的DTD来定义模式,并且依据CAPP中数据的特点,对于零件特征数据采用面向数据处理进行XML建模。

    3)PDM信息模型

    用XML模式建立PDM的信息模型有利于保证PDM数据以XML文档的形式进行存储和交换,同时保证不同系统间PDM数据的统一,有利于PDM数据以XML形式进行存储。利用NXD把PDM数据以XML的形式存储起来,可以解决PDM数据和关系数据库的阻抗问题,保证数据的一致性和完整性。而建立PDM数据的XSD,就可以对存储的XML文档数据进行验证,保证数据存储的正确性。建立PDM的XML模式,还有利于PDM数据的共享和交换。

    建立的PDM对象模型主要包括产品及零部件对象模型(BOM,包含了产品的结构与配置、零部件分类、产品相关文档与电子仓库等)、工作流对象模型(WorkFlow)、项目对象模型(Project)、人员对象模型(Person)、文件对象模型(File)等。如图5所示。

    根据PDM信息模型的对象模式,我们用XSD建立PDM信息模型的XML数据模式。XSD本身也是以XML文档的格式书写,XSD文档的后缀名是xsd,XSD定义的数据模式以元素为节点,元素可以具有简单类型和复杂类型两种数据类型,每一个元素可以具有自己的子元素和属性。

    图5PDM对象模型的组成

    3 分布式集成系统的实现

    1)首先需要定义IDL接口,封装各个系统的服务;

    2)然后根据这些IDL接口生成STUB,SKELETON;

    3)在PDM,CAD,CAPP各系统上进行二次开发,以插件的形式提取所需数据并转化为XML通用格式,以STUB,SKELETON为基础实现到CORBA总线的连接;

    4)配置命名服务,注册服务对象;

    5)使用DOM,SAX加上XPATH技术对接收到的XML文件进行过滤,选取有用信息。

    4 结束语

    CORBA和XML技术将整个Intemet资源统一起来,其应用领域一般具有大量的数据源,各个数据源互相独立而且包含结构化和非结构化的数据,这些数据都被转化为XML结构并通过ORB进行通讯,随着XML技术的不断发展以及CORBA规范的不断完善,必将二者有效地结合起来,充分发挥各自的长处,才能构造出高效的、高扩展性的应用程序。

    本文详细介绍了采用CORBA为基础的分布式CAD/CAPP/PDM集成时所需要解决的问题,如何将各种数据结构映射为XML结构,为进一步实施集成提供了理论依据。