(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-03-04
(45)【発行日】2024-03-12
(54)【発明の名称】ロボット制御装置及びロボットシステム
(51)【国際特許分類】
B25J 9/22 20060101AFI20240305BHJP
G05B 19/42 20060101ALI20240305BHJP
【FI】
B25J9/22 A
G05B19/42 J
(21)【出願番号】P 2022524425
(86)(22)【出願日】2021-05-13
(86)【国際出願番号】 JP2021018279
(87)【国際公開番号】W WO2021235324
(87)【国際公開日】2021-11-25
【審査請求日】2022-12-19
(31)【優先権主張番号】P 2020086924
(32)【優先日】2020-05-18
(33)【優先権主張国・地域又は機関】JP
(73)【特許権者】
【識別番号】390008235
【氏名又は名称】ファナック株式会社
(74)【代理人】
【識別番号】100099759
【氏名又は名称】青木 篤
(74)【代理人】
【識別番号】100123582
【氏名又は名称】三橋 真二
(74)【代理人】
【識別番号】100112357
【氏名又は名称】廣瀬 繁樹
(74)【代理人】
【識別番号】100169856
【氏名又は名称】尾山 栄啓
(72)【発明者】
【氏名】加藤 友樹
【審査官】樋口 幸太郎
(56)【参考文献】
【文献】特開2019-061467(JP,A)
【文献】特開2012-166290(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
B25J 9/22
G05B 19/42
(57)【特許請求の範囲】
【請求項1】
ロボットを制御するロボット制御装置であって、
外部装置との間でデジタルデータを送受信するためのデジタル入出力インタフェースと、
前記デジタル入出力インタフェースを介して入力された前記デジタルデータに含まれる命令識別データに従って前記ロボットに対する動作命令を生成するプログラム生成部と、
生成された前記動作命令を実行するプログラム実行部と、
を備えるロボット制御装置。
【請求項2】
前記デジタル入出力インタフェースは、受信した前記デジタルデータ中の所定のインデックス番号の位置にあるビット列から前記命令識別データを抽出する、請求項1に記載のロボット制御装置。
【請求項3】
前記プログラム生成部は、前記命令識別データと前記動作命令とを対応付けたテーブルを有し、該テーブルを用いて前記動作命令を生成する、請求項1又は2に記載のロボット制御装置。
【請求項4】
前記デジタル入出力インタフェースは、フィールドバス規格に基づく通信インタフェースとしての機能を有する、請求項1から3のいずれか一項に記載のロボット制御装置。
【請求項5】
前記ロボットの教示位置データを記憶する位置データ記憶部を更に備え、
前記プログラム生成部は、前記命令識別データが前記教示位置データの要求を表す命令である場合に、前記位置データ記憶部に記憶されている前記教示位置データを、前記デジタル入出力インタフェースを介して前記外部装置に送信する、請求項1から4のいずれか一項に記載のロボット制御装置。
【請求項6】
ロボットと、
請求項1から5のいずれか一項に記載のロボット制御装置と、
前記ロボット制御装置との間で前記デジタルデータを送受信可能に構成された外部装置と、を備えるロボットシステム。
【請求項7】
前記外部装置は、前記ロボットを移動させる動作命令に用いる教示位置データを、該外部装置にネットワーク接続されたロボットシミュレーション装置から取得し、前記ロボットを移動させる前記動作命令に対応する前記命令識別データと前記教示位置データとを含む前記デジタルデータを前記ロボット制御装置に送信する、請求項6に記載のロボットシステム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ロボットを制御するロボット制御装置及びロボットシステムに関する。
【背景技術】
【0002】
ロボットの教示、すなわち動作プログラムの作成は、工場内においてロボット制御装置に接続した教示操作盤を用いて行うのが一般的である。なお、特許文献1は、ロボット等の教示作業の効率化のために、作業対象ワークのCADデータを用いて教示データを自動的に生成するようにしたプログラム自動生成装置を記載している(特許文献1、段落0005-0007)。
【0003】
また、特許文献2は、NC加工機械のNCプログラムの作成に関し、「CAM200から送出された加工工程毎に分割された工具オフセット形状データをLAN等の通信回線を介して高速データ処理部300で受け、バッファメモリ301に一時格納し、工具経路データ作成及び指定された切削条件からNCプログラムへの変換処理を施して、その得られたNCプログラムを数値制御部401を通じて工作機械402へ送出するようにした数値制御方法」について記載する(特許文献2、要約書)。
【先行技術文献】
【特許文献】
【0004】
【文献】特開平9-167007号公報
【文献】特開平5-274020号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
ロボットや周辺装置を含む生産設備では、ロボットは教示された動作プログラムに従って作業を実行し、周辺機器は、外部装置(PLC(Programmable Logic Controller)、PC(Personal Computer)等)で制御されている。外部装置からもロボットの高度な操作を行いたいという要求がある。
【課題を解決するための手段】
【0006】
本開示の一態様は、ロボットを制御するロボット制御装置であって、外部装置との間でデジタルデータを送受信するためのデジタル入出力インタフェースと、前記デジタル入出力インタフェースを介して入力された前記デジタルデータに含まれる命令識別データに従って前記ロボットに対する動作命令を生成するプログラム生成部と、生成された前記動作命令を実行するプログラム実行部と、を備えるロボット制御装置である。
【0007】
本開示の別の態様は、ロボットと、前記ロボット制御装置と、前記ロボット制御装置との間で前記デジタルデータを送受信可能に構成された外部装置と、を備えるロボットシステムである。
【発明の効果】
【0008】
上記構成によれば、外部装置からロボットの高度な制御を行うことができる。
【0009】
添付図面に示される本発明の典型的な実施形態の詳細な説明から、本発明のこれらの目的、特徴および利点ならびに他の目的、特徴および利点がさらに明確になるであろう。
【図面の簡単な説明】
【0010】
【
図1】一実施形態に係るロボット制御装置と外部装置とのネットワーク接続の構成例を示す図である。
【
図2】ロボット制御装置の機能ブロックを表すと共に、ロボット制御装置と外部装置との接続状態を表す図である。
【
図3】デジタル入出力インタフェースにおけるデータ整形の機能を説明するための図である。
【
図4】ロボット制御装置におけるロボット制御の実行例について説明するための図である。
【
図5】外部装置上で作成した、ロボットのDI領域にデータを書き込むプログラム例である。
【発明を実施するための形態】
【0011】
次に、本開示の実施形態について図面を参照して説明する。参照する図面において、同様の構成部分または機能部分には同様の参照符号が付けられている。理解を容易にするために、これらの図面は縮尺を適宜変更している。また、図面に示される形態は本発明を実施するための一つの例であり、本発明は図示された形態に限定されるものではない。
【0012】
図1は、一実施形態に係るロボット制御装置50と外部装置70とのネットワーク接続の構成例を示す図である。
図1に示す各装置は、工場内に配置され生産設備を構成している。ロボット制御装置50は、ロボット10を制御する。外部装置70は、周辺装置91、92を制御する制御機器(PLC(Programmable Logic Controller)、PC(Personal Computer)等)である。以下では、外部装置70はPLCであるものとする。周辺装置91、92には、ワーク搬送装置、センサ、計測器、モータ等の各種機器が含まれる。
【0013】
ネットワーク6としては各種ネットワークを用いることができるが、ここでは、一例として、ネットワーク6は、フィールドバス(フィールドネットワーク)規格に基づくネットワークであるとする。フィールドバスは、工場内での制御機器と周辺装置との間におけるデジタルデータの通信を主たる目的とするネットワークであり、また、より高いリアルタイム性を有する。フィールドバスとして、DeviceNet(登録商標)、PROFIBUS(登録商標)等がある。
図1のネットワーク構成例では、ロボット制御装置50は、外部装置70に対して、周辺装置91、92と同様なノードとして接続される。
【0014】
なお、外部装置70とロボット制御装置50との接続に用いるネットワーク6として、フィールドバスは一例であり、デジタルデータを送受信するための他のネットワーク(例えば、GPIO(General-Purpose Input/Output))が用いられても良い。或いは、ネットワーク6としてLAN(Local Area Network)が用いられても良い。
図1では、外部装置70と各機器との接続がバス型の接続となるように図示されているが、これは例示であり、配線形態はこれに限られるものではない。外部装置70及びロボット制御装置50の各々は、CPU、ROM、RAM、記憶装置、操作部、表示部、入出力インタフェース、ネットワークインタフェース等を有する一般的なコンピュータとしてのハードウェア構成を有していても良い。
【0015】
図2はロボット制御装置50の機能ブロックを表すと共に、ロボット制御装置50と外部装置70との接続状態を表している。
図2示すように、ロボット制御装置50は、フィールドバス規格に基づく通信インタフェースとしての機能を有するデジタル入出力インタフェース51を介して外部装置70と接続されている。また、外部装置70もフィールドバス規格に基づくインタフェース72を有している。以下で詳細に説明するように、外部装置70は、ロボット制御装置50との間でコマンドIDを表す数値データ等をやり取りすることで、ロボット10の高度な制御を行う。ロボット制御装置50には、教示操作盤(不図示)が接続されていても良い。ロボット10は、垂直多関節ロボット、水平多関節ロボット等の産業用ロボットである。
【0016】
すなわち、外部装置70、ロボット制御装置50、ロボット10、周辺装置91、92(
図2には不図示)は、ロボットシステム100を構成している。ロボットシステム100には、外部装置70にLANを介して接続されたロボットシミュレーション装置80が含まれていても良い。
【0017】
図2に示すように、ロボット制御装置50は、デジタル入出力インタフェース51と、プログラム生成部52と、プログラム実行部53とを備える。デジタル入出力インタフェース51は、外部装置70から受信したデジタルデータ(ビット列)をロボット制御装置50で取り扱うことのできるデータに整形する機能を有すると共に、応答コマンド等をデジタルデータとしてネットワーク6へ出力する機能を有する。プログラム生成部52は、デジタル入出力インタフェース51により整形されたデータ(命令識別データ)にしたがって、ロボット10の制御命令(すなわち、ロボット動作プログラム55)を生成する。プログラム実行部53は、プログラム生成部52により生成された制御命令(ロボット動作プログラム55)を実行する。
【0018】
位置データ記憶部56は、ロボット10を教示することによって予め準備された教示位置(位置データ)を記憶する。
図2に示したロボット制御装置50の機能ブロックは、ロボット制御装置50のCPUが、記憶装置に格納された各種ソフトウェアを実行することで実現されても良く、或いは、ASIC(Application Specific Integrated Circuit)等のハードウェアを主体とした構成により実現されても良い。
【0019】
外部装置70(インタフェース72)は、フィールドバスにおいてマスタデバイスとして動作する。ロボット制御装置50は、周辺装置91、92と同様にスレーブデバイスとして動作する。外部装置70は、外部装置70のCPUのメモリマップ上にマッピングされた特定のメモリ領域(メモリマップドI/O)を介して各スレーブデバイスとのデジタルデータの送受信を実行する。フィールドバスにおいて、このような特定のメモリ領域は、DI領域或いはDO領域と称される。以下では、このような特定のメモリ領域のうち、ロボット制御装置50に対して入力されるデジタルデータのメモリ領域を「ロボットのDI領域」(又は単にDI領域)と称し、ロボット制御装置50から出力されて外部装置70に入力されるデジタルデータのメモリ領域を「ロボットのDO領域」(又は単にDO領域)と称する。外部装置70では、一例として、ラダー言語による制御プログラムによって、ロボットのDI/DO領域にアクセスする。
【0020】
外部装置70とロボット制御装置50間におけるデジタルデータの送受信によるロボット制御の流れについて説明する。
(手順1)外部装置70において、ラダープログラムを用いて、指定のコマンド、ロボットの位置データ、動作速度等のデータをロボットのDI領域にコピーする。
(手順2)ロボット制御装置50のデジタル入出力インタフェース51は、外部装置70からのデータをロボット制御装置50で扱うことのできるデータに整形する。
(手順3)ロボット制御装置50のプログラム生成部52は、整形されたデータを用いてロボット10の動作プログラムを生成する。
(手順4)プログラム実行部53は、プログラム生成部52により生成された動作プログラムを実行する。
【0021】
図2において、符号31aは、外部装置70のラダープログラムによりメモリマップ上のロボットのDI領域にコピーすることで、外部装置70(インタフェース72)から出力されるデジタルデータを表す。符号31bは、ロボット制御装置50(デジタル入出力インタフェース51)から出力され、外部装置70のメモリマップ上のロボットのDO領域に書き込まれるデジタルデータを表している。
【0022】
図3は、デジタル入出力インタフェース51におけるデータ整形の機能を説明するための図である。一例として、外部装置70からロボット制御装置50に送信されるデジタルデータ31a(ロボットのDI領域のデータ)のインデックス番号i1からはじまる8ビット分のビット列(インデックス番号i8-i1)がコマンドID(命令識別データ)を表すものとする。受信したデジタルデータ31aのインデックス番号i8-i1のビット列が“00000011”である場合、デジタル入出力インタフェース51は、受信コマンドIDとしての数値“3”を抽出してプログラム生成部52に渡す。
【0023】
ロボット制御装置50が応答コマンドとして例えばID:7を外部装置70に対して送る場合について説明する。プログラム生成部52は、応答コマンドID:7(数値7)をデジタル入出力インタフェース51に渡す。デジタル入出力インタフェース51は、このIDに対応する数値“00000111”をデジタルデータ31bのインデックス番号i8-i1の位置に含めて、ロボットのDO領域のデータとして外部装置70に送信する。外部装置70側(ラダープログラム)では、ロボットのDO領域にコピーされたデジタルデータ31bのンデックスi8-i1ビット列を読み取ることで、ロボット(ロボット制御装置50)からの応答コマンドがID:7であることを把握する。
【0024】
プログラム生成部52は、コマンドIDと命令とを対応付ける対応表(テーブル)を有していても良い。この場合、プログラム生成部52は、当該対応表を参照することで、受信コマンドIDに対応する命令文を把握することができる。対応表の一例を下記表1に示す。なお、外部装置70側も、ロボット制御装置50からの応答コマンドIDと指示内容とを対応付ける対応表を有していても良い。
【0025】
【0026】
次に、
図4を参照して、外部装置70とのデータの送受信による、ロボット制御装置50におけるロボット制御の実行例について説明する。ここでは、プログラム生成部52が、コマンドID:1、コマンドID:2、コマンドID:3、コマンドID:9、コマンドID:4をこの順にデジタル入出力インタフェース51を介して外部装置70から受け取る場合の動作を例示する。はじめに、プログラム生成部52は、コマンドID:1を受け取ると、対応表(表1)を参照することでコマンドID:1がプログラム作成命令であることを把握し、中身が空の状態のロボット動作プログラム55aを生成する。
【0027】
次に、プログラム生成部52は、コマンドID:2を受け取ると、対応表を参照することでコマンドID:2が、直線動作の命令であることを把握し、位置データ(位置データ[1])を更に受信する。位置データ[1]を受信すると、プログラム生成部52は、位置データ[1]の位置へロボット10アーム先端を移動させるための命令“直線 位置[1]”を生成してロボット動作プログラム55aに書き込む。ロボット動作プログラム55aに命令“直線 位置[1]”が書き込まれると、プログラム実行部53は、書き込まれた命令“直線 位置[1]”を実行する。この場合、プログラム実行部53は、命令“直線 位置[1]”にしたがい、ロボット10のアーム先端部を位置データ[1]の位置に直線移動させる。なお、外部装置70からの移動命令には、更に、動作速度の指定が含まれていても良い。
【0028】
直線動作命令或いは各軸動作命令と共に送られてくる位置データは、例えば、浮動小数点のフォーム(IEEE754)に従う32ビットのビット列である。この場合、デジタル入出力インタフェース51は、受信した32ビットのビット列をIEEE754に従い浮動小数点数値に変換する。
【0029】
次に、プログラム生成部52は、コマンドID:3を受信すると、対応表を参照することで当該コマンドID:3が各軸動作の命令であることを把握し、位置データ(位置データ[2])を更に受信する。位置データ[2]を受信すると、プログラム生成部52は、ロボット10のアーム先端を各軸動作で移動させるための命令“各軸 位置[2]”を生成してロボット動作プログラム55aに書き込む。ロボット動作プログラム55aに当該命令が書き込まれると、プログラム実行部53は、書き込まれた命令を実行する。この場合、プログラム実行部53は、ロボット10のアーム先端部を位置[2]の位置に各軸動作で移動させる。
【0030】
プログラム生成部52は、ロボット及びプログラムの実行に関するステータスを要求するコマンドID:9を受信すると、ロボット動作プログラムの実行状態(実行中、一時停止等)、及び、ロボット10の状態(現在位置、動作速度等)を外部装置70に送信する。なお、この場合、プログラム生成部52は、応答コマンドID:7と共にこれらのデータを送信するようにしても良い。
【0031】
プログラム生成部52は、ロボットを一時停止させる命令を表すコマンドID:4を受信すると、当該コマンドIDをプログラム実行部53に渡し、実行中の動作命令を停止させる。
【0032】
このように本実施形態によれば、PLC等の外部装置70からロボット10の高度な制御を行うことができる。
【0033】
図5は、外部装置70(PLC)上で作成した、ロボットのDI領域にデータを書き込むプログラム例である。このプログラム71では、変数“CMD.ID”にコマンドIDとして数値2(直線動作命令)が設定され、変数“POS.POS[0]-[5]”に位置データとし3次元座標値(1500.5,0.0,1585.0)及び姿勢(-180.2,-90.3,0.001)が設定されている。関数UBLKMOVにより上記変数のデータはロボットDI領域にコピーされる。外部装置70におけるラダープログラムでは、例えば、所定の入力条件が成立したときに上記関数を実行する(すなわち、所定の条件が成立したときにロボットを所定の位置に移動させる)内容とすることで、ロボットの制御を実現する。
【0034】
図2に示すように、外部装置70は、ロボット制御装置50に格納された教示位置(位置データ)を取得できるように構成されていても良い。例えば、外部装置70は、位置データを取得する場合、位置要求コマンドID:11(表1参照)をロボット制御装置50に対して送信する。ロボット制御装置50は、位置要求コマンドID:11に対する応答として位置データを外部装置70に対して送信する。このような手順により、外部装置70は、ロボット制御装置50側に格納された教示位置(位置データ)を取得することができる。この位置要求コマンドには、何番目の教示位置を要求するかを示す番号を付随させても良い。
【0035】
或いは、外部装置70は、ロボットシミュレーション装置80で動作確認され、位置データ記憶部81に格納されている教示位置(位置データ)を取得して、ロボット10の制御に使用しても良い。或いは、外部装置70は、外部装置70の操作部を介して位置データを入力できるように構成されていても良い。
【0036】
以上説明したように、本実施形態では、PLC等の制御機器と周辺装置とを接続してデジタルデータを送受信することを主たる目的とするフィールドバス(フィールドネットワーク)において、周辺装置と同様のノードとしてロボット制御装置50を外部装置70に対して接続した。そして、外部装置70から、ロボットの動作命令をコマンドID(デジタルデータ)として送信する構成とすると共に、位置データの要求や、ステータスの要求についてもコマンドIDとして外部装置70側から要求可能な構成とした。これにより、外部装置70から、ロボットの状態(動作速度、現在位置目標位置、動作中か否か等)に応じた制御も可能となる。
【0037】
以上、典型的な実施形態を用いて本発明を説明したが、当業者であれば、本発明の範囲から逸脱することなしに、上述の各実施形態に変更及び種々の他の変更、省略、追加を行うことができるのを理解できるであろう。
【0038】
上述した実施形態において説明した、外部装置やロボット制御装置のCPUにより実行される各種処理は、プログラムとして、コンピュータに読み取り可能な各種記録媒体(例えば、ROM、EEPROM、フラッシュメモリ等の半導体メモリ、磁気記録媒体、CD-ROM、DVD-ROM等の光ディスク)に記録することができる。
【符号の説明】
【0039】
10 ロボット
50 ロボット制御装置
51 デジタル入出力インタフェース
52 プログラム生成部
53 プログラム実行部
55、55a ロボット動作プログラム
56 位置データ記憶部
70 外部装置
72 インタフェース
80 ロボットシミュレーション装置
81 位置データ記憶部
91、92 周辺装置
100 ロボットシステム