JP2000010616A - ロボット制御システム - Google Patents
ロボット制御システムInfo
- Publication number
- JP2000010616A JP2000010616A JP10174993A JP17499398A JP2000010616A JP 2000010616 A JP2000010616 A JP 2000010616A JP 10174993 A JP10174993 A JP 10174993A JP 17499398 A JP17499398 A JP 17499398A JP 2000010616 A JP2000010616 A JP 2000010616A
- Authority
- JP
- Japan
- Prior art keywords
- program
- execution
- memory
- interpretation
- robot
- 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
Abstract
(57)【要約】
【課題】 ユーザプログラムで制御されるロボットシス
テムにおける実効速度を向上させることのできるロボッ
ト制御システムを提供する。 【解決手段】 システム全体を制御する制御部11とは
別にユーザプログラムを解釈して実行形式に変換する解
釈処理部14を備え、メモリ12から取り出したユーザ
プログラムの解釈はこの解釈処理部14に行わせて実行
形式プログラムに変換し、この実行形式プログラムによ
り駆動部15を制御することにより、制御部の負担が軽
減され、実行速度を向上させることができる。
テムにおける実効速度を向上させることのできるロボッ
ト制御システムを提供する。 【解決手段】 システム全体を制御する制御部11とは
別にユーザプログラムを解釈して実行形式に変換する解
釈処理部14を備え、メモリ12から取り出したユーザ
プログラムの解釈はこの解釈処理部14に行わせて実行
形式プログラムに変換し、この実行形式プログラムによ
り駆動部15を制御することにより、制御部の負担が軽
減され、実行速度を向上させることができる。
Description
【0001】
【発明の属する技術分野】本発明はロボット制御システ
ムに係り、特に産業用ロボットについてユーザプログラ
ムの高速実行が可能なロボット制御システムに関するも
のである。
ムに係り、特に産業用ロボットについてユーザプログラ
ムの高速実行が可能なロボット制御システムに関するも
のである。
【0002】
【従来の技術】ロボットの制御を行うためにユーザ側で
作成されるロボットプログラムは、汎用のロボット言語
が用いられるが、実際の制御を行っている制御装置で用
いられている命令群は、人間が記述するものであり、マ
イクロコンピュータが実行しやすい形式のものではな
い。したがって、従来のロボット制御システムにおいて
は、入力されたユーザプログラムを逐次文字列で解釈し
てロボットに対する命令を制御部において発生させ、こ
れに基づいて位置決め機構やロボットアーム等に設けら
れたモータ等のアクチュエータを制御している。具体的
には、ユーザプログラムの文字列を読み取り、文字その
ものを解釈し、解釈と同時に実行を行っている。
作成されるロボットプログラムは、汎用のロボット言語
が用いられるが、実際の制御を行っている制御装置で用
いられている命令群は、人間が記述するものであり、マ
イクロコンピュータが実行しやすい形式のものではな
い。したがって、従来のロボット制御システムにおいて
は、入力されたユーザプログラムを逐次文字列で解釈し
てロボットに対する命令を制御部において発生させ、こ
れに基づいて位置決め機構やロボットアーム等に設けら
れたモータ等のアクチュエータを制御している。具体的
には、ユーザプログラムの文字列を読み取り、文字その
ものを解釈し、解釈と同時に実行を行っている。
【0003】図3は従来の一般的なロボットシステムに
おけるプログラム実行機構の構成を示すブロック図であ
る。
おけるプログラム実行機構の構成を示すブロック図であ
る。
【0004】システム全体を制御する制御部に相当する
マイクロプロセッサ1にはユーザで作成され、図示しな
いデータ入力装置から入力されたロボットプログラムで
あるユーザプログラムを格納したメモリ2、マイクロプ
ロセッサ1がユーザプログラムを解釈・実行するための
システムプログラムを格納したシステムメモリ3、ユー
ザプログラムにより制御される工作機械等のロボットア
ームや位置決め機構を駆動するための電動機等の駆動部
であるアクチュエータ4が接続されている。
マイクロプロセッサ1にはユーザで作成され、図示しな
いデータ入力装置から入力されたロボットプログラムで
あるユーザプログラムを格納したメモリ2、マイクロプ
ロセッサ1がユーザプログラムを解釈・実行するための
システムプログラムを格納したシステムメモリ3、ユー
ザプログラムにより制御される工作機械等のロボットア
ームや位置決め機構を駆動するための電動機等の駆動部
であるアクチュエータ4が接続されている。
【0005】このプログラム実行機構の動作を図4に示
す。
す。
【0006】処理が開始されると、マイクロプロセッサ
1は、システムメモリ3から取り出したシステムプログ
ラムに基づいてメモリ2から読み出したユーザプログラ
ムを1行ずつ読み込み(ステップS1)、その文字列を
解釈し(ステップS2)、これを実行してワークの位置
決め機構やロボットアームに取り付けられた電動機等の
アクチュエータ4を駆動する(ステップS3)。
1は、システムメモリ3から取り出したシステムプログ
ラムに基づいてメモリ2から読み出したユーザプログラ
ムを1行ずつ読み込み(ステップS1)、その文字列を
解釈し(ステップS2)、これを実行してワークの位置
決め機構やロボットアームに取り付けられた電動機等の
アクチュエータ4を駆動する(ステップS3)。
【0007】この処理では、ユーザプログラムを一行ず
つ読み込んでおり、プログラムの終了を意味するEND
等の文字列が読み込まれたときには、プログラムの解釈
・実行が終了する(ステップS4)。
つ読み込んでおり、プログラムの終了を意味するEND
等の文字列が読み込まれたときには、プログラムの解釈
・実行が終了する(ステップS4)。
【0008】
【発明が解決しようとする課題】しかし、このような実
行方法では、ユーザプログラムの実行に要するメモリエ
リアが比較的小さくて済む反面、文字列そのものはユー
ザプログラムを実行するCPUの内部命令とは全く異な
るため、これを逐次変換する処理が必要で、このために
実行速度が低下して高速なロボットプログラムの実行を
実現することが困難であり、ロボットの応答性が十分で
ない等の問題があった。
行方法では、ユーザプログラムの実行に要するメモリエ
リアが比較的小さくて済む反面、文字列そのものはユー
ザプログラムを実行するCPUの内部命令とは全く異な
るため、これを逐次変換する処理が必要で、このために
実行速度が低下して高速なロボットプログラムの実行を
実現することが困難であり、ロボットの応答性が十分で
ない等の問題があった。
【0009】本発明はこのような問題を解決するために
なされたもので、ユーザプログラムの実行速度を向上さ
せることができるロボット制御システムを提供すること
を目的とする。
なされたもので、ユーザプログラムの実行速度を向上さ
せることができるロボット制御システムを提供すること
を目的とする。
【0010】
【課題を解決するための手段】本発明にかかるロボット
の制御システムは、作業対象物を所定位置に位置決めす
る位置決め機構および前記作業対象物に対して作業を行
う作業機構の少なくともいずれかを駆動する駆動手段
と、入力されたユーザプログラムを解釈し、ロボット制
御に直接用いられる実行形式プログラムに変換する解釈
処理手段と、前記解釈手段で得られた実行形式プログラ
ムから前記駆動手段に対して実行形式プログラムを実行
して前記駆動手段を制御する制御手段とを備えたことを
特徴とするものである。
の制御システムは、作業対象物を所定位置に位置決めす
る位置決め機構および前記作業対象物に対して作業を行
う作業機構の少なくともいずれかを駆動する駆動手段
と、入力されたユーザプログラムを解釈し、ロボット制
御に直接用いられる実行形式プログラムに変換する解釈
処理手段と、前記解釈手段で得られた実行形式プログラ
ムから前記駆動手段に対して実行形式プログラムを実行
して前記駆動手段を制御する制御手段とを備えたことを
特徴とするものである。
【0011】このような構成を採用することにより、ユ
ーザプログラムの解釈が制御手段とは独立した解釈手段
で行われるため、制御手段の負担が軽減され、高速のプ
ログラム実行が可能となって応答性が向上する。
ーザプログラムの解釈が制御手段とは独立した解釈手段
で行われるため、制御手段の負担が軽減され、高速のプ
ログラム実行が可能となって応答性が向上する。
【0012】
【発明の実施の形態】本発明の実施の一形態を図1に示
す。
す。
【0013】同図によれば、制御部であるマイクロプロ
セッサ11にはユーザプログラムを格納したメモリ1
2、ユーザプログラムを解釈する処理を行う解釈処理部
13、解釈のための処理プログラムおよび実行のための
処理プログラムを含むシステムプログラムを格納したシ
ステムメモリ13、制御される例えばロボットアームの
電動機等のアクチュエータ15が接続されている。解釈
処理部14は、システムメモリ13から取り出したシス
テムプログラムに基づいてメモリ12から読み出したユ
ーザプログラムを解釈して実行形式プログラムに変換す
る。
セッサ11にはユーザプログラムを格納したメモリ1
2、ユーザプログラムを解釈する処理を行う解釈処理部
13、解釈のための処理プログラムおよび実行のための
処理プログラムを含むシステムプログラムを格納したシ
ステムメモリ13、制御される例えばロボットアームの
電動機等のアクチュエータ15が接続されている。解釈
処理部14は、システムメモリ13から取り出したシス
テムプログラムに基づいてメモリ12から読み出したユ
ーザプログラムを解釈して実行形式プログラムに変換す
る。
【0014】より詳細には、解釈処理部はパーサと称さ
れる字句解析モジュール141と、コードジェネレータ
と称されるコンパイルモジュール142の2つのソフト
ウェアを実行する。
れる字句解析モジュール141と、コードジェネレータ
と称されるコンパイルモジュール142の2つのソフト
ウェアを実行する。
【0015】字句解析モジュールはユーザプログラムを
1行ずつ解析して、予約語、変数、定数、記号等のトー
クンコードに分解するが、この際、予約語が含まれた行
に対して、予約語の使い方が正しいかどうかの文法チェ
ックおよび変数が含まれた行に対して、変数のテーブル
への登録の2つの処理を同時に行っている。
1行ずつ解析して、予約語、変数、定数、記号等のトー
クンコードに分解するが、この際、予約語が含まれた行
に対して、予約語の使い方が正しいかどうかの文法チェ
ックおよび変数が含まれた行に対して、変数のテーブル
への登録の2つの処理を同時に行っている。
【0016】コンパイルモジュール142は、字句解析
モジュール141で分解されたトークンコードからマイ
クロプロセッサが容易に実行可能なコードに変換する。
一般に1つのトークンコードは複数の実行コードを含む
実行形式プログラムに展開され、後述する例でもそのよ
うになっている。
モジュール141で分解されたトークンコードからマイ
クロプロセッサが容易に実行可能なコードに変換する。
一般に1つのトークンコードは複数の実行コードを含む
実行形式プログラムに展開され、後述する例でもそのよ
うになっている。
【0017】以上の変換は、一般的なコンパイラで使用
されているのと同様のアルゴリズムに従って行われる。
また、このような解釈処理部における処理は、ロボット
プログラム起動時に、1度だけ実行される。
されているのと同様のアルゴリズムに従って行われる。
また、このような解釈処理部における処理は、ロボット
プログラム起動時に、1度だけ実行される。
【0018】そして、マイクロプロセッサ11は得られ
た実行コードを実行してアクチュエータ15を駆動す
る。
た実行コードを実行してアクチュエータ15を駆動す
る。
【0019】図2はロボットプログラムに対する解釈実
行の様子を示すフローチャートである。
行の様子を示すフローチャートである。
【0020】この処理は大きく2つの処理に分かれてお
り、その第1は解釈処理、第2は実行処理である。
り、その第1は解釈処理、第2は実行処理である。
【0021】まず、解釈処理が開始されると、メモリ1
2に格納されたユーザプログラムの1行分が読み込まれ
る(ステップS11)。
2に格納されたユーザプログラムの1行分が読み込まれ
る(ステップS11)。
【0022】この読み込まれたユーザプログラム1行分
の文字列についてマイクロプロセッサにより字句解析モ
ジュールによる解釈が行われ(ステップS12)、コン
パイルモジュールにより上述した実行形式のプログラム
に変換される(ステップS13)。
の文字列についてマイクロプロセッサにより字句解析モ
ジュールによる解釈が行われ(ステップS12)、コン
パイルモジュールにより上述した実行形式のプログラム
に変換される(ステップS13)。
【0023】以下、ユーザプログラムの実行形式への変
換例を説明する。
換例を説明する。
【0024】ここでは、ユーザプログラムとして第1軸
を100度の位置まで移動させる命令である、 MOVEA 1,100 を例にとって説明する。この命令の実行形式のコード
は、 実行コード1 shifta.s −2 実行コード2 mva.fs INDEX,#1 実行コード3 mva.fs INDEX,#2 実行コード4 movea +2,+1 実行コード5 shiftfa.s +2 の5つの実行コードからなっている。
を100度の位置まで移動させる命令である、 MOVEA 1,100 を例にとって説明する。この命令の実行形式のコード
は、 実行コード1 shifta.s −2 実行コード2 mva.fs INDEX,#1 実行コード3 mva.fs INDEX,#2 実行コード4 movea +2,+1 実行コード5 shiftfa.s +2 の5つの実行コードからなっている。
【0025】これらの各実行コードの意味は次の通りで
ある。 実行コード1 : メモリ領域を2ワード分確保する。 実行コード2 : 確保したメモリ領域の1ワード目に
INDEX1で示される定数テーブルの内容を格納す
る。 実行コード3 : 確保したメモリ領域の2ワード目に
INDEX2で示される定数テーブルの内容を格納す
る。 実行コード4 : 確保したメモリの1ワード目と2ワ
ード目を移動命令サブルーチンを引数として実行する。 実行コード5 : メモリを開放する。
ある。 実行コード1 : メモリ領域を2ワード分確保する。 実行コード2 : 確保したメモリ領域の1ワード目に
INDEX1で示される定数テーブルの内容を格納す
る。 実行コード3 : 確保したメモリ領域の2ワード目に
INDEX2で示される定数テーブルの内容を格納す
る。 実行コード4 : 確保したメモリの1ワード目と2ワ
ード目を移動命令サブルーチンを引数として実行する。 実行コード5 : メモリを開放する。
【0026】なお、メモリの所定領域に確保された定数
テーブルの内容は次のようになる。 INDEX1 : 100 INDEX2 : 1
テーブルの内容は次のようになる。 INDEX1 : 100 INDEX2 : 1
【0027】このように実行形式に変換されたプログラ
ムは一旦メモリ12に保存される(ステップS14)。
このとき、先に説明したユーザプログラムの格納アドレ
スとは異なるアドレスに保存される。
ムは一旦メモリ12に保存される(ステップS14)。
このとき、先に説明したユーザプログラムの格納アドレ
スとは異なるアドレスに保存される。
【0028】このような実行形式への変換は、プログラ
ムの終了まで続けられ、プログラムの終了を意味する実
行コードが読み込まれたときには、プログラムの解釈が
終了し(ステップS15)、実行処理に移行する。
ムの終了まで続けられ、プログラムの終了を意味する実
行コードが読み込まれたときには、プログラムの解釈が
終了し(ステップS15)、実行処理に移行する。
【0029】実行処理においては、マイクロプロセッサ
11はメモリ12から実行形式プログラムを読み出し
(ステップS21)、実行を行う(ステップS22)。
11はメモリ12から実行形式プログラムを読み出し
(ステップS21)、実行を行う(ステップS22)。
【0030】この実行はすでに実行形式に変換されてい
るプログラムを実行するのみであるので、実行速度は従
来より飛躍的に高いものとなる。
るプログラムを実行するのみであるので、実行速度は従
来より飛躍的に高いものとなる。
【0031】この処理はプログラムの終わりまで続けら
れ、プログラムの終了を意味するEND等の文字列が読
み込まれたときには、プログラムの解釈・実行が終了す
る(ステップS23)。
れ、プログラムの終了を意味するEND等の文字列が読
み込まれたときには、プログラムの解釈・実行が終了す
る(ステップS23)。
【0032】このように、この実施の形態ではユーザプ
ログラムの文字列の解釈はシステム全体の制御部とは別
の解釈処理部により行われるため、制御部の負担が軽減
されるとともに、全体として実行速度を向上させること
ができる。
ログラムの文字列の解釈はシステム全体の制御部とは別
の解釈処理部により行われるため、制御部の負担が軽減
されるとともに、全体として実行速度を向上させること
ができる。
【0033】なお、プログラムの起動時には解釈処理部
の処理実行のために、プログラム実行開始指令が与えら
れてから実際にプログラムが実行されるまで、若干のタ
イムラグが発生するが、一般にロボットプログラムはお
なじプログラムがサイクリックに実行されることが多い
ため、全体としては高速のプログラム実行が可能とな
る。
の処理実行のために、プログラム実行開始指令が与えら
れてから実際にプログラムが実行されるまで、若干のタ
イムラグが発生するが、一般にロボットプログラムはお
なじプログラムがサイクリックに実行されることが多い
ため、全体としては高速のプログラム実行が可能とな
る。
【0034】以上の実施の形態においてはユーザプログ
ラムを格納したメモリの一部に解釈処理部により変換さ
れた実行形式プログラムを格納するようにしているが、
別個の専用メモリをさらに設けるようにしても良い。
ラムを格納したメモリの一部に解釈処理部により変換さ
れた実行形式プログラムを格納するようにしているが、
別個の専用メモリをさらに設けるようにしても良い。
【0035】
【発明の効果】本発明によれば、システム全体を制御す
る制御部とは別にユーザプログラムを解釈して実行形式
に変換する解釈処理部を備えるようにしたので、制御部
の負担が軽減され、実行速度を向上させることができ
る。
る制御部とは別にユーザプログラムを解釈して実行形式
に変換する解釈処理部を備えるようにしたので、制御部
の負担が軽減され、実行速度を向上させることができ
る。
【図1】本発明によるロボット制御システムのシステム
構成図。
構成図。
【図2】図1に示したシステムにおける処理動作を示す
フローチャート。
フローチャート。
【図3】従来のロボット制御システムのシステム構成
図。
図。
【図4】図3に示したシステムにおける処理動作を示す
フローチャート。
フローチャート。
11 制御部(マイクロプロセッサ) 12 メモリ 13 システムメモリ 14 解釈処理部 15 駆動部(アクチュエータ) 141 字句解析モジュール 142 コンパイルモジュール
───────────────────────────────────────────────────── フロントページの続き Fターム(参考) 3F059 FC14 GA00 5B081 CC11 CC41 5H269 AB33 BB05 EE11 EE13 EE30 GG08 QB15 QB17 QB19 QB20
Claims (2)
- 【請求項1】作業対象物を所定位置に位置決めする位置
決め機構および前記作業対象物に対して作業を行う作業
機構の少なくともいずれかを駆動する駆動手段と、 入力されたユーザプログラムを解釈し、ロボット制御に
直接用いられる実行形式プログラムに変換する解釈処理
手段と、 前記解釈手段で得られた実行形式プログラムから前記駆
動手段に対して実行形式プログラムを実行して前記駆動
手段を制御する制御手段とを備えたロボット制御システ
ム。 - 【請求項2】前記ユーザプログラムを格納するとともに
実行形式に変換されたプログラムを格納する第1のメモ
リと、 前記解釈および実行のためのプログラムを格納した第2
のメモリとをさらに備えたことを特徴とする請求項1に
記載のロボット制御システム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP10174993A JP2000010616A (ja) | 1998-06-22 | 1998-06-22 | ロボット制御システム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP10174993A JP2000010616A (ja) | 1998-06-22 | 1998-06-22 | ロボット制御システム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2000010616A true JP2000010616A (ja) | 2000-01-14 |
Family
ID=15988352
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP10174993A Pending JP2000010616A (ja) | 1998-06-22 | 1998-06-22 | ロボット制御システム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2000010616A (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2016131646A (ja) * | 2015-01-16 | 2016-07-25 | ナレルシステム株式会社 | 格闘コマンドシミュレータ、その為の方法又はプログラミング |
WO2022131327A1 (ja) * | 2020-12-18 | 2022-06-23 | ファナック株式会社 | 数値制御装置及び数値制御システム |
-
1998
- 1998-06-22 JP JP10174993A patent/JP2000010616A/ja active Pending
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2016131646A (ja) * | 2015-01-16 | 2016-07-25 | ナレルシステム株式会社 | 格闘コマンドシミュレータ、その為の方法又はプログラミング |
WO2022131327A1 (ja) * | 2020-12-18 | 2022-06-23 | ファナック株式会社 | 数値制御装置及び数値制御システム |
JP7121221B1 (ja) * | 2020-12-18 | 2022-08-17 | ファナック株式会社 | 数値制御装置及び数値制御システム |
TWI804068B (zh) * | 2020-12-18 | 2023-06-01 | 日商發那科股份有限公司 | 數值控制裝置及數值控制系統 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5606697A (en) | Compiler system for language processing program | |
JP2000010616A (ja) | ロボット制御システム | |
JPH11167492A (ja) | ループ飛び出し文を含むループに対する配列サマリ解析方法 | |
JPH01277934A (ja) | パラメータリスト参照方法の切換え方式 | |
US7174235B2 (en) | Controller for machines | |
JPS60237542A (ja) | プログラム制御装置 | |
KR100383896B1 (ko) | 기기 제어 시스템 | |
JPH04347704A (ja) | 駆動制御装置 | |
JP3889227B2 (ja) | プログラム実行装置、プログラム実行方法、記録媒体、及び制御プログラム | |
JP3424596B2 (ja) | シンボル参照情報のキャッシュ方法ならびに装置 | |
JPH02183804A (ja) | 数値制御装置におけるプログラム実行方式 | |
JPH0991022A (ja) | ロボット制御装置 | |
JPS63155236A (ja) | ソフトウエアの暴走検知方法 | |
JPH04178734A (ja) | プログラム言語処理装置 | |
JPH11195011A (ja) | 言語翻訳処理装置、言語翻訳処理方法、言語翻訳処理プログラムを記録した記録媒体 | |
JPH1139016A (ja) | ロボット制御装置 | |
JPH05100728A (ja) | 駆動制御方式および駆動制御装置 | |
JPH0239305A (ja) | 数値制御装置 | |
JP2539070B2 (ja) | コンパイラ処理装置 | |
JP2002006918A (ja) | ロボットの制御装置および制御方法 | |
JPH05250150A (ja) | シーケンス制御装置 | |
JPH06309175A (ja) | インタプリタのプログラム実行方式 | |
JPH01140236A (ja) | プログラムの逆コンパイル方式 | |
JPH0736733A (ja) | デバッガ支援装置 | |
JPS62108337A (ja) | プログラムデバツグ装置 |