MES制造执行系统的原理与实现.docx

上传人:b****6 文档编号:4689288 上传时间:2022-12-07 格式:DOCX 页数:22 大小:705.08KB
下载 相关 举报
MES制造执行系统的原理与实现.docx_第1页
第1页 / 共22页
MES制造执行系统的原理与实现.docx_第2页
第2页 / 共22页
MES制造执行系统的原理与实现.docx_第3页
第3页 / 共22页
MES制造执行系统的原理与实现.docx_第4页
第4页 / 共22页
MES制造执行系统的原理与实现.docx_第5页
第5页 / 共22页
点击查看更多>>
下载资源
资源描述

MES制造执行系统的原理与实现.docx

《MES制造执行系统的原理与实现.docx》由会员分享,可在线阅读,更多相关《MES制造执行系统的原理与实现.docx(22页珍藏版)》请在冰豆网上搜索。

MES制造执行系统的原理与实现.docx

MES制造执行系统的原理与实现

前言

在中国制造业蓬勃发展的大潮中,随着竞争的发展,对产品质量的要求越来越高,对于制造流程控制的要求不断提升。

许多企业为了增强竞争力,不惜重金实施ERP系统,通过实施ERP来强化管理以求缩减成本控制、缩短供货周期。

然而,企业的生产计划管理受市场影响越来越大,明显感到计划跟不上变化。

面对客户对交货期的苛刻要求,面对更多产品的改型,订单的不断调整,企业决策者认识到,计划的制订要依赖于市场和实际的作业执行状态,而不能完全以物料和库存回报来控制生产。

同时,ERP解决的是资源计划问题,ERP能处理昨天以前发生的事情(作历史分析),亦可预计并处理明天将要发生的事件,但对今天正在发生的事件却留下了缺口。

计划目标经常被系统崩溃、过量库存、材料短缺、产品缺陷、设备停机和各种浪费等各种各样的因素破坏,因此就需要提高一个企业的执行力。

因为在今天的激烈竞争时代,“执行”才是企业赢得竞争和取得收益的关键因素——ERP系统并不能彻底解决这些经常发生的问题,在企业的内部生产控制上,需要一个完善成熟的生产控制平台。

于是,MES成为企业用户关注的焦点,越来越多的企业在考虑或实施自己的MES系统。

MES全称ManufacturingExecutionSystem制造执行系统,它的核心功能与传统的生产流程卡类似,即通过流水号控制生产工序。

MES通过创建产品的序列号来取代流程卡号,生产过程中的任何一个工序通过产品序列号(Serialnumber)访问数据库,得到所有相关的生产控制信息。

第一章什么是MES

1.1MES的功能

在传统的加工生产企业中,往往用流程卡来进行生产的跟踪控制。

在流程卡上印刷工序列表,每经过一个工位,则由作业人员打勾、签名、标注日期。

这样产品在生产线上流转时,我们可以检查产品是否经过了所有的必须工序。

流程卡在生产完成之后即作废,而序列号却一直保存在企业的数据库中,所以可以作为产品今后的跟踪依据,方便质量管理。

简单地说,MES有两大核心功能:

根据序列号进行工序的控制,根据序列号进行历史数据的跟踪。

1.2MES与ERP的关系

  ERP即EnterpriseResourcePlanning企业资源计划,是生产企业的核心模块,所有的生产都是由ERP(通过工单)发起、由ERP(通过发货单)结束的。

可以把MES看成ERP生产模块的专业化。

因此MES与ERP的接口应保持逻辑上的一致性。

第二章产品、工单、序列号

2.1产品(Product)

MES的流程通常是由ERP系统发起的,因此对于产品的定义必须与ERP保持一致。

通常,用Serialnumber(产品编号或者item_no和item_revision(产品版本)的组合)来定义一个产品(product)。

从ERP的角度而言,产品等同于物编码。

一个完整的产品周期可能包含以下环节,这些环节都与产品相关,如图2-1所示:

对于MES而言,产品除了物料属性以外,还有一些其它与生产密切相关的属性,如工艺流程、装配结构、测试规范等。

2.2工单(WorkOrder)

   一个工单定义了一次加工作业,包含以下信息:

