面向PLM的BOM数据管理与实践
导读:面向设计制造一体化过程,提出了多视图树状版本管理模型,设计了BOM的版本演变和维护机制。研究了几种BOM数据不一致的情形,给出了相应的一致性维护方案。实现了产品生命周期数据的集中管理。
作者:张辉 石胜友 石倩 | 来源:《制造业自动化》
在实际研发过程中,对于一些结构复杂、数据量大、研发周期长的产品,需要多领域人员的协同工作,从而提高设计工作效率,减少设计返工,缩短产品研制周期。产品数字模型不断被修改,由于不可避免的设计变更(如客户需求更改、产品结构变化)和现场因素(如工艺环节、制造资源等)引起变更等多类变化的影响,产品信息的修改会更加频繁。为了增强领域间信息沟通,保证数据的及时更新,需要实现跨专业领域的工程数据变更管理,进而确保上下游BOM的数据一致性。
BOM版本作为BOM的重要数据,不但需要维护其一致性,还需要进行有效地管理。版本管理能够记录对象的变更次数和基线状态,以及相关开发人员对对象实施变更的内容和时间,便于BOM的用户对对象的版本进行查看和进行组件的版本配套。最终提升设计者查询和调用BOM的效率。
本文面向PLM(Product Lifecycle Management,产品生命周期管理)系统,探讨几种BOM数据不一致的情形,并给出相应的一致性维护方案。在分析BOM版本管理需求和特点的基础上,提出BOM多视图的树状版本管理模型,研究BOM的版本状态演变过程,设计了BOM多视图分支的版本维护机制。最后设计了基于BOM的产品数据集中管理模型。
实际生产中,企业从单一数据源中提取数据形成BOM的多视图,这对数据一致性的维护有重要意义。但是由于各种BOM的生成过程不同,包含的数据也不完全相同,因此仍需要对比同一产品的不同BOM视图,以保证数据的一致性。物料项和物料项关系两部分构成了BOM,所以维护BOM一致性需要维护物料项和物料项关系的一致性。
1.1 常见的BOM数据不一致
显然,在BOM映射转换时,不同BOM视图的结构进行调整,物料项属性也受结构调整影响发生变化。为了避免混淆正确的变化与不一致的变化,在BOM多视图映射转换时必须严格按照BOM转换的流程进行,以免发生错误。但BOM映射转换仍然是引起数据不一致现象的多发阶段。
常见的BOM数据不一致现象可大致从结构和属性两个角度分析。
1)BOM结构不一致
在BOM的更改过程中,物料项关系的变化主要表现为BOM结构的变化,可能造成BOM结构的不一致,进而造成BOM结构上的数据异常。常见的有以下几类。
(1)物料项父子关系循环:在BOM中,如果存在子件中含有父件的结点,则构成了父子关系循环,即循环引用。编辑BOM中的零部件,或者从其他BOM中导入数据到当前BOM,都可能造成循环引用。这两种情况在本质上相同,都可以在事先避免:增加BOM结点,调用父子循环检测算法,进行BOM结构检查,可以判断是否发生了父子循环。
(2)物料项重复:当在BOM中添加结点时,新增结点的父结点己经包含相同的子结点了,这种情形本应该只改变物料的数量,不需要新增结点造成物料项重复。这类情况往往在类似工艺计划编制的应用中出现,应该事前通过检测新增结点父结点的子结点中有无与新增结点相同的结点来避免。
(3)物料项在演变过程中丢失:这是指在设计BOM中存在的非虚拟部件,通过BOM视图映射进行转换之后,在工艺BOM或制造BOM中不存在对应的零部件。
在以上不一致现象中,有些是可以事前避免的,如物料项父子关系循环和物料项重复。如果在增加BOM结点时,进行BOM结构检查,就可以判断是否存在出现不一致的可能。物料项重复的检查并不困难,只要查清待添加结点的父结点有无与该结点相同的子结点但有些现象只有事后检查对比才能判断,比如物料项丢失。
2)BOM属性不一致
(1)物料项数量不一致:如在演变过程中,装配单机的数量不一致。这一类不一致经常需要在BOM变化后进行对比来检查一致性。
(2)BOM版本不一致:不同BOM视图中结点的数量相等,但是如果它们没有对等关系,说明它们的版本并不对应。
除了严格遵守BOM转换和更改的流程以外,这两种不一致现象在事前没有方便的解决方法。一般采用事后的BOM对比来排查不一致现象。
1.2 BOM数据一致性的维护方法
针对BOM一致性维护问题,需要设计出BOM一致性检测方法,如针对父子关系循环的父子循环检查和针对事后检查的BOM对比。
1)父子循环检测算法
通常在BOM添加结点时调用父子循环检测算法,事先防止BOM父子循环的出现。
设源BOM为S,目标BOM的集合为T,SD记录S中某结点的所有后代,TA是T中某一结点的祖先的集合,QS存放按广度优先访问S得到的结点序列,QC是按顺序分别存放访问S中某结点的所有后代,QT是按顺序分别存放访问T中某结点的所有祖先。函数GetParent(v)和GetChild(v)分别访问并存储结点v的父结点和子结点。父子循环检测算法如下:
第1步:选取S的根结点r,将此结点放入队列QS中。
第2步:如果队列QS空,则不存在循环引用,结束算法;否则从队列QS中取出一结点v,将GetChild(v)加进队列QS,将v加入队列QC。
第3步:从T中取GetParent(v)加入队列QT和集合TA中。
第4步:如果队列QC空,则转第2步;否则从队列QC中取出一结点c,将GetChild(c)加进队列QC尾及集合SD中,C=SD∩TA,如果C≠φ,则存在循环引用,转第6步;否则继续本步。
第5步:如果队列QT空,则转第2步;否则从队列QT中取出一结点c,将GerParent(c)加进队列QT尾及集合TA中,C=SD∩TA,如果C≠φ,则存在循环引用,转第6步;否则继续本步。
第6步:输出v以及C,据此可分析得出何处发生循环引用。结束算法。
2)BOM对比
通过在BOM发生变化之后,对BOM的物料项和物料项关系进行对比,根据这两项内容的差异可得出以下几种结果。
(1)物料项异数:某指定物料项的属性数据(如装配的单机数量)在两个BOM中不一致。
(2)物料项缺失:某指定物料项(特别是继承部件)在一个BOM中存在,但在另一个BOM中不存在。
(3)物料项关系异构:某指定物料项关系在一个BOM中存在,但在另一个BOM中不存在。
(4)BOM版本差异:BOM结点在数量和结构上并没有物理对等关系。这可能是由于某一视图中的结点在工程更改时错误操作造成的。
目前,版本管理常用三种模型:线性模型,树状模型和有向无环图模型,这些模型依据BOM不同版本的产生顺序和继承关系,对单个版本进行系统编号,并组织其结构以描述版本演化的过程。其中,树状模型层次清晰,基本上可以充分地表示版本之间的演化关系,版本树中的一条特定路径能够反映一种设计方案的版本演变过程。
在本文中,为了提高系统使用效率,控制数据库中的版本数目,并保证多视图下追溯BOM数据的能力,采用关键版本管理法,即按版本的重要程度区分产品开发中生成的版本,按照关键版本和非关键版本这两类各自管理。
为了区分和追溯BOM版本,给每个版本赋予版本标识号。实际研发过程中需调用和多版本的BOM,版本标识应该满足:1)唯一性,同一个BOM的每个版本的标识都应是独一无二的;2)可跟踪性,复制/派生版本的标识需反映出其与原版本的联系与区别;3)一致性,不同结点上物理关系相对应的版本标识应一致。
图1 三种常见的版本管理模型
标识号一般是依据生成版本的时间先后顺序,记为英文字母(如:A,B,C,……)或阿拉伯数字(如:1,2,3,……)。本文中为了区分关键版本,混用两种形式,依据发布版本先后顺序给出字母形式的大版本号,依据版本生成的时间先后顺序给出数字形式的小版本号。大版本号和小版本号共同构成一个具体对象版本的标识号。
在设计和变更阶段,设计者每对产品对象每进行一次修改,都可以存储一个小版本作为记录。因为此时BOM数据变化较小,不是发布版本,因此只有小版本号改变。
当产品对象经过多次修改,BOM中的产品数据相对稳定时,经过发布审核程序,可以作为发布版本在公共数据库发布。此时大版本号改变,小版本号重置为初始值,系统将完整存储发布版本作为关键版本。发布版本存储固定产品数据的稳定态,作为后续工艺规划、生产制造及进一步研发的依据。产品需要进行改进时,也可以从存储产品数据稳定态的发布版本BOM出发,避免错误并减少重复劳动。
为了适应复杂产品数据更改频繁的情况,面向BOM多视图映射下的数据维护,建立BOM多视图下的采用多视图树状模型后,下游视图的BOM结点可以直接由上游BOM视图转化得到,并不一定是以本视图的版本为基础升级版本得到。与原来的树状版本模型相比,新增了区分新版本产生来源的功能。如图2所示,下游BOM结点中的A.1版本和A.3版分别即是在上游BOM结点A.1版本和A.2版本转化而来。
图2 BOM版本多视图树状模型
要实现完整生命周期中的版本的有效动态管理,合理的版本演变过程是关键。
根据BOM管理对象所处的状态不同,对其版本的处理也不同。版本管理能够记录对象的变更次数和基线状态,以及相关开发人员对对象实施变更的内容和时间,便于BOM的用户对对象的版本进行查看和进行组件的版本配套。以下面向实际生产中设计制造协同的情景,分析版本管理现状,提出多视图的树状版本管理模型,并设计BOM的版本演变和维护机制。
3.1 BOM版本演变过程
设计工作中存在工作、提交、发放、归档、废弃版本等状态。与这些状态相对应,可将版本区分为工作版本、提交版本、发放版本、归档版本和废弃版本。其中,提交、归档和废弃都属于冻结版本(不允许修改,可在需修改时解冻成为工作版本)。BOM版本管理工作流如下所示:设计状态的版本为工作版本(只允许设计人员本人修改,其他人不能修改,也不引用);完成设计过程后,提交给审批人员的版本为提交版本(不允许修改或引用,只允许查询);通过审批人员的审批后,在系统内发布的版本为发放版本(只有查询或引用的权限,不允许修改);如果要求某版本的数据不再进行改变,就冻结归档,成为归档版本。
在设计流程中,由上文可知:用A、B、C……等英文字母表示大版本号r,用1、2、3……等阿拉伯数字表示小版本号v。BOM版本演变过程如图3所示。
图3 工作流版本演变图
由图可知,BOM版本管理工作流中,版本的演变流程如下:
1)用户在个人工作区创建新对象,并上传到公共数据库作为初始版本,其版本标识号记为<r.v>,其中r=A,v=0。
2)设计人员将对象从公共数据库检出到个人工作区进行,此时为工作版本<r.v>,小版本号v自增。
3)对工作版本进行设计/修订,完成后将修改得到的新版本检入到公共数据库。版本标识号不变。
4)如果对象设计基本完成,需要进行审核,则产生提交版本以继续下一步;否则,小版本号v自增,检出到个人工作区继续进行设计,返回3)。
5)如果发布审核通过,则执行发布操作,产生可用的发布版本;如果审核不通过,小版本号v自增,检出到个人工作区生成工作版本,返回3)。
6)进入后期的工艺规划、仿真、生产制造等阶段后,如果出现客户需求更改等可能要求改变产品设计的情况,可以对发布版本提出更改申请,进入7);如果出现需要冻结BOM数据的情况,进入8)。
7)如果更改审核通过,发布版本返回到个人工作区,作为新的工作版本进行修订,其版本标识号在之前发布版本基础上修改,大版本号r自增,小版本号v重置为1,返回3);如果更改审核不通过,则返回6)。
8)对于发布版本需要冻结的情况,如果是实践后认为该版本不能再被使用(如版本有效期完结),不需要继续保存,则转入废弃状态;如果是产品设计成熟,需要定型,则转为归档状态,以保护版本数据和状态不被改动。
3.2 BOM版本多视图分支维护机制
在PLM系统中,通过版本来控制管理对象(如产品结构、文档及CAD文档等)的修改和变化过程。以PLM系统典型的版本机制作为基础,添加新的视图版本分支,最后形成如图4所示的版本维护机制。其中,各视图分支在产品的实际研发过程中,对应不同专业领域和生产环节的研发人员。图4中设想了设计、工艺、制造三个环节下,BOM多视图的版本维护。
图4 扩展视图分支后的BOM版本维护机制
增加了视图分支的版本演变和维护遵循正常的版本演变流程。具体规则如下:
1)在同一视图分支下,BOM版本号只发生小版本号的自增,大版本号不变。这表现了单一视图下,产生对象初始版本后,通过多次执行“检入/检出”操作按次序升级版本的历程。即同一领域中,设计与修改是在之前的设计方案基础上迭代修改的串行过程。
例如:图4的设计视图中,初始版本为A.1,按次序升级版本为A.2,A.3,A.4,A5。同理,工艺视图中,初始版本B.1按次序升级版本为B.2,B.3,B.4;制造视图中,初始版本C.1升级版本为C.2。
2)BOM的不同视图分支按研发过程中先后开始工作的顺序(即上下游关系)排序,当BOM从上游产生下游版本时,其大版本号依次自增,小版本号则按具体对应关系处理。这反映了研发过程中,上下游环节以“修订/更改”操作映射BOM视图的过程。大版本号的自增和小版本号的关联也表明,不同环节的设计过程存在一定的独立性,甚至是并行进行的。
例如:设计视图下的版本A.2,生成的工艺视图下的初始版本B.1;工艺视图下的版本生成制造视图下的初始版本C.1。
3)当任意环节对BOM进行修改,即小版本更新时,所有环节都进行版本更新,即都进行小版本号的自增。
4)维护机制流程图中最下一行的BOM为各视图分支下的最新版本。
在PLM系统中,需要基于BOM对研发过程中的产品数据进行集中管理。基于产品BOM多视图的产品数据集中管理模型如图5所示。
图5 基于产品结构多视图的产品数据集中管理模型
该模型呈现以下特点:
1)产品数据统一存储在基本视图中。基本视图中包含了可选的、必需的和允许配置的各种产品结构构件,便于对不同视图间数据的继承、共享和更改影响进行管理控制。通过该视图有效地集中管理研发过程中产生的产品工程数据,形成逻辑上的产品数据总线。
2)通过基本视图,基于版本、变量、有效性等不同条件的特定配置要求,面向不同的系统用户形成配置后的不同类型视图。图5中各列分别代表不同类型的视图。产品研发中最主要的视图包括:设计视图、工艺视图和制造视图,用户还可以根据业务需求灵活地进行扩展定义,比如图5中定义了装配视图。
3)不同类型的视图实例可按照视图类型之间的依赖关系通过转化生成,如上图中由设计视图依次转化形成的工艺、生产、装配视图。
4)基于面向不同业务视角的产品视图,产品研发过程中不同环节、不同阶段、不同业务领域的工程技术人员开展各自的业务工作,产生的产品工程数据又统一存储到基本视图中。
本文研究了企业产品研制过程中的BOM数据管理方法。面向实际生产中出现的BOM管理问题,如各环节间数据互通与关联困难、数据不一致问题较多、产品结构配置和管理效率低下等,本文提出了一些针对性的解决方法。初步研究了几种BOM数据不一致的情形,给出了相应的一致性维护方案。在分析BOM版本管理需求和特点的基础上,提出了BOM多视图的树状版本管理模型,采用关键版本管理法保证了BOM的版本追溯,研究了BOM的版本状态演变过程,设计了多视图分支下的BOM维护机制。这些BOM管理方法对于实现有效的BOM多视图管理,以及进一步实现高效的工程数据集成管理和研究PLM系统,奠定了良好的基础。