(57)【要約】【課題】熟練度を必要とすることなしに且つ立上げの工数を増やすことなしに、工作機械およびロボットの立上げ作業を簡易かつ容易に行う。【解決手段】工作機械（５、６）と組み合わせて使用するロボット（１）を制御するロボット制御装置（７）は、ロボット制御装置を工作機械に接続する通信部（９）と、通信部を介して工作機械の種類および数を検出する検出部（５２）と、検出部により検出された工作機械の種類および数に基づいてロボット制御装を設定する設定部（５５）と、を含む。設定部は、検出部により検出された工作機械の種類および数に基づいて、ロボット制御装置に格納されたロボット制御装置のための複数の設定ファイルから一つの設定ファイルを選択するようにした。【選択図】図３
2010191602.tif 000002
【特許請求の範囲】
【請求項１】
工作機械と組み合わせて使用するロボットを制御するロボット制御装置において、
前記ロボット制御装置を前記工作機械に接続する通信部と、
該通信部を介して前記工作機械の種類および数を検出する検出部と、
該検出部により検出された前記工作機械の種類および数に基づいて前記ロボット制御装を設定する設定部と、を具備するロボット制御装置。
【請求項２】
前記設定部は、前記検出部により検出された前記工作機械の種類および数に基づいて、前記ロボット制御装置に格納された前記ロボット制御装置のための複数の設定ファイルから一つの設定ファイルを選択する、請求項１に記載のロボット制御装置。
【請求項３】
前記検出部は、前記工作機械から前記ロボット制御装置に送信される、前記工作機械の種類に応じて一意的に定まる信号を使用して前記工作機械の種類および数を検出する、請求項１または２に記載のロボット制御装置。
【請求項４】
工作機械と組み合わせて使用するロボットを制御するロボット制御装置において、
前記ロボット制御装置を前記工作機械に接続する通信部と、
該通信部を介して前記ロボットの種類および数を前記工作機械に通知する通知部と、
前記工作機械から前記通信部を介して送信される設定情報に基づいて前記ロボット制御装を設定する設定部と、を具備するロボット制御装置。
【請求項５】
前記設定情報は、前記ロボットの種類および数に基づいて、前記工作機械に格納された前記ロボット制御装置のための複数の設定ファイルから選択された一つの設定ファイルに記録されている情報である、請求項４に記載のロボット制御装置。
【請求項６】
前記通知部は、前記ロボット制御装置から前記工作機械に送信される、前記ロボットの種類に応じて一意的に定まる信号を使用して前記ロボットの種類および数を通知する、請求項４または５に記載のロボット制御装置。
【請求項７】
前記選択された設定ファイルには、前記ロボットの設定情報と、前記工作機械の設定情報とが記録されており、
前記選択された設定ファイルに記録された前記ロボットの設定情報に基づいて前記ロボットの設定を行うときには、前記設定ファイルに記録された前記工作機械の設定情報に基づいて前記工作機械の設定も行うようにした、請求項２または５に記載のロボット制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、工作機械と組み合わせて使用するロボットを制御するロボット制御装置に関する。
【背景技術】
【０００２】
素材ワークを工作機械に供給する作業および工作機械により加工された加工済ワークを工作機械から取出す作業は、まとめてロード・アンロード作業と呼ばれている。工作機械は高価であるので２４時間フル稼働させることが望ましいが、そのためには、ロード・アンロード作業を行う作業者を長時間勤務させる必要がある。
【０００３】
しかしながら、工作機械を用いた素材ワークの加工現場は、切削油およびバリ取りの粉塵が漂う悪環境であり、またワークの重量が比較的重い場合には作業者の身体に危険が及ぶ場合がある。それゆえ、作業者がロード・アンロード作業を長時間にわたって行うことは困難であり、作業者の代わりに、ロボットがロード・アンロード作業を行うことが望まれている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平７−１１４４０２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
作業者の代わりにロボットが使用される場合には、工作機械とロボットとを組み合わせて使用するために様々な立上げ作業が、工作機械およびロボットの据付時に必要とされる。
【０００６】
例えば、各種のインターロック信号を信号ケーブルを介して工作機械とロボットとの間で送受信する必要がある。このような信号の送受信のために、信号ケーブルを工作機械とロボットとの間で適切に配線し、信号を正確に送受信できるように工作機械およびロボットの設定を行う必要がある。なお、信号ケーブルとしては、アナログ信号用のケーブル、またはディジタル信号を扱うネットワークが使用される。
【０００７】
ロボットと工作機械との間で送受信されるインターロック信号は、生産システムにおけるロボットの作業内容に応じて異なるので、各信号の論理的な意味合いも生産システム毎に異なる。ところで、ロボットが有するどの信号と工作機械が有するどの信号とを接続するか、および各信号にどのような論理的な意味合いを持たせるか、についての設定は、信号の割付け作業と呼ばれている。
【０００８】
このような信号の割付け作業は、手作業によって行われるため、信号数が多い場合には非常に時間がかかることになる。さらに、信号の割付け作業は、ロボットおよび工作機械の両方に対して行う必要がある。また、ロボットおよび工作機械の両方で正確な割付け作業が行われない場合には、ロボットおよび工作機械のうちの一方から出力した信号が、ロボットおよび工作機械のうちの他方では意味の異なる別の信号に入力されてしまい、インターロックが正しく作用しないという問題が生じる。
【０００９】
さらに、ロボットおよび工作機械に共通の座標系を、ロボットと工作機械との相対位置関係に合わせてロボットおよび工作機械の両方に設定すると共に、ロボットのロード・アンロード動作をこの共通座標系に基づいて定義する必要がある。例えば、工作機械の自動ドアが開くのを待機する位置、工作機械内部への侵入経路、ワークの把持位置、工作機械外部への退避経路などが、この共通座標系を用いて、ロボットに設定される。
【００１０】
同様に、工作機械においても、この共通座標系を用いて、ロボットが把持する位置に加工完了ワークを移動させる必要がある。このように、共通座標系はロボットと工作機械との両方の動作にとって重要であり、ロボットの座標系が工作機械の座標系と異なる場合には、ワークのロード・アンロード作業を正確に行うことができない。
【００１１】
さらに、工作機械で実行される加工プログラムと、ロボットで実行されるロード・アンロード作業用プログラムとの対応関係を工作機械およびロボットの両方に設定する必要がある。工作機械で複数種類のワークの加工を行う場合には、ワークの種類毎に異なる加工プログラムが工作機械にて実行される。同様に、ロボットで複数種類のワークのロード・アンロードを行う場合にも、各ワーク毎に把持する位置・姿勢が異なるため、ワークの種類毎にロード・アンロード用の作業プログラムを用意する必要がある。
【００１２】
ワークの種類毎に品種番号を用意し、工作機械においては品種番号に対して実行されるべき加工プログラムの設定を行い、ロボットにおいても品種番号に対して実行されるべき作業プログラムの設定を行う必要がある。インターロック信号によって加工ワークの品種番号を工作機械からロボットに伝え、この品種番号に対応するロード・アンロード用の作業プログラムをロボットでも自動的に実行するのが望まれる。ただし、工作機械の加工プログラムとロボットの作業プログラムとの対応関係に食い違いが発生すると、ワークのロード・アンロード作業を正確に行うことができない。
【００１３】
工作機械へのワークのロード・アンロード作業にロボットを利用する場合には、工作機械を設置して立上げる際に、工作機械の立上げ作業に加えて、ロボットに対しても各種設定の立上げ作業を行う必要がある。そして、工作機械の立上げ作業とロボットの立上げ作業とはその内容が互いに異なるので、工作機械に精通した操作者と、ロボットに精通した操作者との両方が必要になる。このように一つの生産システムを立ち上げるために二人の操作者が要求されるので、そのような操作者を育成する育成費および育成期間が必要とされる。
【００１４】
さらに、ロボットの立上げ作業の工数が増加するだけでなく、ロボットに接続するための従来は不要であった工程が工作機械の立上げに必要となる。このため、そのような追加の工程が立上げ費用を増大させることになる。立上げ費用の増加は、工作機械におけるワークのロード・アンロード作業にロボットを利用する場合の問題点となっていた。
【００１５】
また、費用の問題が解決できた場合であっても、工作機械の立上げ操作者とロボットの立上げ操作者とが異なるので、工作機械の設定内容とロボットの設定内容との間で矛盾点が発生することがあった。特に、複数種類の工作機械および／または複数種類のロボットが存在する場合には、立上げ作業の内容もそれらの種類に応じて異なるので、かなりの熟練度が必要であった。このため、工作機械およびロボットの購入者はそれらの立上げ作業を学習するか、または立上げ作業者を雇う必要があり、そうでない場合には、工作機械およびロボットを使用することができなかった。
【００１６】
本発明はこのような事情に鑑みてなされたものであり、熟練度を必要とすることなしに且つ立上げの工数を増やすことなしに、工作機械およびロボットの立上げ作業を簡易かつ容易に行うことのできるロボット制御装置を提供することを目的とする。
【課題を解決するための手段】
【００１７】
前述した目的を達成するために１番目の発明によれば、工作機械と組み合わせて使用するロボットを制御するロボット制御装置において、前記ロボット制御装置を前記工作機械に接続する通信部と、該通信部を介して前記工作機械の種類および数を検出する検出部と、該検出部により検出された前記工作機械の種類および数に基づいて前記ロボット制御装を設定する設定部と、を具備するロボット制御装置が提供される。
【００１８】
すなわち１番目の発明においては、工作機械の種類および数に基づいてロボット制御装置が設定される。このため、工作機械およびロボットの種類に応じて設定内容が異なる場合であっても、そのような種類に応じてロボット制御装置の設定を行うことができる。従って、熟練度を必要とすることなしに且つ立上げの工数を増やすことなしに、工作機械およびロボットの立上げ作業を簡易かつ容易に行うことができる。また、設定が自動的に行われるので、設定ミスを防ぐこともできる。なお、工作機械の設定は、ロボットの設定に合致するように行われるので、工作機械およびロボットの設定内容に矛盾点が生じることはない。
【００１９】
２番目の発明によれば、１番目の発明において、前記設定部は、前記検出部により検出された前記工作機械の種類および数に基づいて、前記ロボット制御装置に格納された前記ロボット制御装置のための複数の設定ファイルから一つの設定ファイルを選択する。
すなわち２番目の発明において使用される設定ファイルは、ロボットまたは工作機械の設計者が予め作成してロボット制御装置に格納される。このため、熟練度をさらに必要とすることなしに、エンドユーザは設定ファイルを用いてロボットおよび工作機械の立ち上げ設定を自動的に行うことができる。
【００２０】
３番目の発明によれば、１番目または２番目の発明において、前記検出部は、前記工作機械から前記ロボット制御装置に送信される、前記工作機械の種類に応じて一意的に定まる信号を使用して前記工作機械の種類および数を検出する。
すなわち３番目の発明においては、工作機械の種類に応じて一意的に定まる信号、つまりＩＤを送信することにより、工作機械の種類および数が検出される。このため、熟練度をさらに必要とすることなしに、エンドユーザは、工作機械の種類および数に応じた設定を行うことができる。
【００２１】
４番目の発明によれば、工作機械と組み合わせて使用するロボットを制御するロボット制御装置において、前記ロボット制御装置を前記工作機械に接続する通信部と、該通信部を介して前記ロボットの種類および数を前記工作機械に通知する通知部と、前記工作機械から前記通信部を介して送信される設定情報に基づいて前記ロボット制御装を設定する設定部と、を具備するロボット制御装置が提供される。
【００２２】
すなわち４番目の発明においては、工作機械からの設定情報に基づいてロボット制御装置が設定される。このため、工作機械およびロボットの種類に応じて設定内容が異なる場合であっても、そのような種類に応じてロボット制御装置の設定を行うことができる。従って、熟練度を必要とすることなしに且つ立上げの工数を増やすことなしに、工作機械およびロボットの立上げ作業を簡易かつ容易に行うことができる。また、設定が自動的に行われるので、設定ミスを防ぐこともできる。なお、ロボットの設定は、工作機械の設定に合致するように行われるので、工作機械およびロボットの設定内容に矛盾点が生じることはない。なお、４番目の発明における「設定情報」は、ロボットの種類および数によって選択される設定ファイルまたはパラメータ設定指示などのロボット制御装置を設定する設定内容を指す。
【００２３】
５番目の発明によれば、４番目の発明において、前記設定情報は、前記ロボットの種類および数に基づいて、前記工作機械に格納された前記ロボット制御装置のための複数の設定ファイルから選択された一つの設定ファイルに記録されている情報である。
すなわち５番目の発明においては、において使用される設定ファイルは、ロボットまたは工作機械の設計者が予め作成してロボット制御装置に格納される。このため、熟練度をさらに必要とすることなしに、エンドユーザは設定ファイルを用いてロボットおよび工作機械の立ち上げ設定を自動的に行うことができる。
【００２４】
６番目の発明によれば、４番目または５番目の発明において、前記通知部は、前記ロボット制御装置から前記工作機械に送信される、前記ロボットの種類に応じて一意的に定まる信号を使用して前記ロボットの種類および数を通知する。
すなわち６番目の発明においては、ロボットの種類に応じて一意的に定まる信号、つまりＩＤを送信することにより、ロボットの種類および数が検出される。このため、熟練度をさらに必要とすることなしに、エンドユーザは、ロボットの種類および数に応じた設定を行うことができる。
【００２５】
７番目の発明によれば、２番目または５番目の発明において、前記選択された設定ファイルには、前記ロボットの設定情報と、前記工作機械の設定情報とが記録されており、前記選択された設定ファイルに記録された前記ロボットの設定情報に基づいて前記ロボットの設定を行うときには、前記設定ファイルに記録された前記工作機械の設定情報に基づいて前記工作機械の設定も行うようにした。
すなわち７番目の発明においては、ロボット制御装置と工作機械との両方を同時に設定できるので、ロボット制御装置および工作機械の設定内容に食い違いが生じるのを防ぐことができる。
【図面の簡単な説明】
【００２６】
【図１】工作機械、ロボットおよび本発明に基づくロボット制御装置を含む生産システムを示す斜視図である。
【図２】工作機械、ロボットおよび本発明に基づくロボット制御装置を含む生産システムの略図である。
【図３】図２に示されるロボット制御装置を示す略図である。
【図４】メモリに格納されているパラメータを自動設定するのを説明するための図である。
【図５】設定ファイルの準備手順を説明するためのフローチャートを示す図である。
【図６】（ａ）一つの実施形態に基づくロボットの自動設定手順を説明するためのフローチャートを示す第一の図である。（ｂ）一つの実施形態に基づくロボットの自動設定手順を説明するためのフローチャートを示す第二の図である。
【図７】他の実施形態に基づくロボットの自動設定手順を説明するためのフローチャートを示す第二の図である。
【図８】さらに他の実施形態に基づくロボットの自動設定手順を説明するためのフローチャートを示す第二の図である。
【図９】図４における各機能を備えたロボット制御装置およびＣＮＣ制御装置の第一の組合せを示す図である。
【図１０】図４における各機能を備えたロボット制御装置およびＣＮＣ制御装置の第二の組合せを示す図である。
【図１１】図４における各機能を備えたロボット制御装置およびＣＮＣ制御装置の第三の組合せを示す図である。
【図１２】図４における各機能を備えたロボット制御装置およびＣＮＣ制御装置の第四の組合せを示す図である。
【図１３】図４における各機能を備えたロボット制御装置およびＣＮＣ制御装置の第五の組合せを示す図である。
【図１４】別の実施形態に基づくロボット制御装置およびＣＮＣ制御装置の組合せを示す図である。
【図１５】ネットワーク上に同じ機種番号を持つ工作機械が複数存在した場合におけるＩＤ受信手順を説明するためのフローチャートを示す図である。
【図１６】受信ＩＤ管理テーブルを示す図である。
【発明を実施するための形態】
【００２７】
以下、添付図面を参照して本発明の実施形態を説明する。以下の図面において同様の部材には同様の参照符号が付けられている。理解を容易にするために、これら図面は縮尺を適宜変更している。
図１は工作機械、ロボットおよび本発明に基づくロボット制御装置を含む生産システムを示す斜視図である。図１に示されるように、ロボット１の手首先端には、作業ツール２が取付けられている。ロボット１は走行軸３上を移動可能に設置されている。
【００２８】
ワークを載置するための四つのパレットＰ１、Ｐ２、Ｐ３、Ｐ４が走行軸３に沿って走行軸３の一側に順番に配置されている。図示されるように、パレットＰ１上には、複数の作業ワークＷ１が載置されている。さらに、パレットＰ２上には、作業ワークＷ１とは種類の異なる作業ワークＷ２が載置されている。また、走行軸３の他側には、仮置き台４および工作機械５、６が配置されている。
【００２９】
ロボット１は、作業ツール２を用いて、パレットＰ１上の作業ワークＷ１およびパレットＰ２上の作業ワークＷ２を把持して仮置き台４に配置する。そして、工作機械５が加工中でない場合には、仮置き台４に配置された作業ワークＷ１をロボット１が作業ツール２によって把持し、工作機械５に取付ける。
【００３０】
次いで、ロボット１は工作機械５に対して加工開始命令を発行する。工作機械５は、ロボット１からの加工命令により、ワークＷ１の加工を始める。そして、加工が完了すると、工作機械５はロボット１に対して、加工完了信号を出す。加工完了信号を受信したロボット１は、加工済みの作業ワークＷ１を工作機械５から取出して、作業ワークＷ１をパレットＰ３上に配置する。
【００３１】
同様に工作機械６が加工中でない場合には、仮置き台４に置かれた作業ワークＷ２をロボット１が作業ツール２によって把持し、工作機械６に取付ける。次いで、ロボット１は工作機械６に対して加工開始命令を発行する。工作機械６は、ロボット１からの加工命令により、ワークＷ２の加工を始める。そして、加工が完了すると、工作機械６はロボット１に対して、加工完了信号を出す。加工完了信号を受信したロボット１は、加工済みの作業ワークＷ２を工作機械６から取出して、作業ワークＷ２をパレットＰ４上に配置する。
【００３２】
図１に示されるように、ロボット１および走行軸３は、ケーブル１０、１１によりロボット制御装置７に接続されている。このため、ロボット１および走行軸３の動作はロボット制御装置７により制御される。ロボット制御装置７はネットワークケーブル１２によりパソコン８に接続されている。
【００３３】
そして、ロボット制御装置７と仮置き台４とは、ディジタル信号入出力ケーブル１３によって接続されている。さらに、仮置き台４には、作業ワークＷ１用の位置決め治具４ａと作業ワークＷ２用の位置決め治具４ｂとが取付けられている。さらに、ロボット制御装置７と工作機械５、６とは、ネットワークケーブル９によって接続されている。
【００３４】
図２は工作機械、ロボットおよび本発明に基づくロボット制御装置を含む生産システムの略図である。さらに、図３は図２に示されるロボット制御装置を示す略図である。図３に示されるように、ロボット制御装置７は、バス１５により互いに接続されたＣＰＵ１４、メモリ１６、記憶装置１７などを備えている。
【００３５】
図３に示されるように、メモリ１６には、ＣＰＵ１４により実行され、ロボット制御装置全体を制御する制御プログラム１８と、作業プログラム１９、２０とが格納されている。作業プログラム１９は、作業ワークＷ１に関する作業をロボット１が作業ツール２を用いて行うためのものであり、作業プログラム２０は、作業ワークＷ２に関する作業をロボット１が作業ツール２を用いて行うためのものである。これら作業プログラム１９、２０は、いずれも制御プログラム１８を用いて解釈され、ロボット１、走行軸３および作業ツール２の動作に変換される。さらに、メモリ１６には、各種のパラメータ３３、３４、３５が格納されている。
【００３６】
ロボット制御装置７はサーボインタフェース３２を備えている。図２および図３から分かるように、サーボインタフェース３２は、ケーブル１０を介してロボット１に接続されており、ケーブル１１を介して走行軸３に接続されている。このため、ロボット制御装置７からの動作指令がロボット１および走行軸３の各モータに伝達され、それにより、ロボット１および走行軸３が動作するようになる。
【００３７】
さらに、ロボット制御装置７はネットワークインタフェース２１を備えている。ネットワークインタフェース２１は、ネットワークケーブル１２を介してパソコン８に接続されている。またロボット制御装置７はディジタル信号入出力回路２２を備えている。ディジタル信号入出力回路２２は、ディジタル信号入出力ケーブル１３、２３を介して位置決め治具４および作業ツール２にそれぞれ接続されている。
【００３８】
ここで、ディジタル信号の入出力は、ラダー実行部４４がメモリ１６上のラダープログラム４５を実行することにより実施されるものとする。なお、ディジタル信号の入出力は、作業プログラム１９、２０がディジタル信号入出力回路２２を直接使用して実施されるようにしてもよい。さらに、ディジタル信号の入出力は、ラダー実行部４４によって実行されるラダープログラム４５あるいは作業プログラム１９、２０が、ネットワークインタフェース２１およびネットワークケーブル９を介して工作機械５、６の間で行うこともできる。
【００３９】
図２に示されるパソコン８は、設定ファイル２５、２６、２７、２８が格納されたハードディスク装置２４を備えている。また、図３に示されるロボット制御装置７の記憶装置１７には、パソコン８のハードディスク装置２４内の設定ファイル２５、２６、２７、２８と同じ内容の設定ファイル３６、３７、３８、３９が保存されている。
【００４０】
また、図２に示されるように、ロボット制御装置７の操作盤インタフェース２９は、操作盤ケーブル３０を介して教示操作盤３１に接続されている。図２に示されるように、教示操作盤３１は表示器３１ａと入力ボタン３１ｂを備えており、作業者が教示操作盤３１によりロボット制御装置７の操作を行うことができる。
【００４１】
また、図３に示されるように、ロボット制御装置７はＩＤ保存用メモリ４６を備えている。ＩＤ保存用メモリ４６にはＩＤ５０が保存されており、ＩＤ５０は製品番号４７、機種番号４８およびユーザ番号４９で構成されている。機種番号４８は、ロボット１の種類を特定するための番号であってもよく、またロボット制御装置７の種類を特定するための番号であってもよく、走行軸３の種類を特定するための番号であってもよく、またロボット１、ロボット制御装置７、走行軸３のそれぞれの種類を特定するための番号を組み合わせたものであってもよい。
【００４２】
製品番号４７は、ロボット１の個体を表わすために一意的に付けられたシリアル番号である。製品番号４７は、ロボット１の各個体毎に付けてもよく、制御装置７の各個体毎に付けてもよく、走行軸３の各個体毎に付けてもよく、それぞれのシリアル番号を組み合わせたものであってもよい。
【００４３】
ユーザ番号４９は、ロボット１、ロボット制御装置７あるいは走行軸３の出荷先のエンドユーザを特定するための番号である。製造元から、商社やシステムハウスを一旦経由してエンドユーザに出荷される場合もあるので、ユーザ番号４９は、商社やシステムハウスを特定するものであってもよく、商社、システムハウス、エンドユーザを特定するための番号によって構成されるものであってもよい。ＩＤ５０は、必要に応じて製品番号４７、機種番号４８、ユーザ番号４９以外の番号を付加してもよく、また必ずしもこれらの全てを備える必要もない。
【００４４】
図２から分かるように、工作機械５、６は、ＣＮＣ制御装置４０、４１をそれぞれ備えている。図面には示さないものの、これらＣＮＣ制御装置４０、４１も、ロボット制御装置７と同様の構成となっている。つまり、ＣＮＣ制御装置４０、４１は、それぞれ前述したのと同様なＣＰＵ１４、操作盤インタフェース２９、サーボインタフェース３２、メモリ１６、ラダー実行部４４、ディジタル信号入出力回路２２、ネットワークインタフェース２１、記憶装置１７、バス１５、ＩＤ保存用メモリ４６、ＩＤ５０等を備えている。ただしＣＮＣ制御装置４０、４１は、教示操作盤３１の代わりに、操作盤４２、４３をそれぞれ備えている。
【００４５】
図３に示されるＩＤ保存用メモリ４６には、ＣＮＣ制御装置に関するＩＤ５０が保存されている。ＩＤ５０は製品番号４７、機種番号４８、ユーザ番号４９で構成されている。機種番号４８は、工作機械５、６の種類を特定するための番号であってもよく、またＣＮＣ制御装置４０、４１の種類を特定するための番号であってもよく、それぞれの種類を特定するための番号を組み合わせたものであってもよい。
【００４６】
製品番号４７は、工作機械５、６を個別に表わすために一意に付けられたシリアル番号である。製品番号４７は、工作機械５、６の各個体毎に付けてもよく、ＣＮＣ制御装置４０、４１の各個体毎に付けてもよく、それぞれのシリアル番号を組み合わせたものであってもよい。
【００４７】
ユーザ番号４９は、工作機械５、６、ＣＮＣ制御装置４０、４１の出荷先のエンドユーザを特定するための番号である。ユーザ番号４９は、工作機械メーカを特定するものであってもよく、工作機械のエンドユーザを特定するものであってもよく、それぞれのユーザ番号を組み合わせたものであってもよい。さらに、ＩＤ５０は、必要に応じて製品番号４７、機種番号４８、ユーザ番号４９以外の番号を付加してもよく、また必ずしもこれらの全てを備える必要もない。
【００４８】
図３に示される記憶装置１７としては、具体的にはハードディスク装置、メモリカード、ＵＳＢメモリといった不揮発性の二次記憶装置であってもよく、バッテリバックアップされた不揮発性のメモリであってもよく、また単なるＤＲＡＭメモリのような揮発性メモリであってもよい。揮発性メモリの場合には、記憶装置１７が設定ファイルを参照する前あるいは参照するたびに、パソコン８のハードディスク装置２４からネットワークケーブル１２およびネットワークインタフェース２１を経由して、取得してもよい。
【００４９】
ＩＤ５０を保存するための保存用メモリ４６は、メモリ１６とは別の独立したメモリとして構成してもよく、あるいはＩＤ５０は記憶装置１７に保存され、必要に応じて記憶装置１７からメモリ１６に読込まれる構成であってもよい。
【００５０】
ＩＤ５０の製品番号４７や機種番号４８は、ロボットや工作機械が製造メーカから出荷される際に教示操作盤３１や操作盤４２から、入力画面を使って入力され、ＩＤ保存用メモリ４６に記録される。製品番号４７は、ロボットや工作機械の個体毎に割り当てられるユニーク（一意的）な番号であり、製造メーカの製造管理システムにより管理されている。
【００５１】
ユーザ番号４９は製品出荷後にシステムハウスやエンドユーザ、工作機械メーカなどが教示操作盤３１や操作盤４２から、入力画面を使って入力され、ＩＤ保存用メモリ４６に記録される。ユーザ番号４９は八桁の整数であるが、システムハウス、エンドユーザ、工作機械メーカなどにユニークな数字を割り当てるため、特定の組織にて割り当てが管理され、必要であれば事前に管理組織に要求して、ユーザ番号の割り当てを受ける。
【００５２】
本発明においては、記憶装置１７に格納されている設定ファイル３６、３７、３８、３９を用いて、メモリ１６に格納されているパラメータ３３、３４、３５を自動的に設定する。図４は、メモリ１６に格納されているパラメータを自動設定するのを説明するための図である。図４に示されるように、制御プログラム１８は、設定ファイル取得部５１、ＩＤ取得部５２、設定ファイル選択部５３、設定ファイル処理部５４、パラメータ設定部５５を含んでいる。
【００５３】
後述する内容から分かるように、ＩＤ取得部５２は、工作機械および／またはロボットの種類および数を検出する役目を果たす。さらに、パラメータ設定部５５は、工作機械および／またはロボットの種類および数に基づいてロボット制御装置を設定する役目を果たすものとする。
【００５４】
さらに、図５は、設定ファイルの準備手順を説明するためのフローチャートを示す図である。以下、図４および図５を参照して、設定ファイルの準備手順を説明する。はじめに、図５のステップ１０１において、作業者はパソコン８を用いて、設定ファイル２５、２６、２７、２８をハードディスク装置２４上に予め作成する。これら四つの設定ファイル２５、２６、２７、２８はそれぞれロボット１がロード・アンロード作業を実施する工作機械の機種と台数の組合せに応じて互いに異なるように作成される。
【００５５】
或る実施例においては、設定ファイル２５〜２８は以下の場合に使用されるように作成される。
設定ファイル２５    機種Ａの工作機械が一台の場合
設定ファイル２６    機種Ａの工作機械が二台の場合
設定ファイル２７    機種Ｂの工作機械が一台の場合
設定ファイル２８    機種Ｂの工作機械が二台の場合
【００５６】
このような設定ファイル２５〜２８の作成が完了すると、ロボット制御装置７およびパソコン８をネットワークケーブル１２で接続する。そして、パソコン８のハードディスク装置２４の設定ファイル２５、２６、２７、２８をネットワークケーブル１２を介して記憶装置１７に転送する。
【００５７】
次いで、ステップ１０２において、作業者は教示操作盤３１を用いて、設定ファイルの取得指示６０を設定ファイル取得部５１に対して発行する。次いで、設定ファイル取得部５１は、ＩＤ保存用メモリ４６からＩＤ５０を読出し、ネットワークインタフェース２１を介して、パソコン８にＩＤ５０を送信する（ステップ１０３）。
【００５８】
次いで、パソコン８は、ＩＤ５０に関してハードディスク装置２４内の設定ファイルを検索する（ステップ１０４）。その後、設定ファイル取得要求のあった制御装置用に作成された設定ファイルのみをネットワークケーブル１２を介して送信する（ステップ１０５）。これにより、ステップ１０６において、設定ファイル取得部５１は取得要求のあった設定ファイル２５〜２８を受信する。
【００５９】
最終的に、設定ファイル取得部５１は取得した設定ファイルを設定ファイル３６、３７、３８、３９として記憶装置１７に書込む（ステップ１０７）。このため、設定ファイル２５と３６、２６と３７、２７と３８、２８と３９は互いに同じ内容である。なお、このような場合には、不必要な設定ファイルが記憶装置１７に書き込まれることが防止されるのが分かるであろう。
【００６０】
本発明に基づくロボットの自動設定は、ロボット１、走行軸３、ロボット制御装置７、仮置き台４、工作機械５、６が作業現場に設置されて、ケーブル１０、１１、ディジタル信号入出力ケーブル１３、２３およびネットワークケーブル９により互いに接続された後で開始される。
【００６１】
図６（ａ）および図６（ｂ）は、一つの実施形態に基づくロボットの自動設定手順を説明するためのフローチャートを示す図である。このフローチャートのステップ１１１においては、作業者は教示操作盤３１を用いて、自動設定開始指示６１をＩＤ取得部５２に対して発行する。
【００６２】
そして、ステップ１１２において、ＩＤ取得部５２は、ネットワークインタフェース２１およびネットワークケーブル９を介して、工作機械５のＣＮＣ制御装置４０のＩＤ保存用メモリ４６に保存されているＩＤ５０、および工作機械６のＣＮＣ制御装置４１のＩＤ保存用メモリ４６に保存されているＩＤ５０を取得する。ここでＣＮＣ制御装置４０のＩＤをＩＤ５０ａ、ＣＮＣ制御装置４１のＩＤをＩＤ５０ｂで表わす。
【００６３】
ＩＤ５０を取得するときに工作機械５がネットワークケーブル９に接続されていない場合、接続されていてもＣＮＣ制御装置４０の電源が入っていない場合、あるいはＣＮＣ制御装置４０がＩＤ５０自体を有していない場合には、ＩＤ５０ａを取得することができない。同様な理由により、工作機械６からＩＤ５０ｂを取得できない場合もある。
【００６４】
ＩＤ取得部５２はＩＤ５０ａおよび５０ｂをＩＤ受信５７し、設定ファイル選択部５３に対して、受信したＩＤ５０ａと５０ｂを設定ファイル選択部５３に通知６２する。設定ファイル選択部５３は、ＩＤ５０ａと５０ｂの機種番号４８に基づいて工作機械５、６の機種を判別し、記憶装置１７に記憶されている設定ファイル３６、３７、３８、３９から一つの設定ファイルを選択５９する。
【００６５】
つまり、ＩＤ５０ａ、５０ｂのうちのいずれか一方のみがＩＤ受信５７でき、そのＩＤの機種番号４８がＡであった場合には、設定ファイル３６が選択され（ステップ１１３、１１５、１１９、１２１）、そのＩＤの機種番号４８がＢであった場合には、設定ファイル３８が選択される（ステップ１１３、１１４、１１７、１２１）。
【００６６】
また、ＩＤ５０ａと５０ｂのどちらもＩＤ受信５７され、それらＩＤの機種番号４８がどちらもＡであった場合には、設定ファイル３７が選択され、ＩＤの機種番号４８がどちらもＢであった場合には、設定ファイル３９が選択される（ステップ１１３、１１５、１１８、１２１）。
【００６７】
なお、ＩＤ５０ａ、５０ｂのどちらも受信できなかった場合（ステップ１１３、１１４、１１６）、あるいは一方の機種番号４８がＡで他方がＢであった場合には、記憶装置１７には、その場合に使用されるために作成された設定ファイルが存在しないため（ステップ１２２）、自動設定は失敗し中止される（ステップ１２０、１２３）。
【００６８】
次いで、ステップ１２４においては、設定ファイル選択部５３が受信したＩＤに対応した設定ファイルの内容が、設定ファイル処理部５４に通知６３される。一つの設定ファイルには様々なパラメータとそれに対する設定値が記載されているので、設定ファイル処理部５４では、設定ファイルの内容を解析し、設定ファイルによって設定されるべき、パラメータとその値を抽出する。
【００６９】
そして、設定ファイル処理部５４は、抽出した結果に基づいてパラメータ設定指示６４をパラメータ設定部５５に対して行う（ステップ１２５）。次いで、パラメータ設定部５５においては、パラメータ設定指示６４に基づいて、パラメータ３３、３４、３５に対してパラメータ書き込み６５を行い（ステップ１２６）、自動設定が完了する。
【００７０】
ここで、パラメータ３３、３４、３５はロボット制御装置７に対して行われる各種の設定を含む。本実施例においては、パラメータ３３をインターロック信号の割付け設定値とし、パラメータ３４をロボットのロード・アンロード動作を定義するための座標系の設定値とし、パラメータ３５を品種番号に対して実行する作業プログラムの設定値とする。当然のことながら、他のパラメータがロボット制御装置７のメモリ１６に格納されている場合もある。
【００７１】
ロボット制御装置７におけるパラメータ３３、３４、３５を設定した後で、これらパラメータ３３、３４、３５に対応して工作機械５、６を自動的に設定する。そのような工作機械５、６の設定には複数の方法がある。
【００７２】
工作機械５、６の一つの設定方法は、ロボット制御装置７の設定方法と同様である。この場合には、工作機械５は、工作機械６およびロボット制御装置７からＩＤを取得する。ＩＤの組合せ毎の設定ファイルはパソコン８により作成され、工作機械５の記憶装置１７に予め転送されるものとする。そして、取得したＩＤに基づいて設定ファイルを選択し、設定ファイルの内容を解析し、パラメータ設定内容を抽出して、パラメータの書き込みを同様に行う。工作機械６についても概ね同様である。
【００７３】
このような場合には、ロボット制御装置７で使用するための複数の設定ファイル、工作機械５で使用するための複数の設定ファイル、工作機械６で使用するための複数の設定ファイルをそれぞれパソコン８で作成し、それぞれの記憶装置１７に予め保存する必要がある。
【００７４】
また、このような場合には、ロボット制御装置７および工作機械５、６の各記憶装置１７に保存されている設定ファイルの内容に矛盾が生じないようにする必要がある。例えばロボット制御装置７の記憶装置１７の設定ファイルだけを更新し、工作機械５、６の記憶装置１７の設定ファイルを更新しなかった場合、自動設定によって設定される内容はロボット制御装置７と工作機械５、６との間で矛盾する可能性がある。
【００７５】
このことに対処するために、パソコン８で設定ファイルを作成する際に、単一の設定ファイルが、ロボット制御装置７のパラメータの設定内容と、工作機械５、６のパラメータの設定内容とを含むようにする。あるいは、ロボット制御装置７のパラメータの設定内容と、工作機械５、６のパラメータの設定内容とを個別に作成した後で、これらパラメータを連結して単一の設定ファイルを作成してもよい。これにより、パソコン８で作成された設定ファイルは、ロボット制御装置７で使用される設定部分と、工作機械５、６で使用される設定部分との両方を含むことになる。
【００７６】
このような場合には、設定ファイル選択５９のときに（ステップ１２１）、ＩＤ受信５７により取得したＩＤに加えて、対応するＩＤ保存用メモリ４６内のＩＤ５０を用いて、設定ファイルの選択を行う。
【００７７】
ただし、このような場合には、ロボット制御装置７および工作機械５、６が同一の処理を実行するので、全体として煩雑になりうる。図７は、他の実施形態に基づくロボットの自動設定手順を説明するためのフローチャートを示す第二の図である。図７は図６（ｂ）に対応しており、図７におけるステップ１２４以前の処理は図６（ａ）と同様であるので説明を省略する。
【００７８】
図７のステップ１２４ａに示されるように、設定ファイルが、ロボット制御装置７、工作機械５、６のうちのいずれの内容に関するものであるかを判断する。そして、設定ファイルの内容に応じて、設定ファイルをロボット制御装置７または工作機械５、６に送信する（ステップ１３１〜１３４）。
【００７９】
つまり、図７に示される実施形態においては、ロボット制御装置７および工作機械５、６のうちのいずれか一つの装置のみが、設定ファイルの記憶装置１７への保存とＩＤを使った設定ファイルの選択５９とを行う。そして、ロボット制御装置７および工作機械５、６のうちの残りの装置は、設定ファイル選択部５３が選択した設定ファイルの内容６３だけをネットワークインタフェース２１を経由して取得する。そして、残りの装置は、取得した設定ファイルの内容を該装置の設定ファイル処理部５４によって処理して、パラメータ書き込み６５を行う。
【００８０】
このような場合には、ロボット制御装置７および工作機械５、６のうちの残りの装置の記憶装置１７を排除することが可能となる。また、設定ファイル処理部５４より前の処理を行わなくてもよい。また、教示操作盤３１あるいは操作盤４２、４３からの設定ファイル取得指示６０や自動設定開始指示６１は、ロボット制御装置７あるいは工作機械５、６のいずれか一つにおいてのみ実施すれば足り、それにより、全ての制御装置における自動実行を完了させられる。
【００８１】
また、図８はさらに他の実施形態に基づくロボットの自動設定手順を説明するための、図７と同様な図である。図８のステップ１３５、１３６から分かるように、ロボット制御装置７および工作機械５、６のうちのいずれか一つの装置の設定ファイル処理部５４が設定ファイルの内容を解析する際、当該いずれか一つの装置へのパラメータの書き込みだけではなく、ロボット制御装置７および工作機械５、６のうちの残りの装置のパラメータ設定指示６４を作成する。そして、この設定指示６４は、ネットワークインタフェース２１を介して、残りの装置のパラメータ設定部５５に通知され、残りの装置においてパラメータの書き込み６５が行われる。
【００８２】
図８に示される実施形態においては、ロボット制御装置７、工作機械５、６のいずれか一つのみが、設定ファイルの記憶装置１７への保存とＩＤを用いた設定ファイルの選択５９および設定ファイルの内容を処理すればよく、他の装置においては、パラメータ設定部５５以降の処理だけで足りる。
【００８３】
さらに、図面には示さないものの、ロボット制御装置７の記憶装置１７が設定ファイルを備えず、その代わりに、工作機械５、６のＣＮＣ制御装置４０、４１の記憶装置１７に転送された設定ファイルを用いて、ロボット制御装置７を自動設定してもよい。このような場合には、図４に示される処理がＣＮＣ制御装置４０、４１にて実施されるのと同等である。
【００８４】
すなわち、設定ファイル取得指示６０および自動設定開始指示６１を操作盤４２、４３から行い、設定ファイル選択部５３により設定ファイルを選択し、選択した設定ファイルをネットワークケーブル９を用いて、ロボット制御装置７に転送する。あるいはＣＮＣ制御装置４０、４１において、設定ファイル処理部５４によりパラメータ設定指示６４の作成まで行い、設定指示をネットワークケーブル９を用いてロボット制御装置７に転送してもよい。
【００８５】
図９から図１３のそれぞれは、図４における各機能を備えたロボット制御装置およびＣＮＣ制御装置の組合せを示す図である。図９から図１３のそれぞれに示されるように、図４に示される各機能５２〜５５が、ロボット制御装置７およびＣＮＣ制御装置４０、４１のうちのいずれかに担持されるようにしてもよい。図９から図１３より分かるように、各機能５２〜５５の担持については、種々の形態を採用できる。なお、図９から図１３においては、作業者がロボット制御装置７に接続された教示操作盤３１、あるいは工作機械５、６の操作盤４２、４３のいずれかから、自動設定開始指示を発行してもよい。
【００８６】
特に、図１２および図１３においては、ロボットの種類および数が、ロボット制御装置７から工作機械５のＣＮＣ制御装置４０まで送信される。そして、これら図面から分かるように、ＣＮＣ制御装置４０においてロボット制御装置７を設定するのに使用される設定ファイルあるいはパラメータ設定指示が作成される。次いで、これら設定ファイルあるいはパラメータ設定指示は、ＣＮＣ制御装置４０からロボット制御装置７に送信され、それにより、ロボット制御装置７の設定が行われる。
【００８７】
また、図１４は、別の実施形態に基づくロボット制御装置およびＣＮＣ制御装置の組合せを示す図である。図１４においては、ロボット制御装置７は、ＩＤ取得部５２により、ＣＮＣ制御装置４０、４１のそれぞれのＩＤ（台数含む）を受信後、受信したＩＤをＣＮＣ制御装置４０、ＣＮＣ制御装置４１およびロボット制御装置７の各設定ファイル選択部５３にネットワークケーブル９を用いて転送する。
【００８８】
そして、送信したＩＤに一致する設定ファイルが各装置の記憶装置１７にあるか否かが検索される。そのような設定ファイルが存在する場合には、その設定ファイルがロボット制御装置７に転送され、設定ファイル処理部５４およびパラメータ設定部５５を用いてパラメータの設定が行われる。このような場合には、設定ファイルがネットワーク上のどの装置上にあってもよく、ＩＤに基づいて適切な設定ファイルをネットワーク上の装置の記憶装置１７から自動的に検索して利用できる。なお、図面には示さないものの、工作機械５、６のＣＮＣ制御装置４０の各設定ファイル選択部５３にＩＤを送信して、設定ファイルを選択させてもよい。
【００８９】
ところで、ＩＤ受信５７するときに、複数の制御装置から同じ機種番号４８を持つＩＤが返された場合には、ＩＤ取得部５２は、ＩＤの送信元のネットワークアドレスに従って、同じ機種番号を持つ複数の制御装置がネットワーク上にあった場合でも、各制御装置に対して異なる設定を行うことができる。
【００９０】
一般的にネットワークとしては、Ｅｔｈｅｒｎｅｔ（登録商標）上でＴＣＰ／ＩＰが使用されることが多い。このような場合には、ネットワークの各ノードは一意の３２ビット長のＩＰアドレスを有している。ネットワークに対してデータ送信する場合、送信先はＩＰアドレスで指定される。また、ネットワークからデータ受信した場合、送信元のＩＰアドレスを取得することで、どのノードからのデータであるかを特定することができる。さらに、Ｅｔｈｅｒｎｅｔ（登録商標）ではブロードキャストあるいはマルチキャストによって、ネットワークの全ノードに対して、あるいは特定の複数のノードに対して、送信先のＩＰアドレスを指定することなしにデータを一斉に送信することができる。
【００９１】
これらの特性を用いることで、不特定のノードに対して、ＩＤの問い合わせを送信することができる。そして、問い合わせに対して返信されたＩＤの数によって、ネットワーク上に何台の制御装置があるかが分かる。さらに、返信されたＩＤによってどのような機種がネットワーク上に何台あるかも分かる。
【００９２】
また、ＩＤの問い合わせを行ったノードは一定時間の間、ＩＤの返信を有する。各ノードはＩＤの問い合わせがあった場合には、ＩＤの返信を一定時間内に必ず行う必要がある。ＩＤの問い合わせを行ったノードは、一定時間後に返信されたＩＤは無視する。
【００９３】
例えば一つの工作機械が故障あるいはメンテナンスのために稼働が困難となった場合、この工作機械を生産システムから切り離し、他の工作機械だけで生産を継続する。そのような場合には、操作盤４２、４３にシステムからの切り離しスイッチを用意する。そして、切り離しスイッチが連動モードであった場合には、ＩＤの問い合わせに対してＩＤを直ちに返信する。これに対し、切り離しスイッチが切断モードであった場合には、ＩＤの問い合わせに対してＩＤを返信しないことにより、生産システムから工作機械を容易に切断することを可能とする。
【００９４】
このように生産システムにおける装置の構成が変更となる場合には、従来では構成変更に合わせて工作機械やロボットを再設定する必要があり、これに多くの工数が必要となっていた。これに対し、本発明においては、システム構成毎に設定ファイルを準備しておき、教示操作盤３１から自動設定開始指示６１を再発行するだけで、再設定が自動的に行われる。このため、本発明においては、稼働困難となった装置をシステムから容易に切り離すことが可能である。
【００９５】
例えば、本実施例において、工作機械５、６がいずれも機種Ａであるとし、工作機械５だけで稼働する場合に使用する設定ファイルを２５ａ、工作機械６だけで稼働場合に使用する設定ファイルを２５ｂとすると共に、工作機械５、６で稼働する場合に使用する設定ファイルを２６とする。このような場合には、工作機械５、６の切り離しスイッチの設定に合わせて、設定ファイル２５ａ、２５ｂ、２６を適宜使用して設定することが可能となる。
【００９６】
図１５は、ネットワーク上に同じ機種番号を持つ工作機械が複数存在した場合におけるＩＤ受信手順を説明するためのフローチャートを示す図である。また、図１６は、受信ＩＤ管理テーブルを示す図である。
【００９７】
図１５および図１６に示される実施例においては、機種番号としてＭＯＤＥＬ１０１６を有する三つの工作機械がネットワーク上に存在しているものとする。図１５のステップ２０１においては、ブロードキャストあるいはマルチキャストにおいて、ＩＤ要求コマンドをネットワーク上の全ノードに送信する。
【００９８】
そして、このことに対して応答されたＩＤをステップ２０２にて受信する。ステップ２０３においては、受信に成功したか否かが判断され、成功した場合には、ステップ２０４に進む。ステップ２０４においては、管理テーブルに新しいエントリを追加し、受信ＩＤに含まれる機種番号、および製品番号を追加されたエントリに入力する。さらに、ＩＤの応答において使用されたネットワークアドレスも管理テーブルに入力する。
【００９９】
なお、受信に成功しなかった場合には、ステップ２０５に進んで、タイムアウトが発生したか否かが判定され、タイムアウトが発生した場合には、ステップ２０６において、ＩＤ受信処理が完了したものと判断する。
【０１００】
次いで、ステップ２０７において、管理テーブル内に同じ機種番号を持つエントリがあるかどうかを確認する。そのようなエントリが存在しない場合には、ネットワーク上には同じ機種番号を持つノードはないと判断できる。従って、ノード番号１を管理テーブルのノード番号の項に入力する（ステップ２０９）。
【０１０１】
これに対し、管理テーブル内に同じ機種番号を持つエントリが存在する場合には、ステップ２０８に進み、ノード番号決定ルールに従って、エントリがテーブルに新たに追加された工作機械のノード番号を決定する。例えば、工作機械間で重複されないネットワークアドレスあるいは製品番号を用いて、ノード間で優劣を決め、それにより、ノード番号を決定するようにしてもよい。
【０１０２】
例えば、ノード１、２が管理テーブルに既に存在していて、新しく追加したエントリのノード番号が決定ルールにより「１」と定められた場合には、これまでノード１であったノードをノード２に変更し、これまでノード２であったノードをノード３に変更するように、管理テーブル内におけるノード番号をリナンバリングする。
【０１０３】
管理テーブル内のノードを上記のように変更することにより、ネットワーク上に同じ機種の複数の工作機械および／または複数のロボットが存在する場合であっても、ノード番号を一意に定めることができる。すなわち、どの工作機械およびどのロボットが１番目であり、どの工作機械およびどのロボットが２番目であるかが定められる。
【０１０４】
前述したように図２および図３においては複数の設定ファイル２５〜２８、３６〜３９が示されている。以下、これら設定ファイルの具体的な記述内容について説明する。設定ファイルは、ＸＭＬ形式で記述されており、タグによってロボット制御装置および工作機械に対する様々な設定内容を定義することが可能となっている。
【０１０５】
本段落に記載されるように、設定ファイルには、ロボットまたは工作機械のＩＤが定義されている。定義されたＩＤに合致するロボットまたは工作機械がシステム内に見つかった場合に限り、この設定ファイルが使用される。例えば、ロボットのＩＤは以下のように定義される。
<RobotDef Name="Robot1" Node="1">
<ID>
<ProductNumber>
<Robot Value="A05B-2500-H601"/>
<Controller Value="A05B-2500-H510"/>
<RailAxis Value="A05B-2500-H894"/>
</ProductNumber>
<SerialNumber>
<Robot Value="R02206665"/>
<Controller Value="E02103021"/>
<RailAxis Value="R02806322"/>
</SerialNumber>
<Customer>
<Integrator Value="00000110"/>
<EndUser Value="00000005"/>
<LineName Value="00000101"/>
<CellName Value="00000102"/>
</CustomerID>
</ID>
</RobotDef>
【０１０６】
上記ＩＤにおいて、製品番号は、<SerialNumber>で定義され、機種番号は、<ProductNumber>で定義され、ユーザ番号は<Customer>で定義されている。上記の例においては、ロボット機構部の製品番号、機種番号、ユーザ番号が<Robot>で定義されており、制御装置の製品番号、機種番号、ユーザ番号が<Controller>で定義されており、走行軸の製品番号、機種番号、ユーザ番号が<RailAxis>で定義されている。さらに、上記の例においては、ユーザ番号として、ロボットが使用される製造設備のライン番号を<LineName>で定義し、製造設備のラインにおけるセル番号を<CellName>で定義している。
【０１０７】
なお、例えば製品番号、ユーザ番号に関してはＩＤの一致を要求しないとした場合には、以下のようにValue="*"とすればよい。
<RobotDef Name="Robot1" Node="1">
<ID>
<ProductNumber>
<Robot Value="A05B-2500-H601"/>
<Controller Value="A05B-2500-H510"/>
<RailAxis Value="A05B-2500-H894"/>
</ProductNumber>
<SerialNumber>
<Robot Value="*"/>
<Controller Value="*"/>
<RailAxis Value="*"/>
</SerialNumber>
<Customer>
<Integrator Value="*"/>
<EndUser Value="*"/>
<LineName Value="*"/>
<CellName Value="*"/>
</CustomerID>
</ID>
</RobotDef>
【０１０８】
また、工作機械のＩＤは以下のように定義される。
<MachineDef Name="Machine1" Node="1">
<ID>
<ProductNumber>
<Machine Value="MODEL1016"/>
<Controller Value="A23B-2100-H110"/>
</ProductNumber>
<SerialNumber>
<Machine Value="MA4311683"/>
<Controller Value="E01104302"/>
</SerialNumber>
<Customer>
<MachineBuilder Value="00000110"/>
<EndUser Value="00000005"/>
</CustomerID>
</ID>
</MachineDef>
【０１０９】
上記の例においては、ユーザ番号として、工作機械のMTB（Machine Tool Builder）を識別するためのIDを<MachineBuilder>で表わし、工作機械のエンドユーザを識別するためのIDを<EndUser>で表わしている。このようにユーザ番号は、設定ファイルの運用形態に応じて設定ファイルの利用者が自由に定義してよい。ただし、ユーザ番号はユニークな八桁の整数であることとし、ユニークであることを保証するために、特定の組織にて管理される必要があり、この組織が利用者にユーザ番号を事前に割り当てる。要求される場合には、同じ利用者に対して複数のユーザ番号を割り当ててもよい。
【０１１０】
例えば、同じ機種の二つの工作機械が存在していて、図６（ａ）におけるＩＤ受信処理によって定められたノード番号によって、ノード番号１のものをMachine1という名称とし、ノード番号２のものをMachine2という名称とする場合は、以下のようなID定義となる。
<MachineDef Name="Machine1" Node="1">
<ID>
<ProductNumber>
<Machine Value="MODEL1016"/>
<Controller Value="A23B-2100-H110"/>
</ProductNumber>
<SerialNumber>
<Machine Value="*"/>
<Controller Value="*"/>
</SerialNumber>
<Customer>
<MachineBuilder Value="00000110"/>
<EndUser Value="00000005"/>
</CustomerID>
</ID>
</MachineDef>
<MachineDef Name="Machine2" Node="2">
<ID>
<ProductNumber>
<Machine Value="MODEL1016"/>
<Controller Value="A23B-2100-H110"/>
</ProductNumber>
<SerialNumber>
<Machine Value="*"/>
<Controller Value="*"/>
</SerialNumber>
<Customer>
<MachineBuilder Value="00000110"/>
<EndUser Value="00000005"/>
</CustomerID>
</ID>
</MachineDef>
設定ファイル内の各設定項目において、Machine1およびMachine2のいずれに対する設定であるかを区別するために、Name="Machine1"あるいはName="Machine2"と指定している。
【０１１１】
以下においては、ロボットにおける座標系の設定を行うための設定ファイルの一部分を示す。この設定ファイルを読み込むと、ロボットのユーザ座標系１、２およびツール座標系３が設定される。
<RobotData Name="Robot1" Item="$MNUFRAM（登録商標）E" Value="1">
<SubData Item="$X" Value="-987.13"/>
<SubData Item="$Y" Value="-45.53"/>
<SubData Item="$Z" Value="-327.29"/>
<SubData Item="$W" Value="0.00"/>
<SubData Item="$P" Value="0.00"/>
<SubData Item="$R" Value="-90.00"/>
</RobotData>
<RobotData Name="Robot1" Item="$MNUFRAM（登録商標）E" Value="2">
<SubData Item="$X" Value="-987.13"/>
<SubData Item="$Y" Value="-45.53"/>
<SubData Item="$Z" Value="-127.29"/>
<SubData Item="$W" Value="0.00"/>
<SubData Item="$P" Value="0.00"/>
<SubData Item="$R" Value="-90.00"/>
</RobotData>
<RobotData Name="Robot1" Item="$MNUTOOL" Value="3">
<SubData Item="$X" Value="55.00"/>
<SubData Item="$Y" Value="138.00"/>
<SubData Item="$Z" Value="676.00"/>
<SubData Item="$W" Value="-180.00"/>
<SubData Item="$P" Value="0.00"/>
<SubData Item="$R" Value="180.00"/>
</RobotData>
【０１１２】
ここで、<RobotData Name="Robot1">タグは、Robot1であると定義されたロボット制御装置に関係したものであることを示し、<RobotData Name="Robot1" Item="$MNUFRAM（登録商標）E" Value="1"/>は、ユーザ座標系１に対するものであることを示す。座標系はＸＹＺＷＰＲの値で定義されており、<RobotData>から</RobotData>までの<SubData>によって、座標系のＸＹＺＷＰＲの値が定義されている。同様に、<RobotData Name="Robot1" Item="$MNUTOOL" Value="3">により、ロボット制御装置Robot1のツール座標系３が設定される。
【０１１３】
ここでユーザ座標系とは、ロボットのロード・アンロード動作を定義する際に使用できる座標系である。ユーザ座標系を用いて、工作機械の自動ドアが開くのを待機する位置、工作機械内部への侵入経路、ワークの把持位置、工作機械外部への退避経路などがロボットに対して設定される。ツール座標系とは、ロボットハンドのツール先端点を定義するための座標系である。ロボット制御装置７は、設定ファイルからItemが"$MNUFRAM（登録商標）E"あるいは"$MNUTOOL"の<RobotData>タグを読出し、パラメータ３４に設定する。
【０１１４】
以下において、工作機械で実行する加工プログラムとロボットで実行する作業プログラムの対応関係を設定するための設定ファイルの一部分を示す。
<CommonData Item="$PROGRAM" Value="1">
<RobotData Name="Robot1" Item="$PNS" Value="0001">
<MachineData Name="Machine1" Item="$O" Value="10">
</CommonData>
<CommonData Item="$PROGRAM" Value="2">
<RobotData Name="Robot1" Item="$PNS" Value="0002">
<MachineData Name="Machine1" Item="$O" Value="11">
</CommonData>
<CommonData Item="$PROGRAM" Value="3">
<RobotData Name="Robot1" Item="$PNS" Value="0003">
<MachineData Name="Machine1" Item="$O" Value="12">
</CommonData>
【０１１５】
ここで、<CommonData>は、それ以降の設定値が工作機械およびロボットの双方に関係することを表す。さらに、<CommonData Item="$PROGRAM" Value="1">は、それ以降の設定がワーク品種１を指定された際のプログラムの選択に関する設定であることを示す。さらに、<RobotData Name="Robot1">は、名前がRobot1と定義されたロボット制御装置において作業プログラムＰＮＳ０００１を実行することを表わし、<MachineData Name="Machine1">は、名前がMachine1と定義された工作機械において加工プログラムＯ１０を実行することを表わす。
【０１１６】
同様に、ワーク品種２を指定された場合には、ロボットの作業プログラムＰＮＳ０００２に対して、工作機械の加工プログラムＯ１１を実行する。さらに、ワーク品種３を指定された場合には、ロボットの作業プログラムＰＮＳ０００３に対して、工作機械の加工プログラムＯ１２を実行することを定義している。ロボット制御装置７は、設定ファイルからItemが"$PROGRAM"である<CommonData>で、かつItemが"$PNS"である<RobotData>を読出しパラメータ３５に設定する。
【０１１７】
以下においては、工作機械およびロボットにおけるＩ／Ｏ割付けを定義する設定ファイルの一部分を示す。
<CommonData Item="$IOMAP" Value="1">
<RobotData Name="Robot1" Item="$UI" Value="1">
<SubData Item="$Name" Value="*IMSTP"/>
<SubData Item="$Comment" Value="*IMSTP"/>
<SubData Item="$Rack" Value="81"/>
<SubData Item="$Slot" Value="1"/>
<SubData Item="$Offset" Value="1"/>
</RobotData>
<MachineData Name="Machine1" Item="$Y" Value="0.0">
<SubData Item="$Name" Value="*IMSTP"/>
<SubData Item="$Comment" Value="Robot Immediate stop"/>
<SubData Item="$Rack" Value="81"/>
<SubData Item="$Slot" Value="2"/>
<SubData Item="$Offset" Value="1"/>
</MachineData>
</CommonData>
<CommonData Item="$IOMAP" Value="2">
<RobotData Name="Robot1" Item="$UI" Value="2">
<SubData Item="$Name" Value="*HOLD"/>
<SubData Item="$Comment" Value="*Hold"/>
<SubData Item="$Rack" Value="81"/>
<SubData Item="$Slot" Value="1"/>
<SubData Item="$Offset" Value="2"/>
</RobotData>
<MachineData Name="Machine1" Item="$Y" Value="0.1">
<SubData Item="$Name" Value="*HOLD"/>
<SubData Item="$Comment" Value="Robot Hold"/>
<SubData Item="$Rack" Value="81"/>
<SubData Item="$Slot" Value="2"/>
<SubData Item="$Offset" Value="2"/>
</MachineData>
</CommonData>
<CommonData Item="$IOMAP" Value="3">
<RobotData Name="Robot1" Item="$UI" Value="3">
<SubData Item="$Name" Value="*SFSPD"/>
<SubData Item="$Comment" Value="*SFSPD"/>
<SubData Item="$Rack" Value="81"/>
<SubData Item="$Slot" Value="1"/>
<SubData Item="$Offset" Value="3"/>
</RobotData>
<MachineData Name="Machine1" Item="$Y" Value="3">
<SubData Item="$Name" Value="*SFSPD"/>
<SubData Item="$Comment" Value="Robot Safety Speed"/>
<SubData Item="$Rack" Value="81"/>
<SubData Item="$Slot" Value="2"/>
<SubData Item="$Offset" Value="3"/>
</MachineData>
</CommonData>
【０１１８】
上記の例においては、ロボットから工作機械に対して出力される三つのインターロック信号である、＊ＩＭＳＴＰ、＊ＨＯＬＤ、ＳＦＳＰＤに対する割付が定義されている。<CommonData>は、それ以降の設定値が工作機械とロボットとの両方に関係することを表わし、<CommonData Item="$IOMAP" Value="1">は、それ以降の設定がインターロック信号１に対するＩ／Ｏ割付けの設定であることを示す。さらに、<RobotData Name="Robot1" Item="$UI" Value="1">は、名前がRobot1と定義されたロボット制御装置においてインターロック信号１がＵＩ［１］で参照されると共に、信号名称が＊ＩＭＳＴＰであることを定義している。
【０１１９】
<SubData Item="$Rack">および<SubData Item="$Slot">は、この信号をやり取りするＩＯ装置を指定している。この場合には、ネットワークインタフェース２１を介して、ネットワークケーブル９を経由した、ネットワークノード１に対する接続であることを意味する。<SubData Item="$Offset">は、接続相手先のＩ／Ｏ領域の先頭から何番目の信号であるかを指定するものである。
【０１２０】
<ID>タグにより指定されるＩＤによって、その設定ファイルがどのような場合に使用可能かであるかを指定することができる。<ID>タグを用いて機種番号を指定した場合には、特定の機種に対してのみ、その設定ファイルを使用できることを意味する。さらに、<ID>タグを用いて製品番号を指定した場合には、或る特定のロボットまたは工作機械にのみ使用可能な設定ファイルであることを意味する。
【０１２１】
また、<ID>タグを用いてユーザ番号を指定した場合には、或るシステムハウスまたは工作機械メーカに対して製造された製品に対してのみ使用可能な設定ファイルであることあることを意味する。さらに、<ID>タグを用いて機種番号とユーザ番号とを組み合わせて設定ファイルに指定した場合には、或るユーザ向けに出荷された或る機種に対してのみ適用される設定ファイルを作成することができる。
【０１２２】
また、或るシステムハウスにおいて、設定内容が数パターンかしかない場合には、設定内容のパターン数に応じてユーザ番号の割り当てを受けるようにする。そして、各パターン毎に設定ファイルを用意することにより、ユーザ番号を用いた設定内容のパターンを選択することができる。
【０１２３】
前述した実施例においては、パソコン８により作成された設定ファイル２５、２６、２７、２８を記憶装置１７に転送し、ネットワークインタフェース２１を介して、工作機械５、６のＩＤ５０を取得して、取得したＩＤに基づいて設定ファイルを選択して、パラメータ３３、３４、３５を設定している。
【０１２４】
同様に、パソコン８により作成されたラダープログラムまたは作業プログラムをハードディスク装置２４から記憶装置１７に転送し、工作機械５、６のＩＤを取得してこれに応じたラダープログラムや作業プログラムを記憶装置１７からメモリ１６に転送して、制御プログラム１８およびラダー実行部４４によって、これらプログラムを実行することも容易に実現できる。
【０１２５】
また本実施例では、パソコン８により作成された設定ファイル２５、２６、２７、２８をハードディスク装置２４から記憶装置１７に、ネットワークインタフェース２１およびネットワークケーブル１２を経由して図５の手順にて転送している。しかしながら、ロボット制御装置７およびＣＮＣ制御装置４０、４１において、教示操作盤３１および操作盤４２、４３を用いて、制御プログラム１８に設定ファイル作成機能を持たせ、パソコン８を使用することなしにメモリ１６上に設定ファイルを直接的に作成し、これら設定ファイルを記憶装置１７に記憶するようにしてもよい。
【０１２６】
しかしながら、本実施例のようにパソコン８を使用した場合には、ロボット制御装置７およびＣＮＣ制御装置４０、４１を使用することなしに、設定ファイルを予め作成することができる。このため、本発明においては、ロボットおよび工作機械の使用者でなくても設定ファイルを作成することができる。例えばロボットおよび工作機械の設計者、生産システムの設計者、インテグレータ、工作機械ビルダーの技術者が設定ファイルを準備して、使用者に提供することも可能である。
【０１２７】
従来、このような方法で設計時に予め定められた設定内容を使用者に提供すると、ロボットおよび工作機械の本来の機能が十分に発揮できない、またはロボットおよび工作機械に対して誤った内容で設定してしまう可能性がある。しかしながら、本発明においては、ＩＤを用いて特定の機種、あるいは装置の個体、あるいは特定のユーザを限定して設定ファイルを適用するようにしている。従って、使用者が誤った機種に対して設定ファイルを利用するのを防止することができる。さらに、システム構成に応じた設定ファイルを提供することも可能である。
【０１２８】
さらに、本発明においては、ＩＤによって設定ファイルを適用する条件を設定ファイル内に設定することができる。従って、設計者は使用者に設定ファイルを安心して提供することができる。さらに、設定ファイルの内容を適用時に使用者が知る必要なしに、および設定ファイルがどこに格納されているかを設計者が意識する必要なしに、最適な設定ファイルが自動的に選択されてロボットおよび工作機械に対して自動的に設定される。このため、使用者は立上げ設定作業を全く意識する必要がない。
【０１２９】
さらに、本発明においては、自動設定開始指示６１を作業者が教示操作盤３１あるいは操作盤４２、４３を用いて指示している。しかしながら、自動設定の開始を、生産システムの稼働開始前、あるいは稼働終了後に自動的に実行するようにしてもよい。さらに、ＩＤ取得部５２が図１５の手順にて各装置からＩＤを受信して新規に作成された受信ＩＤ管理テーブル（図１６）の内容が、以前の管理テーブルの内容と異なる場合には、新規な管理テーブルを用いて自動設定を行うようにすることも容易に実現できる。
【０１３０】
このように本発明においては、事前に準備した設定ファイルを用いてロボットおよび／または工作機械についての設定をロボット制御装置にて自動的に行うことができる。このため、工作機械およびロボットの種類に応じて設定内容が異なる場合であっても、その種類に応じたロボット制御装置の設定を行うことができる。従って、熟練度を必要とすることなしに且つ立上げの工数を増やすことなしに、工作機械およびロボットの立上げ作業を簡易かつ容易に行うことができる。それゆえ、生産システムの構成が変更された場合、および構成の異なる複数の生産システムが想定される場合であっても、要求される生産システムの構成に応じて、ミスを生じることなしに、設定内容を簡単かつ迅速に行うことが可能である。
【０１３１】
さらに、本発明においては、ロボットおよび工作機械の使用者ではなく、ロボットおよび工作機械の設計者が設定ファイルを事前に作成して使用者に提供できる。このため、ロボットおよび工作機械のエンドユーザが立上げ設定を行わない場合であっても、エンドユーザはロボットおよび工作機械をすぐに使用することが可能である。
【０１３２】
このようなことから、本発明においては、工作機械へのワークのロード・アンロード作業にロボットの利用が促進され、工作機械の生産性が向上する。さらに、作業者は、工作機械へのワークのロード・アンロード作業から解放されるので、作業者の身体に危険が及ぶ可能性が低下する。それゆえ、作業者は長時間にわたっての操作が可能となる。
【符号の説明】
【０１３３】
１    ロボット
２    作業ツール
３    走行軸
４    仮置き台
４ａ、４ｂ    位置決め治具
５、６    工作機械
７    ロボット制御装置
８    パソコン
９    ネットワークケーブル（通知部）
１０、１１    ケーブル
１２    ネットワークケーブル
１３、２３    ディジタル信号入出力ケーブル
１５    バス
１６    メモリ
１７    記憶装置
１８    制御プログラム
１９、２０    作業プログラム
２１    ネットワークインタフェース
２２    ディジタル信号入出力回路
２４    ハードディスク装置
２５、２６、２７、２８    設定ファイル
２５ａ、２５ｂ、２６    設定ファイル
２９    操作盤インタフェース
３０    操作盤ケーブル
３１    教示操作盤
３２    サーボインタフェース
３３、３４、３５    パラメータ
３６、３７、３８、３９    設定ファイル
４０、４１    ＣＮＣ制御装置
４２、４３    操作盤
４４    ラダー実行部
４５    ラダープログラム
４６    保存用メモリ
４７    製品番号
４８    機種番号
４９    ユーザ番号
５１    設定ファイル取得部
５２    ＩＤ取得部（検出部）
５３    設定ファイル選択部
５４    設定ファイル処理部
５５    パラメータ設定部（設定部）
６４    パラメータ設定指示
【図１】
2010191602.tif 000003
【図２】
2010191602.tif 000004
【図３】
2010191602.tif 000005
【図４】
2010191602.tif 000006
【図５】
2010191602.tif 000007
【図６】
2010191602.tif 000008
【図７】
2010191602.tif 000009
【図８】
2010191602.tif 000010
【図９】
2010191602.tif 000011
【図１０】
2010191602.tif 000012
【図１１】
2010191602.tif 000013
【図１２】
2010191602.tif 000014
【図１３】
2010191602.tif 000015
【図１４】
2010191602.tif 000016
【図１５】
2010191602.tif 000017
【図１６】
2010191602.tif 000018