0 引言
产品的BOM表(Bill of Material)是定义产品结构的重要技术文件,是一种描述产品装配关系的结构化零件表,其中包括设计过程中所有装配体、零件、原材料等信息的清单。BOM反映了一个产品所有零件的数量关系和零部件的构成层次关系,在产品由设计过程向制造过程的转化中,BOM起着非常重要的作用,它是连接产品设计过程和制造过程的信息纽带。
BOM表在信息传递的过程中具有重要的作用,但是在汽车夹具设计行业还没有得到统一,各制造企业提供的参考BOM表各不相同,这就为BOM表的自动化生成增加了难度,阻碍了企业间的信息交流与合作。在总结了大部分制造企业提供的BOM表样式中不难发现,BOM表需要填写的内容较多,是BOM表制作的主要内容。汽车夹具零件的属性项有:零件编号、零件名称、材料、数量、重量、版本、术语、备注,而各企业的BOM表主要内容项是这几种属性项的简单组合,这就为设计通用BOM系统提供了可能。
模板式的通用BOM系统的构想:根据制造企业提供的参考BOM表制作BOM表输出模板,用VB编程工具开发编写应用程序,遍历零件的属性信息,将零件的各属性项输出到BOM模板的表行中,最终生成符合企业要求的BOM表。
1 CATIA的二次开发环境
访问CATIA的对象有很多种不同的方式,对于其他程序或脚本,CATIA具有OLE自动化对象服务器的功能。一些程序或脚本能够对COM对象进行访问,那么也能访问CATIA的对象并对其进行操作。访问CATIA对象有以下的方法:
1)进程内的脚本
编程脚本和CATIA如果同时运行在同一进程环境下,称作进程内的脚本。脚本类型有:
VBScript脚本、CATScript脚本、VBA脚本。
2)进程外的脚本
编程脚本和CATIA如果没有运行在同一进程环境下则称进程外的脚本。编程脚本不再由CATIA环境来调用,CATIA还具有另外一个功能,即OLE自动化对象服务器,进程外的脚本通过CATIA软件的COM接口访问CATIA内部的对象。脚本类型有:
VB或VBA访问CATIA、Windows Scripting Host访问CATIA、嵌入到网页中。
进程内编程访问CATIA对象具有以下主要特点:占用内存少,运行效率高,操作简便。但是编写的程序在实现的功能上受到了很大的限制,比如VBScript脚本不能交互操作,VBA脚本不能编译等缺点,这就降低了编程的实用性。本研究采用进程外编程方式访问CATIA对象,运用VB编程语言编制出装配体BOM表自动生成程序,设计交互界面,便于人机操作,将产品的零部件属性信息自动输出至外部Excel清单文件中,实现BOM表的聚类输出,便于制造件的加工制造和外购件的采购,方便装配过程中零部件的统计和核对,进而提高了工作效率。
2 BOM系统的设计
2.1 系统的功能
模板式通用BOM系统设计的主要目的是能够兼容不同制造企业的提供的BOM表之间的差异性,模板式通用BOM系统在传统BOM系统的基础上,设计的系统具有如图1所示的功能。
图1 BOM系统的功能图
1)根据提供的参考BOM表用户配置BOM表输出模板,由输出模板关键字驱动程序遍历产品属性树;
2)初始化BOM模板,根据BOM模板的关键字,对BOM模板自动进行初始化操作,为输出零件属性做准备;
3)为使设计者了解要提取零件的哪些属性项,BOM系统具有属性提示功能;
4)判断零件是否对称,控制零件数量;
5)向BOM模板写入属性信息;
6)更新BOM模板中提取的属性信息。
根据系统的设计的功能,通用BOM系统的功能界面如图2所示。
图2 通用BOM系统功能界面
2.2 系统的设计
从已经检索的来文献看,传统BOM系统提供的BOM表输出功能单一,并不具有兼容性,不能满足不同企业对BOM表的差异化需求。而有学者设计的通用BOM系统,虽然能够满足BOM表的兼容性,但是由于设计规则的限制,用户在使用过程中需要熟悉模板制定规则且要保证制作的模板的正确性,给用户的使用带来了不便。
模板式通用BOM系统可以很好的解决BOM表输出功能单一,操作复杂的问题,前期设计者利用CATIA的宏程序批量的处理零件的属性信息,为后期BOM表的输出做准备,在BOM表输出之前,只需对BOM输出模板定义系统默认的属性项关键字,就可以向BOM表中写入零件属性信息,具有适应性强,定义规则简单,输出快捷的特点。模板式通用BOM系统在操作流程上和传统BOM系统具有明显的不同,对比效果如图3所示。
图3 BOM系统流程图
对比现行BOM系统和模板式通用BOM系统可发现,虽然传统BOM系统可以生成BOM表,但是生成的BOM表明显的不能满足不同客户提出的的BOM格式要求,还需要后期手动修改,这就降低了BOM的生成效率,同时还容易出现错误等缺点。根据设计经验提出的通用BOM系统在总结现行BOM系统特点的基础上,做了大量的思考和总结,设计的模板式通用BOM系统较传统BOM系统具有明显的优势。
模板式通用BOM系统在设计上采用多个功能模块,使模块之间在信息共享和管理上得到提高,系统采用了三层系统结构:交互层、支撑层和核心层。
交互层用于处理窗体功能与CATIA系统的建立功能关联,VB程序通过COM接口来访问CATIA内部的对象,来完成零部件属性的提取,BOM表的生成和更新等功能;支撑层主要是VB程序访问CATIA零件的实体对象,通过遍历算法来读取零件的属性信息,为数据的存取做准备;核心层用于将提取的零件的属性信息存入在数组中。
图4 BOM系统结构
3 BOM系统的关键技术
3.1 模板技术
模板技术是通用BOM系统的核心技术,在通用BOM系统中扮演着举足轻重的作用,BOM模板表的规格直接关系到输出BOM表的形式和属性信息的合理配置。BOM模板表包括两部分:表头和表行。对每个设计项目来说,区别最大的部分是BOM表表头。因企业不同而不同,对于单个项目来说表头内容又具有高度的相似性,在项目设计中只需制作好一个BOM表的表头内容便可在设计中借用该模板;表行内容是BOM表统计的核心内容,是统计的重点,BOM系统设计的关键是输出零件的详细属性信息到BOM表中。
定义BOM表属性项关键字是制作BOM模板的重中之重,关键字定义的正确与否直接关系到零件属性提取的成功与否。通用BOM系统定义的属性关键字如表1所示。
表1 属性项关键字
模板技术的基本原理:根据该企业BOM表格式并按照该系统的模板规则建立输出模板,系统的初始化功能模块会首先寻址表头内容关键字,根据定义的关键字内容,遍历零件对应的属性项,将零件的属性信息由数组中写入到输出模板中,生成符合企业要求的BOM表,然后保存到制定的位置处,则BOM表制作完成。由于输出模板的可定制性,因此通用BOM系统能生成不同格式的 BOM表。
3.2 递归遍历算法
模板式通用BOM系统在算法上采用递归遍历算法。先根遍历,采用深度优先遍历的思路,即遍历是对BOM各子树逐层进行。其遍历规则如下:
1)首先访问产品结构树的根结点;
2)如果该结点有子项,访问其子项,并跳到第2)步;
3)如果有该结点有兄弟项,访问下一个兄弟项,并跳到第2)步;
4)如果其父项有下一个兄弟项,访问其父项的下一个兄弟项,并跳到第2)步;
5)自动判断当前结点是否根结点,是则退出;6)当前结点由父项结点来代替,并跳转至第4)步。
图5 产品结构模型树
以图5产品结构为例,其遍历次序为:A、B(1)、f(2)、E(3)、f(1)、d(2)、d(3)、C(1)、g(2)、h(2)、f(2)。
由于车身夹具产品结构模型树的层数比较少,采用递归遍历算法代码简洁,能够展示零部件之间的父子关系和BOM树的层次结构。
3.3 零件属性数组
模板式通用BOM系统在系统初始化时预先开辟两个或三个数组,这个数组的元素个数根据产品结构树的复杂情况而定,数组元素不必很多,本系统开辟100个数组元素,目的是储存数据。将上位机读来的数据存入预先开辟好的其中一个数组中,当前数组存满后,再换另外一个数组,这样做的优点是便于数据的管理和提取数据的正确性,最后使用代码将将数组数据写入Excel表格。
3.4 BOM视图映射中的一致性维护
BOM由物料项和物料项关系组成,但是由于BOM的生成过程不同,所包含的数据也不完全相同,因此为了保证数据的一致性,仍需要对产品不同BOM视图进行对比。BOM的常见操作如增加部件,删除部件等也会造成BOM数据的不一致性。BOM视图映射中的一致性维护就是物料项和物料项关系的一致性维护。
针对BOM一致性维护问题,设计BOM的父子循环一致性检查算法,其基本思想为:设原BOM元素集合为S,新BOM元素集合为P。对集合P,遍历产品的父项和子项,判断零部件是否是多实例零部件,即是否已经统计过,如果已经统计过,则不再读取信息,数量增加,如果是新增加或减少的零部件,则对其进行入栈或出栈操作。当遍历到空字符串时,则遍历完成退出循环。
4 模板式通用BOM系统的应用实例
本实例以CATIA V5为实验支撑平台,基于VB编程语言开发的模板式通用BOM系统能够生成不同格式的BOM表。以下以某车身夹具单元为例生成两种不同格式的BOM表来验证系统的通用性。某车身的一副完整的车身夹具如图6所示。
图6 夹具单元
上表为不同企业风格的A格式输出模板和B格式输出模板,根据系统的要求规则对A和B两种格式的BOM模板定义属性关键字,A格式模板的属性项关键字为:PART NO、PART NAME、MATERIAL、Q’TY、REMARK;B格式模板的属性项关键字为:PART NO、PART NAME、Q’TY、REMARK。按照BOM表的操作流程生成的A、B两种格式的BOM表如图7、图8所示。
图7 BOM输出模板
图8 BOM表导出图
由生成的A、B两种格式的BOM表结果可以得知生成的BOM表与企业给定的参考BOM表完全一样,模板式通用BOM系统具有很好的适用性和兼容性。
5 结束语
针对汽车夹具制造中的BOM设计中存在的问题,在总结现有BOM设计的特点,提出了模板式通用BOM系统,该系统完全兼容了不同企业格式的BOM表,支持快速启动CATIA,BOM表模板初始化,显示属性项,指定对称零件,写入BOM表和更新BOM表的功能,还具有BOM视图映射一致性维护的功能。模板式通用BOM系统在设计中具有很强的适用性,大大的提高了车身夹具设计BOM向制造BOM转化的效率,降低了出错率,对缩短车身夹具设计周期具有重要的意义。
核心关注:拓步ERP系统平台是覆盖了众多的业务领域、行业应用,蕴涵了丰富的ERP管理思想,集成了ERP软件业务管理理念,功能涉及供应链、成本、制造、CRM、HR等众多业务领域的管理,全面涵盖了企业关注ERP管理系统的核心领域,是众多中小企业信息化建设首选的ERP管理软件信赖品牌。
转载请注明出处:拓步ERP资讯网http://www.toberp.com/
本文标题:模板式通用BOM系统的开发与研究