BOM资料集锦 (Cartoonfans#gmail.com)
PDM 系统产品结构数据的自动入库及其BOM 实现
- 62 -
Oct. 2005, Volume 2, No.10 (Serial No.11) 通讯和计算机 Journal of Communication and Computer, ISSN1548-7709, USA
PDM系统产品结构数据的自动入库及其BOM实现
谢 川1,纪传龙2,刘 辉3,王建华4,刘志峰5
(1,2,3,4,5 北京工业大学机电学院,北京 100022)
摘 要:产品是整个PDM(Product Data Management)系统管理的基础和核心,BOM(Bill of Material)物料清单表是整个PDM系统产品管理中的灵魂所在,而产品结构数据是形成PDM系统中各类BOM表的最根本的组成元素。目前国内许多准备开展或是正在开展PDM项目的企业内的大量产品结构数据的入库问题是一个亟需解决的问题。本文探讨了针对某企业开发的PDM系统中产品结构数据的自动入库方式以及基于该数据的BOM实现方法。
关键词:PDM;BOM;EBOM;产品结构数据
of Materials, 物料清单)的支持,BOM贯穿于整个产品生命周期,而且不同的阶段有不同的BOM视图与之对应[3]。BOM是由物料条目(1tem)组成。所谓物料条目是指在产品的形成过程中,原材料所经历的某种形态。简单地讲,BOM是构成一个物料项的所有子物料项的清单,其主要目的是体现产品结构和产品配置,用来反映产品零部件之间装配的层次关系及相关属性[4]。
1. 引 言
PDM 是以产品为核心,以软件为基础,通过计算机网络和数据库技术,把企业生产过程中所有与产品相关的信息和过程集成起来,统一管理,使产品数据在其生命周期内保持一致、最新和安全,实现在正确的时间,以正确的方式,将正确的信息传递到正确的地点,以实现正确的操作管理和决策,在企业范围内为产品设计与制造建立一个并行化协作环境的关键使能器[1]。PDM系统恰恰迎合了目前国内众多企业在\甩图板\、消灭蓝图之后,规范基础技术信息,发挥网络效益,共享工程数据,从而促进CAD应用上层次、上台阶的需求,为企业进一步推广和深化计算机信息管理打下扎实的基础。
PDM进行信息管理的两条主线是静态的产品结构和动态的产品设计流程,如PDM功能模块中的电子仓库与文档管理、工作流程管理、产品结构与配置管理、用户管理以及工程变更管理等等,所有的信息组织和资源管理都是围绕产品设计展开的,产品设计是整个PDM系统运作的基础和核心[2]。
同时,构建有效的PDM系统离不开BOM(Bill 1 2
2. 数据录入应用背景
目前国内大部分企业的庞大的产品结构数据都是以文件的形式,尤其是以EXCEL表格的形式杂乱无序地存在于由不同的计算机系统和软件所组成的网络体系中,彼此之间缺乏必要的信息关联和信息沟通,无法保证在某一时刻取得的产品数据总是最新的和正确的,无法保证这些数据能在整个企业范围内得到充分的共享,并免遭有意或无意的破坏。对于许多准备上或者是正在上PDM项目的企业,毫无疑问,产品结构数据的数据库录入工作是实现产品数据信息的统一有序管理,从而缩短产品研发周期、降低成本、提高质量,为企业赢得市
谢 川(1965- ),女,副教授,硕士生导师;研究方向:PDM/CAD/CAM。 纪传龙,硕士生;研究方向:PDM。 3
刘 辉,硕士生;研究方向:PDM。 4
王建华,副教授;研究方向:电子标签/PDM。 5
刘志峰,博士;研究方向:电子标签/PDM。
11
PDM系统产品结构数据的自动入库及其BOM实现
场竞争优势的基础和前提。
3. 数据录入应用实例
本文主要探讨针对某企业开发的PDM系统中产品结构数据的自动入库方式以及基于该数据的
BOM实现的详细方法。该企业的产品结构数据信息是EXCEL表格的形式,如图1所示,它是该企业内部各个部门之间通用的产品数据信息的蓝本,各部门都会依据该产品信息的蓝本来提取本部门想要的数据。
图 1 产品结构数据文件样式
在图1中,该EXCEL表格文件格式固定,便于大量产品结构数据文件的自动录入。每一个产品数据文件的每一个工作表单从第7行到第25行依次相接便形成某一产品中某一顶级部件的设计数据;每个工作表单表首几行主要是关于该顶级部件的基本概况,包括名称、代号、其所隶属产品的名称及其代号以及该顶级部件所包括的工作表单页数等;序号栏和装配系统栏表示该顶级部件下各零部件的装配情况,以及各个零部件之间的装配关系;代号栏则表明该装配各零部件所对应的工程图图档代号;接下来的几列是关于对应于某一零部件在该顶级部件下的一些基本的数据信息,如名称、规格、单部套数量、备品数量、材质、材料处理要求、单重、总重以及附注等等;最后面的几栏是关于该产品工艺路线情况的描述。
本文项目选用微软SQL Server 2000数据库系统,对于该PDM系统下基本的产品结构数据信息的录入,设计数据库中表格如图2所示。
本文项目的软件开发基础是微软.NET平台下的VB.NET开发语言。据估计,.NET平台将是下一个网络时代的标准平台,VB.NET是支持这一平台的标准开发工具之一,是Visual Studio.NET的主要组成部分,是Visual Basic开发语言某种非完全意义上的升级版,继承了VB中与EXCEL的强大功能接口模块VBA,从而可以很轻松地从VB.NET项目中调用和操作EXCEL,获取如图1表格文件中的产品结构数据的内容,达到产品结构数据入库,实现产品结构数据统一有序管理的目的。
12
PDM系统产品结构数据的自动入库及其BOM实现
图 2 数据库库表
4. 数据录入流程分析
图3是在VB.NET软件平台下产品结构数据入库的整个操作流程:
图 3 结构数据录入流程图
在VB.NET软件操作平台下,产品结构数据录入流程的实现方法如下:
(1)在PDM系统项目中添加对EXCEL类的引用以便在该项目中操作EXCEL;
添加引用:Microsoft Excel 11.0 Object Library (2)定义EXCEL类的实例,将EXCEL类实例化,这也是调用EXCEL类的基础;
Dim myExcel as New Excel.Application
(3)图1单元格中数据信息内容的获取。 myExcel.Workbooks(bookNo).Worksheets (sheet No). Cells (row, column).Text
设置循环变量依次变换上式中工作薄(Workbooks)参数bookNo、工作表(Worksheets)页数参数sheetNo、单元格(Cells)行数参数row和列数参数column,就可以取得图3中筛选后文件列表中不同文件的不同工作表单的不同行和不同列所对应的单元格中的不同的产品结构数据内容,对于图2表中大部分字段信息都可以通过这种方式获取。
(4)在图1中,对于序号和装配系统两栏: ① 第一个工作表的第7行为该产品设计文件所代表的顶级部件的信息;节点号为1,父节点号(ParentNodeNO) 值为NULL。
② 如果某行装配号栏为空值,则默认该行不表示任何零部件信息。
③ 如果某行装配号的右下角单元格内容为空,则该行表示一个零件的信息,有无子节点(hasChild)值为0;否则,内容不为空,则该行表示一个部件信息,有无子节点(hasChild)值为1;如果该行装配号栏为空值,则依次检索该行装配号右下角单元格的正下方单元格的内容。
(5)装配路径表示零部件之间在该顶级部件下的装配关系,是PDM系统中产品设计管理所依据的基础,同时也是形成产品管理中各类物料清单(BOM表)的基础。
零部件装配路径的获取: 设置一数组arrRank(6),从arrRank(0)到arrRank(6)依次表示产品、一级组件、二级组件、...、六级组件等七级装配级别;获取该组件的装配号A并记下该列的数值column,赋值 arrRank(column-1)=A,并将数组arrRank 的第column+1项的值arrRank(column)到
13
PDM系统产品结构数据的自动入库及其BOM实现
最后一项的值arrRank(6)清零;然后将数组arrRank中不为零的项用间隔符“/” 依次相接,则就形成该组件的装配路径。例如图1中平焊法兰的装配路径即为“1/5/1”,表示该组件为产品的一个三级组件。
5. 录入数据的BOM实现
对于按上述方法入库的产品结构数据,以 BOM的形式实现的描述方法分析如下:
(1)如图2所示,tblProduct(产品表, 表1)中各产品项目是由顶级部件表(表2)中各顶级部件构成,而tblAssembly(顶级部件表, 表2)中每一个顶级部件由tblLPart(零部件表, 表3)中各零部件构成并标明各组成零部件之间的装配关系。
(2)表1和表2中ProductID(产品编号) 和AssemblyID(顶级部件编号)能够唯一确定一个产品项目或者是某一产品项目中的某一顶级部件;表3中AssemblyID(顶级部件编号)和AssemblePath (零部件装配路径)二者联合能够唯一确定一个产品项目中某一顶级部件的所有零部件以及他们之间装配的结构层次关系,这是形成BOM的基础。
(3)产品结构树形成的递归算法:
从某一产品项目或者是某一顶级部件出发,依据表3中表示零部件所属关系的AssemblyID(顶级部件编号)、ParentDrawingID(父节点图纸ID) 和表示零部件装配关系的字段AssemblePath (零部件装配路径),依次从数据库中遍历其组成各项的零部件表(表3);如果某一零部件的hasChild(有无子节点)字段值为0,表明该组件为一零件,则结束该节点查找;否则字段值为1,表示该组件为一部件,则依次向下查找该部件下所有的组件,如果仍为部件,则继续向下查找,如此循环,直至查找到所有节点的hasChild(有无子节点)字段值为0时为止。
经以上分析,对于如表2中所示的顶级部件的产品结构数据,在项目中运行时取得如图4所示的产品结构树,显然,上述过程生成的是该顶级部件的EBOM(Engineering Bill of Materials),也就是工程设计物料清单。
14
图 4 BOM表实现的运行结果
6. 结 论
本文主要探讨了目前国内大部分制造企业内产品结构数据的入库管理问题,介绍了针对某企业开发的PDM系统中产品结构数据的自动入库方式以及基于该数据的BOM实现的详细方法,为该企业的产品数据的统一有序管理打下了坚实的基础。
参考文献:
[1] 童秉枢,李建明编著,《产品数据管理(PDM)技术》,北
京:清华大学出版社,2000.
[2] 孙天涌,王建民,韩鑫,耿坤瑛,PDM 及其最新进展,
计算机辅助设计与制造,第2期,2000: pp. 3-6.
[3] 杨承启,PDM中有关BOM的研究及其应用,电子机
械工程,第20卷,第2期,2004: pp. 46-48.
[4] 程存有,叶晓俊,BOM的建立及在PDM与ERP集成
系统中的应用,计算机工程,第29卷,第4期,2003: pp. 143-145.
BOM管理资料集锦



