文档视界 最新最全的文档下载
当前位置:文档视界 › 杭州斯凯MRP文件结构(文件格式)详解、php读取mrp信息、mrp修改打包

杭州斯凯MRP文件结构(文件格式)详解、php读取mrp信息、mrp修改打包

杭州斯凯MRP文件结构(文件格式)详解、php读取mrp信息、mrp修改打包
杭州斯凯MRP文件结构(文件格式)详解、php读取mrp信息、mrp修改打包

MRP中有三大部分数据区:

1.文件头部分:

0-4文件类型

4-8MRP数据开始位置+8

8-12mrp文件总字节数

12-16MRP文件列表开始位置

16-28内部文件名

28-52显示名

52-68串号

68-72版本ID

72-76appid

76-88未知

88-128作者

128-192介绍

192-196版本ID十六进制值

196-200appid十六进制值

200-240未知

2.紧接着是文件列表部分:

下面以start.mrp介绍,每两位数为一字节,初始数据为:

0A00 0000 7374 6172 742E 6D72 7000 1C01 0000 8101 0000 0000 0000

开始2字节的值为文件名的长度加1:0A00=10 而文件名start.mrp的长度是9,在文件名后面加上一个空字节等于10

文件名前2字节为空字节:0000

然后是文件名数据:7374 6172 742E 6D72 7000(注:所有的文件名在MRP 中最后都加一个空字节,即00)

后面紧跟2字节记录实际文件在MRP中的位置:1C01=284

然后又是2个空字节:0000

后面2字节记录实际文件的数据长度:8101=385

最后还有6个空字节:0000 0000 0000

由以上信息我们可以知道文件名为start.mrp的文件在MRP中的位置为284,长度为385,从MRP的284处开始取数据一直取长度为385的数据出来并保存为文件名是start.mrp.gz的文件,用winrar解压就得到了从MRP中取出来的start.mrp文件。

3.文件列表过后是压缩文件数据部分:

在每个压缩文件数据之前还有一个文件信息头,下面以start.mrp介绍,每两位数为一字节,初始数据为:

0A00 0000 7374 6172 742E 6D72 7000 8101 0000

可以看出这个文件信息头和文件列表的很相似,只是文件名后面不同,文件列表部分的数据在文件名后面记录有实际文件的位置和实际文件的数据长度,而在这里只记录有实际文件的数据长度:8101,然后有2个空字节,之后就是实际文件的压缩数据了。

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

附上一份自己用php写的MRP信息内部修改及压缩解压函数,还没来得及封装成类。

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

dnmrp.php 用于读取并修改mrp信息

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

function binadd($f,$n)

{

while(strlen($f)<$n)

$f='0'.$f;

$f=substr($f,0,$n);

return $f;

}

function gb2u0($f)

{return mb_convert_encoding(str_replace(chr(0),'',$f),'utf-8','gb2312');} function u2gb0($f,$n)

{

$f=mb_convert_encoding($f,'gb2312','utf-8');

for($a=strlen($f);$a<=$n;$a++)

{$f.=chr(0);}

$f=substr($f,0,$n);

return $f;

}

function getmrp($f)

{

/*

参数:文件路径

返回一个包含mrp信息的数组(UTF-8编码)

*/

$f=fopen($f,'rb');

if(fread($f,4)!='MRPG')

{fclose($f);

return false;}

fseek($f,52,SEEK_SET);

$ch=gb2u0(fread($f,16));

fseek($f,192,SEEK_SET);

$bb=hexdec(bin2hex(fread($f,4)));

fseek($f,196,SEEK_SET);

$id=hexdec(bin2hex(fread($f,4)));

fseek($f,16,SEEK_SET);

$nn=gb2u0(fread($f,12));

fseek($f,28,SEEK_SET);

$xn=gb2u0(fread($f,24));

fseek($f,88,SEEK_SET);

$zz=gb2u0(fread($f,40));

fseek($f,68,SEEK_SET);

$bb2=hexdec(bin2hex(strrev(fread($f,4))));

fseek($f,72,SEEK_SET);

$id2=hexdec(bin2hex(strrev(fread($f,4))));

fseek($f,128,SEEK_SET);

$js=gb2u0(fread($f,64));

fclose($f);

return array(

'id'=>$id2.'&'.$id,

'ch'=>$ch,

'bb'=>$bb2.'&'.$bb,

'nn'=>$nn,

'xn'=>$xn,

'zz'=>$zz,

'js'=>$js);

}