待加工产品、数量、加工起点、原材料输出仓库、成品输入仓库,以及工单状态、计划完成时间等辅助信息。

一个标准的MES系统是由工单驱动的。

首先由计划员在ERP中定义工单,然后将此工单刷新到MES,车间的主管将工单落实到具体的产品工艺路线,操作人员按照工艺路线进行作业。

如图2-2:

2.3序列号(SerialNumber)

   在传统的生产过程中,我们往往用流程卡来指导产品的生产。

在MES系统中,我们用序列号来代表一个具体的产品。

序列号代表系统里唯一的一个产品,它具有item_no属性(ERP物料号),此外,它必须与工单关联,这样才能够用工单进行驱动。

对于制造件和装配件,它们的序列号规则是不一样的。

对于制造件,其序列号可以全部由MES系统分配产生,而采购件的序列号是供应商产生的,只能作为外来数据导入MES,同时赋予其item_no属性。

在一些情况下,序列号是企业的重要资源。

如对于网卡MAC地址,其前6位是企业代号,后6位是企业内部的MAC流水号,MAC地址的申请需要向相关组织缴纳费用。

另如中国GSM手机的IMEI号码,是由政府信息产业部分配的。

在某些情况下,序列号并不代表ERP中明确定义的产品。

如有一款手机产品G10,其ERP物料号为10010,MES系统会为其分配一序列号20061100001(item_no属性为10010),然而在ERP的BOM中并没有定义IMEI,为了保持序列号格式的一致,我们为IMEI定义一个“虚拟”(ERP中没有此物料号)的item_no:

IMEI。

这样此手机在生产完成之后,至少有2个序列号,1个是10010对应的序列号,1个是IMEI对应的序列号。

车间的操作人员在作业时,将序列号与工单建立关联关系,这样工艺路线就落实到每一个具体的序列号了。

产品、工单、序列号三者之间的关系如图2-3所示,序列号继承自产品,工单通过与序列号关联的方式驱动产品。

2.4条形码

为了提高序列号输入的效率,MES系统采用条形码(以下简称条码)来记录序列号。

条码是用条码打印设备,把序列号打印在尺寸裁切好的不干胶贴纸上,然后用激光扫描设备识别。

常用的条码打印设备有zebra公司的系列条码打印机。

常用的激光扫描识别设备有symbol公司的手持激光扫描枪系列。

常用的条码编码规范有39码和128码,在一些包装工厂,还用二维码来记录大量数据信息。

第三章工艺路线

3.1工位(Step)

在现代化生产中,批量生产多采用流水作业,流水线由若干个独立作业的工位组成。

工位是产品生产周期中的一个点,或者说一次作业。

工位是一个逻辑概念,一个工位可以对应若干个实际的工作台,比如电脑的主板装配工位,可以由4个工人、在4个工作台上做相同的装配作业,那么我们说这4个工作台对应于同一个工位。

在MES系统中,工位的定义可以和实际的作业有一定的出入。

还是举主板装配工位为例,在实际生产中可能作进一步的细化,分成定位、焊接、固定3个工位,但在MES系统中只定义一个工艺路线控制点,那么我们可以看作是一个工位。

3.2工艺路线(Route)

工艺路线是指产品的生产方法。

通常我们用流程图来表示工艺路线,流程图由当前工位、结果、下一工位组合而成,如图3-1。

工艺路线表达了产品完整的生产周期。

一个产品可以定义若干个工艺路线,如试生产工艺路线、量产工艺路线、返工工艺路线等。

但是一个工单只能驱动一条工艺路线,因此工单从ERP刷新到MES后,在生产之前,必须由车间主管或生产线组长指定工单到某一工艺路线。

简单地说,工艺路线是产品的一种属性,由工位组成,受工单驱动。

3.3当前工艺状态(RouteStatus)

生产控制的目的,是为了实现“在指定的工位,做指定的产品”。

我们在工艺路线里已经定义了当前工位、结果、下一工位的组合关系,因此我们只要再记录某个序列号对应的产品当前的工位和结果,就可以得到下一工位,由此可以进行工艺检查和工艺记录。

对当前工位的定义方法有两种。

第一种定义刚刚结束的工位是当前工位。

