e-works数字化企业网  »  文章频道  »  产品创新数字化(PLM)  »  PDM/PLM

2010产品创新数字化峰会征文:Teamcenter UA中产品零组件编码的开发

2010/11/23    来源:e-works    作者:朱文华  魏丕广  张梦之      
关键字:PDM  Teamcenter UA  客户化开发  编码  
本文分析阐述了Teamcenter UA客户端客户化开发的关键技术,对产品零组件编码的客户化开发进行了研究,在此基础上开发了一套企业的产品零组件编码应用系统,为Teamcenter UA客户端的客户化开发提供了完整的实施思路。

1 前言

    PDM是一门用来管理所有与产品相关的信息(即描述产品的各种信息,包括但不限于零部件信息、结构、配置、文档、CAD 文件、权限信息等)和过程(指产品的发放、变更、审批过程和其它的工作流程,包括对这些过程的定义和管理)的技术。它将很好地面向企业的生产组织,加快产品投放市场速度,提高企业的产品质量和工作效率,从而提高产品的核心竞争力。

    Teamcenter Unified Architecture (简称Teamcenter UA)是Siemens PLM Software的一套成熟的商品化的PDM系统,它不仅提供了图文档管理、产品结构配置管理和工作流程管理等强大功能,而且具有良好的架构和开发接口,我们可以通过客户化为企业量身定做适合企业自身的业务工作,满足客户的特殊需要。尽管Teamcenter UA中业务建模器(Business Modeler Integrated Development Environment,简称BMIDE)在企业业务建模方面功能非常强大,但在某企业PDM定制实施过程中发现,并不能完全满足企业的特定需求,为此,我们力图通过客户化的程序开发的方法来解决这些特定需求。本文通过Java Eclipse技术实现产品零组件编码的开发,对其它的客户化的开发具有借鉴意义。

2 Teamcenter UA的客户端开发关键技术

    Teamcenter UA的客户化开发主要分客户端和服务器端,客户端是用JAVA Eclipse RCP技术开发的,同样它的客户化开发也使用JAVA语言;服务器端的开发要利用集成工具包(Integrated Tool Kit,简称ITK)及C语言。由于Teamcenter版本的升级可能导致所开发程序需要改写并重新编译,所以客户化开发的原则是尽可能利用Teamcenter已有的功能,减少客户化开发量。基于以上考虑,客户化开发的重心应放在客户端,尽量利用服务器端的已有功能。

    2.1 胖客户端(Rich Client)的架构

    Teamcenter UA采用分层的架构模式,将所有用户节点的数据集成在一个逻辑上相同的数据库中,实现远程协调及信息共享。其Rich Client是基于C/S架构模式的,采用多层方式的架构如图1所示,多层方式的构架使得层与层之间的通讯只能是父与子层之间通讯,不能进行跨层通讯,这样层次清晰,模块功能明确,更有利于程序扩充,永久对象管理器(Persistent Object Manager,简称POM)是Teamcenter中的核心组件。

    2.1.1 客户层

    客户层是用户通过软件工具进行交互操作的界面,客户层是利用JFC和Swing的类由Java开发而成,用户界面(User Interface,图1中UIF)和对象接口组件(Object Interface Components,图1中Object I/F Components)组成了客户层。

图1 Rich Client的架构图

