信息化 频道

《MES制造执行系统的原理与实现》连载(3)

  第四章装配
    
  4.1装配(assembly)与子装配(sub-assembly)
    
  ERP中的产品不仅是物料,它同时还是一个装配件,通过BOM表达它的装配结构。

  一个装配件由若干个子装配件组成。
    
  比如一台PC,包含的子装配件有主板、CPU、显卡、硬盘、显示器等,其BOM的结构如图4-1:

  这个结构表示一台PC由1件主板、1件CPU、1件显卡、2件硬盘、1件显示器、1件机箱组成。这种结构可以看成PC这种产品的一个属性。在MES系统中,这种结构通过产品工艺路线的若干个工位体现,如图4-2:

  图4-2表示PC的装配工艺共分散在4个工位中。
    
  为了记录产品与其子装配之间的关系,我们需要将产品的序列号与子装配的序列号进行关联。具体的操作如表4-3:

  关联完成之后,MES数据库里就保留了产品与其装配件之间序列号的关联关系,如图4-4:

  从技术的角度而言,有两种方法记录序列号的关联关系。第一种方法是在数据库里保存产品的结构,然后各相关序列号指向这种结构。

 

   第二种方法是直接记录各序列号之间的关联关系,形成一棵“树”。比较而言,第一种方法方便形成批量数据关联关系的报表,而第二种方法隔离了序列号数据与产品结构,所以产品的结构变了也不会影响历史数据。
    
  我们更倾向于采用第二种方法,因为这对于后面要说到的序列号关联替换、注销等操作更为方便。
    
  4.2序列号关联表的设计
    
  考虑到关联的结构,用父-子节点来定义树状结构是非常方便的,效率也比较高。如图4-5所示的结构:

  ID字段是序列号所在的节点,SN是序列号,father_id是序列号的父节点,如为负数则表示此父节点并没有对应的序列号存在,也就是说此SN是该节点数上的根节点,为方便,我们称负数的节点为虚节点。

  4.3新增序列号关联
    
  按照节点的设计,任何一次关联动作可以看成把某一节点设置为另一节点的父节点,为方便叙述,我们统一称为把SN1的节点设置为SN2的父节点,或者把SN2关联到SN1上。
    
  新增序列号关联的方法为:更新序列号关联表,设置SN2的父节点等于SN1的节点。
    
  为避免逻辑上的混乱,我们在关联之前必须进行检查,规则为:
    
  1)SN2的父节点必须为虚节点,也就是说SN2是根节点,这样做是为了保证任何一个SN只能有一个父节点。
    
  2)SN2的父节点不能是SN1所在树上的根节点。
    
  例如,将2221关联到1116上,如图4-7

  则2221必须没有父节点,这样不会造成大于1个父节点。而且2221必须不等于1116树上的根节点(1111)。

 

   4.4序列号关联替换
    
  输入旧序列号SN_old、新序列号SN_new,以进行替换。替换的前提条件:
    
  1)SN_new的父节点必须是虚节点,也就是说,SN_new必须是根节点。
    
  2)SN_new不能等于SN_old所在树上的根节点。
    
  替换的方法为:
    
  1)设置sn_new的父节点等于sn_old的父节点。
    
  2)设置sn_old的父节点为一个新的虚节点,这样sn_old仍可以看成以sn_old为根的一棵树。
    
  如图4-8的已有关联:

  以6666替换3333的结果如图4-9:

  4.5序列号关联注销
    
  对于在序列号关联表中已有记录的序列号,它不仅有自己的节点,而且也可能是其它序列号的父节点,因此在注销时可能对其它序列号产生影响。
    
  序列号关联注销的动作为:
    
  1)定义该序列号的父节点为一新的虚节点;
    
  2)更新所有该序列号的子节点,分别定义其父节点为新的虚节点。
    
  例如:注销1113,如图4-10所示:


  4.6序列号关联查询
    
  输入单个序列号进行关联查询的方法为:
    
  1)追溯至此序列号的根节点。
    
  2)以根节点做递归查询,列出所有树状结构的子节点。
    
  3)在每个节点上,通过关联表得到序列号的相关信息。
    
  这种方法很容易还原生成序列号关联关系的树,而且也不存在效率的问题。
    
  但是在实际的生产中,经常需要做大批量的查询,并且生成格式统一的报表,比如根据工单输出所有的关联序列号。象这种情况,如果还要逐个序列号进行迭代查询的话那么效率就会有很大的影响。解决方法是,在查询之前,系统定期对关联数据进行后台处理,把树表展成平表,这样查询时就无需迭代,一条SQL就可以跑出所有的数据。具体的实现方面,需要数据库设计方面的技巧,也可以参考数据仓库的原理。(e-works)

0
相关文章