第一章 需求分析
小型MRP管理系统的使用是面向制造业的,制造业的基本特点可以通过它的基要方程来体现。一个制造企业,只有生存着,就要循环往复地回答并解决以下4个问题:
(1) 要制造什么产品?
(2) 用什么原材料或零部件来制造?
(3) 手中有什么原材料或零部件?
(4) 还应当再准备什么原材料或零部件。
这4个问题,构成制造业的基本方程。而MRP就是模拟和解决制造业基本方程的。它的基本逻辑是:根据主生计划、物料清单(产品结构文件BOM)和库存记录,对每种物料进行计算,然后生成制造该产品的采购计划,和生产计划。而我们的MRP管理系统的需求,就是做出解决制造业基本方程的系统。我们称之为小型MRP管理系统。
1.1 系统概况
小型MRP系统的主要功能模块有:基础数据管理模块、库存管理模块、销售管理模块、主生产计划模块、物料需求计划管理模块、采购计划管理模块、生产管理模块组成。下面我分别就各个模块进行简单描述:
l 基础数据管理模块:MRP系统运行依赖着大量的基础数据。数据必须经过加工、处理才能产生有用的信息供决策者使用。因此,这些原始数据如何准确、及时、快速可靠地送入计算机系统是至关重要的。而基础数据管理模块就是要管理这些数据。
l 库存管理模块:库存既是对生产的支持,以是生产的结果。库存量如同一个大湖的水量,水位高了会淹没湖下的“礁石”,这些“礁石”好比管理工作中的问题,如计划不周、质量不高、设备保养差等。库存管理目的是控制库存量。
l 销售管理模块:销售管理是对产品所有需求进行识别和管理,以帮助主生产计划员认识需求,由以下活动组成:历史数据录入、预测、订单录入、订单查询组成。
l 主生产计划模块:主生计划模块是一个重要的计划层次。粗略地说,主生产计划是企业关于“将要生产什么”的一种描述,它起着承上启下、从宏观计划向微观计划过渡的作用。
l 物料需求计划模块:物料需求计划(MRP)过程是一个模拟过程,它根据主生产计划、物料清单(BOM)和库存记录,每种物料进行计算,指出何时将会发生物料短缺,并给出建议,以最小库存量来满足需求并避免物料短缺。
l 采购计划管理模块:生产订单的可行性在很大程度上要靠采购作业来保证。企业生产能力的发挥,在一定程度上也要受采购工作的制约。为了按期交货满足客需求,使用采购计划模块对其采购讨划进行管理和跟踪。
l 生产管理模块:主生产计划给出了最终产品或最终项目的生产计划,经过物料需求计划按物料清单展开得到零部件直到原材料的需求计划,即对自制件的计划生产订单和对外购件的订划采购订单。生产管理则是对自制件计划生产进行管理。
第二章 相关技术基础
2.1 Eclipse RCP平台
RCP是基于Eclipse项上推出的一个开发富户端应用框架,目的在于为开发人员提供一个功能强大的、快速的、可扩展的应用平台。
2.1.1 什么是RCP
RCP是Rich Client Platform的缩写。富客户端应用平台为终端用户提供了基于本地操作系统丰富的图形用户接口中(GUI)使用体验,可以很容易地实现剪切、复制、拖放等操作,也能高效进行业务逻辑处理。
但传统GUI,在开发过程中,开发人员需要更多的时间处理界面问题,同时业力逻辑、数据处理、系统和用户界面的高耦合性也使得系统的重构工作困难重重。更令人难以接受的是,系统分发和升级非党麻烦。客户端那怕做一个小小的改动,也需要手工在各个客户机上一一重新发布,导致过高的部署和维护成本。因此,人们提出瘦客户端(thin client)以试图解决这些问题。
Thin client是在互联网技术上不断发展的基础上提出的。瘦客户端解决了富客户端所存在的应用程序分发和管理的诸多问题。由于应用程序统一部署在服务器端,维护工作只需要在服务端进行,不但简单方便,也极大减少了部署维护的费用。对客户端的要求则更简单,简单到只需要一个Web浏览器就足够了。但是随之新的问题又出现了。
首先,统一的浏览器界面和链接操作方式无法为最终用户提供丰富的图形用户使用体验,可操作性差,而越来越多的操作者却渴望得到更加丰富的使用体验。
其次,瘦客户端应用程序更多地依赖Web服务器的性能,无法充分利用客户端机器的硬件处理能力,当现实中数据处理量飞速增长时,瘦客户端应用,就无法满足大量高效率的用户的交互性需求。
由于瘦客端应用程序无法满足用户要求,富管户端又成为流行的开发模式。但与早期的富客户端相比,富户端内涵有了变化。在需求变化异常频繁复杂的今天,用户不仅要求有丰富的图形用户界面,还希望能够具有能更新、跨平台性、可扩展等特性。
Eclipse RCP可以满足这些需求。
2.1.2 Eclipse RCP的优势
Eclipse具有以下优点:
l 组件化。基于Eclipse的系统设计由被称为plug-ins的插件构成,可以通过扩展点进行配置,也可以被不同应用程序共享。
l 便利性。Eclipse RCP对各个平台下的产品包装提供了强有力的支持。
l 智能安装和升级。Eclipse提供了专门的Update组件,可以实现通过HTTP,Web站点、复制等多种方式进行安装和更新,一扫早期富客户端应用部署升级的麻烦。
l 可扩展性。Eclipse基于插件进行扩展的思想使得用户可以方便地搭建各种规模、类型和用途的应用程序。
l 本地感观和使用体验。Eclipse为各种操作系统提供了本地图形接口包。当RCP运行时,Eclipse首先直接调用本机窗口组件,只有没有本机所需组件时才进行模拟。无论在哪种操作系统上运行,都可以提供诸如拖曳操作、操作、剪切板、导航等UI元素。
l 脱机操作,由于RCP在本机运行,不需要网络连接,可以充分利用本机硬件的处理能力高速进行大量数据的处理。
Eclipse RCP能够给予开发者创建可扩展客户端的能力,也给广大Java开发者提供了编写具有特色的本地观感及使用体验的富户端代码的能力。
本人使用Eclipse RCP用来进行小型MRP管理系统开发。其运行界面如图
第三章 系统功能点详细描述
众所周知, MRP管理是ERP管理系统的核心。那么MRP管理系统各模块之间是如何进行协同工作,来完成对物料需求的管理的呢?我将会在系统功能点详细描述中阐述。
3.1 主生产计划功能点详细描述
1.主生计划概述
主生产计划是一个重要的计划层次。粗略地说,主生产计划是关于“将要生产什么”的一种描述,它起着承上启下、从宏观计划向微观计划过渡的作用。主产计划的基本原则是根据企业的能力确定要做的事情,通过均衡地安排生产,实现生产规划的目标,使企业在客户服务水平、库存周转率和生产率方面都能得到提高,并及时更新,保持计划的切实可行和有效性。其处理数据流的表现形式如下图5:
图5 MPS数据流
Fig.5 MPS data flow
在小型MRP管理系统中,主生产计划要把有效地管地管理产品的生产、库存、销售所需的所有数据显示在一个屏幕上,对每行数据都用统一的格式,时区的选择也是一致的。这样能保证各个部站都可从中得到所需的信息,而且避免了信息的不一致。
主生产计划以周或日作为计划时区,从而可以及时地对多变的需求和不准确的预测做出反应。
主生产计划使用关键的时界,即计划时界和需求时界,这样既便于计划的维护,又可避免被不可能满足的客户需求所驱使。
2.主生产计划矩阵
主生产计划矩阵是一个二维的表格,通过时间和活动类型来定义计划活动。活动分成两大类,即供应和需求。矩阵表格如下表1:
假定某电子厂对物料号为100001的电子游戏机编制主生产计划表。现有库存量80台,安全库存量20,生产批量为80,批量增量40,
需求时界3,计划时界6,编制主生产计划。
表1 MPS矩阵
Tab.1 MPS Matrix
| 需求时区 | 计划时区 | 预测时区 | ||||||
时区(周) | 1 |
| 3 | 4 | 5 | 6 | 7 | 8 | 9 |
生产预测 | 80 | 80 | 80 | 80 | 80 | 80 | 80 | 80 | 80 |
增加的客户订单 |
|
| 30 | 35 | 40 |
|
|
|
|
预测的客户订单 | 78 | 80 | 58 | 60 | 60 | 78 | 35 | 49 | 0 |
未消耗的预测 |
|
| 24 | 20 | 20 | 2 | 45 | 31 | 80 |
总需求 | 78 | 80 | 112 | 115 | 120 | 80 | 80 | 80 | 80 |
主生产计划 | 80 | 80 | 80 | 120 | 120 | 80 | 80 | 80 | 80 |
预计可用量 | 82 | 82 | 50 | 55 | 55 | 55 | 55 | 55 | 55 |
ATP(初始值) | 2 | 0 | -8 | 25 | 20 | 2 | 45 | 31 | 80 |
ATP | 74 | 0 | 0 | 25 | 20 | 2 | 45 | 31 | 80 |
超出需求量 | 0 | 8 | 8 | 0 | 0 | 0 | 0 | 0 | 0 |
向前看的累计ATP | 74 | 74 | 74 | 99 | 119 | 121 | 166 | 197 | 277 |
表中各个参数的说明:
(1) 时区
每个时区可是一天或一周,在MRP系统中,通常使用所在时区(周/日)来标记一个周期。
(2) 需求
1) 需求预测(预测的客户订单和生产预测)分别来自生产规划和市场预测。
2) 实际需求(增加的客户订单)指已经接到客户订单但尚未发货的订单量,主生产计划必须按客户,数量和所承诺的交货日期跟踪每一份客户订单。
3) 未消耗的预测是指尚未被实际的客户订单消耗的那一部分预测。它指出在不超过预测的前提下,对主生产计划的对还可以期望得到多少客户订单。但是早于需求时界的累计未消耗邓测则有不同的处理方法,或移到需求时间之后的第一个时区,或忽略不计。用户要根据自己的产品销售特点加以选择。
4) 总需求,这是未消耗预测和实际需求之和。
(3) 供应
1) 主生产计划(MPS):这一项所表示的是主生产计划员和计算机系统在各个时区所投放的用来满足需求供应的订单量。每份订单所出现的时区是该订单的完成日期。出现在矩阵中的主生产计划供应订单有3种式,即己下达的订单、确认的计划订单和计算机计划订单。
2) 预计可用量(PAB):是在指定时区的预计库存量。它是计算机系统进行供供需平衡判断基础。
3) 可承诺量(ATP):这个数据用于支持客户订单承诺。它告诉市场和销售部门,在不改变主生产计划的前提下还可以满足多少客户需求。
通过对主生产计划矩阵的编制,MRP系统能得到物料的供应与需求信息。能解决企业中何时生产什么的问题。
3.主生产计划员对主生计划进行决策
计算机对产品的需求,和库存信息,使用主生产计划矩阵进行计算,产生了该产品的主生产计划。但一个企业,让计算机去做太多的决策性质的工作是不实际的,这也是早期MRP用户使用MRP失败的原因。如果是这样那么MRP系统的MPS必须由主生产计划员进行确定。
4. MPS系统需求小结
通过对MPS系统需求的分析,我们对MRP管理系统对MPS模块的需求进行总结,制定MPS模块的实现功能组成:
1.MPS计算参数的录入:包括物料或产品的销售数据,增加的客户订单,和生产预测,产品的库存信息。
2.MPS计算(主生产计划矩阵的计算):计算内容请参照表(1)
3.主生产计划员对这些主生产计划矩阵的处理,主要是针对该产品或物料的主生产计划的数量的处理。
4.由同一种物料可能需要制定不同的生产计划,因此需要为产品制定不同的MPS方案。
5.MPS计算过程的描述
1.MPS计算实例:
以下表(11)的计算为例,描述MPS的计算过程:
假定某电子厂对物料号为100001的电子游戏机编制主生产计划表。现有库存量80台,安全库存量20,生产批量为80,批量增量40,
需求时界3,计划时界6,编制主生产计划。
| 需求时区 | 计划时区 | 预测时区 | ||||||
时区(周) | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
生产预测 | 80 | 80 | 80 | 80 | 80 | 80 | 80 | 80 | 80 |
增加的客户订单 |
|
| 30 | 35 | 40 |
|
|
|
|
预测的客户订单 | 78 | 80 | 58 | 60 | 60 | 78 | 35 | 49 | 0 |
未消耗的预测 |
|
| 24 | 20 | 20 | 2 | 45 | 31 | 80 |
总需求 | 78 | 80 | 112 | 115 | 120 | 80 | 80 | 80 | 80 |
主生产计划 | 80 | 80 | 80 | 120 | 120 | 80 | 80 | 80 | 80 |
预计可用量 | 82 | 82 | 50 | 55 | 55 | 55 | 55 | 55 | 55 |
ATP(初始值) | 2 | 0 | -8 | 25 | 20 | 2 | 45 | 31 | 80 |
ATP | 74 | 0 | 0 | 25 | 20 | 2 | 45 | 31 | 80 |
超出需求量 | 0 | 8 | 8 | 0 | 0 | 0 | 0 | 0 | 0 |
向前看的累计ATP | 74 | 74 | 74 | 99 | 119 | 121 | 166 | 197 | 277 |
1.未消耗预测:
第三时区的未消耗预测=第一二时区的累计的未消耗的预测+生产预测-预测的客户订单=(80-78)+(80-80)+80-58=24
其它时区的未消耗预测=生产预测-客户订单;
2.总需求:
总需求=增加的客户订单+预测的客户订单+未消耗的预测
3.计算PAB和主生产计划:
在第一时区将现有库存量-总需求=80-78=2,因为2 〈安全库存量50,所以第一时启动主生产计划为100,可得第一时区的PAB=现有库存量+主生产计划-总需求=80+100-78=102.
其它时区的计算是:将前一时区的PAB-当前时区总需求,若所得的结果〉安全库存量50,则其结果为PAB值,主生产计划为0,若所得的结果〈安全库存量50,则启动主生产计划,每次为100,将前一时区的PAB+主生产计划-总需求,若所得的结果〉安全库存量50,则该结果为PAB值,主生产计划为100,若结果〈50,则主生产计划增加100,继续按这个方法计算下去,直到PAB〉库存量为止。
4.初始ATP:
初始ATP=主生产计划-增加的客户订单-预测的客户订单
5.ATP和超出的需求量:
是根据初始ATP的值来计算的,当初始ATP〈50时,要从早先时区的ATP中预留出来。超出的需求量就是当前时区的ATP与安全库存的差再减去先前被预留掉的量。如第九时区初始ATP为0,超出了50,先前一时区预留出50.而第八时区超出的量=51-50=1,而ATP为0,依此类推。而第一时区的超出量=191+28-80=129
向前看的累计ATP:从最早时区开始,把各个时区的ATP累加到所考虑的时区即是这个时区的向前看的累计ATP.