function putmrp($fn,$v)

{

/*

参数:文件路径、包含要修改为的mrp信息的数组(与getmrp的结构相同)返回一个包含mrp信息的数组(UTF-8编码)

*/

$fp=fopen($fn,'r+');

if(fread($fp,4)!='MRPG')

{return false;}

$ch=u2gb0($v['ch'],16);

$nn=u2gb0($v['nn'],12);

$xn=u2gb0($v['xn'],24);

$zz=u2gb0($v['zz'],40);

$js=u2gb0($v['js'],64);

$id=explode('&',$v['id']);

$id2=pack('H*',binadd(dechex($id[0]),8));

$id=pack('H*',binadd(dechex($id[1]),8));

$bb=explode('&',$v['bb']);

$bb2=pack('H*',binadd(dechex($bb[0]),8));

$bb=pack('H*',binadd(dechex($bb[1]),8));

fseek($fp,16);

fwrite($fp,$nn.$xn.$ch.strrev($bb2).strrev($id2));

fseek($fp,88);

fwrite($fp,$zz.$js.$bb.$id);

fclose($fp);

return true;

}

?>

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

bmmrp.php 用于mrp文件解、打包(需要zlib扩展库支持)================

function mrpgetlist($f)

{

$f=fopen($f,'rb');

if(fread($f,4)!='MRPG')

return false;

$r=240;

fseek($f,4,SEEK_SET);

$s=hexdec(bin2hex(strrev(fread($f,4))));

for(;true;)

{

if($r>$s) break;

fseek($f,$r,SEEK_SET);

$x=hexdec(bin2hex(fread($f,1)));

$r+=4;

fseek($f,$r,SEEK_SET);

$n=fread($f,$x-1);

$r+=$x;

fseek($f,$r,SEEK_SET);

$v=hexdec(bin2hex(strrev(fread($f,4))));

$r+=4;

fseek($f,$r,SEEK_SEK);

$l=hexdec(bin2hex(strrev(fread($f,4))));

$r+=8;

$list[]=array('n'=>$n,'v'=>$v,'l'=>$l);

}

fclose($f);

return $list;

}

function mrpunpack($fname,$dir,$list=null)

{

$f=fopen($fname,'rb');

if(fread($f,4)!='MRPG')

return false;

if($list==null) $list=mrpgetlist($fname);

mkdir($dir);

foreach($list as $a)

{

$j++;

fseek($f,$a['v'],SEEK_SET);

#$x=fread($f,$a['l']);

#$a['n']=mrpcname($a['n'],$dir);

file_put_contents(($fn="$dir/$j.$a[n].txt").'.gz',fread($f,$a['l']));

$gz=gzopen($fn.'.gz','r');

#$gz2=gzread($gz,10000000);

file_put_contents($fn,gzread($gz,10000000));

gzclose($gz);

}

fclose($f);

return $list;

}

function mrppacklist($list,$gzip=3)

{

if($gzip<1 or $gzip>9)

$gzip=3;

foreach($list as $a)

{

if(!file_exists($a)) continue;

#$af=file_get_contents($a);

$gz=gzopen($a.".gz","w".$gzip);

gzwrite($gz,file_get_contents($a));

gzclose($gz);

$al=filesize($a.'.gz');

$na=eregi_replace(chr(94).'.*[\\/]([0-9]+\.)?(.['.chr(94).'\\/]*)\.txt$','\\2',$ a);

#$na=eregi_replace('\([0-9]+\)$','',$na);

$n=strlen($na)+1;

$nn+=$n;

$lst[]=array($na,$a.'.gz',$al,$n);

}

$lstl=16*($jc=count($lst))+$nn;

$lst[0][]=$lstl+248+$lst[0][3];

for($a=1;$a<$jc;$a++)

$lst[$a][]=$lst[$a-1][4]+$lst[$a-1][2]+8+$lst[$a][3];

return $lst;

}

