(57)【特許請求の範囲】
【請求項１】
シミュレーション対象の搬送をシミュレーションするシミュレーション装置であって、
搬送対象の第１のワークデータに設定された前記第１のワークデータへの搭載を許容する接触可能範囲に搬送対象の第２のワークデータが入ったことを検出する接触検出部と、
前記接触検出部によって検出された前記第２のワークデータを前記第１のワークデータに関連付ける関連付け部と、
前記関連付け部によって関連付けされた前記第１および第２のワークデータを表示対象に設定する設定部と、
を有することを特徴とするシミュレーション装置。
【請求項２】
前記第１のワークデータの移動を検出する移動検出部と、
前記移動検出部によって前記第１のワークデータの移動が検出された場合、前記第１のワークデータの移動方向への移動量により前記第２のワークデータの位置情報を更新する更新部と、を有し、
前記設定部は、
移動後の前記第１および第２のワークデータを表示対象に設定することを特徴とする請求項１に記載のシミュレーション装置。
【請求項３】
前記シミュレーション対象を構成する部品データにより前記第１のワークデータの接触可能範囲から前記第２のワークデータが離脱したことを検出する離脱検出部を有し、
前記関連付け部は、
前記離脱検出部によって前記第１のワークデータとの離脱が検出された前記第２のワークデータとの関連付けを解除するとともに、前記第２のワークデータを前記部品データに関連付け、
前記設定部は、
離脱後の前記第１および第２のワークデータを表示対象に設定することを特徴とする請求項１に記載のシミュレーション装置。
【請求項４】
所定のワークモデルに対する組付先のワークモデルを指定する指定部を有し、
前記接触検出部は、
前記指定部によって指定されたワークモデルにより生成されたワークデータ群の各々のワークデータが有する当該ワークデータへの搭載を許容する接触可能範囲のいずれかに、前記第２のワークデータが接近したことを検出することを特徴とする請求項１〜３のいずれか一つに記載のシミュレーション装置。
【請求項５】
前記指定部は、
前記第２のワークデータのワークモデルとは異なるワークモデルを指定することを特徴とする請求項４に記載のシミュレーション装置。
【請求項６】
前記指定部は、
前記第２のワークデータのワークモデルと同一のワークモデルを指定することを特徴とする請求項４に記載のシミュレーション装置。
【請求項７】
シミュレーション対象の搬送をシミュレーションするコンピュータが、
搬送対象の第１のワークデータに設定された前記第１のワークデータへの搭載を許容する接触可能範囲に搬送対象の第２のワークデータが入ったことを検出し、
検出された前記第２のワークデータを前記第１のワークデータに関連付け、
関連付けされた前記第１および第２のワークデータを表示対象に設定する、
処理を実行することを特徴とするシミュレーション方法。
【請求項８】
シミュレーション対象の搬送をシミュレーションするコンピュータに、
搬送対象の第１のワークデータに設定された前記第１のワークデータへの搭載を許容する接触可能範囲に搬送対象の第２のワークデータが入ったことを検出し、
検出された前記第２のワークデータを前記第１のワークデータに関連付け、
関連付けされた前記第１および第２のワークデータを表示対象に設定する、
処理を実行させることを特徴とするシミュレーションプログラム。
【請求項９】
搬送対象の第１のワークデータに設定された前記第１のワークデータへの搭載を許容する接触可能範囲内に搬送対象の第２のワークデータを検出すると、前記第２のワークデータと前記第１のワークデータとを関連付け、
前記第２のワークデータの位置情報を、前記第１のワークデータの位置情報を基準に特定する
処理をコンピュータに実行させることを特徴とする搬送シミュレーションプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、シミュレーション装置、シミュレーション方法、およびシミュレーションプログラムに関する。
【背景技術】
【０００２】
従来の搬送シミュレーションとして、シミュレーション時間間隔毎のレールフレームを演算してから、実際に搬送シミュレーションを実行しながら基準フレームとレールフレームとを一致させて他物体との干渉状態をチェックする技術が開示されている。
【０００３】
また、複数の仮想機器シミュレータと仮想工場カーネルとからなり、仮想機器シミュレータがコントローラを模擬する仮想コントローラと機械運動を模擬する仮想機械とを備えた技術が開示されている。当該技術は、仮想機器シミュレータによるシミュレーションを実行し、機器モデルの３次元形状の干渉をチェックし、シミュレーション内の時間管理を行い、機器モデルの３次元形状の表示処理を行い、外部システムとの通信を行う。
【０００４】
また、ワークと、搬送システムの装置要素または別のワークとの相互作用の有無と、判別則と、からワーク作用状態を判別し、搬送システムの装置モデルにおけるワークおよび装置要素の挙動をシミュレーションする技術が開示されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開平１０−２６４８７１号公報
【特許文献２】特開２０００−０８１９０６号公報
【特許文献３】特開２００２−０６８４１６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
ワークが搭載されるトレイ自体もコンベア上で搬送されるワークの一種であり、実際の搬送システムではワークはトレイに積載された状態で搬送されることがある。このような搬送システムでのワーク搬送をシミュレーションする場合、トレイに積載されたワークもトレイに追従して擬似的に搬送させるため、搬送システムの３次元ＣＡＤデータ内のコンベアを上下２段にする必要がある。すなわち、下段のコンベアでトレイを搬送し、透明にした上段のコンベアでトレイに積載されたワークを同期するように搬送することで、擬似的にトレイに搭載されたワークの搬送をシミュレーションすることができる。
【０００７】
しかしながら、トレイやトレイに積載されるワークの高さが異なると、上段のコンベアから離れた位置にワークが位置することになる。また、搬送されたトレイ列の先頭のトレイの停止による後続のトレイの滞留をシミュレーションする場合、各トレイ上の各ワークはワーク用のコンベアにより滞留するため、トレイ列とは独立して滞留してしまう。したがって、トレイとその上に搭載されるワークとの位置ずれが生じてしまうことになる。このように、トレイに搭載されたワーク搬送をシミュレーションするにあたり、コンベアを上下２段にして搬送シミュレーションを実行すると、搬送シミュレーション精度が低下するという問題がある。
【０００８】
また、コンベアを上下２段にせずにトレイに搭載されたワーク搬送をシミュレーションする場合、搬送システムの３次元ＣＡＤデータにおいて、各トレイにワークを関連付ける設定作業が必要になる。トレイも含めてワークは、搬送シミュレーション中に増減する。たとえば、トレイが増加するとそのトレイに搭載されるワークを関連付ける設定作業が必要になり、また、トレイに搭載されたワークをトレイから取り除くとそのトレイとワークとのデータの関連を消去する設定作業が必要となる。
【０００９】
本発明は、高精度の搬送シミュレーションを効率的に実行することができるシミュレーション装置、シミュレーション方法、およびシミュレーションプログラムを提供することを目的とする。
【課題を解決するための手段】
【００１０】
本発明の一側面によれば、シミュレーション対象の搬送をシミュレーションするシミュレーション装置、シミュレーション方法、およびシミュレーションプログラムであって、第１のワークデータに設定された前記第１のワークデータへの搭載を許容する接触可能範囲に第２のワークデータが入ったことを検出し、検出された前記第２のワークデータを前記第１のワークデータに関連付け、関連付けされた前記第１および第２のワークデータを表示対象に設定するシミュレーション装置、シミュレーション方法、およびシミュレーションプログラムが提案される。
【発明の効果】
【００１１】
本発明の一側面によれば、高精度の搬送シミュレーションを効率的に実行することができるという効果を奏する。
【図面の簡単な説明】
【００１２】
【図１】図１は、ワーク搬送のシミュレーション例（１）を示す説明図である。
【図２】図２は、部品データおよびワークデータのツリー構造データ例（１）を示す説明図である。
【図３】図３は、ワーク搬送のシミュレーション例（２）を示す説明図である。
【図４】図４は、部品データおよびワークデータのツリー構造データ例（２）を示す説明図である。
【図５】図５は、ワーク搬送のシミュレーション例（３）を示す説明図である。
【図６】図６は、部品データおよびワークデータのツリー構造データ例（３）を示す説明図である。
【図７】図７は、部品モデルのデータ構造例を示す説明図である。
【図８】図８は、部品データのデータ構造例を示す説明図である。
【図９】図９は、部品データである搬送アームＡ１の一例を示す説明図である。
【図１０】図１０は、部品データである搬送コンベアＣ１の一例を示す説明図である。
【図１１】図１１は、ワークモデルのデータ構造例を示す説明図である。
【図１２】図１２は、ワークデータのデータ構造例を示す説明図である。
【図１３】図１３は、ワークデータであるトレイの一例を示す説明図である。
【図１４】図１４は、ワークデータであるワークの一例を示す説明図である。
【図１５】図１５は、シミュレーション装置のハードウェア構成例を示すブロック図である。
【図１６】図１６は、シミュレーション装置１５００の機能的構成例を示すブロック図である。
【図１７】図１７は、本実施の形態にかかるシミュレーション装置１５００によるシミュレーション処理手順例を示すフローチャート（その１）である。
【図１８】図１８は、本実施の形態にかかるシミュレーション装置１５００によるシミュレーション処理手順例を示すフローチャート（その２）である。
【図１９】図１９は、本実施の形態にかかるシミュレーション装置１５００によるシミュレーション処理手順例を示すフローチャート（その３）である。
【図２０】図２０は、ワークデータの情報更新処理例を示すフローチャートである。
【発明を実施するための形態】
【００１３】
以下に添付図面を参照して、この発明にかかるシミュレーション装置、シミュレーション方法、およびシミュレーションプログラムの実施の形態を詳細に説明する。まず、搬送システムの３次元ＣＡＤデータについて説明する。シミュレーション対象である搬送システムの３次元ＣＡＤデータは、搬送コンベアと、搬送アームと、ストッパと、を含む。この他にも、搬送システムの３次元ＣＡＤデータは、各種部品データにより構築されるが、ここでは、代表的な部品データとして、搬送コンベア、搬送アーム、およびストッパを例に挙げて説明する。
【００１４】
搬送コンベアは、搬送コンベア上のワークを搬送する部品データである。搬送コンベアによる搬送の開始、停止、および搬送速度は、図示しない制御プログラムにより制御される。搬送アームは、ワークを把持する部品データである。搬送アームの移動、停止、ワークの把持、および把持の解除は、制御プログラムにより制御される。
【００１５】
ストッパは、搬送コンベア上を搬送されるワークを停止させる部品データである。ストッパは、上下に進退する。ストッパが搬送コンベアの搬送路を塞ぐと、搬送コンベアが駆動中であってもストッパに当接したワークは停止させられる。ストッパの進退は、制御プログラムにより制御される。制御プログラムは、搬送システムの３次元ＣＡＤデータの搬送動作を実現するプログラムである。制御プログラムによる搬送動作は、表示画面に表示される。
【００１６】
＜ワーク搬送のシミュレーション例＞
本実施の形態では、上述した搬送システムによりワークの搬送をシミュレーションする。ワークとは、搬送システム上で搬送される製品や部品、食料品、商品などの搬送物を示すワークデータである。トレイとは、ワークを積載するワークデータである。すなわち、トレイもワークデータの一種である。
【００１７】
図１は、ワーク搬送のシミュレーション例（１）を示す説明図である。（Ａ）は、搬送システムの３次元ＣＡＤデータＳにおいて、搬送コンベアＣ１が一時停止している状態を示す。搬送コンベアＣ１には、複数（例として３個）のトレイｗ１ａ〜ｗ１ｃが搭載されている。トレイｗ１ａにはワークｗ２ａが積載されており、トレイｗ１ｂにはワークｗ２ｂが積載されている。搬送アームＡ１は、ワークｗ２ｃを把持して搬送している。
【００１８】
（Ｂ）は、（Ａ）の次状態を示す。搬送アームＡ１は、ワークｗ２ｃを把持したまま降下し、ワークｗ２ｃをトレイｗ１ｃに載置する。（Ｃ）は、（Ｂ）の次状態を示す。搬送アームＡ１は、ワークｗ２ｃをトレイｗ１ｃに載置したあと、ワークｗ２ｃの把持を解除して上昇する。このあと、搬送コンベアＣ１の一時停止が解除され、トレイｗ１ａ〜ｗ１ｃが搬送される。ワークｗ２ａ〜ｗ２ｃは、トレイｗ１ａ〜ｗ１ｃに積載されたまま搬送される。
【００１９】
先頭のトレイｗ１ａがストッパＳＴに当接すると、トレイｗ１ａがストッパＳＴの位置で停止させられる。トレイｗ１ａに積載されているワークｗ２ａもトレイｗ１ａの積載位置で停止させられる。後続のトレイｗ１ｂは先行するトレイｗ１ａに当接すると、トレイｗ１ａの後端の位置で停止させられる。トレイｗ１ｂに積載されているワークｗ２ｂもトレイｗ１ｂの積載位置で停止させられる。
【００２０】
後続のトレイｗ１ｃは先行するトレイｗ１ｂに当接すると、トレイｗ１ｂの後端の位置で停止させられる。トレイｗ１ｃに積載されているワークｗ２ｃもトレイｗ１ｃの積載位置で停止させられる。これにより、トレイｗ１ａ〜ｗ１ｃの滞留を表現できるとともに、滞留したトレイｗ１ａ〜ｗ１ｃ上のワークｗ２ａ〜ｗ２ｃの滞留も表現することができる。
【００２１】
図２は、部品データおよびワークデータのツリー構造データ例（１）を示す説明図である。ツリー構造データＴは、部品データとワークデータとの構造を階層化したデータ構造である。ツリー構造データＴは、部品ツリーＴ１とワークツリーＴ２とを有する。部品ツリーＴ１は、搬送システムを構成するツリー構造データであり、ワークツリーＴ２は、搬送システム上にないワークを保持するツリー構造データである。
【００２２】
部品ツリーＴ１は、第１階層を部品トップＰＴというルートノードとし、第２階層に搬送アームＡ１と搬送コンベアＣ１とストッパＳＴとを有する。ワークデータが搬送アームＡ１に把持されると、搬送アームＡ１の下位階層である第３階層に、把持されたワークデータが関連付けられる。また、搬送コンベアＣ１にワークデータが搭載されると、搬送コンベアＣ１の下位階層である第３階層に、搭載されたワークデータが関連付けられる。
【００２３】
また、ワークデータに他のワークデータが搭載されると、搭載元のワークデータの下位階層である第４階層に、搭載されたワークデータが関連付けられる。このように、ワークデータに他のワークデータが搭載されると、下位階層に関連付けられていく。ワークツリーＴ２は、第１階層をワークトップＷＴというルートノードとし、第２階層に、搬送システムの３次元ＣＡＤデータＳに移行させていないワークデータが関連付けられる。以下、図２の（Ａ）〜（Ｃ）について順次説明する。
【００２４】
（Ａ）は、図１の（Ａ）の状態でのツリー構造データＴを示す。搬送アームＡ１はワークｗ２ｃを把持しているため、搬送アームＡ１の下位階層にはワークｗ２ｃが関連付けられる。また、搬送コンベアＣ１上にはトレイｗ１ａ〜ｗ１ｃが搭載されているため、搬送コンベアＣ１の下位階層にはトレイｗ１ａ〜ｗ１ｃが関連付けられる。また、トレイｗ１ａにはワークｗ２ａが積載されており、トレイｗ１ｂにはワークｗ２ｂが積載されているため、トレイｗ１ａ，ｗ１ｂの下位階層にはワークｗ２ａ，ｗ２ｂが関連付けられる。
【００２５】
（Ｂ）は、図１の（Ｂ）の状態でのツリー構造データＴを示す。搬送アームＡ１に把持されたワークｗ２ｃがトレイｗ１ｃにも積載されたため、トレイｗ１ｃの下位階層にはワークｗ２ｃが関連付けられる。
【００２６】
（Ｃ）は、図１の（Ｃ）の状態でのツリー構造データＴを示す。搬送アームＡ１は、ワークｗ２ｃをトレイｗ１ｃに載置したあと、ワークｗ２ｃの把持を解除したため、搬送アームＡ１の下位階層に関連付けられたワークｗ２ｃが削除される。このように、シミュレーション装置は、ワークデータの一種であるトレイへのワークの積載を、部品ツリーＴ１上で管理することができる。したがって、ユーザによる設定作業が不要となり、シミュレーションの効率化を図ることができる。
【００２７】
図３は、ワーク搬送のシミュレーション例（２）を示す説明図である。（Ｄ）は、図１の（Ｃ）の次状態を示す。（Ｄ）では、ストッパＳＴによりトレイｗ１ａ〜ｗ１ｃが滞留している。また、トレイｗ１ａ〜ｗ１ｃ上のワークｗ２ａ〜ｗ２ｃも滞留している。この状態で、搬送アームＡ１がトレイｗ１ａ上のワークｗ２ａを把持する。
【００２８】
（Ｅ）は、（Ｄ）の次状態を示す。（Ｅ）では、搬送アームＡ１が、ワークｗ２ａを把持した状態で上昇する。（Ｆ）は、（Ｅ）の次状態を示す。（Ｆ）では、搬送アームＡ１がワークｗ２ａを把持した状態で移動し、３次元ＣＡＤ空間内の搬送システム外にワークｗ２ａを置いて、把持を解除する。
【００２９】
図４は、部品データおよびワークデータのツリー構造データ例（２）を示す説明図である。（Ｄ）は、図３の（Ｄ）の状態でのツリー構造データＴを示す。搬送アームＡ１はワークｗ２ａを把持しているため、搬送アームＡ１の下位階層にはワークｗ２ａが関連付けられる。また、搬送コンベアＣ１上にはトレイｗ１ａ〜ｗ１ｃが搭載されているため、搬送コンベアＣ１の下位階層にはトレイｗ１ａ〜ｗ１ｃが関連付けられる。また、トレイｗ１ａ〜ｗ１ｃにはワークｗ２ａ〜ｗ２ｃが積載されているため、トレイｗ１ａ〜ｗ１ｃの下位階層にはワークｗ２ａ〜ｗ２ｃが関連付けられる。
【００３０】
（Ｅ）は、図３の（Ｅ）の状態でのツリー構造データＴを示す。搬送アームＡ１に把持されたワークｗ２ａがトレイｗ１ａから離脱したため、トレイｗ１ａの下位階層に関連付けられたワークｗ２ａが削除される。（Ｆ）は、図３の（Ｆ）の状態でのツリー構造データＴを示す。搬送アームＡ１は、ワークｗ２ａを把持した状態で移動し、３次元ＣＡＤ空間内の搬送システム外にワークｗ２ａを置く。これにより、ワークｗ２ａは、ワークツリーＴ２のワークトップＷＴの下位階層に関連付けられる。また、搬送アームＡ１は、ワークｗ２ａの把持を解除したため、搬送アームＡ１の下位階層に関連付けられたワークｗ２ａが削除される。このように、シミュレーション装置は、ワークデータの一種であるトレイからのワークの離脱を、部品ツリーＴ１上で管理することができる。したがって、ユーザによる設定作業が不要となり、シミュレーションの効率化を図ることができる。
【００３１】
図５は、ワーク搬送のシミュレーション例（３）を示す説明図である。（Ｇ）は、図３の（Ｆ）の次状態を示す。（Ｇ）では、搬送アームＡ１が、３次元ＣＡＤ空間内の搬送システム外のワークｗ２ａを再び把持し、搬送する。（Ｈ）は、（Ｇ）の次状態を示す。（Ｈ）では、搬送アームＡ１が、ワークｗ２ａを把持した状態で下降し、トレイｗ１ｂ上のワークｗ２ｂにワークｗ２ａを積載する。（Ｉ）は、（Ｈ）の次状態を示す。（Ｉ）では、搬送アームＡ１が、ワークｗ２ａの把持を解除し、上昇する。これにより、ワークｗ２ｂの上にワークｗ２ａが積載された状態を表現することができる。
【００３２】
図６は、部品データおよびワークデータのツリー構造データ例（３）を示す説明図である。（Ｇ）は、図５の（Ｇ）の状態でのツリー構造データＴを示す。搬送アームＡ１はワークｗ２ａを把持しているため、搬送アームＡ１の下位階層にはワークｗ２ａが関連付けられる。また、搬送コンベアＣ１上にはトレイｗ１ａ〜ｗ１ｃが搭載されているため、搬送コンベアＣ１の下位階層にはトレイｗ１ａ〜ｗ１ｃが関連付けられる。また、トレイｗ１ｂ，ｗ１ｃにはワークｗ２ｂ，ｗ２ｃが積載されているため、トレイｗ１ｂ，ｗ１ｃの下位階層にはワークｗ２ｂ，ｗ２ｃが関連付けられる。
【００３３】
（Ｈ）は、図５の（Ｈ）の状態でのツリー構造データＴを示す。搬送アームＡ１に把持されたワークｗ２ａがワークｗ２ｂに積載されたため、ワークｗ２ｂの下位階層にはｗ２ａが関連付けられる。（Ｉ）は、図５の（Ｉ）の状態でのツリー構造データＴを示す。搬送アームＡ１は、ワークｗ２ａをワークｗ２ｂに載置したあと、ワークｗ２ａの把持を解除したため、搬送アームＡ１の下位階層に関連付けられたワークｗ２ａが削除される。このように、シミュレーション装置は、ワークへの他のワークの積載を、部品ツリーＴ１上で管理することができる。したがって、ユーザによる設定作業が不要となり、シミュレーションの効率化を図ることができる。
【００３４】
＜部品モデルと部品データ＞
部品モデルは、たとえば、クラス表現される。また、部品データは、たとえば、クラス表現である部品モデルから生成されたインスタンスとして表現される。まず、部品モデルについて説明する。
【００３５】
図７は、部品モデルのデータ構造例を示す説明図である。部品モデルのデータ構造７００は、モデルＩＤ項目と、モデル種項目と、組付先モデルＩＤ項目と、形状項目と、接触可能範囲項目と、を有する。モデルＩＤ項目には、モデルＩＤが格納される。モデルＩＤとは、部品モデルを一意に特定する識別情報である。モデル種項目には、モデル種が格納される。モデル種とは、部品モデルの種類を示す情報である。たとえば、「搬送アーム」や「搬送コンベア」である。本例では、モデル種が「搬送アーム」の部品モデルのモデルＩＤを「ＰＭ１」とし、モデル種が「搬送コンベア」の部品モデルのモデルＩＤを「ＰＭ２」とする。以下、搬送アームの部品モデルを「部品モデルＰＭ１」とし、搬送コンベアの部品モデルを「部品モデルＰＭ２」とする。
【００３６】
組付先モデルＩＤ項目には、組付先モデルＩＤが格納される。組付先モデルＩＤとは、モデルＩＤで示される部品モデルの組付先となる部品モデルを一意に特定する識別情報である。部品モデルの場合、搬送システムがあらかじめ構築されているため、組付先は固定される。たとえば、搬送アームＡ１の部品モデルＰＭ１の組付先モデルは、搬送アームＡ１を搬送するレールの部品モデルである。
【００３７】
形状項目には、形状データが格納される。形状データとは、モデルＩＤで示される部品モデルの形状を特定するデータである。接触可能範囲項目には、接触可能範囲が格納される。接触可能範囲とは、モデルＩＤで示される部品モデルからインスタンスされた部品データが、ワークデータを組付けることができる範囲を示す情報である。接触可能範囲内に位置するワークデータは組付先となる。
【００３８】
図８は、部品データのデータ構造例を示す説明図である。部品データのデータ構造８００は、部品ＩＤ項目と、モデルＩＤ項目と、組付先ＩＤ項目と、位置情報項目と、状態項目と、を有する。部品ＩＤ項目には、部品ＩＤが格納される。部品ＩＤとは、部品データを一意に特定する識別情報である。本例では、搬送アームＡ１や搬送コンベアＣ１の符号Ａ１，Ｃ１を部品ＩＤとする。
【００３９】
モデルＩＤ項目には、モデルＩＤが格納される。モデルＩＤとは、部品データの元となる部品モデルを一意に特定する識別情報である。組付先ＩＤ項目には、組付先ＩＤが格納される。組付先ＩＤとは、部品ＩＤで特定される部品データの組付先となる部品データを一意に特定する識別情報である。部品データの場合、搬送システムがあらかじめ構築されているため、組付先は固定される。たとえば、搬送アームＡ１の組付先は、搬送アームＡ１を搬送するレールである。
【００４０】
位置情報項目には、位置情報が格納される。位置情報とは、３次元ＣＡＤ空間において、部品ＩＤで特定される部品データの位置を示す情報である。部品データが、搬送アームＡ１のようにそれ自体が移動可能な部品データである場合、位置情報は、制御プログラムにより部品データの移動に従って更新される。一方、搬送コンベアＣ１のように固定される部品データについては、位置情報は固定である。
【００４１】
状態項目には、状態情報が格納される。状態情報とは、部品ＩＤで特定される部品データがどのような状態であるかを特定する情報である。状態情報は、部品データの部品モデルに依存する。たとえば、部品データが搬送アームＡ１である場合、状態情報には、たとえば、「移動中」、「搬送中」、「停止」がある。「移動中」とは、ワークデータを把持していない状態での移動を示す。「搬送中」とは、ワークデータを把持している状態での移動を示す。「停止」とは、ワークデータの把持にかかわらず、搬送アームＡ１が停止している状態を示す。また、部品データが搬送コンベアＣ１である場合、状態情報には、たとえば、「駆動中」、「停止」がある。「駆動中」とは、搬送コンベアＣ１が駆動している状態を示す。搬送速度は、制御プログラムの制御に依存する。「停止」とは、搬送コンベアＣ１の駆動が停止した状態を示す。
【００４２】
図９は、部品データである搬送アームＡ１の一例を示す説明図である。搬送アームＡ１は、図７に示した形状データＰＳ１に従って構成される。また、搬送アームＡ１は、図７に示した接触可能範囲ＰＲ１を有する。接触可能範囲ＰＲ１にワークデータが入ると、部品ツリーＴ１での搬送アームＡ１の下位階層にワークデータが関連付けられる。これにより、搬送アームＡ１は、ワークデータを把持した状態となる。
【００４３】
図１０は、部品データである搬送コンベアＣ１の一例を示す説明図である。搬送コンベアＣ１は、図７に示した形状データＰＳ２に従って構成される。また、搬送コンベアＣ１は、図７に示した接触可能範囲ＰＲ２を有する。接触可能範囲ＰＲ２にワークデータが入ると、部品ツリーＴ１での搬送コンベアＣ１の下位階層にワークデータが関連付けられる。これにより、搬送コンベアＣ１は、ワークデータを載置した状態となる。
【００４４】
＜ワークモデルとワークデータ＞
ワークモデルは、部品モデルと同様、たとえば、クラス表現される。また、ワークデータは、たとえば、クラス表現であるワークモデルから生成されたインスタンスとして表現される。まず、ワークモデルについて説明する。
【００４５】
図１１は、ワークモデルのデータ構造例を示す説明図である。ワークモデルのデータ構造１１００も、部品モデルのデータ構造７００と同様、モデルＩＤ項目と、モデル種項目と、組付先モデルＩＤ項目と、形状項目と、接触可能範囲項目と、を有する。モデルＩＤ項目には、モデルＩＤが格納される。モデルＩＤとは、ワークモデルを一意に特定する識別情報である。モデル種項目には、モデル種が格納される。モデル種とは、ワークモデルの種類を示す情報である。たとえば、「トレイ」や「ワーク」である。本例では、モデル種が「トレイ」のワークモデルのモデルＩＤを「ＷＭ１」とし、モデル種が「ワーク」のワークモデルのモデルＩＤを「ＷＭ２」とする。以下、トレイのワークモデルを「ワークモデルＷＭ１」とし、ワークのワークモデルを「ワークモデルＷＭ２」とする。
【００４６】
組付先モデルＩＤ項目には、組付先モデルＩＤが格納される。組付先モデルＩＤとは、モデルＩＤで示されるワークモデルの組付先となるモデルを一意に特定する識別情報である。組付先となるモデルは、部品モデルまたはワークモデルである。なお、図１１ではモデルＩＤがＷＭ１（トレイ）及びＷＭ２（ワーク）の場合、組付先モデルＩＤにそれぞれＰＭ１（アーム）、ＰＭ２（コンベア）を記載しているが、トレイがアームにより搬送されない場合やワークがコンベアに直接搭載されて搬送されない場合は、組付先モデルＩＤからそれぞれＰＭ１（アーム）、ＰＭ２（コンベア）を削除してもよい。
【００４７】
形状項目には、形状データが格納される。形状データとは、モデルＩＤで示されるワークモデルの形状を特定するデータである。接触可能範囲項目には、接触可能範囲が格納される。接触可能範囲とは、モデルＩＤで示されるワークモデルのワークデータが、他のワークデータを組付けることができる範囲を示す情報である。接触可能範囲内に位置するワークデータは組付先となる。
【００４８】
このように、組付先モデルとしてワークモデルも設定可能である、したがって、シミュレーション中に、組付先ワークモデルのワークデータ群のいずれかのワークデータの接触可能範囲に入れば、組付先のワークデータを指定して関連付ける設定作業をユーザがしなくてもよい。このため、搬送シミュレーションの効率化を図ることができる。
【００４９】
図１２は、ワークデータのデータ構造例を示す説明図である。ワークデータのデータ構造１２００は、ワークＩＤ項目と、モデルＩＤ項目と、組付先ＩＤ項目と、位置情報項目と、状態項目と、を有する。ワークＩＤ項目には、ワークＩＤが格納される。ワークＩＤとは、ワークデータを一意に特定する識別情報である。モデルＩＤ項目には、モデルＩＤが格納される。モデルＩＤとは、ワークデータの元となるワークモデルを一意に特定する識別情報である。組付先ＩＤ項目には、組付先ＩＤが格納される。組付先ＩＤとは、ワークＩＤで特定されるワークデータの組付先となる部品データまたはワークデータを一意に特定する識別情報である。
【００５０】
位置情報項目には、位置情報が格納される。位置情報とは、ワークＩＤで特定されるワークデータの位置を示す情報である。ワークデータは、部品データや他のワークデータに組み付いて移動するため、位置情報は、組付先の部品データまたはワークデータの位置情報を反映することになる。たとえば、組付先が搬送アームＡ１またはワークデータである場合、搬送アームＡ１またはワークデータの位置情報がコピーされる。
【００５１】
一方、組付先が搬送コンベアＣ１である場合、搬送コンベアＣ１の搬送速度および搬送時間に応じて制御プログラムにより算出される移動量が、現在の位置情報に加算されることで更新される。状態項目には、状態情報が格納される。状態情報とは、ワークＩＤで特定されるワークデータがどのような状態であるかを特定する情報である。ワークデータは、部品データや他のワークデータに組み付いて移動するため、状態情報は、組付先の部品データまたはワークデータの状態情報を反映することになる。
【００５２】
図１３は、ワークデータであるトレイの一例を示す説明図である。図１３では、トレイｗ１ａを例に挙げて説明する。トレイｗ１ａは、図１１に示した形状データＷＳ１に従って構成される。また、トレイｗ１ａは、図１１に示した接触可能範囲ＷＲ１を有する。接触可能範囲ＷＲ１にワークデータが入ると、部品ツリーＴ１でのトレイｗ１ａの下位階層にワークデータが関連付けられる。これにより、トレイｗ１ａは、ワークデータを積載した状態となる。
【００５３】
図１４は、ワークデータであるワークの一例を示す説明図である。図１４では、ワークｗ２ａを例に挙げて説明する。ワークｗ２ａは、図１１に示した形状データＷＳ２に従って構成される。また、ワークｗ２ａは、図１１に示した接触可能範囲ＷＲ２を有する。接触可能範囲ＷＲ２にワークデータが入ると、部品ツリーＴ１でのワークｗ２ａの下位階層にワークデータが関連付けられる。これにより、ワークｗ２ａは、ワークデータを積載した状態となる。
【００５４】
＜シミュレーション装置のハードウェア構成例＞
図１５は、シミュレーション装置のハードウェア構成例を示すブロック図である。図１５において、シミュレーション装置１５００は、プロセッサ１５０１、記憶装置１５０２、入力装置１５０３、出力装置１５０４、および通信装置１５０５が、バス１５０６に接続されて構成されるコンピュータである。
【００５５】
プロセッサ１５０１は、シミュレーション装置１５００の全体の制御を司る。また、プロセッサ１５０１は、記憶装置１５０２に記憶されている各種プログラム（ＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）や本実施の形態のシミュレーションプログラム、制御プログラム）を実行することで、記憶装置１５０２内のデータを読み出したり、実行結果となるデータを記憶装置１５０２に書き込んだりする。
【００５６】
記憶装置１５０２は、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）、フラッシュメモリ、磁気ディスクドライブなどで構成され、プロセッサ１５０１のワークエリアになったり、各種プログラム（ＯＳや本実施の形態のシミュレーションプログラム）や各種データ（各プログラムの実行により得られたデータを含む）を記憶したりする。また、記憶装置１５０２には、上述した搬送システムの３次元ＣＡＤデータＳのほか、部品モデルのデータ構造７００、部品データのデータ構造８００、ワークモデルのデータ構造１１００、ワークデータのデータ構造１２００も記憶される。
【００５７】
入力装置１５０３は、キーボード、マウス、タッチパネルなどユーザの操作により、各種データの入力をおこなうインターフェースである。出力装置１５０４は、プロセッサ１５０１の指示により、データを出力するインターフェースである。出力装置１５０４には、ディスプレイやプリンタが挙げられる。通信装置１５０５は、ネットワークを介して外部からデータを受信したり、外部にデータを送信したりするインターフェースである。
【００５８】
（シミュレーション装置１５００の機能的構成例）
つぎに、シミュレーション装置１５００の機能的構成例について説明する。図１６は、シミュレーション装置１５００の機能的構成例を示すブロック図である。シミュレーション装置１５００は、指定部１６０１と、検出部１６０２と、関連付け部１６０３と、設定部１６０４と、更新部１６０５と、を有する。指定部１６０１、検出部１６０２、関連付け部１６０３、設定部１６０４、および更新部１６０５は、具体的には、たとえば、図１５に示した記憶装置１５０２に記憶されたプログラムをプロセッサ１５０１に実行させることによりその機能を実現する。
【００５９】
指定部１６０１は、所定のワークモデルに対する組付先のワークモデルを指定する。具体的には、指定部１６０１は、第１のワークデータのワークモデルを指定する。たとえば、指定部１６０１は、搬送シミュレーション前において、入力装置１５０３の操作により、あるワークモデルに対する組付先のワークモデルを指定する。たとえば、指定部１６０１は、モデル種がワークであるワークモデルＷＭ２に対する組付先のワークモデルとして、モデル種がトレイであるワークモデルＷＭ１を指定する。これにより、ワークモデルのデータ構造１１００において、ワークモデルＷＭ２の組付先モデルＩＤ項目に、「ＷＭ１」が追加される。
【００６０】
したがって、シミュレーション中に、ワークモデルＷＭ２のインスタンスであるワークが、ワークモデルＷＭ１のインスタンスであるトレイ群のいずれかのトレイの接触可能範囲ＷＲ１に入ると、そのトレイが組付先となる。したがって、後述する関連付け部１６０３により、部品ツリーＴ１における組付先のトレイの下位階層に、接触可能範囲ＷＲ２に入ったワークが関連付けられることになる。
【００６１】
このように、あらかじめ、組付先のワークモデルを指定しておくことにより、シミュレーション中に、組付先ワークモデルのワークデータ群のいずれかのワークデータの接触可能範囲に入れば、組付先のワークデータを指定して関連付ける設定作業をユーザがしなくてもよい。このため、シミュレーションの効率化を図ることができる。
【００６２】
また、指定部１６０１により組付先として指定されるワークモデルは、異なるワークモデルとして説明したが、組付元のワークモデルと同一のワークモデルでもよい。これにより、たとえば、いずれかのワーク上にワークｗ１ａを積載することができる。
【００６３】
検出部１６０２は、接触検出部１６２１と、移動検出部１６２２と、離脱検出部１６２３と、を有する。接触検出部１６２１は、第１のワークデータに設定された第１のワークデータへの搭載を許容する接触可能範囲に第２のワークデータが入ったことを検出する。たとえば、第１のワークデータがトレイｗ１ａであり、第２のワークデータがワークｗ２ａである場合、接触検出部１６２１は、トレイｗ１ａの接触可能範囲ＷＲ１にワークｗ２ａが入ったことを検出する。具体的には、たとえば、接触検出部１６２１は、トレイｗ１ａの接触可能範囲ＷＲ１にワークｗ２ａの質量中心が入ったことを検出する。
【００６４】
また、指定部１６０１により、ワークのワークモデルＷＭ２の組付先モデルとしてトレイのワークモデルＷＭ１が指定されている場合、接触検出部１６２１は、ワークｗ２ａが、ワークモデルＷＭ１をインスタンスしたいずれかのトレイの接触可能範囲に進入したかを検出する。これにより、シミュレーション中に、組付先のワークデータを指定して関連付ける設定作業をユーザがしなくてもよい。このため、シミュレーションの効率化を図ることができる。
【００６５】
移動検出部１６２２は、第１のワークデータの移動を検出する。ワークデータは、搬送アームＡ１や搬送コンベアＣ１により直接または間接的に移動する。たとえば、第１のワークデータがトレイｗ１ａである場合、トレイｗ１ａは、搬送アームＡ１により搬送される場合もあり、搬送コンベアＣ１により搬送されることもある。また、第１のワークデータがワークｗ２ａである場合、搬送アームＡ１により搬送される場合もあり、搬送コンベアＣ１により搬送されることもある。また、トレイｗ１ａに積載された状態で搬送コンベアＣ１により搬送されることもある。いずれにしても、移動検出部１６２２は、ワークデータの位置情報の変化と状態情報を参照することにより、ワークデータの移動を検出することができる。
【００６６】
離脱検出部１６２３は、シミュレーション対象を構成する部品データにより第１のワークデータの接触可能範囲から第２のワークデータが離脱したことを検出する。たとえば、部品データが搬送アームＡ１であり、第１のワークデータがトレイｗ１ａであり、第２のワークデータがワークｗ２ａであるとする。搬送アームＡ１がワークｗ２ａを把持して上昇することにより、ワークｗ２ａは、トレイｗ１ａの接触可能範囲ＷＲ１から外れる。たとえば、ワークｗ２ａの質量中心が、トレイｗ１ａの接触可能範囲ＷＲ１から外れる。離脱検出部１６２３は、この離脱を検出することになる。
【００６７】
関連付け部１６０３は、接触検出部１６２１によって検出された第２のワークデータを第１のワークデータに関連付ける。たとえば、第１のワークデータがトレイｗ１ａであり、第２のワークデータがワークｗ２ａである場合、関連付け部１６０３は、部品ツリーＴ１のトレイｗ１ａの下位階層にワークｗ２ａを関連付ける。
【００６８】
また、関連付け部１６０３は、離脱検出部１６２３によって第１のワークデータとの離脱が検出された第２のワークデータとの関連付けを解除するとともに、第２のワークデータを部品データに関連付ける。たとえば、部品データが搬送アームＡ１であり、第１のワークデータがトレイｗ１ａであり、第２のワークデータがワークｗ２ａであるとする。離脱が検出されると、関連付け部１６０３は、部品ツリーＴ１においてトレイｗ１ａの下位階層に関連付けられたワークｗ２ａを削除することにより、トレイｗ１ａとの関連付けを解除する。また、関連付け部１６０３は、ワークｗ２ａを把持してトレイｗ１ａから離脱された搬送アームＡ１の下位階層にワークｗ２ａを関連付ける。
【００６９】
更新部１６０５は、移動検出部１６２２によって第１のワークデータの移動が検出された場合、第１のワークデータの移動方向への移動量により第２のワークデータの位置情報を更新する。たとえば、第１のワークデータがトレイｗ１ａである場合、トレイｗ１ａが搬送コンベアＣ１により搬送方向にある移動量分移動したとする。この場合、トレイｗ１ａの位置情報は、搬送コンベアＣ１による移動量分加算された位置情報に更新される。トレイｗ１ａ上のワークｗ２ａは、トレイｗ１ａの移動に追従するため、ワークｗ２ａの位置情報についても移動量分加算されて更新される。
【００７０】
設定部１６０４は、関連付け部１６０３によって関連付けされた第１および第２のワークデータを表示対象に設定する。具体的には、たとえば、設定部１６０４は、接触検出部１６２１により、第１および第２のワークデータの接触が検出された場合、接触検出時の位置情報により第１および第２のワークデータを表示対象に設定する。制御プログラムは、表示対象に設定された第１および第２のワークデータを表示画面に表示する。
【００７１】
また、設定部１６０４は、組付状態の第１および第２のワークデータの移動が検出されると、移動検出時の位置情報により第１および第２のワークデータを表示対象に設定する。制御プログラムは、表示対象に設定された第１および第２のワークデータを表示画面に表示する。
【００７２】
また、設定部１６０４は、組付状態の第１および第２のワークデータから第２のワークデータの離脱が検出されると、離脱検出時の位置情報により第１および第２のワークデータを表示対象に設定する。制御プログラムは、表示対象に設定された第１および第２のワークデータを表示画面に表示する。
【００７３】
＜シミュレーション処理手順＞
図１７は、本実施の形態にかかるシミュレーション装置１５００によるシミュレーション処理手順例を示すフローチャート（その１）である。シミュレーション装置１５００は、まず、未選択ワークデータがあるか否かを判断する（ステップＳ１７０１）。判断のタイミングは、たとえば、所定時間間隔とする。未選択ワークデータがない場合（ステップＳ１７０１：Ｎｏ）、一連の処理を終了する。一方、未選択ワークデータがある場合（ステップＳ１７０１：Ｙｅｓ）、シミュレーション装置１５００は、未選択ワークデータを１つ選択する（ステップＳ１７０２）。そして、シミュレーション装置１５００は、未選択搬送アームがあるか否かを判断する（ステップＳ１７０３）。未選択搬送アームがない場合（ステップＳ１７０３：Ｎｏ）、図１８のステップＳ１８０１に移行する。一方、未選択搬送アームがある場合（ステップＳ１７０３：Ｙｅｓ）、シミュレーション装置１５００は、未選択搬送アームを１つ選択する（ステップＳ１７０４）。
【００７４】
そして、シミュレーション装置１５００は、選択搬送アームが特定のモデルであるか否かを判断する（ステップＳ１７０５）。具体的には、シミュレーション装置１５００は、選択搬送アームの部品モデルが、選択ワークデータの組付先モデルＩＤとして登録されているか否かを判断する。特定のモデルでない場合（ステップＳ１７０５：Ｎｏ）、ステップＳ１７０３に戻り、シミュレーション装置１５００は、未選択搬送アームを選択しなおす。
【００７５】
一方、特定のモデルである場合（ステップＳ１７０５：Ｙｅｓ）、シミュレーション装置１５００は、選択ワークデータが選択搬送アームの接触可能範囲にすでに入っているか否かを判断する（ステップＳ１７０６）。すでに入っている場合（ステップＳ１７０６：Ｙｅｓ）、選択ワークデータは選択搬送アームに把持されていることになるため、ステップＳ１７０１に移行し、ワークデータを選択しなおす。一方、選択ワークデータが選択搬送アームの接触可能範囲に進入済みでない場合（ステップＳ１７０６：Ｎｏ）、シミュレーション装置１５００は、接触可能範囲に進入したか否かを判断する（ステップＳ１７０７）。
【００７６】
接触可能範囲に進入した場合（ステップＳ１７０７：Ｙｅｓ）、シミュレーション装置１５００は、選択ワークデータの組付先に選択搬送アームを追加する（ステップＳ１７０８）。具体的には、シミュレーション装置１５００は、ワークデータのデータ構造１２００において、選択ワークの組付先ＩＤ項目に、選択搬送アームの部品ＩＤを追加する。これにより、部品ツリーＴ１の選択搬送アームの下位階層に選択ワークデータが関連付けられる。このあと、ステップＳ１７０１に移行し、ワークデータを選択しなおす。
【００７７】
また、ステップＳ１７０７において、接触可能範囲への進入が検出されなかった場合（ステップＳ１７０７：Ｎｏ）、シミュレーション装置１５００は、選択ワークデータが選択搬送アームの接触可能範囲から離脱したか否かを判断する（ステップＳ１７０９）。離脱が検出されなかった場合（ステップＳ１７０９：Ｎｏ）、ステップＳ１７０１に移行し、ワークデータを選択しなおす。
【００７８】
一方、離脱した場合（ステップＳ１７０９：Ｙｅｓ）、シミュレーション装置１５００は、選択ワークデータの組付先から選択搬送アームを削除する（ステップＳ１７１０）。具体的には、シミュレーション装置１５００は、ワークデータのデータ構造１２００において、選択ワークの組付先ＩＤ項目から、選択搬送アームの部品ＩＤを削除する。これにより、部品ツリーＴ１の選択搬送アームの下位階層から選択ワークデータが削除される。このあと、ステップＳ１７０１に移行し、ワークデータを選択しなおす。
【００７９】
図１８は、本実施の形態にかかるシミュレーション装置１５００によるシミュレーション処理手順例を示すフローチャート（その２）である。シミュレーション装置１５００は、図１７のステップＳ１７０３において、未選択搬送アームがない場合（ステップＳ１７０３：Ｎｏ）、未選択搬送コンベアがあるか否かを判断する（ステップＳ１８０１）。未選択搬送コンベアがない場合（ステップＳ１８０１：Ｎｏ）、図１９のステップＳ１９０１に移行する。一方、未選択搬送コンベアがある場合（ステップＳ１８０１：Ｙｅｓ）、シミュレーション装置１５００は、未選択搬送コンベアを１つ選択する（ステップＳ１８０２）。
【００８０】
そして、シミュレーション装置１５００は、選択搬送コンベアが特定のモデルであるか否かを判断する（ステップＳ１８０３）。具体的には、シミュレーション装置１５００は、選択搬送コンベアの部品モデルが、選択ワークデータの組付先モデルＩＤとして登録されているか否かを判断する。特定のモデルでない場合（ステップＳ１８０３：Ｎｏ）、ステップＳ１８０１に戻り、シミュレーション装置１５００は、未選択搬送コンベアを選択しなおす。
【００８１】
一方、特定のモデルである場合（ステップＳ１８０３：Ｙｅｓ）、シミュレーション装置１５００は、選択ワークデータが選択搬送コンベアの接触可能範囲にすでに入っているか否かを判断する（ステップＳ１８０４）。すでに入っている場合（ステップＳ１８０４：Ｙｅｓ）、選択ワークデータは選択搬送コンベアに積載されていることになるため、図１７のステップＳ１７０１に移行し、ワークデータを選択しなおす。一方、選択ワークデータが選択搬送コンベアの接触可能範囲に進入済みでない場合（ステップＳ１８０４：Ｎｏ）、シミュレーション装置１５００は、接触可能範囲に進入したか否かを判断する（ステップＳ１８０５）。
【００８２】
接触可能範囲に進入した場合（ステップＳ１８０５：Ｙｅｓ）、シミュレーション装置１５００は、選択ワークデータの組付先に選択搬送コンベアを追加する（ステップＳ１８０６）。具体的には、シミュレーション装置１５００は、ワークデータのデータ構造１２００において、選択ワークの組付先ＩＤ項目に、選択搬送コンベアの部品ＩＤを追加する。これにより、部品ツリーＴ１の選択搬送コンベアの下位階層に選択ワークデータが関連付けられる。このあと、図１７のステップＳ１７０１に移行し、ワークデータを選択しなおす。
【００８３】
また、ステップＳ１８０５において、接触可能範囲への進入が検出されなかった場合（ステップＳ１８０５：Ｎｏ）、シミュレーション装置１５００は、選択ワークデータが選択搬送コンベアの接触可能範囲から離脱したか否かを判断する（ステップＳ１８０７）。離脱が検出されなかった場合（ステップＳ１８０７：Ｎｏ）、図１７のステップＳ１７０１に移行し、ワークデータを選択しなおす。
【００８４】
一方、離脱した場合（ステップＳ１８０７：Ｙｅｓ）、シミュレーション装置１５００は、選択ワークデータの組付先から選択搬送コンベアを削除する（ステップＳ１８０８）。具体的には、シミュレーション装置１５００は、ワークデータのデータ構造１２００において、選択ワークの組付先ＩＤ項目から、選択搬送コンベアの部品ＩＤを削除する。これにより、部品ツリーＴ１の選択搬送コンベアの下位階層から選択ワークデータが削除される。このあと、図１７のステップＳ１７０１に移行し、ワークデータを選択しなおす。
【００８５】
図１９は、本実施の形態にかかるシミュレーション装置１５００によるシミュレーション処理手順例を示すフローチャート（その３）である。シミュレーション装置１５００は、図１８のステップＳ１８０１において、未選択搬送コンベアがない場合（ステップＳ１８０１：Ｎｏ）、未選択の組付先ワークデータ候補があるか否かを判断する（ステップＳ１９０１）。未選択の組付先ワークデータ候補がない場合（ステップＳ１９０１：Ｎｏ）、図１７のステップＳ１７０１に移行する。一方、未選択の組付先ワークデータ候補がある場合（ステップＳ１９０１：Ｙｅｓ）、シミュレーション装置１５００は、未選択の組付先ワークデータ候補を１つ選択する（ステップＳ１９０２）。
【００８６】
そして、シミュレーション装置１５００は、選択組付先ワークデータ候補が特定のモデルであるか否かを判断する（ステップＳ１９０３）。具体的には、シミュレーション装置１５００は、選択組付先ワークデータ候補のワークモデルが、選択ワークデータの組付先モデルＩＤとして登録されているか否かを判断する。特定のモデルでない場合（ステップＳ１９０３：Ｎｏ）、ステップＳ１９０１に戻り、シミュレーション装置１５００は、未選択の組付先ワークデータ候補を選択しなおす。
【００８７】
一方、特定のモデルである場合（ステップＳ１９０３：Ｙｅｓ）、シミュレーション装置１５００は、選択ワークデータが選択組付先ワークデータ候補の接触可能範囲にすでに入っているか否かを判断する（ステップＳ１９０４）。すでに入っている場合（ステップＳ１９０４：Ｙｅｓ）、選択ワークデータは選択組付先ワークデータ候補に積載されていることになるため、図１７のステップＳ１７０１に移行し、ワークデータを選択しなおす。一方、選択ワークデータが選択組付先ワークデータ候補の接触可能範囲に進入済みでない場合（ステップＳ１９０４：Ｎｏ）、シミュレーション装置１５００は、接触可能範囲に進入したか否かを判断する（ステップＳ１９０５）。
【００８８】
接触可能範囲に進入した場合（ステップＳ１９０５：Ｙｅｓ）、シミュレーション装置１５００は、選択ワークデータの組付先に選択組付先ワークデータ候補を追加する（ステップＳ１９０６）。具体的には、シミュレーション装置１５００は、ワークデータのデータ構造１２００において、選択ワークの組付先ＩＤ項目に、選択組付先ワークデータ候補のワークＩＤを追加する。これにより、部品ツリーＴ１の選択組付先ワークデータ候補の下位階層に選択ワークデータが関連付けられる。このあと、図１７のステップＳ１７０１に移行し、ワークデータを選択しなおす。
【００８９】
また、ステップＳ１９０５において、接触可能範囲への進入が検出されなかった場合（ステップＳ１９０５：Ｎｏ）、シミュレーション装置１５００は、選択ワークデータが選択組付先ワークデータ候補の接触可能範囲から離脱したか否かを判断する（ステップＳ１９０７）。離脱が検出されなかった場合（ステップＳ１９０７：Ｎｏ）、図１７のステップＳ１７０１に移行し、ワークデータを選択しなおす。
【００９０】
一方、離脱した場合（ステップＳ１９０７：Ｙｅｓ）、シミュレーション装置１５００は、選択ワークデータの組付先から選択組付先ワークデータ候補を削除する（ステップＳ１９０８）。具体的には、シミュレーション装置１５００は、ワークデータのデータ構造１２００において、選択ワークの組付先ＩＤ項目から、選択組付先ワークデータ候補のワークＩＤを削除する。これにより、部品ツリーＴ１の選択組付先ワークデータ候補の下位階層から選択ワークデータが削除される。このあと、図１７のステップＳ１７０１に移行し、ワークデータを選択しなおす。
【００９１】
＜情報更新処理＞
図２０は、ワークデータの情報更新処理例を示すフローチャートである。まず、シミュレーション装置１５００は、未選択ワークデータがあるか否か判断する（ステップＳ２００１）。判断のタイミングは、たとえば、所定時間間隔とする。また、図１７のステップＳ１７０１と同期してもよい。
【００９２】
ステップＳ２００１において、シミュレーション装置１５００は、未選択ワークデータがある場合（ステップＳ２００１：Ｙｅｓ）、未選択ワークデータを１つ選択する（ステップＳ２００２）。そして、シミュレーション装置１５００は、選択ワークデータに対し組付先があるか否かを判断する（ステップＳ２００３）。具体的には、シミュレーション装置１５００は、ワークデータのデータ構造１２００を参照して、選択ワークデータの組付先ＩＤ項目に組付先ＩＤがあるか否かを判断する。
【００９３】
組付先がない場合（ステップＳ２００３：Ｎｏ）、ステップＳ２００１に戻る。一方、組付先がある場合（ステップＳ２００３：Ｙｅｓ）、シミュレーション装置１５００は、組付先が搬送アームＡ１であるか搬送コンベアＣ１であるかワークデータであるかを判断する（ステップＳ２００４）。
【００９４】
搬送アームＡ１である場合（ステップＳ２００４：搬送アーム）、シミュレーション装置１５００は、搬送アームＡ１が移動中であるか否かを判断する（ステップＳ２００５）。移動中でない場合（ステップＳ２００５：Ｎｏ）、ステップＳ２０１１に移行する。一方、移動中である場合（ステップＳ２００５：Ｙｅｓ）、選択ワークデータを把持して搬送していることになるため、シミュレーション装置１５００は、組付先の搬送アームＡ１の移動に追従して、選択ワークデータの位置情報を更新し（ステップＳ２００６）、ステップＳ２０１１に移行する。
【００９５】
また、ステップＳ２００４において、搬送コンベアＣ１である場合（ステップＳ２００４：搬送コンベア）、シミュレーション装置１５００は、搬送コンベアＣ１が駆動中であるか否かを判断する（ステップＳ２００７）。駆動中でない場合（ステップＳ２００７：Ｎｏ）、ステップＳ２０１１に移行する。一方、駆動中である場合（ステップＳ２００７：Ｙｅｓ）、シミュレーション装置１５００は、搬送コンベアＣ１の駆動に応じて、選択ワークデータの位置情報を更新する（ステップＳ２００８）。なお、ストッパＳＴにより滞留している場合には、位置情報に変更はないことになる。このあと、ステップＳ２０１１に移行する。
【００９６】
また、ステップＳ２００４において、ワークデータである場合（ステップＳ２００４：ワークデータ）、シミュレーション装置１５００は、組付先のワークデータが移動中であるか否かを判断する（ステップＳ２００９）。移動中でない場合（ステップＳ２００９：Ｎｏ）、ステップＳ２０１１に移行する。一方、移動中である場合（ステップＳ２００９：Ｙｅｓ）、シミュレーション装置１５００は、組付先のワークデータの移動に追従して、選択ワークデータの位置情報を更新する（ステップＳ２０１０）。このあと、ステップＳ２０１１に移行する。
【００９７】
ステップＳ２０１１では、シミュレーション装置１５００は、組付先の状態情報を参照して、選択ワークデータの状態情報を更新する（ステップＳ２０１１）。たとえば、シミュレーション装置１５００は、組付先の搬送アームＡ１や搬送コンベアＣ１、ワークデータの状態をコピーする。ただし、搬送コンベアＣ１で搬送中であってもストッパＳＴにより滞留している場合は、「搬送中」ではなく「停止」となる。このあと、ステップＳ２００１に戻る。ステップＳ２００１において、未選択のワークデータがない場合（ステップＳ２００１：Ｎｏ）、一連の処理を終了する。
【００９８】
このように、上述した実施の形態によれば、あるワークデータが他のワークデータの接触可能範囲に進入したことにより、あるワークデータを他のワークデータに組み付けた状態を高精度にシミュレーションすることができる。また、この場合、他のワークデータの移動に追従してあるワークデータが移動することになるため、ワークデータに積載されたワークデータの動きを高精度にシミュレーションすることができる。
【００９９】
また、この場合、ワークデータに積載されたワークデータの離脱を検出することにより、組付の解除についても高精度に搬送シミュレーションすることができる。また、ワークデータ同士の組付や組付の解除を、部品ツリーＴ１上で管理することにより、ワークデータを部品データであるかのように管理することができる。したがって、ワークデータ同士の組付や組付解除といった設定作業を、ユーザはおこなう必要がなく、搬送シミュレーションの効率化を図ることができる。
【０１００】
また、ワークデータのワークモデルの組付先モデルとして同一または他のワークモデルを指定することにより、ワークデータが、組付先ワークモデルをインスタンスしたいずれかのワークデータの接触可能範囲に進入したかを検出することができる。これにより、搬送シミュレーション中に、組付先のワークデータを指定して関連付ける設定作業をユーザがしなくてもよい。このため、搬送シミュレーションの効率化を図ることができる。
【０１０１】
以上説明したように、シミュレーション装置、シミュレーション方法、およびシミュレーションプログラムによれば、高精度の搬送シミュレーションを効率的に実行することができるという効果を奏する。
【符号の説明】
【０１０２】
１６０１  指定部
１６０２  検出部
１６０３  関連付け部
１６０４  設定部
１６０５  更新部
１６２１  接触検出部
１６２２  移動検出部
１６２３  離脱検出部
【図１】
0005978790.tif 000002
【図２】
0005978790.tif 000003
【図３】
0005978790.tif 000004
【図４】
0005978790.tif 000005
【図５】
0005978790.tif 000006
【図６】
0005978790.tif 000007
【図７】
0005978790.tif 000008
【図８】
0005978790.tif 000009
【図９】
0005978790.tif 000010
【図１０】
0005978790.tif 000011
【図１１】
0005978790.tif 000012
【図１２】
0005978790.tif 000013
【図１３】
0005978790.tif 000014
【図１４】
0005978790.tif 000015
【図１５】
0005978790.tif 000016
【図１６】
0005978790.tif 000017
【図１７】
0005978790.tif 000018
【図１８】
0005978790.tif 000019
【図１９】
0005978790.tif 000020
【図２０】
0005978790.tif 000021