JP2004148434A - Simulation device - Google Patents

Simulation device Download PDF

Info

Publication number
JP2004148434A
JP2004148434A JP2002315993A JP2002315993A JP2004148434A JP 2004148434 A JP2004148434 A JP 2004148434A JP 2002315993 A JP2002315993 A JP 2002315993A JP 2002315993 A JP2002315993 A JP 2002315993A JP 2004148434 A JP2004148434 A JP 2004148434A
Authority
JP
Japan
Prior art keywords
pseudo
sequencer
simulation
unit
robot
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2002315993A
Other languages
Japanese (ja)
Other versions
JP3927482B2 (en
Inventor
Hiroshi Ichinomiya
博志 一ノ宮
Hiroki Hashimoto
裕樹 橋本
Shinji Imai
伸治 今井
Katsumi Takeishi
克己 武石
Original Assignee
Honda Motor Co Ltd
本田技研工業株式会社
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Honda Motor Co Ltd, 本田技研工業株式会社 filed Critical Honda Motor Co Ltd
Priority to JP2002315993A priority Critical patent/JP3927482B2/en
Publication of JP2004148434A publication Critical patent/JP2004148434A/en
Application granted granted Critical
Publication of JP3927482B2 publication Critical patent/JP3927482B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

<P>PROBLEM TO BE SOLVED: To simulate a system including an operation confirmation means between each robot controller and a sequencer relative to operations of a plurality of robots in highly accurate operating time. <P>SOLUTION: This simulation device 10 is provided with pseudo controllers 12a, 12b and 12c, the sequencer 14, a pseudo operation panel 16, a viewer 18 for displaying attitudes of the robots based on simulation data, a network 26 for FA and a general purpose network 28. The pseudo controllers 12a, 12band 12c are connected to the viewer 18 by the general purpose network 28. The sequencer 14 is connected to the pseudo controllers 12a, 12b and 12cby the network 26 for FA. The pseudo controllers 12a, 12b and 12c and the sequencer 14 perform a confirmation processing of interlock via the network 26 for FA. <P>COPYRIGHT: (C)2004,JPO

Description

【0001】
【発明の属する技術分野】
本発明は、多関節型のロボットを有するシステムの動作検証を行うシミュレーション装置に関し、特に、ロボットの動作制御を行うロボットコントローラと、該ロボットコントローラに通信手段を介して接続されたシーケンサを有するシステムの動作検証を行うシミュレーション装置に関する。
【0002】
【従来の技術】
自動車のプレス部品の接合工程等において、多関節型のロボットが利用されている。このようなロボットの動作教示は、3次元CAD等を用いることにより実機のロボットを不要とするオフラインによる教示、所謂オフラインティーチングが行われている。
【0003】
また、近時、生産性向上のために接合工程において複数のロボットを高密度に配置するようになっており、例えば、図15に示すような構成のシステム500が用いられている。このようなシステム500の場合、3台のロボット502、504、506の相互干渉を防止するために、シーケンサ(プログラマブルロジックコントローラとも呼ばれる)508がネットワーク510を介して各ロボットコントローラ512、514、516に接続されており、各ロボット502、504、506の状態を監視および制御している。また、シーケンサ508は操作盤518や搬送ライン(図示せず)等にも接続されて制御を行っている。システム500の基本的な動作は操作盤518によって作業員が操作できるようになっている。
【0004】
ロボット502、504、506には、例えば、6つの関節の動作により、6自由度を有する多関節型の産業用ロボットが用いられる。ロボット502、504、506の先端部には溶接ガン520が設けられており、この溶接ガン520によってワーク524の溶接を行うことができる。
【0005】
ところで、オフラインティーチングによる教示動作を行った後に、動作の検証を行うためにシミュレーションを行う必要があるが、このシミュレーションは実機に対して動作の位置精度と実行時間の精度が高いことが必要である。
【0006】
シミュレーションを行う方法として、複数の擬似コントローラにそれぞれのロボットの姿勢を記憶させておき、ビューワからの要求に応じて記憶した姿勢値を送信する方法(例えば、特許文献1参照)や、各ロボットプログラムの動作命令からロボットに対する指令を求め、シミュレータ用コンピュータではこれらの指令に基づいてシミュレーションを行うという方法(例えば、特許文献2参照)が提案されている。
【0007】
【特許文献1】
特許第3305451号公報(段落[0009]〜[0011])
【特許文献2】
特開2001−150373号公報(段落[0015]〜[0019])
【0008】
【発明が解決しようとする課題】
ロボット502、504、506を含むシステム500(図15参照)のシミュレーションを行うと、以下の理由により実際の動作時間と比較して誤差が発生することがある。
【0009】
すなわち、ロボット502、504、506を高密度に配置したシステム500では、相互干渉を回避するためにインターロック処理を行う必要があるが、このインターロック処理に起因する誤差が発生する。また、ロボットコントローラ512、514、516とシーケンサ508との間のネットワーク510による通信時間は考慮されていないために、この通信時間に基づく誤差が発生する。さらに、シーケンサ508は種類によって処理速度が異なるので、シーケンサ508を含めたシステム500のシミュレーションを1台のコンピュータ内で精度よく行うことは困難である。
【0010】
前記の特許文献1に開示された方法では、シミュレーション時に各ロボットコントローラがロボットの姿勢を記憶しておき、シミュレータからの要求を受けた時点で記憶値を送信するようにしているので、モニタ上に表示されるロボットの動作はリアルタイムではない。従って、ロボットの動作を把握しにくい。
【0011】
前記の特許文献2に開示された方法では、ロボットコントローラからは各ロボットプログラムに基づいて指令が送信されるので、シミュレータ用コンピュータではこれらの指令からロボットの姿勢を演算または推定を行う必要がある。従って、シミュレータ用コンピュータの処理が繁雑になる。
【0012】
さらに、特許文献1および2に開示された方法では、シーケンサや通信手段の作用は考慮されていないので、これらのシーケンサおよび通信手段に起因する誤差が発生する。
【0013】
さらにまた、シミュレーションの対象となるロボットの数が増減することにより、シミュレーションの実行時間および誤差が影響を受けることになる。
【0014】
本発明はこのような課題を考慮してなされたものであり、複数のロボットの動作について、各ロボットコントローラとシーケンサとの間における動作確認手段をも含めたシステムを対象とし、高精度の動作時間でシミュレーションを行うことを可能にするシミュレーション装置を提供することを目的とする。
【0015】
【課題を解決するための手段】
本発明に係るシミュレーション装置は、複数のロボットを有するシステムの動作検証を行うシミュレーション装置において、ロボット用のティーチングデータがそれぞれ格納され、該ティーチングデータに基づき、前記ロボットを示す仮想ロボットの動作制御を行うとともに、前記仮想ロボットの各関節の動作量を示すシミュレーションデータをそれぞれリアルタイムに生成する擬似コントローラと、少なくとも前記擬似コントローラを制御可能なシーケンサと、前記シーケンサと前記擬似コントローラとを接続する主通信手段と、少なくとも前記シーケンサに対して操作信号の送受信を行う擬似操作盤と、前記シミュレーションデータに基づいて前記仮想ロボットの姿勢に関する情報を表示するビューワと、前記擬似コントローラと前記ビューワとを接続する副通信手段と、を有し、前記シーケンサと前記擬似コントローラとは、前記主通信手段を介して前記仮想ロボットの動作確認を行うことを特徴とする。
【0016】
擬似コントローラ、擬似操作盤、シーケンサおよび主通信手段を実際のシステムにおける機器と類似または同一の機器を選定することにより、実機の構成との差異が小さくなる。また、複数のロボットコントローラにそれぞれ擬似コントローラを対応させている。従って、複数のロボットの動作について、各ロボットコントローラとシーケンサとの間における動作確認手段をも含めたシステムを対象とし、高精度の動作時間でシミュレーションすることができるとともに、ロボットの数の多少に拘わらず、リアルタイムのシミュレーションを高精度に実行することができる。
【0017】
この場合、前記シーケンサは、該シーケンサの動作周期を設定する処理時間設定機能部を有すると、実際に使用されるシーケンサと同じ動作周期に設定することができ、より正確なシミュレーションを行うことができる。
【0018】
また、前記各擬似コントローラは、前記仮想ロボットが他の仮想ロボットとの干渉領域に進入する際に、該干渉領域に進入することを示すインターロック設定信号を前記シーケンサに供給し、前記シーケンサは、他の全ての仮想ロボットが、受信した前記インターロック設定信号に対応する前記干渉領域の範囲外に存在すると判断したときに、前記擬似コントローラに対して許可信号を供給し、前記各擬似コントローラは、前記仮想ロボットが前記干渉領域から退出する際に、該干渉領域から退出することを示すインターロック解除信号を前記シーケンサに供給するようにしてもよい。
【0019】
さらに、前記擬似コントローラは、前記インターロック設定信号、前記許可信号および/または前記インターロック解除信号を前記副通信手段を介して前記ビューワまたは前記擬似操作盤に供給し、前記ビューワまたは前記擬似操作盤は、前記インターロック設定信号、前記許可信号、前記インターロック解除信号に基づく情報を表示するようにしてもよい。
【0020】
【発明の実施の形態】
以下、本発明に係るシミュレーション装置について好適な実施の形態を挙げ、添付の図1〜図15を参照しながら説明する。
【0021】
図1および図2に示すように、本実施の形態に係るシミュレーション装置10は、例えば、システム500(図15参照)における3台のロボット502、504、506の動作を仮想空間上でシミュレーションするものであり、実際のロボットコントローラ512、514、516の代わりに擬似コントローラ12a、12b、12cが仮想のロボットR1、R2、R3(図3参照)をそれぞれ制御する。
【0022】
シミュレーション装置10は、擬似コントローラ12a、12b、12cと、シーケンス処理を行うシーケンサ14と、擬似操作盤16と、シミュレーションの結果を表示するビューワ18と、ロボットR1、R2、R3のそれぞれのティーチングデータを作成するオフラインティーチングコンピュータ20とを有する。オフラインティーチングコンピュータ20で作成するティーチングデータは、ロボットR1、R2、R3の動作プログラム自体と、動作経路を示す複数の教示点データと、ロボットR1、R2、R3の相互干渉を示す干渉領域のデータとから構成される。
【0023】
擬似操作盤16、ビューワ18、オフラインティーチングコンピュータ20はそれぞれモニタ画面16a、18a、20aを備える。
【0024】
また、シミュレーション装置10は、FA用ネットワーク(主通信手段)26と、汎用ネットワーク(副通信手段)28とを有する。FA用ネットワーク26は、擬似コントローラ12a、12b、12cと、シーケンサ14とを接続しており、これらの機器間のデータ通信を行う。汎用ネットワーク28は、擬似コントローラ12a、12b、12cと、シーケンサ14と、擬似操作盤16と、ビューワ18と、オフラインティーチングコンピュータ20と、オブジェクトコンピュータ24とが接続されており、これらの機器間のデータ通信を行う。擬似操作盤16とシーケンサ14とは専用の通信手段25で接続されている。擬似操作盤16とシーケンサ14とは、FA用ネットワーク26または汎用ネットワーク28により通信を行うようにしてもよい。
【0025】
擬似コントローラ12a、12b、12c、シーケンサ14、擬似操作盤16およびFA用ネットワーク26は、図15における実際のロボットコントローラ512、514、516、シーケンサ508、操作盤518およびネットワーク510にそれぞれ相当する。
【0026】
ロボットR1、R2、R3およびロボット502、504、506は、例えば、図3に示すような産業用の多関節ロボットであり、ベース部30と、ベース部30を基準にしてロボットの先端に向かって順に第1アーム32、第2アーム34および第3アーム36と、第3アーム36の先端に設けられた溶接ガン38とを有する。第1アーム32は、ベース部30に対して水平および垂直に回動可能な軸J1、J2によって回動可能である。第2アーム34は第1アーム32と軸J3で回動可能に連結されている。第2アーム34は軸J4によって捻れ回転が可能になっている。第3アーム36は第2アーム34と軸J5で回動可能に連結されている。第3アーム36は軸J6によって捻れ回転が可能になっている。また、作業内容によっては、ロボットR1、R2、R3には付加軸が設けられることがある。例えば、第3アーム36の先端と溶接ガン38との間に回転または伸縮自在な第7の軸(図示せず)を設ける場合がある。
【0027】
なお、ロボットR1、R2、R3およびロボット502、504、506は、溶接用ロボットに限らず、組み立て用ロボットや塗装用ロボット等でもよい。
【0028】
図4に示すように、擬似コントローラ12a、12b、12cは、プログラム実行部50と、擬似動作部52と、入出力部54とを有しており、ロボットコントローラ512、514、516(図15参照)と類似の作用をする。
【0029】
プログラム実行部50は、制御処理部56と記憶部58とを有し、オフラインティーチングコンピュータ20から供給されるティーチングデータを記憶部58に記憶し、制御処理部56がティーチングデータに基づいてロボットR1、R2、R3および溶接ガン38の移動指令値を生成する。生成した移動指令値は、ロボットの各軸J1〜J6および溶接ガン38の開度の値として擬似動作部52に供給される。
【0030】
制御処理部56は、先読み機能部60とインターロック判断部62とを有する。先読み機能部60は、ティーチングデータに含まれる教示点T(図8参照)が空間上で近接する箇所については、ロボットR1、R2、R3の動作に先行して移動指令値の生成を行う。これにより、ロボットR1、R2、R3は滑らかな動作が可能になる。インターロック判断部62は、シーケンサ14と情報の送受信を行いながらインターロックの要否を判断する。インターロックを行う必要がある場合には、擬似動作部52に対する指令値をロックする。インターロック判断部62は、判断の結果を入出力部54にも供給する。インターロックの処理に関するシーケンサ14の詳細な作用およびインターロック判断部62の詳細な作用については後述する。
【0031】
先読み機能部60およびインターロック判断部62の機能は、実際のロボットコントローラ512、514、516が備えている機能と同じものである。
【0032】
擬似動作部52は、プログラム実行部50から供給された各軸J1〜J6の移動指令値および溶接ガン38の移動指令値に基づいてロボットR1、R2、R3の姿勢を推定する。推定によって求めた結果は、シミュレーションデータとしてプログラム実行部50および入出力部54を経由してビューワ18に供給される。
【0033】
擬似動作部52は、ロボットR1、R2、R3の各軸J1〜J6の動作を推定するロボット擬似動作部64と、付加軸の動作を推定する付加軸擬似動作部66とを有する。
【0034】
シミュレーションデータは、1組のデータ列M=(θ1、θ2、θ3、θ4、θ5、θ6、θ7)で表される。このうち、データθ1〜θ6は、ロボットR1、R2、R3の各軸J1〜J6の角度(動作量)であり、ロボット擬似動作部64によって求められる。データθ7は付加軸の動作量であり、付加軸擬似動作部66によって求められる。
【0035】
ロボット擬似動作部64は、指令値に対する各軸J1〜J6の機械的な追従遅れ時間を推定するロボット追従遅れ時間推定部70と、ティーチングデータにより予定された動作時間に対する到着時間の遅れを推定するロボット到着遅れ時間推定部72とを有する。
【0036】
付加軸擬似動作部66は、付加軸の機械的な追従遅れ時間を推定する付加軸追従遅れ時間推定部74と、ティーチングデータによる予定された動作時間に対する付加軸の到着時間の遅れを推定する付加軸到着遅れ時間推定部76と、付加軸の電流値を検出してトルクの遅れ時間を推定する付加軸トルク到着遅れ時間推定部78とを有する。付加軸トルク到着遅れ時間推定部78は、付加軸の機械的な撓み時間を推定する撓み時間推定部80と、トルクが安定するまでの時間を推定するトルク安定時間推定部82とを有する。
【0037】
ロボット擬似動作部64には、付加軸トルク到着遅れ時間推定部78に相当する機能が設けられていないが、付加軸以外の関節部、つまり軸J1〜J6については先読み機能部60により同様の推定が可能である。
【0038】
入出力部54は、FA用ネットワーク26に対する入出力の信号や、プログラム実行部50と擬似動作部52との間の信号を検出する情報取得機能部84と、汎用ネットワーク28を介してビューワ18にシミュレーションデータと入出力データとを送信するシミュレーションデータ送出部86とを有する。
【0039】
入出力データは、擬似コントローラ12a、12b、12cとシーケンサ14との間で送受信されるインターロック信号と、その他の制御データとから構成される。インターロック信号は、擬似コントローラ12a、12b、12cからシーケンサ14に送信されるインターロック設定信号、インターロック解除信号と、シーケンサ14から擬似コントローラ12a、12b、12cへ送信するアンサ信号等を含む。その他の制御データとしては、例えば、溶接ガン38または付加軸との間で送受信されるデータや、エラー信号や、サーボオン信号、サーボオフ信号等が挙げられる。入出力データを構成する各信号は、オン・オフで表される1ビットの信号である。従って、例えば、入出力データを構成する信号が128点(16バイト)程度であれば汎用ネットワーク28により高速に伝送可能である。
【0040】
入出力部54は、汎用ネットワーク28とのインターフェースである第1ポート88、FA用ネットワーク26とのインターフェースである第2ポート90に接続されている。
【0041】
擬似コントローラ12a、12b、12cにおける第2ポート90や、プログラム実行部50は実際のロボットコントローラ512、514、516におけるポートやプログラム実行部と略同仕様に構成されている。
【0042】
図2に戻り、シーケンサ14は、シーケンス処理により擬似コントローラ12a、12b、12cの動作を制御するものであり、実際のシーケンサ508と同仕様のハードウェアが使用される。
【0043】
シーケンサ14は、外部から供給されたラダープログラムを実行可能なシーケンスプログラムに変換するための条件が記述されたプログラム生成用ファイル92と、シーケンスプログラムのサイクル時間の設定を行う処理時間設定部94と、生成されたシーケンスプログラムを実行する動作処理機能部96とを有する。
【0044】
処理時間設定部94は、入出力処理時間設定部98と内部処理時間設定部100とを有し、サイクル時間を実際のシーケンサ508と同じとなるようにウェイト時間等が設定される。また、シーケンサ14はFA用ネットワーク26に対して入出力を行う入出力部27を有する。
【0045】
シーケンサ14で実行されるシーケンスプログラムはシーケンサ508と基本的に同一のものが用いられている。従って、例えば、シーケンサ14は実際のロボットコントローラ512、514、516を制御することも可能である。
【0046】
シーケンサ14は、FA用ネットワーク26を介して各擬似コントローラ12a、12b、12cからロボットR1、R2、R3の干渉領域に対するインターロック設定信号またはインターロック解除信号を受け取り、全てのロボットR1、R2、R3の状態を把握して干渉が発生しないことを確認する。干渉が発生しないと判断した場合、進行許可を示すアンサ信号を返送する。
【0047】
擬似操作盤16は、外部から供給される画面生成用設定ファイル102に基づいてモニタ画面16aの画面設定を行い、擬似操作処理部104が実際の操作盤518(図15参照)の作用を代替する。擬似操作処理部104は、入力および表示を行う入力・表示機能部106と、シミュレーションの開始から終了までの時間を計測する時間測定機能部108とを有する。入力・表示機能部106には、汎用のキーボード、マウスおよびモニタを用いることができる。擬似操作盤16のモニタ画面16aはタッチパネル式でもよい。時間測定機能部108は、オペレーティングシステムが備えるタイマ機能を用いることができる。実際の操作盤518が移動可能である場合には、操作盤518自体を汎用ネットワーク28に接続して擬似操作盤16として用いてもよい。また、擬似操作盤16は、所定の操作によってシミュレーションのスタート信号(操作信号)をシーケンサ14に送信することができる。
【0048】
擬似操作盤16のモニタ画面16aには、図5に示すように、マウスにより操作可能なウィンドウ形式の操作画面109が表示される。この操作画面109において、第1インディケータ109aは入出力データに基づいてシミュレーションの実況状況を示す領域である。サイクルタイム表示テーブル109bは時間測定機能部108により計測したシミュレーション時間を表示する領域である。サイクルタイム表示テーブル109bに表示されるシミュレーション時間は所定の記録部に記録される。機種コンボボックス109cはロボットR1、R2、R3の機種を選定および表示する領域である。タグパネル109dはアラームおよびその説明を表示する領域である。第1モード選択スイッチ部109eおよび第2モード選択スイッチ部109fはそれぞれシミュレーションの動作モードを選択する領域である。
【0049】
なお、シーケンサ14には、一般的に計時機能が設けられているので、この計時機能によって計測したシミュレーション時間をサイクルタイム表示テーブル109bに表示するようにしてもよい。
【0050】
また、操作画面109における表示は、他の適当な方法で行ってもよいことはもちろんであり、例えば、文字列で表示される情報をシンボルや色の変化によって示すようにしてもよい。
【0051】
第2インディケータ109gはロボットR1、R2、R3のシミュレーション状況を示す領域である。第2インディケータ109gにおいて、ロボットR1、R2、R3相互間におけるインターロックの状況は矢印で示される。図5では、ロボットR2の動作により、ロボットR1が待機している状態を示す。また、異常が発生した場合には対応するロボットR1、R2、R3を示すボックスの色が変更される。また、利用されない予備のロボットについては「***」の文字列が表示される。ロボット選定スイッチ部109hは、シミュレーションの実行対象となるロボットR1、R2、R3を選択する領域である。
【0052】
図2に戻り、ビューワ18は、シミュレーションの結果をリアルタイムに表示するコンピュータであり、ビューワデータ110と画像変換部112とを有する。ビューワデータ110は、各ロボットR1、R2、R3の関節構成や寸法および設置位置等の情報である。ビューワデータ110は、外部から供給可能であり、書き換え可能である。
【0053】
画像変換部112は、関節角度画像変換機能部114とI・O情報画像変換機能部116とを有する。関節角度画像変換機能部114は、各擬似コントローラ12a、12b、12cから供給されるシミュレーションデータとビューワデータ110とに基づいて各ロボットR1、R2、R3をソリッドモデルによって3次元表示する。
【0054】
I・O情報画像変換機能部116は、各擬似コントローラ12a、12b、12cから供給される入出力データの内容を表示する。また、I・O情報画像変換機能部116は、供給された入出力データを一覧形式で表示したり、入出力データのうち所定の信号に基づいてソリッドモデルの表示色を変更する機能をもつ。例えば、エラー信号やサーボオン信号が発生したときには、対応するロボットR1、R2、R3または対応する箇所の色を変更または点滅表示させる。さらに、インターロック信号に基づいて、ロボットR1、R2、R3のインターロック状態を表示する。つまり、どのロボットがどの干渉領域に入っていて、どのロボットがインターロックによる動作停止状態であるかをグラフィック形式または文字情報形式として表示する。
【0055】
ビューワ18は、シミュレーションの結果表示を行うものであり、またロボットR1、R2、R3同士の干渉回避処理や動作プログラムの実行または解析等を行うことがないので汎用の3次元CADシステムを適用することができる。ビューワ18は、3次元CADの一般的な機能、例えば、視点位置の変更、拡大・縮小表示等の機能が利用可能である。
【0056】
オフラインティーチングコンピュータ20は、ロボットR1、R2、R3のティーチングデータをオフラインで作成するものである。オフラインティーチングコンピュータ20は、各ロボットR1、R2、R3を3次元表示させながら、一連の動作を順番に教示点データとして設定することができる。
【0057】
オフラインティーチングコンピュータ20は、必ずしも汎用ネットワーク28に接続されている必要はない。オフラインティーチングコンピュータ20で作成されたティーチングデータは、他の通信手段または汎用の記録媒体を介して擬似コントローラ12a、12b、12cにロードしてもよい。
【0058】
次に、このように構成されるシミュレーション装置10を用いてシミュレーションを行う方法について図6を参照しながら説明する。
【0059】
まず、ステップS1において、オフラインティーチングコンピュータ20において各ロボットR1、R2、R3のティーチングデータを作成した後、このティーチングデータを各擬似コントローラ12a、12b、12cへロードする。また、シーケンサ14には対応するラダープログラムを供給し、プログラム生成用ファイル92を参照しながらシーケンスプログラムを生成する。ビューワ18には、適応するビューワデータ110を供給する。擬似操作盤16には、画面生成用設定ファイル102を供給する。
【0060】
次に、ステップS2において、シミュレーションを実行するための初期処理を行う。シーケンサ14における初期処理では、生成したシーケンスプログラムに対して処理時間設定部94により動作周期の設定を行う。
【0061】
擬似操作盤16における初期処理では、供給された画面生成用設定ファイル102によりモニタ画面16aの設定と入出力条件の設定とを行う。
【0062】
ビューワ18における初期処理では、供給されたビューワデータ110により各ロボットR1、R2、R3および周辺設備に関するデータを認識し、3次元描画の設定を行う。
【0063】
次に、ステップS3において、擬似操作盤16の操作画面109(図5参照)を操作して、シミュレーション動作の開始指示命令を各擬似コントローラ12a、12b、12cおよびシーケンサ14に送信する。このとき、擬似操作盤16の時間測定機能部108(図2参照)は、シミュレーション時間の計測を開始する。
【0064】
また、操作画面109の機種コンボボックス109cで生産機種を選定する。この生産機種に関する情報は各擬似コントローラ12a、12b、12cに送信される。
【0065】
各擬似コントローラ12a、12b、12cのプログラム実行部50は、記憶部58に格納したティーチングデータのうち、指定の生産機種に対応したデータに従って同時に動作を開始する。また、シーケンサ14は格納したシーケンスプログラムを実行する。
【0066】
次に、ステップS4において、シーケンサ14、擬似コントローラ12a、12b、12cおよびビューワ18がそれぞれ連動しながらシミュレーション動作を行う。
【0067】
次に、ステップS5において、擬似コントローラ12a、12b、12cは、格納したティーチングデータに基づいた処理が終了すると、シーケンサ14に終了を示す信号を送信する。シーケンサ14は、3台の擬似コントローラ12a、12b、12cからそれぞれ終了信号を受信した後、擬似操作盤16およびビューワ18にシミュレーションの終了を示す信号(操作信号)を送信する。
【0068】
この信号により、擬似操作盤16および擬似コントローラ12a、12b、12cはシミュレーションに対応した処理を終了し、擬似操作盤16の時間測定機能部108はシミュレーションに要した時間を操作画面109のサイクルタイム表示テーブル109b(図5参照)に表示する。
【0069】
次に、シミュレーション実行中における擬似コントローラ12a、12b、12cの処理について図7および図8を参照しながら説明する。
【0070】
図7のステップS101において、擬似コントローラ12a、12b、12cのプログラム実行部50は、記憶部58に格納されたティーチングデータに基づいてロボットRの各軸J1〜J6に対する指令値を生成して擬似動作部52に供給する。
【0071】
このとき、先読み機能部60の作用によって、例えば、図8に示すように、障害物150を回避するために多数の教示点Tが近接する箇所に設定されている動作経路152に沿ってロボットRが動作する場合に、実機の場合と同様に、各教示点TにおいてロボットR1、R2、R3が停止したり動作が不連続になることがなく、溶接点Pにスムーズに到達することができる。
【0072】
ステップS102において、擬似動作部52では、ロボットR1、R2、R3の姿勢を推定し、シミュレーションデータつまりデータ列Mを算出する。このとき、ロボットR1、R2、R3の動作は、指令値に対して多少の遅れが生じるが、この遅れの量はロボット擬似動作部64によって推定できるので、実際のロボット502、504、506(図15参照)を動作させる場合と同様の姿勢が算出可能である。
【0073】
次に、ステップS103において、算出したシミュレーションデータをプログラム実行部50に供給する。プログラム実行部50は、シミュレーションデータを入出力部54を介してビューワ18に所定の微小周期毎に供給する。これらのシミュレーションデータは、擬似動作部52から入出力部54へ直接的に供給してもよい。
【0074】
また、プログラム実行部50は、シーケンサ14との間においてFA用ネットワーク26を介して送受信されるインターロックに関する信号や溶接ガン38に対する信号およびエラー信号等の入出力データを所定の微小周期毎に供給する。
【0075】
このとき、プログラム実行部50は、ビューワ18がシミュレーションデータまたは入出力データを受信したか否かに拘わらずにシミュレーション処理を継続する。従って、仮にシミュレーションデータまたは入出力データの送信に長時間を要した場合でも、このことによってシミュレーションの動作時間が影響を受けることがない。
【0076】
また、プログラム実行部50は、ビューワ18に送信するデータ、つまり、シミュレーションデータおよび入出力データをログデータとして記憶部58に記憶させる。
【0077】
ステップS104においては、ティーチングデータに基づくロボットR1、R2、R3の動作が終了したか否かを判断し、シミュレーション動作終了時にはステップS105へ移り、動作未終了時にはステップS101へ戻る。
【0078】
ステップS105においては、シーケンサ14に終了信号を送出した後に、シミュレーション動作を終了する。また、必要に応じて、記憶したログデータをビューワ18またはオフラインティーチングコンピュータ20に送信する。このログデータは、シミュレーションの動作解析に用いることができる。
【0079】
次に、シミュレーションを実行中のビューワ18の処理内容について図9を参照しながら説明する。
【0080】
図9のステップS201において、ビューワ18は、擬似コントローラ12a、12b、12cからそれぞれシミュレーションデータを受信し、このシミュレーションデータとビューワデータ110とに基づいて、関節角度画像変換機能部114により各ロボットR1、R2、R3の姿勢を演算する。受信したシミュレーションデータは時系列形式に記憶する。
【0081】
次に、ステップS202において、各ロボットRの姿勢をモニタ画面18a上にソリッドモデルにより3次元表示する。表示の形式は、ワイヤフレーム形式や、数値列による情報表示等でもよい。
【0082】
次に、ステップS203において、擬似コントローラ12a、12b、12cからそれぞれ入出力データを受信して、時系列形式に記憶する。
【0083】
次に、ステップS204において、入出力データに基づく情報をモニタ画面18a上にグラフィック形式または文字情報形式で表示する。
【0084】
次いで、ステップS205において、シミュレーションが終了したか否かを判断する。すなわち、擬似操作盤16から終了信号を受信した場合には、次のステップS206へ移り、終了信号が検出されない場合にはステップS201に戻る。
【0085】
ステップS206においては、記憶したシミュレーションデータおよび入出力データに基づいて各ロボットR1、R2、R3の動作のタイミングチャートを生成する。このタイミングチャートは、シミュレーションの開始から終了までの間における動作、溶接、インターロックによる待機、エラー発生等の各ロボットR1、R2、R3の状態を時系列的に表す。生成したタイミングチャートは、モニタ画面18a上に表示するとともに所定の記憶部に記憶する。
【0086】
このステップS201〜S205で形成されるループは、微小時間で実行されるので、モニタ画面18aには、ロボットR1、R2、R3の姿勢および入出力データに基づく情報がリアルタイムで表示される。
【0087】
次に、インターロック処理に関するシーケンサ14およびインターロック判断部62の詳細な作用について図10〜図14を参照しながら説明する。
【0088】
図10および図11に示すように、ロボットR1とロボットR2とが干渉する領域が2つ存在し、それぞれ干渉領域A1、A2と設定されているとき、擬似コントローラ12aまたは12bがインターロック設定信号IL1を送信することによって干渉領域A1に進入することを示し、インターロック解除信号IL2を送信することによって干渉領域A1から退出したことを示す。また、インターロック設定信号IL3を送信することにより干渉領域A2に進入することを示し、インターロック解除信号IL4を送信することにより干渉領域A2から退出することを示す。干渉領域A1およびA2は、1つの干渉領域を2つに分割したものでもよい。
【0089】
同様に、ロボットR2とロボットR3とが干渉する領域が干渉領域A3として設定されているとき、インターロック信号IL5、インターロック解除信号IL6により、それぞれ干渉領域A3への進入および退出を示すことができる。
【0090】
次に、擬似コントローラ12aのインターロック判断部62(図4参照)の処理内容について図12を参照しながら説明する。擬似コントローラ12aの処理を例として説明するが、擬似コントローラ12b、12cの処理も同様である。
【0091】
図12のステップS301において、インターロック判断部62は、シーケンサ14からのスタート信号の受信を待つ。スタート信号の受信を確認した後、次のステップS302へ移る。
【0092】
ステップS302において、ロボットR1の動作を開始するために、プログラム実行部50にロボットR1の動作開始の指令を与える。これにより、プログラム実行部50は、ティーチングデータに基づいて指令値の計算を開始する。
【0093】
次に、ステップS303において、ロボットR1が予め設定された干渉領域へ進入するか否かを監視する。干渉領域に進入する際にはステップS304へ移り、干渉領域に進入することがない場合にはステップS307へ移る。
【0094】
ステップS304においては、インターロック設定信号を入出力部54およびFA用ネットワーク26を介してシーケンサ14に発信する。例えば、ロボットR1が、干渉領域A1に進入する際には、インターロック設定信号IL1(図11参照)を発信する。
【0095】
次に、ステップS305において、シーケンサ14からのアンサ信号の受信を待つ。アンサ信号を受信した際には次のステップS307へ移る。アンサ信号を受信できない場合には、ステップS306においてロボットR1の動作を停止させてステップS305に戻る。
【0096】
ステップS307においては、進入した干渉領域より退出したか否かを判断し、干渉領域から退出した際には次のステップS309へ移る。干渉領域に入っている最中には、ステップS308において、ロボットR1の動作を継続してステップS307に戻る。
【0097】
ステップS309においては、インターロック解除信号(例えば、IL2)をシーケンサ14に送信する。
【0098】
次に、ステップS310においては、ロボットR1の動作が終了したか否かを判断する。動作が終了した場合には、ステップS311において、プログラム実行部50に動作の終了を指示し、動作を継続する場合にはステップS303へ戻る。
【0099】
次に、シーケンサ14によるインターロック処理について図13を参照しながら説明する。
【0100】
まず、ステップS401において、シーケンサ14は、擬似操作盤16からシミュレーションの開始の信号を検出した後、各擬似コントローラ12a、12b、12cへスタート信号を発信する。
【0101】
次に、ステップS402において、擬似コントローラ12a、12b、12cから発信されたインターロック設定信号の受信を確認する。インターロック設定信号を受信した際には次のステップS403に移り、インターロック設定信号が検出されない場合にはステップS406へ移る。
【0102】
ステップS403においては、受信したインターロック設定信号に対応する干渉領域の内部フラグの状態を確認する。この内部フラグがオフである場合には次のステップS404へ移り、内部フラグがオンである場合にはステップS406へ移る。
【0103】
ステップS404においては、インターロック設定信号の送信元に対してアンサ信号を発信する。つまり、ロボットR1、R2、R3同士が干渉することがないと判断して発信元の擬似コントローラ12a、12b、12cに対してロボットR1、R2、R3の干渉領域への進入を許可し、アンサ信号を発信する。
【0104】
次に、ステップS405において、干渉領域に対応する内部フラグをオンにする。
【0105】
次に、ステップS406において、インターロック解除信号の受信を確認する。インターロック解除信号を受信した際には、次のステップS407へ移り、インターロック解除信号が検出されない場合にはステップS409へ移る。
【0106】
次に、ステップS408において、受信したインターロック解除信号に対する干渉領域の内部フラグをオフにする。
【0107】
次に、ステップS409において、処理時間設定部94(図2参照)によって設定されたサイクル時間c(図14参照)が経過するまで待機する。所定のサイクル時間cが経過した後、ステップS410へ移る。
【0108】
次に、ステップS410では、シーケンスプログラムの所定の終了条件を確認し、続行する場合にはステップS402へ戻り、終了条件が成り立つときには、擬似操作盤16にシミュレーションの終了を示す信号を発信して(ステップS411)、シーケンスプログラムの動作を終了する。この信号を受信した擬似操作盤16では、時間測定機能部108による計時を終了し、シミュレーションに要した時間をサイクルタイム表示テーブル109b(図5参照)に表示する。
【0109】
擬似コントローラ12aのインターロック判断部62およびシーケンサ14におけるインターロック処理に係る信号の流れは図14のタイミングチャートのように表すことができる。すなわち、ロボットR1が干渉領域に進入するときには擬似コントローラ12aのプログラム実行部50は、インターロック設定信号をラダー処理部130に供給する。この信号はラダー処理部130および入出力部54を介してFA用ネットワーク26に供給される。インターロック設定信号は、FA用ネットワーク26を介してシーケンサ14に供給され、シーケンサ14の入出力部およびラダー処理部132を通して動作処理機能部96に供給される。
【0110】
ラダー処理部130、入出力部54、FA用ネットワーク26、入出力部27およびラダー処理部132はそれぞれ固有のサイクルで動作しているので、これらのサイクル周期の影響により転送の遅れが生じる。従って、インターロック設定信号を送信した時間からアンサ信号を受け取るまでにインターロック処理時間tが経過する。
【0111】
ところで、擬似コントローラ12aにおけるラダー処理部130、入出力部54は、実際のロボットコントローラ512におけるラダー処理部および入出力部と同仕様であるから、この部分における信号の伝達遅れ時間は、実機の場合と同じになる。また、FA用ネットワーク26は、実際のネットワーク510と同じ仕様のものを使用しているので、このFA用ネットワーク26による信号伝送時間は実機の場合と同じになる。さらに、シーケンサ14は、実際のシーケンサ508と同じハードウェアのものを用いているので、入出力部27およびラダー処理部132における信号の伝達遅れ時間は、実機の場合と同じになる。さらにまた、遅延時間は、処理時間設定部94(図2参照)によって、サイクル時間cが実際のシーケンサ508の動作周期と同一となるように設定されている。
【0112】
従って、これらの時間の総和であるインターロック処理時間tは、実機の場合と同じとなり、インターロックの処理を行うことによるシミュレーション時間の誤差は非常に小さい。
【0113】
上述したように、本実施の形態に係るシミュレーション装置10は、ロボットコントローラ512、514、516と類似の機能をもつ擬似コントローラ12a、12b、12cと、シーケンサ14と、FA用ネットワーク26とを用いてシミュレーションを行うようにしている。シーケンサ14およびFA用ネットワーク26は実際のシステム500(図15参照)におけるシーケンサ508およびネットワーク510と同仕様のものを使用しているので、ロボットR1、R2、R3の動作を高い位置精度、動作時間精度で実現することができる。従って、システム500の工程における処理時間を正確に検証することができる。ビューワ18のモニタ画面18aに表示される画像は、3次元表示でしかもリアルタイムの表示であることから非常に現実的な描画であり、実機に則した動作を把握することができる。
【0114】
また、シーケンサ14は、実際のシーケンサ508と同じサイクル時間cとなるように処理時間設定部94によって設定されている。また、FA用ネットワーク26と、擬似コントローラ12a、12b、12cにおける入出力部54と、シーケンサ14における入出力部27等が実機と同じ構成になっているので、擬似コントローラ12a、12b、12cとシーケンサ14との間で行われるインターロックの確認処理が、実際のシステム500による場合と同じインターロック処理時間t(図14参照)となる。
【0115】
さらに、実際のシステム500におけるロボットコントローラ512、514、516の数に応じた擬似コントローラ12a、12b、12cを設けるようにしているので、ロボットおよびロボットコントローラの数が増減する場合には、擬似コントローラの数も合わせて増減させて対応することができる。従って、ロボットおよびロボットコントローラの数によって、シミュレーションの精度が低下するということがない。
【0116】
各擬似コントローラ12a、12b、12cは、ロボットR1、R2、R3が干渉領域に進入する際に、FA用ネットワーク26を介して、シーケンサ14から進入を許可するアンサ信号を受信した後にロボットR1、R2、R3を干渉領域へ進入させるようにしているので、ロボットR1、R2、R3同士の干渉を確実に回避することができる。
【0117】
なお、図7、図9、図12および図13で示した各処理手順は、必ずしもその順番で実行される必要はなく、例えば、マルチタスク処理によって複数の処理を同時並列的に行うようにしてもよい。また、例えば、所定の信号を検出し次第、所定のステップを割り込み形式で実行してもよい。
【0118】
本発明に係るシミュレーション装置は、上述の実施の形態に限らず、本発明の要旨を逸脱することなく、種々の構成を採り得ることはもちろんである。
【0119】
【発明の効果】
以上説明したように、本発明に係るシミュレーション装置によれば、複数のロボットの動作について、各ロボットコントローラとシーケンサとの間における動作確認手段をも含めたシステムを対象とし、高精度の動作時間でシミュレーションするという効果を達成することができる。
【図面の簡単な説明】
【図1】本実施の形態に係るシミュレーション装置を構成する機器の接続図である。
【図2】本実施の形態に係るシミュレーション装置のブロック図である。
【図3】シミュレーション対象のロボットの斜視図である。
【図4】擬似コントローラの内部ブロック図である。
【図5】擬似操作盤のモニタ画面上に表示される操作画面である。
【図6】シミュレーションの手順を示すフローチャートである。
【図7】擬似コントローラの処理内容を示すフローチャートである。
【図8】ロボットがティーチングデータに基づいて動作する動作経路を示す模式図である。
【図9】ビューワの処理内容を示すフローチャートである。
【図10】ロボットと干渉領域とを示す模式平面図である。
【図11】各ロボットと干渉領域に対応するインターロック設定信号およびインターロック解除信号の関係を示すテーブルである。
【図12】擬似コントローラにおけるインターロック判断部の処理内容を示すフローチャートである。
【図13】シーケンサ処理を示すフローチャートである。
【図14】擬似コントローラとシーケンサとの間における信号の流れを示すタイミングチャートである。
【図15】実際のシステムの概略ブロック図である。
【符号の説明】
10…シミュレーション装置
12a、12b、12c…擬似コントローラ
14、508…シーケンサ 16…擬似操作盤
18…ビューワ 20…オフラインティーチングコンピュータ
26…FA用ネットワーク 28…汎用ネットワーク
38…溶接ガン 50…プログラム実行部
52…擬似動作部 54…入出力部
56…制御処理部 58…記憶部
60…先読み機能部 62…インターロック判断部
64…ロボット擬似動作部 84…情報取得機能部
86…シミュレーションデータ送出部
88、90…ポート 94…処理時間設定部
96…動作処理機能部 98…入出力処理時間設定部
100…内部処理時間設定部 102…画面生成用設定ファイル
104…擬似操作処理部 106…入力・表示機能部
108…時間測定機能部 110…ビューワデータ
112…画像変換部 114…関節角度画像変換機能部
116…I・O情報画像変換機能部
502、504、506、R1、R2、R3…ロボット
[0001]
TECHNICAL FIELD OF THE INVENTION
The present invention relates to a simulation device for verifying the operation of a system having an articulated robot, and more particularly, to a system having a robot controller for controlling the operation of a robot and a sequencer connected to the robot controller via communication means. The present invention relates to a simulation device for performing operation verification.
[0002]
[Prior art]
2. Description of the Related Art Articulated robots are used in a process of joining pressed parts of an automobile and the like. The teaching of the operation of such a robot is performed by using a three-dimensional CAD or the like to perform off-line teaching that eliminates the need for an actual robot, so-called off-line teaching.
[0003]
Recently, a plurality of robots are arranged at a high density in the joining process to improve productivity. For example, a system 500 having a configuration as shown in FIG. 15 is used. In the case of such a system 500, a sequencer (also called a programmable logic controller) 508 is connected to each robot controller 512, 514, 516 via a network 510 in order to prevent mutual interference of the three robots 502, 504, 506. It is connected and monitors and controls the state of each robot 502, 504, 506. The sequencer 508 is also connected to an operation panel 518, a transport line (not shown), and the like to perform control. The basic operation of the system 500 can be operated by an operator through an operation panel 518.
[0004]
As the robots 502, 504, and 506, for example, an articulated industrial robot having six degrees of freedom by the movement of six joints is used. A welding gun 520 is provided at the tip of each of the robots 502, 504, and 506, and the workpiece 524 can be welded by the welding gun 520.
[0005]
By the way, after performing the teaching operation by the offline teaching, it is necessary to perform a simulation in order to verify the operation. However, this simulation requires that the position accuracy and the execution time of the operation be high with respect to the actual machine. .
[0006]
As a method of performing the simulation, a method of storing the postures of the respective robots in a plurality of pseudo controllers and transmitting the stored posture values in response to a request from a viewer (for example, see Patent Document 1), a method of executing each robot program A method has been proposed in which commands to the robot are obtained from the above motion commands, and a computer for a simulator performs a simulation based on these commands (for example, see Patent Document 2).
[0007]
[Patent Document 1]
Japanese Patent No. 3305451 (paragraphs [0009] to [0011])
[Patent Document 2]
JP 2001-150373 A (paragraphs [0015] to [0019])
[0008]
[Problems to be solved by the invention]
When a simulation of the system 500 (see FIG. 15) including the robots 502, 504, and 506 is performed, an error may occur in comparison with the actual operation time for the following reasons.
[0009]
That is, in the system 500 in which the robots 502, 504, and 506 are arranged at high density, it is necessary to perform an interlock process in order to avoid mutual interference, but an error due to the interlock process occurs. Further, since the communication time by the network 510 between the robot controllers 512, 514, 516 and the sequencer 508 is not considered, an error based on this communication time occurs. Further, since the processing speed of the sequencer 508 differs depending on the type, it is difficult to accurately simulate the system 500 including the sequencer 508 in one computer.
[0010]
In the method disclosed in Patent Document 1, each robot controller stores the posture of the robot at the time of simulation, and transmits the stored value at the time of receiving a request from the simulator. The displayed robot motion is not real-time. Therefore, it is difficult to grasp the operation of the robot.
[0011]
In the method disclosed in Patent Literature 2, since commands are transmitted from the robot controller based on each robot program, the computer for the simulator needs to calculate or estimate the posture of the robot from these commands. Therefore, the processing of the computer for the simulator becomes complicated.
[0012]
Furthermore, in the methods disclosed in Patent Literatures 1 and 2, the effects of the sequencer and the communication unit are not taken into account, so that an error occurs due to the sequencer and the communication unit.
[0013]
Furthermore, when the number of robots to be simulated increases or decreases, the simulation execution time and errors are affected.
[0014]
The present invention has been made in view of such a problem, and is intended for a system including an operation check unit between each robot controller and a sequencer for a plurality of robot operations, and has a high-precision operation time. It is an object of the present invention to provide a simulation device which enables a simulation to be performed.
[0015]
[Means for Solving the Problems]
A simulation device according to the present invention is a simulation device for verifying the operation of a system having a plurality of robots, in which teaching data for a robot is stored, and based on the teaching data, controls the operation of a virtual robot indicating the robot. A pseudo-controller that generates simulation data indicating the amount of movement of each joint of the virtual robot in real time, a sequencer that can control at least the pseudo-controller, and a main communication unit that connects the sequencer and the pseudo-controller; A simulated control panel for transmitting and receiving operation signals to and from the sequencer, a viewer for displaying information on the attitude of the virtual robot based on the simulation data, It includes a sub-communication unit for connecting the over word, and the said sequencer and pseudo controller, and performs operation confirmation of the virtual robot via the main communication unit.
[0016]
By selecting a device similar or identical to the device in the actual system for the pseudo controller, the pseudo operation panel, the sequencer, and the main communication means, the difference from the configuration of the actual device is reduced. In addition, a pseudo controller is associated with each of the plurality of robot controllers. Therefore, the operation of a plurality of robots can be simulated in a highly accurate operation time with respect to a system including an operation check unit between each robot controller and the sequencer, and can be performed regardless of the number of robots. Therefore, a real-time simulation can be executed with high accuracy.
[0017]
In this case, if the sequencer has a processing time setting function unit for setting the operation cycle of the sequencer, the sequencer can be set to the same operation cycle as the actually used sequencer, and a more accurate simulation can be performed. .
[0018]
Further, each of the pseudo controllers, when the virtual robot enters an interference region with another virtual robot, supplies an interlock setting signal indicating that the virtual robot enters the interference region to the sequencer, the sequencer, When all other virtual robots determine that they are outside the range of the interference area corresponding to the received interlock setting signal, they supply a permission signal to the pseudo controller, and each of the pseudo controllers is When the virtual robot exits the interference area, an interlock release signal indicating that the virtual robot exits the interference area may be supplied to the sequencer.
[0019]
Furthermore, the pseudo controller supplies the interlock setting signal, the permission signal, and / or the interlock release signal to the viewer or the pseudo operation panel via the sub communication means, and the viewer or the pseudo operation panel May display information based on the interlock setting signal, the permission signal, and the interlock release signal.
[0020]
BEST MODE FOR CARRYING OUT THE INVENTION
Hereinafter, preferred embodiments of a simulation apparatus according to the present invention will be described with reference to FIGS.
[0021]
As shown in FIGS. 1 and 2, a simulation apparatus 10 according to the present embodiment simulates, for example, the operations of three robots 502, 504, and 506 in a system 500 (see FIG. 15) in a virtual space. The pseudo controllers 12a, 12b, and 12c control the virtual robots R1, R2, and R3 (see FIG. 3) instead of the actual robot controllers 512, 514, and 516, respectively.
[0022]
The simulation device 10 transmits the teaching data of each of the pseudo controllers 12a, 12b, and 12c, the sequencer 14 that performs the sequence processing, the pseudo operation panel 16, the viewer 18 that displays the result of the simulation, and the robots R1, R2, and R3. And an offline teaching computer 20 to be created. The teaching data created by the offline teaching computer 20 includes the operation program itself of the robots R1, R2, and R3, a plurality of teaching point data indicating an operation path, and data of an interference area indicating mutual interference between the robots R1, R2, and R3. Consists of
[0023]
The simulation operation panel 16, the viewer 18, and the offline teaching computer 20 have monitor screens 16a, 18a, and 20a, respectively.
[0024]
Further, the simulation apparatus 10 has an FA network (main communication unit) 26 and a general-purpose network (sub communication unit) 28. The FA network 26 connects the pseudo controllers 12a, 12b, and 12c and the sequencer 14, and performs data communication between these devices. The general-purpose network 28 is connected to the simulated controllers 12a, 12b, 12c, the sequencer 14, the simulated operation panel 16, the viewer 18, the offline teaching computer 20, and the object computer 24. Perform communication. The simulation operation panel 16 and the sequencer 14 are connected by dedicated communication means 25. The simulated operation panel 16 and the sequencer 14 may communicate with each other via the FA network 26 or the general-purpose network 28.
[0025]
The pseudo controllers 12a, 12b, 12c, the sequencer 14, the pseudo operation panel 16 and the FA network 26 correspond to the actual robot controllers 512, 514, 516, the sequencer 508, the operation panel 518, and the network 510 in FIG.
[0026]
The robots R1, R2, R3 and the robots 502, 504, 506 are, for example, industrial articulated robots as shown in FIG. It has a first arm 32, a second arm 34, and a third arm 36 in this order, and a welding gun 38 provided at a tip of the third arm 36. The first arm 32 is rotatable about axes J1 and J2 that can be rotated horizontally and vertically with respect to the base 30. The second arm 34 is rotatably connected to the first arm 32 about a shaft J3. The second arm 34 can be twisted and rotated by the axis J4. The third arm 36 is rotatably connected to the second arm 34 about a shaft J5. The third arm 36 can be twisted and rotated by the axis J6. Further, depending on the work content, the robots R1, R2, and R3 may be provided with additional axes. For example, a rotatable or telescopic seventh shaft (not shown) may be provided between the tip of the third arm 36 and the welding gun 38.
[0027]
The robots R1, R2, R3 and the robots 502, 504, 506 are not limited to welding robots, but may be assembly robots or painting robots.
[0028]
As shown in FIG. 4, the pseudo controllers 12a, 12b, and 12c have a program execution unit 50, a pseudo operation unit 52, and an input / output unit 54, and have robot controllers 512, 514, and 516 (see FIG. 15). ) Has a similar effect.
[0029]
The program execution unit 50 has a control processing unit 56 and a storage unit 58, stores teaching data supplied from the offline teaching computer 20 in the storage unit 58, and controls the robots R1, R2 based on the teaching data. A movement command value for R2, R3 and the welding gun 38 is generated. The generated movement command value is supplied to the pseudo operation unit 52 as a value of each of the axes J1 to J6 of the robot and the opening degree of the welding gun 38.
[0030]
The control processing unit 56 includes a prefetch function unit 60 and an interlock determination unit 62. The prefetch function unit 60 generates a movement command value prior to the operation of the robots R1, R2, and R3 at locations where the teaching point T (see FIG. 8) included in the teaching data is close in space. Thereby, the robots R1, R2, and R3 can perform a smooth operation. The interlock determination unit 62 determines whether or not an interlock is necessary while transmitting and receiving information to and from the sequencer 14. When the interlock needs to be performed, the command value for the pseudo operation unit 52 is locked. The interlock determination unit 62 also supplies the result of the determination to the input / output unit 54. The detailed operation of the sequencer 14 and the detailed operation of the interlock determination unit 62 regarding the interlock processing will be described later.
[0031]
The functions of the prefetch function unit 60 and the interlock determination unit 62 are the same as those of the actual robot controllers 512, 514, and 516.
[0032]
The simulated operation unit 52 estimates the postures of the robots R1, R2, R3 based on the movement command values of the axes J1 to J6 and the movement command value of the welding gun 38 supplied from the program execution unit 50. The result obtained by the estimation is supplied to the viewer 18 via the program execution unit 50 and the input / output unit 54 as simulation data.
[0033]
The pseudo operation unit 52 includes a robot pseudo operation unit 64 for estimating the operation of each axis J1 to J6 of the robots R1, R2, and R3, and an additional axis pseudo operation unit 66 for estimating the operation of the additional axis.
[0034]
The simulation data is represented by a set of data strings M = (θ1, θ2, θ3, θ4, θ5, θ6, θ7). Among them, the data θ1 to θ6 are the angles (movement amounts) of the axes J1 to J6 of the robots R1, R2, and R3, and are obtained by the robot pseudo operation unit 64. The data θ7 is the operation amount of the additional axis, and is obtained by the additional axis pseudo operation unit 66.
[0035]
The robot pseudo operation unit 64 estimates a mechanical following delay time of each of the axes J1 to J6 with respect to the command value, and a robot following delay estimating unit 70, and estimates a delay of the arrival time with respect to the operation time scheduled based on the teaching data. And a robot arrival delay time estimating unit 72.
[0036]
The additional axis pseudo operation unit 66 includes an additional axis follow-up delay time estimating unit 74 for estimating the mechanical follow-up delay time of the additional axis, and an additional unit for estimating the delay of the arrival time of the additional axis with respect to the scheduled operation time based on the teaching data. It has an axis arrival delay time estimating unit 76 and an additional axis torque arrival delay time estimating unit 78 that detects the current value of the additional axis and estimates the torque delay time. The additional shaft torque arrival delay time estimating unit 78 has a bending time estimating unit 80 for estimating the mechanical bending time of the additional shaft, and a torque stabilizing time estimating unit 82 for estimating the time until the torque is stabilized.
[0037]
The robot pseudo operation unit 64 does not have a function corresponding to the additional axis torque arrival delay time estimating unit 78, but the joints other than the additional axis, that is, the axes J1 to J6 are similarly estimated by the prefetching function unit 60. Is possible.
[0038]
The input / output unit 54 is provided to the viewer 18 via the general-purpose network 28 and an information acquisition function unit 84 for detecting a signal input / output to / from the FA network 26 and a signal between the program execution unit 50 and the pseudo operation unit 52. It has a simulation data sending unit 86 for sending simulation data and input / output data.
[0039]
The input / output data includes an interlock signal transmitted and received between the pseudo controllers 12a, 12b, and 12c and the sequencer 14, and other control data. The interlock signal includes an interlock setting signal, an interlock release signal transmitted from the pseudo controllers 12a, 12b, 12c to the sequencer 14, an answer signal transmitted from the sequencer 14 to the pseudo controllers 12a, 12b, 12c, and the like. The other control data includes, for example, data transmitted and received between the welding gun 38 and the additional axis, an error signal, a servo-on signal, a servo-off signal, and the like. Each signal constituting the input / output data is a 1-bit signal represented by ON / OFF. Therefore, for example, if the signal constituting the input / output data is about 128 points (16 bytes), it can be transmitted at high speed by the general-purpose network 28.
[0040]
The input / output unit 54 is connected to a first port 88 serving as an interface with the general-purpose network 28 and a second port 90 serving as an interface with the FA network 26.
[0041]
The second port 90 of the pseudo controllers 12a, 12b, and 12c and the program execution unit 50 have substantially the same specifications as the ports and the program execution units of the actual robot controllers 512, 514, and 516.
[0042]
Referring back to FIG. 2, the sequencer 14 controls the operation of the pseudo controllers 12a, 12b, and 12c by a sequence process, and uses hardware having the same specifications as the actual sequencer 508.
[0043]
The sequencer 14 includes a program generation file 92 in which conditions for converting a ladder program supplied from the outside into an executable sequence program are described, a processing time setting unit 94 for setting a cycle time of the sequence program, An operation processing function unit 96 for executing the generated sequence program.
[0044]
The processing time setting unit 94 has an input / output processing time setting unit 98 and an internal processing time setting unit 100, and wait time and the like are set so that the cycle time is the same as that of the actual sequencer 508. The sequencer 14 has an input / output unit 27 for inputting / outputting data to / from the FA network 26.
[0045]
The sequence program executed by the sequencer 14 is basically the same as the sequence program 508. Thus, for example, the sequencer 14 can control the actual robot controllers 512, 514, 516.
[0046]
The sequencer 14 receives an interlock setting signal or an interlock release signal for the interference area of the robots R1, R2, and R3 from the pseudo controllers 12a, 12b, and 12c via the FA network 26, and outputs all the robots R1, R2, and R3. And confirm that no interference occurs. If it is determined that no interference occurs, an answer signal indicating permission for progress is returned.
[0047]
The simulated operation panel 16 sets the screen of the monitor screen 16a based on the screen generation setting file 102 supplied from the outside, and the simulated operation processing unit 104 substitutes the operation of the actual operation panel 518 (see FIG. 15). . The pseudo operation processing unit 104 includes an input / display function unit 106 for performing input and display, and a time measurement function unit 108 for measuring the time from the start to the end of the simulation. For the input / display function unit 106, a general-purpose keyboard, mouse, and monitor can be used. The monitor screen 16a of the simulated operation panel 16 may be a touch panel type. The time measurement function unit 108 can use a timer function included in the operating system. When the actual operation panel 518 is movable, the operation panel 518 itself may be connected to the general-purpose network 28 and used as the pseudo operation panel 16. In addition, the pseudo operation panel 16 can transmit a simulation start signal (operation signal) to the sequencer 14 by a predetermined operation.
[0048]
As shown in FIG. 5, a window-type operation screen 109 operable with a mouse is displayed on the monitor screen 16 a of the simulated operation panel 16. In this operation screen 109, the first indicator 109a is an area indicating the actual situation of the simulation based on the input / output data. The cycle time display table 109b is an area for displaying the simulation time measured by the time measurement function unit 108. The simulation time displayed on the cycle time display table 109b is recorded in a predetermined recording unit. The model combo box 109c is an area for selecting and displaying the models of the robots R1, R2, and R3. The tag panel 109d is an area for displaying an alarm and its description. The first mode selection switch unit 109e and the second mode selection switch unit 109f are regions for selecting an operation mode of the simulation.
[0049]
Since the sequencer 14 is generally provided with a timekeeping function, the simulation time measured by the timekeeping function may be displayed on the cycle time display table 109b.
[0050]
The display on the operation screen 109 may be performed by other appropriate methods. For example, information displayed as a character string may be indicated by a symbol or a change in color.
[0051]
The second indicator 109g is an area indicating the simulation status of the robots R1, R2, R3. In the second indicator 109g, the state of the interlock between the robots R1, R2, and R3 is indicated by an arrow. FIG. 5 shows a state where the robot R1 is on standby by the operation of the robot R2. When an abnormality occurs, the color of the box indicating the corresponding robot R1, R2, R3 is changed. In addition, a character string of “***” is displayed for a spare robot that is not used. The robot selection switch unit 109h is an area for selecting the robots R1, R2, and R3 to be simulated.
[0052]
Returning to FIG. 2, the viewer 18 is a computer that displays the result of the simulation in real time, and includes viewer data 110 and an image conversion unit 112. The viewer data 110 is information such as joint configurations, dimensions, and installation positions of the robots R1, R2, and R3. The viewer data 110 can be supplied from the outside and can be rewritten.
[0053]
The image conversion unit 112 includes a joint angle image conversion function unit 114 and an I / O information image conversion function unit 116. The joint angle image conversion function unit 114 three-dimensionally displays each of the robots R1, R2, R3 by a solid model based on the simulation data supplied from each of the pseudo controllers 12a, 12b, 12c and the viewer data 110.
[0054]
The I / O information image conversion function unit 116 displays the contents of input / output data supplied from each of the pseudo controllers 12a, 12b, and 12c. Further, the I / O information image conversion function unit 116 has a function of displaying supplied input / output data in a list format, and changing a display color of the solid model based on a predetermined signal in the input / output data. For example, when an error signal or a servo-on signal is generated, the color of the corresponding robot R1, R2, R3 or the corresponding portion is changed or blinked. Further, based on the interlock signal, an interlock state of the robots R1, R2, R3 is displayed. In other words, which robot is in which interference area and which robot is in an operation stop state due to the interlock is displayed as a graphic format or a character information format.
[0055]
The viewer 18 displays the result of the simulation, and does not perform the processing for avoiding interference between the robots R1, R2, and R3, and does not execute or analyze an operation program, so that a general-purpose three-dimensional CAD system is used. Can be. The viewer 18 can use general functions of three-dimensional CAD, for example, functions such as changing a viewpoint position and displaying enlarged / reduced images.
[0056]
The offline teaching computer 20 creates teaching data of the robots R1, R2, R3 off-line. The offline teaching computer 20 can sequentially set a series of operations as teaching point data while displaying the robots R1, R2, and R3 three-dimensionally.
[0057]
The offline teaching computer 20 does not necessarily need to be connected to the general-purpose network 28. The teaching data created by the offline teaching computer 20 may be loaded into the pseudo controllers 12a, 12b, and 12c via another communication means or a general-purpose recording medium.
[0058]
Next, a method of performing a simulation using the simulation apparatus 10 configured as described above will be described with reference to FIG.
[0059]
First, in step S1, the teaching data of each of the robots R1, R2, and R3 is created in the offline teaching computer 20, and then the teaching data is loaded into each of the pseudo controllers 12a, 12b, and 12c. Further, a corresponding ladder program is supplied to the sequencer 14, and a sequence program is generated with reference to the program generation file 92. The viewer 18 is supplied with adapted viewer data 110. The simulation operation panel 16 is supplied with the screen generation setting file 102.
[0060]
Next, in step S2, an initial process for executing a simulation is performed. In the initial processing in the sequencer 14, an operation cycle is set for the generated sequence program by the processing time setting unit 94.
[0061]
In the initial processing in the simulated operation panel 16, the setting of the monitor screen 16a and the setting of input / output conditions are performed by the supplied screen generation setting file 102.
[0062]
In the initial processing in the viewer 18, data on the robots R1, R2, R3 and peripheral equipment is recognized based on the supplied viewer data 110, and three-dimensional drawing is set.
[0063]
Next, in step S3, the operation screen 109 (see FIG. 5) of the pseudo operation panel 16 is operated to transmit a simulation operation start instruction command to each of the pseudo controllers 12a, 12b, 12c and the sequencer 14. At this time, the time measurement function unit 108 (see FIG. 2) of the simulated operation panel 16 starts measuring the simulation time.
[0064]
Also, a production model is selected in the model combo box 109c on the operation screen 109. Information on the production model is transmitted to each of the pseudo controllers 12a, 12b, and 12c.
[0065]
The program execution unit 50 of each of the pseudo controllers 12a, 12b, and 12c starts the operation simultaneously according to the data corresponding to the specified production model among the teaching data stored in the storage unit 58. The sequencer 14 executes the stored sequence program.
[0066]
Next, in step S4, the sequencer 14, the pseudo controllers 12a, 12b, 12c, and the viewer 18 perform a simulation operation in conjunction with each other.
[0067]
Next, in Step S5, when the processing based on the stored teaching data ends, the pseudo controllers 12a, 12b, and 12c transmit a signal indicating the end to the sequencer 14. After receiving the end signals from the three pseudo controllers 12a, 12b, and 12c, the sequencer 14 transmits a signal (operation signal) indicating the end of the simulation to the pseudo operation panel 16 and the viewer 18.
[0068]
With this signal, the simulated operation panel 16 and the simulated controllers 12a, 12b, 12c end the processing corresponding to the simulation, and the time measurement function unit 108 of the simulated operation panel 16 displays the time required for the simulation on the operation screen 109 as a cycle time display. It is displayed in the table 109b (see FIG. 5).
[0069]
Next, the processing of the pseudo controllers 12a, 12b, and 12c during the execution of the simulation will be described with reference to FIGS.
[0070]
In step S101 in FIG. 7, the program execution unit 50 of the pseudo controllers 12a, 12b, and 12c generates command values for the axes J1 to J6 of the robot R based on the teaching data stored in the storage unit 58, and performs the pseudo operation. To the unit 52.
[0071]
At this time, by the action of the pre-reading function unit 60, for example, as shown in FIG. 8, the robot R moves along the operation path 152 set at a position where a number of teaching points T are close to avoid the obstacle 150. Operates, the robots R1, R2, and R3 do not stop at each teaching point T and the operation does not become discontinuous at the teaching points T, and the welding point P can be reached smoothly.
[0072]
In step S102, the pseudo operation unit 52 estimates the postures of the robots R1, R2, and R3, and calculates simulation data, that is, a data string M. At this time, the operation of the robots R1, R2, and R3 has some delay with respect to the command value. However, since the amount of this delay can be estimated by the robot pseudo operation unit 64, the actual robots 502, 504, and 506 (FIG. 15) can be calculated.
[0073]
Next, in step S103, the calculated simulation data is supplied to the program execution unit 50. The program execution unit 50 supplies the simulation data to the viewer 18 via the input / output unit 54 every predetermined minute cycle. These simulation data may be directly supplied from the pseudo operation unit 52 to the input / output unit 54.
[0074]
Further, the program execution unit 50 supplies input / output data such as an interlock signal transmitted to and received from the sequencer 14 via the FA network 26, a signal to the welding gun 38, and an error signal at predetermined minute intervals. I do.
[0075]
At this time, the program execution unit 50 continues the simulation process regardless of whether the viewer 18 has received the simulation data or the input / output data. Therefore, even if it takes a long time to transmit the simulation data or the input / output data, this does not affect the operation time of the simulation.
[0076]
Further, the program execution unit 50 causes the storage unit 58 to store data to be transmitted to the viewer 18, that is, simulation data and input / output data as log data.
[0077]
In step S104, it is determined whether or not the operations of the robots R1, R2, R3 based on the teaching data have been completed. When the simulation operation is completed, the process proceeds to step S105, and when the operation is not completed, the process returns to step S101.
[0078]
In step S105, after sending an end signal to the sequencer 14, the simulation operation ends. Further, as necessary, the stored log data is transmitted to the viewer 18 or the offline teaching computer 20. This log data can be used for simulation operation analysis.
[0079]
Next, processing contents of the viewer 18 during execution of a simulation will be described with reference to FIG.
[0080]
In step S201 of FIG. 9, the viewer 18 receives the simulation data from the pseudo controllers 12a, 12b, and 12c, respectively, and based on the simulation data and the viewer data 110, the joint angle image conversion function unit 114 causes each of the robots R1, The postures of R2 and R3 are calculated. The received simulation data is stored in a time-series format.
[0081]
Next, in step S202, the posture of each robot R is three-dimensionally displayed on the monitor screen 18a by a solid model. The display format may be a wire frame format, information display using a numerical sequence, or the like.
[0082]
Next, in step S203, input / output data is received from each of the pseudo controllers 12a, 12b, and 12c, and stored in a time-series format.
[0083]
Next, in step S204, information based on the input / output data is displayed on the monitor screen 18a in a graphic format or a character information format.
[0084]
Next, in step S205, it is determined whether the simulation has been completed. That is, when the end signal is received from the pseudo operation panel 16, the process proceeds to the next step S206, and when the end signal is not detected, the process returns to step S201.
[0085]
In step S206, a timing chart of the operation of each robot R1, R2, R3 is generated based on the stored simulation data and input / output data. This timing chart shows the state of each of the robots R1, R2, R3 in a time series such as an operation from the start to the end of the simulation, welding, standby by an interlock, occurrence of an error, and the like. The generated timing chart is displayed on the monitor screen 18a and stored in a predetermined storage unit.
[0086]
Since the loop formed in steps S201 to S205 is executed in a short time, information based on the postures and input / output data of the robots R1, R2, R3 is displayed on the monitor screen 18a in real time.
[0087]
Next, detailed operations of the sequencer 14 and the interlock determination unit 62 related to the interlock process will be described with reference to FIGS.
[0088]
As shown in FIG. 10 and FIG. 11, when there are two regions where the robot R1 and the robot R2 interfere with each other and are set as the interference regions A1 and A2, respectively, the pseudo controller 12a or 12b outputs the interlock setting signal IL1. To indicate that the vehicle has entered the interference area A1 and to transmit the interlock release signal IL2 indicates that the vehicle has exited the interference area A1. The transmission of the interlock setting signal IL3 indicates that the vehicle enters the interference area A2, and the transmission of the interlock release signal IL4 indicates that the vehicle exits the interference area A2. The interference regions A1 and A2 may be obtained by dividing one interference region into two.
[0089]
Similarly, when an area where the robot R2 and the robot R3 interfere with each other is set as the interference area A3, entry and exit to the interference area A3 can be indicated by the interlock signal IL5 and the interlock release signal IL6, respectively. .
[0090]
Next, the processing content of the interlock determination unit 62 (see FIG. 4) of the pseudo controller 12a will be described with reference to FIG. The processing of the pseudo controller 12a will be described as an example, but the processing of the pseudo controllers 12b and 12c is the same.
[0091]
In step S301 in FIG. 12, the interlock determination unit 62 waits for reception of a start signal from the sequencer 14. After confirming the reception of the start signal, the process moves to the next step S302.
[0092]
In step S302, an instruction to start the operation of the robot R1 is given to the program execution unit 50 in order to start the operation of the robot R1. As a result, the program execution unit 50 starts calculating the command value based on the teaching data.
[0093]
Next, in step S303, it is monitored whether or not the robot R1 enters a preset interference area. When the vehicle enters the interference region, the process proceeds to step S304. When the vehicle does not enter the interference region, the process proceeds to step S307.
[0094]
In step S304, an interlock setting signal is transmitted to the sequencer 14 via the input / output unit 54 and the FA network 26. For example, when the robot R1 enters the interference area A1, it sends an interlock setting signal IL1 (see FIG. 11).
[0095]
Next, in step S305, reception of an answer signal from the sequencer 14 is waited. When the answer signal is received, the process moves to the next step S307. If the answer signal cannot be received, the operation of the robot R1 is stopped in step S306, and the process returns to step S305.
[0096]
In step S307, it is determined whether or not the vehicle has exited from the entered interference area. When the vehicle has exited from the interference area, the process proceeds to the next step S309. While in the interference area, in step S308, the operation of the robot R1 is continued, and the process returns to step S307.
[0097]
In step S309, an interlock release signal (for example, IL2) is transmitted to the sequencer 14.
[0098]
Next, in step S310, it is determined whether or not the operation of the robot R1 has been completed. If the operation has ended, in step S311, the program execution unit 50 is instructed to end the operation. If the operation is to be continued, the process returns to step S303.
[0099]
Next, the interlock processing by the sequencer 14 will be described with reference to FIG.
[0100]
First, in step S401, the sequencer 14 transmits a start signal to each of the pseudo controllers 12a, 12b, and 12c after detecting a signal to start the simulation from the pseudo operation panel 16.
[0101]
Next, in step S402, reception of the interlock setting signal transmitted from the pseudo controllers 12a, 12b, and 12c is confirmed. When the interlock setting signal is received, the process proceeds to the next step S403, and when the interlock setting signal is not detected, the process proceeds to step S406.
[0102]
In step S403, the state of the internal flag of the interference area corresponding to the received interlock setting signal is checked. If the internal flag is off, the process moves to the next step S404, and if the internal flag is on, the process moves to step S406.
[0103]
In step S404, an answer signal is transmitted to the transmission source of the interlock setting signal. That is, it is determined that the robots R1, R2, and R3 do not interfere with each other, and the originating pseudo controllers 12a, 12b, and 12c are allowed to enter the interference area of the robots R1, R2, and R3, and the answer signal is output. Outgoing.
[0104]
Next, in step S405, the internal flag corresponding to the interference area is turned on.
[0105]
Next, in step S406, reception of the interlock release signal is confirmed. When the interlock release signal is received, the process proceeds to the next step S407, and when the interlock release signal is not detected, the process proceeds to step S409.
[0106]
Next, in step S408, the internal flag of the interference area for the received interlock release signal is turned off.
[0107]
Next, in step S409, the process waits until the cycle time c (see FIG. 14) set by the processing time setting unit 94 (see FIG. 2) elapses. After the elapse of the predetermined cycle time c, the process proceeds to step S410.
[0108]
Next, in step S410, a predetermined end condition of the sequence program is confirmed. If the sequence program is to be continued, the process returns to step S402. If the end condition is satisfied, a signal indicating the end of the simulation is transmitted to the pseudo operation panel 16 ( Step S411), the operation of the sequence program ends. Upon receiving this signal, the simulated operation panel 16 ends the time measurement by the time measurement function unit 108 and displays the time required for the simulation in the cycle time display table 109b (see FIG. 5).
[0109]
A signal flow relating to the interlock processing in the interlock determination unit 62 and the sequencer 14 of the pseudo controller 12a can be represented as a timing chart of FIG. That is, when the robot R1 enters the interference area, the program execution unit 50 of the pseudo controller 12a supplies an interlock setting signal to the ladder processing unit 130. This signal is supplied to the FA network 26 via the ladder processing unit 130 and the input / output unit 54. The interlock setting signal is supplied to the sequencer 14 via the FA network 26, and is supplied to the operation processing function unit 96 through the input / output unit of the sequencer 14 and the ladder processing unit 132.
[0110]
Since the ladder processing unit 130, the input / output unit 54, the FA network 26, the input / output unit 27, and the ladder processing unit 132 operate in their own cycles, a transfer delay occurs due to the influence of these cycle periods. Therefore, the interlock processing time t elapses from the time when the interlock setting signal is transmitted to the time when the answer signal is received.
[0111]
By the way, the ladder processing unit 130 and the input / output unit 54 in the pseudo controller 12a have the same specifications as the ladder processing unit and the input / output unit in the actual robot controller 512. Will be the same as Further, since the FA network 26 uses the same specifications as the actual network 510, the signal transmission time by the FA network 26 is the same as that of the actual machine. Furthermore, since the sequencer 14 uses the same hardware as the actual sequencer 508, the signal transmission delay time in the input / output unit 27 and the ladder processing unit 132 is the same as that of the actual device. Furthermore, the delay time is set by the processing time setting unit 94 (see FIG. 2) so that the cycle time c is the same as the actual operation cycle of the sequencer 508.
[0112]
Therefore, the interlock processing time t, which is the sum of these times, is the same as in the case of the actual machine, and the error in the simulation time due to the interlock processing is very small.
[0113]
As described above, the simulation apparatus 10 according to the present embodiment uses the pseudo controllers 12a, 12b, and 12c having functions similar to those of the robot controllers 512, 514, and 516, the sequencer 14, and the FA network 26. I am trying to simulate. Since the sequencer 14 and the FA network 26 have the same specifications as those of the sequencer 508 and the network 510 in the actual system 500 (see FIG. 15), the operations of the robots R1, R2, and R3 can be performed with high positional accuracy and operation time. It can be realized with accuracy. Therefore, the processing time in the process of the system 500 can be accurately verified. Since the image displayed on the monitor screen 18a of the viewer 18 is a three-dimensional display and is a real-time display, it is a very realistic drawing, and the operation according to the actual machine can be grasped.
[0114]
The sequencer 14 is set by the processing time setting unit 94 so as to have the same cycle time c as the actual sequencer 508. Further, since the FA network 26, the input / output unit 54 in the pseudo controllers 12a, 12b, 12c, and the input / output unit 27 in the sequencer 14 have the same configuration as the actual machine, the pseudo controllers 12a, 12b, 12c and the sequencer The interlock confirmation processing performed between the system 500 and the P. 14 is the same interlock processing time t (see FIG. 14) as in the actual system 500.
[0115]
Further, since the pseudo controllers 12a, 12b, and 12c are provided according to the number of the robot controllers 512, 514, and 516 in the actual system 500, when the number of the robots and the robot controllers increases or decreases, the pseudo controllers The number can also be increased or decreased to cope with it. Therefore, the accuracy of the simulation does not decrease due to the number of robots and robot controllers.
[0116]
When the robots R1, R2, and R3 enter the interference area, the pseudo controllers 12a, 12b, and 12c receive the answer signal from the sequencer 14 via the FA network 26 after allowing the robots R1, R2, and R2 to enter the interference area. , R3 enter the interference area, so that interference between the robots R1, R2, and R3 can be reliably avoided.
[0117]
The processing procedures shown in FIGS. 7, 9, 12, and 13 do not necessarily need to be executed in that order. For example, a plurality of processings may be performed in parallel by multitask processing. Is also good. Further, for example, as soon as a predetermined signal is detected, a predetermined step may be executed in an interrupt format.
[0118]
The simulation apparatus according to the present invention is not limited to the above-described embodiment, but may adopt various configurations without departing from the gist of the present invention.
[0119]
【The invention's effect】
As described above, according to the simulation device of the present invention, the operation of a plurality of robots is targeted for a system including an operation check unit between each robot controller and the sequencer, and has a highly accurate operation time. The effect of simulating can be achieved.
[Brief description of the drawings]
FIG. 1 is a connection diagram of devices constituting a simulation device according to the present embodiment.
FIG. 2 is a block diagram of a simulation device according to the present embodiment.
FIG. 3 is a perspective view of a robot to be simulated;
FIG. 4 is an internal block diagram of a pseudo controller.
FIG. 5 is an operation screen displayed on a monitor screen of a pseudo operation panel.
FIG. 6 is a flowchart showing a simulation procedure.
FIG. 7 is a flowchart showing processing contents of a pseudo controller.
FIG. 8 is a schematic diagram illustrating an operation path in which a robot operates based on teaching data.
FIG. 9 is a flowchart showing processing contents of a viewer.
FIG. 10 is a schematic plan view showing a robot and an interference area.
FIG. 11 is a table showing a relationship between each robot and an interlock setting signal and an interlock release signal corresponding to an interference area.
FIG. 12 is a flowchart illustrating processing performed by an interlock determination unit in the pseudo controller.
FIG. 13 is a flowchart showing a sequencer process.
FIG. 14 is a timing chart showing a signal flow between the pseudo controller and the sequencer.
FIG. 15 is a schematic block diagram of an actual system.
[Explanation of symbols]
10 ... Simulation device
12a, 12b, 12c ... pseudo controller
14,508 ... Sequencer 16 ... Pseudo operation panel
18: Viewer 20: Offline teaching computer
26: FA network 28: General-purpose network
38: welding gun 50: program execution unit
52: pseudo operation unit 54: input / output unit
56: control processing unit 58: storage unit
60: Look-ahead function unit 62: Interlock judgment unit
64: Robot pseudo operation unit 84: Information acquisition function unit
86 ... Simulation data sending unit
88, 90: Port 94: Processing time setting unit
96: operation processing function unit 98: input / output processing time setting unit
100: Internal processing time setting unit 102: Screen generation setting file
104: Simulated operation processing unit 106: Input / display function unit
108: time measurement function unit 110: viewer data
112 image conversion unit 114 joint angle image conversion function unit
116: I / O information image conversion function unit
502, 504, 506, R1, R2, R3 ... Robot