function mrppack($f,$lst,$mrp)

{

if(!function_exists('binadd')) include 'dnmrp.php';

$f=fopen($f,'rb');

if(fread($f,4)!='MRPG')

return false;

fseek($f,8,SEEK_SET);

$fa=fread($f,232);

fclose($f);

$x=chr(0);

foreach($lst as $a)

{

$wz=strrev(pack('H*',binadd(dechex($a[4]),8)));

$cd=strrev(pack('H*',binadd(dechex($a[2]),8)));

$fl=pack('H*',binadd(dechex($a[3]),2));

#$x=chr(0);

$filelist.=$fl.$x.$x.$x.$a[0].$x.$wz.$cd.$x.$x.$x.$x;

$dat.=$fl.$x.$x.$x.$a[0].$x.$cd.file_get_contents($a[1]);

}

$start=strrev(pack('H*',binadd(dechex($lst[0][4]-$lst[0][3]-16),8)));

file_put_contents($mrp,"MRPG".$start.$fa.$filelist.$dat);

return $lst;

}

function mrpcname($f,$dir)

{

if(file_exists("$dir/$f.txt") or eregi("\([0-9]+\)$",$f))

$g=true;

for($a=0;$g or file_exists("$dir/$f($a).txt");$a++)

{$j="(".($a+1).")";

$g=false;}

return "$f$j";

}

?>

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

dnmrp.php使用例程:mrpgai.php

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

include "mime.php";

?>

mrp内部信息修改

$d=$_GET['d'];

echo 'mrp高级修改
';

include 'dnmrp.php';

if($v=getmrp("mrptmp/$d.mrp"))

