(57)【要約】【課題】溶接開始位置を示す命令から溶接終了を示す命令までの区間で定義されるプログラムブロックを複数記憶する教示プログラムの修正作業時、本来修正を望むプログラムブロックを一度の操作で一括して修正できないため、修正に時間がかかり、生産開始までに時間を要し、あるいは修正抜けが生じることで溶接作業が改善されず生産性が思うように上がらないという課題があった。【解決手段】教示プログラムにおいて複数のプログラムブロックを定義し、各プログラムブロックに識別子を付与し、本来修正を望むプログラムブロックについて同じ識別子を記憶したプログラムブロックを特定し、同じ識別子を記憶したプログラムブロックについて一括してプログラム内容を修正する。【選択図】図９
2012048517.tif 000002
【特許請求の範囲】
【請求項１】
溶接の開始点を指定する命令と、溶接の終了点を指定する命令と、アークの発生を指示する命令と、アークの停止を指示する命令と、溶接電流や溶接電圧や溶接速度といった溶接条件項目を含む溶接条件と、を各々複数有する溶接教示プログラムの変更方法であって、
前記溶接教示プログラムは、溶接の開始点を指定する命令から時系列的に後で最も近くにあるアークの停止を指示する命令までを一つのプログラムブロックとして識別子を付し、第１の識別子を付した複数のプログラムブロックと、前記第１の識別子とは異なる第２の識別子を付した複数のプログラムブロックを備え、
プログラムブロックの識別子を決定するステップと、
溶接条件のうちから前記溶接条件項目を決定するステップと、
決定した溶接条件項目の修正後の情報を決定するステップと、
決定された識別子が付されているプログラムブロック全てについて決定された溶接条件項目の情報を決定された前記修正後の情報に修正するステップと、
を備えた溶接教示プログラムの変更方法。
【請求項２】
プログラムブロックに付される識別子は、文字列からなる名称である請求項１記載の溶接教示プログラムの変更方法。
【請求項３】
溶接の開始点を指定する命令と、溶接の終了点を指定する命令と、アークの発生を指示する命令と、アークの停止を指示する命令と、溶接電流や溶接電圧や溶接速度といった溶接条件項目を含む溶接条件と、を各々複数有し、溶接の開始点を指定する命令から時系列的に後で最も近くにあるアークの停止を指示する命令までを一つのプログラムブロックとして識別子を付し、第１の識別子を付した複数のプログラムブロックと、前記第１の識別子とは異なる第２の識別子を付した複数のプログラムブロックを備えた溶接教示プログラムを記憶する記憶部と、
プログラムブロックの識別子を入力する識別子入力部と、
溶接条件のうちから溶接条件項目を入力する溶接条件項目入力部と、
前記溶接条件項目入力部で入力した溶接条件項目の修正後の情報を入力する情報入力部と、
前記識別子入力部で入力した識別子が付されているプログラムブロック全てについて前記溶接条件項目入力部で入力した溶接条件項目の情報を前記情報入力部で入力した情報に修正する制御部と、
を備えたロボット制御装置。
【請求項４】
プログラムブロックに付される識別子は、文字列からなる名称である請求項３記載のロボット制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、教示プログラムに基づいて動作を行うアーク溶接ロボットの教示プログラムの変更方法およびロボット制御装置に関する。
【背景技術】
【０００２】
図１は、溶接対象物の溶接に関して溶接位置の教示を行うアーク溶接ロボットの概略構成を示す図である。図１に示すアーク溶接ロボットは主に、ロボット制御装置１０１と、ロボット制御装置１０１に接続されロボット制御装置１０１により制御されるマニピュレータ１０２と、ロボット制御装置１０１に接続され溶接出力を行う溶接電源１０３から構成される。そして、アーク溶接ロボットの使用者は、教示プログラムと呼ばれるプログラムをロボット制御装置１０１に対して作成し、ロボット制御装置１０１内に保存する。この教示プログラムに基づいて、ロボット制御装置１０１は、マニピュレータ１０２や溶接電源１０３へ動作指令を与える。
【０００３】
図２は、教示プログラムの作成及び編集を行う従来のロボット制御装置１０１のブロック図である。図２において、ロボット制御装置１０１は、アーク溶接ロボットの制御を行う中央処理部２０１と、アーク溶接ロボットの使用者が、マニピュレータ１０２や溶接電源１０３に対する動作指令を教示プログラムとして教示するための、あるいは、教示プログラムに対して教示点や作業用命令の編集を行うための操作の入力を制御する入力制御部２０２と、使用者への教示プログラムの表示や操作内容の表示やロボット制御装置１０１の設定の表示や中央処理部２０１の制御内容の表示やロボット運転時の教示プログラムの実効内容の表示の制御や表示を行う表示制御部２０３と、使用者が作成した教示プログラムを格納するための教示プログラム記憶部２０４と、アーク溶接ロボットの制御を行うロボット制御プログラムを格納するための制御プログラム記憶部２０５と、マニピュレータ１０２の動作を制御するためのロボット制御部２０６と、溶接電源１０３の動作や溶接電源１０３が備える溶接用ガスの開閉制御回路（図示せず）等の動作を制御する溶接電源制御部２０７を備えている。
【０００４】
例えば、ティーチングプレイバック方式のアーク溶接ロボットを用いて溶接作業を行わせる場合、アーク溶接ロボットの使用者は、ロボット制御装置１０１の入力制御部２０２を介して、溶接を行う位置や溶接作業終了後の待避のための位置へマニピュレータ１０２を移動させたり、教示プログラムとして教示位置を入力したり、溶接電源１０３への溶接時の電流や電圧の指令値を教示プログラムへロボット用の命令として教示したりする。
【０００５】
なお、アーク溶接作業をアーク溶接ロボットに行わせる場合には、溶接作業の開始位置と終了位置において、以下に示すアーク溶接作業固有の操作を教示する。
【０００６】
溶接作業の開始位置では、溶接箇所の開始位置として教示位置に対して溶接位置を示す固有の命令と、溶接電源１０３の起動および溶接電源１０３が備えた溶接用ガスの開閉制御回路の起動などアークの発生に関する固有の命令と、溶接中の電流や電圧や移動速度を溶接条件として指定する固有の命令を教示する。
【０００７】
また、溶接作業の終了位置では、溶接箇所の終了位置として教示位置に対して以降は溶接箇所ではないことを示す固有の命令と、溶接電源１０３の出力停止および溶接電源１０３が備えた溶接用ガスの開閉制御回路の停止などアークの停止に関する固有の命令と、溶接終了時の電流や電圧や移動速度を溶接条件として指定する固有の命令を教示する。
【０００８】
アーク溶接作業をロボット制御装置１０１に対して教示する場合、使用者が入力制御部２０２を介して命令を教示すると、教示プログラム記憶部２０４へ予め記憶している複数のロボット用の命令について付与された固有の数値コードが中央処理部２０１へ読み込まれ、教示プログラム記憶部２０４内の教示プログラムの記憶領域へ記憶される。アーク溶接ロボットは、前述の教示プログラムに記憶されている命令のコードに従って運転することでアーク溶接作業を行う。
【０００９】
なお、運転時、教示プログラム記憶部２０４に記憶した教示プログラムの命令は、表示制御部２０３により視認可能になっている。
【００１０】
図３に教示プログラムの一例を示す。３０１は、教示プログラムのプログラム名を示す。
【００１１】
３０２で示すＭＯＶＥは、マニピュレータ１０２を移動させる固有の命令であり、直線動作や円弧動作などを指定することができる。なお、ここでは特にその区別はしないものとする。
【００１２】
また、３０３で示すＰ１は、マニピュレータ１０２の移動位置を示すものであり、例えば、溶接を行う場合では、溶接箇所等に相当する。なお、図３において、Ｐ１（３０３）は、溶接を行わない空走箇所を示しており、溶接を行う、もしくは、行わないという情報を、入力制御部２０２を介して付与することが可能である。
【００１３】
また、３０４はマニュピュレータ１０２を移動させる際の移動速度を示している。図３において、溶接区間の移動速度として、マニュピュレータ１０２の最高速度の１．０％ないし２．０％程度が指定される例を示している。そして、溶接を行わない区間では、溶接区間の移動速度として、最高速度である１００％あるいは最高速度の１０．０％が指定される例を示している。
【００１４】
また、ＷＥＬＤ３０５は、溶接電源１０３やマニピュレータ１０２に対する溶接時の溶接条件を指令する固有の命令であり、溶接時の指令電流３０６や指令電圧３０７や溶接中の指令移動速度３０８を設定することができる。
【００１５】
また、ＧＡＳ−ＯＮ３０９は、溶接電源１０３が備えた溶接用ガスの開閉制御回路を起動するための固有の命令である。この命令を実行すると、溶接電源１０３が備えた溶接用ガスの開閉制御回路が動作し、溶接用ガスのバルブ（図示せず）を開放状態とし、溶接ガスの供給を開始する。また、ＧＡＳ−ＯＦＦ３１１は、溶接用ガスの開閉制御回路を停止するための命令である。この命令を実行すると、溶接電源１０３が備えた溶接用ガスの開閉制御回路が動作し、溶接用ガスのバルブ（図示せず）を閉鎖状態とし、溶接ガスの供給を終了する。
【００１６】
また、ＡＲＣ−ＯＮ３１０は、アークの発生を指示するための固有の命令である。この命令を実行すると、ロボット制御装置１０１から溶接電源１０３に対してアーク起動指令（図示せず）が送信され、マニピュレータ１０２に備え付けられたトーチ（図示せず）に電力が供給され、溶接対象物との間でアークが発生し、アーク溶接を開始する。
【００１７】
また、ＡＲＣ−ＯＦＦ３１２は、アークの停止を指示するための固有の命令である。この命令を実行すると、ロボット制御装置１０１から溶接電源１０３に対してアーク停止指令（図示せず）が送信され、マニピュレータ１０２に備え付けられたトーチ（図示せず）への電力供給が停止され、アークが消滅してアーク溶接が終了する。
【００１８】
次に、図４を用いて、溶接対象物の一方である溶接対象上板４０１と、溶接対象物の他方である溶接対象下板４０２について、ポイントＡ４０３→ポイントＢ４０４→ポイントＣ４０５→ポイントＤ４０６→ポイントＥ４０７→ポイントＦ４０８の順に溶接する場合の教示プログラムの作成手順について説明する。
【００１９】
図４において、ポイントＡ４０３からポイントＢ４０４近辺の区間は直線として教示することができるため、移動位置の教示の数は直線の開始点と直線の終了点の２点となる。
【００２０】
次に、ポイントＢ４０４の教示を行うが、ポイントＢ４０４を含み周辺部分はコーナ形状となる。そのため、コーナの頂点となるポイントＢ４０４の付近において、マニピュレータ１０２に取り付けたられた図示しない溶接トーチの溶接時の姿勢を９０°替える必要がある。そして、急激な姿勢変動による溶接作業への影響を避けるため、教示位置を１点以上多く取る必要がある。
【００２１】
コーナの頂点となるポイントＢ４０４に関し、図４よりも拡大して示した教示位置の状態を図５に示す。
【００２２】
図５において、ポイントＡ４０３から教示位置１Ｂ５０１までは前記のとおり直線として教示できる。次に、教示位置１Ｂ５０１から開始し、教示位置２Ｂ５０２までに、溶接時の姿勢を４５°変わるように教示する。次に、教示位置２Ｂ５０２でコーナの頂点となるが、以降の教示位置３Ｂ５０３までの溶接時の姿勢を更に４５°変わるように教示する。故に、教示位置１Ｂ５０１から教示位置２Ｂ５０２までと、教示位置２Ｂ５０２から教示位置３Ｂ５０３まででは、溶接時の姿勢が変わる。そのため、溶接時の指令電流や指令電圧や溶接中の指令移動速度も、姿勢に併せて変える必要がある。
【００２３】
なお、図４におけるポイントＥ４０７は、溶接対象上板４０１と溶接対象下板４０２の間の形状がポイントＢ４０４と同一であり、コーナ形状となっている。そのため、溶接個所や溶接時の指令電流３０６や指令電圧３０７や溶接中の指令移動速度３０８は、ポイントＢ４０４に関するものと同一にすることが可能である。
【００２４】
このようにして、図４に示す溶接対象上板４０１と溶接対象下板４０２の溶接について、使用者が入力制御部２０２を介して命令を教示した教示プログラムの一例を図６に示す。
【００２５】
図６は、マニピュレータ１０２が現在位置から溶接個所までの区間を移動することを教示した移動命令ＭＯＶＥ６０８や、溶接対象の準備待ちのための一時停止を指令する固有の命令ＷＡＩＴ６０９のように、溶接作業の動作には直接影響しない命令で構成された非溶接個所に関する部分と、溶接作業を教示した溶接個所に関する部分で構成されている。
【００２６】
また、溶接個所については、プログラムのブロックＡ６０１からブロックＧ６０７で構成され、ブロックＡ６０１は、ポイントＡ４０３を溶接開始点として教示位置１Ｂ５０１を溶接終了点として教示した区間のプログラムブロックを示す。
【００２７】
ここで、便宜上、教示した区間のうち教示の開始位置から終了位置までを１つのブロックとみなし、前述のようにブロックと呼ぶ。そして、先頭のブロックであるブロックＡ６０１から時系列順に番号を付与して説明する。
【００２８】
ブロックＢ６０２は、教示位置１Ｂ５０１から教示位置２Ｂ５０２を経由して教示位置３Ｂ５０３までで構成されるコーナ部分の溶接を教示したブロックを示している。また、ブロックＣ６０３は、教示位置３Ｂ５０３からポイントＣ４０５までを教示したブロックを示している。また、ブロックＤ６０４は、ポイントＣ４０５からポイントＤ６０４までを教示したブロックを示している。また、ブロックＥ６０５は、ポイントＤ４０６からポイントＥ４０７までを教示したブロックを示している。また、ブロックＦ６０６は、ポイントＥ４０７のコーナ部分を教示したブロックを示している。また、ブロックＧ６０７は、ポイントＥ４０７から最終教示位置のポイントＦ４０８までを教示したブロックを示している。
【００２９】
なお、ブロックＦ６０６は、先に述べたように、ポイントＥ４０７がポイントＢ４０４と類似した形状であるという特徴をもつため、教示位置の数や溶接条件命令ＷＥＬＤの指令電流３０６や指令電圧３０７や溶接中の指令移動速度３０８の教示は、ブロックＢ６０２と同じになっている。
【００３０】
図６に示した溶接作業を教示した教示プログラムにおいて、教示の開始位置から終了位置までで構成されたブロックＡ６０１からブロックＦ６０６は、いずれのブロックも、ブロックＢ６０２を一例として挙げると、溶接開始位置として教示された移動命令ＭＯＶＥ６１０からアークの停止を指示するための命令ＡＲＣ−ＯＦＦ６１９までで教示されていることが特徴として挙げられる。
【００３１】
一方、溶接対象物の配置によって、マニピュレータ１０２の現在位置および溶接終了時の位置や、溶接対象物の形状や溶接箇所の位置が変わる。そして、溶接作業以外の溶接対象物への作業、例えば、アーク溶接ロボット以外の装置（図示せず）により実施される溶接対象物の設置や溶接作業後の移動や溶接作業以外の作業の実施によって、マニピュレータ１０２の現在位置から溶接箇所までの区間を移動することを教示した移動命令ＭＯＶＥ６０８や、溶接対象物の準備待ちのための一時停止を指令する固有の命令ＷＡＩＴ６０９のような溶接作業の動作には直接影響しない命令も教示される。そのため、教示プログラム内で教示位置や命令の数や教示する命令の種類を特定することは難しい。そして、溶接箇所以外の箇所では、溶接開始位置として教示された移動命令ＭＯＶＥからアークの停止を指示するための命令ＡＲＣ−ＯＦＦまでで表される溶接箇所のように、ブロックを単位として括ることができないことも特徴として挙げられる。
【００３２】
なお、ティーチングプレイバック方式のアーク溶接ロボットを用いて溶接作業を行わせる場合、教示プログラムを新規作成するよりも、既に作成した教示プログラムにおいて溶接個所となる教示位置の修正や溶接中の電流や電圧や移動速度の変更に伴う溶接条件命令の修正を行って教示プログラムを作成する機会が多い。
【００３３】
特に、アーク溶接作業をアーク溶接ロボットに行わせる場合、溶接対象物が、材質や形状のばらつきを持つケースが少なくない。これらの溶接対象物について、教示プログラムの溶接条件命令ＷＥＬＤの指令電流や指令電圧や指令移動速度を修正して対応することが多い。
【００３４】
また、例えば、図４や図５に示すポイントＢ４０４やポイントＥ４０７といったコーナ部分については、一度溶接作業を実施し、作業後の溶接対象物について、形状の目視や検査機器（図示せず）等によって溶接状態の確認を行う。そして、その確認結果を溶接時の指令電流３０６や指令電圧３０７や溶接中の指令移動速度３０８へ反映させることにより、次の溶接作業および作業後の溶接対象の外観形状が良くなることがある。
【００３５】
そこで、上述したような教示プログラムの修正について、従来の修正方法を図６に示す教示プログラムを例に挙げて、従来の教示プログラムの作成及び編集を行うロボット制御装置１０１について検討する。
【００３６】
上記ロボット制御装置１０１の教示プログラムは、一例として図６のようなブロック単位の溶接個所と、ブロック単位で無い非溶接個所で構成されている。教示プログラムの修正に関し、連続した点や溶接区間において、溶接時の指令電流や指令電圧や溶接中の指令移動速度のいずれか、または、全てを、同じ量だけ修正する場合、修正したい点の数だけ操作を行わなければならないという問題があった。
【００３７】
一例として、図４や図５に示すポイントＢ４０４とポイントＥ４０７のコーナ部分について、溶接時の指令電流を５Ａ（アンペア）低く設定する必要がある場合について説明する。この場合、ブロックＢ６０２内の溶接条件命令ＷＥＬＤ６１１と、溶接条件命令ＷＥＬＤ６１５と、溶接条件命令ＷＥＬＤ６１７と、ブロックＦ６０６内の溶接条件命令ＷＥＬＤ６２０と、溶接条件命令ＷＥＬＤ６２１と、溶接条件命令ＷＥＬＤ６２２、の合計６箇所の溶接条件命令ＷＥＬＤを修正しなければならない。
【００３８】
そこで、教示プログラムの修正を簡単に行う方法が提案されている。例えば、教示プログラムの修正開始点と修正終了点と修正するデータを入力してプログラムを一括修正するロボットの制御装置が知られている（例えば、特許文献１参照）。
【先行技術文献】
【特許文献】
【００３９】
【特許文献１】特開昭６２−２９３３１３号公報
【発明の概要】
【発明が解決しようとする課題】
【００４０】
しかしながら、上記従来のロボット制御装置１０１では、教示プログラムを一括して修正する場合、教示プログラムの修正開始点、修正終了点、修正データを入力することで修正を指定する。そのため、前記一例として挙げた図４や図５のポイントＢ４０４およびポイントＥ４０７のコーナ部分について、溶接時の指令電流を５Ａ低く設定する場合では、ブロックＢ６０２の溶接開始点への移動命令ＭＯＶＥ６１０を修正開始点、ブロックＦ６０６の溶接電源１０３を停止するための命令ＡＲＣ−ＯＦＦ６２３を修正終了点、溶接条件命令ＷＥＬＤを修正データとして入力することとなる。このように設定し、一括して修正すると、ブロックＢ６０２とブロックＦ６０６の溶接条件命令ＷＥＬＤ以外に、ブロックＣ６０３とブロックＤ６０４とブロックＥ６０５の溶接条件命令ＷＥＬＤも全て修正されてしまう。
【００４１】
このように、アーク溶接作業をアーク溶接ロボットに行わせる教示プログラムでは、教示プログラム中に同様の溶接条件命令ＷＥＬＤを持つブロックが複数存在することが多いため、一度の操作で特定のブロックに限定して溶接条件命令ＷＥＬＤの修正を施すことは困難であった。
【００４２】
また、一括して溶接条件を修正することで、本来修正したいブロックの溶接条件命令ＷＥＬＤ以外の他のブロックの溶接条件命令ＷＥＬＤまでも修正されてしまい、修正後、他のブロックの溶接条件命令ＷＥＬＤについては再修正を実施しなければならなかった。
【００４３】
いずれの場合も、修正範囲の間違いや再修正の実施忘れによって、本来、使用者が意図した溶接条件の修正とはならず、溶接作業が意図した作業内容と異なることから、生産性が思うように上がらないといった課題があった。
【００４４】
また、溶接欠陥を生じてしまうことによる品質の悪化や、教示プログラムに教示された溶接条件について全て見直しを行う必要が生じる可能性を含んでいた。
【００４５】
他方で、再修正を回避するためには、前記修正開始点と修正終了点と修正データの設定を教示プログラムのブロック単位ごとに実施するという方法が考えられる。しかし、この方法では、複数のブロックごとの設定が必要となるため、修正に工数を要し、修正のつど生産開始までの時間が延びるという課題がある。
【００４６】
本発明は、上記従来の課題に鑑み、教示プログラムの溶接開始点の移動命令からアークの停止を指示する命令までの範囲で定義されるプログラムブロックについて、一度の操作で、複数個のプログラムブロックの修正を行うことを可能にする溶接動作プログラムの変更方法およびロボット制御装置を提供することを目的とする。
【課題を解決するための手段】
【００４７】
上記課題を解決するために、本発明の溶接教示プログラムの変更方法は、溶接の開始点を指定する命令と、溶接の終了点を指定する命令と、アークの発生を指示する命令と、アークの停止を指示する命令と、溶接電流や溶接電圧や溶接速度といった溶接条件項目を含む溶接条件と、を各々複数有する溶接教示プログラムの変更方法であって、前記溶接教示プログラムは、溶接の開始点を指定する命令から時系列的に後で最も近くにあるアークの停止を指示する命令までを一つのプログラムブロックとして識別子を付し、第１の識別子を付した複数のプログラムブロックと、前記第１の識別子とは異なる第２の識別子を付した複数のプログラムブロックを備え、プログラムブロックの識別子を決定するステップと、溶接条件のうちから前記溶接条件項目を決定するステップと、決定した溶接条件項目の修正後の情報を決定するステップと、決定された識別子が付されているプログラムブロック全てについて決定された溶接条件項目の情報を決定された前記修正後の情報に修正するステップと、を備えたものである。
【００４８】
また、本発明の溶接教示プログラムの変更方法は、上記に加えて、プログラムブロックに付される識別子を、文字列からなる名称としたものである。
【００４９】
また、本発明のロボット制御装置は、溶接の開始点を指定する命令と、溶接の終了点を指定する命令と、アークの発生を指示する命令と、アークの停止を指示する命令と、溶接電流や溶接電圧や溶接速度といった溶接条件項目を含む溶接条件と、を各々複数有し、溶接の開始点を指定する命令から時系列的に後で最も近くにあるアークの停止を指示する命令までを一つのプログラムブロックとして識別子を付し、第１の識別子を付した複数のプログラムブロックと、前記第１の識別子とは異なる第２の識別子を付した複数のプログラムブロックを備えた溶接教示プログラムを記憶する記憶部と、プログラムブロックの識別子を入力する識別子入力部と、溶接条件のうちから溶接条件項目を入力する溶接条件項目入力部と、前記溶接条件項目入力部で入力した溶接条件項目の修正後の情報を入力する情報入力部と、前記識別子入力部で入力した識別子が付されているプログラムブロック全てについて前記溶接条件項目入力部で入力した溶接条件項目の情報を前記情報入力部で入力した情報に修正する制御部と、を備えたものである。
【００５０】
また、本発明のロボット制御装置は、上記に加えて、プログラムブロックに付される識別子を、文字列からなる名称としたものである。
【発明の効果】
【００５１】
本発明によれば、教示プログラムにおいて複数のプログラムブロックを定義し、各プログラムブロックに識別子を付与し、プログラムブロックの内容を修正する際に同じ識別子が付されたプログラムブロックを特定し、同じ識別子を記憶したプログラムブロックについて一括してプログラムの修正を可能とすることで、修正に要する時間を短縮することができる。
【図面の簡単な説明】
【００５２】
【図１】アーク溶接ロボットの概略構成を示す図
【図２】ロボット制御装置の概略構成を示す図
【図３】動作プログラムの一例を示す図
【図４】溶接対象物の概略構成を示す図
【図５】溶接対象物のコーナ部分の概略構成を示す図
【図６】溶接対象物について作成した動作プログラムの一例を示す図
【図７】本発明の実施の形態１におけるロボット制御装置の概略構成を示す図
【図８】本発明の実施の形態１における識別子の入力画面の一例を示す図
【図９】本発明の実施の形態１における動作プログラムの一例を示す図
【図１０】プログラムブロックを特定し、識別子の重複を判別するステップを説明するためのフローチャート
【図１１】プログラムブロック情報テーブルの一例を示す図
【図１２】本発明の実施の形態１における溶接条件の変更時、識別子を検索し、同じ識別子の溶接条件を変更するステップを説明するためのフローチャート
【図１３】本発明の実施の形態２における識別子の名称の入力画面の一例を示す図
【図１４】本発明の実施の形態２における識別子の名称の入力画面の一例を示す図
【図１５】本発明の実施の形態２における動作プログラムの一例を示す図
【図１６】本発明の実施の形態２におけるプログラムブロック情報テーブルの一例を示す図
【図１７】本発明の実施の形態２におけるプログラムブロック情報テーブルと識別子の名称を関連付けたテーブルの一例を示す図
【発明を実施するための形態】
【００５３】
（実施の形態１）
本実施の形態について、図７から図１３を用いて説明する。
【００５４】
図７は、図１に示すアーク溶接ロボットの構成要素の１つであり、教示プログラムの作成や編集等を行うロボット制御装置１０１の概略構成を示す図である。
【００５５】
ロボット制御装置１０１は、アーク溶接ロボットの制御を行う中央処理部７０１と、アーク溶接ロボットの使用者がマニピュレータ１０２や溶接電源１０３に対する動作指令を教示プログラムへ教示するための入力、あるいは、教示プログラムに対して教示点や作業用命令の編集を行うための操作の入力を制御する入力制御部７０２と、使用者に対して教示プログラムの表示や操作内容の表示やロボット制御装置１０１の設定の表示や中央処理部７０１の制御内容の表示やロボット運転時の教示プログラムの実効内容の表示の制御や表示を行う表示制御部７０３と、使用者が作成した教示プログラムを格納するための教示プログラム記憶部７０４と、アーク溶接ロボットの制御を行うロボット制御プログラムを格納するための制御プログラム記憶部７０５と、マニピュレータ１０２を制御するためのロボット制御部７０６と、溶接電源１０３の動作の制御や溶接電源１０３が備える溶接用ガスの開閉制御回路等の動作を制御する溶接電源制御部７０７を備えている。
【００５６】
さらに、ロボット制御装置１０１は、アーク溶接ロボットの使用者が、後述するプログラムブロックの識別子を入力する手段と、教示プログラムに構成された溶接開始命令から溶接終了命令までの区間で表されるプログラムブロックの溶接開始位置へ移動する命令の前に入力される識別子を付与する手段と、教示プログラム内の命令を検索するための教示プログラム内での位置を記憶する手段と、教示プログラム内の識別子が付与されたブロックについて溶接開始点への移動命令からアークの停止指令命令までの区間をプログラムブロックとして特定する手段と、を有する識別子制御部７０８を備えている。また、溶接電源１０３への溶接時の指令電流や指令電圧や指令移動速度で表される溶接条件のいずれか、もしくは、複数の項目を入力する手段を有する溶接条件入力部７０９を備えている。また、溶接条件入力部７０９により入力した情報と識別子とを関連付けて教示プログラム記憶部７０４へ記憶する手段と、溶接条件入力部７０９で入力した溶接条件を含んだプログラムブロックと同じ識別子を記憶しているプログラムブロックについて溶接条件入力部７０９で入力した溶接条件に修正する手段と、前述の修正を実行したプログラムブロックの識別子の記憶位置を一時的に記憶する手段と、を有する溶接条件修正制御部７１０を備えている。
【００５７】
図８は、識別子制御部７０８が有するアーク溶接ロボットの使用者が識別子を入力する手段の一例である入力画面例を示す図であり、表示制御部７０３を介してロボットの使用者に対して視認可能に表示する。アーク溶接ロボットの使用者は、入力制御部７０２を介して、教示プログラムの各プログラムブロックの識別子を入力して記憶する。なお、ロボットの使用者が識別子を入力する一例について、図６の教示プログラムに識別子を付与する場合を例に説明する。
【００５８】
図９は、図６に示す教示プログラムの各プログラムブロックに対し、識別子を付与した例を示す図である。なお、識別子の付与は、教示プログラムに教示されている溶接開始位置への移動命令を選択する操作から始まる。
【００５９】
具体的には、図６のブロックＢ６０２における溶接開始位置への移動命令６１０を入力制御部７０２を用いて選択すると、識別子制御部７０８は表示制御部７０３に対して図８に示す識別子入力画面を表示させる。
【００６０】
ロボットの使用者が、図８の識別子入力画面において、ＢｌｏｃｋＡ８０１からＢｌｏｃｋＩ８０３までの項目のいずれか、例えば、入力制御部７０２を介してＢｌｏｃｋＢ８０２を選択する。そして、図８の識別子入力画面に用意されたＯＫ８０４を選択すると、溶接開始位置への移動命令６０１と一時停止を指令する固有の命令ＷＡＩＴ６０９の間に、図８の識別子入力画面において選択したＢｌｏｃｋＢ８０２が識別子ＢｌｏｃｋＢ９０２として記憶される。
【００６１】
図９に示す教示プログラムにおいて、ＢｌｏｃｋＡ９０１は、図６に示すブロックＡ６０１に対して図８に示す識別子入力画面のＢｌｏｃｋＡ８０１を選択して付与された識別子を示す。
【００６２】
また、図９において、ＢｌｏｃｋＢ９０２は、ブロックＢ６０２に対して付与された識別子であり、ＢｌｏｃｋＢ９０３は、ブロックＦ６０６に対して付与された識別子である。これらＢｌｏｃｋＢ９０２とＢｌｏｃｋＢ９０３に関し、ブロックＦ６０６とブロックＢ６０２とは同じ設定および教示プログラムの構成となっていることから、図８に示す識別子入力画面において、どちらのブロックもＢｌｏｃｋＢ８０２を選択して識別子が付与される。すなわち、どちらのブロックも、同じＢｌｏｃｋＢという識別子が付与される。
【００６３】
次に、ブロックに付与した識別子から溶接開始位置への移動命令とアークの停止を指令する命令を後述の方法により特定する。そして、特定した区間をプログラムブロックとし、プログラムブロック内に教示された溶接条件とともに識別子を教示プログラム記憶部７０４へ記憶する手順について、図９に示す教示プログラムの識別子ＢｌｏｃｋＢ９０２を例にして説明する。
【００６４】
図１０は、ロボット制御装置１０１を構成する識別子制御部７０８の処理の流れを示すフローチャートである。
【００６５】
このフローチャートは、図９に示すように教示プログラム内に教示された識別子ＢｌｏｃｋＢ９０２から溶接開始位置までの移動命令とアークの停止を指令する命令を識別子制御部７０８が検索することで、ブロックに付与した識別子から溶接開始位置への移動命令とアークの停止を指令する命令を特定し、特定した区間をプログラムブロックとして、プログラムブロック内に教示された溶接条件とともに識別子を教示プログラム記憶部７０４へ記憶する処理の流れを示したものである。
【００６６】
使用者が識別子制御部７０８を用いて識別子ＢｌｏｃｋＢ９０２を新たに教示プログラムへ記憶したとき、ステップ１００１から処理を開始する。次に、ステップ１００２に移り、識別子制御部７０８が有する教示プログラム内の命令を検索するための教示プログラム内での位置を記憶する検索位置を先頭行に記憶し、同じ識別子ＢｌｏｃｋＢ９０２がないかを教示プログラム記憶部７０４に記憶されている教示プログラムを検索する。ステップ１００３において、教示プログラム内に同じ識別子があるかどうかを判別する。具体的には、教示プログラム記憶部７０４に記憶された教示プログラムについて、識別子制御部７０８が、教示プログラムの先頭行から最終行までの識別子と、新たに教示プログラムへ記憶した識別子ＢｌｏｃｋＢ９０２とを比較し、一致すれば、教示プログラム記憶部７０４へ既に記憶された識別子として処理を終了し、教示プログラムの最終行までに一致する識別子がなければ教示プログラム記憶部７０４に記憶されていない新規の識別子として判断され、次のステップ１００４へ進む。
【００６７】
例えば、図９において、識別子ＢｌｏｃｋＢ（９０２）を識別子制御部７０８により教示プログラムへ記憶した後に、識別子ＢｌｏｃｋＢ（９０３）を登録した場合、識別子ＢｌｏｃｋＢ（９０２）がすでに登録されているので、処理を終了することとなる。
【００６８】
次に、ステップ１００４において、教示プログラム記憶部７０４内に記憶された教示プログラムについて、識別子制御部７０８により、識別子から時系列的に後方向の最終行までの範囲で、溶接個所への移動命令ＭＯＶＥの検索が実行される。次に、ステップ１００５において、識別子制御部７０８により、溶接個所への移動命令ＭＯＶＥが教示プログラムの最終行までにあるかどうかを判別する。
【００６９】
具体的には、教示プログラム記憶部７０４に記憶されている教示プログラムについて、識別子制御部７０８は、識別子ＢｌｏｃｋＢ９０２以降の命令コードについて時系列的に後方向の最終行までのコードと溶接個所への移動を情報として持つ移動命令ＭＯＶＥのコードと比較し、移動命令ＭＯＶＥと一致する命令コードがなければ、溶接個所への移動命令ＭＯＶＥは教示プログラムに記憶されていないものとして処理を終了する。一方、最終行までに移動命令ＭＯＶＥと一致する命令コードがあると、溶接個所への移動命令ＭＯＶＥは、識別子から時系列的に後方向の最終行までの区間に記憶されていると判断される。また、識別子から時系列的に後方向へ比較することで、最初に一致する溶接個所への移動命令が溶接開始位置への移動命令と判断され、ステップ１００６に移る。
【００７０】
ステップ１００６では、識別子制御部７０８により、教示プログラム記憶部７０４内に記憶された教示プログラムについて、先のステップ１００４で検索した溶接個所への移動命令ＭＯＶＥ、すなわち、ステップ１００５により溶接開始位置への移動命令と判断された移動命令から後方向へ、アークの停止を指令する命令ＡＲＣ−ＯＦＦの検索が行われる。
【００７１】
ステップ１００７において、アークの停止を指令する命令ＡＲＣ−ＯＦＦが教示プログラムの最終行までに記憶されているかどうかを判別する。
【００７２】
以上により、溶接開始への移動位置ＭＯＶＥからアークの停止を指令する命令ＡＲＣ−ＯＦＦまでの区間、つまりプログラムブロックを特定する。
【００７３】
具体的には、ステップ１００４で検索した溶溶接開始位置への移動命令以降の教示プログラム記憶部７０４内に記憶された教示プログラムについて、時系列的に後方向の命令のコードを識別子制御部７０８が１行ずつ読み込み、最終行までの範囲でアークの停止を指令する命令ＡＲＣ−ＯＦＦのコードと比較する。命令ＡＲＣ−ＯＦＦとコードが一致しなければ、教示プログラム内にアークの停止を指令する命令ＡＲＣ−ＯＦＦは記憶されていないと判断される。そして、溶接開始への移動位置ＭＯＶＥからアークの停止を指令する命令ＡＲＣ−ＯＦＦまでの区間を特定することができないと判断されて処理を終了する。一方、最終行までに命令ＡＲＣ−ＯＦＦと一致する命令コードがあれば、教示プログラム内にアークの停止を指令する命令ＡＲＣ−ＯＦＦは溶接開始位置への移動命令より時系列的に後方向に記憶されていると判断できるので、溶接開始への移動位置ＭＯＶＥからアークの停止を指令する命令ＡＲＣ−ＯＦＦまでの区間を特定したと判断することができ、次のステップであるステップ１００８に移る。
【００７４】
ステップ１００８へは、教示プログラム記憶部７０４内に記憶された教示プログラムについて、識別子制御部７０８によりステップ１００７で特定した溶接開始への移動位置ＭＯＶＥからアークの停止を指令する命令ＡＲＣ−ＯＦＦまでの区間がある場合にのみ移行する。従って、ステップ１００８への移行により、溶接開始への移動位置ＭＯＶＥからアークの停止を指令する命令ＡＲＣ−ＯＦＦまでの区間、つまりプログラムブロックが存在するという判断を行うことができる。
【００７５】
なお、以降は、溶接開始への移動位置ＭＯＶＥからアークの停止を指令する命令ＡＲＣ−ＯＦＦまでの区間をプログラムブロックと呼ぶ。
【００７６】
ステップ１００８では、ステップ１００７により特定したプログラムブロックについて、識別子と溶接条件命令ＷＥＬＤまでの命令行数を示す２個以上のＷＥＬＤ登録位置と、入力制御部７０２を介して記憶される２個以上の指令電流および２個以上の指令電圧と、２個以上の溶接速度で構成するプログラムブロック情報テーブルを記憶するための領域が、図７の教示プログラム記憶部７０４へ自動的に作成され、使用者が識別子制御部７０８により教示プログラムへ記憶した識別子ＢｌｏｃｋＢ９０２を教示プログラム記憶部７０４へ記憶する。
【００７７】
図１１は、ステップ１００８を実行した後に教示プログラム記憶部７０４に作成されたテーブル領域の一例を示す概要図である。このテーブルは、使用者が識別子制御部７０８により教示プログラムへ記憶した識別子１１０１で構成される識別子部分１１０９と、入力制御部７０２により記憶される溶接条件命令ＷＥＬＤと識別子までの命令コードの行数を示す２個以上のＷＥＬＤ登録位置１１０２で構成されるＷＥＬＤ登録位置部分１１１０や１１１４と、入力制御部７０２を介して記憶される２個以上の指令電流１１０３で構成される指令電流部分１１１１や１１１５と、入力制御部７０２を介して記憶される２個以上の指令電圧１１０４で構成される指令電圧部分１１１２や１１１６と、入力制御部７０２を介して記憶される２個以上の溶接時の移動速度１１０５で構成される溶接速度部分１１１３や１１１７とで構成される。
【００７８】
なお、ＷＥＬＤ登録位置部分１１１０や指令電流部分１１１１や指令電圧部分１１１２や溶接速度部分１１１３は、ステップ１００８において記憶領域が作成された時点ではそれぞれ２個ずつ作成される。そして、以降のステップで記憶領域を更に作成することで、２個以上の情報を追加して記憶することができる構成となっている。
【００７９】
例えば、図９に示すように、識別子ＢｌｏｃｋＢ９０２を識別子制御部７０８により教示プログラムへ記憶した場合、テーブルへ記憶されたデータが図１１に示すＢｌｏｃｋＢ１１０７であり、識別子ＢｌｏｃｋＢ１１０７には、３個のＷＥＬＤ登録位置１１０２と、３個の指令電流１１０３と、３個の指令電圧９０４と、３個の溶接速度９０５が関連付けられている。
【００８０】
図１２は、識別子制御部７０８が、教示プログラム記憶部７０４に作成したプログラムブロック情報テーブルへ、ＷＥＬＤ登録位置部分１１１０や、指令電流部分１１１１や、指令電圧部分１１１２や、溶接速度部分１１１３を記憶する処理の流れを示すフローチャートである。
【００８１】
具体的には、識別子制御部７０８により識別子を教示プログラムに記憶させ、図１０に示す処理によって教示プログラム記憶部７０４内に図１１に一例を示すプログラム情報テーブルを作成して識別子を記憶したとき、ステップ１２０１から処理を開始し、ステップ１２０２に移る。
【００８２】
ステップ１２０２では、教示プログラム記憶部７０４内に記憶された教示プログラムについて、識別子制御部７０８が備える教示プログラム内の検索位置を図１０のステップ１００８で記憶した識別子の位置として記憶し、ステップ１２０３に移る。
【００８３】
ステップ１２０３では、ステップ１２０２で記憶した検索位置から時系列的に後方向に記憶しているアークを停止させる命令ＡＲＣ−ＯＦＦまでの区間、つまりステップ１００８で記憶した識別子が付与されたプログラムブロックについて、溶接条件命令ＷＥＬＤを検索する。ステップ１２０４では、図１０のステップ１００８で記憶した識別子から時系列的に後方のアークを停止させる命令ＡＲＣ−ＯＦＦまでの区間に、溶接条件命令ＷＥＬＤがあるかどうかを判別することで、図１０のステップ１００８で記憶した識別子が付与されたプログラムブロック内の溶接条件命令ＷＥＬＤの有無を判別する。
【００８４】
具体的には、教示プログラム記憶部７０４内の教示プログラムについて、検索位置から時系列的に後方へ１行ずつ教示プログラム記憶部７０４から教示プログラムに記憶されている命令コードを識別子制御部７０８が読み込み、溶接条件命令ＷＥＬＤと比較する。そして、時系列的に後方向の溶接終了条件命令ＡＲＣ−ＯＦＦまでに溶接条件命令ＷＥＬＤと一致するコードがなければ、溶接条件命令ＷＥＬＤは無いと判別し処理を終了する。一方、時系列的に後方向の溶接終了条件命令ＡＲＣ−ＯＦＦまでに溶接条件命令ＷＥＬＤと一致すする命令コードがあれば、溶接条件命令ＷＥＬＤがあると判別して次のステップ１２０５へ進む。
【００８５】
次に、ステップ１２０５において、図１１に一例を示すプログラム情報テーブルについて、ステップ１００８で記憶した識別子と同じ行に記憶されている指令電流と指令電圧と溶接時の指令移動速度と、ステップ１２０３で検索した溶接条件命令ＷＥＬＤについて溶接条件入力部７０９を介して入力された指令電流と指令電圧と溶接時の指令移動速度を表す溶接条件とを比較する。
【００８６】
ステップ１２０６において、図１１に一例を示すプログラム情報テーブルについて、ステップ１００８で記憶した識別子と同じ行に記憶されている指令電流と指令電圧と溶接時の指令移動速度と、ステップ１２０３で検索した溶接条件命令ＷＥＬＤについて溶接条件入力部７０９を介して入力された指令電流と指令電圧と溶接時の指令移動速度を表す溶接条件が同一のデータか否かを判別する。
【００８７】
具体的には、ステップ１２０３で検索した溶接条件命令ＷＥＬＤについて、図１１に一例を示すプログラム情報テーブルから識別子と同じ行に記憶されている指令電流と指令電圧と溶接時の指令移動速度を１データずつ読み込み、溶接条件入力部７０９を介して入力された指令電流と指令電圧と溶接時の指令移動速度と照合する。値が一致すれば、図１１に一例を示すプログラム情報テーブル内のデータと同一として、次のステップ１２０７を実行せずにステップ１２０８へ進む。値が一致しなければ、図１１に一例を示すプログラム情報テーブル内のデータと同一データでないと判断して、新しい溶接条件として次のステップ１２０７へ進む。
【００８８】
次に、ステップ１２０７において、ステップ１２０３で検索した溶接条件命令ＷＥＬＤから識別子までのコードの行数と、溶接条件入力部７０９を介して入力された指令電流と指令電圧と溶接時の指令移動速度を、図１１に一例を示すプログラム情報テーブルに記憶して次のステップ１２０８へ進む。
【００８９】
なお、溶接条件命令ＷＥＬＤから識別子までのコードの行数を記憶するのは、記憶する溶接条件ＷＥＬＤのプログラムブロック内での相対記憶位置を判別するためである。
【００９０】
次にステップ１２０８では、ステップ１２０３で検索した溶接条件命令ＷＥＬＤの時系列的に１行後方向に記憶している命令のコードを検索位置として記憶し、次のステップ１２０９へ進む。
【００９１】
ステップ１２０９では、検索位置の命令のコードがアークの停止を指令する命令ＡＲＣ−ＯＦＦと同じか否かを判別する。アークの停止を指令する命令ＡＲＣ−ＯＦＦと同じあると判別すると、現在の教示プログラム内での検索位置がプログラムブロックの最終行と判別して処理を終了する。一方、アークの停止を指令する命令ＡＲＣ−ＯＦＦと異なると判別すると、現在の教示プログラム内での検索位置がプログラムブロックの最終行ではないと判別し、再びステップ１２０３の溶接条件命令ＷＥＬＤの検索に戻る。
【００９２】
なお、検索位置からアークの停止を指令する命令ＡＲＣ−ＯＦＦまでの区間で溶接条件命令ＷＥＬＤを除く命令を１つ以上記憶している場合で、ステップ１２０８で記憶した検索位置の命令のコードがアークの停止を指令する命令ＡＲＣ−ＯＦＦのコードとステップ１２０９で一致しないケースであっても、ステップ１２０８で記憶した検索位置の命令からアークの停止を指令する命令ＡＲＣ−ＯＦＦまでの区間に溶接条件命令ＷＥＬＤのコードが記憶されていなければ、ステップ１２０４で溶接条件命令ＷＥＬＤのコードがないとして、処理を終了する。
【００９３】
また、図１１に一例を示すプログラム情報テーブルに記憶されている識別子について、溶接条件入力部７０９により溶接条件命令ＷＥＬＤの指令電流と指令電圧と溶接時の指令移動速度が変更された場合、同じ識別子が付与されたプログラムブロックの溶接条件命令の指令電流と指令電圧と溶接時の指令移動速度を、溶接条件入力部７０９により溶接条件命令ＷＥＬＤの指令電流と指令電圧と溶接時の指令移動速度に変更する方法について説明する。具体的には、図９に示す教示プログラムの溶接条件コードＷＥＬＤ９０６の指令電流９０７を、１５５Ａから１８０Ａに変更した手順を例にして説明する。
【００９４】
図１３は、図１１に一例を示すプログラム情報テーブルに記憶されている識別子について、溶接条件入力部７０９により溶接条件命令ＷＥＬＤの指令電流と指令電圧と溶接時の指令移動速度のいずれか、あるいは全てが変更された場合に、変更したプログラムブロックと同じ識別子が付与された別のプログラムブロックの溶接条件命令ＷＥＬＤの指令電流と指令電圧と溶接時の指令移動速度を、溶接条件修正制御部７１０が変更する処理の流れを示すフローチャートである。
【００９５】
使用者が溶接条件入力部７０９を介して、予め記憶されている溶接条件命令ＷＥＬＤの指令電流と指令電圧と溶接時の指令移動速度のいずれか、もしくは全ての入力値を変更したとき、ステップ１３０１から処理を開始し、ステップ１３０２に移る。
【００９６】
ステップ１３０２では、教示プログラム記憶部７０４内に記憶された教示プログラムについて、識別子制御部７０８が備える教示プログラム内の検索位置を、使用者が指令電流と指令電圧と溶接時の指令移動速度のいずれか、もしくは全ての入力値を変更した溶接条件命令ＷＥＬＤの位置として記憶し、ステップ１３０３に移る。
【００９７】
ステップ１３０３では、使用者が溶接条件入力部７０９を介して変更した溶接条件命令ＷＥＬＤ９０６から始まり教示プログラムの時系列的に前方向の溶接終了命令ＡＲＣ−ＯＦＦもしくは１行目までのどちらか先に記憶している区間について、溶接条件修正制御部７１０が教示プログラム記憶部７０４内の識別子を検索し、ステップ１３０４に進む。
【００９８】
ステップ１３０４では、使用者が溶接条件入力部７０９を介して変更した溶接条件命令ＷＥＬＤ９０６から始まり、教示プログラムの時系列的に前方向の溶接終了命令ＡＲＣ−ＯＦＦもしくは１行目までのどちらか先に記憶している区間について、溶接条件修正制御部７１０が教示プログラム記憶部７０４内に識別子が存在するか否か、そして、使用者が溶接条件入力部７０９を介して変更した溶接条件命令ＷＥＬＤ９０６から教示プログラムの時系列的に前方向に命令のコードを読み込み、図８に一例を示した識別子入力画面の識別子のいずれかと一致するか否かを判別する。
【００９９】
図８に一例を示した識別子入力画面の識別子のいずれかと一致しなければ、使用者が溶接条件入力部７０９を介して変更した溶接条件命令ＷＥＬＤ９０６から始まり、教示プログラムの時系列的に前方向の溶接終了命令ＡＲＣ−ＯＦＦもしくは１行目までのどちらか先に記憶している区間では、識別子が存在しないとして処理を終了する。一方、図８に一例を示した識別子入力画面の識別子のいずれかと一致すれば、使用者が溶接条件入力部７０９を介して変更した溶接条件命令ＷＥＬＤ９０６から始まり、教示プログラムの時系列的に前方向の溶接終了命令ＡＲＣ−ＯＦＦもしくは１行目までのどちらか先に記憶している区間で識別子が存在すると判別し、ステップ１３０５に移る。
【０１００】
次に、ステップ１３０５では、ステップ１３０４で判別した識別子が図１１の識別子部分１００９に記憶されている識別子か否かを溶接条件修正制御部７１０が判別する。
【０１０１】
具体的には、使用者が溶接条件入力部７０９を介して変更した溶接条件命令ＷＥＬＤ９０６から教示プログラムの時系列的に前方向に命令のコードを読み込む。そして、図１１に一例を示すプログラム情報テーブルの識別子部分１１０９と１行ずつ照合する。読み込んだ命令のコードがアークの停止を指令する命令ＡＲＣ−ＯＦＦもしくは先頭行と一致するまでのタイミングまでに識別子部分１１０９と一致しなければ、識別子部分１１０９には記憶していない識別子と判別される。溶接条件命令ＷＥＬＤを変更した溶接作業を実施する区間については、他の入力装置で新規に付与された識別子と判別して処理をステップ１００２のプログラムブロック情報テーブルの作成処理へ移り、一致すればステップ１３０４で判別した識別子は図１１のプログラム情報テーブルに記憶済と判別され、次のステップ１３０６へ進む。
【０１０２】
なお、読み込んだ命令のコードがアークの停止を指令する命令ＡＲＣ−ＯＦＦもしくは先頭行と一致するまでのタイミングまでに、識別子部分１１０９と一致しなければ、識別子部分１１０９へは記憶していない識別子と判別される。溶接条件命令ＷＥＬＤを変更した溶接作業を実施する区間については、他の入力装置で新規に付与された識別子と判別する一例としては、使用中のロボット制御装置１０１の入力装置やパソコンなどを用いて識別子を入力し、記憶した教示プログラムを使用中のロボット制御装置１０１で使用する場合がある。
【０１０３】
次に、ステップ１３０６では、ステップ１３０３で検索した識別子を図１１に一例を示すプログラム情報テーブルの識別子部分１００９のどの行に記憶しているか検索する。検索した行のＷＥＬＤ登録位置部分１１１０と使用者が溶接条件入力部７０９を介して変更した溶接条件命令ＷＥＬＤの識別子までの命令行数を比較し、一致するＷＥＬＤ登録位置部分１１１０に付随する指令電流と指令電圧と溶接時の指令移動速度のいずれかを、使用者が溶接条件入力部７０９を介して変更した溶接条件命令ＷＥＬＤの指令電流と指令電圧と溶接時の指令移動速度に変更する。
【０１０４】
具体的には、使用者が溶接条件入力部７０９を介して変更した溶接条件命令ＷＥＬＤは、ステップ１３０５で判別した識別子との命令行数より、図１１に一例を示すプログラム情報テーブルのＷＥＬＤ登録位置と同じ意味を持つ位置を特定できる。従って、図１１に一例を示すプログラム情報テーブルのＷＥＬＤ登録位置部分１１１０と１データずつ比較することで、使用者が溶接条件入力部７０９を介して変更した溶接条件命令ＷＥＬＤがプログラムブロック内に記憶している複数の溶接条件命令において、どの位置に記憶したものか特定できる。そして、一致したＷＥＬＤ登録位置部分１１１０より始まる指令電流と指令電圧と溶接速度、例えば、使用者が溶接条件入力部７０９を介して変更した溶接条件命令ＷＥＬＤのステップ１３０５で判別した識別子までの命令の記憶数が図１１のＷＥＬＤ登録位置１１０８と一致した場合では、１１０６で囲まれた指令電流と指令電圧と溶接速度を使用者が溶接条件入力部７０９を介して変更した溶接条件命令ＷＥＬＤの入力値へ上書きすることで、ステップ１２０６は完了し、ステップ１３０７へ移る。
【０１０５】
次に、ステップ１３０７では、ステップ１３０３で検索した識別子について、教示プログラムの時系列的に前の先頭行までの命令の記憶数を、溶接条件を修正したプログラムブロックの識別子の記憶位置を一時的に記憶する手段として溶接条件修正制御部７１０に備えられた記憶領域である完了リストへ記憶し、ステップ１３０８へ移る。
【０１０６】
ステップ１３０８では、教示プログラムの先頭行を検索位置として記憶し、ステップ１３０９へ移る。
【０１０７】
ステップ１３０９では、教示プログラムの先頭行よりステップ１３０３で検索した識別子を検索してステップ１３１０へ移り、ステップ１３１０ではステップ１３０３で検索した識別子が、ステップ１３０３で検索した識別子自身を除いて、ステップ１３０３で検索した識別子と同じ識別子が教示プログラムの先頭行より最終行までの区間に存在するか否かを判別する。
【０１０８】
具体的には、ステップ１３０３で検索した識別子と、検索位置から教示プログラムの最終行までの区間に記憶している命令のコードとを比較し、一致しなければステップ１３０３で検索した識別子と同じ識別子は教示プログラム内に存在しないと判別され、同じプログラムブロックは教示プログラムに登録していないと判別して処理を終了する。一方、一致すれば、同じ識別子を持つプログラムブロックが存在すると判断し、次のステップ１３１１へ進む。
【０１０９】
この時、ステップ１３０３で検索した識別子自身を除いて、ステップ１３０３で検索した識別子と同じ識別子と、ステップ１３０３で検索した識別子自身を判別するためには、ステップ１３０３で検索した識別子と教示プログラムの先頭行までの命令の記憶数はステップ１３０７にて完了リストへ記憶しているため、ステップ１３０９の識別子の検索時に検索された識別子と、教示プログラムの先頭行までの命令の記憶数と完了リストとを照合することで判別が可能である。
【０１１０】
次に、ステップ１３１１では、ステップ１３０９で検索した識別子が付与されたプログラムブロックについて、溶接条件修正制御部７１０は、教示プログラム記憶部７０４に記憶している溶接条件命令ＷＥＬＤの指令電流と指令電圧と溶接時の指令移動速度に代表される溶接条件を、先のステップ１３０６で上書きした図１１に一例を示すプログラム情報テーブルの指令電流と指令電圧と溶接時の指令移動速度へ変更し、ステップ１３１２へ移る。
【０１１１】
次に、ステップ１３１２では、ステップ１３０９で検索した識別子について、教示プログラムの時系列的に前の先頭行までの命令の記憶数を、溶接条件を修正したプログラムブロックの識別子の記憶位置を一時的に記憶する手段として溶接条件修正制御部７１０に備えられた記憶領域である完了リストへ記憶し、ステップ１３１４へ移る。
【０１１２】
次に、ステップ１３１３では、ステップ１３０９で検索した識別子が付与されたプログラムブロックのアークを停止する命令ＡＲＣ−ＯＦＦを検索し、検索したＡＲＣ−ＯＦＦの次に記憶している命令を識別子制御部７０８が備える教示プログラム内の検索位置に記憶し、ステップ１３１４に移る。なお、プログラムブロックのアークを停止する命令ＡＲＣ−ＯＦＦを検索するステップについては、ステップ１００６とステップ１００７がある。
【０１１３】
次に、ステップ１３１４では、ステップ１３１３で記憶した検索位置が教示プログラムの最終行か否かを判別する。
【０１１４】
具体的には、検索位置に記憶した命令のコードを読み込み、次のコードが無ければ教示プログラムの最終行と判断して処理を終了する。検索位置に記憶した命令のコードの時系列的に後方にコードがあれば、教示プログラムの最終行ではないと判断し、検索位置はステップ１３１３で記憶した命令のコードのままとし、再びステップ１３０９へ進む。
【０１１５】
なお、ステップ１３０９で検索した識別子が付与されたプログラムブロックのアークを停止する命令ＡＲＣ−ＯＦＦの次に記憶しているコードから最終行までの区間に複数の命令を記憶している場合や、ステップ１３０３で検索した識別子と異なる識別子が付与されたプログラムブロックが検索位置より時系列的に後方に教示プログラムに記憶している場合では、検索位置が最終行ではないと判別されてステップ１３０９へ移る。しかし、識別子が存在しないので、ステップ１３０９の次のステップ１３１０で処理を終了する。
【０１１６】
以上のように、本実施の形態によれば、識別子を教示プログラムに記憶することで、溶接開始位置への移動命令のコードとアークの停止を指令する命令のコードの区間で定義することができるプログラムブロックを特定し、特定したプログラムブロックに記憶している識別子を付与し、特定したプログラムブロックに記憶されている溶接条件命令の指令電流や指令電圧や溶接時の指令移動速度を変更した場合に、同じ識別子が付与されたプログラムブロックに記憶した溶接条件命令の指令電流や指令電圧や溶接時の指令移動速度を容易に特定し、特定した溶接条件命令の指令電流や指令電圧や溶接時の指令移動速度を、同じ識別子が付与されたプログラムブロックで同様に変更することができる。
【０１１７】
（実施の形態２）
本実施の形態について、図１４から図１７を用いて説明する。
【０１１８】
実施の形態１で説明したように、教示プログラム記憶部７０４に記憶している教示プログラムに、識別子制御部７０８を介してプログラムブロックの識別子を記憶する場合、本実施の形態では、作業者の視認性を良くするため、識別子制御部７０８を介して教示プログラムに識別子を記憶する時点で、図１４に示す識別子の名称の入力画面を表示制御部７０３に表示する。そして、識別子制御部７０８を介して、図１４に示す登録部分１４０１へ識別子としての名称文字列を入力し、確認のためのＯＫボタン１４０２を選択する。なお、図１４では、名称文字列として登録部分１４０１に「コーナー部入口」と入力した例を示している。これにより、教示プログラム記憶部７０４に対して登録部分１４０１に入力された識別子の名称文字列をコードとして記憶し、教示プログラムにおけるプログラムブロックの識別子の表示を、文字列で表す名称とすることができる。
【０１１９】
このように、識別子を名称文字列のコードとして登録することにより、教示プログラムを表示した際の識別子の作業者への視認性を良くすることができる。
【０１２０】
図１５は、本実施の形態における教示プログラムの一例を示す概要図である。例えば、図６で示したブロックＡ６０１に関し、図１５では、ブロックＡ６０１における溶接開始位置への移動命令の前に、識別子として、名称文字列であるＢＬＯＣＫ＿コーナ前１３０１が登録された場合の表示例を示している。
【０１２１】
このように、プログラムブロックの識別子として文字列を入力して登録可能とし、また、教示プログラムを表示した際に、プログラムブロックの識別子を文字列として表示可能とし、特に、プログラムブロックごとの溶接個所の特徴や作業者固有の呼称を入力して表示可能とすることで、プログラムブロック編集時の作業者の視認性を良くすることができる。
【０１２２】
以下に、プログラムブロックの識別子の設定について説明する。
【０１２３】
図１６は、本実施の形態における、教示プログラム記憶部７０４に作成されるプログラム情報テーブルの一例を示す概要図である。
【０１２４】
実施の形態１において図１１を用いて説明した、識別子制御部７０８を介して記憶した識別子１１０１で構成される識別子部分１１０９と、入力制御部７０２を介して記憶される溶接条件命令ＷＥＬＤと識別子までの命令コードの行数を示す２個以上のＷＥＬＤ登録位置１１０２で構成されるＷＥＬＤ登録位置部分１１１０と、入力制御部７０２を介して記憶される２個以上の指令電流１１０３で構成される指令電流部分１１１１と、２個以上の指令電圧１１０４で構成される指令電圧部分１１１２と、２個以上の溶接速度１１０５で構成される溶接速度部分１１１３と、で構成されたテーブルについて、図１６では、識別子制御部７０８を介して記憶した識別子１１０１で構成される識別子部分１１０９を、識別子番号部分１５０１として構成し、再度、教示プログラム記憶部７０４に記憶する。
【０１２５】
また、図１７は、図１６に示すプログラム情報テーブルとは別に設けられ識別子と名称文字列を記憶するためのテーブルの一例を示す概要図である。
【０１２６】
図１７は、図１６に示すプログラム情報テーブルの識別子番号部分１６０１が記憶した時点で作成される識別子番号部分１７０１と、図１４に示す識別子の名称文字列の入力画面で入力された文字列を記憶するコード部分１７０２とで構成される。
【０１２７】
図１７は、識別子制御部７０８を介して記憶した識別子１１０１で構成される識別子部分１１０９を、図１６のプログラム情報テーブルの識別子番号部分１６０１として、再度、教示プログラム記憶部７０４への記憶の確認のためのＯＫボタン１４０２を使用者が入力制御部７０２により入力したタイミングで作成され、また、同時に、文字列のコード部分１７０２も作成される。
【０１２８】
この時、文字列コード部分１７０２に、図１４に示す登録部分１４０１により入力された識別子の名称文字列のコードを記憶することで、識別子番号部分１６０１と図１４の登録部分１４０１より入力された識別子の名称文字列のコードとを関連付けることができる。
【０１２９】
以上のように、本実施の形態によれば、識別子の登録時に識別子を名称の文字列として入力し、入力した名称の文字列のコードを識別子の固有の番号と関連付けて記憶することで、図１５の教示プログラム例に示すように、入力した文字列を教示プログラムに登録して表示可能とすることで、プログラムブロック編集時の視認性を良くすることができる。また、視認性を良くすることで、作業者が意図しない重複した識別子を記憶してしまうことを回避することができる。
【産業上の利用可能性】
【０１３０】
本発明は、教示プログラムにおいて複数のプログラムブロックを定義し、各プログラムブロックに識別子を付与し、プログラムブロックの内容を修正する際に同じ識別子が付されたプログラムブロックを特定し、同じ識別子を記憶したプログラムブロックについて一括してプログラムの修正を可能とすることで、修正に要する時間を短縮することができ、教示プログラムに基づいて動作を行うアーク溶接ロボットの教示プログラムの変更方法およびロボット制御装置として産業上有用である。
【符号の説明】
【０１３１】
１０１  ロボット制御装置
１０２  マニピュレータ
１０３  溶接電源
６０１  ブロックＡ
６０２  ブロックＢ
６０３  ブロックＣ
６０４  ブロックＤ
６０５  ブロックＥ
６０６  ブロックＦ
７０１  中央処理部
７０２  入力制御部
７０３  表示制御部
７０４  教示プログラム記憶部
７０５  制御プログラム記憶部
７０６  ロボット制御部
７０７  溶接電源制御部
７０８  識別子制御部
７０９  溶接条件入力部
７１０  溶接条件修正制御部
【図１】
2012048517.tif 000003
【図２】
2012048517.tif 000004
【図３】
2012048517.tif 000005
【図４】
2012048517.tif 000006
【図５】
2012048517.tif 000007
【図６】
2012048517.tif 000008
【図７】
2012048517.tif 000009
【図８】
2012048517.tif 000010
【図９】
2012048517.tif 000011
【図１０】
2012048517.tif 000012
【図１１】
2012048517.tif 000013
【図１２】
2012048517.tif 000014
【図１３】
2012048517.tif 000015
【図１４】
2012048517.tif 000016
【図１５】
2012048517.tif 000017
【図１６】
2012048517.tif 000018
【図１７】
2012048517.tif 000019