説明

ロボット制御装置およびロボット制御方法

【課題】簡易な構成で容易にロボットを制御するロボット制御装置を得ること。
【解決手段】データを入出力するI/Oエリア内での位置であるI/O番号3Aと、このI/O番号3Aの位置に書き込まれるデータ4Aと、によって定義された指示情報30Aを、所定のプログラム言語で動作するPLC1から受信すると、指示情報30A内の、I/O番号3Aとデータ4Aに基づいて指示情報30Aに応じた動作をロボット5に行なわせるロボットCPU21を有する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ロボットの制御を行うロボット制御装置およびロボット制御方法に関する。
【背景技術】
【0002】
近年、FA(Factory Automation)技術の進展に伴い、PLC(Programmable Logic Controller)がロボットに所定の動作を行わせるロボットシステムの開発が進められている。このようなロボットシステムでは、ユーザはロボット言語とPLC言語の双方を扱う必要がある。
【0003】
一般的に、PLC言語の方がロボット言語よりも多くのユーザに使用されており、ロボット言語の習得者は少ない。そのため、ロボット言語を習得する必要性が、ロボットを導入する際のハードルとなる場合がある。
【0004】
例えば、統一されたロボット言語を複数のロボット言語に変換する方法があるが、この方法では、ロボット言語の習得が必要である。また、新たに複数種類のロボットに使用可能なロボット言語を作るという方法があるが、この方法でも、ロボット言語の習得が必要である。また、ロボット制御装置の内部にPLC機能を搭載するという方法があるが、一般的にPLCが上位機種であり、下位にロボットが接続されるので、ユーザの実使用にあっていない。
【0005】
そこで、特許文献1に記載の産業用ロボットは、周辺機器に予め定められた動作を行わせる動作プログラムの先頭に、一連の動作を行わせるか否かを選択可能とする複数の接点プログラムを設けてPLCを構成し、入出力インターフェースに、各接点プログラムのON/OFFを指示可能な入力部を複数設け、所望の動作が可能なように入力部を適宜選択してON状態とすることで、所望の動作が可能なラダープログラムを産業用ロボットに組み可能としている。
【先行技術文献】
【特許文献】
【0006】
【特許文献1】特開2008−264928号公報
【発明の概要】
【発明が解決しようとする課題】
【0007】
しかしながら、上記従来の技術では、ロボット言語と比較して記述が複雑になるラダープログラムを用いているので、メモリを多く消費してしまうという問題があった。また、PLCユーザは、ラダーユーザよりも、高級言語を使う傾向にあるので、言語依存性が発生する場合があるという問題があった。
【0008】
本発明は、上記に鑑みてなされたものであって、簡易な構成で容易にロボットを制御するロボット制御装置およびロボット制御方法を得ることを目的とする。
【課題を解決するための手段】
【0009】
上述した課題を解決し、目的を達成するために、本発明は、データを入出力するI/Oエリア内での位置と、この位置に書き込まれるデータと、によって定義された指示情報を、所定のプログラム言語で動作する指示送信装置から受信すると、前記定義に基づいて前記指示情報に応じた動作をロボットに行なわせる制御部を有することを特徴とする。
【発明の効果】
【0010】
本発明によれば、I/Oエリア内での位置と、この位置に書き込まれるデータと、によって指示情報を定義しておき、この定義に基づいて指示情報に応じた動作をロボットに行なわせるので、簡易な構成で容易にロボットを制御することが可能になるという効果を奏する。
【図面の簡単な説明】
【0011】
【図1】図1は、実施の形態に係るロボットシステムの構成を示す図である。
【図2】図2は、ロボットCPUへの指示情報を説明するための図である。
【図3】図3は、PLCとロボットCPUを、I/Oユニットを介して接続した場合のロボットシステムの構成を示す図である。
【図4】図4は、PLCとロボットCPUを、ネットワークユニットを介して接続した場合のロボットシステムの構成を示す図である。
【図5】図5は、PLCとロボットCPUを直接接続した場合のロボットシステムの構成を示す図である。
【発明を実施するための形態】
【0012】
以下に、本発明に係るロボット制御装置およびロボット制御方法の実施の形態を図面に基づいて詳細に説明する。なお、この実施の形態によりこの発明が限定されるものではない。
【0013】
実施の形態
図1は、本発明の実施の形態に係るロボットシステムの構成を示す図である。ロボットシステム100は、ロボット言語を用いることなく任意のPLC言語(PLCプログラム)でロボット5を動作させるシステムであり、PLC1と、ロボットCPU(制御部)21と、ロボット5と、を備えている。
【0014】
PLC1は、ロボットCPU(Central Processing Unit)21に接続されている。PLC1は、CPU11を有しており、このCPU11がロボット5を制御するための指示情報30A(ロボット制御コマンド)をロボットCPU21に送る。指示情報30Aは、I/Oデータであり、I/O番号3Aとデータ4Aとを含んで構成されている。
【0015】
ロボットCPU21は、PLC1およびロボット5に接続されており、PLC1からの指示情報30Aに基づいてロボット5を制御する。ロボットCPU21は、PLC1からの指示情報30Aに対応する制御情報(ロボット5への制御指示)をロボット5に送る。また、ロボットCPU21は、ロボット5の状態や動作に関する状態情報30Bを、PLC1に送る。ロボット5は、ロボットCPU21からの制御情報に従って、制御情報に応じた動作を行う。状態情報30Bは、I/O番号3Bとデータ4Bとを含んで構成されている。
【0016】
PLC1とロボットCPU21との間では、所定のI/Oエリア(メモリ空間や共有メモリなど)を介して指示情報30Aや状態情報30Bが送受信される。本実施の形態では、予めI/O番号3A(アドレス)に指示情報30Aの種類(指示種類)を割り当てるとともに、データ4Aに指示種類の内容を割り当てておく。また、予めI/O番号3Bに状態情報(状態種類)の種類を割り当てるとともに、データ4Bに状態種類の内容を割り当てておく。
【0017】
PLC1は、指示情報30A内で、I/O番号3Aとして所定のアドレスを指定することによって指示種類を指定するとともに、データ4Aとして所定のデータを入力することによって指示種類の内容を指定する。具体的には、指示種類に応じたアドレスに、指示種類の内容に応じたデータが入力され、I/O番号3A、データ4AとしてPLC1のCPU11からロボットCPU21に送られる。
【0018】
また、ロボットCPU21は、状態情報30B内で、I/O番号3Bとして所定のアドレスを指定することによって状態種類を指定するとともに、データ4Bとして所定のデータを入力することによって状態種類の内容を指定する。具体的には、状態種類に応じたアドレスに、状態類の内容に応じたデータが入力され、I/O番号3B、データ4BとしてロボットCPU21からCPU11に送られる。
【0019】
このように、本実施の形態では、指示種類や状態種類に対応するデータ入力の位置(アドレス)をPLC1とロボットCPU21との間で予めルール化しておく。また、指示種類の内容や状態種類の内容に対応するデータ4A,4BをPLC1とロボットCPU21との間で予めルール化しておく。そして、ロボットシステム100では、PLCプログラム(言語種類は不問)によってPLC1自身、PLC1の周辺機器(図示しないI/O機器やネットワーク等)及びロボット5を制御する。
【0020】
ここでPLC1とロボットCPU21との間で送受信する指示情報30A、状態情報30Bについて説明する。なお、指示情報30Aと状態情報30Bは、同様の構成を有しているので、ここでは指示情報30Aについて説明する。
【0021】
図2は、ロボットCPUへの指示情報を説明するための図である。PLC1のCPU11は、何れの種類のPLC言語を用いて指示情報30Aを生成してもよい。指示情報30AのI/O番号3Aは、ロボットCPU21への命令やパラメータの種類を指定する情報である。
【0022】
例えば、I/O番号3Aの「10500」には、動作命令バッファが割り当てられている。動作命令バッファは、動作命令を入力するエリアである。したがって、ロボットCPU21に動作命令を送る場合には、I/O番号3Aとして「10500」を指定したエリアにデータが入力される。
【0023】
同様に、I/O番号3Aの「10550」には、制御パラメータが割り当てられている。制御パラメータは、動作タイプを入力するエリアである。したがって、ロボットCPU21に動作タイプを送る場合には、I/O番号3Aとして「10550」を指定したエリアにデータが入力される。
【0024】
また、I/O番号3Aの「10600」には、位置演算命令バッファが割り当てられている。位置演算命令バッファは、位置演算命令を入力するエリアである。したがって、ロボットCPU21に位置演算命令を送る場合には、I/O番号3Aとして「10600」を指定したエリアにデータが入力される。
【0025】
また、I/O番号3Aの「10650」には、算出パラメータが割り当てられている。算出パラメータは、位置を定義する情報(位置定義情報)を入力するエリアである。したがって、ロボットCPU21に位置定義情報を送る場合には、I/O番号3Aとして「10650」を指定したエリアにデータが入力される。
【0026】
指示情報30Aのデータ4Aは、I/O番号3Aに対応付けられている。例えば、データ4Aの指示内容41は、I/O番号3Aの「10500」に対応付けられている。同様に、データ4Aの指示内容42〜44は、それぞれI/O番号3Aの「10550」、「10600」、「10650」に対応付けられている。
【0027】
指示命令41は、動作命令バッファで指定するデータである。指示内容41において、データの「1」が移動命令(Mov)を指定するデータであり、データの「2」がストレート移動命令(Mvs)を指定するデータである。また、データの「3」、「4」、「5」は、それぞれ第1の回転移動命令(Mvr1)、第2の回転移動命令(Mvr2)、第3の回転移動命令(Mvr3)を指定するデータである。したがって、例えば、ロボットCPU21に移動命令を送る場合には、I/O番号3Aとして「10500」を指定したエリアにデータの「1」が入力される。
【0028】
また、指示内容42は、制御パラメータで指定するデータである。指示内容42において、データの「1」が関節補間タイプのパラメータを指定データであり、データの「2」が直線動作タイプのパラメータを指定するデータである。
【0029】
また、指示内容43は、位置演算命令バッファで指定するデータである。指示内容43において、データの「100」が演算命令の「=」を指定するデータである。同様に、データの「101」、「102」、「103」、「104」が、それぞれ演算命令の「+」、「−」、「*」、「INV」を指定するデータである。
【0030】
また、指示内容44は、算出パラメータで指定するデータである。指示内容44において、データの「1」が始点位置を指定するデータであり、データの「2」が終点位置を指定するデータである。なお、ここでは、PLC1からロボットCPU21に命令などを送る場合にI/O番号3Aの「10650」などを用いる場合について説明したが、ロボットCPU21からPLC1に命令などを送る場合にI/O番号3Aと同じI/O番号の「10650」などを用いてもよい。例えば、PLC1から送られてくる命令などを用いてロボットCPU21が算出した情報として終点位置を、ロボットCPU21からPLC1に送る場合、I/O番号3Aとして「10650」を指定したエリアにデータの「2」が入力される。
【0031】
なお、図2に示す指示情報30Aは、一例であり、何れのI/O番号3Aに何れの命令やパラメータを割り当ててもよい。また、何れのデータ4Aに何れの指示種類の内容を割り当ててもよい。
【0032】
つぎに、ロボットシステムの動作について説明する。ロボットシステム100では、PLC1とロボットCPU21との間で予めI/O番号3A、データ4A、I/O番号3B、データ4Bで指定する情報を定義しておく。
【0033】
ロボット5に所定の動作を行なわせる場合、CPU11からロボットCPU21に、任意のPLC言語を用いて指示情報30Aを送る。具体的には、CPU11からロボットCPU21に、I/O番号3Aとして所定のエリアを指定してデータ4Aを送信する。換言すると、CPU11からロボットCPU21へは、ロボット5を動作させるための命令やパラメータが、I/O番号3A、データ4Aとして送られる。
【0034】
ロボットCPU21は、CPU11からのパラメータを用いてCPU11からの命令を実行する。例えば、CPU11からの命令が位置演算命令であった場合、ロボットCPU21は、CPU11からのパラメータを用いて位置演算を行なう。また、CPU11からの命令が動作命令であった場合、ロボットCPU21は、算出した位置や、CPU11から送られてくる始点位置などを用いてロボット5の動作を制御する。これにより、ロボット5は、ロボットCPU21からの制御情報に応じた動作を行なう。
【0035】
ロボット5の状態は、所定のセンサなどを用いてロボットCPU21によって検出される。なお、ロボット5の状態は、ロボット5への制御情報を用いてロボットCPU21が算出してもよい。ロボット5の状態は、ロボットCPU21からCPU11に状態情報30Bとして送られる。具体的には、ロボットCPU21からCPU11に、I/O番号3Bとして所定のエリアを指定してデータ4Bを送信する。換言すると、ロボットCPU21からCPU11へは、ロボット5の状態を示す状態情報がI/O番号3B、データ4Bとして送られる。
【0036】
CPU11は、状態情報に基づいて、ロボット5に行なわせる次の動作を任意のPLC言語を用いて算出し、算出結果を次の指示情報30AとしてロボットCPU21に送る。ロボットシステム100では、PLC1からロボットCPU21への指示情報30Aの送信、ロボットCPU21からロボット5への制御情報の送信、ロボット5による動作の実行、ロボットCPU21からPLC1への状態情報30Bの送信が繰り返し行なわれる。これにより、ロボット5は、PLC1からの指示に応じた動作を行なうこととなる。
【0037】
つぎに、ロボットシステム100の具体的な構成について説明する。図3は、PLCとロボットCPUをI/Oユニットを介して接続した場合のロボットシステムの構成を示す図である。ロボットシステム101のユニット群6Aは、PLC1(PLC1のユニット)と、I/Oユニット71とを有しており、ユニット群6A内でPLC1とI/Oユニット71とが接続されている。また、ロボットCPU21は、例えばロボットコントローラ2内などに格納されている。そして、I/Oユニット71とロボットCPU21とが接続され、ロボットCPU21とロボット5が接続されている。この構成により、ロボットシステム101では、PLC1からの指示情報30Aが通信データとして、I/Oユニット71を介してロボットCPU21に送られる。
【0038】
図4は、PLCとロボットCPUをネットワークユニットを介して接続した場合のロボットシステムの構成を示す図である。ロボットシステム102のユニット群6Bは、PLC1(PLC1のユニット)と、ネットワークユニット72とを有しており、ユニット群6B内でPLC1とネットワークユニット72とが接続されている。また、ロボットCPU21は、例えばロボットコントローラ2内などに格納されている。そして、ネットワークユニット72とロボットCPU21とが接続され、ロボットCPU21とロボット5が接続されている。この構成により、ロボットシステム102では、PLC1からの指示情報30Aが通信データとして、ネットワークユニット72を介してロボットCPU21に送られる。
【0039】
図5は、PLCとロボットCPUを直接接続した場合のロボットシステムの構成を示す図である。ロボットシステム103のユニット群6Cは、PLC1(PLC1のユニット)とロボットCPU21とを有しており、ユニット群6C内でPLC1とロボットCPU21とがバス接続されている。そして、ロボットCPU21とロボット5が接続されている。この構成により、ロボットシステム103では、PLC1からの指示情報30AがバスデータとしてロボットCPU21に送られる。
【0040】
このように、ロボットシステム100〜103では、CPU11からロボットCPU21に、I/O番号3Aとして所定のエリアを指定してデータ4Aを送信しているので、任意のPLC言語でPLC1からロボットCPU21に指示情報30Aを送ることが可能となる。このように、ロボットシステム100〜103は、PLC言語に依存せずロボット5を動作させることができるので、ユーザが自由にPLC言語を選択できる。したがって、HMI(Human Machine Interface)の効率化を図ることが可能となる。
【0041】
また、ロボット5側へのプログラムの書き込みが不要となるのでメモリを消費しない。また、PLC言語を用いてロボット5を制御するので、ロボット5、I/Oユニット71などの周辺機器を含めたプログラムの一元管理が可能となる。また、PLC1とロボット5との間の通信処理やI/O処理を削減できるので、ロボットシステム100〜103内でのタクトタイムを短縮することが可能となる。また、従来から用いられているPLC(顧客の現有設備のPLC)をバージョンアップすることなく、任意のPLC言語でロボット言語を用いることなくロボット5を動作させることが可能となる。
【0042】
なお、本実施の形態では、PLC1がロボットCPU21に指示情報30Aを送る場合について説明したが、ロボットCPU21に指示情報30Aを送る装置(指示送信装置)はPLC1に限らない。例えば、パーソナルコンピュータなどの装置が、ロボットCPU21に指示情報30Aを送ってもよい。この場合も、指示送信装置は、所定のプログラム言語で動作するとともに、この所定のプログラム言語を用いてロボットCPU21に指示情報30Aを送る。
【0043】
このように、本実施の形態によれば、CPU11からロボットCPU21に、I/O番号3Aとして所定のエリアを指定してデータ4Aを送信しているので、簡易な構成で容易にロボット5を制御することが可能となる。
【産業上の利用可能性】
【0044】
以上のように、本発明に係るロボット制御装置およびロボット制御方法は、ロボットの制御に適している。
【符号の説明】
【0045】
1 PLC
2 ロボットコントローラ
3A,3B I/O番号
4A,4B データ
5 ロボット
6A〜6C ユニット群
11 CPU
21 ロボットCPU
30A 指示情報
30B 状態情報
41〜44 指示内容
71 I/Oユニット
72 ネットワークユニット
100〜103 ロボットシステム

