WELCOME TO MY HOMEPAGE

MRPについて

MRPってなあに?

製造業に従事されている方ならご存知の方々も多く、なかにはこれを使いこなしている方も多いでしょう。そんな方々からすると「何をいまさら!」と思われるかも知れません。
このページでは、そんなエキスパートの方々とは縁の薄い中小の製造業に携わっている方々を対象として、MRPの基本的な考え方から説明したいと思います。


1 部品構成(部品表)

MRPとは、なにかを造る時、必要な物を必要なだけ必要な時に調達する為のしくみです。
そのためには手持ちの在庫が今いくつあり、いついくつ納入され、今の製造予定ではいくつ使うのかが、常に解っていなければなりません。
そして、そのなにかを造る為には、何と何が各々いくついるのかが解っていなければなりません。
ものを造るという事は【あるもの】を使って【別のもの】に造リ変える、という事です。この【あるもの】が材料の場合もありますし、部品の場合もあります。これらは【下位品目】あるいは【子品目】と呼ばれます。これらを組合わせて出来上がった【別のもの】は【上位品目】あるいは【親品目】と呼ばれます。そしてこの一階層の親子関係を一工程とします。通常製造の効率化を図るため製品(最上位品目)を造るためには何階層もの工程を経る事が多いようです。この途中の階層の品目を【中間品目】と呼ぶ事もあります。

特注品で必要数しか造らない場合を除いて、量産品の場合各工程毎にある程度の数量をまとめて造り置きしておき在庫が少なくなってきたらまたまとめて造る。という方法をよく採ります。
ものを造る為の工数は【段取り時間】と【タクト時間】で表されます。

製造工数=【段取り時間】+(【タクト時間】×製造数 )

【段取り時間】: その工程の作業をするために機械をセットしたりするための準備時間【タクト時間】: その工程で造るものの1台あたりの作業時間

この式からも解るように一度の段取り替えでなるべく沢山造ったほうが1台あたりの製造時間は短くなります。在庫リスクが無ければまとめて沢山造った方が良いのですが、置き場所、滞留による在庫数の増加(資金も滞留してしまいます。)等との折合い点にて最適なロット値(一度に造る数量)を決めます。
こうやってまとめて造る中間品や、標準品として複数の製品に使われる中間品を一構成として登録しておくと便利です。

図1では便宜上【完成品1】の全構成を記しましたが、実際の構成は単一階層の親子関係と下位品目の使用数のみで表されます。


2 所要量展開

ここで完成品1を5台造るのに何がいくつ必要になるか計算してみましょう。
完成品1を構成する全ての品目の在庫が全て0なら、

上位品番 上位品目 製造数 下位品番 下位品目 原単位 所要数
100001 完成品1 5 200001 中間品A 1 5
100001 完成品1 5 200002 中間品B 1 5
100001 完成品1 5 900003 部品c 1 5
100001 完成品1 5 900007 部品g 1 5
100001 完成品1 5 900008 部品h 1 5
100001 完成品1 5 900009 部品i 5 25
200001 中間品A 5 200003 中間品D 1 5
200001 中間品A 5 900002 部品b 1 5
200002 中間品B 5 900003 部品c 3 15
200002 中間品B 5 900004 部品d 1 5
200002 中間品B 5 900005 部品e 1 5
200002 中間品B 5 900006 部品f 1 5
200003 中間品D 5 900001 部品a 2 10

   以上の結果から
部品a :10
部品b :5
部品c :20=5+15
部品d :5
部品e :5
部品f :5
部品g :5
部品h :5
部品i :25
(注) 原単位 : 上位品目1台あたりの下位品目の使用数

となりますが、もし【中間品A】の在庫が4台あればあと1台造るだけで良くなり、それ以下の品目の必要な数が変わってきます。
同様に【中間品B】がn台あったら? ***が**台あったら? と【使用可能な在庫】があれば優先的に在庫を使い足りないものだけを造るあるいは発注する。
この方法がMRPです。

MRP : Material Requireaments Planning の略で日本語では【資材所要量計画】と呼ばれています。
簡単に言えば、材料の必要数の手配計画とでも言えば良いでしょうか。


3 在庫