图1 Rich Client的架构图

   2.1.2 服务器层

    服务器层由应用层和核心模块层构成。

    (1)应用层

   应用层包括对象接口组件适配器(Object Interface Component Adapters)、应用对象(Application Objects)和应用(Applications)。其中对象接口组件适配器通过CORBA/DCOM等技术实现与CAx工具,文档管理及其它外部应用程序的通讯,从而实现系统与外部程序的集成。应用层允许用户对Teamcenter数据进行浏览和操作,应用程序包括Teamcenter中的应用模块,如我的Teamcenter,产品结构编辑器,查找和系统管理等等。它们使得客户层能够浏览和访问服务层的数据信息。

    (2)核心模块层

    核心模块层由POM管理器(Persistent Object Manager)和数据库I/O模块(Database I/O module)组成。POM管理的对象是持久对象即存储在数据库的对象,以后要利用的数据,持久对象管理器连接应用工具模块和系统模块,持久对象管理器解析应用工具层命令,并产生相应的SQL语句,在数据库中产生相应的关系数据。使得应用层能操作数据库。数据库I/O模块则提供数据库操作接口,实现对数据库的操作。

    2.2注册程序与客户化环境设置

    注册程序在Rich Client中起一个至关重要的作用,注册程序使用属性文件定义应用程序的实现类(classes)、启动图标、本地化文本、搜索顺序、外观等。许多基本的客户化任务是用注册程序完成的,同时注册程序在Teamcenter UA的程序组内增添程序入口,用于启动新开发的程序。不论是客户化开发,还是Rich Client的原开发,都是通过这一注册机制调用属性文件来实现程序的调用的。在任何给定的程序包中有三种类型的属性文件:基本属性文件、本地化属性文件和用户属性文件。

    用户属性文件包含了用户可以修改的属性,用户属性文件在注册程序中总是首先解析的属性文件。在做客户化开发时,主要是编辑和修改用户属性文件,这样可以防止由于用户的错误引起的基本系统的崩溃。本文的开发中主要编辑修改Explorer_user.properties这个用户属性文件,在用户属性文件中添加开发程序的名称(Title)和操作(Action)等信息。经过注册之后程序进入Teamcenter UA环境,但程序还只是一个框架,并不能执行任何操作功能,必须进行程序的开发。

    客户化开发环境是对程序进行代码编写、调试、编译的环境,所需要用的工具就是Java语言的编译环境,包括JAVA的JDK和Eclipse集成开发环境(IDE)等。本文选用的环境是JDK1.5和Eclipse3.2来进行RCP插件的开发。

    开发环境的设置的分三个步骤进行:(1)设置环境变量,在Windows环境下设置 JAVA_HOME= D:\Program Files\Java\jdk1.5.0_07和PATH=%JAVA_HOME%\bin;%PATH%,在Eclipse 界面中,打开 Preferences 首选项对话框,在左边的树上,双击Java 节点,然后选择 Installed JREs节点,验证正确的JRE版本,双击 Plug-in Development 节点, 然后设置Target Platform 节点,找到 TC_ROOT\portal目录。

    (2)建立Java插件项目与配置,在Eclipse3.2中选择新建项目建立Plug-in项目com.teamcenter.custom,对应的路径为D:\Custom,在 Eclipse中,点击项目的tabs页面,点击 Dependencies 页面,添加Plug-ins: com.teamcenter.rac.aifrcp、com.teamcenter.rac.common、com.teamcenter.rac.external、com.teamcenter.rac.kernal、com.teamcenter.rac.neva、com.teamcenter.rac.tcapps、com.teamcenter.rac.util,点击 plugin.xml页面,修改plugin.xml文本中的扩展点如图所示:

图2 plugin.xml文本中的扩展点编辑

图2 plugin.xml文本中的扩展点编辑

    点击 MANIFEST.MF 页面,在 Bundle-Localization: plugin 行下添加如下一行:Eclipse-RegisterBuddy: com.teamcenter.rac.util,在 Export-Package 行后面,添加新打包的名称和需要更新的包的名称,如:Export-Package: com.teamcenter.custom, com.teamcenter.rac.explorer,保存项目。

    (3)配置和运行Rich Client,在Eclipse3.2中选择运行,新建配置RichClient,在运行的产品中确认com.teamcenter.rac.aifrcp.product,检查正确的 JRE 出现在 Runtime JRE 框中,运行start_imr.bat启动服务端,然后就可以启动Rich Client。在Eclipse3.2集成环境中还提供了程序打包功能,可以把开发程序打包成可以部署的插件的Jar包,在TC_ROOT\portal下生成插件com.teamcenter.custom.jar,运行Teamcenter UA Portal后,就可调用“零组件管理”程序。

