主生产计划的功能以及其相关MRP类型参数

来源:互联网 发布:精纯盐的网络热词 编辑:程序博客网 时间:2024/04/29 05:05

主生产计划实际相当于一个计划调节器,用主生产计划可以合理的调节企业资源配置与需求的矛盾,避免由于需求不稳定造成的产品未能按期交货,产品积压,资源浪费、超负荷运转等现象,提高企业对用户的服务水平。

一般MPS的计划对象为最终产品或者关键重要部件,有时候也会对原材料做计划,比如造船行业。原料品种比较少而产品品种比较多。

在SAP系统,和MPS相关的MRP类型有:

M0 MPS,固定类型 -0-
M1 MPS,固定方式 -1-
M2 MPS,固定方式 -2-
M3 MPS,固定方式 -3-
M4 MPS,固定方式 -4-

到后台去看这些参数的配置,发现只有确定的类型(Firming Tpyes)一个值不一样

0 计划结果未被确认
            1 自动确定和订购建议被重新计划
      2 不含订购建议的自动确定
        3 手工确定和订单建议再计划
    4 手工确定不含订单建议

为了弄清楚上面每个确定类型的含义,需要看下面的图:

image

在时区1、2,某时刻到计划时界这个区间内计划订单是否被确定,新的需求的是否创建以及创建的落点在那个区间,由这个确定类型参数确定,下面是它的详细解释。

image

tpye0 :需求不自动确定,新的需求在需求日期创建,不会自动确定(计划时界内外都一样)。

tpye1 :需求自动确定,新的需求如果日期在计划时界内,那么在计划时界结束的位置创建需求。

type2 :需求自动确定,计划时界内的新需求不被考虑,缺料。

tpye3 :需求不自动确定,新的需求如果日期在计划时界内,那么在计划时界结束的位置创建需求。

tpye4 :需求不自动确定,计划世界内的新需求不被考虑,缺料。

PS:确定的需求,即不能再更改其数量。

MRP运行方式

概括的说可以对两个组织层次执行计划运行:1、总的计划 2、单项计划
·作为一个特定工厂的总计划运行。在此,在一个工厂中与计划相关的所有物料被计划。
·作为一个特定物料的单项计划。在此,计划运行为一个特定的物料在单层或者在多层中执行。
总计划运行的方式又可以细分为两种:A、前台运行 B、后台运行;单项计划又可以细分为单层多层等更为细致的计划,在单层计划中,系统仅计划所选物料的BOM层,在多层计划中,系统计划所选物料的层次加上所有较低的BOM层。
系统对应的路径为:后勤->生产->物料需求计划->计划->总计划->联机/作为后台作业(Logistics->Production->MRP->Planning->Total Planning->Online/As Backgroud)

联机就是前台运行整体计划,事物代码为MD01,指程序在客户端运行,如果客户机死机则程序中断。作为后台作业即是后台运行程序,事物代码为MDBT,程序在服务器端运行,客户端最终读取结果即可,不受客户端影响。

单项计划的路径: 后勤->生产->物料需求计划->计划->单项多层/单项单层/单项交互/单项销售订单/单项项目(Logistics->Production->MRP->Planning->Single-Item Multi-level/Single-Item Single-level/Single-Item Interactive/Single-Item Sales order/Single-Item Project)

它们的事物码分别为:单项多层MD02 单项单层MD03 单项交互MD43 单项销售订单MD50 单项项目MD51

MRP运行的先决条件

image
对于工厂是否跑MRP取决两个条件:1、工厂MRP状态是否激活。2、计划文件是否创建。

工厂MRP状态激活和计划文件创建可以通过路径SAP用户化实施指南->生产->物料需求计划->计划文件条目->激活MRP和建立计划相关文件(SAP Customizing Implementation Guide->Production->Material Requirement Plannning->Planning File Entries->Activate MRP and Set Up Planning File)

进入如下画面

image
选择material requirements planning 勾选相应的工厂即激活此工厂MRP状态

选择Set up planning file 创建计划文件,计划文件除了后台可以设置外,在MRP运行时选择处理码NEPUL,系统可自动创建计划文件。

对于物料是否跑MRP,取决于物料选择的MRP类型参数,以及物料的状态是否有效。

客制化MRP参数的优先级别

MRP运行时数据读取顺序是首先读物料主数据的MPR参数,然后读取MRP组的参数,最后读取工厂参数。通过这样一种有层次的架构,满足差异化的计划方法,以及方便数据维护。

MRP的运算逻辑及低阶码的用途

一般MRP的运算逻辑为由最终产品的毛需求减去当前库存,得到净需求,由净需求、提前期、安全库存等信息推算出实际投产日期和实际数量(净需求);由本级物料的净需求及BOM结构的数量比关系计算出下一级物料的毛需求,再由毛需求和当前库存信息,计算得到净需求⋯⋯依次循环,直到不再有下层物料为止.

但是这样一种逻辑当遇到共用件的时候会出现问题。比如甲产品有组件A(1)、B(2)、C(1);乙产品有组件A(1)、D(2),D的组件为B

