(57)【要約】  情報処理装置は、段取り作業と加工作業とを要する製品が投入される複数本のラインが備わりかつ当該複数本のラインにおいて段取り作業が重複して行われない加工ラインに対する製品の初期投入順序に対して、段取り作業を組み替える組替部と、前記組替部による組替後の、前記加工ラインの加工完了時間を算出する算出部と、前記算出部が算出した前記加工完了時間のうち、前記初期投入順序の加工完了時間よりも短い加工完了時間に係る段取り作業の順序を計画データとして生成する生成部と、を備える。
2020136875.tif 000002
【特許請求の範囲】
【請求項１】
段取り作業と加工作業とを要する製品が投入される複数本のラインが備わりかつ当該複数本のラインにおいて段取り作業が重複して行われない加工ラインに対する製品の初期投入順序に対して、段取り作業を組み替える組替部と、
前記組替部による組替後の、前記加工ラインの加工完了時間を算出する算出部と、
前記算出部が算出した前記加工完了時間のうち、前記初期投入順序の加工完了時間よりも短い加工完了時間に係る段取り作業の順序を計画データとして生成する生成部と、を備えることを特徴とする情報処理装置。
【請求項２】
前記組替部は、前記初期投入順序から近接する段取り作業を組み替え候補として抽出して組み替えることを特徴とする請求項１記載の情報処理装置。
【請求項３】
前記生成部が生成した前記計画データを表示する表示装置を備えることを特徴とする請求項１または２に記載の情報処理装置。
【請求項４】
前記生成部が生成した前記計画データに従って、前記加工ラインに前記製品を投入する投入装置を備えることを特徴とする請求項１〜３のいずれか一項に記載の情報処理装置。
【請求項５】
前記算出部は、前記加工ラインにおける各製品の段取り作業時間および加工作業時間を再現するラインシミュレータであることを特徴とする請求項１〜４のいずれか一項に記載の情報処理装置。
【請求項６】
前記ラインシミュレータは、段取り作業を行うための作業員を巡回させ、段取り作業中は前記作業員が移動できないものとし、かつ加工装置および段取り作業を表すブロックの前に前記加工装置の進行を判定するブロックを配置することによって、段取り作業を再現することを特徴とする請求項５記載の情報処理装置。
【請求項７】
前記ラインシミュレータは、一人の作業者が前記複数本のラインの段取り作業を行うと仮定し、前記複数本のラインの分岐箇所に段取り作業判定ブロックを配置し、段取り作業の作業順番を投入順番で表現することを特徴とする請求項５または６に記載の情報処理装置。
【請求項８】
段取り作業と加工作業とを要する製品が投入される複数本のラインが備わりかつ当該複数本のラインにおいて段取り作業が重複して行われない加工ラインに対する製品の初期投入順序に対して、段取り作業を組み替える処理と、
前記組み替え候補の組替後の、前記加工ラインの加工完了時間を算出する処理と、
算出された前記加工完了時間のうち、前記初期投入順序の加工完了時間よりも短い加工完了時間に係る段取り作業の順序を計画データとして生成する処理と、をコンピュータ実行することを特徴とする段取り作業修正方法。
【請求項９】
コンピュータに、
段取り作業と加工作業とを要する製品が投入される複数本のラインが備わりかつ当該複数本のラインにおいて段取り作業が重複して行われない加工ラインに対する製品の初期投入順序に対して、段取り作業を組み替える処理と、
前記組み替え候補の組替後の、前記加工ラインの加工完了時間を算出する処理と、
算出された前記加工完了時間のうち、前記初期投入順序の加工完了時間よりも短い加工完了時間に係る段取り作業の順序を計画データとして生成する処理とを、実行させることを特徴とする段取り作業修正プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本件は、情報処理装置、段取り作業修正方法、および段取り作業修正プログラムに関する。
【背景技術】
【０００２】
複数本のラインを用いて製品を加工する際に、加工完了時間が短くなるように計画を作成することが望まれる（例えば、特許文献１参照）。多品種少量生産を行う場合には、製造物の種類が変わるたびに、段取りと称される設定変更が行われる（例えば、特許文献２，３参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００６−２８７０７５号公報
【特許文献２】特開２０１７−２１７６４号公報
【特許文献３】特開２０１５−６５３８２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
段取り作業の順番を工夫することで、加工完了時間を短くすることが望まれる。しかしながら、加工作業が完了したライン順に段取り作業を行うと、加工完了時間が長くなることがある。【０００５】
１つの側面では、本発明は、加工完了時間を短くすることができる情報処理装置、段取り作業修正方法、および段取り作業修正プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００６】
１つの態様では、情報処理装置は、段取り作業と加工作業とを要する製品が投入される複数本のラインが備わりかつ当該複数本のラインにおいて段取り作業が重複して行われない加工ラインに対する製品の初期投入順序に対して、段取り作業を組み替える組替部と、前記組替部による組替後の、前記加工ラインの加工完了時間を算出する算出部と、前記算出部が算出した前記加工完了時間のうち、前記初期投入順序の加工完了時間よりも短い加工完了時間に係る段取り作業の順序を計画データとして生成する生成部と、を備える。
【発明の効果】
【０００７】
加工完了時間を短くすることができる。
【図面の簡単な説明】
【０００８】
【図１】（ａ）〜（ｃ）は加工完了時間を例示する図である。
【図２】（ａ）および（ｂ）は実施例１に係る情報処理装置の全体構成を表す機能ブロック図であり、（ｃ）は情報処理装置のハードウェア構成を例示するブロック図である。
【図３】ラインシミュレータにおける段取り作業修正処理の概念図である。
【図４】（ａ）はラインシミュレータの基本レイアウトを例示する図であり、（ｂ）は１つのラインに２つの製品を投入した場合のガントチャートを例示する図であり、（ｃ）はラインシミュレータ上のレイアウトを例示する図であり、（ｄ）は段取り判定セルを用いて先と同様の２つの製品を投入した場合のガントチャートを例示する図である。
【図５】（ａ）は基本レイアウトを例示する図であり、（ｂ）は（ａ）で例示した各ラインに２つずつ製品を投入した際の結果を例示する図である。
【図６】レイアウトを例示する図である。
【図７】ラインシミュレータが実行するフローチャートを例示する図である。
【図８】（ａ）は製品情報格納部に格納されている製品情報を例示する図であり、（ｂ）は投入順序格納部に格納されている製品投入順序を例示する図であり、（ｃ）は作業員情報格納部に格納されている作業員情報を例示する図である。
【図９】作業員移動の処理を表すフローチャートである。
【図１０】（ａ）はコンベアセルの処理を表すフローチャートであり、（ｂ）は段取り判定セルの処理を表すフローチャートであり、（ｃ）は加工装置セルの処理を表すフローチャートである。
【図１１】段取りセルの処理を表すフローチャートである。
【図１２】データ入出力の概念を例示する図である。
【図１３】最適化エンジンが実行する段取り作業修正処理を表すフローチャートである。
【図１４】（ａ）は投入順序を変更する前の生産ライン毎のガントチャートと、時刻ｔ１における製品の位置を模式的に例示した図であり、（ｂ）は投入順序を変更した後の生産ライン毎のガントチャートと、時刻ｔ１における製品の位置を模式的に例示した図である。
【図１５】実施例１の概念図である。
【図１６】変形例において最適化エンジンが実行するフローチャートを例示する図である。
【図１７】変形例において最適化エンジンが実行するフローチャートを例示する図である。
【図１８】変形例の概念図である。
【発明を実施するための形態】
【０００９】
表面実装ラインや、各種加工を行う加工装置を用いて多品種少量生産を行う場合、一日のうちに製品の種類が何度も変わることになる。そのため、製品の種類が変更される毎に、表面実装ラインや加工装置の設定変更が行われることになる。このような設定変更を、「段取り」と称する。設定変更のための作業を、「段取り作業」と称する。段取り作業に要する時間を、「段取り作業時間」と称する。なお、「段取り」は、「段替え」と称されることもある。
【００１０】
段取り作業が行われている間は、表面実装ラインや加工装置による加工が停止する。段取り作業時間は、製品ごとに異なっている。そこで、段取り作業の順序を工夫すれば、全ての製品の加工を完了させるのに要する加工完了時間を短くすることができる。しかしながら、ある時点の段取り作業の実行順を工夫すると、以降の加工の進行状況に影響を与えるため、最適な段取り作業の実行順を決定するためには、後々の影響まで考慮した複雑な最適化問題を解くことが望まれる。
【００１１】
ここで、加工ラインに備わるライン１およびライン２に、それぞれ、加工作業時間および段取り作業時間が異なる製品を流す場合について検討する。例えば、図１（ａ）で例示するように、ライン１では、製品１の加工が行われ、製品１の加工作業が終了すると製品３の段取り作業が行われ、製品３の段取り作業が終了すると製品３の加工作業が行われる。ライン２では、製品２の加工作業が行われ、製品２の加工作業が終了すると製品４の段取り作業が行われ、製品４の段取り作業が終了すると製品４の加工作業が行われる。例えば、ライン１を担当する作業員に加えて、ライン２を担当する作業員が配置されている場合には、各作業員がそれぞれ自身のラインを担当できるため、図１（ａ）の加工計画が可能となる。
【００１２】
しかしながら、１人の作業員がライン１およびライン２の両方を担当する場合には、２つのラインの段取り作業を一度に行うことができない。したがって、２つのラインの段取り作業が発生する時間が重複する場合には、作業員は、２つのラインの段取り作業を順番に行うことになる。通常、図１（ｂ）で例示するように、作業員は、先に発生する段取り作業を行うことになる。しかしながら、各製品について、加工作業時間に長短のばらつきがあるため、加工完了時間が長くなってしまう場合がある。
【００１３】
例えば、図１（ｃ）で例示するように、製品４の段取り作業が製品３の段取り作業よりも後に発生するものの、製品４の段取り作業を製品３の段取り作業よりも先に行うことで、加工完了時間が短くなる場合がある。しかしながら、作業員に対して、どちらのラインの段取り作業を先に行うべきかが提示されないため、作業員はどちらのラインの段取り作業を行うべきか把握することが困難である。
【００１４】
そこで、段取り作業が重複した場合に製造計画と実績とのズレを考慮して、加工完了時間が最も短くなるように段取り作業の順序をリアルタイムに提示することが考えられる。しかしながら、製品の投入順序の入れ替えなどを考慮すると、演算時間を要することになる。加えて、この方法は段替え作業の効率化のみに特化した方法であり、この演算結果が他の工程に波及する影響などは別途考慮する必要がある。
【００１５】
そこで、別工程への波及効果などを考慮するために、ラインシミュレータを用いた加工計画立案によって作業計画を立案する方法も考えられる。しかしながら、この方法は投入計画立案のためのシステムであるため、段取り作業の重複回避案など投入計画で表現ができていない作業計画については最適化が実施されていない。
【００１６】
以下の実施例では、一例として、加工完了時間を短くすることが可能な情報処理装置、段取り作業修正方法および段取り作業修正プログラムについて説明する。
【実施例１】
【００１７】
図２（ａ）および図２（ｂ）は、実施例１に係る情報処理装置１００の全体構成を表す機能ブロック図である。図２（ａ）で例示するように、情報処理装置１００は、最適化エンジン１０、製品情報格納部２０、投入順序格納部３０、レイアウト格納部４０、作業員情報格納部５０、最適順序格納部６０、投入装置７０などを備える。図２（ｂ）で例示するように、最適化エンジン１０は、ラインシミュレータ１１、出力部１２、生成部１３、順序組替部１４などを備える。【００１８】
図２（ｃ）は、最適化エンジン１０、製品情報格納部２０、投入順序格納部３０、レイアウト格納部４０、作業員情報格納部５０、および最適順序格納部６０のハードウェア構成を例示するブロック図である。図２（ｃ）で例示するように、情報処理装置１００は、ＣＰＵ１０１、ＲＡＭ１０２、記憶装置１０３、表示装置１０４等を備える。【００１９】
ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）１０１は、中央演算処理装置である。ＣＰＵ１０１は、１以上のコアを含む。ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）１０２は、ＣＰＵ１０１が実行するプログラム、ＣＰＵ１０１が処理するデータなどを一時的に記憶する揮発性メモリである。記憶装置１０３は、不揮発性記憶装置である。記憶装置１０３として、例えば、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、フラッシュメモリなどのソリッド・ステート・ドライブ（ＳＳＤ）、ハードディスクドライブに駆動されるハードディスクなどを用いることができる。記憶装置１０３は、段取り作業修正プログラムを記憶している。表示装置１０４は、液晶ディスプレイ、エレクトロルミネッセンスパネルなどであり、段取り作業修正処理の結果などを表示する。なお、本実施例においては、最適化エンジン１０、製品情報格納部２０、投入順序格納部３０、レイアウト格納部４０、作業員情報格納部５０、および最適順序格納部６０は、プログラムの実行によって実現されているが、専用の回路などのハードウェアを用いてもよい。【００２０】
図３は、ラインシミュレータにおける段取り作業修正処理の概念図である。図３において、上段は初期投入順序に係る加工完了時間を例示し、下段は最適化後の投入順序に係る加工完了時間を例示する。図１（ｂ）の例では、製品３の段取り作業が製品４の段取り作業よりも先に行われるため、段取り作業順序が製品１、製品２、製品３、製品４の順となっている。これに対して、図１（ｃ）のように最適化されると、製品４の段取り作業が製品３の段取り作業よりも先に行われるため、段取り作業順序は製品１、製品２、製品４、製品３の順となる。段取り作業の順序が最適化されることで、初期投入順序に係る加工完了時間よりも加工完了時間が短くなるように、段取り作業順序が修正されることになる。【００２１】
まず、段取り作業をラインシミュレータ１１で表す方法を示す。例えば、ラインシミュレータ１１の基本動作は、非対称単純排除過程（ＡＳＥＰ：Asymmetric Simple Exclusion Process）を基としている。ＡＳＥＰは、単純に前が空いているときだけ進むことができる、という考えに基づく。しかしながら、製造現場においては製造現場固有のルールによって製品が移動するため、各位置でどのように製品が移動するかをセルと定義する命令ブロックにおいて次に製品がどのように移動すべきかを決定する。【００２２】
図４（ａ）は、ラインシミュレータ１１の基本レイアウトを例示する図である。ラインシミュレータ１１は、コンベアセルＡと名付けた部分に製品が存在する場合、移動先のセルに製品が無ければ製品を移動させる。この動作は、ＡＳＥＰの基本動作である。一方、ラインシミュレータ１１は、加工装置セルＢと名付けたセル位置に製品を移動させた場合、製品に固有のタイマーを動作させ、製品固有に設定された加工作業時間を超えるまで加工装置セルＢに製品を滞在させる。ラインシミュレータ１１は、製品のタイマーが加工作業時間を超えると、加工終了とみなし、滞在していた製品が加工装置から下流工程へと移動させる。【００２３】
ラインシミュレータ１１は、ライン内に存在する全製品の移動判定が終了したのち、ラインシミュレータのタイマーを進め、繰り返し動作を行う。投入すべき全製品がラインの終端に到達した際にタイマーがストップし、ラインシミュレータ１１は、そのタイマーの値を加工完了時間として出力する。【００２４】
本実施例においては、段取り作業を表すために、図４（ａ）で例示するように、加工装置セルＢの直前にダミー装置として段取りセルＣを配置する。段取りセルＣの基本動作は、加工装置セルＢと同様である。すなわち、ラインシミュレータ１１は、段取りセルＣに製品を移動させた場合、製品に固有のタイマーを動作させ、製品固有に設定された段取り作業時間を超えるまで段取りセルＣに製品を滞在させる。このようにすることで、段取り作業をモデル化することができる。しかしながら、このままでは製品が加工装置セルＢに進むと段取りセルＣの部分が空くため、加工装置セルＢにおける加工作業中に段取り作業を始めることができてしまう。実際には段取りセルＣはダミーセルであるため、段取り作業は、加工作業が終了しなければ始めることができない。その結果、作業時間が非現実的に短縮されてしまう。図４（ｂ）は、１つのラインに２つの製品を投入した場合のガントチャートを例示する図である。製品１が加工装置セルＢに進むと、製品２が段取りセルＣに進むことができてしまうことがわかる。【００２５】
そこで、本実施例においては、段取りセルＣの前に、段取り判定セルＤを配置する。図４（ｃ）は、ラインシミュレータ上のレイアウトを例示する図である。この段取り判定セルＤまで移動して来た製品は、加工装置セルＢまでの間に製品がない場合にのみ製品を先に進める、という命令を実行するセルとする。図４（ｄ）は、この段取り判定セルＤを用いて先と同様の２つの製品を投入した場合のガントチャートを例示する図である。図４（ｄ）で例示するように、製品１の加工が終了しない限り製品２が段取りセルＣに到達できないため、現実に即した加工完了時間が得られるようになる。【００２６】
次に、１人の作業員が複数のラインの段取り作業を行う場合を考慮する方法について説明する。作業員がいずれかのラインで段取り作業を行っている場合は、他の段取り作業を重複してできないことをラインシミュレータ上で再現する。基本のレイアウトは、図３（ｃ）で例示したラインを複数用意する。ここに、製品とは別に作業員を巡回させるルートを作成し、そのルートに沿って作業員が移動するようにする。この巡回ルートには必ず各段取りセルＣを含むようにし、作業員と製品とが段取りセルＣで重なった場合は、段取り作業を行うものとする。段取り作業中には、作業員は移動できないものとする。【００２７】
図５（ａ）は、この基本レイアウトを例示する図である。図５（ｂ）は、図５（ａ）で例示した各ラインに２つずつ製品を投入した際の結果を例示する図である。段取り作業中は、作業員は他のラインの段取り作業ができないため、製品は段取りセルＣで待機することになる。図５（ａ）のライン１の段取り作業が終了すると作業員は移動が可能となり、ライン２で待機中の製品の段取り作業を始めることができることになり、段取り作業の重複を回避できるようになる。【００２８】
ここまでの計算では、先に加工が終わった製品から順番に段取り作業が行われることになる。図３（ｃ）のレイアウトでは、段取り作業を行う製品は同一ライン上で段取りが終了するまで待機している。そのため、投入順序を変更したとしても、段取り作業が変更されるものではない。そこで、投入順序を図１（ｃ）で例示した製品１、製品２、製品４、製品３の順に変更する必要がある。【００２９】
本実施例では、作業員が担当する複数のラインの入り口に、複数のラインに共通の段取り判定セルＤを設けることによって、投入順番によって段取り作業そのものの順序を変更できるようにする。図６は、そのレイアウトを例示する図である。図６で例示するレイアウトでは、製品４を先に投入した場合、ライン１は空いていてもライン２が空いていないので、製品４は段取り判定セルＤで待機することとなる。その結果、ライン１に待機状態を作ることができるようになり、ライン２の段取り作業が終了した際に製品４が段取りセルＣに移動できるようになる。【００３０】
図７は、ラインシミュレータ１１が実行するフローチャートを例示する図である。図７で例示するように、ラインシミュレータ１１は、製品情報格納部２０から、製品情報を読み込む（ステップＳ１）。図８（ａ）は、製品情報格納部２０に格納されている製品情報を例示する図である。図８（ａ）で例示するように、各製品に対して、加工作業時間、段取り作業時間、ラインなどが関連付けられている。例えば、製品１は、加工作業に２００単位時間を要し、段取り作業に５０単位時間を要し、ライン１で加工される。【００３１】
次に、ラインシミュレータ１１は、投入順序格納部３０から、初期投入順序を読み込む（ステップＳ２）。図８（ｂ）は、投入順序格納部３０に格納されている初期投入順序を例示する図である。この初期投入順序は、最適化前の初期値である。図８（ｂ）の例では、製品１、製品２、製品３、製品４、製品５、製品６の順番に投入されることになる。【００３２】
次に、ラインシミュレータ１１は、作業員移動の処理を行う（ステップＳ３）。図９は、作業員移動の処理を表すフローチャートである。図９で例示するように、ラインシミュレータ１１は、作業員情報格納部５０から、全てのライン内の作業員の合計人数（ｍ）を取得する（ステップＳ２１）。図８（ｃ）は、作業員情報格納部５０に格納されている作業員情報を例示する図である。次に、ラインシミュレータ１１は、作業員（ｉ）の位置情報を取得する（ステップＳ２２）。ｉは、１からｍまでの整数である。ｉが１からｍになるまで、ステップＳ２２の処理がループする。【００３３】
ループが終了すると、ラインシミュレータ１１は、作業員ｉの位置が段取りセルＣであるか否かを判定する（ステップＳ２３）。ステップＳ２３で「Ｎｏ」と判定された場合、ラインシミュレータ１１は、作業員ｉの移動先に別の作業員がいるか否かを判定する（ステップＳ２４）。ステップＳ２４で「Ｎｏ」と判定された場合、ラインシミュレータ１１は、作業員循環ルートにおいて、作業員ｉを次のセルに移動させる（ステップＳ２５）。ステップＳ２４で「Ｙｅｓ」と判定された場合、ラインシミュレータ１１は、作業員循環ルートにおいて、別作業員がいない先のセルまで作業員ｉを移動させる（ステップＳ２６）。【００３４】
ステップＳ２３で「Ｙｅｓ」と判定された場合、ラインシミュレータ１１は、作業員ｉの位置の段取りセルＣに製品があるか否かを判定する（ステップＳ２７）。ステップＳ２７で「Ｎｏ」と判定された場合、ステップＳ２４が実行される。ステップＳ２７で「Ｙｅｓ」と判定された場合、ステップＳ２５の実行後、またはステップＳ２６の実行後、ｉが１からｍになるまでは、ステップＳ２３に戻る。ステップＳ２７で「Ｙｅｓ」と判定された場合、ステップＳ２５の実行後、またはステップＳ２６の実行後、ｉがｍになれば、フローチャートが終了する。作業員移動の処理が行われることによって、作業員が配置されておらずかつ製品が位置する段取りセルＣまで作業員を移動させることができる。また、作業員が配置された段取りセルＣから製品が移動するまで、当該段取りセルＣに作業員を配置させたままとすることができる。【００３５】
再度図７を参照し、次に、ラインシミュレータ１１は、全てのライン内の合計製品数（ｉｐ）をカウントする（ステップＳ４）。次に、ラインシミュレータ１１は、ｉｐ＝０であるか否かを判定する（ステップＳ５）。まだいずれのラインにも製品が投入されていなければ、ステップＳ５で「Ｙｅｓ」と判定される。製品の投入後であっていずれかのラインに製品が残っている場合には、ステップＳ５で「Ｎｏ」と判定される。【００３６】
ステップＳ５で「Ｙｅｓ」と判定された場合、ラインシミュレータ１１は、加工ラインへの未投入製品があるか、またはライン内に製品が残っているかを判定する（ステップＳ６）。具体的には、ステップＳ２で読み込まれた製品投入順序のうち、まだ加工ラインに投入されていないものがある否かが判定されるとともに、ライン内に製品が残っているか否かが判定される。少なくともいずれか一方が該当する場合には「Ｙｅｓ」と判定される。ステップＳ６で「Ｙｅｓ」と判定された場合、ラインシミュレータ１１は、次の製品が加工ラインに投入可能であるか否かを判定する（ステップＳ７）。具体的には、次に投入すべき製品に設定されたラインの最初のコンベアセルＡに製品が無ければ、投入可能であると判定される。ステップＳ７で「Ｙｅｓ」と判定された場合、ラインシミュレータ１１は、次の製品を当該製品に指定されたラインに投入する（ステップＳ８）。ステップＳ７で「Ｎｏ」と判定された場合またはステップＳ８の実行後、ステップＳ３から再度実行される。ステップＳ３〜ステップＳ８の処理が繰り返されることによって、ステップＳ２で取得された初期投入順序に従って製品がラインに投入される。【００３７】
ステップＳ５で「Ｎｏ」と判定された場合、ラインシミュレータ１１は、製品（ｉ）が位置するセルの情報を取得する（ステップＳ９）。ｉは、１からｉｐまでの値をとる。ラインに乗っている製品の合計数が２つのであれば、ｉｐは２であって、ｉは１と２の値をとる。次に、ラインシミュレータ１１は、ステップＳ９で取得されたセルがコンベアセルＡであるか、段取り判定セルＤであるか、段取りセルＣであるか、加工装置セルＢであるかを判定する（ステップＳ１０）。【００３８】
ステップＳ１０で、ステップＳ９で取得されたセルがコンベアセルＡであると判定された場合、ラインシミュレータ１１は、コンベアセルの処理を実行する（ステップＳ１１）。ステップＳ１０で、ステップＳ９で取得されたセルが段取り判定セルＤであると判定された場合、ラインシミュレータ１１は、段取り判定セルの処理を実行する（ステップＳ１２）。ステップＳ１０で、ステップＳ９で取得されたセルが段取りセルＣであると判定された場合、ラインシミュレータ１１は、段取りセルの処理を実行する（ステップＳ１３）。ステップＳ１０で、ステップＳ９で取得されたセルが加工装置セルＢであると判定された場合、ラインシミュレータ１１は、加工装置セルの処理を実行する（ステップＳ１４）。【００３９】
図１０（ａ）は、コンベアセルの処理を表すフローチャートである。図１０（ａ）で例示するように、ラインシミュレータ１１は、製品の移動先のセルに別の製品が有るか否かを判定する（ステップＳ３１）。ステップＳ３１で「Ｎｏ」と判定された場合、製品を次のセルに移動させる（ステップＳ３２）。次に、ラインシミュレータ１１は、製品のタイマーを初期化する（ステップＳ３３）。ステップＳ３３の実行後、またはステップＳ３１で「Ｙｅｓ」と判定された場合、フローチャートの実行が終了する。コンベアセルの処理を実行することで、移動先のセルに製品が無ければ製品を移動させることができ、移動先のセルに製品が有れば製品を待機させることができる。【００４０】
図１０（ｂ）は、段取り判定セルの処理を表すフローチャートである。図１０（ｂ）で例示するように、ラインシミュレータ１１は、段取り判定セルの製品が入るべき加工装置セルＢに製品が有るか否かを判定する（ステップＳ４１）。ステップＳ４１で「Ｎｏ」と判定された場合、ラインシミュレータは、製品を次のセルに移動させる（ステップＳ４２）。ステップＳ４２の実行後、またはステップＳ４１で「Ｙｅｓ」と判定された場合、フローチャートの実行が終了する。段取り判定セルの処理を実行することで、段取り判定セルＤの製品が入るべき加工装置セルＢに製品が無ければ製品を移動させることができ、当該加工装置セルＢに製品が有れば製品を待機させることができる。【００４１】
図１１は、段取りセルの処理を表すフローチャートである。図１１で例示するように、段取りセルＣにある製品のタイマー値（ｔｉｍｅｒ）を取得する（ステップＳ５１）。次に、ラインシミュレータ１１は、段取りセルＣにある製品の段取り時間（ｐｒｏｃｅｓｓ）を取得する（ステップＳ５２）。次に、ラインシミュレータ１１は、ｔｉｍｅｒがｐｒｏｃｅｓｓ以上であるか否かを判定する（ステップＳ５３）。【００４２】
ステップＳ５３で「Ｎｏ」と判定された場合、ラインシミュレータ１１は、製品のある段取りセルＣに作業員がいるか否かを判定する（ステップＳ５４）。ステップＳ５４で「Ｙｅｓ」と判定された場合、ラインシミュレータ１１は、ｔｉｍｅｒをインクリメントする（ステップＳ５５）。ステップＳ５３で「Ｙｅｓ」と判定された場合、ラインシミュレータ１１は、製品のタイマーを初期化する（ステップＳ５６）。次に、ラインシミュレータ１１は、製品を加工装置セルＢに移動させる（ステップＳ５７）。次に、ラインシミュレータ１１は、作業員移動の処理を実行する（ステップＳ５８）。【００４３】
ステップＳ５５の実行後、ステップＳ５８の実行後、またはステップＳ５４で「Ｎｏ」と判定された場合、フローチャートが終了する。段取りセルの処理を実行することで、段取りセルＣに製品が移動してきた場合に作業員がいなければ、製品を待機させることができる。また、段取りセルＣに製品が移動してきた場合に作業員がいれば、段取り作業時間をカウントすることができる。【００４４】
図１０（ｃ）は、加工装置セルの処理を表すフローチャートである。図１０（ｃ）で例示するように、ラインシミュレータ１１は、加工装置セルＢにある製品のタイマー値（ｔｉｍｅｒ）を取得する（ステップＳ６１）。次に、ラインシミュレータ１１は、加工装置セルＢにある製品の加工作業時間（ｐｒｏｃｅｓｓ）を取得する（ステップＳ６２）。次に、ラインシミュレータ１１は、ｔｉｍｅｒがｐｒｏｃｅｓｓ以上であるか否かを判定する（ステップＳ６３）。ステップＳ６３で「Ｎｏ」と判定された場合、ラインシミュレータ１１は、ｔｉｍｅｒをインクリメントする（ステップＳ６４）。ステップＳ６３で「Ｙｅｓ」と判定された場合、ラインシミュレータ１１は、製品のタイマーを初期化する（ステップＳ６５）。次に、ラインシミュレータ１１は、製品を加工済み製品としてライン外へ移動させる（ステップＳ６６）。ステップＳ６４またはステップＳ６６の実行後、フローチャートが終了する。加工装置セルＢの処理を実行することで、加工作業時間をカウントすることができる。【００４５】
ステップＳ９〜ステップＳ１４のループ（ライン内製品ループ）が、製品番号ｉが１からｉｐになるまで繰り返し実行される。それにより、加工ライン内の全ての製品について、ステップＳ１１〜ステップＳ１４のいずれかの処理を１つ進めることができる。【００４６】
その後、ステップＳ６が実行される。ステップＳ５〜ステップＳ１４のループ（ｔｉｍｅループ）が１回行われるたびに１単位時間進むことになるため、ｔｉｍｅループのループ回数を取得することで、最も時間がかかるラインの完了時間（加工完了時間）を取得することができる。【００４７】
ステップＳ６で「Ｎｏ」と判定された場合、ラインシミュレータ１１は、ｔｉｍｅループをブレーク（停止）する（ステップＳ１５）。次に、ラインシミュレータ１１は、ｔｉｍｅループのループ回数をＴｉｍｅとして算出して出力する（ステップＳ１６）。その後、図７のフローチャートが終了する。このＴｉｍｅが、加工完了時間に相当する。【００４８】
図１２は、ここまでのデータ入出力の概念を例示する図である。図１２で例示するように、製品情報格納部２０からは、製品情報が読み込まれる。この際に読み込まれる情報は、加工作業時間、段取り作業時間、およびラインである。投入順序格納部３０からは、初期投入順序が読み込まれる。レイアウト格納部４０からは、レイアウトが読み込まれる。作業員情報格納部５０からは、作業員情報が読み込まれる。ラインシミュレータ１１は、これらのデータを用いて、加工完了時間Ｔｉｍｅを算出する。【００４９】
最適化エンジン１０は、初期投入順序に対して、段取り作業を組み替え、組替後の加工完了時間を算出し、算出された加工完了時間のうち、初期投入順序の加工完了時間よりも短い加工完了時間に係る段取り作業の順序を計画データとして生成する。例えば、組替後の各パターンについて図７のフローチャートを実行することで、加工完了時間Ｔｉｍｅが最も小さくなるパターンを最適値として取得し、当該パターンの段取り作業の順序を計画データとして生成する。図１３は、この場合に最適化エンジン１０が実行する段取り作業修正処理を表すフローチャートである。【００５０】
図１３で例示するように、ラインシミュレータ１１は、製品情報格納部２０に格納されている製品情報、投入順序格納部３０に格納されている初期投入順序、レイアウト格納部４０に格納されているレイアウト、作業員情報格納部５０に格納されている作業員情報を用いて、図７の処理を実行し、加工完了時間Ｔｉｍｅを取得する（ステップＳ７１）。【００５１】
次に、出力部１２は、ラインシミュレータ１１が取得した加工完了時間Ｔｉｍｅを出力する（ステップＳ７２）。次に、生成部１３は、出力部１２が出力した加工完了時間Ｔｉｍｅが最適値であるか否かを判定する（ステップＳ７３）。例えば、生成部１３は、加工完了時間Ｔｉｍｅが初期投入順序の加工完了時間よりも短くなっていれば、加工完了時間Ｔｉｍｅが最適値であると判定してもよい。または、生成部１３は、加工完了時間Ｔｉｍｅが初期投入順序の加工完了時間よりも短い所定の閾値以下となっていれば、加工完了時間Ｔｉｍｅが最適値であると判定してもよい。【００５２】
ステップＳ７３で「Ｎｏ」と判定された場合、順序組替部１４は、初期投入順序に対して、段取り作業を組み替え、ラインシミュレータ１１に入力する（ステップＳ７４）。ステップＳ７４が２回目以降に実行される際には、組み替え候補のうちまだラインシミュレータ１１に入力されていないいずれかの組み替え候補をラインシミュレータ１１に入力する。その後、ステップＳ７１から再度実行される。ステップＳ７４が実行された後にステップＳ７１が実行される場合には、ラインシミュレータ１１は、順序組替部１４から入力された投入順序を用いる。ステップＳ７３で「Ｙｅｓ」と判定された場合、生成部１３は、判定対象の投入順序を最適順序格納部６０に格納する（ステップＳ７５）。この場合の投入順序は、初期投入順序の加工完了時間よりも短い加工完了時間に係る段取り作業の順序を表す計画データに相当する。【００５３】
段取り作業修正処理が実行されることで、最適な加工完了時間Ｔｉｍｅを算出することができる。なお、全ての組み替えに係る投入順序について加工完了時間Ｔｉｍｅを取得し、その最小値を最適な加工完了時間Ｔｉｍｅとしてもよい。【００５４】
図１４（ａ）は、投入順序を変更する前のライン毎のガントチャートと、時刻ｔ１における製品の位置を模式的に例示した図である。図１４（ｂ）は、投入順序を変更した後のライン毎のガントチャートと、時刻ｔ１における製品の位置を模式的に例示した図である。図１４（ｂ）で例示するように、投入順序の組み替えによって、ラインシミュレータ内部で段取り作業の待ち時間を発生させることができるようになる。【００５５】
ラインシミュレータ１１に入力された投入順序は、そのまま作業員の段取り作業順番に対応するようになる。このことから、製品の投入順番を入れ替えてラインシミュレータ１１から得られる加工完了時間を最適化することによって、加工完了時間が短い段取り作業順序を得ることができるようになる。【００５６】
図１５は、本実施例に係る概念図を例示する図である。図１５で例示したラインシミュレータ１１を最適化エンジンで繰り返し演算する。その際の入力変数は、決定すべき製品の投入順序とする。最適化の目的関数は、ラインシミュレータ１１から出力される加工完了時間Ｔｉｍｅとし、この目的関数を最小化する投入順番を決定する。結果として出力される加工完了時間Ｔｉｍｅが短い投入順番は段取り作業順番と等しいため、結果的に利用者は最適な段取り作業順番を得ることができるようになる。【００５７】
本実施例によれば、段取り作業と加工作業とを要する製品が投入される複数本のラインが備わりかつ当該複数本のラインにおいて段取り作業が重複して行われない加工ラインに対する製品の初期投入順序に対して、段取り作業が組み替えられる。次に、組替後における、加工ラインの加工完了時間が算出される。算出された加工完了時間のうち、初期投入順序の加工完了時間よりも短い加工完了時間に係る段取り作業の順序が計画データとして生成される。この計画データを用いることで、加工完了時間を短くすることができる。【００５８】
表示装置１０４は、生成部１３が生成した計画データを表示してもよい。また、投入装置７０は、生成部１３が生成した計画データに従って、加工ラインに製品を投入してもよい。【００５９】
（変形例）
投入製品が多い場合について検討する。投入製品が多い場合には、組み合わせ問題を解くことが困難となる。そこで、作業員の段取り作業が重複している箇所や段取り作業が近接する部分のみの投入順序を入れ替えて最適な段取り作業順序を得る。この際のポイントは、作業員の段取り作業が重複している箇所や作業が近い部分をあらかじめ投入順序として設定することである。そこで、本変形例では、段取り作業順序を決定する製品の投入順序をあらかじめ図５（ａ）の段取り重複回避レイアウトを用いて決定する。このモデルでは、早く段取り作業可能なものから作業されるため、その加工終了製品の順序を重複回避の初期モデルとして利用することができる。このようにして決定した初期順序から担当ライン分のみの製品を切り出して図６に記載の方法で最適化する。ここで決定された製品の１番目の製品を加工順序が１番目の製品として登録する。以降、この１番目の製品が投入順序決定製品として存在するものとして、以降同じ製品数の最適化を繰り返し実行する。【００６０】
図１６および図１７は、本変形例において最適化エンジン１０が実行するフローチャートを例示する図である。図１６および図１７で例示するように、ラインシミュレータ１１は、製品情報格納部２０から製品情報を読み込む（ステップＳ８１）。次に、ラインシミュレータ１１は、レイアウト格納部４０から、図５（ａ）の段取り重複回避レイアウトを読み込む（ステップＳ８２）。次に、ラインシミュレータ１１は、ステップＳ８１で読み込んだ製品情報と、ステップＳ８２で読み込んだ段取り重複回避レイアウトとから、製品の加工終了順序を決定する（ステップＳ８３）。【００６１】
重複回避レイアウトを用いることから、加工完了時間が短くなる順番が得られるわけではなく、製品の加工終了順序が作業重複回避を行う段取り作業順序が得られる。ラインシミュレータ１１は、この製品の加工終了順序を初期投入順序に設定する（ステップＳ８４）。次に、ラインシミュレータ１１は、レイアウト格納部４０から、図６の最適段取り作業順序計算用のレイアウトを読み込む（ステップＳ８５）。次に、ラインシミュレータ１１は、ラインシミュレータ１１への未投入の製品からライン数の製品分を投入順序決定製品として設定する（ステップＳ８６）。【００６２】
次に、順序組替部１４は、投入順序決定製品の投入順序を最適化計算の入力変数に設定する（ステップＳ８７）。次に、順序組替部１４は、投入順確定製品があるか否かを判定する（ステップＳ８８）。ステップＳ８８で「Ｙｅｓ」と判定された場合、順序組替部１４は、投入順序確定製品を先に投入し、それ以降に入力変数として設定された投入順序決定製品をラインシミュレータ１１に投入する順序とする（ステップＳ８９）。ステップＳ８８で「Ｎｏ」と判定された場合、順序組替部１４は、投入順序決定製品の投入順序をラインシミュレータ１１に投入する順序に設定する（ステップＳ９０）。【００６３】
ステップＳ８８の実行後またはステップＳ８９の実行後、ラインシミュレータ１１は、ステップＳ８９またはステップＳ９０で設定された投入順序を用いて図７のフローチャートを実行することで、加工完了時間Ｔｉｍeを取得する（ステップＳ９１）。出力部１２は、加工完了時間Ｔｉｍeを出力する（ステップＳ９２）。生成部１３は、加工完了時間Ｔｉｍｅが最適値であるか否かを判定する（ステップＳ９３）。ここでの判定として、図１３のステップＳ７３と同様の判定を用いてもよい。ステップＳ９３で「Ｎｏ」と判定された場合、順序組替部１４は、投入順序決定製品の投入順序を入れ替える（ステップＳ９４）。その後、ステップＳ８８から再度実行する。【００６４】
ステップＳ９１で「Ｙｅｓ」と判定された場合、生成部１３は、投入順序決定製品の中で一番早く投入する製品を確定製品として設定する（ステップＳ９５）。次に、生成部１３は、投入順序決定製品から確定製品を除外する（ステップＳ９６）。次に、生成部１３は、確定製品を投入順序確定製品に追記する（ステップＳ９７）。【００６５】
次に、生成部１３は、未投入製品が残っているか否かを判定する（ステップＳ９８）。ステップＳ９８で「Ｙｅｓ」と判定された場合、生成部１３は、次の未投入製品から１つ製品を投入順序決定製品に追加する（ステップＳ９９）。その後、ステップＳ８７から再度実行される。ステップＳ９８で「Ｎｏ」と判定された場合、生成部１３は、残りの投入順序を確定する（ステップＳ１００）。次に、生成部１３は、決定された投入順序を最適段取り作業順序として出力する（ステップＳ１０１）。その後、フローチャートの実行が終了する。【００６６】
図１８は、本変形例に係る概念図を例示する図である。図１８で例示したラインシミュレータ１１を最適化エンジンで繰り返し演算する。その際の入力変数は、決定すべき製品の投入順序とする。最適化の目的関数は、ラインシミュレータ１１から出力される加工完了時間Ｔｉｍｅとし、例えばこの目的関数を最小化する投入順序を決定する。結果として出力される加工完了時間Ｔｉｍｅが短い投入順序は段取り作業順序と等しいため、結果的に利用者は最適な段取り作業順序を得ることができるようになる。【００６７】
本変形例によれば、段取り作業と加工作業とを要する製品が投入される複数本のラインが備わりかつ当該複数本のラインにおいて段取り作業が重複して行われない加工ラインに対する製品の初期投入順序から、近接する段取り作業が組み替え候補として抽出され組み替えられる。次に、組替後における、加工ラインの加工完了時間が算出される。算出された加工完了時間のうち、初期投入順序の加工完了時間よりも短い加工完了時間に係る段取り作業の順序が計画データとして生成される。この計画データを用いることで、加工完了時間を短くすることができる。また、投入製品が多い場合であっても、効率よく加工完了時間の最適化を行うことができる。【００６８】
上記各例において、順序組替部１４が、段取り作業と加工作業とを要する製品が投入される複数本のラインが備わりかつ当該複数本のラインにおいて段取り作業が重複して行われない加工ラインに対する製品の初期投入順序に対して、段取り作業を組み替える組替部の一例として機能する。ラインシミュレータ１１が、前記組替部による組替後の、前記加工ラインの加工完了時間を算出する算出部の一例として機能する。生成部１３が、前記算出部が算出した前記加工完了時間のうち、前記初期投入順序の加工完了時間よりも短い加工完了時間に係る段取り作業の順序を計画データとして生成する生成部の一例として機能する。表示装置１０４が、前記生成部が生成した前記計画データを表示する表示装置の一例として機能する。投入装置７０が、前記生成部が生成した前記計画データに従って、前記加工ラインに前記製品を投入する投入装置の一例として機能する。【００６９】
以上、本発明の実施例について詳述したが、本発明は係る特定の実施例に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
【符号の説明】
【００７０】
１０  最適化エンジン
１１  ラインシミュレータ
１２  出力部
１３  生成部
１４  順序組替部
２０  製品情報格納部
３０  投入順序格納部
４０  レイアウト格納部
５０  作業員情報格納部
６０  最適順序格納部
７０  投入装置
１００  情報処理装置
【図１】
2020136875.tif 000003
【図２】
2020136875.tif 000004
【図３】
2020136875.tif 000005
【図４】
2020136875.tif 000006
【図５】
2020136875.tif 000007
【図６】
2020136875.tif 000008
【図７】
2020136875.tif 000009
【図８】
2020136875.tif 000010
【図９】
2020136875.tif 000011
【図１０】
2020136875.tif 000012
【図１１】
2020136875.tif 000013
【図１２】
2020136875.tif 000014
【図１３】
2020136875.tif 000015
【図１４】
2020136875.tif 000016
【図１５】
2020136875.tif 000017
【図１６】
2020136875.tif 000018
【図１７】
2020136875.tif 000019
【図１８】
2020136875.tif 000020
【国際調査報告】
2020136875.tif 000021
2020136875.tif 000022