(57)【要約】【課題】１つの作業プログラムで複数の制御対象の非同期制御を可能にしてタクトタイムを短縮できる制御装置を提供する。【解決手段】非同期制御部２３は、第１工程部２５、第２工程部２６および第３工程部２７を備える。第１工程部２５は、制御対象であるマニピュレータＲ及びポジショナＰが移動目標教示点に各々到達する際の移動時間を算出して移動目標教示点に最短時間で到達する基準制御対象を決定する。第２工程部２６は、基準制御対象以外の制御対象が、算出した最短時間後に到達すべき移動目標教示点を移動経路上に再設定する。第３工程部は、各制御対象を移動目標教示点に同時に到達させた後、いずれか１の制御対象が最終教示点に到達したときは、残りの制御対象が最終教示点に到達するまで、先に最終教示点に到達した制御対象を待機させる。複数の制御対象を各々の教示点に非同時に到達させることができる。【選択図】図１
2009026171.tif 000002
【特許請求の範囲】
【請求項１】
複数の制御対象毎に教示された教示点で形成される移動経路を有した１の作業プログラムに基づいて前記複数の制御対象を前記教示点に各々到達させながら前記移動経路を移動させるロボット制御装置において、
前記移動経路の一部又は全部が予め非同期制御区間として教示された区間では、前記複数の制御対象を前記区間の開始教示点から同時に移動開始させたあと前記区間の移動目標教示点に非同時に到達させ、いずれか１の制御対象が前記区間の最終教示点に到達したときは残りの制御対象が前記最終教示点に到達するまで前記最終教示点に到達した制御対象を待機させる非同期制御部を備えたことを特徴とするロボット制御装置。
【請求項２】
前記非同期制御区間を教示によって設定する代わりに、外部機器から入力された非同期制御信号によって設定することを特徴とする請求項１記載のロボット制御装置。
【請求項３】
前記複数の制御対象は、少なくとも１台のマニピュレータを含む２台の制御対象であり、
前記非同期制御部は、
予め設定された移動速度に従い、到達教示点から移動目標教示点への移動時間を２台の制御対象それぞれに算出し、前記移動目標教示点に最短時間で到達する制御対象である基準制御対象を決定する第１工程部と、
前記基準制御対象以外の制御対象が自身の移動経路を前記移動速度で移動し前記最短時間の経過後に到達する位置を前記移動目標教示点として再設定する第２工程部と、
２台の制御対象を前記移動目標教示点に同時に到達させた後、どちらの制御対象も前記最終教示点へ到達していない場合は前記移動目標教示点として次の教示点を前記第１工程部に入力して非同期制御を続行し、どちらか一方の制御対象が前記最終教示点へ到達している場合は既に到達している制御対象を前記最終教示点で待機させるとともに他方の制御対象を前記移動経路を経由して前記最終教示点に到達させて非同期制御を終了する第３工程部と、
を備えたこと特徴とする請求項１又は請求項２記載のロボット制御装置。
【請求項４】
前記複数の制御対象は、少なくとも１台のマニピュレータを含む３台以上の制御対象であり、
前記非同期制御部は、
予め設定された移動速度に従い、到達教示点から移動目標教示点への移動時間を前記複数の制御対象毎に算出し、前記移動目標教示点に最短時間で到達する制御対象である基準制御対象を決定する第１工程部と、
前記基準制御対象以外の制御対象が、自身の移動経路を前記移動速度で移動し前記最短時間の経過後に到達する位置を前記移動目標教示点として再設定する第２工程部と、
前記複数の制御対象を前記移動目標教示点に同時に到達させた後、いずれの制御対象も前記最終教示点へ到達していない場合は前記移動目標教示点として次の教示点を前記第１工程部に入力して非同期制御を続行し、いずれかの制御対象が前記最終教示点へ到達している場合は、前記最終教示点に到達していない制御対象が２台以上であるときは既に到達している制御対象を前記最終教示点で待機させるとともに残りの制御対象の移動目標教示点として次の教示点を第１工程部に入力して非同期制御を続行し、前記最終教示点へ到達していない制御対象が１台であるときは、既に到達している制御対象を前記最終教示点で待機させるとともに前記１台の制御対象を前記移動経路を経由して前記最終教示点に到達させて非同期制御を終了する第３工程部と、
を備えたこと特徴とする請求項１又は請求項２記載のロボット制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、接続された複数のマニピュレータ、ポジショナ等を教示された各々の教示点に到達させるロボット制御装置に関するものである。
【背景技術】
【０００２】
従来から、１台のロボット制御装置でマニピュレータ、ポジショナ、スライダ等の複数の制御対象を同時に動作制御することが行われている（例えば、特許文献１参照）。特許文献１に記載された技術では、複数の制御対象毎に教示点を教示して１つの移動命令で記憶するとともに、複数の移動命令で形成される移動経路が１つの作業プログラムに記憶されている。そして、作業プログラムを再生運転すると複数の制御対象が各々の教示点に同時に出発して同時に到達する、いわゆる同期制御が行われる。以下、従来の同期制御について説明する。
【０００３】
図９は、１台のマニピュレータおよび１台のポジショナを同期制御する産業用ロボットシステムのブロック図である。
【０００４】
同図において、制御対象であるマニピュレータＲおよびポジショナＰはロボット制御装置１に接続されている。マニピュレータＲは、ワークＷに対して加工作業を自動で行うものであり、複数のアームと、これらを回転駆動するための複数のサーボモータ（図示せず）とによって各々構成されている。ポジショナＰには、アーク溶接等の加工を施す際の移動経路ＷＲを有するワークＷが設置されている。ワークＷは、ポジショナＰが回転制御されることによってマニピュレータＲに対して最適な加工姿勢を取ることが可能となっている。作業者は、マニピュレータＲが移動経路ＷＲに沿って移動するように複数の教示点を教示する。なお、移動経路ＷＲの点線部はエアカット経路、実線部は加工作業経路を示している。
【０００５】
ロボット制御装置１は、各制御対象を制御するためのものであり、その中枢となる主制御部３、各制御対象の軌跡演算等を行って演算結果を駆動信号として駆動指令部１２に出力する動作制御部１１、各制御対象のサーボモータを回転制御するためのサーボ制御信号を出力する駆動指令部１２、ティーチペンダントＴＰとの通信を行うためのＴＰインタフェース２、作業プログラムを記憶するためのハードディスク４、一時的な計算領域であるＲＡＭ５、および外部機器との通信を行うための入出力インターフェース６を備えている。
【０００６】
ティーチペンダントＴＰは、可搬式の教示操作盤であり、ロボット制御装置１のＴＰインタフェース２に接続されている。ティーチペンダントＴＰには、手動操作する制御対象を選択する制御対象選択スイッチ、各制御対象を実際に手動操作で動かすための軸操作キー等（いずれも図示せず）が備わっている。これらのスイッチ、キー等を操作することによって制御対象を各々所望の位置に動かすことができるとともに、その位置を教示点として作業プログラムに記憶することができる。
【０００７】
起動ボックスＳＢは、作成した作業プログラムの再生運転を行うための起動信号をロボット制御装置１に入力するためのものである。起動ボックスＳＢからの起動信号は、入出力インターフェース６を介して主制御部３に入力される。
【０００８】
次に、マニピュレータＲおよびポジショナＰを同期制御するための教示について説明する。図１０は、作業プログラムの教示例を示す図である。
【０００９】
同図において、ポイントＰｔは教示点の番号を示しており、００１から始まり教示点を記憶するたびに＋１される。
【００１０】
命令Ｃｍは、制御対象を教示点へ移動させるための移動命令である。例えばＭＯＶＥ命令ならば教示点へＰＴＰ動作を行い、ＬＩＮＥ命令ならば教示点へ直線補間動作を行う。なお、命令Ｃｍは、上記した移動命令以外にも溶接を開始する命令、外部機器との信号入出力を行う命令等、様々な種類の命令を教示することができるが、同図では、説明の便宜上、移動命令のみが教示された例を示している。図示している教示例の場合、ポイント００１のＭＯＶＥ命令が加工開始位置へ到達するエアカット経路、ポイント００２のＬＩＮＥ命令がワークＷに加工を行う加工作業経路、ポイント００３〜００５は加工作業終了位置から待避するエアカット経路をそれぞれ示している。
【００１１】
移動速度Ｓｐは、移動命令で設定されるパラメータであり、制御対象が教示点へ移動する際の移動速度を示している。移動速度Ｓｐは、マニピュレータＲまたはポジショナＰのいずれか一方の移動速度を選択的に設定することが可能となっているが、ここではマニピュレータＲの移動速度が設定されているものとする。ロボットの移動速度Ｓｐが設定された場合のポジショナＰの移動速度Ｓｐｐは、ポジショナＰの最大速度に、マニピュレータＲの最大速度に対する移動速度Ｓｐの比率と同一の比率を乗算することによって自動的に算出される。すなわち、（ポジショナＰの移動速度Ｓｐｐ）＝（ポジショナＰの最大移動速度）×（マニピュレータＲの移動速度Ｓｐ／マニピュレータＲの最大移動速度）で算出される。
【００１２】
マニピュレータＲおよびポジショナＰを到達させる教示点は位置データとして記憶されている。位置データＰｒはマニピュレータＲの教示点（Ｒ１〜Ｒ５等）を、位置データＰｐは教示点（Ｐ１〜Ｐ５等）をそれぞれ示している。このように、マニピュレータＲおよびポジショナＰが到達すべき位置データが１つの移動命令に記憶されている。
【００１３】
作成した作業プログラムの再生運転を行うための起動信号が起動ボックスＳＢから入力されると、作業プログラムに基づいて動作制御部１１の命令解釈部（図示せず）は移動命令を解釈して軌道計画および補間演算を行い、駆動信号を駆動指令部１２に出力する。そして、駆動指令部１２がマニピュレータＲおよびポジショナＰの各サーボモータにサーボ制御信号を出力し、対応する軸をそれぞれ回転駆動する。このことによって、マニピュレータＲおよびポジショナＰが同時に動き出し移動経路ＷＲの各教示点に同時に到達しながらワークＷに対する加工作業を行う。
【００１４】
ところで、同期制御においては、移動時間が最長となる制御対象に合わせてその他の制御対象の移動速度が決定される。マニピュレータＲがポジショナＰに対して最適姿勢を維持しながら加工を行う加工作業経路においては、マニピュレータＲおよびポジショナＰの同期制御が最適である。しかしながら、加工開始点への接近または加工終了点からの待避の際のエアカット経路においては、必ずしも同期制御が必要ではない。従来は、同期制御が不必要なエアカット経路においても同期制御を行うために、無駄な時間を要していた。
【００１５】
【特許文献１】特開平４−２５２３０４号公報
【特許文献２】特開２００５−３４６７４０号公報
【発明の開示】
【発明が解決しようとする課題】
【００１６】
図１１は、エアカット経路で同期制御を行う際の無駄時間を説明するための図である。同図（ａ）はポジショナＰの移動時間と移動速度との関係を、同図（ｂ）はマニピュレータＲの移動時間と移動速度との関係をそれぞれ示している。同図（ａ）において、Ｐ１〜Ｐ５はポジショナＰの教示点を示している。同様に同図（ｂ）において、Ｒ１〜Ｒ５はマニピュレータＲの教示点を示している。同図におけるＰ１とＲ１は加工開始位置、Ｐ２とＲ２は加工終了位置、Ｐ３とＲ３は第１待避位置、Ｐ４とＲ４は第２待避位置、Ｐ５とＲ５は作業原点に復帰するための第３待避位置として教示された教示点をそれぞれ示している。
【００１７】
同期制御においては移動時間が最長となる制御対象に合わせて、その他の制御対象の移動速度が決定される。一般的にポジショナＰの移動速度はマニピュレータＲの移動速度に比べて遅く、特にエアカット経路は加工作業経路よりも移動距離が長いケースが多い。このようなケースにおいてはポジショナＰの移動時間が最長となるために、その移動時間に合わせてマニピュレータＲの移動速度が決定される。例えば、第１待避位置であるＰ３およびＲ３へ移動するときは、マニピュレータＲの移動速度Ｓｐとして１００ｃｍ／ｍｉｎが設定されていても、ポジショナＰの移動時間に合わせて移動速度Ｓｐが決定されるので、設定した１００ｃｍ／ｍｉｎよりも遅い速度となる。すなわち、マニピュレータＲが同期制御されずに単独で動作する場合に比べて無駄な時間を要する。
【００１８】
上述したように、同期制御を行うに際して、従来は無駄な時間を要しているという課題があった。この課題を解決するために、制御対象毎に作業プログラムを作成しておき、複数の作業プログラムを同時に起動することのできる制御手段を備え、複数の作業プログラム間における同期区間と非同期区間とを切り替えることができる作業機械の制御装置が開示されている（例えば、特許文献２参照）。
【００１９】
しかしながら、特許文献２記載の技術では、制御対象毎に複数の作業プログラムを作成することが必要であるとともに、同期制御を行う区間も複数の作業プログラム毎に指定する必要があった。このために、１つの作業プログラムで全ての制御対象の教示を行うことに比べて、教示作業が煩雑であるという課題を有していた。
【００２０】
そこで、本発明は、１つの作業プログラムで複数の制御対象の非同期制御を可能によって、特にエアカット経路における無駄な移動時間を削減してタクトタイムを短縮することができるロボット制御装置を提供することを目的とする。
【課題を解決するための手段】
【００２１】
上記目的を達成するために、第１の発明は、
複数の制御対象毎に教示された教示点で形成される移動経路を有した１の作業プログラムに基づいて前記複数の制御対象を前記教示点に各々到達させながら前記移動経路を移動させるロボット制御装置において、
前記移動経路の一部又は全部が予め非同期制御区間として教示された区間では、前記複数の制御対象を前記区間の開始教示点から同時に移動開始させたあと前記区間の移動目標教示点に非同時に到達させ、いずれか１の制御対象が前記区間の最終教示点に到達したときは残りの制御対象が前記最終教示点に到達するまで前記最終教示点に到達した制御対象を待機させる非同期制御部を備えたことを特徴とするロボット制御装置である。
【００２２】
第２の発明は、前記非同期制御区間を教示によって設定する代わりに、外部機器から入力された非同期制御信号によって設定することを特徴とする第１の発明記載のロボット制御装置である。
【００２３】
第３の発明は、前記複数の制御対象は少なくとも１台のマニピュレータを含む２台の制御対象であり、
前記非同期制御部は、
予め設定された移動速度に従い、到達教示点から移動目標教示点への移動時間を２台の制御対象それぞれに算出し、前記移動目標教示点に最短時間で到達する制御対象である基準制御対象を決定する第１工程部と、前記基準制御対象以外の制御対象が自身の移動経路を前記移動速度で移動し前記最短時間の経過後に到達する位置を前記移動目標教示点として再設定する第２工程部と、２台の制御対象を前記移動目標教示点に同時に到達させた後、どちらの制御対象も前記最終教示点へ到達していない場合は前記移動目標教示点として次の教示点を前記第１工程部に入力して非同期制御を続行し、どちらか一方の制御対象が前記最終教示点へ到達している場合は既に到達している制御対象を前記最終教示点で待機させるとともに他方の制御対象を前記移動経路を経由して前記最終教示点に到達させて非同期制御を終了する第３工程部と、を備えたこと特徴とする第１又は第２の発明記載のロボット制御装置である。
【００２４】
第４の発明は、前記複数の制御対象は、少なくとも１台のマニピュレータを含む３台以上の制御対象であり、
前記非同期制御部は、予め設定された移動速度に従い、到達教示点から移動目標教示点への移動時間を前記複数の制御対象毎に算出し、前記移動目標教示点に最短時間で到達する制御対象である基準制御対象を決定する第１工程部と、
前記基準制御対象以外の制御対象が、自身の移動経路を前記移動速度で移動し前記最短時間の経過後に到達する位置を前記移動目標教示点として再設定する第２工程部と、前記複数の制御対象を前記移動目標教示点に同時に到達させた後、いずれの制御対象も前記最終教示点へ到達していない場合は前記移動目標教示点として次の教示点を前記第１工程部に入力して非同期制御を続行し、いずれかの制御対象が前記最終教示点へ到達している場合は、前記最終教示点に到達していない制御対象が２台以上であるときは既に到達している制御対象を前記最終教示点で待機させるとともに残りの制御対象の移動目標教示点として次の教示点を第１工程部に入力して非同期制御を続行し、前記最終教示点へ到達していない制御対象が１台であるときは、既に到達している制御対象を前記最終教示点で待機させるとともに前記１台の制御対象を前記移動経路を経由して前記最終教示点に到達させて非同期制御を終了する第３工程部と、を備えたこと特徴とする第１又は第２の発明記載のロボット制御装置である。
【発明の効果】
【００２５】
第１の発明によれば、予め教示された非同期制御区間において複数の制御対象の非同期制御を可能にしたので、特にエアカット経路における無駄な移動時間を削減することができる。すなわち、タクトタイムを短縮することによって生産効率を向上させることができる。
【００２６】
第２の発明によれば、外部機器から入力された非同期制御信号によって非同期制御区間を設定できるようにしたことによって非同期制御区間の教示を不要にしている。このことによって、第１の発明が奏する効果に加えて、教示作業を簡素化できる。また、周辺機器との連動タイミングに合わせてリアルタイムに非同期制御を行うことができるのでフレキシブルなシステムを構築することができる。
【００２７】
第３の発明によれば、制御対象が２台である場合において、１つの作業プログラムで非同期制御を可能にしたので、制御対象毎に作業プログラムを作成する必要がない。すなわち、第１及び第２の発明が奏する効果に加えて、教示作業を簡素化できる。
【００２８】
第４の発明によれば、制御対象が３台以上である場合において、１つの作業プログラムで非同期制御を可能にしたので、制御対象毎に作業プログラムを作成する必要がない。すなわち、第１及び第２の発明が奏する効果に加えて、教示作業を簡素化できる。
【発明を実施するための最良の形態】
【００２９】
以下、発明の実施形態を実施例に基づき図面を参照して説明する。
【００３０】
図１は、本発明のロボット制御装置によって１台のマニピュレータおよび１台のポジショナを動作制御する産業用ロボットシステムのブロック図である。同図において、従来技術の図９との相違は、動作制御部１１、ＲＡＭ５および外部機器ＥＰである。その他、同一のものについては同符号を付与して説明を省略する。なお、本発明は制御対象が３台以上であっても適用可能であるが、制御対象が２台である場合を例に発明の実施形態を説明する。制御対象が３台以上である場合の実施形態の相違については、適宜説明を付記する。
【００３１】
動作制御部１１は、ハードディスク４に記憶された作業プログラムの移動命令を解釈する命令解釈部２１、同期制御を行う同期制御部２２および非同期制御を行うための非同期制御部２３を備えており、命令解釈部２１の解釈結果に基づいて非同期制御または同期制御が実行される。さらに、非同期制御部２３は、第１工程部２５、第２工程部２６および第３工程部２７を備えている。ＲＡＭ５は一時的な計算領域であり、基準制御対象記憶部５１、追加教示点記憶部５２（５２ＲはマニピュレータＲ用、５２ＰはポジショナＰ用）、および未消化教示点記憶部５３（５３ＲはマニピュレータＲ用、５３ＰはポジショナＰ用）を備えている。非同期制御部２３と各工程部の動作、ＲＡＭ５の各部の詳細については後述する。
【００３２】
図２は、作業プログラムの教示例を示す図である。同図では、従来技術の図１０で説明した作業プログラムにおいて特定の区間を非同期制御するための教示が行われている。具体的には、加工作業終了位置から待避するエアカット経路であるポイント００３〜００５が、NoSyncStart命令およびNoSyncEnd命令で挟まれた非同期制御区間として教示されている。NoSyncStart命令は非同期制御を開始する命令、NoSyncEnd命令は非同期制御を終了する命令である。なお、この非同期制御区間は上記命令で挟む教示の他に、ポイント００３〜００５に非同期制御を行うことを示すマークを付与することによって教示するように構成しても良い（例えば、ポイント００３〜００５にＰマークが付与されていれば非同期制御区間と見なして非同期制御を行う等）。また、非同期制御区間を教示するのではなく、上位コントローラ等の外部機器ＥＰから非同期制御信号が入力されている間だけ、非同期制御を行うように構成しても良い。このように構成しておけば、教示作業時間を低減することが可能である。以下では、非同期制御区間がNoSyncStart命令およびNoSyncEnd命令で設定されている場合を例にして説明する。
【００３３】
次に動作を説明する。まず、命令解釈部２１がポイント００１のＭＯＶＥ命令を解釈する。非同期制御区間は設定されていないので、同期制御によってマニピュレータＲを教示点Ｒ１に、ポジショナＰを教示点Ｐ１に同時に到達させる。ポイント００２のＬＩＮＥ命令も同様に、同期制御によってマニピュレータＲを教示点Ｒ２に、ポジショナＰを教示点Ｐ２に同時に到達させる。
【００３４】
次に、命令解釈部２１がNoSyncStart命令を解釈する。非同期制御区間の開始指定がなされているので、非同期制御を開始する。このとき、NoSyncEnd命令をサーチすることによって非同期制御区間の最終教示点を予め求めておく。この場合は、ポイント００５の教示点Ｒ５およびＰ５が最終教示点となる。
【００３５】
次に非同期制御について説明する。以下では、各制御対象が到達した教示点のことを到達教示点、各制御対象が移動目標とする教示点のことを移動目標教示点と呼ぶ。
【００３６】
図３は、非同期制御時のフローチャートである。ステップＳ１が第１工程部２５の処理、ステップＳ２が第２工程部２６の処理、ステップＳ３〜Ｓ５が第３工程部２７の処理をそれぞれ示している。
【００３７】
ステップＳ１において、命令解釈部２１の解釈結果に基づき、第１工程部２５が移動命令で予め設定された移動速度に従い、到達教示点から移動目標教示点への移動時間を制御対象毎に算出し、移動目標教示点に最短時間で到達する制御対象である基準制御対象を決定する。
【００３８】
ステップＳ２において、第２工程部２６は、基準制御対象以外の制御対象が、自身の移動経路を設定された移動速度で移動し最短時間の経過後に到達する位置を移動目標教示点として再設定する。さらに、次の理由により、基準制御対象以外の制御対象については、命令解釈部２１が解釈した本来到達すべき教示点を未消化教示点として未消化教示点記憶部５３に記憶してことが望ましい。命令解釈部２１は、複数の制御対象の教示点（位置データ）を記憶した移動命令を順次解釈して非同期制御部２３に通知する。本発明の非同期制御部２１は、上記したように基準制御対象以外の制御対象が、自身の移動経路を設定された移動速度で移動し最短時間の経過後に到達する位置を移動目標教示点として再設定する。すなわち、元々の移動目標教示点までの間に新たな移動目標教示点が再設定されることになるので、基準制御対象は命令解釈部２１で解釈された移動目標教示点へ移動するが、基準制御対象以外の制御対象は命令解釈部２１で解釈された移動目標教示点ではなく再設定された移動目標教示点へ移動することになる。移動目標教示点が再設定されたことを命令解釈部２１にフィードバックし、フィードバック結果に伴って次の移動命令の解釈時に教示点（位置データ）の参照先を変更したり、再設定された移動目標教示点を作業プログラムに再記憶したりすることは主制御部３、動作制御部２３にとって大きな負荷になるので避けることが望ましい。したがって、命令解釈部２１が解釈した移動命令に記憶された本来到達すべき教示点を未消化教示点として未消化教示点記憶部５３に記憶しておき、非同期制御部２３のみで参照するように構成しておくことが望ましい。
【００３９】
ステップＳ３において、各制御対象を移動目標教示点に各々到達させるための軌道計画および補間演算を行い、駆動信号を駆動指令部１２に出力する。
【００４０】
ステップＳ４において、各制御対象が移動目標教示点に同時に到達した後、次の処理を行う。どちらの制御対象も非同期制御区間の最終教示点へ到達していないときは、ステップＳ１に戻り、移動目標教示点として次の教示点を第１工程部２５に入力することによって非同期制御を続行する。次の教示点とは、基準制御対象については命令解釈部２１が解釈した次の教示点であり、基準制御対象以外の制御対象については到達教示点の次の教示点すなわち上述した未消化教示点である。これらを移動目標教示点として第１工程部２５に入力して非同期制御を続行する。どちらか一方の制御対象が非同期制御区間の最終教示点へ到達しているときは、ステップＳ５に移る。
【００４１】
ステップＳ５において、他方の制御対象を移動経路を経由して最終教示点に到達させる。この間、すでに最終教示点に到達した制御対象は最終教示点で待機させる。全ての制御対象が最終教示点に到達した段階で非同期制御を終了する。
【００４２】
なお、上記ステップＳ４およびＳ５において、制御対象が３台以上の場合は、次の処理を行う。
【００４３】
いずれの制御対象も最終教示点へ到達していない場合は移動目標教示点として次の教示点を第１工程部２５に入力して非同期制御を続行する。いずれかの制御対象が最終教示点へ到達している場合は次の処理を行う。最終教示点に到達していない制御対象が２台以上であるときは、すでに最終教示点に到達した制御対象を最終教示点で待機させたまま、残りの制御対象の移動目標教示点として次の教示点を第１工程部２５に入力し、非同期制御を続行する。最終教示点へ到達していない制御対象が１台になったときは、この１台の制御対象を移動経路を経由して最終教示点に到達させる。全ての制御対象が最終教示点に到達した段階で非同期制御を終了する。
【００４４】
以下、図４〜図７を参照して、非同期制御区間における上記処理について具体的に説明する。
【００４５】
［非同期制御区間の教示点Ｒ３およびＰ３への非同期制御］
図４は、非同期制御区間の最初の移動目標教示点である教示点Ｒ３およびＰ３に移動させる際の処理を説明するための図である。同図（ａ）は、ポジショナＰが教示点Ｐ２からＰ３へ移動する際の移動時間と移動速度との関係を、同図（ｂ）はマニピュレータＲが教示点Ｒ２からＲ３へ移動する際の移動時間と移動速度との関係をそれぞれ示した波形図である。
【００４６】
第１工程部２５は、設定された移動速度に従ってマニピュレータＲが教示点Ｒ３に到達する際の移動時間Ｔｒ３を算出する。同様に、設定された移動速度に従ってポジショナＰが教示点Ｐ３に到達する際の移動時間Ｔｐ３を算出する。同図に示すように、「マニピュレータＲの移動時間Ｔｒ３＜ポジショナＰの移動時間Ｔｐ３」となる。すなわち、移動目標教示点に最短時間で到達する制御対象はマニピュレータＲであるので、マニピュレータＲを基準制御対象として決定し、基準制御対象記憶部５１に記憶する。基準制御対象以外の制御対象はポジショナＰとなる。
【００４７】
次に、第２工程部２６は、ポジショナＰが自身の移動経路を設定された移動速度で移動し、上記最短時間すなわちマニピュレータＲの移動時間Ｔｒ３の経過後に到達する位置を、移動目標教示点Ｐ３’として再設定し、再設定教示点記憶部５２Ｐに記憶する。さらに、本来到達すべき教示点はＰ３であるので、Ｐ３を未消化教示点として未消化教示点記憶部５３Ｐに記憶する。未消化教示点記憶部５３は、複数の未消化教示点を順次格納可能なバッファ形式としている。
【００４８】
次に、第３工程部２７は、各制御対象を各々の移動目標教示点に到達させるための軌道計画および補間演算等を行い、駆動信号を駆動指令部１２に出力する。すなわち、マニピュレータＲを教示点Ｒ３に、ポジショナＰを教示点Ｐ３’に各々到達させる。
【００４９】
制御対象が各々の移動目標教示点に同時に到達した後、いずれかの制御対象が非同期制御区間の最終教示点である教示点Ｒ５またはＰ５に到達しているか否かを判断する。この場合は最終教示点に到達していないので、第１工程部２５に対し、移動目標教示点を入力して非同期制御を続行する。すなわち、基準制御対象であるマニピュレータＲの移動目標教示点として次の教示点Ｒ４を入力し、基準制御対象以外の制御対象であるポジショナＰの移動目標教示点として未消化教示点Ｐ３を入力する。
［例外処理］
上記までの工程において各制御対象の移動時間が同一になる場合は、非同期制御ではなく同期制御が行われることになる。そして、制御対象が各々の移動目標教示点に同時に到達した後の次の移動目標教示点としては、各々教示されている次の教示点が選択される。この例外処理は、以降の処理においても同様である。
【００５０】
［非同期制御区間の教示点Ｒ４および未消化教示点Ｐ３への非同期制御］
上記までの非同期制御によって、マニピュレータＲの移動目標教示点は教示点Ｒ４、ポジショナＰの移動目標教示点は未消化教示点Ｐ３となっている。
【００５１】
図５は、教示点Ｒ４および未消化教示点Ｐ３に移動させる際の処理を説明するための図である。同図（ａ）は、ポジショナＰが現在位置である教示点Ｐ３’から未消化教示点Ｐ３へ移動する際の移動時間と移動速度との関係を、同図（ｂ）はマニピュレータＲが現在位置である教示点Ｒ３から教示点Ｒ４へ移動する際の移動時間と移動速度との関係をそれぞれ示した波形図である。
【００５２】
第１工程部２５は、設定された移動速度に従ってマニピュレータＲが教示点Ｒ４に到達する際の移動時間Ｔｒ４を算出する。同様に、ポジショナＰは設定された移動速度に従って未消化教示点Ｐ３に到達する際の移動時間Ｔｐ３を算出する。同図に示すように、「マニピュレータＲの移動時間Ｔｒ４＜ポジショナＰの移動時間Ｔｐ３」となる。すなわち、移動目標教示点に最短時間で到達する制御対象はマニピュレータＲであるので、マニピュレータＲを基準制御対象として決定し、基準制御対象記憶部５１に記憶する。基準制御対象以外の制御対象はポジショナＰとなる。
【００５３】
次に、第２工程部２６は、ポジショナＰが自身の移動経路を設定された移動速度で移動し、上記最短時間すなわちマニピュレータＲの移動時間Ｔｒ４の経過後に到達する位置を、移動目標教示点Ｐ３’’として再設定し、再設定教示点記憶部５２Ｐに記憶する。さらに、本来到達すべき教示点はＰ４であるので、Ｐ４を未消化教示点として未消化教示点記憶部５３Ｐに記憶する。この段階で未消化教示点記憶部５３Ｐには、教示点Ｐ３およびＰ４が格納されたことになる。
【００５４】
次に、第３工程部２７は、各制御対象を各々の移動目標教示点に到達させるための軌道計画および補間演算等を行い、駆動信号を駆動指令部１２に出力する。すなわち、マニピュレータＲを教示点Ｒ４に、ポジショナＰを教示点Ｐ３’’に各々到達させる。
【００５５】
制御対象が各々の移動目標教示点に同時に到達した後、いずれかの制御対象が非同期制御区間の最終教示点である教示点Ｒ５またはＰ５に到達しているか否かを判断する。この場合は最終教示点に到達していないので、第１工程部２５に対し、移動目標教示点を入力して非同期制御を続行する。すなわち、基準制御対象であるマニピュレータＲの移動目標教示点として次の教示点Ｒ５を入力し、基準制御対象以外の制御対象であるポジショナＰの移動目標教示点として教示点Ｐ３を入力する。
【００５６】
［非同期制御区間の教示点Ｒ５および未消化教示点Ｐ３への非同期制御］
上記までの非同期制御によって、マニピュレータＲの移動目標教示点は教示点Ｒ５、ポジショナＰの移動目標教示点は未消化教示点Ｐ３となっている。
【００５７】
図６は、教示点Ｒ５および未消化教示点Ｐ３に移動させる際の処理を説明するための図である。同図（ａ）は、ポジショナＰが現在位置である教示点Ｐ３’’から未消化教示点Ｐ３へ移動する際の移動時間と移動速度との関係を、同図（ｂ）はマニピュレータＲが現在位置である教示点Ｒ４から移動目標教示点Ｒ５へ移動する際の移動時間と移動速度との関係をそれぞれ示した波形図である。
【００５８】
第１工程部２５は、設定された移動速度に従ってマニピュレータＲが教示点Ｒ５に到達する際の移動時間Ｔｒ５を算出する。同様に、設定された移動速度に従ってポジショナＰは未消化教示点Ｐ３に到達する際の移動時間Ｔｐ３を算出する。同図に示すように、「マニピュレータＲの移動時間Ｔｒ５＞ポジショナＰの移動時間Ｔｐ３」となる。すなわち、移動目標教示点に最短時間で到達する制御対象はポジショナＰであるので、ポジショナＰを基準制御対象として決定し、基準制御対象記憶部５１に記憶する。基準制御対象以外の制御対象はマニピュレータＲとなる。
【００５９】
次に、第２工程部２６は、マニピュレータＲが自身の移動経路を設定された移動速度で移動し、上記最短時間すなわちポジショナＰの移動時間Ｔｐ３の経過後に到達する位置を、移動目標教示点Ｒ５’として再設定し、再設定教示点記憶部５２Ｒに記憶する。さらに、本来到達すべき教示点はＲ５およびＰ５であるので、教示点Ｒ５を未消化教示点として未消化教示点記憶部５３Ｒに、教示点Ｐ５を未消化教示点として未消化教示点記憶部５３Ｐに記憶する。
【００６０】
次に、第３工程部２７は、各制御対象を各々の移動目標教示点に到達させるための軌道計画および補間演算等を行い、駆動信号を駆動指令部１２に出力する。すなわち、マニピュレータＲを教示点Ｒ５’に、ポジショナＰを未消化教示点Ｐ３に各々到達させる。このとき、ポジショナＰは未消化教示点Ｐ３に到達することになるので、未消化教示点Ｐ３を未消化教示点記憶部５３Ｐから消去する。すなわち、この段階で、未消化教示点記憶部５３Ｐには教示点Ｐ４およびＰ５が、未消化教示点記憶部５３Ｒには教示点Ｒ５が格納されていることになる。
【００６１】
制御対象が各々の移動目標教示点に同時に到達した後、いずれかの制御対象が非同期制御区間の最終教示点である教示点Ｒ５またはＰ５に到達しているか否かを判断する。この場合は最終教示点に到達していないので、第１工程部２５に対し、移動目標教示点を入力して非同期制御を続行する。すなわち、基準制御対象であるポジショナＰの移動目標教示点として現在位置に最も近い未消化教示点Ｐ４を、基準制御対象以外の制御対象であるマニピュレータＲの移動目標教示点として未消化教示点Ｒ５を入力する。
【００６２】
［非同期制御区間の未消化教示点Ｒ５および未消化教示点Ｐ４への非同期制御］
上記までの非同期制御によって、マニピュレータＲの移動目標教示点は未消化教示点Ｒ５、ポジショナＰの移動目標教示点は未消化教示点Ｐ４となっている。
【００６３】
図７は、未消化教示点Ｒ５および未消化教示点Ｐ４に移動させる際の処理を説明するための図である。同図（ａ）は、ポジショナＰが現在位置である教示点Ｐ３から未消化教示点Ｐ４へ移動する際の移動時間と移動速度との関係を、同図（ｂ）はマニピュレータＲが現在位置である教示点Ｒ５’から未消化教示点Ｒ５へ移動する際の移動時間と移動速度との関係をそれぞれ示した波形図である。
【００６４】
第１工程部２５は、マニピュレータＲが未消化教示点Ｒ５の移動命令で設定された移動速度に従って未消化教示点Ｒ５に到達する際の移動時間Ｔｒ５を算出する。同様に、ポジショナＰは未消化教示点Ｐ４の移動命令で設定された移動速度に従って未消化教示点Ｐ４に到達する際の移動時間Ｔｐ４を算出する。同図に示すように、「マニピュレータＲの移動時間Ｔｒ５＜ポジショナＰの移動時間Ｔｐ４」となる。すなわち、移動目標教示点に最短時間で到達する制御対象はマニピュレータＲであるので、マニピュレータＲを基準制御対象として決定し基準制御対象記憶部５１に記憶する。基準制御対象以外の制御対象はポジショナＰとなる。
【００６５】
次に、第２工程部２６は、ポジショナＰが自身の移動経路を設定された移動速度で移動し、上記最短時間すなわちマニピュレータＲの移動時間Ｔｒ５の経過後に到達する位置を、移動目標教示点Ｐ４’として再設定し、再設定教示点記憶部５２Ｐに記憶する。なお、未消化教示点記憶部５３には、すでに最終教示点Ｒ５およびＰ５が記憶されているので、この段階において未消化教示点を記憶する必要はない。
【００６６】
次に、第３工程部２７は、各制御対象を各々の移動目標教示点に到達させるための軌道計画および補間演算等を行い、駆動信号を駆動指令部１２に出力する。すなわち、マニピュレータＲを未消化教示点Ｒ５に、ポジショナＰを教示点Ｐ４’に各々到達させる。このとき、マニピュレータＲは未消化教示点Ｒ５に到達することになるので、未消化教示点Ｒ５を未消化教示点記憶部５３Ｒから消去する。すなわち、この段階で、未消化教示点記憶部５３Ｐにのみ、教示点Ｐ４およびＰ５が格納されていることになる。
【００６７】
制御対象が各々の移動目標教示点に同時に到達した後、いずれかの制御対象が非同期制御区間の最終教示点である教示点Ｒ５またはＰ５に到達しているか否かを判断する。この場合、マニピュレータＲが最終教示点Ｒ５に到達しているので、非同期制御を終了する。すなわち、基準制御対象であるマニピュレータＲを最終教示点Ｒ５で待機させ、基準制御対象以外の制御対象であるポジショナＰのみを未消化教示点Ｐ４を経由して最終教示点Ｐ５に到達させて非同期制御を終了する。
【００６８】
上述したように、予め教示された非同期制御区間で複数の制御対象の非同期制御を可能にしたので、特にエアカット経路における無駄な移動時間を削減することができる。すなわち、タクトタイムを短縮することによって生産効率を向上させることができる。図８は、本発明によって無駄な移動時間が削減される様子を示した図である。同図（ａ）および（ｂ）は従来の図１１と同様の波形図である。図（ｃ）および（ｄ）は本発明を適用した場合の波形図である。特にマニピュレータＲのエアカット経路である教示点Ｒ３〜Ｒ５の移動時間が時間Ｔａで示した分だけ削減されている様子を示している。このように、同期制御が不要なエアカット経路においてマニピュレータＲを先に作業原点に復帰させることによって、例えば、ポジショナＲが作業原点に復帰するのに先行してトーチ清掃等の作業を開始することができる。すなわち、無駄な移動時間を削減することによって生産性を向上させることができる。
【００６９】
また、外部機器から入力された非同期制御信号によって非同期制御区間を設定できるようにしたことによって非同期制御区間の教示を不要にしている。このことによって、上記効果に加えて、教示作業を簡素化できるとともに、周辺機器との連動タイミングに合わせてリアルタイムに非同期制御を行うことができるので、フレキシブルなシステムを構築することができる。
【００７０】
また、１つの作業プログラムで非同期制御を可能にしたので、複数の制御対象毎に作業プログラムを作成する必要がない。すなわち、上記効果に加えて、教示作業を簡素化できる。
【００７１】
上記実施形態では、ロボット制御装置に接続される制御対象がロボット１台およびポジショナ１台であることを前提に説明したが、本実施形態はこれに限定されるものではない。制御対象がロボット１台およびスライダ１台である場合、ロボットのみが２台である場合、制御対象が３台以上である場合においても本発明を適用することができる。
【図面の簡単な説明】
【００７２】
【図１】本発明のロボット制御装置を適用した産業用ロボットのブロック図である。
【図２】本発明のロボット制御装置によって作成した作業プログラムの教示例を示す図である。
【図３】本発明のロボット制御装置で非同期制御を行う際のフローチャートである。
【図４】非同期制御区間の最初の教示点Ｒ３およびＰ３に移動させる際の処理を説明するための図である。
【図５】教示点Ｒ４および未消化教示点Ｐ３に移動させる際の処理を説明するための図である。
【図６】教示点Ｒ５および未消化教示点Ｐ３に移動させる際の処理を説明するための図である。
【図７】未消化教示点Ｒ５および未消化教示点Ｐ４に移動させる際の処理を説明するための図である。
【図８】本発明によって無駄な移動時間が削減される様子を示した図である。
【図９】従来の、１台のマニピュレータおよび１台のポジショナを同期制御する産業用ロボットのブロック図である。
【図１０】従来の作業プログラムの教示例を示す図である。
【図１１】エアカット経路で同期制御を行う際の無駄時間を説明するための図である。
【符号の説明】
【００７３】
１            ロボット制御装置
２            ＴＰインタフェース
３            主制御部
４            ハードディスク
５            ＲＡＭ
６            入出力インターフェース
１１            動作制御部
１２            駆動指令部
２１            命令解釈部
２２            同期制御部
２３            非同期制御部
２５            第１工程部
２６            第２工程部
２７            第３工程部
５１            基準制御対象記憶部
５２            追加教示点記憶部
５３            未消化教示点記憶部
Ｃｍ            命令
ＥＰ            外部機器
Ｐ            ポジショナ
Ｐｐ            位置データ
Ｐｒ            位置データ
Ｐｔ            ポイント
Ｒ            マニピュレータ
ＳＢ            起動ボックス
Ｓｐ            移動速度
Ｔａ            時間
ＴＰ            ティーチペンダント
Ｗ            ワーク
ＷＲ            移動経路
【図１】
2009026171.tif 000003
【図２】
2009026171.tif 000004
【図３】
2009026171.tif 000005
【図４】
2009026171.tif 000006
【図５】
2009026171.tif 000007
【図６】
2009026171.tif 000008
【図７】
2009026171.tif 000009
【図８】
2009026171.tif 000010
【図９】
2009026171.tif 000011
【図１０】
2009026171.tif 000012
【図１１】
2009026171.tif 000013