(57)【特許請求の範囲】
【請求項１】
ロボットの制御プログラムを表示するステップと、ロボットが動作するときの区間指定の区間開始命令や区間終了命令の有無を判別するステップと、入力装置により前記区間の開始を指示する区間開始命令を追加した際にこれと対となる区間終了命令があるとき、または、前記入力装置により前記区間の終了を指示する区間終了命令を追加した際にこれと対となる区間開始命令があるときに区間内に前記区間開始命令に含まれる動作速度条件とは別の動作速度条件が存在する場合に前記別の動作速度条件が存在することを示す表示を前記別の動作速度条件の位置に行い前記別の動作速度条件を無効にするステップとを含み、前記区間の開始を指示する区間開始命令と対となる区間終了命令が無いときに区間開始命令以降の表示状況を変更し、前記区間の終了を指示する区間終了命令と対となる区間開始命令が無いときには表示状況を変更しないことを特徴とするロボットのプログラム制御方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、ロボットおよび周辺装置の動作がロボット言語によってプログラムされるロボットのプログラム制御方法に関する。
【０００２】
【従来の技術】
従来のロボット制御装置において、ロボットに何らかの作業を実行させる場合に、その作業をどのように行うかを具体的に指令するために、使用者は、ロボット言語によって動作の命令を記述する。たとえば、ロボットをある教示点から次の教示点へ移動させるとき、移動命令を入力するが、ロボットの作業内容に応じて、いくつかの条件もあわせて入力する必要がある。ここで、望ましい作業性能を得るために、最適とする条件をトライアンドエラー方式で求めて入力する必要があるが、ロボットの作業が多数の移動命令で構成される場合、使用者がすべての移動命令に対して修正を行うのは多大な労力を要する。
【０００３】
そこで、この問題を解決する方法の一つとして、ロボットの動作条件を変更したい区間の始点と終点をそれぞれ指定し、前記区間に対して一貫して動作条件を与えることで、区間内にある各命令について動作条件を修正することなく、プログラムの作業性能を管理することを容易にする命令が、ロボット言語のセットに含まれている。なお、前記命令が使われるケースとしては、ロボットの動作経路上の溶接区間に対して溶接条件（電流、電圧、溶接速度など）を与える場合があげられる。
【０００４】
【発明が解決しようとする課題】
上記のように、ロボットのプログラムに対して、ある区間について条件を与える命令を加えるとき、前記区間において、前記条件に作用する別の命令が存在する場合に、条件が競合するといった矛盾が発生する。
【０００５】
従来は、競合の問題を解決するために、使用者が、条件の競合する箇所を手作業で修正したり、あるいは、あらかじめ決めた命令の優先度にしたがって優先度の高い命令で指定する条件をつかってプログラム実行するといった方法がとられていたが、使用者にとって、プログラムを修正する負担が増したり、あるいは、どの動作条件をつかってプログラムが実行されるかがわかりにくくなり、結果、プログラムの読みやすさを損なうといった課題があった。
【０００６】
したがって、この発明の目的は、命令どうしが与える条件が競合することを回避し、プログラムを読みやすくするとともに、使用者がプログラムを作成する作業を容易にするための、ロボットのプログラム制御方法を提供することである。
【００１１】
【課題を解決するための手段】
請求項１記載のロボットのプログラム制御方法は、ロボットの制御プログラムを表示するステップと、ロボットが動作するときの区間指定の区間開始命令や区間終了命令の有無を判別するステップと、入力装置により前記区間の開始を指示する区間開始命令を追加した際にこれと対となる区間終了命令があるとき、または、前記入力装置により前記区間の終了を指示する区間終了命令を追加した際にこれと対となる区間開始命令があるときに区間内に前記区間開始命令に含まれる動作速度条件とは別の動作速度条件が存在する場合に前記別の動作速度条件が存在することを示す表示を前記別の動作速度条件の位置に行い前記別の動作速度条件を無効にするステップとを含み、前記区間の開始を指示する区間開始命令と対となる区間終了命令が無いときに区間開始命令以降の表示状況を変更し、前記区間の終了を指示する区間終了命令と対となる区間開始命令が無いときには表示状況を変更しない。
【００１２】
このように、区間の開始を指示する区間開始命令を選択した際にこれと対となる区間終了命令があるとき、または、区間の終了を指示する区間終了命令を選択した際にこれと対となる区間開始命令があるときに区間内の競合する条件に指定表記を表示するステップとを含み、区間の開始を指示する区間開始命令と対となる区間終了命令が無いときに区間開始命令以降の表示状況を変更するので、ロボットの動作条件を変更したい区間を指定する命令を加えるとき、例えば前記区間にある命令文の表示を変更したり、プログラム上で競合する条件すべてについて指定表記を表示することで、条件の競合を自動的に回避するとともに、プログラムを読みやすくするという作用を有する。
【００２８】
【発明の実施の形態】
この発明の第１の実施の形態を図１〜図６に基づいて説明する。図１はこの発明の第１の実施の形態における装置のブロック図であり、ロボット１０１と、前記ロボット１０１を制御するロボット制御装置１０２と、前記ロボット制御装置１０２と通信を行う教示装置１１０とを備えた構成とする。
【００２９】
教示装置１１０は、ロボット制御装置１０２と通信を行う通信装置１１１と、前記通信装置１１１と伝号を入出力する中央処理装置１１２と、前記中央処理装置１１２と接続された記憶装置１１３と、前記中央処理装置１１２に信号を入力する入力装置１１４と、前記中央処理装置１１２から出力される信号に基づいて表示を行う表示装置１１５を備えている。なお、中央処理装置１１２は、記憶装置１１３にあらかじめ設定されているプログラムを読み出して動作することにより、通信装置１１１を介して、ロボットを動作させるための動作指令や使用者が作成したプログラムをロボット制御装置１０２へ送ったり、逆にロボット制御装置１０２からプログラムを読み出すことができる。また、プログラムを実行するときのロボットの動作状況を示すデータは、ロボット制御装置１０２と接続する記憶部１０３に格納できる。
【００３０】
ロボット制御装置１０２が対応するロボット言語のセットには、作業内容に沿った動作を指令する動作命令や、与えた条件に従って動作することを指令する設定命令を設ける。前記設定命令には、動作条件を宜言する「宣言型の設定命令」（例えば、「ＳＰＥＥＤ」）と、条件を変更したい区間を指定する「区間指定型の設定命令」（例えば、「ＳＴＡＲＴＡＲＣ」と「ＥＮＤＡＲＣ」）とを設ける。なお、溶接区間の指定を開始する命令「ＳＴＡＲＴＡＲＣ」は、溶接の品質に関わる溶接条件の、電流、電圧、および溶接速度の３つの条件を与える機能を有する。さらに、動作命令と設定命令の両方の機能をもつ複合移動命令（例えば、移動先の教示点と動作速度を指定する「ＭＯＶＥ」）も、前記ロボット言語のセットに含める。
【００３１】
図２はこの発明の第１の実施の形態におけるプログラムの一例を示す概要図、図３はこの発明の第１の実施の形態におけるロボット先端の動作経路の一例を示す概要図である。たとえば、図３のような溶接作業をロボットに行わせるためには、図２に示すプログラム例のように、連続する複合移動命令「ＭＯＶＥ」をつかってロボットの動作経路を構成し、さらに前記動作系路上の溶接区間の始点と終点のそれぞれに設定命令「ＳＴＡＲＴＡＲＣ」および「ＥＮＤＡＲＣ」を入力した場合、黒枠で囲んだ動作速度の条件が競合している。そこで、プログラム上で動作速度の条件が競合するのを回避する方法について以下で説明する。
【００３２】
図４は、使用者が入力装置１１４を操作して、命令を登録しようとするときに表示される命令入力画面の一例を示す概要図である。
【００３３】
命令入力画面４００は、動作速度を入力するための設定項目４１０と、移動先の教示点名を入力するための設定項目４２０と、該項目に入力した内容をもとに命令を登録することを決定するためのＯＫボタン４５０と、命令の登録自体を中止するキャンセルボタン４６０を設ける。使用者が入力装置１０４を操作して、各設定項目を選択し値を入力する。なお、前記ＯＫボタン４５０を選択するとき、設定項目４１０および４２０に値が入力されていないか、もしくは設定項目ごとにあらかじめ決められたルールと一致しない値が入力されている場合はエラーとし、命令を登録できないようにする。
【００３４】
図５はこの発明の第１の実施の形態における中央処理装置の処理の流れを示すフローチャート、図６はこの発明の第１の実施の形態における命令の入力画面の一例を示す概要図である。図５に示すフローチャートは、図１に示すロボットの構成において、命令を登録するときに、図６に示すように条件が競合することを入力画面に表示するための、中央処理装置１１２がおこなう処理の流れを示したものである。
【００３５】
使用者が入力装置１１４を操作して命令を登録するとき、ステップ５００から処理を開始し、ステップ５０１に移り、プログラム全体をとおして、区間指定の状況を調べる。つぎにステップ５１０で、命令を登録しようとする場所が、該区間内にあるかどうかを判別する。具体的には、命令を登録しようとする場所が、対となる命令で挟まれているか、もしくは、現在の場所より以前に区間指定の開始命令があって対となる区間指定の終了命令が存在しない場合に、該区間内にあると判別する。ステップ５１０で現在の場所が区間外にあると判断されるときステップ５３０に移り、命令の入力画面４００を表示する。また、ステップ５１０において、現在の場所が区間の中にあると判別されるときステップ５２０に移り、登録しようとする命令に含まれる条件が、記憶されたプログラム中に記述され、区間内で保持する条件と競合するかどうかを判別する。条件が競合しないと判断されるときステップ５３０に移り、命令の入力画面４００を表示する。
【００３６】
また、ステップ５２０において、条件が競合すると判断されるときステップ５４０に移り、図６に示すような命令の入力画面６００を表示する。入力画面６００では、条件が競合することをわかりやすくするために該条件の設定項目に対して指定表記「＊」を表示し、該設定項目の背景を斜線で表示する。
【００３７】
ステップ５５０において、入力画面４００または６００の各設定項目に値を入力し、ＯＫボタン４５０を選択するとき、ステップ５６０でＯＫボタン４５０が押されたと判断された結果、ステップ５６１に移り、入力した各値をもとに命令を登録して、ステップ５７０に移り処理を終了する。なお、前記入力画面４００または６００においてキャンセルボタン４６０を選択するとき、ステップ５６０でキャンセルボタン４６０が押されたと判断された結果、命令の登録を行わずに、ステップ５７０に移り処理を終了する。
【００３８】
以上のようにこの実施の形態によれば、図４に示すように、ロボットの動作条件を変更した区間において、あらたに命令を入力するとき、命令どうしで条件が競合する場合に、命令の入力画面に設けた条件の設定項目の表示を変更することで、入力しようとする条件が競合することを容易に確認できる。
【００３９】
この発明の第２の実施の形態を説明する。第１の実施の形態において、ロボットの動作条件を変更した区間において、あらたに命令を入力するとき、命令どおしで条件が競合する場合に、条件が競合することを自動的に回避するために、実施の形態１に記載の処理の流れにおいて、ステップ５４０で、命令の入力画面６００を表示する際に、条件が競合することをわかりやすくするために該条件の設定項目に対して指定表記「＊」を表示し、該設定項目の背景を斜線で表示するとともに、該設定項目への入力を制限する。
【００４０】
以上のようにこの実施の形態によれば、図４に示すように、ロボットの動作条件を変更した区間において、あらたに命令を入力するとき、命令どうしで条件が競合する場合に、命令の入力画面に設けた条件の設定項目の表示を変更し、前記設定項目への入力を制限することで、入力しようとする条件が競合することを自動的に回避できる。
【００４１】
この発明の第３の実施の形態を図７および図８に基づいて説明する。図７はこの発明の第３の実施の形態における中央処理装置の処理の流れを示すフローチャート、図８はこの発明の第３の実施の形態におけるプログラムの一例を示す概要図である。図７に示すフローチャートは、図８に示すように条件が競合することをプログラム上で表示するための、中央処理装置１１２がおこなう処理の流れを示したものである。
【００４２】
第１の実施の形態において、使用者が入力装置１１４を操作して、たとえば、溶接区間を指定する「ＳＴＡＲＴＡＲＣ」、「ＥＮＤＡＲＣ」のいずれかの設定命令を登録したとき、ステップ７００から処理を開始し、ステップ７０１に移り、プログラム全体をとおして、区間指定の状況を調べる。
【００４３】
つぎにステップ７１０において、使用者が「ＳＴＡＲＴＡＲＣ」命令を選択したと判断されるとき、ステップ７２０に移り、対となる「ＥＮＤＡＲＣ」命令が存在するかどうかを判別する。「ＥＮＤＡＲＣ」命令が存在しないと判断されるとき、ステップ７２１に移り、図８（ａ）に示すように、「ＳＴＡＲＴＡＲＣ」命令以降の命令文の表示を淡い色に変更し、競合する条件の値を反転表示としたのち、ステップ７５０に移り処理を終了する。また、ステップ７２０において、「ＥＮＤＡＲＣ」命令が存在すると判断されるとき、ステップ７４０に移る。
【００４４】
また、ステップ７１０において、使用者が「ＥＮＤＡＲＣ」命令を選択したと判断されるとき、ステップ７３０に移り、対となる「ＳＴＡＲＴＡＲＣ」命令が存在するかどうかを判別する。「ＳＴＡＲＴＡＲＣ」命令が存在しないと判断されるとき、ステップ７５０に移り処理を終了する。また、ステップ７３０において、「ＳＴＡＲＴＡＲＣ」命令が存在すると判断されるとき、ステップ７４０に移る。
【００４５】
ステップ７４０において、プログラム上で「ＳＴＡＲＴＡＲＣ」および「ＥＮＤＡＲＣ」命令で挟むことで溶接区間が指定されたとき、図８（ｂ）に示すように、競合する条件に対して、競合を回避するために指定表記「＊」を表示する。このとき、もともと命令文で指定していた条件は、内部パラメータとして保持された状態にある。最後に、ステップ７４０からステップ７５０に移り処理を終了する。なお、ステップ７４０において、指定表記「＊」の代わりに、該区間の指定を開始する「ＳＴＡＲＴＡＲＣ」命令で保持される条件を表示してもよい。
【００４６】
以上のようにこの実施の形態によれば、図８のプログラム例で示すように、ロボットの動作条件を変更したい区間を指定する命令を加えるとき、前記区間にある命令文の表示を変更したり、プログラム上で競合する条件すべてについて指定表記を表示することで、条件の競合を自動的に回避するとともに、プログラムを読みやすくすることができる。
【００４７】
この発明の第４の実施の形態を図９に基づいて説明する。図９はこの発明の第４の実施の形態における中央処理装置の処理の流れを示すフローチャートである。
【００４８】
第１の実施の形態において、ロボット制御装置１０２が対応するロボット言語の命令に、区間内で保持される条件に関係なく命令文で指定した条件をつかってプログラムを実行する形式を、有効と無効とで切り替えるための内部パラメータ（強制実行のパラメータ）を設ける。
【００４９】
図９に示すフローチャートは、図６に示すような命令の入力画面に表示される条件の設定項目に値を直接入力することで、前記実行形式を指定できるようにするために、中央処理装置１１２が行う処理の流れを示したものである。
【００５０】
使用者が入力装置１１４を操作して命令を登録するとき、ステップ８００から処理を開始し、ステップ８０１に移り、プログラム全体をとおして、区間指定の状況を調べる。つぎにステップ８１０で、命令を登録しようとする場所が、該区間内にあるかどうかを判別する。ステップ８１０で現在の場所が区間外にあると判断されるときステップ８３０に移り、命令の入力画面４００を表示する。また、ステップ８１０において、現在の場所が該区間の中にあると判別されるときステツプ８２０に移り、登録しようとする命令に含まれる条件が、該区間内で保持する条件と競合するかどうかを判別する。条件が競合しないと判断されるときステップ８３０に移り、命令の入力画面４００を表示する。
【００５１】
また、ステップ８２０において、条件が競合すると判断されるときステップ８４０に移り、図６に示すような命令の入力画面６００を表示する。入力画面６００では、競合する条件の設定項目に対して、入力画面６００で与える条件が競合することを示す指定表記「＊」を表示する。
【００５２】
ステップ８５０において、入力画面４００または６００の各設定項目に値を入力し、ＯＫボタン４５０を選択するとき、ステップ８６０でＯＫボタン４５０が押されたと判断された結果、ステップ８６１に移る。つぎにステップ８６１で、入力画面６００に表示された競合する条件の設定項目に、指定表記「＊」の値が入力されているかどうかを判別する。指定表記「＊」が入力されていると判断されるときステップ８６１に移り、強制実行のパラメータを無効にした状態で指定表記を用いて命令を登録したのち、ステップ８７０に移り処理を終了する。また、ステップ８６１で、指定表記「＊」以外の値が入力されていると判断されるときステップ８６３に移り、強制実行のパラメータを有効にした状態で前記値を用いて命令を登録したのち、ステップ８７０に移り処理を終了する。なお、前記入力画面４００または６００においてキャンセルボタン４６０を選択するとき、ステップ８６０でキャンセルボタン４６０が押されたと判断された結果、命令の登録を行わずに、ステップ８７０に移り処理を終了する。
【００５３】
以上のようにこの実施の形態によれば、ロボットの動作条件を変更した区間において、あらたに命令を入力するとき、区間内で保持される条件に関係なく命令文で指定した条件をつかってプログラムを実行する形式を指示したい場合に、図６に示すような入力画面にある、競合する条件を設定項目に値を入力するだけで、前記実行形式を指示できるようにして、プログラムを作成する作業を容易にすることができる。
【００５４】
この発明の第５の実施の形態を図１０に基づいて説明する。図１０はこの発明の第５の実施の形態におけるプログラムの一例を示す概要図である。
【００５５】
強制実行のパラメータが有効または無効の状態を、プログラムをみて容易に判断できるように、実施の形態２に記載の処理の流れにおいて、前記プログラムを表示する際に、各命令に付与された内部パラメータを読み出して、前記内部パラメータの中に含まれる強制実行のパラメータが有効である場合、図１０（ａ）または（ｂ）に示すように該命令を目立つ色（太字部分）で表示するとともに、競合する条件を反転表示する。また、前記強制実行のパラメータが無効である場合は、図７に示す処理の流れに従う。
【００５６】
以上のようにこの実施の形態によれば、図１０のプログラム例で示すように、区間内で保持される条件に関係なく指定した条件をつかってプログラムを実行する命令を登録した場合に、プログラム上で前記命令の表示を変更し、この命令と他の命令との値との違いを明らかにすることで、プログラムを読みやすくすることができる。
【００５７】
この発明の第６の実施の形態を図１１および図１２に基づいて説明する。図１１はこの発明の第６の実施の形態における中央処理装置の処理の流れを示すフローチャート、図１２はこの発明の第６の実施の形態におけるプログラムの一例を示す概要図である。図１１に示すフローチャートは、図６に示すような命令の入力画面に表示される条件の設定項目に値を直接入力することで、図１２で示すプログラム例のように、前記区間の指定を一旦終了して、指定した条件をつかってプログラム実行する命令を加え、区間の指定を再開する場合の、中央処理装置１１２が行う処理の流れを示したものである。
【００５８】
第１の実施の形態において、使用者が入力装置１１４を操作して命令を登録するとき、ステップ１１００から処理を開始し、ステップ１１０１に移り、プログラム全体をとおして、区間指定の状況を調べる。つぎにステップ１１１０で、命令を登録しようとする場所が、該区間内にあるかどうかを判別する。ステップ１１１０で現在の場所が区間外にあると判断されるときステップ１１３０に移り、命令の入力画面４００を表示する。また、ステップ１１１０において、現在の場所が該区間の中にあると判別されるときステップ１１２０に移り、登録しようとする命令に含まれる条件が、該区間内で保持する条件と競合するかどうかを判別する。
【００５９】
条件が競合しないと判断されるときステップ１１３０に移り、命令の入力画面１１００を表示する。また、ステップ１１２０において、条件が競合すると判断されるときステップ１１４０に移り、図６に示すような命令の入力画面６００を表示する。入力画面６００では、競合する条件の設定項目に対して、入力画面６００で与える条件が競合することを示す指定表記「＊」を表示する。
【００６０】
ステップ１１５０において、入力画面４００または６００の各設定項目に値を入力し、ＯＫボタン４５０を選択するとき、ステップ１１６０でＯＫボタン４５０が押されたと判断された結果、ステップ１１６１に移る。つぎにステップ１１６１で、入力画面６００に表示された競合する条件の設定項目に、指定表記「＊」の値が入力されているかどうかを判別する。指定表記「＊」が入力されていると判断されるときステップ１１６１に移り、指定表記を用いて該命令を登録したのち、ステップ１１７０に移り処理を終了する。また、ステップ１１６１で、指定表記「＊」以外の値が入力されていると判断されるときステップ１１６３に移り、図１２（ｂ）に示すように、入力した値にもとづいて命令を登録するとともに、該命令の前に区間の終了命令を登録し、さらに該命令の後に、該区間で保持する条件をつかって区間の開始命令を登録したのち。ステップ１１７０に移り処理を終了する。なお、前記入力画面４００または６００においてキャンセルボタン４６０を選択するとき、ステップ１１６０でキャンセルボタン４６０が押されたと判断された結果、命令の登録を行わずに、ステップ１１７０に移り処理を終了する。
【００６１】
以上のようにこの実施の形態によれば、図１２のプログラム例で示すように、ロボットの動作条件を変更した区間において、あらたに命令を入力するとき、前記区間の指定を一旦終了して、指定した条件をつかってプログラム実行する命令を加え、区間の指定を再開するような、区間がより細かく区分される場合に、入力画面にある競合する条件の設定項目に値を入力するだけで、前記区間を区分する区間終了命令と区間開始命令を自動的に加えるようにして、プログラムを作成する作業を容易にすることができる。
【００６２】
この発明の第７の実施の形態を図１３に基づいて説明する。図１３はこの発明の第７の実施の形態におけるロボット制御装置の処理の流れを示すフローチャートである。このフローチャートは、ロボットの動作条件を変更した区間において、条件の競合を回避するために、ロボット制御装置１０２がおこなう処理の流れを示したものである。
【００６３】
第１の実施の形態と同様に、ロボットの制御プログラムを構成する命令を登録する際に、登録しようとする命令が、記憶されたプログラム中に記述された条件と競合するときには競合することを指定表記で表示し、この指定表記を用いて登録するロボットのプログラム制御方法において、ステップ１３００から処理を開始し、ステップ１３０１でプログラムに記述された命令を読み込む。次にステップ１３１０に移り、命令文の条件に指定表記「＊」が含まれているかどうかを判別する。命令文に指定表記「＊」が含まれないと判断されるとき、ステップ１３１１に移り、命令文の中で与えられた値をもちいて命令を実行し、次にステップ１３１２に移り、指定した値を記憶部１０３に格納したのち、ステップ１３２０に移る。
【００６４】
また、ステップ１３１０において、命令中に指定表記「＊」が含まれると判断されるとき、ステップ１３１５に移り、記憶部１０３に格納された値をもちいて命令を実行し、ステップ１３２０に移る。なお、プログラムを実行する前の初期状態においては、記憶部１０３には、条件の初期値としてあらかじめ指定した値が格納されている。
【００６５】
ステップ１３２０において、次の命令の処理に移り、ステップ１３３０でプログラム終了するかどうかを判別する。次の命令が存在せずプログラム終了と判断されるとき、ステップ１３４０に移り、処理を終了する。次の命令が存在しプログラム継続と判断されるとき、ステップ１３０１に戻って、次の命令の処理を行う。
【００６６】
この発明の第８の実施の形態を図１４に基づいて説明する。図１４はこの発明の第８の実施の形態におけるロボット制御装置の処理の流れを示すフローチャートである。ロボット言語のセットに、プログラムから別のプログラムを呼び出すための「ＣＡＬＬ」命令を設ける。ロボット制御装置１０２は、前記「ＣＡＬＬ」命令を実行するとき、呼出元のプログラムを一時停止したのち、呼出先のプログラムの処理に移るようにする。図１４に示すフローチャートは、ロボットの動作条件を入力する作要を容易にするための、ロボット制御装置１０２がおこなう処理の流れを示したものである。
【００６７】
第１の実施の形態と同様に、ロボットの制御プログラムを構成する命令を登録する際に、登録しようとする命令が、記憶されたプログラム中に記述された条件と競合するときには競合することを指定表記で表示し、この指定表記を用いて登録するロボットのプログラム制御方法において、ステップ１４００から処理を開始し、ステップ１４０１でプログラムに記述された命令を読み込む。次にステップ１４０２に移り、命令文が「ＣＡＬＬ」命令かどうかを判別する。「ＣＡＬＬ」命令と判断されるとき、ステップ１４０５に移り、現在のプログラムから別のプログラムを呼び出すことを、履歴データとして記憶部１０３に格納し、つぎにステップ１４０６で呼出先のプログラムにある命令の処理を行う。なお、前記履歴データには、呼出元と呼出先のプログラム名が対になって格納されている。また、ステップ１４０２において、命令文が「ＣＡＬＬ」命令でないと判断されるとき、ステップ１４１０に移り、命令文の条件に指定表記「＊」が含まれているかどうかを判別する。指定表記「＊」が含まれないと判断されるとき、ステップ１４１１に移り、命令文の中で与えられた値をもちいて命令を実行し、次にステップ１４１２に移り、指定した値を現在のプログラム名を付与して記憶部１０３に格納したのち、ステップ１４２０に移る。
【００６８】
また、ステップ１４１０において、指定表記「＊」が含まれると判断されるとき、ステップ１４１５に移り、記憶部１０３に格納した前記履歴データをもとに、現在のプログラムが別のプログラムから呼び出されたサブプログラムかどうかを判断する。サブプログラムでないと判断されるとき、ステップ１４１６に移り、記憶部１０３に格納された現在のプログラムが指定した値をもちいて命令を実行し、ステップ１４２０に移る。
【００６９】
また、ステップ１４１５において、サブプログラムだと判断されるとき、ステップ１４１７に移り、記憶部１０３に格納された呼出元のプログラムが指定した値をもちいて命令を実行し、ステップ１４２０に移る。
【００７０】
ステップ１４２０において次の命令の処理に移り、ステップ１４３０でプログラム終了するかどうかを判別する。次の命令が存在せずプログラム終了と判断されるとき、ステップ１４４０に移り、処理を終了する。次の命令が存在しプログラム継続と判断されるとき、ステップ１４０１に戻って、次の命令の処理を行う。
【００７１】
この発明の第９の実施の形態を図１５および図１６に基づいて説明する。図１５はこの発明の第９の実施の形態におけるロボットの動作条件と対応する標準値の関係をテーブル形式で示した概要図である。テーブル形式のデータは記憶部１０３に格納されている。なお、前記標準値は、ロボットがプログラムを実行しているあいだに、入力装置１１４の操作で調整できるようにしてもよい。
【００７２】
図１６はこの発明の第９の実施の形態におけるロボット制御装置の処理の流れを示すフローチャートである。このフローチャートは、ロボットの動作条件を入力する作業を容易にするための、ロボット制御装置１０２がおこなう処理の流れを示したものである。
【００７３】
第１の実施の形態と同様に、ロボットの制御プログラムを構成する命令を登録する際に、登録しようとする命令が、記憶されたプログラム中に記述された条件と競合するときには競合することを指定表記で表示し、この指定表記を用いて登録するロボットのプログラム制御方法において、ステップ１５００から処理を開始し、ステップ１５０１でプログラムに記述された命令を読み込む。次にステップ１５１０に移り、命令文の条件に指定表記「＊」が含まれているかどうかを判別する。命令文に指定表記「＊」が含まれないと判断されるとき、ステップ１５１１に移り、命令文の中で与えられた値をもちいて命令を実行し、ステップ１５２０に移る。
【００７４】
また、ステップ１５１０において、命令中に指定表記「＊」が含まれると判断されるとき、ステップ１５１５に移り、記憶部１０３に格納されたテーブルで指定された条件の標準値をもちいて命令を実行し、ステップ１５２０に移る。ステップ１５２０において次の命令の処理に移り、ステップ１５３０でプログラム終了するかどうかを判別する。次の命令が存在せずプログラム終了と判断されるとき、ステップ１５４０に移り、処理を終了する。次の命令が存在しプログラム継続と判断されるとき、ステップ１５０１に戻って、次の命令の処理を行う。
【００７５】
この発明の第１０の実施の形態を図１７および図１８に基づいて説明する。図１７はこの発明の第１０の実施の形態におけるロボットの溶接作業において、溶接速度に対して、望ましい作業結果が得られるような溶接電流・溶接電圧の条件を換算表形式で示した概要図である。前記換算表形式のデータは記憶部１０３に格納されている。なお、前記換算表は、ロボットがプログラムを実行しているあいだに、入力装置１１４の操作で調整できるようにしてもよい。
【００７６】
図１８はこの発明の第１０の実施の形態におけるロボット制御装置の処理の流れを示すフローチャートである。このフローチャートは、ロボットの動作条件を入力する作業を容易にするための、ロボット制御装置１０２がおこなう処理の流れを示したものである。
【００７７】
第１の実施の形態において、ステップ１７００から処理を開始し、ステップ１７０１でプログラムに記述された命令を読み込む。次にステップ１７１０に移り、命令文の条件に指定表記「＊」が含まれているかどうかを判別する。命令文に指定表記「＊」が含まれないと判断されるとき、ステップ１７１１に移り、命令文の中で与えられた値をもちいて命令を実行し、ステップ１７２０に移る。
【００７８】
また、ステップ１７１０において、命令中に指定表記「＊」が含まれると判断されるとき、ステップ１７１７に移り、命令中に記述された条件をもとに、記憶部１０３に格納された換算表を用いて、指定表記「＊」に対応する条件を求め、該値をつかってプログラムを実行し、ステップ１７２０に移る。
【００７９】
ステップ１７２０において次の命令の処理に移り、ステップ１７３０でプログラム終了するかどうかを判別する。次の命令が存在せずプログラム終了と判断されるとき、ステップ１７４０に移り、処理を終了する。次の命令が存在しプログラム継続と判断されるとき、ステップ１７０１に戻って、次の命令の処理を行う。
【００８０】
この発明の第１１の実施の形態を図１９および図２０に基づいて説明する。図１９はこの発明の第１１の実施の形態におけるロボットの構成を示すブロック図で、センサからの入力信号を利用してロボット制御を行うときの概念を示す。図１９に示すように、センサ１９０１とロボット制御盤１０２を通信線で接続した状態で、前記入力信号はロボット制御装置１０２に与えられ前記入力信号に対して望ましい作業結果が得られるような条件を求めるための関係式が、記憶部１０３に格納された状態とする。たとえば、溶接作業において、溶接の溶け込みなどの状態を検出するセンサ１９０１から得られた入力をもとに、溶接条件に含まれる電流・電圧・溶接速度のうちいずれかを、関係式より求めるケースなどを想定する。なお、第１の実施の形態と同一部材には同一符号を付す。
【００８１】
図２０はこの発明の第１１の実施の形態におけるロボット制御装置の処理の流れを示すフローチャートである。このフローチャートは、センサから入力信号をもとに制御を行うときのプログラムに対して、ロボットの動作条件を入力する作業を容易にするための、ロボット制御装置１０２がおこなう処理の流れを示したものである。
【００８２】
ステップ２０００から処理を開始し、ステップ２００１でプログラムに記述された命令を読み込む。次にステップ２０１０に移り。命令文の条件に指定表記「＊」が含まれているかどうかを判別する。指定表記「＊」が含まれないと判断されるとき、ステップ２０１１に移り、命令文の中で与えられた値をもちいて命令を実行し、次にステップ２０１２に移り、指定した値を記憶部１０３に格納したのち、ステップ２０２０に移る。
【００８３】
また、ステップ２０１０において、命令中に指定表記「＊」が含まれると判断されるとき、ステップ２０１７に移り、センサから得られた入力をもとに、記憶部１０３に格納された前記関係式を用いて、指定表記「＊」に対応する条件を求め、該値をつかってプログラムを実行し、ステップ２０２０に移る。
【００８４】
ステップ２０２０において次の命令の処理に移り、ステップ２０３０でプログラム終了するかどうかを判別する。次の命令が存在せずプログラム終了と判断されるとき、ステップ２０４０に移り、処理を終了する。次の命令が存在しプログラム継続と判断されるとき、ステップ２００１に戻って、次の命令の処理を行う。
【００８７】
【発明の効果】
この発明の請求項１記載のロボットのプログラム制御方法によれば、入力装置により区間の開始を指示する区間開始命令を追加した際にこれと対となる区間終了命令があるとき、または、入力装置により区間の終了を指示する区間終了命令を追加した際にこれと対となる区間開始命令があるときに区間内に区間開始命令に含まれる動作速度条件とは別の動作速度条件が存在する場合に別の動作速度条件が存在することを示す表示を別の動作速度条件の位置に行い別の動作速度条件を無効にするステップとを含み、区間の開始を指示する区間開始命令と対となる区間終了命令が無いときに区間開始命令以降の表示状況を変更し、区間の終了を指示する区間終了命令と対となる区間開始命令が無いときには表示状況を変更しないので、ロボットの動作条件を変更したい区間を指定する命令を加えるとき、例えば前記区間にある命令文の表示を変更したり、プログラム上で競合する条件すべてについて指定表記を表示することで、条件の競合を自動的に回避するとともに、プログラムを読みやすくするという効果を有する。
【図面の簡単な説明】
【図１】この発明の第１の実施の形態における装置のブロック図である。
【図２】この発明の第１の実施の形態におけるプログラムの一例を示す概要図である。
【図３】この発明の第１の実施の形態におけるロボット先端の動作経路の一例を示す概要図である。
【図４】第１の実施の形態における命令入力画面の一例を示す概要図である。
【図５】この発明の第１の実施の形態における中央処理装置の処理の流れを示すフローチャートである。
【図６】この発明の第１の実施の形態における命令の入力画面の一例を示す概要図である。
【図７】この発明の第３の実施の形態における中央処理装置の処理の流れを示すフローチャートである。
【図８】この発明の第３の実施の形態におけるプログラムの一例を示す概要図である。
【図９】この発明の第４の実施の形態における中央処理装置の処理の流れを示すフローチャートである。
【図１０】この発明の第５の実施の形態におけるプログラムの一例を示す概要図である。
【図１１】この発明の第６の実施の形態における中央処理装置の処理の流れを示すフローチャートである。
【図１２】この発明の第６の実施の形態におけるプログラムの一例を示す概要図である。
【図１３】この発明の第７の実施の形態におけるロボット制御装置の処理の流れを示すフローチャートである。
【図１４】この発明の第８の実施の形態におけるロボット制御装置の処理の流れを示すフローチャートである。
【図１５】この発明の第９の実施の形態におけるロボットの動作条件と対応する標準値の関係をテーブル形式で示した概要図である。
【図１６】この発明の第９の実施の形態におけるロボット制御装置の処理の流れを示すフローチャートである。
【図１７】この発明の第１０の実施の形態における動作条件の関係を換算表形式で示した概要図である。
【図１８】この発明の第１０の実施の形態におけるロボット制御装置の処理の流れを示すフローチャートである。
【図１９】この発明の第１１の実施の形態におけるロボットの構成を示すブロック図である。
【図２０】この発明の第１１の実施の形態におけるロボット制御装置の処理の流れを示すフローチャートである。
【符号の説明】
１０１  ロボット
１０２  ロボット制御装置
１０３  記憶部
１１０  教示装置
１１１  通信装置
１１２  中央処理装置
１１３  記憶装置
１１４  入力装置
１１５  表示装置
４００  命令の入力画面
４１０  動作速度の設定項目
４２０  教示点名の設定項目
４５０  ＯＫボタン
４６０  キャンセルボタン
５００  ステップ（ａ１）
５０１  ステップ（ａ２）
５１０  ステップ（ａ３）
５２０  ステップ（ａ４）
５３０  ステップ（ａ５）
５４０  ステップ（ａ６）
５５０  ステップ（ａ７）
５６０  ステップ（ａ８）
５６１  ステップ（ａ９）
５７０  ステップ（ａ１０）
６００  命令の入力画面
６１０  動作速度の設定項目
７００  ステップ（ｂ１）
７０１  ステップ（ｂ２）
７１０  ステップ（ｂ３）
７２０  ステップ（ｂ４）
７２１  ステップ（ｂ５）
７３０  ステップ（ｂ６）
７４０  ステップ（ｂ７）
７５０  ステップ（ｂ８）
８００  ステップ（ｃ１）
８０１  ステップ（ｃ２）
８１０  ステップ（ｃ３）
８２０  ステップ（ｃ４）
８３０  ステップ（ｃ５）
８４０  ステップ（ｃ６）
８５０  ステップ（ｃ７）
８６０  ステップ（ｃ８）
８６１  ステップ（ｃ９）
８６２  ステップ（ｃ１０）
８６３  ステップ（ｃ１１）
８７０  ステップ（ｃ１２）
１１００  ステップ（ｄ１）
１１０１  ステップ（ｄ２）
１１１０  ステップ（ｄ３）
１１２０  ステップ（ｄ４）
１１３０  ステップ（ｄ５）
１１４０  ステップ（ｄ６）
１１５０  ステップ（ｄ７）
１１６０  ステップ（ｄ８）
１１６１  ステップ（ｄ９）
１１６２  ステップ（ｄ１０）
１１６３  ステップ（ｄ１１）
１１７０  ステップ（ｄ１２）
１３００  ステップ（ｅ１）
１３０１  ステップ（ｅ２）
１３１０  ステップ（ｅ３）
１３１１  ステップ（ｅ４）
１３１２  ステップ（ｅ５）
１３１５  ステップ（ｅ６）
１３２０  ステップ（ｅ７）
１３３０  ステップ（ｅ８）
１３４０  ステップ（ｅ９）
１４００  ステップ（ｆ１）
１４０１  ステップ（ｆ２）
１４０２  ステップ（ｆ３）
１４０５  ステップ（ｆ４）
１４０６  ステップ（ｆ５）
１４１０  ステップ（ｆ６）
１４１１  ステップ（ｆ７）
１４１２  ステップ（ｆ８）
１４１５  ステップ（ｆ９）
１４１６  ステップ（ｆ１０）
１４１７  ステップ（ｆ１１）
１４２０  ステップ（ｆ１２）
１４３０  ステップ（ｆ１３）
１４４０  ステップ（ｆ１４）
１５００  ステップ（ｆ１）
１５０１  ステップ（ｆ２）
１５１０  ステップ（ｆ３）
１５１１  ステップ（ｆ４）
１５１５  ステップ（ｆ５）
１５２０  ステップ（ｆ６）
１５３０  ステップ（ｆ７）
１５４０  ステップ（ｆ８）
１７００  ステップ（ｇ１）
１７０１  ステップ（ｇ２）
１７１０  ステップ（ｇ３）
１７１１  ステップ（ｇ４）
１７１７  ステップ（ｇ５）
１７２０  ステップ（ｇ６）
１７３０  ステップ（ｇ７）
１７４０  ステップ（ｇ８）
１９０１  センサ
２０００  ステップ（ｈ１）
２００１  ステップ（ｈ２）
２０１０  ステップ（ｈ３）
２０１５  ステップ（ｈ４）
２０１６  ステップ（ｈ５）
２０１７  ステップ（ｈ６）
２０１１  ステップ（ｈ７）
２０１２  ステップ（ｈ８）
２０２０  ステップ（ｈ９）
２０３０  ステップ（ｈ１０）
２０４０  ステップ（ｈ１１）
【図１】
0003912973.tif 000002
【図２】
0003912973.tif 000003
【図３】
0003912973.tif 000004
【図４】
0003912973.tif 000005
【図５】
0003912973.tif 000006
【図６】
0003912973.tif 000007
【図７】
0003912973.tif 000008
【図８】
0003912973.tif 000009
【図９】
0003912973.tif 000010
【図１０】
0003912973.tif 000011
【図１１】
0003912973.tif 000012
【図１２】
0003912973.tif 000013
【図１３】
0003912973.tif 000014
【図１４】
0003912973.tif 000015
【図１５】
0003912973.tif 000016
【図１６】
0003912973.tif 000017
【図１７】
0003912973.tif 000018
【図１８】
0003912973.tif 000019
【図１９】
0003912973.tif 000020
【図２０】
0003912973.tif 000021