{

if(!$_POST['go'])

{ ?>

应用id:

版本id:

串号:

内部名:

显示名:

作者:

介绍:

else

{

include 'bmtxt.php';

$v=$_POST;

if(putmrp($f="mrptmp/$d.mrp",$v))

{

copy($f,$f.'.gz');

echo '修改成功
下载
'; }

else

{echo "修改失败,文件过期或已损坏
";

unlink("mrptmp/$d.mrp");}

echo '返回修改';

}

}

else echo '文件过期或已损坏,请返回重传';

?>



返回上级-首页

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

bmmrp.php使用例程:mrppack.php

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

/********取得指定目录下指定类型的文件*******/

function dirgetlist($dirname,$bds=".*")

{

if($handle=opendir($dirname))

{

while(false!==($file=readdir($handle)))

{

if($file!="." && $file!=".." && eregi($bds,$file))

{

$list[]=$dirname.'/'.$file;

}}

closedir($handle);

}

natcasesort($list);

return $list;

}

/***************/

function doonce($f,$t=5,$e='')

{

$ttl=file_get_contents($f);

if(($tt=($tm=time())-$ttl)<$t)

{

echo str_replace($t,$t-$tt,$e);

return false;

}

file_put_contents($f,$tm);

return true;

}

function doonceend($f)

{

return true;

}

/********这个是被包含在另一个文件中的部分用户界面*******/ $d=floor($_GET['d']);

$go=$_REQUEST['go'];

include 'bmmrp.php';

if($go=='清空')

{

$lst=dirgetlist("mrptmp/$d",'.*');

foreach($lst as $a=>$r)

unlink($r);

unlink("mrptmp/$d");

echo "文件已清空
共删除".($a+1)."个文件
";

物料需求计划(MRP)的基本计算模型

物料需求计划(MRP)的基本计算模型 物料需求计划(MRP)的制定需要三个关键信息:MPS、BOM、库存记录。MPS是指主生产计划,BOM是指物料清单。在MRP的制定过程中,库存记录的计算方法构成了MRP 的基本计算模型。所以,我们主要介绍一下MRP中的库存记录形式、以及如何计算和使用MRP的库存记录。 MRP中的库存记录又称为MRP表格。MRP表格在很多方面都与MPS记录表格类似。它所包括的内容有:计划因子、粗需求量、预计入库量、现有库存量、计划订货入库量和计划发出订货量等。它与MPS类似,将未来的需求分成一个个时间段来表示,这种时间段的单位通常是周,但有时也用日或月来表示。为了便于理解,下面结合一个例子来说明MRP表格的计算过程。 某办公家具公司,其两种主要产品(即企业要出厂的最终产品)是办公用椅A和B,其需求大致稳定:产品A每周需30个,产品B每周需20个。这两种产品都需要用到一种支架部件C。因此,对C的平均需求量是每周50个。A和B的装配期是1周。 下图1是办公椅A和B的主生产计划表格以及部件C的库存记录表格(尚未完成)。这种表格没有标准格式,该例所用的是一种常见格式。 如上图示,在这种格式中,左上方通常要标出产品名称及其性质(如上图中,表明C是支架部件),右上方表示计划因子,通常包括三项:生产批量、生产周期和安全库存量。在本例中,C的批量是230个,生产周期为2周,安全库存量为50个。这些计划因子的

量都需要预先选定。当这些值发生变化以后,管理人员必须及时更新库存记录。下面首先来看库存记录的内容和确定方法。 一、库存记录要素及其计算 1、粗需求量。上例中未来8周的粗需求量如图1所示。其需求量是根据C的最终产品A和B的主生产计划所决定的,但有时候需要加上一些作为配件(更换件)使用的量。对C的需求之所以比MPS中A、B的时间提前1周,是因为MPS中所表示的各周的量实际上是指当周应该完成的量。但由于生产或装配是需要一个周期的,因此该生产指令的发出必须给出这部分时间的提前量。在该例中,第2周需150个A,其装配周期为1周,故第1周应发出生产订单,开始装配。上图1中的第2个表格表示的是考虑了生产周期之后,MPS生产订单发出的时间和生产量。同样,MRP库存记录中粗需求的需要量是指当周应准备好的量,例如,为了在第2周装完150个A,第1周必须准备好150个C。 2、预计入库量(scheduled receipts,简称SR)。它是指订单已发出,、但货尚未收到的量。对于外购件,它现在可能处于几种状态之一:买方刚发出订单,供应商正在加工;正在从供应商至卖方的途中;已到买方、买方正在验货等。对于自加工件,它现在可能的状态包括:正在生产现场被加工;等待他的原材料和零件的到达;正在机床前排队等待加工;正从一个工序移至下一个工序等。第1周需150个C,其生产周期为2周,故至少在2周之前已发出了该生产的订单,但通常不会比提前2周更早地发出订单。 3、现有库存量(POH)。其概念与MPS中的概念相同,指每周需求被满足之后手头仍有的库存量。该记录随着每周进货或出货的情况而更新,未来各周的POH则可计算德出。 其计算公式为: 式中,It--t周末的POH; SR,t--t周的预计入库量; PR,t--t周的计划订货入库量; GR,t--t周的粗需求; 可见,上式与MPS中的计算方式是一致的,即SR,t+PR,t相当于MPS量,GR,t相当于max(Ft,COt),这里不存在预测值或订单值的选择,因为需求是相关的、确定的。上面图1只给除了前4周的POH,在第4周,POH只剩7个,少于所要求的50个安全库存量,这是一个要求生产的信号,即要求增加PR的信号。 4、计划订货入库量(planned receipts,简称PR)。其含义是,计划订货或生产、但订单尚未发出的订货量。这个量的意义是要保持POH的量不低于安全库存(在MPS中未考虑安全库存,保持POH非负即可)。对于某些不需要安全库存的中间物料,则如同MPS,其意义是要保持POH非负。在库存记录中所表示的PR量应包括这两种情况。 PR的确定方法如下: (1)在POH出现短缺(或为负值或小于安全库存量)的当周制订一个PR量,其值的大小应是POH大于等于安全库存; (2)继续计算其后各周的POH,当又出现短缺时,制订下一个PR量。 这两个步骤反复进行,直至整个计划期的POH记录和PR记录格都填满。 5、计划发出订货量(planned order release,简称POR)。它实际上是要说明订单的发出时间或开始生产时间。之所以将其称为“╳╳量”,是因为这种对时间的说明在库存记录中是通过将该订单的量记入相应的时间栏内来说明的。该时间的基本计算式是:到货时间减去生产周期。利用这一项可容易地导出构成某项物料的BOM中下一层物料的粗需求。

MRP物料需求计划编制

班级:工商091 :龚兰萍 学号:09064211 实验地点:A606 实验时间:2012-1-7到1-8 专题三:物料需求计划编制 一基本知识 (1)生产计划类型 制造业涉及的相关物料计划一般可以分为三种:综合计划;主生产计划;物料需求计划I) 综合计划(是销售计划与生产规划计划的综合考虑,或称为生产大纲) 是企业在较长一段时间对需求与资源之间的平衡所做的概括性设想,是根据企业所拥有的生产能力和需求,预测未来较长一段时间企业的产出容、产出量、劳动力水平、库存投资等问题而做的决策性描述。 II) 主生产计划(Master Production Schedule,简称为MPS)是确定每一个具体的产品在每一个具体的时间段的生产计划。计划的对象一般是最终产品,即企业的销售产品。主生产计划是一个重要的计划层次,可以说ERP的真正运行是从主生产计划开始的。 III) 物料需求计划(Material Requirement Plan,简称MRP) 一种既要保证生产又要控制库存的计划方法,它在产品结构的基础上运用网络计划法原理,根据主生产计划和产品结构中各层次物料的从属和数量关系,以每个物料为计划对象,以(最迟)完工日期为时间基准倒排计划,按提前长短区别各物料(最迟)下达计划时间的先后顺序。

