シミュレーション方法およびシミュレーションシステム
【課題】複数台の専用コンピュータを別途導入することなく、ロボットが緊急停止する事象が発生した際のロボットの復旧動作を短時間でシミュレーションする。
【解決手段】少なくともロボット12を含む生産設備の制御に用いられる複数の制御装置22〜27と、複数の制御装置22〜27と通信可能な主操作盤21とを有し、ロボット12が緊急停止する事象が発生した際にロボット12の復旧動作をシミュレーションシステムであって、主操作盤21が、稼動休止状態となった制御装置を複数の制御装置のうちから検出し、検出された稼動休止状態の制御装置に対して、復旧動作のシミュレーションの分散処理を指示し、指示された各制御装置が、復旧動作のシミュレーションを分散処理する。
【解決手段】少なくともロボット12を含む生産設備の制御に用いられる複数の制御装置22〜27と、複数の制御装置22〜27と通信可能な主操作盤21とを有し、ロボット12が緊急停止する事象が発生した際にロボット12の復旧動作をシミュレーションシステムであって、主操作盤21が、稼動休止状態となった制御装置を複数の制御装置のうちから検出し、検出された稼動休止状態の制御装置に対して、復旧動作のシミュレーションの分散処理を指示し、指示された各制御装置が、復旧動作のシミュレーションを分散処理する。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ロボットが緊急停止する事象が発生した際にロボットの復旧動作をシミュレーションするシミュレーション方法およびそのシステムに関する。
【背景技術】
【0002】
複数の工程を有する生産設備では、各工程間におけるロボットおよび位置決め装置の動作がインターロック信号によって規定されており、ロボットが他のロボットまたは装置と干渉(衝突)することを防止している。しかしながら、なんらかの不具合によって、ロボットの干渉が発生する場合がある。
【0003】
ロボットの干渉のようにロボットが緊急停止する事象が発生した場合には、早急な復旧処理が必要となる。しかしながら、各工程においてロボットおよび装置は、工程間でのインターロック信号が受信されるまでは、互いに独立して動作が進行している。したがって、どのような進捗段階でロボットが緊急停止する事象が発生したのかを判断することが難しい。言い換えれば、このような事象が発生した場合における複数の工程の進捗状況の組み合わせは千差万別であり、特に、複数品種のワークが混在している生産設備では、この傾向が高い。したがって、ロボットの退避動作および位置修正動作などの復旧動作を実行する際には、熟練した保全員が、設備固有の知識や経験をもとに、一台ずつロボット操作用ペンダントを用いて操作する必要があった。
【0004】
なお、近年では、3次元グラフィックスシミュレーションを用いて、指定した経路でロボットを動作させた場合の干渉の有無を事前検討できるようになっている。したがって、ロボットの復旧動作に関しても、3次元グラフィックスシミュレーションを用いて、干渉しない安全な復旧動作、すなわち安全なロボットの経路および操作順序を決定することが考えられる。しかしながら、3次元グラフィックシミュレーションは計算の負荷が高いので、一台のコンピュータを用いて実行するのでは、安全な経路や操作順序を決定するために数時間(たとえば、8時間)程度もかかり、早急な復旧作業に支障をきたす。
【0005】
一方、近年、シミュレーションの分野では、複数のコンピュータを用いて分散処理させることによって、シミュレーションの結果を得るまでにかかる時間を短縮する分散処理技術が開発されている(特許文献1など)。
【0006】
しかしながら、ロボットが緊急停止する事象が発生した際のロボットの復旧動作をシミュレーションするために複数台の専用コンピュータを別途導入することは、設置場所をとるばかりでなく、導入費用および保守管理費用の増大をもたらす。
【特許文献1】特開2000−10806号公報
【発明の開示】
【発明が解決しようとする課題】
【0007】
本発明は、以上の問題点を解決するためになされたものである。したがって、本発明の目的は、複数台の専用コンピュータを別途導入することなく、ロボットが緊急停止する事象が発生した際にロボットの復旧動作を短時間でシミュレーションすることが可能なシミュレーション方法およびシミュレーションシステムを提供することである。
【課題を解決するための手段】
【0008】
(1)本発明のシミュレーション方法は、ロボットが緊急停止する事象が発生した際にロボットの復旧動作をシミュレーションするシミュレーション方法であって、生産設備の制御に用いられる複数の制御装置のうちで稼動休止状態となった制御装置を検出する段階と、検出された稼動休止状態の制御装置で、前記復旧動作のシミュレーションを分散処理する段階と、を有することを特徴とする。
【0009】
(2)本発明のシミュレーションシステムは、少なくともロボットを含む生産設備の制御に用いられる複数の制御装置と、前記複数の制御装置と通信可能な管理装置とを有し、前記ロボットが緊急停止する事象が発生した際にロボットの復旧動作をシミュレーションシステムであって、前記管理装置が、稼動休止状態となった制御装置を前記複数の制御装置のうちから検出し、検出された稼動休止状態の制御装置に対して、復旧動作のシミュレーションの分散処理を指示し、指示された各制御装置が、復旧動作のシミュレーションを分散処理することを特徴とする。
【発明の効果】
【0010】
本発明のシミュレーション方法およびシステムによれば、複数台の専用コンピュータを別途導入することなく、ロボットが緊急停止する事象が発生した際のロボットの復旧動作を短時間でシミュレーションすることができる。
【発明を実施するための最良の形態】
【0011】
(第1の実施の形態)
本実施の形態のシミュレーション方法は、ロボットが緊急停止する事象が発生した際にロボットの復旧動作をシミュレーションする方法である。なお、ロボットが緊急停止する事象には、ロボットの干渉(すなわち、ロボット同士の干渉、およびロボットと他の装置との干渉)が含まれる。また、ロボットの復旧動作は、ロボットの退避動作(退避経路および退避順序)、ロボットの位置修正動作(位置修正経路および位置修正順序)、および、手動溶接動作(手動溶接経路および手動溶接経路)が含まれる。ここで、ロボットの退避動作は、干渉が生じたロボットを逃がす動作であり、ロボットの位置修正動作は、干渉時の衝撃によってロボットが本来の座標位置からずれた場合に、ロボットの位置を本来の座標位置または原点位置に戻すための動作である。また、手動溶接動作は、ロボットの干渉によって溶接途中となったワークに対して、保全員(作業者)がロボット操作用ペンダントなどを用いて手動でロボットを動かして溶接を完了させるための動作である。なお、以下の説明では、ロボットが干渉した際にロボットの退避動作をシミュレーションする場合を例にとって説明する。
【0012】
一般的に、ある生産ラインでロボットが干渉して稼動が休止すると、この干渉に起因して他の生産ラインも稼動休止状態(アイドル状態)となる。通常、各生産ラインには、複数の制御装置が設置されており、ロボットおよび位置決め装置を制御している。したがって、生産ラインの稼動休止に伴って、これら複数の制御装置も稼動休止状態となる。
【0013】
そこで、本実施の形態のシミュレーション方法では、ロボットの干渉の発生に起因して稼動休止状態となったこれらの制御装置を検出し、各制御装置の能力を有効活用して、ロボットの退避動作のシミュレーションを分散処理する。以下、図面を参照しつつ、本実施の形態のシミュレーション方法およびそのシステムについて詳細に説明する。
【0014】
まず、前提として、本実施の形態のシミュレーションシステムが適用される生産設備について説明する。ここでは、生産設備として自動車車体組み立て設備を例にとって説明する。
【0015】
図1は、本実施の形態の形態のシミュレーションシステムが適用される自動車車体組み立て設備を示している。自動車車体組み立て設備は、複数の生産ラインからなる。図1は、それらの中の一つの生産ライン10を示している。生産ラインには複数の工程(ステージ)が含まれており、図1に示される生産ライン10には、第1工程〜第7工程の7つの工程(ステージ)が含まれている。
【0016】
各工程には、溶接ロボット12、搬送ロボット13、3軸位置決め装置14、1軸位置決め装置15、作業者16、およびその他の治具17から選ばれた種々の構成が含まれる。なお、その他の治具17には、たとえば、アクチュエータ18、およびリミットスイッチ(センサ)19などが含まれる。
【0017】
ここで、具体的には、溶接ロボット12は、複数のアームが関節によって連結されてなる多軸ロボットであり、その先端には溶接ガンが搭載されている。溶接ロボット12は、溶接によってワークを組み立てる際に用いられる。
【0018】
搬送ロボット13は、ワークの移動に用いられるロボットである。3軸位置決め装置14および1軸位置決め装置15は、ロケートピンなどを有し、作業時にワークを固定するために用いられる。特に、3軸位置決め装置14は、複数品種のワークが混在している際に、ワークの種類に応じて位置決め用のロケートピンをX,Y,Z軸に沿って動かしてワークを固定するために用いられる。アクチュエータ18は、たとえば油圧シリンダーであり、各種駆動に用いられる。リミットスイッチ19は、アクチュエータ18などの出限、戻限などを監視しており、状況監視のためのセンサとして機能する。
【0019】
図2は、本実施の形態の自動車車体組み立て設備における生産ラインの仕様の一例を示す。図2に示される例では、1つの生産ラインには、最大32個の工程が含まれる。また、図2には、アクチュエータ、リミットスイッチ(LS)、作業者、溶接ロボット、搬送ロボット、チップドレッサ、3軸位置決め装置、および1軸位置決め装置がそれぞれ一工程当たりに含まれうる数量と、1ライン(32工程)当たりに含まれる最大値の一例が示されている。
【0020】
次に、本実施の形態の自動車車体組み立て設備における制御系について説明する。図3は、本実施の形態における制御系およびネットワークの構成の一例を示す図である。
【0021】
本実施の形態の制御系には、自動車車体組み立て設備の全体を管理する主操作盤21が含まれる。この主操作盤21は、パーソナルコンピュータやエンジニアリングワークステーションなどのコンピュータであり、Ethernet(登録商標)などのOA(office automation)ネットワーク29に接続されている。本実施の形態では、主操作盤21は、3次元グラフィックシミュレーション用の管理装置としても機能し、後述する制御装置に対して3次元グラフィックシミュレーションの分散処理を指示する機能を有している。この点については、後述する。
【0022】
また、各生産ライン10a〜10gごとに、FA(factory automation)ネットワーク30が設けられている。各生産ライン10a〜10g毎に、生産ライン制御装置22、副操作盤23、溶接ロボット制御装置24、搬送ロボット制御装置25、3軸位置決め制御装置26、1軸位置決め制御装置27、およびリモートI/O28などが互いに通信可能にFAネットワーク30に接続されている。各生産ライン10a〜10gのFAネットワーク30は、たとえば、生産ライン制御装置22を介して、上記のOAネットワーク29に接続される。なお、図3では、生産ライン10aにおける制御装置22〜27およびリモートI/O28のみが示されているが、他の生産ライン10b〜10gにも、同様に、制御装置22〜27およびリモートI/O28が設けられている。
【0023】
ここで、生産ライン制御装置22、副操作盤23、溶接ロボット制御装置24、搬送ロボット制御装置25、3軸位置決め制御装置26、および1軸位置決め制御装置27は、生産設備の制御に用いられる複数の制御装置であり、具体的にはコンピュータである。
【0024】
生産ライン制御装置22は、いわゆるPLC(プログラマブル論理制御装置)であり、図1に示されるような1つの生産ライン10a全体を統括して制御する制御装置である。副操作盤23は、作業者が操作する操作機器である。副操作盤23は、グラフィックパネル(グラパネ)とも呼ばれており、所定の更新頻度で画面データを更新して表示する。溶接ロボット制御装置24および搬送ロボット制御装置25は、それぞれ溶接ロボット12および搬送ロボット13を制御するための制御装置である。3軸位置決め制御装置26および1軸位置決め制御装置27は、それぞれ3軸位置決め装置14および1軸位置決め装置15を制御するための制御装置である。リモートI/O28は、たとえば、リミットスイッチ19、マットスイッチ(不図示)、およびその他のセンサ類(不図示)との間で信号を入出力するためのものである。
【0025】
ここで、各生産ライン10a〜10gは、それぞれの生産ライン10a〜10gに設けられた生産ライン制御装置22によって制御されている。その動作は、工程毎にラダー言語やC言語などの種々の記述言語を用いてプログラミングされている。図4に生産ライン制御装置22における生産加工プログラム動作(制御プログラム動作)とインターロックの例を示す。
【0026】
図4に示される工程N−1では、アクチュエータ18を出側に動作させた後(n−1ステップ)、溶接ロボット12によって溶接がされ(nステップ)、アクチュエータ18が戻側に動作する(n+1ステップ)。n+1ステップでアクチュエータ18が戻限となったことをリミットスイッチ18が検出すると、生産ライン制御装置22は、インターロック信号Aを出力する。工程Nでは、インターロック信号Aが入力されるのを待って(n−1ステップ)、治具17にワークがセットされる(nステップ)。以下の処理については説明を省略するが、図4の例では、工程間の動作はインターロック信号A,Bにより規制されており、インターロック信号の許す限り、制御プログラムの実行ステップが進められる。
【0027】
なお、図4に示されるように、各工程において、複数の溶接ロボット12などが、工程間でのインターロックがかかるまでは、互いに独立して動作が進行しているので、ロボット12の干渉が発生じた際に、どのような進捗段階で干渉が発生したのかを判断することが難しくなる。
【0028】
そこで、本実施の形態のシミュレーションシステムは、ロボット12の干渉の発生に起因して稼動休止状態となった制御装置22〜27を検出し、これら稼動休止状態となった制御装置22〜27でロボット12の退避動作についてのシミュレーションを分散処理することによって、短時間でシミュレーションを完了することができ、早急な復旧処理が可能なように構成されている。
【0029】
次に、本実施の形態のシミュレーションシステムにおける分散処理の内容について説明する。
【0030】
図5は、本実施の形態のシミュレーションシステムを説明するための図である。図5に示されるシステムでは、複数のライン系統を有する。各ライン系統は、図3で説明したような生産ライン制御装置22、副操作盤23、溶接ロボット制御装置24、搬送ロボット制御装置25、3軸位置決め制御装置26、および1軸位置決め制御装置27がネットワーク(FAネットワーク)30に接続されて構成されている。
【0031】
図5では、第1〜第6のライン系統が示されているが、ライン系統の数は、この場合に限られず、生産ラインの数に対応して定まる。なお、図5では、第1〜第3ライン系統、および第6ライン系統に設けられている制御装置22a〜27a、22b〜27b、22c〜27c、および22f〜27fのみが示されており、第2および第4ライン系統に設けられている制御装置22d〜27dおよび22e〜27eは、省略されている。なお、以下の説明では、特に各ライン系統ごとに区別する必要がないときは、制御装置22a〜27a、22b〜27b、22c〜27c、および22f〜27fなどを総称して、制御装置22〜27として表記する場合がある。また、各ライン系統に設けられている各制御装置22〜27の数および種類は、対応する生産ラインに含まれる工程の内容によるので、一般的には、各ライン系統間で異なる。
【0032】
各ライン系統のネットワーク30は、主操作盤21が設けられたOAネットワーク29に接続されている。したがって、主操作盤21は、各ライン系統の各制御装置22〜27と通信可能となっている。
【0033】
主操作盤21は、生産設備の制御に用いられる複数の制御装置(たとえば、22a〜27a、22b〜27b、22c〜27c、および22f〜27f)のうちでロボット12の干渉の発生に起因して稼動休止状態となった制御装置(たとえば、22a〜27a、22b〜27b、22c〜27c)を検出し、検出された稼動休止状態の各制御装置に対して、ロボット12の退避動作についてのシミュレーションの分散処理を指示する管理装置である。一方、各ライン系統の各制御装置22〜27は、ロボット12の干渉の発生に伴って稼動休止状態となった場合には、その余った能力を利用してロボット12の干渉動作についてのシミュレーションを分散処理するシミュレータとしても機能する。なお、図5に示されるとおり、たとえば、第6ライン系統の制御装置22f〜27fが稼動状態であれば、第6ライン系統の制御装置22f〜27fは、シミュレーションの分散処理を実行しない。
【0034】
ここで、主操作盤21は、メモリやハードディスクなどの記録媒体で構成される格納部(不図示)を有している。この格納部は、生産設備を構成するロボット12,13、位置決め装置14,15、および他の治具17などについての形状およびそれらの位置関係を含む3次元モデル(3次元グラフィックスデータ)と、シミュレーションの分散処理に必要な専用のプログラムとを格納している。主操作盤21は、3次元グラフィックスデータを入力するための3次元CAD装置として兼用されていてもよく、別途に用意された3次元CAD装置(不図示)からネットワーク29を通じて3次元グラフィックスデータを取得してもよい。
【0035】
また、主操作盤21は、CPU(不図示)を有している。このCPUは、専用のプログラムを実行することによって、休止状態検出部、シミュレーション制御部、シミュレーション結果統合部、および干渉チェック部として機能する。
【0036】
ここで、休止状態検出部は、稼動休止状態となった制御装置を検出するためのものである。シミュレーション制御部は、3次元グラフィックシミュレーションの処理(ジョブ)を最小単位に分割するものである。さらに、シミュレーション制御部は、稼動休止状態となった制御装置に適切に分配して分散処理を指示する。シミュレーション結果統合部は、各制御装置で分散処理された結果を統合(マージ)するためのものである。干渉チェック部は、ロボットの退避動作に伴って干渉するか否かを上記の統合結果に基づいて判断するためのものである。
【0037】
一方、各ライン系統の各制御装置22〜27も、CPU(不図示)を有している。本実施の形態の各制御装置22〜27は、ロボット12および位置決め装置14,15などの生産設備を制御するための制御装置として機能するのみならず、主操作盤21からの指示があった場合には、CPUが専用のプログラムを実行することによって、応答部およびシミュレーション実行部としても機能する。
【0038】
なお、応答部は、主制御盤21からCPUの種類および使用可能なメモリ領域などの各種の問い合わせがあった場合に応答するためのものである。シミュレーション実行部は、生産設備を制御するために用いていた各種のデータを含む現在のメモリデータを圧縮退避してメモリ領域内に作業領域を確保してシミュレーションの分散処理が可能な状態とし、実際に、シミュレーションを分散処理し、実行結果を主操作盤21に送信するものである。
【0039】
なお、本実施の形態の主操作盤21および各制御装置22〜27では、CPUが専用のプログラムを実行することによって、上記の各部の機能が実現されるが、本実施の形態と異なり、論理集積回路などの種々のハードウエアによって各部の機能を実現してもよい。
【0040】
以上のように構成される本実施の形態のシミュレーションシステムは、以下のように処理を行う。
【0041】
図6は、本実施形態のシミュレーションシステムの処理内容を説明するための概略図である。図6は、第1〜第6の生産ラインからなる自動車車体組み立て設備において、第3生産ラインに含まれる工程で溶接ロボット12が干渉した場合を示している。
【0042】
図6に示される例において、第3生産ラインでロボット12の干渉が発生して稼動が休止すると、この干渉の発生に起因して、他の第1および第2生産ラインと、第4および第5生産ラインでも稼動が休止する。具体的には、第3生産ラインの上流にあたる第1および第2生産ラインでは、ワークを下流に流せなくなり、ワークを貯めておける量を超えて満杯となるため、稼動休止状態となり、第3生産ラインの下流にあたる第5生産ラインでは、ワークが流れてこなくなり前工程待ちの状態が発生して稼動休止状態となる。さらに、この第5生産ラインに供給すべき取付用のワーク(取付部品など)を供給するための第4生産ラインでも、ワークが満杯となり稼動休止状態となる。なお、図6に示される例では、第6生産ラインでは、稼動状態が維持されている。
【0043】
図6に示される場合では、干渉の発生に起因して、第1〜第5生産ラインに対応する各ライン系統での制御装置、すなわち、図5における生産ライン制御装置22a〜22e、副操作盤23a〜23e、溶接ロボット制御装置24a〜24e、搬送ロボット制御装置25a〜25e、3軸位置決め制御装置26a〜26e、および1軸位置決め制御装置27a〜27eが稼動休止状態となる。一方、第6生産ラインに対応するライン系統での制御装置22f〜27fは、稼動休止状態とならず、稼動状態を維持する。
【0044】
主操作盤21は、これら稼動休止状態となった各制御装置22〜27を検出し、検出された各制御装置22〜27に対して、復旧処理のためのロボット12の退避動作のシミュレーションについての分散処理を指示する。指示を受けた各制御装置22〜27は、シミュレーションを分散処理する。
【0045】
以下、主操作盤21側(3次元CAD側)と、各制御装置22〜27側(設備側)の処理に分けて、本実施の形態のシミュレーション方法における各処理手順を説明する。なお、ロボット12が干渉した場合を例にとって説明する。
【0046】
(主操作盤側の処理)
最初に、主操作盤21による処理手順を説明する。図7および図8は、主操作盤21における処理手順を示すフローチャートである。
【0047】
まず、シミュレーション指示を受信したか否かが判断される(ステップS101)。シミュレーション指示は、たとえば、保全員が操作することによって、制御装置22〜27のいずれかから送信された信号である。シミュレーション指示には、保全員によるロボット12の退避手順および退避経路の指定が含まれる。これらの指定された退避手順および退避経路でロボット12を退避させた場合に干渉するか否かがシミュレーションされることとなる。
【0048】
シミュレーション指示が受信されるのを待って(ステップS101:YES)、主操作盤21は、ロボット12の干渉が生じた設備の設備状況データを要求する(ステップS102)。ここで、設備状況データには、ロボット12などの位置、および動作プログラム状態などが含まれる。
【0049】
そして、設備状況データが受信されると(ステップS103:YES)、この設備状況データに基づいて干渉時のロボット12およびその周辺環境の状態が3次元グラフィックスデータに反映される(ステップS104)。この結果、3次元グラフィックスシミュレーション処理の計算の開始状態が把握される。具体的には、干渉に関係するロボット12,13および装置14,15に対応する3次元モデルが読み出される。たとえば、ロボット12を例にとれば、ロボット12の3次元モデルには、ロボット12の設置位置のデータ、ロボット12の形状データ、およびロボット12を成す複数のアーム部分の連結関係を示すデータなどが含まれる。したがって、設備状況データに含まれるロボット12などの位置および動作プログラム状態を3次元モデルに当てはめることによって、3次元モデルにおけるロボット12の姿勢や位置を決定することができる。この結果、干渉時のロボット12の状態を3次元グラフィックスデータとして取り込むことができる。なお、他のロボット13および位置決め装置14、15の状態についても同様に3次元グラフィックスデータとして取り込むことができる。
【0050】
次に、3次元グラフィックスシミュレーションの計算処理(計算ジョブ)が最小単位に分割される(ステップS105)。本実施の形態では、干渉しているロボット12および干渉している位置決め装置14,15の機械的な最小単位を基準として3次元グラフィックスシミュレーションの計算処理が分割される。たとえば、ロボット12が、各々が関節で接続された4つのアームで構成されている場合であれば、ロボット12一台あたりの計算処理は、各アームに対応して4つの計算処理に分割される。複数のロボット12および装置14,15が干渉に関与する場合には、それぞれのロボット12および装置14,15についても、3次元グラフィックスシミュレーションの計算処理が最小単位に分割される。
【0051】
なお、本実施の形態では、ロボット12および装置14,15の機械的な最小単位を基準として計算処理が分割されるが、この場合に限られず、一般的な分散処理において用いられている種々の分割手法を適用可能であることはもちろんである。この場合の計算処理の分割手法自体は、従来の技術と同様であるので、詳しい説明を省略する。
【0052】
次に、主操作盤21は、第1〜第6ライン系統における夫々の制御装置22〜27の状況について問い合わせる(ステップS106)。言い換えれば、主制御盤21は、第1〜第6ライン系統における夫々の制御装置22〜27が稼動休止状態であるか否かについて問い合わせる。具体的には、主操作盤21は、各ライン系統における生産ライン制御装置22に対して信号を送信することによって、各ライン系統における制御装置22〜27の状況を問い合わせることが望ましい。この結果、各ライン系統の制御装置22〜27の状況が取得される(ステップS107)。
【0053】
これらステップS106およびステップS107の処理は、SCADA(Supervisory Control and Data Acquisition)と呼ばれる処理機能と同様である。すなわち、ステップS106とステップS107においては、各制御装置22〜27が稼動してるか、あるいは、ワークの手待ちになっているなどの理由により稼動休止状態(アイドル状態)となっているかが監視される。
【0054】
具体的には、あるライン系統が稼動状態であれば、アクチュエータ18の出戻に伴うリミットスイッチ19の変化、および各接点のON/OFFの変化が検出される。一方、稼動休止状態となると、サイクルスタートの状態となりリモートI/O28に入力される信号状態が変化しない。したがって、リモートI/O28に入力される信号状態を監視することによって、特定のライン系統における制御装置22〜27が稼動休止状態であるか否かを判断することができる。また、稼動休止状態では、生産ライン制御装置(PLC)22において動作の進捗を示すステップ番号が変化しなくなる。したがって、生産ライン制御装置におけるステップ番号の変化に対応する信号を監視することによっても、特定のライン系統における制御装置22〜27が稼動休止状態であるか否かを判断することができる。
【0055】
次に、ステップS107で取得された各ライン系統の制御装置22〜27の状況に基づいて、稼動休止状態となっている制御装置22〜27が検出される(ステップS108)。本実施の形態では、各ライン系統単位で、制御装置22〜27が稼動休止状態であるか否かが判断される。言い換えれば、稼動休止状態となっているライン系統と稼動休止状態となっていないライン系統とが識別され、稼動休止状態となっているライン系統に属する制御装置22〜27を稼動休止状態の制御装置としている。
【0056】
次いで、検出された稼動休止状態の制御装置22〜27に対して、分散処理させる計算処理を割り付け(配分)する(ステップS109)。すなわち、3次元グラフィックスシミュレーションの計算処理は、ステップS105で複数の分割計算処理(最小単位)に分割されている。したがって、ステップS109の処理では、稼動休止状態の制御装置22〜27の数に応じて、一つの制御装置当たりに実行させる分割計算処理の配分数が設定される。好ましくは、稼動休止状態の各制御装置22〜27に実行させる計算量に偏りが生じないように均等に分割計算処理の配分数が設定される。
【0057】
次に、各分割計算処理の記述言語の最適化がなされる(ステップS110)。ここで、記述言語の最適化処理の一例が図9に示されている。図9は、図7のステップS110における記述言語の最適化処理のサブルーチンの一例を示すフローチャートである。
【0058】
まず、ある分割計算処理が配分される制御装置が、生産ライン制御装置22または副操作盤23である場合には(ステップS201:YES)、ラダー、FB(ファンクションブロック)、ニーモニック、C言語、またはアセンブラなどの記述言語の中から、その機種に応じて予め仕様で定められている記述言語が指定される(ステップS202)。なお、各制御装置の種類(機種)ごとに指定すべき記述言語仕様は、電子データとして主操作盤21に予め記憶されていることが望ましい。
【0059】
続いて、主制御盤21は、使用可能なメモリ領域を問い合わせる(ステップS203)。制御装置の機種によっては、メモリのアドレスの指定の仕方が違う場合があり、この指定の仕方によってプログラムの記述の仕方が変わる場合がある。したがって、使用可能なメモリ領域を問い合わせておくことが望ましい。そして、問い合わせ先の制御装置22〜27から、メモリ領域についての通知が受信されるのを待って(ステップS204:YES)、分割計算処理のプログラムが指定言語に変換される(ステップS205)。
【0060】
一方、ある分割計算処理が配分される制御装置が、溶接ロボット制御装置(溶接ロボットコントローラ)24、搬送ロボット制御装置(搬送ロボットコントローラ)25、3軸位置決め制御装置26、1軸位置決め制御装置27、または、その他のコンピュータである場合には(ステップS201:NO)、たとえば、アセンブラが指定言語として指定される(ステップS206)。
【0061】
また、CPU種類によってアセンブラの記述仕様が異なる場合があるので、CPU種類についても問い合わせがなされる(ステップS207)。そして、CPU種類についての通知を受信するのを待って(ステップS208:YES)、上述したステップS203〜ステップS205の処理がなされる。
【0062】
以上のステップS201〜ステップS208に示された処理によって、各制御装置22〜27に適したプログラム記述言語でプログラムが記述されて各分割計算処理が表現される。
【0063】
以上のように、記述言語が最適化されると、図7に戻り、記述言語が最適化された各分割計算処理が、ステップS109で割り付けられた稼動休止状態の各制御装置22〜27に送信される(ステップS111)。すなわち、各制御装置22〜27に対してシミュレーションの分散処理が指示される。ここで、各制御装置22〜27におけるメモリ容量を節約する観点からは、各分割計算処理は、実行形式にコンパイルされたプログラムが稼動休止状態の各制御装置に送信されることが望ましい。
【0064】
続いて、各制御装置22〜27から実行可能か否かの応答を受信するのを待って(図8のステップS112:YES)、すべての分割計算処理が実行可能であるかが判断される(ステップS113)。指示先の制御装置22〜27において実行不可能である旨が通定された分割計算処理がある場合には(ステップS113:NO)、図7のステップS106に戻り、少なくとも、実行不可能の旨が通知された分割計算処理については、再度、ステップS106〜ステップS113の処理が実行される。
【0065】
送信した全ての分割計算処理が、指示先の制御装置22〜27において実行可能である場合には(ステップS113:YES)、主制御盤21は、各制御装置22〜27から各分割計算処理の実行結果(シミュレーション結果)が受信されるのを待つ(ステップS114)。分割処理の実行結果は、たとえば、数値データとして受信される。
【0066】
次いで、主制御盤21は、分割計算処理の実行結果を統合して、シミュレーションの対象となるロボット12,13および位置決め装置14,15全体の3次元グラフィックシミュレーション結果を得る(ステップS115)。上述したとおり、ロボット12を例にとれば、ロボット12の各関節によって区切られたアーム等の機械要素(換言すれば、多軸ロボットの各軸ごと)に分けて経路計算がなされている。したがって、これらの各アームの経路計算結果が、各アーム間の連結関係に応じて組み合わされる。すなわち、連結するアームの経路計算結果を、連結されるアームの端部(連結部)が基準座標となるように座標変換し、順次に組み合わせていくことによって、ロボット12の全体の3次元グラフィックシミュレーション結果を得る。
【0067】
一つのシミュレーション処理における全ての時間ステップにわたる経路計算が終了するまで(ステップS116)、所定の時間ステップΔtを進めて(ステップS117)、順次にステップS106〜ステップS115の処理を繰り返す。ここで、主操作盤21は、ステップS106〜ステップS108において、稼動休止状態の制御装置22〜27の数および種類の変化を検出し、ステップS109において、この数および種類の変化に対応して、各制御装置22〜27に分散処理させる配分を動的に変化させることができる。
【0068】
一つのシミュレーション処理における全ての時間ステップを通じた経路計算が終了した場合には(ステップS116:YES)、車種組合せなどを考慮した全ての処理が完了したか否かが判断される(ステップS118)。全ての処理が完了していない場合には(ステップS118:NO)、次のシミュレーション処理内容を設定し(ステップS119)、ステップS106〜ステップS118の処理が繰り返される。
【0069】
最終的に、全ての処理が完了するのを待って(ステップS118:YES)、分割処理を実行している各制御装置22〜27に対して、処理終了通知が送信されるとともに、指定された退避順序および退避経路でロボット12を退避させた場合の干渉の有無が表示される(ステップS120)。ここで、ロボット12,13、装置14,15、およびその他の構造物の形状と、互いの位置関係とが3次元グラフィックスとして再現されており、ロボット12,13や位置決め装置14,15のように稼動する対象物については、上述したとおり、その退避動作がシミュレーションされているので、ロボット12を退避させる過程で、ロボット12が他のロボット12,13、装置14,15、その他の構造物と接触するか否かを判断することができる。なお、干渉検討の実際の処理は、従来のシミュレーション処理の場合と同様であるので、詳しい説明を省略する。
【0070】
以上のステップS101〜ステップS120の処理によって、保全員は、ロボット12を退避させる上での退避経路および退避順序を自由に指定し、その退避時の干渉の有無をシミュレーションシステムを用いて確認しつつ、復旧処理をすることができる。この結果、熟練していない保全員によっても、退避時に干渉が生じない退避動作が簡単に求められる。
【0071】
(各制御装置側の処理)
次に、実際に分散処理によってシミュレーション処理を実行する各制御装置22〜27の処理手順について説明する。
【0072】
図10は、稼動休止状態であるか否かの問い合わせを受信する前の各制御装置22〜27の処理内容を示すフローチャートであり、図11および図12は、稼動休止状態であるか否かの問い合わせを受信した後の各制御装置22〜27の処理内容を示すフローチャートである。
【0073】
図10に示されるとおり、各制御装置22〜27は、初期状態では、ロボット12,13、位置決め装置14,15、または生産ライン全体を制御するための通常の動作状態(以下、「通常モード」という)となっている(ステップS301)。
【0074】
制御装置22〜27のいずれかの制御装置(たとえば、副操作盤23)が、図示していないキーボード、タッチパネル、またはマウスなどのポインティングデバイス、デジタルI/Oを利用したスイッチ操作を介して保全員によるシミュレーションの指示を受け付けると(ステップS302:YES)、この制御装置は、割り込み処理によって、シミュレーション指示を主操作盤21に送信する(ステップS303)。
【0075】
次いで、制御装置22〜27のうち、たとえば生産ライン制御装置22は、主制御盤21から、ロボット12の干渉が生じた設備の設備状況データの要求を受けると(ステップS304:YES)、干渉が生じたロボット12の位置、およびそのときの動作プログラム状態を含む設備状況データを送信する(ステップS305)。なお、ロボット12の干渉発生事実および干渉発生位置は、所定時間以内で位置決め処理が終わらないなどの状況を生産ライン制御装置22が監視することによって検出してもよく、リモートI/O28などに接続されている過負荷センサ(不図示)の出力を生産ライン制御装置22が監視することによって直接的に検出してもよい。
【0076】
次に、稼動休止状態であるか否かの問い合わせを受けた後の各制御装置22〜27の処理内容を図11および図12を用いて説明する。
【0077】
図11に示されるとおり、各制御装置22〜27の状況についての問い合わせ、すなわち各制御装置22〜27が稼動休止状態であるか否かの問い合わせが受信されると(ステップS401:YES)、対応するライン系統の各制御装置22〜27が稼動休止状態である場合には(ステップS402:YES)、稼動休止状態であることを示す信号が主操作盤21に送信され(ステップS403)、対応するライン系統の各制御装置22〜27が稼動休止状態でない場合、すなわち稼動状態である場合には(ステップS402:NO)、稼動状態であることを示す信号が主操作盤21に送信される(ステップS404)。
【0078】
なお、ステップS401〜ステップS404の各処理は、各制御装置22〜27でそれぞれ実行される必要がなく、主として生産ライン制御装置22が実行すればよい。
【0079】
ここで、各制御装置22〜27が稼動状態である場合には、ステップS405以下に示されるシミュレーションの処理は実行されず、処理はステップS401へ戻り、通常モードが維持される。
【0080】
次いで、各制御装置22〜27は、稼動休止状態である場合には、必要に応じて、CPU種類の問い合わせの受信(ステップS405)と、それに応答する通知の送信(ステップS406)、およびメモリ領域の問い合わせの受信(ステップS407)と、それに応答する通知の送信(ステップS408)を実行する。
【0081】
そして、各制御装置22〜27は、最終的に分割計算処理の指示(具体的には実行形式のプログラムとなっている)を受信するのを待って(ステップS409:YES)、受信した分割計算処理が自装置で実行可能か否かを判断する(図12のステップS410)。受信した分割計算処理が自装置で実行不可能である場合には(ステップS410:NO)、主操作盤21に対して、受信した分割計算処理が自装置で実行不可能である旨を送信し(ステップS411)、処理がステップS401へ戻る。このとき、制御装置22〜27の動作状態が、計算処理モードとなっていた場合には(ステップS412:YES)、動作状態が計算処理モードから通常モードへ切り替えられた後(ステップS420)、処理が図11のステップS401に戻る。ここで、計算処理モードとは、後述するように、計算処理が可能である動作状態である。計算処理モードでは、分割計算処理を実行するための作業領域がメモリ領域上に確保される。
【0082】
一方、指示した分割計算処理が自装置で実行可能である場合には(図12のステップS410:YES)、主操作盤21に対して、分割計算処理の実行を開始する旨を送信する(ステップS413)。このとき、制御装置22〜27が計算処理モードであった場合には(ステップS414:NO)、そのままステップS416の処理へ進む。一方、制御装置22〜27が通常モードであった場合には(ステップS414:YES)、通常モードから計算処理モードへと動作状態が切り替えられた後(ステップ415)、ステップS416の処理に進む。
【0083】
ここで、動作状態の切替処理について説明する。図13は、動作状態の切替処理について示している。動作状態の切替処理には、上述した図12に示されるとおり、通常モードから計算処理モードへの切替処理(ステップS415)と、計算処理モードから通常モードへの切替処理(ステップS420)とが含まれる。図13では、生産ライン制御装置(PLC)22および副操作盤(グラフィックパネル)23における各切替処理が示されている。
【0084】
まず、制御装置が生産ライン制御装置22である場合を例にとって説明する。通常モードから計算処理モードへの切替処理の場合には、まず、稼動休止状態か否かを監視するための構成であるアイドル状態用監視回路の抽出がなされる(ステップS501)。アイドル状態用監視回路は、たとえば、上述したようなリモートI/O28から入力される信号状態の監視するための構成、または生産ライン制御装置(PLC)22における動作の進捗を示すステップ番号を変化させ、この変化を監視するための構成などを意味する。制御装置22が計算処理モードとなった場合も、これら抽出されたアイドル状態用監視回路は能動状態が維持される。
【0085】
次に、生産ライン制御装置22が、生産ライン全体を統括して制御するために通常モード時に用いていた各種のデータからなる現在のメモリデータが圧縮されて、所定のメモリ領域に退避される(ステップS502)。そして、メモリデータの圧縮および退避によって空いたメモリ領域内に、アイドル状態の監視と計算処理とに用いられる作業領域が設定される(ステップS503)。この結果、通常モードから計算処理モードへの切替が完了する。
【0086】
一方、計算処理モードから通常モードへの切替処理の場合には、退避したメモリデータが解凍され、復元される(ステップS601)。この結果、計算処理モードから通常モードへの切替が完了する。
【0087】
次に、制御装置が副操作盤23である場合である場合を説明する。通常モードから計算処理モードへの切替処理の場合には、画面データの更新頻度が低減される(ステップS701)。そして、更新頻度の低減によって節約されたメモリ領域内に、計算処理に用いられる作業領域が設定される(ステップS702)。この結果、通常モードから計算処理モードへの切替が完了する。一方、計算処理モードから通常モードへの切替処理の場合には、画面データの更新頻度が復元される(ステップS801)。
【0088】
なお、制御装置が、溶接ロボット制御装置24、搬送ロボット制御装置25、3軸位置決め制御装置26、または1軸位置決め制御装置27の場合には、生産ライン制御装置22の場合の処理(ステップS501〜ステップS503、およびステップS601)と概ね同様の処理が実行される。また、制御装置が、パーソナルコンピュータである場合であれば、パーソナルコンピュータ用のマルチタスクOS(オペレーティングシステム)を利用することができるので、特別の切替処理は不要である。
【0089】
以上のような処理によって、制御装置22〜27の動作状態が計算処理モードに切り替えられている状態で、夫々の制御装置22〜27は、図12のステップS416に進み、分割計算処理を実行する。
【0090】
次いで、制御装置22〜27は、主制御盤21に対して、計算処理の実行結果を送信する(ステップS417)。主制御盤21から処理終了の通知を受信した場合には(ステップS418:YES)、すべての3次元グラフィックスシミュレーションの処理が完了したものとして、動作状態が計算処理モードから通常モードに切り替えられる(ステップS420)。
【0091】
一方、処理終了の通知を受信していない場合であっても(ステップS418:NO)、自機が稼動休止状態にあるか否かが常に監視されており(ステップS419)、自機が稼動休止状態でなく稼動状態となった場合には(ステップS419:NO)、動作状態が計算処理モードから通常モードに切り替えられる(ステップS420)。
【0092】
以上のステップS401〜ステップS420を繰り返すことによって、各制御装置22〜27は、ロボットの干渉が発生しておらず、稼動状態となっている場合には、ロボットおよび各種装置の制御装置として動作し、ロボットの干渉に起因して稼動休止状態となった場合には、ロボットの退避動作についての3次元グラフィックシミュレーションを分散処理するシミュレーターとして動作する。
【0093】
なお、以上の説明では、主として、退避動作(退避経路や退避順序)の候補を保全員が指定して、指定した退避動作を採用したときの干渉の有無をシミュレーションシステムを用いて検討する場合を示したが、同様の処理によって、位置修正動作(位置修正経路や位置修正順序)および手動溶接動作(手動溶接経路や手動溶接順序)の候補を保全員が指定して、指定した位置修正動作および手動溶接動作を採用したときの干渉の有無をシミュレーションシステムを用いて検討することができる。
【0094】
以上のとおり、本実施の形態のシミュレーション方法およびそのシステムを説明したが、本実施の形態のシミュレーション方法およびそのシステムによれば、以下のような効果を奏する。
【0095】
(A)複数台の専用コンピュータを別途導入することなく、ロボットの干渉が発生した際のロボットの復旧動作(退避動作および位置修正動作など)を短時間でシミュレーションすることが可能となる。すなわち、生産設備の制御に用いられる複数の制御装置22〜27の処理能力を一時的かつ部分的に、ロボットの復旧動作の検討に割り当てて、3次元グラフィックスシミュレーションを分散処理することができるので、生産現場においてロボットの復旧動作の検証が可能となり、保全員の熟練度に依存しない復旧作業が可能となる。
【0096】
(B)特に、生産設備の制御に用いられる複数の制御装置22〜27を利用できるので、3次元グラフィックスシミュレーションを分散処理するための専用のコンピュータを導入する必要がなく、設置場所をとらず、導入費用および保守管理費用を低減できる。
【0097】
(C)ロボットの干渉の発生に起因して上流および下流の生産ラインにおいて制御装置が稼動休止状態となることを利用して、これら稼動休止状態となった制御装置を有効活用するので、シミュレーションが必要になった際に、シミュレーションを分散処理させることが可能な制御装置の数を確保しやすい。
【0098】
(D)稼動休止状態となった制御装置のみに分散処理させて、稼動状態にある制御装置についてはワークの生産に関する通常の処理を続行させるので、ワークの生産が必要以上に抑制されない。
【0099】
(E)特に、稼動休止状態の制御装置の数および種類の変化に応じて、各制御装置に分散処理させる配分を動的に変化させるので、状況の変化に応じて最短の時間でシミュレーションを実行することができる。特に、多くの生産ラインが稼動休止状態となるような大きな影響を受けるロボットの干渉の発生時には、より一層の早急な復旧が必要となるが、本実施の形態では、稼動休止状態となる生産ラインが増えるにしたがって、シミュレーションの分散処理に振り分けられる制御装置の数も自動的に増えるので、稼動休止状態となった生産ラインの規模に応じて早急な復旧を実現することができる。
【0100】
(F)検出された稼動休止状態の各制御装置ごとに適用可能な各記述言語で分散処理が与えられるので、制御装置の種類によらず、稼動休止状態の各制御装置を全て活用することが可能となる。
【0101】
(G)分散処理させる前に、各制御装置22のメモリデータを圧縮し退避しておくので、設備の制御に用いられるメモリデータが分散処理の影響によって破損されることがない。
(第2の実施の形態)
本実施の形態のシミュレーションシステムは、第1の実施の形態で説明した処理に加えて、さらにシミュレーションによって得られた結果に基づいて、実際にロボットを動作させる処理を実行するものである。なお、実際にロボットを動作させる処理を実行させる点を除いて、その構成は、第1の実施の形態の場合と同様であるので、詳しい説明を省略する。
【0102】
上記の第1の実施の形態では、ロボットの干渉が発生した際に、ロボットの復旧動作がシミュレーションされる場合を説明した。この結果、干渉が生じない安全な退避動作(退避経路および退避順序)、位置修正動作(位置修正経路および位置修正順序)、手動溶接動作(手動溶接経路および手動溶接順序)が決定される。
【0103】
そこで、本実施の形態のシミュレーションシステムでは、退避動作、位置修正動作、および手動溶接動作において干渉が生じないことがシミュレーションによって確立された時点で、これらの退避動作、位置修正動作、および手動溶接動作にしたがって、自動的に実際のロボットを動作させるように構成される。
【0104】
具体的には、保全員によって指定された退避動作、位置修正動作、および手動溶接動作において干渉が発生しないことが確立できると、主制御盤21は、各生産ライン制御装置22に指示を送り、この結果、ロボット12などが実際に動作する。
【0105】
なお、ロボットが緊急停止する事象が発生した際の復旧作業には、保全員の関与が必要なくロボットが動作すればよいものと、保全員の実際の作業が必要となるものとが混在している。本実施の形態では、これらのうち、保全員の関与が必要なくロボットが動作すればよい作業が自動的に実行される。
【0106】
復旧作業は、以下の第1〜第3手法からなる3つの手法に分類される。どの手法を採用するかは、ワークの状況に応じて保全員が判断する。
(第1手法)
第1手法は、ワークが破損してしまった場合に主として採られる手法である。まず、ワークを抜き出せる状態までロボット12が安全に退避される(第1作業)。そして、作業者がワークを抜き出す(第2作業)。抜き出されたワークは、たとえば廃棄される。次いで、ロボット12が原位置に戻される(第3作業)。その後、生産加工プログラムが初めから起動される(第4作業)。
【0107】
この第1手法では、第1作業の退避動作と第3作業の位置調整動作とが上記のシミュレーションによって検討されて干渉しないことが確立された時点で自動的に実行される。
(第2手法)
第2手法は、加工前または加工途中のワークが破損されておらず、生産加工プログラムの途中からロボット12の動作を再開できる場合に主として採られる手法である。自動車車体組み立て設備を例にとれば、ワークの溶接前および溶接途中のワークが破損されておらず、ロボット12が溶接の続きを実行できる場合に採用される手法である。
【0108】
第2手法では、ロボット12が干渉することによって、それぞれのロボット12の位置が本来の指示座標とずれてしまっていることを考慮して、ティーチング修正が実行される。ティーチング修正は、ロボット12を一旦、基準位置に戻して、ロボット12と座標系とのずれ(オフセット)を調整する位置修正動作である。
【0109】
まず、ティーチング修正する際に干渉すると予想されるロボット12が退避される(第1段階)。すなわち、複数のロボット12が干渉して寄り付いている場合に、ロボット12同士が引き離される。次いで、干渉が生じたロボット12に対しては、ティーチング修正がなされる(第2段階)。その後、各ロボット12を溶接前または溶接途中の設定位置に移動させる位置修正がなされる(第3段階)。そして、生産加工プログラムが途中から実行される(第4段階)。
【0110】
この第2手法では、第1段階の退避動作と、第2および第3段階の各位置修正動作とがが上記のシミュレーションによってそれぞれ検討され、干渉しないことが確立された時点で自動的に実行される。
(第3手法)
第3手法は、加工途中のワークが破損されておらず、保全員(作業者)がロボット操作用ペンダントなどを用いて手動でワークの加工を継続できる場合に採られる手法である。自動車車体組み立て設備を例にとれば、溶接途中のワークが破損されておらず、保全員が手動でワークの溶接の続きを実行できる場合に採用される手法である。
【0111】
第3手法では、複数のロボット12の中で干渉によってティーチング修正が必要になったものと、干渉しておらずティーチング修正が不要なものとが分けられる。まず、ティーチング修正が不要なロボット12の作業に関してロボット12を手動で動かしてワークの溶接が継続される(第1段階)。一方、ティーチング修正が必要なロボット12については、ティーチング修正がなされる(第2段階)。そして、ティーチング修正がなされたロボットの作業に関してロボット12を手動で動かしてワークの溶接が継続される(第3段階)。この結果、溶接途中のワークについて全ての溶接が完了すると、各ロボット12を溶接完了状態に設定して、この溶接完了状態に対応するステップを開始点にして生産加工プログラムが再開される(第4段階)。
【0112】
この第3手法では、第1段階および第3段階における手動溶接動作と、第2段階の位置修正動作とが、上記のシミュレーションによってそれぞれ検討され、干渉しないことが確立された時点で自動的に実行される。
【0113】
以上のとおり、保全員によって、第1〜第3手法のどの手法が採用された場合であっても、その手法中に含まれる幾つかのロボットの復旧動作、すなわち、退避動作、位置修正動作、および手動溶接動作について、シミュレーションによって得られた結果に基づいて自動的にロボットを動作させることができる。
【0114】
本実施の形態のシミュレーション方法およびそのシステムによれば、第1の実施の形態で示した(A)〜(G)の効果に加えて、さらに(H)保全員が目視確認しながら行っていたロボット12の復旧動作を自動化することが可能となるので、保全員の経験や知見の差による保全作業時間のばらつきや保全品質のばらつきが無くなり、復旧・保全作業緒の均一化を図ることができるという効果を奏する。
【0115】
以上のように、本発明の好適な実施の形態について説明したが、本発明は、これらの場合に制限されるものではなく、当業者によって種々の変形、省略、追加が可能である。
【0116】
たとえば、上述した例では、稼動休止状態の各制御装置22〜27に対して復旧動作のシミュレーションの分散処理を指示する管理装置として、主操作盤21を用いる場合を示したが、管理装置として、主操作盤21とは異なる別途の端末装置を用意してもよいことはもちろんである。
【0117】
また、上記の例では、シミュレーションを分散処理する制御装置として、生産ライン制御装置22、副操作盤23、溶接ロボット制御装置24、搬送ロボット制御装置25、3軸位置決め制御装置26、および1軸位置決め制御装置27を含む場合を説明したが、本発明は、生産設備の制御に用いられる複数の制御装置が稼動休止状態である場合に、シミュレーションの分散処理を実行するものであればよく、上記の場合に限られるものであはない。
【0118】
さらに、上記の例では、稼動休止状態であり分散処理が実行可能な全ての制御装置22〜27がシミュレーションの分散処理を実行する場合を説明した。確かに、シミュレーションに要する時間を短縮化する観点からは、稼動休止状態であり分散処理が実行可能な全ての制御装置22〜27をシミュレーションの分散処理に用いることが望ましいが、本発明は、この場合に限られず、少なくとも、検出された稼動休止状態の制御装置22〜27に含まれる複数の制御装置で、復旧動作のシミュレーションを分散処理するものを含む。
【0119】
上記の例では、本発明のシミュレーションシステムを自動車車体組み立て設備に適用した場合を説明したが、本発明のシミュレーションシステムを他の生産設備に適用することができることはもちろんである。
【図面の簡単な説明】
【0120】
【図1】シミュレーションシステムが適用される自動車車体組み立て設備の一例を示す模式図である。
【図2】図1の自動車車体組み立て設備における生産ラインの仕様の一例を示す図である。
【図3】図1に示される自動車車体組み立て設備の制御系の一例を示す模式図である。
【図4】図3に示される生産ライン制御装置における生産加工プログラム動作とインターロックの一例を示す図である。
【図5】第1の実施の形態のシミュレーションシステムの構成を示す模式図である。
【図6】本実施形態のシミュレーションシステムの処理内容を説明するための概略図である。
【図7】図5に示される主操作盤のる処理手順を示すフローチャートである。
【図8】図7に後続する処理手順を示すフローチャートである。
【図9】図7のステップS110における記述言語の最適化処理を示すフローチャートである。
【図10】稼動休止状態であるか否かの問い合わせを受信する前における図5の各制御装置の処理手順を示すフローチャートである。
【図11】稼動休止状態であるか否かの問い合わせを受信する後における図5の各制御装置の処理手順を示すフローチャートである。
【図12】図11に後続する処理手順を示すフローチャートである。
【図13】図12のステップ415およびステップS420における動作状態の切替処理を示すフローチャートである。
【符号の説明】
【0121】
10 生産ライン、
12 溶接ロボット、
13 搬送ロボット、
14 3軸位置決め装置、
15 1軸位置決め装置、
18 アクチュエータ、
19 リミットスイッチ、
21 主操作盤、
22 生産ライン制御装置、
23 副操作盤、
24 溶接ロボット制御装置、
25 搬送ロボット制御装置、
26 3軸位置決め制御装置、
27 1軸位置決め制御装置、
28 リモートI/O、
29 OAネットワーク、
30 FAネットワーク。
【技術分野】
【0001】
本発明は、ロボットが緊急停止する事象が発生した際にロボットの復旧動作をシミュレーションするシミュレーション方法およびそのシステムに関する。
【背景技術】
【0002】
複数の工程を有する生産設備では、各工程間におけるロボットおよび位置決め装置の動作がインターロック信号によって規定されており、ロボットが他のロボットまたは装置と干渉(衝突)することを防止している。しかしながら、なんらかの不具合によって、ロボットの干渉が発生する場合がある。
【0003】
ロボットの干渉のようにロボットが緊急停止する事象が発生した場合には、早急な復旧処理が必要となる。しかしながら、各工程においてロボットおよび装置は、工程間でのインターロック信号が受信されるまでは、互いに独立して動作が進行している。したがって、どのような進捗段階でロボットが緊急停止する事象が発生したのかを判断することが難しい。言い換えれば、このような事象が発生した場合における複数の工程の進捗状況の組み合わせは千差万別であり、特に、複数品種のワークが混在している生産設備では、この傾向が高い。したがって、ロボットの退避動作および位置修正動作などの復旧動作を実行する際には、熟練した保全員が、設備固有の知識や経験をもとに、一台ずつロボット操作用ペンダントを用いて操作する必要があった。
【0004】
なお、近年では、3次元グラフィックスシミュレーションを用いて、指定した経路でロボットを動作させた場合の干渉の有無を事前検討できるようになっている。したがって、ロボットの復旧動作に関しても、3次元グラフィックスシミュレーションを用いて、干渉しない安全な復旧動作、すなわち安全なロボットの経路および操作順序を決定することが考えられる。しかしながら、3次元グラフィックシミュレーションは計算の負荷が高いので、一台のコンピュータを用いて実行するのでは、安全な経路や操作順序を決定するために数時間(たとえば、8時間)程度もかかり、早急な復旧作業に支障をきたす。
【0005】
一方、近年、シミュレーションの分野では、複数のコンピュータを用いて分散処理させることによって、シミュレーションの結果を得るまでにかかる時間を短縮する分散処理技術が開発されている(特許文献1など)。
【0006】
しかしながら、ロボットが緊急停止する事象が発生した際のロボットの復旧動作をシミュレーションするために複数台の専用コンピュータを別途導入することは、設置場所をとるばかりでなく、導入費用および保守管理費用の増大をもたらす。
【特許文献1】特開2000−10806号公報
【発明の開示】
【発明が解決しようとする課題】
【0007】
本発明は、以上の問題点を解決するためになされたものである。したがって、本発明の目的は、複数台の専用コンピュータを別途導入することなく、ロボットが緊急停止する事象が発生した際にロボットの復旧動作を短時間でシミュレーションすることが可能なシミュレーション方法およびシミュレーションシステムを提供することである。
【課題を解決するための手段】
【0008】
(1)本発明のシミュレーション方法は、ロボットが緊急停止する事象が発生した際にロボットの復旧動作をシミュレーションするシミュレーション方法であって、生産設備の制御に用いられる複数の制御装置のうちで稼動休止状態となった制御装置を検出する段階と、検出された稼動休止状態の制御装置で、前記復旧動作のシミュレーションを分散処理する段階と、を有することを特徴とする。
【0009】
(2)本発明のシミュレーションシステムは、少なくともロボットを含む生産設備の制御に用いられる複数の制御装置と、前記複数の制御装置と通信可能な管理装置とを有し、前記ロボットが緊急停止する事象が発生した際にロボットの復旧動作をシミュレーションシステムであって、前記管理装置が、稼動休止状態となった制御装置を前記複数の制御装置のうちから検出し、検出された稼動休止状態の制御装置に対して、復旧動作のシミュレーションの分散処理を指示し、指示された各制御装置が、復旧動作のシミュレーションを分散処理することを特徴とする。
【発明の効果】
【0010】
本発明のシミュレーション方法およびシステムによれば、複数台の専用コンピュータを別途導入することなく、ロボットが緊急停止する事象が発生した際のロボットの復旧動作を短時間でシミュレーションすることができる。
【発明を実施するための最良の形態】
【0011】
(第1の実施の形態)
本実施の形態のシミュレーション方法は、ロボットが緊急停止する事象が発生した際にロボットの復旧動作をシミュレーションする方法である。なお、ロボットが緊急停止する事象には、ロボットの干渉(すなわち、ロボット同士の干渉、およびロボットと他の装置との干渉)が含まれる。また、ロボットの復旧動作は、ロボットの退避動作(退避経路および退避順序)、ロボットの位置修正動作(位置修正経路および位置修正順序)、および、手動溶接動作(手動溶接経路および手動溶接経路)が含まれる。ここで、ロボットの退避動作は、干渉が生じたロボットを逃がす動作であり、ロボットの位置修正動作は、干渉時の衝撃によってロボットが本来の座標位置からずれた場合に、ロボットの位置を本来の座標位置または原点位置に戻すための動作である。また、手動溶接動作は、ロボットの干渉によって溶接途中となったワークに対して、保全員(作業者)がロボット操作用ペンダントなどを用いて手動でロボットを動かして溶接を完了させるための動作である。なお、以下の説明では、ロボットが干渉した際にロボットの退避動作をシミュレーションする場合を例にとって説明する。
【0012】
一般的に、ある生産ラインでロボットが干渉して稼動が休止すると、この干渉に起因して他の生産ラインも稼動休止状態(アイドル状態)となる。通常、各生産ラインには、複数の制御装置が設置されており、ロボットおよび位置決め装置を制御している。したがって、生産ラインの稼動休止に伴って、これら複数の制御装置も稼動休止状態となる。
【0013】
そこで、本実施の形態のシミュレーション方法では、ロボットの干渉の発生に起因して稼動休止状態となったこれらの制御装置を検出し、各制御装置の能力を有効活用して、ロボットの退避動作のシミュレーションを分散処理する。以下、図面を参照しつつ、本実施の形態のシミュレーション方法およびそのシステムについて詳細に説明する。
【0014】
まず、前提として、本実施の形態のシミュレーションシステムが適用される生産設備について説明する。ここでは、生産設備として自動車車体組み立て設備を例にとって説明する。
【0015】
図1は、本実施の形態の形態のシミュレーションシステムが適用される自動車車体組み立て設備を示している。自動車車体組み立て設備は、複数の生産ラインからなる。図1は、それらの中の一つの生産ライン10を示している。生産ラインには複数の工程(ステージ)が含まれており、図1に示される生産ライン10には、第1工程〜第7工程の7つの工程(ステージ)が含まれている。
【0016】
各工程には、溶接ロボット12、搬送ロボット13、3軸位置決め装置14、1軸位置決め装置15、作業者16、およびその他の治具17から選ばれた種々の構成が含まれる。なお、その他の治具17には、たとえば、アクチュエータ18、およびリミットスイッチ(センサ)19などが含まれる。
【0017】
ここで、具体的には、溶接ロボット12は、複数のアームが関節によって連結されてなる多軸ロボットであり、その先端には溶接ガンが搭載されている。溶接ロボット12は、溶接によってワークを組み立てる際に用いられる。
【0018】
搬送ロボット13は、ワークの移動に用いられるロボットである。3軸位置決め装置14および1軸位置決め装置15は、ロケートピンなどを有し、作業時にワークを固定するために用いられる。特に、3軸位置決め装置14は、複数品種のワークが混在している際に、ワークの種類に応じて位置決め用のロケートピンをX,Y,Z軸に沿って動かしてワークを固定するために用いられる。アクチュエータ18は、たとえば油圧シリンダーであり、各種駆動に用いられる。リミットスイッチ19は、アクチュエータ18などの出限、戻限などを監視しており、状況監視のためのセンサとして機能する。
【0019】
図2は、本実施の形態の自動車車体組み立て設備における生産ラインの仕様の一例を示す。図2に示される例では、1つの生産ラインには、最大32個の工程が含まれる。また、図2には、アクチュエータ、リミットスイッチ(LS)、作業者、溶接ロボット、搬送ロボット、チップドレッサ、3軸位置決め装置、および1軸位置決め装置がそれぞれ一工程当たりに含まれうる数量と、1ライン(32工程)当たりに含まれる最大値の一例が示されている。
【0020】
次に、本実施の形態の自動車車体組み立て設備における制御系について説明する。図3は、本実施の形態における制御系およびネットワークの構成の一例を示す図である。
【0021】
本実施の形態の制御系には、自動車車体組み立て設備の全体を管理する主操作盤21が含まれる。この主操作盤21は、パーソナルコンピュータやエンジニアリングワークステーションなどのコンピュータであり、Ethernet(登録商標)などのOA(office automation)ネットワーク29に接続されている。本実施の形態では、主操作盤21は、3次元グラフィックシミュレーション用の管理装置としても機能し、後述する制御装置に対して3次元グラフィックシミュレーションの分散処理を指示する機能を有している。この点については、後述する。
【0022】
また、各生産ライン10a〜10gごとに、FA(factory automation)ネットワーク30が設けられている。各生産ライン10a〜10g毎に、生産ライン制御装置22、副操作盤23、溶接ロボット制御装置24、搬送ロボット制御装置25、3軸位置決め制御装置26、1軸位置決め制御装置27、およびリモートI/O28などが互いに通信可能にFAネットワーク30に接続されている。各生産ライン10a〜10gのFAネットワーク30は、たとえば、生産ライン制御装置22を介して、上記のOAネットワーク29に接続される。なお、図3では、生産ライン10aにおける制御装置22〜27およびリモートI/O28のみが示されているが、他の生産ライン10b〜10gにも、同様に、制御装置22〜27およびリモートI/O28が設けられている。
【0023】
ここで、生産ライン制御装置22、副操作盤23、溶接ロボット制御装置24、搬送ロボット制御装置25、3軸位置決め制御装置26、および1軸位置決め制御装置27は、生産設備の制御に用いられる複数の制御装置であり、具体的にはコンピュータである。
【0024】
生産ライン制御装置22は、いわゆるPLC(プログラマブル論理制御装置)であり、図1に示されるような1つの生産ライン10a全体を統括して制御する制御装置である。副操作盤23は、作業者が操作する操作機器である。副操作盤23は、グラフィックパネル(グラパネ)とも呼ばれており、所定の更新頻度で画面データを更新して表示する。溶接ロボット制御装置24および搬送ロボット制御装置25は、それぞれ溶接ロボット12および搬送ロボット13を制御するための制御装置である。3軸位置決め制御装置26および1軸位置決め制御装置27は、それぞれ3軸位置決め装置14および1軸位置決め装置15を制御するための制御装置である。リモートI/O28は、たとえば、リミットスイッチ19、マットスイッチ(不図示)、およびその他のセンサ類(不図示)との間で信号を入出力するためのものである。
【0025】
ここで、各生産ライン10a〜10gは、それぞれの生産ライン10a〜10gに設けられた生産ライン制御装置22によって制御されている。その動作は、工程毎にラダー言語やC言語などの種々の記述言語を用いてプログラミングされている。図4に生産ライン制御装置22における生産加工プログラム動作(制御プログラム動作)とインターロックの例を示す。
【0026】
図4に示される工程N−1では、アクチュエータ18を出側に動作させた後(n−1ステップ)、溶接ロボット12によって溶接がされ(nステップ)、アクチュエータ18が戻側に動作する(n+1ステップ)。n+1ステップでアクチュエータ18が戻限となったことをリミットスイッチ18が検出すると、生産ライン制御装置22は、インターロック信号Aを出力する。工程Nでは、インターロック信号Aが入力されるのを待って(n−1ステップ)、治具17にワークがセットされる(nステップ)。以下の処理については説明を省略するが、図4の例では、工程間の動作はインターロック信号A,Bにより規制されており、インターロック信号の許す限り、制御プログラムの実行ステップが進められる。
【0027】
なお、図4に示されるように、各工程において、複数の溶接ロボット12などが、工程間でのインターロックがかかるまでは、互いに独立して動作が進行しているので、ロボット12の干渉が発生じた際に、どのような進捗段階で干渉が発生したのかを判断することが難しくなる。
【0028】
そこで、本実施の形態のシミュレーションシステムは、ロボット12の干渉の発生に起因して稼動休止状態となった制御装置22〜27を検出し、これら稼動休止状態となった制御装置22〜27でロボット12の退避動作についてのシミュレーションを分散処理することによって、短時間でシミュレーションを完了することができ、早急な復旧処理が可能なように構成されている。
【0029】
次に、本実施の形態のシミュレーションシステムにおける分散処理の内容について説明する。
【0030】
図5は、本実施の形態のシミュレーションシステムを説明するための図である。図5に示されるシステムでは、複数のライン系統を有する。各ライン系統は、図3で説明したような生産ライン制御装置22、副操作盤23、溶接ロボット制御装置24、搬送ロボット制御装置25、3軸位置決め制御装置26、および1軸位置決め制御装置27がネットワーク(FAネットワーク)30に接続されて構成されている。
【0031】
図5では、第1〜第6のライン系統が示されているが、ライン系統の数は、この場合に限られず、生産ラインの数に対応して定まる。なお、図5では、第1〜第3ライン系統、および第6ライン系統に設けられている制御装置22a〜27a、22b〜27b、22c〜27c、および22f〜27fのみが示されており、第2および第4ライン系統に設けられている制御装置22d〜27dおよび22e〜27eは、省略されている。なお、以下の説明では、特に各ライン系統ごとに区別する必要がないときは、制御装置22a〜27a、22b〜27b、22c〜27c、および22f〜27fなどを総称して、制御装置22〜27として表記する場合がある。また、各ライン系統に設けられている各制御装置22〜27の数および種類は、対応する生産ラインに含まれる工程の内容によるので、一般的には、各ライン系統間で異なる。
【0032】
各ライン系統のネットワーク30は、主操作盤21が設けられたOAネットワーク29に接続されている。したがって、主操作盤21は、各ライン系統の各制御装置22〜27と通信可能となっている。
【0033】
主操作盤21は、生産設備の制御に用いられる複数の制御装置(たとえば、22a〜27a、22b〜27b、22c〜27c、および22f〜27f)のうちでロボット12の干渉の発生に起因して稼動休止状態となった制御装置(たとえば、22a〜27a、22b〜27b、22c〜27c)を検出し、検出された稼動休止状態の各制御装置に対して、ロボット12の退避動作についてのシミュレーションの分散処理を指示する管理装置である。一方、各ライン系統の各制御装置22〜27は、ロボット12の干渉の発生に伴って稼動休止状態となった場合には、その余った能力を利用してロボット12の干渉動作についてのシミュレーションを分散処理するシミュレータとしても機能する。なお、図5に示されるとおり、たとえば、第6ライン系統の制御装置22f〜27fが稼動状態であれば、第6ライン系統の制御装置22f〜27fは、シミュレーションの分散処理を実行しない。
【0034】
ここで、主操作盤21は、メモリやハードディスクなどの記録媒体で構成される格納部(不図示)を有している。この格納部は、生産設備を構成するロボット12,13、位置決め装置14,15、および他の治具17などについての形状およびそれらの位置関係を含む3次元モデル(3次元グラフィックスデータ)と、シミュレーションの分散処理に必要な専用のプログラムとを格納している。主操作盤21は、3次元グラフィックスデータを入力するための3次元CAD装置として兼用されていてもよく、別途に用意された3次元CAD装置(不図示)からネットワーク29を通じて3次元グラフィックスデータを取得してもよい。
【0035】
また、主操作盤21は、CPU(不図示)を有している。このCPUは、専用のプログラムを実行することによって、休止状態検出部、シミュレーション制御部、シミュレーション結果統合部、および干渉チェック部として機能する。
【0036】
ここで、休止状態検出部は、稼動休止状態となった制御装置を検出するためのものである。シミュレーション制御部は、3次元グラフィックシミュレーションの処理(ジョブ)を最小単位に分割するものである。さらに、シミュレーション制御部は、稼動休止状態となった制御装置に適切に分配して分散処理を指示する。シミュレーション結果統合部は、各制御装置で分散処理された結果を統合(マージ)するためのものである。干渉チェック部は、ロボットの退避動作に伴って干渉するか否かを上記の統合結果に基づいて判断するためのものである。
【0037】
一方、各ライン系統の各制御装置22〜27も、CPU(不図示)を有している。本実施の形態の各制御装置22〜27は、ロボット12および位置決め装置14,15などの生産設備を制御するための制御装置として機能するのみならず、主操作盤21からの指示があった場合には、CPUが専用のプログラムを実行することによって、応答部およびシミュレーション実行部としても機能する。
【0038】
なお、応答部は、主制御盤21からCPUの種類および使用可能なメモリ領域などの各種の問い合わせがあった場合に応答するためのものである。シミュレーション実行部は、生産設備を制御するために用いていた各種のデータを含む現在のメモリデータを圧縮退避してメモリ領域内に作業領域を確保してシミュレーションの分散処理が可能な状態とし、実際に、シミュレーションを分散処理し、実行結果を主操作盤21に送信するものである。
【0039】
なお、本実施の形態の主操作盤21および各制御装置22〜27では、CPUが専用のプログラムを実行することによって、上記の各部の機能が実現されるが、本実施の形態と異なり、論理集積回路などの種々のハードウエアによって各部の機能を実現してもよい。
【0040】
以上のように構成される本実施の形態のシミュレーションシステムは、以下のように処理を行う。
【0041】
図6は、本実施形態のシミュレーションシステムの処理内容を説明するための概略図である。図6は、第1〜第6の生産ラインからなる自動車車体組み立て設備において、第3生産ラインに含まれる工程で溶接ロボット12が干渉した場合を示している。
【0042】
図6に示される例において、第3生産ラインでロボット12の干渉が発生して稼動が休止すると、この干渉の発生に起因して、他の第1および第2生産ラインと、第4および第5生産ラインでも稼動が休止する。具体的には、第3生産ラインの上流にあたる第1および第2生産ラインでは、ワークを下流に流せなくなり、ワークを貯めておける量を超えて満杯となるため、稼動休止状態となり、第3生産ラインの下流にあたる第5生産ラインでは、ワークが流れてこなくなり前工程待ちの状態が発生して稼動休止状態となる。さらに、この第5生産ラインに供給すべき取付用のワーク(取付部品など)を供給するための第4生産ラインでも、ワークが満杯となり稼動休止状態となる。なお、図6に示される例では、第6生産ラインでは、稼動状態が維持されている。
【0043】
図6に示される場合では、干渉の発生に起因して、第1〜第5生産ラインに対応する各ライン系統での制御装置、すなわち、図5における生産ライン制御装置22a〜22e、副操作盤23a〜23e、溶接ロボット制御装置24a〜24e、搬送ロボット制御装置25a〜25e、3軸位置決め制御装置26a〜26e、および1軸位置決め制御装置27a〜27eが稼動休止状態となる。一方、第6生産ラインに対応するライン系統での制御装置22f〜27fは、稼動休止状態とならず、稼動状態を維持する。
【0044】
主操作盤21は、これら稼動休止状態となった各制御装置22〜27を検出し、検出された各制御装置22〜27に対して、復旧処理のためのロボット12の退避動作のシミュレーションについての分散処理を指示する。指示を受けた各制御装置22〜27は、シミュレーションを分散処理する。
【0045】
以下、主操作盤21側(3次元CAD側)と、各制御装置22〜27側(設備側)の処理に分けて、本実施の形態のシミュレーション方法における各処理手順を説明する。なお、ロボット12が干渉した場合を例にとって説明する。
【0046】
(主操作盤側の処理)
最初に、主操作盤21による処理手順を説明する。図7および図8は、主操作盤21における処理手順を示すフローチャートである。
【0047】
まず、シミュレーション指示を受信したか否かが判断される(ステップS101)。シミュレーション指示は、たとえば、保全員が操作することによって、制御装置22〜27のいずれかから送信された信号である。シミュレーション指示には、保全員によるロボット12の退避手順および退避経路の指定が含まれる。これらの指定された退避手順および退避経路でロボット12を退避させた場合に干渉するか否かがシミュレーションされることとなる。
【0048】
シミュレーション指示が受信されるのを待って(ステップS101:YES)、主操作盤21は、ロボット12の干渉が生じた設備の設備状況データを要求する(ステップS102)。ここで、設備状況データには、ロボット12などの位置、および動作プログラム状態などが含まれる。
【0049】
そして、設備状況データが受信されると(ステップS103:YES)、この設備状況データに基づいて干渉時のロボット12およびその周辺環境の状態が3次元グラフィックスデータに反映される(ステップS104)。この結果、3次元グラフィックスシミュレーション処理の計算の開始状態が把握される。具体的には、干渉に関係するロボット12,13および装置14,15に対応する3次元モデルが読み出される。たとえば、ロボット12を例にとれば、ロボット12の3次元モデルには、ロボット12の設置位置のデータ、ロボット12の形状データ、およびロボット12を成す複数のアーム部分の連結関係を示すデータなどが含まれる。したがって、設備状況データに含まれるロボット12などの位置および動作プログラム状態を3次元モデルに当てはめることによって、3次元モデルにおけるロボット12の姿勢や位置を決定することができる。この結果、干渉時のロボット12の状態を3次元グラフィックスデータとして取り込むことができる。なお、他のロボット13および位置決め装置14、15の状態についても同様に3次元グラフィックスデータとして取り込むことができる。
【0050】
次に、3次元グラフィックスシミュレーションの計算処理(計算ジョブ)が最小単位に分割される(ステップS105)。本実施の形態では、干渉しているロボット12および干渉している位置決め装置14,15の機械的な最小単位を基準として3次元グラフィックスシミュレーションの計算処理が分割される。たとえば、ロボット12が、各々が関節で接続された4つのアームで構成されている場合であれば、ロボット12一台あたりの計算処理は、各アームに対応して4つの計算処理に分割される。複数のロボット12および装置14,15が干渉に関与する場合には、それぞれのロボット12および装置14,15についても、3次元グラフィックスシミュレーションの計算処理が最小単位に分割される。
【0051】
なお、本実施の形態では、ロボット12および装置14,15の機械的な最小単位を基準として計算処理が分割されるが、この場合に限られず、一般的な分散処理において用いられている種々の分割手法を適用可能であることはもちろんである。この場合の計算処理の分割手法自体は、従来の技術と同様であるので、詳しい説明を省略する。
【0052】
次に、主操作盤21は、第1〜第6ライン系統における夫々の制御装置22〜27の状況について問い合わせる(ステップS106)。言い換えれば、主制御盤21は、第1〜第6ライン系統における夫々の制御装置22〜27が稼動休止状態であるか否かについて問い合わせる。具体的には、主操作盤21は、各ライン系統における生産ライン制御装置22に対して信号を送信することによって、各ライン系統における制御装置22〜27の状況を問い合わせることが望ましい。この結果、各ライン系統の制御装置22〜27の状況が取得される(ステップS107)。
【0053】
これらステップS106およびステップS107の処理は、SCADA(Supervisory Control and Data Acquisition)と呼ばれる処理機能と同様である。すなわち、ステップS106とステップS107においては、各制御装置22〜27が稼動してるか、あるいは、ワークの手待ちになっているなどの理由により稼動休止状態(アイドル状態)となっているかが監視される。
【0054】
具体的には、あるライン系統が稼動状態であれば、アクチュエータ18の出戻に伴うリミットスイッチ19の変化、および各接点のON/OFFの変化が検出される。一方、稼動休止状態となると、サイクルスタートの状態となりリモートI/O28に入力される信号状態が変化しない。したがって、リモートI/O28に入力される信号状態を監視することによって、特定のライン系統における制御装置22〜27が稼動休止状態であるか否かを判断することができる。また、稼動休止状態では、生産ライン制御装置(PLC)22において動作の進捗を示すステップ番号が変化しなくなる。したがって、生産ライン制御装置におけるステップ番号の変化に対応する信号を監視することによっても、特定のライン系統における制御装置22〜27が稼動休止状態であるか否かを判断することができる。
【0055】
次に、ステップS107で取得された各ライン系統の制御装置22〜27の状況に基づいて、稼動休止状態となっている制御装置22〜27が検出される(ステップS108)。本実施の形態では、各ライン系統単位で、制御装置22〜27が稼動休止状態であるか否かが判断される。言い換えれば、稼動休止状態となっているライン系統と稼動休止状態となっていないライン系統とが識別され、稼動休止状態となっているライン系統に属する制御装置22〜27を稼動休止状態の制御装置としている。
【0056】
次いで、検出された稼動休止状態の制御装置22〜27に対して、分散処理させる計算処理を割り付け(配分)する(ステップS109)。すなわち、3次元グラフィックスシミュレーションの計算処理は、ステップS105で複数の分割計算処理(最小単位)に分割されている。したがって、ステップS109の処理では、稼動休止状態の制御装置22〜27の数に応じて、一つの制御装置当たりに実行させる分割計算処理の配分数が設定される。好ましくは、稼動休止状態の各制御装置22〜27に実行させる計算量に偏りが生じないように均等に分割計算処理の配分数が設定される。
【0057】
次に、各分割計算処理の記述言語の最適化がなされる(ステップS110)。ここで、記述言語の最適化処理の一例が図9に示されている。図9は、図7のステップS110における記述言語の最適化処理のサブルーチンの一例を示すフローチャートである。
【0058】
まず、ある分割計算処理が配分される制御装置が、生産ライン制御装置22または副操作盤23である場合には(ステップS201:YES)、ラダー、FB(ファンクションブロック)、ニーモニック、C言語、またはアセンブラなどの記述言語の中から、その機種に応じて予め仕様で定められている記述言語が指定される(ステップS202)。なお、各制御装置の種類(機種)ごとに指定すべき記述言語仕様は、電子データとして主操作盤21に予め記憶されていることが望ましい。
【0059】
続いて、主制御盤21は、使用可能なメモリ領域を問い合わせる(ステップS203)。制御装置の機種によっては、メモリのアドレスの指定の仕方が違う場合があり、この指定の仕方によってプログラムの記述の仕方が変わる場合がある。したがって、使用可能なメモリ領域を問い合わせておくことが望ましい。そして、問い合わせ先の制御装置22〜27から、メモリ領域についての通知が受信されるのを待って(ステップS204:YES)、分割計算処理のプログラムが指定言語に変換される(ステップS205)。
【0060】
一方、ある分割計算処理が配分される制御装置が、溶接ロボット制御装置(溶接ロボットコントローラ)24、搬送ロボット制御装置(搬送ロボットコントローラ)25、3軸位置決め制御装置26、1軸位置決め制御装置27、または、その他のコンピュータである場合には(ステップS201:NO)、たとえば、アセンブラが指定言語として指定される(ステップS206)。
【0061】
また、CPU種類によってアセンブラの記述仕様が異なる場合があるので、CPU種類についても問い合わせがなされる(ステップS207)。そして、CPU種類についての通知を受信するのを待って(ステップS208:YES)、上述したステップS203〜ステップS205の処理がなされる。
【0062】
以上のステップS201〜ステップS208に示された処理によって、各制御装置22〜27に適したプログラム記述言語でプログラムが記述されて各分割計算処理が表現される。
【0063】
以上のように、記述言語が最適化されると、図7に戻り、記述言語が最適化された各分割計算処理が、ステップS109で割り付けられた稼動休止状態の各制御装置22〜27に送信される(ステップS111)。すなわち、各制御装置22〜27に対してシミュレーションの分散処理が指示される。ここで、各制御装置22〜27におけるメモリ容量を節約する観点からは、各分割計算処理は、実行形式にコンパイルされたプログラムが稼動休止状態の各制御装置に送信されることが望ましい。
【0064】
続いて、各制御装置22〜27から実行可能か否かの応答を受信するのを待って(図8のステップS112:YES)、すべての分割計算処理が実行可能であるかが判断される(ステップS113)。指示先の制御装置22〜27において実行不可能である旨が通定された分割計算処理がある場合には(ステップS113:NO)、図7のステップS106に戻り、少なくとも、実行不可能の旨が通知された分割計算処理については、再度、ステップS106〜ステップS113の処理が実行される。
【0065】
送信した全ての分割計算処理が、指示先の制御装置22〜27において実行可能である場合には(ステップS113:YES)、主制御盤21は、各制御装置22〜27から各分割計算処理の実行結果(シミュレーション結果)が受信されるのを待つ(ステップS114)。分割処理の実行結果は、たとえば、数値データとして受信される。
【0066】
次いで、主制御盤21は、分割計算処理の実行結果を統合して、シミュレーションの対象となるロボット12,13および位置決め装置14,15全体の3次元グラフィックシミュレーション結果を得る(ステップS115)。上述したとおり、ロボット12を例にとれば、ロボット12の各関節によって区切られたアーム等の機械要素(換言すれば、多軸ロボットの各軸ごと)に分けて経路計算がなされている。したがって、これらの各アームの経路計算結果が、各アーム間の連結関係に応じて組み合わされる。すなわち、連結するアームの経路計算結果を、連結されるアームの端部(連結部)が基準座標となるように座標変換し、順次に組み合わせていくことによって、ロボット12の全体の3次元グラフィックシミュレーション結果を得る。
【0067】
一つのシミュレーション処理における全ての時間ステップにわたる経路計算が終了するまで(ステップS116)、所定の時間ステップΔtを進めて(ステップS117)、順次にステップS106〜ステップS115の処理を繰り返す。ここで、主操作盤21は、ステップS106〜ステップS108において、稼動休止状態の制御装置22〜27の数および種類の変化を検出し、ステップS109において、この数および種類の変化に対応して、各制御装置22〜27に分散処理させる配分を動的に変化させることができる。
【0068】
一つのシミュレーション処理における全ての時間ステップを通じた経路計算が終了した場合には(ステップS116:YES)、車種組合せなどを考慮した全ての処理が完了したか否かが判断される(ステップS118)。全ての処理が完了していない場合には(ステップS118:NO)、次のシミュレーション処理内容を設定し(ステップS119)、ステップS106〜ステップS118の処理が繰り返される。
【0069】
最終的に、全ての処理が完了するのを待って(ステップS118:YES)、分割処理を実行している各制御装置22〜27に対して、処理終了通知が送信されるとともに、指定された退避順序および退避経路でロボット12を退避させた場合の干渉の有無が表示される(ステップS120)。ここで、ロボット12,13、装置14,15、およびその他の構造物の形状と、互いの位置関係とが3次元グラフィックスとして再現されており、ロボット12,13や位置決め装置14,15のように稼動する対象物については、上述したとおり、その退避動作がシミュレーションされているので、ロボット12を退避させる過程で、ロボット12が他のロボット12,13、装置14,15、その他の構造物と接触するか否かを判断することができる。なお、干渉検討の実際の処理は、従来のシミュレーション処理の場合と同様であるので、詳しい説明を省略する。
【0070】
以上のステップS101〜ステップS120の処理によって、保全員は、ロボット12を退避させる上での退避経路および退避順序を自由に指定し、その退避時の干渉の有無をシミュレーションシステムを用いて確認しつつ、復旧処理をすることができる。この結果、熟練していない保全員によっても、退避時に干渉が生じない退避動作が簡単に求められる。
【0071】
(各制御装置側の処理)
次に、実際に分散処理によってシミュレーション処理を実行する各制御装置22〜27の処理手順について説明する。
【0072】
図10は、稼動休止状態であるか否かの問い合わせを受信する前の各制御装置22〜27の処理内容を示すフローチャートであり、図11および図12は、稼動休止状態であるか否かの問い合わせを受信した後の各制御装置22〜27の処理内容を示すフローチャートである。
【0073】
図10に示されるとおり、各制御装置22〜27は、初期状態では、ロボット12,13、位置決め装置14,15、または生産ライン全体を制御するための通常の動作状態(以下、「通常モード」という)となっている(ステップS301)。
【0074】
制御装置22〜27のいずれかの制御装置(たとえば、副操作盤23)が、図示していないキーボード、タッチパネル、またはマウスなどのポインティングデバイス、デジタルI/Oを利用したスイッチ操作を介して保全員によるシミュレーションの指示を受け付けると(ステップS302:YES)、この制御装置は、割り込み処理によって、シミュレーション指示を主操作盤21に送信する(ステップS303)。
【0075】
次いで、制御装置22〜27のうち、たとえば生産ライン制御装置22は、主制御盤21から、ロボット12の干渉が生じた設備の設備状況データの要求を受けると(ステップS304:YES)、干渉が生じたロボット12の位置、およびそのときの動作プログラム状態を含む設備状況データを送信する(ステップS305)。なお、ロボット12の干渉発生事実および干渉発生位置は、所定時間以内で位置決め処理が終わらないなどの状況を生産ライン制御装置22が監視することによって検出してもよく、リモートI/O28などに接続されている過負荷センサ(不図示)の出力を生産ライン制御装置22が監視することによって直接的に検出してもよい。
【0076】
次に、稼動休止状態であるか否かの問い合わせを受けた後の各制御装置22〜27の処理内容を図11および図12を用いて説明する。
【0077】
図11に示されるとおり、各制御装置22〜27の状況についての問い合わせ、すなわち各制御装置22〜27が稼動休止状態であるか否かの問い合わせが受信されると(ステップS401:YES)、対応するライン系統の各制御装置22〜27が稼動休止状態である場合には(ステップS402:YES)、稼動休止状態であることを示す信号が主操作盤21に送信され(ステップS403)、対応するライン系統の各制御装置22〜27が稼動休止状態でない場合、すなわち稼動状態である場合には(ステップS402:NO)、稼動状態であることを示す信号が主操作盤21に送信される(ステップS404)。
【0078】
なお、ステップS401〜ステップS404の各処理は、各制御装置22〜27でそれぞれ実行される必要がなく、主として生産ライン制御装置22が実行すればよい。
【0079】
ここで、各制御装置22〜27が稼動状態である場合には、ステップS405以下に示されるシミュレーションの処理は実行されず、処理はステップS401へ戻り、通常モードが維持される。
【0080】
次いで、各制御装置22〜27は、稼動休止状態である場合には、必要に応じて、CPU種類の問い合わせの受信(ステップS405)と、それに応答する通知の送信(ステップS406)、およびメモリ領域の問い合わせの受信(ステップS407)と、それに応答する通知の送信(ステップS408)を実行する。
【0081】
そして、各制御装置22〜27は、最終的に分割計算処理の指示(具体的には実行形式のプログラムとなっている)を受信するのを待って(ステップS409:YES)、受信した分割計算処理が自装置で実行可能か否かを判断する(図12のステップS410)。受信した分割計算処理が自装置で実行不可能である場合には(ステップS410:NO)、主操作盤21に対して、受信した分割計算処理が自装置で実行不可能である旨を送信し(ステップS411)、処理がステップS401へ戻る。このとき、制御装置22〜27の動作状態が、計算処理モードとなっていた場合には(ステップS412:YES)、動作状態が計算処理モードから通常モードへ切り替えられた後(ステップS420)、処理が図11のステップS401に戻る。ここで、計算処理モードとは、後述するように、計算処理が可能である動作状態である。計算処理モードでは、分割計算処理を実行するための作業領域がメモリ領域上に確保される。
【0082】
一方、指示した分割計算処理が自装置で実行可能である場合には(図12のステップS410:YES)、主操作盤21に対して、分割計算処理の実行を開始する旨を送信する(ステップS413)。このとき、制御装置22〜27が計算処理モードであった場合には(ステップS414:NO)、そのままステップS416の処理へ進む。一方、制御装置22〜27が通常モードであった場合には(ステップS414:YES)、通常モードから計算処理モードへと動作状態が切り替えられた後(ステップ415)、ステップS416の処理に進む。
【0083】
ここで、動作状態の切替処理について説明する。図13は、動作状態の切替処理について示している。動作状態の切替処理には、上述した図12に示されるとおり、通常モードから計算処理モードへの切替処理(ステップS415)と、計算処理モードから通常モードへの切替処理(ステップS420)とが含まれる。図13では、生産ライン制御装置(PLC)22および副操作盤(グラフィックパネル)23における各切替処理が示されている。
【0084】
まず、制御装置が生産ライン制御装置22である場合を例にとって説明する。通常モードから計算処理モードへの切替処理の場合には、まず、稼動休止状態か否かを監視するための構成であるアイドル状態用監視回路の抽出がなされる(ステップS501)。アイドル状態用監視回路は、たとえば、上述したようなリモートI/O28から入力される信号状態の監視するための構成、または生産ライン制御装置(PLC)22における動作の進捗を示すステップ番号を変化させ、この変化を監視するための構成などを意味する。制御装置22が計算処理モードとなった場合も、これら抽出されたアイドル状態用監視回路は能動状態が維持される。
【0085】
次に、生産ライン制御装置22が、生産ライン全体を統括して制御するために通常モード時に用いていた各種のデータからなる現在のメモリデータが圧縮されて、所定のメモリ領域に退避される(ステップS502)。そして、メモリデータの圧縮および退避によって空いたメモリ領域内に、アイドル状態の監視と計算処理とに用いられる作業領域が設定される(ステップS503)。この結果、通常モードから計算処理モードへの切替が完了する。
【0086】
一方、計算処理モードから通常モードへの切替処理の場合には、退避したメモリデータが解凍され、復元される(ステップS601)。この結果、計算処理モードから通常モードへの切替が完了する。
【0087】
次に、制御装置が副操作盤23である場合である場合を説明する。通常モードから計算処理モードへの切替処理の場合には、画面データの更新頻度が低減される(ステップS701)。そして、更新頻度の低減によって節約されたメモリ領域内に、計算処理に用いられる作業領域が設定される(ステップS702)。この結果、通常モードから計算処理モードへの切替が完了する。一方、計算処理モードから通常モードへの切替処理の場合には、画面データの更新頻度が復元される(ステップS801)。
【0088】
なお、制御装置が、溶接ロボット制御装置24、搬送ロボット制御装置25、3軸位置決め制御装置26、または1軸位置決め制御装置27の場合には、生産ライン制御装置22の場合の処理(ステップS501〜ステップS503、およびステップS601)と概ね同様の処理が実行される。また、制御装置が、パーソナルコンピュータである場合であれば、パーソナルコンピュータ用のマルチタスクOS(オペレーティングシステム)を利用することができるので、特別の切替処理は不要である。
【0089】
以上のような処理によって、制御装置22〜27の動作状態が計算処理モードに切り替えられている状態で、夫々の制御装置22〜27は、図12のステップS416に進み、分割計算処理を実行する。
【0090】
次いで、制御装置22〜27は、主制御盤21に対して、計算処理の実行結果を送信する(ステップS417)。主制御盤21から処理終了の通知を受信した場合には(ステップS418:YES)、すべての3次元グラフィックスシミュレーションの処理が完了したものとして、動作状態が計算処理モードから通常モードに切り替えられる(ステップS420)。
【0091】
一方、処理終了の通知を受信していない場合であっても(ステップS418:NO)、自機が稼動休止状態にあるか否かが常に監視されており(ステップS419)、自機が稼動休止状態でなく稼動状態となった場合には(ステップS419:NO)、動作状態が計算処理モードから通常モードに切り替えられる(ステップS420)。
【0092】
以上のステップS401〜ステップS420を繰り返すことによって、各制御装置22〜27は、ロボットの干渉が発生しておらず、稼動状態となっている場合には、ロボットおよび各種装置の制御装置として動作し、ロボットの干渉に起因して稼動休止状態となった場合には、ロボットの退避動作についての3次元グラフィックシミュレーションを分散処理するシミュレーターとして動作する。
【0093】
なお、以上の説明では、主として、退避動作(退避経路や退避順序)の候補を保全員が指定して、指定した退避動作を採用したときの干渉の有無をシミュレーションシステムを用いて検討する場合を示したが、同様の処理によって、位置修正動作(位置修正経路や位置修正順序)および手動溶接動作(手動溶接経路や手動溶接順序)の候補を保全員が指定して、指定した位置修正動作および手動溶接動作を採用したときの干渉の有無をシミュレーションシステムを用いて検討することができる。
【0094】
以上のとおり、本実施の形態のシミュレーション方法およびそのシステムを説明したが、本実施の形態のシミュレーション方法およびそのシステムによれば、以下のような効果を奏する。
【0095】
(A)複数台の専用コンピュータを別途導入することなく、ロボットの干渉が発生した際のロボットの復旧動作(退避動作および位置修正動作など)を短時間でシミュレーションすることが可能となる。すなわち、生産設備の制御に用いられる複数の制御装置22〜27の処理能力を一時的かつ部分的に、ロボットの復旧動作の検討に割り当てて、3次元グラフィックスシミュレーションを分散処理することができるので、生産現場においてロボットの復旧動作の検証が可能となり、保全員の熟練度に依存しない復旧作業が可能となる。
【0096】
(B)特に、生産設備の制御に用いられる複数の制御装置22〜27を利用できるので、3次元グラフィックスシミュレーションを分散処理するための専用のコンピュータを導入する必要がなく、設置場所をとらず、導入費用および保守管理費用を低減できる。
【0097】
(C)ロボットの干渉の発生に起因して上流および下流の生産ラインにおいて制御装置が稼動休止状態となることを利用して、これら稼動休止状態となった制御装置を有効活用するので、シミュレーションが必要になった際に、シミュレーションを分散処理させることが可能な制御装置の数を確保しやすい。
【0098】
(D)稼動休止状態となった制御装置のみに分散処理させて、稼動状態にある制御装置についてはワークの生産に関する通常の処理を続行させるので、ワークの生産が必要以上に抑制されない。
【0099】
(E)特に、稼動休止状態の制御装置の数および種類の変化に応じて、各制御装置に分散処理させる配分を動的に変化させるので、状況の変化に応じて最短の時間でシミュレーションを実行することができる。特に、多くの生産ラインが稼動休止状態となるような大きな影響を受けるロボットの干渉の発生時には、より一層の早急な復旧が必要となるが、本実施の形態では、稼動休止状態となる生産ラインが増えるにしたがって、シミュレーションの分散処理に振り分けられる制御装置の数も自動的に増えるので、稼動休止状態となった生産ラインの規模に応じて早急な復旧を実現することができる。
【0100】
(F)検出された稼動休止状態の各制御装置ごとに適用可能な各記述言語で分散処理が与えられるので、制御装置の種類によらず、稼動休止状態の各制御装置を全て活用することが可能となる。
【0101】
(G)分散処理させる前に、各制御装置22のメモリデータを圧縮し退避しておくので、設備の制御に用いられるメモリデータが分散処理の影響によって破損されることがない。
(第2の実施の形態)
本実施の形態のシミュレーションシステムは、第1の実施の形態で説明した処理に加えて、さらにシミュレーションによって得られた結果に基づいて、実際にロボットを動作させる処理を実行するものである。なお、実際にロボットを動作させる処理を実行させる点を除いて、その構成は、第1の実施の形態の場合と同様であるので、詳しい説明を省略する。
【0102】
上記の第1の実施の形態では、ロボットの干渉が発生した際に、ロボットの復旧動作がシミュレーションされる場合を説明した。この結果、干渉が生じない安全な退避動作(退避経路および退避順序)、位置修正動作(位置修正経路および位置修正順序)、手動溶接動作(手動溶接経路および手動溶接順序)が決定される。
【0103】
そこで、本実施の形態のシミュレーションシステムでは、退避動作、位置修正動作、および手動溶接動作において干渉が生じないことがシミュレーションによって確立された時点で、これらの退避動作、位置修正動作、および手動溶接動作にしたがって、自動的に実際のロボットを動作させるように構成される。
【0104】
具体的には、保全員によって指定された退避動作、位置修正動作、および手動溶接動作において干渉が発生しないことが確立できると、主制御盤21は、各生産ライン制御装置22に指示を送り、この結果、ロボット12などが実際に動作する。
【0105】
なお、ロボットが緊急停止する事象が発生した際の復旧作業には、保全員の関与が必要なくロボットが動作すればよいものと、保全員の実際の作業が必要となるものとが混在している。本実施の形態では、これらのうち、保全員の関与が必要なくロボットが動作すればよい作業が自動的に実行される。
【0106】
復旧作業は、以下の第1〜第3手法からなる3つの手法に分類される。どの手法を採用するかは、ワークの状況に応じて保全員が判断する。
(第1手法)
第1手法は、ワークが破損してしまった場合に主として採られる手法である。まず、ワークを抜き出せる状態までロボット12が安全に退避される(第1作業)。そして、作業者がワークを抜き出す(第2作業)。抜き出されたワークは、たとえば廃棄される。次いで、ロボット12が原位置に戻される(第3作業)。その後、生産加工プログラムが初めから起動される(第4作業)。
【0107】
この第1手法では、第1作業の退避動作と第3作業の位置調整動作とが上記のシミュレーションによって検討されて干渉しないことが確立された時点で自動的に実行される。
(第2手法)
第2手法は、加工前または加工途中のワークが破損されておらず、生産加工プログラムの途中からロボット12の動作を再開できる場合に主として採られる手法である。自動車車体組み立て設備を例にとれば、ワークの溶接前および溶接途中のワークが破損されておらず、ロボット12が溶接の続きを実行できる場合に採用される手法である。
【0108】
第2手法では、ロボット12が干渉することによって、それぞれのロボット12の位置が本来の指示座標とずれてしまっていることを考慮して、ティーチング修正が実行される。ティーチング修正は、ロボット12を一旦、基準位置に戻して、ロボット12と座標系とのずれ(オフセット)を調整する位置修正動作である。
【0109】
まず、ティーチング修正する際に干渉すると予想されるロボット12が退避される(第1段階)。すなわち、複数のロボット12が干渉して寄り付いている場合に、ロボット12同士が引き離される。次いで、干渉が生じたロボット12に対しては、ティーチング修正がなされる(第2段階)。その後、各ロボット12を溶接前または溶接途中の設定位置に移動させる位置修正がなされる(第3段階)。そして、生産加工プログラムが途中から実行される(第4段階)。
【0110】
この第2手法では、第1段階の退避動作と、第2および第3段階の各位置修正動作とがが上記のシミュレーションによってそれぞれ検討され、干渉しないことが確立された時点で自動的に実行される。
(第3手法)
第3手法は、加工途中のワークが破損されておらず、保全員(作業者)がロボット操作用ペンダントなどを用いて手動でワークの加工を継続できる場合に採られる手法である。自動車車体組み立て設備を例にとれば、溶接途中のワークが破損されておらず、保全員が手動でワークの溶接の続きを実行できる場合に採用される手法である。
【0111】
第3手法では、複数のロボット12の中で干渉によってティーチング修正が必要になったものと、干渉しておらずティーチング修正が不要なものとが分けられる。まず、ティーチング修正が不要なロボット12の作業に関してロボット12を手動で動かしてワークの溶接が継続される(第1段階)。一方、ティーチング修正が必要なロボット12については、ティーチング修正がなされる(第2段階)。そして、ティーチング修正がなされたロボットの作業に関してロボット12を手動で動かしてワークの溶接が継続される(第3段階)。この結果、溶接途中のワークについて全ての溶接が完了すると、各ロボット12を溶接完了状態に設定して、この溶接完了状態に対応するステップを開始点にして生産加工プログラムが再開される(第4段階)。
【0112】
この第3手法では、第1段階および第3段階における手動溶接動作と、第2段階の位置修正動作とが、上記のシミュレーションによってそれぞれ検討され、干渉しないことが確立された時点で自動的に実行される。
【0113】
以上のとおり、保全員によって、第1〜第3手法のどの手法が採用された場合であっても、その手法中に含まれる幾つかのロボットの復旧動作、すなわち、退避動作、位置修正動作、および手動溶接動作について、シミュレーションによって得られた結果に基づいて自動的にロボットを動作させることができる。
【0114】
本実施の形態のシミュレーション方法およびそのシステムによれば、第1の実施の形態で示した(A)〜(G)の効果に加えて、さらに(H)保全員が目視確認しながら行っていたロボット12の復旧動作を自動化することが可能となるので、保全員の経験や知見の差による保全作業時間のばらつきや保全品質のばらつきが無くなり、復旧・保全作業緒の均一化を図ることができるという効果を奏する。
【0115】
以上のように、本発明の好適な実施の形態について説明したが、本発明は、これらの場合に制限されるものではなく、当業者によって種々の変形、省略、追加が可能である。
【0116】
たとえば、上述した例では、稼動休止状態の各制御装置22〜27に対して復旧動作のシミュレーションの分散処理を指示する管理装置として、主操作盤21を用いる場合を示したが、管理装置として、主操作盤21とは異なる別途の端末装置を用意してもよいことはもちろんである。
【0117】
また、上記の例では、シミュレーションを分散処理する制御装置として、生産ライン制御装置22、副操作盤23、溶接ロボット制御装置24、搬送ロボット制御装置25、3軸位置決め制御装置26、および1軸位置決め制御装置27を含む場合を説明したが、本発明は、生産設備の制御に用いられる複数の制御装置が稼動休止状態である場合に、シミュレーションの分散処理を実行するものであればよく、上記の場合に限られるものであはない。
【0118】
さらに、上記の例では、稼動休止状態であり分散処理が実行可能な全ての制御装置22〜27がシミュレーションの分散処理を実行する場合を説明した。確かに、シミュレーションに要する時間を短縮化する観点からは、稼動休止状態であり分散処理が実行可能な全ての制御装置22〜27をシミュレーションの分散処理に用いることが望ましいが、本発明は、この場合に限られず、少なくとも、検出された稼動休止状態の制御装置22〜27に含まれる複数の制御装置で、復旧動作のシミュレーションを分散処理するものを含む。
【0119】
上記の例では、本発明のシミュレーションシステムを自動車車体組み立て設備に適用した場合を説明したが、本発明のシミュレーションシステムを他の生産設備に適用することができることはもちろんである。
【図面の簡単な説明】
【0120】
【図1】シミュレーションシステムが適用される自動車車体組み立て設備の一例を示す模式図である。
【図2】図1の自動車車体組み立て設備における生産ラインの仕様の一例を示す図である。
【図3】図1に示される自動車車体組み立て設備の制御系の一例を示す模式図である。
【図4】図3に示される生産ライン制御装置における生産加工プログラム動作とインターロックの一例を示す図である。
【図5】第1の実施の形態のシミュレーションシステムの構成を示す模式図である。
【図6】本実施形態のシミュレーションシステムの処理内容を説明するための概略図である。
【図7】図5に示される主操作盤のる処理手順を示すフローチャートである。
【図8】図7に後続する処理手順を示すフローチャートである。
【図9】図7のステップS110における記述言語の最適化処理を示すフローチャートである。
【図10】稼動休止状態であるか否かの問い合わせを受信する前における図5の各制御装置の処理手順を示すフローチャートである。
【図11】稼動休止状態であるか否かの問い合わせを受信する後における図5の各制御装置の処理手順を示すフローチャートである。
【図12】図11に後続する処理手順を示すフローチャートである。
【図13】図12のステップ415およびステップS420における動作状態の切替処理を示すフローチャートである。
【符号の説明】
【0121】
10 生産ライン、
12 溶接ロボット、
13 搬送ロボット、
14 3軸位置決め装置、
15 1軸位置決め装置、
18 アクチュエータ、
19 リミットスイッチ、
21 主操作盤、
22 生産ライン制御装置、
23 副操作盤、
24 溶接ロボット制御装置、
25 搬送ロボット制御装置、
26 3軸位置決め制御装置、
27 1軸位置決め制御装置、
28 リモートI/O、
29 OAネットワーク、
30 FAネットワーク。
【特許請求の範囲】
【請求項1】
ロボットが緊急停止する事象が発生した際にロボットの復旧動作をシミュレーションするシミュレーション方法であって、
生産設備の制御に用いられる複数の制御装置のうちで稼動休止状態となった制御装置を検出する段階と、
検出された稼動休止状態の制御装置で、前記復旧動作のシミュレーションを分散処理する段階と、を有することを特徴とするシミュレーション方法。
【請求項2】
前記ロボットが緊急停止する事象は、ロボット同士の干渉、またはロボットと他の装置との干渉であることを特徴とする請求項1に記載のシミュレーション方法。
【請求項3】
ロボットの復旧動作は、干渉が発生したロボットの退避動作を含むことを特徴とする請求項1に記載のシミュレーション方法。
【請求項4】
ロボットの復旧動作は、干渉によって位置がずれたロボットの位置修正動作を含むことを特徴とする請求項1に記載のシミュレーション方法。
【請求項5】
前記複数の制御装置は、異なる種類の制御装置を含むことを特徴とする請求項1に記載のシミュレーション方法。
【請求項6】
前記稼動休止状態の制御装置の数および種類の変化に応じて各制御装置に分散処理させる配分が変化することを特徴とする請求項5に記載のシミュレーション方法。
【請求項7】
検出された稼動休止状態の各制御装置ごとに適用可能な各記述言語で分散処理が与えられることを特徴とする請求項5に記載のシミュレーション方法。
【請求項8】
さらに、シミュレーションによって得られた結果に基づいて実際にロボットを動作させる段階を有することを特徴とする請求項1に記載のシミュレーション方法。
【請求項9】
少なくともロボットを含む生産設備の制御に用いられる複数の制御装置と、前記複数の制御装置と通信可能な管理装置とを有し、前記ロボットが緊急停止する事象が発生した際にロボットの復旧動作をシミュレーションシステムであって、
前記管理装置が、稼動休止状態となった制御装置を前記複数の制御装置のうちから検出し、検出された稼動休止状態の制御装置に対して、復旧動作のシミュレーションの分散処理を指示し、
指示された各制御装置が、復旧動作のシミュレーションを分散処理することを特徴とするシミュレーションシステム。
【請求項1】
ロボットが緊急停止する事象が発生した際にロボットの復旧動作をシミュレーションするシミュレーション方法であって、
生産設備の制御に用いられる複数の制御装置のうちで稼動休止状態となった制御装置を検出する段階と、
検出された稼動休止状態の制御装置で、前記復旧動作のシミュレーションを分散処理する段階と、を有することを特徴とするシミュレーション方法。
【請求項2】
前記ロボットが緊急停止する事象は、ロボット同士の干渉、またはロボットと他の装置との干渉であることを特徴とする請求項1に記載のシミュレーション方法。
【請求項3】
ロボットの復旧動作は、干渉が発生したロボットの退避動作を含むことを特徴とする請求項1に記載のシミュレーション方法。
【請求項4】
ロボットの復旧動作は、干渉によって位置がずれたロボットの位置修正動作を含むことを特徴とする請求項1に記載のシミュレーション方法。
【請求項5】
前記複数の制御装置は、異なる種類の制御装置を含むことを特徴とする請求項1に記載のシミュレーション方法。
【請求項6】
前記稼動休止状態の制御装置の数および種類の変化に応じて各制御装置に分散処理させる配分が変化することを特徴とする請求項5に記載のシミュレーション方法。
【請求項7】
検出された稼動休止状態の各制御装置ごとに適用可能な各記述言語で分散処理が与えられることを特徴とする請求項5に記載のシミュレーション方法。
【請求項8】
さらに、シミュレーションによって得られた結果に基づいて実際にロボットを動作させる段階を有することを特徴とする請求項1に記載のシミュレーション方法。
【請求項9】
少なくともロボットを含む生産設備の制御に用いられる複数の制御装置と、前記複数の制御装置と通信可能な管理装置とを有し、前記ロボットが緊急停止する事象が発生した際にロボットの復旧動作をシミュレーションシステムであって、
前記管理装置が、稼動休止状態となった制御装置を前記複数の制御装置のうちから検出し、検出された稼動休止状態の制御装置に対して、復旧動作のシミュレーションの分散処理を指示し、
指示された各制御装置が、復旧動作のシミュレーションを分散処理することを特徴とするシミュレーションシステム。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【公開番号】特開2006−18575(P2006−18575A)
【公開日】平成18年1月19日(2006.1.19)
【国際特許分類】
【出願番号】特願2004−195584(P2004−195584)
【出願日】平成16年7月1日(2004.7.1)
【出願人】(000003997)日産自動車株式会社 (16,386)
【Fターム(参考)】
【公開日】平成18年1月19日(2006.1.19)
【国際特許分類】
【出願日】平成16年7月1日(2004.7.1)
【出願人】(000003997)日産自動車株式会社 (16,386)
【Fターム(参考)】
[ Back to top ]