Claims (4)

  1. 複数のロボットを有するシステムの動作検証を行うシミュレーション装置において、
    ロボット用のティーチングデータがそれぞれ格納され、該ティーチングデータに基づき、前記ロボットを示す仮想ロボットの動作制御を行うとともに、前記仮想ロボットの各関節の動作量を示すシミュレーションデータをそれぞれリアルタイムに生成する擬似コントローラと、
    少なくとも前記擬似コントローラを制御可能なシーケンサと、
    前記シーケンサと前記擬似コントローラとを接続する主通信手段と、
    少なくとも前記シーケンサに対して操作信号の送受信を行う擬似操作盤と、
    前記シミュレーションデータに基づいて前記仮想ロボットの姿勢に関する情報を表示するビューワと、
    前記擬似コントローラと前記ビューワとを接続する副通信手段と、
    を有し、
    前記シーケンサと前記擬似コントローラとは、前記主通信手段を介して前記仮想ロボットの動作確認を行うことを特徴とするシミュレーション装置。
    In a simulation device for verifying the operation of a system having a plurality of robots,
    Pseudo controller for storing teaching data for a robot and controlling the operation of a virtual robot indicating the robot based on the teaching data and generating simulation data indicating the amount of movement of each joint of the virtual robot in real time, respectively. When,
    A sequencer capable of controlling at least the pseudo controller,
    Main communication means for connecting the sequencer and the pseudo controller;
    A pseudo operation panel for transmitting and receiving operation signals to at least the sequencer;
    A viewer that displays information about the posture of the virtual robot based on the simulation data;
    Sub communication means for connecting the pseudo controller and the viewer,
    Has,
    The simulation device according to claim 1, wherein the sequencer and the pseudo controller perform operation confirmation of the virtual robot via the main communication unit.
  2. 請求項1記載のシミュレーション装置において、
    前記シーケンサは、該シーケンサの動作周期を設定する処理時間設定機能部を有することを特徴とするシミュレーション装置。
    The simulation device according to claim 1,
    The simulation device according to claim 1, wherein the sequencer has a processing time setting function unit for setting an operation cycle of the sequencer.
  3. 請求項1または2記載のシミュレーション装置において、
    前記各擬似コントローラは、前記仮想ロボットが他の仮想ロボットとの干渉領域に進入する際に、該干渉領域に進入することを示すインターロック設定信号を前記シーケンサに供給し、
    前記シーケンサは、他の全ての仮想ロボットが、受信した前記インターロック設定信号に対応する前記干渉領域の範囲外に存在すると判断したときに、前記擬似コントローラに対して許可信号を供給し、
    前記各擬似コントローラは、前記仮想ロボットが前記干渉領域から退出する際に、該干渉領域から退出することを示すインターロック解除信号を前記シーケンサに供給することを特徴とするシミュレーション装置。
    The simulation device according to claim 1 or 2,
    Each of the pseudo controllers, when the virtual robot enters an interference region with another virtual robot, supplies an interlock setting signal indicating that the virtual robot enters the interference region to the sequencer,
    The sequencer, when determining that all other virtual robots are outside the range of the interference area corresponding to the received interlock setting signal, supplies a permission signal to the pseudo controller,
    The simulation apparatus, wherein each of the pseudo controllers supplies an interlock release signal indicating that the virtual robot exits the interference area to the sequencer when the virtual robot exits the interference area.
  4. 請求項3記載のシミュレーション装置において、
    前記擬似コントローラは、前記インターロック設定信号、前記許可信号および/または前記インターロック解除信号を前記副通信手段を介して前記ビューワまたは前記擬似操作盤に供給し、
    前記ビューワまたは前記擬似操作盤は、前記インターロック設定信号、前記許可信号、前記インターロック解除信号に基づく情報を表示することを特徴とするシミュレーション装置。
    The simulation device according to claim 3,
    The pseudo controller supplies the interlock setting signal, the permission signal, and / or the interlock release signal to the viewer or the pseudo operation panel via the sub communication unit,
    The simulation device according to claim 1, wherein the viewer or the pseudo operation panel displays information based on the interlock setting signal, the permission signal, and the interlock release signal.
