(58)【調査した分野】(Int.Cl.,DB名)
【背景技術】
【0002】
各種産業用ロボットが普及している。ロボットは、ワークへのネジ締め、溶接及び塗装、ワークの搬送、ワークへの部品の取り付け、並びに半田付け等を用途とする。このロボットは例えば垂直多関節型の移動手段を有し、移動手段には作業ツールが装着される。移動手段と作業ツールはプログラムを実行するコンピュータにより制御される。コンピュータ制御下で作業ツールは所定ポイントに移動して駆動する。
【0003】
プログラムはポイント主体のロボット言語で記述され得る。このプログラムは、ポイントごとのポイントステートメントを配列して成る。ポイントステートメントには、ポイント番号を筆頭とし、ポイント種別情報とポイント座標情報が含まれる。ポイント種別情報は、所謂関数名であり、ポイントに対する作業内容及び移動方法を定義した命令列を特定する。
【0004】
ロボットは、ポイント種別情報が特定する命令列に従って移動手段と作業ツールを制御し、座標情報が示すポイントに作業ツールを向かわせ、当該ポイントに対して作業を実行する。ポイントへの移動及び作業には、各種距離、各種角度、その他各種量等の動作量を示すパラメータが必要である。例えば、ワークに複数のポイントが設定される。各ポイントはネジ締め位置である。電動ドライバである作業ツールは、第1に、各ポイントの上方に位置する。第2に、ネジを回転させつつポイントへ下降する。下降量はネジ長に相当する。この下降量はネジ長で特定されるパラメータで与えられる。
【0005】
ポイントに螺合させるネジは全て同じとは限らない。ポイントごとに異なるネジ長のネジを螺合させる場合もある。ネジを分類すると、ポイントに固有のネジ、同じワークで多用されるネジ、ワーク不問で多用されるネジがある。これらネジによって作業ツールのポイントへの下降量は相違するため、ポイントステートメントの実行ごとに変数を宣言し、変数に適当なパラメータを代入すればよい。しかしながら、この手法において、各ポイントステートメントの実行の度、変数を初期化し直すのは煩雑である。
【0006】
そこで、各種ネジ長を格納したメモリ領域と結びついた各システム変数を予め用意しておくと、ユーザの利便性が増す。例えば、ポイント固有のネジを締める場合、そのネジ長に対する「CondScrewL」というシステム変数を予め用意する。同じワークで多用のネジを締める場合、そのネジ長に対する「ProgScrewL」のシステム変数を予め用意する。ワーク不問で多用のネジを締める場合、そのネジ長に対する「CommongScrewL」のシステム変数を予め用意する。そして、移動方法や作業内容を定義した命令列内で「CondScrewL」、「ProgScrewL」又は「CommongScrewL」のシステム変数を用いる。
【発明の概要】
【発明が解決しようとする課題】
【0008】
「CondScrewL」のシステム変数を用いた命令列、「ProgScrewL」のシステム変数を用いた命令列、及び「CommongScrewL」のシステム変数を用いた命令列は、ネジを締める動作自体は同一である。従って、システム変数を除いてコードは同一といってよい。
【0009】
しかしながら、システム変数が相違するので命令列は別物である。ポイント種別情報で特定される命令列を作成するプログラマーからすれば、システム変数のみが相違する複数の命令列を別々に作成することにより、煩雑な作業が発生する。煩雑な作業はロボットのコストにも繋がる。
【0010】
本発明は、上記のような従来技術の問題点を解決するために提案されたもので、1種類の命令列で複数のパラメータ候補をポイントに応じて代入できるロボットを提供することを目的とする。
【課題を解決するための手段】
【0011】
上記の目的を達成するために、本発明に係るロボットは、ワーク上の複数のポイントに対して作業を実行する作業ツールと、前記作業ツールを前記ポイントに移動させる移動手段と、プログラムに従って前記作業ツールと前記移動手段を制御するコントローラと、を備え、前記コントローラは、当該コントローラによる制御内容を示す種別情報と前記ポイントの座標情報を含むステートメントを前記ポイントごとに並べて成る第1のプログラムを記憶する第1の記憶手段と、前記種別情報で特定され、変数を含んだ命令列により成り、前記制御内容を定義した第2のプログラムを記憶する第2の記憶手段と、1種類の前記変数に対する代入候補である複数のパラメータを記憶する第3の記憶手段と、前記1種類の変数に代入する前記パラメータを前記ステートメントごとに判定する判定部と、前記判定部の判定結果に応じて、前記パラメータが格納されているメモリ領域の1つと前記変数とを前記ステートメントごとに結びつけ直す変更部と、を備え
、前記複数のポイントに対する作業内容はパラメータを除いて同一であり、前記各ステートメントには、同一の前記種別情報を含み、前記コントローラは、前記各ステートメントの実行に際し、同一の前記第2のプログラムを参照すること、を特徴とする。
【0013】
ユーザの操作に応じて前記第1のプログラムを作成及び編集するプログラミングツールを更に備え、前記プログラミングツールは、前記ユーザの操作に応じて前記ステートメントに前記パラメータの特定情報を付帯可能とし、前記判定部は、前記特定情報が付帯するか判定し、前記変更部は、前記特定情報が付帯していると、前記特定情報を示す前記パラメータのメモリ領域を、前記変数に結びつけるようにしてもよい。
【0014】
前記変更部は、前記特定情報がない場合に対応する前記パラメータのメモリ領域を前記変数に結びつけるようにしてもよい。
【0015】
前記特定情報がない場合に対する複数の前記パラメータの1つは、適否を示すフラグが付帯し、前記判定部は、前記特定情報がなく、且つ前記フラグが適用を示すか判定し、前記変更部は、前記特定情報がなく、且つ前記フラグが適用を示す場合に対応する前記パラメータのメモリ領域を前記変数に結びつけるようにしてもよい。
【0016】
前記判定部は、前記特定情報がなく、且つ前記フラグが適用否を示すか判定し、前記変更部は、前記特定情報がなく、且つ前記フラグが適用否を示す場合に対応する前記パラメータのメモリ領域を前記変数に結びつけるようにしてもよい。
【0017】
前記作業ツールは、各ポイントに異なるネジ長のネジを締め付ける電動ドライバであり、前記変数は、ネジ長が代入されるために前記命令列に含まれるようにしてもよい。
【発明の効果】
【0018】
本発明によれば、複数候補から変数に代入するパラメータを判定するため、各種パラメータが存在しても各ポイントに対する作業を共通の命令列で実行でき、プログラマーにとって命令列の作成が簡便となる。
【発明を実施するための形態】
【0020】
(ロボット構成)
以下、本発明に係るロボットの実施形態について図面を参照しつつ詳細に説明する。
図1に示すように、ロボット1は移動手段2とコントローラ3を備える。移動手段2には作業ツール4が装着される。ロボット1は、移動手段2によって所望位置に作業ツール4を位置させ、作業ツール4を駆動させる。本実施形態において、作業ツール4は電動ドライバであり、ワークにネジを締め付ける。
【0021】
移動手段2は、作業ツール4をX軸方向、Y軸方向及びZ軸方向に移動させ、指定されたポイントに作業ツール4を位置させる。X軸方向は、ワークが設置される水平面と平行な軸方向である。Y軸方向は、水平面と平行でX軸と直交する他軸方向である。Z軸方向は高さ方向である。この移動手段2は、作業ツール4をX軸方向に移動させるXリニアスライダ21、作業ツール4をY軸方向に移動させるYリニアスライダ22、作業ツール4をZ軸方向に移動させるZリニアスライダ23を備える。
【0022】
Xリニアスライダ21は、X軸方向に延設されたレール上にYリニアスライダ22を摺設し、X軸方向に走行する無端ベルトにYリニアスライダ22を直交させて固定してなり、無端ベルトをX軸モータで走行させ、Yリニアスライダ22をX軸に沿って移動させる。
【0023】
Yリニアスライダ22は、Y軸方向に延設されたレール上にZリニアスライダ23を摺設し、Y軸方向に走行する無端ベルトにZリニアスライダ23を固定してなり、無端ベルトをY軸モータで走行させ、Zリニアスライダ23をY軸に沿って移動させる。Xリニアスライダ21及びYリニアスライダ22の伝動機構としては、無端ベルトの他、シリンダ、リードスクリュー等の各種アクチュエータを挙げることができる。
【0024】
Zリニアスライダ23は、Z軸に沿った軸を有するアームを備え、このアームの先端に作業ツール4が装着される。このZリニアスライダ23は、例えばラックアンドピニオン機構を有し、ラックをZ軸方向に延設し、当該ラックにアームを固定して構成される。Z軸モータによりピニオンを回転させることで、アームをZ軸方向に移動させる。このZリニアスライダ23により作業ツール4は、Z軸方向を移動する。
【0025】
図2に示すように、コントローラ3は、プロセッサ31とストレージ32とメモリ33と周辺機器とで構成される所謂コンピュータである。周辺機器はモータドライバ34及び操作手段35である。ストレージ32は、メインプログラム6、サブプログラム7及びパラメータ8からなるプログラム類を記憶する。メインプログラム6はメインルーチンであり、サブプログラム7はサブルーチンであり、パラメータ8はサブプログラム7内の変数75の代入候補である。
【0026】
プロセッサ31は、メインプログラム6に従って演算処理及び周辺機器の制御処理を行う。プロセッサ31は、メインプログラム6の実行に際し、サブプログラム7とパラメータ8を適宜参照する。メモリ33には、プログラム類が適宜展開され、またプロセッサ31の演算結果が一時記憶される。モータドライバ34は、プロセッサ31から制御処理の結果として入力される指令信号に従って各モータに電力パルスを供給する。
【0027】
操作手段35は、液晶ディスプレイ等の表示部、並びにマウス、キーボード及びティーチングペンダントにより成る。操作手段35を用いたティーチング操作によって、プログラム類が作成及び編集される。ストレージ32には複数のメインプログラム6が記憶可能である。操作手段35を用いた操作によって、実行するメインプログラム6が選択される。
【0028】
このプログラム類に従ったロボット1の動作を例示する。
図3に示すように、メインプログラム6には、ポイントP1、P2及びP3がワーク上に設定され、各ポイントP1、P2及びP3への移動とネジ締め作業を定義するサブプログラム7が指示されている。但し、サブプログラム7の変数75へ代入する値は、各ポイントP1、P2、P3及びP4で異なっている。ポイントP1には、このポイント固有のネジ長3mmのネジが締められる。ポイントP2には、このポイント固有のネジ長5mmのネジが締められる。ポイントP3は、このワークにおいて多用されるネジ長10mmのネジ、又はワークを問わず多用されるネジ長8mmのネジで締められる。
【0029】
コントローラ3は、各ポイントP1、P2及びP3の直上に順番に作業ツール4を位置させ、作業ツール4の駆動と下降移動を並行させる。但し、コントローラ3は、作業ツール4をポイントP1よりも高さ3mmだけ離れて位置させ、高さ3mm分下降させる。コントローラ3は、作業ツール4をポイントP2よりも高さ5mmだけ離れて位置させ、高さ5mm分下降させる。コントローラ3は、作業ツール4をポイントP3よりも高さ10又は8mmだけ離れて位置させ、高さ10又は8mm分下降させる。
【0030】
(プログラム類の構成)
図4は、メインプログラム6の全体構成を示す模式図である。メインプログラム6には、各ポイントP1〜P3のポイントステートメント61が配列される。ポイントステートメント61は、ポイントの位置と制御内容を示す。このポイントステートメント61には、ポイント番号62を筆頭に、ポイント種別情報63と、ポイント座標情報64を並べられる。一部のポイントステートメント61には、パラメータ番号65が更に並ぶ。
【0031】
ポイント番号62は、ポイントステートメント61がポイント主体の構文であることの宣言及び区切りを明示し、各ポイントステートメント61を区分けしている。ポイント座標情報64は、ポイントの位置をロボット1の座標系で特定している。例えば、各ポイントP1〜P3の座標が特定される。
【0032】
ポイント種別情報63は、ポイントに対する制御内容を定義したサブプログラム7を示す所謂関数名である。例えば、移動方法とネジ締めの作業内容を定義するサブプログラム7のポイント種別情報61が並ぶ。パラメータ番号65は、ポイントステートメント61に規定されている場合には、サブプログラム7内で宣言された変数75への代入値を特定する。例えば、ネジ締め駆動時の作業ツール4の下降量を特定する。
【0033】
図5は、パラメータ8の全体構成を示す模式図である。メモリ33には、サブプログラム7の変数75への代入候補として複数のパラメータ8が格納されている。すなわち、メモリ33には、パラメータ番号65で特定されるポイント固有パラメータ81が複数種類格納され、一のメインプログラム6に共通のプログラム固有パラメータ82が記憶され、更にメインプログラム6を問わずに適用される共通パラメータ83が記憶されている。プログラム固有パラメータ82にはフラグ84が付帯している。このフラグ84は、付帯先のプログラム固有パラメータ82を適用するか不適用とするかを示す。フラグ84の内容は、操作手段35を用いた操作によって書き換えられる。
【0034】
図6は、サブプログラム7の全体構成を示す模式図である。サブプログラム7は、所謂関数名であるポイント種別情報71で特定される。このサブプログラム7には、移動方法命令列72、移動前作業命令列73、及び移動後作業命令列74が記述される。移動方法命令列72は、ポイントへの移動方法を制御するステートメントの塊である。例えば、移動方法命令列72は、ポイントとポイントを結ぶように直線移動させるPTP移動等を示している。移動方法命令列72は、予め定義されている外部関数の関数名であってもよい。
【0035】
移動前作業命令列73はポイントへの移動前に実行されるステートメントの塊である。例えば、移動前作業命令列73には、ネジを保持する動作等が記述される。移動後作業命令列74は、ポイントへの移動後に実行されるステートメントの塊である。例えば、移動後作業命令列74には、作業ツール4を駆動させながら下降する動作等が記述される。このサブプログラム7には変数75が含まれる。例えば、ポイントに向けて作業ツール4を下降させるために、移動後作業命令列74には、下降命令と下降変数とがセットで記述される。
【0036】
これらプログラム類の実行動作について説明する。
図7は、コントローラ3によるメインプログラム6の処理を示すフローチャートである。コントローラ7は、ポイント番号62がN番目のポイントステートメント61にパラメータ番号65が付帯するか判断する(ステップS01)。Nの初期値は1である。パラメータ番号65が付帯する場合(ステップS01,Yes)、パラメータ番号65で特定されるポイント固有パラメータ81を変数75に代入する(ステップS02)。
【0037】
パラメータ番号65が付帯しない場合(ステップS01,No)、コントローラ7は、フラグ84を確認する(ステップS03)。フラグ84の値が1、すなわちプログラム固有パラメータ82を適用する値であると(ステップS03,Yes)、コントローラ3は、プログラム固有パラメータ82を変数75に代入する(ステップS04)。
【0038】
フラグ84の値が0、すなわちプログラム固有パラメータ82を不適用とする値であると(ステップS03,No)、コントローラ2は、共通パラメータ83を変数75に代入する(ステップS05)。
【0039】
変数75への値の代入が終了すると、コントローラ3は、N番目のポイントステートメント61に並ぶポイント種別情報63と同一のポイント識別情報71で特定されるサブプログラム7を呼び出し(ステップS06)、サブプログラム7を実行する(ステップS07)。サブプログラム7の実行が終了すると、メインプログラム7に戻り、次のポイントステートメント61についてS01から実行を繰り返す。
【0040】
このようにコントローラ3は、
図8に示すように、ロボット1の制御部3aとして機能し、変数75のパラメータ8を決定する判定部3bと、決定されたパラメータ8に変数75の内容を変更する変更部3cを備える。判定部3bは、各ポイントステートメント61に対するパラメータ番号65の有無と、プログラム固有パラメータ82に付帯するフラグ84の内容を判定する。変更部3cは、判定部3bの判定結果に応じて、変数75に対してポイント固有パラメータ81、プログラム固有パラメータ82又は共通パラメータ83が格納されるメモリ領域を結びつける。
【0041】
図8に示すように、このコントローラ3は、プログラミングツール3dとして機能し、操作手段35の入力に応答してプログラム類の新規作成及び編集を行う。プログラム類の作成及び編集では、プログラミングツール3dは、表示部にメインプログラム6の内容を表示し、操作手段35の入力に応答してパラメータ番号65をポイントステートメント61に付帯させる。
【0042】
また、
図9に示すように、メインプログラム6に対するパラメータ設定画面を表示する。このパラメータ設定画面では、パラメータ番号65のないポイントステートメント61において変数75にプログラム固有パラメータ82を代入するか、又は共通パラメータ82を代入するか選択される。操作手段35を用いた選択に応じて、プログラミングツール3dは、フラグ84の内容を書き換える。また、このパラメータ設定画面では、ポイント固有パラメータ81、プログラム固有パラメータ82及び共通パラメータ83が設定される。プログラミングツール3dは、各パラメータ8に下限値と上限値を記憶し、入力されたパラメータ8が下限値未満又は上限値超であると、エラーを報知する。
【0043】
(作用)
図10に示すように、メインプログラム6に並ぶ最初のポイントステートメント61を例示すると、「#1 ネジ締め点 X=X1,Y=Y1,Z=Z1 パラメータ番号1」である。また、「パラメータ番号1」で特定されるメモリ33のアドレスには、3mmの値が格納されているものとする。
【0044】
コントローラ3は、まず「#1」のポイント番号62によって、ポイントステートメント61の区切りを識別する。コントローラ3は、X座標変数XにX1を代入し、Y座標変数YにY1を代入し、Z座標変数ZにZ1を代入する初期化を行う。また、「パラメータ番号1」のパラメータ番号65が付帯するため、コントローラ3は、「パラメータ番号1」で特定される3mmの値をネジ長として宣言された「ScrewL」という名の変数75に代入する初期化を行う。
【0045】
そして、「ネジ締め点」というポイント種別情報63と同じポイント種別情報71のサブプログラム7に従って移動手段2と作業ツール4を制御する。サブプログラム7には、作業ツール4を移動及び駆動させるための命令列のブロックが含まれている。
【0046】
命令列のブロックのうちの一つが移動方法命令列72であり、PTP移動の関数名である「PTPpoint」が記述されている。「PTPpoint」の外部関数には、「Move X Y Z+ScrewL」という「ScrewL」の変数75が含まれている。また、命令列のブロックのうちの一つが移動後作業命令列74であり、移動後作業命令列74には、「downZ」という関数名に「ScrewL」の変数75がセットになって記述されている。
【0047】
コントローラ3は、まず、Move命令に対応して、ScrewLの変数75の3mmという値が示す高さに合うように、(X,Y,Z)=(X1,Y1,Z1+3)の位置に作業ツール4をPTP移動させる。そして、作業ツール4を駆動させながら、downZ命令に対応して、ScrewLの変数75の3mmという値が示す量だけ下降させる。
【0048】
図11に示すように、メインプログラム6に並ぶ2番目のポイントステートメント61を例示すると、「#2 ネジ締め点 X=X2,Y=Y2,Z=Z2 パラメータ番号2」である。「パラメータ番号2」で特定されるメモリ33のアドレスには、5mmの値が格納されているものとする。
【0049】
コントローラ3は、まず「#2」のポイント番号62によって、ポイントステートメント61の区切りを識別する。コントローラ3は、X座標変数XにX2を代入し、Y座標変数YにY2を代入し、Z座標変数ZにZ2を代入する初期化を行う。また、「パラメータ番号1」のパラメータ番号65が付帯するため、コントローラ3は、「パラメータ番号1」で特定される5mmの値をネジ長として宣言された「ScrewL」という名の変数75に代入する初期化を行う。
【0050】
そして、「ネジ締め点」という「#1」のポイントステートメント61と同じサブプログラム7に従って移動手段2と作業ツール4を制御する。すなわち、命令列のブロックのうちの一つが移動方法命令列72であり、「PTP移動」の関数名が記述されている。「PTP移動」の外部関数には、「Move X Y Z+ScrewL」という「ScrewL」の変数75が含まれている。また、命令列のブロックのうちの一つが移動後作業命令列74であり、移動後作業命令列74には、「downZ」という関数名に「ScrewL」の変数75がセットになって記述されている。
【0051】
コントローラ3は、1番目のネジ締めが終了した後、Move命令に対応して、ScrewLの変数75の5mmという値が示す高さに合うように、(X,Y,Z)=(X2,Y2,Z2+5)の位置に作業ツール4をPTP移動させる。そして、作業ツール4を駆動させながら、downZ命令に対応して、ScrewLの変数75の5mmという値が示す量だけ下降させる。
【0052】
図12に示すように、メインプログラム6に並ぶ3番目のポイントステートメント61を例示すると、「#3 ネジ締め点 X=X3,Y=Y3,Z=Z3」である。フラグ84は適用を示す「1」であるものとする。また、プログラム固有パラメータ82の領域として確保されたメモリ33のアドレスには、10mmの値が格納されているものとする。
【0053】
コントローラ3は、まず「#3」のポイント番号62によって、ポイントステートメント61の区切りを識別する。コントローラ3は、X座標変数XにX3を代入し、Y座標変数YにY3を代入し、Z座標変数ZにZ3を代入する初期化を行う。また、パラメータ番号65が付帯せず、且つフラグ84が「1」のため、コントローラ3は、プログラム固有パラメータ82で特定される10mmの値をネジ長として宣言された「ScrewL」という名の変数75に代入する初期化を行う。
【0054】
そして、「ネジ締め点」という「#1」及び「#2」のポイントステートメント61と同じサブプログラム7に従って移動手段2と作業ツール4を制御する。すなわち、コントローラ3は、2番目のネジ締めが終了した後、Move命令に対応して、ScrewLの変数75の10mmという値が示す高さに合うように、(X,Y,Z)=(X3,Y3,Z3+10)の位置に作業ツール4をPTP移動させる。そして、作業ツール4を駆動させながら、downZ命令に対応して、ScrewLの変数75の10mmという値が示す量だけ下降させる。
【0055】
図13に示すように、他のメインプログラム8の3番目のポイントステートメント61を例示すると、「#3 ネジ締め点 X=X3,Y=Y3,Z=Z3」である。フラグ84は不適用を示す「0」であるものとする。また、共通パラメータ83の領域として確保されたメモリ33のアドレスには、8mmの値が格納されているものとする。
【0056】
コントローラ3は、パラメータ番号65が付帯せず、且つフラグ84が「0」のため、コントローラ3は、共通パラメータ83で特定される8mmの値をネジ長として宣言された「ScrewL」という名の変数75に代入する初期化を行う。
【0057】
そして、「ネジ締め点」という「#1」及び「#2」のポイントステートメント61と同じサブプログラム7に従って移動手段2と作業ツール4を制御する。すなわち、コントローラ3は、2番目のネジ締めが終了した後、Move命令に対応して、ScrewLの変数75の8mmという値が示す高さに合うように、(X,Y,Z)=(X3,Y3,Z3+8)の位置に作業ツール4をPTP移動させる。そして、作業ツール4を駆動させながら、downZ命令に対応して、ScrewLの変数75の8mmという値が示す量だけ下降させる。
【0058】
このように、本実施形態のロボット1では、変数75の宣言は、メモリ33の領域の確保ではない。また、各パラメータ8を代入するための異なる変数名の変数75が用意されるものでも、変数75のパラメータ8を変化させるものでもない。複数種類のポイント固有パラメータ81とプログラム固有パラメータ83と共通パラメータ83という候補が予めメモリ33に格納され、変数75に対するパラメータ8の格納先が選択的に可変するものである。
【0059】
従って、使用するパラメータ8は異なるが同一処理内容が定義されるサブプログラム7は1種類用意しておけばよい。すなわち、従来のように、同一ワークに対して3mm、及び8mm又は10mmのネジ長のネジを締め付ける場合、3mmという値が格納された領域を宣言する例えば「condScrewL」という変数75を含むが其れ以外は同一記述内容のサブプログラム7、8mmという値が格納された領域を宣言する例えば「ProgScrewL」という変数75を含むが其れ以外は同一記述内容のサブプログラム7、及び10mmという値が格納された領域を宣言する例えば「commonScrewL」という変数75を含むが其れ以外は同一記述内容のサブプログラム7を別々に用意しておく必要はない。
【0060】
本実施形態のロボット1では、同一ワークに対して3mmと8mm又は10mmのネジ長のネジを締め付ける場合であっても、例えば「ScrewL」という変数75を含むサブプログラム7を一つ用意しておけばよい。
【0061】
(効果)
このように、このロボット1は、コントローラ3による移動手段2と作業ツール4の制御内容を示すポイント種別情報63とポイント座標情報64を含むポイントステートメント21をポイントごとに並べて成るメインプログラム6を記憶する。また、ポイント種別情報71で特定され、変数75を含んだ命令列により成り、制御内容を定義したサブプログラム7を記憶する。更に、1種類の変数75に対する代入候補である複数のパラメータ8を記憶する。
【0062】
そして、1種類の変数75に代入するパラメータ8をポイントステートメント61ごとに判定し、判定結果に応じて、パラメータ8が格納されているメモリ領域の1つと変数75とをポイントステートメント61ごとに結びつけ直すようにした。
【0063】
これにより、1種類の変数75に対して判定結果に応じて異なるパラメータ8を代入することができ、パラメータ8が異なるために別々の変数75を宣言した各プログラムを用意する必要はない。すなわち、パラメータ8が異なっていても同一作業内容のプログラムは、1つ用意しておけば十分である。そのため、プログラム作成の手間を省くことができ、ロボット1の製造コストを低減させることができる。
【0064】
そうすると、複数のポイントに対する作業内容がパラメータを除いて同一の場合、各ポイントステートメント61には、同一のポイント種別情報63を選択すればよく、コントローラ3は、各ポイントステートメント61の実行に際し、同一のサブプログラム7を参照する。従って、ロボット1のティーチング操作を行うユーザにとっても、使用するパラメータ8に応じて使用するサブプログラム7を選択する手間が省け、労力低減となる。
【0065】
以上、本実施形態では、変数75はネジ長であり、移動方法命令列72と移動後作業命令列74に含まれる例を説明した。本実施形態は、これに限らず、ネジピッチや電動ドライバの回転数等の各種の変数75に適用可能である。また、本実施形態では、作業ツールをネジ締めの電動ドライバとして説明したが、作業ツール4としては、溶接機、塗装ガン、塗布ニードル、半田ごて、又はハンドラ等の各種が適用可能であり、その作業に応じてサブプログラム7に含まれる変数75に本発明を適用することができる。
【0066】
(他の実施形態)
以上のように本発明の実施形態を説明したが、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。そして、この実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【0067】
例えば、ロボット1に対するプログラミングを直接ロボット1に対して行う例を示したが、これに限らず、ロボット1とは別のコンピュータ等のプログラミングツール3dで行うようにし、プログラム類をロボット1にロードするようにしてもよい。