MRP算法

ERP核心模块–MRP

本文针对ERP中MRP核心模块的算法进行了分析,描述的角度有多方面的。

一、ERP计算总体流程

或许大家大都对这个流程图比较熟悉,但是这里还是把他列了出来,因为这是本文的一个开始,也是一个基奠,如下图:
在这里插入图片描述
从本图例上看,其过程应该是我们根据主生产计划、物料主文件、物料清单、库存信息以及工作日历通过MRP计算器得到采购计划及自制计划。下面将做分步详细的说明。

1.主生产计划(MPS)

1、主生产计划(MPS)存储结构

代号产品编码产品图号产品名称需求数量订货日期需求日期
MPS001AAA52021/03/202021/03/20
MPS0012AAA102021/03/202021/03/20
  1. 主生产计划(MPS)数据库设计
名称代码数据类型非空是否主键
MPS代号IDnvarchar(20)TRUETRUE
产品代码ItemCodenvarchar(20)TRUEFALSE
产品图号DrawIDnvarchar(20)TRUEFALSE
产品名称DrawNamenvarchar(20)TRUEFALSE
需求数量DemandNumintTRUEFALSE
订单日期OrderTimedatetimeTRUEFALSE
需求日期DEMandTimedatetimeTRUEFALSE

2.物料主文件(Materiel)

1、物料主文件(Materiel)存储结构

物料编码物料名称图号计量单位物料类型物料来源批量最小订货量订货倍量固定提前期可变提前期安全库存是否独立需求是否虚拟件
AAAEAMM581051500
BBBEAMM108205210000

2、物料主文件(Materiel)数据库设计

名称代码数据类型非空是否主键说明
物料编码ItemCodenvarchar(20)TRUETRUE
物料名称ItemNamenvarchar(20)TRUEFALSE
图号DrawIDnvarchar(20)TRUEFALSE
单位UMchar(4)TRUEFALSE
物料类型MatTypechar(4)TRUEFALSE
物料来源Soursechar(4)TRUEFALSEM或P
批量LotSizenumericTRUEFALSE
最小订货量OrderMinnumericTRUEFALSE
订货倍量OrderMulnumericTRUEFALSE
固定提前期LeadTimeintTRUEFALSE
可变提前期VleadTimeintTRUEFALSE
安全库存SafeStocknumericTRUEFALSE
是否独立需求Mpsflagchar(4)TRUEFALSE0或1
虚拟标识Phflagchar(4)TRUEFALSE0或1

……

3.产品物料清单(BOM)

1、产品物料清单(BOM)图示

在这里插入图片描述
2、产品物料清单(BOM)库存储结构

物料编码父物料编码数量关系层级
A10
BA31
CA21
DA41
EB22
FB12
GC22
FC32
HG43
IG13

3、产品物料清单的数据库设计

名称代码数据类型非空是否主键
物料编码ItemCodenvarchar(20)TRUEFALSE
父物料编码FaItemCodenvarchar(20)TRUEFALSE
数量关系NumintTRUEFALSE
层级StepintTRUEFALSE

4.库存文件(INVENTORY)

1、库存文件(INVENTORY)的存储结构

物料编码物料名称当前实存计划入库已分配量预计可入库量
AA55
BB1001005050
CC1001005050
DD1001005050

2、库存文件(INVENTORY)的数据库设计

名称代码数据类型非空是否主键说明
物料编码ItemCodenvarchar(20)TRUETRUE
物料编码ItemCodenvarchar(20)TRUEFALSE
物料名称ItemNamenvarchar(20)TRUEFALSE
当前实存StoNownumericTRUEFALSE
计划入库StoPlannumericTRUEFALSE
已分配量StoDownnumericTRUEFALSE
预计可入库量StoHavenumericTRUEFALSE

5. 工作日历(WORKDAY)

1、工作日历(WORKDAY)数据库设计

名称代码数据类型非空主键说明
日期编号wd001varchar(20)TRUETRUE
日期wd002varchar(20)TRUEFALSE
是否为工作日wd003varchar(1)TRUEFALSEO或1
工作日数量wd004numericTRUEFALSE
对应工作日日期wd005datetimeTRUEFALSE

2、对工作日历数据库设计的说明
工作日数量:如果是工作日,则自动加1
对应工作日日期:如果是工作日则对应日期,如果不是工作日则是最近的工作日日期

二、物料需求计划(MRP)计算逻辑