JP2002315993A 2002-10-30 2002-10-30 Simulation device Active JP3927482B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2002315993A JP3927482B2 (en) 2002-10-30 2002-10-30 Simulation device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2002315993A JP3927482B2 (en) 2002-10-30 2002-10-30 Simulation device

Publications (2)

Publication Number Publication Date
JP2004148434A true JP2004148434A (en) 2004-05-27
JP3927482B2 JP3927482B2 (en) 2007-06-06

Family

ID=32459832

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002315993A Active JP3927482B2 (en) 2002-10-30 2002-10-30 Simulation device

Country Status (1)

Country Link
JP (1) JP3927482B2 (en)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010140359A (en) * 2008-12-12 2010-06-24 Fanuc Ltd Simulation apparatus
JP2010214556A (en) * 2009-03-18 2010-09-30 Kawasaki Heavy Ind Ltd Simulation system and program
JP2013006269A (en) * 2011-06-23 2013-01-10 Raytheon Bbn Technologies Corp Robot fabricator
JP2018020406A (en) * 2016-08-04 2018-02-08 ファナック株式会社 Simulation device
US10789395B2 (en) 2013-01-30 2020-09-29 Fanuc Corporation Simulation device for carrying out simulation based on robot program

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010140359A (en) * 2008-12-12 2010-06-24 Fanuc Ltd Simulation apparatus
JP4653836B2 (en) * 2008-12-12 2011-03-16 ファナック株式会社 Simulation device
US8589122B2 (en) 2008-12-12 2013-11-19 Fanuc Ltd Simulation apparatus
JP2010214556A (en) * 2009-03-18 2010-09-30 Kawasaki Heavy Ind Ltd Simulation system and program
JP2013006269A (en) * 2011-06-23 2013-01-10 Raytheon Bbn Technologies Corp Robot fabricator
US10789395B2 (en) 2013-01-30 2020-09-29 Fanuc Corporation Simulation device for carrying out simulation based on robot program
JP2018020406A (en) * 2016-08-04 2018-02-08 ファナック株式会社 Simulation device
US10643009B2 (en) * 2016-08-04 2020-05-05 Fanuc Corporation Simulation apparatus