さきほど【使用可能な在庫】と言いましたが、なぜこんな言葉を使ったかと言うと、在庫には【使用可能な在庫】とそうでないものとがあるのです。
では使用可能でない在庫とはどんなものか。
既に製造計画が実施されているとします。そこでも【中間品A】を使う予定が組まれておりその必要数が3台だとしたらさきほどの状況がまた変わってきます。在庫4台の内3台は使う事が決まっているので使用可能な在庫は1台しかありません。結果としてあと4台を造らなければなりません。
またこれらの計画とは別に【中間品A】を既に5台造りかけていたとしたら、またまた様子が変わります。不足の4台はこの製造中の5台で賄えるので新たに造る必要はありません。
今現在ある在庫を【現在庫】あるいは単に【在庫】と呼びます。既に決まっている使う予定の数量を【引当数】と呼びます。既に造りかけているものあるいは造る予定が立てられているものを【発注残】と呼びます。
使用可能あるいは近い将来使用可能となるであろうものを【有効残】と呼びます。
在庫とは、【現在庫】【引当数】【発注残】の三っつの数字が揃ってはじめて解るものなのです。
(発注残の内既に下位部品が出庫されているものを【仕掛り在庫】と呼びます。)

【有効残】=【現在庫】−【引当数】+【発注残】という関係になります。



4 製造計画による在庫引当

製造計画を立てたあと計画を実行すると製造する品目の在庫情報に製造数分の【発注残】が加えられます。その下位品目の在庫情報にはそれに必要な数量の【引当数】が加えられます。ここで先程の式で【有効残】が負数(マイナス)にならないように発注残を増やします。(手配を入れる)
そうするとまたその下位品目でも同じ事が繰り返され、最終的には本当に必要な材料や部品の注文書を発行することになります。
こうすれば以前の計画で発注や引当がかかっているものの上に新たな計画が加えられて行きます。こうやって全体として無駄なく必要なもののみを造る事ができます。


5 リードタイム

何年か前に【The Goal】という小説が日本でも発刊されました。著者のエリヤフ・ゴールドラットさんは物理学博士で、自ら開発したスケジューリングソフトの宣伝の為、小説という手段を用いたのですがどれが本業なのか解らない人です。
ここで提唱されているTOC(Theory of Constraints)は、日本語では制約理論と訳され、全工程の中にあるボトルネックにより全体のスループットが決まってしまうというもので、部分最適より全体最適を目指そうというものです。
この理論は一時期米国経済界で注目されビジネス論文などでもよく取り上げられていたようです。当時は日本経済も活況で、この理論を日本企業に教えると、とんでもない事になってしまうから日本では発刊しなかった。といういわく付きの小説です。
でもトヨタにに代表される日本の製造業はこれよりずっと先を進んでいたと思うのですが…。
日本での初刊本をNetで予約した覚えがあります。でも送られてきた数日後には本屋の店頭に山積みされていたような…。(おバカな私。)
ちょうどその頃、勤め先にも大きな変化がありそれに翻弄されていました。それまではどちらかと言えば技術集約型あるいは部品集約型の製品が主力だったのですが、労働集約型の製品にシフトし始めていたのです。社内にそれだけの人員はいない、外注に丸投げできるほど作業手順書など出来上がっていない。それどころか実装設計がまずく不良率が高く歩留まりの悪さに加え手直し工数も見当がつかないほど。おまけに半導体サイクルの部品入手難が重なりお先真っ暗でした。
つい主人公に自分を重ね合わせてしまい、なんらかの回答が得られるのでは?と数日で読み終えてしまいました。でも現実は本の様には行きませんよね。

本題に戻り、各工程のリードタイムは機械のスループット、投入できる人員数で当然変わります。本来なら前述のスケジューリングソフトと有機的に繋がった状態で製造計画を立てるべきです。既にそういったシステムが実稼動しているところもあるようです。労働集約型の製造業では避けては通れないかと思いますが、残念ながら私にはそれらの知識も経験もありません。この部分はスケージューリングソフトに詳しい方にお任せします。
これができない場合は通常標準的なリードタイムを固定で設定しておきます。職人さんに「どれくらいでできる?」と聞くと「そうだなあ、*日くらい見てくれるか?」と答えてくれるその日数なり時間です。職人さんもしたたかで当然マージンもはいっています。
外的な特殊要因がなければ通常この職人さんが教えてくれるリードタイムを設定しておけば良いかと思います。そして実際の作業に要した時間(1項で述べた【段取り時間】【タクト時間】)を作業実績と同時に吸い上げるようにします。最初はバラツキがあっても回数を重ねる内に適正な作業時間に収束してきます。ロット値、機械設備、作業人員等が一定であればリードタイムも同様に収束してきます。この値に置き換えてやればよいのです。逆に製造数を上げたりリードタイムを短縮したりしたい場合は、工程設計をやり直し理論上のリードタイムを求め、これにより製造計画を立てる事もできます。

