(57)【要約】【課題】本発明は、記憶した複数の作業命令を、所定の位置で動作させるロボットの動作設定方法、その動作方法を利用したロボット、及びそのロボットの動作を設定するための動作設定プログラム関する。【解決手段】位置の並びを記憶する手段と、複数の作業命令（列）を記憶する手段と、それぞれの位置において該複数の作業命令（列）のどれを実行するかを記憶する手段と、該位置の並びを順に移動し、該作業命令を実行していく制御手段と備える。該ポイント種別定義データに従って各位置に対応したポイント種別を入力する手段と各位置に対応したポイント種別を記憶する手段と記憶されたポイント種別に従って実行する制御手段とを更に備えたことを特徴とするロボット。【選択図】図１
2014226730.tif 000002
【特許請求の範囲】
【請求項１】
ユニットを指定したポイントに移動させ、ユニットに作業をさせる制御部を備えるロボットにおいて、
前記ユニットに実行させる作業の命令列を記憶する作業命令列記憶部と、
前記作業命令列をポイント種別名と対応付けて記憶するポイント種別定義データ記憶部と、
前記ユニットを移動させるポイントの位置情報と、ポイント種別名とを対応付けてポイント列として記憶するポイント列記憶部とを備え、
前記制御部は、記憶されたポイント種別名から前記ポイント種別定義データを参照し、
前記ポイント種別定義データとしてされた作業命令列を実行させること、
を特徴とするロボット。
【請求項２】
前記ポイント列記憶部では、
前記ユニットを移動させるポイントと、そのポイントにおいて実行するポイント種別と、前記ポイント種別に基づく作業の前後に行う作業命令列とを対応付けてポイント列として記憶することを特徴とする請求項１に記載のロボット。
【請求項３】
前記ポイント種別定義データ記憶部では、
予め記憶したポイント種別定義データを、作業命令列としてポイント種別名と対応付けて記憶することを特徴する請求項１または請求項２に記載のロボット。
【請求項４】
前記作業命令列に対する設定データを記憶する設定データ記憶部を備え、
前記ポイント種別定義データ記憶部では、ポイント種別名と、実行する作業命令列と共に、設定データを対応付けて記憶することを特徴とする請求項１〜３の何れか１項に記載のロボット。
【請求項５】
前記作業命令列に対する条件データを複数集めた独立データ組を記憶する独立データ組記憶部を備え、
前記独立データ組記憶部は、前記作業命令列がどの独立定義データを参照するかを記憶することを特徴とする請求項１〜４の何れか１項に記載のロボット。
【請求項６】
記憶するデータ毎に、その所有者がどのアカウントであるかの情報、並びに保護モードの設定値を記憶するアカウント記憶部を備え、
前記データの閲覧、書換え、または消去の少なくともいずれか１つに関するアクセス権を設けることを特徴とする請求項１〜５の何れか１項に記載のロボット。
【請求項７】
ユニットを指定したポイントに移動させ、ユニットに作業をさせるロボットの制御方法において、
前記ユニットに実行させる作業の命令列を記憶する作業命令列記憶部ステップと、
前記命令列をポイント種別名と対応付けてポイント種別定義データとして記憶するポイント種別定義データ記憶ステップと、
前記ユニットを移動させるポイントの位置情報と、ポイント種別名とを対応付けてポイント列として記憶するポイント列記憶ステップを備え、
記憶されたポイント種別名から前記ポイント種別定義データを参照し、
前記ポイント種別定義データとしてされた命令列を実行する実行ステップを備えること、
を特徴とするロボットの制御方法。
【請求項８】
コンピュータを用いて、ユニットを指定したポイントに移動させ、ユニットに作業をさせるロボットの制御プログラムにおいて、
前記コンピュータに対して、
前記ユニットに実行させる作業の命令列を記憶させ、
前記命令列をポイント種別名と対応付けて記憶させ、
前記ユニットを移動させるポイントの位置情報と、ポイント種別名とを対応付けてポイント列とし記憶させ、
記憶されたポイント種別名から前記ポイント種別定義データを参照し、前記ポイント種別定義データとしてされた命令列を実行させること、
を特徴とするロボットの制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、記憶した複数の作業命令を、所定の位置で動作させるロボットの制御方法、その制御方法を利用したロボット、及びそのロボットの動作を制御するための動作設定プログラムに関する。
【背景技術】
【０００２】
所定の位置を示すポイントにおいて、ねじ締めや塗布などの複数の作業を１つで行うロボットに対しては、所定のポイントで行う作業内容を記憶させるティーチングを行う必要がある。近年、作業の効率化やそれに伴うロボットの高性能化に伴い、ティーチングにおいてはポイントにおける作業内容だけでなく、ポイント移動前や、ポイントへ移動中の作業内容の設定も可能になっている。また、PTP駆動やCP駆動など、移動の仕方も増えており、移動の仕方に合わせた作業内容を設定することも可能となっている。
【０００３】
そのため、ティーチングを行うユーザは、ポイントを示す「Ｘ座標，Ｙ座標，Ｚ座標」やポイントでの作業を示す「ポイント作業」だけでなく、「ポイント種別」、「移動前作業」、「移動中作業」の設定を行う必要がある。また、作業ポイントが複数ある場合には、各ポイントにおいて、それぞれの項目の設定を必要とする。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００７−１９３８４６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
このようなロボットのティーチングにおいては、あるポイントにおいて、ねじ締めを行う場合には、次の(a)〜(d)の項目を設定する必要がある。
(a)「ポイント種別」として、PTP駆動点と設定する。
(b)「作業前動作」として、フィーダにねじを取りに行く作業を設定する。
(c)「移動中作業」として、ドライバをポイントに到達する0.1秒前にスタートする作業を設定する。
(d)「ポイント作業」として、ねじ締めドライバの完了信号を見ながらＺ軸をねじ締め速度で下降させる作業を設定する。
【０００６】
以上の(a)〜(d)を設定することで、あるポイントでのねじ締め作業のティーチングをすることができる。一方、複数のポイントにおいてねじ締めをする場合には、各ポイントで同じ設定をする必要がある。各ポイントにおいて、同じ作業を設定することは、非効率的であり、入力ミスが生じる可能性もある。また、ユーザの意識の中では、(a)〜(d)は、まとめて「ねじ締めをするための設定」に相当するのに、１つのねじ締め作業のために複数の作業を設定するのは、煩雑である。
【０００７】
一方、(a)〜(d)の作業を「ねじ締め点」として、予めシステムに組み込んでしまったねじ締め専用のシステムを供給することも行われている。これは、予めドライバの長さや形状などの情報を登録しておき、その情報に基づいて作業内容を指定しておく。このような専用システムの場合には、作業をする点を指定するだけで済むので、ティーチングは、非常に簡便である。しかしながら、様々な種類のドライバを用いるロボットの場合は、そのすべてのドライバに対した専用システムを供給することが必要であり、さらに、ねじ締め器具としてドライバ以外の器具を使用する場合を考慮すると、すべてに対応する専用システムを用意することは、事実上困難である。
【０００８】
本発明は、上記のような従来技術の問題点を解決するために提案されたもので、作業命令の内容をポイント種別名と対応付けて記憶させておき、ティーチングの際には、位置とポイント種別名を指定する。これにより、ティーチングの作業を簡単な手順で行うことが可能となる。さらに、ポイント種別名と対応付ける作業命令は、自由に設定することができるので、専用システムを用意することなく、専用システムを供給した場合と同様の利便性を提供することができる。
【課題を解決するための手段】
【０００９】
上記の目的を達成するために、本発明は、ユニットを指定したポイントに移動させ、ユニットに作業をさせるロボットにおいて、前記ユニットに実行させる作業の命令列を記憶する作業命令列記憶部と、前記作業命令列をポイント種別名と対応付けて記憶するポイント種別定義データ記憶部と、前記ユニットを移動させるポイントの位置情報と、ポイント種別名とを対応付けてポイント列として記憶するポイント列記憶部とを備え、前記制御部は、記憶されたポイント種別名から前記ポイント種別定義データを参照し、前記ポイント種別定義データとしてされた作業命令列を実行させること、を特徴とする。
【００１０】
また、ロボットの制御方法、及びロボットの制御プログラムも本発明の一態様である。
【図面の簡単な説明】
【００１１】
【図１】本発明の第１の実施形態に係るロボットの全体構成を示す斜視図である。
【図２】本発明の第１の実施形態を示す機能ブロック図である。
【図３】本発明の第１の実施形態のポイント種別定義データを示す図である。
【図４】本発明の第１の実施形態のポイント列を示す図である。
【図５】本発明の第１の実施形態のポイント種別定義コードを示す図である。
【図５】本発明の第１の実施形態のポイント種別定義データの入力手順を示すフローチャートである。
【図７】本発明の第１の実施形態のポイント列の入力手順を示すフローチャートである。
【図８】本発明の第１の実施形態の変形例１のポイント種別定義データを示す図である。
【図９】本発明の第１の実施形態の変形例２のポイント種別定義データを示す図である。
【図１０】本発明の第２の実施形態のポイント列を示す図である。
【図１１】本発明の第２の実施形態の変形例のポイント列を示す図である。
【図１２】本発明の第３の実施形態の参考例のポイント種別定義コードを示す図である。
【図１３】本発明の第３の実施形態の継承を行うポイント種別定義コードを示す図である。
【図１４】本発明の第３の実施形態の上書き継承によるポイント種別定義コードを示す図である。
【図１５】本発明の第４の実施形態の継承を行うポイント種別定義コードを示す図である。
【図１６】本発明の第４の実施形態の点塗布を示す図である。
【図１７】本発明の第４の実施形態のポイント列を示す図である。
【図１８】本発明の第４の実施形態の継承を行うポイント種別定義コードを示す図である。
【図１９】本発明の第４の実施形態のポイント列を示す図である。
【図２０】本発明の第５の実施形態の独立データ組定義を示す図である。
【図２１】本発明の第５の実施形態の継承を行うポイント種別定義コードを示す図である。
【図２２】本発明の第５の実施形態のねじ締め条件データの参照図である。
【図２３】本発明の第５の実施形態の変形例１のプログラムデータ定義を示す図である。
【図２４】本発明の第５の実施形態の変形例１のプログラムのねじ締め条件データの参照図である。
【図２５】本発明の第５の実施形態の変形例１のプログラムのねじ締め条件データの参照図である。
【図２６】本発明の第５の実施形態の変形例２のシステムデータ定義を示す図である。
【図２７】本発明の第５の実施形態の変形例２のシステムデータの参照図である。
【図２８】本発明の第６の実施形態を示す機能ブロック図である。
【図２９】本発明の第６の実施形態の保護モードとアクセス権を示す関連図である。
【図３０】本発明の実施形態の継承関連図を示すブロック図である。
【図３１】本発明の実施形態の上書き継承連図を示すブロック図である。
【発明を実施するための形態】
【００１２】
以下、本発明に係るロボットの実施形態について図面を参照しつつ詳細に説明する。実施形態において、重複する図面の説明は省略する。
【００１３】
［第１の実施形態］
図１は、本実施形態のロボットの全体構成を示す図である。本実施形態のロボット１０は、ユニットを取り付ける駆動台２０と、その駆動台を移動させるモータ１２を複数備える。ロボット１０は、モータ１２を制御することにより、駆動台２０を横方向であるＸ軸方向、奥行き方向であるＹ軸方向、水平方向であるＺ軸方向に駆動させ、ユニット３０を所定のポイントに移動させる。
【００１４】
ロボット１０のティーチングにおいては、ユーザは、ユニット３０を移動させるポイントと、そのポイントにおけるユニット３０の作業内容を示すポイント種別とを対応づけてポイント列として設定する。ポイント種別としては、ポイント種別名、ポイントでの作業内容、ポイント毎に設定するデータ項目を予め定義しておく。
【００１５】
このようなロボット１０の制御では、ティーチングで設定したポイントの順にユニット３０を移動させ、各ポイントにおけるポイント種別で定義した作業内容をユニット３０に実行させる。
【００１６】
［１−１．構成］
図２は、このようなロボット１０の構成を示すブロック図である。図２において、マイクロコンピュータを主体に構成される制御部１は、ロボット１０全体の制御を行う。制御部１は、ロボット制御プログラム記憶部２に記憶されている制御プログラムに従って、入力操作、表示、記憶、モータ駆動、信号入出力を行う。ロボット１０は、操作部３、表示部４、一時記憶部５、ポイント列記憶部６、作業命令列記憶部７、ポイント種別定義記憶部８、モータ駆動制御部１１を備える。この制御動作の為に一時記憶部５を使用する。
【００１７】
制御部１は、マイクロコンピュータを主体に構成される。制御部１は、モータ駆動制御部１１に指令を出力し、モータ１２を駆動して各種の動作を実行させる。モータ駆動制御部１１とモータ１２は必要とする任意の数だけ設けられ、モータ１２には、モータ１２の動力により、作業及び動作を実行するユニット３０が接続される。例えば、ねじ締めユニットの場合においては、ねじ締めユニットを所定のポイントに移動させるためのＸ軸方向移動用モータ、Ｙ軸方向移動用モータ、Ｚ軸方向移動用モータに加えて、ねじ締め器具を回転させるためのねじ締め用のモータの４つのモータで制御を行う。また、制御部１は信号入出力部１３に指令を出し、外部からの信号入力及び外部への信号出力を実行させる。外部から入力した信号を、ロボット１０の制御に反映させるや、外部への信号に基づいて外部機器の制御を行う。
【００１８】
操作部４はキーボード等の入力装置や、ティーチングのためのハード的、ソフト的機構などであって、ロボット１０のプログラムやデータの入力を行うものである。また表示部３はＬＣＤ表示装置等で、設定値の表示や操作部４による入力状態を表示するものである。
【００１９】
一時記憶部５は、所謂メモリであり、制御部１が制御指令を出力する際の必要な情報を一時的に記憶する記憶部である。
【００２０】
作業命令列記憶部７は、ユニット３０に実行させるための作業命令を記憶する。作業命令は、ロボットに作業動作を指示する命令であり、例えば、ねじ締め作業、塗布作業、はんだ付け作業などの各種作業の命令がある。作業命令は、ユニット３０がポイントに移動する前、ポイントに移動する途中、ポイント到達時などの複数のタイミングで行う作業命令を設定し記憶する。また、作業命令と番号を対応させて記憶しても良い。一例を以下に示す。
「移動前作業番号１」として、各ポイントに移動してくる前にフィーダからねじ取りをする作業を記憶する。この場合、フィーダねじ取り作業は作業命令として別途記憶しておく。
「移動中作業番号５」として、各ポイントに移動してくる移動中に実行する作業の指定で、例えば、ねじ締め用のドライバを各点に到着する０．１秒前にスタートするといった作業を記憶する。
「ポイント作業番号１０」として、実際のねじ締め動作を行う作業でねじ締めドライバの完了信号を見ながらＺ軸をねじ締め速度で下降させるといった作業を記憶する。
【００２１】
ポイント種別定義データ記憶部８は、ポイント種別名、及びそこで実行する作業命令列により定義されるポイント種別定義データを記憶する。ポイント種別定義データとしては、ポイント種別を一意に区別する為のポイント種別ID、ポイント種別選択での表示に利用する為のポイント種別名、基本的な移動の仕方を指定する為の元となるポイント種別ID、指定の位置に移動する前に実行する作業命令列を指定する為の移動前作業番号、指定の位置に移動する途中で実行する作業命令列を指定する為の移動中作業番号、指定の位置に移動してから実行する作業命令列を指定する為のポイント作業番号といったものを含む。
【００２２】
図３にポイント種別定義記憶部８に記憶するポイント種別定義データの一例を示す。図３では「元となるポイント種別ID＝PTPPiont」「移動前作業番号＝１」「移動中作業番号＝５」「ポイント作業番号＝１０」なる特性を持った点を「ねじ締め点」として定義する。
【００２３】
ポイント列記憶部６は、ユニット３０を移動させるポイントと、そのポイントにおいて実行するポイント種別とを対応付けたポイント列として記憶する。ポイント種別とは、作業命令列記憶部７に記憶されるポイント列に関連づけられたポイント種別名、ポイント種別定義へのアドレス、または、ポイント種別コードである。
【００２４】
図４に、ポイント列記憶部６に記憶するポイント列定義の一例を示す。図４では、「Ｘ座標＝１００．００」「Ｙ座標＝１００．００」「Ｚ座標＝３０．０００」「ポイント種別＝ねじ締め点」を「ポイント番号＝１」と対応付けて記憶する。図４では、座標とポイント種別とを対応付けるポイントが３つあるので、それぞれのポイント毎に、座標とポイント種別とを対応付けて記憶する。
【００２５】
図４では、ポイント種別名を表示しているが、ポイント列記憶部６に格納するのは、容量を抑えるために、ポイント種別名ではなく、ポイント種別定義への（アドレス）ポインターやポイント種別コードといったものにすることもできる。ここでポイント種別コードとは、ポイント種別IDから作り出すコード（数値）で、図５にその例を示す。図５の例では、４バイトのコードとしている。上位２バイトはポイント種別ID文字列のCRC（巡回冗長検査：Cyclic  Redundancy  Check）を取っている。CRCを取っているのに格別の意味は無く、文字列をもとに何らかの数値をできるだけランダムに作り出す為にこれを利用している。３バイト目は上位２バイトが異なったIDに対して同じになってしまった場合に利用する。通常０とし、重複した場合には１，２，・・・として上位３バイトのコードとしては重複が無い様にする。最下位の１バイトは、大元の基本種別に対応した１バイトのコードとする。ここで、基本種別とは、「PTP駆動点」「CP開始点」「CP通過点」「CP終了点」「CP円弧補助点」などの移動を指定する基本的な種別である。
【００２６】
［１−２．作用］
以上のような構成を有するロボット１０においては、ティーチングにおいて、次の２つのステップにおいて、設定を行う。
（１）ポイント種別定義データを設定ステップ。
（２）ポイント列の設定ステップ。
以下では、各ステップを詳述に説明する。
【００２７】
（１）ポイント種別定義データの設定手順
図６は、ポイント種別定義データの設定手順を示すフローチャートである。システムインテグレータや工場の生産技術部門の者（以下、中間業者と呼ぶ）は表示部３を見ながら操作部４を使って、ポイント種別定義データを入力する。図６のフローチャートに基づいてポイント種別定義データの入力手順を説明する。
【００２８】
初めに、中間業者が操作部４を操作して、ポイント種別IDを文字列として入力する（ステップＳ１）。ポイント種別IDは一意でなければならないので、既に存在しているIDと重複していないかどうかの判定を行う（ステップＳ２）。判定の結果、重複している場合（ステップＳ２のＹ）には、ポイント種別IDの入力に戻る。
【００２９】
判定の結果、重複がなければ場合（ステップＳ２のＮ）には、元となるポイント種別IDを一覧から選択して入力する（ステップＳ３）。次にポイント種別名を入力する（ステップＳ４）。
【００３０】
次に、移動前作業番号の入力を行う。移動前に実行する作業があるならば（ステップＳ５のＹ）、移動前作業番号を入力する（ステップ６）。
【００３１】
同様に、移動中作業番号の入力を行う。移動中に実行する作業があるならば（ステップＳ７のＹ）、移動中作業番号を入力する(ステップ８)。
【００３２】
最後に、移動後作業番号の入力を行う。移動後に実行する作業があるならば（ステップＳ９）、ポイント作業番号を入力する(ステップ１０)。移動前作業番号、移動中作業番号、ポイント作業番号は、予め作業命令列記憶部７に番号を付けて命令列を入力・記憶しておき、ステップ６、ステップ８、ステップ１０で入力する、移動前作業番号、移動中作業番号、ポイント作業番号は、この作業命令列記憶部７に記憶されている命令列を番号により指定する。
【００３３】
（２）ポイント列の設定手順
図７は、ポイント列の設定手順を示すフローチャートである。ポイント列の設定では、中間業者が定義したポイント種別定義データを使用する。
【００３４】
ポイント列の設定手順では、初めに、ユーザは、ポイントの座標を入力する（ステップ１）。次にポイント種別を選択入力する（ステップ２）。これを必要なポイント数分繰り返す（ステップ３）。この様に、ポイント列の設定では、ポイント種別として「ねじ締め点」を選択設定して位置座標を指定するだけで済む。つまり、移動前作業や移動中作業などはポイント種別「ねじ締め点」の定義により参照・実行されることとなり、ポイント列を作成する上ではメインのティーチングであるポイント種別を設定することのみで良い。すなわち、本実施形態では、ねじ締め位置を指定することのみで良い。
【００３５】
［１−３．効果］
以上の様な本実施形態のロボット１０の制御においては、指定されたポイント種別名（例えば「ねじ締め点」）からポイント種別定義データを参照してこれに従って命令実行や移動を行うことになる。
【００３６】
定義されたポイント種別を使うことにより、作業者は位置を指定するだけで済みティーチングが非常に簡単になり、誤りを防ぐこともできる。
【００３７】
また、中間業者がポイント種別定義をしようとした時、例えば「フィーダからねじを取る作業」は、ねじ締め点の移動前作業であることが明確になる。また、「フィーダからねじを取る作業」を、ねじを締める点の前の点の作業に含めてしまった形でプログラムを組むこともできる。しかし定義をすることにより「フィーダからねじを取る作業」は、ねじ締め点の移動前作業と関連づけされる。ポイント種別定義をするということから、作業の観点を見直しする必要が起こり、結果として意味的にポイントに属しているものをポイントに属させる構成になり、作成や保守が容易になる。
【００３８】
また、図３の例では「ポイント種別ID」と「ポイント種別名」とを別に設けている。本質的には「ポイント種別ID」のみで良いが、操作性向上の面から「名」を別に設けている。「ポイント種別ID」は「元となるポイント種別ID」の指定をするのに使い（一意に区別する）、「ポイント種別名」の方は作業者が選択設定する時に使う。複数言語対応（例えば日本語表示と英語表示を切り替えられる）する場合、「ID」は１つとして、「名」を言語毎に設定しておくことにより、作業者が各言語に対応したポイント種別名で選択設定できる様にすることができ、分かりやすくなる。図８に複数言語に対応した、ポイント種別定義記憶部８の記憶状態の一例を示す。
【００３９】
図３のポイント種別定義では移動前作業番号、ポイント作業番号といった形で、別途ティーチングした命令列を番号で指定する。ポイント作業番号でなく、命令列に名前(ID)を付けて、名前(ID)を指定しても良い。
【００４０】
さらに、ポイント種別定義の中に命令列を直に設定することもできる。ポイント種別定義では実行する命令列はその定義に固有のものと考えることができる。その意味で、別途ティーチングした命令列を番号等で参照するのではなく、定義の中に命令列を含ませてしまう方が分かり易く、また間違ってポイント種別定義に利用していた命令列を書き換えたり削除してしまったりすることも防げる。この実現方法では、命令列はポイント種別定義の一部となる。
【００４１】
例えば、図９は、移動前作業、移動中作業の命令列を直に設定した例である。移動前作業では、ねじの有無をsensorIn1から読み込み、これがOFFしているならば、ねじが無いとしてエラー処理ルーチンを呼んでいる。（call  Error(10))。移動中作業では、移動終了までの時間(moveEndTime())が100[msec]より少なくなったら、ねじ締めドライバを回転開始(set  out1)している。
【００４２】
さらに、本実施形態のユニット３０は、必要とする作業及び動作に合わせて、交換可能とする。すなわち、本実施形態においては、ねじ締めユニットを例に挙げて説明をしたが、塗布ユニット、ディスペンスユニット、ボードカッターユニット、半田ユニット、リードカッターユニット、カメラユニットなどを用いることもできる。
【００４３】
［第２の実施形態］
第２の実施形態は、第１の実施形態のポイント列記憶部において、更に、ユニット３０の作業の前後に行う作業を対応づけてポイント列として設定する。以下、第２の実施形態のロボット１０のティーチング方法について詳述します。
【００４４】
［２−１．構成］
本実施形態におけるポイント列記憶部６では、ユニット３０を移動させるポイントと、そのポイントにおいて実行するポイント種別と、ユニット３０の作業の前後に行う作業とを対応付けてポイント列として記憶する。図１０に、ポイント列記憶部６に記憶するポイント列記憶部に記憶するポイント列の一例を示す。図１０では、「Ｘ座標＝１００．００」「Ｙ座標＝１００．００」「Ｚ座標＝３０．０００」「ポイント種別＝ねじ締め点」「ポイント作業番号（前）＝２０」「ポイント作業番号（後）＝３０」を「ポイント番号＝１」と対応付けて記憶する。
【００４５】
図１０のポイント番号２に示すように、「ポイント作業番号（前）」「ポイント作業番号（後）」は、作業の必要が無い場合には設定をしないことも可能である。
［２−２．作用・効果］
以上のような構成を有するロボット１０では、例えば「ねじ締め」の点でねじを締め始める直前に、ワーク押さえの為のパルス出力信号を出すとか、ねじを締め終わったところで、しめたネジの個数をカウントするため、外部カウンタにパルス出力を出す。
【００４６】
これを実現する方法として、例えば、図１０に示す様に「ポイント作業番号（前）」と「ポイント作業（後）」といった２つの番号を設定する。
【００４７】
作業番号２０に「ワーク押さえの為のパルス出力信号を出す」命令（列）を、作業番号３０に「しめたネジの個数をカウントするための外部カウンタにパルス出力を出す」命令（列）を設定しておき、図１０のポイント番号１及びポイント番号３の様に、「ポイント作業番号（前）＝２０」と「ポイント作業（後）＝３０」といった設定をすることにより、ねじ締め動作の前後に付随的な作業を行わせる。
【００４８】
また、前後に付随的な作業を付ける別の実現方法として、ポイント作業番号を付けた場合には、元の作業は実行されなくなり、その代わり「元の作業を呼び出す」特別な命令を用意し、これを使う。例えば、命令callBaseを元の作業を呼び出す命令とする。図１１に示した様に、ポイント番号１及びポイント番号３ではポイント作業として２５を付ける。ポイント作業番号を設定すると、「ねじ締め点」ではあってもねじ締め動作は実行されなくなる（上書きされる）。代わりに、作業２５では、out2へのパルス出力の後、callBase命令を実行し、これによってねじ締め動作が実行される。これにより、前後に付随的な作業付けるだけでなく、条件判断により元の作業を呼び出さないといったことも可能になる。
【００４９】
さらに、図１０の説明及び図１１の説明では、ポイント位置で実行する「ポイント作業」を例として説明したが、作業ポイントへの移動を開始する前に実行する「移動前作業」や、移動している最中に実行する「移動中作業」についても、同様とすることができる。
【００５０】
［第３の実施形態］
第３の実施形態は、第１の実施形態のポイント種別定義データ記憶部においてポイント種別定義データを定義づけする際に、元となるポイント種別として基本的なポイント種別だけではなく、定義したポイント種別を用いる。以下、第３の実施形態のロボット１０のティーチング方法について詳述します。
【００５１】
［３−１．構成］
本実施形態におけるポイント種別定義データ記憶部は、継承する元となるポイント種別ID、ポイント種別名およびそこで実行する作業命令列により定義されるポイント種別定義データを記憶する。
【００５２】
図１２に再利用しない確認付きねじ締め点の定義にるポイント種別定義記憶部８に記憶するポイント種別定義データの一例を示す。図３に示したねじ締め点の定義とは移動前作業番号を変え、確認を行う動作とフィーダねじ取りの動作を合わせて行う作業「２」を指定する、といったこともできる。しかしこれは作業「２」を作業「１」を元にして作り直しているわけで、誤りが発生しやすい。これに対し「元となるポイント種別」に既に定義した「ねじ締め点」を指定して定義できるようにする。この場合、「移動前作業番号」や「ポイント作業番号」を改めて指定する必要は無い。「ねじ締め点」定義にこれらの動作は含まれている。付け加えるのは、確認を行う動作「３」を、移動前作業の「前」に行うように「移動前作業番号（前）」にこれを指定する。
これに対して、図１３に継承による確認付きねじ締め点の定義によるポイント種別定義記憶部８に記憶するポイント種別定義データの一例を示す。図１３では「元となるポイント種別ID＝TighteningPoint」「移動前作業番号＝無し」「移動中作業番号＝無し」「ポイント作業番号＝無し」「移動前作業番号＝３」「移動前作業番号＝無し」なる特性を持った点を「確認付きねじ締め点」として定義する。
【００５３】
［３−２．作用］
以上のような構成を有するロボット１０では、ポイント種別定義データとして定義した「ねじ締め点」と、ほとんどの動作が同じであるが、フィーダねじ取りに行く前にねじ締供給装置の準備ができているかどうかの確認を行う。
【００５４】
この場合、図１２の様に、図３に示したねじ締め点の定義とは移動前作業番号を変え、確認を行う動作とフィーダねじ取りの動作を合わせて行う作業「２」を指定する。
【００５５】
しかしこれは作業「２」を作業「１」を元にして作り直しているわけで、誤りが発生しやすい。これに対し「元となるポイント種別」に既に定義した「ねじ締め点」を指定して定義できるようにする。
【００５６】
これにより「移動前作業番号」や「ポイント作業番号」を改めて指定する必要は無い。「ねじ締め点」定義にこれらの動作は含まれている。付け加えるのは、確認を行う動作「３」を、移動前作業の「前」に行うように「移動前作業番号（前）」にこれを指定する。図１２では、元の「ねじ締め点」定義の内容を継承して「確認付きねじ締め点」を定義している。
【００５７】
図１３の継承によるポイント種別定義では、元となるポイント種別で定義された「移動前作業」があり、これに「移動前作業（前）」を付け加えて新たなポイント種別を定義している。ここで、「移動前作業（前）」とは、元となるポイント種別で定義された「移動前作業」を実行する前に実行する作業という意味で「（前）」が付いている。またこの為、「移動前作業（後）」といったものも考えなくてはならなくなる。
【００５８】
［３−３．効果］
この様な方式の利点は、ポイント種別定義自体の構造を簡略にできると共に、元となるポイント種別に付いている作業の実行を前、後といった順番だけではなく、条件によっては実行しないといったことも含め制御できることになり、融通性が高くなる。
【００５９】
さらに、ポイント種別定義の再利用について別の例で説明する。ここでは、追加的な継承ではなく、上書き（置き換え）的な継承により再利用を行うことも可能である。同じねじ締めを継承するにしても、例えばねじ締め動作は同じだが、フィーダからのねじ取り方法が全く異なる様な場合。フィーダからのねじ取り作業を行う「移動前作業」をまったく置き換えて別の作業にすることを可能にする。
【００６０】
例えば、このポイント種別名を「別フィーダねじ締め点」として図１４の様に定義する。ここで「移動前作業番号」を「４」として、元々の「移動前作業番号＝１」を上書きする。追加的な継承及び上書き的な継承ができることにより、ポイント種別定義を再利用可能な部品として扱うことができる様になる。そしてこの再利用により、プログラムの作成効率を上げることができる。
【００６１】
上書き的な作業指定だけに限定し、但し特殊な命令として、元となるポイント種別で定義された作業をサブルーチン的に呼び出す命令（例えばcallBase)を付加する方法が考えられる。図１４の例で言えば、上書きする「移動前作業」として、確認を行う命令（列）の後に元となるポイント種別の「移動前作業」を呼び出す命令callBaseを実行させれば目的の作業が得られる。
【００６２】
［第４の実施形態］
本実施形態は、第１の実施形態の構成に加えて、設定データ記憶部を設けるものである。本実施形態は、ユニット３０として塗布ユニットを使用する。各ポイントにおいて一定の時間塗布作業をする場合には、ポイント列として、ユニット３０を移動させるポイントと、そのポイントにおいて実行するポイント種別、ポイント種別における設定データとを対応付けて記憶する。このポイント種別における設定データで設定した時間が、ポイント種別として、塗布作業を選択した場合の塗布時間に相当する。
【００６３】
［４−１．構成］
ポイント種別定義データ記憶部において、ポイント種別定義データを定義づけする際に、ポイント種別名と、実行する作業命令列と共に、設定データを定義ことで、作業命令列を実行する場合には、設定データの内容に合わせて作業命令が実行させる。
【００６４】
設定データとしては、データのIDや名前を定義する。図１５は、ポイント種別定義記憶部８に記憶するポイント種別定義データの一例を示す。図１５では、設定データを区別するためデータID、データ名を定義する。また、複数のデータを追加できる様にそれぞれを「データ#1」「データ#2」といった形で区別できるようにしている。また、名前だけではなく、下限値、上限値を設定している。これ以外に既定値や単位などを指定しても良い。
【００６５】
このポイント設定データは、ポイント作業の命令列から参照できるものとする。例えば、図１５の点塗布点のポイント作業番号「６」では図１６のようにＩＯのＯＮとＯＦＦの間、この塗布時間を参照して時間待ちする。
【００６６】
ポイント列記憶部６では、ユニット３０を移動させるポイントと、そのポイントにおいて実行するポイント種別と、ポイント種別における設定データとを対応付けてポイント列として記憶する。
【００６７】
ポイント種別として「点塗布点」を記憶する場合、設定データとして「点塗布時間」を入力できるようにする。すなわち、ポイント列のポイント毎の入力設定項目として「点塗布時間」が付加されることになる。
【００６８】
図１７は、本実施形態のポイント列記憶部６に記憶するポイント列の一例を示す。図１７では、ポイント番号１において「点塗布時間＝０．５」、ポイント番号２において「点塗布時間＝０．５」、ポイント番号３において「点塗布時間＝１．０」と入力し設定している。
【００６９】
［４−２．作用・効果］
ティーチングに基づき点塗布点を実行する時には、「点塗布点」の定義を参照して、ポイント作業「６」を実行する。このポイント作業実行の「delay  PointDispenceTime」を解釈実行する時にも、「点塗布点」の定義を参照することになる。ここで、PointDispenceTimeの実体（値）はポイント毎に存在する（複数存在する）ことになる。実行する場合にはPointDispenceTimeという１つのIDを使って、現在実行しているポイントのPointDispenceTimeを参照できる様にする。
【００７０】
さらに、塗布装置を動かして点塗布を行う時、各点毎に塗布の時間を変えたい場合がある。ポイントのデータとして「点塗布時間」といったものを持ち、設定した値を塗布作業で参照することを可能にする。
【００７１】
本実施形態では、「点塗布時間」として数値型のデータの入力を行ったが、選択型や文字列型のデータを入力しても良い。選択型とは２以上の選択枝の中から一つを選ぶようなもので、内部的には適当な整数を割り当てて記憶するにしても、項目名だけではなく、選択枝の名前の定義も必要となる。数値型以外のデータも定義できるようにする為、データ定義として型を指定し、型によって定義する項目も異なってくる。
【００７２】
図１８に選択型のデータ定義を含んだポイント種別定義の例を示す。この例は、点はんだの例で、データ#2が選択型データになっている。はんだ動作を行う前にはんだコテの先を「クリーニング」つまり清掃するかどうかを指定する。移動前作業番号に設定されている、作業「８」で、
if CleaningYN==1 then クリーニング動作実行 endif
といった命令を書くことにより、クリーニング有りに設定している場合はクリーニング動作実行を行わせる様にする。ここではCleaningYNは「クリーニング無し」の時、値として０、「クリーニング有り」の時、値として１を取るものとしている。又、図１９にこの点はんだ点の種別定義を使ったポイント列を示す
【００７３】
［第５の実施形態］
［５−１．構成］
本実施形態は、第１の実施形態の構成に加えて、独立データ組記憶部を設けるものである。ポイント種別定義データで、作業命令列がどの独立定義データを参照するかを合わせて定義することで、作業命令列を実行する場合には、独立定義データの内容に合わせて作業命令が実行させる。
【００７４】
独立データ組記憶部で記憶する独立データ組としては、作業命令列に対する条件データを複数集めたものである。独立データ組としては、データ組を一意に区別する為のデータ組ID、ポイント種別選択での表示に利用する為のデータ組名、条件データID、条件データ名、条件データとしての上限値及び下限値といったものを含んでいる。
【００７５】
図２０に、独立データ組記憶部に記憶する独立データ組定義の一例を示す。図２０では、「データ組ID＝ScrewCondition」「データ組名＝ねじ締め条件」に対して、データ＃１ID＝ThredPitch、データ＃２ID＝ScrewLengthなど複数のデータの条件が記憶される。
【００７６】
ポイント種別定義データ記憶部では、ポイント種別名、そこで実行する作業命令列および作業命令列が参照する独立データ組を記憶する。例えば、図２１のポイント種別名定義では、参照する独立データ組として「データ＃１ID＝ThredPitch」が記憶される。
【００７７】
［５−２．作用・効果］
以上のような構成を有するロボット１０では、ねじ締めをする作業、ここではポイント作業「１０」の中で、ねじ締め条件を図２１のようにして参照する。この例では独立データ組を配列として複数化し、これを番号により参照する。
【００７８】
この様な方式の利点は、例えば、「ねじ締め」において、ねじピッチ（ThredPitch)、ねじ長さ(ScrewLength)、ドライバ回転数（RotateSpeed）、．．．といったデータにより、ねじを締める時の下降速度や下降距離を制御する場合、これらのデータは各ポイントに持たない方が使いやすい。１つのデータではなく複数のデータ組により条件が指定され、個々の点で条件を変更する必要が低い場合には、ポイントにデータを持たず、独立したデータ組を複数持ち、これを番号等によりポイントから間接参照すると使い勝手が良い。
【００７９】
また、上記例では、ScrewConditionを定義したが、これをユーザが定義せず、予め組み込みの条件データの枠組みを用意しても良い。ユーザはその枠組みの中で、項目を定義する。合わせてポイントにも、予め組み込みの「条件番号」といったものを用意しておく。これによって例えば、条件番号「１」を付けたポイントで、「ScrewLength」といった名前のみでデータアクセスをすると、自動的に条件番号「１」のねじ長さの設定値を取ってくるといったことを行えるようにすることができる。
【００８０】
［第５の実施形態の変形例１］
第５の実施形態では、作業列毎に参照する独立組データを記憶したが、作業を行うプログラム毎に参照する独立組データを記憶しても良い。
【００８１】
プログラム定義データ記憶部を設け、作業を行うプログラムにおいて、作業命令列が参照する条件データを記憶させる。これにより、作業を行うプログラム内で参照する条件データに基づいて作業を行うことが可能となる。
【００８２】
つまり、図２０のScrewConditionの定義データを独立データとしてではなく、図２３に示すように、プログラム毎に設定するデータの定義として定義する。そして、これを図２４の様に作業から参照する。
【００８３】
これも独立データ組の場合同様、予め組み込みのプログラムデータの枠組みを用意し、その中で定義する様にすることもできる。図２５の様に、最終のデータIDのみで、現在実行中のプログラムのプログラムデータを参照することができる。
【００８４】
［第５の実施形態の変形例２］
第５の実施形態の変形例１では、作業を行うプログラム毎に参照する独立組データを記憶したが、全プログラムに共通する独立組データをシステムデータ定義として記憶しても良い。
【００８５】
すなわち、全プログラムに関するシステム定義データ記憶部を設け、全プログラムにおいて、作業命令列が参照する条件データを記憶させる。これにより、全プログラムで参照する条件データに基づいて作業を行うことが可能となる。
【００８６】
例えば、図２６の様にして装置の応答待ち時間をデータとして持つことを定義する。この、値は、図２７の様な形で参照する。
【００８７】
装置の応答待ち時間などの装置の固定された特性などは、装置を変えない限りは変更の必要がなく、ポイント毎、あるいはプログラム毎にデータを持つ必要は無い。このような場合には、全プログラムに共通にデータを定義した方が有用である。
【００８８】
ポイント設定データ定義、独立データ組定義、プログラムデータ定義、システムデータ定義のいずれの場合も、データ定義によりデータ記憶ができ、これが参照できるだけではなく、データ定義に従って入力設定操作をする手段を持つことが重要である。
その為、データ定義はデータの名称と型だけではなく、入力操作に必要な情報、例えば値の下限値、上限値といったものも合わせて定義できるようにする。
【００８９】
［第６の実施形態］
［６−１．構成］
本実施形態は、第１の実施形態に加えて、アカウント記憶部を設けるものである。図２８に示すように、アカウント記憶部は、個々のデータ毎に、その所有者がどのアカウントであるかの情報、並びに保護モードの設定値を記憶する。
【００９０】
「ポイント種別定義」、一部の「ポイント作業」、「独立データ組定義」「プログラムデータ定義」「システムデータ定義」等のデータは、それぞれ個別に「所有者」があるものとする。所有者はそれを作成した時に、ログインしている「アカウント」とする。
【００９１】
［６−２．作用］
本実施形態は、アカウント記憶部に対して「アカウント」を追加作成できる機能を持たせる。「アカウント」は「ログイン名(ID)」と「パスワード（又は暗証番号）」からなる。上記データの作成を行うには、まず「ログイン」操作をし（ログインする為には、ログイン名(ID)を指定し、パスワードを入力する必要がある）、その後、作成を行う。この時作られる定義等は、その「アカウント」の所有となる。所有者のある定義等に対するアクセスは制限することができる様にする。
【００９２】
所有者はそのデータに対して保護モードを設定・変更できる様にする。保護モードを設定することにより「変更権」「参照権」「利用権」といったものを制限することができる。
（１）「変更権」：データを変更することができる。この場合の「変更」とは例えばポイント作業の命令を変更するといったことを意味する。「変更権」はそのまま「削除権」を意味するものとする。「変更権」が無いということは「削除権」が無い。つまりそのデータを削除することはできない。
（２）「参照権」：データを読む（見る）ことができる。参照権が無いと、例えばポイント種別定義の内容を見ることができない。後述の「利用権」とは別である。内容を見ることができなくてもそれを利用することはできる。
（３）「利用権」：データを利用することができる。「設定データの値を変える（設定する）」のは変更権が無くても利用権があればできるものとする。
【００９３】
保護モードには「制限無し(No-Limit)」「公開(Public)」「保護(Protected)」「私的(Private)」といったものを設ける。それぞれのモードでのアクセス制限は図２９のとおりとなる。「私的」なものとは、例えば中間的な種別定義で、これを利用できなくするのはデータ保護というよりは、見えなくすることにより分かり易くすることを目的としている。私的な（利用権を制限した）種別定義は所有者以外からは、その存在すら知ることができない。
【００９４】
［６−３．効果］
本実施形態においては、中間業者（システムインテグレータ等）がポイント種別定義等を行い、これをユーザに提供する場合などにおいて、中間業者が作成したポイント種別定義等をユーザに公開することを防止することができる。
【００９５】
また、工場の生産技術部門がポイント種別定義等を行い、実作業者が位置を指定して最終的なティーチングを行う場合において。実作業者が間違ってポイント種別定義等を削除してしまうのを防ぐためのプロテクトとして機能する。
【００９６】
以下にアクセス制限との関連においてポイント種別定義の継承に関する補足説明を行う。
図３ねじ締め点の定義，図１３の継承による確認付きねじ締め点の定義，図１４の上書き継承による別フィーダねじ締め点の定義の関連は図３０の様に表せる。白抜きの△付き矢印により、継承関係を示している。
【００９７】
図３０では、「確認付きねじ締め点（図１３）」が「ねじ締め点（図３）」を元にして作られていることを示している。「別フィーダねじ締め点（図１４）」も同様に「ねじ締め点」を元にして作られている。一方、図１２の再利用しない確認付きねじ締め点の定義の関連を同様に表すと図３１の様になる。図３１の「確認付きねじ締め点（図１２）」は、「ねじ締め点」を継承しているのではなく、おお元の「PTP駆動点」に戻って作られていることがわかる。
【００９８】
この両方の方式は結果としての動作は同じである。しかし、定義レベルや公開・非公開に関連して考えると、この定義方式の違いは大きい。
【００９９】
つまり、図３０の様に「ねじ締め点」を継承する方式は「ねじ締め点」の定義内容が非公開であっても可能である。一方、図３１の様に継承しないで「確認付きねじ締め点」を定義するには「ねじ締め点」の定義が非公開であるとむずかしい。
【０１００】
図１２の定義で、「移動中作業番号＝５」「ポイント作業番号＝１０」と指定しているが、この番号（即ち作業内容）は「ねじ締め点」の動作から流用している。この番号（即ち作業内容）が非公開ならばこの様な定義をすることができない。
一方、図１３の継承による確認付きねじ締めの定義では、元となるポイント種別の「ねじ締め点」に関して知る必要があるのは「TighteningPoint」という種別IDだけである。そこでの作業が実際にどのようにして行われているかについては知る必要が無い。ポイント作業番号が非公開であっても、あるいは定義内に書かれた作業が非公開であっても、確認付きねじ締めを定義することができる。
【０１０１】
「ねじ締め点」が中間業者（インテグレータ）により定義され、この内容が非公開になっているとする。生産技術レベルで、この「ねじ締め点」を元に「確認付きねじ締め点」を定義しようとした場合には、図１３の様な継承による定義が効果的である。
【０１０２】
［７．他の実施形態］
以上のように本発明の実施形態を説明したが、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。そして、この実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【図１】
2014226730.tif 000003
【図２】
2014226730.tif 000004
【図３】
2014226730.tif 000005
【図４】
2014226730.tif 000006
【図５】
2014226730.tif 000007
【図６】
2014226730.tif 000008
【図７】
2014226730.tif 000009
【図８】
2014226730.tif 000010
【図９】
2014226730.tif 000011
【図１０】
2014226730.tif 000012
【図１１】
2014226730.tif 000013
【図１２】
2014226730.tif 000014
【図１３】
2014226730.tif 000015
【図１４】
2014226730.tif 000016
【図１５】
2014226730.tif 000017
【図１６】
2014226730.tif 000018
【図１７】
2014226730.tif 000019
【図１８】
2014226730.tif 000020
【図１９】
2014226730.tif 000021
【図２０】
2014226730.tif 000022
【図２１】
2014226730.tif 000023
【図２２】
2014226730.tif 000024
【図２３】
2014226730.tif 000025
【図２４】
2014226730.tif 000026
【図２５】
2014226730.tif 000027
【図２６】
2014226730.tif 000028
【図２７】
2014226730.tif 000029
【図２８】
2014226730.tif 000030
【図２９】
2014226730.tif 000031
【図３０】
2014226730.tif 000032
【図３１】
2014226730.tif 000033