(57)【要約】【課題】処理対象物が搬送される三以上の処理部における各処理を適切に実行しつつ、処理対象物の搬送を行うことができる搬送スケジュール生成装置等を提供する。【解決手段】搬送スケジュール生成装置は、部品を処理する必要処理時間及び処理の実行順序を記憶する記憶部と、クレーンの干渉範囲を設定する干渉範囲設定部と、必要処理時間と干渉範囲と処理の順序と処理部で部品に実行している実行処理時間とを用いて、クレーンによる部品の搬送動作の実行を判定する判定部と、部品を並行して各処理部に移動させる搬送スケジュールを算出する算出部とを備え、干渉範囲設定部は、判定部で判定を行う時点毎に干渉範囲を設定し、判定部は、干渉範囲に他のクレーンが侵入して停止している場合、一つのクレーンによる処理が実行不可と判定する。【選択図】図８
2015160713.tif 000002
【特許請求の範囲】
【請求項１】
処理対象物にそれぞれ異なる処理を施す三以上の処理部と、前記三以上の処理部のいずれかの処理部から他のいずれかの処理部に前記処理対象物を搬送する前記三以上の処理部の数よりも一以上少ない複数のクレーンが同一のレール上で前記三以上の処理部間を移動する搬送装置と、前記搬送装置の各クレーンの動作を制御する制御装置と、を備える部品処理装置による前記処理対象物の搬送スケジュールを生成する搬送スケジュール生成装置であって、
前記処理部と前記処理対象物との関係に基づいて、当該処理部で前記処理対象物を処理する必要処理時間及び処理対象物に対して前記処理部で処理を実行する順序を記憶する記憶部と、
一つのクレーンの位置を基準として前記クレーンの干渉範囲を設定する干渉範囲設定部と、
前記必要処理時間と前記干渉範囲と前記処理対象物に対して実行する処理の順序と前記処理部で前記処理対象物に実行している実行処理時間とを用いて、前記クレーンによる前記処理対象物の搬送動作の実行を判定する判定部と、
前記判定部による判定に基づいて、複数の前記クレーンのそれぞれで前記処理対象物を並行して各前記処理部に移動させる前記搬送スケジュールを算出する算出部と
を備え、
前記干渉範囲設定部は、前記判定部で判定を行う時点毎に前記干渉範囲を設定し、
前記判定部は、前記干渉範囲に他のクレーンが侵入して停止している場合、前記一つのクレーンによる処理が実行不可と判定する搬送スケジュール生成装置。
【請求項２】
前記干渉範囲設定部は、前記一つのクレーンが前記処理対象物を保持している場合、当該処理対象物の搬送に伴う前記一つのクレーンの移動範囲を干渉範囲に設定する請求項１に記載の搬送スケジュール生成装置。
【請求項３】
前記干渉範囲設定部は、前記一つのクレーンが前記処理対象物を保持していない場合、保持する対象の前記処理対象物を特定し、特定した前記処理対象物までの前記一つのクレーンの移動範囲を干渉範囲に設定する請求項１または２に記載の搬送スケジュール生成装置。
【請求項４】
前記干渉範囲設定部は、前記一つのクレーンが前記処理対象物を保持していない場合、保持する対象の前記処理対象物を特定し、前記一つのクレーンの位置から特定した前記処理対象物の位置までの移動範囲及び、特定した前記処理対象物の位置から特定した前記処理対象物を移動させる処理部までの移動範囲を干渉範囲に設定する請求項１または２に記載の搬送スケジュール生成装置。
【請求項５】
前記三以上の処理部は、少なくとも一つが、前記処理対象物を浸す液体が貯留できる処理槽であり、
前記必要処理時間は、上限時間と下限時間とが設定されており、
前記算出部は、前記処理部での処理時間が前記必要処理時間に含まれない処理を含む前記搬送スケジュールが算出された場合、当該搬送スケジュールを破棄して前記搬送スケジュールを再度算出する請求項１から４のいずれか一項に記載の搬送スケジュール生成装置。
【請求項６】
前記判定部は、前記干渉範囲内に前記他のクレーンが存する場合、前記他のクレーンを前記干渉範囲の外に移動させることができるとき前記一つのクレーンによる処理対象物の搬送を行うことができると判定する請求項１から５のいずれか一項に記載の搬送スケジュール生成装置。
【請求項７】
前記部品処理装置と、
請求項１から６のいずれか一項に記載の搬送スケジュール生成装置と、
を備える処理システム。
【請求項８】
前記三以上の処理部の配置パターンを複数設定する配置パターン設定装置をさらに有し、
前記搬送スケジュール生成装置は、前記配置パターン設定装置により設定された複数の配置パターンの各々について搬送スケジュールを生成する
請求項７に記載の処理システム。
【請求項９】
前記配置パターン設定装置は、前記三以上の処理部が隣接可能か否かの設定に基づいて、配置パターンを算出する
請求項８に記載の処理システム。
【請求項１０】
前記配置パターン設定装置は、前記三以上の処理部の各々を用いて行われる処理に基づいて各処理部に対して行われた重み付けに基づいて、配置パターンを設定する
請求項８又は９に記載の処理システム。
【請求項１１】
処理対象物にそれぞれ異なる処理を施す三以上の処理部と、前記三以上の処理部のいずれかの処理部から他のいずれかの処理部に前記処理対象物を搬送する前記三以上の処理部の数よりも一以上少ない複数のクレーンが同一のレール上で前記三以上の処理部間を移動する搬送装置と、前記搬送装置の各クレーンの動作を制御する制御装置と、を備える部品処理装置による前記処理対象物の搬送スケジュールを生成する搬送スケジュール生成方法であって、
前記処理部と前記処理対象物との関係に基づいて、当該処理部で前記処理対象物を処理する必要処理時間及び処理対象物に対して前記処理部で処理を実行する順序を記憶し、
一つのクレーンの位置を基準として前記クレーンの干渉範囲を設定し、
前記必要処理時間と前記干渉範囲と前記処理対象物に対して実行する処理の順序と前記処理部で前記処理対象物に実行している実行処理時間とを用いて、前記クレーンによる前記処理対象物の搬送動作の実行を判定し、
前記判定に基づいて、複数の前記クレーンのそれぞれで前記処理対象物を並行して各前記処理部に移動させる前記搬送スケジュールを算出し、
前記判定を行う時点毎に前記干渉範囲を設定し、
前記干渉範囲に他のクレーンが侵入して停止している場合、前記一つのクレーンによる処理が実行不可と判定する
搬送スケジュール生成方法。
【請求項１２】
処理対象物にそれぞれ異なる処理を施す三以上の処理部と、前記三以上の処理部のいずれかの処理部から他のいずれかの処理部に前記処理対象物を搬送する前記三以上の処理部の数よりも一以上少ない複数のクレーンが同一のレール上で前記三以上の処理部間を移動する搬送装置と、前記搬送装置の各クレーンの動作を制御する制御装置と、を備える部品処理装置による前記処理対象物の搬送スケジュールを生成するプログラムであって、コンピューターを、
前記処理部と前記処理対象物との関係に基づいて、当該処理部で前記処理対象物を処理する必要処理時間及び処理対象物に対して前記処理部で処理を実行する順序を記憶する手段、
一つのクレーンの位置を基準として前記クレーンの干渉範囲を設定する手段、
前記必要処理時間と前記干渉範囲と前記処理対象物に対して実行する処理の順序と前記処理部で前記処理対象物に実行している実行処理時間とを用いて、前記クレーンによる前記処理対象物の搬送動作の実行を判定する手段、
前記判定に基づいて、複数の前記クレーンのそれぞれで前記処理対象物を並行して各前記処理部に移動させる前記搬送スケジュールを算出する手段として機能させ、
前記判定を行う時点毎に前記干渉範囲を設定し、
前記干渉範囲に他のクレーンが侵入して停止している場合、前記一つのクレーンによる処理が実行不可と判定する
プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、搬送スケジュール生成装置、処理システム、搬送スケジュール生成方法及びプログラムに関するものである。 
【背景技術】
【０００２】
部品等の処理対象物に対して三以上の処理工程を有する一連の処理を施す場合に各処理を異なる処理部（例えば処理槽）で行うための方法として、レールによって移動可能に設けられた複数のクレーンを用いて処理部間で部品を搬送する方法がある。この方法で部品に処理を行う場合、各クレーンによる部品の搬送スケジュールが作業効率（生産性）に大きく関わる。このため、効率的にクレーンによる搬送を行うための搬送スケジュール生成方法が知られている（例えば特許文献１）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００２−０６８６６９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ここで、特許文献１に記載の方法では、処理が行われた後の処理対象物を効率よく搬送することができる。しかしながら、特許文献１に記載の方法では、処理対象物への処理が適切に実行できない場合がある。例えば、各処理の処理時間に制限がある場合、一例として部品の表面処理工程における洗浄処理、アノダイズ処理、化成処理、乾燥等の各処理は、目的に応じて良質な処理結果を得られる望ましい処理時間が存在する。しかしながら、特許文献１に記載の搬送スケジュール生成方法では、このような処理時間を考慮した搬送スケジュールを生成することができない。
【０００５】
そこで、本発明は、処理対象物が搬送される三以上の処理部における各処理を適切に実行しつつ、処理対象物の搬送を行うことができる搬送スケジュール生成装置、処理システム、搬送スケジュール生成方法及びプログラムを提供することを課題とする。
【課題を解決するための手段】
【０００６】
本発明の搬送スケジュール生成装置は、処理対象物にそれぞれ異なる処理を施す三以上の処理部と、前記三以上の処理部のいずれかの処理部から他のいずれかの処理部に前記処理対象物を搬送する前記三以上の処理部の数よりも一以上少ない複数のクレーンが同一のレール上で前記三以上の処理部間を移動する搬送装置と、前記搬送装置の各クレーンの動作を制御する制御装置と、を備える部品処理装置による前記処理対象物の搬送スケジュールを生成する搬送スケジュール生成装置であって、前記処理部と前記処理対象物との関係に基づいて、当該処理部で前記処理対象物を処理する必要処理時間及び処理対象物に対して前記処理部で処理を実行する順序を記憶する記憶部と、一つのクレーンの位置を基準として前記クレーンの干渉範囲を設定する干渉範囲設定部と、前記必要処理時間と前記干渉範囲と前記処理対象物に対して実行する処理の順序と前記処理部で前記処理対象物に実行している実行処理時間とを用いて、前記クレーンによる前記処理対象物の搬送動作の実行を判定する判定部と、前記判定部による判定に基づいて、複数の前記クレーンのそれぞれで前記処理対象物を並行して各前記処理部に移動させる前記搬送スケジュールを算出する算出部とを備え、前記干渉範囲設定部は、前記判定部で判定を行う時点毎に前記干渉範囲を設定し、前記判定部は、前記干渉範囲に他のクレーンが侵入して停止している場合、前記一つのクレーンによる処理が実行不可と判定する。
【０００７】
本発明の処理システムは、前記部品処理装置と、係る搬送スケジュール生成装置とを備える。
【０００８】
本発明の搬送スケジュール生成方法は、処理対象物にそれぞれ異なる処理を施す三以上の処理部と、前記三以上の処理部のいずれかの処理部から他のいずれかの処理部に前記処理対象物を搬送する前記三以上の処理部の数よりも一以上少ない複数のクレーンが同一のレール上で前記三以上の処理部間を移動する搬送装置と、前記搬送装置の各クレーンの動作を制御する制御装置と、を備える部品処理装置による前記処理対象物の搬送スケジュールを生成する搬送スケジュール生成方法であって、前記処理部と前記処理対象物との関係に基づいて、当該処理部で前記処理対象物を処理する必要処理時間及び処理対象物に対して前記処理部で処理を実行する順序を記憶し、一つのクレーンの位置を基準として前記クレーンの干渉範囲を設定し、前記必要処理時間と前記干渉範囲と前記処理対象物に対して実行する処理の順序と前記処理部で前記処理対象物に実行している実行処理時間とを用いて、前記クレーンによる前記処理対象物の搬送動作の実行を判定し、前記判定に基づいて、複数の前記クレーンのそれぞれで前記処理対象物を並行して各前記処理部に移動させる前記搬送スケジュールを算出し、前記判定を行う時点毎に前記干渉範囲を設定し、前記干渉範囲に他のクレーンが侵入して停止している場合、前記一つのクレーンによる処理が実行不可と判定する。
【０００９】
本発明のプログラムは、処理対象物にそれぞれ異なる処理を施す三以上の処理部と、前記三以上の処理部のいずれかの処理部から他のいずれかの処理部に前記処理対象物を搬送する前記三以上の処理部の数よりも一以上少ない複数のクレーンが同一のレール上で前記三以上の処理部間を移動する搬送装置と、前記搬送装置の各クレーンの動作を制御する制御装置と、を備える部品処理装置による前記処理対象物の搬送スケジュールを生成するプログラムであって、コンピューターを、前記処理部と前記処理対象物との関係に基づいて、当該処理部で前記処理対象物を処理する必要処理時間及び処理対象物に対して前記処理部で処理を実行する順序を記憶する手段、一つのクレーンの位置を基準として前記クレーンの干渉範囲を設定する手段、前記必要処理時間と前記干渉範囲と前記処理対象物に対して実行する処理の順序と前記処理部で前記処理対象物に実行している実行処理時間とを用いて、前記クレーンによる前記処理対象物の搬送動作の実行を判定する手段、前記判定に基づいて、複数の前記クレーンのそれぞれで前記処理対象物を並行して各前記処理部に移動させる前記搬送スケジュールを算出する手段として機能させ、前記判定を行う時点毎に前記干渉範囲を設定し、前記干渉範囲に他のクレーンが侵入して停止している場合、前記一つのクレーンによる処理が実行不可と判定する。
【００１０】
これらの構成によれば、処理部で処理対象物を処理する必要処理時間と処理部で処理対象物に実行している実行処理時間とを用いてクレーンによる処理対象物の搬送動作の実行を判定するので、各処理部で処理される実行処理時間が必要処理時間により近い時間となるようにクレーンによる処理対象物の搬送を行うことで、各処理部で処理される実行処理時間を必要処理時間により近づけることができる。すなわち、クレーンによる処理対象物の搬送動作の実行を判定する対象となる時間を、実行処理時間が必要処理時間により近い時間になる時間として搬送スケジュールを算出することで、処理対象物が搬送される三以上の処理部における各処理の処理時間を考慮して搬送を行うことができる。このように、これらの構成によれば、処理対象物が搬送される三以上の処理部における各処理を適切に実行しつつ、処理対象物の搬送を行うことができる。また、判定を行う時点毎に干渉範囲を設定するので、その時点でのクレーンの動作に必要な最小の干渉範囲とすることができる。このため、クレーン同士の干渉が生じる可能性をより低減することができる。よって、クレーンの待機時間をより短くすることができることから、搬送スケジュールの短縮がより容易となる。
【００１１】
搬送スケジュール生成装置において、前記干渉範囲設定部は、前記一つのクレーンが前記処理対象物を保持している場合、当該処理対象物の搬送に伴う前記一つのクレーンの移動範囲を干渉範囲に設定するのが好ましい。
【００１２】
この構成によれば、既に処理対象物を保持しているクレーンの干渉範囲を、当該処理対象物の搬送に伴う必要最低限の移動範囲とすることができる。このため、クレーン同士の干渉が生じる可能性をより低減することができる。
【００１３】
搬送スケジュール生成装置において、前記干渉範囲設定部は、前記一つのクレーンが前記処理対象物を保持していない場合、保持する対象の前記処理対象物を特定し、特定した前記処理対象物までの前記一つのクレーンの移動範囲を干渉範囲に設定するのが好ましい。
【００１４】
この構成によれば、まだ処理対象物を保持していないクレーンの干渉範囲を、当該クレーンが処理対象物を保持することができる位置まで移動させるための必要最低限の移動範囲とすることができる。このため、クレーン同士の干渉が生じる可能性をより低減することができる。また、干渉範囲の設定の時点でクレーンが処理対象物を保持しているか否かに応じてクレーンの干渉範囲を個別に設定することで、移動開始前のクレーンが処理対象物を保持可能な位置まで移動し、その後に当該処理対象物を搬送先まで搬送するために移動する一連の搬送工程を複数の時点に分けて干渉範囲を設定することができる。このため、各時点の干渉範囲を最小限にすることができる。
【００１５】
搬送スケジュール生成装置において、前記干渉範囲設定部は、前記一つのクレーンが前記処理対象物を保持していない場合、保持する対象の前記処理対象物を特定し、前記一つのクレーンの位置から特定した前記処理対象物の位置までの移動範囲及び、特定した前記処理対象物の位置から特定した前記処理対象物を移動させる処理部までの移動範囲を干渉範囲に設定するのが好ましい。 
【００１６】
この構成によれば、まだ処理対象物を保持していないクレーンが、処理対象物を保持して搬送を完了するまでの一連の動作を一つの干渉範囲で管理することができる。このため、判定の対象となる干渉範囲の設定回数をより低減することができることから、判定に係る処理負荷をより低減することができる。
【００１７】
搬送スケジュール生成装置において、前記三以上の処理部は、少なくとも一つが、前記処理対象物を浸す液体が貯留できる処理槽であり、前記必要処理時間は、上限時間と下限時間とが設定されており、前記算出部は、前記処理部での処理時間が前記必要処理時間に含まれない処理を含む前記搬送スケジュールが算出された場合、当該搬送スケジュールを破棄して前記搬送スケジュールを再度算出するのが好ましい。
【００１８】
この構成によれば、必要処理時間に含まれない処理を含む搬送スケジュールが破棄されるので、必ず必要処理時間を満たす搬送スケジュールを算出することができる。
【００１９】
搬送スケジュール生成装置において、前記判定部は、前記干渉範囲内に前記他のクレーンが存する場合、前記他のクレーンを前記干渉範囲の外に移動させることができるとき前記一つのクレーンによる処理対象物の搬送を行うことができると判定するのが好ましい。
【００２０】
この構成によれば、他のクレーンを干渉範囲の外に移動させて一つのクレーンによる処理対象物の搬送を行うことができるようになるので、当該一つのクレーンによる処理が実行不可と判定される機会をより低減することができる。このため、当該一つのクレーンによる搬送をより前倒ししやすくなる。よって、搬送スケジュール全体の処理時間（リードタイム）をより短縮することができる。
【００２１】
処理システムは、前記三以上の処理部の配置パターンを複数設定する配置パターン設定装置をさらに有し、前記搬送スケジュール生成装置は、前記配置パターン設定装置により設定された複数の配置パターンの各々について搬送スケジュールを生成するのが好ましい。
【００２２】
この構成によれば、複数の配置パターンの各々について搬送スケジュールを生成することができる。このため、搬送スケジュール全体の処理時間（リードタイム）がより短い搬送スケジュールに対応する配置パターンを採用することで、リードタイムをさらに短縮しやすくなる。
【００２３】
処理システムにおいて、前記配置パターン設定装置は、前記三以上の処理部が隣接可能か否かの設定に基づいて、配置パターンを算出するのが好ましい。
【００２４】
この構成によれば、三以上の処理部のうち、互いに隣接が不可能な処理部同士が隣接する配置パターンを避けて配置パターンを設定することができる。このため、実際には採用することができない配置パターンの搬送スケジュールを生成することなく、採用可能な配置パターンについてのみ搬送スケジュールを生成することができる。
【００２５】
処理システムにおいて、前記配置パターン設定装置は、前記三以上の処理部の各々を用いて行われる処理に基づいて各処理部に対して行われた重み付けに基づいて、配置パターンを設定するのが好ましい。
【００２６】
この構成によれば、処理部毎により望ましい配置を重み付けで表すことで、配置パターンにおける各処理部の配置をより望ましい配置に近づけることができる。
【発明の効果】
【００２７】
本発明によれば、処理対象物が搬送される三以上の処理部における各処理を適切に実行しつつ、処理対象物の搬送を行うことができる搬送スケジュール生成装置、処理システム、搬送スケジュール生成方法及びプログラムを提供することができる。
【図面の簡単な説明】
【００２８】
【図１】図１は、本実施例に係る処理システムの主要構成を示す図である。
【図２】図２は、搬送スケジュール生成装置の主要構成を示すブロック図である。
【図３】図３は、処理槽とクレーンの動作可能範囲との関係の一例を示す図である。
【図４】図４は、二つのクレーンが干渉しない場合の一例を示す図である。
【図５】図５は、二つのクレーンが干渉しない場合の一例を示す図である。
【図６】図６は、二つのクレーンが干渉する場合の一例を示す図である。
【図７】図７は、二つのクレーンが干渉する場合の一例を示す図である。
【図８】図８は、七つの処理槽間で部品を搬送する二つのクレーンの動作時間帯及び移動状況の一例を示すガントチャートである。
【図９】図９は、レイアウトデータの一例を示す図である。
【図１０】図１０は、作業時間データの一例を示す図である。
【図１１】図１１は、処理手順データの一例を示す図である。
【図１２】図１２は、クレーン配置データの一例を示す図である。
【図１３】図１３は、移動時間データの一例を示す図である。
【図１４】図１４は、搬送スケジュールの最適解の算出に関する処理の流れの一例を示すフローチャートである。
【図１５】図１５は、搬送スケジュールの生成処理の流れの一例を示すフローチャートである。
【図１６】図１６は、一つの開始イベントに関する処理の流れの一例を示すフローチャートである。
【図１７】図１７は、一つの完了イベントに関する処理の流れの一例を示すフローチャートである。
【図１８】図１８は、対象クレーンの干渉範囲に関する処理の流れの一例を示すフローチャートである。
【図１９】図１９は、時刻を前倒しにする場合の開始イベントに関する処理の流れの一例を示すフローチャートである。
【図２０】図２０は、時刻を前倒しにする場合の搬送スケジュールの生成処理の流れの一例を示すフローチャートである。
【図２１】図２１は、時刻を前倒しにする場合の搬送スケジュールの生成処理の流れの一例を示すフローチャートである。
【図２２】図２２は、配置パターン設定装置を備える処理システムを示す図である。
【図２３】図２３は、三以上の処理部の配置パターンを複数設定する場合における搬送スケジュールの最適解の算出に関する処理の流れの一例を示すフローチャートである。
【図２４】図２４は、保持前動作と保持後動作を一つの動作として纏めて取り扱う場合における対象クレーンの干渉範囲に関する処理の流れの一例を示すフローチャートである。
【発明を実施するための形態】
【００２９】
以下に、本発明に係る実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。また、下記実施例における構成要素には、当業者が置換可能かつ容易なもの、あるいは実質的に同一のものが含まれる。 
【実施例】
【００３０】
図１は、本実施例に係る処理システム１の主要構成を示す図である。処理システム１は、部品処理装置５と、搬送スケジュール生成装置２０とを備える。部品処理装置５は、三以上の処理部（例えば処理槽２Ａ〜２Ｇ）と、搬送装置１０と、制御装置３とを備える。以下の記載において、図１の右側を上流側とし、図１の左側を下流側とする。本実施例に係る処理システム１は、複数の部品の各々に表面処理を施す表面処理システムである。
【００３１】
三以上の処理部は、処理対象物（部品）にそれぞれ異なる処理を施す。具体的には、三以上の処理部は、少なくとも一つが、処理対象物を浸す液体が貯留できる処理槽である。本実施例では、七つの処理槽２Ａ，２Ｂ，２Ｃ，２Ｄ，２Ｅ，２Ｆ，２Ｇを有する処理システム１について説明する。一つの処理槽（処理槽２Ａ，２Ｂ，２Ｃ，２Ｄ，２Ｅ，２Ｆ，２Ｇ）は、それぞれ一つの処理部である。七つの処理槽２Ａ，２Ｂ，２Ｃ，２Ｄ，２Ｅ，２Ｆ，２Ｇは、部品の表面処理に関する各種の処理（例えば、脱脂処理、洗浄処理、エッチング処理、アノダイズ処理、化成処理、乾燥処理等）に関して個別に設けられる。また、脱脂処理として例えば水系脱脂、アルカリ脱脂等があり、洗浄処理として例えば湯洗、水洗等がある。本実施例の処理システム１は、具体的内容が異なる処理を行う七つの処理槽２Ａ，２Ｂ，２Ｃ，２Ｄ，２Ｅ，２Ｆ，２Ｇが設けられる。処理システム１は、一部又は全部の処理について、同一の処理を行う処理槽が複数設けられていてもよい。また、処理開始前の部品を載置するための処理槽（入口）２Ａ及び処理完了後の部品を載置するための処理槽（出口）２Ｇが含まれていてもよい。各処理に対応する処理槽２Ａ〜２Ｇの配置（上流側又は下流側の位置関係）は、任意である。
【００３２】
搬送装置１０は、三以上の処理部（例えば七つの処理槽２Ａ，２Ｂ，２Ｃ，２Ｄ，２Ｅ，２Ｆ，２Ｇ）のいずれかの処理部から他のいずれかの処理部に処理対象物を搬送する三以上の処理部の数よりも一以上少ない複数のクレーン（例えばクレーン１２Ａ，１２Ｂ）が同一のレール上で三以上の処理部間を移動する。具体的には、搬送装置１０は、一対のレール１１と、二つのクレーン１２Ａ，１２Ｂとを有する。二つのクレーン１２Ａ，１２Ｂは、レール１１に沿って移動可能に設けられている。二つのクレーン１２Ａ，１２Ｂは、レール１１上を走行するための駆動部を備え、制御装置３の制御下で駆動部を動作させて移動する。
【００３３】
図１に示すように、処理槽２Ａ〜２Ｇが並列する方向とレール１１の敷設方向とは同一である。二つのクレーン１２Ａ，１２Ｂは、レール１１に沿って移動することで、アームで担持した部品を処理槽間で搬送することができるよう設けられている。
【００３４】
制御装置３は、搬送装置１０の各クレーン１２Ａ，１２Ｂの動作を制御する。具体的には、制御装置３は、駆動部やアームの操作系に対する命令を出力する装置（コンピューター等）である。制御装置３は、搬送スケジュール生成装置２０から出力された搬送スケジュールデータに従って各クレーン１２Ａ，１２Ｂの動作を制御する。
【００３５】
図２は、搬送スケジュール生成装置２０の主要構成を示すブロック図である。搬送スケジュール生成装置２０は、部品処理装置５による処理対象物の搬送スケジュールを生成する。搬送スケジュール生成装置２０は、例えば、記憶部２５と、演算部２６とを備える情報処理装置（コンピューター）である。記憶部２５は、クレーン干渉確認プログラム５１、処理工程確認プログラム５２、スケジュール作成プログラム５３等の各種のソフトウェア・プログラム及びこれらのソフトウェア・プログラムの実行に際して用いられるデータを記憶する。演算部２６は、記憶部２５に記憶されたソフトウェア・プログラムを読み出して実行処理する。これによって、搬送スケジュール生成装置２０は、干渉範囲設定部２１、判定部２２及び算出部２３として機能する。
【００３６】
記憶部２５は、処理部と処理対象物との関係に基づいて、当該処理部を処理対象物で処理する必要処理時間及び処理対象物に対して処理部で処理を実行する順序を記憶する。具体的には、記憶部２５は、例えば、レイアウトデータ６１と、作業時間データ６２と、処理手順データ６３と、クレーン配置データ６４と、移動時間データ６５と、処理便データ６６とを記憶する。これらのデータの詳細については後述する。
【００３７】
干渉範囲設定部２１は、一つのクレーン（例えばクレーン１２Ａ又はクレーン１２Ｂ）の位置を基準としてクレーンの干渉範囲を設定する。具体的には、干渉範囲設定部２１は、一つの処理槽に存する部品を他の処理槽に搬送する一つのクレーンに関して、現在の位置並びに搬送前の処理槽に対応するレール１１上の位置及び搬送後の処理槽に対応するレール１１上の位置を取得する。干渉範囲設定部２１は、取得された三つの位置を包括するレール１１上の範囲を干渉範囲として設定する。
【００３８】
図３は、処理槽２Ａ〜２Ｇとクレーン１２Ａ，１２Ｂの動作可能範囲ＭＡ，ＭＢとの関係の一例を示す図である。図３では、七つの処理槽２Ａ，２Ｂ，２Ｃ，２Ｄ，２Ｅ，２Ｆ，２Ｇと二つのクレーン１２Ａ，１２Ｂとの組み合わせであり、レール１１の敷設範囲が七つの処理槽２Ａ，２Ｂ，２Ｃ，２Ｄ，２Ｅ，２Ｆ，２Ｇに対する搬送に最低限必要な範囲であり、レール１１の敷設方向に関する処理槽２Ａ〜２Ｇの幅が等しく、かつ、レール１１の敷設方向に関する一つのクレーン１２Ａ（１２Ｂ）の幅が一つの処理槽の幅に対応する場合の例について記載している。クレーン１２Ａ，１２Ｂは、同一のレール１１上に存することから、一方のクレーンの上流側又は下流側に存する他方のクレーンにより占有される範囲に応じて動作可能範囲が制限される。図３に示す例では、クレーン１２Ａの動作可能範囲ＭＡ及びクレーン１２Ｂの動作可能範囲ＭＢを示している。各クレーンの干渉範囲は、各クレーンの動作可能範囲内で設定される。言い換えれば、各クレーンは、その動作可能範囲内の処理槽２Ａ，２Ｂ，２Ｃ，２Ｄ，２Ｅ，２Ｆ，２Ｇのいずれかに存する部品を、その動作可能範囲内の別の処理槽２Ａ，２Ｂ，２Ｃ，２Ｄ，２Ｅ，２Ｆ，２Ｇのいずれかに搬送することができる。図示しないが、クレーンの数が三以上である場合、最上流でなく、かつ、最下流でないクレーンは、上流側及び下流側に存する他のクレーンにより占有される範囲に応じて動作可能範囲が制限される。すなわち、ある一つのクレーンにとっての「他のクレーンに占有される範囲」とは、レール１１上の全範囲のうち、他のクレーンが物理的に占有する範囲及び他のクレーンを挟んで当該一つのクレーンの反対側に存する範囲をさす。
【００３９】
判定部２２は、クレーン（例えばクレーン１２Ａ，１２Ｂ）による処理対象物の搬送動作の実行を判定する。
【００４０】
図４及び図５は、二つのクレーン１２Ａ，１２Ｂが干渉しない場合の一例を示す図である。例えば図４に示すように、クレーン１２Ｂの干渉範囲ＫＡ内にクレーン１２Ａが存せず、かつ、クレーン１２Ａが干渉範囲ＫＡ内に進入する動作を行わない時間帯については、クレーン１２Ｂが部品を搬送することを妨げる他のクレーンがないことになる。この場合、判定部２２は、当該時間帯にクレーン１２Ｂによる部品の搬送を行うことができるものと判定する。また、図５に示すように、クレーン１２Ａの干渉範囲ＫＢ内にクレーン１２Ｂが存するものの、クレーン１２Ａによる搬送方向と同一の方向にクレーン１２Ｂが移動して干渉範囲ＫＢ外に出る動作を行う時間帯については、クレーン１２Ａが部品を搬送することを妨げる他のクレーンがないことになる。この場合、判定部２２は、当該時間帯にクレーン１２Ａによる部品の搬送を行うことができるものと判定する。このように、判定部２２は、干渉範囲（例えば干渉範囲ＫＢ）内に他のクレーン（例えばクレーン１２Ｂ）が存在する場合、他のクレーンを干渉範囲の外に移動させることができるときに、一つのクレーン（例えばクレーン１２Ａ）による処理対象物の搬送を行うことができると判定する。また、クレーン１２Ｂが、既にクレーン１２Ａの干渉範囲の外に移動しているときも同様である。
【００４１】
図６及び図７は、二つのクレーン１２Ａ，１２Ｂが干渉する場合の一例を示す図である。例えば図６に示すようにクレーン１２Ａの干渉範囲ＫＣ内にクレーン１２Ｂが存し、かつ、クレーン１２Ｂがクレーン１２Ａと衝突せずに干渉範囲ＫＣ外に移動することができない時間帯については、クレーン１２Ａが部品を搬送することを妨げる他のクレーンがあることになる。この場合、判定部２２は、当該時間帯にクレーン１２Ａによる部品の搬送を行うことができないものと判定する。また、図７に示すように、クレーン１２Ａの干渉範囲ＫＤ内にクレーン１２Ｂが存しないものの、クレーン１２Ａが搬送を行ったと仮定した場合の時間帯にクレーン１２Ｂが干渉範囲ＫＤ内に進入する動作を伴う時間帯については、クレーン１２Ａが部品を搬送することを妨げる他のクレーンがあることになる。この場合、判定部２２は、当該時間帯にクレーン１２Ａによる部品の搬送を行うことができないものと判定する。このように、判定部２２は、干渉範囲（例えば干渉範囲ＫＣ、ＫＤ）に他のクレーン（例えばクレーン１２Ｂ）が侵入している場合、一つのクレーン（例えばクレーン１２Ａ）による処理が実行不可と判定する。
【００４２】
ある時間帯に一つのクレーンによる部品の搬送を行うことができない場合、判定部２２は、別の時間帯に関して当該一つのクレーンによる部品の搬送を行うことができるか否か再度判定する。判定部２２は、当該一つのクレーンによる部品の搬送を行うことができる時間帯が発見されるまで、判定を繰り返す。
【００４３】
図８は、七つの処理槽２Ａ〜２Ｇ間で部品を搬送する二つのクレーン１２Ａ，１２Ｂの動作時間帯及び移動状況の一例を示すガントチャートである。算出部２３は、所定の条件下で全ての処理対象物の一連の処理の開始から終了までの搬送スケジュールを算出する。具体的には、算出部２３は、例えば図８に示すようなガントチャートに対応する搬送スケジュールを算出して出力する。すなわち算出部２３は、処理対象物に対する各処理の開始時刻及び終了時刻を示すデータ並びに各クレーン１２Ａ，１２Ｂの時系列に沿った位置情報を示すデータを出力する。図８に示すように、処理システム１は、部品処理を複数の処理対象物の各々に対して並行して実施する。
【００４４】
図９〜１３は、算出部２３により参照されるデータの一例を示す図である。算出に際して、算出部２３は、判定部２２による判定に基づいて、複数のクレーン（例えばクレーン１２Ａ，１２Ｂ）のそれぞれで処理対象物を並行して各処理部（例えば七つの処理槽２Ａ，２Ｂ，２Ｃ，２Ｄ，２Ｅ，２Ｆ，２Ｇ）に移動させる搬送スケジュールを算出する。具体的には、算出部２３は、算出に際して、レイアウトデータ６１と、作業時間データ６２と、処理手順データ６３と、クレーン配置データ６４と、移動時間データ６５と、処理便データ６６とを記憶部２５から読み出して参照し、搬送スケジュールを算出する。
【００４５】
図９は、レイアウトデータ６１の一例を示す図である。レイアウトデータ６１は、三以上の処理部（例えば処理槽２Ａ〜２Ｇ）のレイアウトを示すデータである。具体的には、レイアウトデータ６１は、例えば図９に示すように、初期値を１として純増するナンバー（Ｎｏ）と、各処理槽に対して割り振られる個別の処理槽ＩＤと、各処理槽の概要を示す内容とを含む。図９では、内容として各処理槽の符号を付した記載を用いているが、一例であってこれに限られるものでない。例えば、各処理槽で行われる処理の具体的内容を示す情報を含んでいてもよい。レイアウトデータ６１においてナンバーがより小さい処理槽が上流側に配置され、より大きい処理槽が下流側に配置される。すなわち図９に示すレイアウトデータ６１は、上流側から順に下流側に向かって配置される処理槽２Ａ〜２Ｇの配置順を示す。
【００４６】
図１０は、作業時間データ６２の一例を示す図である。作業時間データ６２は、各処理部における処理時間の上限及び下限等を示すデータである。具体的には、作業時間データ６２は、例えば図１０に示すように、処理槽ＩＤと、処理槽ＩＤ毎の処理工程を示す内容（作業項目）と、各処理槽で部品が連続して待機可能な時間（処理時間）の下限及び上限と、各処理槽でクレーン（例えばクレーン１２Ａ，１２Ｂ）が部品を搬入又は搬出する場合に費やされるクレーン１２Ａ，１２Ｂの上げ下げ時間とを含む。なお、上限及び下限が「０」である作業時間は、作業時間に上限及び下限の制限がないことを示す。作業時間データ６２が示すように、一連の処理である部品処理は、三以上の処理部（例えば処理槽２Ａ〜２Ｇ）の一部又は全部を個別に定められた下限以上かつ上限以下である処理時間占有する。このように、処理部（例えば七つの処理槽２Ａ，２Ｂ，２Ｃ，２Ｄ，２Ｅ，２Ｆ，２Ｇのいずれか）で処理対象物を処理する必要処理時間は、上限時間と下限時間とが設定されている。なお、同一の処理槽による処理槽について複数種類の処理工程と各処理工程の処理時間を作業時間データ６２で定義することもできる。例えば、一連の処理において同一の処理槽による処理を複数回行う場合等に、このような定義が行われる。
【００４７】
図１１は、処理手順データ６３の一例を示す図である。処理手順データ６３は、部品に施される各処理の処理手順を示すデータである。具体的には、処理手順データ６３は、例えば図１１に示すように、処理手順に含まれる各処理の名称（処理名称）と、各処理で用いられる内容（処理槽）及び処理槽ＩＤとを含む。図１１に示す処理手順データ６３は、一種類の部品処理に関する処理手順を示すデータであるが、複数種類の部品処理の各々に関する処理手順を示すデータであってもよい。処理手順データ６３が示すように、部品処理においては、個別に定められた順序で各処理槽間を移動することが要求される。図１１に示す処理手順データ６３は、上に記載された処理から順に処理を進めることを示している。当該処理手順データ６３は、処理が移行するタイミングで処理槽間を移動することを要求している。
【００４８】
図１２は、クレーン配置データ６４の一例を示す図である。クレーン配置データ６４は、クレーンの数及び各クレーン（例えばクレーン１２Ａ，１２Ｂ）の動作可能範囲等を示すデータである。具体的には、クレーン配置データ６４は、例えば図１２に示すように、処理槽ＩＤと、各クレーン１２Ａ，１２Ｂの初期位置及び動作可能範囲を示す列データとを含む。図１２に示す最左列の処理槽ＩＤよりも右側に存する列の数がクレーンの数に対応する。また、処理槽ＩＤよりも右側に存する各列の二重丸（◎）が各クレーン１２Ａ，１２Ｂの初期位置を示し、一重丸（○）が各クレーン１２Ａ，１２Ｂの動作可能範囲を示す。
【００４９】
図１３は、移動時間データ６５の一例を示す図である。移動時間データ６５は、各処理部間の移動に関するクレーン１２Ａ，１２Ｂの移動時間を示すデータである。具体的には、移動時間データ６５は、例えば図１３に示すように、処理槽ＩＤの組み合わせパターンと、各処理槽ＩＤに対応する処理槽間でクレーン１２Ａ，１２Ｂを移動させた場合に移動開始から移動完了までに費やされる時間とを対応付けたデータである。また、移動時間データ６５は、クレーン１２Ａ，１２Ｂが部品を担持している搬送時の移動時間と、クレーン１２Ａ，１２Ｂが部品を担持していない空搬送時の移動時間とを含む。図１３に示す移動時間データ６５における境界線Ｌの上側が搬送時の移動時間を示し、下側が空搬送時の移動時間を示す。空搬送時の移動時間は、例えば部品を担持していない状態のクレーン１２Ａ，１２Ｂを搬送対象である部品が存する処理槽２Ａ，２Ｂ，２Ｃ，２Ｄ，２Ｅ，２Ｆ，２Ｇのいずれかまで移動させる場合の移動時間を示す。また、空搬送時の移動時間は、部品の搬送を行っていないクレーンを他のクレーンの干渉範囲外まで移動させる場合の移動時間を示す。本実施例では、等条件下での各クレーン１２Ａ，１２Ｂの性能は全て同一であるものとする。
【００５０】
処理便データ６６は、処理対象物の数及び各部品に対する処理の種別を示すデータである。具体的には、処理便データ６６は、例えば一つの搬送スケジュールで処理される部品の数と、各部品に対して施される処理手順とを示すデータを含む。各部品に対して施される処理手順は、処理手順データ６３に含まれる処理手順との対応付けを示すデータである。ここで、各部品に対して施される処理手順が全て同一である場合、処理手順データ６３は、一種類の部品処理に関する処理手順を示すデータになる。一方、施される処理手順が異なる部品が一つの搬送スケジュールで処理される場合、処理手順データ６３は、複数種類の部品処理に関する処理手順を示すデータになる。以下、一つの部品の処理開始から処理終了までの一連の作業を「処理便」と記載することがある。
【００５１】
本実施例の処理便データ６６は、複数（例えば三つ）の部品の処理便の開始時刻を所定時間（例えば１．５時間）ずつずらして行うことを示すデータである。算出部２３は、処理便データ６６に従い、複数の処理対象物の一連の処理（部品処理）の各々の開始タイミングが所定時間（例えば１．５時間）ずつずらされた条件下で搬送スケジュールを算出する。
【００５２】
図１４は、搬送スケジュールの最適解の算出に関する処理の流れの一例を示すフローチャートである。図１４に示すフローチャートに関する処理は、例えば、演算部２６がスケジュール作成プログラム５３を実行処理することで行われる。算出部２３は、複数の処理便の開始時刻の時間間隔を設定する（ステップＳ１）。具体的には、算出部２３は、例えば処理便データ６６に従い、所定時間（例えば１．５時間）ずつずらされた時間間隔で処理便を開始するものとして設定する。算出部２３は、ステップＳ１にて設定された時間間隔で処理便データ６６に含まれる複数の処理便を開始した場合の搬送スケジュールを生成する（ステップＳ２）。
【００５３】
図１５は、搬送スケジュールの生成処理（ステップＳ２等）の流れの一例を示すフローチャートである。図１５に示すフローチャートに関する処理は、例えば、演算部２６がスケジュール作成プログラム５３を実行処理することで行われる。算出部２３は、搬送スケジュールのシミュレーション時刻をシミュレーション開始時刻に設定する（ステップＳ１１）。具体的には、例えば最初に処理される処理便の開始時刻が１０：１０である場合、シミュレーション開始時刻は１０：１０になる。この場合、算出部２３は、シミュレーション時刻を１０：１０に設定する。以後、最新のシミュレーション時刻を「現在のシミュレーション時刻」と記載する。
【００５４】
算出部２３は、現在のシミュレーション時刻が開始時刻である処理便における最初の処理の開始イベントを生成する（ステップＳ１２）。算出部２３は、全ての処理便に関する全てのイベントが完了したか否か判定する（ステップＳ１３）。ここで、全てのイベントが完了していないと判定された場合（ステップＳ１３；Ｎｏ）、算出部２３は、現在のシミュレーション時刻にて未処理のイベントがあるか否か判定する（ステップＳ１４）。ここで、未処理のイベントがあると判定された場合（ステップＳ１４；Ｙｅｓ）、現在のシミュレーション時刻に完了イベントがあるか否か判定する（ステップＳ１５）。ここで、完了イベントが存在しない場合（ステップＳ１５；Ｎｏ）、算出部２３は、開始イベントを一つ選択して、一つの開始イベントに関する処理を行う（ステップＳ１６）。
【００５５】
なお、各処理便の最初の開始イベントは、処理便データ６６に応じて自動的に設定される。最初の開始イベントは、処理手順データ６３に応じて設定される。本実施例では、入口２Ａでの処理工程である。開始イベントは、処理便に含まれる各処理工程を実施するための各種の動作のうち一つの動作を開始するために設定されるイベントである。完了イベントは、開始イベントにより開始された動作を完了するために設定されるイベントである。
【００５６】
図１６は、一つの開始イベントに関する処理（ステップＳ１６）の流れの一例を示すフローチャートである。図１６に示すフローチャートに関する処理は、例えば、演算部２６が処理工程確認プログラム５２を実行処理することで行われる。算出部２３は、工程の種類が処理槽での処理工程かクレーン搬送工程であるか判別する（ステップＳ３１）。ここで、処理槽での処理工程であると判定された場合、算出部２３は、処理便の最初の処理であるか否か判定する（ステップＳ３２）。処理便の最初の処理であると判定された場合（ステップＳ３２；Ｙｅｓ）、算出部２３は、最初の処理に使用する処理槽が空いているか否か判定する（ステップＳ３３）。処理槽が空いていると判定された場合（ステップＳ３３；Ｙｅｓ）、算出部２３は、現在のシミュレーション時刻を当該開始イベントの開始時刻として記録する（ステップＳ３４）。また、算出部２３は、当該開始イベントに対応する完了イベントを生成し、そのシミュレーション時刻（完了時刻）を算出する（ステップＳ３５）。具体的には、算出部２３は、作業時間データ６２を参照して該当する処理における処理時間の下限を特定し、現在のシミュレーション時刻から特定された時間が経過した後の時刻を完了時刻として算出し、完了イベントに設定する。
【００５７】
ステップＳ３３にて処理槽が空いていないと判定された場合（ステップＳ３３；Ｎｏ）、当該処理の作業は開始されない。すなわち算出部２３は、開始イベントの実施を先送りにすることを目的とした開始イベントの再生成を行う（ステップＳ３６）。具体的には、算出部２３は、所定の再設定時間（例えば１秒）経過後の開始時刻で開始イベントの再生成を行う。ステップＳ３５又はステップＳ３６の処理後、算出部２３は、開始イベントに関する処理を終了する。
【００５８】
開始イベントに関する処理（ステップＳ１６）の終了後、図１５に示すように、ステップＳ１４の処理に移行する。具体例を挙げると、最初の処理便における最初のイベントである「入口」の処理槽の場合、必ず空いていることから、上記のステップＳ３５の処理により、同時刻のシミュレーション時刻が設定された完了イベントが生成される。この場合、未処理のイベントがあることになる（ステップＳ１４；Ｙｅｓ）。ステップＳ１５にて完了イベントが存在する場合（ステップＳ１５；Ｙｅｓ）、算出部２３は、完了イベントを一つ選択して、一つの完了イベントに関する処理を行う（ステップＳ１７）。
【００５９】
図１７は、一つの完了イベントに関する処理（ステップＳ１７）の流れの一例を示すフローチャートである。図１７に示すフローチャートに関する処理は、例えば、演算部２６が処理工程確認プログラム５２を実行処理することで行われる。算出部２３は、ステップＳ３５の処理によって算出された完了時刻を記録する（ステップＳ５１）。算出部２３は、完了イベントがクレーン搬送工程であるか否か判定する（ステップＳ５２）。クレーン搬送工程でないと判定された場合（ステップＳ５２；Ｎｏ）、算出部２３は、当該完了イベントに対応する処理工程の開始イベントのシミュレーション時刻からステップＳ５１にて記録された完了時刻までの処理時間（実行処理時間）が、当該処理工程の必要処理時間を逸脱しているか否か判定する（ステップＳ５３）。具体的には、当該完了イベントに対応する処理工程の開始イベントのシミュレーション時刻からステップＳ５１にて記録された完了時刻までの処理時間について、算出部２３は、例えば作業時間データ６２により定められた下限時間及び上限時間の範囲内の処理時間から逸脱しているか否か判定する。実行処理時間が処理時間を逸脱していないと判定された場合（ステップＳ５３；Ｎｏ）、算出部２３は、次工程が存在するか否か判定する（ステップＳ５４）。具体的には、算出部２３は、処理便の処理工程が処理手順データ６３の最終工程（出口）になっているか否か判定する。ここで、次工程が存在しない場合（ステップＳ５４；Ｎｏ）、算出部２３は、完了イベントに関する処理を終了する。一方、次工程が存在する場合（ステップＳ５４；Ｙｅｓ）、算出部２３は、次工程の開始イベントを生成し（ステップＳ５５）、その後に完了イベントに関する処理を終了する。具体例を挙げると、処理手順データ６３によれば、最初の処理便の最初のイベントである入口２Ａの処理槽の後には処理槽２Ｂの処理槽がある。よって、算出部２３は、「クレーンによる入口２Ａから処理槽２Ｂへの搬送」を行うためのクレーン搬送工程の開始イベントを生成する。この場合、開始イベントのシミュレーション時刻は、現在のシミュレーション時刻になる。
【００６０】
完了イベントに関する処理（ステップＳ１７）の終了後、図１５に示すように、ステップＳ１４に移行する。ここで、例えば上記のようにクレーン搬送工程の開始イベントが生成されている場合、再びステップＳ１６の処理に移行する。
【００６１】
図１６に示すように、ステップＳ３１にて工程の種類がクレーン搬送工程であると判定された場合、判定部２２は、搬送先の処理槽が空いているか否か判定する（ステップＳ３７）。搬送先の処理槽が空いていると判定された場合（ステップＳ３７；Ｙｅｓ）、判定部２２は、搬送に使用するクレーン（例えばクレーン１２Ａ，１２Ｂのいずれか）が空いているか否か判定する（ステップＳ３８）。クレーンが空いていると判定された場合（ステップＳ３８；Ｙｅｓ）、干渉範囲設定部２１は、空いていると判定された一つのクレーン（対象クレーン）による搬送に伴う移動範囲を干渉範囲として設定する（ステップＳ３９）。判定部２２は、対象クレーンの干渉範囲に関する処理を行う（ステップＳ４０）。このように、干渉範囲設定部２１は、判定部２２で判定を行う時点毎に干渉範囲を設定する。
【００６２】
本実施例では、対象クレーンが処理対象物を保持していない状態である動作開始前の位置から、当該処理対象物が存する位置に対応するレール１１上の位置まで対象クレーンを移動させて当該処理対象物を保持するための当該対象クレーンの動作（保持前動作）と、当該対象クレーンが当該処理対象物を搬送先の処理槽に搬送する動作（保持後動作）とに個別に開始イベント及び完了イベントを設定し、個別の干渉範囲を設定する。すなわち、干渉範囲設定部２１は、一つのクレーンが処理対象物を保持していない場合、保持する対象の処理対象物を特定し、特定した処理対象物までの一つのクレーンの移動範囲を干渉範囲に設定する。また、干渉範囲設定部２１は、一つのクレーンが処理対象物を保持している場合、当該処理対象物の搬送に伴う一つのクレーンの移動範囲を干渉範囲に設定する。このように、本実施例では、一つのクレーンによる処理対象物の搬送工程を複数の時点に分けて干渉範囲を設定する。
【００６３】
図１８は、対象クレーンの干渉範囲に関する処理（ステップＳ４０）の流れの一例を示すフローチャートである。図１８に示すフローチャートに関する処理は、例えば、演算部２６がクレーン干渉確認プログラム５１を実行処理することで行われる。判定部２２は、対象クレーンでない他の一つのクレーンについて、クレーンが干渉範囲内にいるか否か判定する（ステップＳ７１）。ここで、当該他の一つのクレーンが干渉範囲内にいないと判定された場合（ステップＳ７１；Ｎｏ）、判定部２２は、当該他の一つのクレーンが占有中であって、かつ、干渉範囲内に向かって移動する動作を伴っているか否か判定する（ステップＳ７２）。ここで、当該他の一つのクレーンが占有中であって、かつ、干渉範囲内に向かって移動する動作を伴っていると判定された場合（ステップＳ７２；Ｙｅｓ）、判定部２２は、対象クレーンと他のクレーンとの干渉が発生すると判定し（ステップＳ７３）、クレーンの干渉範囲に関する処理を終了する。
【００６４】
ステップＳ７１にて当該他の一つのクレーンが干渉範囲内にいると判定された場合（ステップＳ７１；Ｙｅｓ）、判定部２２は、当該他の一つのクレーンが占有中であるか否か判定する（ステップＳ７４）。当該他の一つのクレーンが占有中でないと判定された場合（ステップＳ７４；Ｎｏ）、判定部２２は、当該他の一つのクレーンを干渉範囲外に移動させる回避動作を実施することができるか否か判定する（ステップＳ７５）。回避動作を実施することができないと判定された場合（ステップＳ７５；Ｎｏ）、ステップＳ７３の処理に移行する。すなわち判定部２２は、対象クレーンと他のクレーンとの干渉が発生すると判定し、クレーンの干渉範囲に関する処理を終了する。
【００６５】
ステップＳ７４にて当該他の一つのクレーンが占有中であると判定された場合（ステップＳ７４；Ｙｅｓ）、判定部２２は、干渉範囲内で当該他の一つのクレーンが移動を伴わない作業を行っているか否か判定する（ステップＳ７６）。言い換えれば、判定部２２は、現在のシミュレーション時刻に当該他の一つのクレーンが処理槽で部品の持ち上げ作業又は降ろし作業を行っているか否か判定する。当該他の一つのクレーンが移動せずに作業していると判定された場合（ステップＳ７６；Ｙｅｓ）、ステップＳ７３の処理に移行する。すなわち判定部２２は、対象クレーンと他のクレーンとの干渉が発生すると判定し、クレーンの干渉範囲に関する処理を終了する。
【００６６】
ステップＳ７６にて干渉範囲内で当該他の一つのクレーンが移動を伴わない作業を行っていないと判定された場合（ステップＳ７６；Ｎｏ）、判定部２２は、当該他の一つのクレーンが対象クレーンの移動方向と同一の方向に移動して干渉範囲外に出るか否か判定する（ステップＳ７７）。当該他の一つのクレーンの移動方向が対象クレーンの移動方向と異なる方向であると判定された場合や、当該他の一つのクレーンの移動先が干渉範囲内であると判定された場合（ステップＳ７７；Ｎｏ）、ステップＳ７３の処理に移行する。すなわち判定部２２は、対象クレーンと他のクレーンとの干渉が発生すると判定し、クレーンの干渉範囲に関する処理を終了する。
【００６７】
それ以外の場合、判定部２２は、対象クレーンと当該他の一つのクレーンとの関係に関して、干渉が発生しないと判定する。それ以外の場合とは、すなわち、「ステップＳ７２；Ｎｏ」、「ステップＳ７５；Ｙｅｓ」及び「ステップＳ７７；Ｙｅｓ」の場合である。「ステップＳ７２；Ｎｏ」の場合とは、干渉範囲内にいない他の一つのクレーンが占有中でない又は干渉範囲内に向かって移動する動作を伴っていないと判定された場合である。「ステップＳ７５；Ｙｅｓ」の場合とは、干渉範囲内に存する占有中でない他の一つのクレーンの回避動作を実施することができると判定された場合である。また、「ステップＳ７７；Ｙｅｓ」の場合とは、干渉範囲内に存する占有中の他の一つのクレーンが、対象クレーンの移動方向と同一の方向に移動して干渉範囲外に出る場合である。すなわち判定部２２は、干渉範囲内に他のクレーンが存する場合、他のクレーンを干渉範囲外に移動させることができるとき一つのクレーン（対象クレーン）による処理対象物の搬送を行うことができると判定する。
【００６８】
判定部２２は、対象クレーン以外の全てのクレーンについて個別にステップＳ７１から開始される対象クレーンの干渉範囲に関する処理を実施する。ただし、判定部２２は、ステップＳ７３の処理を経て処理を終了した場合、まだ対象クレーンの干渉範囲に関する処理が未実施である他のクレーンが残っていたとしても、未実施である他のクレーンについて、対象クレーンの干渉範囲に関する処理を省略する。すなわち一台でも対象クレーンに干渉する他のクレーンがあると判定された場合、現在のシミュレーション時刻に対象クレーンによるクレーン搬送工程を実施することはできないことから、判定部２２は、その時点で対象クレーンの干渉範囲に関する処理を終了する。一方、対象クレーン以外の全てのクレーンについて、干渉が発生しないと判定された場合、判定部２２は、対象クレーンと他のクレーンとの干渉が発生しないと判定する（ステップＳ７８）。
【００６９】
ただし、ステップＳ７５では、クレーンの数が三以上である場合、複数の他のクレーンに関する判定が含まれる。具体的には、対象クレーンを基準としてその上流側又は下流側のいずれか一方のレール１１上に複数の他のクレーンが存する場合、判定部２２は、複数の他のクレーンを考慮した判定を行う。具体的には、当該一方に存する全てのクレーンの位置、占有状態及び回避動作により干渉範囲外に出た場合に他のクレーンにより占有されるレール１１上の領域を満たして、他のクレーンを干渉範囲外に移動させる回避動作を実施することができるか否か判定する。例えば、対象クレーンの上流側に二つの他のクレーンが存し、かつ、上流側の干渉範囲外の領域が一つのクレーンに対応する分しかない場合、二つのクレーンのうち一つのクレーンは、干渉範囲外に移動することができない。このような場合、判定部２２は、回避動作を実施することができないと判定する。また、当該一方に存する複数のクレーンのうち一部のクレーンが干渉範囲外で移動を伴わない作業を行っている等の理由により、干渉範囲内の他のクレーンの移動先が制限されて干渉範囲外に移動することができない等の場合においても、判定部２２は、回避動作を実施することができないと判定する。このように、判定部２２は、ステップＳ７５にて、対象クレーンを基準としてその上流側又は下流側のいずれか一方のレール１１上に存する他のクレーンの数に応じた判定を行う。言い換えれば、判定部２２は、ステップＳ７５にて、当該一方に存する全てのクレーンが当該一方側における干渉範囲外に存することができるか否か判定する。判定部２２は、係る判定を上流側と下流側で個別に行う。
【００７０】
ステップＳ７８にて対象クレーンと他のクレーンとの干渉が発生しないと判定された場合、判定部２２は、回避動作（ステップＳ７５を参照）が必要であるか否か判定する（ステップＳ７９）。すなわち判定部２２は、対象クレーンと他のクレーンとの干渉を発生させないために他のクレーンの一部又は全部に回避動作をさせる必要があるか否か判定する。回避動作が必要であると判定された場合（ステップＳ７９；Ｙｅｓ）、算出部２３は、現在のシミュレーション時刻から回避動作の完了までのシミュレーション時刻まで回避動作を行う他のクレーンを占有するための処理（占有処理）を行う（ステップＳ８０）。占有処理は、回避動作の対象となる他のクレーンを対象クレーンの干渉範囲外に移動させるための処理である。占有処理は、回避動作の対象となる他のクレーンの各々に対して個別に行われる。すなわち占有処理に係り他のクレーンが移動する時間は、他のクレーンの各々の位置及び回避動作のために必要な移動距離に応じる。ステップＳ８０の処理後又はステップＳ７９にて回避動作が必要でないと判定された場合（ステップＳ７９；Ｎｏ）、判定部２２は、クレーンの干渉範囲に関する処理を終了する。
【００７１】
対象クレーンの干渉範囲に関する処理（ステップＳ４０）の終了後、図１６に示すように、判定部２２は、ステップＳ４０の処理結果に基づいて対象クレーンと他のクレーンとの干渉が発生するか否か判定する（ステップＳ４１）。対象クレーンと他のクレーンとの干渉が発生すると判定された場合（ステップＳ４１；Ｙｅｓ）、算出部２３は、開始イベントの実施を先送りにすることを目的とした開始イベントの再生成を行う（ステップＳ４２）。具体的には、算出部２３は、所定の再設定時間（例えば１秒）経過後の開始時刻で開始イベントの再生成を行う。また、ステップＳ３７にて搬送先の処理槽が空いていないと判定された場合（ステップＳ３７；Ｎｏ）及びステップＳ３８にて搬送に使用するクレーンが空いていないと判定された場合（ステップＳ３８；Ｎｏ）も、ステップＳ４２の処理に移行する。ステップＳ４２の処理後、算出部２３は、開始イベントに関する処理を終了する。
【００７２】
ステップＳ４１にて対象クレーンと他のクレーンとの干渉が発生しないと判定された場合（ステップＳ４１；Ｎｏ）、算出部２３は、当該開始イベント、すなわち当該クレーン搬送工程における搬送先の処理槽及び対象クレーンの占有処理を行う（ステップＳ４３）。また、算出部２３は、当該開始イベントにおける搬送元の処理槽について、対象クレーンが部品の持ち上げを完了して搬送先側に一つの処理槽分だけ移動した時刻で占有が解除されるように予約する処理を行う（ステップＳ４４）。ステップＳ４３，Ｓ４４の処理後、ステップＳ３４の処理に移行する。具体的には、算出部２３は、作業時間データ６２及び移動時間データ６５を参照して、搬送前の処理槽への空搬送時の移動時間、部品の持ち上げ時間、搬送前の処理槽から搬送後の処理槽への搬送時の移動時間及び部品の降ろし時間を特定する。算出部２３は、クレーン搬送工程の完了イベントを生成し、現在のシミュレーション時刻から特定された時間が経過した後の時刻を完了時刻として算出して完了イベントに設定する。すなわち、対象クレーンが占有中となる時間帯は、現在のシミュレーション時刻からステップＳ３５にて算出された完了時刻までの時間帯である。また、算出部２３は、当該クレーン搬送工程の搬送前の処理槽を用いた処理槽での処理工程の完了時刻を算出する。具体的には、算出部２３は、例えば対象クレーンが搬送前の処理槽に移動して部品の持ち上げを開始した時刻を当該処理槽での処理工程の完了時刻として算出する。ステップＳ３５の処理後、算出部２３は、開始イベントに関する処理を終了する。
【００７３】
開始イベントに関する処理（ステップＳ１６）の終了後、図１５に示すように、ステップＳ１４に移行する。ここで、上記のクレーン搬送工程の完了イベントは現在のシミュレーション時刻より後の時刻であることから、ステップＳ１４にて未処理のイベントがないと判定されることになる（ステップＳ１４；Ｎｏ）。この場合、算出部２３は、シミュレーション時刻を進める。具体的には、算出部２３は、所定の進行時間（例えば１秒）シミュレーション時刻を進める（ステップＳ１８）。その後、ステップＳ１２の処理に移行する。
【００７４】
その後、シミュレーション時刻が上記のクレーン搬送工程の完了イベントのシミュレーション時刻になった場合の完了イベントに関する処理について、図１７を参照して説明する。算出部２３は、ステップＳ３５の処理によって算出された完了時刻を記録する（ステップＳ５１）。ステップＳ５２にて、クレーン搬送工程であると判定された場合（ステップＳ５２；Ｙｅｓ）、算出部２３は、当該完了イベントまで占有されていた対象クレーンの占有を解除し（ステップＳ５６）、ステップＳ５３の処理に移行する。ここで、算出部２３は、当該完了イベントに対応する処理工程の実行処理時間が、当該処理工程の必要処理時間を逸脱しているか否か判定する。例えば、処理槽２Ｂから処理槽２Ｃへの搬送工程であった場合、算出部２３は、処理槽２Ｂを用いた処理槽の処理工程の実行処理時間が必要処理時間を逸脱しているか否か判定する。ここで、実行処理時間が必要処理時間を逸脱していると判定された場合（ステップＳ５３；Ｙｅｓ）、算出部２３は、搬送スケジュールの生成に関する処理を強制終了する（ステップＳ５７）。すなわち、処理時間が必要処理時間を逸脱している処理工程が含まれる場合、そのシミュレーション結果を採用することはできないことから、算出部２３は、処理を打ち切る。強制終了後の処理の流れについては後述する。
【００７５】
クレーン搬送工程の完了イベントに関する処理において、ステップＳ５５にて生成される次工程の開始イベントは、搬送後の処理槽を用いた処理槽での処理工程の開始イベントである。
【００７６】
クレーン搬送工程を一回以上実施した後の処理便における処理槽での処理工程の開始イベントに関する処理（図１６参照）では、ステップＳ３２にて処理便の最初の工程でないと判定される（ステップＳ３２；Ｎｏ）。この場合、ステップＳ３４の処理に移行する。入口を除く処理槽での処理工程については、クレーン搬送工程の完了を以て処理が開始されていることから、開始の先送りが不可能である。よって、入口２Ａを除く処理槽２Ｂ〜２Ｇでの処理工程は、強制的に開始されるとともに、下限の時間で完了イベントが生成されることになる。その後、クレーン搬送工程の開始時刻に基づいて、シミュレーションにおける各処理工程の完了時刻が記録される。
【００７７】
図１５〜図１８を参照した説明に含まれる処理で示すように、判定部２２は、必要処理時間と干渉範囲と処理対象物に対して実行する処理の順序と処理部（例えば七つの処理槽２Ａ，２Ｂ，２Ｃ，２Ｄ，２Ｅ，２Ｆ，２Ｇ）で処理対象物に実行している実行処理時間とを用いて、クレーン（例えばクレーン１２Ａ，１２Ｂ）による処理対象物の搬送動作の実行を判定する。
【００７８】
搬送スケジュール生成装置２０は、各処理便の出口２Ｇの完了イベントが生成されるまで、上記にて説明した処理を繰り返す。また、処理便データ６６により設定された各処理便の開始時刻に応じて、ステップＳ１２が実施される（図１５参照）。ステップＳ１３にて全ての処理便の全てのイベントが完了したと判定された場合（ステップＳ１３；Ｙｅｓ）、算出部２３は、各工程の開始時刻、終了時刻等（クレーン１２Ａ，１２Ｂの各種動作状態を示す時刻を含む）を示す搬送スケジュールデータを生成する（ステップＳ１９）。ステップＳ１９の処理後、算出部２３は、搬送スケジュールの生成処理を終了する。
【００７９】
ステップＳ２の処理後、図１４に示すように、算出部２３は、生成された最新の搬送スケジュールデータを最適解データとする（ステップＳ３）。ステップＳ２実施後のステップＳ３では、ステップＳ２にて生成された搬送スケジュールデータが最適解データとなる。
【００８０】
ステップＳ３の処理後、算出部２３は、処理便データ６６に設定された各処理便間の時間間隔をより短い時間とする処理を行う。具体的には、算出部２３は、例えば所定の短縮時間（例えば１秒）ずつ各処理便間の時間間隔を短縮する。その後、算出部２３は、より短い時間とされた各処理便間の時間間隔に基づいて、搬送スケジュールの生成処理を再度実施する（ステップＳ４）。ステップＳ４の搬送スケジュールの生成処理の具体的内容は、ステップＳ２の搬送スケジュールの生成処理と同様である。
【００８１】
ステップＳ４の処理後、算出部２３は、現在の最適解データによる処理の開始時刻から終了時刻までの時間と、ステップＳ４にて生成された搬送スケジュールデータによる処理の開始時刻から終了時刻までの時間とを比較し、最適解データよりも時間が短縮されたか否か判定する（ステップＳ５）。ここで、最適解データよりも時間が短縮されたと判定された場合（ステップＳ５；Ｙｅｓ）、ステップＳ３の処理に移行する。すなわち算出部２３は、時間が短縮された搬送スケジュールデータを最適解データとする。このように、算出部２３は、各処理便間の時間間隔（所定時間）をより短い時間にした場合に全ての処理対象物の部品処理の開始から終了までの経過時間が短縮されたとき、所定時間をより短い時間にする。
【００８２】
ステップＳ５にて最適解データよりも時間が短縮されていないと判定された場合（ステップＳ５；Ｎｏ）、算出部２３は、ステップＳ４にて生成された搬送スケジュールにおいて搬送に用いられているクレーン（例えばクレーン１２Ａ又はクレーン１２Ｂ）を変化させた場合の搬送スケジュールを生成する（ステップＳ６）。具体的には、算出部２３は、例えばあるクレーン搬送工程において採用可能なクレーンが複数ある場合に、直前に生成された搬送スケジュールで用いられた一つのクレーンでない他のクレーンによって当該クレーン搬送工程を完了させるように変更して搬送スケジュールを生成する。また、算出部２３は、例えばクレーンの空きが一つしかないタイミングで実施されたクレーン搬送工程について、よりそのクレーン搬送工程に用いることがふさわしい（例えば移動距離がより短い等）他のクレーンが空くまで待機し、当該他のクレーンが空き次第当該クレーン搬送工程を完了させるようにしてもよい。クレーンの使用パターンの変更を除き、ステップＳ６の処理の具体的内容は、ステップＳ２の搬送スケジュールの生成処理と同様である。
【００８３】
ステップＳ６の処理後、算出部２３は、現在の最適解データによる処理の開始時刻から終了時刻までの時間と、ステップＳ６にて生成された搬送スケジュールデータによる処理の開始時刻から終了時刻までの時間とを比較し、最適解データよりも時間が短縮されたか否か判定する（ステップＳ７）。ここで、最適解データよりも時間が短縮されたと判定された場合（ステップＳ７；Ｙｅｓ）、ステップＳ３の処理に移行する。すなわち算出部２３は、時間が短縮された搬送スケジュールデータを最適解データとする。このように、算出部２３は、全ての処理対象物の部品処理の開始から終了までの搬送スケジュール中に処理対象物の搬送に用いられるクレーンを他のクレーンに変更可能な場合に変更後の経過時間が変更前の経過時間よりも短縮されたとき、処理対象物の搬送に用いられるクレーンを他のクレーンに変更する。
【００８４】
ステップＳ７にて最適解データよりも時間が短縮されていないと判定された場合（ステップＳ７；Ｎｏ）、算出部２３は、現在の最適解データを搬送スケジュールデータとして出力し（ステップＳ８）、搬送スケジュールの最適解の算出に関する処理を終了する。
【００８５】
なお、ステップＳ５７の処理による強制終了（図１７参照）が発生した場合、算出部２３は、異なる条件で搬送スケジュールを再度生成する。具体的には、搬送スケジュール生成装置２０は、例えばステップＳ５７の処理による強制終了後にステップＳ４の処理に移行することで、搬送スケジュールを再度生成する。このように、算出部２３は、処理部での処理時間が必要処理時間に含まれない処理を含む搬送スケジュールが算出された場合、当該搬送スケジュールを破棄して搬送スケジュールを再度算出する。
【００８６】
以上のように、本実施例によれば、処理部（例えば七つの処理槽２Ａ，２Ｂ，２Ｃ，２Ｄ，２Ｅ，２Ｆ，２Ｇ）で処理対象物を処理する必要処理時間と処理部で処理対象物に実行している実行処理時間とを用いてクレーンによる処理対象物の搬送動作の実行を判定するので、各処理部で処理される実行処理時間が必要処理時間により近い時間となるようにクレーン（例えばクレーン１２Ａ，１２Ｂ）による処理対象物の搬送を行うことで、各処理部で処理される実行処理時間を必要処理時間により近づけることができる。すなわち、クレーンによる処理対象物の搬送動作の実行を判定する対象となる時間を、実行処理時間が必要処理時間により近い時間になる時間として搬送スケジュールを算出することで、処理対象物が搬送される三以上の処理部における各処理の処理時間を考慮して搬送を行うことができる。このように、本実施例によれば、処理対象物が搬送される三以上の処理部における各処理を適切に実行しつつ、処理対象物の搬送を行うことができる。また、判定を行う時点毎に干渉範囲を設定するので、その時点でのクレーンの動作に必要な最小の干渉範囲とすることができる。このため、クレーン同士の干渉が生じる可能性をより低減することができる。よって、クレーンの待機時間をより短くすることができることから、搬送スケジュールの短縮がより容易となる。
【００８７】
また、既に処理対象物を保持しているクレーンの干渉範囲を、当該処理対象物の搬送に伴う必要最低限の移動範囲とすることができる。このため、クレーン同士の干渉が生じる可能性をより低減することができる。
【００８８】
また、まだ処理対象物を保持していないクレーンの干渉範囲を、当該クレーンが処理対象物を保持することができる位置まで移動させるための必要最低限の移動範囲とすることができる。このため、クレーン同士の干渉が生じる可能性をより低減することができる。また、干渉範囲の設定の時点でクレーンが処理対象物を保持しているか否かに応じてクレーンの干渉範囲を個別に設定することで、移動開始前のクレーンが処理対象物を保持可能な位置まで移動し、その後に当該処理対象物を搬送先まで搬送するために移動する一連の搬送工程を複数の時点に分けて干渉範囲を設定することができる。このため、各時点の干渉範囲を最小限にすることができる。
【００８９】
また、必要処理時間に含まれない処理を含む搬送スケジュールが破棄されるので、必ず必要処理時間を満たす搬送スケジュールを算出することができる。
【００９０】
また、他のクレーンを干渉範囲の外に移動させて一つのクレーンによる処理対象物の搬送を行うことができるようになるので、当該一つのクレーンによる処理が実行不可と判定される機会をより低減することができる。このため、当該一つのクレーンによる搬送をより前倒ししやすくなる。よって、搬送スケジュール全体の処理時間（リードタイム）をより短縮することができる。
【００９１】
また、所定時間間隔で処理対象物に対する処理を開始することができる。また、最初に占有する処理槽が同一である複数の処理対象物についても、所定時間ずつ開始タイミングをずらすことで、各処理対象物により占有されることになる処理槽を重複させることなく処理を行うことができる。すなわち各処理対象物の処理待ち状態を生じさせにくくすることができることから、処理時間の上限及び下限を満たす搬送スケジュールの生成がより容易になる。
【００９２】
また、所定時間をより短い時間にした場合に全ての処理対象物の一連の処理の開始から終了までの経過時間が短縮されたとき、所定時間をより短い時間にすることで、リードタイムをより縮めることができる。また、搬送スケジュールが成立し得るより短い時間間隔（サイクルタイム）を発見することができる。
【００９３】
また、搬送スケジュール中で処理対象物の搬送に用いられるクレーンを別のクレーンに変更可能な場合に、クレーンの変更後の全ての処理対象物の一連の処理の開始から終了までの経過時間がクレーンの変更前の経過時間よりも短縮されたとき、処理対象物の搬送に用いられるクレーンを別のクレーンに変更することで、リードタイムをより縮めることができる。また、より短いサイクルタイムを発見することができる。
【００９４】
上記の実施例はあくまで一例であり、その具体的内容について適宜変更可能である。例えば、上記の実施例で、算出部２３は、ステップＳ３５にて作業時間データ６２を参照して該当する処理における処理時間の下限を特定し、現在のシミュレーション時刻から特定された時間が経過した後の時刻を完了時刻として算出し、完了イベントに設定しているが、これは完了時刻の算出に係る一例であってこれに限られるものでない。例えば、処理部による処理時間に関して、上限及び下限に加えて、最良の処理時間（ベストタイミング）が存する場合、算出部２３は、ステップＳ３５にて処理時間が最良の処理時間となるように完了時刻を算出し、完了イベントに設定するようにしてもよい。この場合、例えば作業時間データ６２に最良の処理時間を示す情報がさらに含まれる。また、算出部２３は、作業時間データ６２における上限と下限の中間の時間を最良の処理時間とするようにしてもよい。
【００９５】
また、上記の実施例では、一度設定された時刻で開始イベントを実施することができない場合に、ステップＳ３６やステップＳ４２にて開始イベントの実施時刻を先送りすることで開始イベントを実施することができる時刻を求めているが、これは開始イベントの実施時刻の変更方法の一例であってこれに限られるものでない。例えば、上記のように算出部２３によりステップＳ３５にて処理時間が最良の処理時間となる完了時刻が完了イベントに設定されている場合、この完了イベントに関連する開始イベント（例えば処理便での処理工程の完了イベントに対応するクレーン搬送工程）について一度設定された時刻で開始イベントを実施することができない場合に、この最良の処理時間に対応する時刻から時刻を前倒しするようにしてもよい。
【００９６】
図１９は、時刻を前倒しにする場合の開始イベントに関する処理の流れの一例を示すフローチャートである。図１９に示す処理は、１つの開始イベントに関する処理（ステップＳ１６）として実行される処理の一例である。図１９に示すフローチャートに含まれる処理のうち、図１６に示すフローチャートに含まれる処理と同様の処理については同じステップ番号を付して説明を省略する。時刻を前倒しにする場合の開始イベントに関する処理では、算出部２３は、開始イベントの実施を先送りにしていたステップＳ３６の処理及びステップＳ４２の処理に代えて、開始イベントの実施を前倒しにすることを目的とした開始イベントの再生成を行う（ステップＳ９１，Ｓ９２）。具体的には、算出部２３は、所定の前倒し時間（例えば１秒）だけ前の開始時刻で開始イベントの再生成を行う。ステップＳ９１，Ｓ９２にて再生成された開始イベントは、「前倒し開始イベント」になる。
【００９７】
図２０、図２１は、時刻を前倒しにする場合の搬送スケジュールの生成処理（ステップＳ２等）の流れの一例を示すフローチャートである。図２０、図２１に示すフローチャートに含まれる処理のうち、図１５に示すフローチャートに含まれる処理と同様の処理については同じステップ番号を付して説明を省略する。ステップＳ１３にて全てのイベントが完了していないと判定された場合（ステップＳ１３；Ｎｏ）、算出部２３は、現在のシミュレーション時刻において再生成された前倒し開始イベントがあるかどうか判定する（ステップＳ１０１）。前倒し開始イベントがないと判定された場合（ステップＳ１０１；Ｎｏ）、ステップＳ１４の処理に移行する。一方、ステップＳ１０１にて前倒し開始イベントがあると判定された場合（ステップＳ１０１；Ｙｅｓ）、算出部２３は、現在のシミュレーション時刻において処理された全ての開始イベント及び完了イベントを未処理の状態に戻す（ステップＳ１０２）。その後、算出部２３は、所定の前倒し時間（例えば１秒）シミュレーション時刻を戻し（ステップＳ１０３）、ステップＳ１４の処理に移行する。
【００９８】
図１９から図２１に示すように、処理部での処理時間が必要処理時間に含まれない処理を含む搬送スケジュールが算出された場合、当該搬送スケジュールを破棄して搬送スケジュールを再度算出する、つまり計算済みの処理を破棄して、所定の時間分処理を戻して、搬送スケジュールを再度算出することで、対象のイベントを当初の算出結果から前倒ししたタイミングで実行した搬送スケジュールを算出することができる。これにより、より適切な搬送スケジュールが算出しやすくなる。
【００９９】
処理部は、前倒しでもスケジュールを設定できることで、処理のベストタイミングを基準として前後にタイミングを移動させることができ、各処理槽での処理をより適切な時間で実行する搬送スケジュールを作成することができる。
【０１００】
また、搬送スケジュール生成装置２０は、最良の処理時間からの先送りと前倒しとの両方を組み合わせて搬送スケジュールを生成するようにしてもよい。この場合、算出部２３は、例えば、必要処理時間の上限時間と下限時間との間における最良の処理時間の位置づけに応じて、先送りにするか前倒しにするかを決定するようにしてもよい。具体的には、算出部２３は、例えば、最良の処理時間が下限時間よりも上限時間寄りであった場合、先送りにし、逆の場合には前倒しにするようにしてもよい。これによって、先送り又は前倒しにすることができる試行回数をより増やすことができる。これは先送り又は前倒しのいずれを用いるかの決定方法の一例であって、これに限られるものでない。例えば、前倒し又は先送りのいずれを優先するかを示す情報を各処理工程に設定してもよい。また、先送り又は前倒しを限界まで試行しても搬送を行うことができないと判定された場合に、限界まで施行された時間のシフトと逆の時間のシフト（先送り試行済みの場合は前倒し、前倒し試行済みの場合は先送り）を行うようにしてもよい。
【０１０１】
上記の実施例では、レール１１によるクレーン１２Ａ，１２Ｂの可動範囲が処理槽の数と厳密に対応しているが、レール１１がさらに延長されてもよい。すなわち搬送を行わないクレーン１２Ａ，１２Ｂを退避させるための専用の領域（退避領域）が設けられていてもよい。この場合、よりクレーン１２Ａ，１２Ｂ同士の干渉が生じにくくなることから、よりサイクルタイム及びリードタイムを短縮しやすい。
【０１０２】
また、上記の実施例における処理部である処理槽の配置は一例であり、具体的な処理内容に応じて処理部の配置を変更するようにしてもよい。例えば、三以上の処理部の位置関係を決定する配置を変更することでサイクルタイムやリードタイムをより縮められる場合があり得る。よって、搬送スケジュールの生成に係り、三以上の処理部の配置パターンを複数設定するようにしてもよい。この場合、搬送スケジュール生成装置２０は、各配置パターンの搬送スケジュールの生成を行い、最もリードタイムが短い搬送スケジュールと当該搬送スケジュールに対応する処理部の配置パターンとの組み合わせを最適解とするようにしてもよい。
【０１０３】
図２２は、配置パターン設定装置を備える処理システム１Ａを示す図である。処理システム１Ａは、図２２に示すように、三以上の処理部の配置パターンを複数設定するための構成（配置パターン設定装置７０）を備えてもよい。配置パターン設定装置７０は、上流側から下流側にかけての三以上の処理部の並び順を配置パターンとして算出する。配置パターン設定装置７０は、ｎ個の処理部ならば、上流側から下流側の並び順でｎ！（ｎの階乗）通りの配置パターンを算出することができる。この場合、搬送スケジュール生成装置２０は、配置パターン設定装置７０により設定された複数の配置パターンの各々について搬送スケジュールを生成する。
【０１０４】
配置パターン設定装置７０は、三以上の処理部に含まれる各処理部同士が隣接可能か否かの設定に基づいて、配置パターンを算出するようにしてもよい。これにより、作業者は、各処理槽の関係を予め設定しておくことで、実際の運用に沿った配置パターンで処理槽を配置することができる。
【０１０５】
また、配置パターン設定装置７０は、三以上の処理部の各々を用いて行われる処理に基づいて各処理部に対して行われた重み付けに基づいて、配置パターンを設定するようにしてもよい。具体的には、配置パターン設定装置７０は、各処理便に含まれる処理工程の順序等の傾向に基づいて、より上流側（又は下流側）に存するほうが好ましい処理部がある場合に、係る処理部に配置に関する重み付けを行い、重み付けが反映された配置パターンを算出するようにしてもよい。
【０１０６】
図２３は、三以上の処理部の配置パターンを複数設定する場合における搬送スケジュールの最適解の算出に関する処理の流れの一例を示すフローチャートである。図２３に示すフローチャートに関する処理は、例えば、演算部２６がスケジュール作成プログラム５３を実行処理することで行われる。算出部２３は、三以上の処理部が取り得る配置パターンのうち一つの配置パターン（初期配置パターン）を設定する（ステップＳ１２１）。次に、算出部２３は、初期配置パターンにおける最適解データを求めるための搬送スケジュールの生成処理を行う（ステップＳ１２２）。ステップＳ１２２の処理内容は、上記で図１４等を参照して説明したステップＳ１〜ステップＳ８の処理及びこれらの各処理の具体的内容（図１５〜図２１及び後述する図２４を含む）による処理内容である。
【０１０７】
算出部２３は、最新の最適解データを最適配置解データとする（ステップＳ１２３）。ステップＳ１２２実施直後のステップＳ１２３では、ステップＳ１２２にて生成された搬送スケジュールデータが最適配置解データとなる。
【０１０８】
ステップＳ１２３の処理後、算出部２３は、既に搬送スケジュールが生成された配置パターンとは異なる配置パターンを設定する。その後、算出部２３は、設定された異なる配置パターンにおける最適解データを求めるための搬送スケジュールの生成処理を行う（ステップＳ１２４）。ステップＳ１２４の搬送スケジュールの生成処理の具体的内容は、ステップＳ１２２の搬送スケジュールの生成処理と同様である。
【０１０９】
ステップＳ１２４の処理後、算出部２３は、現在の最適配置解データによる処理の開始時刻から終了時刻までの時間と、ステップＳ１２４にて生成された最適解データによる処理の開始時刻から終了時刻までの時間とを比較し、最適配置解データよりも時間が短縮されたか否か判定する（ステップＳ１２５）。ここで、最適配置解データよりも時間が短縮されたと判定された場合（ステップＳ１２５；Ｙｅｓ）、ステップＳ１２３の処理に移行する。すなわち算出部２３は、時間が短縮された配置パターンによる最適解データを最適配置解データとする。
【０１１０】
ステップＳ１２５にて最適配置解データよりも時間が短縮されていないと判定された場合（ステップＳ１２５；Ｎｏ）、算出部２３は、現在の最適配置解データを搬送スケジュールデータとして出力し（ステップＳ１２６）、搬送スケジュールの最適解の算出に関する処理を終了する。
【０１１１】
ステップＳ１２１及びステップＳ１２３の処理において設定される配置パターンの各々は、例えば算出部２３に参照される所定のデータ（配置パターンデータ）に予め設定されているが、これは配置パターンの準備の一例であってこれに限られるものでなく、適宜変更可能である。例えば、図２３に示すフローチャートに従った処理中に算出部２３が配置パターンの入力を求める画面を表示させ、入力の完了に応じて以降の処理を進めるようにしてもよい。
【０１１２】
上記の実施例では、全ての処理便が同一の処理手順であるが、一例であってこれに限られるものでない。一連の処理の具体的内容を定める処理便は、三以上の処理部の一部又は全部を個別に定められた下限以上かつ上限以下である処理時間占有し、かつ、個別に定められた順序で各処理槽間を移動することを要求する全ての組み合わせを含みうる。また、二度以上同一の処理槽を占有する時間帯を含む処理便であってもよい。この場合、差がある事項に対応するデータ（例えば作業時間データ６２、処理手順データ６３等）において処理便別のデータを用意することで対応することができる。
【０１１３】
上記の実施例では、所定時間間隔で各処理対象物の処理を開始することを前提として搬送スケジュールを生成しているが、一例であってこれに限られるものでなく、適宜変更可能である。例えば、最初の処理やその直後の処理に使用する処理槽が異なる複数の処理対象物の処理を相対的に短い時間間隔で実施し、最初の処理やその直後の処理に使用する処理槽が同一の複数の処理対象物の処理を（当該処理槽の占有時間に応じた）相対的に長い時間間隔で実施するようにしてもよい。これらの時間間隔の個別設定や相対関係は、処理槽の占有時間やクレーンによる搬送に費やされる時間等、各種の条件に応じて適宜設定することができる。
【０１１４】
上記の実施例では、保持前動作と保持後動作に個別に開始イベント及び完了イベント並びに干渉範囲を設定しているが、搬送スケジュール生成装置２０は、保持前動作と保持後動作を一つの動作として纏めて取り扱うようにしてもよい。この場合、干渉範囲設定部２１は、一つのクレーンが処理対象物を保持していない場合、保持する対象の処理対象物を特定し、一つのクレーンの位置から特定した処理対象物の位置までの移動範囲及び、特定した処理対象物の位置から特定した処理対象物を移動させる処理部までの移動範囲を干渉範囲に設定する。
【０１１５】
図２４は、保持前動作と保持後動作を一つの動作として纏めて取り扱う場合における対象クレーンの干渉範囲に関する処理の流れの一例を示すフローチャートである。図２４に示す処理は、対象クレーンの干渉範囲に関する処理（ステップＳ４０）として実行される処理の一例である。図２４に示すフローチャートに含まれる処理のうち、図１８に示すフローチャートに含まれる処理と同様の処理については同じステップ番号を付して説明を省略する。ステップＳ７４にて当該他の一つのクレーンが占有中であると判定された場合（ステップＳ７４；Ｙｅｓ）、判定部２２は、対象クレーンの現在の位置と搬送前の処理槽に対応するレール１１上の位置との間に当該他の一つのクレーンが存するか否か判定する（ステップＳ１１１）。言い換えれば、判定部２２は、対象クレーンから見て搬送前の処理槽側の干渉範囲内に当該他の一つのクレーンが存するか否か判定する。ステップＳ１１１にて当該他の一つのクレーンが存すると判定された場合（ステップＳ１１１；Ｙｅｓ）、ステップＳ７３の処理に移行する。すなわち判定部２２は、対象クレーンと他のクレーンとの干渉が発生すると判定し、クレーンの干渉範囲に関する処理を終了する。ステップＳ１１１にて対象クレーンの現在の位置と搬送前の処理槽に対応するレール１１上の位置との間に当該他の一つのクレーンが存しないと判定された場合（ステップＳ１１１；Ｎｏ）、ステップＳ７６の処理に移行する。
【０１１６】
ステップＳ７６にて干渉範囲内で当該他の一つのクレーンが移動を伴わない作業を行っていないと判定された場合（ステップＳ７６；Ｎｏ）、判定部２２は、当該他の一つのクレーンが対象クレーンによる処理対象物の搬送方向と同一の方向に移動して干渉範囲外に出るか否か判定する（ステップＳ１１２）。当該他の一つのクレーンの移動方向が対象クレーンによる処理対象物の搬送方向と異なる方向であると判定された場合や、当該他の一つのクレーンの移動先が干渉範囲内であると判定された場合（ステップＳ１１２；Ｎｏ）、ステップＳ７３の処理に移行する。すなわち判定部２２は、対象クレーンと他のクレーンとの干渉が発生すると判定し、クレーンの干渉範囲に関する処理を終了する。一方、ステップＳ１１２にて当該他の一つのクレーンが対象クレーンによる処理対象物の搬送方向と同一の方向に移動して干渉範囲外に出ると判定された場合（ステップＳ１１２；Ｙｅｓ）、判定部２２は、対象クレーンと当該他の一つのクレーンとの関係に関して、干渉が発生しないと判定する。
【０１１７】
いったん保持前動作と保持後動作を一つの動作として纏めて取り扱った後に保持後動作を独立させてもよい。具体的には、判定部２２は、例えば上記の前倒しに関する判定において、あるクレーン搬送工程の保持後動作を取り消せば前倒しが可能な場合に、当該クレーン搬送工程の保持後動作のみを取り消すようにしてもよい。この場合、当該クレーン搬送工程の保持前動作は存続し、処理対象物を保持したクレーンが存することになる。このため、搬送スケジュール生成装置２０は、このクレーンの保持後動作に対応する開始イベント及び完了イベントを個別に再設定する。すなわち、干渉範囲設定部２１は、一つのクレーンが処理対象物を保持している場合、当該処理対象物の搬送に伴う一つのクレーンの移動範囲を干渉範囲に設定する。
【０１１８】
上記の実施例では、全てのクレーン１２Ａ，１２Ｂが同一の大きさ及び移動性能であるが、一例であってこれに限られるものでない。複数のクレーンの一部又は全部に関してクレーン同士の幅方向の大きさ、性能等に関する差があってもよい。この場合、差がある事項に対応するデータ（例えばクレーン配置データ６４、移動時間データ６５等）においてクレーン別のデータを用意することで対応することができる。また、クレーンによる搬送方向は上流から下流に限定されない。クレーンは、下流から上流への搬送も当然行うことができる。
【０１１９】
レール１１の敷設方向に沿う各処理槽２Ａ〜２Ｇの幅は不均一であってもよい。処理槽２Ａ〜２Ｇは、容器状であることに限定されない。処理槽２Ａ〜２Ｇは、所望の処理を行うことができる領域（スペース）であればよい。例えば、処理槽２Ａ〜２Ｇは、処理のための設備を備えた区画であってもよい。
【０１２０】
上記の実施例では、搬送スケジュール生成装置２０は、ソフトウェア・プログラムを利用したコンピューター処理により干渉範囲設定部２１、判定部２２及び算出部２３の機能を実現しているが、これらの機能の一部又は全部を専用のハードウェアによって実現してもよい。
【符号の説明】
【０１２１】
１            処理システム
２Ａ〜２Ｇ    処理槽
３            制御装置
５            部品処理装置
１０            搬送装置
１１            レール
１２Ａ，１２Ｂ  クレーン
２０            搬送スケジュール生成装置
２１            干渉範囲設定部
２２            判定部
２３            算出部
２５            記憶部
２６            演算部
５１            クレーン干渉確認プログラム
５２            処理工程確認プログラム
５３            スケジュール作成プログラム
６１            レイアウトデータ
６２            作業時間データ
６３            処理手順データ
６４            クレーン配置データ
６５            移動時間データ
６６            処理便データ
７０            配置パターン設定装置
Ｌ            境界線
ＭＡ，ＭＢ      動作可能範囲
ＫＡ〜ＫＤ      干渉範囲
【図１】
2015160713.tif 000003
【図２】
2015160713.tif 000004
【図３】
2015160713.tif 000005
【図４】
2015160713.tif 000006
【図５】
2015160713.tif 000007
【図６】
2015160713.tif 000008
【図７】
2015160713.tif 000009
【図８】
2015160713.tif 000010
【図９】
2015160713.tif 000011
【図１０】
2015160713.tif 000012
【図１１】
2015160713.tif 000013
【図１２】
2015160713.tif 000014
【図１３】
2015160713.tif 000015
【図１４】
2015160713.tif 000016
【図１５】
2015160713.tif 000017
【図１６】
2015160713.tif 000018
【図１７】
2015160713.tif 000019
【図１８】
2015160713.tif 000020
【図１９】
2015160713.tif 000021
【図２０】
2015160713.tif 000022
【図２１】
2015160713.tif 000023
【図２２】
2015160713.tif 000024
【図２３】
2015160713.tif 000025
【図２４】
2015160713.tif 000026