MRP概念公式:A*B-C=D A=主生产计划=要生产什么? B=物料清单=用什么生产? C=库存记录=有什么? D=物料需求计划=还应得到什么? (2)主生产计划MPS MRP基本原理逻辑图 MRP处理逻辑的7个关键变量 1)总需求(Gross Requirement)(需要多少?) 2)计划到货量(Scheduled Receipts,SR) 未来某期期末将会取得的量,即一种未来的库存,在交货期末视为可用量。 3)在库量(Projected On-Hand, POH) 不考虑计划收货量的情况下: 4)净需求(Net Requirement)(还缺多少?) 5)计划收货量(Planned Order Receipts, PORC)

物料需求计划(MRP)

物料需求计划(MRP ) 主 题:计划体系、MRP 计算逻辑 案例目的 (1)了解制造企业基于 MRP 的计划体系,了解 MRP 的输入与输出。 (2)掌握 MRP 的计算逻辑方法,并总结计算步骤。 (3)能够针对企业产品,开发出相应的物料需求计划。 案例内容 深圳物流设备公司生产一种工业设备用手推 车,这种手推车的设计及产品结构树如图所示。

企业现有4 个车轴(编码C205)和2 个车轮配件(编码C206)的存货。未来5 周的需求量 如下:150,180,200,120,50。运用逐批法(LFL),开发所有组件的MRP。 回答如下问题: (1)如果改变第三层组件的订货批量方法,MRP 会有何变化? (2)手推车有无必要设立安全库存? (3)手推车的安全库存设为15 或120,观察MRP 的变化。 进一步练习:福特汽车公司的一系统供应商生产X,Y 两种部件,福特公司对X 的需求量:第三周为300 台,第六周200 台,第八周250 台;Y 的需求量为第七周400 台。该供应商的现有库存:X 为100,Y 为30,A 为70,B 为0,C 为200,D 为800。供应商确定的安全库存:X 为50,Y 为30。现已知:1 单位X 由 1 单位A, 2 单位 B 组装而成,1 单 位B 由1 单位C 与1 单位D 装配而成;1 单位Y 由1 单位C 与4 单位D 装配成。 A 的订货 批量为250,D 的订货批量为2000,其它物料项目的订货根据逐批法(LFL)确定。只有 X 存在在途量,预计第2 周收到250 台。各物料提前期如下表。试写出BOM 表,并使用MRP 表格开发X、Y 的MRP 计划。 案例提示 (1)体会BOM 对MRP 的重要性,了解MRP 需要的输入数据; (2)体会订货批量方法的改变以及安全库存的设立对MRP 的影响; (3)进一步的练习重点体会组件D 的物料需求计划的形成。