这样在工艺状态表里记录了序列号、当前工位名、当前工位结果。

第二种定义下一工位是当前工位。

这样在工艺状态表里记录了序列号、当前工位名。

3.4工艺检查(RouteCheck)

工艺检查是判断序列号是否出现在正确的工位。

方法如下:

按第一种定义,前台录入工单、序列号、作业工位。

后台根据工单得到工艺路线;根据序列号得到当前工位和结果;然后根据工艺路线和当前工位、结果,得到下一工位;比较下一工位和作业工位,得到工艺检查的结果。

如图3-2所示:

按第二种定义,前台录入序列号、作业工位。

后台根据序列号得到当前工位;比较当前工位和作业工位,得到工艺检查的结果。

如果3-3所示:

3.5工艺记录(RouteUpdate)

工艺记录是指工位作业完成后,对工艺的状态进行更新。

按第一种定义,前台录入序列号、作业工位、结果,后台直接将此数据更新到工艺状态表。

如图3-4所示:

   按第二种定义,前台录入工单、序列号、作业工位、结果;后台根据工单得到工艺路线;根据工艺路线、作业工位、结果,得到下一工位;根据序列号、下一工位更新工艺状态。

如图3-5所示:

我们可以看出,两种方法的区别是:

第一种方法在routecheck时引用工艺路线,第二种方法在routeupdate时引用工艺路线。

第一种方法在routecheck时较为繁琐,但是适合以下这种特殊情况,即当前工位和结果的组合,对应的下一工位有多条记录,如图3-6:

3.6工艺历史(RouteHistory)

   在进行RouteUpdate的时候,同时产生一条log记录,包括作业时间、作业人员、作业工单、序列号、当前工位、结果。

当生产结束的时候,一个序列号有多条routelog记录,这些记录就构成了一个序列号的工艺历史RouteHistory,也就是一个完整的生产周期的记录。

3.7工艺初始化(RouteInitial)

工艺的起始点比较特殊,因为有了它之后才能进行工艺检查。

为了设计的方便,我们在所有的工艺路线中,均设计其起始点为工艺初始化点,此点之后的工位就可以使用routecheck和routeupdate方法了。

初始化的方法有两种。

第一种是在序列号创建之时就进行初始化。

第二种是在routecheck时检查是否有routestatus记录,如果没有,则先进行初始化。

初始化是一种特殊的routeupdate,其工位名是initial。

3.8工艺结束(RouteClose)与工单关闭

工艺结束点也是较为特殊的一个工位,它是所有工艺路线的最后一个工位。

按照routeupdate的第二种方法,则系统通过routeupdate自动产生close工位。

关闭工单时,系统得到此工单驱动的所有序列号;然后routecheck其当前工位是否都是close;如果全部close则允许关闭工单,否则需强行关闭工单。

按照routeupdate的第一种方法,则routehistory里不包括close工位,所以必须手动关闭。

关闭工单时,系统得到此工单驱动的所有序列号;然后routecheck其当前工位是否都是close;如果全部close则允许关闭工单,否则需强行关闭工单。

可以在关闭工单时,将其驱动的序列号routeupdate到close工位。

3.9故障与维修

故障工位与维修工位是较为特殊的route工位,因为它们在routeupdate的同时,还要记录相应的故障与维修记录。

故障与维修信息可以看成routeupdate的扩展信息,每一次的故障与维修记录,都通过外键关联到一条routelog历史记录,因此route与故障、维修的动作就接合在一起,可以通过序列号找到它们之间的关联。

3.10自动测试

在现代企业的生产中,为保证产品的质量,往往在生产周期中设置若干个测试点,在大批量的生产中,这些点往往采用自动测试完成。

具体的操作是:

首先根据产品与工位定义testprofile测试模板,然后输入实测数据,生成测试数据文件,并关联到序列号。

由于测试文件与测试模板是关联的,因而能够根据testprofile进行分类统计。

自动测试是一个特殊的route工位,操作前需要routecheck,完成后进行routeupdate并生成routelog。

测试数据与routelog进行关联,因而可以根据routehistory直接定位测试数据。

3.11产品、工单与工艺路线

   产品、工单与工艺路线的关系,见图3-7,装配结构、包装结构、材料跟踪的定义参见后面的章节。

