(57)【要約】【課題】複数のロボットの動作について、各ロボットコントローラとシーケンサとの間における動作確認手段をも含めたシステムを対象とし、高精度の動作時間でシミュレーションする。【解決手段】シミュレーション装置１０は、擬似コントローラ１２ａ、１２ｂ、１２ｃと、シーケンサ１４と、擬似操作盤１６と、シミュレーションデータに基づいてロボットの姿勢を表示するビューワ１８と、ＦＡ用ネットワーク２６と、汎用ネットワーク２８とを備える。擬似コントローラ１２ａ、１２ｂ、１２ｃとビューワ１８とは汎用ネットワーク２８で接続される。シーケンサ１４と擬似コントローラ１２ａ、１２ｂ、１２ｃとはＦＡ用ネットワーク２６で接続される。擬似コントローラ１２ａ、１２ｂ、１２ｃとシーケンサ１４とは、ＦＡ用ネットワーク２６を介してインターロックの確認処理を行う。【選択図】図２
2004148434.tif 000002
【特許請求の範囲】
【請求項１】
複数のロボットを有するシステムの動作検証を行うシミュレーション装置において、
ロボット用のティーチングデータがそれぞれ格納され、該ティーチングデータに基づき、前記ロボットを示す仮想ロボットの動作制御を行うとともに、前記仮想ロボットの各関節の動作量を示すシミュレーションデータをそれぞれリアルタイムに生成する擬似コントローラと、
少なくとも前記擬似コントローラを制御可能なシーケンサと、
前記シーケンサと前記擬似コントローラとを接続する主通信手段と、
少なくとも前記シーケンサに対して操作信号の送受信を行う擬似操作盤と、
前記シミュレーションデータに基づいて前記仮想ロボットの姿勢に関する情報を表示するビューワと、
前記擬似コントローラと前記ビューワとを接続する副通信手段と、
を有し、
前記シーケンサと前記擬似コントローラとは、前記主通信手段を介して前記仮想ロボットの動作確認を行うことを特徴とするシミュレーション装置。
【請求項２】
請求項１記載のシミュレーション装置において、
前記シーケンサは、該シーケンサの動作周期を設定する処理時間設定機能部を有することを特徴とするシミュレーション装置。
【請求項３】
請求項１または２記載のシミュレーション装置において、
前記各擬似コントローラは、前記仮想ロボットが他の仮想ロボットとの干渉領域に進入する際に、該干渉領域に進入することを示すインターロック設定信号を前記シーケンサに供給し、
前記シーケンサは、他の全ての仮想ロボットが、受信した前記インターロック設定信号に対応する前記干渉領域の範囲外に存在すると判断したときに、前記擬似コントローラに対して許可信号を供給し、
前記各擬似コントローラは、前記仮想ロボットが前記干渉領域から退出する際に、該干渉領域から退出することを示すインターロック解除信号を前記シーケンサに供給することを特徴とするシミュレーション装置。
【請求項４】
請求項３記載のシミュレーション装置において、
前記擬似コントローラは、前記インターロック設定信号、前記許可信号および／または前記インターロック解除信号を前記副通信手段を介して前記ビューワまたは前記擬似操作盤に供給し、
前記ビューワまたは前記擬似操作盤は、前記インターロック設定信号、前記許可信号、前記インターロック解除信号に基づく情報を表示することを特徴とするシミュレーション装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、多関節型のロボットを有するシステムの動作検証を行うシミュレーション装置に関し、特に、ロボットの動作制御を行うロボットコントローラと、該ロボットコントローラに通信手段を介して接続されたシーケンサを有するシステムの動作検証を行うシミュレーション装置に関する。
【０００２】
【従来の技術】
自動車のプレス部品の接合工程等において、多関節型のロボットが利用されている。このようなロボットの動作教示は、３次元ＣＡＤ等を用いることにより実機のロボットを不要とするオフラインによる教示、所謂オフラインティーチングが行われている。
【０００３】
また、近時、生産性向上のために接合工程において複数のロボットを高密度に配置するようになっており、例えば、図１５に示すような構成のシステム５００が用いられている。このようなシステム５００の場合、３台のロボット５０２、５０４、５０６の相互干渉を防止するために、シーケンサ（プログラマブルロジックコントローラとも呼ばれる）５０８がネットワーク５１０を介して各ロボットコントローラ５１２、５１４、５１６に接続されており、各ロボット５０２、５０４、５０６の状態を監視および制御している。また、シーケンサ５０８は操作盤５１８や搬送ライン（図示せず）等にも接続されて制御を行っている。システム５００の基本的な動作は操作盤５１８によって作業員が操作できるようになっている。
【０００４】
ロボット５０２、５０４、５０６には、例えば、６つの関節の動作により、６自由度を有する多関節型の産業用ロボットが用いられる。ロボット５０２、５０４、５０６の先端部には溶接ガン５２０が設けられており、この溶接ガン５２０によってワーク５２４の溶接を行うことができる。
【０００５】
ところで、オフラインティーチングによる教示動作を行った後に、動作の検証を行うためにシミュレーションを行う必要があるが、このシミュレーションは実機に対して動作の位置精度と実行時間の精度が高いことが必要である。
【０００６】
シミュレーションを行う方法として、複数の擬似コントローラにそれぞれのロボットの姿勢を記憶させておき、ビューワからの要求に応じて記憶した姿勢値を送信する方法（例えば、特許文献１参照）や、各ロボットプログラムの動作命令からロボットに対する指令を求め、シミュレータ用コンピュータではこれらの指令に基づいてシミュレーションを行うという方法（例えば、特許文献２参照）が提案されている。
【０００７】
【特許文献１】
特許第３３０５４５１号公報（段落［０００９］〜［００１１］）
【特許文献２】
特開２００１−１５０３７３号公報（段落［００１５］〜［００１９］）
【０００８】
【発明が解決しようとする課題】
ロボット５０２、５０４、５０６を含むシステム５００（図１５参照）のシミュレーションを行うと、以下の理由により実際の動作時間と比較して誤差が発生することがある。
【０００９】
すなわち、ロボット５０２、５０４、５０６を高密度に配置したシステム５００では、相互干渉を回避するためにインターロック処理を行う必要があるが、このインターロック処理に起因する誤差が発生する。また、ロボットコントローラ５１２、５１４、５１６とシーケンサ５０８との間のネットワーク５１０による通信時間は考慮されていないために、この通信時間に基づく誤差が発生する。さらに、シーケンサ５０８は種類によって処理速度が異なるので、シーケンサ５０８を含めたシステム５００のシミュレーションを１台のコンピュータ内で精度よく行うことは困難である。
【００１０】
前記の特許文献１に開示された方法では、シミュレーション時に各ロボットコントローラがロボットの姿勢を記憶しておき、シミュレータからの要求を受けた時点で記憶値を送信するようにしているので、モニタ上に表示されるロボットの動作はリアルタイムではない。従って、ロボットの動作を把握しにくい。
【００１１】
前記の特許文献２に開示された方法では、ロボットコントローラからは各ロボットプログラムに基づいて指令が送信されるので、シミュレータ用コンピュータではこれらの指令からロボットの姿勢を演算または推定を行う必要がある。従って、シミュレータ用コンピュータの処理が繁雑になる。
【００１２】
さらに、特許文献１および２に開示された方法では、シーケンサや通信手段の作用は考慮されていないので、これらのシーケンサおよび通信手段に起因する誤差が発生する。
【００１３】
さらにまた、シミュレーションの対象となるロボットの数が増減することにより、シミュレーションの実行時間および誤差が影響を受けることになる。
【００１４】
本発明はこのような課題を考慮してなされたものであり、複数のロボットの動作について、各ロボットコントローラとシーケンサとの間における動作確認手段をも含めたシステムを対象とし、高精度の動作時間でシミュレーションを行うことを可能にするシミュレーション装置を提供することを目的とする。
【００１５】
【課題を解決するための手段】
本発明に係るシミュレーション装置は、複数のロボットを有するシステムの動作検証を行うシミュレーション装置において、ロボット用のティーチングデータがそれぞれ格納され、該ティーチングデータに基づき、前記ロボットを示す仮想ロボットの動作制御を行うとともに、前記仮想ロボットの各関節の動作量を示すシミュレーションデータをそれぞれリアルタイムに生成する擬似コントローラと、少なくとも前記擬似コントローラを制御可能なシーケンサと、前記シーケンサと前記擬似コントローラとを接続する主通信手段と、少なくとも前記シーケンサに対して操作信号の送受信を行う擬似操作盤と、前記シミュレーションデータに基づいて前記仮想ロボットの姿勢に関する情報を表示するビューワと、前記擬似コントローラと前記ビューワとを接続する副通信手段と、を有し、前記シーケンサと前記擬似コントローラとは、前記主通信手段を介して前記仮想ロボットの動作確認を行うことを特徴とする。
【００１６】
擬似コントローラ、擬似操作盤、シーケンサおよび主通信手段を実際のシステムにおける機器と類似または同一の機器を選定することにより、実機の構成との差異が小さくなる。また、複数のロボットコントローラにそれぞれ擬似コントローラを対応させている。従って、複数のロボットの動作について、各ロボットコントローラとシーケンサとの間における動作確認手段をも含めたシステムを対象とし、高精度の動作時間でシミュレーションすることができるとともに、ロボットの数の多少に拘わらず、リアルタイムのシミュレーションを高精度に実行することができる。
【００１７】
この場合、前記シーケンサは、該シーケンサの動作周期を設定する処理時間設定機能部を有すると、実際に使用されるシーケンサと同じ動作周期に設定することができ、より正確なシミュレーションを行うことができる。
【００１８】
また、前記各擬似コントローラは、前記仮想ロボットが他の仮想ロボットとの干渉領域に進入する際に、該干渉領域に進入することを示すインターロック設定信号を前記シーケンサに供給し、前記シーケンサは、他の全ての仮想ロボットが、受信した前記インターロック設定信号に対応する前記干渉領域の範囲外に存在すると判断したときに、前記擬似コントローラに対して許可信号を供給し、前記各擬似コントローラは、前記仮想ロボットが前記干渉領域から退出する際に、該干渉領域から退出することを示すインターロック解除信号を前記シーケンサに供給するようにしてもよい。
【００１９】
さらに、前記擬似コントローラは、前記インターロック設定信号、前記許可信号および／または前記インターロック解除信号を前記副通信手段を介して前記ビューワまたは前記擬似操作盤に供給し、前記ビューワまたは前記擬似操作盤は、前記インターロック設定信号、前記許可信号、前記インターロック解除信号に基づく情報を表示するようにしてもよい。
【００２０】
【発明の実施の形態】
以下、本発明に係るシミュレーション装置について好適な実施の形態を挙げ、添付の図１〜図１５を参照しながら説明する。
【００２１】
図１および図２に示すように、本実施の形態に係るシミュレーション装置１０は、例えば、システム５００（図１５参照）における３台のロボット５０２、５０４、５０６の動作を仮想空間上でシミュレーションするものであり、実際のロボットコントローラ５１２、５１４、５１６の代わりに擬似コントローラ１２ａ、１２ｂ、１２ｃが仮想のロボットＲ１、Ｒ２、Ｒ３（図３参照）をそれぞれ制御する。
【００２２】
シミュレーション装置１０は、擬似コントローラ１２ａ、１２ｂ、１２ｃと、シーケンス処理を行うシーケンサ１４と、擬似操作盤１６と、シミュレーションの結果を表示するビューワ１８と、ロボットＲ１、Ｒ２、Ｒ３のそれぞれのティーチングデータを作成するオフラインティーチングコンピュータ２０とを有する。オフラインティーチングコンピュータ２０で作成するティーチングデータは、ロボットＲ１、Ｒ２、Ｒ３の動作プログラム自体と、動作経路を示す複数の教示点データと、ロボットＲ１、Ｒ２、Ｒ３の相互干渉を示す干渉領域のデータとから構成される。
【００２３】
擬似操作盤１６、ビューワ１８、オフラインティーチングコンピュータ２０はそれぞれモニタ画面１６ａ、１８ａ、２０ａを備える。
【００２４】
また、シミュレーション装置１０は、ＦＡ用ネットワーク（主通信手段）２６と、汎用ネットワーク（副通信手段）２８とを有する。ＦＡ用ネットワーク２６は、擬似コントローラ１２ａ、１２ｂ、１２ｃと、シーケンサ１４とを接続しており、これらの機器間のデータ通信を行う。汎用ネットワーク２８は、擬似コントローラ１２ａ、１２ｂ、１２ｃと、シーケンサ１４と、擬似操作盤１６と、ビューワ１８と、オフラインティーチングコンピュータ２０と、オブジェクトコンピュータ２４とが接続されており、これらの機器間のデータ通信を行う。擬似操作盤１６とシーケンサ１４とは専用の通信手段２５で接続されている。擬似操作盤１６とシーケンサ１４とは、ＦＡ用ネットワーク２６または汎用ネットワーク２８により通信を行うようにしてもよい。
【００２５】
擬似コントローラ１２ａ、１２ｂ、１２ｃ、シーケンサ１４、擬似操作盤１６およびＦＡ用ネットワーク２６は、図１５における実際のロボットコントローラ５１２、５１４、５１６、シーケンサ５０８、操作盤５１８およびネットワーク５１０にそれぞれ相当する。
【００２６】
ロボットＲ１、Ｒ２、Ｒ３およびロボット５０２、５０４、５０６は、例えば、図３に示すような産業用の多関節ロボットであり、ベース部３０と、ベース部３０を基準にしてロボットの先端に向かって順に第１アーム３２、第２アーム３４および第３アーム３６と、第３アーム３６の先端に設けられた溶接ガン３８とを有する。第１アーム３２は、ベース部３０に対して水平および垂直に回動可能な軸Ｊ１、Ｊ２によって回動可能である。第２アーム３４は第１アーム３２と軸Ｊ３で回動可能に連結されている。第２アーム３４は軸Ｊ４によって捻れ回転が可能になっている。第３アーム３６は第２アーム３４と軸Ｊ５で回動可能に連結されている。第３アーム３６は軸Ｊ６によって捻れ回転が可能になっている。また、作業内容によっては、ロボットＲ１、Ｒ２、Ｒ３には付加軸が設けられることがある。例えば、第３アーム３６の先端と溶接ガン３８との間に回転または伸縮自在な第７の軸（図示せず）を設ける場合がある。
【００２７】
なお、ロボットＲ１、Ｒ２、Ｒ３およびロボット５０２、５０４、５０６は、溶接用ロボットに限らず、組み立て用ロボットや塗装用ロボット等でもよい。
【００２８】
図４に示すように、擬似コントローラ１２ａ、１２ｂ、１２ｃは、プログラム実行部５０と、擬似動作部５２と、入出力部５４とを有しており、ロボットコントローラ５１２、５１４、５１６（図１５参照）と類似の作用をする。
【００２９】
プログラム実行部５０は、制御処理部５６と記憶部５８とを有し、オフラインティーチングコンピュータ２０から供給されるティーチングデータを記憶部５８に記憶し、制御処理部５６がティーチングデータに基づいてロボットＲ１、Ｒ２、Ｒ３および溶接ガン３８の移動指令値を生成する。生成した移動指令値は、ロボットの各軸Ｊ１〜Ｊ６および溶接ガン３８の開度の値として擬似動作部５２に供給される。
【００３０】
制御処理部５６は、先読み機能部６０とインターロック判断部６２とを有する。先読み機能部６０は、ティーチングデータに含まれる教示点Ｔ（図８参照）が空間上で近接する箇所については、ロボットＲ１、Ｒ２、Ｒ３の動作に先行して移動指令値の生成を行う。これにより、ロボットＲ１、Ｒ２、Ｒ３は滑らかな動作が可能になる。インターロック判断部６２は、シーケンサ１４と情報の送受信を行いながらインターロックの要否を判断する。インターロックを行う必要がある場合には、擬似動作部５２に対する指令値をロックする。インターロック判断部６２は、判断の結果を入出力部５４にも供給する。インターロックの処理に関するシーケンサ１４の詳細な作用およびインターロック判断部６２の詳細な作用については後述する。
【００３１】
先読み機能部６０およびインターロック判断部６２の機能は、実際のロボットコントローラ５１２、５１４、５１６が備えている機能と同じものである。
【００３２】
擬似動作部５２は、プログラム実行部５０から供給された各軸Ｊ１〜Ｊ６の移動指令値および溶接ガン３８の移動指令値に基づいてロボットＲ１、Ｒ２、Ｒ３の姿勢を推定する。推定によって求めた結果は、シミュレーションデータとしてプログラム実行部５０および入出力部５４を経由してビューワ１８に供給される。
【００３３】
擬似動作部５２は、ロボットＲ１、Ｒ２、Ｒ３の各軸Ｊ１〜Ｊ６の動作を推定するロボット擬似動作部６４と、付加軸の動作を推定する付加軸擬似動作部６６とを有する。
【００３４】
シミュレーションデータは、１組のデータ列Ｍ＝（θ１、θ２、θ３、θ４、θ５、θ６、θ７）で表される。このうち、データθ１〜θ６は、ロボットＲ１、Ｒ２、Ｒ３の各軸Ｊ１〜Ｊ６の角度（動作量）であり、ロボット擬似動作部６４によって求められる。データθ７は付加軸の動作量であり、付加軸擬似動作部６６によって求められる。
【００３５】
ロボット擬似動作部６４は、指令値に対する各軸Ｊ１〜Ｊ６の機械的な追従遅れ時間を推定するロボット追従遅れ時間推定部７０と、ティーチングデータにより予定された動作時間に対する到着時間の遅れを推定するロボット到着遅れ時間推定部７２とを有する。
【００３６】
付加軸擬似動作部６６は、付加軸の機械的な追従遅れ時間を推定する付加軸追従遅れ時間推定部７４と、ティーチングデータによる予定された動作時間に対する付加軸の到着時間の遅れを推定する付加軸到着遅れ時間推定部７６と、付加軸の電流値を検出してトルクの遅れ時間を推定する付加軸トルク到着遅れ時間推定部７８とを有する。付加軸トルク到着遅れ時間推定部７８は、付加軸の機械的な撓み時間を推定する撓み時間推定部８０と、トルクが安定するまでの時間を推定するトルク安定時間推定部８２とを有する。
【００３７】
ロボット擬似動作部６４には、付加軸トルク到着遅れ時間推定部７８に相当する機能が設けられていないが、付加軸以外の関節部、つまり軸Ｊ１〜Ｊ６については先読み機能部６０により同様の推定が可能である。
【００３８】
入出力部５４は、ＦＡ用ネットワーク２６に対する入出力の信号や、プログラム実行部５０と擬似動作部５２との間の信号を検出する情報取得機能部８４と、汎用ネットワーク２８を介してビューワ１８にシミュレーションデータと入出力データとを送信するシミュレーションデータ送出部８６とを有する。
【００３９】
入出力データは、擬似コントローラ１２ａ、１２ｂ、１２ｃとシーケンサ１４との間で送受信されるインターロック信号と、その他の制御データとから構成される。インターロック信号は、擬似コントローラ１２ａ、１２ｂ、１２ｃからシーケンサ１４に送信されるインターロック設定信号、インターロック解除信号と、シーケンサ１４から擬似コントローラ１２ａ、１２ｂ、１２ｃへ送信するアンサ信号等を含む。その他の制御データとしては、例えば、溶接ガン３８または付加軸との間で送受信されるデータや、エラー信号や、サーボオン信号、サーボオフ信号等が挙げられる。入出力データを構成する各信号は、オン・オフで表される１ビットの信号である。従って、例えば、入出力データを構成する信号が１２８点（１６バイト）程度であれば汎用ネットワーク２８により高速に伝送可能である。
【００４０】
入出力部５４は、汎用ネットワーク２８とのインターフェースである第１ポート８８、ＦＡ用ネットワーク２６とのインターフェースである第２ポート９０に接続されている。
【００４１】
擬似コントローラ１２ａ、１２ｂ、１２ｃにおける第２ポート９０や、プログラム実行部５０は実際のロボットコントローラ５１２、５１４、５１６におけるポートやプログラム実行部と略同仕様に構成されている。
【００４２】
図２に戻り、シーケンサ１４は、シーケンス処理により擬似コントローラ１２ａ、１２ｂ、１２ｃの動作を制御するものであり、実際のシーケンサ５０８と同仕様のハードウェアが使用される。
【００４３】
シーケンサ１４は、外部から供給されたラダープログラムを実行可能なシーケンスプログラムに変換するための条件が記述されたプログラム生成用ファイル９２と、シーケンスプログラムのサイクル時間の設定を行う処理時間設定部９４と、生成されたシーケンスプログラムを実行する動作処理機能部９６とを有する。
【００４４】
処理時間設定部９４は、入出力処理時間設定部９８と内部処理時間設定部１００とを有し、サイクル時間を実際のシーケンサ５０８と同じとなるようにウェイト時間等が設定される。また、シーケンサ１４はＦＡ用ネットワーク２６に対して入出力を行う入出力部２７を有する。
【００４５】
シーケンサ１４で実行されるシーケンスプログラムはシーケンサ５０８と基本的に同一のものが用いられている。従って、例えば、シーケンサ１４は実際のロボットコントローラ５１２、５１４、５１６を制御することも可能である。
【００４６】
シーケンサ１４は、ＦＡ用ネットワーク２６を介して各擬似コントローラ１２ａ、１２ｂ、１２ｃからロボットＲ１、Ｒ２、Ｒ３の干渉領域に対するインターロック設定信号またはインターロック解除信号を受け取り、全てのロボットＲ１、Ｒ２、Ｒ３の状態を把握して干渉が発生しないことを確認する。干渉が発生しないと判断した場合、進行許可を示すアンサ信号を返送する。
【００４７】
擬似操作盤１６は、外部から供給される画面生成用設定ファイル１０２に基づいてモニタ画面１６ａの画面設定を行い、擬似操作処理部１０４が実際の操作盤５１８（図１５参照）の作用を代替する。擬似操作処理部１０４は、入力および表示を行う入力・表示機能部１０６と、シミュレーションの開始から終了までの時間を計測する時間測定機能部１０８とを有する。入力・表示機能部１０６には、汎用のキーボード、マウスおよびモニタを用いることができる。擬似操作盤１６のモニタ画面１６ａはタッチパネル式でもよい。時間測定機能部１０８は、オペレーティングシステムが備えるタイマ機能を用いることができる。実際の操作盤５１８が移動可能である場合には、操作盤５１８自体を汎用ネットワーク２８に接続して擬似操作盤１６として用いてもよい。また、擬似操作盤１６は、所定の操作によってシミュレーションのスタート信号（操作信号）をシーケンサ１４に送信することができる。
【００４８】
擬似操作盤１６のモニタ画面１６ａには、図５に示すように、マウスにより操作可能なウィンドウ形式の操作画面１０９が表示される。この操作画面１０９において、第１インディケータ１０９ａは入出力データに基づいてシミュレーションの実況状況を示す領域である。サイクルタイム表示テーブル１０９ｂは時間測定機能部１０８により計測したシミュレーション時間を表示する領域である。サイクルタイム表示テーブル１０９ｂに表示されるシミュレーション時間は所定の記録部に記録される。機種コンボボックス１０９ｃはロボットＲ１、Ｒ２、Ｒ３の機種を選定および表示する領域である。タグパネル１０９ｄはアラームおよびその説明を表示する領域である。第１モード選択スイッチ部１０９ｅおよび第２モード選択スイッチ部１０９ｆはそれぞれシミュレーションの動作モードを選択する領域である。
【００４９】
なお、シーケンサ１４には、一般的に計時機能が設けられているので、この計時機能によって計測したシミュレーション時間をサイクルタイム表示テーブル１０９ｂに表示するようにしてもよい。
【００５０】
また、操作画面１０９における表示は、他の適当な方法で行ってもよいことはもちろんであり、例えば、文字列で表示される情報をシンボルや色の変化によって示すようにしてもよい。
【００５１】
第２インディケータ１０９ｇはロボットＲ１、Ｒ２、Ｒ３のシミュレーション状況を示す領域である。第２インディケータ１０９ｇにおいて、ロボットＲ１、Ｒ２、Ｒ３相互間におけるインターロックの状況は矢印で示される。図５では、ロボットＲ２の動作により、ロボットＲ１が待機している状態を示す。また、異常が発生した場合には対応するロボットＲ１、Ｒ２、Ｒ３を示すボックスの色が変更される。また、利用されない予備のロボットについては「＊＊＊」の文字列が表示される。ロボット選定スイッチ部１０９ｈは、シミュレーションの実行対象となるロボットＲ１、Ｒ２、Ｒ３を選択する領域である。
【００５２】
図２に戻り、ビューワ１８は、シミュレーションの結果をリアルタイムに表示するコンピュータであり、ビューワデータ１１０と画像変換部１１２とを有する。ビューワデータ１１０は、各ロボットＲ１、Ｒ２、Ｒ３の関節構成や寸法および設置位置等の情報である。ビューワデータ１１０は、外部から供給可能であり、書き換え可能である。
【００５３】
画像変換部１１２は、関節角度画像変換機能部１１４とＩ・Ｏ情報画像変換機能部１１６とを有する。関節角度画像変換機能部１１４は、各擬似コントローラ１２ａ、１２ｂ、１２ｃから供給されるシミュレーションデータとビューワデータ１１０とに基づいて各ロボットＲ１、Ｒ２、Ｒ３をソリッドモデルによって３次元表示する。
【００５４】
Ｉ・Ｏ情報画像変換機能部１１６は、各擬似コントローラ１２ａ、１２ｂ、１２ｃから供給される入出力データの内容を表示する。また、Ｉ・Ｏ情報画像変換機能部１１６は、供給された入出力データを一覧形式で表示したり、入出力データのうち所定の信号に基づいてソリッドモデルの表示色を変更する機能をもつ。例えば、エラー信号やサーボオン信号が発生したときには、対応するロボットＲ１、Ｒ２、Ｒ３または対応する箇所の色を変更または点滅表示させる。さらに、インターロック信号に基づいて、ロボットＲ１、Ｒ２、Ｒ３のインターロック状態を表示する。つまり、どのロボットがどの干渉領域に入っていて、どのロボットがインターロックによる動作停止状態であるかをグラフィック形式または文字情報形式として表示する。
【００５５】
ビューワ１８は、シミュレーションの結果表示を行うものであり、またロボットＲ１、Ｒ２、Ｒ３同士の干渉回避処理や動作プログラムの実行または解析等を行うことがないので汎用の３次元ＣＡＤシステムを適用することができる。ビューワ１８は、３次元ＣＡＤの一般的な機能、例えば、視点位置の変更、拡大・縮小表示等の機能が利用可能である。
【００５６】
オフラインティーチングコンピュータ２０は、ロボットＲ１、Ｒ２、Ｒ３のティーチングデータをオフラインで作成するものである。オフラインティーチングコンピュータ２０は、各ロボットＲ１、Ｒ２、Ｒ３を３次元表示させながら、一連の動作を順番に教示点データとして設定することができる。
【００５７】
オフラインティーチングコンピュータ２０は、必ずしも汎用ネットワーク２８に接続されている必要はない。オフラインティーチングコンピュータ２０で作成されたティーチングデータは、他の通信手段または汎用の記録媒体を介して擬似コントローラ１２ａ、１２ｂ、１２ｃにロードしてもよい。
【００５８】
次に、このように構成されるシミュレーション装置１０を用いてシミュレーションを行う方法について図６を参照しながら説明する。
【００５９】
まず、ステップＳ１において、オフラインティーチングコンピュータ２０において各ロボットＲ１、Ｒ２、Ｒ３のティーチングデータを作成した後、このティーチングデータを各擬似コントローラ１２ａ、１２ｂ、１２ｃへロードする。また、シーケンサ１４には対応するラダープログラムを供給し、プログラム生成用ファイル９２を参照しながらシーケンスプログラムを生成する。ビューワ１８には、適応するビューワデータ１１０を供給する。擬似操作盤１６には、画面生成用設定ファイル１０２を供給する。
【００６０】
次に、ステップＳ２において、シミュレーションを実行するための初期処理を行う。シーケンサ１４における初期処理では、生成したシーケンスプログラムに対して処理時間設定部９４により動作周期の設定を行う。
【００６１】
擬似操作盤１６における初期処理では、供給された画面生成用設定ファイル１０２によりモニタ画面１６ａの設定と入出力条件の設定とを行う。
【００６２】
ビューワ１８における初期処理では、供給されたビューワデータ１１０により各ロボットＲ１、Ｒ２、Ｒ３および周辺設備に関するデータを認識し、３次元描画の設定を行う。
【００６３】
次に、ステップＳ３において、擬似操作盤１６の操作画面１０９（図５参照）を操作して、シミュレーション動作の開始指示命令を各擬似コントローラ１２ａ、１２ｂ、１２ｃおよびシーケンサ１４に送信する。このとき、擬似操作盤１６の時間測定機能部１０８（図２参照）は、シミュレーション時間の計測を開始する。
【００６４】
また、操作画面１０９の機種コンボボックス１０９ｃで生産機種を選定する。この生産機種に関する情報は各擬似コントローラ１２ａ、１２ｂ、１２ｃに送信される。
【００６５】
各擬似コントローラ１２ａ、１２ｂ、１２ｃのプログラム実行部５０は、記憶部５８に格納したティーチングデータのうち、指定の生産機種に対応したデータに従って同時に動作を開始する。また、シーケンサ１４は格納したシーケンスプログラムを実行する。
【００６６】
次に、ステップＳ４において、シーケンサ１４、擬似コントローラ１２ａ、１２ｂ、１２ｃおよびビューワ１８がそれぞれ連動しながらシミュレーション動作を行う。
【００６７】
次に、ステップＳ５において、擬似コントローラ１２ａ、１２ｂ、１２ｃは、格納したティーチングデータに基づいた処理が終了すると、シーケンサ１４に終了を示す信号を送信する。シーケンサ１４は、３台の擬似コントローラ１２ａ、１２ｂ、１２ｃからそれぞれ終了信号を受信した後、擬似操作盤１６およびビューワ１８にシミュレーションの終了を示す信号（操作信号）を送信する。
【００６８】
この信号により、擬似操作盤１６および擬似コントローラ１２ａ、１２ｂ、１２ｃはシミュレーションに対応した処理を終了し、擬似操作盤１６の時間測定機能部１０８はシミュレーションに要した時間を操作画面１０９のサイクルタイム表示テーブル１０９ｂ（図５参照）に表示する。
【００６９】
次に、シミュレーション実行中における擬似コントローラ１２ａ、１２ｂ、１２ｃの処理について図７および図８を参照しながら説明する。
【００７０】
図７のステップＳ１０１において、擬似コントローラ１２ａ、１２ｂ、１２ｃのプログラム実行部５０は、記憶部５８に格納されたティーチングデータに基づいてロボットＲの各軸Ｊ１〜Ｊ６に対する指令値を生成して擬似動作部５２に供給する。
【００７１】
このとき、先読み機能部６０の作用によって、例えば、図８に示すように、障害物１５０を回避するために多数の教示点Ｔが近接する箇所に設定されている動作経路１５２に沿ってロボットＲが動作する場合に、実機の場合と同様に、各教示点ＴにおいてロボットＲ１、Ｒ２、Ｒ３が停止したり動作が不連続になることがなく、溶接点Ｐにスムーズに到達することができる。
【００７２】
ステップＳ１０２において、擬似動作部５２では、ロボットＲ１、Ｒ２、Ｒ３の姿勢を推定し、シミュレーションデータつまりデータ列Ｍを算出する。このとき、ロボットＲ１、Ｒ２、Ｒ３の動作は、指令値に対して多少の遅れが生じるが、この遅れの量はロボット擬似動作部６４によって推定できるので、実際のロボット５０２、５０４、５０６（図１５参照）を動作させる場合と同様の姿勢が算出可能である。
【００７３】
次に、ステップＳ１０３において、算出したシミュレーションデータをプログラム実行部５０に供給する。プログラム実行部５０は、シミュレーションデータを入出力部５４を介してビューワ１８に所定の微小周期毎に供給する。これらのシミュレーションデータは、擬似動作部５２から入出力部５４へ直接的に供給してもよい。
【００７４】
また、プログラム実行部５０は、シーケンサ１４との間においてＦＡ用ネットワーク２６を介して送受信されるインターロックに関する信号や溶接ガン３８に対する信号およびエラー信号等の入出力データを所定の微小周期毎に供給する。
【００７５】
このとき、プログラム実行部５０は、ビューワ１８がシミュレーションデータまたは入出力データを受信したか否かに拘わらずにシミュレーション処理を継続する。従って、仮にシミュレーションデータまたは入出力データの送信に長時間を要した場合でも、このことによってシミュレーションの動作時間が影響を受けることがない。
【００７６】
また、プログラム実行部５０は、ビューワ１８に送信するデータ、つまり、シミュレーションデータおよび入出力データをログデータとして記憶部５８に記憶させる。
【００７７】
ステップＳ１０４においては、ティーチングデータに基づくロボットＲ１、Ｒ２、Ｒ３の動作が終了したか否かを判断し、シミュレーション動作終了時にはステップＳ１０５へ移り、動作未終了時にはステップＳ１０１へ戻る。
【００７８】
ステップＳ１０５においては、シーケンサ１４に終了信号を送出した後に、シミュレーション動作を終了する。また、必要に応じて、記憶したログデータをビューワ１８またはオフラインティーチングコンピュータ２０に送信する。このログデータは、シミュレーションの動作解析に用いることができる。
【００７９】
次に、シミュレーションを実行中のビューワ１８の処理内容について図９を参照しながら説明する。
【００８０】
図９のステップＳ２０１において、ビューワ１８は、擬似コントローラ１２ａ、１２ｂ、１２ｃからそれぞれシミュレーションデータを受信し、このシミュレーションデータとビューワデータ１１０とに基づいて、関節角度画像変換機能部１１４により各ロボットＲ１、Ｒ２、Ｒ３の姿勢を演算する。受信したシミュレーションデータは時系列形式に記憶する。
【００８１】
次に、ステップＳ２０２において、各ロボットＲの姿勢をモニタ画面１８ａ上にソリッドモデルにより３次元表示する。表示の形式は、ワイヤフレーム形式や、数値列による情報表示等でもよい。
【００８２】
次に、ステップＳ２０３において、擬似コントローラ１２ａ、１２ｂ、１２ｃからそれぞれ入出力データを受信して、時系列形式に記憶する。
【００８３】
次に、ステップＳ２０４において、入出力データに基づく情報をモニタ画面１８ａ上にグラフィック形式または文字情報形式で表示する。
【００８４】
次いで、ステップＳ２０５において、シミュレーションが終了したか否かを判断する。すなわち、擬似操作盤１６から終了信号を受信した場合には、次のステップＳ２０６へ移り、終了信号が検出されない場合にはステップＳ２０１に戻る。
【００８５】
ステップＳ２０６においては、記憶したシミュレーションデータおよび入出力データに基づいて各ロボットＲ１、Ｒ２、Ｒ３の動作のタイミングチャートを生成する。このタイミングチャートは、シミュレーションの開始から終了までの間における動作、溶接、インターロックによる待機、エラー発生等の各ロボットＲ１、Ｒ２、Ｒ３の状態を時系列的に表す。生成したタイミングチャートは、モニタ画面１８ａ上に表示するとともに所定の記憶部に記憶する。
【００８６】
このステップＳ２０１〜Ｓ２０５で形成されるループは、微小時間で実行されるので、モニタ画面１８ａには、ロボットＲ１、Ｒ２、Ｒ３の姿勢および入出力データに基づく情報がリアルタイムで表示される。
【００８７】
次に、インターロック処理に関するシーケンサ１４およびインターロック判断部６２の詳細な作用について図１０〜図１４を参照しながら説明する。
【００８８】
図１０および図１１に示すように、ロボットＲ１とロボットＲ２とが干渉する領域が２つ存在し、それぞれ干渉領域Ａ１、Ａ２と設定されているとき、擬似コントローラ１２ａまたは１２ｂがインターロック設定信号ＩＬ１を送信することによって干渉領域Ａ１に進入することを示し、インターロック解除信号ＩＬ２を送信することによって干渉領域Ａ１から退出したことを示す。また、インターロック設定信号ＩＬ３を送信することにより干渉領域Ａ２に進入することを示し、インターロック解除信号ＩＬ４を送信することにより干渉領域Ａ２から退出することを示す。干渉領域Ａ１およびＡ２は、１つの干渉領域を２つに分割したものでもよい。
【００８９】
同様に、ロボットＲ２とロボットＲ３とが干渉する領域が干渉領域Ａ３として設定されているとき、インターロック信号ＩＬ５、インターロック解除信号ＩＬ６により、それぞれ干渉領域Ａ３への進入および退出を示すことができる。
【００９０】
次に、擬似コントローラ１２ａのインターロック判断部６２（図４参照）の処理内容について図１２を参照しながら説明する。擬似コントローラ１２ａの処理を例として説明するが、擬似コントローラ１２ｂ、１２ｃの処理も同様である。
【００９１】
図１２のステップＳ３０１において、インターロック判断部６２は、シーケンサ１４からのスタート信号の受信を待つ。スタート信号の受信を確認した後、次のステップＳ３０２へ移る。
【００９２】
ステップＳ３０２において、ロボットＲ１の動作を開始するために、プログラム実行部５０にロボットＲ１の動作開始の指令を与える。これにより、プログラム実行部５０は、ティーチングデータに基づいて指令値の計算を開始する。
【００９３】
次に、ステップＳ３０３において、ロボットＲ１が予め設定された干渉領域へ進入するか否かを監視する。干渉領域に進入する際にはステップＳ３０４へ移り、干渉領域に進入することがない場合にはステップＳ３０７へ移る。
【００９４】
ステップＳ３０４においては、インターロック設定信号を入出力部５４およびＦＡ用ネットワーク２６を介してシーケンサ１４に発信する。例えば、ロボットＲ１が、干渉領域Ａ１に進入する際には、インターロック設定信号ＩＬ１（図１１参照）を発信する。
【００９５】
次に、ステップＳ３０５において、シーケンサ１４からのアンサ信号の受信を待つ。アンサ信号を受信した際には次のステップＳ３０７へ移る。アンサ信号を受信できない場合には、ステップＳ３０６においてロボットＲ１の動作を停止させてステップＳ３０５に戻る。
【００９６】
ステップＳ３０７においては、進入した干渉領域より退出したか否かを判断し、干渉領域から退出した際には次のステップＳ３０９へ移る。干渉領域に入っている最中には、ステップＳ３０８において、ロボットＲ１の動作を継続してステップＳ３０７に戻る。
【００９７】
ステップＳ３０９においては、インターロック解除信号（例えば、ＩＬ２）をシーケンサ１４に送信する。
【００９８】
次に、ステップＳ３１０においては、ロボットＲ１の動作が終了したか否かを判断する。動作が終了した場合には、ステップＳ３１１において、プログラム実行部５０に動作の終了を指示し、動作を継続する場合にはステップＳ３０３へ戻る。
【００９９】
次に、シーケンサ１４によるインターロック処理について図１３を参照しながら説明する。
【０１００】
まず、ステップＳ４０１において、シーケンサ１４は、擬似操作盤１６からシミュレーションの開始の信号を検出した後、各擬似コントローラ１２ａ、１２ｂ、１２ｃへスタート信号を発信する。
【０１０１】
次に、ステップＳ４０２において、擬似コントローラ１２ａ、１２ｂ、１２ｃから発信されたインターロック設定信号の受信を確認する。インターロック設定信号を受信した際には次のステップＳ４０３に移り、インターロック設定信号が検出されない場合にはステップＳ４０６へ移る。
【０１０２】
ステップＳ４０３においては、受信したインターロック設定信号に対応する干渉領域の内部フラグの状態を確認する。この内部フラグがオフである場合には次のステップＳ４０４へ移り、内部フラグがオンである場合にはステップＳ４０６へ移る。
【０１０３】
ステップＳ４０４においては、インターロック設定信号の送信元に対してアンサ信号を発信する。つまり、ロボットＲ１、Ｒ２、Ｒ３同士が干渉することがないと判断して発信元の擬似コントローラ１２ａ、１２ｂ、１２ｃに対してロボットＲ１、Ｒ２、Ｒ３の干渉領域への進入を許可し、アンサ信号を発信する。
【０１０４】
次に、ステップＳ４０５において、干渉領域に対応する内部フラグをオンにする。
【０１０５】
次に、ステップＳ４０６において、インターロック解除信号の受信を確認する。インターロック解除信号を受信した際には、次のステップＳ４０７へ移り、インターロック解除信号が検出されない場合にはステップＳ４０９へ移る。
【０１０６】
次に、ステップＳ４０８において、受信したインターロック解除信号に対する干渉領域の内部フラグをオフにする。
【０１０７】
次に、ステップＳ４０９において、処理時間設定部９４（図２参照）によって設定されたサイクル時間ｃ（図１４参照）が経過するまで待機する。所定のサイクル時間ｃが経過した後、ステップＳ４１０へ移る。
【０１０８】
次に、ステップＳ４１０では、シーケンスプログラムの所定の終了条件を確認し、続行する場合にはステップＳ４０２へ戻り、終了条件が成り立つときには、擬似操作盤１６にシミュレーションの終了を示す信号を発信して（ステップＳ４１１）、シーケンスプログラムの動作を終了する。この信号を受信した擬似操作盤１６では、時間測定機能部１０８による計時を終了し、シミュレーションに要した時間をサイクルタイム表示テーブル１０９ｂ（図５参照）に表示する。
【０１０９】
擬似コントローラ１２ａのインターロック判断部６２およびシーケンサ１４におけるインターロック処理に係る信号の流れは図１４のタイミングチャートのように表すことができる。すなわち、ロボットＲ１が干渉領域に進入するときには擬似コントローラ１２ａのプログラム実行部５０は、インターロック設定信号をラダー処理部１３０に供給する。この信号はラダー処理部１３０および入出力部５４を介してＦＡ用ネットワーク２６に供給される。インターロック設定信号は、ＦＡ用ネットワーク２６を介してシーケンサ１４に供給され、シーケンサ１４の入出力部およびラダー処理部１３２を通して動作処理機能部９６に供給される。
【０１１０】
ラダー処理部１３０、入出力部５４、ＦＡ用ネットワーク２６、入出力部２７およびラダー処理部１３２はそれぞれ固有のサイクルで動作しているので、これらのサイクル周期の影響により転送の遅れが生じる。従って、インターロック設定信号を送信した時間からアンサ信号を受け取るまでにインターロック処理時間ｔが経過する。
【０１１１】
ところで、擬似コントローラ１２ａにおけるラダー処理部１３０、入出力部５４は、実際のロボットコントローラ５１２におけるラダー処理部および入出力部と同仕様であるから、この部分における信号の伝達遅れ時間は、実機の場合と同じになる。また、ＦＡ用ネットワーク２６は、実際のネットワーク５１０と同じ仕様のものを使用しているので、このＦＡ用ネットワーク２６による信号伝送時間は実機の場合と同じになる。さらに、シーケンサ１４は、実際のシーケンサ５０８と同じハードウェアのものを用いているので、入出力部２７およびラダー処理部１３２における信号の伝達遅れ時間は、実機の場合と同じになる。さらにまた、遅延時間は、処理時間設定部９４（図２参照）によって、サイクル時間ｃが実際のシーケンサ５０８の動作周期と同一となるように設定されている。
【０１１２】
従って、これらの時間の総和であるインターロック処理時間ｔは、実機の場合と同じとなり、インターロックの処理を行うことによるシミュレーション時間の誤差は非常に小さい。
【０１１３】
上述したように、本実施の形態に係るシミュレーション装置１０は、ロボットコントローラ５１２、５１４、５１６と類似の機能をもつ擬似コントローラ１２ａ、１２ｂ、１２ｃと、シーケンサ１４と、ＦＡ用ネットワーク２６とを用いてシミュレーションを行うようにしている。シーケンサ１４およびＦＡ用ネットワーク２６は実際のシステム５００（図１５参照）におけるシーケンサ５０８およびネットワーク５１０と同仕様のものを使用しているので、ロボットＲ１、Ｒ２、Ｒ３の動作を高い位置精度、動作時間精度で実現することができる。従って、システム５００の工程における処理時間を正確に検証することができる。ビューワ１８のモニタ画面１８ａに表示される画像は、３次元表示でしかもリアルタイムの表示であることから非常に現実的な描画であり、実機に則した動作を把握することができる。
【０１１４】
また、シーケンサ１４は、実際のシーケンサ５０８と同じサイクル時間ｃとなるように処理時間設定部９４によって設定されている。また、ＦＡ用ネットワーク２６と、擬似コントローラ１２ａ、１２ｂ、１２ｃにおける入出力部５４と、シーケンサ１４における入出力部２７等が実機と同じ構成になっているので、擬似コントローラ１２ａ、１２ｂ、１２ｃとシーケンサ１４との間で行われるインターロックの確認処理が、実際のシステム５００による場合と同じインターロック処理時間ｔ（図１４参照）となる。
【０１１５】
さらに、実際のシステム５００におけるロボットコントローラ５１２、５１４、５１６の数に応じた擬似コントローラ１２ａ、１２ｂ、１２ｃを設けるようにしているので、ロボットおよびロボットコントローラの数が増減する場合には、擬似コントローラの数も合わせて増減させて対応することができる。従って、ロボットおよびロボットコントローラの数によって、シミュレーションの精度が低下するということがない。
【０１１６】
各擬似コントローラ１２ａ、１２ｂ、１２ｃは、ロボットＲ１、Ｒ２、Ｒ３が干渉領域に進入する際に、ＦＡ用ネットワーク２６を介して、シーケンサ１４から進入を許可するアンサ信号を受信した後にロボットＲ１、Ｒ２、Ｒ３を干渉領域へ進入させるようにしているので、ロボットＲ１、Ｒ２、Ｒ３同士の干渉を確実に回避することができる。
【０１１７】
なお、図７、図９、図１２および図１３で示した各処理手順は、必ずしもその順番で実行される必要はなく、例えば、マルチタスク処理によって複数の処理を同時並列的に行うようにしてもよい。また、例えば、所定の信号を検出し次第、所定のステップを割り込み形式で実行してもよい。
【０１１８】
本発明に係るシミュレーション装置は、上述の実施の形態に限らず、本発明の要旨を逸脱することなく、種々の構成を採り得ることはもちろんである。
【０１１９】
【発明の効果】
以上説明したように、本発明に係るシミュレーション装置によれば、複数のロボットの動作について、各ロボットコントローラとシーケンサとの間における動作確認手段をも含めたシステムを対象とし、高精度の動作時間でシミュレーションするという効果を達成することができる。
【図面の簡単な説明】
【図１】本実施の形態に係るシミュレーション装置を構成する機器の接続図である。
【図２】本実施の形態に係るシミュレーション装置のブロック図である。
【図３】シミュレーション対象のロボットの斜視図である。
【図４】擬似コントローラの内部ブロック図である。
【図５】擬似操作盤のモニタ画面上に表示される操作画面である。
【図６】シミュレーションの手順を示すフローチャートである。
【図７】擬似コントローラの処理内容を示すフローチャートである。
【図８】ロボットがティーチングデータに基づいて動作する動作経路を示す模式図である。
【図９】ビューワの処理内容を示すフローチャートである。
【図１０】ロボットと干渉領域とを示す模式平面図である。
【図１１】各ロボットと干渉領域に対応するインターロック設定信号およびインターロック解除信号の関係を示すテーブルである。
【図１２】擬似コントローラにおけるインターロック判断部の処理内容を示すフローチャートである。
【図１３】シーケンサ処理を示すフローチャートである。
【図１４】擬似コントローラとシーケンサとの間における信号の流れを示すタイミングチャートである。
【図１５】実際のシステムの概略ブロック図である。
【符号の説明】
１０…シミュレーション装置
１２ａ、１２ｂ、１２ｃ…擬似コントローラ
１４、５０８…シーケンサ      １６…擬似操作盤
１８…ビューワ                ２０…オフラインティーチングコンピュータ
２６…ＦＡ用ネットワーク      ２８…汎用ネットワーク
３８…溶接ガン                ５０…プログラム実行部
５２…擬似動作部              ５４…入出力部
５６…制御処理部              ５８…記憶部
６０…先読み機能部            ６２…インターロック判断部
６４…ロボット擬似動作部      ８４…情報取得機能部
８６…シミュレーションデータ送出部
８８、９０…ポート            ９４…処理時間設定部
９６…動作処理機能部          ９８…入出力処理時間設定部
１００…内部処理時間設定部    １０２…画面生成用設定ファイル
１０４…擬似操作処理部        １０６…入力・表示機能部
１０８…時間測定機能部        １１０…ビューワデータ
１１２…画像変換部            １１４…関節角度画像変換機能部
１１６…Ｉ・Ｏ情報画像変換機能部
５０２、５０４、５０６、Ｒ１、Ｒ２、Ｒ３…ロボット
【図１】
2004148434.tif 000003
【図２】
2004148434.tif 000004
【図３】
2004148434.tif 000005
【図４】
2004148434.tif 000006
【図５】
2004148434.tif 000007
【図６】
2004148434.tif 000008
【図７】
2004148434.tif 000009
【図８】
2004148434.tif 000010
【図９】
2004148434.tif 000011
【図１０】
2004148434.tif 000012
【図１１】
2004148434.tif 000013
【図１２】
2004148434.tif 000014
【図１３】
2004148434.tif 000015
【図１４】
2004148434.tif 000016
【図１５】
2004148434.tif 000017