物料需求计划MRP的基本计算模型

物料需求计划M R P的基 本计算模型 Document number:PBGCG-0857-BTDO-0089-PTT1998

物料需求计划(MRP)的基本计算模型 物料需求计划(MRP)的制定需要三个关键信息:MPS、BOM、库存记录。MPS是指主生产计划,BOM是指物料清单。在MRP的制定过程中,库存记录的计算方法构成了MRP的基本计算模型。所以,我们主要介绍一下MRP中的库存记录形式、以及如何计算和使用MRP的库存记录。 MRP中的库存记录又称为MRP表格。MRP表格在很多方面都与MPS记录表格类似。它所包括的内容有:计划因子、粗需求量、预计入库量、现有库存量、计划订货入库量和计划发出订货量等。它与MPS类似,将未来的需求分成一个个时间段来表示,这种时间段的单位通常是周,但有时也用日或月来表示。为了便于理解,下面结合一个例子来说明MRP表格的计算过程。 某办公家具公司,其两种主要产品(即企业要出厂的最终产品)是办公用椅A和B,其需求大致稳定:产品A每周需30个,产品B每周需20个。这两种产品都需要用到一种支架部件C。因此,对C的平均需求量是每周50个。A和B的装配期是1周。 下图1是办公椅A和B的主生产计划表格以及部件C的库存记录表格(尚未完成)。这种表格没有标准格式,该例所用的是一种常见格式。 如上图示,在这种格式中,左上方通常要标出产品名称及其性质(如上图中,表明C是支架部件),右上方表示计划因子,通常包括三项:生产批量、生产周期和安全库存量。在本例中,C的批量是230个,生产周期为2周,安全库存量为50个。这些计划因

子的量都需要预先选定。当这些值发生变化以后,管理人员必须及时更新库存记录。下面首先来看库存记录的内容和确定方法。 一、库存记录要素及其计算 ????1、粗需求量。上例中未来8周的粗需求量如图1所示。其需求量是根据C的最终产品A和B的主生产计划所决定的,但有时候需要加上一些作为配件(更换件)使用的量。 对C的需求之所以比MPS中A、B的时间提前1周,是因为MPS中所表示的各周的量实际上是指当周应该完成的量。但由于生产或装配是需要一个周期的,因此该生产指令的发出必须给出这部分时间的提前量。在该例中,第2周需150个A,其装配周期为1周,故第1周应发出生产订单,开始装配。上图1中的第2个表格表示的是考虑了生产周期之后,MPS生产订单发出的时间和生产量。同样,MRP库存记录中粗需求的需要量是指当周应准备好的量,例如,为了在第2周装完150个A,第1周必须准备好150个C。 2、预计入库量(scheduled?receipts,简称SR)。它是指订单已发出,、但货尚未收到的量。对于外购件,它现在可能处于几种状态之一:买方刚发出订单,供应商正在加工;正在从供应商至卖方的途中;已到买方、买方正在验货等。对于自加工件,它现在可能的状态包括:正在生产现场被加工;等待他的原材料和零件的到达;正在机床前排队等待加工;正从一个工序移至下一个工序等。第1周需150个C,其生产周期为2周,故至少在2周之前已发出了该生产的订单,但通常不会比提前2周更早地发出订单。 3、现有库存量(POH)。其概念与MPS中的概念相同,指每周需求被满足之后手头仍有的库存量。该记录随着每周进货或出货的情况而更新,未来各周的POH则可计算德 出。其计算公式为: 式中,It--t周末的POH; ?????SR,t--t周的预计入库量; ?????PR,t--t周的计划订货入库量; ?????GR,t--t周的粗需求; 可见,上式与MPS中的计算方式是一致的,即SR,t+PR,t相当于MPS量,GR,t相当于max(Ft,COt),这里不存在预测值或订单值的选择,因为需求是相关的、确定的。上面图1只给除了前4周的POH,在第4周,POH只剩7个,少于所要求的50个安全库存量,这是一个要求生产的信号,即要求增加PR的信号。 4、计划订货入库量(planned?receipts,简称PR)。其含义是,计划订货或生产、但订单尚未发出的订货量。这个量的意义是要保持POH的量不低于安全库存(在MPS中未考虑安全库存,保持POH非负即可)。对于某些不需要安全库存的中间物料,则如同MPS,其意义是要保持POH非负。在库存记录中所表示的PR量应包括这两种情况。