第四章装配

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就可以跑出所有的数据。

具体的实现方面,需要数据库设计方面的技巧,也可以参考数据仓库的原理。

第五章包装

5.1包装的概念

在MES系统中,我们定义包装的概念为,将一个产品放在某一个不能代表此产品的容器中的动作。

举个例子,将手机放入礼品盒的动作不是包装,因为礼品盒序列号与手机的序列号是一一对应的,可以用礼品盒的序列号来描述此手机,因此两者之间是序列号关联关系。

而将多件手机礼品盒打包到托运箱的动作是包装,

因为一个包装箱里包含了若干只手机,因此不能用包装盒来代表某一件具体的手机产品。

我们可以将包装理解为在产品生产完成之后,为发货而准备的一个动作。

图5-1是一个典型的包装例子:

5.2包装的实现

   就技术的角度而言,包装和关联实现的方法基本一致,都是用数据库储存树状的结构。

但是由于包装箱和产品的属性还是有较大的差异,因此我们有必要分别处理。

具体的来说,首先我们定义包装箱的属性,如尺寸、重量、物料号等,然后建立产品序列号与包装箱序号的引用关系。

图5-1的包装箱属性,如表5-2所示:

包装的基本动作是装箱与拆箱,对应于数据库层面的新增引用关系和删除引用关系。

5.3包装与发货

发货意味着产品生产周期的结束,在许多企业里,往往有一个独立于ERP与MES的发货管理系统。

在执行发货的动作时,作业人员录入箱号,然后从MES系统里得到此箱所有产品的序列号,以及按照物料汇总的统计信息;然后将序列号信息录入到发货管理系统,将物料汇总信息录入到ERP。

为了发货的方便,通常将一些发货的信息反映到包装箱上,如张贴A4报表,或者贴二维条码,以及反映相应的发货单号等。

由于许多信息是从MES系统中取的,为了提高效率,往往将这些动作提前放在包装时进行。

也就是说,在包装时就预先记录了部分发货信息。

MES与ERP、发货系统的关系,如图5-4所示:

图5-4

第六章材料跟踪

6.1为什么需要跟踪材料

在许多情况下,我们需要对生产过程中用到的材料进行跟踪,特别是针对一些关键的采购件。

比如PC生产商发现一批CPU有严重质量缺陷,那么必须知道这批CPU已经被应用到哪些产品中,也就是说必须根据CPU的批次信息,找到与之关联的产品序列号。

MES中的材料跟踪模块,就是为实现这个功能而设计的。

6.2定义材料

   这里所说的材料,是指产品BOM中要跟踪的零部件列表,通常分散在若干个工位中。

要跟踪的零部件列表是产品的一种属性,定义方式如图6-1:

6.3定义物料

材料跟踪与装配的不同之处在于,子装配件都有独立的序列号,而待跟踪材料没有独立的序列号,只有物料和批次信息。

比如对于常用的电阻电容,由于同一批次内的产品差异性不大,我们不会追踪到每一个独立的物料。

通常对物料的定义建立在最小包装单位上的,如对于盘状包装的贴片元器件,其最小包装单位是盘,也就是说每一个单独的包装盘,都有一个唯一的最小包装物料编号,在此包装单位的所有物料具有完全的可替代性。

最小包装序列号包含以下属性:

ERP物料号、单位、数量、供应商信息、进料日期、失效日期。

6.4关联

   物料的关联通过一个特殊的route工位进行,具体的操作是关联产品序列号与最小包装物料号。

关联的实现方法与装配的方法较为类似,区别在于,装配的时候,所有的序列号之间是一一对应的,而物料关联时,一个最小包装物料号允许关联到多个产品中。

如图6-2:

由图可以看出,最小包装1被应用到产品1、产品2中,最小包装4被应用到产品2、产品3中。

假设产品1应用到的物料1数量等于2,那么这个物料有可能是在同一个最小包装里的,也有可能是在不同的包装里的,那么怎么区分定义呢?

在贴片加工的工艺中,除了要定义物料的编号外,还要定义物料的位置,相同物料在同一位置出现的数量只能是1,因此在跟踪时只要记录产品关联的最小包装物料号与位置即可。