Also Published As

Publication number Publication date
JP3927482B2 (en) 2007-06-06

Similar Documents

Publication Publication Date Title
US6928337B2 (en) Robot simulation apparatus
EP1310844B1 (en) Simulation device
US7945349B2 (en) Method and a system for facilitating calibration of an off-line programmed robot cell
JP3834307B2 (en) Robot system
US8406923B2 (en) Apparatus for determining pickup pose of robot arm with camera
US7174225B2 (en) Method and system for simulating processing of a workpiece with a machine tool
EP1921526B1 (en) Method of evaluating and correcting robot program and device for evaluating and correcting robot program
US7149602B2 (en) Correction data checking system for rebots
JP5872894B2 (en) Robot motion teaching support apparatus and method
US20120123590A1 (en) System and method for programming robots
US20070213874A1 (en) Device, program, recording medium and method for robot simulation
JP2017094406A (en) Simulation device, simulation method, and simulation program
CN102243498A (en) Programming method for a robot, programming apparatus for a robot, and robot control system
JP2004259112A (en) Evaluation system, evaluation method, and motion controller
US20190329405A1 (en) Robot simulation device
JP2004148434A (en) Simulation device
JP3913666B2 (en) Simulation device
JP3349652B2 (en) Offline teaching method
JP2004280635A (en) Simulation device, simulation method, and simulation program
JP2004148428A (en) Simulation device
JP2003236784A (en) Method and device for teaching robot
JP2001105137A (en) Off-line teaching device for welding and method of manufacturing for large structure using the device
JPH07200019A (en) Robot controller
JP5272447B2 (en) Numerical control machine operation simulator
JP2000024970A (en) Robot simulation device

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20041201

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20060728

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20060801

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060927

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20061031

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20061227

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20070227

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20070302

R150 Certificate of patent (=grant) or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (prs date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100309

Year of fee payment: 3

FPAY Renewal fee payment (prs date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110309

Year of fee payment: 4

FPAY Renewal fee payment (prs date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110309

Year of fee payment: 4

FPAY Renewal fee payment (prs date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120309

Year of fee payment: 5

FPAY Renewal fee payment (prs date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130309

Year of fee payment: 6