(一)、基本逻辑,MRP的基本逻辑可做如下解释

             A、要生产什么,包括采购的和制造的,生产多少?
             B、生产这些东西要用的什么物料?这些数据可以通过BOM表获得
             C、已经有了什么?这些数据可以根据库存文件获得
             D、还缺什么?需要多少?这些由通过MRP计算结果得到
             E、何时开始制造(采购),什么时间完成?这些信息由MRP计算结构得到

(二)、物料需求计划(MRP)的相关计算

             1、计算毛需求Demandrough(T) 
            是指在T计划周期内对物料的总需求量,分两种情况,第一种情况是如果是独立需求件,毛需求量根据主生产计划得到;第一种如果是相关需求件,则通过如下计算公式:Demandrough(T)=

N
∑Di (T)*Qi

i=1
其中Di (T)是指该物料的第i个父项在第T时段计划下达数量,Qi为单位第i个父项所需子项的数量,即BOM表中的数量关系。
注意:在实际的计算过程中或许会碰到同一物料在不同层级上的现象,这时候就引用了底层码的概念,低层码是指如果同一物料在不同层级上出现则其低层码取层级较低的那个,从数字上看就是数字较大的那个;
在实际的MRP计算中是按照低层码顺序对产品结构树进行层序遍历的。
2、有效库存(V(t))与净需求量(G(t))
有效库存 V(t)=S(t)-A(t)+R(t)-safestock,
净需求量 G(t)=Demandrough(T)-V(t)
S(t) 为当前是存量,
A(t)为已分配量,
R(t) 为预计到货量;
如果G(t)>0,在T时段能够满足需求,需要下达任务;
如果G(t)<0,则说明当前库存能够满足T时段的需求,不需要下达任务。
3、计划产出量P(t) 为了满足净需求,我们需要计算计划产出量,从上面的分析或大家认为,计划产出量为Demandrough(T) 不就可以了吗?!
实际上这里面有个策略的问题,大家或许都比较明白经济订货批量或经济生产批量的定义或最小订货量的定义,我们把这个参数定义为EOQ,为此这里我们需考虑这些因素,所以这里需要做个判断: 如果G(t)>EOQ,则订货量为G(t) 如果G(t)<EOQ,则订货量为EOQ 注:当然这里或许还有一个订货倍量或者物品的包装规格的计算问题,在这里就搞这么复杂了。
4、计划投入量R(t) 之所以提出这个概念是因为里面考虑一个参数,这个参数就是废品率P,在实际的生产或采购过程中必然会遇到废品率或不合格率的问题,所以我们的投入一般都要根据这个参数将计划产出量(P(t))进行放大,其计算方法如下:

               R(t)=P(t)*(1-p)

5、期末库存量(H(t))
指的是在某物料在T计算周期期末的库存量,这里有两种情况,
第一,当毛需求量Demandrough(T) 大于上一期的期末H(t-1)再减去安全库存safestock时,则期末库存H(t)为计划产出量与净需求之差,
第二,反之,则为上一期的期末库存与毛需求之差,用公式表示如下:
若Demandrough(T) <H(t-1)-safestock,则H(t)=P(t)-G(t);
若Demandrough(T) <=H(t-1)-safestock,则H(t)=H(t-1)-Demandrough(T)

(三)、物料需求计划(MRP)的计算流程

1、MRP计算流程,如下图:
在这里插入图片描述

2、MRP计算逻辑
1)初始化,导入主生产计划(MPS)、物料清单(BOM)、库存信息、工作日历等文件数据
2)分解计算,对每个物料按期在BOM中的层次自上而下,自左而右进行循环分解,从层级为0的物料开始,依次执行步骤3)——9)
3)计算毛需求Demandrough(t),计算出当前层次上物料的毛需求量
4)若该物料的底层码等于当前层次号,则执行步骤5)——7)否则该物料的毛需求结果进行暂时保存,并跳转步骤8)
5)计算净需求G(t)
6)计算计划产出量P(t)
7)计算计划投入量R(t)
8)若该物料有子节点,转步骤9),否则计算该层下一个物料的相关需求量,并跳转步骤3)
9)若N不是最后的层次,则N=N+1,转步骤3),否则表明该物料的所有层次遍历完毕,分解结束

3、MRP计算结果报表格式

物料编码物料名称毛需求量净需求量计划产出量计划投入量预计期末库存量开工时间完工时间

三、物料需求计划(MRP)的软件实现

MRP系统总体功能结构图
   在这里插入图片描述

  • 9
    点赞
  • 62
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值