而在非贴片加工的工艺中,往往对位置的信息并不敏感,因此在关联时只要记录产品序列号,以及与之关联的最小包装物料号和数量即可。

6.5跟踪

通常有两种跟踪方式。

第一种是根据序列号跟踪物料。

根据工单或其它产品信息,得到产品序列号的集合,然后根据序列号集合得到物料的批次信息。

第二种是根据物料跟踪序列号。

跟踪的依据都是最小包装物料号和序列号的关联关系 

第七章架构

从逻辑上来说,MES系统应包含以下3种服务器:

http服务器、ftp服务器、email服务器。

7.1模块

MES主要由资源管理、流程控制、报表查询3个大的模块组成,如图7-1所示:

MES中的资源包括工单、产品、序列号。

工单从ERP导入,产品的基本信息也在ERP中定义。

序列号根据工单和产品信息,在MES系统本地产生。

流程控制模块包括工艺路线控制、装配控制、包装控制、材料跟踪控制。

这些控制模块都根据产品定义,然后基于序列号进行控制。

尽管工单、产品、序列号几乎贯穿于所有流程控制模块,但是我们会将它们的扩展属性与基本属性分离,并拆分到各相应的控制模块中,这样就保证了各控制模块的逻辑分闭。

数据中心模块包括数据整理和数据查询。

此模块将资源管理和流程控制中的数据,定期在后台按照一定的规则进行整理归类,然后提供统一的接口进行分析查询。

由于MES中的数量非常庞大,各类数据之间的引用关系又较为复杂,数据不整理的话,进行统计查询的效率会非常低。

7.2角色

   表7-2列出了MES系统中的基本角色及其功能。

7.3数据库

   由于MES系统的数据量庞大,连接数和并发量都比一般的系统大得多,所以必须采用支持这种特性的数据库,如oracle和sqlserver。

7.4服务器

从逻辑上来说,MES系统应包含以下3种服务台:

http服务器、ftp服务器、email服务器。

http服务器提供以下服务:

Webservice、权限管理、报表查询、其它后台数据处理。

ftp服务器提供以下服务:

文件存储、版本更新。

email服务器提供以下服务:

与外界接口、系统消息发送。

7.5客户端

系统采用三层架构,客户端通过webservice进行事务处理。

客户端根据角色的不同,提供不同的功能。

对于制造工程师,客户端提供的功能是定义产品的工艺路线。

工艺路线由工位组成,而装配结构、包装结构、物料跟踪结构、测试模板均定义在工位上,因此客户端的核心功能是对工位的定义。

对于生产主管而言,客户端提供的功能是激活工单,即将工单关联到具体的序列号。

对于生产作业人员而言,客户端提供的功能是产生序列号和实现各工位的具体操作,因此其核心功能是解析系统对工位的定义,并展现相应的结构,实现数据录入和流程控制。

第八章外部数据管理

8.1外部数据

   目前生产外包的现象已经非常普遍。

为了方便生产数据的综合分析,必须将外部数据集中到企业的中央数据库。

图8-1是一个典型的外部数据管理流程。

由图8-1可以看出,OEM控制系统是一个逻辑封闭的系统,与MES的中央数据库通过接口进行数据交换。

OEM的数据经过整理之后进入数据中心,就可以象本地的数据一样,采用统一的报表进行查询分析。

8.2数据分类

为了方便对OEM数据的统一管理,应该分析数据的特性,按照数据类型进行分类,经过分类的数据类型适用于所有的OEM厂商。

OEM最基本的数据类型有:

序列号基础信息、装配信息、包装信息、测试信息等。

对于已定义的数据类型,所有的OEM厂商都以相同的格式存储数据。

8.3数据传输

最方便的数据传输方式是通过FTP传输。

OEM的数据首先在本地汇集到一台PC上,然后通过FTP上传到企业的FTP服务器上。

可以在FTP上,根据数据类型的不同,创建若干个子目录,以方便数据的后续处理。

由于数据类型和OEM厂商无关,所以所有的OEM厂商都可以用同一个数据传输程序进行数据上传,有助于数据安全和控制。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高中教育 > 理化生

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1