imageimage
如果甲和乙各有独立需求100,那么按照甲展开,B的毛需求应该为200,减去库存值50(假设),得到净需求为150;按照乙展开,假设D的毛需求等于净需求,那么可以计算出B的毛需求的为200,但是这个时候还需要再减去库存值50吗,很显然不应该减,但是按照上述逻辑可能计算出乙中B组件的净需求为150,那么总的净需求就为300,而实际的净需求应该是350。为了避免这种错误在BOM存在共用件的时候发生,引入了阶层码和低阶码的概念。
image

从最终产品到原材料,给BOM结构的每一个层次分配一个阶层码,MRP运算的顺序为上图箭头顺序,当物料阶层码为最低的时候,再累加毛需求,计算净需求。比如物料B有两个阶层码,当运算到阶层码002,B的最低阶层码时,累加毛需求再计算净需求。运算过程如下表:

步骤

计划物料

毛需求

可用库存

净需求

BOM下阶组件毛需求

1

100

0

100

A
B
C

100
200
100

2

100

0

100

A
D

100
200

3

A

100+100

30

170

-

-

4

C

100

20

80

-

-

5

D

200

0

200

B

200

6

B

200+200

50

350

-

-

 

只有当物料的阶层码为最低阶层码的时候,系统才扣除当前库存,计算物料的净需求。

PS:为了避免人为分配错误导致MRP运算无法运行,阶层码由SAP系统在创建BOM时自动检索分配,数位为3位,所以BOM的最高层次也只能为999层。

SAP PP MD02界面参数说明

image

处理代码:

NETCH -净变化计划,即只计划上次计划以后计划相关内容发生变动的物料(注意,某些物料的参数发生变动了,系统也认为计划内容没有发生变动)。

NETPL – 计划周期内的净变化计划,即只在计划周期内执行净变化计划,周期外将不进行计划。

跟mrp相关的变化在planing horizon中,即由物料主档的MRP1视图的计划的时界,超出计划时界的将不进行计划。

NEUPL – 重新计划,所有的物料不管有没有变动都再次计划。

只要速度可以,建议每次都选NEUPL(注意某些单项计划不能选择NEUPL),其次选NETCH。

说明情况:有的物料在用MD01时的NETCH的物料计划单不会重新产生那是因为NETCH只运算物料计划发生变化了的物料,因此要用MD01让所有物料的计划单重新产生,一定要用参数NEUPL;而用MD02时的NETCH会重新产生物料计划单。

创建采购申请:
1-计划结果直接生成采购申请;2-只在未清期间内生成采购申请,未清期间外生成计划订单;3-全部生成计划订单;

交货计划表:
如果MM模块启用了计划行,则MRP运行的结果如下处理:1-不生成计划行;2-只有在未清期间内生成计划行; 3 – 全部生成计划行;

创建MRP清单:
设置MRP运算是否更新MRP清单;1-不生成/更新;2-根据例外信息决定;3-全部更新/生成MRP清单;
计划模式:
1-不清空原先的计划订单;2-不清空,但是要重新展开他们的Bom和工艺路线(即按照最新的Bom和工艺路线计划);3-全部清空未确认的计划订单,重新生成。

调度:
1-按物料主数据的提前期进行排产;
2- 按工艺路线进行排产;
这是运算MRP时的参数选择描述,在创建采购申请 项目中选择1就可以了,不用到后台.

Ps: 未清期间:简单的说就是为计划员提供了一个提前处理的缓冲期。在逆推排产的逻辑下,比如MRP创建的计划订单开始日期是5日,未清期间是3天,那么假如当前日期是1日,就还没有进入未清期间,此时计划员就没必要这么早处理计划订单,而如果当前日期是3日,就在未清期间里了,此时在MD04中会有一个例外消息05产生,用来提示计划员可以去将这张计划订单转换成生产订单或者采购申请了,这样就可以给计划员充分的时间来处理订单。如果没有未清期间,直到5日都不会有任何提醒,到时候再来处理就有可能来不及了。

mrp控制参数及未清期间

MRP Control Parameters & Opening Period

——–mrp控制参数及未清期间

经常有人对MRP/MPS运行界面上的参数选择迷糊, 特整理说明如下.

image

Processing key :
NETCH (净变化计划):即只计划上次计划以后计划相关内容发生变动的物料(注意,某些物料的参数发生变动了,系统也认为计划内容没有发生变动)

NETPL(计划周期内的净变化计划):即只在计划周期内执行净变化计划,周期外将不进行计划.

NEUPL(重新计划)所有的物料不管有没有变动都再次计划. 如果没有Performance的考量,建议每次都选NEUPL(注意某些单项计划不能选择NEUPL),其次选NETCH.

Create Purchase req.(创建采购申请):
1:计划结果直接生成采购申请(PR);
2:只在未清期间内生成采购申请(PR),未清期间外生成计划订单(Planned Order);
3:全部生成计划订单(Planned Order).

Delivery Schedule(交货计划表):如果MM模块启用了计划行(Schedule Line),则MRP结果如下处理:
1:不生成计划行(Schedule Line);
2:只有在未清期间内生成计划行(Schedule Line);
3:全部生成计划行(Schedule Line);

