(57)【要約】【課題】多様なユーザインタフェースにて、多様なロボットの動作プログラミングを可能とするのに有効なコントロールシステムを提供する。【解決手段】コントロールシステム１は、第一コントローラ１００と、第二コントローラ２００と、を備える。第二コントローラ２００は、複数の座標変換プログラムを記憶したプログラム記憶部２１０と、複数の座標変換プログラムのいずれかを指定するプログラム指定情報を第一コントローラ１００から取得することと、第一コントローラ１００用の座標系での第一動作指令を第一コントローラ１００から取得することと、プログラム指定情報に従った座標変換プログラムを用い、第一動作指令を多軸ロボット１０の複数の関節軸Ｊ１〜Ｊ６の動作目標値に変換することと、動作目標値に応じた駆動電力を複数の関節軸Ｊ１〜Ｊ６に出力することと、を実行するように構成された制御処理部２４０と、を有する。【選択図】図１
2018153883.tif 000002
【特許請求の範囲】
【請求項１】
複数の制御対象を制御する第一コントローラと、
第一コントローラからの指令に応じて多軸ロボットを制御する第二コントローラと、を備え、
前記第二コントローラは、
前記多軸ロボットの複数の関節軸に駆動電力を出力する電力出力部と、
複数の座標変換プログラムを記憶した記憶部と、
前記第一コントローラとの間で情報の入出力を行う第一通信部と、
前記複数の座標変換プログラムのいずれかを指定するプログラム指定情報を前記第一通信部により前記第一コントローラから取得することと、前記第一コントローラ用の座標系での動作指令を前記第一通信部により前記第一コントローラから取得することと、前記プログラム指定情報に従った前記座標変換プログラムを用い、前記動作指令を前記多軸ロボットの前記複数の関節軸の動作目標値に変換することと、前記動作目標値に応じた駆動電力を前記電力出力部により前記複数の関節軸に出力することと、を実行するように構成された制御処理部と、を有するコントロールシステム。
【請求項２】
前記第二コントローラは、
端末装置との間で情報の入出力を行う第二通信部を更に備え、
前記制御処理部は、前記第二通信部により前記端末装置から前記座標変換プログラムを取得して前記記憶部に書き込むことを更に実行するように構成されている、請求項１記載のコントロールシステム。
【請求項３】
前記複数の座標変換プログラムは、前記第一コントローラの制御内容をプログラミングするための第一プログラミング言語とは異なる第二プログラミング言語によりプログラミングされた座標変換プログラムを含む、請求項１又は２記載のコントロールシステム。
【請求項４】
前記複数の座標変換プログラムは、互いに座標系の異なる複数種類の前記第一コントローラにそれぞれ対応する複数の座標変換プログラムを含む、請求項１〜３のいずれか一項記載のコントロールシステム。
【請求項５】
前記複数の座標変換プログラムは、複数種類の前記多軸ロボットにそれぞれ対応する複数の座標変換プログラムを含む、請求項１〜４のいずれか一項記載のコントロールシステム。
【請求項６】
多軸ロボットの複数の関節軸に駆動電力を出力する電力出力部と、
複数の座標変換プログラムを記憶した記憶部と、
複数の制御対象を制御する第一コントローラとの間で情報の入出力を行う第一通信部と、
前記複数の座標変換プログラムのいずれかを指定するプログラム指定情報、及び前記第一コントローラ用の座標系での動作指令を前記第一通信部により前記第一コントローラから取得することと、前記プログラム指定情報に従った前記座標変換プログラムを用い、前記動作指令を前記多軸ロボットの前記複数の関節軸の動作目標値に変換することと、前記動作目標値に応じた駆動電力を前記電力出力部により前記複数の関節軸に出力することと、を実行するように構成された制御処理部と、を備えるコントローラ。
【請求項７】
端末装置との間で情報の入出力を行う第二通信部を更に備え、
前記制御処理部は、前記第二通信部により前記端末装置から前記座標変換プログラムを取得して前記記憶部に書き込むことを更に実行するように構成されている、請求項６記載のコントローラ。
【請求項８】
前記複数の座標変換プログラムは、前記第一コントローラの制御内容をプログラミングするための第一プログラミング言語とは異なる第二プログラミング言語によりプログラミングされた座標変換プログラムを含む、請求項６又は７記載のコントローラ。
【請求項９】
前記複数の座標変換プログラムは、互いに座標系の異なる複数種類の前記第一コントローラにそれぞれ対応する複数の座標変換プログラムを含む、請求項６〜８のいずれか一項記載のコントローラ。
【請求項１０】
前記複数の座標変換プログラムは、複数種類の前記多軸ロボットにそれぞれ対応する複数の座標変換プログラムを含む、請求項６〜９のいずれか一項記載のコントローラ。
【請求項１１】
複数の制御対象を制御する第一コントローラからの指令に応じて多軸ロボットを制御する第二コントローラにより、
複数の座標変換プログラムを記憶することと、
複数の座標変換プログラムのいずれかを指定するプログラム指定情報、及び前記第一コントローラ用の座標系での動作指令を前記第一コントローラから取得することと、
前記プログラム指定情報に従った前記座標変換プログラムを用い、前記動作指令を前記多軸ロボットの複数の関節軸の動作目標値に変換することと、
前記動作目標値に応じた駆動電力を前記複数の関節軸に出力することと、を含む制御方法。
【請求項１２】
前記第二コントローラにより、
端末装置から前記座標変換プログラムを取得して記憶することを更に含む、請求項１１記載の制御方法。
【請求項１３】
前記複数の座標変換プログラムは、前記第一コントローラの制御内容をプログラミングするための第一プログラミング言語とは異なる第二プログラミング言語によりプログラミングされた座標変換プログラムを含む、請求項１１又は１２記載の制御方法。
【請求項１４】
前記複数の座標変換プログラムは、互いに座標系の異なる複数種類の前記第二コントローラにそれぞれ対応する複数の座標変換プログラムを含む、請求項１１〜１３のいずれか一項記載の制御方法。
【請求項１５】
前記複数の座標変換プログラムは、複数種類の前記多軸ロボットにそれぞれ対応する複数の座標変換プログラムを含む、請求項１１〜１４のいずれか一項記載の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、コントロールシステム、コントローラ及び制御方法に関する。
【背景技術】
【０００２】
特許文献１には、数値制御工作機械のコンピュータによって実行されるべく構成された数値制御言語プログラムをロボット言語プログラムに変換して大容量記憶装置に記録するステップと、大容量記憶装置とロボットに接続されたロボット制御装置を用いてロボット言語プログラムを実行するステップとを備える方法が開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１３−１３４７８６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
本開示は、多様なユーザインタフェースにて、多様なロボットの動作プログラミングを可能とするのに有効なコントロールシステム、制御方法及びコントローラを提供することを目的とする。
【課題を解決するための手段】
【０００５】
本開示の一側面に係るコントロールシステムは、複数の制御対象を制御する第一コントローラと、第一コントローラからの指令に応じて多軸ロボットを制御する第二コントローラと、を備え、第二コントローラは、多軸ロボットの複数の関節軸に駆動電力を出力する電力出力部と、複数の座標変換プログラムを記憶した記憶部と、第一コントローラとの間で情報の入出力を行う第一通信部と、複数の座標変換プログラムのいずれかを指定するプログラム指定情報を第一通信部により第一コントローラから取得することと、第一コントローラ用の座標系での動作指令を第一通信部により第一コントローラから取得することと、プログラム指定情報に従った座標変換プログラムを用い、動作指令を多軸ロボットの複数の関節軸の動作目標値に変換することと、動作目標値に応じた駆動電力を電力出力部により複数の関節軸に出力することと、を実行するように構成された制御処理部と、を有する。
【０００６】
本開示の他の側面に係るコントローラは、多軸ロボットの複数の関節軸に駆動電力を出力する電力出力部と、複数の座標変換プログラムを記憶した記憶部と、複数の制御対象を制御する第一コントローラとの間で情報の入出力を行う第一通信部と、複数の座標変換プログラムのいずれかを指定するプログラム指定情報、及び第一コントローラ用の座標系での動作指令を第一通信部により第一コントローラから取得することと、プログラム指定情報に従った座標変換プログラムを用い、動作指令を多軸ロボットの複数の関節軸の動作目標値に変換することと、動作目標値に応じた駆動電力を電力出力部により複数の関節軸に出力することと、を実行するように構成された制御処理部と、を備える。
【０００７】
本開示の他の側面に係る制御方法は、複数の制御対象を制御する第一コントローラからの指令に応じて多軸ロボットを制御する第二コントローラにより、複数の座標変換プログラムを記憶することと、複数の座標変換プログラムのいずれかを指定するプログラム指定情報、及び第一コントローラ用の座標系での動作指令を第一コントローラから取得することと、プログラム指定情報に従った座標変換プログラムを用い、動作指令を多軸ロボットの複数の関節軸の動作目標値に変換することと、動作目標値に応じた駆動電力を複数の関節軸に出力することと、を含む。
【発明の効果】
【０００８】
本開示によれば、多様なユーザインタフェースにて、多様なロボットの動作プログラミングを可能とするのに有効なコントロールシステム、制御方法及びコントローラを提供することができる。
【図面の簡単な説明】
【０００９】
【図１】コントロールシステムの機能的な構成を示すブロック図である。
【図２】コントロールシステムのハードウェア構成を示すブロック図である。
【図３】第一コントローラの制御手順を示すフローチャートである。
【図４】第二コントローラの制御手順を示すフローチャートである。
【図５】座標変換プログラムの登録手順を示すフローチャートである。
【発明を実施するための形態】
【００１０】
以下、実施形態について、図面を参照しつつ詳細に説明する。説明において、同一要素又は同一機能を有する要素には同一の符号を付し、重複する説明を省略する。
【００１１】
〔コントロールシステム〕
本実施形態に係るコントロールシステム１は、一連の工程を実行するように複数種類の制御対象を制御するものである。図１に示すように、コントロールシステム１は、複数の制御対象を制御する第一コントローラ１００と、第一コントローラからの指令に応じて多軸ロボット１０を制御する第二コントローラ２００と、第一コントローラからの指令に応じて多軸ロボット１０の周辺装置２０を制御する第三コントローラ３００とを備える。
【００１２】
多軸ロボット１０は、例えばシリアルリンク型の垂直多関節ロボットであり、複数（例えば６軸）の関節軸Ｊ１〜Ｊ６と、関節軸Ｊ１〜Ｊ６をそれぞれ駆動する複数のアクチュエータ１１〜１６とを有する。周辺装置２０は、例えばサーボモータ２１を有し、これを動力源として動作する。例えば周辺装置２０は、多軸ロボット１０による作業対象のワークを保持し、多軸ロボット１０の作業と協調してワークの位置・姿勢を調節する。
【００１３】
第一コントローラ１００は、例えばＰＬＣ（Ｐｒｏｇｒａｍｍａｂｌｅ  Ｌｏｇｉｃ  Ｃｏｎｔｒｏｌｅｒ）であり、所定の信号入力に応じて、第二コントローラ２００及び第三コントローラ３００を介した複数の制御処理を所定の順序で実行する。各々の制御処理において、第一コントローラ１００は、所定の制御周期で第二コントローラ２００及び第三コントローラ３００に動作指令（例えば位置制御の目標値）を出力する。第一コントローラ１００は、複数の制御対象を制御するものであればいかなるものであってもよく、所謂マシンコントローラであってもよい。
【００１４】
第一コントローラ１００は、機能的な構成（以下、「機能モジュール」という。）として、モーション記憶部１１０と、通信部１２０，１３０，１４０と、制御処理部１５０とを有する。
【００１５】
モーション記憶部１１０は、多軸ロボット１０及び周辺装置２０の動作内容を規定する情報（以下、「モーション情報」という。）を記憶する。モーション情報は、例えば、多軸ロボット１０の制御に用いるべき座標変換プログラムを指定する情報（以下、「プログラム指定情報」という。）と、多軸ロボット１０及び周辺装置２０に出力すべき動作指令を時系列で並べたリストとを含む。
【００１６】
通信部１２０は、第二コントローラ２００との間で情報の入出力を行う。通信部１３０は、第三コントローラ３００との間で情報の入出力を行う。通信部１４０は、端末装置３０との間で情報の入出力を行う。端末装置３０は、モーション情報のプログラミングに用いられる。
【００１７】
制御処理部１５０は、上記プログラム指定情報と、多軸ロボット１０を動作させる第一動作指令とを通信部１２０により第二コントローラ２００に出力することと、第二動作指令を通信部１３０により第三コントローラ３００に出力することと、を実行するように構成されている。
【００１８】
例えば制御処理部１５０は、より細分化された機能モジュールとして、指令生成部１５１と、プログラム指定部１５２と、指令出力部１５３，１５４と、モーション取得部１５５とを有する。
【００１９】
指令生成部１５１は、モーション記憶部１１０に記憶されたモーション情報からプログラム指定情報を取得し、モーション情報に基づいて制御周期ごとに上記第一動作指令及び第二動作指令を生成する。プログラム指定情報は、例えば座標変換プログラムの識別番号である。第一動作指令は、例えば直交座標系等のシステム制御用の座標系（以下、「第一座標系」という。）にて、多軸ロボット１０の先端部の位置・姿勢目標値を特定する数値データである。第二動作指令は、例えば周辺装置２０のサーボモータ２１の角度目標値を定める数値データである。
【００２０】
プログラム指定部１５２は、プログラム指定情報を通信部１２０により第二コントローラ２００に出力する。指令出力部１５３は、第一動作指令を通信部１２０により第二コントローラ２００に出力する。指令出力部１５４は、第二動作指令を通信部１３０により第三コントローラ３００に出力する。
【００２１】
モーション取得部１５５は、所定の言語（以下、「第一プログラミング言語」という。）でプログラミングされたモーション情報を通信部１４０により端末装置３０から取得し、当該モーション情報をモーション記憶部１１０に書き込む。第一プログラミング言語は、例えば産業用のプログラミング言語である。産業用プログラミング言語の具体例としては、ＬＤ（Ｌａｄｄｅｒ  Ｄｉａｇｒａｍ）、ＦＢＤ（Ｆｕｎｃｔｉｏｎ  Ｂｌｏｃｋ  Ｄｉａｇｒａｍ）、ＳＦＣ（Ｓｅｑｕｅｎｔｉａｌ  Ｆｕｎｃｔｉｏｎ  Ｃｈａｒｔ）、ＩＬ（Ｉｎｓｔｒｕｃｔｉｏｎ  Ｌｉｓｔ）、及びＳＴ（Ｓｔｒｕｃｔｕｒｅｄ  Ｔｅｘｔ）等が挙げられる。
【００２２】
第二コントローラ２００は、例えばロボットコントローラであり、第一コントローラ１００からの指令に応じて多軸ロボット１０を制御する。第二コントローラ２００は、機能的な構成（以下、「機能モジュール」という。）として、プログラム記憶部２１０と、モデル情報記憶部２６０と、通信部２２０，２３０と、制御処理部２４０と、電力出力部２５０とを有する。
【００２３】
プログラム記憶部２１０は、複数の座標変換プログラムを記憶する。座標変換プログラムは、第一プログラミング言語によりプログラミングされたモーション情報内で指定することができ、上記第一座標系を多軸ロボット１０の制御用の座標系（例えば、関節軸Ｊ１〜Ｊ６の関節座標系。以下、「第二座標系」という。）に変換するためのＡＰＩ（Ａｐｐｌｉｃａｔｉｏｎ  Ｐｒｏｇｒａｍｍｉｎｇ  Ｉｎｔｅｒｆａｃｅ）である。座標変換プログラムは、第一コントローラ１００の制御内容をプログラミングするための上記第一プログラミング言語とは異なる第二プログラミング言語によりプログラミングされている。座標変換プログラムは、第二プログラミング言語によりハードコーディングされていてもよい。ハードコーディングとは、座標変換の内容がユーザにより編集不能な形式でコーディングされていることを意味する。第二プログラミング言語の具体例としては、Ｃ言語、Ｂａｓｉｃ、アセンブラ、又はパスカル等が挙げられる。
【００２４】
複数の座標変換プログラムは、基準とする座標系が互いに異なる複数種類の第一コントローラ１００にそれぞれ対応する複数の座標変換プログラムを含んでいてもよい。複数の座標変換プログラムは、複数種類の多軸ロボット１０にそれぞれ対応する複数の座標変換プログラムを含んでいてもよい。また、複数の座標変換プログラムは、上記複数種類の第一コントローラ１００と、上記複数種類の多軸ロボット１０との組み合わせにそれぞれ対応する複数の座標変換プログラムを含んでいてもよい。
【００２５】
モデル情報記憶部２６０は、多軸ロボット１０のモデル情報を記憶する。モデル情報は、例えば、多軸ロボット１０の構造、大きさ、質量等の他、アクチュエータ１１〜１６の定格出力及び制御ゲイン等のような、多軸ロボット１０の機構パラメータ及び制御パラメータを示す数値データの集合である。
【００２６】
モデル情報記憶部２６０についても、複数種類の多軸ロボット１０にそれぞれ対応する複数のモデル情報を含んでいてもよい。なお複数種類の多軸ロボット１０は、第二コントローラ２００でが制御可能であればいかなる種類の多軸ロボットを含んでいてもよい。例えば複数種類の多軸ロボット１０は、上述したシリアルリンク型の垂直多関節ロボットの他、水平多関節型のロボット、パラレルリンク型のロボット等を含んでいてもよい。
【００２７】
通信部２２０（第一通信部）は、第一コントローラ１００との間で情報の入出力を行う。通信部２３０（第二通信部）は、端末装置４０との間で情報の入出力を行う。端末装置４０は、座標変換プログラムの登録に用いられる。
【００２８】
電力出力部２５０は、多軸ロボット１０の複数の関節軸Ｊ１〜Ｊ６に駆動電力を出力する。
【００２９】
制御処理部２４０は、複数の座標変換プログラムのいずれかを指定するプログラム指定情報を通信部１２０により第一コントローラ１００から取得することと、第一コントローラ１００用の座標系での動作指令（上記第一動作指令）を通信部１２０により第一コントローラ１００から取得することと、プログラム指定情報に従った座標変換プログラムを用い、第一動作指令を多軸ロボット１０の複数の関節軸Ｊ１〜Ｊ６の動作目標値に変換することと、当該動作目標値に応じた駆動電力を電力出力部２５０により複数の関節軸Ｊ１〜Ｊ６に出力することと、を実行するように構成されている。制御処理部２４０は、通信部２３０により端末装置４０から座標変換プログラムを取得してプログラム記憶部２１０に書き込むことを更に実行するように構成されていてもよい。
【００３０】
例えば制御処理部２４０は、より細分化された機能モジュールとして、指令取得部２４１と、プログラム設定部２４２と、座標変換部２４３と、出力処理部２４４と、プログラム取得部２４５とを有する。
【００３１】
指令取得部２４１は、上記第一動作指令等、多軸ロボット１０の制御に関する指令を通信部２２０により第一コントローラ１００から取得する。
【００３２】
プログラム設定部２４２は、上記プログラム指定情報を通信部１２０により第一コントローラ１００から取得し、プログラム記憶部２１０に記憶された複数の座標変換プログラムのいずれかを当該プログラム指定情報に従って選定する。
【００３３】
座標変換部２４３は、プログラム設定部２４２により選定された座標変換プログラムを用い、上記第一動作指令を多軸ロボット１０の複数の関節軸Ｊ１〜Ｊ６の動作目標値に変換する。例えば座標変換部２４３は、プログラム設定部２４２により選定された座標変換プログラムを用い、上記第一座標系における第一動作指令を上記第二座標系における動作指令に変換し、当該動作指令と、モデル情報記憶部２６０に記憶されたモデル情報とを用いた逆運動学演算により関節軸Ｊ１〜Ｊ６の動作目標値を生成する。
【００３４】
出力処理部２４４は、座標変換部２４３により生成された動作目標値に応じた駆動電力を電力出力部２５０により関節軸Ｊ１〜Ｊ６に出力する。
【００３５】
プログラム取得部２４５は、通信部２３０により端末装置４０から座標変換プログラムを取得してプログラム記憶部２１０に書き込む。
【００３６】
第三コントローラ３００は、例えばサーボコントローラであり、第一コントローラ１００から出力された上記第二動作指令に応じて周辺装置２０を動作させるようにサーボモータ２１を制御する。
【００３７】
図２は、コントロールシステムのハードウェア構成を示すブロック図である。図２に示すように、第一コントローラ１００は回路１９０を有し、回路１９０は、一つ又は複数のプロセッサ１９１と、記憶部１９２と、通信ポート１９３，１９４，１９５とを有する。
【００３８】
記憶部１９２は、メモリ１９６及びストレージ１９７を含む。ストレージ１９７は、上記モーション記憶部１１０として機能し、且つ上記制御処理部１５０の各機能モジュールを構成するためのプログラムを記録している。ストレージ１９７は、コンピュータ読み取り可能であればどのようなものであってもよい。具体例として、ハードディスク、不揮発性の半導体メモリ、磁気ディスク及び光ディスク等が挙げられる。メモリ１９６は、ストレージ１９７からロードしたプログラム及びプロセッサ１９１の演算結果等を一時的に記憶する。プロセッサ１９１は、メモリ１９６と協働してプログラムを実行することで、制御処理部１５０の各機能モジュールを構成する。すなわち、プロセッサ１９１は制御処理部１５０として機能する。
【００３９】
通信ポート１９３は、プロセッサ１９１からの指令に応じ、第二コントローラ２００の通信ポート２９３（後述）との間で情報通信（例えば高速シリアル通信）を行う。通信ポート１９３は、上記通信部１２０として機能する。
【００４０】
通信ポート１９４は、プロセッサ１９１からの指令に応じ、第三コントローラ３００の通信ポート３９３（後述）との間で情報通信（例えば高速シリアル通信）を行う。通信ポート１９４は上記通信部１３０として機能する。
【００４１】
通信ポート１９５は、プロセッサ１９１からの指令に応じ、端末装置３０との間で情報通信（例えば高速シリアル通信）を行う。通信ポート１９５は上記通信部１４０として機能する。
【００４２】
第二コントローラ２００は回路２９０を有し、回路２９０は、一つ又は複数のプロセッサ２９１と、記憶部２９２と、通信ポート２９３，２９４と、入出力ポート２９５と、ドライバ２９６とを有する。
【００４３】
記憶部２９２は、メモリ２９７及びストレージ２９８を含む。ストレージ２９８は、上記プログラム記憶部２１０及びモデル情報記憶部２６０として機能し、且つ上記制御処理部２４０の各機能モジュールを構成するためのプログラムを記録している。ストレージ２９８は、コンピュータ読み取り可能であればどのようなものであってもよい。具体例として、ハードディスク、不揮発性の半導体メモリ、磁気ディスク及び光ディスク等が挙げられる。メモリ２９７は、ストレージ２９８からロードしたプログラム及びプロセッサ２９１の演算結果等を一時的に記憶する。プロセッサ２９１は、メモリ２９７と協働してプログラムを実行することで、制御処理部２４０の各機能モジュールを構成する。すなわち、プロセッサ２９１は制御処理部２４０として機能する。
【００４４】
通信ポート２９３は、プロセッサ２９１からの指令に応じ、第一コントローラ１００の通信ポート１９３との間で情報通信を行う。通信ポート１９３は上記通信部２２０として機能する。
【００４５】
通信ポート２９４は、プロセッサ２９１からの指令に応じ、端末装置４０との間で情報通信（例えば高速シリアル通信）を行う。通信ポート２９４は上記通信部２３０として機能する。
【００４６】
入出力ポート２９５は、プロセッサ２９１からの指令に応じ、関節軸Ｊ１〜Ｊ６の角度を示す電気信号をアクチュエータ１１〜１６から取得する。ドライバ２９６は、プロセッサ２９１からの指令に応じ、アクチュエータ１１〜１６に駆動電力を出力する。入出力ポート２９５は、上記電力出力部２５０として機能する。
【００４７】
第三コントローラ３００は回路３９０を有し、回路３９０は、一つ又は複数のプロセッサ３９１と、記憶部３９２と、通信ポート３９３と、入出力ポート３９４と、ドライバ３９５とを有する。
【００４８】
記憶部３９２は、メモリ３９６及びストレージ３９７を含む。ストレージ３９７は、周辺装置２０を制御するためのプログラムを記録している。ストレージ３９７は、コンピュータ読み取り可能であればどのようなものであってもよい。具体例として、ハードディスク、不揮発性の半導体メモリ、磁気ディスク及び光ディスク等が挙げられる。メモリ３９６は、ストレージ３９７からロードしたプログラム及びプロセッサ３９１の演算結果等を一時的に記憶する。プロセッサ３９１は、メモリ３９６と協働してプログラムを実行することで、上記第二動作指令に応じた周辺装置２０の制御を実行する。
【００４９】
通信ポート３９３は、プロセッサ３９１からの指令に応じ、第一コントローラ１００の通信部１３０との間で情報通信を行う。
【００５０】
入出力ポート３９４は、プロセッサ３９１からの指令に応じ、サーボモータ２１の回転角度を示す電気信号を取得する。ドライバ３９５は、プロセッサ３９１からの指令に応じ、サーボモータ２１に駆動電力を出力する。
【００５１】
なお、コントローラ１００，２００，３００のハードウェア構成は、必ずしもプログラムにより各機能ブロックを構成するものに限られない。例えばコントローラ１００，２００，３００の上記機能モジュールの少なくとも一部は、専用の論理回路又はこれを集積したＡＳＩＣ（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）により構成されていてもよい。
【００５２】
〔制御方法〕
続いて、制御方法の一例として、第一コントローラ１００における制御処理手順、第二コントローラ２００における制御処理手順及び第二コントローラ２００における座標変換プログラムの登録手順を説明する。
【００５３】
（第一コントローラにおける制御処理手順）
図３に示すように、第一コントローラ１００は、まずステップＳ０１を実行する。ステップＳ０１では、指令生成部１５１が、指令出力部１５３及び通信部１２０を介して多軸ロボット１０の制御の開始指令を第二コントローラ２００に出力し、指令出力部１５４及び通信部１３０を介して周辺装置２０の制御の開始指令を第三コントローラ３００に出力する。
【００５４】
次に、第一コントローラ１００はステップＳ０２を実行する。ステップＳ０２では、指令生成部１５１が、モーション記憶部１１０に記憶されたモーション情報からプログラム指定情報を取得し、当該プログラム指定情報をプログラム指定部１５２が通信部１２０により第二コントローラ２００に出力する。
【００５５】
次に、第一コントローラ１００はステップＳ０３を実行する。ステップＳ０３では、指令生成部１５１が、モーション記憶部１１０に記憶されたモーション情報に基づいて、制御開始後の最初の第一動作指令及び第二動作指令を生成する。
【００５６】
次に、第一コントローラ１００はステップＳ０４を実行する。ステップＳ０４では、指令出力部１５３が、指令生成部１５１により生成された第一動作指令を通信部１２０により第二コントローラ２００に出力し、指令出力部１５４が、指令生成部１５１により生成された第二動作指令を通信部１３０により第三コントローラ３００に出力する。
【００５７】
次に、第一コントローラ１００はステップＳ０５を実行する。ステップＳ０５では、上記モーション情報により規定される全ての動作指令の出力が完了したか否かを指令生成部１５１が確認する。
【００５８】
ステップＳ０５において、出力すべき動作指令が残っていると判定した場合、第一コントローラ１００はステップＳ０６を実行する。ステップＳ０６では、指令生成部１５１が制御周期の経過を待機する。
【００５９】
次に、第一コントローラ１００はステップＳ０７を実行する。ステップＳ０７では、指令生成部１５１が、モーション記憶部１１０に記憶されたモーション情報に基づいて、次の制御周期用の第一動作指令及び第二動作指令を生成する。
【００６０】
その後、第一コントローラ１００は処理をステップＳ０４に戻す。以後、全ての動作指令の出力が完了するまで、第一動作指令の出力、第二動作指令の出力、及び動作指令の更新が制御周期で繰り返される。
【００６１】
ステップＳ０５において、全ての動作指令の出力が完了したと判定した場合、第一コントローラ１００はステップＳ０８を実行する。ステップＳ０８では、指令生成部１５１が、指令出力部１５３及び通信部１２０を介して多軸ロボット１０の制御の完了指令を第二コントローラ２００に出力し、指令出力部１５４及び通信部１３０を介して周辺装置２０の制御の完了指令を第三コントローラ３００に出力する。以上で第一コントローラ１００における制御処理手順が完了する。
【００６２】
（第二コントローラにおける制御処理手順）
図４に示すように、第二コントローラ２００は、まずステップＳ１１を実行する。ステップＳ１１では、指令取得部２４１が、通信部１２０から通信部２２０への指令の受信状況を確認し、多軸ロボット１０の制御の開始指令の入力を待機する。
【００６３】
次に、第二コントローラ２００はステップＳ１２を実行する。ステップＳ１２では、プログラム設定部２４２が、通信部１２０から通信部２２０への指令の受信状況を確認し、上記プログラム指定情報の入力を待機する。
【００６４】
次に、第二コントローラ２００はステップＳ１３を実行する。ステップＳ１３では、プログラム設定部２４２が、上記プログラム指定情報を通信部２２０により第一コントローラ１００から取得し、プログラム記憶部２１０に記憶された複数の座標変換プログラムのいずれかを当該プログラム指定情報に従って選定する。
【００６５】
次に、第二コントローラ２００はステップＳ１４を実行する。ステップＳ１４では、指令取得部２４１が、通信部１２０から通信部２２０への指令の受信状況を確認し、上記第一動作指令の入力を待機する。
【００６６】
次に、第二コントローラ２００はステップＳ１５を実行する。ステップＳ１５では、指令取得部２４１が当該第一動作指令を取得する。その後、座標変換部２４３が、プログラム設定部２４２により選定された座標変換プログラムを用い、上記第一動作指令を多軸ロボット１０の複数の関節軸Ｊ１〜Ｊ６の動作目標値に変換する。例えば座標変換部２４３は、プログラム設定部２４２により選定された座標変換プログラムを用い、上記第一座標系における第一動作指令を上記第二座標系における動作指令に変換し、当該動作指令と、モデル情報記憶部２６０に記憶されたモデル情報とを用いた逆運動学演算により関節軸Ｊ１〜Ｊ６の動作目標値を生成する。
【００６７】
次に、第二コントローラ２００はステップＳ１６を実行する。ステップＳ１６では、出力処理部２４４が、座標変換部２４３により生成された動作目標値に応じた駆動電力を電力出力部２５０により関節軸Ｊ１〜Ｊ６に出力する。
【００６８】
次に、第二コントローラ２００はステップＳ１７を実行する。ステップＳ１７では、指令取得部２４１が、通信部１２０から通信部２２０への指令の受信状況を確認し、多軸ロボット１０の制御の完了指令を入力されているかを確認する。
【００６９】
ステップＳ１７において、上記完了指令は入力されていないと判定した場合、第二コントローラ２００は処理をステップＳ１４に戻す。以後、上記完了指令を受信するまで、第一動作指令の取得、座標変換、及び駆動電力の出力が制御周期で繰り返される。
【００７０】
ステップＳ１７において、上記完了指令を受信したと判定した場合、第二コントローラ２００は処理を完了する。以上で第二コントローラ２００における制御処理手順が完了する。
【００７１】
（第二コントローラにおける座標変換プログラムの登録手順）
図５に示すように、第二コントローラ２００はまずステップＳ２１を実行する。ステップＳ２１では、プログラム取得部２４５が、端末装置４０から通信部２３０へのデータの受信状況を確認し、座標変換プログラムの登録要求の入力を待機する。
【００７２】
次に、第二コントローラ２００はステップＳ２２を実行する。ステップＳ２２では、プログラム取得部２４５が、座標変換プログラムを端末装置４０から取得する。
【００７３】
次に、第二コントローラ２００はステップＳ２３を実行する。ステップＳ２３では、取得したプログラムのデータ形式が、座標変換部２４３において利用可能な形式であるか否かをプログラム取得部２４５が確認する。例えばプログラム取得部２４５は、プログラムの引数の形式が第一座標系のデータ形式に一致しているか、及びプログラムの出力データ数が第二座標系のデータ形式に一致しているか等を確認する。
【００７４】
ステップＳ２３において、プログラムのデータ形式が座標変換部２４３において利用可能な形式ではないと判定した場合、第二コントローラ２００はステップＳ２４を実行する。ステップＳ２４では、データ形式が不適切である旨を通知するメッセージをプログラム取得部２４５が端末装置４０に出力する。
【００７５】
ステップＳ２３において、プログラムのデータ形式が座標変換部２４３において利用可能な形式であると判定した場合、第二コントローラ２００はステップＳ２５を実行する。ステップＳ２５では、プログラム取得部２４５が、取得したプログラムをプログラム記憶部２１０に書き込む。以上で座標変換プログラムの取得処理が完了する。
【００７６】
〔本実施形態の効果〕
以上に説明したように、コントロールシステム１は、複数の制御対象を制御する第一コントローラ１００と、第一コントローラ１００からの指令に応じて多軸ロボット１０を制御する第二コントローラ２００と、を備える。第二コントローラ２００は、多軸ロボット１０の複数の関節軸Ｊ１〜Ｊ６に駆動電力を出力する電力出力部２５０と、複数の座標変換プログラムを記憶したプログラム記憶部２１０と、第一コントローラ１００との間で情報の入出力を行う通信部２２０と、複数の座標変換プログラムのいずれかを指定するプログラム指定情報を通信部２２０により第一コントローラ１００から取得することと、第一コントローラ１００用の座標系での第一動作指令を通信部２２０により第一コントローラ１００から取得することと、プログラム指定情報に従った座標変換プログラムを用い、第一動作指令を多軸ロボット１０の複数の関節軸Ｊ１〜Ｊ６の動作目標値に変換することと、動作目標値に応じた駆動電力を電力出力部２５０により複数の関節軸Ｊ１〜Ｊ６に出力することと、を実行するように構成された制御処理部２４０と、を有する。
【００７７】
多軸ロボット１０の動作プログラミングを第二コントローラ２００にて行う場合、当該プログラミングのためのユーザインタフェースは第二コントローラ２００のユーザインタフェースに限られることとなる。第一コントローラ１００のユーザインタフェースにて多軸ロボット１０の動作プログラミングを可能とするための一手法として、第一コントローラ１００のユーザインタフェース用の入力内容を、第二コントローラ２００のユーザインタフェース用の入力内容に自動変換する変換プログラムを導入することが考えられる。しかしながら、そのような変換プログラムを第一コントローラ１００のユーザインタフェースの種類ごとに準備するのには限界がある。
【００７８】
これに対し、本コントロールシステムでは、第二コントローラ２００の制御処理部２４０が、上記プログラム指定情報、及び上記第一動作指令を第一コントローラ１００から取得することと、プログラム指定情報に従った座標変換プログラムを用い、動作指令を多軸ロボット１０の複数の関節軸Ｊ１〜Ｊ６の動作目標値に変換することと、動作目標値に応じた駆動電力を電力出力部２５０により複数の関節軸Ｊ１〜Ｊ６に出力することと、を実行する。このため、プログラム指定情報及び第一動作指令を出力する限り、ユーザインタフェースの種類によらず、第一コントローラ１００において多軸ロボット１０の動作プログラミングを行うことが可能である。また、プログラム指定情報により、多軸ロボット１０の種別に応じた座標変換プログラムを指定可能であるため、多様な多軸ロボット１０の動作プログラミングが可能となる。従って、多様なユーザインタフェースにて、多様なロボットの動作プログラミングを可能とするのに有効である。
【００７９】
第二コントローラ２００は、端末装置４０との間で情報の入出力を行う通信部２３０を更に備え、制御処理部２４０は、通信部２３０により端末装置４０から座標変換プログラムを取得してプログラム記憶部２１０に書き込むことを更に実行するように構成されていてもよい。この場合、座標変換プログラムの追加登録を可能とすることで、より多様なロボットの動作プログラミングが可能となる。
【００８０】
複数の座標変換プログラムは、第一コントローラ１００の制御内容をプログラミングするための第一プログラミング言語とは異なる第二プログラミング言語によりプログラミングされた座標変換プログラムを含んでもよい。この場合、第一プログラミング言語に束縛されることなく、第二コントローラ２００におけるローカル処理に適した言語を第二プログラミング言語として用いることにより、座標変換の高速化・効率化を図ることができる。
【００８１】
複数の座標変換プログラムは、互いに座標系の異なる複数種類の第一コントローラ１００にそれぞれ対応する複数の座標変換プログラムを含んでもよい。この場合、より多様なユーザインタフェースにてロボットの動作プログラミングが可能となる。
【００８２】
複数の座標変換プログラムは、複数種類の多軸ロボット１０にそれぞれ対応する複数の座標変換プログラムを含んでもよい。この場合、より多様なロボットの動作プログラミングが可能となる。
【００８３】
以上、実施形態について説明したが、本発明は必ずしも上述した実施形態に限定されるものではなく、その要旨を逸脱しない範囲で様々な変形が可能である。
【符号の説明】
【００８４】
１…コントロールシステム、１００…第一コントローラ、１０…多軸ロボット、２００…第二コントローラ、Ｊ１，Ｊ２，Ｊ３，Ｊ４，Ｊ５，Ｊ６…関節軸、２１０…プログラム記憶部、２２０…通信部（第一通信部）、２３０…通信部（第二通信部）、２４０…制御処理部、２５０…電力出力部、４０…端末装置。
【図１】
2018153883.tif 000003
【図２】
2018153883.tif 000004
【図３】
2018153883.tif 000005
【図４】
2018153883.tif 000006
【図５】
2018153883.tif 000007