"NC工作機械と、前記NC工作機械用の操作盤と、前記NC工作機械の上方に配置された多関節ロボットと、前記多関節ロボットを動作させるためのプログラムを記憶するプログラム記憶手段と、前記プログラムに従って前記多関節ロボットを制御するロボット制御装置とを備えたNC工作機械システムにおいて、前記操作盤には、前記プログラム記憶手段に記憶したプログラムを実行して前記多関節ロボットを動作させるスイッチ手段が設けられ、前記プログラムは、前記多関節ロボットの目標位置姿勢が設定されると共に、前記スイッチ手段がオン操作されたときの前記多関節ロボットの位置姿勢に応じて移動経路が選択され、その選択された移動経路に沿って前記目標位置姿勢を取るよう前記多関節ロボットを移動させるようにプログラミングされ、前記ロボット制御装置は、前記プログラムに従って前記多関節ロボットを制御することを特徴とするNC工作機械システム。前記NC工作機械の側部には、ワークのパレットが配置され、前記多関節ロボットは、前記NC工作機械と前記パレットとの間を移動可能であり、前記パレット及び前記NC工作機械の周囲は安全柵で囲われ、前記プログラムは、前記多関節ロボットの目標位置姿勢が設定されると共に、前記スイッチ手段がオン操作されたときの前記多関節ロボットの位置姿勢に応じて移動経路が選択され、その選択された移動経路に沿って前記安全柵との干渉を回避しながら前記目標位置姿勢を取るよう前記多関節ロボットを移動させるようにプログラミングされ、前記ロボット制御装置は、前記プログラムに従って前記多関節ロボットを制御することを特徴とする請求項1に記載のNC工作機械システム。前記操作盤は、前記NC工作機械付近に配置された第1操作盤と、前記パレット付近に配置された第2操作盤とを含み、前記第1及び第2操作盤のそれぞれには、前記プログラムを実行するために操作される前記スイッチ手段が設けられていることを特徴とする請求項1又は請求項2に記載のNC工作機械システム。前記プログラムは、前記NC工作機械で使用される直交座標系の下でプログラミングされていることを特徴とする請求項1乃至請求項3のうちいずれか1項に記載のNC工作機械システム。本発明の目的は、多関節ロボットとNC工作機械を備えるNC工作機械システムにおいて、多関節ロボットを初めて操作する作業者であっても、安全に操作することのできるNC工作機械システムを提供することにある。上記目的を達成するため、本発明の第一の態様によれば、NC工作機械と、NC工作機械用の操作盤と、NC工作機械の上方に配置された多関節ロボットと、多関節ロボットを動作させるためのプログラムを記憶するプログラム記憶手段と、プログラムに従って多関節ロボットを制御するロボット制御装置とを備えたNC工作機械システムが提供される。操作盤には、プログラム記憶手段に記憶したプログラムを実行して多関節ロボットを動作させるスイッチ手段が設けられている。プログラムは、多関節ロボットの目標位置姿勢が設定されると共にスイッチ手段がオン操作されたときの多関節ロボットの位置姿勢に応じて移動経路が選択されその選択された移動経路に沿って目標位置姿勢を取るよう多関節ロボットを移動させるようにプログラミングされている。ロボット制御装置は、プログラムに従って多関節ロボットを制御する。この構成によれば、作業者が、操作盤のスイッチ手段を操作すると、プログラムが実行されて、多関節ロボットが動作する。これにより、多関節ロボットを初めて操作する作業者であっても、安全に操作することができる。また、スイッチ手段がオン操作されたときの多関節ロボットの位置姿勢に応じて移動経路が選択され、選択された移動経路に沿って多関節ロボットが目標位置姿勢を取るように移動する。このため、作業者は、多関節ロボットの位置姿勢に応じて多関節ロボットを操作する必要がなくなる。上記のNC工作機械システムにおいて、NC工作機械の側部には、ワークのパレットが配置され、多関節ロボットは、NC工作機械とパレットとの間を移動可能であり、パレット及びNC工作機械の周囲は安全柵で囲われ、プログラムは、多関節ロボットの目標位置姿勢が設定されると共にスイッチ手段がオン操作されたときの多関節ロボットの位置姿勢に応じて移動経路が選択されその選択された移動経路に沿って安全柵との干渉を回避しながら目標位置姿勢を取るよう多関節ロボットを移動させるようにプログラミングされ、ロボット制御装置は、プログラムに従って多関節ロボットを制御することが好ましい。この構成によれば、プログラムが実行されると、スイッチ手段がオン操作されたときの多関節ロボットの位置姿勢に応じて移動経路が選択されると共に安全柵との干渉を回避しながら目標位置姿勢を取るように多関節ロボットが移動する。このため、作業者は、多関節ロボットの位置姿勢に応じて安全柵との干渉を回避しながら多関節ロボットを操作する必要がなくなる。上記のNC工作機械システムにおいて、操作盤は、NC工作機械付近に配置された第1操作盤と、パレット付近に配置された第2操作盤とを含み、第1及び第2操作盤のそれぞれには、プログラムを実行するために操作されるスイッチ手段が設けられていることが好ましい。この構成によれば、NC工作機械付近に多関節ロボットが位置している場合、NC工作機械付近にある第1操作盤のスイッチ手段を操作すれば、プログラムを実行することができる。一方、パレット付近に多関節ロボットが位置している場合、パレット付近の第2操作盤にあるスイッチ手段を操作すれば、プログラムを実行することができる。上記のNC工作機械システムにおいて、プログラムは、NC工作機械で使用される直交座標系の下でプログラミングされていることが好ましい。この構成によれば、NC工作機械で使用される直交座標系の下でプログラムを実行させることができる。このため、NC工作機械の操作に慣れている作業者にとって、多関節ロボットの動作の理解が容易である。以下、本発明を具体化したNC工作機械システムの一実施形態を図1~図17を参照して説明する。図1及び図6に示すように、NC工作機械システムは、NC工作機械10、NC工作機械10を制御するNC制御装置20、多関節ロボット40、及び多関節ロボット40を制御するロボット制御装置50を備えている。多関節ロボット40は、NC工作機械10の上方に配置されるガントリーレール30上を走行する。NC工作機械10は、対向主軸型複合旋盤である。図1の右側に示すように、NC工作機械10の側方には、ワーク供給排出用のパレット60が配置されている。ガントリーレール30は、NC工作機械10の上面とパレット60の上面との間を跨るように延びている。なお、本実施形態において、図1及び図2に示すNC工作機械10を正面から見た場合の上下方向,前後方向,左右方向をそれぞれ、Z軸方向,X軸方向,Y軸方向とする。また、図1~図5に示すように、X軸方向は手前方向であり、Y軸方向は右方向であり、Z軸方向は上方向である。NC工作機械10のベッド10a上には、第1主軸台10b及び第2主軸台10cが配置されている。第1主軸台10bには、ワークを保持するチャック10fを備えた主軸ヘッド10dが配置されている。第2主軸台10cには、ワークを保持するチャック10gを備えた主軸ヘッド10eが配置されている。NC工作機械10は、工具主軸ユニット10hを備えている。工具主軸ユニット10hは、コラム及びサドルにより支持されている。コラムは、ベース部に対しX軸方向へ移動可能である。ベース部は、Y軸方向へ移動可能である。サドルは、コラムに対してZ軸方向に移動可能である。コラムは、図6に示すX軸モータ320によりX軸方向に移動する。また、コラムは、Y軸モータ330により駆動されたベース部によってY軸方向にも移動する。また、サドルは、図6に示すZ軸モータ340により駆動されてZ軸方向にも移動する。工具主軸ユニット10hには、加工工具10jが装着されている。図5に示すように、多関節ロボット40は、6軸J1軸~J6軸を有する。多関節ロボット40は、水平方向と一致するJ1軸に沿って移動するロボットベース41を備えている。ロボットベース41は、ガントリーレール30に対し、ガントリーレール30の長手方向に沿って移動可能に取り付けられている。ロボットベース41には、ラックアンドピニオン型のレール駆動部が設けられている。レール駆動部は、図6に示すJ1軸モータM1を備えている。ガントリーレール30のラックにJ1軸モータM1の出力軸に設けられたピニオンが噛み合うため、J1軸モータM1が駆動されると、ロボットベース41は、図2に示すガントリーレール30の右側走行端REと左側走行端LEの間を移動する。J1軸は、走行軸である。ロボットベース41上には、J1軸と平行なJ2軸周りに揺動するJ2軸アーム42が連結されている。J2軸アーム42は、ロボットベース41に設けられた減速機構付きのJ2軸モータM2により揺動する。J2軸アーム42の先端には、J2軸と平行なJ3軸周りに揺動するJ3軸ケーシング43が連結されている。J3軸ケーシング43は、J3軸ケーシング43に内蔵された減速機構付きのJ3軸モータM3により揺動する。J3軸ケーシング43の先端には、J3軸と直交するJ4軸周りに回動するJ3軸アーム44が連結されている。J3軸アーム44は、J3軸ケーシング43に設けられた減速機構付きのJ4軸モータM4により回動する。J3軸アーム44の先端には、J4軸と直交するJ5軸周りに揺動するJ6軸ユニット45が連結されている。J6軸ユニット45は、J3軸アーム44に内蔵された減速機構付きの図6に示すJ5軸モータM5により揺動する。図4及び図5に示すように、J6軸ユニット45の先端部は、J5軸と直交するJ6軸周りに回動する。J6軸ユニット45の先端部は、J6軸ユニット45に内蔵された減速機構付きのJ6軸モータM6により回動する。J6軸ユニット45の先端部には、ロボットハンド46が連結されている。図11に示すように、ロボットハンド46は、ベース46aを介してJ6軸ユニット45に固定されている。ベース46aの対向する一対の端面のうち一方にはローディングハンド46bが固定され、他方にはアンローディングハンド46cが固定されている。ローディングハンド46b及びアンローディングハンド46cのそれぞれには、複数のジョー46dが設けられている。ジョー46dが作動して、ワーク80が把持されたり、ワーク80の把持が解除されたりする。J2軸からJ6軸はいずれも旋回軸である。図5に示すように、J2軸アーム42が水平状態でX方向に向いたときのJ2軸周りの回転角を0度とする。J2軸アーム42が0度から上方向へ回転するときの回転角度をとし、下向き方向へ回転するときの回転角度を-とする。J3軸アーム44が鉛直下方-Z方向に向いたときの回転角を180度とする。すなわち、J3軸アーム44が鉛直上方Z方向に向いたときの回転角が0度である。J3軸アーム44が0度から前方向へ回転するときのJ3軸周りの回転角度をとし、後方向へ回転するときのJ3軸周りの回転角度を-とする。J3軸アーム44の基準部位44aがX方向に向いたときのJ4軸周りの回転角を0度とする。0度の位置からJ3軸アーム44の基準部位44aがY方向へ向くときのJ4軸周りの回転角度をとし、-Y方向へ回転するときのJ4軸周りの回転角度を-とする。J6軸ユニット45がJ3軸アーム44と一直線状態に配置されたときのJ5軸周りの回転角を0度とする。J6軸ユニット45が0度から一方向図5の前方向へ回転するときのJ5軸周りの回転角度を-とし、反対方向図5の後方向へ回転するときのJ5軸周りの回転角度をとする。図11に示すように、J6軸ユニット45に取り付けられたロボットハンド46の基準部位46eがJ3軸アーム44の基準部位44aと同一方向に向いたときのJ6軸周りの回転角を0度とする。すなわち、この状態は、ローディングハンド46b及びアンローディングハンド46cが水平状態で、かつY軸に沿って並んでいる状態に対応する。ロボットハンド46の基準部位46eが0度からY方向へ向くときのJ6軸周りの回転角度をとし、-Y方向へ回転するときのJ6軸周りの回転角度を-とする。ロボットハンド46は、パレット60上のワーク80を把持してNC工作機械10へ供給するとともに、NC工作機械10で加工が終了したワーク80をパレット60上に排出する。図1、図2、図3及び図4に示すように、NC工作機械10及びパレット60の周囲には、安全柵としての前フェンス70、側面フェンス72、及び後フェンス74が配置されている。前フェンス70には、NC工作機械10及びパレット60にそれぞれ対応するドア76、78が開閉自在に設けられている。ドア76,78には、窓76a,78aが設けられている。前フェンス70において、NC工作機械10の窓76a付近には、第1操作盤22が設けられている。パレット60の窓78a付近には、第2操作盤24が設けられている。第1操作盤22及び第2操作盤24は、NC工作機械用の操作盤に相当する。窓78a付近には、ティーチングボックス26が設けられている。ティーチングボックス26は、図6に示すロボット制御装置50に対し電気的に接続されている。次に、NC工作機械システムの電気的構成について図6を参照して説明する。図6に示すように、NC制御装置20のCPU中央処理装置110は、NC制御装置20を全体的に制御する。CPU110には、バス線120を介して、ROM130、RAM140、メモリ150、インターフェイス160、通信インターフェイス170、X軸制御部210、Y軸制御部220、Z軸制御部230、主軸制御部240等が接続されている。ROM130には、NC制御装置20の全体を制御するための各種のシステムプログラムが格納されている。RAM140には、一時的な計算データや表示データ及び第1操作盤22、第2操作盤24を介して、オペレータが入力した各種データ等が格納される。インターフェイス160には、第1操作盤22及び第2操作盤24が接続されている。第1操作盤22及び第2操作盤24は、表示装置22a,24a及びデータ入力のためのキーボード22b,24bを備えている。図1及び図6に示すように、キーボード22b,24bには、多関節ロボット40を待機位置へ復帰させるときに操作されるスイッチキー22c,24c、及び多関節ロボット40を上昇させる際に操作されるボタン22d,24dが設けられている。スイッチキー22c,24c及びボタン22d,24dは、スイッチ手段である。X軸制御部210は、CPU110からのX軸の位置制御指令を受けて、位置制御指令をサーボアンプ280に出力する。サーボアンプ280は、位置制御指令に基づいてX軸モータ320を駆動し、コラムをX軸方向に移動する。Y軸制御部220は、CPU110からのY軸の位置制御指令を受けて、位置制御指令をサーボアンプ290に出力する。サーボアンプ290は、位置制御指令に基づいてY軸モータ330を駆動し、コラムをY軸方向に移動する。Z軸制御部230は、CPU110からのZ軸の位置制御指令を受けて、位置制御指令をサーボアンプ300に出力する。サーボアンプ300は、位置制御指令に基づいてZ軸モータ340を駆動し、サドルをZ軸方向に移動する。主軸制御部240は、CPU110からの主軸回転制御指令を受け、主軸アンプ310に主軸速度信号を出力する。主軸アンプ310は、主軸速度信号に基づいて、指令された主軸回転数で主軸モータ350を回転させ、加工工具10jを駆動する。通信インターフェイス170は、通信線Lを介して、ロボット制御装置50と通信可能である。X軸モータ320、Y軸モータ330、Z軸モータ340及び主軸モータ350は、サーボモータからなる。次に、ロボット制御装置50を説明する。ロボット制御装置50のCPU410には、バス線420を介して、ROM430、RAM440、メモリ450、インターフェイス460、通信インターフェイス470、J1軸制御部510、J2軸制御部520、J3軸制御部530、J4軸制御部540、J5軸制御部550、J6軸制御部560等が接続されている。ROM430には、ロボットの動作制御を実行するための制御プログラムと、実行条件等のデータとが記憶されている。RAM440には、多関節ロボット40の教示プログラムが記憶される。RAM440は、CPU410のワーキングエリアとして用いられる。RAM440には、計算途中のデータが一時的に格納される。メモリ450は、例えば、ハードディスク又は不揮発性の半導体メモリからなる。メモリ450には、教示データが記憶されている。教示データは、多関節ロボット40に対し手動制御により教示されるとともに教示プログラムの実行時に読み込まれるデータである。メモリ450には、待機位置復帰プログラムが記憶されている。メモリ450は、プログラム記憶手段に相当する。待機位置復帰プログラムは、X軸、Y軸、Z軸の直交座標系の下で動作するようにプログラミングされている。X軸、Y軸、Z軸の直交座標系は、NC工作機械で使用される直交座標系である。多関節ロボット40のロボットベース41の任意の点を基点とするベース座標系、各アームの基点を原点とする各アームの座標系、及びロボットハンド46の取付位置である任意の点を原点とするツール座標系はいずれも、既知である。このため、待機位置復帰プログラムにX軸、Y軸、Z軸の直交座標系で記述された各種指令は、既知のデータから得られる同次変換行列を用いて各座標系の指令に変換された後、各軸制御部に出力される。インターフェイス460には、多関節ロボット40の教示データの入力及び手動制御時に使用されるティーチングボックス26が接続されている。J1軸制御部510~J6軸制御部560はそれぞれサーボアンプ610~660に接続されている。J1軸制御部510~J6軸制御部560は、CPU410からの回転制御指令と、J1軸モータM1~J6軸モータM6の各ロータリエンコーダE1~E6からの現在位置情報現在回転角度とに基づいて、各サーボアンプのフィードバック制御を実行する。J1軸モータM1~J6軸モータM6はサーボモータからなる。サーボアンプ610~660は、J1軸制御部510~J6軸制御部560からの指令に基づいて、J1軸モータM1~J6軸モータM6を駆動し、ロボットハンド46を移動する。通信インターフェイス470は、通信線Lを介してNC制御装置20と通信が可能である。次に、NC工作機械システムの作用について図7~図9のフローチャートを参照して説明する。本実施形態で実行される待機位置復帰プログラムは、多関節ロボット40を待機位置Gへ復帰させるためのプログラムである。図2に示すように、待機位置Gは、NC工作機械10のパレット60に面する端部の上方に設定されている。待機位置復帰プログラムは、メモリ450に格納されており、起動時にCPU410により読み込まれて、RAM440に記憶される。多関節ロボット40を待機位置へ復帰させたい場合、オペレータは、工作機械付近で作業している場合、第1操作盤22のスイッチキー22cを操作する。一方、オペレータは、パレット60付近で作業している場合、第2操作盤24のスイッチキー24cを操作する。スイッチキー22c,24cのいずれかが操作されると、第1操作盤22又は第2操作盤24からプログラム起動のための信号が出力されて、NC制御装置20のインターフェイス160に入力される。そして、プログラム起動のための信号は、通信インターフェイス170及び通信インターフェイス470を介してロボット制御装置50のCPU410に入力される。CPU410は、プログラム起動のための信号に基づいて、待機位置復帰プログラムを起動する。図7に示すように、CPU410は、S10において、J1軸~J6軸の全軸が、多関節ロボット40が図2及び図12に示す待機位置Gに復帰したときの位置姿勢になっているか否かを判定する。多関節ロボット40が待機位置Gに復帰した場合の位置姿勢は、予めプログラムに設定されている。このため、CPU410は、J1軸~J6軸の全軸がその位置姿勢になっているか否かを判定する。多関節ロボット40の作動時、ロータリエンコーダE1~E6は、J1軸モータM1~J6軸モータM6の現在位置情報を所定周期で検出する。このため、CPU410は、現在位置情報に基づいてS10の判定を行う。多関節ロボット40が待機位置Gに復帰したときの位置姿勢になっている場合、CPU410は、待機位置復帰プログラムの実行を終了する。多関節ロボット40が待機位置Gに位置していない場合、CPU410はS20に移行する。S20では、CPU410は、現在位置情報に基づいて、多関節ロボット40が段取り位置に位置しているか否かを判定する。段取りとは、一般的にオペレータがNC工作機械システムを作動させるために種々の準備をするための作業を指すが、ここでは、多関節ロボットのハンドを交換するための作業を示す。従って、段取り位置は、オペレータが多関節ロボットのハンドを交換するときの多関節ロボット40の位置であり、待機位置とは異なる。詳しくは、多関節ロボット40は、所定のプログラムにより実行されるか、ティーチングボックス26の手動操作により移動させられて、段取り位置に移動し、段取りのための姿勢を取る。S20では、CPU410は、多関節ロボット40がその段取り位置にあるか否かを判定する。多関節ロボット40が段取り位置に位置している場合、CPU410は、S22においてプログラムされたパターン1の処理を行う。パターン1の処理では、CPU410は、段取り位置に位置している多関節ロボット40を待機位置Gに復帰させるため、各軸モータに対して回転制御指令を付与する。段取り位置に位置する多関節ロボット40の各アーム及びロボットハンド46の位置姿勢は、予め待機位置復帰プログラムにより設定されている。このため、多関節ロボット40は、その位置姿勢から待機位置Gに復帰させられる。この場合、終点である待機位置Gと現在位置情報に基づく現在位置との間が複数の区間に区分されている。そして、CPU410は、ロボットハンド46を、区間毎に直線補間、円弧補間又は関節補間により動作制御して、待機位置Gに移動させる。パターン1のプログラムは、多関節ロボット40が待機位置Gまで各区間を移動する場合、前フェンス70,後フェンス74、及び側面フェンス72と干渉しないように設定されている。なお、多関節ロボット40が待機位置Gに復帰したときの各アーム及びロボットハンド46の位置姿勢は、後述するS32,S42,S56,S83,S84,S86,S87,S93,S94,S96,S97,S103,S104,S106,S107の各処理において待機位置Gに復帰したときの位置姿勢と同じである。S22において、CPU410は、待機位置Gに多関節ロボット40を復帰させた後、待機位置復帰プログラムの実行を終了する。S20において段取り位置及び姿勢になっていない場合、CPU410はS30に移行する。S30では、CPU410は、現在位置情報に基づいて、多関節ロボット40がJ2軸の給油のための位置及び姿勢になっているか否かを判定する。ここで、J2軸の給油のための位置及び姿勢について説明する。図16は、多関節ロボット40のJ2軸給油姿勢を示す。J2軸給油姿勢では、J2軸-90度、J3軸105度、J4軸0度、J5軸75度、J6軸0度である。J2~J6軸の座標位置を上記の角度に位置決めしてから、給油が行われる。J2軸の給油のための位置及び姿勢は、多関節ロボット40を構成する各アームの構造に応じて変更される。S30において、多関節ロボット40がJ2軸の給油のための位置及び姿勢になっている場合、CPU410は、S32においてパターン2の処理を行う。パターン2の処理では、CPU410は、J2軸給油位置にある多関節ロボット40を待機位置Gに復帰させるため、各軸モータに対し回転制御指令を付与する。J2軸の給油位置にある多関節ロボット40の各アーム及びロボットハンド46の位置姿勢は、予め待機位置復帰プログラムにより設定されている。このため、多関節ロボット40は、そのJ2軸給油のための位置姿勢から待機位置Gに復帰させられる。この場合、終点である待機位置Gと現在位置情報に基づく現在位置との間が複数の区間に区分されている。そして、CPU410は、ロボットハンド46を、区間毎に直線補間、円弧補間又は関節補間により動作制御して、待機位置Gに移動させる。パターン2のプログラムは、多関節ロボット40が待機位置Gまで各区間を移動する場合、前フェンス70,後フェンス74、及び側面フェンス72と干渉しないように設定されている。CPU410は、待機位置Gに多関節ロボット40が復帰した後、待機位置復帰プログラムの実行を終了する。S30において、多関節ロボット40がJ2軸の給油のための位置及び姿勢になっていない場合、CPU410はS40に移行する。S40では、CPU410は、現在位置情報に基づいて、多関節ロボット40が図17のJ5軸及びJ6軸の給油のための位置及び姿勢になっているか否かを判定する。本実施形態において、J5軸及びJ6軸の給油姿勢は、J2軸-30度、J3軸220度、J4軸0度、J5軸50度、J6軸0度である。J5軸及びJ6軸の給油のための位置及び姿勢の説明は、多関節ロボット40を構成する各アームの構造に応じて変更される。S40において、多関節ロボット40がJ5軸及びJ6軸の給油のための位置及び姿勢になっている場合、CPU410は、S42においてパターン3の処理を行う。パターン3の処理では、CPU410は、J5軸及びJ6軸給油のための位置にある多関節ロボット4を待機位置Gに復帰させるため、各軸モータに対し回転制御指令を付与する。J5軸及びJ6軸給油のための位置にある多関節ロボット40の各アーム及びロボットハンド46の位置姿勢は、予め待機位置復帰プログラムにより設定されている。このため、多関節ロボット40は、その位置姿勢から待機位置Gに復帰する。この場合、終点である待機位置Gと現在位置情報に基づく現在位置との間が複数の区間に区分されている。そして、CPU410は、ロボットハンド46を、区間毎に直線補間、円弧補間又は関節補間により動作制御して、待機位置Gに移動させる。パターン3のプログラムは、多関節ロボット40が待機位置Gまで各区間を移動する場合、前フェンス70,後フェンス74、及び側面フェンス72と干渉しないように設定されている。CPU410は、待機位置Gに多関節ロボット40が復帰した後、待機位置復帰プログラムの実行を終了する。S40において、多関節ロボット40がJ5軸及びJ6軸の給油のための位置及び姿勢になっていない場合、CPU410はS50に移行する。S50では、CPU410は、現在位置情報に基づいて、多関節ロボット40のロボットハンド46が、本機上にあるか否かを判定する。すなわち、CPU410は、Y軸方向に沿った範囲内においてNC工作機械10が占有する領域にロボットハンド46が位置しているか否かを判定する。以下、場合によっては、NC工作機械10のことを本機と称す。多関節ロボット40は、ガントリーレール30の走行端LE、RE間の範囲内を走行する。CPU410は、走行端LE、RE間の範囲内においてNC工作機械10が占有する領域にロボットハンド46が位置しているか否かを判定する。S50において、CPU410は、ロボットハンド46が本機上にあると判定した場合、S52に移行する。S52では、CPU410は、ロボットハンド46がZ軸方向において機内、即ち、NC工作機械10内に位置しているか否かを判定する。ここで言う機内とは、チャック10f、10gへワーク80を着脱するためにNC工作機械10内にロボットハンド46が侵入している場合を想定している。NC工作機械10内にロボットハンド46が侵入しているか否かを判定するための閾値であるZ軸座標値は、予め入力されている。CPU410は、ロボットハンド46のZ軸上の現在位置情報Z軸座標値が閾値以下の場合、ロボットハンド46が機内に位置していると判定して、S54に移行する。Z軸座標値が閾値を超えている場合、CPU410は、ロボットハンド46が機内に位置していないと判定して、S56に移行する。S54では、CPU410は、第1操作盤22の表示装置22a並びに第2操作盤24の表示装置24aに対し、ロボットハンド46が機内に位置しているため待機位置復帰プログラムでは動作不可であり他の操作キーを用いて操作する必要がある、旨の警告を表示させる。具体的には、CPU410は、表示装置22a,24aに対し、上昇操作ボタンを使用して下さいと表示させる。CPU410は、表示装置22a,24aに上記の警告を表示させた後、待機位置復帰プログラムの実行を終了する。この場合、オペレータは、キーボード22b,24bにあるロボット上昇操作のためのボタン22d,24dを操作する。ボタンが操作されると、上昇指令信号は、第1操作盤22からNC制御装置20のインターフェイス160に入力される。そして、上昇指令信号は、通信インターフェイス170及び通信インターフェイス470を介して、ロボット制御装置50のCPU410に入力される。CPU410は、上昇指令信号に基づいて、別途用意された機内上昇プログラムを起動させる。機内上昇プログラムは、本機内の工具主軸ユニット10hやワーク主軸ヘッド10cの位置を確認した後、待機位置復帰プログラムの処理と同様の処理を行うことにより、上記のユニットとの干渉を回避しながらロボットハンド46を上昇させる。S52において、ロボットハンド46が機内に位置していない場合、CPU410はS56に移行する。S52からS56に移行した場合、ロボットハンド46は、機内ではないがNC工作機械10上に位置しているため、パターン4の処理を行う。パターン4の処理では、CPU410は、NC工作機械10上に位置している多関節ロボット40を待機位置Gに復帰させるため、各軸モータに対し回転制御指令を付与する。この場合、ロボットハンド46はNC工作機械10上に位置しているため、想定される姿勢が極めて限定されるので、終点である待機位置Gまでの経路を、干渉物との干渉を回避した複数区間のプログラムとして予め作成しておくことができる。そして、CPU410は、ロボットハンド46を、区間毎に直線補間、円弧補間又は関節補間により動作制御して、待機位置Gに移動させる。パターン4のプログラムも、多関節ロボット40が待機位置Gまで各区間を移動する場合、前フェンス70,後フェンス74、及び側面フェンス72と干渉しないように設定されている。CPU410は、待機位置Gに多関節ロボット40が復帰した後、待機位置復帰プログラムの実行を終了する。S50において、CPU410はロボットハンド46が本機上にはないと判定した場合、S60に移行する。S10,S20,S30,S40及びS50で全てNOと判定された場合は、多関節ロボット40がパレット60のワーク80に対するハンドリングを行っていた場合である。以後の処理は、多関節ロボット40がパレット60のワーク80に対するハンドリング操作を行っていた場合を想定している。S60では、CPU410は、ロボットハンド46の現在位置をW軸で見て、Y軸補正値を演算する。W軸は、X軸の周りの回転軸である。図11に示すように、ロボットハンド46は、ローディングハンド46bと、アンローディングハンド46cとから構成されている。ロボットハンド46は、J6軸周りに180度回転することで、使用するハンドを切り換える。また、プログラムに書き込まれたロボットハンド46の位置を読み取ったり、ロボットハンド46の位置を指令したりする場合、どちらのハンドに対して指示を行っているかを、ツール座標系を選択することで切り替えられる。具体的には、ツール座標系はローディングハンド座標系とアンローディング座標系の2種類あり、ロボットハンド46の現在位置を、ローディングハンド座標系で読むと、ローディングハンド46bの基準部位47の座標値が示され、アンローディング座標系で読むとアンローディングハンド46cの基準部位47の座標値が示される。待機位置復帰プログラムでは、ロボットハンド46によりローディング又はアンローディングを行う訳ではなく、ロボットハンド46を待機位置へ復帰させるための動作を指令する。このため、一義的にローディングハンド座標系を用いて、ロボットハンド46の位置が読み取られたり、ロボットハンド46の位置の指令が行われるようにしている。従って、本明細書では、ロボットハンド46の現在位置あるいは座標値と表現するとき、全てローディングハンド座標系における値である。ところが、待機位置復帰プログラムが動作するときのロボットハンド46のJ6軸の角度は未定である。このため、読み取った座標値をそのまま用いて、ロボットハンド46と干渉物との間の距離を計算することはできない。例えば、X軸座標値だけでX軸方向の距離、Y軸座標値だけでY軸方向の距離、Z軸座標値だけでZ軸方向の距離をそれぞれ計算すると、ロボットハンド46と干渉物との間の正しい距離は得られない。ロボットハンド46と干渉物との間の距離に余裕があれば、ロボットハンド46をJ6軸周りに360度回転させることができるクリアランスを確保することで、ロボットハンド46と干渉物との干渉を判定することはできる。しかしながら、ロボットハンド46と干渉物との間の距離に余裕がない場合、Y軸補正を行った上で、Y軸方向での干渉判定を行うようにしている。ロボットハンド46のW軸座標値とは、J6軸でロボットハンド46を360度旋回させたときに基準部位47が描く真円の中心座標を基点としかつ基準部位47の座標を終点とするベクトルのX軸周りの回転角を意味する。W軸座標値により、ローディングハンド46bが上向き、下向き、右向き、左向きのいずれであるかを大まかに判定することができる。そして、ロボットをこのときの姿勢に維持しつつJ6軸だけを回転させてローディングハンド46を左向きにしたときの基準部位47のY軸座標値を計算する。こうして計算された座標値と現在のY軸座標値との誤差は、Y軸補正値として記憶されて、この後行われる干渉判定に用いられる。CPU410は、S60でY軸補正値を算出した後、S70において、ロボットハンド46がX軸上における後フェンス74の近傍に位置するか否かを判定する。即ち、CPU410は、現在のロボットハンド46が位置するX軸座標値においてJ4軸~J6軸周りにロボットハンド46を旋回させても後フェンス74に干渉しないか否かを判定する。CPU410は、予めメモリ450に格納された判定X軸座標値よりもロボットハンド46のX軸座標値が後フェンス74に近い場合、ロボットハンド46が後フェンス近傍に位置しており、J4軸~J6軸周りにロボットハンド46を旋回させると後フェンス74に干渉する可能性があると判定する。S70において、CPU410は、ロボットハンド46がX軸方向で後フェンス74の近傍に位置すると判定した場合、S72において、ロボットハンド46を旋回しても後フェンス74に干渉しないX軸方向の位置にJ2軸、J3軸、J5軸のいずれかを旋回して移動させる。このとき、J2軸、J3軸、J5軸のどれを移動するか、どの軸を組み合わせて移動させるかは適宜組み合わせればよい。CPU410は、S72の処理を行った後、或いは、S70でロボットハンド46がX軸方向で後フェンス74の近傍に位置しないと判定した場合、S80に移行する。S80では、CPU410は、Y軸座標値にS60で計算したY軸補正値を加えた値以後、補正後のY軸座標値と言うに基づいて、Y軸においてロボットハンド46の位置が本機近傍にあるか否かを判定する。この判定処理には、補正後のY軸座標値が予めメモリ450に格納された本機近傍判定閾値HS1よりも本機に近いか否かの判定処理が含まれる。補正後のY軸座標値が本機近傍判定閾値HS1よりも本機に近い場合、CPU410は、ロボットハンド46の位置が本機近傍であると判定する。本機近傍判定閾値HS1は、Y軸上の判定のための座標値である。ロボットハンド46の位置が本機に近いと判定した場合、CPU410はS81に移行し、ロボットハンド46の位置が本機に近くないと判定した場合、CPU410はS90に移行する。S81では、CPU410は、現在位置情報に基づいて、X軸方向でロボットハンド46の位置が前フェンス70近傍にあるか否かを判定する。この判定処理には、X軸座標値が予めメモリ450に格納された前フェンス近傍判定閾値MS1よりも前フェンス70に近いか否かの判定処理が含まれる。CPU410は、現在のX軸座標値が前フェンス近傍判定閾値MS1よりも前フェンス70に近い場合、ロボットハンド46の現在位置が前フェンス70に近傍であると判定する。前フェンス近傍判定閾値MS1は、X軸上の判定のための座標値である。ロボットハンド46の現在位置が前フェンス70に近いと判定した場合、CPU410はS82に移行する。S82では、CPU410は、現在位置情報に基づいて、Z軸方向でロボットハンド46の位置がパレット60近傍か否かを判定する。この判定処理には、Z軸座標値が予めメモリ450に格納されたパレット近傍判定閾値PS1よりもパレット60に近いか否かの判定処理が含まれる。CPU410は、現在のZ軸座標値がパレット近傍判定閾値PS1よりもパレット60に近い場合、ロボットハンド46の現在位置がパレット60近傍であると判定する。パレット近傍判定閾値PS1は、Z軸方向の位置判定のための座標値である。なお、パレット近傍判定閾値PS1は、パレット60にワーク80がある場合を考慮した値であり、ワーク80に対してロボットハンド46が干渉しない値である。ロボットハンド46の現在位置がパレット近傍であると判定した場合、CPU410はS83に移行する。S83では、CPU410は、パターン5の復帰処理を行って、多関節ロボット40を待機位置Gに移動した後、このフローチャートを終了する。S82において、ロボットハンド46の現在位置がパレット60近傍ではない判定すると、CPU410はS84に移行する。そして、CPU410は、パターン6の復帰処理を行ってから多関節ロボット40を待機位置Gに移動した後、このフローチャートを終了する。S81において、ロボットハンド46の現在位置が前フェンス70の近傍ではないと判定した場合、CPU410はS85に移行する。S85の処理は、S82と同様である。S85において、ロボットハンド46のZ軸座標値がパレット近傍であると判定した場合、CPU410はS86に移行する。そして、CPU410は、パターン7の復帰処理を行った後、このフローチャートを終了する。S85において、ロボットハンド46のZ軸座標値がパレット近傍でないと判定した場合、CPU410はS87に移行する。そして、CPU410は、パターン8の復帰処理を行った後、このフローチャートを終了する。S90では、CPU410は、現在位置情報に基づいて、Y軸においてロボットハンド46の位置が走行端RE近傍にあるか否かを判定する。この判定処理は、補正後のY軸座標値が予めメモリ450に格納された走行端近傍判定閾値HS2よりも走行端REに近いか否かの判定処理である。ロボットハンド46の補正後のY軸座標値が走行端近傍判定閾値HS2よりも走行端REに近い場合、CPU410は、ロボットハンド46の位置が走行端REに近傍にあると判定する。即ち、CPU410はYESと判定する。走行端近傍判定閾値HS2は、Y軸上の判定のための座標値である。ロボットハンド46の位置が走行端REに近いと判定した場合、CPU410はS91に移行する。一方、ロボットハンド46の位置が走行端REの近傍ではないと判定した場合、CPU410はS101に移行する。S91以降の処理について説明する。S91、S92、及びS95の各判定処理は、S80においてYESと判定された後の、S81,S82,及びS85の各判定処理と同様のため、説明を省略する。CPU410は、S91においてYES、S92においてYESと判定した場合、S93においてパターン9の処理を行った後、このフローチャートを終了する。又、CPU410は、S92においてNOと判定した場合、S94においてパターン10の処理を行った後、このフローチャートを終了する。一方、CPU410は、S91においてNOと判定し、S95においてYESと判定した場合、S96においてパターン11の処理を行った後、このフローチャートを終了する。CPU410は、S95においてNOと判定した場合、S97においてパターン12の処理を行った後、このフローチャートを終了する。S101以降の処理について説明する。S101、S102、及びS105の各判定処理は、CPU410がS80でYESと判定した後の、S81,S82,及びS85の各判定処理とそれぞれ同様のため、説明を省略する。CPU410は、S101においてYES、S102においてYESと判定した場合、S103においてパターン13の処理を行った後、このフローチャートを終了する。CPU410は、S102においてNOと判定した場合、S104においてパターン14の処理を行った後、このフローチャートを終了する。一方、CPU410は、S101においてNOと判定し、S105においてYESと判定した場合、S106においてパターン15の処理を行った後、このフローチャートを終了する。CPU410は、S105においてNOと判定した場合、S107においてパターン16の処理を行った後、このフローチャートを終了する。上記のように、S80,S81,S82,S85、S90,S91,S92,S95、S101,S102,S105の処理で判定したときのロボットハンド46の位置について、図13a、bを参照して説明する。図13a、bに示すように、パターン5~パターン16の処理で対象となるロボットハンド46の位置が、Pにパターン番号を付して示されている。図13aは、本機近傍判定閾値HS1、走行端近傍判定閾値HS2及び前フェンス近傍判定閾値MS1で区分された各領域を示す。図13bは、本機近傍判定閾値HS1、走行端近傍判定閾値HS2及びパレット近傍判定閾値PS1で区分された各領域を示す。各領域内にロボットハンド46が位置している場合、各領域に対応するパターン5~パターン16の処理がそれぞれ行われる。次に、パターン5~パターン16の処理について図9及び図10を参照して説明する。図10に示すように、パターン5~パターン16は、特異点チェック、J5軸チェック、干渉角チェック、軸移動、干渉回避チェック、及び待機位置復帰の全処理項目、又は一部の処理項目の組み合わせからなる。まず、全ての処理項目が組み合わされているパターン5の処理のフローチャートについて図9を参照して説明する。他のパターン6~パターン16については、パターン5の処理で行われる項目と比較して説明する。パターン5の処理では、CPU410は、特異点チェック、J5軸チェック、干渉角チェック、軸移動、干渉回避チェック及び待機位置復帰の処理を順に行う。特異点チェックでは、S200において、CPU410は、J6軸ユニット45の姿勢が特異点近傍の姿勢になっていないか否かを、J5軸の現在回転角度に基づき判定する。具体的には、J5軸の値が-5度~5度の範囲にあるか否かを確認する。そして、CPU410は、J6軸ユニット45の姿勢が特異点近傍でなければ、次のS202に移行する。CPU410は、J6軸ユニット45の姿勢が特異点近傍であると判定した場合、S201において特異点近傍から離間するようにJ5軸を回転させる。こうして、J5軸の角度を修正した後、CPU410はS202に移行する。なお、ロボットが特異点、即ち、特異姿勢にある場合は、指定した直交座標値による形態が無限に存在することになる。この場合、ロボットが動作できなくなる。このため、CPU410は、現在のロボットハンド46の位置が特異点近傍にあるか否かを判定して、この後の動作により特異点に位置させないようにする。J5軸チェックのS202では、CPU410は、ロボットハンド46の手首の角度であるJ5軸を見て、手首を回転させても、具体的にはJ4軸、J6軸を回転させてもロボットハンド46がパレット60に干渉しないZ軸の座標値を算出する。CPU410は、算出したZ軸の座標値を後で使用するため、RAM440に記憶する。次の干渉角チェックでは、多関節ロボット40を構成する部材同士が干渉するか否かを判定する。具体的には、J2軸アーム42とJ3軸アーム44とが接近したとき、その後の動作によって干渉し易い。そこで、CPU410は、S204において、J2軸及びJ3軸のそれぞれの現在回転角度に基づいて、J2軸アーム42とJ3軸アーム44とがなす角度干渉角が干渉角閾値以下であるかを確認する。そして、CPU410は、干渉角が干渉角閾値以下であれば干渉する虞があると判定し、S205に移行する。S205では、CPU410は、J2軸モータM2を駆動し、干渉角が干渉角閾値を超えるようにJ2軸を動かす。なお、CPU410は、J2軸モータM2に代えてJ3軸モータM3を駆動し、干渉角が干渉角閾値を超えるようにJ3軸ケーシング43を回転させてもよい。S204において、干渉角が干渉角閾値以下でなければ、CPU410はS206に移行する。S206の軸移動は、ロボットハンド46について、現在位置及び待機位置G間の中間位置まで移動させるための処理である。まず、中間位置までの移動の説明の前に、中間位置の設定について説明する。ロボットハンド46が、前フェンス70、パレット60、走行端RE及び本機のうち、少なくともいずれか1つ物の近傍に位置する場合、それらから所定の距離だけ離れた位置を中間位置とする。具体的には、ロボットハンド46が前フェンス70のみに近接している場合、ロボットハンド46の現在位置のX軸座標値にさらに所定値を加算した値が、中間位置のX軸座標値となる。X軸座標値に加算する所定値は、S81において、前フェンス近傍判定閾値MS1で判定した場合にNOと判定できる値である。中間位置のY軸座標値及びZ軸座標値は、ロボットハンド46の現在位置の補正後のY軸座標値及びZ軸座標値とする。ロボットハンド46がパレット60のみに近接している場合、中間位置のX軸座標値及びY軸座標値は、ロボットハンド46の現在位置のX軸座標値及び補正後のY軸座標値となる。又、CPU410は、J5軸チェックで算出した値を中間位置のZ軸座標値とする。ロボットハンド46が本機、又は走行端REのみに近接している場合、中間位置のX軸座標値及びZ軸座標値は、ロボットハンド46の現在位置のX軸座標値及びZ軸座標値となる。又、中間位置のY軸座標値は、ロボットハンド46の補正後のY軸座標値にさらに所定値を加算した値となる。本機、又は走行端REのみに近接している場合、それぞれ補正後のY軸座標値に加算する所定値は、S80において本機近傍判定閾値HS1で判定した場合にNOと判定できる値、又は、S90において走行端近傍判定閾値HS2で判定した場合にNOと判定できる値である。次に、ロボットハンド46が前フェンス70、本機、走行端RE、パレットのいずれか2つ以上に近接している場合の中間位置の設定について説明する。2つ以上のものにロボットハンド46が近接している場合、1つのものに近接しているときと同様に、それぞれの近傍の座標軸における現在の座標値に所定値をそれぞれ加算したものを、中間位置の座標値とする。又、上述した干渉物に近傍していない場合、ロボットハンド46の現在位置の座標値がそのまま中間位置の座標値として採用される。ロボットハンド46の現在位置がパレット60近傍である場合、J5軸チェックで算出した値を中間位置のZ軸座標値とする。ロボットハンド46がいずれの干渉物にも近接していない場合、ロボットハンド46の現在位置が中間位置の座標値となり、結果として、CPU410は中間位置への移動を行わない。上記のように、CPU410は、中間位置を設定後、S206の軸移動において、ロボットハンド46を現在位置から中間位置へと移動させるようにロボットハンド46を制御する。なお、中間位置は、いずれかの干渉物に対し干渉し得るときに設定される。このため、中間位置への移動は、直線補間によって制御される。次の干渉回避チェックでは、ロボットハンド46が中間位置に位置する状態から多関節ロボット40を待機位置Gまで関節補間により移動させた場合、ロボットハンド46が前フェンス70に干渉する虞があるか否かがチェックされる。CPU410は、中間位置のZ軸座標値とZ軸上における判定閾値との比較に基づいて、S208において干渉回避チェックを行う。判定閾値は、試験値等により得られた値であり、メモリ450に格納されている。図15は、中間位置CのZ軸座標値が判定閾値以下である場合、中間位置Cから待機位置Gに多関節ロボット40が戻るまでにJ2軸及びJ3軸で関節補間が行われた場合の多関節ロボット40の移動軌跡を示す。図15に示すように、ロボットハンド46は、前フェンス70から前方に出て前フェンス70と干渉してしまう。中間位置Cから待機位置Gまで多関節ロボット40を関節補間により移動させる場合、J2軸、J3軸の関節補間による移動範囲が大きいため、ロボットハンド46が前フェンス70と干渉する虞がある。このような場合を想定して、後述する干渉回避点Kへのロボットハンド46の移動が必要となる。多関節ロボット40が待機位置Gに復帰したときの位置姿勢は、図12に示すように、回転角度をJ2軸63度、J3軸149度、J4軸0度、J5軸31度、J6軸0度とした場合の姿勢となっている。このため、後述するS210における待機位置への移動のための関節補間では、各軸の回転角度が、現在回転角度から、待機位置Gでの上記回転角度を目標として制御される。S208において、中間位置CのZ軸座標値がZ軸上における判定閾値以下である場合、CPU410はS209に移行して、干渉回避点Kへロボットハンド46を移動させた後、S210の待機位置復帰の処理に移行する。干渉回避点Kは、中間位置CよりもZ軸上の上方に位置すると共に、干渉回避点Kから待機位置Gへと多関節ロボット40を関節補間により移動させた場合に前フェンス70と干渉しない位置である。図14は、干渉回避点Kから待機位置Gに多関節ロボット40が戻るまでにJ2軸及びJ3軸で関節補間が行われた場合の多関節ロボット40の移動軌跡を示す。図14に示すように、ロボットハンド46は、前フェンス70と干渉することなくZ軸に沿って上方に移動する。即ち、干渉回避点KがZ軸上における判定閾値より上方に位置するため、J2軸及びJ3軸の移動軌跡が狭くなり、ロボットハンド46は前フェンス70と干渉しない。次の待機位置復帰では、S210において、CPU410は、中間位置C又は干渉回避点Kから待機位置Gまで、多関節ロボット40を関節補間により復帰させる。次に、パターン13及びパターン9について図10を参照して説明する。図10に示すように、パターン9及びパターン13では、パターン5と同様に、特異点チェック、J5軸チェック、干渉角チェック、軸移動、干渉回避チェック、及び待機位置復帰の全ての処理項目が行われる。パターン6、パターン10、及びパターン14では、J5軸チェックが省略されて、特異点チェック、干渉角チェック、軸移動、干渉回避チェック、及び待機位置復帰の処理項目が行われる。パターン6、パターン10、及びパターン14では、J5軸チェックが省略されているため、パターン6、パターン10、及びパターン14のフローチャートでは、図9のフローチャートにおいてS200がNO又はS201の後、CPU410はS204に移行する。パターン6、パターン10、及びパターン14は、図13bに示すように、パレット近傍判定閾値PS1よりも上方にロボットハンド46が位置している場合である。この場合、ロボットハンド46の手首の角度であるJ5軸を見て、手首を回転させても、ロボットハンド46がパレット60に干渉しない十分な高さを有している。このため、パターン6、パターン10、及びパターン14では、J5軸チェックが省略されている。パターン7、パターン11、及びパターン15では、パターン5と同様に、特異点チェック、J5軸チェック、干渉角チェック、軸移動、干渉回避チェック、及び待機位置復帰の全ての処理項目が行われる。パターン7、パターン11、及びパターン15のフローチャートは、図9のフローチャートと同様である。パターン8及びパターン12では、パターン5とは異なり、特異点チェック、J5軸チェック、及び干渉角チェックが省略され、軸移動、干渉回避チェック、及び待機位置復帰の処理項目が行われる。パターン8及びパターン12では、現在位置から待機位置Gまで復帰するまでの間に特異点が発生しないため、特異点チェックが省略されている。又、図13bに示すように、パレット近傍判定閾値PS1よりも上方にロボットハンド46が位置している。即ち、ロボットハンド46の手首の角度であるJ5軸を見て、手首を回転させても、ロボットハンド46がパレット60に干渉しない十分な高さを有している。このため、J5軸チェックが省略されている。又、パターン8及びパターン12では、現在位置から待機位置Gまで復帰するまでの間に各部材同士が干渉する虞がない。このため、干渉角チェックが省略されている。パターン16は、パターン5とは異なり、特異点チェック、J5軸チェック、干渉角チェック及び軸移動が省略され、干渉回避チェック及び待機位置復帰の処理項目が行われる。パターン16で、特異点チェック、J5軸チェック、及び干渉角チェックが省略されている理由は、パターン8及びパターン12の場合と同じ理由である。又、図13a,bに示すように、全ての干渉物の近傍に位置していないため、現在位置している地点が中間位置Cであり、パターン5からパターン15における軸移動が完了した状態と同じ状態である。このため、パターン16では、軸移動が省略されている。従って、パターン16では、干渉回避チェックと待機位置復帰とを行うだけでよい。このように、スイッチキー22c,24cのいずれかがオン操作されたときに、オン操作されたときの多関節ロボット40の位置姿勢に応じて移動経路が選択され、その選択された移動経路に沿って待機位置Gへとロボットハンド46が移動するように制御される。選択される移動経路に対応する各プログラムには、パターン1~パターン16がそれぞれプログラミングされている。NC工作機械システムの第1操作盤22、第2操作盤24には、メモリ450に記憶した待機位置復帰プログラムを実行させて多関節ロボット40を動作させるスイッチキー22c,24cが設けられている。このため、作業者が第1操作盤22、第2操作盤24のスイッチキー22c,24cをオン操作すれば、待機位置復帰プログラムが実行されて、多関節ロボット40が動作する。これにより、多関節ロボット40を初めて操作する作業者であっても、安全に操作することができる。又、待機位置復帰プログラムは、NC工作機械10で使用される直交座標系の下で動作するようプログラミングされている。このため、NC工作機械10で使用される直交座標系の下で多関節ロボット40を動作させることができる。このため、NC工作機械10の操作に慣れている作業者にとって、多関節ロボット40の動作の理解が容易である。待機位置復帰プログラムは、以下のようにプログラミングされている。即ち、多関節ロボット40の待機位置G目標位置姿勢が設定されると共に、待機位置G目標位置姿勢になるように多関節ロボット40が移動する際、スイッチキー22c,24cがオン操作されたときの多関節ロボット40の位置姿勢に応じて移動経路が選択され、選択された移動経路に沿って多関節ロボット40を移動させる。ロボット制御装置50は、プログラムに従って多関節ロボット40を制御する。よって、作業者は、多関節ロボット40の位置姿勢に応じて多関節ロボット40を操作する必要がなくなる。NC工作機械10の側部には、ワーク80のパレット60が配置されている。多関節ロボット40は、NC工作機械10とパレット60との間を移動可能である。パレット60とNC工作機械10の周囲は、前フェンス70、側面フェンス72、及び後フェンス74安全柵によって囲われている。待機位置復帰プログラムには、多関節ロボット40の待機位置G目標位置姿勢が設定されている。待機位置復帰プログラムは、スイッチキー22c,24cがオン操作されたときの多関節ロボット40の位置姿勢に応じて選択された移動経路に沿って、多関節ロボット40が移動するようにプログラミングされている。また、待機位置復帰プログラムには、前フェンス70、側面フェンス72、及び後フェンス74安全柵との干渉を回避しながら待機位置G目標位置姿勢になるよう多関節ロボット40を移動させるようにもプログラミングされている。ロボット制御装置50は、待機位置復帰プログラムに従って多関節ロボット40を制御する。このため、待機位置復帰プログラムが実行されると、スイッチキー22c,24cがオン操作されたときの多関節ロボット40の位置姿勢に応じて移動経路が選択され、前フェンス70安全柵との干渉を回避しながら待機位置G目標位置姿勢になるように多関節ロボット40を移動させることができる。このため、作業者は、多関節ロボット40の位置姿勢に応じて前フェンス70安全柵に干渉しないように多関節ロボットを操作する必要がなくなる。NC工作機械10には第1操作盤22が設けられ、パレット60には第2操作盤24が設けられている。各操作盤22,24には、待機位置復帰プログラムを実行させるスイッチキー22c,24cがそれぞれ設けられている。このため、多関節ロボット40がパレット60付近に位置している場合、第2操作盤24のスイッチキー24cをオン操作すれば、待機位置復帰プログラムを実行することができる。一方、NC工作機械10付近に多関節ロボット40が位置している場合、第1操作盤22を操作すれば、プログラムを実行することができる。このため、パレット60及びNC工作機械10のいずれかの付近に多関節ロボット40が位置しているかよって、作業者は、パレット60及びNC工作機械10のいずれか近い方の操作盤のスイッチ手段を操作することができる。これにより、多関節ロボット40を作動するための共通のプログラムが実行される。この実施形態において、パレット60をNC工作機械10の右側に配置したが、パレット60をNC工作機械10の左側に配置してもよい。この実施形態において、多関節ロボット40は、走行軸であるJ1軸を旋回軸に代えて、6軸の多関節ロボットであってもよい。この実施形態において、多関節ロボット40は、6軸ロボット以外に、7軸以上の多関節ロボットであってもよい。"