(57)【要約】【課題】複数台の専用コンピュータを別途導入することなく、ロボットが緊急停止する事象が発生した際のロボットの復旧動作を短時間でシミュレーションする。【解決手段】少なくともロボット１２を含む生産設備の制御に用いられる複数の制御装置２２〜２７と、複数の制御装置２２〜２７と通信可能な主操作盤２１とを有し、ロボット１２が緊急停止する事象が発生した際にロボット１２の復旧動作をシミュレーションシステムであって、主操作盤２１が、稼動休止状態となった制御装置を複数の制御装置のうちから検出し、検出された稼動休止状態の制御装置に対して、復旧動作のシミュレーションの分散処理を指示し、指示された各制御装置が、復旧動作のシミュレーションを分散処理する。【選択図】            図５
2006018575.tif 000002
【特許請求の範囲】
【請求項１】
ロボットが緊急停止する事象が発生した際にロボットの復旧動作をシミュレーションするシミュレーション方法であって、
生産設備の制御に用いられる複数の制御装置のうちで稼動休止状態となった制御装置を検出する段階と、
検出された稼動休止状態の制御装置で、前記復旧動作のシミュレーションを分散処理する段階と、を有することを特徴とするシミュレーション方法。
【請求項２】
前記ロボットが緊急停止する事象は、ロボット同士の干渉、またはロボットと他の装置との干渉であることを特徴とする請求項１に記載のシミュレーション方法。
【請求項３】
ロボットの復旧動作は、干渉が発生したロボットの退避動作を含むことを特徴とする請求項１に記載のシミュレーション方法。
【請求項４】
ロボットの復旧動作は、干渉によって位置がずれたロボットの位置修正動作を含むことを特徴とする請求項１に記載のシミュレーション方法。
【請求項５】
前記複数の制御装置は、異なる種類の制御装置を含むことを特徴とする請求項１に記載のシミュレーション方法。
【請求項６】
前記稼動休止状態の制御装置の数および種類の変化に応じて各制御装置に分散処理させる配分が変化することを特徴とする請求項５に記載のシミュレーション方法。
【請求項７】
検出された稼動休止状態の各制御装置ごとに適用可能な各記述言語で分散処理が与えられることを特徴とする請求項５に記載のシミュレーション方法。
【請求項８】
さらに、シミュレーションによって得られた結果に基づいて実際にロボットを動作させる段階を有することを特徴とする請求項１に記載のシミュレーション方法。
【請求項９】
少なくともロボットを含む生産設備の制御に用いられる複数の制御装置と、前記複数の制御装置と通信可能な管理装置とを有し、前記ロボットが緊急停止する事象が発生した際にロボットの復旧動作をシミュレーションシステムであって、
前記管理装置が、稼動休止状態となった制御装置を前記複数の制御装置のうちから検出し、検出された稼動休止状態の制御装置に対して、復旧動作のシミュレーションの分散処理を指示し、
指示された各制御装置が、復旧動作のシミュレーションを分散処理することを特徴とするシミュレーションシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ロボットが緊急停止する事象が発生した際にロボットの復旧動作をシミュレーションするシミュレーション方法およびそのシステムに関する。
【背景技術】
【０００２】
複数の工程を有する生産設備では、各工程間におけるロボットおよび位置決め装置の動作がインターロック信号によって規定されており、ロボットが他のロボットまたは装置と干渉（衝突）することを防止している。しかしながら、なんらかの不具合によって、ロボットの干渉が発生する場合がある。
【０００３】
ロボットの干渉のようにロボットが緊急停止する事象が発生した場合には、早急な復旧処理が必要となる。しかしながら、各工程においてロボットおよび装置は、工程間でのインターロック信号が受信されるまでは、互いに独立して動作が進行している。したがって、どのような進捗段階でロボットが緊急停止する事象が発生したのかを判断することが難しい。言い換えれば、このような事象が発生した場合における複数の工程の進捗状況の組み合わせは千差万別であり、特に、複数品種のワークが混在している生産設備では、この傾向が高い。したがって、ロボットの退避動作および位置修正動作などの復旧動作を実行する際には、熟練した保全員が、設備固有の知識や経験をもとに、一台ずつロボット操作用ペンダントを用いて操作する必要があった。
【０００４】
なお、近年では、３次元グラフィックスシミュレーションを用いて、指定した経路でロボットを動作させた場合の干渉の有無を事前検討できるようになっている。したがって、ロボットの復旧動作に関しても、３次元グラフィックスシミュレーションを用いて、干渉しない安全な復旧動作、すなわち安全なロボットの経路および操作順序を決定することが考えられる。しかしながら、３次元グラフィックシミュレーションは計算の負荷が高いので、一台のコンピュータを用いて実行するのでは、安全な経路や操作順序を決定するために数時間（たとえば、８時間）程度もかかり、早急な復旧作業に支障をきたす。
【０００５】
一方、近年、シミュレーションの分野では、複数のコンピュータを用いて分散処理させることによって、シミュレーションの結果を得るまでにかかる時間を短縮する分散処理技術が開発されている（特許文献１など）。
【０００６】
しかしながら、ロボットが緊急停止する事象が発生した際のロボットの復旧動作をシミュレーションするために複数台の専用コンピュータを別途導入することは、設置場所をとるばかりでなく、導入費用および保守管理費用の増大をもたらす。
【特許文献１】特開２０００−１０８０６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
本発明は、以上の問題点を解決するためになされたものである。したがって、本発明の目的は、複数台の専用コンピュータを別途導入することなく、ロボットが緊急停止する事象が発生した際にロボットの復旧動作を短時間でシミュレーションすることが可能なシミュレーション方法およびシミュレーションシステムを提供することである。
【課題を解決するための手段】
【０００８】
（１）本発明のシミュレーション方法は、ロボットが緊急停止する事象が発生した際にロボットの復旧動作をシミュレーションするシミュレーション方法であって、生産設備の制御に用いられる複数の制御装置のうちで稼動休止状態となった制御装置を検出する段階と、検出された稼動休止状態の制御装置で、前記復旧動作のシミュレーションを分散処理する段階と、を有することを特徴とする。
【０００９】
（２）本発明のシミュレーションシステムは、少なくともロボットを含む生産設備の制御に用いられる複数の制御装置と、前記複数の制御装置と通信可能な管理装置とを有し、前記ロボットが緊急停止する事象が発生した際にロボットの復旧動作をシミュレーションシステムであって、前記管理装置が、稼動休止状態となった制御装置を前記複数の制御装置のうちから検出し、検出された稼動休止状態の制御装置に対して、復旧動作のシミュレーションの分散処理を指示し、指示された各制御装置が、復旧動作のシミュレーションを分散処理することを特徴とする。
【発明の効果】
【００１０】
本発明のシミュレーション方法およびシステムによれば、複数台の専用コンピュータを別途導入することなく、ロボットが緊急停止する事象が発生した際のロボットの復旧動作を短時間でシミュレーションすることができる。
【発明を実施するための最良の形態】
【００１１】
（第１の実施の形態）
本実施の形態のシミュレーション方法は、ロボットが緊急停止する事象が発生した際にロボットの復旧動作をシミュレーションする方法である。なお、ロボットが緊急停止する事象には、ロボットの干渉（すなわち、ロボット同士の干渉、およびロボットと他の装置との干渉）が含まれる。また、ロボットの復旧動作は、ロボットの退避動作（退避経路および退避順序）、ロボットの位置修正動作（位置修正経路および位置修正順序）、および、手動溶接動作（手動溶接経路および手動溶接経路）が含まれる。ここで、ロボットの退避動作は、干渉が生じたロボットを逃がす動作であり、ロボットの位置修正動作は、干渉時の衝撃によってロボットが本来の座標位置からずれた場合に、ロボットの位置を本来の座標位置または原点位置に戻すための動作である。また、手動溶接動作は、ロボットの干渉によって溶接途中となったワークに対して、保全員（作業者）がロボット操作用ペンダントなどを用いて手動でロボットを動かして溶接を完了させるための動作である。なお、以下の説明では、ロボットが干渉した際にロボットの退避動作をシミュレーションする場合を例にとって説明する。
【００１２】
一般的に、ある生産ラインでロボットが干渉して稼動が休止すると、この干渉に起因して他の生産ラインも稼動休止状態（アイドル状態）となる。通常、各生産ラインには、複数の制御装置が設置されており、ロボットおよび位置決め装置を制御している。したがって、生産ラインの稼動休止に伴って、これら複数の制御装置も稼動休止状態となる。
【００１３】
そこで、本実施の形態のシミュレーション方法では、ロボットの干渉の発生に起因して稼動休止状態となったこれらの制御装置を検出し、各制御装置の能力を有効活用して、ロボットの退避動作のシミュレーションを分散処理する。以下、図面を参照しつつ、本実施の形態のシミュレーション方法およびそのシステムについて詳細に説明する。
【００１４】
まず、前提として、本実施の形態のシミュレーションシステムが適用される生産設備について説明する。ここでは、生産設備として自動車車体組み立て設備を例にとって説明する。
【００１５】
図１は、本実施の形態の形態のシミュレーションシステムが適用される自動車車体組み立て設備を示している。自動車車体組み立て設備は、複数の生産ラインからなる。図１は、それらの中の一つの生産ライン１０を示している。生産ラインには複数の工程（ステージ）が含まれており、図１に示される生産ライン１０には、第１工程〜第７工程の７つの工程（ステージ）が含まれている。
【００１６】
各工程には、溶接ロボット１２、搬送ロボット１３、３軸位置決め装置１４、１軸位置決め装置１５、作業者１６、およびその他の治具１７から選ばれた種々の構成が含まれる。なお、その他の治具１７には、たとえば、アクチュエータ１８、およびリミットスイッチ（センサ）１９などが含まれる。
【００１７】
ここで、具体的には、溶接ロボット１２は、複数のアームが関節によって連結されてなる多軸ロボットであり、その先端には溶接ガンが搭載されている。溶接ロボット１２は、溶接によってワークを組み立てる際に用いられる。
【００１８】
搬送ロボット１３は、ワークの移動に用いられるロボットである。３軸位置決め装置１４および１軸位置決め装置１５は、ロケートピンなどを有し、作業時にワークを固定するために用いられる。特に、３軸位置決め装置１４は、複数品種のワークが混在している際に、ワークの種類に応じて位置決め用のロケートピンをＸ，Ｙ，Ｚ軸に沿って動かしてワークを固定するために用いられる。アクチュエータ１８は、たとえば油圧シリンダーであり、各種駆動に用いられる。リミットスイッチ１９は、アクチュエータ１８などの出限、戻限などを監視しており、状況監視のためのセンサとして機能する。
【００１９】
図２は、本実施の形態の自動車車体組み立て設備における生産ラインの仕様の一例を示す。図２に示される例では、１つの生産ラインには、最大３２個の工程が含まれる。また、図２には、アクチュエータ、リミットスイッチ（ＬＳ）、作業者、溶接ロボット、搬送ロボット、チップドレッサ、３軸位置決め装置、および１軸位置決め装置がそれぞれ一工程当たりに含まれうる数量と、１ライン（３２工程）当たりに含まれる最大値の一例が示されている。
【００２０】
次に、本実施の形態の自動車車体組み立て設備における制御系について説明する。図３は、本実施の形態における制御系およびネットワークの構成の一例を示す図である。
【００２１】
本実施の形態の制御系には、自動車車体組み立て設備の全体を管理する主操作盤２１が含まれる。この主操作盤２１は、パーソナルコンピュータやエンジニアリングワークステーションなどのコンピュータであり、Ｅｔｈｅｒｎｅｔ（登録商標）などのＯＡ（ｏｆｆｉｃｅ  ａｕｔｏｍａｔｉｏｎ）ネットワーク２９に接続されている。本実施の形態では、主操作盤２１は、３次元グラフィックシミュレーション用の管理装置としても機能し、後述する制御装置に対して３次元グラフィックシミュレーションの分散処理を指示する機能を有している。この点については、後述する。
【００２２】
また、各生産ライン１０ａ〜１０ｇごとに、ＦＡ（ｆａｃｔｏｒｙ  ａｕｔｏｍａｔｉｏｎ）ネットワーク３０が設けられている。各生産ライン１０ａ〜１０ｇ毎に、生産ライン制御装置２２、副操作盤２３、溶接ロボット制御装置２４、搬送ロボット制御装置２５、３軸位置決め制御装置２６、１軸位置決め制御装置２７、およびリモートＩ／Ｏ２８などが互いに通信可能にＦＡネットワーク３０に接続されている。各生産ライン１０ａ〜１０ｇのＦＡネットワーク３０は、たとえば、生産ライン制御装置２２を介して、上記のＯＡネットワーク２９に接続される。なお、図３では、生産ライン１０ａにおける制御装置２２〜２７およびリモートＩ／Ｏ２８のみが示されているが、他の生産ライン１０ｂ〜１０ｇにも、同様に、制御装置２２〜２７およびリモートＩ／Ｏ２８が設けられている。
【００２３】
ここで、生産ライン制御装置２２、副操作盤２３、溶接ロボット制御装置２４、搬送ロボット制御装置２５、３軸位置決め制御装置２６、および１軸位置決め制御装置２７は、生産設備の制御に用いられる複数の制御装置であり、具体的にはコンピュータである。
【００２４】
生産ライン制御装置２２は、いわゆるＰＬＣ（プログラマブル論理制御装置）であり、図１に示されるような１つの生産ライン１０ａ全体を統括して制御する制御装置である。副操作盤２３は、作業者が操作する操作機器である。副操作盤２３は、グラフィックパネル（グラパネ）とも呼ばれており、所定の更新頻度で画面データを更新して表示する。溶接ロボット制御装置２４および搬送ロボット制御装置２５は、それぞれ溶接ロボット１２および搬送ロボット１３を制御するための制御装置である。３軸位置決め制御装置２６および１軸位置決め制御装置２７は、それぞれ３軸位置決め装置１４および１軸位置決め装置１５を制御するための制御装置である。リモートＩ／Ｏ２８は、たとえば、リミットスイッチ１９、マットスイッチ（不図示）、およびその他のセンサ類（不図示）との間で信号を入出力するためのものである。
【００２５】
ここで、各生産ライン１０ａ〜１０ｇは、それぞれの生産ライン１０ａ〜１０ｇに設けられた生産ライン制御装置２２によって制御されている。その動作は、工程毎にラダー言語やＣ言語などの種々の記述言語を用いてプログラミングされている。図４に生産ライン制御装置２２における生産加工プログラム動作（制御プログラム動作）とインターロックの例を示す。
【００２６】
図４に示される工程Ｎ−１では、アクチュエータ１８を出側に動作させた後（ｎ−１ステップ）、溶接ロボット１２によって溶接がされ（ｎステップ）、アクチュエータ１８が戻側に動作する（ｎ＋１ステップ）。ｎ＋１ステップでアクチュエータ１８が戻限となったことをリミットスイッチ１８が検出すると、生産ライン制御装置２２は、インターロック信号Ａを出力する。工程Ｎでは、インターロック信号Ａが入力されるのを待って（ｎ−１ステップ）、治具１７にワークがセットされる（ｎステップ）。以下の処理については説明を省略するが、図４の例では、工程間の動作はインターロック信号Ａ，Ｂにより規制されており、インターロック信号の許す限り、制御プログラムの実行ステップが進められる。
【００２７】
なお、図４に示されるように、各工程において、複数の溶接ロボット１２などが、工程間でのインターロックがかかるまでは、互いに独立して動作が進行しているので、ロボット１２の干渉が発生じた際に、どのような進捗段階で干渉が発生したのかを判断することが難しくなる。
【００２８】
そこで、本実施の形態のシミュレーションシステムは、ロボット１２の干渉の発生に起因して稼動休止状態となった制御装置２２〜２７を検出し、これら稼動休止状態となった制御装置２２〜２７でロボット１２の退避動作についてのシミュレーションを分散処理することによって、短時間でシミュレーションを完了することができ、早急な復旧処理が可能なように構成されている。
【００２９】
次に、本実施の形態のシミュレーションシステムにおける分散処理の内容について説明する。
【００３０】
図５は、本実施の形態のシミュレーションシステムを説明するための図である。図５に示されるシステムでは、複数のライン系統を有する。各ライン系統は、図３で説明したような生産ライン制御装置２２、副操作盤２３、溶接ロボット制御装置２４、搬送ロボット制御装置２５、３軸位置決め制御装置２６、および１軸位置決め制御装置２７がネットワーク（ＦＡネットワーク）３０に接続されて構成されている。
【００３１】
図５では、第１〜第６のライン系統が示されているが、ライン系統の数は、この場合に限られず、生産ラインの数に対応して定まる。なお、図５では、第１〜第３ライン系統、および第６ライン系統に設けられている制御装置２２ａ〜２７ａ、２２ｂ〜２７ｂ、２２ｃ〜２７ｃ、および２２ｆ〜２７ｆのみが示されており、第２および第４ライン系統に設けられている制御装置２２ｄ〜２７ｄおよび２２ｅ〜２７ｅは、省略されている。なお、以下の説明では、特に各ライン系統ごとに区別する必要がないときは、制御装置２２ａ〜２７ａ、２２ｂ〜２７ｂ、２２ｃ〜２７ｃ、および２２ｆ〜２７ｆなどを総称して、制御装置２２〜２７として表記する場合がある。また、各ライン系統に設けられている各制御装置２２〜２７の数および種類は、対応する生産ラインに含まれる工程の内容によるので、一般的には、各ライン系統間で異なる。
【００３２】
各ライン系統のネットワーク３０は、主操作盤２１が設けられたＯＡネットワーク２９に接続されている。したがって、主操作盤２１は、各ライン系統の各制御装置２２〜２７と通信可能となっている。
【００３３】
主操作盤２１は、生産設備の制御に用いられる複数の制御装置（たとえば、２２ａ〜２７ａ、２２ｂ〜２７ｂ、２２ｃ〜２７ｃ、および２２ｆ〜２７ｆ）のうちでロボット１２の干渉の発生に起因して稼動休止状態となった制御装置（たとえば、２２ａ〜２７ａ、２２ｂ〜２７ｂ、２２ｃ〜２７ｃ）を検出し、検出された稼動休止状態の各制御装置に対して、ロボット１２の退避動作についてのシミュレーションの分散処理を指示する管理装置である。一方、各ライン系統の各制御装置２２〜２７は、ロボット１２の干渉の発生に伴って稼動休止状態となった場合には、その余った能力を利用してロボット１２の干渉動作についてのシミュレーションを分散処理するシミュレータとしても機能する。なお、図５に示されるとおり、たとえば、第６ライン系統の制御装置２２ｆ〜２７ｆが稼動状態であれば、第６ライン系統の制御装置２２ｆ〜２７ｆは、シミュレーションの分散処理を実行しない。
【００３４】
ここで、主操作盤２１は、メモリやハードディスクなどの記録媒体で構成される格納部（不図示）を有している。この格納部は、生産設備を構成するロボット１２，１３、位置決め装置１４，１５、および他の治具１７などについての形状およびそれらの位置関係を含む３次元モデル（３次元グラフィックスデータ）と、シミュレーションの分散処理に必要な専用のプログラムとを格納している。主操作盤２１は、３次元グラフィックスデータを入力するための３次元ＣＡＤ装置として兼用されていてもよく、別途に用意された３次元ＣＡＤ装置（不図示）からネットワーク２９を通じて３次元グラフィックスデータを取得してもよい。
【００３５】
また、主操作盤２１は、ＣＰＵ（不図示）を有している。このＣＰＵは、専用のプログラムを実行することによって、休止状態検出部、シミュレーション制御部、シミュレーション結果統合部、および干渉チェック部として機能する。
【００３６】
ここで、休止状態検出部は、稼動休止状態となった制御装置を検出するためのものである。シミュレーション制御部は、３次元グラフィックシミュレーションの処理（ジョブ）を最小単位に分割するものである。さらに、シミュレーション制御部は、稼動休止状態となった制御装置に適切に分配して分散処理を指示する。シミュレーション結果統合部は、各制御装置で分散処理された結果を統合（マージ）するためのものである。干渉チェック部は、ロボットの退避動作に伴って干渉するか否かを上記の統合結果に基づいて判断するためのものである。
【００３７】
一方、各ライン系統の各制御装置２２〜２７も、ＣＰＵ（不図示）を有している。本実施の形態の各制御装置２２〜２７は、ロボット１２および位置決め装置１４，１５などの生産設備を制御するための制御装置として機能するのみならず、主操作盤２１からの指示があった場合には、ＣＰＵが専用のプログラムを実行することによって、応答部およびシミュレーション実行部としても機能する。
【００３８】
なお、応答部は、主制御盤２１からＣＰＵの種類および使用可能なメモリ領域などの各種の問い合わせがあった場合に応答するためのものである。シミュレーション実行部は、生産設備を制御するために用いていた各種のデータを含む現在のメモリデータを圧縮退避してメモリ領域内に作業領域を確保してシミュレーションの分散処理が可能な状態とし、実際に、シミュレーションを分散処理し、実行結果を主操作盤２１に送信するものである。
【００３９】
なお、本実施の形態の主操作盤２１および各制御装置２２〜２７では、ＣＰＵが専用のプログラムを実行することによって、上記の各部の機能が実現されるが、本実施の形態と異なり、論理集積回路などの種々のハードウエアによって各部の機能を実現してもよい。
【００４０】
以上のように構成される本実施の形態のシミュレーションシステムは、以下のように処理を行う。
【００４１】
図６は、本実施形態のシミュレーションシステムの処理内容を説明するための概略図である。図６は、第１〜第６の生産ラインからなる自動車車体組み立て設備において、第３生産ラインに含まれる工程で溶接ロボット１２が干渉した場合を示している。
【００４２】
図６に示される例において、第３生産ラインでロボット１２の干渉が発生して稼動が休止すると、この干渉の発生に起因して、他の第１および第２生産ラインと、第４および第５生産ラインでも稼動が休止する。具体的には、第３生産ラインの上流にあたる第１および第２生産ラインでは、ワークを下流に流せなくなり、ワークを貯めておける量を超えて満杯となるため、稼動休止状態となり、第３生産ラインの下流にあたる第５生産ラインでは、ワークが流れてこなくなり前工程待ちの状態が発生して稼動休止状態となる。さらに、この第５生産ラインに供給すべき取付用のワーク（取付部品など）を供給するための第４生産ラインでも、ワークが満杯となり稼動休止状態となる。なお、図６に示される例では、第６生産ラインでは、稼動状態が維持されている。
【００４３】
図６に示される場合では、干渉の発生に起因して、第１〜第５生産ラインに対応する各ライン系統での制御装置、すなわち、図５における生産ライン制御装置２２ａ〜２２ｅ、副操作盤２３ａ〜２３ｅ、溶接ロボット制御装置２４ａ〜２４ｅ、搬送ロボット制御装置２５ａ〜２５ｅ、３軸位置決め制御装置２６ａ〜２６ｅ、および１軸位置決め制御装置２７ａ〜２７ｅが稼動休止状態となる。一方、第６生産ラインに対応するライン系統での制御装置２２ｆ〜２７ｆは、稼動休止状態とならず、稼動状態を維持する。
【００４４】
主操作盤２１は、これら稼動休止状態となった各制御装置２２〜２７を検出し、検出された各制御装置２２〜２７に対して、復旧処理のためのロボット１２の退避動作のシミュレーションについての分散処理を指示する。指示を受けた各制御装置２２〜２７は、シミュレーションを分散処理する。
【００４５】
以下、主操作盤２１側（３次元ＣＡＤ側）と、各制御装置２２〜２７側（設備側）の処理に分けて、本実施の形態のシミュレーション方法における各処理手順を説明する。なお、ロボット１２が干渉した場合を例にとって説明する。
【００４６】
（主操作盤側の処理）
最初に、主操作盤２１による処理手順を説明する。図７および図８は、主操作盤２１における処理手順を示すフローチャートである。
【００４７】
まず、シミュレーション指示を受信したか否かが判断される（ステップＳ１０１）。シミュレーション指示は、たとえば、保全員が操作することによって、制御装置２２〜２７のいずれかから送信された信号である。シミュレーション指示には、保全員によるロボット１２の退避手順および退避経路の指定が含まれる。これらの指定された退避手順および退避経路でロボット１２を退避させた場合に干渉するか否かがシミュレーションされることとなる。
【００４８】
シミュレーション指示が受信されるのを待って（ステップＳ１０１：ＹＥＳ）、主操作盤２１は、ロボット１２の干渉が生じた設備の設備状況データを要求する（ステップＳ１０２）。ここで、設備状況データには、ロボット１２などの位置、および動作プログラム状態などが含まれる。
【００４９】
そして、設備状況データが受信されると（ステップＳ１０３：ＹＥＳ）、この設備状況データに基づいて干渉時のロボット１２およびその周辺環境の状態が３次元グラフィックスデータに反映される（ステップＳ１０４）。この結果、３次元グラフィックスシミュレーション処理の計算の開始状態が把握される。具体的には、干渉に関係するロボット１２，１３および装置１４，１５に対応する３次元モデルが読み出される。たとえば、ロボット１２を例にとれば、ロボット１２の３次元モデルには、ロボット１２の設置位置のデータ、ロボット１２の形状データ、およびロボット１２を成す複数のアーム部分の連結関係を示すデータなどが含まれる。したがって、設備状況データに含まれるロボット１２などの位置および動作プログラム状態を３次元モデルに当てはめることによって、３次元モデルにおけるロボット１２の姿勢や位置を決定することができる。この結果、干渉時のロボット１２の状態を３次元グラフィックスデータとして取り込むことができる。なお、他のロボット１３および位置決め装置１４、１５の状態についても同様に３次元グラフィックスデータとして取り込むことができる。
【００５０】
次に、３次元グラフィックスシミュレーションの計算処理（計算ジョブ）が最小単位に分割される（ステップＳ１０５）。本実施の形態では、干渉しているロボット１２および干渉している位置決め装置１４，１５の機械的な最小単位を基準として３次元グラフィックスシミュレーションの計算処理が分割される。たとえば、ロボット１２が、各々が関節で接続された４つのアームで構成されている場合であれば、ロボット１２一台あたりの計算処理は、各アームに対応して４つの計算処理に分割される。複数のロボット１２および装置１４，１５が干渉に関与する場合には、それぞれのロボット１２および装置１４，１５についても、３次元グラフィックスシミュレーションの計算処理が最小単位に分割される。
【００５１】
なお、本実施の形態では、ロボット１２および装置１４，１５の機械的な最小単位を基準として計算処理が分割されるが、この場合に限られず、一般的な分散処理において用いられている種々の分割手法を適用可能であることはもちろんである。この場合の計算処理の分割手法自体は、従来の技術と同様であるので、詳しい説明を省略する。
【００５２】
次に、主操作盤２１は、第１〜第６ライン系統における夫々の制御装置２２〜２７の状況について問い合わせる（ステップＳ１０６）。言い換えれば、主制御盤２１は、第１〜第６ライン系統における夫々の制御装置２２〜２７が稼動休止状態であるか否かについて問い合わせる。具体的には、主操作盤２１は、各ライン系統における生産ライン制御装置２２に対して信号を送信することによって、各ライン系統における制御装置２２〜２７の状況を問い合わせることが望ましい。この結果、各ライン系統の制御装置２２〜２７の状況が取得される（ステップＳ１０７）。
【００５３】
これらステップＳ１０６およびステップＳ１０７の処理は、ＳＣＡＤＡ（Ｓｕｐｅｒｖｉｓｏｒｙ  Ｃｏｎｔｒｏｌ  ａｎｄ  Ｄａｔａ  Ａｃｑｕｉｓｉｔｉｏｎ）と呼ばれる処理機能と同様である。すなわち、ステップＳ１０６とステップＳ１０７においては、各制御装置２２〜２７が稼動してるか、あるいは、ワークの手待ちになっているなどの理由により稼動休止状態（アイドル状態）となっているかが監視される。
【００５４】
具体的には、あるライン系統が稼動状態であれば、アクチュエータ１８の出戻に伴うリミットスイッチ１９の変化、および各接点のＯＮ／ＯＦＦの変化が検出される。一方、稼動休止状態となると、サイクルスタートの状態となりリモートＩ／Ｏ２８に入力される信号状態が変化しない。したがって、リモートＩ／Ｏ２８に入力される信号状態を監視することによって、特定のライン系統における制御装置２２〜２７が稼動休止状態であるか否かを判断することができる。また、稼動休止状態では、生産ライン制御装置（ＰＬＣ）２２において動作の進捗を示すステップ番号が変化しなくなる。したがって、生産ライン制御装置におけるステップ番号の変化に対応する信号を監視することによっても、特定のライン系統における制御装置２２〜２７が稼動休止状態であるか否かを判断することができる。
【００５５】
次に、ステップＳ１０７で取得された各ライン系統の制御装置２２〜２７の状況に基づいて、稼動休止状態となっている制御装置２２〜２７が検出される（ステップＳ１０８）。本実施の形態では、各ライン系統単位で、制御装置２２〜２７が稼動休止状態であるか否かが判断される。言い換えれば、稼動休止状態となっているライン系統と稼動休止状態となっていないライン系統とが識別され、稼動休止状態となっているライン系統に属する制御装置２２〜２７を稼動休止状態の制御装置としている。
【００５６】
次いで、検出された稼動休止状態の制御装置２２〜２７に対して、分散処理させる計算処理を割り付け（配分）する（ステップＳ１０９）。すなわち、３次元グラフィックスシミュレーションの計算処理は、ステップＳ１０５で複数の分割計算処理（最小単位）に分割されている。したがって、ステップＳ１０９の処理では、稼動休止状態の制御装置２２〜２７の数に応じて、一つの制御装置当たりに実行させる分割計算処理の配分数が設定される。好ましくは、稼動休止状態の各制御装置２２〜２７に実行させる計算量に偏りが生じないように均等に分割計算処理の配分数が設定される。
【００５７】
次に、各分割計算処理の記述言語の最適化がなされる（ステップＳ１１０）。ここで、記述言語の最適化処理の一例が図９に示されている。図９は、図７のステップＳ１１０における記述言語の最適化処理のサブルーチンの一例を示すフローチャートである。
【００５８】
まず、ある分割計算処理が配分される制御装置が、生産ライン制御装置２２または副操作盤２３である場合には（ステップＳ２０１：ＹＥＳ）、ラダー、ＦＢ（ファンクションブロック）、ニーモニック、Ｃ言語、またはアセンブラなどの記述言語の中から、その機種に応じて予め仕様で定められている記述言語が指定される（ステップＳ２０２）。なお、各制御装置の種類（機種）ごとに指定すべき記述言語仕様は、電子データとして主操作盤２１に予め記憶されていることが望ましい。
【００５９】
続いて、主制御盤２１は、使用可能なメモリ領域を問い合わせる（ステップＳ２０３）。制御装置の機種によっては、メモリのアドレスの指定の仕方が違う場合があり、この指定の仕方によってプログラムの記述の仕方が変わる場合がある。したがって、使用可能なメモリ領域を問い合わせておくことが望ましい。そして、問い合わせ先の制御装置２２〜２７から、メモリ領域についての通知が受信されるのを待って（ステップＳ２０４：ＹＥＳ）、分割計算処理のプログラムが指定言語に変換される（ステップＳ２０５）。
【００６０】
一方、ある分割計算処理が配分される制御装置が、溶接ロボット制御装置（溶接ロボットコントローラ）２４、搬送ロボット制御装置（搬送ロボットコントローラ）２５、３軸位置決め制御装置２６、１軸位置決め制御装置２７、または、その他のコンピュータである場合には（ステップＳ２０１：ＮＯ）、たとえば、アセンブラが指定言語として指定される（ステップＳ２０６）。
【００６１】
また、ＣＰＵ種類によってアセンブラの記述仕様が異なる場合があるので、ＣＰＵ種類についても問い合わせがなされる（ステップＳ２０７）。そして、ＣＰＵ種類についての通知を受信するのを待って（ステップＳ２０８：ＹＥＳ）、上述したステップＳ２０３〜ステップＳ２０５の処理がなされる。
【００６２】
以上のステップＳ２０１〜ステップＳ２０８に示された処理によって、各制御装置２２〜２７に適したプログラム記述言語でプログラムが記述されて各分割計算処理が表現される。
【００６３】
以上のように、記述言語が最適化されると、図７に戻り、記述言語が最適化された各分割計算処理が、ステップＳ１０９で割り付けられた稼動休止状態の各制御装置２２〜２７に送信される（ステップＳ１１１）。すなわち、各制御装置２２〜２７に対してシミュレーションの分散処理が指示される。ここで、各制御装置２２〜２７におけるメモリ容量を節約する観点からは、各分割計算処理は、実行形式にコンパイルされたプログラムが稼動休止状態の各制御装置に送信されることが望ましい。
【００６４】
続いて、各制御装置２２〜２７から実行可能か否かの応答を受信するのを待って（図８のステップＳ１１２：ＹＥＳ）、すべての分割計算処理が実行可能であるかが判断される（ステップＳ１１３）。指示先の制御装置２２〜２７において実行不可能である旨が通定された分割計算処理がある場合には（ステップＳ１１３：ＮＯ）、図７のステップＳ１０６に戻り、少なくとも、実行不可能の旨が通知された分割計算処理については、再度、ステップＳ１０６〜ステップＳ１１３の処理が実行される。
【００６５】
送信した全ての分割計算処理が、指示先の制御装置２２〜２７において実行可能である場合には（ステップＳ１１３：ＹＥＳ）、主制御盤２１は、各制御装置２２〜２７から各分割計算処理の実行結果（シミュレーション結果）が受信されるのを待つ（ステップＳ１１４）。分割処理の実行結果は、たとえば、数値データとして受信される。
【００６６】
次いで、主制御盤２１は、分割計算処理の実行結果を統合して、シミュレーションの対象となるロボット１２，１３および位置決め装置１４，１５全体の３次元グラフィックシミュレーション結果を得る（ステップＳ１１５）。上述したとおり、ロボット１２を例にとれば、ロボット１２の各関節によって区切られたアーム等の機械要素（換言すれば、多軸ロボットの各軸ごと）に分けて経路計算がなされている。したがって、これらの各アームの経路計算結果が、各アーム間の連結関係に応じて組み合わされる。すなわち、連結するアームの経路計算結果を、連結されるアームの端部（連結部）が基準座標となるように座標変換し、順次に組み合わせていくことによって、ロボット１２の全体の３次元グラフィックシミュレーション結果を得る。
【００６７】
一つのシミュレーション処理における全ての時間ステップにわたる経路計算が終了するまで（ステップＳ１１６）、所定の時間ステップΔｔを進めて（ステップＳ１１７）、順次にステップＳ１０６〜ステップＳ１１５の処理を繰り返す。ここで、主操作盤２１は、ステップＳ１０６〜ステップＳ１０８において、稼動休止状態の制御装置２２〜２７の数および種類の変化を検出し、ステップＳ１０９において、この数および種類の変化に対応して、各制御装置２２〜２７に分散処理させる配分を動的に変化させることができる。
【００６８】
一つのシミュレーション処理における全ての時間ステップを通じた経路計算が終了した場合には（ステップＳ１１６：ＹＥＳ）、車種組合せなどを考慮した全ての処理が完了したか否かが判断される（ステップＳ１１８）。全ての処理が完了していない場合には（ステップＳ１１８：ＮＯ）、次のシミュレーション処理内容を設定し（ステップＳ１１９）、ステップＳ１０６〜ステップＳ１１８の処理が繰り返される。
【００６９】
最終的に、全ての処理が完了するのを待って（ステップＳ１１８：ＹＥＳ）、分割処理を実行している各制御装置２２〜２７に対して、処理終了通知が送信されるとともに、指定された退避順序および退避経路でロボット１２を退避させた場合の干渉の有無が表示される（ステップＳ１２０）。ここで、ロボット１２，１３、装置１４，１５、およびその他の構造物の形状と、互いの位置関係とが３次元グラフィックスとして再現されており、ロボット１２，１３や位置決め装置１４，１５のように稼動する対象物については、上述したとおり、その退避動作がシミュレーションされているので、ロボット１２を退避させる過程で、ロボット１２が他のロボット１２，１３、装置１４，１５、その他の構造物と接触するか否かを判断することができる。なお、干渉検討の実際の処理は、従来のシミュレーション処理の場合と同様であるので、詳しい説明を省略する。
【００７０】
以上のステップＳ１０１〜ステップＳ１２０の処理によって、保全員は、ロボット１２を退避させる上での退避経路および退避順序を自由に指定し、その退避時の干渉の有無をシミュレーションシステムを用いて確認しつつ、復旧処理をすることができる。この結果、熟練していない保全員によっても、退避時に干渉が生じない退避動作が簡単に求められる。
【００７１】
（各制御装置側の処理）
次に、実際に分散処理によってシミュレーション処理を実行する各制御装置２２〜２７の処理手順について説明する。
【００７２】
図１０は、稼動休止状態であるか否かの問い合わせを受信する前の各制御装置２２〜２７の処理内容を示すフローチャートであり、図１１および図１２は、稼動休止状態であるか否かの問い合わせを受信した後の各制御装置２２〜２７の処理内容を示すフローチャートである。
【００７３】
図１０に示されるとおり、各制御装置２２〜２７は、初期状態では、ロボット１２，１３、位置決め装置１４，１５、または生産ライン全体を制御するための通常の動作状態（以下、「通常モード」という）となっている（ステップＳ３０１）。
【００７４】
制御装置２２〜２７のいずれかの制御装置（たとえば、副操作盤２３）が、図示していないキーボード、タッチパネル、またはマウスなどのポインティングデバイス、デジタルＩ／Ｏを利用したスイッチ操作を介して保全員によるシミュレーションの指示を受け付けると（ステップＳ３０２：ＹＥＳ）、この制御装置は、割り込み処理によって、シミュレーション指示を主操作盤２１に送信する（ステップＳ３０３）。
【００７５】
次いで、制御装置２２〜２７のうち、たとえば生産ライン制御装置２２は、主制御盤２１から、ロボット１２の干渉が生じた設備の設備状況データの要求を受けると（ステップＳ３０４：ＹＥＳ）、干渉が生じたロボット１２の位置、およびそのときの動作プログラム状態を含む設備状況データを送信する（ステップＳ３０５）。なお、ロボット１２の干渉発生事実および干渉発生位置は、所定時間以内で位置決め処理が終わらないなどの状況を生産ライン制御装置２２が監視することによって検出してもよく、リモートＩ／Ｏ２８などに接続されている過負荷センサ（不図示）の出力を生産ライン制御装置２２が監視することによって直接的に検出してもよい。
【００７６】
次に、稼動休止状態であるか否かの問い合わせを受けた後の各制御装置２２〜２７の処理内容を図１１および図１２を用いて説明する。
【００７７】
図１１に示されるとおり、各制御装置２２〜２７の状況についての問い合わせ、すなわち各制御装置２２〜２７が稼動休止状態であるか否かの問い合わせが受信されると（ステップＳ４０１：ＹＥＳ）、対応するライン系統の各制御装置２２〜２７が稼動休止状態である場合には（ステップＳ４０２：ＹＥＳ）、稼動休止状態であることを示す信号が主操作盤２１に送信され（ステップＳ４０３）、対応するライン系統の各制御装置２２〜２７が稼動休止状態でない場合、すなわち稼動状態である場合には（ステップＳ４０２：ＮＯ）、稼動状態であることを示す信号が主操作盤２１に送信される（ステップＳ４０４）。
【００７８】
なお、ステップＳ４０１〜ステップＳ４０４の各処理は、各制御装置２２〜２７でそれぞれ実行される必要がなく、主として生産ライン制御装置２２が実行すればよい。
【００７９】
ここで、各制御装置２２〜２７が稼動状態である場合には、ステップＳ４０５以下に示されるシミュレーションの処理は実行されず、処理はステップＳ４０１へ戻り、通常モードが維持される。
【００８０】
次いで、各制御装置２２〜２７は、稼動休止状態である場合には、必要に応じて、ＣＰＵ種類の問い合わせの受信（ステップＳ４０５）と、それに応答する通知の送信（ステップＳ４０６）、およびメモリ領域の問い合わせの受信（ステップＳ４０７）と、それに応答する通知の送信（ステップＳ４０８）を実行する。
【００８１】
そして、各制御装置２２〜２７は、最終的に分割計算処理の指示（具体的には実行形式のプログラムとなっている）を受信するのを待って（ステップＳ４０９：ＹＥＳ）、受信した分割計算処理が自装置で実行可能か否かを判断する（図１２のステップＳ４１０）。受信した分割計算処理が自装置で実行不可能である場合には（ステップＳ４１０：ＮＯ）、主操作盤２１に対して、受信した分割計算処理が自装置で実行不可能である旨を送信し（ステップＳ４１１）、処理がステップＳ４０１へ戻る。このとき、制御装置２２〜２７の動作状態が、計算処理モードとなっていた場合には（ステップＳ４１２：ＹＥＳ）、動作状態が計算処理モードから通常モードへ切り替えられた後（ステップＳ４２０）、処理が図１１のステップＳ４０１に戻る。ここで、計算処理モードとは、後述するように、計算処理が可能である動作状態である。計算処理モードでは、分割計算処理を実行するための作業領域がメモリ領域上に確保される。
【００８２】
一方、指示した分割計算処理が自装置で実行可能である場合には（図１２のステップＳ４１０：ＹＥＳ）、主操作盤２１に対して、分割計算処理の実行を開始する旨を送信する（ステップＳ４１３）。このとき、制御装置２２〜２７が計算処理モードであった場合には（ステップＳ４１４：ＮＯ）、そのままステップＳ４１６の処理へ進む。一方、制御装置２２〜２７が通常モードであった場合には（ステップＳ４１４：ＹＥＳ）、通常モードから計算処理モードへと動作状態が切り替えられた後（ステップ４１５）、ステップＳ４１６の処理に進む。
【００８３】
ここで、動作状態の切替処理について説明する。図１３は、動作状態の切替処理について示している。動作状態の切替処理には、上述した図１２に示されるとおり、通常モードから計算処理モードへの切替処理（ステップＳ４１５）と、計算処理モードから通常モードへの切替処理（ステップＳ４２０）とが含まれる。図１３では、生産ライン制御装置（ＰＬＣ）２２および副操作盤（グラフィックパネル）２３における各切替処理が示されている。
【００８４】
まず、制御装置が生産ライン制御装置２２である場合を例にとって説明する。通常モードから計算処理モードへの切替処理の場合には、まず、稼動休止状態か否かを監視するための構成であるアイドル状態用監視回路の抽出がなされる（ステップＳ５０１）。アイドル状態用監視回路は、たとえば、上述したようなリモートＩ／Ｏ２８から入力される信号状態の監視するための構成、または生産ライン制御装置（ＰＬＣ）２２における動作の進捗を示すステップ番号を変化させ、この変化を監視するための構成などを意味する。制御装置２２が計算処理モードとなった場合も、これら抽出されたアイドル状態用監視回路は能動状態が維持される。
【００８５】
次に、生産ライン制御装置２２が、生産ライン全体を統括して制御するために通常モード時に用いていた各種のデータからなる現在のメモリデータが圧縮されて、所定のメモリ領域に退避される（ステップＳ５０２）。そして、メモリデータの圧縮および退避によって空いたメモリ領域内に、アイドル状態の監視と計算処理とに用いられる作業領域が設定される（ステップＳ５０３）。この結果、通常モードから計算処理モードへの切替が完了する。
【００８６】
一方、計算処理モードから通常モードへの切替処理の場合には、退避したメモリデータが解凍され、復元される（ステップＳ６０１）。この結果、計算処理モードから通常モードへの切替が完了する。
【００８７】
次に、制御装置が副操作盤２３である場合である場合を説明する。通常モードから計算処理モードへの切替処理の場合には、画面データの更新頻度が低減される（ステップＳ７０１）。そして、更新頻度の低減によって節約されたメモリ領域内に、計算処理に用いられる作業領域が設定される（ステップＳ７０２）。この結果、通常モードから計算処理モードへの切替が完了する。一方、計算処理モードから通常モードへの切替処理の場合には、画面データの更新頻度が復元される（ステップＳ８０１）。
【００８８】
なお、制御装置が、溶接ロボット制御装置２４、搬送ロボット制御装置２５、３軸位置決め制御装置２６、または１軸位置決め制御装置２７の場合には、生産ライン制御装置２２の場合の処理（ステップＳ５０１〜ステップＳ５０３、およびステップＳ６０１）と概ね同様の処理が実行される。また、制御装置が、パーソナルコンピュータである場合であれば、パーソナルコンピュータ用のマルチタスクＯＳ（オペレーティングシステム）を利用することができるので、特別の切替処理は不要である。
【００８９】
以上のような処理によって、制御装置２２〜２７の動作状態が計算処理モードに切り替えられている状態で、夫々の制御装置２２〜２７は、図１２のステップＳ４１６に進み、分割計算処理を実行する。
【００９０】
次いで、制御装置２２〜２７は、主制御盤２１に対して、計算処理の実行結果を送信する（ステップＳ４１７）。主制御盤２１から処理終了の通知を受信した場合には（ステップＳ４１８：ＹＥＳ）、すべての３次元グラフィックスシミュレーションの処理が完了したものとして、動作状態が計算処理モードから通常モードに切り替えられる（ステップＳ４２０）。
【００９１】
一方、処理終了の通知を受信していない場合であっても（ステップＳ４１８：ＮＯ）、自機が稼動休止状態にあるか否かが常に監視されており（ステップＳ４１９）、自機が稼動休止状態でなく稼動状態となった場合には（ステップＳ４１９：ＮＯ）、動作状態が計算処理モードから通常モードに切り替えられる（ステップＳ４２０）。
【００９２】
以上のステップＳ４０１〜ステップＳ４２０を繰り返すことによって、各制御装置２２〜２７は、ロボットの干渉が発生しておらず、稼動状態となっている場合には、ロボットおよび各種装置の制御装置として動作し、ロボットの干渉に起因して稼動休止状態となった場合には、ロボットの退避動作についての３次元グラフィックシミュレーションを分散処理するシミュレーターとして動作する。
【００９３】
なお、以上の説明では、主として、退避動作（退避経路や退避順序）の候補を保全員が指定して、指定した退避動作を採用したときの干渉の有無をシミュレーションシステムを用いて検討する場合を示したが、同様の処理によって、位置修正動作（位置修正経路や位置修正順序）および手動溶接動作（手動溶接経路や手動溶接順序）の候補を保全員が指定して、指定した位置修正動作および手動溶接動作を採用したときの干渉の有無をシミュレーションシステムを用いて検討することができる。
【００９４】
以上のとおり、本実施の形態のシミュレーション方法およびそのシステムを説明したが、本実施の形態のシミュレーション方法およびそのシステムによれば、以下のような効果を奏する。
【００９５】
（Ａ）複数台の専用コンピュータを別途導入することなく、ロボットの干渉が発生した際のロボットの復旧動作（退避動作および位置修正動作など）を短時間でシミュレーションすることが可能となる。すなわち、生産設備の制御に用いられる複数の制御装置２２〜２７の処理能力を一時的かつ部分的に、ロボットの復旧動作の検討に割り当てて、３次元グラフィックスシミュレーションを分散処理することができるので、生産現場においてロボットの復旧動作の検証が可能となり、保全員の熟練度に依存しない復旧作業が可能となる。
【００９６】
（Ｂ）特に、生産設備の制御に用いられる複数の制御装置２２〜２７を利用できるので、３次元グラフィックスシミュレーションを分散処理するための専用のコンピュータを導入する必要がなく、設置場所をとらず、導入費用および保守管理費用を低減できる。
【００９７】
（Ｃ）ロボットの干渉の発生に起因して上流および下流の生産ラインにおいて制御装置が稼動休止状態となることを利用して、これら稼動休止状態となった制御装置を有効活用するので、シミュレーションが必要になった際に、シミュレーションを分散処理させることが可能な制御装置の数を確保しやすい。
【００９８】
（Ｄ）稼動休止状態となった制御装置のみに分散処理させて、稼動状態にある制御装置についてはワークの生産に関する通常の処理を続行させるので、ワークの生産が必要以上に抑制されない。
【００９９】
（Ｅ）特に、稼動休止状態の制御装置の数および種類の変化に応じて、各制御装置に分散処理させる配分を動的に変化させるので、状況の変化に応じて最短の時間でシミュレーションを実行することができる。特に、多くの生産ラインが稼動休止状態となるような大きな影響を受けるロボットの干渉の発生時には、より一層の早急な復旧が必要となるが、本実施の形態では、稼動休止状態となる生産ラインが増えるにしたがって、シミュレーションの分散処理に振り分けられる制御装置の数も自動的に増えるので、稼動休止状態となった生産ラインの規模に応じて早急な復旧を実現することができる。
【０１００】
（Ｆ）検出された稼動休止状態の各制御装置ごとに適用可能な各記述言語で分散処理が与えられるので、制御装置の種類によらず、稼動休止状態の各制御装置を全て活用することが可能となる。
【０１０１】
（Ｇ）分散処理させる前に、各制御装置２２のメモリデータを圧縮し退避しておくので、設備の制御に用いられるメモリデータが分散処理の影響によって破損されることがない。
（第２の実施の形態）
本実施の形態のシミュレーションシステムは、第１の実施の形態で説明した処理に加えて、さらにシミュレーションによって得られた結果に基づいて、実際にロボットを動作させる処理を実行するものである。なお、実際にロボットを動作させる処理を実行させる点を除いて、その構成は、第１の実施の形態の場合と同様であるので、詳しい説明を省略する。
【０１０２】
上記の第１の実施の形態では、ロボットの干渉が発生した際に、ロボットの復旧動作がシミュレーションされる場合を説明した。この結果、干渉が生じない安全な退避動作（退避経路および退避順序）、位置修正動作（位置修正経路および位置修正順序）、手動溶接動作（手動溶接経路および手動溶接順序）が決定される。
【０１０３】
そこで、本実施の形態のシミュレーションシステムでは、退避動作、位置修正動作、および手動溶接動作において干渉が生じないことがシミュレーションによって確立された時点で、これらの退避動作、位置修正動作、および手動溶接動作にしたがって、自動的に実際のロボットを動作させるように構成される。
【０１０４】
具体的には、保全員によって指定された退避動作、位置修正動作、および手動溶接動作において干渉が発生しないことが確立できると、主制御盤２１は、各生産ライン制御装置２２に指示を送り、この結果、ロボット１２などが実際に動作する。
【０１０５】
なお、ロボットが緊急停止する事象が発生した際の復旧作業には、保全員の関与が必要なくロボットが動作すればよいものと、保全員の実際の作業が必要となるものとが混在している。本実施の形態では、これらのうち、保全員の関与が必要なくロボットが動作すればよい作業が自動的に実行される。
【０１０６】
復旧作業は、以下の第１〜第３手法からなる３つの手法に分類される。どの手法を採用するかは、ワークの状況に応じて保全員が判断する。
（第１手法）
第１手法は、ワークが破損してしまった場合に主として採られる手法である。まず、ワークを抜き出せる状態までロボット１２が安全に退避される（第１作業）。そして、作業者がワークを抜き出す（第２作業）。抜き出されたワークは、たとえば廃棄される。次いで、ロボット１２が原位置に戻される（第３作業）。その後、生産加工プログラムが初めから起動される（第４作業）。
【０１０７】
この第１手法では、第１作業の退避動作と第３作業の位置調整動作とが上記のシミュレーションによって検討されて干渉しないことが確立された時点で自動的に実行される。
（第２手法）
第２手法は、加工前または加工途中のワークが破損されておらず、生産加工プログラムの途中からロボット１２の動作を再開できる場合に主として採られる手法である。自動車車体組み立て設備を例にとれば、ワークの溶接前および溶接途中のワークが破損されておらず、ロボット１２が溶接の続きを実行できる場合に採用される手法である。
【０１０８】
第２手法では、ロボット１２が干渉することによって、それぞれのロボット１２の位置が本来の指示座標とずれてしまっていることを考慮して、ティーチング修正が実行される。ティーチング修正は、ロボット１２を一旦、基準位置に戻して、ロボット１２と座標系とのずれ（オフセット）を調整する位置修正動作である。
【０１０９】
まず、ティーチング修正する際に干渉すると予想されるロボット１２が退避される（第１段階）。すなわち、複数のロボット１２が干渉して寄り付いている場合に、ロボット１２同士が引き離される。次いで、干渉が生じたロボット１２に対しては、ティーチング修正がなされる（第２段階）。その後、各ロボット１２を溶接前または溶接途中の設定位置に移動させる位置修正がなされる（第３段階）。そして、生産加工プログラムが途中から実行される（第４段階）。
【０１１０】
この第２手法では、第１段階の退避動作と、第２および第３段階の各位置修正動作とがが上記のシミュレーションによってそれぞれ検討され、干渉しないことが確立された時点で自動的に実行される。
（第３手法）
第３手法は、加工途中のワークが破損されておらず、保全員（作業者）がロボット操作用ペンダントなどを用いて手動でワークの加工を継続できる場合に採られる手法である。自動車車体組み立て設備を例にとれば、溶接途中のワークが破損されておらず、保全員が手動でワークの溶接の続きを実行できる場合に採用される手法である。
【０１１１】
第３手法では、複数のロボット１２の中で干渉によってティーチング修正が必要になったものと、干渉しておらずティーチング修正が不要なものとが分けられる。まず、ティーチング修正が不要なロボット１２の作業に関してロボット１２を手動で動かしてワークの溶接が継続される（第１段階）。一方、ティーチング修正が必要なロボット１２については、ティーチング修正がなされる（第２段階）。そして、ティーチング修正がなされたロボットの作業に関してロボット１２を手動で動かしてワークの溶接が継続される（第３段階）。この結果、溶接途中のワークについて全ての溶接が完了すると、各ロボット１２を溶接完了状態に設定して、この溶接完了状態に対応するステップを開始点にして生産加工プログラムが再開される（第４段階）。
【０１１２】
この第３手法では、第１段階および第３段階における手動溶接動作と、第２段階の位置修正動作とが、上記のシミュレーションによってそれぞれ検討され、干渉しないことが確立された時点で自動的に実行される。
【０１１３】
以上のとおり、保全員によって、第１〜第３手法のどの手法が採用された場合であっても、その手法中に含まれる幾つかのロボットの復旧動作、すなわち、退避動作、位置修正動作、および手動溶接動作について、シミュレーションによって得られた結果に基づいて自動的にロボットを動作させることができる。
【０１１４】
本実施の形態のシミュレーション方法およびそのシステムによれば、第１の実施の形態で示した（Ａ）〜（Ｇ）の効果に加えて、さらに（Ｈ）保全員が目視確認しながら行っていたロボット１２の復旧動作を自動化することが可能となるので、保全員の経験や知見の差による保全作業時間のばらつきや保全品質のばらつきが無くなり、復旧・保全作業緒の均一化を図ることができるという効果を奏する。
【０１１５】
以上のように、本発明の好適な実施の形態について説明したが、本発明は、これらの場合に制限されるものではなく、当業者によって種々の変形、省略、追加が可能である。
【０１１６】
たとえば、上述した例では、稼動休止状態の各制御装置２２〜２７に対して復旧動作のシミュレーションの分散処理を指示する管理装置として、主操作盤２１を用いる場合を示したが、管理装置として、主操作盤２１とは異なる別途の端末装置を用意してもよいことはもちろんである。
【０１１７】
また、上記の例では、シミュレーションを分散処理する制御装置として、生産ライン制御装置２２、副操作盤２３、溶接ロボット制御装置２４、搬送ロボット制御装置２５、３軸位置決め制御装置２６、および１軸位置決め制御装置２７を含む場合を説明したが、本発明は、生産設備の制御に用いられる複数の制御装置が稼動休止状態である場合に、シミュレーションの分散処理を実行するものであればよく、上記の場合に限られるものであはない。
【０１１８】
さらに、上記の例では、稼動休止状態であり分散処理が実行可能な全ての制御装置２２〜２７がシミュレーションの分散処理を実行する場合を説明した。確かに、シミュレーションに要する時間を短縮化する観点からは、稼動休止状態であり分散処理が実行可能な全ての制御装置２２〜２７をシミュレーションの分散処理に用いることが望ましいが、本発明は、この場合に限られず、少なくとも、検出された稼動休止状態の制御装置２２〜２７に含まれる複数の制御装置で、復旧動作のシミュレーションを分散処理するものを含む。
【０１１９】
上記の例では、本発明のシミュレーションシステムを自動車車体組み立て設備に適用した場合を説明したが、本発明のシミュレーションシステムを他の生産設備に適用することができることはもちろんである。
【図面の簡単な説明】
【０１２０】
【図１】シミュレーションシステムが適用される自動車車体組み立て設備の一例を示す模式図である。
【図２】図１の自動車車体組み立て設備における生産ラインの仕様の一例を示す図である。
【図３】図１に示される自動車車体組み立て設備の制御系の一例を示す模式図である。
【図４】図３に示される生産ライン制御装置における生産加工プログラム動作とインターロックの一例を示す図である。
【図５】第１の実施の形態のシミュレーションシステムの構成を示す模式図である。
【図６】本実施形態のシミュレーションシステムの処理内容を説明するための概略図である。
【図７】図５に示される主操作盤のる処理手順を示すフローチャートである。
【図８】図７に後続する処理手順を示すフローチャートである。
【図９】図７のステップＳ１１０における記述言語の最適化処理を示すフローチャートである。
【図１０】稼動休止状態であるか否かの問い合わせを受信する前における図５の各制御装置の処理手順を示すフローチャートである。
【図１１】稼動休止状態であるか否かの問い合わせを受信する後における図５の各制御装置の処理手順を示すフローチャートである。
【図１２】図１１に後続する処理手順を示すフローチャートである。
【図１３】図１２のステップ４１５およびステップＳ４２０における動作状態の切替処理を示すフローチャートである。
【符号の説明】
【０１２１】
１０    生産ライン、
１２    溶接ロボット、
１３    搬送ロボット、
１４    ３軸位置決め装置、
１５    １軸位置決め装置、
１８    アクチュエータ、
１９    リミットスイッチ、
２１    主操作盤、
２２    生産ライン制御装置、
２３    副操作盤、
２４    溶接ロボット制御装置、
２５    搬送ロボット制御装置、
２６    ３軸位置決め制御装置、
２７    １軸位置決め制御装置、
２８    リモートＩ／Ｏ、
２９    ＯＡネットワーク、
３０    ＦＡネットワーク。
【図１】
2006018575.tif 000003
【図２】
2006018575.tif 000004
【図３】
2006018575.tif 000005
【図４】
2006018575.tif 000006
【図５】
2006018575.tif 000007
【図６】
2006018575.tif 000008
【図７】
2006018575.tif 000009
【図８】
2006018575.tif 000010
【図９】
2006018575.tif 000011
【図１０】
2006018575.tif 000012
【図１１】
2006018575.tif 000013
【図１２】
2006018575.tif 000014
【図１３】
2006018575.tif 000015