【特許請求の範囲】
【請求項1】
データを入出力するI/Oエリア内での位置と、この位置に書き込まれるデータと、によって定義された指示情報を、所定のプログラム言語で動作する指示送信装置から受信すると、前記定義に基づいて前記指示情報に応じた動作をロボットに行なわせる制御部を有することを特徴とするロボット制御装置。
【請求項2】
前記制御部は、
前記ロボットの状態を、前記I/Oエリア内での位置と、この位置に書き込まれるデータと、によって定義された状態情報として前記指示送信装置に送信することを特徴とする請求項1に記載のロボット制御装置。
【請求項3】
前記指示送信装置は、1〜複数の機器を制御するプログラマブルロジックコントローラであることを特徴とする請求項1または2に記載のロボット制御装置。
【請求項4】
前記制御部は、I/Oユニットを介して前記指示送信装置と接続されていることを特徴とする請求項1〜3のいずれか1つに記載のロボット制御装置。
【請求項5】
前記制御部は、ネットワークユニットを介して前記指示送信装置と接続されていることを特徴とする請求項1〜3のいずれか1つに記載のロボット制御装置。
【請求項6】
前記制御部は、前記指示送信装置と直接接続されていることを特徴とする請求項1〜3のいずれか1つに記載のロボット制御装置。
【請求項7】
データを入出力するI/Oエリア内での位置と、この位置に書き込まれるデータと、によって定義された指示情報を、所定のプログラム言語で動作する指示送信装置から受信する受信ステップと、
前記定義に基づいて前記指示情報に応じた動作をロボットに行なわせる制御ステップと、
を含むことを特徴とするロボット制御方法。
【請求項8】
前記制御ステップは、
前記ロボットの状態を、前記I/Oエリア内での位置と、この位置に書き込まれるデータと、によって定義された状態情報として前記指示送信装置に送信することを特徴とする請求項7に記載のロボット制御方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate


【公開番号】特開2011−62798(P2011−62798A)
【公開日】平成23年3月31日(2011.3.31)
【国際特許分類】
【出願番号】特願2009−217473(P2009−217473)
【出願日】平成21年9月18日(2009.9.18)
【出願人】(000006013)三菱電機株式会社 (33,312)
【Fターム(参考)】