品目毎に工程設計し、機械設備の割当て、人員の割当て、ロット値から求めたリードタイムを設定しておきます。同じ機械設備、同じ人員を他工程と共用する場合、前述のスケジューリングが威力を発揮する訳ですが、それは今後の問題としてとりあえずは固定のリードタイムで話を進めましょう。
通常MRPでは所要量展開時に部品の所要数を求めるだけでなく、それがいつ必要になるかまで計算します。この計算の為に各工程(各品目)毎のリードタイムが必要になるのです。
リードタイムは最下位の購入品にまで設定します。労働集約型の製品では社内のリードタイムが特に重要ですが業種によっては購入品のリードタイムが何ヶ月もかかるものがあり、ここで製品自体のリードタイムがほぼ決まってしまいます。設変さえかからなければローリング、フォーキャスト等で先行発注しておく事も可能です。
リードタイムの単位は通常、日を用います。各企業自社の稼働日カレンダーを持っています。そのカレンダーの稼動日でリードタイムを計算します。
ここでは簡単にMS ACCESSの日付を使う事にします。(土日曜も1日として扱います。) 自社カレンダーの稼動日を使われる場合は稼動日の変換テーブルを作成し対応すると良いでしょう。

6 製造計画

業種によって、最低何ヶ月前に計画を投入しなければならないかがほぼ決まっています。世の中に潤沢にあるものを購入するだけなら、早い話、今日の明日でも調達できます。しかし部品調達に半年もかかるようならその部品を必要とする半年前には発注しておかなければなりません。
我々日本人は月極めで給料を受け取っており、企業間でも月極めで決済がなされています。そのせいか月単位で製造計画を立てる事が多いようです。(どこで区切ろうが問題はありませんが)

さてここで、具体的に製造計画を立ててみましょう。
今後の解説での処理を円滑にするため各品目にも品番(品目番号)を割り当てておきます。品番には文字が入っていてもかまいませんが数字だけにしておくと後々処理が容易です。
そして各品目のリードタイム(以後【LT】と略す)、まとめ数(注1)、最低発注数(注2)、まとめ期間(注3)、が以下の通りだとします。
(注1)まとめ数 :一度に発注する時の数量単位
(注2)最低発注数:一度に発注する時の最低数量
(注3)まとめ期間:短期間の内に少量づつ何度も発注が出る場合一定期間分を纏めて発注する為の日数

品番 品名 LT まとめ数 最低発注数 まとめ期間
100001 完成品1 2 1 2 1
200001 中間品A 5 1 3 1
200002 中間品B 5 1 1 10
200003 中間品D 2 5 5 10
900001 部品a 10 100 100 20
900002 部品b 2 10 20 20
900003 部品c 10 10 50 20
900004 部品d 10 10 10 20
900005 部品e 10 10 10 20
900006 部品f 10 10 10 20
900007 部品g 10 10 10 20
900008 部品h 10 10 10 20
900009 部品i 10 10 100 20


全ての在庫が無い状態で、完成品1(100001)2台、中間品B(200002)3台が必要だとすると、構成表と計画数(製造数)から以下のようになります。

上位品番 上位品目 製造数 下位品番 下位品目 原単位 所要数
100001 完成品1 2 200001 中間品A 1 2
100001 完成品1 2 200002 中間品B 1 2
100001 完成品1 2 900003 部品c 1 2
100001 完成品1 2 900007 部品g 1 2
100001 完成品1 2 900008 部品h 1 2
100001 完成品1 2 900009 部品i 5 10
       
200001 中間品A 2 200003 中間品D 1 2
200001 中間品A 2 900002 部品b 1 2
       
200002 中間品B 2 900003 部品c 3 6
200002 中間品B 2 900004 部品d 1 2
200002 中間品B 2 900005 部品e 1 2
200002 中間品B 2 900006 部品f 1 2
       
200003 中間品D 2 900001 部品a 2 4
       
200002 中間品B 3 900003 部品c 3 9
200002 中間品B 3 900004 部品d 1 3
200002 中間品B 3 900005 部品e 1 3
200002 中間品B 3 900006 部品f 1 3

以上の結果から各品目毎の発注数は以下のようになり、これが本当に必要な数量です。
100001 完成品1 : 2  
200001 中間品A : 2  
200002 中間品B : 5 =2+3
200003 中間品D : 2  
900001 部品a : 4  
900002 部品b : 2  
900003 部品c : 17 =2+6+9
900004 部品d : 5 =2+3
900005 部品e : 5 =2+3
900006 部品f : 5 =2+3
900007 部品g : 2  
900008 部品h : 2  
900009 部品i : 10  


