以下、本発明の情報処理装置、及び、情報処理プログラムを適用した実施の形態について説明する。
<実施の形態>
以下、本発明の情報処理装置、及び、情報処理プログラムを適用した実施の形態について説明する。
図1は、実施の形態に係る生産システム100を示す図である。図1に示すように、生産システム100は、生産ライン70と、サーバ10と、作業者用端末60とを備える。生産ライン70とサーバ10と作業者用端末60とは、ネットワーク80に接続されている。サーバ10は、情報処理装置の一例である。また、サーバ10は、作業支援装置として捉えることもできる。
生産ライン70は、一例として、図2に示すような表面実装ライン20を複数有する。表面実装ライン20は、プリント回路基板(以下、単に「基板」と呼ぶ)に部品を実装するためのラインであり、基板ローダ、ハンダ印刷機、印刷検査機、マウンタライン、実装検査機、リフロー炉、外観検査機、アンローダ等を備え、各装置間は、コンベアで接続されている。マウンタラインは、基板に部品を実装する複数のマウンタ装置を有する。
基板ローダは、コンベア上に基板を搭載する。ハンダ印刷機は、基板上の所定の箇所にハンダを印刷する。印刷検査機は、基板上のハンダの検査を行う。印刷検査機による検査に合格した基板は、マウンタラインに搬送され、マウンタラインでは、各マウンタ装置において電子部品などの部品を基板上の印刷されたハンダ上に表面実装する。実装検査機は、基板上の部品の実装に不具合がないか検査する。リフロー炉は、検査に合格した基板に対してリフローを行うことで、部品を基板に固定する。外観検査機は、基板の外観に不具合がないか検査する。アンローダは、検査に合格した基板をコンベアから取り出す。
なお、生産ライン70の各表面実装ライン20においては、生産を計画する際に予め定められた順番に沿ってロットを処理するものとする。ここで、ロットとは、1枚以上の同一種類の基板(製品)で、かつ、同一の表面実装ラインで連続して製造される基板(製品)の組のことを意味する。
また、本実施の形態においては、あるロットの生産から次のロットの生産の間に準備作業を行う必要がある。この準備作業は「段取り作業」と呼ばれ、段取り作業にかかる時間は「段取り時間」と呼ばれている。ロットごとの段取り時間や、段取り後のロットの生産にかかる時間(生産時間)についても、生産計画において予め定められているものとする。なお、本実施の形態においては、段取り作業が開始した後、途中で中断し、中断したところから再開できることとしてもよい。生産計画は、マウンタライン、ロット、段取り時間、生産時間、段取り開始時刻、段取り終了時刻、生産開始時刻、ライン生産終了時刻等を含む計画である。
各表面実装ライン20においては、上述のような生産計画に基づいて生産を行うものの、ロット毎の段取り作業のタイミングや生産時間は、計画通りに進まないことがある。これは、1人の作業者が担当する複数の表面実装ライン20において段取り作業が同時に発生した場合に、段取り作業が開始できるようになるまでの時間(待ち時間)が生じたり、突発的な装置の停止等により生産時間にばらつきが生じるためである。
なお、本実施の形態では、段取り作業の順番の最適化を説明する際に、各ロットの生産時間として、マウンタラインにおける処理時間を用いることとしている。したがって、サーバ10において管理するデータベースにおいては、生産時間に関するデータをマウンタラインごとにまとめている。
図1に戻り、サーバ10は、生産ライン70から得られる各種データを管理し、生産ライン70の生産状況を作業者用端末60に通知する。また、サーバ10は、生産ライン70における作業者の段取り作業の順番を作業者用端末60に通知することで、作業者による段取り作業を支援する。
図3は、サーバ10のハードウェア構成を示す図である。サーバ10は、CPU(Central Processing Unit)90、ROM(Read Only Memory)92、RAM(Random Access Memory)94、記憶部(ここではHDD(Hard Disk Drive))96、ネットワークインタフェース97、及び可搬型記憶媒体用ドライブ99等を備えている。これらサーバ10の構成各部は、バス98に接続されている。サーバ10では、ROM92あるいはHDD96に格納されているプログラム(情報処理プログラムを含む)、或いは可搬型記憶媒体用ドライブ99が可搬型記憶媒体91から読み取ったプログラム(情報処理プログラムを含む)をCPU90が実行することにより、図4に示す、各部としての機能が実現される。なお、図4は、サーバ10のHDD96等に格納されている生産計画情報DB(database)52、生産状況情報DB54も図示されている。
図4は、サーバ10の構成を示す図である。サーバ10は、生産計画情報収集部30、生産状況情報収集部32、主制御部34、ライン生産終了時刻推定部36、取得部としての整数計画問題生成部38、整数計画問題ソルバ部40、作業順序表示部46を含む。
また、サーバ10は、さらに、時間差計算部111、相関関係取得部112、生産作業時間計算部113、固定率取得部114、計算時間取得部115、固定率取得部116、相関関係補正部117、計算時間取得部118、生産順序決定部119、固定率取得部120、メモリ121を含む。
ここで、計算時間取得部118、固定率取得部116、及び相関関係補正部117は、換算部を構築する。また、整数計画問題生成部38、整数計画問題ソルバ部40、及び生産順序決定部119は、決定部を構築する。
図4に示すこれらの構成要素は、CPU90がプログラムを実行することによって実現される機能を表したものである。また、メモリ121は、サーバ10(図3参照)のROM92、RAM94、及びHDD96を機能的に表したものである。
生産計画情報収集部30は、生産計画情報DB52から生産計画情報を収集し、主制御部34に送信する。生産計画情報には、各ロットの段取り時間及び生産時間等に関する情報が含まれる。
図5には、生産計画情報DB52の具体的なデータ構造が示されている。図5に示すように、生産計画情報DB52は、「マウンタライン」、「ロット」、「段取り時間」、「生産時間」の各フィールドを有する。すなわち、生産計画情報は、「マウンタライン」、「ロット」、「段取り時間」、「生産時間」を含む。
生産計画情報DB52においては、どの「マウンタライン」(表面実装ライン20)でどの「ロット」を生産するかが格納されている。なお、同一のマウンタラインで生産されるロットが複数ある場合、生産計画情報DB52の上から順に生産されるものとする。また、「段取り時間」と「生産時間」のフィールドには、各ロットの段取りと生産にどれだけの時間を要するのかが格納されている。例えば、生産計画情報DB52には、マウンタラインAにおいて、ロットa、ロットbの順に生産すること、ロットa、bの生産の間に15分の段取り時間が必要なこと、ロットa、bの生産時間が1時間20分、3時間5分であることなどが格納されている。
図4に戻り、生産状況情報収集部32は、生産状況情報DB54から生産状況情報を収集し、主制御部34に送信する。生産状況情報DB54においては、各ロットの生産状況に関する情報が管理されている。
図6には、生産状況情報DB54のデータ構造の一例が示されている。図6に示すように、生産状況情報DB54は、「マウンタライン」、「ロット」、「段取り開始時刻」、「段取り終了時刻」、「生産開始時刻」、「ライン生産終了時刻」の各フィールドを有する。すなわち、生産状況情報は、「マウンタライン」、「ロット」、「段取り開始時刻」、「段取り終了時刻」、「生産開始時刻」、「ライン生産終了時刻」を含む。
段取り開始時刻は、各ロットの生産の前に行う段取りを開始する時刻であり、段取り終了時刻は、各ロットの段取りが終了する時刻である。段取りとは、ロットの生産を開始する前に行う準備作業であり、例えば、マウンタラインにロットをセットする作業である。段取りには、マウンタラインに取り付けられる型等を取り替える段取り替え作業も含まれる。
生産開始時刻とは、当初の生産計画に含まれるすべてのロットの生産を開始する時刻(すべてのロットのうち最初に生産を開始するロットに含まれる製品の生産を開始する時刻)である。
ここで、段取りは、ロットの生産を行う直前に行われ、ロットの生産は、段取りに引き続いて行われる。このため、各ロットについて段取りと生産が連続して行われ、段取りと生産はひとつの連続した作業として行われる。各ロットについて段取りを開始する段取り開始時刻は、各ロットについての生産のための作業を開始する生産作業開始時刻の一例である。なお、段取りを行わない場合には、生産作業開始時刻は、ロットの生産を開始する生産開始時刻であってよい。
ライン生産終了時刻は、生産計画に含まれる、すべてのマウンタライン(表面実装ライン20)で生産予定のすべてのロットの生産が完了する時刻をいう。すなわち、ライン生産終了時刻は、生産計画によるすべてのロットの生産が完了する時刻である。
生産状況情報DB54においては、いずれかのマウンタラインでいずれかのロットを生産した場合のデータとして、段取り開始時刻と段取り終了時刻が格納されるとともに生産開始時刻とライン生産終了時刻が格納される。
生産が完了したロットであれば、「段取り開始時刻」、「段取り終了時刻」、「生産開始時刻」、「ライン生産終了時刻」のすべてのフィールドに時刻が格納される。また、段取りが終了し、生産を開始するロットであれば、「段取り開始時刻」、「段取り終了時刻」、「生産開始時刻」のフィールドに時刻が格納される。
また、段取り作業が開始したが完了していないロットであれば、「段取り開始時刻」のフィールドに時刻が格納される。なお、「段取り開始時刻」、「段取り終了時刻」、「生産開始時刻」、「ライン生産終了時刻」のすべてのフィールドに時刻が格納されていなければ、段取り作業が開始していないことを意味する。
ここでは、すべてのロットの生産を開始する直前における、生産計画情報DB52に格納される生産計画情報のマウンタライン、ロット、段取り時間、生産時間と、生産状況情報DB54に格納される生産状況情報のうちの段取り開始時刻、段取り終了時刻、生産開始時刻、ライン生産終了時刻とが、すべてのロットの生産を行うための当初の生産計画に含まれるものとして取り扱う。
当初の生産計画は、第1生産計画の一例であり、すべてのロットの生産を開始する直前までに決められる。当初の生産計画は、マウンタライン、ロット、段取り時間、生産時間、段取り開始時刻、段取り終了時刻、生産開始時刻、ライン生産終了時刻を含む。当初の生産計画に含まれる各ロット及び各ロットに含まれる製品の生産順序は第1生産順序の一例である。なお、生産順序とは、生産計画に従って各ロットの生産を行う順番を表す。各ロットの生産の直前には段取りが行われるため、生産順序は、各ロットの段取りの順番を表すことにもなる。
図4に戻り、主制御部34は、サーバ10の各機能(各部)の処理を統括的に制御する。例えば、主制御部34は、生産計画情報収集部30及び生産状況情報収集部32が収集したデータを適切なタイミングで、各部36~40、46に送信したり、各部36~40、46に適切なタイミングで処理を実行させたりする。
ライン生産終了時刻推定部36は、所定間隔で、各マウンタライン(表面実装ライン20)で生産予定のすべてのロットの生産が完了する時刻(ライン生産終了時刻)を推定する。
整数計画問題生成部38は、整数計画問題ソルバ部40で解く整数計画問題を生成する。具体的には、整数計画問題生成部38は、変数、制約、目的関数を決定するとともに、一部の変数を固定値にすることで、整数計画問題を解く際の組み合わせ爆発対策を実行する。
整数計画問題ソルバ部40は、GLPK(GNU Linear Programming Kit)等のソフトウェアを用いて、整数計画問題生成部38が生成した整数計画問題を解く。整数計画問題ソルバ部40は、整数計画問題を解くことにより、段取り作業の作業順序を決定する。
なお、段取りの直後に生産が行われるため、段取り作業の作業順序は、上述した各ロットの生産順序と同義である。
例えば、図7(a)、図7(b)に示すように、マウンタラインA、Bがあり、マウンタラインAにおけるロット1の生産終了時刻がt1、マウンタラインBにおけるロット3の生産終了時刻がt2であったとする。この場合、図7(a)のように、マウンタラインAの段取り作業を先に実行すると、その間は、マウンタラインBの段取り作業が行えず、段取り待ち時間が発生する。また、図7(b)のように、マウンタラインBの段取り作業を先に実行すると、その間は、マウンタラインAの段取り作業が行えず、段取り待ち時間が発生する。本例では、マウンタラインAの段取り作業を先に行った場合(図7(a))には、全ラインにおけるライン生産終了時刻はTとなり、マウンタラインBの段取り作業を先に行った場合(図7(b))には、全ラインにおけるライン生産終了時刻はT’(T’のほうがTよりも早い時刻)となる。すなわち、整数計画問題ソルバ部40は、整数計画問題を解くことで、すべてのラインのライン生産終了時刻が極力早くなるような最適な段取り作業の順番を決定することとしている。
作業順序表示部46は、整数計画問題ソルバ部40の処理結果(段取り作業の作業順序)を取得し、作業者用端末60に送信して、作業者用端末60に表示させる。
図1に戻り、作業者用端末60は、作業者が携帯したり、生産ライン70近傍に設置される端末であり、PC(Personal Computer)、タブレット型端末、スマートフォン等であるものとする。作業者用端末60は、ディスプレイを備えており、サーバ10で決定された段取り作業の作業順序を表示することで、作業者による作業を支援する。
図4に戻り、時間差計算部111は、当初の生産計画から、互いに異なるマウンタラインで生産される2つのロットの組み合わせと、組み合わせに含まれる2つのロットの段取り開始時刻の時間差とを計算する。
互いに異なるマウンタラインで生産される2つのロットの組み合わせは、当初の生産計画に含まれるすべてのロットについて、互いに異なるマウンタラインで生産される2つのロットのすべての組み合わせであり、時間差は、すべての組み合わせに含まれる2つのロットの段取り開始時刻の時間差である。
また、ロットは1又は複数の製品を含むため、2つのロットの組み合わせは、ロット単位での2つの製品の組み合わせであり、組み合わせに含まれる2つのロットの段取り開始時刻の時間差は、ロット単位での組み合わせに含まれる2つの製品の段取り開始時刻の時間差である。
以下では、製品の組み合わせとは、マウンタラインが異なる2つの製品の組み合わせを称し、ロットの組み合わせとは、マウンタラインが異なる2つのロットの組み合わせを称す。
図8は、段取り開始時刻の時間差の一例を示す図である。図8において、横軸は時間軸(右が正)を示す。図8では、段取り時間で黒で示し、各ロットの生産時間を白で示す。図8には、一例として、マウンタラインA~Cにおけるロット1~18(L1~L18)についての段取り時間と生産時間を示すが、マウンタラインはさらに存在してもよく、ロットもさらに存在してもよい。
時間差計算部111が時間差を計算する際には、図7に示す段取り待ち時間のような空白時間を削除してすべての段取り時間と生産時間を詰めた状態で計算を行う。時間差計算部111は、まず、互いに異なるマウンタラインで生産される2つのロットのすべての組み合わせを抽出する。ここでは、一例として510通りの組み合わせが得られたこととする。
そして、時間差計算部111は、すべての組み合わせについて、段取り開始時刻の時間差を計算する。異なるマウンタラインのi番目のロットとj番目のロットの段取り開始時刻をdsiとdsjとすると、差分ΔDSijは、ΔDSij=|dsj-dsi|である。図8には、L15とL11のΔDSijの取り方を示す。
図9は、ロットの組み合わせと時間差ΔDSijと順位を示す図である。順位は、時間差ΔDSijが最も長いロットの組み合わせが1位であり、最も短いロットの組み合わせが510位である。
時間差計算部111は、時間差ΔDSijが長い順にロットの組み合わせを並べて順位付けを行うことにより、図9に示すようなテーブル形式のデータベース(時間差順位DB)を生成し、メモリ121に格納する。図9では、ロットL1とL18の組み合わせとロットL7とL18の組み合わせとの段取り開始時刻の時間差ΔDSijが12600(step)で最長(最大)である。また、508位以下のロットL7とL13の組み合わせ、ロットL1とL13の組み合わせ、及びロットL1とL7の組み合わせの時間差ΔDSijが0(step)で最短(最小)である。なお、stepは、生産時間を表す際に用いる時間の単位であり、1stepは所定時間に決められている。
ここで、当初の生産計画に基づいて各ロットの生産を行っているときに、いずれかのマウンタラインで障害が生じた場合に、1人の作業者が担当する複数のマウンタラインにおいて段取り作業が同時に発生すると、段取り作業が開始できるようになるまでの時間(待ち時間)が生じたり、突発的な装置の停止等により生産時間にばらつきが生じる。なお、障害とは、例えば、突発的な装置の停止等である。
実施の形態では、生産性の効率化を図るために、いずれかのマウンタラインで障害が生じた場合には、障害発生時点において未生産のすべてのロットの生産が終了する時刻の遅延が最小限になるように、未生産のロットのうちの少なくとも一部のロットについて生産順序を変更する。生産順序が変更されたロットは、当初の生産計画に含まれる生産順序とは異なる新たな生産順序に従って生産されることになる。
一部のロットについて生産順序の変更が生じた場合には、生産順序の変更が生じていないロットも含めた新たな生産計画を作成して、生産を再開する。また、障害発生時点において生産中であったロットについては、そのロットに含まれる未生産の製品を新たな1つのロットとして取り扱って生産順序と生産計画を立てることになる。新たな生産順序は第2生産順序の一例であり、新たな生産計画は第2生産計画の一例である。
ここで、新たな生産計画を計算するには時間がかかり、生産順序を変更するロットの数が多くなるほど計算時間は長くなる。新たな生産計画の計算に許容される時間(許容時間)は、全体での生産の都合、及び/又は、最終的に生産を終了する時刻に対する制約等によって、限られている場合がある。
また、生産順序を再計算する際に、時間差ΔDSijが大きいことは、ロットの組み合わせの段取り開始時刻同士が離れており、図8に示す時間軸(横軸)方向において両端に位置する傾向が強いことを意味する。このように時間差ΔDSijが大きいロットの組み合わせは、生産順序を変更しても全体に及ぼす影響は小さい。
一方、時間差ΔDSijが小さいことは、ロットの組み合わせの段取り開始時刻同士が近く、図8に示す時間軸(横軸)方向における中央側に位置する傾向が強いことを意味する。
このような場合に、時間差ΔDSijが大きいロットの組み合わせについては生産順序を当初の生産計画の生産順序に固定し、時間差ΔDSijが小さいロットの組み合わせについては新たな生産順序に変更することにする。こうすれば、障害発生時における未生産のすべてのロットの生産順序を変更する場合に比べて、生産順序を変更するロットの数が少なくなり計算時間を短くできる。
そこで、実施の形態では、時間差ΔDSijが大きいロットの組み合わせから順番に生産順序を当初の生産計画の生産順序に固定する。ある時点において未生産のすべてのロットの数に対する、生産順序を当初の生産計画の生産順序に固定するロットの数の比率を固定率と称す。以下では固定率をNで表す。ある時点は、すべての生産を開始する前の時点から、生産開始後の任意の時点までのいずれであってもよい。
固定率Nは、ある時点において未生産のすべてのロットの数に対する、時間差ΔDSijが大きいロットの組み合わせから順番に生産順序を当初の生産計画の生産順序に固定するロットの数の割合を表す。換言すれば、固定率Nは、ある時点において未生産のすべてのロットの組み合わせの数に対する、時間差ΔDSijが大きいロットの組み合わせから順番に生産順序を当初の生産計画の生産順序に固定するロットの組み合わせの数の割合を表す。
図10は、固定率、生産作業時間、及び計算時間の関係の一例を示す図である。図10に示す生産作業時間は、当初の生産計画から図7に示す段取り待ち時間のような空白時間を削除してすべての段取り時間と生産時間を詰めた状態で、固定率Nを変化させた場合に得られる、すべてのロットについての段取り時間と生産時間との合計時間である。
ここで、固定率Nが100%の場合は、各マウンタラインの中でのロットの順番は入れ替わらないが、異なるマウンタライン同士の間では、詰められる前の空白時間の長さによっては、ロットの生産順序が入れ替わる可能性がある。
また、固定率Nが90%、70%、50%、35%、20%、0%の場合には、すべての組み合わせのうち、上述した時間差ΔDSijが短い方から、それぞれ、10%、30%、50%、65%、80%、100%の組み合わせに含まれるロットの生産順序が変更される。生産順序の変更は、後述するステップS32と同様に、整数計画問題ソルバ部40が整数計画問題を解くことによって行われる。
例えば、固定率Nが70%の場合には、すべての組み合わせのうち、時間差ΔDSijが長い(大きい)方の70%の組み合わせに含まれるロットについては、固定率Nが100%の場合の生産順序に設定され、時間差ΔDSijが短い(小さい)方の30%の組み合わせに含まれるロットについては、整数計画問題ソルバ部40が整数計画問題を解くことによって設定される生産順序に設定される。図10に示す生産作業時間は、すべてのロットの数を所定数として実際に計算を行うことによって求めた時間である。
また、図10に示す計算時間は、すべてのロットのうち、生産順序を変更せずに固定して生産するロットと、生産順序を新たな生産順序に変更して生産するロットとについての段取り時間及び生産時間を含む生産計画を整数計画問題ソルバ部40が計算するのに要する時間であり、相関関係取得部112が実際に計算を行うことによって計算される。図10に示す計算時間は、すべてのロットの数を所定数として実際に計算をお粉ことによって求めた時間である。なお、すべてのロットの数に対する、生産順序を新たな生産順序に変更して生産するロットの数の割合は、100%-固定率N(%)である。
図10に示すように、固定率Nを100%から0%まで変化させたところ、固定率Nを70%よりも低くしても、固定率Nが70%の場合の生産作業時間(19574step)未満にはならない傾向を示した。また、計算時間は、固定率Nが100%から50%に減少するまでは、ある程度短い時間が得られたが、固定率Nが35%以下になると1200秒を超える結果になった。
これより、固定率Nには、生産作業時間の最適解(19574step)があることが分かった。ここでは、当初の生産計画に含まれるすべてのロットについての生産作業時間の最適解を与える最適な固定率NをNmと記す。
ここでの最適な固定率Nmは70%である。70%の場合には、6秒という十分に短い計算時間が得られ、かつ、生産順序を変更できるロットの割合が30%と十分にあることから、生産順序を変更する組み合わせの割合を決定する固定率として利用するのに適している。当初の生産計画に含まれるすべてのロットについての最適な固定率Nmは、第1の固定率の一例である。
また、当初の生産計画に含まれるすべてのロットについての最適な固定率Nmに対応する計算時間をTmとする。ここでは、最適な固定率Nm(70%)に対応する計算時間Tmは、6秒である。計算時間Tmは、第1の計算時間の一例である。
図11は、図10に示す固定率Nを横軸に表し、計算時間を縦軸に表した特性図である。計算時間は、当初の生産計画に含まれるすべてのロットのうち、生産順序を新たな生産順序に変更して生産するロットについての段取り時間及び生産時間を含む生産計画を計算するのに要する時間である。
計算時間は、固定率Nが70%を超えると大きくなり始め、35%では1200秒を超えている(ここでは1200秒までしか計測していない)。
ここで、新たな生産計画の計算に許容される許容時間Taが、一例として、生産現場の要求によって30秒である場合には、固定率Nを70%に設定すると、計算時間は6秒(厳密には5.4秒)であるため、十分なマージンがある。このため、生産作業時間の最適解を与える最適な固定率Nmとして求まった70%は、実際の運用に用いるのに適した値である。
図4に戻り、相関関係取得部112は、上述した固定率Nに対する、生産順序を当初の生産計画の生産順序から変更するロットを生産する新たな生産計画を計算する計算時間の相関関係を求める。計算時間は、すべてのロットのうち、生産順序を変更せずに固定して生産するロットと、生産順序を新たな生産順序に変更して生産するロットとについての段取り時間及び生産時間を含む生産計画を整数計画問題ソルバ部40が計算するのに要する時間であり、相関関係取得部112が計算する。相関関係取得部112は、当初の生産計画に含まれるすべてのロットを対象として、固定値を複数の値に設定して、上述のような相関関係を求める計算を行う。
図12は、固定率Nと計算時間の相関関係を表す図である。計算時間は、図10及び図11と同様に、当初の生産計画に含まれるすべてのロットのうち、生産順序を新たな生産順序に変更して生産するロットについての段取り時間及び生産時間を含む生産計画を整数計画問題ソルバ部40が計算するのに要する時間である。
図4に戻り、相関関係取得部112は、当初の生産計画に含まれるすべてのロットについて、固定率Nと計算時間との相関関係(図12参照)を表すデータを生成し、メモリ121に格納する。
生産作業時間計算部113は、図10に示す生産作業時間を計算する。生産作業時間計算部113は、生産作業時間として、当初の生産計画から図7に示す段取り待ち時間のような空白時間を削除してすべての段取り時間と生産時間を詰めた状態で、固定率Nを変化させた場合に得られる、すべてのロットについての段取り時間と生産時間との合計時間を計算する。
固定率Nが所定値の場合に生産順序が変更される組み合わせについては、整数計画問題ソルバ部40が整数計画問題を解くことによって得られる生産順序に設定され、設定された生産順序に基づいて、生産作業時間計算部113が各ロットについての段取り時間と生産時間との合計時間を求める。
また、固定率Nが所定値の場合に生産順序が変更されない組み合わせについては、当初の生産計画で得られる生産順序に基づいて、生産作業時間計算部113が各ロットについての段取り時間と生産時間との合計時間を求める。
生産作業時間計算部113は、生産順序が変更される組み合わせに含まれる各ロットについての段取り時間及び生産時間の合計時間と、生産順序が変更されない組み合わせに含まれる各ロットについての段取り時間及び生産時間の合計時間との合計時間を、固定率Nが所定値の場合の生産作業時間として求める。
生産作業時間計算部113は、固定率Nを100%、90%、70%、50%、35%、20%、0%に設定して上述のような計算を行うことによって、図10に示す複数の固定率Nにおける生産作業時間を計算する。
固定率取得部114は、第1固定率取得部の一例であり、生産作業時間計算部113によって取得される複数の固定率Nにおける生産作業時間の関係から、生産作業時間が所定時間以下になる固定率Nmを求める。
ここでは、所定時間は、一例として、固定率Nを100%から低下させた場合に、生産作業時間がそれ以上短くならずに一定値になる時間(生産作業時間の最適解)であり、ここでは19574stepである。ただし、固定値Nmを与える所定時間は、このような生産作業時間の最適解に限らず、例えば、生産作業時間の最適解の5%増し又は10%増し等のように、生産作業時間の最適解に所定のマージンを与えた時間であってもよい。所定時間は、生産作業時間としてある程度短い時間であればよい。
計算時間取得部115は、固定率Nmに対応する計算時間Tmを求める。
固定率取得部116は、第2固定率取得部の一例であり、当初の生産計画に含まれるすべてのロットの数に対する、障害発生時における未生産のロットの数の比を固定率Nmに乗算して固定率Nm’を求める。換言すれば、固定率取得部116は、当初の生産計画に含まれるすべてのロットの組み合わせの数に対する、障害発生時における未生産のロットの組み合わせの数の比を固定率Nmに乗算して固定率Nm’を求める。固定率Nm’は、第2の固定率の一例である。
ここで、当初の生産計画に含まれるすべてのロットの数に対する、障害発生時における未生産のロットの数の比と、当初の生産計画に含まれるすべてのロットの組み合わせの数に対する、障害発生時における未生産のロットの組み合わせの数の比とは等しい。これらの比を比Rとする。
固定率Nm’は、固定率Nmと比Rを用いると、Nm’=Nm×Rで表される。
相関関係補正部117は、相関関係取得部112によって取得される相関関係(図12参照)を当初の生産計画に含まれるすべてのロットの数に対する、障害発生時における未生産のロットの数の比Rを用いて補正する。換言すれば、相関関係補正部117は、相関関係取得部112によって取得される相関関係(図12参照)に比Rを乗じて補正する。
これにより、図12に示す相関関係の縦軸の値である計算時間に比Rを乗じて補正した相関関係が得られる。補正後の相関関係は、図12に示す相関関係の縦軸の値に比Rを乗算した特性を表す。相関関係補正部117は、補正後の相関関係を表すデータをメモリ121に格納する。
計算時間取得部118は、対応計算時間取得部の一例であり、相関関係補正部117によって補正された相関関係において、固定率Nm’に対応する計算時間Tm’を求める。計算時間Tm’は、対応計算時間の一例である。
ここで、固定率取得部116、相関関係補正部117、及び計算時間取得部118は、換算部を構築する。換算部は、生産段階の途中でいずれかのマウンタラインで障害が発生した場合に、固定率Nmを未生産のロットについて換算した固定率Nm’と、固定率Nm’に対応する計算時間Tm’を求める。
生産順序決定部119は、整数計画問題生成部38及び整数計画問題ソルバ部40と協働してロットの生産順序を決定する。生産順序決定部119は、整数計画問題生成部38及び整数計画問題ソルバ部40とともに決定部を構築する。
生産順序決定部119は、計算時間Tm’が障害発生時に未生産のロットについての生産計画の再計算に許容される許容時間Ta以下である場合に、未生産のロットについての固定率Nを固定率Nm’に設定して、未生産のロットについての生産順序を決定する。
また、生産順序決定部119は、計算時間Tm’が障害発生時に未生産のロットについての生産計画の再計算に許容される許容時間Ta以下ではない場合に、未生産のロットについての固定率Nを固定率取得部120によって求められる固定率NMに設定して、未生産のロットの生産順序を決定する。
固定率取得部120は、第3固定率取得部の一例であり、計算時間Tm’が障害発生時に未生産のロットについての生産計画の再計算に許容される許容時間Ta以下ではない場合に、相関関係補正部117によって補正された相関関係において許容時間Taに対応する固定率NMを求める。
メモリ121は、サーバ10が実行する情報処理プログラムの他に、情報処理プログラムを実行する際に必要なデータ、及び、実行に伴って生じるデータ等を格納する。このようなデータには、生産計画情報DB52、生産状況情報DB54、ロットの組み合わせと時間差ΔDSijと順位を示すデータ(図9参照)、固定率Nと計算時間との相関関係を表すデータ(図12参照)、補正後の相関関係を表すデータ(図13参照)、固定率Nm、Nm’、NM、計算時間Tm、Tm’、及び許容時間Ta等のデータが含まれる。
図13は、相関関係補正部117によって補正された相関関係(補正後の相関関係)を示す図である。補正後の相関関係の縦軸の計算時間は、図12に示す相関関係の計算時間に比Rを乗じた値である。比Rは1未満の値であるため、補正後の相関関係の特性は、図12に示す相関関係の特性に比べて縦軸の値が小さくなっている。
固定率Nm’は、固定率Nmに比Rを乗じた値であるため、固定率Nmよりも小さい値である。計算時間Tm’は、補正後の相関関係において固定率Nm’に対応する計算時間である。
許容時間Taが計算時間Tm’未満である場合には、図13に示すように補正後の相関関係において許容時間Taに対応する固定率NMは、固定率Nm’よりも大きな値になる。すなわち、許容時間Taが計算時間Tm’未満である場合には、より大きな固定率NMが選択されて、障害発生後に生産順序を変更するロットの組み合わせの数が減らされることで、計算時間が短くされる。
次にサーバ10の処理について説明する。
図14は、固定率Nと計算時間の相関関係を求める処理を表すフローチャートを示す図である。図14に示す処理は、相関関係取得部112によって実行される。また、図14には、フローチャートとともに生産計画情報DB52と、時間差順位DB55と、固定率Nの増加率Z及び許容時間Taを表すデータとを示す。
相関関係取得部112は、h=0、N0=100%に設定する(ステップS1)。hは、図14に示す処理で用いるインデックスであり、後述するステップS4~S9を繰り返して固定率h、生産終了時刻Fh、及び計算時間Thを計算した回数を表す。固定率N0は、固定率Nの初期値であり、100%に設定される。
相関関係取得部112は、すべてのxijを求める(ステップS2)。xijは、互いに異なる2つのマウンタラインにそれぞれ複数のロットがある場合に、一方のマウンタラインのi番目のロットと、他方のマウンタラインのj番目のロットとの組み合わせにおいて、i番目のロットとj番目のロットとの順番の先後によって値が変動する変数である。順番の先後とは、i番目のロットとj番目のロットとを生産する順番がどちらが先でどちらが後であるかを表す。xijの値は、i番目のロットを生産する順番がj番目のロットを生産する順番よりも先の時に0に設定され、逆のときに1に設定される。
ステップS2では、相関関係取得部112は、当初の生産計画に含まれるすべてのロットについて、互いにマウンタラインが異なる2つのロットの組み合わせをすべて求める。
相関関係取得部112は、固定率N0の場合における、当初の生産計画に含まれるすべてのロットの生産が終了する生産終了時刻F0と、すべてのロットを生産する生産計画を計算するのに要する計算時間T0とを取得する(ステップS3)。
生産終了時刻F0と計算時間T0との計算は、整数計画問題ソルバ部40が行うが、詳細は後述する。ステップS3では、相関関係取得部112は、整数計画問題ソルバ部40によって計算される生産終了時刻F0と計算時間T0とを取得する。
相関関係取得部112は、hの値をインクリメント(h=h+1)する(ステップS4)。
相関関係取得部112は、値hと固定率Nの増加率Zとを用いて、固定値Nhを次式で得られる値に設定する(ステップS5)。この処理により、固定値Nhは増加率Zずつ増大する。
Nh=100(1-hZ)
なお、増加率Zの値は、サーバ10の利用者が任意に設定することができる。例えば、Zは0.05(5%)である。
相関関係取得部112は、固定率Nhの場合に、時間差順位DB55に格納されているロットのすべての組み合わせのうち、上位Nh%のロットの組み合わせを抽出する(ステップS6)。上位Nh%のロットの組み合わせは、生産順序が当初の生産計画に含まれる生産順序に固定される組み合わせである。
相関関係取得部112は、ステップS6で抽出したロットの組み合わせの各々について、変数xijの値を0又は1に設定する(ステップS7)。ステップS6で抽出したロットの組み合わせの生産順序は、当初の生産計画に含まれる生産順序の通りであるため、変数xijの値を0又は1に設定することができる。
相関関係取得部112は、固定率Nhの場合における、当初の生産計画に含まれるすべてのロットの生産が終了する生産終了時刻Fhと、すべてのロットを生産する生産計画を計算するのに要する計算時間Thとを取得する(ステップS8)。ステップS8の処置により、固定率Nh、生産終了時刻Fh、及び計算時間Thの組み合わせが取得される。
生産終了時刻Fhと計算時間Thとの計算は、整数計画問題ソルバ部40が行うが、詳細は後述する。ステップS8では、相関関係取得部112は、整数計画問題ソルバ部40によって計算される生産終了時刻Fhと計算時間Thとを取得する。
相関関係取得部112は、生産終了時刻Fhが前回の処理で取得した生産終了時刻Fh-1と等しいかどうかを判定する(ステップS9)。生産終了時刻Fhと生産終了時刻Fh-1が等しければ、生産終了時刻の最適解(Fh-1)が得られているからである。
相関関係取得部112は、生産終了時刻Fhが生産終了時刻Fh-1と等しくない(S9:NO)と判定すると、フローをステップS4にリターンする。生産終了時刻の最適解が得られるまで、ステップS4~S9の処理を繰り返し行うためである。
相関関係取得部112は、ステップS9において、生産終了時刻Fhが生産終了時刻Fh-1と等しい(S9:YES)と判定すると、生産終了時刻Fh-1が得られたときの固定値Nh-1と計算時間Th-1をそれぞれ固定値Nmと計算時間Tmに設定する(ステップS10)。相関関係取得部112は、固定値Nmをメモリ121に格納する。また、相関関係取得部112によって設定される計算時間Tmは、計算時間取得部115が取得し、メモリ121に格納される。
相関関係取得部112は、固定値Nと計算時間の相関関係を表すデータを作成する(ステップS11)。ステップS11では、相関関係取得部112は、ステップS4~S9を繰り返し行うことで取得した複数の固定値Nhと計算時間Thを格納したテーブル形式のデータを作成することで、固定値Nと計算時間の相関関係を表すデータを作成する。
このように、ステップS4~S9を繰り返し行うと、図12における相関関係の特性のうち、固定率NがNm以上の区間の特性が求められる。このように固定率Nm以上の区間に基づいて補正後の相関関係の特性(図13参照)を求めても、固定率Nm’は固定率Nmよりも大きく、固定率Nm以上の区間を利用することになるので問題ない。また、固定率NがNm以上の区間の特性を求める場合には、計算量が少なくて済むので、計算時間が短くて済むという利点がある。
なお、図12に示すように、固定率NがNm未満の区間についても相関関係を求める場合には、ステップS10で固定率Nmと計算時間Tmが求められた後においてもステップS4~S9の処理を繰り返し行うようにすればよい。
図15は、サーバ10が実行する処理を表すフローチャートを示す図である。
処理がスタートすると、相関関係取得部112は、固定値Nと計算時間の相関関係を表すデータを作成する(ステップS20)。ステップS20の処理は、図14に示すステップS1~S11の処理である。
主制御部34は、所定秒数(例えば10秒)待機する(ステップS21)。
主制御部34は、トリガ条件が成立したかどうかを判定する(ステップS22)。ここで、主制御部34は、以下の条件(1)、(2)のいずれかが成立した場合にトリガ条件が成立したと判定する。
(1)前回のトリガ条件が成立してから一定時間(例えば30分)が経過したとき
(2)段取りの重複作業が生じたとき
ここで、段取りの重複作業とは、複数の段取りを行う時間帯が重複したことをいう。段取りの重複作業が生じると生産ライン70が検知し、サーバ10に通報する。このため、サーバ10は、段取りの重複作業が生じたことを検知できる。
なお、ライン生産終了時刻の推定値は、後述するステップS22の判定が肯定される度に、ライン生産終了時刻推定部36によって推定される。具体的には、ライン生産終了時刻推定部36は、各時点において各マウンタラインのボトルネック工程で生産しているロットを特定し、現在のロットの生産が完了するまでの時間を同一ロットの生産履歴に基づいて推定する。また、ライン生産終了時刻推定部36は、以降に生産するロットの生産が完了するまでの時間を、生産計画情報や同種のロットの生産履歴に基づいて推定する。そして、ライン生産終了時刻推定部36は、推定した各ロットの生産が完了するまでの時間を合算して得られた時間を現在の時刻に加算することで、各マウンタラインのライン生産終了時刻を推定する。なお、ライン生産終了時刻の推定値は、図16に示すようなテーブル(内部テーブル)において、管理されているものとする。図16のテーブルには、「マウンタライン」と「前回トリガ条件成立時のライン生産終了時刻推定値」のテーブルが用意されている。
次いで、主制御部34は、整数計画問題生成部38及び整数計画問題ソルバ部40が最適化プロセスを実行中であるかどうかを判定する(ステップS23)。なお、最適化プロセスは、図17のフローチャートで表される処理である。ステップS23の判定が肯定される場合には、ステップS24に移行する。
主制御部34は、最適化プロセスを実行中である(S23:YES)と判定すると、整数計画問題生成部38及び整数計画問題ソルバ部40に最適化プロセスを中断させる(ステップS24)。主制御部34は、ステップS24の処理を終えると、フローをステップS25に移行する。
また、主制御部34は、整数計画問題生成部38及び整数計画問題ソルバ部40が最適化プロセスを実行中ではない(S23:NO)と判定すると、フローをステップS25に移行する。
ステップS25では、補正後の相関関係、固定値Nm’、計算時間Tm’が求められる(ステップS25)。ステップS25の処理は、固定率取得部116、相関関係補正部117、及び計算時間取得部118によって構築される換算部によって行われる。
具体的には、固定率取得部116は、比Rを固定率Nmに乗算して固定率Nm’を求める。比Rは、当初の生産計画に含まれるすべてのロットの組み合わせの数に対する、障害発生時における未生産のロットの組み合わせの数の比である。
また、相関関係補正部117は、相関関係取得部112によって取得される相関関係(図12参照)に比Rを乗じて補正し、補正後の相関関係を取得する。この処理は、図13を用いて説明した通り、比Rを用いてステップS20で生成された相関関係を補正する処理である。
また、計算時間取得部118は、相関関係補正部117によって補正された相関関係において、固定率Nm’に対応する計算時間Tm’を求める。
次に、主制御部34は、いずれかのマウンタラインで障害が発生したかどうかを判定する(ステップS26)。障害は、例えば、段取りの重複作業が発生したこと、又は、突発的な装置の停止等であり、このような障害が発生すると、主制御部34は、生産ライン70から通報を受ける。通報には、どのマウンタラインでどのような障害が発生したかを表すデータが含まれるため、主制御部34は、いずれかのマウンタラインで障害が発生したかどうかを判定することができる。
主制御部34は、障害が発生したと判定するまでステップS26の処理を繰り返し実行する。
主制御部34によって障害が発生した(S26:YES)と判定されると、生産順序決定部119は、計算時間Tm’が許容時間Ta以下であるかどうかを判定する(ステップS27)。許容時間Taは、生産ライン70から主制御部34が入手すればよい。
生産順序決定部119は、計算時間Tm’が許容時間Ta以下である(S27:YES)と判定すると、未生産のロットについての固定率Nを固定率Nm’に設定する(ステップS28A)。
また、生産順序決定部119は、計算時間Tm’が許容時間Ta以下ではない(S27:NO)と判定すると、固定率取得部120に補正後の相関関係において許容時間Taに対応する固定率NMを取得させ、未生産のロットについての固定率Nを取得された固定率NMに設定する(ステップS28B)。
ステップS28A又はS28Bの処理が終了すると、生産順序決定部119は、整数計画問題生成部38及び整数計画問題ソルバ部40と協働して、最適化プロセスを開始する(ステップS29)。最適化プロセスについては、図17のフローチャートを用いて説明する。主制御部34は、ステップS29の最適化プロセスが終わると、フローをステップS21にリターンさせて、上述した処理を繰り返し実行する。
次に、図17の処理(最適化プロセス)について説明する。図17の処理は、最適な段取り作業の順番を決定する処理である。ここでは一例として、図15に示す処理ではステップS28Aにおいて固定値Nm’に設定されたものとして説明するが、S28Bにおいて固定値NMに設定された場合には、以下の図17に関する説明における固定値Nm’を固定値NMに入れ替えればよい。
また、ここでは、整数計画問題生成部38及び整数計画問題ソルバ部40を実行主体として説明するが、図17に示す処理は、生産順序決定部119が整数計画問題生成部38及び整数計画問題ソルバ部40と協働して行うものである。
図17の処理では、まず、整数計画問題生成部38が、生産計画情報収集部30及び主制御部34を介して、生産計画情報DB52から現時点で未だ段取り作業が行われていないロットの生産計画情報を取得する(ステップS30)。
次いで、主制御部34は、固定値Nm’を用いて、時間差順位DB55に含まれるすべてのロットの組み合わせから、下位(100-Nm’)%のロットの組み合わせを抽出する(ステップS31)。
時間差順位DB55に含まれるすべてのロットの組み合わせから、下位(100-Nm’)%のロットの組み合わせを抽出することは、時間差順位DB55に含まれるすべてのロットの組み合わせから、上位Nm’%のロットの組み合わせ以外のロットの組み合わせを抽出することである。すなわち、時間差順位DB55に含まれるすべてのロットの組み合わせから、時間差ΔDSijが短い下位(100-Nm’)%のロットの組み合わせが抽出される。
次いで、整数計画問題ソルバ部40は、ステップS31で抽出したロットの組み合わせについて、整数計画問題を解く(ステップS32)。
ここで、ステップS32における整数計画問題ソルバ部40の処理の前提として、整数計画問題生成部38は、整数計画問題として、以下に示すような変数、制約、目的関数を定めている。なお、ロットi(=1、2、…、N)は、ステップS32が行われる時点で段取りが開始されていないロットを表しており、段取りが既に始まっているロットや段取りが既に終わっているロットは含まない。
ここで用いる変数、制約、目的関数は以下の通りである。
(変数)
ここでは、xij以外の変数についてはiの分のみを示すが、jの分についても同様に存在する。
xij(i=1,…,N、j=1,…,N、i≠j)
dsi:i番目ロットの段取り開始時刻
dei:i番目ロットの段取り終了時刻
msi:i番目ロットの生産開始時刻
mei:i番目ロットの生産終了時刻
Di:i番目ロットの段取り時間
Mi:i番目ロットの生産時間
Si:i番目ロットの仮の段取り開始時刻(詳細は後述する)
Li:i番目のロットと同じマウンタラインで順番が1つ前のロット
(制約)
∀i msi=dei:ロットの段取り終了時刻と生産開始時刻の関係
∀i dei=dsi+Di:ロットの段取り開始時刻と段取り終了時刻の関係
∀i mei=msi+Mi:ロットの生産開始時刻と生産終了時刻の関係
∀i meLi≦dsi:1つ前のロットの生産終了時刻と段取り開始時刻の関係
マウンタラインが異なり、i<jとなるすべてのロットi,jの組み合わせについて、
dsi≧dei-U×(1-xij)、dsj≧dei-U×xij
:すべてのロットの段取り時間帯(dsi~dei)が重ならないという制約
ただし、Uは段取り時間と生産時間の合計と比較して十分大きな数
U≧Σi(Di+Mi)
∀i msi≧Si:仮の段取り時刻Sと段取り開始時刻の関係
(目的関数)
∀i f≧mei 最小化
ここで、上記変数に含まれている、マウンタラインαに属するロットiの仮の段取り開始時刻Siの計算方法について、図18のフローチャートに沿って説明する。なお、図18の処理は、整数計画問題生成部38が整数計画問題を生成するたびに実行する処理である。ここで、仮の段取り開始時刻Siとは、ロットiの段取り作業を開始できる最も早い時刻(段取り待ち時間を0とした場合の時刻)を意味する。
図18の処理では、まず、ステップS50において、整数計画問題生成部38は、生産状況情報DB54(図6)に条件1を満たすロットがあるかどうかを判定する。ここで、条件1とは、「マウンタラインαに属し、段取り開始時刻が記録されており、かつ段取り終了時刻が記録されていないロット」という条件である。このステップS50の判定が肯定された場合には、ステップS52に移行し、整数計画問題生成部38は、条件を満たすロットをロットkとする。
次いで、ステップS54では、整数計画問題生成部38は、ロットkの生産終了時刻Ekを次式(1)に基づいて計算する。
Ek=ロットkの段取り開始時刻+ロットkの段取り時間+ロットkの生産時間…(1)
なお、ロットkの段取り開始時刻は、生産状況情報DB54から取得でき、ロットkの段取り時間、ロットkの生産時間は、生産計画情報DB52から取得できる。
ステップS54の処理が終了した後は、ステップS68に移行する。
一方、ステップS50の判定が否定された場合には、ステップS56に移行し、整数計画問題生成部38は、生産状況情報DB54に条件2を満たすロットがあるかどうかを判定する。ここで、条件2とは、「マウンタラインαに属し、段取り終了時刻又は生産開始時刻のいずれか一方が記録されており、かつ生産終了時刻が記録されていないロット」という条件である。このステップS56の判定が肯定された場合には、ステップS58に移行し、整数計画問題生成部38は、条件を満たすロットをロットkとする。そして、ステップS60では、整数計画問題生成部38は、ロットkの生産終了時刻Ekを次式(2)に基づいて計算する。
Ek=ロットkの生産開始時刻+ロットkの生産時間 …(2)
なお、ロットkの生産開始時刻は、生産状況情報DB54から取得でき、ロットkの生産時間は、生産計画情報DB52から取得できる。
ステップS60の処理が終了した後は、ステップS68に移行する。
一方、ステップS56の判定が否定された場合には、ステップS62に移行し、整数計画問題生成部38は、生産状況情報DB54に条件3を満たすロットがあるかどうかを判定する。ここで、条件3とは、「マウンタラインαに属し、記録された生産終了時刻が最も遅いロット」という条件である。このステップS62の判定が肯定された場合には、ステップS64に移行し、整数計画問題生成部38は、条件を満たすロットをロットkとする。そして、ステップS66では、整数計画問題生成部38は、ロットkの生産終了時刻Ekを次式(3)とする。
Ek=ロットkの生産終了時刻 …(3)
なお、ロットkの生産終了時刻は、生産状況情報DB54から取得できる。
ステップS66の処理が終了した後は、ステップS68に移行する。一方、ステップS62の判定が否定された場合には、図18の全処理を終了する。
ステップS68に移行すると、整数計画問題生成部38は、マウンタラインαでロットkの次のロット(ロットi)があるかどうかを判定する。このステップS68の判定が否定された場合には、図18の全処理を終了するが、肯定された場合には、ステップS70に移行する。
ステップS70に移行すると、整数計画問題生成部38は、ロットiの仮の段取り時刻Siを次式(4)のように定義する。
Si=Ek…(4)
次いで、ステップS72では、整数計画問題生成部38は、ロットiのEiを次式(5)に基づいて計算する。
Ei=Si+ロットiの段取り時間+ロットiの生産時間 …(5)
なお、ロットiの段取り時間、ロットiの生産時間は、生産計画情報DB52から取得できる。
次いで、ステップS74では、整数計画問題生成部38は、ロットkをロットiで置き換え、Ekの値をEiで置き換える。ステップS74の後は、ステップS68に戻り、マウンタラインαでロットkの次のロットがなくなるまでステップS68~S74の処理・判定を繰り返し実行する。これにより、マウンタラインαで行う必要のある段取り作業の仮の段取り作業時刻Siをすべて算出することが可能となっている。
なお、図18の処理は、すべてのマウンタラインに対して実行される。
また、整数計画問題生成部38は、整数計画問題ソルバ部40が整数計画問題を解く際に、組み合わせ爆発が生じないようにするため、図18の処理により算出した仮の段取り開始時刻を用いて、変数xijの少なくとも一部を固定値(「0」又は「1」)とする。なお、xijは、上述したように、異なるマウンタラインのi番目のロットとj番目のロットの順番を表す変数である。以下、変数xijの一部を固定値にする方法について説明する。
整数計画問題生成部38は、異なるマウンタラインのロットiとロットjの間でSiとSjの差ΔDSijが大きい順にロットiとロットjの段取り順序関係をロットi、ロットjの順に固定する。この場合、整数計画問題の変数xijを0に固定する。
実施の形態では、時間差順位DB55に含まれるすべてのロットの組み合わせから、上位Nm’%のロットの組み合わせの生産順序を当初の生産計画に含まれる生産順序に固定することで、生産順序を変更するロットの組み合わせの数を少なくできる。また、これにより、新たな生産順序を計画するために探索する組み合わせの数を減らすことができるので、組み合わせ爆発の発生を抑制することができる。
以上のような組み合わせ爆発対策の下、整数計画問題ソルバ部40が、図17のステップS32において、上述した変数、制約の下、目的関数をGLPK等を用いて解く。これにより、段取り作業の順番の最適化結果を少ない処理量で求めることができる。
図17に戻り、ステップS34では、整数計画問題ソルバ部40は、最適化結果を内部メモリに登録する。この場合、一例として、図19に示すような段取り作業の順番の最適化結果が内部メモリに登録されることになる。なお、図19の最適化結果には、段取り作業の順番を示す「作業順序」と、「マウンタライン」及び「ロット」の情報と、「段取り開始予定時刻」及び「段取り終了予定時刻」の情報が格納される。
図19に示す最適化結果は、上述したステップS26で障害が発生した時点における未生産のロットの組み合わせに対して、固定率Nm’の条件下で生産順序が固定されないロットの組み合わせの生産順序を変更し、すべてのロットの生産が終了する生産終了時刻が最も早くなるように最適化した結果である。
すなわち、最適化結果は、障害発生時点における未生産のロットの組み合わせのうち、生産順序が固定されないロットの組み合わせについて、すべてのロットの生産が終了する生産終了時刻が最も早くなるようにするために最適化された生産順序を含む。
整数計画問題ソルバ部40は、ステップS34の処理を終えると一連の処理を終了する。
なお、図17の処理は、前述のように、図15のトリガ条件が成立した段階で一旦中断される。そして、トリガ条件成立後においては、段取り作業の順番を格納する内部メモリをリセットした後、ステップS30から処理を再開する。この場合、ステップS30では、整数計画問題生成部38がトリガ条件成立後のタイミングで未だ段取り作業が行われていないロットの生産計画情報を生産計画情報DB52から新たに取得する。そして、整数計画問題生成部38は、新たに取得した生産計画情報に基づいて整数計画問題を定式化し、段取り作業の順番を決定する処理を実行する。
また、上述のように最適化結果を求めるための計算は、図14におけるステップS3において固定率N0(100%)の状態で同様に行われ、ステップS8において固定率Nkの状態で行われる。
段取り作業を行う作業者は、必要に応じて(例えば段取り作業を行う必要が生じた段階で)、内部メモリに格納された図19の情報を作業者用端末60において呼び出すことができる。これにより、作業者は、最新の最適化された段取り作業順序にしたがって、段取り作業を行うことが可能となる。
なお、本実施の形態では、整数計画問題生成部38と、整数計画問題ソルバ部40とを含んで、生産計画情報と、予め定めた制約と、に基づいて、段取り作業の実行順序の最適化の問題を整数計画問題として定式化し、整数計画問題ソルバを用いて各ロットの段取り作業の実行順序を決定する決定部としての機能が実現されている。
以上、詳細に説明したように、本実施の形態によると、整数計画問題生成部38は、生産計画情報DB52から未だ段取り作業が行われていないロットの生産計画情報を取得し(S30)、取得した生産計画情報と、予め定めた制約と、に基づいて、段取り作業の実行順序の最適化の問題を整数計画問題として定式化する(S32)。そして、整数計画問題ソルバ部40は、整数計画問題ソルバ(GLPK等)を用いて各ロットの段取り作業の実行順序を決定する(S32)。
この場合、整数計画問題生成部38は、生産計画情報に基づいて、各マウンタラインにおいて各ロットの仮の段取り作業開始時刻Siを算出し(図18)、異なるマウンタラインに属するロットiのSiとロットjのSjとの差が大きい方から固定率に従ってロットiとロットjの段取り順序関係を順番に固定する。これにより、本実施の形態では、未だ段取り作業が行われていないロットの生産計画情報に基づいて整数計画問題を定式化し、整数計画問題ソルバを用いて整数計画問題を解くことにより、適切な段取り作業の実行順序を決定することができる。整数計画問題を解く際の変数の数が減り、組み合わせ爆発が生じるのを抑制することができる。
また、固定率Nと生産作業時間との関係から生産作業時間の最適解が得られるときの固定率Nmを求め、固定率Nmに対応する計算時間Tmを求め、固定率Nと計算時間の相関関係を障害発生時の未生産のロットの数に対応するように補正するとともに固定率Nmを固定率Nm’に補正する。そして、補正後の相関関係で固定率Nm’に相当する計算時間Tm’が許容時間かどうかで、未生産のロットの組み合わせについての固定率Nを固定率Nm’又は許容時間に対応する固定率NMのいずれかに決定する。
したがって、制限時間内に生産順序を再計算できるサーバ10(情報処理装置)、及び、情報処理プログラムを提供することができる。
また、本実施の形態では、所定時間ごと又は各マウンタラインの生産が生産計画から所定以上乖離するごとに、整数計画問題生成部38は、未だ段取り作業が行われていないロットの生産計画情報を生産計画情報DB52から取得する(S30)。また、整数計画問題ソルバ部40は、各ロットの段取り作業の実行順序を格納する内部メモリをリセットして、各ロットの段取り作業の実行順序を決定する。これにより、マウンタラインの生産状況に応じて、段取り作業の実行順序を適切に決定することができる。
なお、上記実施の形態では、作業者が段取り作業の順番の表示を要求した際に、作業順序表示部46が作業者用端末60に送信し、表示する場合について説明したが、これに限られるものではない。例えば、作業順序表示部46は、随時、最新の段取り作業の順番を作業者用端末60に送信し、表示するようにしてもよい。
なお、サーバ10は、上記実施の形態(図1)のように、生産ライン70を所有する会社等で管理されるオンプレミスの形態であってもよいし、図20に示す生産システム200のようにクラウドサーバの形態であってもよい。図20のクラウドサーバ110は、工場150内の生産ライン70からネットワーク180を介して送信されてくるデータを取得して、処理し、処理結果を作業者用端末60に提供する。なお、クラウドサーバ110と、工場150の所在国は異なっていてもよい。
なお、上記の処理機能は、コンピュータによって実現することができる。その場合、処理装置が有すべき機能の処理内容を記述したプログラムが提供される。そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体(ただし、搬送波は除く)に記録しておくことができる。
プログラムを流通させる場合には、例えば、そのプログラムが記録されたDVD(Digital Versatile Disc)、CD-ROM(Compact Disc Read Only Memory)などの可搬型記録媒体の形態で販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
プログラムを実行するコンピュータは、例えば、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。また、コンピュータは、サーバコンピュータからプログラムが転送されるごとに、逐次、受け取ったプログラムに従った処理を実行することもできる。
以上、本発明の例示的な実施の形態の情報処理装置、及び、情報処理プログラムについて説明したが、本発明は、具体的に開示された実施の形態に限定されるものではなく、特許請求の範囲から逸脱することなく、種々の変形や変更が可能である。
以上の実施の形態に関し、さらに以下の付記を開示する。
(付記1)
複数の製品を複数のラインで生産する第1生産順序及び生産作業開始時刻を含む第1生産計画から、互いに異なるラインで生産される2つの製品の組み合わせと、前記組み合わせの2つの製品の生産作業開始時刻の時間差とを計算する時間差計算部と、
すべての前記組み合わせのうち前記時間差が長い方から生産順序が前記第1生産順序に固定される組み合わせの割合を表す固定率に対する、生産順序が前記第1生産順序に固定される組み合わせの製品と、生産順序が前記第1生産順序から第2生産順序に変更される製品とを生産する第2生産計画を計算する計算時間の相関関係を求める相関関係取得部と、
前記固定率の変化に対する、前記第1生産順序で生産される製品と、前記第2生産順序で生産される製品とを生産する生産作業時間の関係から、当該生産作業時間が所定時間以下になる第1の固定率を求める第1固定率取得部と、
生産段階の途中でいずれかの前記ラインで障害が発生した場合に、前記第1の固定率を未生産の製品について換算した第2の固定率と、前記第2の固定率に対応する対応計算時間とを求める換算部と、
前記対応計算時間が未生産の製品についての生産計画の再計算に許容される許容時間以下である場合に、前記未生産の製品についての固定率を前記第2の固定率に設定して、前記未生産の製品の生産順序を決定する、決定部と
を含む、情報処理装置。
(付記2)
前記対応計算時間が前記許容時間以下ではない場合に、前記固定率に対する前記計算時間の関係に基づいて、前記許容時間に対応する第3の固定率を求める第3固定率取得部をさらに含み、
前記決定部は、前記第3固定率取得部によって前記第3の固定率が求められると、前記未生産の製品について固定率を前記第3の固定率に設定して、前記未生産の製品の生産順序を決定する、付記1記載の情報処理装置。
(付記3)
前記換算部は、
前記相関関係をすべての製品の数に対する前記未生産の製品の数の比で補正する相関関係補正部と、
前記すべての製品の数に対する前記未生産の製品の数の比を前記第1の固定率に乗算して前記第2の固定率を求める第2固定率取得部と、
前記補正された相関関係において前記第2の固定率に対応する前記対応計算時間を求める対応計算時間取得部と
を有する、付記1又は2記載の情報処理装置。
(付記4)
前記所定時間は、前記固定率を100%から低下させた場合に、生産作業時間が一定値になる時間である、付記1乃至3のいずれか一項記載の情報処理装置。
(付記5)
前記情報処理装置は、前記複数のラインの各々で生産する製品の種類を切り替える際に切り替え後の製品を生産するための段取り作業を必要とするシステムにおける段取り作業を支援する情報処理装置であって、
各製品の段取り時間、各製品の生産時間、各ラインにおける製品の生産順序の情報を含む生産計画情報のうち、未だ段取り作業が行われていない製品の生産計画情報を記憶部から取得する取得部をさらに含み、
前記製品の生産は、前記段取り作業の後に続けて行われる作業であり、
前記決定部は、取得した前記生産計画情報と、予め定めた制約と、前記第2の固定率とに基づいて、段取り作業の実行順の最適化の問題を整数計画問題として定式化し、整数計画問題ソルバを用いて各製品の段取り作業の実行順を決定する決定部であり、
前記決定部は、前記生産計画情報に基づいて、各ラインにおいて各製品の段取り作業を開始できる最も早い時刻を算出し、第1のラインで生産される第1の製品の段取り作業を開始できる最も早い時刻と、第2のラインで生産される第2の製品の段取り作業を開始できる最も早い時刻との差が所定の閾値以上であった場合に、前記第1の製品の段取り作業を前記第2の製品の段取り作業よりも前に実行すると決定した上で、前記整数計画問題ソルバを用いて各製品の段取り作業の実行順を決定することにより、前記未生産の製品の生産順序を決定する、付記1乃至4のいずれか一項記載の情報処理装置。
(付記6)
所定時間ごと又は前記段取りの重複作業が生じる度に、
前記取得部は、未だ段取り作業が行われていない製品の生産計画情報を前記記憶部から取得し、
前記決定部は、前記各製品の段取り作業の実行順をリセットして、前記各製品の段取り作業の実行順を決定する処理を再開することを特徴とする付記5記載の情報処理装置。
(付記7)
複数の製品を複数のラインで生産する第1生産順序及び生産作業開始時刻を含む第1生産計画から、互いに異なるラインで生産される2つの製品の組み合わせと、前記組み合わせの2つの製品の生産作業開始時刻の時間差とを計算することと、
すべての前記組み合わせのうち前記時間差が長い方から生産順序が前記第1生産順序に固定される組み合わせの割合を表す固定率に対する、生産順序が前記第1生産順序に固定される組み合わせの製品と、生産順序が前記第1生産順序から第2生産順序に変更される製品とを生産する第2生産計画を計算する計算時間の相関関係を求めることと、
前記固定率の変化に対する、前記第1生産順序で生産される製品と、前記第2生産順序で生産される製品とを生産する生産作業時間の関係から、当該生産作業時間が所定時間以下になる第1の固定率を求めることと、
前記第1の固定率に対応する第1の計算時間を求めることと、
生産段階の途中でいずれかの前記ラインで障害が発生した場合に、前記第1の固定率を未生産の製品について換算した第2の固定率と、前記第2の固定率に対応する対応計算時間を求めることと、
前記対応計算時間が未生産の製品についての生産計画の再計算に許容される許容時間以下である場合に、前記未生産の製品についての固定率を前記第2の固定率に設定して、前記未生産の製品の生産順序を決定することと、
を含む処理をコンピュータに実行させる、情報処理プログラム。