[生産ラインの生産工程の一例]
図1は、生産ラインの生産工程の一例を示す図である。図1に示すように、生産ラインは、M(Mは自然数)個の単体工程を有する。工程1は、例えば生産対象物である基板を受け入れ、一連の工程が処理されることで、工程Mは生産物として完成品の基板を出力する。
実施例に係る生産ラインには、次の4つの制約があるものとする。まず、一連の工程の処理の順番は、基板毎に変えられないという第1の制約がある。また、単体工程間にバッファとなるタンクや、基板を退避させる設備は配置されていない、もしくはバッファは少量である。各単体工程がコンベア等の搬送設備を配置している場合、搬送物を蓄積するように動作せず、一定速度で動作するコンベアはバッファとして機能しないものとする。したがって、例えば、前の基板が工程3で処理中であるとき、後の基板の処理が工程3に進めず、前工程の工程2上で待ち時間が発生することがある。一方、コンベアが搬送物を一時的に蓄積するように動作する時、例えば後の工程での前の基板の処理が終了するまでコンベア上に基板を留めるように動作するコンベアであるが、このようなコンベアは少量のバッファとして機能する。このようなコンベアがある生産ラインでは、例えば、前の基板が工程3で処理中であり、かつ工程3と前工程の工程2の間のコンベア上にも基板があるとき、工程2上の基板の処理が終わっても先に進めず、前工程の工程2上で待ち時間が発生することがある。すなわち、バッファがない場合もバッファが少量ある場合のどちらも、生産ラインには、後から投入された基板が、それ以前に投入された基板の処理を追い抜くことはできないという第2の制約がある。なお、「バッファが少量」であるとは、バッファの容量が規定量より少ない量であることを意味し、ここでいう規定量とは、ある工程の停滞が前工程に伝搬しないだけの十分な容量を意味する。
また、1つの基板に同時に複数の工程を行うことができないという第3の制約がある。また、1つの工程には、同時に1つの基板しか載せられない。すなわち、生産ラインには、複数の基板に同時に1つの工程を行うことができないという第4の制約がある。
また、実際の各工程の処理時間には、トラブル等による伸びが生じることがある。伸びは、伸びが生じた工程、伸びの大きさ、前基板の処理のタイミング等により、生産ラインのスループットに影響したり、しなかったりする。ここでいう「スループット」とは、単位時間当たりに生産ラインから出力される完成品の基板の数のことをいう。
図2A〜図2Cは、バッファがない生産ラインにおいて、単体工程の伸びがスループットに影響しない場合、する場合の一例を示す図である。なお、処理1〜5は、それぞれ工程1〜5の処理であることを表す。また、処理3が、処理時間の一番長い処理であるボトルネック処理であるとする。
図2A上段に示すように、第1〜第4の制約があるため、例えば、基板i−1は、処理2を終了しても、前の基板i−2では、まだボトルネック処理である処理3が行われているため、処理3に進めず、待ち時間が発生している(a1)。また、基板iでは、処理1で、処理時間について伸びを生じている(a2)。つまり、基板iでは、ボトルネック処理である処理3の直前より前の処理で、伸びを生じている。すると、基板iでは、前の基板i−1のボトルネック処理中に処理1の処理で伸びた時間を挽回することが可能となる。したがって、伸びた時間がスループットに影響しない。
図2A下段に示すように、第1〜第4の制約があるため、例えば、基板i−1は、処理2を終了しても、前の基板i−2では、まだボトルネック処理である処理3が行われているため、処理3に進めず、待ち時間が発生している(a1)。また、基板iでは、処理2で、処理時間について伸びを生じている(a3)。つまり、基板iでは、ボトルネック処理である処理3の直前の処理で、伸びを生じている。すると、基板iでは、前の基板i−1のボトルネック処理中に処理2の処理で伸びた時間を挽回することができない。したがって、伸びた時間がスループットに影響する。
すなわち、伸びた時間が同じであっても、伸びが、ボトルネック処理の直前の処理(処理2)で起きるのか、直前より前の処理(処理1)で起きるのかで、スループットへの影響が異なる。
図2B上段に示すように、基板i−2では、処理5で、処理時間について伸びを生じている(a4)。つまり、基板i−2では、ボトルネック処理である処理3の直後より後の処理で、伸びを生じている。すると、基板i−2では、後の基板i−1のボトルネック処理(処理3)に影響を及ぼさない。したがって、伸びた時間がスループットに影響しない。
図2B下段に示すように、基板i−2では、処理4で、処理時間について伸びを生じている(a5)。つまり、基板i−2では、ボトルネック処理である処理3の直後の処理で、伸びを生じている。すると、基板i−2では、後の基板i−1のボトルネック処理が終了した後にも処理4が伸びているので、基板i−1のボトルネック処理(処理3)後の待ちを発生させる。したがって、伸びた時間がスループットに影響する。
すなわち、伸びた時間が同じであっても、伸びが、ボトルネック処理の直後の処理(処理4)で起きるのか、直後より後の処理(処理5)で起きるのかで、スループットへの影響が異なる。
図2C上段に示すように、基板iでは、処理2で、処理時間について伸びを生じている(a6)。また、図2C中段に示すように、基板iでは、処理1で、処理時間について伸びを生じている(a7)。ところが、伸びを生じている処理は、それぞれ1つだけであるので、伸びた時間がスループットに影響しない。
図2C下段に示すように、基板iでは、処理1および処理2で、処理時間についてそれぞれ伸びを生じている(a8,a9)。すると、伸びを生じている処理が、同じ基板で複数あるので、伸びた時間がスループットに影響してしまう。
すなわち、1つの基板で伸びを生じている処理が1個の場合と、複数個の場合とで、スループットへの影響が異なる。
図2A〜図2Cに示すように、処理時間の伸びを単体工程で評価するだけでは、スルーップットへの影響を精度良く評価できない。そこで、実施例では、後述する評価装置1が、工程間の制約を考慮しながら、生産ラインを実際に稼働させる前に、生産ラインのスループットへの影響を定量的に評価する。すなわち、評価装置1は、各工程の処理時間が理想的に行われた場合の時間(理想時間)から伸びが生じる場合がある状況下で、各工程の処理時間の確率分布モデルを入力する。そして、評価装置1は、入力した確率分布モデルを用いて、各工程の処理時間の伸びが生産ラインのスループットをどの程度悪化させるかを定量的に評価するための指標を導出する。なお、実施例では、伸びは正の値であるとする。
[評価装置の構成]
図3は、実施例に係る評価装置の構成を示す機能ブロック図である。図3に示すように、評価装置1は、制御部10および記憶部20を有する。評価装置1は、生産ラインを形成する複数の工程の処理時間の確率分布モデルを用いて、複数の基板が生産される場合の各基板に対する各工程の処理時間をサンプリングする。評価装置1は、サンプリングした各基板に対する各工程の処理時間を用いて、生産ラインが生産に要する時間である生産時間を算出する。評価装置1は、生産時間を算出する処理をサンプリングする処理時間を変えて複数回繰り返す。そして、評価装置1は、各回で算出された生産時間を用いて、生産ラインのスループットを評価する。なお、複数の基板が生産される場合の生産時間とは、複数の基板がN個である場合、1個目の基板が生産ラインから出力されてから、N個目の基板が生産ラインから出力されるまでの時間であるとする。
制御部10は、各種の処理手順を規定したプログラムや制御データを格納するための内部メモリを有し、これらによって種々の処理を実行する。そして、制御部10は、例えば、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)等の集積回路の電子回路に対応する。または、制御部10は、CPU(Central Processing Unit)やMPU(Micro Processing Unit)等の電子回路に対応する。制御部10は、入力データ解釈部11、サンプリング生成部12、処理時間調整部13、生産ラインシミュレーション部14、生産時間分布計算部15、影響度分布計算部16および結果出力部17を有する。
記憶部20は、例えばフラッシュメモリ(Flash Memory)やFRAM(登録商標)(Ferroelectric Random Access Memory)等の不揮発性の半導体メモリ素子等の記憶装置に対応する。また、記憶部20は、例えばRAM(Random Access Memory)等の揮発性の半導体メモリ素子を利用した記憶装置に対応しても良い。この場合、記憶部20は、不揮発性の半導体メモリ素子等の記憶装置からデータを適宜ロードするようにすれば良い。記憶部20には、構成情報21、サンプリング情報(処理時間)22、生産時間分布情報23および影響度分布情報24が記憶される。
構成情報21は、生産ラインを形成する各工程の構成を示す情報である。構成情報21には、各工程の順番や理想処理時間が設定される。工程間にバッファが少量ある場合には工程間のバッファの量も構成情報21に設定される。なお、構成情報21は、例えば、入力データ解釈部11によって生成される。サンプリング情報(処理時間)22は、生産ラインによって生産される複数の基板毎且つ工程毎にサンプリングされる処理時間を示す情報である。サンプリング情報(処理時間)22には、複数の基板に対して、各工程の処理時間の確率分布モデルを用いてサンプリングされる処理時間が設定される。なお、サンプリング情報(処理時間)22は、サンプリング生成部12によって生成される。生産時間分布情報23は、生産時間の分布情報である。なお、生産時間分布情報23は、生産時間分布計算部15によって生成される。影響度分布情報24は、各工程のスループットへの影響度の分布情報である。なお、影響度分布情報24は、影響度分布計算部16によって生成される。なお、構成情報21、サンプリング情報(処理時間)22および影響度分布情報24のデータ構造の一例は、後述する。
入力データ解釈部11は、入力データを解釈する。ここで、入力データとは、生産ラインの構成情報および各工程の処理時間の確率分布モデルのことをいう。
生産ラインの構成情報には、生産ラインを形成する各工程について、順番、工程名および理想処理時間、工程間にバッファが少量ある場合には工程間のバッファの量も加えて含まれる。入力データ解釈部11は、入力データとしての生産ラインの構成情報を構成情報21に記憶する。ここで、構成情報21のデータ構造について、図4を参照して説明する。
図4は、実施例に係る構成情報のデータ構造の一例を示す図である。図4に示すように、構成情報21には、工程順21a、工程名21bおよび理想処理時間21c、工程間バッファ量21dが対応付けて設定される。工程順21aは、生産ラインにおける各工程の順番である。工程名21bは、各工程の名称である。理想処理時間21cは、各工程の理想処理時間である。理想処理時間21cに設定される時間の単位は、例えば、秒単位である。工程間バッファ量21dは連続する工程の間のバッファの量である。工程間バッファ量21dに設定される量は、例えば基板の場合にはバッファに格納可能な基板の最大枚数である。なお、構成情報21は、入力データ解釈部11によって記憶されると説明したが、これに限定されず、例えば、生産ラインの管理者によって予め設定されるとしても良い。
一例として、構成情報21は、工程順21aが「1」である場合に、工程名21bとして「搬入1」、理想処理時間21cとして「2」を設定している。
図3に戻って、入力データとしての各工程の処理時間の確率分布モデルには、例えば、以下のようなものがある。一例として、過去に同じ種類の基板を生産したときの処理時間の観測値の頻度分布が挙げられる。また、別の例として、過去に同じ種類の基板を生産したときの処理時間の観測値を既存の確率分布でモデル化したものが挙げられる。既存の確率分布には、指数分布、ポアソン分布、正規分布等がある。また、別の例として、処理時間の確率分布と、基板の特徴量との関係を表すモデルから予測した確率分布が挙げられる。ここでいう基板の特徴量とは、基板に用いられる部品数、部品サイズ、基板のサイズ等のことをいう。
サンプリング生成部12は、各工程の処理時間の確率分布モデルを入力として、各工程について、複数の基板に対して、処理時間をサンプリングする。例えば、サンプリング生成部12は、確率分布モデルが処理時間の観測値の頻度分布である場合には、頻度分布に従う乱数を生成し、生成した乱数を処理時間としてサンプリングする。サンプリング生成部12は、確率分布モデルが既存の確率分布である場合には、モデル化した確率分布に従う乱数を生成し、生成した乱数を処理時間としてサンプリングする。サンプリング生成部12は、確率分布モデルが処理時間の確率分布と基板の特徴量との関係を表すモデルから予測した確率分布である場合には、予測した確率分布に従う乱数を生成し、生成した乱数を処理時間としてサンプリングする。
また、サンプリング生成部12は、各工程における複数の基板のサンプリングを1セットとして、複数セットの処理時間をサンプリングする。以降、この1セットの単位を1ロットというものとする。ここで、サンプリング生成部12によるサンプリング生成を、図5を参照して説明する。
図5は、実施例に係るサンプリング生成を説明する図である。なお、図5では、処理時間の観測値の頻度分布を確率分布モデルとして用いる場合について説明する。また、工程の数は、M(Mは、2より大きい自然数)であるとする。基板の数は、N(Nは、2より大きい自然数)であるとする。サンプリングを生成するロットの数は、1000であるとする。
図5に示すように、サンプリング生成部12は、ロット毎に、工程毎の確率分布モデルを入力とし、基板1〜Nに対して、処理時間をサンプリングする。
例えば、サンプリング生成部12は、1ロット目について、工程1の確率分布モデルを入力とし、基板1〜Nに対して、処理時間をサンプリングする。基板1に対する処理時間は、「2」とサンプリングされる。基板2に対する処理時間は、「3」とサンプリングされる。基板Nに対する処理時間は、「4.5」とサンプリングされる。
サンプリング生成部12は、1ロット目について、工程2の確率分布モデルを入力とし、基板1〜Nに対して、処理時間をサンプリングする。基板1に対する処理時間は、「30」とサンプリングされる。基板2に対する処理時間は、「32」とサンプリングされる。基板Nに対する処理時間は、「30」とサンプリングされる。
サンプリング生成部12は、1ロット目について、工程Mの確率分布モデルを入力とし、基板1〜Nに対して、処理時間をサンプリングする。基板1に対する処理時間が「1」とサンプリングされる。基板2に対する処理時間が「1.5」とサンプリングされる。基板Nに対する処理時間が「2」とサンプリングされる。
同様に、サンプリング生成部12は、1000ロット目について、工程1の確率分布モデルを入力とし、基板1〜Nに対して、処理時間をサンプリングする。基板1に対する処理時間は、「3」とサンプリングされる。基板2に対する処理時間は、「2」とサンプリングされる。基板Nに対する処理時間は、「2」とサンプリングされる。
サンプリング生成部12は、1ロット目について、工程2の確率分布モデルを入力とし、基板1〜Nに対して、処理時間をサンプリングする。基板1に対する処理時間は、「30」とサンプリングされる。基板2に対する処理時間は、「30」とサンプリングされる。基板Nに対する処理時間は、「34」とサンプリングされる。
サンプリング生成部12は、1ロット目について、工程Mの確率分布モデルを入力とし、基板1〜Nに対して、処理時間をサンプリングする。基板1に対する処理時間は、「1」とサンプリングされる。基板2に対する処理時間は、「1」とサンプリングされる。基板Nに対する処理時間は、「1」とサンプリングされる。
図3に戻って、サンプリング生成部12は、複数ロットのサンプリングした処理時間をサンプリング情報(処理時間)22に記憶する。ここで、サンプリング情報(処理時間)22のデータ構造について、図6を参照して説明する。
図6は、実施例に係るサンプリング情報(処理時間)のデータ構造の一例を示す図である。図6に示すように、サンプリング情報(処理時間)22には、ロットID(identification)22a、基板ID22b、工程1処理時間22c1、工程2処理時間22c2、・・・、工程M処理時間22cMが対応付けて設定される。ロットID22aは、ロットを識別する識別子であり、例えば、連続した番号で表わされる。基板ID22bは、基板を識別する識別子であり、例えば、連続した番号で表わされる。工程1処理時間22c1〜工程M処理時間22cMは、工程毎の確率分布モデルからサンプリングされた処理時間である。工程1処理時間22c1〜工程M処理時間22cMに設定される時間の単位は、例えば、秒単位である。
一例として、サンプリング情報(処理時間)22は、ロットID22aが「1」、基板ID22bが「1」である場合に、工程1処理時間22c1として「2」、工程2処理時間22c2として「30」、工程M処理時間22cMとして「1」を設定している。ロットID22aが「1000」、基板ID22bが「N」である場合に、工程1処理時間22c1として「2」、工程2処理時間22c2として「34」、工程M処理時間22cMとして「1」を設定している。
処理時間調整部13は、基板毎の各工程の各種処理時間を調整する。
例えば、処理時間調整部13は、各工程について、複数の基板に対して、処理時間を理想処理時間とするように調整する。なお、処理時間調整部13は、複数ロットの処理時間を調整する。一例として、処理時間調整部13は、構成情報21を用いて、各工程に対する理想処理時間21cを処理時間とする。
また、処理時間調整部13は、複数の基板に対して、1つの工程を理想処理時間、それ以外の工程をサンプリングした処理時間とするように処理時間を調整する。なお、処理時間調整部13は、複数ロットの処理時間を調整する。
また、処理時間調整部13は、複数の基板に対して、1つの工程をサンプリングした処理時間、それ以外の工程を理想処理時間とするように処理時間を調整する。なお、処理時間調整部13は、複数ロットの処理時間を調整する。
生産ラインシミュレーション部14は、基板毎の各工程の各種処理時間を用いて、各種処理時間毎に、各基板の各工程を処理する時系列の位置をシミュレーションする。シミュレーションは、各基板の各工程を処理する時系列の位置が工程間の制約を満たすように行われる。そして、生産ラインシミュレーション部14は、複数の基板が生産ラインから出てくるのにかかる時間(生産時間)を計算する。なお、生産ラインシミュレーション部14は、複数ロットそれぞれのシミュレーションを行う。
例えば、生産ラインシミュレーション部14は、サンプリングした処理時間を用いて、複数の基板の各工程を処理する時系列の位置をシミュレーションする(計算処理R)。また、生産ラインシミュレーション部14は、理想処理時間を用いて、複数の基板の各工程を処理する時系列の位置をシミュレーションする(計算処理0)。また、生産ラインシミュレーション部14は、1つの工程を理想処理時間、それ以外の工程をサンプリングした処理時間とする処理時間を用いて、複数の基板の各工程を処理する時系列の位置をシミュレーションする(計算処理A)。また、生産ラインシミュレーション部14は、1つの工程をサンプリングした処理時間、それ以外の工程を理想処理時間とする処理時間を用いて、複数の基板の各工程を処理する時系列の位置をシミュレーションする(計算処理B)。
ここで、サプリングした処理時間を用いたシミュレーションは、以下のように行われる。なお、工程は、1〜Mであるとし、基板は、1〜Nであるとして説明する。例えば、生産ラインシミュレーション部14は、基板jでの工程iのサンプリングした処理時間をτ’i,j(i=1〜M、j=1〜N)とする。工程間のバッファがない場合は、生産ラインシミュレーション部14は、基板1の工程1の処理の開始時刻を起点として、基板jの工程iの処理の開始までの時間Si,j、基板jの工程iを出るまでの時間Ei,jを、基板1から順番に、以下の漸化式、すなわち式(1)により算出する。
Si,j=max(Ei-1,j、Ei,j-1)、Ei,j=max(Si,j+τ’i,j、Ei+1,j-1)・・・式(1)
また工程間のバッファが少量である場合は、工程iとi+1の間のバッファ量をBiとして、以下の漸化式、すなわち式(1’)により算出する。
Si,j=max(Ei-1,j、Ei,j-1)、Ei,j=max(Si,j+τ’i,j、Ei+1,j-1-Bi)・・・式(1’)
ここで、式(1)における漸化式の各変種の関係を、図7を参照して説明する。図7は、式(1)における漸化式の各変数の関係を示す図である。なお、処理1〜5は、それぞれ工程1〜5の処理であることを表す。各処理で区切られた処理時間は、理想処理時間であり、「伸」は、処理が伸びたことを示し、「待ち」は、処理を終えたが次の工程に移行できないことを示す。図7では、最後の工程を表すMが5である場合とする。また、各処理で区切られた処理時間は、理想処理時間であるとする。
図7に示すように、例えば、基板jにおける工程2の処理の開始S2,jは、基板jにおける工程1を出るまでの時間E1、jと、基板j−1における工程2を出るまでの時間E2,j−1とのうち最大の方の時間となる。そして、基板jにおける工程2を出るまでの時間E2,jは、基板jにおける工程2の処理の開始S2,jにサンプリングした処理時間τ´2,jを加算した時間と、基板j−1における工程3を出るまでの時間E3,j−1とのうち最大の方の時間となる。ここでは、基板jにおける工程2のサンプリングした処理時間τ´2,jは、理想処理時間より伸びたので、E2,jは、E3,j-1よりS2,j+τ’2,j、のうちS2,j+τ’2,jが適用される。
そして、生産ラインシミュレーション部14は、1個目の基板とN個目の基板がそれぞれ生産ラインから出力された出力時刻を用いて、生産時間を計算する。一例として、1個目の基板がM番目の工程から出力される時刻がEM,1、N個目の基板がM番目の工程から出力された時刻がEM,Nであるとすると、生産ラインシミュレーション部14は、1ロットにおける生産時間Tを、以下の式(2)により算出する。
T=EM,N−EM,1・・・式(2)
図3に戻って、全基板について、全工程の処理時間を理想処理時間とした場合の生産時間(計算処理0による生産時間)は、式(1)もしくは式(1‘)を用いて、以下のように計算される。すなわち、生産ラインシミュレーション部14は、式(1)もしくは式(1‘)のサンプリングした処理時間τ’i,j(i=1〜M、j=1〜N)をそれぞれ理想処理時間に置き換える。そして、生産ラインシミュレーション部14は、生産時間Tを、式(2)により算出する。なお、計算処理0による生産時間はいかなるロットであっても同じ時間であるので、生産ラインシミュレーション部14は、1度だけ計算すれば良い。
全基板について、1つの工程の処理を理想処理時間、それ以外の工程の処理をサンプリングした処理時間とした場合の生産時間(計算処理Aによる生産時間)は、式(1)もしくは式(1‘)を用いて、以下のように計算される。すなわち、生産ラインシミュレーション部14は、1つの工程について、式(1)もしくは式(1‘)のサンプリングした処理時間τ’i,j(i=1〜M、j=1〜N)を理想処理時間に置き換える。そして、生産ラインシミュレーション部14は、1つの工程以外の工程について、式(1)もしくは式(1‘)のサンプリングした処理時間τ’i,j(i=1〜M、j=1〜N)をこのまま用いる。そして、生産ラインシミュレーション部14は、生産時間Tを、式(2)により算出する。
全基板について、1つの工程の処理をサンプリングした処理時間、それ以外の工程の処理を理想処理時間とした場合の生産時間(計算処理Bによる生産時間)は、式(1)もしくは式(1‘)を用いて、以下のように計算される。すなわち、生産ラインシミュレーション部14は、1つの工程について、式(1)もしくは式(1‘)のサンプリングした処理時間τ’i,j(i=1〜M、j=1〜N)をこのまま用いる。そして、生産ラインシミュレーション部14は、1つの工程について、式(1)もしくは式(1‘)のサンプリングした処理時間τ’i,j(i=1〜M、j=1〜N)を理想処理時間に置き換える。そして、生産ラインシミュレーション部14は、生産時間Tを、式(2)により算出する。
生産時間分布計算部15は、生産時間の分布を計算する。例えば、生産時間分布計算部15は、生産ラインシミュレーション部14によって計算される複数ロット分のサンプリングされた生産時間を用いて、生産時間に対する度数を計算する。生産時間分布計算部15は、生産時間に対する度数のみならず、生産時間に対する累積確率を計算しても良い。そして、生産時間分布計算部15は、計算された生産時間に対する度数および累積確率を生産時間分布情報23に記憶する。ここで、生産時間分布情報23のデータ構造について、図8を参照して説明する。
図8は、実施例に係る生産時間分布計算の結果の一例を示す図である。図8には、生産時間分布情報23に、生産時間分布計算の結果の一例が示されている。図8に示すように、生産時間分布情報23には、生産時間23a、度数23bおよび累積確率23cが対応付けて設定されている。
一例として、生産時間23aが「15」である場合に、度数23bとして「0.001」、累積確率23cとして「0.001」が記憶されている。生産時間23aが「16」である場合に、度数23bとして「0.014」、累積確率23cとして「0.015」が記憶されている。生産時間23aが「25」である場合に、度数23bとして「0.001」、累積確率23cとして「0.999」が記憶されている。
図3に戻って、生産時間分布計算部15は、スループットの推定値を計算する。例えば、生産時間分布計算部15は、生産ラインシミュレーション部14によって計算される複数ロット分のサンプリングされた生産時間を用いて、生産時間の平均値を計算する。そして、生産時間分布計算部15は、計算された生産時間の平均値および基板の数を用いて、スループットの推定値を計算する。生産時間分布計算部15は、スループットの推定値Vを、一例として、以下の式(3)により算出する。なお、Nは、基板の数であり、TRは、生産時間であり、T´Rは、生産時間の平均値であるとする。
V=N/T´R・・・式(3)
これにより、生産時間分布計算部15は、計算される生産時間の分布および計算されるスループットの推定値によって、生産計画を精度良く見積もることができる。
影響度分布計算部16は、各工程におけるスループットへの影響度を計算する。スループットへの影響度には、影響度の上限および影響度の下限が含まれる。
例えば、u番目のロットについて、各種の生産時間を以下とする。全工程の処理時間をサンプリングした処理時間とした場合の生産時間をTR(u)とする。工程iだけ理想処理時間、それ以外の工程をサンプリングした処理時間とした場合の生産時間をTAi(u)とする。工程iだけサンプリングした処理時間、それ以外の工程を理想処理時間とした場合の生産時間をTBi(u)とする。1ロットについて、全工程を理想処理時間とした場合の生産時間をT0とする。
各種の生産時間を用いて、影響度分布計算部16は、u番目のロットについて、工程i(i=1〜M)の影響度の上限H
i(u)を、以下の式(4)により算出する。
各種の生産時間を用いて、影響度分布計算部16は、u番目のロットについて、工程i(i=1〜M)の影響度の下限L
i(u)を、以下の式(5)により算出する。
そして、影響度分布計算部16は、各ロットにおけるHi(u)の度数分布をロットの数で割った結果を、スループットへの影響度の上限の分布とする。影響度分布計算部16は、各ロットにおけるLi(u)の度数分布をロットの数で割った結果を、スループットへの影響度の下限の分布とする。影響度分布計算部16は、工程i毎の、上限の影響度の度数および累積確率を影響度分布情報24に記憶する。ここで、影響度分布情報24のデータ構造について、図9を参照して説明する。
図9は、実施例に係る影響度分布計算の結果の一例を示す図である。図9には、影響度分布情報24に、影響度分布計算の結果の一例が示されている。図9に示すように、影響度分布情報24には、工程毎の上限に対して、影響度24a、度数24bおよび累積確率24cが対応付けて設定されている。工程毎の下限に対して、影響度24a、度数24bおよび累積確率24cが対応付けて設定されている。
一例として、工程1の上限について、影響度24aが「0.1」である場合に、度数24bとして「0.01」、累積確率24cとして「0.01」が記憶されている。影響度24aが「0.2」である場合に、度数24bとして「0.14」、累積確率24cとして「0.15」が記憶されている。影響度24aが「1.5」である場合に、度数24bとして「0.01」、累積確率24cとして「0.99」が記憶されている。工程1の下限について、影響度24aが「0.1」である場合に、度数24bとして「0.01」、累積確率24cとして「0.01」が記憶されている。影響度24aが「0.2」である場合に、度数24bとして「0.14」、累積確率24cとして「0.15」が記憶されている。影響度24aが「1.5」である場合に、度数24bとして「0.01」、累積確率24cとして「0.99」が記憶されている。
図3に戻って、各ロットにおける工程iの影響度の上限Hi、下限Liは、以下の理由により式(4)、式(5)と表される。まず、上限Hi、下限Liの分母は、どちらもT0である。このT0は、全工程を理想処理時間とした場合の生産時間であり、必ず0以上の値になる。
分子の(TR−TAi)は、仮に工程iに伸びがなかったとした場合、どれくらい生産時間が短くなるかを示す値である。工程i以外の工程の伸びは、サンプリング値をそのまま使用するので、(TR−TAi)は工程iの伸びの影響で生産時間が伸びる分の値を測る1つの値といえる。この値も、必ず0以上となる。
分子の(TBi−T0)は、仮に工程iのみサンプリング値であった場合、どれくらい生産時間が長くなるかを示す値である。工程i以外の工程は、理想処理時間を使用し、工程iのみサンプリング値を使用するので、(TBi−T0)は工程iの伸びにより生産時間が伸びる分の値を測る1つの値といえる。この値も、必ず0以上となる。
そして、(TR−TAi)と(TBi−T0)の大小関係は、常時同じでないので、影響度分布計算部16は、上限の場合maxを算出し、下限の場合minを算出する。そして、影響度分布計算部16は、全工程を理想処理時間とした場合の生産時間T0の値に対し、工程iの伸びの影響で生産時間が伸びる分の値を影響度と定義する。なお、分子部分の工程iの伸びの影響で生産時間が伸びる分の値を影響度と定義しても良い。これにより、影響度分布計算部16は、影響度を、短時間で高速に計算することができる。
結果出力部17は、生産時間分布計算部15によって計算された生産時間の分布を出力する。例えば、結果出力部17は、生産時間分布情報23を用いて、生産時間の度数分布を出力する。
また、結果出力部17は、影響度分布計算部16によって計算された、各工程のスループットへの影響度を出力する。例えば、結果出力部17は、影響度分布情報24を用いて、各工程におけるスループットへの影響度の上限、下限の度数分布を出力する。
図10は、実施例に係る結果出力の一例を示す図である。図10では、結果出力として、生産時間の度数分布が示されている。図10に示すように、横軸は生産時間を示し、縦軸は度数を示している。結果出力部17は、生産時間の度数分布を、折れ線グラフにより出力している。また、結果出力部17は、全工程の処理時間を理想処理時間とした場合の生産時間T0を合わせて出力している。このようにして、結果出力部17は、生産時間の度数分布を出力することで、サンプリングする際の工程毎の確率分布の見直しをさせるとともに、生産計画の見積もりを精度良く行わせることができる。
図11は、実施例に係る結果出力の別の例を示す図である。図11では、結果出力として各工程におけるスループットへの影響度の上限、下限の度数分布が示されている。図11に示すように、各工程ともに、横軸はスループットへの影響度を示し、縦軸は度数を示している。また、各工程ともに、上側の度数分布を上限の度数分布、下側の度数分布を下限の度数分布として示している。ここでは、工程3の影響度が、上限、下限とも他の工程の影響度と比較して大きい。このようにして、結果出力部17は、各工程におけるスループットへの影響度の上限、下限の度数分布を出力することで、スループットのサンプリングする際の工程毎の確率分布を変化させるとともに、悪化の主要因となる工程を特定することができる。この結果、結果出力部17は、サンプリングする際の工程毎の確率分布を変化させるとともに、実際に、悪化の主要因となる工程を見直させることができる。
[評価処理の全体のフローチャート]
図12は、実施例に係る評価処理の全体のフローチャートを示す図である。
図12に示すように、入力データ解釈部11は、入力データを受け取る(ステップS11)。例えば、入力データ解釈部11は、入力データとして生産ラインの構成情報および各工程の処理時間の確率分布モデルを受け取る。
すると、サンプリング生成部12は、全基板について、全工程の処理時間を、入力データとして受け取られた確率分布モデルからサンプリングする(ステップS12)。そして、サンプリング生成部12は、Z(Zは、1より大きい自然数)ロット分サンプリングしたか否かを判定する(ステップS13)。Zロット分サンプリングしていないと判定した場合には(ステップS13;No)、サンプリング生成部12は、Zロット分サンプリングすべく、ステップS12に移行する。
一方、Zロット分サンプリングしたと判定した場合には(ステップS13;Yes)、生産ラインシミュレーション部14は、ロットu(u=1〜Z)単位で、全基板について、サンプリングした処理時間を用いた生産時間のシミュレーション処理を実行する(ステップS14)。すなわち、生産ラインシミュレーション部14は、ロット毎に、計算処理Rを実行する。なお、計算処理Rの処理フローは、後述する。計算処理Rによって計算されたロットuの生産時間は、TR(u)で表わされるとする。
そして、生産ラインシミュレーション部14は、全基板について、全工程の処理時間を理想処理時間に置き換えた場合の生産時間のシミュレーション処理を実行する(ステップS15)。すなわち、生産ラインシミュレーション部14は、計算処理0を実行する。なお、計算処理0の処理フローは、後述する。計算処理0によって計算された生産時間は、T0で表わされるとする。
そして、生産ラインシミュレーション部14は、ロットu単位で、全基板について、1つの工程i(i=1〜M)を理想処理時間、それ以外の工程をサンプリングした処理時間とした場合の生産時間のシミュレーション処理を実行する(ステップS16)。すなわち、生産ラインシミュレーション部14は、ロット毎に、計算処理Aを実行する。なお、計算処理Aの処理フローは、後述する。計算処理Aによって計算されたロットuの生産時間は、TAi(u)で表わされるとする。
そして、生産ラインシミュレーション部14は、ロットu単位で、全基板について、1つの工程iをサンプリングした処理時間、それ以外の工程を理想処理時間とした場合の生産時間のシミュレーション処理を実行する(ステップS17)。すなわち、生産ラインシミュレーション部14は、ロット毎に、計算処理Bを実行する。なお、計算処理Bの処理フローは、後述する。計算処理Bによって計算されたロットuの生産時間は、TBi(u)で表わされるとする。
続いて、生産時間分布計算部15は、複数ロット分のサンプリングされた生産時間を用いて、生産時間の分布を計算する(ステップS18)。加えて、生産時間分布計算部15は、スループットの推定値を計算する(ステップS19)。例えば、生産時間分布計算部15は、複数ロット分のサンプリングされた生産時間を用いて、生産時間の平均値を計算する。そして、生産時間分布計算部15は、計算された生産時間の平均値および基板の数を用いて、スループットの推定値を計算する。
続いて、影響度分布計算部16は、ロットu単位で、T0、TR(u)、TAi(u)、TBi(u)を用いて、工程i毎のスループットへの影響度の上下限(Hi(u)、Li(u))を計算する(ステップS20)。Hi(u)は、ロットuの工程iの影響度の上限であり、式(4)により計算される。Li(u)は、ロットuの工程iの影響度の下限であり、式(5)により計算される。
そして、結果出力部17は、生産時間分布計算部15によって計算された生産時間の分布を出力する(ステップS21)。結果出力部17は、影響度分布計算部16によって計算された各工程のスループットへの影響度を出力する(ステップS22)。
[計算処理Rのフローチャート]
図13は、工程間にバッファがない生産ラインにおいて全工程の処理時間をサンプリングした処理時間とした場合の生産時間の計算処理のフローチャートを示す図である。なお、図13では、変数jは、基板IDの値を示し、1〜N(N:自然数)であるとする。変数iは、工程順を示し、1〜M(M:自然数)であるとする。以降では、説明の便宜上、変数jを基板jと説明し、変数iを工程iと説明するものとする。そして、変数τi,jは、工程iおよび基板jにおけるサンプリングした処理時間であるとする。
まず、生産ラインシミュレーション部14は、基板jに1を設定する(ステップS31)。生産ラインシミュレーション部14は、工程iに1を設定する(ステップS32)。そして、生産ラインシミュレーション部14は、基板jにおける工程iの処理時間τ´i,jに、基板jにおける工程iのサンプリングした処理時間τi,jを設定する(ステップS33)。基板jにおける工程iのサンプリングした処理時間τi,jは、サンプリング情報(処理時間)22から取得される。
そして、生産ラインシミュレーション部14は、次の工程にすべく、工程iを1加算する(ステップS34)。生産ラインシミュレーション部14は、工程iが工程順の最大数Mより大きいか否かを判定する(ステップS35)。工程iが工程順の最大数Mより大きくない場合には(ステップS35;No)、生産ラインシミュレーション部14は、次の工程の処理時間を設定すべく、ステップS33に移行する。
一方、工程iが工程順の最大数Mより大きい場合には(ステップS35;Yes)、生産ラインシミュレーション部14は、次の基板にすべく、基板jを1加算する(ステップS36)。生産ラインシミュレーション部14は、基板jが基板の最大数Nより大きいか否かを判定する(ステップS37)。基板jが基板の最大数Nより大きくない場合には(ステップS37;No)、生産ラインシミュレーション部14は、次の基板における各工程の処理時間を設定すべく、ステップS32に移行する。
一方、基板jが基板の最大数Nより大きい場合には(ステップS37;Yes)、生産ラインシミュレーション部14は、基板jにおける工程iの開始時間Si,jおよび基板jにおける工程iの出力時間Ei,jを計算する。生産ラインシミュレーション部14は、基板1における工程1の開始時間S1,1を0に設定する。生産ラインシミュレーション部14は、基板1における工程1の出力時間E1,1に、開始時間S1,1と処理時間τ´1,1を加算した値を設定する(ステップS38)。ここでは、処理時間τ´1,1は、基板1における工程1のサンプリングした処理時間である。
そして、生産ラインシミュレーション部14は、工程iに2を設定する(ステップS39)。生産ラインシミュレーション部14は、基板1における工程iの開始時間Si,1に、同じ基板1における1つ前の工程の出力時間Ei−1,1を設定する。生産ラインシミュレーション部14は、基板1における工程iの出力時間Ei,1に、開始時間Si,1に処理時間τ´i,1を加算した値を設定する(ステップS40)。
そして、生産ラインシミュレーション部14は、次の工程にすべく、工程iを1加算する(ステップS41)。生産ラインシミュレーション部14は、工程iが工程順の最大数Mより大きいか否かを判定する(ステップS42)。工程iが工程順の最大数Mより大きくない場合には(ステップS42;No)、生産ラインシミュレーション部14は、基板1における次の工程の開始時間、出力時間を計算すべく、ステップS40に移行する。
一方、工程iが工程順の最大数Mより大きい場合には(ステップS42;Yes)、生産ラインシミュレーション部14は、基板jに2を設定する(ステップS43)。生産ラインシミュレーション部14は、基板jにおける工程1の開始時間S1,jに、1つ前の基板j−1における同じ工程1の出力時間E1,j−1を設定する。生産ラインシミュレーション部14は、基板jにおける工程1の出力時間E1,j−1に、開始時間S1,jと処理時間τ´1,jを加算した値を設定する(ステップS44)。
そして、生産ラインシミュレーション部14は、工程iに2を設定する(ステップS45)。そして、生産ラインシミュレーション部14は、基板jにおける工程iの開始時間Si,jに、同じ基板jにおける1つ前の工程i−1の出力時間Ei−1,jと1つ前の基板における同じ工程iの出力時間Ei,j−1の大きい方を設定する。生産ラインシミュレーション部14は、基板jにおける工程iの開始時間Si,jに、処理時間τ´i,jを加算した値と、1つ前の基板における次工程の出力時間Ei+1,j−1との大きい方を設定する(ステップS46)。
そして、生産ラインシミュレーション部14は、次の工程にすべく、工程iを1加算する(ステップS47)。生産ラインシミュレーション部14は、工程iが工程順の最大数Mと一致するか否かを判定する(ステップS48)。工程iが工程順の最大数Mと一致しない場合には(ステップS48;No)、生産ラインシミュレーション部14は、基板jにおける次の工程の開始時間、出力時間を計算すべく、ステップS46に移行する。
一方、工程iが工程順の最大数Mと一致する場合には(ステップS48;Yes)、生産ラインシミュレーション部14は、基板jにおける工程iの開始時間Si,jに、同じ基板jにおける1つ前の工程i−1の出力時間Ei−1,jと1つ前の基板における同じ工程iの出力時間Ei,j−1の大きい方を設定する。生産ラインシミュレーション部14は、基板jにおける工程iの開始時間Si,jに、処理時間τ´i,jを加算した値を設定する(ステップS49)。
そして、生産ラインシミュレーション部14は、次の基板にすべく、基板jを1加算する(ステップS50)。生産ラインシミュレーション部14は、基板jが基板の最大数Nより大きいか否かを判定する(ステップS51)。基板jが基板の最大数Nより大きくない場合には(ステップS51;No)、生産ラインシミュレーション部14は、次の基板における各工程の開始時間、出力時間を計算すべく、ステップS44に移行する。
一方、基板jが基板の最大数Nより大きい場合には(ステップS51;Yes)、生産ラインシミュレーション部14は、基板Nにおける工程Mの出力時間EM,Nから基板1における工程Mの出力時間EM,1を減算する。そして、生産ラインシミュレーション部14は、減算した値を生産時間TR(u)として算出する(ステップS52)。すなわち、生産ラインシミュレーション部14は、ロットuについて、全工程の処理時間をサンプリングした処理時間とした場合の生産時間を算出する。そして、生産ラインシミュレーション部14は、ロットuの計算処理Rを終了する。なお、計算処理RのステップS38〜ステップS51を「Si,j、Ei,j計算処理」というものとする。
[計算処理0のフローチャート]
図14は、工程間にバッファがない生産ラインにおいて全工程の処理時間を理想処理時間に置き換えた場合の生産時間の計算処理のフローチャートを示す図である。なお、図14では、変数jは、基板IDの値を示し、1〜N(N:自然数)であるとする。変数iは、工程順を示し、1〜M(M:自然数)であるとする。以降では、説明の便宜上、変数jを基板jと説明し、変数iを工程iと説明するものとする。
まず、生産ラインシミュレーション部14は、基板jに1を設定する(ステップS61)。生産ラインシミュレーション部14は、工程iに1を設定する(ステップS62)。そして、生産ラインシミュレーション部14は、基板jにおける工程iの処理時間τ´i,jに、工程iの理想処理時間xiを設定する(ステップS63)。工程iの理想処理時間xiは、構成情報21から取得される。
そして、生産ラインシミュレーション部14は、次の工程にすべく、工程iを1加算する(ステップS64)。生産ラインシミュレーション部14は、工程iが工程順の最大数Mより大きいか否かを判定する(ステップS65)。工程iが工程順の最大数Mより大きくない場合には(ステップS65;No)、生産ラインシミュレーション部14は、次の工程の処理時間を設定すべく、ステップS63に移行する。
一方、工程iが工程順の最大数Mより大きい場合には(ステップS65;Yes)、生産ラインシミュレーション部14は、次の基板にすべく、基板jを1加算する(ステップS66)。生産ラインシミュレーション部14は、基板jが基板の最大数Nより大きいか否かを判定する(ステップS67)。基板jが基板の最大数Nより大きくない場合には(ステップS67;No)、生産ラインシミュレーション部14は、次の基板における各工程の処理時間を設定すべく、ステップS62に移行する。
一方、基板jが基板の最大数Nより大きい場合には(ステップS67;Yes)、生産ラインシミュレーション部14は、基板jにおける工程iの開始時間Si,jおよび基板jにおける工程iの出力時間Ei,jを計算する。生産ラインシミュレーション部14は、基板1における工程1の開始時間S1,1を0に設定する。生産ラインシミュレーション部14は、基板1における工程1の出力時間E1,1に、開始時間S1,1と処理時間τ´1,1を加算した値を設定する(ステップS68)。ここでは、処理時間τ´1,1は、基板1における工程1の理想処理時間である。
そして、生産ラインシミュレーション部14は、工程iに2を設定する(ステップS69)。生産ラインシミュレーション部14は、基板1における工程iの開始時間Si,1に、同じ基板1における1つ前の工程の出力時間Ei−1,1を設定する。生産ラインシミュレーション部14は、基板1における工程iの出力時間Ei,1に、開始時間Si,1に処理時間τ´i,1を加算した値を設定する(ステップS70)。
そして、生産ラインシミュレーション部14は、次の工程にすべく、工程iを1加算する(ステップS71)。生産ラインシミュレーション部14は、工程iが工程順の最大数Mより大きいか否かを判定する(ステップS72)。工程iが工程順の最大数Mより大きくない場合には(ステップS72;No)、生産ラインシミュレーション部14は、基板1における次の工程の開始時間、出力時間を計算すべく、ステップS70に移行する。
一方、工程iが工程順の最大数Mより大きい場合には(ステップS72;Yes)、生産ラインシミュレーション部14は、基板jに2を設定する(ステップS73)。生産ラインシミュレーション部14は、基板jにおける工程1の開始時間S1,jに、1つ前の基板j−1における同じ工程1の出力時間E1,j−1を設定する。生産ラインシミュレーション部14は、基板jにおける工程1の出力時間E1,j−1に、開始時間S1,jに処理時間τ´1,jを加算した値を設定する(ステップS74)。
そして、生産ラインシミュレーション部14は、工程iに2を設定する(ステップS75)。そして、生産ラインシミュレーション部14は、基板jにおける工程iの開始時間Si,jに、同じ基板jにおける1つ前の工程i−1の出力時間Ei−1,jと1つ前の基板における同じ工程iの出力時間Ei,j−1の大きい方を設定する。生産ラインシミュレーション部14は、基板jにおける工程iの開始時間Si,jに、処理時間τ´i,jを加算した値と、1つ前の基板における次工程の出力時間Ei+1,j−1との大きい方を設定する(ステップS76)。
そして、生産ラインシミュレーション部14は、次の工程にすべく、工程iを1加算する(ステップS77)。生産ラインシミュレーション部14は、工程iが工程順の最大数Mと一致するか否かを判定する(ステップS78)。工程iが工程順の最大数Mと一致しない場合には(ステップS78;No)、生産ラインシミュレーション部14は、基板jにおける次の工程の開始時間、出力時間を計算すべく、ステップS76に移行する。
一方、工程iが工程順の最大数Mと一致する場合には(ステップS78;Yes)、生産ラインシミュレーション部14は、基板jにおける工程iの開始時間Si,jに、同じ基板jにおける1つ前の工程i−1の出力時間Ei−1,jと1つ前の基板における同じ工程iの出力時間Ei,j−1の大きい方を設定する。生産ラインシミュレーション部14は、基板jにおける工程iの開始時間Si,jに、処理時間τ´i,jを加算した値を設定する(ステップS79)。
そして、生産ラインシミュレーション部14は、次の基板にすべく、基板jを1加算する(ステップS80)。生産ラインシミュレーション部14は、基板jが基板の最大数Nより大きいか否かを判定する(ステップS81)。基板jが基板の最大数Nより大きくない場合には(ステップS81;No)、生産ラインシミュレーション部14は、次の基板における各工程の開始時間、出力時間を計算すべく、ステップS74に移行する。
一方、基板jが基板の最大数Nより大きい場合には(ステップS81;Yes)、生産ラインシミュレーション部14は、基板Nにおける工程Mの出力時間EM,Nから基板1における工程Mの出力時間EM,1を減算した値を生産時間T0として算出する(ステップS82)。すなわち、生産ラインシミュレーション部14は、全工程の処理時間を理想処理時間とした場合の生産時間を算出する。そして、生産ラインシミュレーション部14は、計算処理0を終了する。なお、計算処理0のステップS68〜ステップS81を「Si,j、Ei,j計算処理」というものとする。
[計算処理Aのフローチャート]
図15は、工程間にバッファがない生産ラインにおいて1つの工程を理想処理時間、それ以外の工程をサンプリングした処理時間とした場合の生産時間の計算処理のフローチャートを示す図である。なお、図15では、変数jは、図13同様に、基板IDの値を示し、1〜N(N:自然数)であるとする。変数iおよび変数kは、図13と同様に、工程順を示し、1〜M(M:自然数)であるとする。以降では、説明の便宜上、変数jを基板jと説明し、変数iを工程iと説明し、変数kを工程kと説明するものとする。そして、変数τi,jは、工程iおよび基板jにおけるサンプリングした処理時間であるとする。
以降の処理では、生産ラインシミュレーション部14が、ロットuについて、工程kを理想処理時間、それ以外の工程をサンプリングした処理時間とした場合の生産時間TAkを算出する。
まず、生産ラインシミュレーション部14は、工程kに1を設定する(ステップS91)。そして、生産ラインシミュレーション部14は、基板jに1を設定する(ステップS92)。生産ラインシミュレーション部14は、工程iに1を設定する(ステップS93)。
そして、生産ラインシミュレーション部14は、工程iが工程kと一致する否かを判定する(ステップS94)。工程iが工程kと一致する場合には(ステップS94;Yes)、生産ラインシミュレーション部14は、基板jにおける工程iの処理時間τ´i,jに、工程iの理想処理時間xiを設定する(ステップS95)。工程iの理想処理時間xiは、構成情報21から取得される。一方、工程iが工程kと一致しない場合には(ステップS94;No)、生産ラインシミュレーション部14は、基板jにおける工程iの処理時間τ´i,jに、基板jにおける工程iのサンプリングした処理時間τi,jを設定する(ステップS96)。基板jにおける工程iのサンプリングした処理時間τi,jは、サンプリング情報(処理時間)22から取得される。
そして、生産ラインシミュレーション部14は、次の工程にすべく、工程iを1加算する(ステップS97)。生産ラインシミュレーション部14は、工程iが工程順の最大数Mより大きいか否かを判定する(ステップS98)。工程iが工程順の最大数Mより大きくない場合には(ステップS98;No)、生産ラインシミュレーション部14は、次の工程の処理時間を設定すべく、ステップS94に移行する。
一方、工程iが工程順の最大数Mより大きい場合には(ステップS98;Yes)、生産ラインシミュレーション部14は、次の基板にすべく、基板jを1加算する(ステップS99)。生産ラインシミュレーション部14は、基板jが基板の最大数Nより大きいか否かを判定する(ステップS100)。基板jが基板の最大数Nより大きくない場合には(ステップS100;No)、生産ラインシミュレーション部14は、次の基板における各工程の処理時間を設定すべく、ステップS93に移行する。
一方、基板jが基板の最大数Nより大きい場合には(ステップS100;Yes)、生産ラインシミュレーション部14は、計算処理Rの「Si,j、Ei,j計算処理」を実行する(ステップS101)。すなわち、生産ラインシミュレーション部14は、基板jにおける工程iの開始時間Si,jおよび基板jにおける工程iの出力時間Ei,jを計算する。
そして、生産ラインシミュレーション部14は、基板Nにおける工程Mの出力時間EM,Nから基板1における工程Mの出力時間EM,1を減算する。そして、生産ラインシミュレーション部14は、減算した値を生産時間TAk(u)として算出する(ステップS102)。すなわち、生産ラインシミュレーション部14は、ロットuについて、工程kを理想処理時間、それ以外の工程をサンプリングした処理時間とした場合の生産時間を算出する。
そして、生産ラインシミュレーション部14は、理想処理時間とする工程を変更すべく、工程kを1加算する(ステップS103)。生産ラインシミュレーション部14は、工程kが工程の最大数Mより大きいか否かを判定する(ステップS104)。工程kが工程の最大数Mより大きくない場合には(ステップS104;No)、生産ラインシミュレーション部14は、次の工程kに対する生産時間TAk(u)を計算すべく、ステップS92に移行する。
一方、工程kが工程の最大数Mより大きい場合には(ステップS104;Yes)、生産ラインシミュレーション部14は、ロットuの計算処理Aを終了する。
[計算処理Bのフローチャート]
図16は、工程間にバッファがない生産ラインにおいて1つの工程をサンプリングした処理時間、それ以外の工程を理想処理時間とした場合の生産時間の計算処理のフローチャートを示す図である。なお、図16では、変数jは、図13と同様に、基板IDの値を示し、1〜N(N:自然数)であるとする。変数iおよび変数kは、図13と同様に、工程順を示し、1〜M(M:自然数)であるとする。以降では、説明の便宜上、変数jを基板jと説明し、変数iを工程iと説明し、変数kを工程kと説明するものとする。そして、変数τi,jは、工程iおよび基板jにおけるサンプリングした処理時間であるとする。
以降の処理では、生産ラインシミュレーション部14が、ロットuについて、工程kをサンプリングした処理時間、それ以外の工程を理想処理時間とした場合の生産時間TBkを算出する。
まず、生産ラインシミュレーション部14は、工程kに1を設定する(ステップS111)。そして、生産ラインシミュレーション部14は、基板jに1を設定する(ステップS112)。生産ラインシミュレーション部14は、工程iに1を設定する(ステップS113)。
そして、生産ラインシミュレーション部14は、工程iが工程kと一致する否かを判定する(ステップS114)。工程iが工程kと一致しない場合には(ステップS114;No)、生産ラインシミュレーション部14は、基板jにおける工程iの処理時間τ´i,jに、工程iの理想処理時間xiを設定する(ステップS115)。工程iの理想処理時間xiは、構成情報21から取得される。一方、工程iが工程kと一致する場合には(ステップS114;Yes)、生産ラインシミュレーション部14は、基板jにおける工程iの処理時間τ´i,jに、基板jにおける工程iのサンプリングした処理時間τi,jを設定する(ステップS116)。基板jにおける工程iのサンプリングした処理時間τi,jは、サンプリング情報(処理時間)22から取得される。
そして、生産ラインシミュレーション部14は、次の工程にすべく、工程iを1加算する(ステップS117)。生産ラインシミュレーション部14は、工程iが工程順の最大数Mより大きいか否かを判定する(ステップS118)。工程iが工程順の最大数Mより大きくない場合には(ステップS118;No)、生産ラインシミュレーション部14は、次の工程の処理時間を設定すべく、ステップS114に移行する。
一方、工程iが工程順の最大数Mより大きい場合には(ステップS118;Yes)、生産ラインシミュレーション部14は、次の基板にすべく、基板jを1加算する(ステップS119)。生産ラインシミュレーション部14は、基板jが基板の最大数Nより大きいか否かを判定する(ステップS120)。基板jが基板の最大数Nより大きくない場合には(ステップS120;No)、生産ラインシミュレーション部14は、次の基板における各工程の処理時間を設定すべく、ステップS113に移行する。
一方、基板jが基板の最大数Nより大きい場合には(ステップS120;Yes)、生産ラインシミュレーション部14は、計算処理Rの「Si,j、Ei,j計算処理」を実行する(ステップS121)。すなわち、生産ラインシミュレーション部14は、基板jにおける工程iの開始時間Si,jおよび基板jにおける工程iの出力時間Ei,jを計算する。
そして、生産ラインシミュレーション部14は、基板Nにおける工程Mの出力時間EM,Nから基板1における工程Mの出力時間EM,1を減算する。そして、生産ラインシミュレーション部14は、基板Nにおける工程Mの出力時間EM,Nから基板1における工程Mの出力時間EM,1を減算する。そして、生産ラインシミュレーション部14は、減算した値を生産時間TBk(u)として算出する(ステップS122)。すなわち、生産ラインシミュレーション部14は、ロットuについて、工程kをサンプリングした処理時間、それ以外の工程を理想処理時間とした場合の生産時間を算出する。
そして、生産ラインシミュレーション部14は、理想処理時間とする工程を変更すべく、工程kを1加算する(ステップS123)。生産ラインシミュレーション部14は、工程kが工程の最大数Mより大きいか否かを判定する(ステップS124)。工程kが工程の最大数Mより大きくない場合には(ステップS124;No)、生産ラインシミュレーション部14は、次の工程kに対する生産時間TBk(u)を計算すべく、ステップS112に移行する。
一方、工程kが工程の最大数Mより大きい場合には(ステップS124;Yes)、生産ラインシミュレーション部14は、ロットuの計算処理Bを終了する。
[実施例の効果]
上記実施例によれば、評価装置1は、複数の工程を有する生産ラインにおいて複数の工程の工程間にバッファが無い場合に、各工程の処理時間のモデルを用いて、所定数の基板が生産される際の各基板に対する各工程の処理時間をサンプリングする。評価装置1は、サンプリングした各基板に対する各工程の処理時間を用いて、生産ラインが生産に要する時間である生産時間を算出する。評価装置1は、生産時間を算出する処理を、サンプリングする処理時間を変えて複数回繰り返す。評価装置1は、各回で算出された生産時間を用いて、生産ラインのスループットを評価する。かかる構成によれば、評価装置1は、生産ラインのスループット、すなわち生産性を定量的に精度良く評価することが可能となる。
また、上記実施例によれば、評価装置1は、各回で算出された生産時間を用いて、生産時間の分布を算出する。かかる構成によれば、評価装置1は、生産時間の分布を算出することで、例えば目的に応じた生産時間の改善を行わせることができる。例えば、評価装置1は、生産時間を平均的に短くする目的の場合には、度数の高い部分の原因を解消させることで、度数の高い部分を生産時間の方向を小さい方向へ移動させることができる。また、評価装置1は、度数が低い部分であっても生産時間が大きく伸びている部分を避ける目的の場合には、該部分の原因を解消させることで、該部分の度数を低い方向に移動させることができる。
また、上記実施例によれば、評価装置1は、サンプリングした各基板に対する各工程の処理時間から所定数の基板が生産される時間を示す第1の生産時間を算出する。評価装置1は、複数の工程の処理時間のサンプリング値を理想値に置き換えた場合の、所定数の基板が生産される時間を示す第2の生産時間を算出する。評価装置1は、評価対象の工程の処理時間のサンプリング値を理想値に置き換え、評価対象の工程以外の工程の処理時間をサンプリング値とした場合の、所定数の基板が生産される時間を示す第3の生産時間を算出する。評価装置1は、評価対象の工程の処理時間をサンプリング値とし、評価対象の工程以外の工程の処理時間のサンプリング値を理想値に置き換えた場合の、所定数の基板が生産される時間を示す第4の生産時間を算出する。評価装置1は、第1の生産時間、第2の生産時間、第3の生産時間および第4の生産時間を用いて、評価対象の工程のスループットへの影響度を算出する。かかる構成によれば、評価装置1は、評価対象の工程と評価対象の工程以外の工程との依存関係を用いて、評価対象の工程のスループットへの影響を算出することで、評価対象の工程のスループットへの影響を精度良く評価できる。また、評価装置1は、それぞれの工程のスループットへの影響を算出することで、スループット悪化の要因となる工程を特定できることが可能となる。
また、上記実施例によれば、評価装置1は、評価対象の工程のスループットへの影響度の上限と下限の分布を算出する。かかる構成によれば、評価装置1は、評価対象の工程のスループットへの影響度を定量的に評価できる。
また、上記実施例によれば、評価装置1は、評価する処理によって算出された分布を出力する。かかる構成によれば、評価装置1は、視覚的にまたは聴覚的に、スループットへの影響を評価できる。
[その他]
なお、評価装置1は、既知のパーソナルコンピュータ、ワークステーション等の情報処理装置に、上記したサンプリング生成部12、処理時間調整部13、生産ラインシミュレーション部14、生産時間分布計算部15、影響度分布計算部16等の各機能を搭載することによって実現することができる。
また、図示した装置の各構成要素は、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、装置の分散・統合の具体的態様は図示のものに限られず、その全部または一部を、各種の負荷や使用状況等に応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。例えば、サンプリング生成部12と、処理時間調整部13とを1個の部として統合しても良い。一方、生産時間分布計算部15を、生産時間に対する分布を計算する第1の計算部と、スループットの推定値を計算する第2の計算部とに分散しても良い。また、記憶部20を評価装置1の外部装置に記憶するようにしても良いし、記憶部20を記憶した外部装置を評価装置1とネットワーク経由で接続するようにしても良い。
また、上記実施例で説明した各種の処理は、あらかじめ用意されたプログラムをパーソナルコンピュータやワークステーション等のコンピュータで実行することによって実現することができる。そこで、以下では、図3に示した評価装置1と同様の機能を実現する評価プログラムを実行するコンピュータの一例を説明する。図17は、評価プログラムを実行するコンピュータの一例を示す図である。
図17に示すように、コンピュータ200は、各種演算処理を実行するCPU203と、ユーザからのデータの入力を受け付ける入力装置215と、表示装置209を制御する表示制御部207とを有する。また、コンピュータ200は、記憶媒体からプログラム等を読取るドライブ装置213と、ネットワークを介して他のコンピュータとの間でデータの授受を行う通信制御部217とを有する。また、コンピュータ200は、各種情報を一時記憶するメモリ201と、HDD205を有する。そして、メモリ201、CPU203、HDD205、表示制御部207、ドライブ装置213、入力装置215、通信制御部217は、バス219で接続されている。
ドライブ装置213は、例えばリムーバブルディスク211用の装置である。HDD205は、評価プログラム205aおよび評価処理関連情報205bを記憶する。
CPU203は、評価プログラム205aを読み出して、メモリ201に展開し、プロセスとして実行する。かかるプロセスは、評価装置1の各機能部に対応する。評価処理関連情報205bは、構成情報21、サンプリング情報(処理時間)22、生産時間分布情報23および影響度分布情報24等の各情報を記憶する。
なお、評価プログラム205aについては、必ずしも最初からHDD205に記憶させておかなくても良い。例えば、コンピュータ200に挿入されるフレキシブルディスク(FD)、CD−ROM、DVDディスク、光磁気ディスク、ICカード等の「可搬用の物理媒体」に当該プログラムを記憶させておく。そして、コンピュータ200がこれらから評価プログラム205aを読み出して実行するようにしても良い。
以上の実施例を含む実施形態に関し、さらに以下の付記を開示する。
(付記1)コンピュータに、
複数の工程を有する生産ラインにおいて前記複数の工程の工程間にバッファが無い、もしくはバッファが有っても前記バッファの容量が規定量より少量である場合に、各工程の処理時間のモデルを用いて、所定数の生産対象物が生産される際の各生産対象物に対する各工程の処理時間をサンプリングし、前記サンプリングした各生産対象物に対する各工程の処理時間を用いて、前記生産ラインが生産に要する時間である生産時間を算出し、
前記生産時間を算出する処理を、サンプリングする処理時間を変えて複数回繰り返し、
各回で算出された生産時間を用いて、前記生産ラインのスループットを評価する
処理を実行させることを特徴とする評価プログラム。
(付記2)前記評価する処理は、
各回で算出された生産時間を用いて、前記生産時間の分布を算出する
ことを特徴とする付記1に記載の評価プログラム。
(付記3)前記生産時間を算出する処理は、
前記サンプリングした各生産対象物に対する各工程の処理時間から所定数の生産対象物が生産される時間を示す第1の生産時間を算出し、
前記複数の工程の処理時間のサンプリング値を理想値に置き換えた場合の、所定数の生産対象物が生産される時間を示す第2の生産時間を算出し、
評価対象の工程の処理時間のサンプリング値を理想値に置き換え、前記評価対象の工程以外の工程の処理時間をサンプリング値とした場合の、所定数の生産対象物が生産される時間を示す第3の生産時間を算出し、
前記評価対象の工程の処理時間をサンプリング値とし、前記評価対象の工程以外の工程の処理時間のサンプリング値を理想値に置き換えた場合の、所定数の生産対象物が生産される時間を示す第4の生産時間を算出し、
前記評価する処理は、前記第1の生産時間、前記第2の生産時間、前記第3の生産時間および前記第4の生産時間を用いて、前記評価対象の工程のスループットへの影響度を算出する
ことを特徴とする付記1に記載の評価プログラム。
(付記4)前記評価する処理は、
前記評価対象の工程のスループットへの影響度の上限と下限の分布を算出する
ことを特徴とする付記3に記載の評価プログラム。
(付記5)前記評価する処理によって算出された分布を出力する
ことを特徴とする付記2または付記4に記載の評価プログラム。
(付記6)複数の工程を有する生産ラインにおいて前記複数の工程の工程間にバッファが無い、もしくはバッファが有っても前記バッファの容量が規定量より少量である場合に、各工程の処理時間のモデルを用いて、所定数の生産対象物が生産される際の各生産対象物に対する各工程の処理時間をサンプリングし、前記サンプリングした各生産対象物に対する各工程の処理時間を用いて、前記生産ラインが生産に要する時間である生産時間を算出する第1の算出部と、
前記第1の算出部による処理を、サンプリングする処理時間を変えて複数回繰り返す第2の算出部と、
各回で算出された生産時間を用いて、前記生産ラインのスループットを評価する評価部と
を有することを特徴とする評価装置。
(付記7)コンピュータが、
複数の工程を有する生産ラインにおいて前記複数の工程の工程間にバッファが無い、もしくはバッファが有っても前記バッファの容量が規定量より少量である場合に、各工程の処理時間のモデルを用いて、所定数の生産対象物が生産される際の各生産対象物に対する各工程の処理時間をサンプリングし、前記サンプリングした各生産対象物に対する各工程の処理時間を用いて、前記生産ラインが生産に要する時間である生産時間を算出し、
前記生産時間を算出する処理を、サンプリングする処理時間を変えて複数回繰り返し、
各回で算出された生産時間を用いて、前記生産ラインのスループットを評価する
各処理を実行することを特徴とする評価方法。