(57)【特許請求の範囲】
【請求項１】
第１座標系を有する第１産業機械と、第２座標系を有し移動可能な第２産業機械とを制御する数値制御装置であって、
前記第１産業機械の機械原点である第１機械原点と前記第２産業機械の機械原点である第２機械原点との位置関係を示す機械原点オフセットデータを、前記第１機械原点または前記第２機械原点の移動に応じて更新する座標管理部と、
前記第１産業機械をモデル化した第１干渉物定義エリアの前記第１座標系における位置と、前記第２産業機械をモデル化した第２干渉物定義エリアの前記第２座標系における位置と、前記更新された機械原点オフセットデータと、に基づいて、前記第１産業機械と前記第２産業機械との干渉を検出する干渉チェック処理部と、
を備えることを特徴とする数値制御装置。
【請求項２】
前記第１産業機械は、ワークの加工を行うための複数の第１軸を有し、
前記第２産業機械は、移動可能な台座上で前記ワークの加工を行うための複数の第２軸を有し、
前記座標管理部は、前記機械原点オフセットデータを、前記台座の移動に応じて更新し、
前記干渉チェック処理部は、前記第１機械原点に基づく前記第１座標系によって前記第１産業機械をモデル化した前記第１干渉物定義エリアに関する第１干渉物定義データと、前記複数の第１軸の位置データとに基づいて、前記第１干渉物定義エリアの位置を逐次計算し、前記第２機械原点に基づく前記第２座標系によって前記第２産業機械をモデル化した前記第２干渉物定義エリアに関する第２干渉物定義データと、前記複数の第２軸の位置データとに基づいて、前記第２干渉物定義エリアの位置を逐次計算し、計算された前記第１干渉物定義エリアの位置および前記第２干渉物定義エリアの位置と、前記更新された機械原点オフセットデータと、に基づいて、前記第１産業機械と前記第２産業機械との干渉を検出することを特徴とする請求項１に記載の数値制御装置。
【請求項３】
前記第２産業機械は、前記台座を移動駆動するサーボモータを有し、
前記座標管理部は、前記サーボモータの位置指令データまたは位置フィードバックデータに基づいて前記機械原点オフセットデータを更新することを特徴とする請求項２に記載の数値制御装置。
【請求項４】
前記第２産業機械は、前記台座を移動駆動するアクチュエータを有し、
前記座標管理部は、前記アクチュエータの位置データに基づいて前記機械原点オフセットデータを更新することを特徴とする請求項２に記載の数値制御装置。
【請求項５】
前記第１産業機械は工作機械であり、前記第２産業機械はロボットであることを特徴とする請求項１から請求項４の何れか１項に記載の数値制御装置。
【請求項６】
前記第１産業機械と前記第２産業機械との干渉検出を学習する機械学習装置をさらに備え、
前記機械学習装置は、
干渉が検出されたときの前記第１干渉物定義エリアの位置情報および干渉が検出されたときの前記第２干渉物定義エリアの位置情報を含む干渉情報を前記干渉チェック処理部から取得し、前記干渉情報と干渉時の加工プログラム情報とを関連付けた状態情報を出力する観測部と、
前記状態情報を学習し、干渉の有無を推測した情報である干渉アラーム事前情報を前記干渉チェック処理部に出力する学習部と、
を備えることを特徴とする請求項１から請求項５の何れか１項に記載の数値制御装置。
【請求項７】
第１座標系を有する第１産業機械と、第３座標系を有する第３産業機械と、第２座標系を有し移動可能な第２産業機械と、前記第１産業機械および前記第２産業機械を制御する第１数値制御装置と、前記第２産業機械および前記第３産業機械を制御する第２数値制御装置と、を備える産業機械制御システムであって、
前記第１数値制御装置は、
前記第１産業機械の機械原点である第１機械原点と前記第２産業機械の機械原点である第２機械原点との位置関係を示す第１機械原点オフセットデータを、前記第１機械原点または前記第２機械原点の移動に応じて更新する座標管理部と、
前記第２産業機械が前記第１産業機械の作業エリア内に入ったか否かを判定し、前記第２産業機械が前記第１産業機械の作業エリア内に入ったときに、前記第１産業機械をモデル化した第１干渉物定義エリアの前記第１座標系における位置と、前記第２産業機械をモデル化した第２干渉物定義エリアの前記第２座標系における位置と、前記更新された第１機械原点オフセットデータと、に基づいて、前記第１産業機械と前記第２産業機械との干渉を検出する干渉チェック処理部と、
を備えることを特徴とする産業機械制御システム。
【請求項８】
前記第１産業機械は、第１ワークの加工を行うための複数の第１軸を有し、
前記第３産業機械は、第２ワークの加工を行うための複数の第３軸を有し、
前記第２産業機械は、前記第１産業機械および前記第３産業機械を含むエリアを移動可能な台座上で前記第１ワークおよび前記第２ワークの加工を行うための複数の第２軸を有し、
前記第１数値制御装置の座標管理部は、前記第１機械原点オフセットデータを、前記台座の移動に応じて更新し、
前記第１数値制御装置の干渉チェック処理部は、前記第２産業機械が前記第１産業機械の作業エリア内に入ったときに、前記第１機械原点に基づく前記第１座標系によって前記第１産業機械をモデル化した前記第１干渉物定義エリアに関する第１干渉物定義データと、前記複数の第１軸の位置データとに基づいて、前記第１干渉物定義エリアの位置を逐次計算し、前記第２機械原点に基づく前記第２座標系によって前記第２産業機械をモデル化した前記第２干渉物定義エリアに関する第２干渉物定義データと、前記複数の第２軸の位置データとに基づいて、前記第２干渉物定義エリアの位置を逐次計算し、計算された前記第１干渉物定義エリアの位置および前記第２干渉物定義エリアの位置と、前記更新された第１機械原点オフセットデータと、に基づいて、前記第１産業機械と前記第２産業機械との干渉を検出することを特徴とする請求項７に記載の産業機械制御システム。
【請求項９】
前記第２数値制御装置は、
前記第３産業機械の機械原点である第３機械原点と前記第２産業機械の機械原点である第２機械原点との位置関係を示す第２機械原点オフセットデータを、前記台座の移動に応じて更新する座標管理部と、
前記台座が前記第３産業機械の作業エリア内に入ったか否かを判定し、前記台座が前記第３産業機械の作業エリア内に入ったときに、前記第３機械原点に基づく第３座標系によって前記第３産業機械をモデル化した第３干渉物定義エリアに関する第３干渉物定義データと、前記複数の第３軸の位置データとに基づいて、前記第３干渉物定義エリアの位置を逐次計算し、前記第２干渉物定義エリアに関する第２干渉物定義データと、前記複数の第２軸の位置データとに基づいて、前記第２干渉物定義エリアの位置を逐次計算し、計算された前記第３干渉物定義エリアの位置および前記第２干渉物定義エリアの位置と、前記更新された第２機械原点オフセットデータと、に基づいて、前記第３産業機械と前記第２産業機械との干渉を検出する干渉チェック処理部と、
を備えることを特徴とする請求項８に記載の産業機械制御システム。
【請求項１０】
前記台座を移動駆動するサーボモータと、前記サーボモータを駆動するサーボアンプとをさらに備え、
前記第１産業機械と、前記第３産業機械と、前記サーボアンプとは、無線ネットワーク通信で指令およびデータを送受信することを特徴とする請求項８または請求項９に記載の産業機械制御システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、第１産業機械および第２産業機械を制御する数値制御装置および産業機械制御システムに関する。
【背景技術】
【０００２】
工作機械、ロボットなどを含む複数の産業機械を同時に制御する数値制御装置が提案されている。【０００３】
特許文献１には、生産ラインにおいて、互いの動作領域が重なり合うように配置された２つのロボットアームが互いに衝突を回避しながら２つのロボットアームの開始点から目標点までの軌道を生成することが開示されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１５−１６０２５３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、特許文献１では、互いのロボットの台座は固定されており、ロボットの台座が移動した場合は、互いに衝突を回避しながら２つのロボットアームの開始点から目標点までの軌道を生成することができず、２つのロボットアームが干渉する可能性がある。すなわち、特許文献１では、第１産業機械と第２産業機械の少なくとも何れかの台座が移動した場合、第１産業機械と第２産業機械との干渉を回避できない。また、視覚装置を用いて第１産業機械と第２産業機械との干渉を検出する場合、システム構成が高価になる。【０００６】
本開示は、上記に鑑みてなされたものであって、第１産業機械と第２産業機械の少なくとも何れかの台座が移動した場合でも、第１産業機械と第２産業機械との干渉を回避できる数値制御装置を得ることを目的とする。
【課題を解決するための手段】
【０００７】
上述した課題を解決し、目的を達成するために、本開示の数値制御装置は、第１座標系を有する第１産業機械と、第２座標系を有し移動可能な第２産業機械とを制御する。数値制御装置は、第１産業機械の機械原点である第１機械原点と第２産業機械の機械原点である第２機械原点との位置関係を示す機械原点オフセットデータを、第１機械原点または第２機械原点の移動に応じて更新する座標管理部と、第１産業機械をモデル化した第１干渉物定義エリアの第１座標系における位置と、第２産業機械をモデル化した第２干渉物定義エリアの第２座標系における位置と、更新された機械原点オフセットデータと、に基づいて、第１産業機械と第２産業機械との干渉を検出する干渉チェック処理部と、を備える。
【発明の効果】
【０００８】
本開示の数値制御装置によれば、第１産業機械と第２産業機械の少なくとも何れかの台座が移動した場合でも、第１産業機械と第２産業機械との干渉を回避できるという効果を奏する。
【図面の簡単な説明】
【０００９】
【図１】実施の形態１にかかる数値制御装置が制御する工作機械およびロボットの配置例を示す図
【図２】実施の形態１にかかるロボットの台座の移動の様子などを示す図
【図３】実施の形態１にかかる数値制御装置の構成例を示すブロック図
【図４】実施の形態１にかかる工作機械の干渉物定義エリアとロボットの干渉物定義エリアとを概念的に示す図
【図５】機械原点オフセットデータが更新された場合の工作機械の干渉物定義エリアとロボットの干渉物定義エリアとの位置関係を概念的に示す図
【図６】実施の形態１の数値制御装置の制御演算部の動作手順を示すフローチャート
【図７】実施の形態２のロボットの台座の移動機構などを示す図
【図８】実施の形態２の数値制御装置の構成例を示すブロック図
【図９】実施の形態２の数値制御装置の制御演算部の動作手順を示すフローチャート
【図１０】実施の形態３の数値制御装置の制御演算部の動作手順を示すフローチャート
【図１１】実施の形態４にかかる数値制御装置の構成例を示すブロック図
【図１２】実施の形態５にかかる数値制御装置の構成例を示すブロック図
【図１３】実施の形態６の産業機械制御システムの構成例を示す図
【図１４】実施の形態６の数値制御装置の構成例を示すブロック図
【図１５】実施の形態６の各数値制御装置の制御演算部およびサーボアンプの動作手順を示すフローチャート
【図１６】実施の形態１から実施の形態６にかかる数値制御装置が備える制御演算部のハードウェア構成例を示す図
【発明を実施するための形態】
【００１０】
以下、実施の形態にかかる数値制御装置および産業機械制御システムを図面に基づいて詳細に説明する。
【００１１】
実施の形態１．
図１は、実施の形態１にかかる数値制御装置１Ｘが制御する第１産業機械である工作機械１００および第２産業機械であるロボット６０の配置例を示す図である。工作機械１００は、筐体１４と、工具ホルダ１１ａ，１１ｂと、チャック機構１２ａ，１２ｂとを備えている。工作機械１００では、筐体１４の内部が加工ワーク５ａ，５ｂを加工する加工室となっている。筐体１４の前面には、表示部４が配置されている。
【００１２】
チャック機構１２ａは、加工室内で加工ワーク５ａを保持し、チャック機構１２ｂは、加工室内で加工ワーク５ｂを保持する。工具ホルダ１１ａは、工具６ａを保持し、工具ホルダ１１ｂは、工具６ｂを保持する。工具６ａは、チャック機構１２ａによって保持されている加工ワーク５ａを加工し、工具６ｂは、チャック機構１２ｂによって保持されている加工ワーク５ｂを加工する。このように、工作機械１００は、加工ワーク５ａ，５ｂを加工するための複数の第１軸を有している。第１軸は、工具ホルダ１１ａの移動軸、工具ホルダ１１ｂの移動軸、チャック機構１２ａの回転軸、およびチャック機構１２ｂの回転軸を含む。
【００１３】
ロボット６０は、工作機械１００の近傍に配置されており、工作機械１００に対して加工ワーク５ａ，５ｂの搬入および搬出を行う。また、ロボット６０は、工作機械１００が保持している加工ワーク５ａに対し、工具６ｃで加工を行う。
【００１４】
ロボット６０は、ロボットアーム２１と、ロボットハンド２２と、台座２３とを備えている。台座２３は、ロボットアーム２１を旋回可能に保持する。ロボットアーム２１は、複数の第２軸を有し、各第２軸を中心に回転可能である。ロボットハンド２２は、ロボットアーム２１の先端部に配置されている。ロボットハンド２２は、工具６ｃまたは加工ワーク５ａ，５ｂを掴む。
【００１５】
台座２３は、工作機械１００の筐体１４に沿って矢印Ａ方向に往復移動可能である。矢印Ａ方向は、例えば工作機械１００の座標系におけるＺ軸方向に対応する。台座２３は、例えばボールネジのような回転運動を直線運動に変換する回転移動変換機構５０３に搭載されている。回転移動変換機構５０３はサーボモータ５０１に連結されており、サーボモータ５０１の回転によって動作する。
【００１６】
図２はロボット６０の台座２３の移動の様子などを示す図である。図２では、ロボット６０の台座２３が第１位置Ｐ１と第２位置Ｐ２との間をサーボモータ５０１および回転移動変換機構５０３の動作によって、矢印Ａ方向に往復運動している。また、ロボットアーム２１も、台座２３が第１位置Ｐ１と第２位置Ｐ２との間を往復運動している間に動作している。ロボット６０の台座２３が移動中に、ロボットアーム２１が移動した場合、ロボットアーム２１が、工作機械１００の固定部または工作機械１００の可動部に干渉する場合がある。本実施の形態１では、このような干渉を未然に防止する。
【００１７】
図３は、実施の形態１にかかる数値制御装置１Ｘの構成例を示すブロック図である。数値制御装置１Ｘは、工作機械１００およびロボット６０を制御する。数値制御装置１Ｘは、制御演算部２Ｘと、入力操作部３Ｘと、表示部４と、ＰＬＣ（Programmable  Logic  Controller：プログラマブルロジックコントローラ）３６を操作するための機械操作盤などのＰＬＣ操作部５とを有する。図３には、数値制御装置１Ｘとともに、工作機械１００、ロボットコントローラ５０Ｘ、およびロボット６０が示されている。
【００１８】
工作機械１００は、工具６ａ，６ｂおよび加工ワーク５ａ，５ｂを駆動する駆動部９０を備えている。駆動部９０は、例えば、加工ワーク５ａ，５ｂを回転させながら、工具６ａ，６ｂを駆動する駆動機構である。実施の形態１では、工具６ａ，６ｂの駆動方向は、例えばＸ軸方向に平行な方向と、Ｚ軸方向に平行な方向との２方向である。なお、軸方向は装置構成によるので、軸方向は上記方向に限定されない。
【００１９】
駆動部９０は、数値制御装置１Ｘ上で規定されたＸ軸方向に工具６ａを移動させるサーボモータ９０１と、サーボモータ９０１の位置および速度を検出する検出器９７と、数値制御装置１Ｘからの指令に基づいて、サーボモータ９０１を制御するＸ軸サーボ制御部９１とを備える。Ｘ軸サーボ制御部９１は、検出器９７からの位置および速度に基づいてサーボモータ９０１に対してフィードバック制御を行う。また、駆動部９０は、Ｚ軸方向に工具６ａを移動させるサーボモータ９０２と、サーボモータ９０２の位置および速度を検出する検出器９８と、数値制御装置１Ｘからの指令に基づいて、サーボモータ９０２を制御するＺ軸サーボ制御部９２とを備える。Ｚ軸サーボ制御部９２は、検出器９８からの位置および速度に基づいてサーボモータ９０２に対してフィードバック制御を行う。この工作機械１００は、２つの工具ホルダ１１ａ，１１ｂを有し、２つの工具６ａ，６ｂを備えている。このため、駆動部９０は、工具６ｂをＸ方向に駆動するために、Ｘ軸サーボ制御部（図示せず）と、サーボモータ（図示せず）と、検出器（図示せず）とを備え、工具６ｂをＺ方向に駆動するために、Ｚ軸サーボ制御部（図示せず）と、サーボモータ（図示せず）と、検出器（図示せず）とをさらに備える。図示はしていないが、さらに、例えば工具をＹ方向等に駆動するためＹ軸等の制御機構を備えていても良い。
【００２０】
駆動部９０は、加工ワーク５ａを回転させるための主軸を回転させる主軸モータ９１１と、主軸モータ９１１の位置および回転数を検出する検出器２１１とを備えている。検出器２１１が検出する回転数は、主軸モータ９１１の回転数に対応している。また、駆動部９０は、数値制御装置１Ｘからの指令に基づいて、主軸モータ９１１を制御する主軸サーボ制御部２００を備えている。主軸サーボ制御部２００は、検出器２１１からの位置および回転数に基づいて、主軸モータ９１１に対するフィードバック制御を行う。この工作機械１００は、２つの主軸を有し、２つの加工ワーク５ａ，５ｂを同時に加工する。このため、駆動部９０は、加工ワーク５ｂを駆動するために、主軸モータ（図示せず）と、主軸サーボ制御部（図示せず）と、検出器（図示せず）とをさらに備える。
【００２１】
さらに、実施の形態１の数値制御装置１Ｘは、数値制御装置１Ｘ上で規定されたＺ軸方向にロボット６０の台座２３を移動させるサーボモータ５０１と、サーボモータ５０１の位置および速度を検出する検出器５０２と、数値制御装置１Ｘからの指令に基づいて、サーボモータ５０１を制御する台座サーボ制御部５００とを備える。
【００２２】
入力操作部３Ｘは、制御演算部２Ｘに情報を入力する。入力操作部３Ｘは、キーボード、ボタンまたはマウスなどの入力手段によって構成され、ユーザによる数値制御装置１Ｘに対するコマンドなどの入力、またはＮＣ（Numerical  Control）プログラムもしくはパラメータなどを受付けて制御演算部２Ｘに対する入力に用いられる。表示部４は、液晶表示装置などの表示手段によって構成され、制御演算部２Ｘによって処理された情報を表示画面に表示する。表示部４の例は、液晶タッチパネルである。入力操作部３Ｘの一部の機能が、表示部４に配置されていてもよい。
【００２３】
制御演算部２Ｘは、工作機械１００の座標系で規定されたＮＣプログラムを用いて工作機械１００およびロボット６０を制御する。制御演算部２Ｘは、入力制御部３２と、データ設定部３３と、記憶部３４と、画面処理部３１と、解析処理部３７と、制御信号処理部３５と、ＰＬＣ３６と、補間処理部３８と、加減速処理部３９と、軸データ入出力部４０と、ロボット制御部４１と、干渉処理部３８１とを有する。なお、ＰＬＣ３６は、制御演算部２Ｘの外部に配置されてもよい。
【００２４】
記憶部３４は、パラメータ記憶エリア３４１、ＮＣプログラム記憶エリア３４３、表示データ記憶エリア３４４、および共有エリア３４５を有している。パラメータ記憶エリア３４１内には、制御演算部２Ｘの処理で使用されるパラメータ等が格納される。具体的には、パラメータ記憶エリア３４１内には、数値制御装置１Ｘを動作させるための制御パラメータ、サーボパラメータおよび工具データが格納される。さらに、パラメータ記憶エリア３４１内には、工作機械１００の機械原点とロボット６０の機械原点とを関連付けるデータである機械原点オフセットデータ３４１１が格納される。さらに、パラメータ記憶エリア３４１内には、干渉物定義データ３４１２が格納される。
【００２５】
ＮＣプログラム記憶エリア３４３内には、加工ワークの加工に用いられるＮＣプログラムが格納される。実施の形態１のＮＣプログラムは、工作機械１００の工具を移動させる指令である移動指令と、ロボット６０を制御するための指令とを含んでいる。
【００２６】
表示データ記憶エリア３４４内には、表示部４で表示される画面表示データが格納される。画面表示データは、表示部４に情報を表示するためのデータである。また、記憶部３４には、一時的に使用されるデータを記憶する共有エリア３４５が設けられている。
【００２７】
画面処理部３１は、表示データ記憶エリア３４４に格納された画面表示データを表示部４に表示させる制御を行う。入力制御部３２は、入力操作部３Ｘから入力される情報を受付ける。データ設定部３３は、入力制御部３２で受付けられた情報を記憶部３４に記憶させる。
【００２８】
制御信号処理部３５は、ＰＬＣ３６に接続されており、ＰＬＣ３６から、工作機械１００の機械を動作させるリレーなどの信号情報を受付ける。制御信号処理部３５は、受付けた信号情報を、記憶部３４の共有エリア３４５に書き込む。これらの信号情報は、加工運転時に補間処理部３８が参照する。また、制御信号処理部３５は、解析処理部３７によって共有エリア３４５に補助指令が出力されると、この補助指令を共有エリア３４５から読み出してＰＬＣ３６に送る。補助指令は、数値制御軸である駆動軸を動作させる指令以外の指令である。補助指令の例としては、Ｍコード、ＢコードまたはＴコードなどがある。
【００２９】
ＰＬＣ３６は、ＰＬＣ３６が実行する機械動作が記述されたラダープログラムを格納している。ＰＬＣ３６は、補助指令を受付けると、ラダープログラムに従って補助指令に対応する処理を工作機械１００に実行する。ＰＬＣ３６は、補助指令に対応する処理を実行した後、ＮＣプログラムの次のブロックを実行させるために、機械制御が完了したことを示す完了信号を制御信号処理部３５に送る。
【００３０】
制御演算部２Ｘでは、制御信号処理部３５と、解析処理部３７と、補間処理部３８と、ロボット制御部４１と、干渉処理部３８１とが記憶部３４を介して接続されており、記憶部３４を介して情報の書き込み、および読み出しが行われる。以下の説明では、制御信号処理部３５と、解析処理部３７と、補間処理部３８と、ロボット制御部４１と、干渉処理部３８１との間の情報の書き込み、および読み出しを説明する際に記憶部３４が介されていることを省略する場合がある。
【００３１】
ユーザが入力操作部３ＸでＮＣプログラム番号を入力することによってＮＣプログラムの選択が行われる。機械操作盤等のサイクルスタートをトリガとして、解析処理部３７は、選択されたＮＣプログラム番号を共有エリア３４５から読み出し、選択されたＮＣプログラム番号に対応するＮＣプログラムをＮＣプログラム記憶エリア３４３から読み出して、ＮＣプログラムの各ブロックに対して解析処理を行う。解析処理部３７は、例えば、Ｇコード（軸移動等に関する指令）、Ｍコード（機械動作指令）などを解析する。
【００３２】
解析処理部３７は、解析した行にＭコードが含まれている場合には、解析結果を共有エリア３４５および制御信号処理部３５を介してＰＬＣ３６に送る。ＰＬＣ３６はＭコードに対応する機械制御を実行する。実行が完了した場合、制御信号処理部３５を介してＭコードの完了を示す結果が記憶部３４に書き込まれる。補間処理部３８は記憶部３４に書き込まれた実行結果を参照する。
【００３３】
解析処理部３７は、解析した行にＧコードが含まれている場合には、共有エリア３４５を介して解析結果を補間処理部３８に送る。具体的には、解析処理部３７は、Ｇコードに対応する移動条件を生成して補間処理部３８に送る。移動条件は、加工位置を移動させていくための工具送りの条件であり、工具ホルダ１１ａ，１１ｂを移動させる速度、工具ホルダ１１ａ，１１ｂを移動させる位置などで示される。例えば、工具の工具送りは、工具をＸ軸方向（＋Ｘ方向）およびＺ軸方向（＋Ｚ方向）に進ませる。
【００３４】
解析処理部３７は、ロボット指令解析部３７１を有している。ロボット指令解析部３７１は、接続されたロボット６０の動作を解析する手段である。ロボット指令解析部３７１は、ＮＣプログラムに含まれるロボット指令を解析し、解析結果を、共有エリア３４５を介してロボット制御部４１に送る。解析結果には、ロボット６０の座標系を設定するための指令であるロボット座標系設定指令、ロボット６０の動作を規定したロボット動作指令などが含まれている。
【００３５】
補間処理部３８は、解析処理部３７による解析結果のうち工作機械１００への指令を用いて工作機械１００を制御するためのデータを生成し、加減速処理部３９に送る。加減速処理部３９は、補間処理部３８から供給された補間処理の結果に対して加速度をなめらかに変化させるための加減速処理を行う。加減速処理部３９は、加減速処理の処理結果である速度指令を軸データ入出力部４０に送る。軸データ入出力部４０は、速度指令を駆動部９０に出力する。具体的には、軸データ入出力部４０は、Ｘ軸への速度指令、Ｚ軸への速度指令、および主軸への回転数指令を駆動部９０に出力する。なお、主軸に対しては、加減速処理なしでステップ指令が軸データ入出力部４０から駆動部９０に出力される。
【００３６】
干渉処理部３８１は、干渉物定義部８５と、座標管理部８０と、干渉チェック処理部３８２とを備える。
【００３７】
干渉物定義部８５は、パラメータ記憶エリア３４１から干渉物定義データ３４１２を取得する。干渉物定義データ３４１２は、工作機械１００の固定部と可動部を含む機構をモデル化した干渉物定義エリア１００Ａに関する干渉物定義データと、ロボット６０のロボットアーム２１を含む可動部をモデル化した干渉物定義エリア６０Ａに関する干渉物定義データを含む。干渉物定義エリア１００Ａが第１干渉物定義エリアに対応し、干渉物定義エリア６０Ａが第２干渉物定義エリアに対応する。工作機械１００の可動部とは、工作機械１００における動く部分であり、例えば、工具ホルダ１１ａ，１１ｂ、チャック機構１２ａ，１２ｂ、加工ワーク５ａ，５ｂを含む。
【００３８】
座標管理部８０は、ロボット６０の台座２３の移動によってロボット６０の機械原点が移動する場合、機械原点オフセットデータ３４１１を更新する。また、座標管理部８０は、工作機械１００の動作によって工作機械１００の機械原点が移動する場合、機械原点オフセットデータ３４１１を更新する。図１に示した表示部４には、機械原点オフセットデータ３４１１に関するパラメータ表示の一例として、「＃５００１  機械原点オフセット」を表示し、サーボモータの位置指令またはフィードバック位置から機械原点オフセットが随時計算される。
【００３９】
干渉チェック処理部３８２は、干渉物定義部８５から干渉物定義データ３４１２を取得し、ロボット制御部４１からロボットの動作のための位置指令データまたは位置フィードバックデータを取得し、補間処理部３８から工作機械１００の各軸の移動のための位置指令データまたは位置フィードバックデータを取得し、座標管理部８０から更新された機械原点オフセットデータ３４１１を取得する。干渉チェック処理部３８２は、取得した工作機械１００の各軸の位置データと、工作機械１００の干渉物定義エリア１００Ａに関する干渉物定義データ（第１干渉物定義データ）とに基づいて、干渉物定義エリア１００Ａの現在の位置を計算する。干渉チェック処理部３８２は、ロボット６０の各軸の位置データと、ロボット６０の干渉物定義エリア６０Ａに関する干渉物定義データ（第２干渉物定義データ）とに基づいて、干渉物定義エリア６０Ａの現在の位置を計算する。そして、干渉チェック処理部３８２は、工作機械１００の干渉物定義エリア１００Ａの現在の位置と、ロボット６０の干渉物定義エリア６０Ａと、取得時点の機械原点オフセットデータ３４１１に基づいて、工作機械１００の干渉物定義エリア１００Ａと、ロボット６０の干渉物定義エリア６０Ａとの重なりがないかを否かをチェックする。干渉チェック処理部３８２は、チェックの結果、干渉すると判定した場合、補間処理部３８およびロボット制御部４１に機械干渉の発生を通知し、工作機械１００の動作と、ロボット６０の台座２３の移動動作と、ロボット６０の動作を停止する。
【００４０】
図４は、工作機械１００の干渉物定義エリア１００Ａと、ロボット６０の干渉物定義エリア６０Ａとを概念的に示す図である。工作機械１００の干渉物定義エリア１００Ａは、干渉検出のために工作機械１００の固定部と可動部をモデル化したものである。図４では、干渉物定義エリア１００Ａは、直方体モデル１００Ａ１と円柱モデル１００Ａ２を含む第１グループの干渉モデルによって定義されている。図１の工作機械１００では、可動部として、２つの工具ホルダ１１ａ，１１ｂと、チャック機構１２ａ，１２ｂと、加工ワーク５ａ，５ｂとを含んでいるので、複数のグループの干渉モデルを定義する必要があるが、図４の干渉物定義エリア１００Ａでは、便宜上、１つのグループの干渉モデルのみを図示している。干渉物定義エリア１００Ａは、第１グループの干渉モデルの座標原点である座標原点ｄ１に対する直方体モデル１００Ａ１の原点ｍ１のオフセットである構成立体オフセットＯＦＳ１と、座標原点ｄ１に対する円柱モデル１００Ａ２の原点ｍ２のオフセットである構成立体オフセットＯＦＳ２と、座標原点ｄ１の機械原点Ｏ１に対するオフセットである干渉モデル座標系オフセットＯＦＳ３と、各モデル１００Ａ１，１００Ａ２の寸法データｇ１，ｇ２とを含む複数のパラメータによって定義されている。機械原点Ｏ１は、工作機械１００の機械原点であり、第１機械原点に対応する。このように、工作機械１００の干渉物定義エリア１００Ａは、第１座標系によって定義されている。第１座標系は、機械原点Ｏ１を原点とした座標系であって、図４では、Ｘ軸、Ｙ軸、Ｚ軸で表される座標系である。干渉物定義エリア１００Ａを定義するこれら複数のパラメータは、パラメータ記憶エリア３４１に干渉物定義データ３４１２として記憶されている。
【００４１】
ロボット６０の干渉物定義エリア６０Ａは、ロボット６０の可動部をモデル化したものである。ただし、モデル化されるロボット６０の可動部に、台座２３の移動機構である回転移動変換機構５０３は含まれていない。また、ロボットハンドは、ロボット６０の干渉物定義エリア６０Ａに通常含むが、ＰＬＣなどの外部の入力等により含めないこともできる。図４では、干渉物定義エリア６０Ａは、２つの直方体モデル６０Ａ１，６０Ａ２で定義されている。干渉物定義エリア６０Ａは、直方体モデル６０Ａ１，６０Ａ２を含むロボット６０の干渉モデルの座標原点である座標原点ｄ２に対する直方体モデル６０Ａ１の原点ｍ３のオフセットである構成立体オフセットＯＦＳ４と、座標原点ｄ２に対する直方体モデル６０Ａ２の原点ｍ４のオフセットである構成立体オフセットＯＦＳ５と、座標原点ｄ２の機械原点Ｏ２に対するオフセットである干渉モデル座標系オフセットＯＦＳ６と、各モデル６０Ａ１，６０Ａ２の寸法データｇ３，ｇ４とを含む複数のパラメータによって定義されている。機械原点Ｏ２は、ロボット６０の機械原点であり、第２機械原点に対応する。このように、ロボット６０の干渉物定義エリア６０Ａは、ロボット６０の機械原点Ｏ２に基づく第２座標系によって定義されている。干渉物定義エリア６０Ａを定義するこれら複数のパラメータは、パラメータ記憶エリア３４１に干渉物定義データ３４１２として記憶される。
【００４２】
図４では、干渉物定義エリア１００Ａ，６０Ａを直方体、円柱で定義しているが、その他の形状で定義しても構わない。干渉定義エリアはＣＡＤ（Computer  Aided  Design）データからモデル化して基準となる座標を定義しても構わない。また、干渉物定義エリア１００Ａ，６０Ａを定義する複数のパラメータをパラメータ記憶エリア３４１に保存するのではなく、ＰＬＣ３６からのデータ設定で定義してもよい。この場合は、このデータは制御信号処理部３５から読み込まれ、記憶部３４の共有エリア３４５を経由して、干渉物定義部８５に読み込まれる。
【００４３】
図４に示されるように、工作機械１００の機械原点Ｏ１とロボット６０機械原点Ｏ２とは、機械原点オフセットデータ３４１１で関連付けられる。機械原点オフセットデータ３４１１は、工作機械１００の機械原点Ｏ１とロボット６０の機械原点Ｏ２との位置関係を示すパラメータである。機械原点オフセットデータ３４１１は、ロボット６０の台座２３がサーボモータ５０１によって移動された場合、移動の度に座標管理部８０によって更新される。なお、複数の第１軸は機械原点Ｏ１を原点としたＸ，Ｙ，Ｚ軸であり、複数の第１軸の位置データとは、機械原点Ｏ１を原点としたＸ，Ｙ，Ｚ座標系での位置データである。
【００４４】
図５は、機械原点オフセットデータ３４１１が更新された場合の工作機械１００の干渉物定義エリア１００Ａと、ロボット６０の干渉物定義エリア６０Ａとの位置関係を概念的に示す図である。図５では、工作機械１００の可動部とロボットアーム２１が干渉する直前の状態を示している。このように機械原点オフセットデータ３４１１が更新され、ロボット６０が工作機械１００に接近して、工作機械１００の可動部とロボットアーム２１が動作していなくても、ロボット６０の台座２３が移動することによって、工作機械１００の可動部とロボットアーム２１が機械干渉することがある。実施の形態１では、このような機械干渉を未然に防止する。また、工作機械１００の可動部およびロボット６０が動作している場合も、同様に、機械干渉を防止することができる。なお、工作機械１００の可動部とロボットアーム２１のフィードバック位置データを各々取得し、機械原点オフセットデータ３４１１をサーボモータ５０１のフィードバック位置データで更新するようにすれば、自動運転時の機械干渉チェックのみならず手動操作時の機械干渉チェックが可能となる。
【００４５】
図６のフローチャートに従って制御演算部２Ｘの動作を説明する。図６は、数値制御装置１Ｘの制御演算部２Ｘの動作手順を示すフローチャートである。なお、図６の処理は、数値制御装置１Ｘの先読み処理の中で実行される。解析処理部３７は、ＮＣプログラム記憶エリア３４３に記憶された加工プログラム、すなわち駆動部９０への指令を解析する。また、解析処理部３７は、ロボット６０の台座２３を移動させる指令であるロボット台座移動指令も解析する。また、解析処理部３７のロボット指令解析部３７１はロボット６０を動作させる加工プログラムを解析する（ステップＳ１）。
【００４６】
台座２３の移動によってロボット６０の機械原点Ｏ２が変化するため、座標管理部８０は、ロボット６０の台座２３のサーボモータ５０１のフィードバック位置を台座サーボ制御部５００、軸データ入出力部４０、加減速処理部３９、補間処理部３８を経由して取得し、取得された台座２３の位置に基づきロボット６０の機械原点Ｏ２を計算する。座標管理部８０は、計算されたロボット６０の機械原点Ｏ２と工作機械１００の機械原点Ｏ１とに基づき、機械原点オフセットデータ３４１１を計算し、パラメータ記憶エリア３４１に書き込む（ステップＳ２）。すなわち、座標管理部８０は、ロボット６０の台座２３の移動に伴って機械原点オフセットデータ３４１１を更新する。
【００４７】
解析処理部３７は、解析された指令が工作機械１００の駆動部９０に出力する指令であるかあるいはロボット６０に対する指令であるかを判定する（ステップＳ３）。工作機械１００の駆動部９０に対する指令である場合（ステップＳ３：Ｙｅｓ）、解析処理部３７は解析された指令を補間処理部３８に出力する。ロボット６０に対する指令である場合（ステップＳ３：Ｎｏ）、解析処理部３７は解析された指令をロボット制御部４１に出力する。
【００４８】
補間処理部３８は、解析処理部３７から入力された指令に基づいて補間処理を行い、駆動部９０の各軸の位置データを計算する（ステップＳ４）。加減速処理部３９は、補間処理部３８から供給された位置データに対し加減速処理を行い、加減速処理の処理結果である速度指令を軸データ入出力部４０に送る。軸データ入出力部４０は、速度指令（単位時間あたりの位置指令）を駆動部９０に出力する（ステップＳ５）。
【００４９】
ロボット制御部４１は、解析処理部３７から入力された加工プログラムの指令をロボットプログラムに変換する（ステップＳ６）。ロボット制御部４１は、変換されたロボットプログラムに基づいて、ロボット動作の演算を行い、ロボット６０の各軸の位置データを演算する（ステップＳ７）。具体的には、ロボット制御部４１は、ロボットアーム２１の位置およびロボットハンド２２等の位置の計算を行う。ロボット制御部４１は、計算された位置データをロボットコントローラ５０Ｘに出力する。
【００５０】
ステップＳ３において、解析処理部３７は、加工プログラム中の工作機械１００に対する指令は補間処理部３８に送り、ロボット６０に対する指令はロボット制御部４１に送るので、ステップＳ４およびＳ５の処理と、ステップＳ６およびＳ７の処理は、並列に実行される。
【００５１】
干渉チェック処理部３８２は、工作機械１００の初期状態の干渉物定義エリア１００Ａに関する干渉物定義データ３４１２と、ロボット６０の初期状態の干渉物定義エリア６０Ａに関する干渉物定義データ３４１２を、干渉物定義部８５を介してパラメータ記憶エリア３４１から取得する。また、干渉チェック処理部３８２は、補間処理部３８から、工作機械１００の可動部の位置フィードバックデータを取得し、ロボット制御部４１から、ロボットアーム２１等の可動部の位置フィードバックデータを取得する。干渉チェック処理部３８２は、パラメータ記憶エリア３４１から取得した工作機械１００の初期状態の干渉物定義エリア１００Ａに関する干渉物定義データ３４１２と、工作機械１００の可動部の位置フィードバックデータとに基づいて、工作機械１００の現在の干渉物定義エリア１００Ａの位置を計算する。また、干渉チェック処理部３８２は、パラメータ記憶エリア３４１から取得したロボット６０の初期状態の干渉物定義エリア６０Ａに関する干渉物定義データ３４１２と、ロボットアーム２１等の可動部の位置フィードバックデータとに基づいて、ロボット６０の干渉物定義エリア６０Ａの現在の位置、姿勢を計算する（ステップＳ８）。なお、工作機械１００の固定部の干渉物定義エリアＡに関する干渉物定義データについては、干渉チェック処理部３８２が加工プログラムによる運転を開始する前に演算し、パラメータ記憶エリア３４１に記憶しておく。干渉チェック処理部３８２は、工作機械１００の固定部の干渉物定義エリアＡに関する干渉物定義データをパラメータ記憶エリア３４１から取得する。
【００５２】
干渉チェック処理部３８２は、取得した工作機械１００の干渉物定義エリア１００Ａの現在の位置と、ロボット６０の干渉物定義エリア６０Ａの現在の位置と、ステップＳ２で更新された機械原点オフセットデータ３４１１とに基づいて、工作機械１００の干渉物定義エリア１００Ａとロボット６０の干渉物定義エリア６０Ａとの重なりを計算する（ステップＳ９）。更新された機械原点オフセットデータ３４１１に基づいて工作機械１００の干渉物定義エリア１００Ａとロボット６０の干渉物定義エリア６０Ａとの重なりを計算するので、ロボット６０の台座２３が移動した場合でも、工作機械１００とロボット６０との干渉チェックを行うことができる。
【００５３】
干渉チェック処理部３８２は、機械干渉が発生していること検出した場合は（ステップＳ１０：Ｙｅｓ）、処理をステップＳ１１に進ませる。干渉チェック処理部３８２は、機械干渉を検出しない場合は（ステップＳ１０：Ｎｏ）、処理をリターンする。
【００５４】
ステップＳ１１では、干渉チェック処理部３８２は、補間処理部３８とロボット制御部４１に動作中止の信号を送ると同時に、画面処理部３１を経由して表示部４にアラーム表示を行う。補間処理部３８とロボット制御部４１は、干渉チェック処理部３８２からの動作中止の信号を受け取ると、演算を止める。これによって、工作機械１００の可動部とロボット６０の可動部およびロボット６０の台座２３の移動は停止する。上記した一連の処理は、数値制御装置１Ｘの先読み処理の中で実行され、機械干渉が検出された場合は、演算が止められるため、工作機械１００とロボット６０とが機械干渉することはない。
【００５５】
このように実施の形態１では、台座２３の移動に伴って、工作機械１００とロボット６０との位置関係を示す機械原点オフセットデータ３４１１を更新し、更新された機械原点オフセットデータ３４１１に基づいて、工作機械１００とロボット６０を制御する数値制御装置１Ｘ自身が、工作機械１００とロボット６０との機械干渉を検出するようにしているので、ロボット６０の台座２３が移動する場合でも、工作機械１００とロボット６０との干渉を回避することができる。なお、実施の形態１では、ロボット６０が台座２３の移動にともなって移動することとしているが、要するに、工作機械１００の機械原点Ｏ１とロボット６０機械原点Ｏ２とが相対的に移動可能となっていれば、本実施の形態と同様の効果を奏する。
【００５６】
実施の形態２．
図７から図９に基づいて実施の形態２の数値制御装置１Ｙについて説明する。図７は、実施の形態２のロボット６０の台座２３の移動機構などを示す図である。図８は、実施の形態２の数値制御装置１Ｙの構成例を示すブロック図である。図９は、数値制御装置１Ｙの制御演算部２Ｙの動作手順を示すフローチャートである。
【００５７】
図７に示すように、実施の形態２では、アクチュエータ５０４によってロボット６０の台座２３が移動される。図７は、ロボット６０の台座２３が第１位置Ｐ１と第２位置Ｐ２との間をアクチュエータ５０４の動作によって、矢印Ａ方向に往復運動している。アクチュエータ５０４は、例えば油圧によって台座２３を駆動する。第１位置Ｐ１への移動または第２位置Ｐ２への移動は加工プログラムのＭコードで指令される。アクチュエータ５０４には、第１位置Ｐ１への台座２３の移動完了および第２位置Ｐ２への台座２３の移動完了を検出する図示しないリミットスイッチなどのセンサが設けられている。リミットスイッチなどのセンサは、アクチュエータ５０４の動作によって台座２３が第１位置Ｐ１へ移動したことを検出すると、位置検出信号をＰＬＣ３６に通知する。また、リミットスイッチなどのセンサは、アクチュエータ５０４の動作によって台座２３が第２位置Ｐ２へ移動したことを検出すると、位置検出信号をＰＬＣ３６に通知する。
【００５８】
図８の数値制御装置１Ｙの制御演算部２Ｙにおいては、実施の形態１の制御演算部２Ｘに対しアクチュエータ制御位置データ３４１３およびアクチュエータ位置管理部８１が追加されている。また、台座サーボ制御部５００、サーボモータ５０１、および検出器５０２が削除されている。図８の各構成要素のうち図３に示す実施の形態１の数値制御装置１Ｘと同一機能を達成する構成要素については同一符号を付しており、重複する説明は省略する。
【００５９】
パラメータ記憶エリア３４１は、アクチュエータ制御位置データ３４１３を更に含む。干渉処理部３８１は、アクチュエータ位置管理部８１を更に含む。アクチュエータ制御位置データ３４１３は、ロボット６０の台座２３をアクチュエータ５０４で移動させる場合にアクチュエータ５０４の位置決め位置を設定するためのパラメータである。例えば、図７の表示部４に表示されているように、
＃５００１  機械原点オフセット  ２５０．０００
＃５００２  第一位置            ５０．０００
＃５００３  第二位置            １５０．０００
のように、設定する。ここで＃５００１  機械原点オフセットは例えば第一位置でのオフセットを設定している。
【００６０】
アクチュエータ位置管理部８１は、ＰＬＣ３６から制御信号処理部３５を介して第１位置Ｐ１への移動完了通知を受けると、アクチュエータ制御位置データ３４１３に含まれる第１位置Ｐ１のデータをパラメータ記憶エリア３４１から取得して座標管理部８０に渡す。また、アクチュエータ位置管理部８１は、ＰＬＣ３６から制御信号処理部３５を介して第２位置Ｐ２への移動完了通知を受けると、アクチュエータ制御位置データ３４１３に含まれる第２位置Ｐ２のデータをパラメータ記憶エリア３４１から取得して座標管理部８０に渡す。第１位置Ｐ１への移動完了通知および第２位置Ｐ２への移動完了通知は、前述したように、リミットスイッチ等の位置検出信号に基づいている。
【００６１】
次に、図９のフローチャートに従って制御演算部２Ｙの動作を説明する。図９においては、図６のＳ１，Ｓ２をＳ１０１，Ｓ１０２，Ｓ２１に置換し、Ｓ１１をＳ１１１に置換しており、それ以外の処理は図６と同様であり、重複する説明は省略する。ステップＳ１０１では、解析処理部３７は、ＮＣプログラム記憶エリア３４３に記憶された加工プログラム、すなわち駆動部９０への指令を解析する。また、解析処理部３７は、ロボット６０の台座２３を移動させるアクチュエータ移動指令（Ｍコード）も解析する。また、解析処理部３７のロボット指令解析部３７１はロボット６０を動作させる加工プログラムを解析する。
【００６２】
ステップＳ１０２では、リミットスイッチなどのセンサによる台座２３の位置検出が行われる。センサは、アクチュエータ５０４の動作によって台座２３が第１位置Ｐ１へ移動したことを検出すると、位置検出信号（移動完了通知）をＰＬＣ３６に出力する。アクチュエータ位置管理部８１は、制御信号処理部３５からアクチュエータ５０４の第１位置Ｐ１への移動完了通知を受けると、アクチュエータ制御位置データ３４１３に含まれる第１位置Ｐ１のデータをパラメータ記憶エリア３４１から取得して座標管理部８０に渡す。第２位置Ｐ２のデータの検出も同様に行われる。
【００６３】
ステップＳ２１では、座標管理部８０は、アクチュエータ位置管理部８１から第１位置Ｐ１のデータまたは第２位置Ｐ２のデータを取得し、ロボット６０の機械原点Ｏ２を計算し、計算されたロボット６０の機械原点Ｏ２と工作機械の機械原点Ｏ１とに基づき、機械原点オフセットデータ３４１１を計算し、パラメータ記憶エリア３４１に書き込む。すなわち、座標管理部８０は、ロボット６０の台座２３が第１位置Ｐ１または第２位置Ｐ２に移動すると、機械原点オフセットデータ３４１１を更新する。
【００６４】
この後、ステップＳ３〜ステップＳ１０において図６と同様の処理が行われる。ステップＳ１１１では、干渉チェック処理部３８２は、補間処理部３８とロボット制御部４１に動作中止の信号を送ると同時に、画面処理部３１を経由して表示部４にアラーム表示を行う。これによって、工作機械１００の可動部とロボット６０の可動部の移動は停止する。なお、実施の形態２では、この段階では、アクチェエータ５０４の動作は停止しており、台座２３も停止しているため、ステップＳ１１１で、干渉チェック処理部３８２が敢えてアクチェエータ５０４の動作を停止することはしない。
【００６５】
このように実施の形態２においても、台座２３の移動に伴って、工作機械１００とロボット６０との位置関係を示す機械原点オフセットデータ３４１１を更新し、更新された機械原点オフセットデータ３４１１に基づいて、工作機械１００とロボット６０を制御する数値制御装置１Ｙ自身が、工作機械１００とロボット６０との機械干渉を検出するようにしているので、ロボット６０の台座２３が移動する場合でも、工作機械１００とロボット６０との干渉を回避することができる。
【００６６】
実施の形態３．
図７、図８および図１０を用いて実施の形態３の数値制御装置１Ｙについて説明する。図１０は、実施の形態３の数値制御装置１Ｙの制御演算部２Ｙの動作手順を示すフローチャートである。実施の形態２では、アクチュエータ５０４の位置を第１位置Ｐ１および第２位置Ｐ２でのみ検出したが、実施の形態３では、アクチュエータ５０４の移動中の位置を逐次検出する。
【００６７】
図１０のフローチャートに従って制御演算部２Ｙの動作を説明する。図１０においては、図９のＳ１０２をＳ１０３に置換し、Ｓ１１１をＳ１１２に置換しており、それ以外の処理は図６と同様であり、重複する説明は省略する。実施の形態２と同様に、ステップＳ１０１では、解析処理部３７は、ＮＣプログラム記憶エリア３４３に記憶された加工プログラム、すなわち駆動部９０への指令を解析する。また、解析処理部３７は、ロボット６０の台座２３を移動させるアクチュエータ移動指令（Ｍコード）も解析する。また、解析処理部３７のロボット指令解析部３７１はロボット６０を動作させる加工プログラムを解析する。
【００６８】
ステップＳ１０３では、アクチュエータ位置管理部８１は、制御信号処理部３５からのアクチュエータ５０４の起動（動作開始）の通知を受けて、アクチュエータ５０４の移動中の位置、すなわち台座２３の位置を逐次計算する。
【００６９】
アクチュエータ５０４が油圧式の場合は、例えば、下記の式に基づいてアクチュエータ５０４の移動中の位置が計算される。流量をＱとし、チューブ径をＤとし、ロッド径をｄとすると、アクチュエータ５０４の伸び速度Ｖｎ、縮み速度Ｖｃは、つぎのように表される。
Ｖｎ＝（Ｑ／（π／４×Ｄ２））×１０３
Ｖｃ＝（Ｑ／（π／４×（Ｄ２−ｄ２）））×１０３
【００７０】
したがって、アクチュエータ５０４の伸び方向への動作開始からの経過時間をｔ１とし、アクチュエータ５０４の縮み方向への動作開始からの経過時間をｔ２とすると、伸び時のアクチュエータ位置Ｐｆおよび縮み時のアクチュエータ位置Ｐｂは、つぎのように表される。
Ｐｆ＝Ｖｎ×ｔ１
Ｐｂ＝Ｖｃ×ｔ２
【００７１】
座標管理部８０は、アクチュエータ位置管理部８１からアクチュエータ５０４の位置データ、すなわち台座２３の位置を取得する。座標管理部８０は、取得された台座２３の位置に基づきロボット６０の機械原点Ｏ２を計算する。座標管理部８０は、計算されたロボット６０の機械原点Ｏ２（アクチュエータ位置管理部８１で計算されたアクチュエータ位置）と工作機械の機械原点Ｏ１とに基づき、機械原点オフセットデータ３４１１を計算し、パラメータ記憶エリア３４１に書き込む。すなわち、座標管理部８０は、ロボット６０の台座２３の移動に伴って機械原点オフセットデータ３４１１を逐次更新する。
【００７２】
この後、ステップＳ３〜ステップＳ１０において図６と同様の処理が行われる。ステップＳ１１２では、干渉チェック処理部３８２は、補間処理部３８とロボット制御部４１と、アクチュエータ５０４に動作中止の信号を送ると同時に、画面処理部３１を経由して表示部４にアラーム表示を行う。これによって、工作機械１００の可動部とロボット６０の可動部およびロボット６０の台座２３の移動は停止する。なお、干渉チェック処理部３８２が制御信号処理部３５にアクチュエータ停止の通知を行うことにより、アクチュエータ５０４が停止される。この際、制御信号処理部３５がＰＬＣ３６にアクチュエータ停止信号を送り、ＰＬＣ３６がアクチュエータ５０４を停止させる。
【００７３】
このように実施の形態３においても、台座２３の移動に伴って、工作機械１００とロボット６０との位置関係を示す機械原点オフセットデータ３４１１を更新し、更新された機械原点オフセットデータ３４１１に基づいて、工作機械１００とロボット６０を制御する数値制御装置１Ｙ自身が、工作機械１００とロボット６０との機械干渉を検出するようにしているので、ロボット６０の台座２３が移動する場合でも、工作機械１００とロボット６０との干渉を回避することができる。
【００７４】
実施の形態４．
図１１を用いて実施の形態４の数値制御装置１Ｍについて説明する。図１１は、実施の形態４にかかる数値制御装置１Ｍの構成例を示すブロック図である。図１１の数値制御装置１Ｍの制御演算部２Ｍでは、図３に示した数値制御装置１Ｘに機械学習装置７０が追加されている。図１１の各構成要素のうち図３に示した数値制御装置１Ｘと同一機能を達成する構成要素については同一符号を付しており、重複する説明は省略する。
【００７５】
機械学習装置７０は、観測部７０１と、学習部７０２とを備えている。機械学習装置７０は、干渉情報（ｒ）と、干渉時の加工プログラム情報（ｒ）とを用いて、工作機械１００とロボット６０との機械干渉を学習して、干渉の発生を干渉チェック処理部３８２に事前に通知するための干渉アラーム事前情報（ｎ）を推測する。干渉情報（ｒ）は、干渉チェック処理部３８２から観測部７０１に入力される。干渉情報（ｒ）は、機械干渉が発生したときの工作機械１００の干渉物定義エリア１００Ａに関する干渉物定義データと、機械干渉が発生したときのロボット６０の干渉物定義エリア６０Ａに関する干渉物定義データとを含んでいる。干渉時の加工プログラム情報（ｒ）は、解析処理部３７から観測部７０１に入力される。干渉時の加工プログラム情報（ｒ）は、解析処理部３７で解析された干渉時の加工プログラム情報を含んでいる。干渉時の加工プログラム情報（ｒ）を、単に加工プログラム情報（ｒ）と呼称する。
【００７６】
観測部７０１は、干渉情報（ｒ）と加工プログラム情報（ｒ）のデータ観測を行う。観測部７０１はデータ観測した結果である状態情報（ｉ）を学習部７０２に出力する。状態情報（ｉ）は、干渉アラーム情報（ｒ）と干渉時の加工プログラム情報（ｒ）とが関連付けられたデータセットである。
【００７７】
学習部７０２は、観測部７０１から状態情報（ｉ）を取得する。学習部７０２は、観測部７０１から出力される状態情報（ｉ）を学習し、干渉の有無を推測した情報である干渉アラーム事前情報（ｎ）を干渉チェック処理部３８２に出力する。
【００７８】
なお、機械学習装置７０は、数値制御装置１Ｍに設けられるものに限られない。機械学習装置７０は、数値制御装置１Ｍの外部に設けられてもよい。機械学習装置７０は、ネットワークを介して数値制御装置１Ｍに接続可能な装置に設けられてもよい。すなわち、機械学習装置７０は、ネットワークを介して数値制御装置１Ｍに接続された別個のコンポーネントであってもよい。また、機械学習装置７０は、クラウドサーバ上に存在していてもよい。
【００７９】
学習部７０２は、例えば、ニューラルネットワークモデルに従って、いわゆる教師あり学習により、干渉情報（ｒ）と加工プログラム情報（ｒ）とを互いに関連付けた状態情報（ｉ）から特徴を学習する。ここで、教師あり学習とは、ある入力と結果のデータの組を大量に学習装置に与えることで、それらのデータセットにある特徴を学習し、入力から結果を推定するモデルをいう。
【００８０】
ニューラルネットワークは、複数のニューロンからなる入力層、複数のニューロンからなる中間層（隠れ層）、及び複数のニューロンからなる出力層で構成される。中間層は、１層でもよいし２層以上でもよい。
【００８１】
例えば、３層のニューラルネットワークであれば、複数の入力が入力層に入力されると、その値に重みを掛けて中間層に入力され、その結果にさらに重みを掛けて出力層から出力される。この出力結果は、各々の重みの値によって変わる。
【００８２】
本実施の形態のニューラルネットワークは、観測部７０１によって観測される干渉情報（ｒ）と加工プログラム情報（ｒ）とのデータセットに従って、いわゆる教師あり学習により、干渉アラーム事前情報（ｎ）を学習結果（推測値）として出力する。
【００８３】
すなわち、ニューラルネットワークは、入力層に干渉情報（ｒ）と加工プログラム情報（ｒ）とを互いに関連付けた状態情報（ｉ）を入力して、出力層から出力された結果が、重みを調整することで、干渉アラーム事前情報（ｎ）を学習結果（推測値）として出力する。
【００８４】
また、ニューラルネットワークは、いわゆる教師なし学習によって、干渉アラーム事前情報（ｎ）を学習することもできる。教師なし学習とは、入力データのみを大量に機械学習装置７０に与えることで、入力データがどのような分布をしているか学習し、対応する教師データ（出力データ）を与えなくても、入力データに対して圧縮・分類・整形等を行い学習する手法である。教師なし学習では、データセットにある特徴を似た者どうしにクラスタリングすること等ができる。教師なし学習では、このクラスタリングの結果を使って、何らかの基準を設けて、この基準を最適にするような出力の割り当てを行うことで、出力の予測を実現することができる。
【００８５】
また、機械学習装置７０は、複数の数値制御装置に対して作成されるデータセットに従って、干渉アラーム事前情報（ｎ）を学習結果（推測値）として出力してもよい。なお、機械学習装置７０は、同一の現場で使用される複数の数値制御装置からデータセットを取得してもよいし、或いは、異なる現場で独立して稼働する複数の工作機械１００の数値制御装置から収集されるデータセットを利用して干渉アラーム事前情報（ｎ）を学習してもよい。さらに、機械学習装置７０は、データセットを収集する数値制御装置を途中で対象に追加し、或いは、逆に対象から切り離すことも可能である。また、ある数値制御装置で学習した機械学習装置７０を、これとは別の数値制御装置に取り付け、別の数値制御装置が状態情報（ｉ）を再学習し、干渉アラーム事前情報（ｎ）を更新するようにしてもよい。
【００８６】
また、機械学習装置７０に用いられる学習アルゴリズムとしては、特徴量そのものの抽出を学習する、深層学習（Deep  Learning）を用いることもできる。また、機械学習装置７０は、他の公知の方法、例えば遺伝的プログラミング、機能論理プログラミング、サポートベクターマシンなどに従って機械学習を実行してもよい。
【００８７】
このようにして学習された干渉アラーム事前情報（ｎ）は、干渉チェック処理部３８２に入力される。干渉チェック処理部３８２は、干渉発生を示す干渉アラーム事前情報（ｎ）が入力されると、図６のステップＳ１１に示したアラーム処理を実行し、工作機械１００およびロボット６０および台座２３を停止し、表示部４に衝突アラームを表示する。
【００８８】
機械学習装置７０の学習では、加工プログラム情報（ｒ）に基づいて学習が行われるので、機械干渉の直前ではなく、機械干渉が推測される加工プログラムのブロックの前ブロックのブロックエンドで機械を停止させることができ、より安全に機械干渉を防ぐことができる。因みに、機械干渉の直前で工作機械１００またはロボット６０を停止させた場合、工作機械１００またはロボット６０の移動速度によっては、停止に時間がかかる場合があり、非常にまれに機械干渉が発生する可能性があり、また、干渉物定義エリアが干渉物のサイズと同サイズに定義された場合は停止するまでのマージンが少なく、機械干渉が発生する可能性がある。
【００８９】
このように実施の形態４では、機械学習装置７０が、干渉情報（ｒ）と加工プログラム情報（ｒ）とを互いに関連付けた状態情報（ｉ）に基づいて、干渉アラーム事前情報（ｎ）を学習している。したがって、機械干渉が推測される加工プログラムのブロックの前ブロックのブロックエンドで機械を停止させることができ、より安全に機械干渉を防ぐことができる。
【００９０】
実施の形態５．
つぎに、図１２を用いてこの発明の実施の形態５について説明する。図１２は、実施の形態５にかかる数値制御装置１Ｎの構成例を示すブロック図である。図１２の数値制御装置１Ｎの制御演算部２Ｎでは、図８に示した数値制御装置１Ｙに機械学習装置７０が追加されている。図１２の各構成要素のうち図８に示した数値制御装置１Ｙと同一機能を達成する構成要素については同一符号を付しており、重複する説明は省略する。
【００９１】
機械学習装置７０は、図１１と同様、観測部７０１と、学習部７０２とを備えている。機械学習装置７０は、干渉情報（ｒ）と、干渉時の加工プログラム情報（ｒ）とを用いて、工作機械１００とロボット６０との機械干渉を学習して、干渉の発生を干渉チェック処理部３８２に事前に通知するための干渉アラーム事前情報（ｎ）を推測する。干渉情報（ｒ）は、機械干渉が発生したときの工作機械１００の干渉物定義エリア１００Ａに関する干渉物定義データと、機械干渉が発生したときのロボット６０の干渉物定義エリア６０Ａに関する干渉物定義データとを含んでいる。干渉時の加工プログラム情報（ｒ）は、解析処理部３７で解析された干渉時の加工プログラム情報を含んでいる。干渉アラーム事前情報（ｎ）は、干渉チェック処理部３８２に入力される。干渉チェック処理部３８２は、干渉発生を示す干渉アラーム事前情報（ｎ）が入力されると、図９のステップＳ１１１に示したアラーム処理を実行し、工作機械１００およびロボット６０およびアクチュエータ５０４を停止し、表示部４に衝突アラームを表示する。
【００９２】
このように実施の形態５では、機械学習装置７０が、干渉情報（ｒ）と加工プログラム情報（ｒ）とを互いに関連付けた状態情報（ｉ）に基づいて、干渉アラーム事前情報（ｎ）を学習している。したがって、機械干渉の直前ではなく、機械干渉が推測される加工プログラムのブロックの前ブロックのブロックエンドで機械を停止させることができ、より安全に機械干渉を防ぐことができる。例えばアクチュエータ移動指令（Ｍコード）実行前で（アクチュエータが動く前に）停止させることが可能になる。
【００９３】
実施の形態６．
図１３、図１４および図１５を用いて実施の形態６の産業機械制御システムについて説明する。図１３は、実施の形態６の産業機械制御システムの構成例を示す図である。図１３に示す産業機械制御システムは、複数の工作機械１００ａ，１００ｂ，・・・と、移動可能な台座２３を有するロボット６０と、台座２３を移動するサーボモータ５０７およびサーボアンプ５０８と、工作機械１００ａ，１００ｂ，・・・およびロボット６０を制御する複数の数値制御装置１Ｚ，１Ｚ，・・・と、ローカル無線通信設備６００を有する。工作機械１００ａが第１ワークを加工する第１産業機械に対応し、ロボット６０が第２産業機械に対応し、工作機械１００ｂが第２ワークを加工する第３産業機械に対応し、工作機械１００ａを制御する数値制御装置１Ｚが第１数値制御装置に対応し、工作機械１００ｂを制御する数値制御装置１Ｚが第２数値制御装置に対応する。
【００９４】
図１３に示す産業機械制御システムでは、ロボット６０の台座２３は、並んで配設された複数の工作機械１００ａ，１００ｂ，・・・の間を矢印Ａ方向に移動するように構成されている。台座２３は、複数の工作機械１００ａ，１００ｂ，・・・に亘って延びる回転移動変換機構５０６によって矢印Ａ方向に移動される。回転移動変換機構５０６はサーボモータ５０７に連結されており、サーボモータ５０７の回転によって移動動作する。サーボモータ５０７は、例えば汎用のサーボモータであり、汎用のサーボアンプ５０８によって駆動される。サーボアンプ５０８は、図示しない無線データ入出力部、図示しない無線アンテナを有する。
【００９５】
工作機械１００ａ，１００ｂ，・・・の各々の数値制御装置１Ｚでは、自身が担当するエリア内にロボット６０の台座２３が位置しているか否かを判定するための工作機械エリアＲａ，Ｒｂ，・・・が定義されている。工作機械エリアＲａは工作機械１００ａの担当エリアに所属する作業エリアである。工作機械エリアＲｂは工作機械１００ｂが所属する作業エリアである。工作機械１００ａの場合は、ロボット６０の台座２３が工作機械エリアＲａ内に位置しているときに、干渉チェックが行われる。工作機械１００ｂの場合は、ロボット６０の台座２３が工作機械エリアＲｂ内に位置しているときに、干渉チェックが行われる。
【００９６】
この産業機械制御システムでは、無線通信を用いて複数の数値制御装置１Ｚと、ロボット６０と、サーボアンプ５０８とのデータ通信が行われる。この産業機械制御システムの無線通信としては、例えば、第５世代移動通信システム（５Ｇ）が採用される。産業機械制御システムは、ローカル無線通信設備６００を有する。ローカル無線通信設備６００はアンテナ６０１とローカル無線基地機器６０２を有する。ローカル無線通信設備６００は、本構成に限定されるものではなく、使用されるエリア環境に応じて最適な構成で構成される。
【００９７】
５Ｇ通信を使うことによって、大きな生産システムに有線の配線を行わなくても、汎用サーボアンプのデータを工作機械１００ａ，１００ｂ，・・・の数値制御装置１Ｚが受信することができる。かつ、５Ｇ通信は、低遅延(４ｍｓｅｃ)であるため、サーボアンプ５０８の位置データを各数値制御装置１Ｚが受信することができる。また、ＵＲＬＬＣ（Ultra-Reliable  and  Low  Latency  Communications）の技術を導入すれば１ｍｓｅｃの低遅延通信も可能になる。また、無線通信は、ローカル５Ｇのみならず、５Ｇスモールセル設備を使ってもよい。また、Ｗｉ−Ｆｉ（登録商標）６無線規格の低遅延通信を使ってもよい。このとき、数値制御装置および汎用サーボアンプの構成は５Ｇ通信データ入出力部の代わりに、Ｗｉ−Ｆｉ（登録商標）６通信データ入出力部で構成される。
【００９８】
図１４は、実施の形態６の数値制御装置１Ｚの構成例を示すブロック図である。図１４では、工作機械１００ａを制御する数値制御装置１Ｚの構成が示されている。他の工作機械１００ｂ，・・・（複数台）を制御する数値制御装置１Ｚも同様に構成されている。実施の形態６の数値制御装置１Ｚでは、図３に示す実施の形態１の数値制御装置１Ｘに無線通信データ入出力部１０１が追加されている。図１４の各構成要素のうち図３に示した数値制御装置１Ｘと同一機能を達成する構成要素については同一符号を付しており、重複する説明は省略する。無線通信データ入出力部１０１に接続される無線アンテナは図示していない。
【００９９】
各数値制御装置１Ｚの無線通信データ入出力部１０１は、ローカル無線通信設備６００を経由して、無線データ入出力部を有するサーボアンプ５０８とデータ送受信を行う。送受信されるデータには、サーボアンプ５０８の現在位置（機械位置等）、サーボアンプ５０８に対するスタート、ストップ命令などが含まれる。
【０１００】
また、記憶部３４のパラメータ記憶エリア３４１に記憶される干渉物定義データ３４１２は、工作機械１００ａの干渉物定義エリア１００Ａおよびロボット６０の干渉物定義エリア６０Ａの他に、工作機械エリアＲａを定義する工作機械エリアデータを含んでいる。
【０１０１】
図１５のフローチャートを使って、各数値制御装置１Ｚの動作、ロボット６０の動作、および台座２３を駆動するサーボアンプ５０８およびサーボモータ５０７の動作を説明する。図１５は、各数値制御装置１Ｚの制御演算部２Ｚおよびサーボアンプ５０８の動作手順を示すフローチャートである。なお、図１５の処理は、数値制御装置１Ｚの先読み処理の中で実行される。図１５の処理は、ロボット６０の台座２３が複数の工作機械１００間を移動している場合の動作を示している。
【０１０２】
解析処理部３７は、ＮＣプログラム記憶エリア３４３に記憶された加工プログラム、すなわち駆動部９０への指令を解析する。また、解析処理部３７は、ロボット６０の台座２３を移動させる指令であるロボット台座移動指令も解析し、解析された指令を共有エリア３４５を経由して無線通信データ入出力部１０１に渡す。無線通信データ入出力部１０１は、指令をローカル無線通信設備６００を経由してサーボアンプ５０８に無線送信する。また、解析処理部３７のロボット指令解析部３７１はロボット６０を動作させる加工プログラムを解析する（ステップＳ１００１）。
【０１０３】
解析処理部３７で解析されるサーボモータ５０７に対する指令が、例えば、「B1000  Z100.  F1000」であったとする。解析処理部３７は、「B1000  Z100.  F1000」を解析し、サーボモータ５０７に対するスタート指令と、速度指令であるＦ１０００と、終点位置１００．を含む指令を共有エリア３４５を経由して無線通信データ入出力部１０１に渡す。無線通信データ入出力部１０１は、サーボモータ５０７に対するスタート指令、速度指令、および終点位置を、ローカル無線通信設備６００を経由して、サーボアンプ５０８に無線送信する。
【０１０４】
サーボアンプ５０８は、スタート指令、速度指令、および終点位置を受信すると、サーボモータ５０７を駆動し、ロボット６０の台座２３の移動を開始する。サーボアンプ５０８は、ロボット６０の台座２３の移動中の現在位置を、現在指令位置データまたはサーボモータ５０７のフィードバックデータから取得し、取得された台座２３の現在位置をローカル無線通信設備６００を経由して各数値制御装置１Ｚに送信する（ステップＳ２００）。サーボアンプ５０８は、終点位置１００．に到達するまでは、台座２３の移動中の現在位置を或る時間間隔で各数値制御装置１Ｚに無線送信する。
【０１０５】
複数の工作機械１００ａ，１００ｂ，・・・の各々の数値制御装置１Ｚの無線通信データ入出力部１０１は、ローカル無線通信設備６００を経由して台座２３の現在位置を受信すると、受信した台座２３の現在位置を共有エリア３４５を経由して座標管理部８０に渡す（ステップＳ１００２）。
【０１０６】
各数値制御装置１Ｚの座標管理部８０は、受信した台座２３の現在位置と、各々の工作機械エリアＲａ，Ｒｂ，・・・のデータを使って、工作機械エリア内にロボット６０の台座２３が位置しているか否かを判定する（ステップＳ１００３，Ｓ１００４）。例えば、工作機械１００ａの数値制御装置１Ｚでは、座標管理部８０は、工作機械エリアＲａ内にロボット６０の台座２３が位置しているか否かを判定する。
【０１０７】
工作機械エリア内にロボット６０の台座２３が位置している場合（ステップＳ１００４：Ｙｅｓ）、図６で説明したステップＳ２からＳ１０までの処理が実行される。すなわち、ステップＳ１００４の判定がＹｅｓの場合、干渉チェックが行われる。工作機械エリア内にロボット６０の台座２３が位置していない場合（ステップＳ１００４：Ｎｏ）、処理手順は、ステップＳ１００１にリターンされる。
【０１０８】
なお、ステップＳ２においては、座標管理部８０は、サーボアンプ５０８から取得した台座２３の現在位置に基づきロボット６０の機械原点Ｏ２を計算する。座標管理部８０は、計算されたロボット６０の機械原点Ｏ２と工作機械の機械原点Ｏ１とに基づき、機械原点オフセットデータ３４１１を計算し、パラメータ記憶エリア３４１に書き込む。この後、ステップＳ３〜ステップＳ１０において図６と同様の処理が行われる。
【０１０９】
ステップＳ１０において、機械干渉が発生した場合（ステップＳ１０：Ｙｅｓ）、干渉チェック処理部３８２は、表示部４にアラームを表示するとともに、工作機械１００ａ，１００ｂ，・・・と、ロボット６０と、サーボモータ５０７を停止させる（ステップＳ１１３）。サーボモータ５０７を停止するとき、干渉チェック処理部３８２は、共有エリア３４５を経由して無線通信データ入出力部１０１に停止信号を通知する。ステップＳ１０において、機械干渉が発生しない場合（ステップＳ１０：Ｎｏ）、処理手順は、ステップＳ１００１にリターンされる。無線通信データ入出力部１０１は、ローカル無線通信設備６００を経由してサーボアンプ５０８に停止信号を送信する。サーボアンプ５０８は、数値制御装置１Ｚから停止信号を受信すると（ステップＳ２０１：Ｙｅｓ）、サーボモータ５０７を停止し、ロボット６０の台座２３の移動を停止する（ステップＳ２０２）。停止要求を受信しない場合（ステップＳ２０１：Ｎｏ）、処理手順は、ステップＳ２００にリターンされる。
【０１１０】
このように実施の形態６では、ロボット６０が複数の工作機械１００ａ，１００ｂ，・・・の間を移動するシステム構成においても、各数値制御装置１Ｚ自身が、各工作機械１００ａ，１００ｂ，・・・とロボット６０との機械干渉を検出するようにしているので、工作機械１００とロボット６０との干渉を回避することができる。
【０１１１】
ここで、制御演算部２Ｘ，２Ｙ，２Ｍ，２Ｎ，２Ｚのハードウェア構成について説明する。図１６は、実施の形態１〜実施の形態６にかかる数値制御装置が備える制御演算部のハードウェア構成例を示す図である。なお、制御演算部２Ｘ，２Ｙ，２Ｍ，２Ｎ，２Ｚは、同様のハードウェア構成を有しているので、ここでは制御演算部２Ｘのハードウェア構成について説明する。
【０１１２】
制御演算部２Ｘは、図１６に示したプロセッサ３０１、メモリ３０２、およびインタフェース回路３０３により実現することができる。プロセッサ３０１の例は、ＣＰＵ（Central  Processing  Unit、中央処理装置、処理装置、演算装置、マイクロプロセッサ、マイクロコンピュータ、プロセッサ、ＤＳＰ（Digital  Signal  Processor）ともいう）またはシステムＬＳＩ（Large  Scale  Integration）である。メモリ３０２の例は、ＲＡＭ（Random  Access  Memory）、ＲＯＭ（Read  Only  Memory）である。
【０１１３】
制御演算部２Ｘは、プロセッサ３０１が、メモリ３０２で記憶されている、制御演算部２Ｘの動作を実行するためのプログラムを読み出して実行することにより実現される。また、このプログラムは、制御演算部２Ｘの手順または方法をコンピュータに実行させるものであるともいえる。メモリ３０２は、プロセッサ３０１が各種処理を実行する際の一時メモリにも使用される。
【０１１４】
なお、制御演算部２Ｘの機能について、一部を専用のハードウェアで実現し、一部をソフトウェアまたはファームウェアで実現するようにしてもよい。また、機械学習装置７０を、図１６に示したハードウェアで実現してもよい。
【０１１５】
以上の実施の形態に示した構成は、本発明の内容の一例を示すものであり、別の公知の技術と組み合わせることも可能であるし、本発明の要旨を逸脱しない範囲で、構成の一部を省略、変更することも可能である。
【符号の説明】
【０１１６】
１Ｍ，１Ｎ，１Ｘ，１Ｙ，１Ｚ  数値制御装置、２Ｍ，２Ｎ，２Ｘ，２Ｙ，２Ｚ  制御演算部、３Ｘ  入力操作部、４  表示部、５  ＰＬＣ操作部、５ａ，５ｂ  加工ワーク、６ａ，６ｂ  工具、１１ａ，１１ｂ  工具ホルダ、１２ａ，１２ｂ  チャック機構、１４  筐体、２１  ロボットアーム、２２  ロボットハンド、２３  台座、３１  画面処理部、３２  入力制御部、３３  データ設定部、３４  記憶部、３５  制御信号処理部、３７  解析処理部、３８  補間処理部、３９  加減速処理部、４０  軸データ入出力部、４１  ロボット制御部、５０Ｘ  ロボットコントローラ、６０  ロボット、６０Ａ，１００Ａ  干渉物定義エリア、７０  機械学習装置、８０  座標管理部、８１  アクチュエータ位置管理部、８５  干渉物定義部、９０  駆動部、９１  Ｘ軸サーボ制御部、９２  Ｚ軸サーボ制御部、９７，９８，２１１，５０２  検出器、１００，１００ａ，１００ｂ  工作機械、１０１  無線通信データ入出力部、２００  主軸サーボ制御部、３４１  パラメータ記憶エリア、３４３  ＮＣプログラム記憶エリア、３４４  表示データ記憶エリア、３４５  共有エリア、３７１  ロボット指令解析部、３８１  干渉処理部、３８２  干渉チェック処理部、５００  台座サーボ制御部、５０１，５０７，９０１，９０２  サーボモータ、５０３，５０６  回転移動変換機構、５０４  アクチュエータ、５０８  サーボアンプ、６００  ローカル無線通信設備、６０１  アンテナ、６０２  ローカル無線基地機器、７０１  観測部、７０２  学習部、９１１  主軸モータ、３４１１  機械原点オフセットデータ、３４１２  干渉物定義データ、３４１３  アクチュエータ制御位置データ、Ｏ１  工作機械の機械原点、Ｏ２  ロボットの機械原点。
【要約】
数値制御装置（１Ｘ）は、工作機械（１００）の機械原点とロボット（６０）の機械原点との位置関係を示す機械原点オフセットデータ（３４１１）を、工作機械（１００）の機械原点またはロボット（６０）の機械原点の移動に応じて更新する座標管理部（８０）と、第１干渉物定義エリアの位置および第２干渉物定義エリアの位置と、更新された機械原点オフセットデータ（３４１１）とに基づいて、工作機械（１００）とロボット（６０）との干渉を検出する干渉チェック処理部（３８２）と、を備える。【図１】
0006896197.tif 000002
【図２】
0006896197.tif 000003
【図３】
0006896197.tif 000004
【図４】
0006896197.tif 000005
【図５】
0006896197.tif 000006
【図６】
0006896197.tif 000007
【図７】
0006896197.tif 000008
【図８】
0006896197.tif 000009
【図９】
0006896197.tif 000010
【図１０】
0006896197.tif 000011
【図１１】
0006896197.tif 000012
【図１２】
0006896197.tif 000013
【図１３】
0006896197.tif 000014
【図１４】
0006896197.tif 000015
【図１５】
0006896197.tif 000016
【図１６】
0006896197.tif 000017