JPH11338521A - 制御装置 - Google Patents
制御装置Info
- Publication number
- JPH11338521A JPH11338521A JP10147267A JP14726798A JPH11338521A JP H11338521 A JPH11338521 A JP H11338521A JP 10147267 A JP10147267 A JP 10147267A JP 14726798 A JP14726798 A JP 14726798A JP H11338521 A JPH11338521 A JP H11338521A
- Authority
- JP
- Japan
- Prior art keywords
- function
- user
- robot
- language
- control program
- 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.)
- Withdrawn
Links
Landscapes
- Stored Programmes (AREA)
- Programmable Controllers (AREA)
- Manipulator (AREA)
- Devices For Executing Special Programs (AREA)
Abstract
(57)【要約】
【課題】 汎用ロボットやプラントの制御に用いて好適
の制御装置において、システム自体の改造をすることな
く、かつ、制御対象に複雑な作業を行なわせる場合にも
作業効率を低下させることなく、ユーザが必要な動作を
制御対象にさせることのできるようにする。 【解決手段】 ロボット言語又は図形言語により記述さ
れた制御プログラムに対して標準関数を用いて言語解釈
及び演算処理を行なう解釈処理部7と、解釈処理部7に
よる該言語解釈及び該演算処理によって得られた指令情
報に従って制御対象20に動作指令を行なう制御演算部
6とをそなえた制御装置において、ユーザが該標準関数
とは別のユーザ関数を登録するユーザ関数登録機能をそ
なえ、解釈処理部7は、該ユーザ関数に対応した該制御
プログラムに対しては該ユーザ関数を用いて言語解釈及
び演算処理を行なうように構成する。
の制御装置において、システム自体の改造をすることな
く、かつ、制御対象に複雑な作業を行なわせる場合にも
作業効率を低下させることなく、ユーザが必要な動作を
制御対象にさせることのできるようにする。 【解決手段】 ロボット言語又は図形言語により記述さ
れた制御プログラムに対して標準関数を用いて言語解釈
及び演算処理を行なう解釈処理部7と、解釈処理部7に
よる該言語解釈及び該演算処理によって得られた指令情
報に従って制御対象20に動作指令を行なう制御演算部
6とをそなえた制御装置において、ユーザが該標準関数
とは別のユーザ関数を登録するユーザ関数登録機能をそ
なえ、解釈処理部7は、該ユーザ関数に対応した該制御
プログラムに対しては該ユーザ関数を用いて言語解釈及
び演算処理を行なうように構成する。
Description
【0001】
【発明の属する技術分野】本発明は、ロボット言語によ
り制御可能な汎用ロボットの制御、あるいは、図形言語
によりプラント制御ロジックを記述して制御可能なプラ
ントの制御に用いて好適の、制御装置に関する。
り制御可能な汎用ロボットの制御、あるいは、図形言語
によりプラント制御ロジックを記述して制御可能なプラ
ントの制御に用いて好適の、制御装置に関する。
【0002】
【従来の技術】従来より、ロボットの制御やプラントの
制御を行なう制御装置が開発されている。このような従
来の制御装置では、ユーザが容易に制御プログラムを記
述して用途に応じた動作指令を制御対象に行なうことが
できるように、標準関数をそなえた基本ソフトウエアが
用意されている。ユーザは、この標準関数を組み合わせ
て、目的に応じた制御プログラムを記述している。特に
比較的に緻密な作業に使用されることの多いロボットで
は、適宜に動作の修正又は変更を要求されることが多い
ため、ユーザが目的に応じてロボットに動作指令を行な
わせることを容易にできる制御装置の要求は高い。
制御を行なう制御装置が開発されている。このような従
来の制御装置では、ユーザが容易に制御プログラムを記
述して用途に応じた動作指令を制御対象に行なうことが
できるように、標準関数をそなえた基本ソフトウエアが
用意されている。ユーザは、この標準関数を組み合わせ
て、目的に応じた制御プログラムを記述している。特に
比較的に緻密な作業に使用されることの多いロボットで
は、適宜に動作の修正又は変更を要求されることが多い
ため、ユーザが目的に応じてロボットに動作指令を行な
わせることを容易にできる制御装置の要求は高い。
【0003】ロボットとしては、例えば、塗装スプレー
を行なう塗装ロボットがある。図7〜図10は従来の制
御装置にかかる塗装ロボットを示す図である。図7は塗
装ロボットの構成及び塗装ロボットの動作内容を示す図
であり、図8はロボット言語(標準関数)による塗装ロ
ボットの制御例を示す図であって、(a),(b)はそ
れぞれ図7の動作を塗装ロボットに行なわせるためのロ
ボット言語による制御プログラムを示す図であり、図9
はロボット制御装置の内部構成を示す図であり、図10
はロボット言語により記述した制御プログラムの解釈処
理のフローを説明する装置の要部構成図である。
を行なう塗装ロボットがある。図7〜図10は従来の制
御装置にかかる塗装ロボットを示す図である。図7は塗
装ロボットの構成及び塗装ロボットの動作内容を示す図
であり、図8はロボット言語(標準関数)による塗装ロ
ボットの制御例を示す図であって、(a),(b)はそ
れぞれ図7の動作を塗装ロボットに行なわせるためのロ
ボット言語による制御プログラムを示す図であり、図9
はロボット制御装置の内部構成を示す図であり、図10
はロボット言語により記述した制御プログラムの解釈処
理のフローを説明する装置の要部構成図である。
【0004】図7に示すように、塗装ロボット20は、
塗装スプレー21と、塗装スプレー21を移動させる移
動機構25と、塗装スプレー21及び移動機構25に動
作指令を行なうロボット制御装置10とから構成され、
作業対象40にスプレー塗装を行なう。ここで、移動機
構25は、軸26a,27a,28a,29aと、これ
らの軸26a〜29aの軸間及び軸端に設けられた傾動
関節26,27,29及び回動関節28,30とをそな
えている。傾動関節26,27,29は、結合された軸
を傾動できるようになっており、回動関節28は、接続
された軸をその軸心線回りに回動できるようになってい
る。回動関節30は、塗装ロボット20を支持してお
り、接続された軸をその軸心線回りに片方向に回転でき
るようになっている。
塗装スプレー21と、塗装スプレー21を移動させる移
動機構25と、塗装スプレー21及び移動機構25に動
作指令を行なうロボット制御装置10とから構成され、
作業対象40にスプレー塗装を行なう。ここで、移動機
構25は、軸26a,27a,28a,29aと、これ
らの軸26a〜29aの軸間及び軸端に設けられた傾動
関節26,27,29及び回動関節28,30とをそな
えている。傾動関節26,27,29は、結合された軸
を傾動できるようになっており、回動関節28は、接続
された軸をその軸心線回りに回動できるようになってい
る。回動関節30は、塗装ロボット20を支持してお
り、接続された軸をその軸心線回りに片方向に回転でき
るようになっている。
【0005】これらの傾動関節26,27,29,回動
関節28,30には、ロボット制御装置10からの動作
指令で動作する図示されない関節駆動装置、例えば、モ
ータ及び減速機がそれぞれ設置されている。また、傾動
関節26,27,29,回動関節28,30には、エン
コーダがそれぞれ付設されており、これらのエンコーダ
により検出した傾動関節26,27,29,回動関節2
8,30の動作量をロボット制御装置10にフィードバ
ックしている。
関節28,30には、ロボット制御装置10からの動作
指令で動作する図示されない関節駆動装置、例えば、モ
ータ及び減速機がそれぞれ設置されている。また、傾動
関節26,27,29,回動関節28,30には、エン
コーダがそれぞれ付設されており、これらのエンコーダ
により検出した傾動関節26,27,29,回動関節2
8,30の動作量をロボット制御装置10にフィードバ
ックしている。
【0006】そして、ロボット制御装置10の内部は、
図9に示すように、CPU1と、RAM2と、ROM3
と、I/Oデバイス4と、バッテリバックアップ付きの
RAM5と、それらを互いに繋げる伝送路9とから構成
される。
図9に示すように、CPU1と、RAM2と、ROM3
と、I/Oデバイス4と、バッテリバックアップ付きの
RAM5と、それらを互いに繋げる伝送路9とから構成
される。
【0007】ここで、塗装ロボット20を制御するため
の基本ソフトウェアはROM3に格納されており、CP
U1はこの基本ソフトウェアをRAM2を使って実行す
る。制御プログラムは、図8に示すようなロボット言語
により記述されており、電源を切っても内容が失われな
いメモリ領域、ここでは、バッテリバックアップ付きの
RAM5に通常ロードされている。このバッテリバック
アップ付きRAM5の代わりに、フラッシュROMなど
を使うこともある。そして、ロボット制御装置10はI
/Oデバイス4を介して塗装ロボット20とつながれて
いる。
の基本ソフトウェアはROM3に格納されており、CP
U1はこの基本ソフトウェアをRAM2を使って実行す
る。制御プログラムは、図8に示すようなロボット言語
により記述されており、電源を切っても内容が失われな
いメモリ領域、ここでは、バッテリバックアップ付きの
RAM5に通常ロードされている。このバッテリバック
アップ付きRAM5の代わりに、フラッシュROMなど
を使うこともある。そして、ロボット制御装置10はI
/Oデバイス4を介して塗装ロボット20とつながれて
いる。
【0008】塗装ロボット20は上述のように構成され
るので、図8(a),(b)に示すようなロボット言語
(標準関数)による制御プログラムを作成してロボット
制御装置10へ入力することで、塗装ロボット20に作
業対象物40の所定の位置に塗装を行なわせることがで
きる。この制御プログラムは、ロボット制御装置10の
CPU1で解釈処理された後に、I/Oデバイス4を介
して、動作信号として塗装スプレー21及び移動機構2
5の上述の関節駆動装置に送られる。この動作信号に応
じて、塗装スプレー21は塗装物の噴射の開始又は停止
の何れかを行ない、各関節駆動装置は互いに連動して塗
装スプレー21を所定の位置へと移動させる。
るので、図8(a),(b)に示すようなロボット言語
(標準関数)による制御プログラムを作成してロボット
制御装置10へ入力することで、塗装ロボット20に作
業対象物40の所定の位置に塗装を行なわせることがで
きる。この制御プログラムは、ロボット制御装置10の
CPU1で解釈処理された後に、I/Oデバイス4を介
して、動作信号として塗装スプレー21及び移動機構2
5の上述の関節駆動装置に送られる。この動作信号に応
じて、塗装スプレー21は塗装物の噴射の開始又は停止
の何れかを行ない、各関節駆動装置は互いに連動して塗
装スプレー21を所定の位置へと移動させる。
【0009】ここで、図8(a)のロボット言語により
記述された制御プログラムについて説明する。この記述
内容は、塗装ロボット20により、図7に示す作業対象
物40の、座標1,2間及び座標3,4間の範囲で塗装
を行なわせるためのものである。ここで、座標1〜4は
何れも作業対象物40の端点に位置する。以下に、図8
(a)の制御プログラムを、図7と対応させながら、上
から一行ずつ説明していく。
記述された制御プログラムについて説明する。この記述
内容は、塗装ロボット20により、図7に示す作業対象
物40の、座標1,2間及び座標3,4間の範囲で塗装
を行なわせるためのものである。ここで、座標1〜4は
何れも作業対象物40の端点に位置する。以下に、図8
(a)の制御プログラムを、図7と対応させながら、上
から一行ずつ説明していく。
【0010】「MOVE」は、塗装スプレー21を、引
数で指定した座標へ移動させるための関数である。ここ
では、「MOVE 1」として引数に1をセットして、
塗装スプレー21を塗装の開始点で作業対象物40の端
点に位置する座標1へと移動させる(ステップA1)。
次の「OVERSPRAY」は引数で指定した量をオー
バー量に設定する関数である。ここで、オーバー量と
は、塗装スプレー21の、塗装物の噴射停止時における
不安定な噴射状態による塗装むらを考慮して設定するも
ので、OVERSPRAY以降に記述されるMOVEに
ついては、その引数よりもOVERSPRAYにより設
定したオーバー量だけ離れた座標へと塗装スプレー21
を移動させる。さらに、OVERSPRAY以前にMO
VE指令により塗装スプレー21を移動させている場合
は、まず、このMOVE指令による移動とは逆方向にオ
ーバー量だけ塗装スプレー21を引き戻す。
数で指定した座標へ移動させるための関数である。ここ
では、「MOVE 1」として引数に1をセットして、
塗装スプレー21を塗装の開始点で作業対象物40の端
点に位置する座標1へと移動させる(ステップA1)。
次の「OVERSPRAY」は引数で指定した量をオー
バー量に設定する関数である。ここで、オーバー量と
は、塗装スプレー21の、塗装物の噴射停止時における
不安定な噴射状態による塗装むらを考慮して設定するも
ので、OVERSPRAY以降に記述されるMOVEに
ついては、その引数よりもOVERSPRAYにより設
定したオーバー量だけ離れた座標へと塗装スプレー21
を移動させる。さらに、OVERSPRAY以前にMO
VE指令により塗装スプレー21を移動させている場合
は、まず、このMOVE指令による移動とは逆方向にオ
ーバー量だけ塗装スプレー21を引き戻す。
【0011】ここでは、「OVERSPRAY 50」
としてオーバー量を50mmに設定している。したがっ
て、塗装スプレー21は、直前のMOVE(ステップA
1)による移動に対して、OVERSPRAYにより設
定した量(オーバ量)だけ手前の図中Aの位置へと引き
戻される。(ステップA2)。
としてオーバー量を50mmに設定している。したがっ
て、塗装スプレー21は、直前のMOVE(ステップA
1)による移動に対して、OVERSPRAYにより設
定した量(オーバ量)だけ手前の図中Aの位置へと引き
戻される。(ステップA2)。
【0012】塗装スプレー21が図中Aの位置へ移動し
た時点で、次の「SPRAY ON」により、塗装スプ
レー21の塗装物の噴射を開始させる(ステップA
3)。次に、「MOVE 2」として引数に2をセット
して、塗装スプレー21を、MOVE関数により、作業
対象物40の端点に位置する座標2へ移動させるように
指令しているが、ステップA2のOVERSPRAYの
設定により、MOVE関数により指定された位置(座標
2)に対しOVERSPRAYにより設定した量(オー
バ量)だけ先の位置(図中Bの位置)へと移動させる
(ステップA4)。
た時点で、次の「SPRAY ON」により、塗装スプ
レー21の塗装物の噴射を開始させる(ステップA
3)。次に、「MOVE 2」として引数に2をセット
して、塗装スプレー21を、MOVE関数により、作業
対象物40の端点に位置する座標2へ移動させるように
指令しているが、ステップA2のOVERSPRAYの
設定により、MOVE関数により指定された位置(座標
2)に対しOVERSPRAYにより設定した量(オー
バ量)だけ先の位置(図中Bの位置)へと移動させる
(ステップA4)。
【0013】塗装スプレー21が図中Bの位置へ移動し
た時点で、次の「SPRAY OFF」により、塗装ス
プレー21の塗装物の噴射を停止させる(ステップA
5)。次の「MOVE 3」は、塗装スプレー21を、
MOVE関数により、座標3へ移動させるように指令し
ているが、MOVE関数により指定された位置(座標
3)に対し、OVERSPRAYで設定したオーバ量だ
け手前の位置(図中Cの位置)へと移動させる(ステッ
プA6)。
た時点で、次の「SPRAY OFF」により、塗装ス
プレー21の塗装物の噴射を停止させる(ステップA
5)。次の「MOVE 3」は、塗装スプレー21を、
MOVE関数により、座標3へ移動させるように指令し
ているが、MOVE関数により指定された位置(座標
3)に対し、OVERSPRAYで設定したオーバ量だ
け手前の位置(図中Cの位置)へと移動させる(ステッ
プA6)。
【0014】塗装スプレー21が図中Cの位置へ移動し
た時点で、次の「SPRAY ON」により、塗装スプ
レー21の塗装物の噴射を開始させる(ステップA
7)。次の「MOVE 4」は、塗装スプレー21を、
MOVE関数により、座標4へ移動させるように指令し
ているが、MOVE関数により指定された位置(座標
4)に対し、OVERSPRAYで設定したオーバ量だ
け先の位置(図中Dの位置)へと移動させる(ステップ
A8)。
た時点で、次の「SPRAY ON」により、塗装スプ
レー21の塗装物の噴射を開始させる(ステップA
7)。次の「MOVE 4」は、塗装スプレー21を、
MOVE関数により、座標4へ移動させるように指令し
ているが、MOVE関数により指定された位置(座標
4)に対し、OVERSPRAYで設定したオーバ量だ
け先の位置(図中Dの位置)へと移動させる(ステップ
A8)。
【0015】塗装スプレー21が図中Dの位置へ移動し
た時点で、次の「SPRAY OFF」により、塗装ス
プレー21の塗装物の噴射を停止させ(ステップA
9)、塗装ロボット20の作業が終了する。この図8
(a)に示す制御プログラムにより、ロボット制御装置
10より動作指令を受けた塗装ロボット20は、図7に
示す作業対象物40に対して、以下のように動作する。
た時点で、次の「SPRAY OFF」により、塗装ス
プレー21の塗装物の噴射を停止させ(ステップA
9)、塗装ロボット20の作業が終了する。この図8
(a)に示す制御プログラムにより、ロボット制御装置
10より動作指令を受けた塗装ロボット20は、図7に
示す作業対象物40に対して、以下のように動作する。
【0016】塗装スプレー21は、まず、座標1の手前
のある点から、作業対象物40の端点に位置して塗装開
始点である座標1の上方へと移動する(ステップA1)
が、その後、図中のAで示される位置まで後退して(ス
テップA2)、このAの位置で塗装物の噴射を開始する
(ステップA3)。そして、塗装スプレー21は、塗装
物を噴射しながら、移動機構25により、このAの位置
から、座標1及び所定の座標2を通過して図中のBで示
される位置まで移動して(ステップA4)、塗装物の噴
射を停止する(ステップA5)。塗装開始点(座標1)
よりもの所定量(50mm)手前の地点Aから塗装物の
噴射を開始したり、塗装物の噴射停止点(座標2)を所
定量(50mm)オーバーした地点Bまで塗装物を噴射
させるのは、塗装スプレー21が停止した状態で、塗装
物の噴射開始または停止を行なうと、不安定な噴射状態
による塗装むらが塗装物の噴射開始点や停止点(座標
1,2)付近で生じるおそれがあるので、これを防止す
るためである。
のある点から、作業対象物40の端点に位置して塗装開
始点である座標1の上方へと移動する(ステップA1)
が、その後、図中のAで示される位置まで後退して(ス
テップA2)、このAの位置で塗装物の噴射を開始する
(ステップA3)。そして、塗装スプレー21は、塗装
物を噴射しながら、移動機構25により、このAの位置
から、座標1及び所定の座標2を通過して図中のBで示
される位置まで移動して(ステップA4)、塗装物の噴
射を停止する(ステップA5)。塗装開始点(座標1)
よりもの所定量(50mm)手前の地点Aから塗装物の
噴射を開始したり、塗装物の噴射停止点(座標2)を所
定量(50mm)オーバーした地点Bまで塗装物を噴射
させるのは、塗装スプレー21が停止した状態で、塗装
物の噴射開始または停止を行なうと、不安定な噴射状態
による塗装むらが塗装物の噴射開始点や停止点(座標
1,2)付近で生じるおそれがあるので、これを防止す
るためである。
【0017】次に、塗装スプレー21は、移動機構25
により図中Cの位置に移動し(ステップA6)て、この
Cの位置で塗装物の噴射を開始し(ステップA7)、塗
装物を噴射しながら移動機構25により図中のDで示さ
れる位置まで移動して(ステップA8)、塗装物の噴射
を停止する(ステップA9)。
により図中Cの位置に移動し(ステップA6)て、この
Cの位置で塗装物の噴射を開始し(ステップA7)、塗
装物を噴射しながら移動機構25により図中のDで示さ
れる位置まで移動して(ステップA8)、塗装物の噴射
を停止する(ステップA9)。
【0018】塗装を行なう所定範囲(座標3,4間)よ
りも、手前の位置(座標C)から塗装物の噴射を開始し
て、先の位置(座標D)まで塗装物を噴射させるのは、
上述と同様に、塗装物の噴射開始点及び噴射停止点(座
標3,4)付近での不安定な噴射状態による塗装むらが
生じるのを防ぐためである。以上で、塗装ロボット20
の作業は終了する。
りも、手前の位置(座標C)から塗装物の噴射を開始し
て、先の位置(座標D)まで塗装物を噴射させるのは、
上述と同様に、塗装物の噴射開始点及び噴射停止点(座
標3,4)付近での不安定な噴射状態による塗装むらが
生じるのを防ぐためである。以上で、塗装ロボット20
の作業は終了する。
【0019】ここで、図8(a)の制御プログラムを、
図8(b)の制御プログラムのように、即ち、図8
(a)の制御プログラムに対し、ステップA1のMOV
E 1とステップA2のOVERSPRAY 50の順
序を逆にして記述することもある。この場合、図8
(a)の制御プログラムのステップA1からステップA
3にかかるスプレーロボット20の動作は、前述の通
り、図7において、塗装スプレー21が、座標Aを通り
すぎて、塗装開始点である座標1の上方へと一旦移動し
た後に座標Aの位置まで引き返して塗装物の噴射を開始
するのに対し、図8(b)の制御プログラムのステップ
E1からステップE3にかかるスプレーロボット20の
動作は、MOVE1以前にOVERSPRAYによりオ
ーバ量が設定されているので、塗装スプレー21は、座
標1まで移動してからAの地点まで引き返すといった動
作なしに、直接に、塗装開始点である座標1よりもオー
バ量だけ手前の位置である座標Aに移動し、そして塗装
物の噴射を開始する。
図8(b)の制御プログラムのように、即ち、図8
(a)の制御プログラムに対し、ステップA1のMOV
E 1とステップA2のOVERSPRAY 50の順
序を逆にして記述することもある。この場合、図8
(a)の制御プログラムのステップA1からステップA
3にかかるスプレーロボット20の動作は、前述の通
り、図7において、塗装スプレー21が、座標Aを通り
すぎて、塗装開始点である座標1の上方へと一旦移動し
た後に座標Aの位置まで引き返して塗装物の噴射を開始
するのに対し、図8(b)の制御プログラムのステップ
E1からステップE3にかかるスプレーロボット20の
動作は、MOVE1以前にOVERSPRAYによりオ
ーバ量が設定されているので、塗装スプレー21は、座
標1まで移動してからAの地点まで引き返すといった動
作なしに、直接に、塗装開始点である座標1よりもオー
バ量だけ手前の位置である座標Aに移動し、そして塗装
物の噴射を開始する。
【0020】図8(b)の制御プログラムによる動作
は、座標Aでの塗装物の噴射を開始以降については、図
8(a)の制御プログラムによる動作と同じであるので
説明を省略する。
は、座標Aでの塗装物の噴射を開始以降については、図
8(a)の制御プログラムによる動作と同じであるので
説明を省略する。
【0021】次に、ロボット言語の解釈処理について説
明する。ロボット言語の解釈処理は、基本ソフトウェア
により、例えば、図10に示すように行なわれる。ここ
で、解釈処理部7は、言語解釈(ステップB10〜ステ
ップB40)と演算処理(ステップB50)とを行な
い、言語解釈及び演算処理後に指令を制御演算部6に出
力する。制御演算部6は、この指令によってさらに指令
値を計算してI/Oデバイス4を介して塗装ロボット2
0へ動作指令を出力する。また、塗装ロボット20から
は、塗装ロボット20の位置等のロボットの状態を示す
信号がロボット制御装置10にフィードバックされる。
明する。ロボット言語の解釈処理は、基本ソフトウェア
により、例えば、図10に示すように行なわれる。ここ
で、解釈処理部7は、言語解釈(ステップB10〜ステ
ップB40)と演算処理(ステップB50)とを行な
い、言語解釈及び演算処理後に指令を制御演算部6に出
力する。制御演算部6は、この指令によってさらに指令
値を計算してI/Oデバイス4を介して塗装ロボット2
0へ動作指令を出力する。また、塗装ロボット20から
は、塗装ロボット20の位置等のロボットの状態を示す
信号がロボット制御装置10にフィードバックされる。
【0022】まず、基本ソフトウェアによって、図8
(a),(b)に示すような制御プログラムを1行づつ
読み込み(ステップB10)、そして、読み込んだプロ
グラム行を字句解析を行なって最小単位の語句(トーク
ン)に分解する(ステップB20)。ここで、制御プロ
グラムは、基本ソフトウエアで解釈処理しやすいように
適当な中間言語にコンパイルされてロードされている場
合もある。
(a),(b)に示すような制御プログラムを1行づつ
読み込み(ステップB10)、そして、読み込んだプロ
グラム行を字句解析を行なって最小単位の語句(トーク
ン)に分解する(ステップB20)。ここで、制御プロ
グラムは、基本ソフトウエアで解釈処理しやすいように
適当な中間言語にコンパイルされてロードされている場
合もある。
【0023】次いで、このトークンを、標準関数記号表
及び登録変数記号表と比較して構文解析を行なう(ステ
ップB30)。ここで、標準関数記号表には、その属性
(関数の引数の数及び引数の型等)を含んで標準関数が
登録されている。さらに、この標準関数記号表には標準
関数を実際に処理するためのアドレスも登録されてお
り、速やかに標準関数の処理の実行が行なえるようにな
っている。
及び登録変数記号表と比較して構文解析を行なう(ステ
ップB30)。ここで、標準関数記号表には、その属性
(関数の引数の数及び引数の型等)を含んで標準関数が
登録されている。さらに、この標準関数記号表には標準
関数を実際に処理するためのアドレスも登録されてお
り、速やかに標準関数の処理の実行が行なえるようにな
っている。
【0024】また、登録変数記号表も、標準関数と同様
の内容を持っている。つまり、登録変数記号表には、使
用される変数が、変数の型等の属性を含んで登録され、
さらに、変数の実際のアドレス等の情報も含まれてお
り、変数の内容を速やかに検索できるようになってい
る。つまり、構文解析では、トークンと標準関数登録表
及び登録変数記号表とを比較してトークンが標準関数と
合致しているかを調査する。即ち、分解されたトークン
が、上述の標準関数記号表に登録されているいずれかの
標準関数と一致するとともにその標準関数の属性(標準
関数の文法)に適っているか、さらに、標準関数の引数
に変数が使われている場合は、その変数が登録変数記号
表に登録されている変数のいずれかと一致するとともに
その変数の属性に適っているかを調査する。
の内容を持っている。つまり、登録変数記号表には、使
用される変数が、変数の型等の属性を含んで登録され、
さらに、変数の実際のアドレス等の情報も含まれてお
り、変数の内容を速やかに検索できるようになってい
る。つまり、構文解析では、トークンと標準関数登録表
及び登録変数記号表とを比較してトークンが標準関数と
合致しているかを調査する。即ち、分解されたトークン
が、上述の標準関数記号表に登録されているいずれかの
標準関数と一致するとともにその標準関数の属性(標準
関数の文法)に適っているか、さらに、標準関数の引数
に変数が使われている場合は、その変数が登録変数記号
表に登録されている変数のいずれかと一致するとともに
その変数の属性に適っているかを調査する。
【0025】以上で、構文解析が終了し、ステップB4
0へと進む。ステップB40では、トークンが標準関数
に合致しているかの判定がおこなわれる。ここで、トー
クンが標準関数に合致していなければ、ステップB10
0へと進みエラー処理が行なわれて、制御プログラムの
解釈処理は未完のまま強制終了となるが、トークンが標
準関数に合致していれば、ステップB50へ進む。
0へと進む。ステップB40では、トークンが標準関数
に合致しているかの判定がおこなわれる。ここで、トー
クンが標準関数に合致していなければ、ステップB10
0へと進みエラー処理が行なわれて、制御プログラムの
解釈処理は未完のまま強制終了となるが、トークンが標
準関数に合致していれば、ステップB50へ進む。
【0026】ステップB50では、トークンと合致する
標準関数に該当する処理を行なうように制御演算部6に
指令を出してステップB60へと進む。ここで、ステッ
プB50、即ち、解釈処理部7から、解釈処理の結果得
られた動作命令や移動先の座標などの指令を受けると、
制御演算部6は、さらに指令値を計算して、この指令値
(動作指令)を、I/Oデバイス4経由でロボットの各
アクチュエーター(塗装ロボット20)に出力する。
標準関数に該当する処理を行なうように制御演算部6に
指令を出してステップB60へと進む。ここで、ステッ
プB50、即ち、解釈処理部7から、解釈処理の結果得
られた動作命令や移動先の座標などの指令を受けると、
制御演算部6は、さらに指令値を計算して、この指令値
(動作指令)を、I/Oデバイス4経由でロボットの各
アクチュエーター(塗装ロボット20)に出力する。
【0027】ステップB60では、ステップB10で読
み込んだ制御プログラムの1行が制御プログラムの最終
行かどうか、即ち、制御プログラムが終了かどうかの判
定が行なわれ、制御プログラムが終了であれば解釈処理
は終了するが、制御プログラムが終了でなければ、ステ
ップB10へと戻って、制御プログラムの次の行を読み
込み、制御プログラムが終了するまで解釈処理(ステッ
プB10〜ステップB60)を繰り返す。
み込んだ制御プログラムの1行が制御プログラムの最終
行かどうか、即ち、制御プログラムが終了かどうかの判
定が行なわれ、制御プログラムが終了であれば解釈処理
は終了するが、制御プログラムが終了でなければ、ステ
ップB10へと戻って、制御プログラムの次の行を読み
込み、制御プログラムが終了するまで解釈処理(ステッ
プB10〜ステップB60)を繰り返す。
【0028】以上で、基本ソフトウェアによるロボット
言語の解釈処理のフローが終了する。このように、従来
のロボット制御装置では、いくつかの簡単なロボット言
語(標準関数)を組み合わせて制御プログラムを記述す
ることでロボットに複雑な動作を行なわせることができ
るようになっている。ロボット言語としては、例えば、
汎用的なプログラム言語であるBASICに類似したも
のがJIS規格にも定められている。
言語の解釈処理のフローが終了する。このように、従来
のロボット制御装置では、いくつかの簡単なロボット言
語(標準関数)を組み合わせて制御プログラムを記述す
ることでロボットに複雑な動作を行なわせることができ
るようになっている。ロボット言語としては、例えば、
汎用的なプログラム言語であるBASICに類似したも
のがJIS規格にも定められている。
【0029】このようなロボット言語の他に、プラント
制御装置では、図11のようなファンクションブロック
図などの図形形式の言語を使って制御プログラムを記述
するものもある。図11の制御プログラムは、プラント
制御装置にアナログ入力されている、図11中で示す
制御対象となるある状態量の制御目標値(Mokuhy
o)と図11中で示すこの状態量の現状の制御状態
(Seigyoryo)との差分を、図11中で示す
減算関数により算出し、さらに、この差分を使って図1
1中で示す関数〔(K/(1+Ts)〕により一次遅
れを考慮した操作量を算出して、この操作量を、制御対
象となる状態量の調節機器に指令値としてアナログ出力
させる(図11中)ものである。
制御装置では、図11のようなファンクションブロック
図などの図形形式の言語を使って制御プログラムを記述
するものもある。図11の制御プログラムは、プラント
制御装置にアナログ入力されている、図11中で示す
制御対象となるある状態量の制御目標値(Mokuhy
o)と図11中で示すこの状態量の現状の制御状態
(Seigyoryo)との差分を、図11中で示す
減算関数により算出し、さらに、この差分を使って図1
1中で示す関数〔(K/(1+Ts)〕により一次遅
れを考慮した操作量を算出して、この操作量を、制御対
象となる状態量の調節機器に指令値としてアナログ出力
させる(図11中)ものである。
【0030】
【発明が解決しようとする課題】しかしながら、このよ
うな従来の制御装置では、必要な動作を制御対象に行な
わせるために必要な制御プログラム(必要制御プログラ
ム)を記述するのにユーザが使用できるのは、制御装置
に標準で提供されているロボット言語(標準関数)に限
られているため、以下の課題がある。
うな従来の制御装置では、必要な動作を制御対象に行な
わせるために必要な制御プログラム(必要制御プログラ
ム)を記述するのにユーザが使用できるのは、制御装置
に標準で提供されているロボット言語(標準関数)に限
られているため、以下の課題がある。
【0031】制御プログラムにより例えば汎用ロボット
のような制御対象に動作を行なわせるには、図10に示
すように、制御プログラムを構成する標準関数のそれぞ
れについて解釈処理が必要であり、このため、1つの制
御プログラムを実行するのに要する解釈処理時間は制御
プログラムを構成する標準関数の数に比例して増加す
る。したがって、制御対象に複雑な動作を行なわせる必
要があって必要制御プログラムを構成する標準関数が多
数になるほど、解釈処理時間が増大し、ロボットやプラ
ント等の制御対象の作業効率の低下を招いてしまう。
のような制御対象に動作を行なわせるには、図10に示
すように、制御プログラムを構成する標準関数のそれぞ
れについて解釈処理が必要であり、このため、1つの制
御プログラムを実行するのに要する解釈処理時間は制御
プログラムを構成する標準関数の数に比例して増加す
る。したがって、制御対象に複雑な動作を行なわせる必
要があって必要制御プログラムを構成する標準関数が多
数になるほど、解釈処理時間が増大し、ロボットやプラ
ント等の制御対象の作業効率の低下を招いてしまう。
【0032】ここで、複数の標準関数をまとめて1つの
マクロ関数としてユーザが定義可能な、マクロ機能を持
つ制御装置もある。複数の標準関数からなる類似の動作
を繰り返し制御対象に行なわせるときには、この複数の
標準関数を1つのマクロ関数とすることによりユーザの
制御プログラム入力作業の煩雑さを解消することができ
るが、マクロ関数を構成する複数の標準関数のそれぞれ
について解釈処理を行なっているので、上述と同様で解
釈処理時間を短くすることはできず、制御対象の作業効
率の低下を緩和するには至らない。
マクロ関数としてユーザが定義可能な、マクロ機能を持
つ制御装置もある。複数の標準関数からなる類似の動作
を繰り返し制御対象に行なわせるときには、この複数の
標準関数を1つのマクロ関数とすることによりユーザの
制御プログラム入力作業の煩雑さを解消することができ
るが、マクロ関数を構成する複数の標準関数のそれぞれ
について解釈処理を行なっているので、上述と同様で解
釈処理時間を短くすることはできず、制御対象の作業効
率の低下を緩和するには至らない。
【0033】さらに、制御装置に標準で提供される標準
関数では、必要制御プログラムを記述しきることが困難
な場合もある。このような場合、ユーザは、制御装置の
システム自体を高価な費用を払ってメーカに改造しても
らうか、また、何とか既存の標準関数を組み合わせて必
要制御プログラムを記述できたとしても、演算速度の遅
いものになったり、制御プログラムの作成(組み合わ
せ)に大幅に時間や労力を要してしまう。
関数では、必要制御プログラムを記述しきることが困難
な場合もある。このような場合、ユーザは、制御装置の
システム自体を高価な費用を払ってメーカに改造しても
らうか、また、何とか既存の標準関数を組み合わせて必
要制御プログラムを記述できたとしても、演算速度の遅
いものになったり、制御プログラムの作成(組み合わ
せ)に大幅に時間や労力を要してしまう。
【0034】本発明はこのような課題に鑑み創案された
もので、ロボット言語又は図形言語により制御可能な制
御装置において、システム自体の改造をすることなく、
かつ、制御対象に複雑な作業を行なわせる場合にも作業
効率を低下させることなく、ユーザが必要な動作を制御
対象に行なわせることができるようにした、制御装置を
提供することを目的とする。
もので、ロボット言語又は図形言語により制御可能な制
御装置において、システム自体の改造をすることなく、
かつ、制御対象に複雑な作業を行なわせる場合にも作業
効率を低下させることなく、ユーザが必要な動作を制御
対象に行なわせることができるようにした、制御装置を
提供することを目的とする。
【0035】
【課題を解決するための手段】このため、請求項1記載
の本発明の制御装置は、ロボット言語又は図形言語によ
り記述された制御プログラムに対して標準関数を用いて
言語解釈及び演算処理を行なう解釈処理部と、該解釈処
理部による該言語解釈及び該演算処理によって得られた
指令情報に従って制御対象に動作指令を行なう制御演算
部とをそなえた制御装置において、ユーザが該標準関数
と別のユーザ関数を登録するユーザ関数登録機能をそな
え、該解釈処理部は、該ユーザ関数に対応した該制御プ
ログラムに対しては該ユーザ関数を用いて言語解釈及び
演算処理を行なうことを特徴としている。
の本発明の制御装置は、ロボット言語又は図形言語によ
り記述された制御プログラムに対して標準関数を用いて
言語解釈及び演算処理を行なう解釈処理部と、該解釈処
理部による該言語解釈及び該演算処理によって得られた
指令情報に従って制御対象に動作指令を行なう制御演算
部とをそなえた制御装置において、ユーザが該標準関数
と別のユーザ関数を登録するユーザ関数登録機能をそな
え、該解釈処理部は、該ユーザ関数に対応した該制御プ
ログラムに対しては該ユーザ関数を用いて言語解釈及び
演算処理を行なうことを特徴としている。
【0036】
【発明の実施の形態】以下、図面により、本発明の実施
形態について説明する。本実施形態では、本制御装置を
ロボットの制御に適用した場合を説明する。図1〜図6
は本発明の一実施形態にかかるロボット制御装置を示す
もので、図1はロボット言語の解釈処理のフローを説明
する本装置の要部構成図、図2はユーザが作成したユー
ザ関数を制御装置に登録するためのユーザ関数登録表の
一例を示す図、図3はユーザが作成したユーザ関数の演
算内容の記述例を示す図、図4はエントリテーブル作成
のための記述例を示す図、図5はバッテリバックアップ
RAMの領域割付例を示す図であって、(a)はユーザ
関数登録表とエントリテーブルを別個に作成した場合の
領域割付例を示す図、(b)はユーザ関数登録表とエン
トリテーブルを1つにまとめて作成した場合の領域割付
例を示す図、図6はユーザが作成したユーザ関数の使用
例を示す図である。
形態について説明する。本実施形態では、本制御装置を
ロボットの制御に適用した場合を説明する。図1〜図6
は本発明の一実施形態にかかるロボット制御装置を示す
もので、図1はロボット言語の解釈処理のフローを説明
する本装置の要部構成図、図2はユーザが作成したユー
ザ関数を制御装置に登録するためのユーザ関数登録表の
一例を示す図、図3はユーザが作成したユーザ関数の演
算内容の記述例を示す図、図4はエントリテーブル作成
のための記述例を示す図、図5はバッテリバックアップ
RAMの領域割付例を示す図であって、(a)はユーザ
関数登録表とエントリテーブルを別個に作成した場合の
領域割付例を示す図、(b)はユーザ関数登録表とエン
トリテーブルを1つにまとめて作成した場合の領域割付
例を示す図、図6はユーザが作成したユーザ関数の使用
例を示す図である。
【0037】本実施形態のロボット制御装置(制御装
置)のハード構成は、従来技術と同様になっており、図
9に示すように、CPU1と、RAM2と、ROM3
と、I/Oデバイス4と、バッテリバックアップ付きの
RAM5と、それらを互いに繋げる伝送路9とから構成
される。そして、本ロボット制御装置には、従来の汎用
の制御装置と同様に、ユーザが容易に制御プログラムを
記述して用途に応じた動作をロボット(制御対象)に実
行させることができるように専用のプログラム言語をそ
なえた基本ソフトウエアが用意されるとともに、さら
に、この基本ソフトウエアにユーザ関数登録機能がそな
えられており、ユーザがC言語等の一般プログラム言語
を利用して、専用のプログラム言語が標準としてそなえ
る標準関数とは別のユーザ関数を登録できるようになっ
ている。
置)のハード構成は、従来技術と同様になっており、図
9に示すように、CPU1と、RAM2と、ROM3
と、I/Oデバイス4と、バッテリバックアップ付きの
RAM5と、それらを互いに繋げる伝送路9とから構成
される。そして、本ロボット制御装置には、従来の汎用
の制御装置と同様に、ユーザが容易に制御プログラムを
記述して用途に応じた動作をロボット(制御対象)に実
行させることができるように専用のプログラム言語をそ
なえた基本ソフトウエアが用意されるとともに、さら
に、この基本ソフトウエアにユーザ関数登録機能がそな
えられており、ユーザがC言語等の一般プログラム言語
を利用して、専用のプログラム言語が標準としてそなえ
る標準関数とは別のユーザ関数を登録できるようになっ
ている。
【0038】ここで、ユーザ関数登録機能では、ユーザ
関数について、ユーザ関数名と、ユーザ関数の演算内容
と、ユーザ関数の属性(関数の引数の数及び引数の型
等)とを登録するとともに、ユーザ関数を実際に処理す
るためのアドレスの登録も行なうようになっている。本
実施形態では、ユーザの入力が容易となるように、ユー
ザ関数登録機能を、関数登録と、関数の演算内容の記述
と、エントリテーブルの作成との3つに分けて構成して
いる。
関数について、ユーザ関数名と、ユーザ関数の演算内容
と、ユーザ関数の属性(関数の引数の数及び引数の型
等)とを登録するとともに、ユーザ関数を実際に処理す
るためのアドレスの登録も行なうようになっている。本
実施形態では、ユーザの入力が容易となるように、ユー
ザ関数登録機能を、関数登録と、関数の演算内容の記述
と、エントリテーブルの作成との3つに分けて構成して
いる。
【0039】ここで、2つのユーザ関数POW(),K
P()の、C言語を利用したユーザ関数登録を例に挙げ
て、図2〜図4によりユーザ登録機能を説明する。図2
に示すように、ユーザ関数登録は、ユーザ関数に関数番
号(図2中、最も左の欄)を割り付けるとともに、関数
の属性として関数の戻り値の型,引数の個数,引数の型
を登録するもので、基本ソフトウエアがそなえる表形式
によるシステム(登録関数表)によりユーザが容易に入
力を行なえるようにしている。図2は、関数番号1に関
数名POW()を、関数番号2に関数名KP()を登録
した状態を示している。ここで、関数の戻り値の型及び
引数の型は、後述のユーザ関数の演算内容の記述と一致
するように、int,floatといったC言語に準じ
た型を使用する。
P()の、C言語を利用したユーザ関数登録を例に挙げ
て、図2〜図4によりユーザ登録機能を説明する。図2
に示すように、ユーザ関数登録は、ユーザ関数に関数番
号(図2中、最も左の欄)を割り付けるとともに、関数
の属性として関数の戻り値の型,引数の個数,引数の型
を登録するもので、基本ソフトウエアがそなえる表形式
によるシステム(登録関数表)によりユーザが容易に入
力を行なえるようにしている。図2は、関数番号1に関
数名POW()を、関数番号2に関数名KP()を登録
した状態を示している。ここで、関数の戻り値の型及び
引数の型は、後述のユーザ関数の演算内容の記述と一致
するように、int,floatといったC言語に準じ
た型を使用する。
【0040】そして、ユーザ関数の演算内容はC言語に
より図3のように記述する。図3はPOW()の演算内
容についての記述であって、べき乗を計算させるもので
ある。また、図示しないが、KP()の演算内容もC言
語により同様に記述する。これらの記述は、C言語のコ
ンパイラにより、制御装置のCPUで動作可能なように
実行モジュール(機械語)に変換されるとともにユーザ
関数を実際に処理するためのアドレス(エントリアドレ
ス)も割り付けられる。
より図3のように記述する。図3はPOW()の演算内
容についての記述であって、べき乗を計算させるもので
ある。また、図示しないが、KP()の演算内容もC言
語により同様に記述する。これらの記述は、C言語のコ
ンパイラにより、制御装置のCPUで動作可能なように
実行モジュール(機械語)に変換されるとともにユーザ
関数を実際に処理するためのアドレス(エントリアドレ
ス)も割り付けられる。
【0041】ここで、ユーザ関数を実際に使うために
は、コンパイラにより割り付けられた各ユーザ関数のエ
ントリアドレスを、基本ソフトウエアが行なう解釈処理
で速やかに分かるようにする必要がある。このため、各
関数のエントリアドレスを登録するためのエントリテー
ブルを、例えば、図4に示すC言語の記述によって作成
する。ここで、図4の図中にで示される数はユーザ関
数の登録数〔本実施例ではPOW()及びKP()の2
つ〕を表し、図4中に,で示される数は図2のユー
ザ関数登録表中の関数番号に一致させて、関数登録表と
エントリテーブルとの関連を速やかに確認できるように
なっている。以上でユーザ関数登録は終了する。
は、コンパイラにより割り付けられた各ユーザ関数のエ
ントリアドレスを、基本ソフトウエアが行なう解釈処理
で速やかに分かるようにする必要がある。このため、各
関数のエントリアドレスを登録するためのエントリテー
ブルを、例えば、図4に示すC言語の記述によって作成
する。ここで、図4の図中にで示される数はユーザ関
数の登録数〔本実施例ではPOW()及びKP()の2
つ〕を表し、図4中に,で示される数は図2のユー
ザ関数登録表中の関数番号に一致させて、関数登録表と
エントリテーブルとの関連を速やかに確認できるように
なっている。以上でユーザ関数登録は終了する。
【0042】ここで、上述のユーザ関数登録により作成
した、ユーザ関数登録表,エントリアドレス,ユーザ関
数の実行モジュールは、ロボット制御装置のバッテリバ
ックアップ付きのRAM5(図9参照)に図5(a)に
示すような割り付け構成でロードして、電源が切れても
ロード内容が消えないようにしている。また、ユーザ関
数登録表ロード領域及びエントリーテーブルのロード領
域の先頭アドレスを固定して、ロボット言語解釈部から
容易に参照可能なようにしている。
した、ユーザ関数登録表,エントリアドレス,ユーザ関
数の実行モジュールは、ロボット制御装置のバッテリバ
ックアップ付きのRAM5(図9参照)に図5(a)に
示すような割り付け構成でロードして、電源が切れても
ロード内容が消えないようにしている。また、ユーザ関
数登録表ロード領域及びエントリーテーブルのロード領
域の先頭アドレスを固定して、ロボット言語解釈部から
容易に参照可能なようにしている。
【0043】図6は、上述のようにユーザが定義した関
数であるPOW()及びKP()の使用例を示してい
る。ステップC10で、ユーザ関数POW()により変
数Bの4乗を計算してこれを変数Aに代入し、さらにス
テップC20で、ユーザ関数KP()により、ステップ
C10で求めた変数Aの値に2.5を乗じたものに、さ
らに変数Dに4.2を乗じたものを加えて、これを変数
Cに代入している。ステップC30では、標準関数であ
るMOVEの引数として、10,20,30にステップ
C20で求めた変数Cを加えたものの3つを取り、制御
対象をこの3つの座標へ順次移動させるようにしてい
る。
数であるPOW()及びKP()の使用例を示してい
る。ステップC10で、ユーザ関数POW()により変
数Bの4乗を計算してこれを変数Aに代入し、さらにス
テップC20で、ユーザ関数KP()により、ステップ
C10で求めた変数Aの値に2.5を乗じたものに、さ
らに変数Dに4.2を乗じたものを加えて、これを変数
Cに代入している。ステップC30では、標準関数であ
るMOVEの引数として、10,20,30にステップ
C20で求めた変数Cを加えたものの3つを取り、制御
対象をこの3つの座標へ順次移動させるようにしてい
る。
【0044】本発明の一実施形態にかかる制御装置は、
上述のように構成されるので、例えば、図1に示すよう
に、解釈処理を行なうことができる。この解釈処理は、
図10により説明した従来技術の解釈処理に対し、ユー
ザ関数の解釈処理(ステップD44〜ステップD46)
を加えたものである。つまり、まず、基本ソフトウェア
は制御プログラムを1行づつ読み込み(ステップD1
0)、そして、読み込んだプログラム行の字句解析を行
なって最小単位の語句(トークン)に分解する(ステッ
プD20)。
上述のように構成されるので、例えば、図1に示すよう
に、解釈処理を行なうことができる。この解釈処理は、
図10により説明した従来技術の解釈処理に対し、ユー
ザ関数の解釈処理(ステップD44〜ステップD46)
を加えたものである。つまり、まず、基本ソフトウェア
は制御プログラムを1行づつ読み込み(ステップD1
0)、そして、読み込んだプログラム行の字句解析を行
なって最小単位の語句(トークン)に分解する(ステッ
プD20)。
【0045】次いで、このトークンを、標準関数記号表
及び変数の登録変数記号表と比較して構文解析を行ない
トークンが標準関数に合致しているかを調査する。即
ち、分解されたトークンが上述の標準関数記号表に登録
されているいずれかの標準関数と一致しているか及びそ
の標準関数の属性(標準関数の文法)に適っているかを
調査し、さらに、関数の引数に変数が使われている場合
は、その変数が登録変数記号表に登録されている変数
(登録変数)のいずれかと一致するとともにその登録変
数の属性に適っているかを調査する(ステップD3
0)。そしてステップD40へと進む。
及び変数の登録変数記号表と比較して構文解析を行ない
トークンが標準関数に合致しているかを調査する。即
ち、分解されたトークンが上述の標準関数記号表に登録
されているいずれかの標準関数と一致しているか及びそ
の標準関数の属性(標準関数の文法)に適っているかを
調査し、さらに、関数の引数に変数が使われている場合
は、その変数が登録変数記号表に登録されている変数
(登録変数)のいずれかと一致するとともにその登録変
数の属性に適っているかを調査する(ステップD3
0)。そしてステップD40へと進む。
【0046】ステップD40では、トークンが標準関数
に合致しているかの判定が行なわれれ、トークンが標準
関数に合致していなければユーザ関数を対象とした構文
解析(ステップD44)へ進み、トークンが標準関数に
合致していればステップD50へ進んで標準関数に該当
する処理を行なうように制御演算部6に指令を出す。ス
テップD44では、ユーザ関数を対象とした構文解析を
行ない、トークンとユーザ関数登録表及び登録変数記号
表とを比較してトークンがユーザ関数と合致しているか
を調査し、即ち、分解されたトークンが上述のユーザ関
数登録表に登録されているいずれかのユーザ関数と一致
しているか及びそのユーザ関数の属性(ユーザ関数の文
法)に適っているかを調査し、さらに、ユーザ関数の引
数に変数が使用されていれば、その変数が登録変数記号
表に登録されている変数(登録変数)のいずれかと一致
しているか及びその登録変数の属性に適っているかを調
査する。そして、ステップD46へ進む。
に合致しているかの判定が行なわれれ、トークンが標準
関数に合致していなければユーザ関数を対象とした構文
解析(ステップD44)へ進み、トークンが標準関数に
合致していればステップD50へ進んで標準関数に該当
する処理を行なうように制御演算部6に指令を出す。ス
テップD44では、ユーザ関数を対象とした構文解析を
行ない、トークンとユーザ関数登録表及び登録変数記号
表とを比較してトークンがユーザ関数と合致しているか
を調査し、即ち、分解されたトークンが上述のユーザ関
数登録表に登録されているいずれかのユーザ関数と一致
しているか及びそのユーザ関数の属性(ユーザ関数の文
法)に適っているかを調査し、さらに、ユーザ関数の引
数に変数が使用されていれば、その変数が登録変数記号
表に登録されている変数(登録変数)のいずれかと一致
しているか及びその登録変数の属性に適っているかを調
査する。そして、ステップD46へ進む。
【0047】ステップD46では、トークンがユーザ関
数に合致しているかどうかの判定が行なわれ、トークン
がユーザ関数に合致していなければ、ステップD100
へと進みエラー処理が行なわれて制御プログラムの解釈
処理は未完のまま強制終了となり、トークンがユーザ関
数に合致していれば、関数番号の情報を伴ってステップ
D50へ進む。
数に合致しているかどうかの判定が行なわれ、トークン
がユーザ関数に合致していなければ、ステップD100
へと進みエラー処理が行なわれて制御プログラムの解釈
処理は未完のまま強制終了となり、トークンがユーザ関
数に合致していれば、関数番号の情報を伴ってステップ
D50へ進む。
【0048】ステップD50では、トークンと合致する
標準関数またはユーザ関数に該当する処理を行なうよう
に制御演算部6に指令を出してステップD60へと進
む。ここで、トークンがユーザ関数に合致している場合
はエントリ表からユーザ関数のアドレスの検索を速やか
に行なうことができる、つまり、各ユーザ関数に割り当
てられた関数番号を介して関数登録表とエントリー表と
を関連付けているのでユーザ関数のアドレスの検索を容
易に行なうことができる。
標準関数またはユーザ関数に該当する処理を行なうよう
に制御演算部6に指令を出してステップD60へと進
む。ここで、トークンがユーザ関数に合致している場合
はエントリ表からユーザ関数のアドレスの検索を速やか
に行なうことができる、つまり、各ユーザ関数に割り当
てられた関数番号を介して関数登録表とエントリー表と
を関連付けているのでユーザ関数のアドレスの検索を容
易に行なうことができる。
【0049】また、ステップD50、即ち、解釈処理部
7から、言語解釈の結果得られた動作命令や移動先の座
標などの指令を受けると、制御演算部6は、さらに指令
値を計算して、この指令値(動作指令)をI/Oデバイ
ス経由でロボット20の各アクチュエーターに出力す
る。ステップD60では、ステップD10で読み込んだ
制御プログラムの1行が制御プログラムの最終行かどう
か、即ち、制御プログラムが終了かどうかの判定が行な
われ、制御プログラムが終了であれば解釈処理は終了す
るが、制御プログラムが終了でなければ、ステップD1
0へと戻って、制御プログラムの次の行を読み込み、制
御プログラムが終了するまで解釈処理(ステップD10
〜ステップD60)を繰り返す。
7から、言語解釈の結果得られた動作命令や移動先の座
標などの指令を受けると、制御演算部6は、さらに指令
値を計算して、この指令値(動作指令)をI/Oデバイ
ス経由でロボット20の各アクチュエーターに出力す
る。ステップD60では、ステップD10で読み込んだ
制御プログラムの1行が制御プログラムの最終行かどう
か、即ち、制御プログラムが終了かどうかの判定が行な
われ、制御プログラムが終了であれば解釈処理は終了す
るが、制御プログラムが終了でなければ、ステップD1
0へと戻って、制御プログラムの次の行を読み込み、制
御プログラムが終了するまで解釈処理(ステップD10
〜ステップD60)を繰り返す。
【0050】以上で、基本ソフトウェアによるロボット
言語の解釈処理のフローが終了する。本発明の制御装置
は、このように、ユーザが目的に応じて一般的なプログ
ラム言語を利用してユーザがユーザ関数を設定できるの
で以下のような効果がある。ユーザは、目的の作業をロ
ボットにさせるために必要な制御プログラム(必要制御
プログラム)をC言語を利用して作成すると、制御装置
のCPUで動作可能なように実行モジュール(機械語)
に変換されて1つのユーザ関数として登録されるので、
処理速度の高速化を図れる。即ち、複数の標準関数を組
み合わせたものを解釈処理する場合と、これに相当する
1つのユーザ関数を解釈処理する場合とを較べると、前
者では標準関数の数だけ図10に示すような解釈処理フ
ローの繰り返しが必要なのに対し、後者では図1に示す
ような解釈処理を1回行なうだけで良い。
言語の解釈処理のフローが終了する。本発明の制御装置
は、このように、ユーザが目的に応じて一般的なプログ
ラム言語を利用してユーザがユーザ関数を設定できるの
で以下のような効果がある。ユーザは、目的の作業をロ
ボットにさせるために必要な制御プログラム(必要制御
プログラム)をC言語を利用して作成すると、制御装置
のCPUで動作可能なように実行モジュール(機械語)
に変換されて1つのユーザ関数として登録されるので、
処理速度の高速化を図れる。即ち、複数の標準関数を組
み合わせたものを解釈処理する場合と、これに相当する
1つのユーザ関数を解釈処理する場合とを較べると、前
者では標準関数の数だけ図10に示すような解釈処理フ
ローの繰り返しが必要なのに対し、後者では図1に示す
ような解釈処理を1回行なうだけで良い。
【0051】例えば、掛け算1個にかかる解釈処理時間
を約300μsecに対し、そのうちのCPUでの演算
時間は僅か約1μsecである。ここで、1000個の
掛け算が必要なロボットの座標計算を制御装置に行なわ
せると、従来の制御装置では1000個の掛け算を1個
ずつ解釈処理するので約300msecかかるが、本発
明にかかる制御装置ではこの1000個の掛け算を機械
語に変換して1つのユーザ関数として登録できるので解
釈処理は1回で済むため従来の制御装置に較べて、その
解釈処理時間は2桁少なくなる。
を約300μsecに対し、そのうちのCPUでの演算
時間は僅か約1μsecである。ここで、1000個の
掛け算が必要なロボットの座標計算を制御装置に行なわ
せると、従来の制御装置では1000個の掛け算を1個
ずつ解釈処理するので約300msecかかるが、本発
明にかかる制御装置ではこの1000個の掛け算を機械
語に変換して1つのユーザ関数として登録できるので解
釈処理は1回で済むため従来の制御装置に較べて、その
解釈処理時間は2桁少なくなる。
【0052】さらに、必要制御プログラムをロボット制
御装置用に標準で提供される標準関数では記述できない
場合でも、豊富な関数をそなえる一般的なプログラム言
語であるC言語を利用してユーザ言語を作成することで
この必要制御プログラムを記述することが可能となる。
したがって、ユーザは、ロボット制御装置のシステム自
体を高価な費用を払ってメーカに改造してもらうことな
く、あるいは、標準関数の組み合わせで苦心するという
効率の悪い作業を強いられることなく、目的に応じた作
業をロボットに行なわせることができる。
御装置用に標準で提供される標準関数では記述できない
場合でも、豊富な関数をそなえる一般的なプログラム言
語であるC言語を利用してユーザ言語を作成することで
この必要制御プログラムを記述することが可能となる。
したがって、ユーザは、ロボット制御装置のシステム自
体を高価な費用を払ってメーカに改造してもらうことな
く、あるいは、標準関数の組み合わせで苦心するという
効率の悪い作業を強いられることなく、目的に応じた作
業をロボットに行なわせることができる。
【0053】なお、本発明は、上述の実施形態に限定さ
れるものではない。例えば、本実施形態では、C言語に
よりユーザ関数登録を行なっているが、例えばFORT
ORANのような他の一般的なプログラム言語を用いて
もよい。また、本実施形態では、ユーザ登録機能におい
て、ユーザ関数登録表とエントリテーブルとを別々に構
成しているが、これに限定されるものではなく、ユーザ
関数登録表とエントリテーブルとを1つにまとめた構成
としてもよい。この場合、ロボット制御装置のバッテリ
バックアップ付きRAM内の領域構成は、例えば図5
(b)に示すようになる。
れるものではない。例えば、本実施形態では、C言語に
よりユーザ関数登録を行なっているが、例えばFORT
ORANのような他の一般的なプログラム言語を用いて
もよい。また、本実施形態では、ユーザ登録機能におい
て、ユーザ関数登録表とエントリテーブルとを別々に構
成しているが、これに限定されるものではなく、ユーザ
関数登録表とエントリテーブルとを1つにまとめた構成
としてもよい。この場合、ロボット制御装置のバッテリ
バックアップ付きRAM内の領域構成は、例えば図5
(b)に示すようになる。
【0054】さらに、本実施形態では、ユーザ関数登録
表は基本ソフトウエアがそなえるシステムにより表形式
で入力し、エントリテーブルはC言語により作成してい
るが、例えば、ユーザ関数登録表をC言語等の一般的な
プログラム言語により作成したり、また、エントリテー
ブルがユーザ関数登録表と連動して自動的に作成される
システムを基本ソフトウエアに設けてもよい。
表は基本ソフトウエアがそなえるシステムにより表形式
で入力し、エントリテーブルはC言語により作成してい
るが、例えば、ユーザ関数登録表をC言語等の一般的な
プログラム言語により作成したり、また、エントリテー
ブルがユーザ関数登録表と連動して自動的に作成される
システムを基本ソフトウエアに設けてもよい。
【0055】また、本実施形態では、本発明をロボット
に適用しているが、本発明は、例えば、プラント等のロ
ボット以外に適用してもよい。これに伴い、ロボット言
語以外のプログラム言語、例えばファンクションブロッ
ク図(FBD)等の図形言語に適用してもよい。この場
合、ユーザは、図11中で1個の四角枠で示される機能
要素を一般的なプログラム言語を利用して作成,登録す
る。
に適用しているが、本発明は、例えば、プラント等のロ
ボット以外に適用してもよい。これに伴い、ロボット言
語以外のプログラム言語、例えばファンクションブロッ
ク図(FBD)等の図形言語に適用してもよい。この場
合、ユーザは、図11中で1個の四角枠で示される機能
要素を一般的なプログラム言語を利用して作成,登録す
る。
【0056】
【発明の効果】以上詳述したように、本発明の制御装置
によれば、一般的なプログラム言語を利用して作成し
た、ユーザが目的の作業をロボットにさせるために必要
な制御プログラム(必要制御プログラム)を、制御装置
で動作可能なように実行モジュールに変換して1つのユ
ーザ関数として登録することができるので、処理速度の
高速化を図ることができる。さらに、必要制御プログラ
ムをロボット制御装置用に標準で提供される標準関数で
は記述できない場合でも、豊富な関数をそなえる一般的
なプログラム言語を利用して作成したユーザ関数により
この必要制御プログラムを記述することが可能となる。
によれば、一般的なプログラム言語を利用して作成し
た、ユーザが目的の作業をロボットにさせるために必要
な制御プログラム(必要制御プログラム)を、制御装置
で動作可能なように実行モジュールに変換して1つのユ
ーザ関数として登録することができるので、処理速度の
高速化を図ることができる。さらに、必要制御プログラ
ムをロボット制御装置用に標準で提供される標準関数で
は記述できない場合でも、豊富な関数をそなえる一般的
なプログラム言語を利用して作成したユーザ関数により
この必要制御プログラムを記述することが可能となる。
【0057】したがって、ユーザは、制御装置のシステ
ム自体を高価な費用を払ってメーカに改造してもらうこ
となく、あるいは、標準関数の組み合わせで苦心すると
いう効率の悪い作業を強いられることなく、目的に応じ
た作業をロボットに行なわせることができる。
ム自体を高価な費用を払ってメーカに改造してもらうこ
となく、あるいは、標準関数の組み合わせで苦心すると
いう効率の悪い作業を強いられることなく、目的に応じ
た作業をロボットに行なわせることができる。
【図1】本発明の一実施形態にかかるロボット言語の解
釈処理のフローを説明する本装置の要部構成図である。
釈処理のフローを説明する本装置の要部構成図である。
【図2】本発明の一実施形態にかかるユーザ関数登録表
の一例を示す図である。
の一例を示す図である。
【図3】本発明の一実施形態にかかるユーザ関数の演算
内容の記述例を示す図である。
内容の記述例を示す図である。
【図4】本発明の一実施形態にかかるエントリテーブル
作成のための記述例を示す図である。
作成のための記述例を示す図である。
【図5】本発明の一実施形態にかかるバッテリバックア
ップRAMの領域割付例を示す図であって、(a)はユ
ーザ関数登録表とエントリテーブルを別個に作成した場
合の領域割付例を示す図、(b)はユーザ関数登録表と
エントリテーブルを1つにまとめて作成した場合の領域
割付例を示す図である。
ップRAMの領域割付例を示す図であって、(a)はユ
ーザ関数登録表とエントリテーブルを別個に作成した場
合の領域割付例を示す図、(b)はユーザ関数登録表と
エントリテーブルを1つにまとめて作成した場合の領域
割付例を示す図である。
【図6】本発明の一実施形態にかかるユーザ関数の使用
例を示す図である。
例を示す図である。
【図7】従来の制御装置にかかる塗装ロボットの構成及
び塗装ロボットの動作内容を示す図である。
び塗装ロボットの動作内容を示す図である。
【図8】従来の制御装置にかかるロボット言語(標準関
数)による塗装ロボットの制御例を示す図であって、
(a),(b)はそれぞれ図7の動作を塗装ロボットに
行なわせるためのロボット言語による制御プログラムを
示す図である。
数)による塗装ロボットの制御例を示す図であって、
(a),(b)はそれぞれ図7の動作を塗装ロボットに
行なわせるためのロボット言語による制御プログラムを
示す図である。
【図9】従来の制御装置にかかるロボット制御装置の内
部構成を示す図である。
部構成を示す図である。
【図10】従来の制御装置にかかるロボット言語により
記述した塗装ロボットの制御プログラムの解釈処理のフ
ローを説明する装置の要部構成図である。
記述した塗装ロボットの制御プログラムの解釈処理のフ
ローを説明する装置の要部構成図である。
【図11】従来の制御装置にかかるプラント制御装置で
用いられるファンクションブロック図(FBD)による
制御プログラムの記述例を示す図である。
用いられるファンクションブロック図(FBD)による
制御プログラムの記述例を示す図である。
1 CPU 2 RAM 3 ROM 4 I/Oデバイス 5 バッテリバックアップ付きのRAM 6 制御演算部 7 解釈処理部 9 伝送路 10 ロボット制御装置(制御装置) 20 塗装ロボット,ロボット(制御対象) 21 塗装スプレー 25 移動機構 26,27,29 傾動関節 26a,27a,28a,29a 軸 28,30 回動関節 40 作業対象物
Claims (1)
- 【請求項1】 ロボット言語又は図形言語により記述さ
れた制御プログラムに対して標準関数を用いて言語解釈
及び演算処理を行なう解釈処理部と、該解釈処理部によ
る該言語解釈及び該演算処理によって得られた指令情報
に従って制御対象に動作指令を行なう制御演算部とをそ
なえた制御装置において、 ユーザが該標準関数とは別のユーザ関数を登録するユー
ザ関数登録機能をそなえ、 該解釈処理部は、該ユーザ関数に対応した該制御プログ
ラムに対しては該ユーザ関数を用いて言語解釈及び演算
処理を行なうことを特徴とする、制御装置。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP10147267A JPH11338521A (ja) | 1998-05-28 | 1998-05-28 | 制御装置 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP10147267A JPH11338521A (ja) | 1998-05-28 | 1998-05-28 | 制御装置 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH11338521A true JPH11338521A (ja) | 1999-12-10 |
Family
ID=15426368
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP10147267A Withdrawn JPH11338521A (ja) | 1998-05-28 | 1998-05-28 | 制御装置 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPH11338521A (ja) |
Cited By (8)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2007109094A (ja) * | 2005-10-14 | 2007-04-26 | Nippon Steel Corp | 表示制御装置、方法、及びコンピュータプログラム |
| JP2007334469A (ja) * | 2006-06-13 | 2007-12-27 | Hitachi Industrial Equipment Systems Co Ltd | プログラマブルコントローラ及びこれを用いた機器制御方法 |
| JP2009187573A (ja) * | 2002-04-15 | 2009-08-20 | Fisher Rosemount Syst Inc | プロセスプラントに組み込まれたプロセス制御システムにユーザ定義・カスタム・ファンクション・ブロックを統合する方法 |
| US7613960B2 (en) | 2004-02-18 | 2009-11-03 | Advantest Corporation | Semiconductor device test apparatus and method |
| JP2010003073A (ja) * | 2008-06-19 | 2010-01-07 | Hitachi Ltd | エンジニアリングツール |
| WO2020184085A1 (ja) * | 2019-03-13 | 2020-09-17 | オムロン株式会社 | グラフ表示装置、グラフ表示方法、及びグラフ表示プログラム |
| WO2020184121A1 (ja) * | 2019-03-13 | 2020-09-17 | オムロン株式会社 | グラフ表示装置、グラフ表示方法、及びグラフ表示プログラム |
| WO2020184130A1 (ja) * | 2019-03-13 | 2020-09-17 | オムロン株式会社 | グラフ表示装置、グラフ表示方法、及びグラフ表示プログラム |
-
1998
- 1998-05-28 JP JP10147267A patent/JPH11338521A/ja not_active Withdrawn
Cited By (19)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2009187573A (ja) * | 2002-04-15 | 2009-08-20 | Fisher Rosemount Syst Inc | プロセスプラントに組み込まれたプロセス制御システムにユーザ定義・カスタム・ファンクション・ブロックを統合する方法 |
| US7613960B2 (en) | 2004-02-18 | 2009-11-03 | Advantest Corporation | Semiconductor device test apparatus and method |
| KR101003076B1 (ko) * | 2004-02-18 | 2010-12-21 | 가부시키가이샤 아드반테스트 | 반도체 디바이스 시험장치 및 시험방법 |
| JP2007109094A (ja) * | 2005-10-14 | 2007-04-26 | Nippon Steel Corp | 表示制御装置、方法、及びコンピュータプログラム |
| JP2007334469A (ja) * | 2006-06-13 | 2007-12-27 | Hitachi Industrial Equipment Systems Co Ltd | プログラマブルコントローラ及びこれを用いた機器制御方法 |
| JP2010003073A (ja) * | 2008-06-19 | 2010-01-07 | Hitachi Ltd | エンジニアリングツール |
| WO2020184130A1 (ja) * | 2019-03-13 | 2020-09-17 | オムロン株式会社 | グラフ表示装置、グラフ表示方法、及びグラフ表示プログラム |
| WO2020184121A1 (ja) * | 2019-03-13 | 2020-09-17 | オムロン株式会社 | グラフ表示装置、グラフ表示方法、及びグラフ表示プログラム |
| WO2020184085A1 (ja) * | 2019-03-13 | 2020-09-17 | オムロン株式会社 | グラフ表示装置、グラフ表示方法、及びグラフ表示プログラム |
| JP2020149300A (ja) * | 2019-03-13 | 2020-09-17 | オムロン株式会社 | グラフ表示装置、グラフ表示方法、及びグラフ表示プログラム |
| JP2020149299A (ja) * | 2019-03-13 | 2020-09-17 | オムロン株式会社 | グラフ表示装置、グラフ表示方法、及びグラフ表示プログラム |
| JP2020149298A (ja) * | 2019-03-13 | 2020-09-17 | オムロン株式会社 | グラフ表示装置、グラフ表示方法、及びグラフ表示プログラム |
| CN112534369A (zh) * | 2019-03-13 | 2021-03-19 | 欧姆龙株式会社 | 图表显示装置、图表显示方法以及图表显示程序 |
| CN112543898A (zh) * | 2019-03-13 | 2021-03-23 | 欧姆龙株式会社 | 图表显示装置、图表显示方法以及图表显示程序 |
| US11640154B2 (en) | 2019-03-13 | 2023-05-02 | Omron Corporation | Graph display device, graph display method, and recording medium for associating and ascertaining dependency relations among device variables |
| US11762363B2 (en) | 2019-03-13 | 2023-09-19 | Omron Corporation | Graph display device, graph display method, and recording medium |
| US11803170B2 (en) | 2019-03-13 | 2023-10-31 | Omron Corporation | Graph display device, graph display method, and recording medium |
| CN112534369B (zh) * | 2019-03-13 | 2024-04-12 | 欧姆龙株式会社 | 图表显示装置、图表显示方法以及记录介质 |
| CN112543898B (zh) * | 2019-03-13 | 2024-04-12 | 欧姆龙株式会社 | 图表显示装置、图表显示方法以及记录介质 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP4628634B2 (ja) | 汎用運動制御システム | |
| US20140364989A1 (en) | Controller for controlling machine tool and robot | |
| CN111993419B (zh) | 基于pdps的机器人离线制作方法及其装置、计算机终端设备 | |
| JPH11338521A (ja) | 制御装置 | |
| JPWO2004083975A1 (ja) | 数値制御システム | |
| CN110815231A (zh) | 机器人控制方法和装置 | |
| CN115167265B (zh) | Plc应用包生成方法、plc应用包运行方法及相关装置 | |
| JP3829905B2 (ja) | プログラマブル・コントローラ | |
| US6009268A (en) | Device for programming a stored program controller | |
| WO2025112914A1 (zh) | 轴组运动控制系统、方法及设备 | |
| US8533376B1 (en) | Data processing method, data processing apparatus and robot | |
| JP3208467B2 (ja) | ロボットの制御装置 | |
| JPS58222357A (ja) | 駆動制御プログラムデバツグ方式 | |
| JPS63239511A (ja) | ロボツト・システム | |
| JP6939662B2 (ja) | プログラミング支援装置、プログラミング支援方法及びプログラム | |
| JPH04114208A (ja) | Ncプログラムのアニメ描画方法 | |
| US6749689B2 (en) | Controlled reciprocating machine and method | |
| JPH0991022A (ja) | ロボット制御装置 | |
| JPS63316105A (ja) | プログラマブルコントロ−ラのシミュレ−ション装置 | |
| JPS598055A (ja) | 命令語処理方法 | |
| CN121433119A (zh) | 轴功能实现方法以及相关设备 | |
| JPS60101606A (ja) | ロボツト自動運転方式 | |
| JP2639127B2 (ja) | 数値制御装置 | |
| KR100423742B1 (ko) | 순차기능챠트에 의한 전용 제어 시스템 | |
| JP2002006918A (ja) | ロボットの制御装置および制御方法 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A300 | Withdrawal of application because of no request for examination |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20050802 |