(57)【要約】【課題】簡易な構成で容易にロボットを制御するロボット制御装置を得ること。【解決手段】データを入出力するＩ／Ｏエリア内での位置であるＩ／Ｏ番号３Ａと、このＩ／Ｏ番号３Ａの位置に書き込まれるデータ４Ａと、によって定義された指示情報３０Ａを、所定のプログラム言語で動作するＰＬＣ１から受信すると、指示情報３０Ａ内の、Ｉ／Ｏ番号３Ａとデータ４Ａに基づいて指示情報３０Ａに応じた動作をロボット５に行なわせるロボットＣＰＵ２１を有する。【選択図】図１
2011062798.tif 000002
【特許請求の範囲】
【請求項１】
データを入出力するＩ／Ｏエリア内での位置と、この位置に書き込まれるデータと、によって定義された指示情報を、所定のプログラム言語で動作する指示送信装置から受信すると、前記定義に基づいて前記指示情報に応じた動作をロボットに行なわせる制御部を有することを特徴とするロボット制御装置。
【請求項２】
前記制御部は、
前記ロボットの状態を、前記Ｉ／Ｏエリア内での位置と、この位置に書き込まれるデータと、によって定義された状態情報として前記指示送信装置に送信することを特徴とする請求項１に記載のロボット制御装置。
【請求項３】
前記指示送信装置は、１〜複数の機器を制御するプログラマブルロジックコントローラであることを特徴とする請求項１または２に記載のロボット制御装置。
【請求項４】
前記制御部は、Ｉ／Ｏユニットを介して前記指示送信装置と接続されていることを特徴とする請求項１〜３のいずれか１つに記載のロボット制御装置。
【請求項５】
前記制御部は、ネットワークユニットを介して前記指示送信装置と接続されていることを特徴とする請求項１〜３のいずれか１つに記載のロボット制御装置。
【請求項６】
前記制御部は、前記指示送信装置と直接接続されていることを特徴とする請求項１〜３のいずれか１つに記載のロボット制御装置。
【請求項７】
データを入出力するＩ／Ｏエリア内での位置と、この位置に書き込まれるデータと、によって定義された指示情報を、所定のプログラム言語で動作する指示送信装置から受信する受信ステップと、
前記定義に基づいて前記指示情報に応じた動作をロボットに行なわせる制御ステップと、
を含むことを特徴とするロボット制御方法。
【請求項８】
前記制御ステップは、
前記ロボットの状態を、前記Ｉ／Ｏエリア内での位置と、この位置に書き込まれるデータと、によって定義された状態情報として前記指示送信装置に送信することを特徴とする請求項７に記載のロボット制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ロボットの制御を行うロボット制御装置およびロボット制御方法に関する。
【背景技術】
【０００２】
近年、ＦＡ（Factory  Automation）技術の進展に伴い、ＰＬＣ（Programmable  Logic  Controller）がロボットに所定の動作を行わせるロボットシステムの開発が進められている。このようなロボットシステムでは、ユーザはロボット言語とＰＬＣ言語の双方を扱う必要がある。
【０００３】
一般的に、ＰＬＣ言語の方がロボット言語よりも多くのユーザに使用されており、ロボット言語の習得者は少ない。そのため、ロボット言語を習得する必要性が、ロボットを導入する際のハードルとなる場合がある。
【０００４】
例えば、統一されたロボット言語を複数のロボット言語に変換する方法があるが、この方法では、ロボット言語の習得が必要である。また、新たに複数種類のロボットに使用可能なロボット言語を作るという方法があるが、この方法でも、ロボット言語の習得が必要である。また、ロボット制御装置の内部にＰＬＣ機能を搭載するという方法があるが、一般的にＰＬＣが上位機種であり、下位にロボットが接続されるので、ユーザの実使用にあっていない。
【０００５】
そこで、特許文献１に記載の産業用ロボットは、周辺機器に予め定められた動作を行わせる動作プログラムの先頭に、一連の動作を行わせるか否かを選択可能とする複数の接点プログラムを設けてＰＬＣを構成し、入出力インターフェースに、各接点プログラムのＯＮ／ＯＦＦを指示可能な入力部を複数設け、所望の動作が可能なように入力部を適宜選択してＯＮ状態とすることで、所望の動作が可能なラダープログラムを産業用ロボットに組み可能としている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００８−２６４９２８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、上記従来の技術では、ロボット言語と比較して記述が複雑になるラダープログラムを用いているので、メモリを多く消費してしまうという問題があった。また、ＰＬＣユーザは、ラダーユーザよりも、高級言語を使う傾向にあるので、言語依存性が発生する場合があるという問題があった。
【０００８】
本発明は、上記に鑑みてなされたものであって、簡易な構成で容易にロボットを制御するロボット制御装置およびロボット制御方法を得ることを目的とする。
【課題を解決するための手段】
【０００９】
上述した課題を解決し、目的を達成するために、本発明は、データを入出力するＩ／Ｏエリア内での位置と、この位置に書き込まれるデータと、によって定義された指示情報を、所定のプログラム言語で動作する指示送信装置から受信すると、前記定義に基づいて前記指示情報に応じた動作をロボットに行なわせる制御部を有することを特徴とする。
【発明の効果】
【００１０】
本発明によれば、Ｉ／Ｏエリア内での位置と、この位置に書き込まれるデータと、によって指示情報を定義しておき、この定義に基づいて指示情報に応じた動作をロボットに行なわせるので、簡易な構成で容易にロボットを制御することが可能になるという効果を奏する。
【図面の簡単な説明】
【００１１】
【図１】図１は、実施の形態に係るロボットシステムの構成を示す図である。
【図２】図２は、ロボットＣＰＵへの指示情報を説明するための図である。
【図３】図３は、ＰＬＣとロボットＣＰＵを、Ｉ／Ｏユニットを介して接続した場合のロボットシステムの構成を示す図である。
【図４】図４は、ＰＬＣとロボットＣＰＵを、ネットワークユニットを介して接続した場合のロボットシステムの構成を示す図である。
【図５】図５は、ＰＬＣとロボットＣＰＵを直接接続した場合のロボットシステムの構成を示す図である。
【発明を実施するための形態】
【００１２】
以下に、本発明に係るロボット制御装置およびロボット制御方法の実施の形態を図面に基づいて詳細に説明する。なお、この実施の形態によりこの発明が限定されるものではない。
【００１３】
実施の形態
図１は、本発明の実施の形態に係るロボットシステムの構成を示す図である。ロボットシステム１００は、ロボット言語を用いることなく任意のＰＬＣ言語（ＰＬＣプログラム）でロボット５を動作させるシステムであり、ＰＬＣ１と、ロボットＣＰＵ（制御部）２１と、ロボット５と、を備えている。
【００１４】
ＰＬＣ１は、ロボットＣＰＵ（Central  Processing  Unit）２１に接続されている。ＰＬＣ１は、ＣＰＵ１１を有しており、このＣＰＵ１１がロボット５を制御するための指示情報３０Ａ（ロボット制御コマンド）をロボットＣＰＵ２１に送る。指示情報３０Ａは、Ｉ／Ｏデータであり、Ｉ／Ｏ番号３Ａとデータ４Ａとを含んで構成されている。
【００１５】
ロボットＣＰＵ２１は、ＰＬＣ１およびロボット５に接続されており、ＰＬＣ１からの指示情報３０Ａに基づいてロボット５を制御する。ロボットＣＰＵ２１は、ＰＬＣ１からの指示情報３０Ａに対応する制御情報（ロボット５への制御指示）をロボット５に送る。また、ロボットＣＰＵ２１は、ロボット５の状態や動作に関する状態情報３０Ｂを、ＰＬＣ１に送る。ロボット５は、ロボットＣＰＵ２１からの制御情報に従って、制御情報に応じた動作を行う。状態情報３０Ｂは、Ｉ／Ｏ番号３Ｂとデータ４Ｂとを含んで構成されている。
【００１６】
ＰＬＣ１とロボットＣＰＵ２１との間では、所定のＩ／Ｏエリア（メモリ空間や共有メモリなど）を介して指示情報３０Ａや状態情報３０Ｂが送受信される。本実施の形態では、予めＩ／Ｏ番号３Ａ（アドレス）に指示情報３０Ａの種類（指示種類）を割り当てるとともに、データ４Ａに指示種類の内容を割り当てておく。また、予めＩ／Ｏ番号３Ｂに状態情報（状態種類）の種類を割り当てるとともに、データ４Ｂに状態種類の内容を割り当てておく。
【００１７】
ＰＬＣ１は、指示情報３０Ａ内で、Ｉ／Ｏ番号３Ａとして所定のアドレスを指定することによって指示種類を指定するとともに、データ４Ａとして所定のデータを入力することによって指示種類の内容を指定する。具体的には、指示種類に応じたアドレスに、指示種類の内容に応じたデータが入力され、Ｉ／Ｏ番号３Ａ、データ４ＡとしてＰＬＣ１のＣＰＵ１１からロボットＣＰＵ２１に送られる。
【００１８】
また、ロボットＣＰＵ２１は、状態情報３０Ｂ内で、Ｉ／Ｏ番号３Ｂとして所定のアドレスを指定することによって状態種類を指定するとともに、データ４Ｂとして所定のデータを入力することによって状態種類の内容を指定する。具体的には、状態種類に応じたアドレスに、状態類の内容に応じたデータが入力され、Ｉ／Ｏ番号３Ｂ、データ４ＢとしてロボットＣＰＵ２１からＣＰＵ１１に送られる。
【００１９】
このように、本実施の形態では、指示種類や状態種類に対応するデータ入力の位置（アドレス）をＰＬＣ１とロボットＣＰＵ２１との間で予めルール化しておく。また、指示種類の内容や状態種類の内容に対応するデータ４Ａ，４ＢをＰＬＣ１とロボットＣＰＵ２１との間で予めルール化しておく。そして、ロボットシステム１００では、ＰＬＣプログラム（言語種類は不問）によってＰＬＣ１自身、ＰＬＣ１の周辺機器（図示しないＩ／Ｏ機器やネットワーク等）及びロボット５を制御する。
【００２０】
ここでＰＬＣ１とロボットＣＰＵ２１との間で送受信する指示情報３０Ａ、状態情報３０Ｂについて説明する。なお、指示情報３０Ａと状態情報３０Ｂは、同様の構成を有しているので、ここでは指示情報３０Ａについて説明する。
【００２１】
図２は、ロボットＣＰＵへの指示情報を説明するための図である。ＰＬＣ１のＣＰＵ１１は、何れの種類のＰＬＣ言語を用いて指示情報３０Ａを生成してもよい。指示情報３０ＡのＩ／Ｏ番号３Ａは、ロボットＣＰＵ２１への命令やパラメータの種類を指定する情報である。
【００２２】
例えば、Ｉ／Ｏ番号３Ａの「１０５００」には、動作命令バッファが割り当てられている。動作命令バッファは、動作命令を入力するエリアである。したがって、ロボットＣＰＵ２１に動作命令を送る場合には、Ｉ／Ｏ番号３Ａとして「１０５００」を指定したエリアにデータが入力される。
【００２３】
同様に、Ｉ／Ｏ番号３Ａの「１０５５０」には、制御パラメータが割り当てられている。制御パラメータは、動作タイプを入力するエリアである。したがって、ロボットＣＰＵ２１に動作タイプを送る場合には、Ｉ／Ｏ番号３Ａとして「１０５５０」を指定したエリアにデータが入力される。
【００２４】
また、Ｉ／Ｏ番号３Ａの「１０６００」には、位置演算命令バッファが割り当てられている。位置演算命令バッファは、位置演算命令を入力するエリアである。したがって、ロボットＣＰＵ２１に位置演算命令を送る場合には、Ｉ／Ｏ番号３Ａとして「１０６００」を指定したエリアにデータが入力される。
【００２５】
また、Ｉ／Ｏ番号３Ａの「１０６５０」には、算出パラメータが割り当てられている。算出パラメータは、位置を定義する情報（位置定義情報）を入力するエリアである。したがって、ロボットＣＰＵ２１に位置定義情報を送る場合には、Ｉ／Ｏ番号３Ａとして「１０６５０」を指定したエリアにデータが入力される。
【００２６】
指示情報３０Ａのデータ４Ａは、Ｉ／Ｏ番号３Ａに対応付けられている。例えば、データ４Ａの指示内容４１は、Ｉ／Ｏ番号３Ａの「１０５００」に対応付けられている。同様に、データ４Ａの指示内容４２〜４４は、それぞれＩ／Ｏ番号３Ａの「１０５５０」、「１０６００」、「１０６５０」に対応付けられている。
【００２７】
指示命令４１は、動作命令バッファで指定するデータである。指示内容４１において、データの「１」が移動命令（Ｍｏｖ）を指定するデータであり、データの「２」がストレート移動命令（Ｍｖｓ）を指定するデータである。また、データの「３」、「４」、「５」は、それぞれ第１の回転移動命令（Ｍｖｒ１）、第２の回転移動命令（Ｍｖｒ２）、第３の回転移動命令（Ｍｖｒ３）を指定するデータである。したがって、例えば、ロボットＣＰＵ２１に移動命令を送る場合には、Ｉ／Ｏ番号３Ａとして「１０５００」を指定したエリアにデータの「１」が入力される。
【００２８】
また、指示内容４２は、制御パラメータで指定するデータである。指示内容４２において、データの「１」が関節補間タイプのパラメータを指定データであり、データの「２」が直線動作タイプのパラメータを指定するデータである。
【００２９】
また、指示内容４３は、位置演算命令バッファで指定するデータである。指示内容４３において、データの「１００」が演算命令の「＝」を指定するデータである。同様に、データの「１０１」、「１０２」、「１０３」、「１０４」が、それぞれ演算命令の「＋」、「−」、「＊」、「ＩＮＶ」を指定するデータである。
【００３０】
また、指示内容４４は、算出パラメータで指定するデータである。指示内容４４において、データの「１」が始点位置を指定するデータであり、データの「２」が終点位置を指定するデータである。なお、ここでは、ＰＬＣ１からロボットＣＰＵ２１に命令などを送る場合にＩ／Ｏ番号３Ａの「１０６５０」などを用いる場合について説明したが、ロボットＣＰＵ２１からＰＬＣ１に命令などを送る場合にＩ／Ｏ番号３Ａと同じＩ／Ｏ番号の「１０６５０」などを用いてもよい。例えば、ＰＬＣ１から送られてくる命令などを用いてロボットＣＰＵ２１が算出した情報として終点位置を、ロボットＣＰＵ２１からＰＬＣ１に送る場合、Ｉ／Ｏ番号３Ａとして「１０６５０」を指定したエリアにデータの「２」が入力される。
【００３１】
なお、図２に示す指示情報３０Ａは、一例であり、何れのＩ／Ｏ番号３Ａに何れの命令やパラメータを割り当ててもよい。また、何れのデータ４Ａに何れの指示種類の内容を割り当ててもよい。
【００３２】
つぎに、ロボットシステムの動作について説明する。ロボットシステム１００では、ＰＬＣ１とロボットＣＰＵ２１との間で予めＩ／Ｏ番号３Ａ、データ４Ａ、Ｉ／Ｏ番号３Ｂ、データ４Ｂで指定する情報を定義しておく。
【００３３】
ロボット５に所定の動作を行なわせる場合、ＣＰＵ１１からロボットＣＰＵ２１に、任意のＰＬＣ言語を用いて指示情報３０Ａを送る。具体的には、ＣＰＵ１１からロボットＣＰＵ２１に、Ｉ／Ｏ番号３Ａとして所定のエリアを指定してデータ４Ａを送信する。換言すると、ＣＰＵ１１からロボットＣＰＵ２１へは、ロボット５を動作させるための命令やパラメータが、Ｉ／Ｏ番号３Ａ、データ４Ａとして送られる。
【００３４】
ロボットＣＰＵ２１は、ＣＰＵ１１からのパラメータを用いてＣＰＵ１１からの命令を実行する。例えば、ＣＰＵ１１からの命令が位置演算命令であった場合、ロボットＣＰＵ２１は、ＣＰＵ１１からのパラメータを用いて位置演算を行なう。また、ＣＰＵ１１からの命令が動作命令であった場合、ロボットＣＰＵ２１は、算出した位置や、ＣＰＵ１１から送られてくる始点位置などを用いてロボット５の動作を制御する。これにより、ロボット５は、ロボットＣＰＵ２１からの制御情報に応じた動作を行なう。
【００３５】
ロボット５の状態は、所定のセンサなどを用いてロボットＣＰＵ２１によって検出される。なお、ロボット５の状態は、ロボット５への制御情報を用いてロボットＣＰＵ２１が算出してもよい。ロボット５の状態は、ロボットＣＰＵ２１からＣＰＵ１１に状態情報３０Ｂとして送られる。具体的には、ロボットＣＰＵ２１からＣＰＵ１１に、Ｉ／Ｏ番号３Ｂとして所定のエリアを指定してデータ４Ｂを送信する。換言すると、ロボットＣＰＵ２１からＣＰＵ１１へは、ロボット５の状態を示す状態情報がＩ／Ｏ番号３Ｂ、データ４Ｂとして送られる。
【００３６】
ＣＰＵ１１は、状態情報に基づいて、ロボット５に行なわせる次の動作を任意のＰＬＣ言語を用いて算出し、算出結果を次の指示情報３０ＡとしてロボットＣＰＵ２１に送る。ロボットシステム１００では、ＰＬＣ１からロボットＣＰＵ２１への指示情報３０Ａの送信、ロボットＣＰＵ２１からロボット５への制御情報の送信、ロボット５による動作の実行、ロボットＣＰＵ２１からＰＬＣ１への状態情報３０Ｂの送信が繰り返し行なわれる。これにより、ロボット５は、ＰＬＣ１からの指示に応じた動作を行なうこととなる。
【００３７】
つぎに、ロボットシステム１００の具体的な構成について説明する。図３は、ＰＬＣとロボットＣＰＵをＩ／Ｏユニットを介して接続した場合のロボットシステムの構成を示す図である。ロボットシステム１０１のユニット群６Ａは、ＰＬＣ１（ＰＬＣ１のユニット）と、Ｉ／Ｏユニット７１とを有しており、ユニット群６Ａ内でＰＬＣ１とＩ／Ｏユニット７１とが接続されている。また、ロボットＣＰＵ２１は、例えばロボットコントローラ２内などに格納されている。そして、Ｉ／Ｏユニット７１とロボットＣＰＵ２１とが接続され、ロボットＣＰＵ２１とロボット５が接続されている。この構成により、ロボットシステム１０１では、ＰＬＣ１からの指示情報３０Ａが通信データとして、Ｉ／Ｏユニット７１を介してロボットＣＰＵ２１に送られる。
【００３８】
図４は、ＰＬＣとロボットＣＰＵをネットワークユニットを介して接続した場合のロボットシステムの構成を示す図である。ロボットシステム１０２のユニット群６Ｂは、ＰＬＣ１（ＰＬＣ１のユニット）と、ネットワークユニット７２とを有しており、ユニット群６Ｂ内でＰＬＣ１とネットワークユニット７２とが接続されている。また、ロボットＣＰＵ２１は、例えばロボットコントローラ２内などに格納されている。そして、ネットワークユニット７２とロボットＣＰＵ２１とが接続され、ロボットＣＰＵ２１とロボット５が接続されている。この構成により、ロボットシステム１０２では、ＰＬＣ１からの指示情報３０Ａが通信データとして、ネットワークユニット７２を介してロボットＣＰＵ２１に送られる。
【００３９】
図５は、ＰＬＣとロボットＣＰＵを直接接続した場合のロボットシステムの構成を示す図である。ロボットシステム１０３のユニット群６Ｃは、ＰＬＣ１（ＰＬＣ１のユニット）とロボットＣＰＵ２１とを有しており、ユニット群６Ｃ内でＰＬＣ１とロボットＣＰＵ２１とがバス接続されている。そして、ロボットＣＰＵ２１とロボット５が接続されている。この構成により、ロボットシステム１０３では、ＰＬＣ１からの指示情報３０ＡがバスデータとしてロボットＣＰＵ２１に送られる。
【００４０】
このように、ロボットシステム１００〜１０３では、ＣＰＵ１１からロボットＣＰＵ２１に、Ｉ／Ｏ番号３Ａとして所定のエリアを指定してデータ４Ａを送信しているので、任意のＰＬＣ言語でＰＬＣ１からロボットＣＰＵ２１に指示情報３０Ａを送ることが可能となる。このように、ロボットシステム１００〜１０３は、ＰＬＣ言語に依存せずロボット５を動作させることができるので、ユーザが自由にＰＬＣ言語を選択できる。したがって、ＨＭＩ（Human  Machine  Interface）の効率化を図ることが可能となる。
【００４１】
また、ロボット５側へのプログラムの書き込みが不要となるのでメモリを消費しない。また、ＰＬＣ言語を用いてロボット５を制御するので、ロボット５、Ｉ／Ｏユニット７１などの周辺機器を含めたプログラムの一元管理が可能となる。また、ＰＬＣ１とロボット５との間の通信処理やＩ／Ｏ処理を削減できるので、ロボットシステム１００〜１０３内でのタクトタイムを短縮することが可能となる。また、従来から用いられているＰＬＣ（顧客の現有設備のＰＬＣ）をバージョンアップすることなく、任意のＰＬＣ言語でロボット言語を用いることなくロボット５を動作させることが可能となる。
【００４２】
なお、本実施の形態では、ＰＬＣ１がロボットＣＰＵ２１に指示情報３０Ａを送る場合について説明したが、ロボットＣＰＵ２１に指示情報３０Ａを送る装置（指示送信装置）はＰＬＣ１に限らない。例えば、パーソナルコンピュータなどの装置が、ロボットＣＰＵ２１に指示情報３０Ａを送ってもよい。この場合も、指示送信装置は、所定のプログラム言語で動作するとともに、この所定のプログラム言語を用いてロボットＣＰＵ２１に指示情報３０Ａを送る。
【００４３】
このように、本実施の形態によれば、ＣＰＵ１１からロボットＣＰＵ２１に、Ｉ／Ｏ番号３Ａとして所定のエリアを指定してデータ４Ａを送信しているので、簡易な構成で容易にロボット５を制御することが可能となる。
【産業上の利用可能性】
【００４４】
以上のように、本発明に係るロボット制御装置およびロボット制御方法は、ロボットの制御に適している。
【符号の説明】
【００４５】
１  ＰＬＣ
２  ロボットコントローラ
３Ａ，３Ｂ  Ｉ／Ｏ番号
４Ａ，４Ｂ  データ
５  ロボット
６Ａ〜６Ｃ  ユニット群
１１  ＣＰＵ
２１  ロボットＣＰＵ
３０Ａ  指示情報
３０Ｂ  状態情報
４１〜４４  指示内容
７１  Ｉ／Ｏユニット
７２  ネットワークユニット
１００〜１０３  ロボットシステム
【図１】
2011062798.tif 000003
【図２】
2011062798.tif 000004
【図３】
2011062798.tif 000005
【図４】
2011062798.tif 000006
【図５】
2011062798.tif 000007