「Asprova解体新書」から見えてくる致命的欠陥

生産スケジューラでスケジューリングしたらリードタイムが1/4になったという話
生産スケジュール本来の機能は使わずに、生産の準備とか、原材料の所要量計算とか、だけに使うという話

なんで、そういうことになっちゃうのか、納得できる説明はありません。生産スケジューラの機能の中に隠れているのかもしれません。どのようなデータを入れて、どのような結果が出るのか、基本的なところを確認しておきます。

登録しておく製造BOMなどの「マスタデータ」は次のような事項です。
*品目(コード、種別)
*製造BOM(品目、工程番号、工程コード、指図コード、品目/資源、前段取り、製造時間)
*資源(機械、人員など)
*シフト(稼働時間のパターン)
*カレンダ

オーダに関連するオーダーコード、品目、納期、数量、優先度など入力します。

出力される項目は次のような内容です。
*作業テーブル(コード、品目、数量、資源、製造開始日時、終了日時、製造時間)
*資源ガントチャート
*オーダガントチャート

マスタデータに登録するコードとか工程番号などのデータはすべて確定値というか、固定値というか、そういうものです。現実と合わなければ修正しなければなりません。マスタデータが間違っていれば、結果も間違いを含んだものになります。当たり前の話なんですが、、。

ここで注目しておきたいのは製造BOMの中の“製造時間”です。製造時間って、バラツキますよね。まったく同じ品目でも、ある時は50分、別のときは65分とか、、。マスタには一つの固定値しか入れられませんので、“平均+バラツキ分” で設定するんでしょうか。固定値は固定値ですがね、、。

現実は、“製造時間”はバラツキます。製造時間がバラツクとどうなるんでしょうね。

このBlogでは、何度か、取り上げているテーマなので、繰返しになる部分もあると思いますが、生産スケジュールとの関係を気にしながら、簡単にレビューしておきます。

生産工程に影響を及ぼすバラツキは、大きく分けて、2種類あります。
①オーダの到着時間間隔(投入時間間隔)
②工程での処理時間(製造時間、作業時間、、)

わかりやすいように、ひとつの工程に注目します。注文はランダムに来ます。工程の処理能力には限界があります。例えば、工程の平均処理能力は1時間に6個としましょうか。平均の処理時間は10分ですが、オーダごとにはバラバラです。あるものは6分、別のオーダは13分というように。1時間に平均6個の処理能力があるところに、1時間に5個のオーダがあったとすれば、工程の稼働率は5÷6=0.83 で83%ということになります。

オーダはランダムに来ますので、その時、工程がビジーであれば、その処理が終わってから、新しいオーダの処理をすることになります。その時、そのオーダは待つことになります。どのぐらいの時間、待たなければならないのかの計算式があります。但し、これは、オーダ到着時間間隔も処理時間も指数分布に従うときです。

平均待ち時間=(平均処理時間)∙(稼働率/(1-稼働率))

平均処理時間;10分、稼働率;0.83で計算しますと、平均待ち時間は50分となります。オーダ到着時間間隔も処理時間も指数分布というのは、めいっぱいバラツク状態ですので、実際は、そんなにバラツキは大きくはないと思いますが、決して、無視できないことだけは確かです。

この待ち行列現象の厄介なところは、稼働率が高くなると急激に待ち時間が長くなるという特性です。生産スケジューラでは稼働率はできるだけ高くなるようスケジューリングしますので、考慮しなければならない重要な現象です。

Asprovaに戻ります。BOMの“製造時間”に入れることができるのは、“固定値”だけです。“確率変数”を入力することはできません。スケジューリングのロジックも固定値しか扱えないようになっています。

つまり、Asprovaは“待ち行列現象”による待ち時間をまったく考慮に入れていないことになります。

生産スケジューラでスケジューリングしたらリードタイムが1/4になったという話
を振り返ってみましょう。数値を入れて、ザックリと計算してみましょうか。40工程で生産リードタイムを40日(2カ月)としてみましょう。生産スケジューラでスケジュールすると、リードタイムは10日(2週間)になる、ということですね。

計算を簡単にするため、工程の作業時間をすべて同じとします。40工程で40日かかりますので、1工程は1日。1日は8時間とします。一方、生産スケジュールの結果は、40工程で10日ですので、1日に4工程、1工程は2時間、となります。生産スケジューラは待ち行列現象による待ち時間を無視していますので、それを加えたらどうなるか、大雑把な計算をしてみます。

各工程の稼働率を75%としてみます。前記の式に代入して計算してみます。平均待ち時間は次のようになります。

平均待ち時間=2(時間)×(0.75/(1-0.75))=6(時間)

処理時間;2時間に待ち時間;6時間を加えると8時間。現状に合いますね。

実際そうなるかどうかはわかりませんが、待ち行列現象の影響をザックリと感じることはできるかと思います。

生産スケジュール本来の機能は使わずに、生産の準備とか、原材料の所要量計算とか、だけに使うという話
はどうでしょうか。

生産スケジューラでスケジュールすると、投入時間間隔と製造時間のバラツキによる待ち時間が考慮されていませんので、作業開始時刻は早めにセッティングされてしまいます。早めにセッティングされた時刻に間に合うように原材料や生産の準備をしますので、問題は生じないでしょうね。さらに、製造時間の時間単位と原材料や生産準備の時間単位の違いもあると思います。多いのは、前者は“分”、後者は“日”。“日”は安全側にまるめられますので、さらに早くなります。

作業指示には使わないで、原材料や生産準備の予定にだけ使うのであれば、生産スケジューラなんて、使わなくてもいいんじゃないのかな。あれもできます、これもできますって、機能満載の生産スケジューラ。秒単位で作業指示が出せます、と言っていますが、“そんなの、かんけいねぇ”となりませんか。

「Asprova解体新書」から、Asprovaが抱える致命的欠陥がみえてきました。これはAsprovaだけの問題なのか、どの生産スケジューラにも共通して言えることなのか、、。

DPM研究舎