ここでLTを考慮した所要量展開をしてみましょう。いずれも納期を2月10日とします。

品番 品名 数量 LT 納期 開始日 子品番 子品名 原単位 所要数  
100001 完成品1 2 2 2005/2/10 2005/2/8 200001 中間品A 1 2 =2*1
100001 完成品1 2 2 2005/2/10 2005/2/8 200002 中間品B 1 2 =2*1
100001 完成品1 2 2 2005/2/10 2005/2/8 900003 部品c 1 2 =2*1
100001 完成品1 2 2 2005/2/10 2005/2/8 900007 部品g 1 2 =2*1
100001 完成品1 2 2 2005/2/10 2005/2/8 900008 部品h 1 2 =2*1
100001 完成品1 2 2 2005/2/10 2005/2/8 900009 部品i 5 10 =2*5
           
200001 中間品A 2 5 2005/2/8 2005/2/3 200003 中間品D 1 2 =2*1
200001 中間品A 2 5 2005/2/8 2005/2/3 900002 部品b 1 2 =2*1
           
200002 中間品B 2 5 2005/2/8 2005/2/3 900003 部品c 3 6 =2*3
200002 中間品B 2 5 2005/2/8 2005/2/3 900004 部品d 1 2 =2*1
200002 中間品B 2 5 2005/2/8 2005/2/3 900005 部品e 1 2 =2*1
200002 中間品B 2 5 2005/2/8 2005/2/3 900006 部品f 1 2 =2*1
           
200001 中間品D 2 2 2005/2/3 2005/2/1 900001 部品a 2 4 =2*2
           
200002 中間品B 3 5 2005/2/10 2005/2/5 900003 部品c 3 9 =3*3
200002 中間品B 3 5 2005/2/10 2005/2/5 900004 部品d 1 3 =3*1
200002 中間品B 3 5 2005/2/10 2005/2/5 900005 部品e 1 3 =3*1
200002 中間品B 3 5 2005/2/10 2005/2/5 900006 部品f 1 3 =3*1

開始日とは上位品目を造る工程の着手日でありそのためには下位品目が組み上がっていなければなりません。見方を変えると下位品目の納期でもある訳です。その事を念頭に置き上表を見ると何を、いつ、いくつ必要かが見えてきます。

品番 品名 納期 数量
900001 部品a 2005/2/1 4
900002 部品b 2005/2/3 2
900003 部品c 2005/2/3 6
900003 部品c 2005/2/5 9
900003 部品c 2005/2/8 2
900004 部品d 2005/2/3 2
900004 部品d 2005/2/5 3
900005 部品e 2005/2/3 2
900005 部品e 2005/2/5 3
900006 部品f 2005/2/3 2
900006 部品f 2005/2/5 3
900007 部品g 2005/2/8 2
900008 部品h 2005/2/8 2
900009 部品i 2005/2/8 10
200003 中間品D 2005/2/3 2
200002 中間品B 2005/2/8 2
200002 中間品B 2005/2/10 3
200001 中間品A 2005/2/8 2
100001 完成品1 2005/2/10 2


これで何が、いつ、いくつ必要かが解ったのですが、実際製造あるいは購入するとなると前述のようにロットまとめ、まとめ期間、最低発注数等で製造、発注しなければなりません。
発注処理にはそれなりの手間がかかります。回数、伝票数が多ければ多いほど処理ミスも発生し易くなります。単価の低いものを毎日数個ずつ発注するより、1ヶ月分あるいは数ヶ月分まとめて発注すれば手間も減りミスも軽減できます。滞留によるリスクと手間とを考慮して最適と思われる値を決めてください。

さて話を戻しロットまとめを加味した数量に手配数を変更しましょう。
完成品1 は、最低発注数が2なので手配数は変わらず。
中間品A は、最低発注数が3なので手配数は、2→3
中間品B は、最低発注数が1、まとめ期間が10日なので2/8納期の2台と2/10納期の3台をまとめ、2/8納期で5台に変更します。
中間品D は、最低発注数が5なので手配数は、2→5
部品も同様にまとめたいところですが、実際は上位の手配数が変更されるので所要数が変わってきます。
これを先程の表に反映してみましょう。