3 产品零组件编码的客户化开发

    尽管Teamcenter UA中业务建模器(BMIDE)在企业业务建模方面功能非常强大,但在某企业PDM定制实施过程中发现,并不能完全满足企业的特定需求,为此,我们通过客户化的程序开发的方法来满足企业的需求。

    3.1 零组件分类与编码

    在对企业进行调研的基础上,针对企业产品开发过程中的数据管理要求,对产品信息进行了分类管理,对零组件(Item)及其主表(Master Form)进行了定制,不同的Item类型对应不同的Master Form表,使之符合企业日常数据管理与信息汇总的需要。根据企业BOM分级的要求和BOM导入与汇总的要求,将产品零组件的Item的类型分为以下六类,这六类Item构成了产品设计所需的完整的数据模型如下:

    产品(CP):有单独产品编号,完成某项使用功能的产品;

    部件(BJ):由两个或两个以上的零件或由零件和材料,以可拆卸或不可拆卸的连接方式组成的部件;具有独立结构和功能;

    零件(LJ):由统一名称和牌号的材料、经加工工艺制成的零件,是组成产品的最基本的单元;

    外购件(WGJ):从外单位购买的零、部、组件;提供技术要求,有外单位制造的的零、组件习惯上称为外协件;

    标准件(BZJ):按标准(国家、行业及企业标准)制造的标准件、通用件;

    Document:用于管理企业的管理规范/文档资料等等。零组件管理是Teamcenter UA的基础功能,不同的企业有不同的业务数据模型,零组件编码是用来对有关产品的属性进行规律性描述,是简化信息、实施PDM管理的有效方法。零组件代码是表示产品零组件的一个或一组特定字符,编码是给产品赋予代码的过程,编码要保证代码的唯一性[7]。产品编码的方式有很多,不同企业环境有不同的编码方式,常用的编码方式有:分类码(class num)、结构码(structure num)、流水码(flowing num)和组合码(mixed num)等。

    为了建立零组件的编码系统,首先需要根据企业需求,制定编码规则,采用分类码、结构码加流水码的方法来确定编码的码段以及码段与码段之间的关联关系,按照关联关系确定的顺序先后排列各码段,组成十五位代码,如下图所示:

    第1位为公司代码,用1位数字代表各家分公司

    第2-4位为分类码,第2位用1位表示产品大类,第3、4位两位数字代表工程特性,可用码位从001-999,由第一、二层自动生成,

    第5-7位为扩充码,可用码位从001-999,表示功能用途,由第三层自动生成,

    第8位为分隔符,用“-”分割码段,

    第9-15位为流水码,可用码从0000001-9999999,定义计数器,流水码自动生成。

    3.2 零组件编码的生成

    零组件编码生成是根据零组件分类与编码,通过程序实现公司代码、分类码、扩充码和流水码的内容与其编码的转换规则,分类码由树目录的第一、二层构成,扩充码由树目录的第三层构成,不同分类码下的扩充码可以重复,流水码唯一,不可以重复,现已存在的流水码保留,新生成的流水码系统自动依次给号,所有编码由编码器自动生成。

    编码器的调用采用客户化菜单的方式,在Explorer_user.properties中定义添加菜单com.teamcenter.rac.explorer.ExplorerApplication.MENUBAR=com.bst.explorer.ExplorerUserMenuBar,其界面如下:

 

图3 编码器客户化菜单的界面

    零组件编码的生成采用runnable接口的run()方法来实现,通过session.getUser().getNewStuffFolder()的方法获取当前进程中用户的NewStuffFolder目录,在其下建立零组件,通过调用对话框new NewDialog的方法来显示由Swing Designer设计的操作对话框,点击编码,调用编码对话框,通过列表框和LOVPopupButton来调用Teamcenter中的值列表,采用分级编码的转换规则实现零组件的编码。其界面如图4所示:

图4 零组件编码的生成界面

图4 零组件编码的生成界面

    在企业的实际应用中,产品的编码需经过一个流程,在系统中定义相关的编码申请流程,方便设计人员在系统中的操作,系统流水码的定义可以自定义Temp的item 进行利用命名规则定义七位的计数器进行流水码的设置。采用编码器后,设计人员不再为零部件编码而烦恼,节省了大量的时间。同时,系统内的编码准确,为生产、采购、库管提供了准确信息。

    为了提高标准化审查力度,在企业中还利用PDM系统的重用库,将标准化审查通过的标准件、通用件编码设置在资源库中,一方面方便设计员查询标准件、通用件;另一方面对于新建的标准件、通用件,PDM系统将进行编码校验,从而确保设计的标准化、通用化程度。

4 结论

    本文就Teamcenter UA客户化开发的有关问题做了分析研究,通过对Teamcenter UA系统的客户端进行客户化开发,完成了企业的产品零组件编码应用系统开发,满足了企业对于产品数据管理的需求,同时也是对Teamcenter UA原有功能的一个有力补充。文中提供的客户化开发的实施思路和方法已得到实践验证,可以为Teamcenter UA的其他相关的开发所借鉴和应用。

 

责任编辑:许小倩
本文为e-works原创投稿文章,未经e-works书面许可,任何人不得复制、转载、摘编等任何方式进行使用。如已是e-works授权合作伙伴,应在授权范围内使用。e-works内容合作伙伴申请热线:editor@e-works.net.cn tel:027-87592219/20/21。
e-works
官方微信
掌上
信息化
编辑推荐
新闻推荐
博客推荐
视频推荐