JP2003058217A - ロボットコントローラおよびロボットの制御方法 - Google Patents
ロボットコントローラおよびロボットの制御方法Info
- Publication number
- JP2003058217A JP2003058217A JP2001249438A JP2001249438A JP2003058217A JP 2003058217 A JP2003058217 A JP 2003058217A JP 2001249438 A JP2001249438 A JP 2001249438A JP 2001249438 A JP2001249438 A JP 2001249438A JP 2003058217 A JP2003058217 A JP 2003058217A
- Authority
- JP
- Japan
- Prior art keywords
- robot
- operation instruction
- buffer
- program
- instruction
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Landscapes
- Numerical Control (AREA)
- Manipulator (AREA)
Abstract
(57)【要約】
【課題】動作命令を先行解釈しこれをバッファに蓄えて
ロボットを動作させている間に、割り込み条件の発生に
よって割り込み処理を行っても正常な軌道でロボットを
動作させることが可能なロボットコントローラを提供す
る。 【解決手段】動作命令を先行して読み出すプログラム解
釈部3と、動作命令を記憶するバッファ4と、バッファ
4に記憶された動作命令を記憶可能なバッファ5と、記
憶された動作命令を順に実行し軌道を生成する軌道生成
部6と、を有し、プログラム解釈部3は、所定の割り込
み条件が発生し、プログラムに割り込み用の動作命令を
実行させる割り込み命令が含まれている場合には、未実
行の動作命令をバッファ5に退避させ、割り込み用の動
作命令をバッファ4に書き込み、割り込み用の動作命令
の実行完了後に未実行の動作命令をバッファ4に書き込
み実行させる。
ロボットを動作させている間に、割り込み条件の発生に
よって割り込み処理を行っても正常な軌道でロボットを
動作させることが可能なロボットコントローラを提供す
る。 【解決手段】動作命令を先行して読み出すプログラム解
釈部3と、動作命令を記憶するバッファ4と、バッファ
4に記憶された動作命令を記憶可能なバッファ5と、記
憶された動作命令を順に実行し軌道を生成する軌道生成
部6と、を有し、プログラム解釈部3は、所定の割り込
み条件が発生し、プログラムに割り込み用の動作命令を
実行させる割り込み命令が含まれている場合には、未実
行の動作命令をバッファ5に退避させ、割り込み用の動
作命令をバッファ4に書き込み、割り込み用の動作命令
の実行完了後に未実行の動作命令をバッファ4に書き込
み実行させる。
Description
【0001】
【発明の属する技術分野】本発明は、ロボットコントロ
ーラおよびロボットの制御装置に関する。
ーラおよびロボットの制御装置に関する。
【0002】
【従来の技術】一般的に、産業用ロボットを動作させる
には、ロボット言語で記述された、たとえば、目標位置
への移動を指令する動作命令を含むプログラムをロボッ
トコントローラで解釈し、この解釈された動作命令から
ロボットのアームの軌道情報を生成し、これをロボット
の各アクチュエータに分配することにより行われる。ロ
ボットを動作させるプログラムは、通常、オペレータに
よるティーチングによって作成される。上記のロボット
コントローラにおいて、その都度動作命令の解釈を行な
って軌道情報を生成し、ロボットの各アクチュエータに
分配してロボットのアームを目標位置へ移動させたの
ち、次の動作命令の解釈を開始したのでは、ロボットの
アームを連続的に移動させ、所望の速度に制御すること
等が難しい。このため、通常、ロボットコントローラに
おいては、現在実行されている動作命令よりも数ブロッ
ク先までの動作命令を先行して解釈し、複数の動作命令
を予めバッファに蓄えおき、このバッファに蓄えられた
動作命令から軌道情報を生成して各アクチュエータに分
配する、いわゆる先読みが行われている。このような動
作命令の先行解釈は、ロボットを各目標位置で停止させ
ずに各目標位置を結ぶ軌道上を連続的に移動させる際に
必ず必要な処理である。
には、ロボット言語で記述された、たとえば、目標位置
への移動を指令する動作命令を含むプログラムをロボッ
トコントローラで解釈し、この解釈された動作命令から
ロボットのアームの軌道情報を生成し、これをロボット
の各アクチュエータに分配することにより行われる。ロ
ボットを動作させるプログラムは、通常、オペレータに
よるティーチングによって作成される。上記のロボット
コントローラにおいて、その都度動作命令の解釈を行な
って軌道情報を生成し、ロボットの各アクチュエータに
分配してロボットのアームを目標位置へ移動させたの
ち、次の動作命令の解釈を開始したのでは、ロボットの
アームを連続的に移動させ、所望の速度に制御すること
等が難しい。このため、通常、ロボットコントローラに
おいては、現在実行されている動作命令よりも数ブロッ
ク先までの動作命令を先行して解釈し、複数の動作命令
を予めバッファに蓄えおき、このバッファに蓄えられた
動作命令から軌道情報を生成して各アクチュエータに分
配する、いわゆる先読みが行われている。このような動
作命令の先行解釈は、ロボットを各目標位置で停止させ
ずに各目標位置を結ぶ軌道上を連続的に移動させる際に
必ず必要な処理である。
【0003】
【発明が解決しようとする課題】ところで、ロボットを
プログラムにしたがって動作させている間には、通常動
作だけでなく、不定期に発生する、異常や所定の条件に
応じた特別な動作を行わせたい場合もある。このような
場合のために、ロボット言語プログラムには、割り込み
処理命令が用意されている。一方、上記したロボットコ
ントローラでは、バッファに蓄えられたある動作命令か
ら生成した軌道上を動作させている間に、割り込み信号
が発生すると、割り込み処理ルーチンにおいて規定され
た動作命令の軌道情報を生成し、これをバッファに記憶
された先読みされた動作命令上に上書きする。このた
め、通常動作における動作命令の一部が消滅し、割り込
み処理から通常動作に復帰したときにロボットのアーム
の軌道が通常動作の軌道から外れてしまうという問題が
存在した。すなわち、従来においては、ロボットを適切
に動作させる上で必要な動作命令の先読みを行っている
際に割り込み処理を行うと、ロボットが所望の軌道上を
移動しないという問題があった。
プログラムにしたがって動作させている間には、通常動
作だけでなく、不定期に発生する、異常や所定の条件に
応じた特別な動作を行わせたい場合もある。このような
場合のために、ロボット言語プログラムには、割り込み
処理命令が用意されている。一方、上記したロボットコ
ントローラでは、バッファに蓄えられたある動作命令か
ら生成した軌道上を動作させている間に、割り込み信号
が発生すると、割り込み処理ルーチンにおいて規定され
た動作命令の軌道情報を生成し、これをバッファに記憶
された先読みされた動作命令上に上書きする。このた
め、通常動作における動作命令の一部が消滅し、割り込
み処理から通常動作に復帰したときにロボットのアーム
の軌道が通常動作の軌道から外れてしまうという問題が
存在した。すなわち、従来においては、ロボットを適切
に動作させる上で必要な動作命令の先読みを行っている
際に割り込み処理を行うと、ロボットが所望の軌道上を
移動しないという問題があった。
【0004】本発明は上記の問題点に鑑みてなされたも
のであり、その目的は、ロボットを動作させる動作プロ
グラムに含まれる動作命令を先行解釈しこれをバッファ
に蓄えてロボットを動作させている間に、割り込み条件
の発生によって割り込み処理を行っても、先行解釈によ
り得られた動作命令が失われることがなく、ロボットを
所望の軌道上を適切に動作させることが可能なロボット
コントローラを提供することにある。
のであり、その目的は、ロボットを動作させる動作プロ
グラムに含まれる動作命令を先行解釈しこれをバッファ
に蓄えてロボットを動作させている間に、割り込み条件
の発生によって割り込み処理を行っても、先行解釈によ
り得られた動作命令が失われることがなく、ロボットを
所望の軌道上を適切に動作させることが可能なロボット
コントローラを提供することにある。
【0005】
【課題を解決するための手段】本発明のロボットコント
ローラは、ロボットの動作を規定したロボット言語プロ
グラムを逐次解釈し、当該プログラムに含まれる動作命
令を読み出し、かつ、遅くとも最先の動作命令の実行完
了前に次の動作命令を先行して読み出すプログラム解釈
部と、前記プログラム解釈部によって読み出された複数
の動作命令を一時的に記憶する動作命令実行用バッファ
と、前記動作命令実行用バッファに記憶された動作命令
を一時的に記憶可能な動作命令保存用バッファと、前記
動作命令実行用バッファに記憶された動作命令を順に実
行し、前記ロボットの移動すべき軌道を生成する軌道生
成部と、を有し、前記プログラム解釈部は、現在のロボ
ットの動作を中断させる所定の割り込み条件が発生し、
かつ、前記プログラム中に割り込み用の動作命令を実行
させる割り込み命令が含まれている場合には、前記動作
命令実行用バッファに記憶された未実行の動作命令を前
記動作命令保存用バッファに退避させ、前記割り込み用
の動作命令を前記動作命令実行用バッファに書き込み、
前記割り込み用の動作命令の実行完了後に、前記動作命
令保存用バッファに記憶された未実行の動作命令を再び
前記動作命令実行用バッファに書き込み実行させる。
ローラは、ロボットの動作を規定したロボット言語プロ
グラムを逐次解釈し、当該プログラムに含まれる動作命
令を読み出し、かつ、遅くとも最先の動作命令の実行完
了前に次の動作命令を先行して読み出すプログラム解釈
部と、前記プログラム解釈部によって読み出された複数
の動作命令を一時的に記憶する動作命令実行用バッファ
と、前記動作命令実行用バッファに記憶された動作命令
を一時的に記憶可能な動作命令保存用バッファと、前記
動作命令実行用バッファに記憶された動作命令を順に実
行し、前記ロボットの移動すべき軌道を生成する軌道生
成部と、を有し、前記プログラム解釈部は、現在のロボ
ットの動作を中断させる所定の割り込み条件が発生し、
かつ、前記プログラム中に割り込み用の動作命令を実行
させる割り込み命令が含まれている場合には、前記動作
命令実行用バッファに記憶された未実行の動作命令を前
記動作命令保存用バッファに退避させ、前記割り込み用
の動作命令を前記動作命令実行用バッファに書き込み、
前記割り込み用の動作命令の実行完了後に、前記動作命
令保存用バッファに記憶された未実行の動作命令を再び
前記動作命令実行用バッファに書き込み実行させる。
【0006】本発明のロボットの制御方法は、ロボット
の動作を規定したロボット言語プログラムを逐次解釈
し、当該プログラムに含まれる動作命令のうち遅くとも
最先の動作命令の実行完了前に次の動作命令を先行して
読み出し、読み出された複数の動作命令を動作命令実行
用バッファに書き込み、当該動作命令実行用バッファに
書き込まれた前記動作命令を順次実行して前記ロボット
の移動すべき軌道を生成し、この軌道に基づいて前記ロ
ボットの動作を制御するロボットの制御方法であって、
現在のロボットの動作を中断させる所定の割り込み条件
が発生し、かつ、前記プログラム中に割り込み用の動作
命令を実行させる割り込み命令が含まれている場合に
は、前記動作命令実行用バッファに記憶された未実行の
動作命令を前記動作命令保存用バッファに退避させ、前
記割り込み用の動作命令を前記動作命令実行用バッファ
に書き込み、前記割り込み用の動作命令の実行完了後
に、前記動作命令保存用バッファに記憶された未実行の
動作命令を再び前記動作命令実行用バッファに書き込み
実行させる。
の動作を規定したロボット言語プログラムを逐次解釈
し、当該プログラムに含まれる動作命令のうち遅くとも
最先の動作命令の実行完了前に次の動作命令を先行して
読み出し、読み出された複数の動作命令を動作命令実行
用バッファに書き込み、当該動作命令実行用バッファに
書き込まれた前記動作命令を順次実行して前記ロボット
の移動すべき軌道を生成し、この軌道に基づいて前記ロ
ボットの動作を制御するロボットの制御方法であって、
現在のロボットの動作を中断させる所定の割り込み条件
が発生し、かつ、前記プログラム中に割り込み用の動作
命令を実行させる割り込み命令が含まれている場合に
は、前記動作命令実行用バッファに記憶された未実行の
動作命令を前記動作命令保存用バッファに退避させ、前
記割り込み用の動作命令を前記動作命令実行用バッファ
に書き込み、前記割り込み用の動作命令の実行完了後
に、前記動作命令保存用バッファに記憶された未実行の
動作命令を再び前記動作命令実行用バッファに書き込み
実行させる。
【0007】本発明では、ロボット言語プログラムを解
釈する際に、最先の動作命令の実行完了前に少なくとも
次の動作命令を先行して読み出し、これを動作命令実行
用バッファに書き込む。ロボットは、この動作命令実行
用バッファに書き込まれた動作命令が順次実行されるこ
とによって動作する。ロボットの動作中に割り込み命令
が実行されると、ロボットの動作が中断されたのち、動
作命令実行用バッファに書き込まれた未実行の動作命令
が動作命令保存用バッファに退避される。そして、未実
行の動作命令が動作命令保存用バッファに退避されたの
ちの動作命令実行用バッファに割り込み用の動作命令が
書き込まれる。これにより、中断された動作命令の後
に、割り込み用の動作命令が実行され、さらに、割り込
み用の動作命令の実行終了後に動作命令保存用バッファ
に書き込まれた未実行の動作命令が実行される。これに
より、動作命令実行用バッファに先行して読みだされた
未実行の動作命令が消失することがない。
釈する際に、最先の動作命令の実行完了前に少なくとも
次の動作命令を先行して読み出し、これを動作命令実行
用バッファに書き込む。ロボットは、この動作命令実行
用バッファに書き込まれた動作命令が順次実行されるこ
とによって動作する。ロボットの動作中に割り込み命令
が実行されると、ロボットの動作が中断されたのち、動
作命令実行用バッファに書き込まれた未実行の動作命令
が動作命令保存用バッファに退避される。そして、未実
行の動作命令が動作命令保存用バッファに退避されたの
ちの動作命令実行用バッファに割り込み用の動作命令が
書き込まれる。これにより、中断された動作命令の後
に、割り込み用の動作命令が実行され、さらに、割り込
み用の動作命令の実行終了後に動作命令保存用バッファ
に書き込まれた未実行の動作命令が実行される。これに
より、動作命令実行用バッファに先行して読みだされた
未実行の動作命令が消失することがない。
【0008】
【発明の実施の形態】以下、本発明の実施の形態につい
て図面を参照して説明する。図1は、本発明の一実施形
態に係るロボットコントローラの機能ブロック図であ
る。なお、本実施形態に係るロボットコントローラは、
コンピュータと所要のソフトウエアにより構成される。
図1に示すロボットコントローラ1は、中間コード生成
部2と、ロボットプログラム解釈部3と、動作命令実行
用バッファ4と、動作命令保存用バッファ5と、軌道生
成分配部6とを有する。このロボットコントローラ1
は、ロボット本体7に接続されており、ロボット本体7
をプログラムにしたがって動作させる。ロボット本体7
は、たとえば、多関節型ロボットや、スカラー型ロボッ
ト等であり、複数のアクチュエータを備えている。
て図面を参照して説明する。図1は、本発明の一実施形
態に係るロボットコントローラの機能ブロック図であ
る。なお、本実施形態に係るロボットコントローラは、
コンピュータと所要のソフトウエアにより構成される。
図1に示すロボットコントローラ1は、中間コード生成
部2と、ロボットプログラム解釈部3と、動作命令実行
用バッファ4と、動作命令保存用バッファ5と、軌道生
成分配部6とを有する。このロボットコントローラ1
は、ロボット本体7に接続されており、ロボット本体7
をプログラムにしたがって動作させる。ロボット本体7
は、たとえば、多関節型ロボットや、スカラー型ロボッ
ト等であり、複数のアクチュエータを備えている。
【0009】中間コード生成部2は、所定のロボット言
語でロボット本体7に行わせる動作が記述された動作プ
ログラムPRをロボットプログラム解釈部3において解
釈可能な中間コードに一括して変換する。
語でロボット本体7に行わせる動作が記述された動作プ
ログラムPRをロボットプログラム解釈部3において解
釈可能な中間コードに一括して変換する。
【0010】ロボットプログラム解釈部3は、中間コー
ド生成部2で生成された中間コードを逐次解釈する。こ
のとき、ロボットプログラム解釈部3は、中間コードに
含まれる動作命令を読み出すが、現在実行されている動
作命令の実行終了までに先行して所定数の動作命令を読
み出す。このロボットプログラム解釈部3は、読み出し
た動作命令を動作命令実行用バッファ4に書き込む。な
お、本実施形態における動作命令とは、後述する移動命
令MOVE等のロボット本体7のアクチュエータを駆動
させロボット本体7を実動させる全ての命令である。
ド生成部2で生成された中間コードを逐次解釈する。こ
のとき、ロボットプログラム解釈部3は、中間コードに
含まれる動作命令を読み出すが、現在実行されている動
作命令の実行終了までに先行して所定数の動作命令を読
み出す。このロボットプログラム解釈部3は、読み出し
た動作命令を動作命令実行用バッファ4に書き込む。な
お、本実施形態における動作命令とは、後述する移動命
令MOVE等のロボット本体7のアクチュエータを駆動
させロボット本体7を実動させる全ての命令である。
【0011】また、ロボットプログラム解釈部3は、動
作プログラムPR中に割り込み用の動作命令を実行させ
る割り込み命令が含まれている場合にはこれを解釈す
る。割り込み命令を解釈したときに、ロボット本体7の
動作を中断させる所定の割り込み条件が発生している
と、割り込み命令で指示された割り込み用の動作命令を
動作命令実行用バッファ4に書き込む。このとき、割り
込み用の動作命令を動作命令実行用バッファ4に書き込
む前に、動作命令実行用バッファ4に記憶された未実行
の動作命令を動作命令保存用バッファ5に退避させ、割
り込み用の動作命令の実行完了後に、動作命令保存用バ
ッファ5に記憶された未実行の動作命令を再び動作命令
実行用バッファ4に書き込み実行させる。なお、ロボッ
トプログラム解釈部3における具体的な処理手順につい
ては後述する。
作プログラムPR中に割り込み用の動作命令を実行させ
る割り込み命令が含まれている場合にはこれを解釈す
る。割り込み命令を解釈したときに、ロボット本体7の
動作を中断させる所定の割り込み条件が発生している
と、割り込み命令で指示された割り込み用の動作命令を
動作命令実行用バッファ4に書き込む。このとき、割り
込み用の動作命令を動作命令実行用バッファ4に書き込
む前に、動作命令実行用バッファ4に記憶された未実行
の動作命令を動作命令保存用バッファ5に退避させ、割
り込み用の動作命令の実行完了後に、動作命令保存用バ
ッファ5に記憶された未実行の動作命令を再び動作命令
実行用バッファ4に書き込み実行させる。なお、ロボッ
トプログラム解釈部3における具体的な処理手順につい
ては後述する。
【0012】動作命令実行用バッファ4は、ロボットプ
ログラム解釈部3によって解釈されて読み出された動作
命令を記憶する。この動作命令実行用バッファ4に記憶
された動作命令が書き込まれた順に実行される。また、
動作命令実行用バッファ4は、複数でかつ所定数の動作
命令を記憶可能となっている。
ログラム解釈部3によって解釈されて読み出された動作
命令を記憶する。この動作命令実行用バッファ4に記憶
された動作命令が書き込まれた順に実行される。また、
動作命令実行用バッファ4は、複数でかつ所定数の動作
命令を記憶可能となっている。
【0013】動作命令保存用バッファ5は、割り込み命
令で指定された動作命令を実行する際に、動作命令実行
用バッファ4に記憶された未実行の動作命令がロボット
プログラム解釈部3によって退避され、この未実行の動
作命令を一時的に記憶する。また、動作命令保存用バッ
ファ5は、複数でかつ所定数の動作命令を記憶可能とな
っている。
令で指定された動作命令を実行する際に、動作命令実行
用バッファ4に記憶された未実行の動作命令がロボット
プログラム解釈部3によって退避され、この未実行の動
作命令を一時的に記憶する。また、動作命令保存用バッ
ファ5は、複数でかつ所定数の動作命令を記憶可能とな
っている。
【0014】軌道生成分配部6は、動作命令実行用バッ
ファ4に記憶された動作命令を書き込まれた順に読み出
し、この動作命令からロボット本体7の動作すべき軌道
を生成する。また、軌道生成分配部6は、生成した軌道
からロボット本体7の各アクチュエータに対する指令を
生成し、各アクチュエータを制御する図示しない制御系
に分配する。これにより、ロボット本体7の各アクチュ
エータが駆動され、ロボット本体7は動作プログラムP
Rで記述された動作を行う。
ファ4に記憶された動作命令を書き込まれた順に読み出
し、この動作命令からロボット本体7の動作すべき軌道
を生成する。また、軌道生成分配部6は、生成した軌道
からロボット本体7の各アクチュエータに対する指令を
生成し、各アクチュエータを制御する図示しない制御系
に分配する。これにより、ロボット本体7の各アクチュ
エータが駆動され、ロボット本体7は動作プログラムP
Rで記述された動作を行う。
【0015】図2は、ロボット言語で記述された動作プ
ログラムの一例を示す図である。図2において、プログ
ラム(1)のMOVEは動作命令であり、このプログラ
ム(1)は、ロボットのたとえば、ハンド等の所定の制
御点を位置A1に移動させる命令を規定するプログラム
である。
ログラムの一例を示す図である。図2において、プログ
ラム(1)のMOVEは動作命令であり、このプログラ
ム(1)は、ロボットのたとえば、ハンド等の所定の制
御点を位置A1に移動させる命令を規定するプログラム
である。
【0016】プログラム(2)は、割り込み命令のプロ
グラムである。プログラム(2)において、DIN
(1)は割り込み信号であり、この割り込み信号DIN
(1)は、たとえば、ロボットコントローラ1の外部か
ら入力される信号である。プログラム(2)は、割り込
み信号DIN(1)がオン状態の場合には、ロボット本
体7の動作を中断させ、DO節の命令を実行する内容で
ある。DO節の命令は位置B1へ移動する動作命令であ
る。
グラムである。プログラム(2)において、DIN
(1)は割り込み信号であり、この割り込み信号DIN
(1)は、たとえば、ロボットコントローラ1の外部か
ら入力される信号である。プログラム(2)は、割り込
み信号DIN(1)がオン状態の場合には、ロボット本
体7の動作を中断させ、DO節の命令を実行する内容で
ある。DO節の命令は位置B1へ移動する動作命令であ
る。
【0017】プログラム(3)は、ロボットの制御点を
位置A2に移動させる命令を規定するプログラムであ
る。プログラム(4)は、ロボットの制御点を位置A3
に移動させる命令を規定するプログラムである。プログ
ラム(5)は、ロボット本体7の動作を100秒間中断
させる命令を規定するプログラムである。プログラム
(6)は、ロボットの制御点を位置A4に移動させる命
令を規定するプログラムである。
位置A2に移動させる命令を規定するプログラムであ
る。プログラム(4)は、ロボットの制御点を位置A3
に移動させる命令を規定するプログラムである。プログ
ラム(5)は、ロボット本体7の動作を100秒間中断
させる命令を規定するプログラムである。プログラム
(6)は、ロボットの制御点を位置A4に移動させる命
令を規定するプログラムである。
【0018】図3は、割り込み信号DIN(1)がオ
フ、すなわち、割り込み条件が発生していない状態で
の、図2に示した動作プログラムの実行によって発生す
る軌道を説明するための図である。図2に示した動作プ
ログラムを実行すると、図3に示すように、軌道は位置
A1,A2,A3およびA4を結ぶ線分となる。
フ、すなわち、割り込み条件が発生していない状態で
の、図2に示した動作プログラムの実行によって発生す
る軌道を説明するための図である。図2に示した動作プ
ログラムを実行すると、図3に示すように、軌道は位置
A1,A2,A3およびA4を結ぶ線分となる。
【0019】図4は、割り込み条件が発生した状態での
図2に示すプログラムの実行によって発生する従来のロ
ボットの軌道を説明するための図である。なお、従来の
ロボットの軌道とは動作命令保存用バッファ5が存在し
ない場合のことである。図4において、位置A1から位
置A2に移動中に、位置P0 で割り込み信号DIN
(1)がオンしたとする。このとき、位置A1から位置
A2に移動中おける動作命令用バッファ4は、たとえ
ば、図6に示すような動作命令を記憶している。これら
の動作命令のうち、MOVE A1は、既に実行済であ
り、MOVEA2は実行中であり、MOVE A3およ
びMOVE A4は未実行の状態にある。すなわち、ロ
ボットプログラム解釈部3は、先行解釈を行うため、未
実行の状態の動作命令を記憶している。この状態から割
り込み信号DIN(1)がオンすると、図7に示すよう
に、ロボットプログラム解釈部3は、プログラム(2)
のDO節の命令であるMOVEB1をMOVE A3が
記憶された位置に上書きする。したがって、割り込み処
理が開始されると、動作命令MOVE B1およびMO
VE A4が順に実行される。
図2に示すプログラムの実行によって発生する従来のロ
ボットの軌道を説明するための図である。なお、従来の
ロボットの軌道とは動作命令保存用バッファ5が存在し
ない場合のことである。図4において、位置A1から位
置A2に移動中に、位置P0 で割り込み信号DIN
(1)がオンしたとする。このとき、位置A1から位置
A2に移動中おける動作命令用バッファ4は、たとえ
ば、図6に示すような動作命令を記憶している。これら
の動作命令のうち、MOVE A1は、既に実行済であ
り、MOVEA2は実行中であり、MOVE A3およ
びMOVE A4は未実行の状態にある。すなわち、ロ
ボットプログラム解釈部3は、先行解釈を行うため、未
実行の状態の動作命令を記憶している。この状態から割
り込み信号DIN(1)がオンすると、図7に示すよう
に、ロボットプログラム解釈部3は、プログラム(2)
のDO節の命令であるMOVEB1をMOVE A3が
記憶された位置に上書きする。したがって、割り込み処
理が開始されると、動作命令MOVE B1およびMO
VE A4が順に実行される。
【0020】このため、ロボットの軌道は、図4に示す
ように、位置P0 から位置B1に移動したのち、位置A
3ではなく位置A4に移動する。すなわち、動作プログ
ラムで規定した動作とは異なる軌道を移動する結果とな
る。
ように、位置P0 から位置B1に移動したのち、位置A
3ではなく位置A4に移動する。すなわち、動作プログ
ラムで規定した動作とは異なる軌道を移動する結果とな
る。
【0021】図5は、割り込み条件が発生した状態での
図2に示すプログラムの実行によって発生する本実施形
態のロボットのアームの軌道を説明するための図であ
る。図5に示すように、本実施形態では、位置P0 から
位置B1に移動したのち、位置A3に移動したのち、そ
の後位置A4に移動する。すなわち、本実施形態では、
動作命令保存用バッファ5を設け、ロボットプログラム
解釈部3に割り込み処理の際に動作命令実行用バッファ
4に先行解釈により記憶された未実行の動作命令を動作
命令保存用バッファ5に退避させ、割り込み用の動作命
令を実行した後に、退避された動作命令を実行する。こ
のため、先行解釈した未実行の動作命令が消失すること
がなく、動作プログラムで規定した動作と異なる軌道と
はならない。
図2に示すプログラムの実行によって発生する本実施形
態のロボットのアームの軌道を説明するための図であ
る。図5に示すように、本実施形態では、位置P0 から
位置B1に移動したのち、位置A3に移動したのち、そ
の後位置A4に移動する。すなわち、本実施形態では、
動作命令保存用バッファ5を設け、ロボットプログラム
解釈部3に割り込み処理の際に動作命令実行用バッファ
4に先行解釈により記憶された未実行の動作命令を動作
命令保存用バッファ5に退避させ、割り込み用の動作命
令を実行した後に、退避された動作命令を実行する。こ
のため、先行解釈した未実行の動作命令が消失すること
がなく、動作プログラムで規定した動作と異なる軌道と
はならない。
【0022】さらに、たとえば、仮に、ロボットプログ
ラム解釈部3において先行解釈を行わない場合には、ロ
ボットの軌道は、図5に示したのと同じ軌道となる。し
かしながら、ロボットプログラム解釈部3において先行
解釈を行わないと、各位置A1〜A4およびB1におい
てロボットの動作が中断してしまう。一方、本実施形態
では、先行解釈を行うことができるため、各位置A1〜
A4およびB1においてロボットの動作が中断してしま
うことがない。
ラム解釈部3において先行解釈を行わない場合には、ロ
ボットの軌道は、図5に示したのと同じ軌道となる。し
かしながら、ロボットプログラム解釈部3において先行
解釈を行わないと、各位置A1〜A4およびB1におい
てロボットの動作が中断してしまう。一方、本実施形態
では、先行解釈を行うことができるため、各位置A1〜
A4およびB1においてロボットの動作が中断してしま
うことがない。
【0023】次に、ロボットプログラム解釈部3の処理
手順の一例について図8および図9に示すフローチャー
トを参照して説明する。図8は割り込み条件が発生して
いない状態でのロボットプログラム解釈部3の処理手順
の一例を説明するためのフローチャートであり、図9は
割り込み条件が発生した状態でのロボットプログラム解
釈部3の処理手順の一例を説明するためのフローチャー
トである。
手順の一例について図8および図9に示すフローチャー
トを参照して説明する。図8は割り込み条件が発生して
いない状態でのロボットプログラム解釈部3の処理手順
の一例を説明するためのフローチャートであり、図9は
割り込み条件が発生した状態でのロボットプログラム解
釈部3の処理手順の一例を説明するためのフローチャー
トである。
【0024】まず、図8を参照して割り込み条件が発生
していない状態でのロボットプログラム解釈部3の処理
手順の一例を説明する。ロボットプログラム解釈部3
は、中間コード生成部2において生成された中間コード
を解釈し、命令の読み出しを行う(ステップS1)。
していない状態でのロボットプログラム解釈部3の処理
手順の一例を説明する。ロボットプログラム解釈部3
は、中間コード生成部2において生成された中間コード
を解釈し、命令の読み出しを行う(ステップS1)。
【0025】次いで、読み出した命令が動作命令か否か
を判断する(ステップS2)。動作命令でない場合に
は、この命令の内容に応じた処理を行う(ステップS
3)。ステップS3の処理後は、中間コードから再び命
令の読み出しを行う。
を判断する(ステップS2)。動作命令でない場合に
は、この命令の内容に応じた処理を行う(ステップS
3)。ステップS3の処理後は、中間コードから再び命
令の読み出しを行う。
【0026】読みだした命令が動作命令の場合には、動
作命令実行用バッファ4に空きがあるかを判別する(ス
テップS5)。すなわち、動作命令実行用バッファ4に
新たに未実行の動作命令を書き込み可能な場所(既に実
行済の動作命令が記憶された場所)が存在するかを判別
する。
作命令実行用バッファ4に空きがあるかを判別する(ス
テップS5)。すなわち、動作命令実行用バッファ4に
新たに未実行の動作命令を書き込み可能な場所(既に実
行済の動作命令が記憶された場所)が存在するかを判別
する。
【0027】未実行の動作命令を書き込み可能な場所が
存在しない場合には、動作命令実行用バッファ4に空き
が発生するまで待機する。未実行の動作命令を書き込み
可能な場所が存在する場合には、この場所に新たな動作
命令を書き込む(S6)。新たな動作命令を書き込んだ
のちには、再び命令の読み出しを行う。
存在しない場合には、動作命令実行用バッファ4に空き
が発生するまで待機する。未実行の動作命令を書き込み
可能な場所が存在する場合には、この場所に新たな動作
命令を書き込む(S6)。新たな動作命令を書き込んだ
のちには、再び命令の読み出しを行う。
【0028】ロボットプログラム解釈部3は、上述した
手順で動作命令実行用バッファ4に先行解釈した動作命
令を書き込むことにより、動作命令実行用バッファ4に
は、実行中の動作命令の実行が終了する前に未実行の動
作命令が常に書き込まれた状態となり、動作命令を途切
れることなく連続して実行することが可能となる。
手順で動作命令実行用バッファ4に先行解釈した動作命
令を書き込むことにより、動作命令実行用バッファ4に
は、実行中の動作命令の実行が終了する前に未実行の動
作命令が常に書き込まれた状態となり、動作命令を途切
れることなく連続して実行することが可能となる。
【0029】次に、図9を参照して、割り込み条件が発
生した状態でのロボットプログラム解釈部3の処理手順
の一例について説明する。ロボットプログラム解釈部3
では、上記した割り込み命令のプログラム(2)を読み
出すとともに、割り込み信号DIN(1)がオンする
と、割り込み条件が成立したと判断する(ステップS1
1)。この状態において、ロボットの動作は中断され
る。
生した状態でのロボットプログラム解釈部3の処理手順
の一例について説明する。ロボットプログラム解釈部3
では、上記した割り込み命令のプログラム(2)を読み
出すとともに、割り込み信号DIN(1)がオンする
と、割り込み条件が成立したと判断する(ステップS1
1)。この状態において、ロボットの動作は中断され
る。
【0030】次いで、ロボットプログラム解釈部3は、
プログラム(2)で説明したDO節に規定された命令を
読み出す(ステップS13)。このとき、読み出した命
令がDO節に規定された命令の最後の命令かを判断する
(ステップS14)。最後の命令ではない場合には、読
み出した命令が動作命令か否かを判断する(ステップS
15)。動作命令でない場合には、この命令の内容に応
じた処理を行う(ステップS16)。ステップS16の
処理後は、中間コードから再び命令の読み出しを行う。
プログラム(2)で説明したDO節に規定された命令を
読み出す(ステップS13)。このとき、読み出した命
令がDO節に規定された命令の最後の命令かを判断する
(ステップS14)。最後の命令ではない場合には、読
み出した命令が動作命令か否かを判断する(ステップS
15)。動作命令でない場合には、この命令の内容に応
じた処理を行う(ステップS16)。ステップS16の
処理後は、中間コードから再び命令の読み出しを行う。
【0031】読みだした命令が動作命令の場合には、動
作命令実行用バッファ4に空きがあるかを判別する(ス
テップS17)。すなわち、動作命令実行用バッファ4
に新たに未実行の動作命令を書き込み可能な場所(既に
実行済の動作命令が記憶された場所)が存在するかを判
別する。
作命令実行用バッファ4に空きがあるかを判別する(ス
テップS17)。すなわち、動作命令実行用バッファ4
に新たに未実行の動作命令を書き込み可能な場所(既に
実行済の動作命令が記憶された場所)が存在するかを判
別する。
【0032】未実行の動作命令を書き込み可能な場所が
存在しない場合には、動作命令実行用バッファ4に空き
が発生するまで待機する。未実行の動作命令を書き込み
可能な場所が存在する場合には、この場所に新たな動作
命令を書き込む(S18)。新たな動作命令を書き込ん
だのちには、再び命令の読み出しを行う。
存在しない場合には、動作命令実行用バッファ4に空き
が発生するまで待機する。未実行の動作命令を書き込み
可能な場所が存在する場合には、この場所に新たな動作
命令を書き込む(S18)。新たな動作命令を書き込ん
だのちには、再び命令の読み出しを行う。
【0033】ステップS14において、読み出した命令
がDO節に規定された命令の最後の命令と判断した場合
には、動作命令実行用バッファ4に退避した未実行の動
作命令を書き込むための空きが存在するかを判断する
(ステップS19)。動作命令実行用バッファ4に空き
がない場合には、空きが発生するまで待機する。
がDO節に規定された命令の最後の命令と判断した場合
には、動作命令実行用バッファ4に退避した未実行の動
作命令を書き込むための空きが存在するかを判断する
(ステップS19)。動作命令実行用バッファ4に空き
がない場合には、空きが発生するまで待機する。
【0034】ステップS19において、動作命令実行用
バッファ4に空きが存在した場合には、動作命令保存用
バッファ5が空か否かを判断する(ステップS20)。
すなわち、動作命令保存用バッファ5が空の場合には、
動作命令保存用バッファ5に未実行の動作命令が記憶さ
れていないと判断し、動作命令保存用バッファ5が空で
ない場合には、動作命令保存用バッファ5に未実行の動
作命令が記憶されていると判断する。
バッファ4に空きが存在した場合には、動作命令保存用
バッファ5が空か否かを判断する(ステップS20)。
すなわち、動作命令保存用バッファ5が空の場合には、
動作命令保存用バッファ5に未実行の動作命令が記憶さ
れていないと判断し、動作命令保存用バッファ5が空で
ない場合には、動作命令保存用バッファ5に未実行の動
作命令が記憶されていると判断する。
【0035】動作命令保存用バッファ5が空の場合に
は、割り込み信号DIN(1)がオン状態となる前の状
態に復帰する(ステップS22)。これにより、通常の
動作が続行される。
は、割り込み信号DIN(1)がオン状態となる前の状
態に復帰する(ステップS22)。これにより、通常の
動作が続行される。
【0036】動作命令保存用バッファ5が空ではない場
合には、動作命令保存用バッファ5に記憶した未実行の
動作命令を読み出し、これを動作命令実行用バッファ4
に書き込む。これにより、未実行の動作命令が実行され
る。
合には、動作命令保存用バッファ5に記憶した未実行の
動作命令を読み出し、これを動作命令実行用バッファ4
に書き込む。これにより、未実行の動作命令が実行され
る。
【0037】未実行の動作命令を読み出し、これを動作
命令実行用バッファ4に書き込んだのちには、割り込み
信号DIN(1)がオン状態となる前の状態に復帰する
(ステップS22)。これにより、通常の動作が続行さ
れる。
命令実行用バッファ4に書き込んだのちには、割り込み
信号DIN(1)がオン状態となる前の状態に復帰する
(ステップS22)。これにより、通常の動作が続行さ
れる。
【0038】以上のように、本実施形態によれば、ロボ
ット言語で記述されたプログラムを先行解釈し、これを
動作命令実行用バッファ4に記憶し、連続的に動作命令
を実行してロボットを動作させた際に、割り込み条件が
発生して割り込み用の動作命令が実行されたのちに、先
行解釈により動作命令実行用バッファ4に記憶された未
実行の動作命令にしたがってロボットを動作させること
ができる。この結果、割り込み命令を使用してもロボッ
トをプログラムに記述した動作の通りに動かすことがで
きる。
ット言語で記述されたプログラムを先行解釈し、これを
動作命令実行用バッファ4に記憶し、連続的に動作命令
を実行してロボットを動作させた際に、割り込み条件が
発生して割り込み用の動作命令が実行されたのちに、先
行解釈により動作命令実行用バッファ4に記憶された未
実行の動作命令にしたがってロボットを動作させること
ができる。この結果、割り込み命令を使用してもロボッ
トをプログラムに記述した動作の通りに動かすことがで
きる。
【0039】
【発明の効果】本発明によれば、ロボットを動作させる
動作プログラムに含まれる動作命令を先行解釈しこれを
バッファに蓄えてロボットを動作させている間に、割り
込み条件の発生によって割り込み処理を行っても、先行
解釈により得られた動作命令が失われることがなく、所
望の軌道に沿ってロボットを動作させることが可能とな
る。
動作プログラムに含まれる動作命令を先行解釈しこれを
バッファに蓄えてロボットを動作させている間に、割り
込み条件の発生によって割り込み処理を行っても、先行
解釈により得られた動作命令が失われることがなく、所
望の軌道に沿ってロボットを動作させることが可能とな
る。
【図1】本発明の一実施形態に係るロボットコントロー
ラの機能ブロック図である。
ラの機能ブロック図である。
【図2】ロボット言語で作成された動作プログラムの一
例を示す図である。
例を示す図である。
【図3】割り込み条件が発生していない状態での図2に
示すプログラムの実行によって発生するロボットのアー
ムの軌道を説明するための図である。
示すプログラムの実行によって発生するロボットのアー
ムの軌道を説明するための図である。
【図4】割り込み条件が発生した状態での図2に示すプ
ログラムの実行によって発生する従来のロボットのアー
ムの軌道を説明するための図である。
ログラムの実行によって発生する従来のロボットのアー
ムの軌道を説明するための図である。
【図5】割り込み条件が発生した状態での図2に示すプ
ログラムの実行によって発生する本実施形態のロボット
のアームの軌道を説明するための図である。
ログラムの実行によって発生する本実施形態のロボット
のアームの軌道を説明するための図である。
【図6】割り込み条件が発生した状態での動作命令実行
用バッファ内の状態を説明するための図である。
用バッファ内の状態を説明するための図である。
【図7】割り込み条件が発生した状態で動作命令実行用
バッファ内の未実行動作命令を退避しなかったときの動
作命令実行用バッファ内の状態を説明するための図であ
る。
バッファ内の未実行動作命令を退避しなかったときの動
作命令実行用バッファ内の状態を説明するための図であ
る。
【図8】割り込み条件が発生していない状態でのロボッ
トプログラム解釈部3の処理手順の一例を説明するため
のフローチャートである。
トプログラム解釈部3の処理手順の一例を説明するため
のフローチャートである。
【図9】割り込み条件が発生した状態でのロボットプロ
グラム解釈部3の処理手順の一例を説明するためのフロ
ーチャートである。
グラム解釈部3の処理手順の一例を説明するためのフロ
ーチャートである。
1…ロボットコントローラ
2…中間コード生成部
3…ロボットプログラム解釈部
4…動作命令実行用バッファ
5…動作命令保存用バッファ
6…軌道生成分配部
7…ロボット本体
PR…動作プログラム
Claims (2)
- 【請求項1】ロボットの動作を規定したロボット言語プ
ログラムを逐次解釈し、当該プログラムに含まれる動作
命令を読み出し、かつ、遅くとも最先の動作命令の実行
完了前に次の動作命令を先行して読み出すプログラム解
釈部と、 前記プログラム解釈部によって読み出された複数の動作
命令を一時的に記憶する動作命令実行用バッファと、 前記動作命令実行用バッファに記憶された動作命令を一
時的に記憶可能な動作命令保存用バッファと、 前記動作命令実行用バッファに記憶された動作命令を順
に実行し、前記ロボットの移動すべき軌道を生成する軌
道生成部と、を有し、 前記プログラム解釈部は、現在のロボットの動作を中断
させる所定の割り込み条件が発生し、かつ、前記プログ
ラム中に割り込み用の動作命令を実行させる割り込み命
令が含まれている場合には、前記動作命令実行用バッフ
ァに記憶された未実行の動作命令を前記動作命令保存用
バッファに退避させ、前記割り込み用の動作命令を前記
動作命令実行用バッファに書き込み、前記割り込み用の
動作命令の実行完了後に、前記動作命令保存用バッファ
に記憶された未実行の動作命令を再び前記動作命令実行
用バッファに書き込み実行させるロボットコントロー
ラ。 - 【請求項2】ロボットの動作を規定したロボット言語プ
ログラムを逐次解釈し、当該プログラムに含まれる動作
命令のうち遅くとも最先の動作命令の実行完了前に次の
動作命令を先行して読み出し、読み出された複数の動作
命令を動作命令実行用バッファに書き込み、当該動作命
令実行用バッファに書き込まれた前記動作命令を順次実
行して前記ロボットの移動すべき軌道を生成し、この軌
道に基づいて前記ロボットの動作を制御するロボットの
制御方法であって、 現在のロボットの動作を中断させる所定の割り込み条件
が発生し、かつ、前記プログラム中に割り込み用の動作
命令を実行させる割り込み命令が含まれている場合に
は、前記動作命令実行用バッファに記憶された未実行の
動作命令を前記動作命令保存用バッファに退避させ、前
記割り込み用の動作命令を前記動作命令実行用バッファ
に書き込み、前記割り込み用の動作命令の実行完了後
に、前記動作命令保存用バッファに記憶された未実行の
動作命令を再び前記動作命令実行用バッファに書き込み
実行させるロボットの制御方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2001249438A JP2003058217A (ja) | 2001-08-20 | 2001-08-20 | ロボットコントローラおよびロボットの制御方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2001249438A JP2003058217A (ja) | 2001-08-20 | 2001-08-20 | ロボットコントローラおよびロボットの制御方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2003058217A true JP2003058217A (ja) | 2003-02-28 |
Family
ID=19078440
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2001249438A Pending JP2003058217A (ja) | 2001-08-20 | 2001-08-20 | ロボットコントローラおよびロボットの制御方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2003058217A (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2017028898A (ja) * | 2015-07-24 | 2017-02-02 | 日本電産サンキョー株式会社 | モータ制御装置 |
JP2017204188A (ja) * | 2016-05-12 | 2017-11-16 | ファナック株式会社 | 条件指定による加工プログラム先読み開始機能を備えた数値制御装置 |
-
2001
- 2001-08-20 JP JP2001249438A patent/JP2003058217A/ja active Pending
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2017028898A (ja) * | 2015-07-24 | 2017-02-02 | 日本電産サンキョー株式会社 | モータ制御装置 |
JP2017204188A (ja) * | 2016-05-12 | 2017-11-16 | ファナック株式会社 | 条件指定による加工プログラム先読み開始機能を備えた数値制御装置 |
US10338570B2 (en) | 2016-05-12 | 2019-07-02 | Fanuc Corporation | Numerical controller |
DE102017004366B4 (de) | 2016-05-12 | 2020-06-18 | Fanuc Corporation | Numerische Steuervorrichtung |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP2549344B1 (en) | Simulation method of control program enabling a selective restart of the simulation | |
WO1995025991A1 (fr) | Controleur de machine | |
JP5970415B2 (ja) | 産業用ロボットおよび周辺装置の動作を制御する制御システムおよび制御方法 | |
WO2007063858A1 (ja) | バッファ制御装置およびバッファメモリ | |
JP3168682B2 (ja) | 数値制御装置 | |
US7434222B2 (en) | Task context switching RTOS | |
JP2003058217A (ja) | ロボットコントローラおよびロボットの制御方法 | |
JP4122725B2 (ja) | リアルタイム制御システム | |
JP5459601B2 (ja) | ロボットコントロール・システム、ロボットコントロール方法 | |
JPH056213A (ja) | 産業用ロボツト制御方法およびその装置 | |
JPH07261820A (ja) | 産業用ロボット作業のソフトウェア構成方法及び制御装置 | |
JP2654614B2 (ja) | 速度制御装置 | |
JP3805123B2 (ja) | ディジタル信号処理装置 | |
JP7473653B2 (ja) | 制御対象物を制御する設定パラメータを所定のタイミングで変更する機能を有する数値制御装置及びその設定パラメータ変更方法 | |
JP2019168804A (ja) | 加工プログラム編集装置 | |
JP2958470B2 (ja) | シーケンスコントローラ | |
JP2001042907A (ja) | シーケンス制御装置 | |
JPH0962322A (ja) | 多軸ロボットの制御装置及びその制御方法 | |
US20020038155A1 (en) | System and method for sequence control | |
JPH0969007A (ja) | 複数ロボット再生制御システム | |
JP2658578B2 (ja) | プログラマブルコントローラ | |
JPH01173105A (ja) | プログラマブルコントローラ | |
JPS60222943A (ja) | デイスクキヤツシユ制御方式 | |
JPS6121506A (ja) | 作業機械の制御装置 | |
JP2680647B2 (ja) | 位置検出器付産業用ロボット |