MRP物料需求计划的概念和特点

MRP物料需求计划的概念和特点 物料需求计划MRP(Material Requirements Planning)是60年代在美国出现,70年代发展起来的一种管理技术和方法。MRP是根据何时主生产计划表上需要物料来决定订货和生产,从理论上来看,是比较占优势的一种方法。MRP也是erp生产系统中不可或缺的一项,有很多客户不了解具体的MRP的具体概念,或者该怎么做,接下来,智邦国际将会以专业的手法去阐述一下MRP物料需求计划的概念和特点 物料需求计划的概念 物料是一个广义的概念,它不仅仅指原材料而言,而是包含原材料、自制品(零部件)、成品、外购件和服务件(备品备件)这个更大范围的物料。因此,这是一个广义的物料。对于各种物料的管理并非仅仅是对物料的库存管理,而是包括建立科学的、系统的物料需求计划;协调和控制各部门适当数量的物料。在物料管理中,一方面要满足生产过程中的物料的充分供应,保证生产过程的连续进行而不发生中断;另一方面又要控制物料储备量的限度,减少所占用的流动资金,加速资金周转,降低产品成本。我们已经了解物料管理中的订货点方法是根据需要量,提前期和安全库存来维护需求而决定何时订货。物料管理中另一种方法是物料需求计划方法。 物料需求计划MRP(Material Requirements Planning)是60年代在美国出现,70年代发展起来的一种管理技术和方法。MRP是根据何时主生产计划表上需要物料来决定订货和生产,从理论上来看,是比较占优势的一种方法。但是,在

计算机应用之前,人工需用6~13个星期计算物料需要量,因此也只能按季度订货,这样的话,MRP方法也不见得比订货点方法优越。然而,应用计算机之后,情况就大不同了,计算物料需求量的时间被缩短至1~2天,订货日期短、订货过程快,可以由每季订货改为每月。因此,MRP成为人们公认的物料管理的好方法。随着计算机计算能力的增强,许多企业每个星期重新研究订货量,这种根据实际情况进行计算的能力使订货期缩短为每个星期。这样,物料的"需求期"更加明确,经过了大约十年,人们渐渐感觉到订货必须按照主生产计划才能更有效。人们逐渐地认识到,主生产计划应该是代表工厂中真正能生产的物料,才能保证物料需求计划中计算出有用的需求日期。如果主生产计划表上有许多不可能生产的物料或者因为原料缺乏而不能进行制造的物料,MRP便不能发挥作用了。然而,根据缺料情况计算出来的缺料表确是一个实用的MRP。因此,也就有了所谓的优先计划。 缺料表的理论是基本而实用的。从主生产计划上可以了解工厂将要生产什么,然后从物料清单查出所要的物料,根据所要的物料查核物料库存量,列出一张缺料表。 如果使用计算机进行以上工作,把主生产计划输入至计算机中,物料清单和库存量分别储存在数据库中,经过计算机计算,便可以输出一份完整的物料需求计划了。物料需求计划方法克服了许多缺料表使用上的难题:计划的期限能延伸至1~2年,计划的周期可以每周、每天或者是随机的;计划变动的修改方便灵活。在制造业里,缺料表才是真正的计划系统。人们可以预测未来一年里会有什么物料短缺。虽然主生产计划表还是会有改变,但是物料需求计划有可能跟着改变,解决

相关文档