JPH02278339A - ロボットプログラム翻訳装置及びロボツト制御装置 - Google Patents

ロボットプログラム翻訳装置及びロボツト制御装置

Info

Publication number
JPH02278339A
JPH02278339A JP1098745A JP9874589A JPH02278339A JP H02278339 A JPH02278339 A JP H02278339A JP 1098745 A JP1098745 A JP 1098745A JP 9874589 A JP9874589 A JP 9874589A JP H02278339 A JPH02278339 A JP H02278339A
Authority
JP
Japan
Prior art keywords
intermediate code
statement
robot
machine language
label
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
Application number
JP1098745A
Other languages
English (en)
Inventor
Makoto Akahira
誠 赤平
Masateru Yasuhara
正輝 安原
Youzou Touhou
東方 容三
Hideki Yamaguchi
英樹 山口
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon Inc
Original Assignee
Canon Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Canon Inc filed Critical Canon Inc
Priority to JP1098745A priority Critical patent/JPH02278339A/ja
Publication of JPH02278339A publication Critical patent/JPH02278339A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Debugging And Monitoring (AREA)
  • Devices For Executing Special Programs (AREA)
  • Numerical Control (AREA)
  • Manipulator (AREA)

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】 [産業上の利用分野] 本発明は、ロボット言語で書かれたソースプログラムを
中間コードもしくは機械語に翻訳するロボットプログラ
ム翻訳装置、並びに、ロボット言語で書かれたソースプ
ログラムを中間コード若しくは機械語に翻訳したコード
を実行するロボット制御装置に関する。
[従来の技術] 従来のロボット制御装置に採用されている翻訳型の言語
においては、例えば、−旦機械語に翻訳して記憶し、そ
の機械語プログラムを実行するというタイプと、中間コ
ードに翻訳したものを記憶し、その中間コードを解釈実
行するというタイプが一般的である。
いずれにしても翻訳という過程を経るわけで、このよう
にするのも、所謂インタプリタ型のタイプを除いては、
ロボット制御装置は、直接ソースプログラムを解釈実行
することはできないからである。
[発明が解決しようとしている課題] 即ち、これらの従来の翻訳型の言語を採用しているロボ
ット制御装置においては、翻訳後は中間コードもしくは
機械語のみで動作し、ソースプログラムからは一切独立
することになる。
一方、ロボットの制御プログラムを開発する過程でデバ
ッグ作業は不可欠である。特に、システムとして複雑化
傾向にある昨今のロボットとしては、他のロボットや供
給装置等地の外部装置とのデータの通信が増加し、その
動作プログラムも非常に複雑になってきている。そのた
め、そのやりとりのタイミングや、動作順序や動作速度
等に無駄がないかどうかを判定するために、実行過程を
リアルタイムに時間測定し、ソースプログラムの解析や
、動作解析を行ないたいという要求がある。
一方、前述のインタプリタ型の言語を用いたロボット制
御装置では、ステートメント単位に実行するので、デバ
ッグ過程で、そのステートメントの文番号を表示出力す
ることは従来も行なわれている。
しかし、前述したように、翻訳型の言語を採用している
従来のロボット制御装置においては、翻訳後は、中間コ
ード若しくは機械語の実行アドレスしか検知できず、従
って、デバッグ過程でプログラマに対して表示若しくは
出力されるものは、プログラマにとって意味のない中間
コード若しくは機械語の実行アドレスでしかない。人間
は、中間コード若しくは機械語のアドレスからソースの
ステートメントの位置を知ることは基本的には不可能で
ある。唯一、翻訳時点で、ソースプログラムにコード及
びアドレスを対応させたものをプリンタ等に打ち出した
ものを、そのプログラムの実行に先立って用意しておか
なければならない。しかし、このような翻訳リストを打
ち出しておくことは、手間がかかるだけでな(、結局、
デバッグ作業者に、中間コード若しくは機械語の実行ア
ドレスとソースステートメントとの照合作業を強いるこ
とになる。
そこで本発明は、ソースプログラムの各ステートメント
と、そのプログラムの実行コードとの対応を容易にした
形でロボット制御プログラムを翻訳するロボットプログ
ラム翻訳装置を提案し、そして、実行時点で、ソースプ
ログラムの各ステートメントとそのプログラムの実行コ
ードとを対応容易に出力することのできるロボット制御
装置を提案するものである。
[課題を解決するための手段] 上記課題を達成するための本発明に係るロボットプログ
ラムの翻訳装置は、ロボット言語で書かれたソースプロ
グラムを中間コードもしくは機械語に翻訳するロボット
プログラム翻訳装置において、ステートメント若しくは
ラベルの、該ソースプログラムにおける相対的位置を示
す情報を、前記中間コード若しくは機械語と対応可能に
生成して記憶する生成手段を備えたことを特徴とする。
また1本発明に係るロボット制御装置は、ロボット言語
で書かれたソースプログラムを、中間コード若しくは機
械語に翻訳したコードを実行するロボット制御装置にお
いて、ステートメント若しくはラベルの該ソースプログ
ラムにおける相対的位置を示す情報を、このステートメ
ントの実行時に、実行順に可視出力する出力手段を備え
たことを特徴とする。
[実施例] 以下添付図面を参照して本発明の詳細な説明する。
第1図は、1実施例としてのロボットシステムの全体構
成を示す図である。図中、1はロボット制i卸装置であ
り、内部にプログラム翻訳/実行を行なうためのCPU
1aと、メモリ1bとを有する。メモリ1bは、翻訳さ
れた中間コード若しくは機械語を記憶する。
また、2はロボット本体であるが、このロボットはプロ
グラム制御のものであればいかなる形態のものでもよい
3はデバッグ装置であり、通常のパーソナルコンピュー
タを使用している。即ち、このデバッグ装置3を介して
、ソースプログラムの人力を行なったり、デバッグの指
示等を行なうためのものである。デバッグ装置3とロボ
ット制御装置1は共有したパスライン6をもつ。
この実施例によれば、ソースプログラムの翻訳時に、中
間コード(もしくは機械語)と共に、ソースステートメ
ントの文番号と、これの中間コード(もしくは機械語)
のアドレスとの対応テーブルを作成してお(。そして、
中間コード(もしくは機械語)はメモリ1bに、対応テ
ーブルはメモJ3aに格納される。操作者は、デバッグ
装置3を使って、ソースプログラムのどのステートメン
トをデバッグ対象にするかを指定する。指定されたステ
ートメントに対応する中間コード(もしくは機械語)の
アドレスは、対応テーブルから索引され、制御装置1に
知らされる。制御装置1は、デバッグ装置から知らされ
た中間コード(もしくは機械語)が実行されているか否
かを監視し、指定された中間コード(もしくは機械語)
が実行されたことを検知すると、その実行アドレスをデ
バッグ装置3に知らせる。デバッグ装置3は、知らされ
た時刻を計算し、更に知らされたアドレスから前述の対
応テーブルを使ってステートメント番号を検索し、これ
を時刻と併せて表示出力するものである。
第2図は、対応テーブルのフォーマットを示す図である
。このテーブルの1つのレコードは、「文番号」と「オ
フセットインデックス」と「セグメント番号」からなる
。ここで、「セグメント」とは複数の中間コード(もし
くは機械語)のかたまりである。1つの中間コード(も
しくは機械語)は、「セグメント番号」によって指定さ
れたセグメントの先頭の、オフセットインデックスの値
だけオフセットした位置から始まるようになっている。
第3図はソースプログラムの一例を示す。このプログラ
ムは、ステートメント10で、ロボット2のアーム(不
図示)の移動速度を”50”に設定し、この速度でアー
ムを、ステートメント30でティーチングポイントP 
(N)に移動する。ステートメント40で次のティーチ
ングポイントP(N+1)を指定する。そして、ラベル
*AAA以下の動作を繰返すというものである。
第4図は、第3図プログラムに対応する前述の対応テー
ブルの例を示したものである。尚、第4図において、1
0進法表示の文番号はHEX表示になっている。第5図
は、第3図のプログラムが翻訳されメモリlb内に格納
された中間コード(若しくは機械語)のうちのセグメン
ト番号“30”の格納状態を示したものである。尚、こ
の実施例で使用している言語では、ラベルは中間コード
(若しくは機械語)に翻訳されないので、第3図の文番
号20のラベル*AAAに対応する中間コード(若しく
は機械語)は第5図には示されていない。
第6図は制御装置1上で走る翻訳プログラムの手順であ
る。尚、翻訳するためのプログラム(コンパイラ)は、
制御装置1で走らせる代りに、デバッグ装置3上で走ら
せてもよい。
第6図のフローチャートでは、デバッグ装置3から既に
ソースプログラムが入力されて、そのソースプログラム
はメモリ1bに記憶されているものとしている。第6図
のステップS2において、このソースプログラムの1つ
のステートメントを取出して、ステップS4でその構文
解析を行ない、ステップS6で中間コード(若しくは機
械語)に翻訳し、ステップS8では、この中間コード(
若しくは機械語)をメモリ1bに書き込む。
ステップSIOでは、ソースステートメントの文番号と
中間コードとの対応を示す第2図で説明した対応テーブ
ルをメモリ3bに書き込む。ステップ82〜ステツプS
IOの操作を全ステートメントについて実行する。
第7図は、ロボット制御装置1がデバッグモードではな
い通常の実行(即ち、ロボット本体を制御する)モード
にある場合に、この制御装置1がメモリ1bに記憶され
た中間コード(若しくは機械語)を解釈実行する手順で
ある。
第8A図は、デバッグモードにおけるデバッグ装置3の
制御手順であり、第8B図は同じくデバッグモードにお
けろロボット制御装置1の中間コード(若しくは機械語
)の解釈実行制御手順である。ここで、第8A図および
第8B図で説明するデバッグは、ソースプログラム中で
あるステートメントをデバッグ装置3から措定し、この
ステートメントがロボット制御装置1で実行されたとき
の時刻を、そのステートメントの文番号と共にCRTS
上に表示するというものである。
第8A図において、ステップS30で、操作者がCRT
5を介して指定した文番号をCP U 3 aが人力す
る。ステップS32では、この文番号を中間コード(若
しくは機械語)のプログラムアドレスに変換する。ステ
ップS34では、このアドレスをバス6を介して制御装
置1に送る。そして、ステップ336で制御装置1から
の通知を待つ。
一方、制御装置1では、第8B図のステップS50で、
デバッグ装置3からのアドレス通知を待ち、このアドレ
スを受けた時点で入力する。ステップS52では、メモ
リ1bの中間コード(若しくは機械語)の1命令をフェ
ッチして、ステップS54で、この命令を解釈実行する
。ステップ856では、実行した命令のアドレスが、ス
テップS50で受けたアドレスと一致しているかを調べ
る。もし一致していなければ、ステップS52以下を繰
返す。
ステップS56で一致していると判断されたならば、ス
テップS58で、その旨デバッグ装置3に通知すると共
に、バス6を介してアドレスを送出した上で、ステップ
S52に戻る。
制御装置lからアドレス及び通知を受けたデバッグ装置
3は、ステップS36からステップS38に進み、その
通知を受けた時刻を検出し、ステップS40で、受信し
たアドレスから対応テーブルを使って文番号に変換し、
ステップS42で、その時刻及び文番号をCRTに表示
する。
上述のように、本実施例の制御装置若しくは翻訳装置1
は、翻訳時に対応アドレス表を作成し、実行時は自らが
実行時に利用する中間コードまたは機械語のアドレスを
出力するだけで何ら特別の計算や変換を行なうことなし
に、デバッグ機能を有する外部装置に対してソースプロ
グラム上のどの部分を実行中であるかを知らせることが
可能となった。そのため制御装置1は本来の動作処理以
外にそれほど余分な処理をする必要がなく、正確に効率
良く動作を行なえることができろ。そして、デバッグ装
置側3は出力されたアドレスをもとに、対応表の記憶し
ているメモリ領域をスキャンし、ソースプログラム中の
どの部分を実行しているのかを、ロボットコントローラ
に余計な負荷を与えずに処理できるようになった。
以下変形例を説明する。
■:前記実施例では、対応テーブルと中間コード(若し
くは機械語)とは異なるメモリに格納していた。これは
次の理由による。対応テーブルはデバッグ時にしか使用
せず、通常のロボット制御には使用されない。通常時に
は使用しないものをロボット制御装置に記憶することは
メモリ節約の観点から好ましくないからである。
そこで、制御装置1のメモリに余裕があるならば、対応
テーブルと中間コード(若しくは機械語)とをメモリ1
bに記憶してもよい。この場合、対応テーブルと中間コ
ード(若しくは機械語)とをフロッピーディスク等の外
部記憶装置に記憶し、このフロッピーを他の制御装置に
おいて使用することも可能である。このようにすれば、
この他の制御装置において、翻訳することも無しにデバ
ッグを実行できるようになると共に、併せて前述の実施
例の効果と同じ効果を享受できる■:もし、対応テーブ
ルを制御装置l側に持つようにしたならば、制御装置1
とデバッグ装置3との間の受は渡しは、中間コード(若
しくは機械語)のアドレスの代りに文番号を用いるよう
に変形することも可能である。要は、本発明は、操作者
に、現に実行されている中間コード(若しくは機械語)
に相当するソースのステートメントの文番号を最終的に
知らせることができればよいからである。
■:また、上記実施例では、制御装置1とデバッグ装置
3とは別の筐体としているが、同じ筐体内に設置されて
いるものでもよい。
■:第8図のデバッグ例では、単に、現に実行された1
つの中間コード(若しくは機械語)の文番号と時刻とを
表示するようにしているが、例えば、ある範囲内の文番
号を有する複数のステートメントを指定することも可能
である。また、ある1つのステートメントが実行されて
から再びそのステートメントが実行されるまでの経過時
間を計測し、その経過時間を文番号と併せて表示するこ
とも可能である。
[発明の効果] 以上説明したように本発明の、ロボット言語で書かれた
ソースプログラムを中間コードもしくは機械語に翻訳す
るロボットプログラム翻訳装置は、ステートメント若し
くはラベルの、該ソースプログラムにおける相対的位置
を示す情報を、前記中間コード若しくは機械語と対応可
能に生成して記憶する生成手段を備えることにより、当
該翻訳されたプログラムを実行しながらデバッグする際
に、実行されている中間コード(若しくは機械語)がど
のソースステートメントに対応するかを操作者が容易に
知ることが可能なように、プログラムが翻訳される。
第2項の発明による翻訳装置は、前記生成手段は、ステ
ートメント若しくはラベルの相対的位置を示す情報と、
前記中間コード若しくは機械語の実行アドレスとの対応
をテーブルに変換する変換手段を含み、このプログラム
ダラム翻訳装置は、翻訳された中間コードもしくは機械
語と、前記変換手段により生成された対応テーブルとを
分離した状態で記憶するための第1の記憶手段を更に備
える。これにより、中間コード(若しくは機械語)と、
デバッグが終わった後では不用となるテーブルとが分離
されて記憶されるので、メモリの効率使用が可能となる
また本発明の、ロボット言語で書かれたソースプログラ
ムを、中間コード若しくは機械語に翻訳したコードを実
行するロボット制御装置は、ステートメント若しくはラ
ベルの該ソースプログラムにおける相対的位置を示す情
報を、このステートメント若しくはラベルの実行時に、
実行順に可視出力する出力手段を備えたものである。こ
のために、当該翻訳されたプログラムを実行しながらデ
バッグする際に、実行されている中間コード(若しくは
機械語)がどのソースステートメントに対応するかを操
作者が容易に知ることが可能となりた。
第4項の発明によると、このロボット制御装置は、翻訳
された中間コード若しくは機械語を記憶する内蔵の第2
の記憶手段と、本体外に設けられたデバッグ手段とを備
えることにより、全体としてデバッグシステムを構成し
、このデバッグ手段は、ソースプログラム内の特定のス
テートメント若しくはラベルを指定する指定手段と、こ
の指定手段により指定された特定のステートメント若し
くはラベルに対応する中間コード若しくは機械語が実行
されていることを監視する監視手段とを有し、前記出力
手段は、この監視手段の出力を受けて、前記指定された
特定のステートメント若しくはラベルの相対的位置を表
示する表示手段とを含む事を特徴とする。即ち、デバッ
グ手段は、制御装置と切り離されることにより、操作の
容易性が増す。
【図面の簡単な説明】
第1図は実施例に係る翻訳/デバッグ/実行システムの
全体図、 第2図は対応テーブルのフォーマットを説明する図、 第3図はロボット制御プログラムの一例を示す図、 第4図は対応テーブルの具体例を示す図、第5図は中間
コード(若しくは機械語)の格納状態を説明する図、 第6図は制御装置による翻訳平頭を説明するフローチャ
ート、 第7図は制御装置によるロボット制御手順を説明するフ
ローチャート、 第8A図は、デバッグモードにおいて、デバッグ装置に
おける制御手順を説明するフローチャート、 第8B図は、デバッグモードにおいて、制御装置におけ
る制御手順を説明するフローチャートである。 図中、 1・・・ロボット制御装置、1a・・・CPU、■b・
・・メモリ、2・・・ロボット本体、3・・・デバッグ
装置、3a・・・CPU、3b・・・メモリ、5・・・
CRT、6・・・バスである。 第1図 特許出願人   キャノン株式会社 第2図 第6 図 第7図 第8A図 第8B図

Claims (4)

    【特許請求の範囲】
  1. (1)ロボット言語で書かれたソースプログラムを中間
    コードもしくは機械語に翻訳するロボットプログラム翻
    訳装置において、 ステートメント若しくはラベルの、該ソースプログラム
    における相対的位置を示す情報を、前記中間コード若し
    くは機械語と対応可能に生成して記憶する生成手段を備
    えたロボットプログラム翻訳装置。
  2. (2)前記生成手段は、ステートメント若しくはラベル
    の相対的位置を示す情報と、前記中間コード若しくは機
    械語の実行アドレスとの対応をテーブルに変換する変換
    手段を含み、 このプログラム翻訳装置は、 翻訳された中間コードもしくは機械語と、前記変換手段
    により生成された対応テーブルとを分離した状態で記憶
    するための第1の記憶手段を更に備える事を特徴とする
    請求項の第1項に記載のロボットプログラム翻訳装置。
  3. (3)ロボット言語で書かれたソースプログラムを、中
    間コード若しくは機械語に翻訳したコードを実行するロ
    ボット制御装置において、 ステートメント若しくはラベルの該ソースプログラムに
    おける相対的位置を示す情報を、このステートメント若
    しくはラベルの実行時に、実行順に可視出力する出力手
    段を備えたロボット制御装置。
  4. (4)このロボット制御装置は、翻訳された中間コード
    若しくは機械語を記憶する内蔵の第2の記憶手段と、本
    体外に設けられたデバッグ手段とを備えることにより、
    全体としてデバッグシステムを構成し、 このデバッグ手段は、 ソースプログラム内の特定のステートメント若しくはラ
    ベルを指定する指定手段と、 この指定手段により指定された特定のステートメント若
    しくはラベルに対応する中間コード若しくは機械語が実
    行されていることを監視する監視手段とを有し、 前記出力手段は、この監視手段の出力を受けて、前記指
    定された特定のステートメント若しくはラベルの相対的
    位置を表示する表示手段とを含む事を特徴とする請求項
    の第3項に記載のロボット制御装置。
JP1098745A 1989-04-20 1989-04-20 ロボットプログラム翻訳装置及びロボツト制御装置 Pending JPH02278339A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP1098745A JPH02278339A (ja) 1989-04-20 1989-04-20 ロボットプログラム翻訳装置及びロボツト制御装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP1098745A JPH02278339A (ja) 1989-04-20 1989-04-20 ロボットプログラム翻訳装置及びロボツト制御装置

Publications (1)

Publication Number Publication Date
JPH02278339A true JPH02278339A (ja) 1990-11-14

Family

ID=14228011

Family Applications (1)

Application Number Title Priority Date Filing Date
JP1098745A Pending JPH02278339A (ja) 1989-04-20 1989-04-20 ロボットプログラム翻訳装置及びロボツト制御装置

Country Status (1)

Country Link
JP (1) JPH02278339A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018512630A (ja) * 2015-02-10 2018-05-17 コメット グループ ゲーエムベーハー 工作機械の監視方法
CN111618846A (zh) * 2020-04-10 2020-09-04 中国科学院软件研究所 一种面向机械臂程序开发编程语言的调试器

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018512630A (ja) * 2015-02-10 2018-05-17 コメット グループ ゲーエムベーハー 工作機械の監視方法
CN111618846A (zh) * 2020-04-10 2020-09-04 中国科学院软件研究所 一种面向机械臂程序开发编程语言的调试器

Similar Documents

Publication Publication Date Title
EP0553731B1 (en) Programmable controller
US5933641A (en) Numeric intensive real-time software development system
US7240334B1 (en) Methods, systems, and computer program products for deferred computer program tracing
JP2001034497A (ja) 逆アセンブラのバイナリコード取得方法
JPH02278339A (ja) ロボットプログラム翻訳装置及びロボツト制御装置
JPH11272310A (ja) プログラマブルコントローラのエミュレーション装置
JPH04149658A (ja) 情報処理装置
JPH05346332A (ja) 試験プログラム実行方法
JP2008204023A (ja) プログラマブルコントローラシステム、プログラマブルコントローラのデバッグ方法
JP2827724B2 (ja) プログラムデバッグ処理方法
JPS6149209A (ja) 数値制御装置におけるプログラム実行方式
KR970011897B1 (ko) 언어해석 처리장치
JP2662533B2 (ja) ロジック・アナライザ
SU556445A1 (ru) Процессор, структурно ориентированный на алгоритмический зык
JPH0327453A (ja) プログラム文指定処理方式
JPS61180342A (ja) 高級言語のステツプ実行方式
JPS59225449A (ja) 文番号変換方式
JPH05224944A (ja) アラインメント整合方法
JPH0259829A (ja) マイクロコンピュータ
JPS59106048A (ja) マイクロプロセツサシステム
JPH0423102A (ja) プログラマブルコントローラ用プログラミング装置
JPH0236419A (ja) ソースコードの自動翻訳実行方式
JPH05313876A (ja) ユ−ザインタフェ−ス簡易操作装置
JPH05197539A (ja) プログラムソースコードの整合方式
JPH05108372A (ja) コンパイラ最適化処理内容の出力方式