品番 品名 数量 LT 納期 開始日 子品番 子品名 原単位 所要数  
100001 完成品1 2 2 2005/2/10 2005/2/8 200001 中間品A 1 2 =2*1
100001 完成品1 2 2 2005/2/10 2005/2/8 200002 中間品B 1 2 =2*1
100001 完成品1 2 2 2005/2/10 2005/2/8 900003 部品c 1 2 =2*1
100001 完成品1 2 2 2005/2/10 2005/2/8 900007 部品g 1 2 =2*1
100001 完成品1 2 2 2005/2/10 2005/2/8 900008 部品h 1 2 =2*1
100001 完成品1 2 2 2005/2/10 2005/2/8 900009 部品i 5 10 =2*5
           
200001 中間品A 3 5 2005/2/8 2005/2/3 200003 中間品D 1 3 =3*1
200001 中間品A 3 5 2005/2/8 2005/2/3 900002 部品b 1 3 =3*1
           
200002 中間品B 5 5 2005/2/8 2005/2/3 900003 部品c 3 15 =5*3
200002 中間品B 5 5 2005/2/8 2005/2/3 900004 部品d 1 5 =5*1
200002 中間品B 5 5 2005/2/8 2005/2/3 900005 部品e 1 5 =5*1
200002 中間品B 5 5 2005/2/8 2005/2/3 900006 部品f 1 5 =5*1
           
200001 中間品D 5 2 2005/2/3 2005/2/1 900001 部品a 2 10 =5*2

品番 品名 納期 数量
900001 部品a 2005/2/1 10
900002 部品b 2005/2/3 3
900003 部品c 2005/2/3 15
900003 部品c 2005/2/8 2
900004 部品d 2005/2/3 5
900005 部品e 2005/2/3 5
900006 部品f 2005/2/3 5
900007 部品g 2005/2/8 2
900008 部品h 2005/2/8 2
900009 部品i 2005/2/8 10
200003 中間品D 2005/2/3 5
200002 中間品B 2005/2/8 5
200001 中間品A 2005/2/8 3
100001 完成品1 2005/2/10 2

部品a は、最低発注数が100なので手配数は、10→100
部品b は、最低発注数が 20なので手配数は、3→ 20
部品c は、まとめ期間が 20日、2/3〜2/8は5日間で20日より小さく所要量の 15+2=17 をまとめて発注します。また最低発注数が20なので手配数は、最も早い2/3納期で20となります。
部品d も同様に 2/3納期で10
部品e も同様に 2/3納期で10
部品f も同様に 2/3納期で10
部品g も同様に 2/8納期で10
部品h も同様に 2/8納期で10
部品i も同様に 2/8納期で100

以上のことから以下の結果が得られ、これに従い発注します。

品番 品名 納期 数量
900001 部品a 2005/2/1 100
900002 部品b 2005/2/3 20
900003 部品c 2005/2/3 20
900004 部品d 2005/2/3 10
900005 部品e 2005/2/3 10
900006 部品f 2005/2/3 10
900007 部品g 2005/2/8 10
900008 部品h 2005/2/8 10
900009 部品i 2005/2/8 100
200003 中間品D 2005/2/3 5
200002 中間品B 2005/2/8 5
200001 中間品A 2005/2/8 3
100001 完成品1 2005/2/10 2


以上、全ての在庫が 0 の場合について説明してきましたが概略はお解かりいただけたかと思います。
実際には既に実行中の手配があるため、各品目毎に【在庫】【引当】【注残】があり、【有効残】(【在庫】−【引当】+【注残】)が新たな手配に対し引当可能な数量であるため、所要量展開(下位品目への展開)する前に該当品目の有効残を先に引当ます。そして不足となる数量のみを新たに手配し下位品目に展開、引当てます。
、 既に入っている手配の中でも、そのまま実行するものと手配を見直したいものとがあります。見直したい手配を取り消して計画を立直す方法もとれますが、システムによっては計画取込み日付によりそれ以前の手配は変えず、以後の手配を修正、追加するというものもあります。
取込み日付を既にある手配より後にするとそれらの手配による【引当】【注残】と現在の【在庫】を在庫情報として新たな計画が立てられます。
取込み日付以降に手配がある場合、それ以前の手配による【引当】【注残】と【在庫】を在庫情報としてその上に新たな計画が立てられます。言い替えれば取込み日付以降の手配は無視され新たに入れる計画に最適な手配が立案されます。

全体の流れが理解出来たら実際にやってみましょう。
INDEXの【さあやってみよう! MRP】へお移りください。


2005年04月03日
13時45分00秒

Top Page へ