Create MRP List(创建MRP清单):设置MRP运算是否更新MRP清单(MRP List):
1:不生成/更新
2:根据例外信息决定
3:全部更新/生成MRP清单(MRP List)

Planning Mode(计划模式):
1:不清空原先的计划订单(Planned Order);
2:不清空,但是要重新展开他们的BOM和Routing(即按照最新的BOM和Routing);
3:全部清空未确认的计划订单(Planned Order),重新生成.

Scheduling(调度):
1:按物料主数据的提前期(Lead Time)进行排产
2:按工艺路线(Routing)进行排产

==================================================

上面有提到Opening Period(未清期间) , 所以就再转个帖子说明.

跑MRP的时候,就“创建采购申请”有三种选择,1全为采购申请,2未清期间的采购申请,3全为计划订单.“未清期间”在“计划边际码”中设定(Sched Margin key, IMG:Production -> MRP -> Plan -> 计划和生产参数 -> 定义浮点),其解释为:

The number of working days between the date that the order is created and the planned start date. This time is available for the MRP controller to convert a planned order into a purchase requisition or a production order.

也就是计划订单转采购申请/生产订单的提前时间.

以下是个例子,今天是2006/06/13,物料A的需求日期2006/07/02,计划交货时间12天,收货处理时间1天.当未清期间设为5天的时候,如图:

image

注意到订单收货开始日期到完成日期,共12天(不含本日).计划转换日期2006/06/14,正好跟订单开始日期相隔5天(也不含本日),这就是“未清期间”.

image

如果未清期间设为6天,由于计划转换日期为当天(或者说运行MRP的日期,落在计划订单的未清期间内),因此计划订单已经自动转化为采购申请.

未清期间的作用在于:在计划和采购申请/生产订单间提供一个缓冲的时间.这跟下达时间作用相仿,因此它们都在计划边际码中维护.计划员可以对落在未清期间的计划订单进行批量转换(MD15/CO41)

SAP PP MRP视图中重要栏位的意义及功能作用

1.MRP4视图中的独立/集中:
         1--独立,就是已经制定成本分配对象的,尤其是挂靠在销售订单上的,如果是make-to-order。该物料一入库就直奔对象而去--好比特等舱。我的理解:这种方式可以找到唯一的一个源需求。比如上级跟单,则本级也会跟单;上级不跟单,本级也不跟单但可以用需求追溯的方式找到源需求。这种物料的需求计划单是不会合并的。
         2--集中,就是没有制定成本分配对象的,那么这样的物料需要去仓库中转了,也就是需要入库-出库步骤。大多数的物料需要维护成2,因为需要仓库管理的。我的理解:这种方式一般不可以找到唯一的一个源需求,这种物料的需求计划单是会合并的。比如上级跟单,但本级不会跟单;上级不跟单,本级也不跟单但可以用需求追溯的方式找到源需求且此源需求为多个。
简单地讲,1--就是采购的时候就知道用在何处的,而且是不可更改对象的。而2是可以半路指定的,通过发料等。
补充说明:关于物料是否跟单,不是完全由策略组决定的,大都是由此项决定的,如果是选1--独立,只是上级是跟单,则不管策略组是否跟单,本级都跟单。
2.计划边际码
未清期间:简单的说就是为计划员提供了一个提前处理的缓冲期。在逆推排产的逻辑下,比如MRP创建的计划订单开始日期是5日,未清期间是3天,那么假如当前日期是1日,就还没有进入未清期间,此时计划员就没必要这么早处理计划订单,而如果当前日期是3日,就在未清期间里了,此时在MD04中会有一个例外消息05产生,用来提示计划员可以去将这张计划订单转换成生产订单或者采购申请了,这样就可以给计划员充分的时间来处理订单。如果没有未清期间,直到5日都不会有任何提醒,到时候再来处理就有可能来不及了。
产前、产后缓冲时间:就是有些产品生产的时间可能不一定按设定的那样准确,允许生产前或后有一定的浮动,比如产前2天,产后1天,这样自制生产时间为2天的产品,只要在5天内生产出来都是允许的。这个字段的设置是要根据实际生产情况的,但是感觉真正会用的企业不太多。
下达期间:如果没有下达期间,那么系统计划的下达日期就是订单的计划开工日期,也就是说计划员刚下达就必须开始生产了,而如果设置了2天,那么计划员就可以提前2天下达,车间接到下达的订单就可以有一定的提前准备时间。
这些字段都没有什么限制作用,只是给计划一些灵活性和容余罢了。
至于向前和向后消耗,那是计划独立需求如何被销售订单冲减的概念了,跟计划边际码没关系。比如消耗模式是向后消耗5天,那么假设预测的独立需求是10日要生产100,如果在12日接到一个40的销售订单,也可以当作预测准了,那么未完成的预测就只有60了。类似的向前消耗,就是实际订单如果早于预测日期,是否也可以认为是预测准了,可以冲减预测。因此消耗模式都要和逆向消耗期间或向前消耗期间搭配使用,以确定与预测日期相差多少天内的订单都可认为是预测的数量得到了实现。


原创粉丝点击