(57)【特許請求の範囲】
【請求項１】
複数の駆動軸を有する第１系統軸を第１加工プログラムに基づいて駆動する第１制御ユニットと、複数の駆動軸を有する第２系統軸を第２加工プログラムに基づいて駆動する第２制御ユニットと、前記第１制御ユニットおよび前記第２制御ユニットがアクセス可能な共有エリアとを備える数値制御装置であって、
前記第１制御ユニットは、
前記第１加工プログラムに含まれる軸交換指令であって前記第２系統軸が指定された軸交換指令を実行するとき、前記第２系統軸に対する第１の制御権要求を前記共有エリアに書き込む第１の軸交換処理部を備え、
前記第２制御ユニットは、
前記第１の制御権要求が前記共有エリアに書き込まれた場合、前記第２系統軸の駆動状態に応じて前記第１の制御権要求を許可するか否かを判定し、前記判定結果を示す第１の応答を前記共有エリアに書き込む第２の軸交換処理部を備え、
前記第１の軸交換処理部は、
前記共有エリアに書き込まれた前記第１の応答に基づいて、前記第２系統軸の制御権取得を判定することを特徴とする数値制御装置。
【請求項２】
前記第２の軸交換処理部は、
前記第２加工プログラムに含まれる軸交換指令であって前記第１系統軸が指定された軸交換指令を実行するとき、前記第１系統軸に対する第２の制御権要求を前記共有エリアに書き込み、
前記第１の軸交換処理部は、
前記第２の制御権要求が前記共有エリアに書き込まれた場合、前記第１系統軸の駆動状態に応じて前記第２の制御権要求を許可するか否かを判定し、前記判定結果を示す第２の応答を前記共有エリアに書き込み、
前記第２の軸交換処理部は、
前記共有エリアに書き込まれた前記第２の応答に基づいて、前記第１系統軸の制御権取得を判定することを特徴とする請求項１に記載の数値制御装置。
【請求項３】
前記共有エリアは、前記第１制御ユニットがアクセス可能である第１共有エリアと、前記第２制御ユニットがアクセス可能である第２共有エリアとを有することを特徴とする請求項２に記載の数値制御装置。
【請求項４】
前記第１共有エリアは、第１領域および第２領域を有し、前記第２共有エリアは、第３領域および第４領域を有し、
前記第１制御ユニットは、前記第１領域に記憶されたデータを前記第４領域に周期的に転送する第１のデータ転送部を備え、
前記第２制御ユニットは、前記第３領域に記憶されたデータを前記第２領域に周期的に転送する第２のデータ転送部を備え、
前記第１の軸交換処理部は、前記第１の制御権要求を前記第１共有エリアの前記第１領域に書き込み、
前記第２の軸交換処理部は、前記第１の制御権要求を前記第２共有エリアの前記第４領域を介して取得し、前記第１の応答を前記第２共有エリアの前記第３領域に書き込み、
前記第１の軸交換処理部は、前記第１共有エリアの前記第２領域に転送された前記第１の応答に基づいて、前記第２系統軸の制御権取得を判定し、
前記第２の軸交換処理部は、前記第２の制御権要求を前記第２共有エリアの前記第３領域に書き込み、
前記第１の軸交換処理部は、前記第２の制御権要求を前記第１共有エリアの前記第２領域を介して取得し、前記第２の応答を前記第１共有エリアの前記第１領域に書き込み、
前記第２の軸交換処理部は、前記第２共有エリアの前記第４領域に転送された前記第２の応答に基づいて、前記第１系統軸の制御権取得を判定することを特徴とする請求項３に記載の数値制御装置。
【請求項５】
前記第１制御ユニットは、前記第１共有エリアを備え、
前記第２制御ユニットは、前記第２共有エリアを備えることを特徴とする請求項４に記載の数値制御装置。
【請求項６】
前記共有エリアは、前記第１制御ユニットおよび前記第２制御ユニットによってアクセス可能であって、第１領域および第２領域を有し、
前記第１の軸交換処理部は、前記第１の制御権要求を前記共有エリアの前記第１領域に書き込み、
前記第２の軸交換処理部は、前記第１の制御権要求を前記共有エリアの前記第１領域を介して取得し、前記第１の応答を前記共有エリアの前記第１領域に書き込み、
前記第１の軸交換処理部は、前記第１領域に書き込まれた前記第１の応答に基づいて、前記第２系統軸の制御権取得を判定し、
前記第２の軸交換処理部は、前記第２の制御権要求を前記共有エリアの前記第２領域に書き込み、
前記第１の軸交換処理部は、前記第２の制御権要求を前記共有エリアの前記第２領域を介して取得し、前記第２の応答を前記共有エリアの前記第２領域に書き込み、
前記第２の軸交換処理部は、前記第２領域に書き込まれた前記第２の応答に基づいて、前記第１系統軸の制御権取得を判定する
ことを特徴とする請求項２に記載の数値制御装置。
【請求項７】
前記共有エリアは、前記第１制御ユニットおよび前記第２制御ユニットの外部に設けられることを特徴とする請求項６に記載の数値制御装置。
【請求項８】
前記第２の軸交換処理部は、前記第２系統軸が軸停止すると、前記第１の制御権要求を許可し、
前記第１の軸交換処理部は、前記第１系統軸が軸停止すると、前記第２の制御権要求を許可することを特徴とする請求項２から７の何れか一つに記載の数値制御装置。
【請求項９】
前記第２の軸交換処理部は、前記第２系統軸が軸停止しかつ周辺機器が動作停止すると、前記第１の制御権要求を許可し、
前記第１の軸交換処理部は、前記第１系統軸が軸停止しかつ前記周辺機器が動作停止すると、前記第２の制御権要求を許可することを特徴とする請求項２から７の何れか一つに記載の数値制御装置。
【請求項１０】
前記第１の軸交換処理部は、前記第２系統軸の制御権を取得すると、前記第１加工プログラムに記述された前記第２系統軸の位置指令を前記第１共有エリアの前記第１領域に書き込み、
前記第２の軸交換処理部は、前記第１系統軸の制御権を取得すると、前記第２加工プログラムに記述された前記第１系統軸の位置指令を前記第２共有エリアの前記第３領域に書き込むことを特徴とする請求項４または５に記載の数値制御装置。
【請求項１１】
前記第１の軸交換処理部は、前記第２系統軸の制御権を取得すると、前記第１加工プログラムに記述された前記第２系統軸の位置指令の補間処理結果を前記第１共有エリアの前記第１領域に書き込み、
前記第２の軸交換処理部は、前記第１系統軸の制御権を取得すると、前記第２加工プログラムに記述された前記第１系統軸の位置指令の補間処理結果を前記第２共有エリアの前記第３領域に書き込むことを特徴とする請求項４または５に記載の数値制御装置。
【請求項１２】
前記第２の軸交換処理部は、前記第１の制御権要求を許可する場合、前記第２系統軸のセンサから取得したフィードバック信号を前記第２共有エリアの前記第３領域に書き込み、
前記第１の軸交換処理部は、前記第２の制御権要求を許可する場合、前記第１系統軸のセンサから取得したフィードバック信号を前記第１共有エリアの前記第１領域に書き込むことを特徴とする請求項４または５に記載の数値制御装置。
【請求項１３】
前記第１系統軸は第１軸および第２軸を有し、前記第２系統軸は第３軸および第４軸を有し、
前記第１領域は、前記第１軸に関する情報がストアされる第１エントリと、前記第２軸に関する情報がストアされる第２エントリと、前記第３軸に関する情報がストアされる第３エントリと、前記第４軸に関する情報がストアされる第４エントリとを有し、
前記第２領域は、前記第１軸に関する情報がストアされる第５エントリと、前記第２軸に関する情報がストアされる第６エントリと、前記第３軸に関する情報がストアされる第７エントリと、前記第４軸に関する情報がストアされる第８エントリとを有し、
前記第１の軸交換処理部は、前記第１加工プログラムに含まれる軸交換指令であって前記第３軸が指定された軸交換要求を実行するとき、前記第３エントリに第３の制御権要求を書き込み、前記第７エントリに転送された前記第３の制御権要求に対する前記第２制御ユニットからの応答に基づいて、前記第３軸の制御権取得を判定することを特徴とする請求項４または５に記載の数値制御装置。
【請求項１４】
前記第３の制御権要求は、前記第１制御ユニットからの制御権要求であることを示す識別情報を含むことを特徴とする請求項１３に記載の数値制御装置。
【請求項１５】
前記第１の軸交換処理部は、前記第７エントリを介して、前記第２制御ユニットからの前記第３軸に対する第４の制御権要求を取得した場合、前記第４の制御権要求に対する応答を前記第３エントリに書き込むことを特徴とする請求項１３に記載の数値制御装置。
【請求項１６】
前記第４の制御権要求に対する応答は、前記第２制御ユニットからの制御権要求であることを示す情報と、前記第４の制御権要求を許可するか否かを示す情報を含むことを特徴とする請求項１５に記載の数値制御装置。
【請求項１７】
前記軸交換指令は、ＧコードまたはＭコードを含むことを特徴とする請求項１に記載の数値制御装置。
【請求項１８】
前記第１制御ユニットは第３系統軸を駆動するものであり、
前記第２制御ユニットは、前記第２系統軸が前記第３系統軸に交換された後、前記第２加工プログラムに記述された、前記第３系統軸が指定された軸交換指令に基づき、前記第３系統軸に対する第５の制御権要求を前記共有エリアに書き込み、前記共有エリアに書き込まれた前記第５の制御権要求に対する前記第１制御ユニットからの応答に基づいて、前記第３系統軸の制御権取得を判定することを特徴とする請求項１に記載の数値制御装置。
【請求項１９】
前記第３系統軸は、５つの軸を有する５軸加工機械を駆動することを特徴とする請求項１８に記載の数値制御装置。
【請求項２０】
第３加工プログラムに基づいて第３系統軸を駆動する第３制御ユニットを更に備え、前記共有エリアは、前記第１制御ユニット、前記第２制御ユニットおよび前記第３制御ユニットがアクセス可能であり、
前記第３制御ユニットは、
前記第３加工プログラムに含まれる軸交換指令であって前記第２系統軸が指定された軸交換指令を実行するとき、前記第２系統軸に対する第３の制御権要求を前記共有エリアに書き込む第３の軸交換処理部を備え、
前記第２制御ユニットの前記第２の軸交換処理部は、
前記第３の制御権要求が前記共有エリアに書き込まれた場合、前記第２系統軸の駆動状態に応じて前記第３の制御権要求を許可するか否かを判定し、前記判定結果を示す第３の応答を前記共有エリアに書き込み、
前記第３の軸交換処理部は、
前記共有エリアに書き込まれた前記第３の応答に基づいて、前記第２系統軸の制御権取得を判定し、
前記第２の軸交換処理部は、
前記第２加工プログラムに含まれる軸交換指令であって前記第３系統軸が指定された軸交換指令を実行するとき、前記第３系統軸に対する第４の制御権要求を前記共有エリアに書き込み、
前記第３の軸交換処理部は、
前記第４の制御権要求が前記共有エリアに書き込まれた場合、前記第３系統軸の駆動状態に応じて前記第４の制御権要求を許可するか否かを判定し、前記判定結果を示す第４の応答を前記共有エリアに書き込み、
前記第２の軸交換処理部は、
前記共有エリアに書き込まれた前記第４の応答に基づいて、前記第３系統軸の制御権取得を判定することを特徴とする請求項１に記載の数値制御装置。
【請求項２１】
前記第１制御ユニットは、複数の駆動軸を有する第４系統軸を第４加工プログラムに基づいて駆動し、前記第２制御ユニットは、複数の駆動軸を有する第５系統軸を第５加工プログラムに基づいて駆動することを特徴とする請求項１に記載の数値制御装置。
【請求項２２】
前記第１制御ユニットおよび前記第２制御ユニットは、前記第１加工プログラムおよび前記第２加工プログラムを並列に実行することを特徴とする請求項１に記載の数値制御装置。
【請求項２３】
前記第１制御ユニットは、
前記第１加工プログラムに含まれる軸交換指令であって前記第１系統軸が指定された軸交換指令を実行するとき、前記第１系統軸の駆動状態に基づいて第１系統軸の制御権取得を判定し、前記判定の結果に基づいて前記第１系統軸の制御権を前記第１制御ユニットが取得したことを前記共有エリアに書き込むことを特徴とする請求項１に記載の数値制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数の制御ユニットによって複数の系統を制御する数値制御（Numerical  Control；以下ＮＣともいう）装置に関するものである。
【背景技術】
【０００２】
マルチスピンドル機、あるいはマルチステーション機などの多軸工作機械においては、ワークが複数のステーションに移動され、各ステーションで前記ワークに対して加工が行われる。このような工作機械では、一般に複数の制御ユニットを用いて多系統の制御が行われる。【０００３】
特許文献１には、２つの制御ユニットを通信路によって接続し、２つの制御ユニットＡ、Ｂによって複数の系統を制御することが示されている。特許文献１では、各制御ユニットＡ、Ｂにおいて、各系統の軸が仮想軸であるか否かが設定されること等に基づいて軸交換が行われる。仮想軸は、他方の制御ユニットによって駆動される系統の軸である。制御ユニットＡは、加工プログラムで指令された軸αが仮想軸である場合、制御ユニットＢから軸αの制御権を取得して、位置指令を制御ユニットＢに出力する。制御ユニットＢは、制御ユニットＡから受信された位置指令に従って、軸αを駆動する。このようにして、例えば、軸αの制御権を制御ユニットＢから制御ユニットＡに移行する軸交換が行われる。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特許第４８４０５０６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
特許文献１では、軸交換制御のための設定項目が多く、設定作業が複雑である。特に、３台以上の制御ユニットの場合、設定項目がより複雑になる。また、特許文献１は、予め設定された軸を２つの制御ユニット間で軸交換するものであり、軸交換の対象軸の変更、系統の増設、制御ユニットの増設などへの対応が難しい。また、機械稼働中に動的に軸交換することが難しい。【０００６】
本発明は、上記に鑑みてなされたものであって、簡単で、機械構成の変更または制御構成の変更への自由度の高い軸交換制御が可能な数値制御装置を得ることを目的とする。
【課題を解決するための手段】
【０００７】
上述した課題を解決し、目的を達成するために、本発明の数値制御装置は、第１制御ユニットと、第２制御ユニットと、共有エリアとを有する。前記第１制御ユニットは、第１加工プログラムに基づいて複数の駆動軸を有する第１系統軸を駆動する。前記第２制御ユニットは、第２加工プログラムに基づいて複数の駆動軸を有する第２系統軸を駆動する。前記共有エリアは、前記第１制御ユニットおよび前記第２制御ユニットがアクセス可能である。前記第１制御ユニットは、前記第１加工プログラムに含まれる軸交換指令であって前記第２系統軸が指定された軸交換指令を実行するとき、前記第２系統軸に対する第１の制御権要求を前記共有エリアに書き込む第１の軸交換処理部を備える。前記第２制御ユニットは、前記第１の制御権要求が前記共有エリアに書き込まれた場合、前記第２系統軸の駆動状態に応じて前記第１の制御権要求を許可するか否かを判定し、前記判定結果を示す第１の応答を前記共有エリアに書き込む第２の軸交換処理部を備える。前記第１の軸交換処理部は、前記共有エリアに書き込まれた前記第１の応答に基づいて、前記第２系統軸の制御権取得を判定する。
【発明の効果】
【０００８】
本発明にかかる数値制御装置は、簡単で、機械構成の変更または制御構成の変更への自由度の高い軸交換制御を実現できるという効果を奏する。
【図面の簡単な説明】
【０００９】
【図１】実施の形態１の数値制御装置によって駆動される加工機械を示す概念図
【図２】実施の形態１の数値制御装置の内部構成例を示すブロック図
【図３】実施の形態１の数値制御装置の軸定義を示す図
【図４】実施の形態１の各制御ユニットの共有エリアの記憶エリアを示す図
【図５】実施の形態１の各制御ユニットの共有エリアの記憶内容の一例を示す図
【図６】実施の形態１に適用される加工プログラムの一例を示す図
【図７】実施の形態１において加工プログラムを実行するときの制御ユニットの動作例を示すフローチャート
【図８】実施の形態１において他の制御ユニットからの制御権要求を取得したときの制御ユニットの動作例を示すフローチャート
【図９】図６の加工プログラムのブロックN10が実行されるときの各制御ユニットの共有エリアの状態を示す図
【図１０】図６の加工プログラムのブロックN20が実行されるときの各制御ユニットの共有エリアの状態を示す図
【図１１】図６の加工プログラムのブロックN30が実行されるときの各制御ユニットの共有エリアの状態を示す図
【図１２】実施の形態１の軸交換の際の制御権の移行タイミングを説明するための概念図
【図１３】実施の形態２に適用される加工プログラムの一例を示す図
【図１４】実施の形態２のＭコードテーブルの記憶内容の一例を示す図
【図１５】実施の形態３の数値制御装置によって駆動される加工機械を示す概念図
【図１６】実施の形態３および実施の形態４の数値制御装置の軸定義を示す図
【図１７】実施の形態３に適用される加工プログラムの一例を示す図
【図１８】実施の形態３の加工ユニットの交換の動作例を示すフローチャート
【図１９】実施の形態４の数値制御装置の内部構成例を示すブロック図
【図２０】実施の形態４の数値制御装置によって駆動される加工機械を示す概念図
【図２１】実施の形態４に適用される加工プログラムの一例を示す図
【図２２】実施の形態５の数値制御装置の構成例を示すブロック図
【発明を実施するための形態】
【００１０】
以下に、本発明の実施の形態にかかる数値制御装置を図面に基づいて詳細に説明する。なお、この実施の形態によりこの発明が限定されるものではない。
【００１１】
実施の形態１．
図１は、実施の形態１にかかる数値制御装置の制御対象としての加工機械６００を示す図である。この加工機械６００は、ロボットハンド付き多軸自動旋盤である。加工機械６００は、矢印Ａ方向に旋回する主軸ドラム６０１を有する。６つの主軸Ｃ１〜Ｃ６が主軸ドラム６０１に配置されている。各主軸Ｃ１〜Ｃ６には、図示しないワーク支持部が取り付けられている。これらワーク支持部は、加工対象のワークを掴んで回転させる。図１では、第１加工位置であるステーションＳ１に主軸Ｃ１が配置され、第２加工位置であるステーションＳ２に主軸Ｃ２が配置され、第３加工位置であるステーションＳ３に主軸Ｃ３が配置され、第４加工位置であるステーションＳ４に主軸Ｃ４が配置され、第５加工位置であるステーションＳ５に主軸Ｃ５が配置され、第６加工位置であるステーションＳ６に主軸Ｃ６が配置された状態が示されている。
【００１２】
ステーションＳ１には、第１工具を駆動するＮＣ軸としてのＸ１軸が配置されている。ステーションＳ２には、第２工具を駆動するＮＣ軸としてのＸ２軸およびＺ２軸が配置されている。ステーションＳ３には、第３工具を駆動するＮＣ軸としてのＸ３軸およびＺ３軸が配置されている。ステーションＳ４には、第４工具を駆動するＮＣ軸としてのＸ４軸およびＺ４軸が配置されている。ステーションＳ５には、第５工具を駆動するＮＣ軸としてのＸ５軸およびＺ５軸が配置されている。ステーションＳ６には、第６工具を駆動するＮＣ軸としてのＸ６軸およびＺ６軸が配置されている。加工機械６００はロボットハンド（図示せず）を有し、前記ロボットハンドにより、ワークの搬入、搬出と、各ステーションＳ１〜Ｓ６に置かれたワークの反転とを行うことが可能である。
【００１３】
例えば、加工の１サイクル目では、ステーションＳ１で主軸Ｃ１およびＸ１軸が用いられた加工が行われ、ステーションＳ２で主軸Ｃ２、Ｘ２軸およびＺ２軸が用いられた加工が行われ、ステーションＳ３で主軸Ｃ３、Ｘ３軸およびＺ３軸が用いられた加工が行われ、ステーションＳ４で主軸Ｃ４、Ｘ４軸およびＺ４軸が用いられた加工が行われ、ステーションＳ５で主軸Ｃ５、Ｘ５軸およびＺ５軸が用いられた加工が行われ、ステーションＳ６で主軸Ｃ６、Ｘ６およびＺ６軸が用いられた加工が行われる。
【００１４】
２サイクル目では、ステーションＳ１で主軸Ｃ２およびＸ１軸が用いられた加工が行われ、ステーションＳ２で主軸Ｃ３、Ｘ２軸およびＺ２軸が用いられた加工が行われ、ステーションＳ３で主軸Ｃ４、Ｘ３軸およびＺ３軸が用いられた加工が行われ、ステーションＳ４で主軸Ｃ５、Ｘ４軸およびＺ４軸が用いられた加工が行われ、ステーションＳ５で主軸Ｃ６、Ｘ５軸およびＺ５軸が用いられた加工が行われ、ステーションＳ６で主軸Ｃ１、Ｘ６およびＺ６軸が用いられた加工が行われる。以降、１サイクル毎に主軸ドラム６０１が旋回し、各ステーションに配置される主軸が順次変化する。このようにして、ワークに対する加工が６サイクルで終了する。
【００１５】
図２は、本発明の実施の形態１にかかる数値制御装置１０００の構成例を示すブロック図である。この数値制御装置１０００は、図１に示した加工機械６００を駆動制御する。数値制御装置１０００は、表示部５００と、入力操作部５１０と、複数の制御ユニット＃１、＃２および＃３とを有する。なお、例えば、制御ユニット＃１が請求の範囲の第１制御ユニットに対応し、制御ユニット＃２が請求の範囲の第２制御ユニットに対応する。図２には、加工機械６００の構成要素である駆動部１８０、２８０、３８０が示されている。この実施形態では、数値制御装置１０００は、３個の制御ユニット＃１、＃２および＃３を備える。数値制御装置１０００は、２個以上であれば、任意の個数の制御ユニットを備えてもよい。制御ユニット＃１は、駆動部１８０に接続されている。制御ユニット＃２は、駆動部２８０に接続されている。制御ユニット＃３は、駆動部３８０に接続されている。駆動部１８０は、主軸Ｃ１、Ｘ１軸、主軸Ｃ２、Ｘ２軸、およびＺ２軸を駆動する。駆動部２８０は、主軸Ｃ３、Ｘ３軸、Ｚ３軸、主軸Ｃ４、Ｘ４軸、およびＺ４軸を駆動する。駆動部３８０は、主軸Ｃ５、Ｘ５軸、Ｚ５軸、主軸Ｃ６、Ｘ６軸、およびＺ６軸を駆動する。
【００１６】
図３は、数値制御装置１０００の各制御ユニットの軸定義を示す図である。この軸定義に定義された軸が、各制御ユニットの実軸となる。数値制御装置１０００は、機械全体から見れば、第１系統から第６系統までを含む６つの系統を有する。制御ユニット毎に見れば、制御ユニット＃１、＃２、＃３は、第１および第２系統を含む２つの系統をそれぞれ有する。系統とは、基本的には、複数の加工工程のうちの１つの加工工程を行う１または複数の軸およびこれら１または複数の軸を駆動する駆動系のことを示している。１系統は、１つの加工工程を行う１つの加工ユニットに対応しているとも言える。また、基本的に、数値制御装置で並列に実行される加工プログラム数と系統数とは一致している。図３の軸定義によれば、制御ユニット＃１の第１系統の第１軸がＸ１軸に設定され、制御ユニット＃１の第１系統の第２軸が未定義に設定され、制御ユニット＃１の第１系統の第３軸がＣ１軸に設定されている。制御ユニット＃１の第２系統の第１軸がＸ２軸に設定され、制御ユニット＃１の第２系統の第２軸がＺ２軸に設定され、制御ユニット＃１の第２系統の第３軸がＣ２軸に設定されている。
【００１７】
制御ユニット＃２の第１系統の第１軸がＸ３軸に設定され、制御ユニット＃２の第１系統の第２軸がＺ３軸に設定され、制御ユニット＃２の第１系統の第３軸がＣ３軸に設定されている。制御ユニット＃２の第２系統の第１軸がＸ４軸に設定され、制御ユニット＃２の第２系統の第２軸がＺ４軸に設定され、制御ユニット＃２の第２系統の第３軸がＣ４軸に設定されている。制御ユニット＃３の第１系統の第１軸がＸ５軸に設定され、制御ユニット＃３の第１系統の第２軸がＺ５軸に設定され、制御ユニット＃３の第１系統の第３軸がＣ５軸に設定されている。制御ユニット＃３の第２系統の第１軸がＸ６軸に設定され、制御ユニット＃３の第２系統の第２軸がＺ６軸に設定され、制御ユニット＃３の第２系統の第３軸がＣ６軸に設定されている。
【００１８】
図２に戻って、表示部５００および入力操作部５１０は、制御ユニット＃１、＃２および＃３と、第１通信路５２０によってネットワーク接続されている。各制御ユニット＃１、＃２および＃３は、第２通信路５３０によってバス接続されている。制御ユニット＃１、＃２および＃３間では、第１通信路５２０または第２通信路５３０を介して軸交換のための各種制御データのデータ転送が行われる。なお、軸交換とは、他の制御ユニット管理下の駆動部の制御権を取得することである。表示部５００は、例えば液晶パネルなどの表示装置を備えており、第１通信路５２０を経由して受信された画面表示データ１２３、２２３、３２３をオペレータが視認可能に表示する。入力操作部５１０は、例えばキーボード、ハードウェアスイッチあるいはタッチパネルなどの入力装置で構成されている。
【００１９】
制御ユニット＃１、＃２および＃３は、同じ内部構成を有している。制御ユニット＃１、＃２および＃３は、別個のＣＰＵ（Central  Processing  Unit）を有し、夫々独立して動作する。各制御ユニット＃１、＃２および＃３は、ＣＰＵ、ＲＯＭ（Read  Only  Memory）、ＲＡＭ（Random  Access  Memory）およびＩ／Ｏ（Input／Output）インターフェイスを備えたコンピュータにより実現される。制御ユニット＃１を例にとって、制御ユニット＃１、＃２および＃３の内部構成例を説明する。制御ユニット＃１は、記憶部１２０と、入力制御部１３０と、データ設定部１３１と、画面処理部１３２と、プログラマブルコントローラ(ＪＩＳ  Ｂ  ３５０２：２０１１、programmable  logic  controllers（ＰＬＣ））１３５と、機械制御信号処理部１３６と、解析処理部１４０と、補間処理部１５０と、加減速処理部１５１と、軸データ入出力部１５２と、軸交換処理部１６０と、データ転送部１６５とを有する。
【００２０】
記憶部１２０は、ＲＯＭ、ＲＡＭ、またはその両方により構成される。記憶部１２０は、パラメータ１２１、加工プログラム１２２、画面表示データ１２３をストアする。記憶部１２０は、ワークエリア１２４と、制御ユニット＃１、＃２および＃３間の制御データの転送に使用される共有エリア１２５を有する。パラメータ１２１および加工プログラム１２２は、オペレータが入力操作部５１０を操作することによって、第１通信路５２０、入力制御部１３０を経由してデータ設定部１３１に入力される。データ設定部１３１は、入力されたパラメータ１２１および加工プログラム１２２をフォーマット変換して記憶部１２０にストアする。記憶部１２０にストアされた画面表示データ１２３は、画面処理部１３２によって読み込まれて表示部５００に送られる。
【００２１】
共有エリア１２５は、制御ユニット＃１、＃２および＃３間で転送を行うための制御データをストアする。共有エリア１２５にストアされる制御データは、軸交換のための制御権要求信号、応答信号を含む。前記制御データとして、各軸の制御を行うための位置指令、位置フィードバック信号を含ませてもよい。データ転送部１６５は、共有エリア１２５にストアされる制御データを或る周期でサイクリックに他の制御ユニット＃２、＃３に転送する。データ転送部１６５は、他の制御ユニット＃２、＃３からサイクリックに転送される制御データを共有エリア１２５にストアする。したがって、各制御ユニット＃１、＃２および＃３の共有エリア１２５、２２５、３２５は、基本的には、同じ制御データがストアされている状態となっている。共有エリア１２５の詳細、前記制御データの詳細およびデータ転送については、後述する。
【００２２】
ＰＬＣ１３５は、シーケンスプログラムにしたがって加工機械６００の周辺機器のシーケンス制御を実行する。周辺機器とは、加工機械６００の主軸Ｃ１〜Ｃ６、ＮＣ軸Ｘ１〜Ｘ６、Ｚ２〜Ｚ６を除く機器であり、例えば各種センサ、各種スイッチ、前記ロボットハンドなどを含む。数値制御装置１０００を起動するための自動起動ボタン（図示せず）がオンにされると、リモートＩＯユニット（図示せず）を通して、自動起動信号がＰＬＣ１３５に入力される。ＰＬＣ１３５は、接続された制御ユニットを動作開始してよいか否かを判断し、動作開始してよい場合、前記自動起動信号を機械制御信号処理部１３６に伝達する。前記自動起動信号を受信した機械制御信号処理部１３６は、記憶部１２０の例えばワークエリア１２４を介して解析処理部１４０に加工プログラム１２２の実行開始を指示する。加工プログラム１２２の実行開始が指示された解析処理部１４０は、記憶部１２０から加工プログラム１２２の読み込みを開始する。
【００２３】
機械制御信号処理部１３６は、機械動作完了判定部１３７と、補助指令軸交換解析部１３８を備える。機械動作完了判定部１３７は、ＰＬＣ１３５からの信号に基づいて周辺機器の動作が完了したか否かを判定する。例えば、機械動作完了判定部１３７は、ＰＬＣ１３５からの信号に基づいて前記ロボットハンドの機械動作状態を示す情報をワークエリア１２４にストアする。前記機械動作状態は、例えば、ワーク反転動作が実行中であるかあるいは完了したかを示す情報を含んでいる。補間処理部１５０は、ワークエリア１２４にストアされた機械動作状態を示す情報を参照し、ワーク反転動作が終了したか否かを判断する。補間処理部１５０は、ワーク反転の実行中は、補間処理を停止させる。
【００２４】
補助指令軸交換解析部１３８は、加工プログラム１２２中に補助指令であるＭコードが含まれていた場合に動作する。補助指令軸交換解析部１３８は、Ｍコードに対応する指令内容をＰＬＣ１３５から取得し、取得された指令内容を解析する。補助指令軸交換解析部１３８の詳細は、実施の形態２で説明する。
【００２５】
解析処理部１４０は、前記機械制御信号処理部１３６からの起動指示に応じて、記憶部１２０から加工プログラム１２２を読み出し、加工プログラム１２２の各ブロック（各行）を解析処理し、解析結果としての各軸の位置指令を補間処理部１５０へ渡す。あるいは、解析処理部１４０は、加工プログラム１２２の各ブロックの解析結果を共有エリア１２５に書き込む。各軸の位置指令には、Ｘ軸またはＺ軸の位置指令の他に、主軸であるＣ軸の回転指令も含まれる。本明細書では、位置指令は、主軸の回転指令も含む場合もある。解析処理部１４０は、軸交換解析部１４１を有している。軸交換解析部１４１は、加工プログラム１２２中に軸交換指令が含まれる場合、加工プログラム１２２中の軸交換指令であるG140を含むブロックを解析し、解析結果を軸交換処理部１６０に渡す。軸交換指令としては、G140以外の任意のＮＣコードを採用しても良い。
【００２６】
軸交換処理部１６０は、制御ユニット間での軸交換制御を行う。軸交換処理部１６０は、加工プログラム１２２中のG140で指定された軸が自制御ユニット＃１の実軸である場合は、この実軸の制御権を自制御ユニットが持っているか他の制御ユニットが持っているかを共有エリア１２５を用いて確認し、制御権を取得できた場合、制御権を取得できたことを軸交換解析部１４１に通知する。軸交換解析部１４１は、前記通知を受信すると、G140を含むブロックの次のブロックを解析し、解析された位置指令を補間処理部１５０に渡す。
【００２７】
また、軸交換処理部１６０は、加工プログラム１２２中のG140で指定された軸が自制御ユニット＃１の実軸でなく他の制御ユニット＃２、＃３の実軸である場合は、他の制御ユニットに対し、共有エリア１２５を介してG140で指定された軸の制御権を要求する。共有エリア１２５を介して制御権を取得できた場合、軸交換処理部１６０は、G140を含むブロックの次のブロック以降を解析し、解析された位置指令を共有エリア１２５を介して他の制御ユニット＃２、＃３に転送する。
【００２８】
また、軸交換処理部１６０は、他の制御ユニット＃２、＃３から自制御ユニット＃１への制御権要求を共有エリア１２５を介してチェックし、自制御ユニット＃１の状態に応じて前記制御権要求に対する応答信号を共有エリア１２５に書き込む。他の制御ユニットからの制御権要求に対する応答は、制御権を有する制御ユニットではなく、実軸が接続された制御ユニットである。例えば、Ｃ１軸の制御権を制御ユニット＃２が持っているときに、制御ユニット＃３からＣ１軸の制御権要求を取得した場合、制御ユニット＃２ではなく、Ｃ１軸が実軸である制御ユニット＃１が前記Ｃ１軸の制御権要求に対し応答する。
【００２９】
補間処理部１５０は、駆動部１８０内のセンサ１８３、１８６、１９３、１９６および１９９のフィードバック信号FB（以下、FB信号ともいう）を軸データ入出力部１５２から取得している。補間処理部１５０は、解析処理部１４０から解析結果であるＸ軸またはＺ軸の位置指令をワークエリア１２４を介して受け取り、受け取った位置指令と軸データ入出力部１５２から取得したFB信号に基づき補間処理を行い、補間処理の結果である移動量指令を加減速処理部１５１へ渡す。また、補間処理部１５０は、主軸モータの回転数指令を解析処理部１４０からワークエリア１２４を介して受け取り、前記回転数指令を加減速処理部１５１に渡す。また、補間処理部１５０は、軸データ入出力部１５２から取得されたフィードバック信号FBを共有エリア１２５に書き込む。
【００３０】
補間処理部１５０は、軸停止判定部１５５を有する。軸停止判定部１５５は、前記FB信号に基づいて、自制御ユニット＃１に接続されているＮＣ軸（Ｘ１軸、Ｘ２軸、Ｚ２軸）および主軸（Ｃ１軸、Ｃ２軸）が軸停止されているか駆動中であるかを判定し、この判定結果を示す軸停止信号をワークエリア１２４に書き込む。軸交換処理部１６０は、ワークエリア１２４にストアされた軸停止信号を参照して、自制御ユニット＃１に接続されている軸が駆動中であるか否かを判定する。
【００３１】
加減速処理部１５１は、補間処理部１５０から供給されたＸ軸、Ｚ軸の移動量指令に対して加減速処理を行う。加減速処理部１５１は、加減速処理後のＸ軸、Ｚ軸の移動量指令を軸データ入出力部１５２に出力する。また、加減速処理部１５１は、主軸回転指令の場合は、加減速処理を施すことなく回転数指令を軸データ入出力部１５２に出力する。
【００３２】
軸データ入出力部１５２は、加減速処理部１５１から供給されたＸ軸、Ｚ軸の移動量指令およびＣ軸の回転数指令を駆動部１８０に出力する。また、軸データ入出力部１５２は、駆動部１８０から入力されるＸ軸、Ｚ軸、およびＣ軸のFB信号を補間処理部１５０に渡す。
【００３３】
駆動部１８０は、２系統の駆動系を有する。第１系統の駆動系１８０ａは、Ｘ１軸サーボ制御部１８１、Ｘ１軸サーボモータ１８２、Ｘ１軸センサ１８３と、Ｃ１軸サーボ制御部１８４と、Ｃ１軸サーボモータ１８５と、Ｃ１軸センサ１８６とを備える。Ｘ１軸サーボ制御部１８１は、軸データ入出力部１５２から入力されたＸ１軸の移動量指令とＸ１軸センサ１８３から入力された位置データに従い、Ｘ１軸サーボモータ１８２を位置フィードバック制御する。また、Ｘ１軸サーボ制御部１８１は、Ｘ１軸センサ１８３から入力された位置データをFB信号として軸データ入出力部１５２に出力する。Ｃ１軸サーボ制御部１８４は、軸データ入出力部１５２から入力されたＣ１軸の回転数指令とＣ１軸センサ１８６から入力された速度データまたは位置データに従い、Ｃ１軸サーボモータ１８５を速度フィードバック制御または位置フィードバック制御する。また、Ｃ１軸サーボ制御部１８４は、Ｃ１軸センサ１８６から入力された速度データまたは位置データをFB信号として軸データ入出力部１５２に出力する。
【００３４】
第２系統の駆動系１８０ｂは、Ｘ２軸サーボ制御部１９１、Ｘ２軸サーボモータ１９２、Ｘ２軸センサ１９３と、Ｚ２軸サーボ制御部１９４、Ｚ２軸サーボモータ１９５、Ｚ２軸センサ１９６と、Ｃ２軸サーボ制御部１９７と、Ｃ２軸サーボモータ１９８と、Ｃ２軸センサ１９９とを備える。Ｘ２軸サーボ制御部１９１は、軸データ入出力部１５２から入力されたＸ２軸の移動量指令とＸ２軸センサ１９３から入力された位置データに従い、Ｘ２軸サーボモータ１９２を位置フィードバック制御する。また、Ｘ２軸サーボ制御部１９１は、Ｘ２軸センサ１９３から入力された位置データをFB信号として軸データ入出力部１５２に出力する。Ｚ２軸サーボ制御部１９４は、軸データ入出力部１５２から入力されたＺ２軸の移動量指令とＺ２軸センサ１９６から入力された位置データに従い、Ｚ２軸サーボモータ１９５を位置フィードバック制御する。また、Ｚ２軸サーボ制御部１９４は、Ｚ２軸センサ１９６から入力された位置データをFB信号として軸データ入出力部１５２に出力する。Ｃ２軸サーボ制御部１９７は、軸データ入出力部１５２から入力されたＣ２軸の回転数指令とＣ２軸センサ１９９から入力された速度データまたは位置データに従い、Ｃ２軸サーボモータ１９８を速度フィードバック制御または位置フィードバック制御する。また、Ｃ２軸サーボ制御部１９７は、Ｃ２軸センサ１９９から入力された速度データまたは位置データをFB信号として軸データ入出力部１５２に出力する。なお、例えば、Ｘ１軸およびＣ１軸が請求の範囲の第１系統軸に対応する。
【００３５】
制御ユニット＃２は、記憶部２２０と、入力制御部２３０と、データ設定部２３１と、画面処理部２３２と、ＰＬＣ２３５と、機械動作完了判定部２３７および補助指令軸交換解析部２３８を含む機械制御信号処理部２３６と、軸交換解析部２４１を含む解析処理部２４０と、軸停止判定部２５５を含む補間処理部２５０と、加減速処理部２５１と、軸データ入出力部２５２と、軸交換処理部２６０と、データ転送部２６５とを有する。記憶部２２０は、パラメータ２２１、加工プログラム２２２、画面表示データ２２３をストアする。記憶部２２０は、ワークエリア２２４と、制御ユニット＃１、＃２および＃３間の制御データの転送に使用される共有エリア２２５を有する。
【００３６】
駆動部２８０は、第１系統の駆動系２８０ａおよび第２系統の駆動系２８０ｂを有する。第１系統の駆動系２８０ａは、Ｘ３軸サーボ制御部２８１、Ｘ３軸サーボモータ２８２、Ｘ３軸センサ２８３と、Ｚ３軸サーボ制御部２８４、Ｚ３軸サーボモータ２８５、Ｚ３軸センサ２８６と、Ｃ３軸サーボ制御部２８７と、Ｃ３軸サーボモータ２８８と、Ｃ３軸センサ２８９とを備える。第２系統の駆動系２８０ｂは、Ｘ４軸サーボ制御部２９１、Ｘ４軸サーボモータ２９２、Ｘ４軸センサ２９３と、Ｚ４軸サーボ制御部２９４、Ｚ４軸サーボモータ２９５、Ｚ４軸センサ２９６と、Ｃ４軸サーボ制御部２９７と、Ｃ４軸サーボモータ２９８と、Ｃ４軸センサ２９９とを備える。なお、例えば、Ｘ３軸、Ｚ３軸およびＣ３軸が請求の範囲の第２系統軸に対応する。
【００３７】
制御ユニット＃３は、記憶部３２０と、入力制御部３３０と、データ設定部３３１と、画面処理部３３２と、ＰＬＣ３３５と、機械動作完了判定部３３７および補助指令軸交換解析部３３８を含む機械制御信号処理部３３６と、軸交換解析部３４１を含む解析処理部３４０と、軸停止判定部３５５を含む補間処理部３５０と、加減速処理部３５１と、軸データ入出力部３５２と、軸交換処理部３６０と、データ転送部３６５とを有する。記憶部３２０は、パラメータ３２１、加工プログラム３２２、画面表示データ３２３をストアする。記憶部３２０は、ワークエリア３２４と、制御ユニット＃１、＃２および＃３間の制御データの転送に使用される共有エリア３２５を有する。
【００３８】
駆動部３８０は、第１系統の駆動系３８０ａおよび第２系統の駆動系３８０ｂを有する。第１系統の駆動系３８０ａは、Ｘ５軸サーボ制御部３８１、Ｘ５軸サーボモータ３８２、Ｘ５軸センサ３８３と、Ｚ５軸サーボ制御部３８４、Ｚ５軸サーボモータ３８５、Ｚ５軸センサ３８６と、Ｃ５軸サーボ制御部３８７と、Ｃ５軸サーボモータ３８８と、Ｃ５軸センサ３８９とを備える。第２系統の駆動系３８０ｂは、Ｘ６軸サーボ制御部３９１、Ｘ６軸サーボモータ３９２、Ｘ６軸センサ３９３と、Ｚ６軸サーボ制御部３９４、Ｚ６軸サーボモータ３９５、Ｚ６軸センサ３９６と、Ｃ６軸サーボ制御部３９７と、Ｃ６軸サーボモータ３９８と、Ｃ６軸センサ３９９とを備える。
【００３９】
図４は、制御ユニット＃１の共有エリア１２５、制御ユニット＃２の共有エリア２２５、および制御ユニット＃３の共有エリア３２５の記憶エリアを示す図である。制御ユニット＃１の共有エリア１２５は、領域Ａ#1、領域Ａ#2、領域Ａ#3を有する。領域Ａ#1には、制御ユニット＃１によって書き込まれた制御データがストアされる。領域Ａ#2には、データ転送部１６５を介して制御ユニット＃２の領域Ｂ#2から転送された制御データがストアされる。領域Ａ#3には、データ転送部１６５を介して制御ユニット＃３の領域Ｃ#3から転送された制御データがストアされる。例えば、共有エリア１２５が請求の範囲の第１共有エリアに対応する。領域Ａ#1が請求の範囲の第１領域に対応し、領域Ａ#2が請求の範囲の第２領域に対応する。
【００４０】
制御ユニット＃２の共有エリア２２５は、領域Ｂ#1、領域Ｂ#2、領域Ｂ#3を有する。領域Ｂ#1には、データ転送部２６５を介して制御ユニット＃１の領域Ａ#1から転送された制御データがストアされる。領域Ｂ#2には、制御ユニット＃２によって書き込まれた制御データがストアされる。領域Ｂ#3には、データ転送部２６５を介して制御ユニット＃３の領域Ｃ#3から転送された制御データがストアされる。例えば、共有エリア２２５が請求の範囲の第２共有エリアに対応する。領域Ｂ#2が請求の範囲の第３領域に対応し、領域Ｂ#1が請求の範囲の第４領域に対応する。
【００４１】
制御ユニット＃３の共有エリア３２５は、領域Ｃ#1、領域Ｃ#2、領域Ｃ#3を有する。領域Ｃ#1には、データ転送部３６５を介して制御ユニット＃１の領域Ａ#1から転送された制御データがストアされる。領域Ｃ#2には、データ転送部３６５を介して制御ユニット＃２の領域Ｂ#2から転送された制御データがストアされる。領域Ｃ#3には、制御ユニット＃３によって書き込まれた制御データがストアされる。
【００４２】
制御ユニット＃１と制御ユニット＃２と制御ユニット＃３との間を転送される制御データは、前述したように、軸交換の際の制御権要求と、制御権要求に対する応答信号とを含む。実施の形態１では、前記制御データは、他の制御ユニットの実軸に対する位置指令と、自制御ユニットの実軸についてのFB信号とを含む。
【００４３】
図５は、図４に示した共有エリア１２５、共有エリア２２５、および共有エリア３２５の各領域Ａ#1〜Ａ#3、Ｂ#1〜Ｂ#3、Ｃ#1〜Ｃ#3にストアされる制御データの詳細を示す図である。領域Ａ#1〜Ａ#3、領域Ｂ#1〜Ｂ#3、領域Ｃ#1〜Ｃ#3は、夫々、複数の系統の複数の軸に関する制御データをストア可能である。図５では、図１に示した加工機械６００を制御するために、各領域Ａ#1〜Ａ#3、Ｂ#1〜Ｂ#3およびＣ#1〜Ｃ#3は、夫々、第１系統に含まれる第１軸（Ｘ軸）、第２軸（Ｚ軸）、および第３軸（Ｃ軸）の制御データと、第２系統に含まれる第１軸（Ｘ軸）、第２軸（Ｚ軸）、および第３軸（Ｃ軸）の制御データと、……、第６系統に含まれる第１軸（Ｘ軸）、第２軸（Ｚ軸）、および第３軸（Ｃ軸）の制御データとをストアすることができる。
【００４４】
各領域Ａ#1〜Ａ#3、Ｂ#1〜Ｂ#3、Ｃ#1〜Ｃ#3に形成された各軸のエントリは、前述したように、軸交換の際の制御権要求を含むコマンドフィールドCmdと、応答信号フィールドAnsと、位置指令フィールドPIと、FB信号フィールドFBとを含む。
【００４５】
例えば、制御ユニット＃１の共有エリア１２５の領域Ａ#1の位置指令フィールドPIには、制御ユニット＃１によって実行される加工プログラム１２２によって指定される位置指令が制御ユニット＃１によって書き込まれる。制御ユニット＃１の共有エリア１２５の領域Ａ#1のFB信号フィールドFBには、制御ユニット＃１に接続された第１系統の第１軸（Ｘ１軸）、第２軸、および第３軸（Ｃ１軸）のFB信号と、第２系統の第１軸（Ｘ２軸）、第２軸（Ｚ２軸）、および第３軸（Ｃ２軸）のFB信号が制御ユニット＃１によって書き込まれる。
【００４６】
制御ユニット＃１の共有エリア１２５の領域Ａ#1のコマンドフィールドCmdには、制御権を要求した制御ユニット＃１〜＃３を識別するためのデータが書き込まれる。具体的には、制御権が要求された軸に対応するエントリのコマンドフィールドCmdに、制御権を要求した制御ユニット＃１〜＃３を識別するためのデータが書き込まれる。例えば、制御ユニット＃１が第６系統の第３軸（Ｃ６軸）の制御権を要求する場合、Ｃ６軸のコマンドフィールドCmdに、例えば、制御ユニット番号「＃１」が書き込まれる。各軸のコマンドフィールドCmdには、どの制御ユニットが制御権を要求したかを識別できる情報であれば、制御ユニット番号に限らず、他の任意の情報を書き込むようにしてもよい。
【００４７】
制御ユニット＃１の共有エリア１２５の領域Ａ#1の応答信号フィールドAnsには、他の制御ユニット＃２または＃３からの制御権要求に対する制御ユニット＃１の回答である応答信号が書き込まれる。前記応答信号フィールドAnsには、制御権要求を許可する許可信号OKまたは制御権要求を許可しない不許可信号NGが制御ユニット＃１によって書き込まれる。
【００４８】
制御ユニット＃２の共有エリア２２５の領域Ｂ#2の位置指令フィールドPIには、制御ユニット＃２によって実行される加工プログラム２２２によって指定される位置指令が制御ユニット＃２によって書き込まれる。制御ユニット＃２の共有エリア２２５の領域Ｂ#2のFB信号フィールドFBには、制御ユニット＃２に接続された第３系統の第１軸（Ｘ３軸）、第２軸（Ｚ３軸）、および第３軸（Ｃ３軸）のFB信号と、第４系統の第１軸（Ｘ４軸）、第２軸（Ｚ４軸）、および第３軸（Ｃ４軸）のFB信号が制御ユニット＃２によって書き込まれる。
【００４９】
制御ユニット＃２の共有エリア２２５の領域Ｂ#2のコマンドフィールドCmdには、制御権を要求した制御ユニット＃１〜＃３を識別するためのデータが書き込まれる。例えば、制御ユニット＃２が第１系統第３軸（Ｃ１軸）の制御権を要求する場合、Ｃ１軸のコマンドフィールドCmdに、例えば、制御ユニット番号「＃２」が書き込まれる。
【００５０】
制御ユニット＃２の共有エリア２２５の領域Ｂ#2の応答信号フィールドAnsには、他の制御ユニット＃１または＃３からの制御権要求に対する制御ユニット＃２の回答である応答信号が書き込まれる。
【００５１】
制御ユニット＃３の共有エリア３２５の領域Ｃ#3の位置指令フィールドPIには、制御ユニット＃３によって実行される加工プログラム３２２によって指定される位置指令が制御ユニット＃３によって書き込まれる。制御ユニット＃３の共有エリア３２５の領域Ｃ#3のFB信号フィールドFBには、制御ユニット＃３に接続された第５系統の第１軸（Ｘ５軸）、第２軸（Ｚ５軸）、および第３軸（Ｃ５軸）のFB信号と、第６系統の第１軸（Ｘ６軸）、第２軸（Ｚ６軸）、および第３軸（Ｃ６軸）のFB信号が制御ユニット＃３によって書き込まれる。
【００５２】
制御ユニット＃３の共有エリア３２５の領域Ｃ#3のコマンドフィールドCmdには、制御権を要求した制御ユニット＃１〜＃３を識別するためのデータが書き込まれる。例えば、制御ユニット＃３が第１系統の第３軸（Ｃ１軸）の制御権を要求する場合、Ｃ１軸のコマンドフィールドCmdに、例えば、制御ユニット番号「＃３」が書き込まれる。
【００５３】
制御ユニット＃３の共有エリア３２５の領域Ｃ#3の応答信号フィールドAnsには、他の制御ユニット＃１または＃２からの制御権要求に対する制御ユニット＃３の回答である応答信号が書き込まれる。
【００５４】
前述したように、制御ユニット＃１の領域Ａ#2には、制御ユニット＃２の領域Ｂ#2から転送された制御データがストアされる。制御ユニット＃１の領域Ａ#3には、制御ユニット＃３の領域Ｃ#3から転送された制御データがストアされる。制御ユニット＃２の領域Ｂ#1には、制御ユニット＃１の領域Ａ#1から転送された制御データがストアされる。制御ユニット＃２の領域Ｂ#3には、制御ユニット＃３の領域Ｃ#3から転送された制御データがストアされる。制御ユニット＃３の領域Ｃ#1には、制御ユニット＃１の領域Ａ#1から転送された制御データがストアされる。制御ユニット＃３の領域Ｃ#2には、制御ユニット＃２の領域Ｂ#2から転送された制御データがストアされる。
【００５５】
図６は、加工機械６００を制御する加工プログラムの一例を示す図である。加工プログラム#P1、#P2は加工プログラム１２２に対応し、制御ユニット＃１によって並行して実行される。加工プログラム#P3、#P4は加工プログラム２２２に対応し、制御ユニット＃２によって並行して実行される。加工プログラム#P5、#P6は加工プログラム３２２に対応し、制御ユニット＃３によって並行して実行される。例えば、加工プログラム#P1が請求の範囲の第１加工プログラムに対応し、例えば、加工プログラム#P3が請求の範囲の第２加工プログラムに対応する。
【００５６】
加工プログラム#P1〜#P6のブロックN10、N20、およびN30には、軸交換指令が記述されている。具体的には、加工プログラム#P1のブロックN10には、「G140  X=X1  C=C1」が記述され、加工プログラム#P2のブロックN10には、「G140  X=X2  Z=Z2  C=C2」が記述され、加工プログラム#P3のブロックN10には、「G140  X=X3  Z=Z3  C=C3」が記述され、加工プログラム#P4のブロックN10には、「G140  X=X4  Z=Z4  C=C4」が記述され、加工プログラム#P5のブロックN10には、「G140  X=X5  Z=Z5  C=C5」が記述され、加工プログラム#P6のブロックN10には、「G140  X=X6  Z=Z6  C=C6」が記述されている。このブロックN10の段階では、軸交換は行われない。
【００５７】
加工プログラム#P1のブロックN20には、「G140  X=X1  C=C2」が記述され、加工プログラム#P2のブロックN20には、「G140  X=X2  Z=Z2  C=C3」が記述され、加工プログラム#P3のブロックN20には、「G140  X=X3  Z=Z3  C=C4」が記述され、加工プログラム#P4のブロックN20には、「G140  X=X4  Z=Z4  C=C5」が記述され、加工プログラム#P5のブロックN20には、「G140  X=X5  Z=Z5  C=C6」が記述され、加工プログラム#P6のブロックN20には、「G140  X=X6  Z=Z6  C=C1」が記述されている。このブロックN20の段階では、制御ユニット＃１、＃２および＃３間での軸交換が行われる。
【００５８】
加工プログラム#P1のブロックN30には、「G140  X=X1  C=C3」が記述され、加工プログラム#P2のブロックN30には、「G140  X=X2  Z=Z2  C=C4」が記述され、加工プログラム#P3のブロックN30には、「G140  X=X3  Z=Z3  C=C5」が記述され、加工プログラム#P4のブロックN30には、「G140  X=X4  Z=Z4  C=C6」が記述され、加工プログラム#P5のブロックN30には、「G140  X=X5  Z=Z5  C=C1」が記述され、加工プログラム#P6のブロックN30には、「G140  X=X6  Z=Z6  C=C2」が記述されている。このブロックN30の段階では、制御ユニット＃１、＃２および＃３間での軸交換が行われる。
【００５９】
図７および図８は、制御ユニット＃１、＃２、および＃３で実行される軸交換の制御手順の一例を示す図である。図７は、加工プログラムを実行するときに制御ユニット＃１、＃２、および＃３で実行される処理手順を示している。図８は、他の制御ユニットから制御権要求を受信したときの処理手順を示している。以下では、制御ユニット＃１の動作を例にとって図７および図８の処理手順を説明する。
【００６０】
図７の処理手順を説明する。解析処理部１４０は、加工プログラム１２２の各ブロックの解析の際、解析対象のブロックに軸交換指令としてのG140が記述されているか否かを判定する（Ｓ１００）。解析処理部１４０は、解析対象の現ブロックにG140が含まれていない場合は（Ｓ１００：Ｎｏ）、この現ブロックを解析し、解析結果をワークエリア１２４を介して補間処理部１５０に渡す（Ｓ１１０）。この解析結果は、前述したように、加減速処理部１５１、軸データ入出力部１５２を介して駆動部１８０に出力され、駆動部１８０で前記現ブロックの指令に対応する駆動制御が実行される。
【００６１】
解析対象のブロックに軸交換指令（G140）が含まれている場合は（Ｓ１００：Ｙｅｓ）、軸交換解析部１４１は軸交換指令を解析し、図３に示した軸定義に基づき、G140によって指定されている軸が実軸であるか他の制御ユニットに接続されている軸であるかを判定する（Ｓ１２０）。図１に示した加工機械６００の場合、軸交換の対象はＣ軸のみであるので、主にＣ軸に関して説明する。軸交換解析部１４１はG140によって指定されているＣ軸が実軸（Ｃ１軸またはＣ２軸）であるか否かを判定する。G140によって指定されている軸が実軸である場合（Ｓ１２０：Ｙｅｓ）、軸交換解析部１４１は、自制御ユニット＃１に接続されている駆動部１８０の軸停止状態およびロボットハンドの運転状態などに基づいて、G140によって指定されている軸を含む系統の制御権を取得しても良いか否かを判定する（Ｓ１３０）。
【００６２】
駆動部１８０に含まれる各軸の停止状態は、軸停止判定部１５５によって判定される。前述したように、補間処理部１５０には、駆動部１８０に含まれる各軸（Ｘ１軸、Ｃ１軸、Ｘ２軸、Ｚ２軸およびＣ２軸）のセンサ１８３、１８６、１９３、１９６、および１９９からのFB信号が軸データ入出力部１５２を介して入力されている。軸停止判定部１５５は、これらセンサからのFB信号に基づいて、駆動部１８０に含まれる各軸が停止しているか否かを判定する。軸停止判定部１５５はワークエリア１２４を介して各軸の停止状態を軸交換解析部１４１に通知する。
【００６３】
また、ロボットハンドの運転状態を含む周辺機器の運転状態は、機械動作完了判定部１３７によって判定される。機械動作完了判定部１３７は、ロボットハンドによるワーク反転(M1000)の実行または終了を示す機械動作状態を、ワークエリア１２４を介して軸交換解析部１４１に通知する。
【００６４】
軸交換解析部１４１は、G140によって指定されている軸を含む系統の軸停止を軸停止判定部１５５からの通知によって確認し、かつロボットハンドの停止を機械動作完了判定部１３７からの通知に基づき確認すると、G140によって指定されている軸を含む系統の制御権を取得しても良いと判定する。軸交換処理部１６０は、制御権の取得が可能と判定すると（Ｓ１３０：Ｙｅｓ）、共有エリア１２５の領域Ａ#1に、G140によって指定された軸に対する制御権取得宣言をセットする（Ｓ１４０）。例えば、制御権取得宣言は、コマンドフィールドCmdに対する制御ユニット番号「＃１」のセットおよび応答信号フィールドAnsに対する「OK」のセットによって実現される。例えば、制御ユニット＃１が実軸であるＣ１軸の制御権取得を宣言する場合、領域Ａ#1のＣ１軸のコマンドフィールドCmdに制御ユニット番号「＃１」をセットし、領域Ａ#1のＣ１軸の応答信号フィールドAnsに「OK」をセットする。つぎに、軸交換解析部１４１は、加工プログラム１２２の次ブロック以降を解析し、解析結果を補間処理部１５０に出力する。この解析結果は、加減速処理部１５１、軸データ入出力部１５２を介して駆動部１８０に出力され、駆動部１８０で前記次ブロック以降の指令に対応する駆動制御が実行される。
【００６５】
軸交換指令（G140）が他の制御ユニット＃２または＃３の実軸を指定している場合（Ｓ１２０：Ｎｏ）、軸交換解析部１４１は、ブロックの解析結果を軸交換処理部１６０に渡す。軸交換処理部１６０は、共有エリア１２５の領域Ａ#1に、G140によって指定された軸に対する制御権要求をセットする（Ｓ１６０）。具体的には、軸交換処理部１６０は、共有エリア１２５の領域Ａ#1における、前記軸交換指令で指定された軸のエントリのコマンドフィールドCmdに制御ユニット番号「＃１」をセットする。例えば、制御ユニット＃１が第３系統の第３軸（Ｃ３軸）の制御権を要求する場合、領域Ａ#1のＣ３軸のコマンドフィールドCmdに、制御ユニット番号「＃１」をセットする。データ転送部１６５は、共有エリア１２５の領域Ａ#1にストアされた制御データを第２通信路５３０を介して他の制御ユニット＃２および＃３に転送する。
【００６６】
データ転送部１６５は、制御ユニット＃２から受信した制御データを共有エリア１２５の領域Ａ#2にストアし、制御ユニット＃３から受信した制御データを共有エリア１２５の領域Ａ#3にストアする。軸交換処理部１６０は、共有エリア１２５の領域Ａ#2およびＡ#3をサーチし、前記制御権要求に対する他の制御ユニット＃２または＃３からの応答信号Ansを受信する。軸交換処理部１６０は、受信された応答信号Ansの内容に基づいて制御権を取得できたか否かを判定する（Ｓ１７０）。応答信号Ansが不許可NGを示している場合、軸交換解析部１４１は、許可OKを示す応答信号Ansを受信するまで、待機する。軸交換処理部１６０は、許可OKを示す応答信号Ansを受信して制御権を取得できた場合（Ｓ１７０：Ｙｅｓ）、制御権を取得できたことを軸交換解析部１４１に通知する。軸交換解析部１４１は、加工プログラム１２２の次ブロック以降を解析し、解析結果としての位置指令を、共有エリア１２５の領域Ａ#1における、前記軸交換指令で指定された軸のエントリの位置指令フィールドPIに、セットする（Ｓ１８０）。データ転送部１６５は、共有エリア１２５の領域Ａ#1にストアされた制御データを第２通信路５３０を介して制御ユニット＃２の共有エリア２２５および制御ユニット＃３の共有エリア３２５に転送する。他の制御ユニット＃２または＃３は、制御ユニット＃１から受信した位置指令PIに従って、補間処理、加減速処理、軸データ出力処理を実行する。これにより、制御ユニット＃１が指令した位置指令PIに基づいて、制御ユニット＃２または＃３に接続される軸が駆動制御される。
【００６７】
図８の処理手順を説明する。前述したように、他の制御ユニットからの制御権要求に対する応答は、制御権を有する制御ユニットではなく、制御権要求された軸が実軸である制御ユニットによって実行される。したがって、図８の処理を実行する主体は、制御権要求された軸を実軸とする制御ユニットである。以下では、制御ユニット＃１の動作として図８を説明する。軸交換処理部１６０は、共有エリア１２５の領域Ａ#2およびＡ#3をサイクリックにサーチしている。軸交換処理部１６０は、このサーチに基づき他の制御ユニット＃２または＃３からＣ１軸またはＣ２軸に対する制御権要求が受信されているか否かをチェックする（Ｓ２００）。他の制御ユニット＃２または＃３からの制御権要求を受信している場合（Ｓ２１０：Ｙｅｓ）、軸交換処理部１６０は、自制御ユニット＃１に接続されている駆動部１８０の軸停止状態およびロボットハンドの運転状態などに基づいて、制御権要求された軸の制御権を渡して良いか否かを判定する（Ｓ２２０）。
【００６８】
前述したように、駆動部１８０に含まれる各軸の停止状態は、軸停止判定部１５５によって判定される。また、ロボットハンドの運転状態は、機械動作完了判定部１３７によって判定される。軸交換処理部１６０は、制御権要求された軸を含む系統の軸停止を確認し、かつロボットハンドの停止を確認するまでは、制御権を他の制御ユニットに渡さない。
【００６９】
軸交換処理部１６０は、軸停止判定部１５５および機械動作完了判定部１３７からの通知に基づき制御権要求された軸の受渡しが不可能と判定すると（Ｓ２２０：Ｎｏ）、共有エリア１２５の領域Ａ#1における、制御権要求された軸の応答信号フィールドAnsに、不許可信号NGを書き込む（Ｓ２４０）。
【００７０】
また、軸交換処理部１６０は、制御権要求された軸の受渡しが可能と判定すると（Ｓ２２０：Ｙｅｓ）、共有エリア１２５の領域Ａ#1における、制御権要求された軸の応答信号フィールドAnsに、許可信号OKを書き込む（Ｓ２３０）。軸交換処理部１６０は、制御権要求を許可したことを軸交換解析部１４１に通知する。この後、制御権要求を送信した制御ユニットから、制御権要求した軸についての位置指令PIが送信されてくるので、軸交換解析部１４１は、共有エリア１２５を介してこの位置指令を取得し、取得した位置指令を補間処理部に渡す。これにより、これにより、他の制御ユニット＃２または＃３が指令した位置指令PIに基づいて、制御権を他の制御ユニット＃２または＃３に移行した軸、すなわち制御ユニット＃１に接続される軸が駆動制御される（Ｓ２５０）。また、補間処理部１５０は、共有エリア１２５の領域Ａ#1における、制御権要求された軸、すなわち制御権を他の制御ユニット＃２または＃３に移行した軸のFB信号フィールドに、FB信号を順次セットする（Ｓ２６０）。
【００７１】
なお、上記説明では、共有エリア１２５、２２５、３２５の位置指令フィールドには、解析処理部１４０、２４０、３４０で解析された位置指令を書き込むようにしたが、補間処理部１５０、２５０、３５０での補間処理結果を書き込むようにしてもよい。また、上述したように、自制御ユニットが制御権を取得している期間中のみに他の制御ユニットに対する位置指令PIを共有エリアに書き込むようにしてもよいし、あるいは自制御ユニットが解析したプログラムに含まれる位置指令を全て共有エリアに書き込むようにしてもよい。また、FB信号は、自制御ユニットの実軸が他の制御ユニットからの位置指令に基づいて駆動されるときのみに共有エリアに書き込むようにしてもよいし、あるいはFB信号を常に共有エリアに書き込むようにしてもよい。
【００７２】
次に、図６に示した加工プログラムが制御ユニット＃１、＃２、および＃３によって実行されるときの軸交換の動作を図９〜図１１にしたがって説明する。図１に示した加工機械６００においては、前述したように、ＮＣ軸（Ｘ軸、Ｚ軸）の軸交換は行われず、主軸（Ｃ軸）の軸交換のみが行われる。このため、主に、Ｃ軸の軸交換動作について説明する。図９は、ブロックN10が実行されるときの共有エリア１２５、２２５、および３２５の状態を示す図である。図１０は、ブロックN20が実行されるときの共有エリア１２５、２２５、および３２５の状態を示す図である。図１１は、ブロックN30が実行されるときの共有エリア１２５、２２５、および３２５の状態を示す図である。Ｃ軸に関するエントリの状態のみが抽出されて示されている。
【００７３】
加工プログラム#P1のブロックN10では、Ｃ１軸が指定されている。軸交換解析部１４１は、図３に示した軸定義に基づき、加工プログラム#P1のブロックN10に含まれる軸交換指令G140によって指定されている軸であるＣ１軸が自制御ユニット＃１の実軸であると判断する。また、この軸交換指令G140は最初の軸交換指令であるので、軸交換解析部１４１は、このＣ１軸の制御権を自制御ユニット＃１が即座に取得してもよいと判断する。軸交換解析部１４１は、この判断を軸交換処理部１６０に伝える。軸交換処理部１６０は、共有エリア１２５にＣ１軸の制御権取得宣言をセットする。具体的には、軸交換処理部１６０は、共有エリア１２５の領域Ａ#1のＣ１軸のコマンドフィールドCmdに、自制御ユニット番号「＃１」を書き込み、領域Ａ#1のＣ１軸の応答信号フィールドAnsに、許可OKを書き込む（図９参照）。この後、制御ユニット＃１は、加工プログラム#P1のブロックN10の次のブロックを実行する。
【００７４】
加工プログラム#P2のブロックN10に関しても同様の処理が実行される。この結果、軸交換処理部１６０は、共有エリア１２５の領域Ａ#1のＣ２軸のコマンドフィールドCmdに、自制御ユニット番号「＃１」を書き込み、領域Ａ#1のＣ２軸の応答信号フィールドAnsに、許可OKを書き込む（図９参照）。この後、制御ユニット＃１は、加工プログラム#P2のブロックN10の次のブロックを実行する。
【００７５】
制御ユニット＃２および＃３は、同様の処理を実行する。この結果、図９に示すように、共有エリア２２５の領域Ｂ#2のＣ３軸のコマンドフィールドCmdに、制御ユニット番号「＃２」が書き込まれ、領域Ｂ#2のＣ３軸の応答信号フィールドAnsに、許可OKが書き込まれる。また、共有エリア２２５の領域Ｂ#2のＣ４軸のコマンドフィールドCmdに、制御ユニット番号「＃２」が書き込まれ、領域Ｂ#2のＣ４軸の応答信号フィールドAnsに、許可OKが書き込まれる。また、共有エリア３２５の領域Ｃ#3のＣ５軸のコマンドフィールドCmdに、制御ユニット番号「＃３」が書き込まれ、領域Ｃ#3のＣ５軸の応答信号フィールドAnsに、許可OKが書き込まれる。また、共有エリア３２５の領域Ｃ#3のＣ６軸のコマンドフィールドCmdに、制御ユニット番号「＃３」が書き込まれ、領域Ｃ#3のＣ６軸の応答信号フィールドAnsに、許可OKが書き込まれる。
【００７６】
加工プログラム#P1のブロックN20では、Ｃ２軸が指定されている。軸交換解析部１４１は、図３に示した軸定義に基づき、加工プログラム#P1のブロックN10に含まれる軸交換指令G140によって指定されている軸であるＣ２軸が自制御ユニット＃１の実軸であると判断する。軸交換解析部１４１は、軸停止判定部１５５および機械動作完了判定部１３７からの通知に基づき制御権要求されたＣ２軸の制御権の取得が可能と判定すると、共有エリア１２５の領域Ａ#1のＣ２軸のコマンドフィールドCmdに、自制御ユニット番号「＃１」を書き込み、領域Ａ#1のＣ２軸の応答信号フィールドAnsに、許可OKを書き込む（図１０参照）。解析処理部１４０は、ブロックN20の次のブロックの解析結果を補間処理部１５０に渡すことで、次のブロックを実行させる。
【００７７】
加工プログラム#P2のブロックN20では、Ｃ３軸が指定されている。軸交換解析部１４１は、図３に示した軸定義に基づき、加工プログラム#P2のブロックN20に含まれる軸交換指令G140によって指定されている軸であるＣ３軸が他の制御ユニット＃２の実軸であると判断する。軸交換解析部１４１は、この判断を軸交換処理部１６０に伝える。軸交換処理部１６０は、共有エリア１２５の領域Ａ#1のＣ３軸のコマンドフィールドCmdに、自制御ユニット番号「＃１」を書き込む（図１０参照）。この書き込み内容は、制御ユニット＃１の共有エリア１２５から制御ユニット＃２の共有エリア２２５および制御ユニット＃３の共有エリア３２５に転送される。図１０の矢印Ｋ１は、制御ユニット＃１から制御ユニット＃２へのデータ転送を示している。なお、図１０及び図１１においては、軸交換に寄与しない制御ユニットへのデータ転送を示す矢印の図示を便宜上省略している。
【００７８】
制御ユニット＃２の軸交換処理部２６０は、図８に示した処理によって、制御権の受渡し判定、および許可信号OKまたは不許可信号NGの書き込みを実行する。軸交換処理部２６０は、共有エリア２２５の領域Ｂ#2のＣ３軸のコマンドフィールドCmdに、制御ユニット番号「＃１」を書き込み、領域Ｂ#2のＣ３軸の応答信号フィールドAnsに、許可信号OKまたは不許可信号NGを書き込む。図１０の矢印Ｋ２は、この書き込み処理を表している。この書き込み内容は、制御ユニット＃２の共有エリア２２５から制御ユニット＃１の共有エリア１２５および制御ユニット＃３の共有エリア３２５に転送される。図１０の矢印Ｋ３は、制御ユニット＃２の領域Ｂ#2から制御ユニット＃１の領域Ａ#2へのデータ転送を示している。
【００７９】
制御ユニット＃１の軸交換処理部１６０は、共有エリア１２５の領域Ａ#2の記憶内容に基づいて、Ｃ３軸の制御権要求が許可されたか否かを判定する。軸交換処理部１６０は、制御権を取得できた場合、制御権を取得できたことを解析処理部１４０に伝える。解析処理部１４０は、加工プログラム#P2のブロックN20の次ブロックを解析し、解析結果である位置指令を、共有エリア１２５の領域Ａ#1のＣ３軸の位置指令フィールドPIに書き込む。
【００８０】
加工プログラム#P3のブロックN20が制御ユニット＃２で実行されることによって、図１０に示すように、共有エリア２２５の領域Ｂ#2のＣ４軸のコマンドフィールドCmdに、制御ユニット番号「＃２」が書き込まれ、領域Ｂ#2のＣ４軸の応答信号フィールドAnsに、許可信号OKが書き込まれる。加工プログラム#P4のブロックN20が制御ユニット＃２で実行されることによって、矢印Ｋ４、Ｋ５、およびＫ６で示すような軸交換処理が行われる。
【００８１】
加工プログラム#P5のブロックN20が制御ユニット＃３で実行されることによって、図１０に示すように、共有エリア３２５の領域Ｃ#3のＣ６軸のコマンドフィールドCmdに、制御ユニット番号「＃３」が書き込まれ、領域Ｃ#3のＣ６軸の応答信号フィールドAnsに、許可OKが書き込まれる。加工プログラム#P6のブロックN20が制御ユニット＃３で実行されることによって、矢印Ｋ７、Ｋ８、およびＫ９で示すような軸交換処理が行われる。
【００８２】
加工プログラム#P1のブロックN30では、Ｃ３軸が指定されている。軸交換解析部１４１は、図３に示した軸定義に基づき、Ｃ３軸が他の制御ユニット＃２の実軸であると判断する。軸交換解析部１４１は、この判断を軸交換処理部１６０に伝える。軸交換処理部１６０は、共有エリア１２５の領域Ａ#1のＣ３軸のコマンドフィールドCmdに、自制御ユニット番号「＃１」を書き込む（図１１参照）。この書き込み内容は、制御ユニット＃１の共有エリア１２５から制御ユニット＃２の共有エリア２２５および制御ユニット＃３の共有エリア３２５に転送される。図１１の矢印Ｋ１１は、制御ユニット＃１から制御ユニット＃２へのデータ転送を示している。制御ユニット＃２の軸交換処理部２６０は、図８に示した処理によって、制御権の受渡し判定を実行する。軸交換処理部２６０は、共有エリア２２５の領域Ｂ#2のＣ３軸のコマンドフィールドCmdに、制御ユニット番号「＃１」を書き込み、領域Ｂ#2のＣ３軸の応答信号フィールドAnsに、許可信号OKまたは不許可信号NGを書き込む。図１１の矢印Ｋ１２は、この書き込み処理を表している。この書き込み内容は、制御ユニット＃２の共有エリア２２５から制御ユニット＃１の共有エリア１２５および制御ユニット＃３の共有エリア３２５に転送される。図１１の矢印Ｋ１３は、制御ユニット＃２の領域Ｂ#2から制御ユニット＃１の領域Ａ#2へのデータ転送を示している。制御ユニット＃１の軸交換処理部１６０は、共有エリア１２５の領域Ａ#2の記憶内容に基づいて、Ｃ３軸の制御権要求が許可されたか否かを判定する。軸交換処理部１６０は、制御権を取得できた場合、制御権を取得できたことを解析処理部１４０に伝える。解析処理部１４０は、加工プログラム#P1のブロックN30の次ブロックを解析し、解析結果である位置指令を、共有エリア１２５の領域Ａ#1のＣ３軸の位置指令フィールドPIに書き込む。
【００８３】
同様にして、加工プログラム#P2のブロックN30が制御ユニット＃１で実行されることによって、矢印Ｋ１４、Ｋ１５、およびＫ１６で示すような軸交換処理が行われる。加工プログラム#P3のブロックN30が制御ユニット＃２で実行されることによって、矢印Ｋ１７、Ｋ１８、およびＫ１９で示すような軸交換処理が行われる。加工プログラム#P4のブロックN30が制御ユニット＃２で実行されることによって、矢印Ｋ２１、Ｋ２２、およびＫ２３で示すような軸交換処理が行われる。加工プログラム#P5のブロックN30が制御ユニット＃３で実行されることによって、矢印Ｋ２４、Ｋ２５、およびＫ２６で示すような軸交換処理が行われる。加工プログラム#P6のブロックN30が制御ユニット＃３で実行されることによって、矢印Ｋ２７、Ｋ２８、およびＫ２９で示すような軸交換処理が行われる。
【００８４】
図１２は、軸交換の際の制御権の移行タイミングを説明するための図である。制御ユニット＃１の第２系統で実行される加工プログラム#P2と、制御ユニット＃２の第１系統で実行される加工プログラム#P3が示されている。加工プログラム#P2は、ブロックN100に、Ｃ２軸を指定する軸交換指令G140を含み、ブロックN110に、Ｃ３軸を指定する軸交換指令G140を含み、ブロックN120に、Ｃ２軸を指定する軸交換指令G140を含んでいる。加工プログラム#P3は、ブロックN100に、Ｃ３軸を指定する軸交換指令G140を含み、ブロックN110に、Ｃ２軸を指定する軸交換指令G140を含み、ブロックN120に、Ｃ３軸を指定する軸交換指令G140を含んでいる。
【００８５】
制御ユニット＃１は、加工プログラム#P2のブロックN100を実行し、Ｘ２軸、Ｚ２軸、およびＣ２軸の制御権を獲得したとする。制御ユニット＃１は、加工プログラム#P2のブロックN100の次ブロック以降を実行し、Ｘ２軸、Ｚ２軸およびＣ２軸を用いた加工を実行する。同様に、制御ユニット＃２は、加工プログラム#P3のブロックN100を実行し、Ｘ３軸、Ｚ３軸、およびＣ３軸の制御権を獲得したとする。制御ユニット＃２は、加工プログラム#P3のブロックN100の次ブロック以降を実行し、Ｘ３軸、Ｚ３軸およびＣ３軸を用いた加工を実行する。
【００８６】
時刻ｔ１に、Ｘ２軸、Ｚ２軸およびＣ２軸が用いられる制御ユニット＃１での加工が終了したとする。この時刻ｔ１では、Ｘ３軸、Ｚ３軸およびＣ３軸が用いられる制御ユニット＃２での加工が終了していないとする。制御ユニット＃１は、加工プログラム#P2のブロックN110を実行し、Ｃ３軸の制御権を他の制御ユニットに要求する。制御ユニット＃２は、制御ユニット＃１からのＣ３軸の制御権要求を受信するが、Ｘ３軸、Ｚ３軸およびＣ３軸を用いた加工が終了する時刻ｔ２までは、不許可信号NGを制御ユニット＃１に返す。制御ユニット＃１は、時刻ｔ１から時刻ｔ２までの期間は、不許可信号NGの受信により、Ｃ３軸の制御権の取得待ち状態となる。
【００８７】
時刻ｔ２に、Ｘ３軸、Ｚ３軸およびＣ３軸が用いられる制御ユニット＃２での加工が終了すると、制御ユニット＃２は、Ｃ３軸の許可信号OKを制御ユニット＃１に返す。制御ユニット＃１は、許可信号OKの受信により、Ｃ３軸の制御権を取得する。制御ユニット＃１は、加工プログラム#P2のブロックN110の次ブロック以降を実行し、Ｃ３軸の位置指令PIを共有エリア１２５を介して制御ユニット＃２に転送する。
【００８８】
時刻ｔ２に、Ｘ３軸、Ｚ３軸およびＣ３軸が用いられる制御ユニット＃２での加工が終了すると、制御ユニット＃２は、加工プログラム#P3のブロックN110を実行し、Ｃ２軸の制御権を他の制御ユニットに要求する。制御ユニット＃１は、制御ユニット＃２からのＣ２軸の制御権要求を検知し、Ｃ２軸の許可信号OKを制御ユニット＃２に返す。制御ユニット＃２は、許可信号OKの受信により、Ｃ２軸の制御権を取得する。制御ユニット＃２は、加工プログラム#P3のブロックN110の次ブロック以降を実行し、Ｃ２軸の位置指令PIを共有エリア２２５を介して制御ユニット＃１に転送する。
【００８９】
制御ユニット＃１は、加工プログラム#P2のブロックN110の次のブロック以降の内容に基づきＸ２軸およびＺ２軸を駆動制御し、制御ユニット＃２から共有エリアを介して転送された位置指令PIに基づきＣ２軸を駆動制御する。制御ユニット＃２は、加工プログラム#P3のブロックN110の次のブロック以降の内容に基づきＸ３軸およびＺ３軸を駆動制御し、制御ユニット＃１から共有エリアを介して転送された位置指令PIに基づきＣ３軸を駆動制御する。
【００９０】
なお、図１の数値制御装置では、１つの制御ユニットに２つの系統を接続したが、１つの制御ユニットに１つの系統を接続してもよいし、１つの制御ユニットに３つ以上の系統を接続してもよい。また、上記の説明では主軸（Ｃ軸）のみを制御ユニット間で軸交換したが、ＮＣ軸を軸交換の対象にしてもよい。
【００９１】
このように実施の形態１では、各制御ユニットの共有エリアを使って軸交換のための制御権要求、応答信号の送受信を行うようにしたので、簡単で、機械構成の変更（対象軸の変更、系統の増設など）または制御構成の変更（制御ユニットの増設など）への自由度の高い軸交換制御が可能となる。また、各制御ユニット＃１、＃２、＃３の共有エリア１２５、２２５、３２５にエントリを増やすだけで、軸交換の対象軸の変更、系統の増設、制御ユニットの増設などへの対応が可能であり、自由度の高い軸交換制御が可能である。また、各共有エリアには、加工機械に備えられる全ての系統に含まれる軸の情報を書き込むためのエントリを設け、対応する軸のエントリに制御権要求および応答信号を書き込むようにしており、複雑なフォーマットの制御権要求信号を用いることなく軸交換が可能となる。また、３つ以上の制御ユニットを持つ数値制御装置に対しても、簡単な設定で軸交換を実現できる。
【００９２】
実施の形態２．
図１に示した加工機械６００と、図２に示した数値制御装置１０００と、図３に示した軸定義と、図４および図５に示した共有エリアは、実施の形態２にも適用される。実施の形態２では、補助指令のひとつであるＭコードを用いて制御ユニット間での軸交換を指令する。図２において、解析処理部１４０は、加工プログラム１２２中にＭコードが含まれていた場合に、加工プログラム中のＭコードを補助指令軸交換解析部１３８に渡す。補助指令軸交換解析部１３８は、渡されたＭコードをＰＬＣ１３５に渡す。ＰＬＣ１３５には、Ｍコードと指令内容との対応関係を示すＭコードテーブルが記憶されている。ＰＬＣ１３５は、Ｍコードテーブルを使ってＭコードに対応する指令内容を取得し、取得した指令内容を補助指令軸交換解析部１３８に渡す。補助指令軸交換解析部１３８は、指令内容を解析し、解析結果をワークエリア１２４を介して解析処理部１４０に渡す。
【００９３】
図１３は、実施の形態２に適用される加工プログラムの一例を示す図である。加工プログラム#Q1、#Q2は加工プログラム１２２に対応し、制御ユニット＃１で、並行して実行される。加工プログラム#Q3、#Q4は加工プログラム２２２に対応し、制御ユニット＃２で並行して実行される。加工プログラム#Q5、#Q6は加工プログラム３２２に対応し、制御ユニット＃３で並行して実行される。
【００９４】
加工プログラム#Q1〜#Q6のブロックN10、N20、およびN30には、Ｍコードを用いた軸交換指令が記述されている。例えば、加工プログラム#Q1のブロックN10には、「M111」が記述され、加工プログラム#Q2のブロックN10には、「M121」が記述され、加工プログラム#Q3のブロックN10には、「M211」が記述され、加工プログラム#Q4のブロックN10には、「M221」が記述され、加工プログラム#Q5のブロックN10には、「M311」が記述され、加工プログラム#Q6のブロックN10には、「M321」が記述されている。
【００９５】
図１４は、ＰＬＣ１３５の内蔵メモリにストアされるＭコードテーブルの一例を示す図である。図１４において、制御ユニット番号は、Ｍコードを実行する制御ユニットを示し、系統は、Ｍコードを実行する制御ユニット内の系統番号を示している。「$1」は第１系統を示し、「$2」は第２系統を示している。M111は、第１軸をＸ１軸とし、第３軸をＣ１軸とする軸構成であって、制御ユニット＃１の第１系統$1が制御の主体であることを示している。M121は、第１軸をＸ２軸とし、第２軸をＺ２軸とし、第３軸をＣ２軸とする軸構成であって、制御ユニット＃１の第２系統$2が制御の主体であることを示している。M211は、第１軸をＸ３軸とし、第２軸をＺ３軸とし、第３軸をＣ３軸とする軸構成であって、制御ユニット＃２の第１系統$1が制御の主体であることを示している。M221は、第１軸をＸ４軸とし、第２軸をＺ４軸とし、第３軸をＣ４軸とする軸構成であって、制御ユニット＃２の第２系統$2が制御の主体であることを示している。M311は、第１軸をＸ５軸とし、第２軸をＺ５軸とし、第３軸をＣ５軸とする軸構成であって、制御ユニット＃３の第１系統$1が制御の主体であることを示している。M321は、第１軸をＸ６軸とし、第２軸をＺ６軸とし、第３軸をＣ６軸とする軸構成であって、制御ユニット＃３の第２系統$2が制御の主体であることを示している。
【００９６】
例えば、加工プログラム#Q2のブロックN20が実行されるときの動作について説明する。制御ユニット＃１の解析処理部１４０は、ブロックN20のＭコードM122を補助指令軸交換解析部１３８に渡す。補助指令軸交換解析部１３８は、渡されたＭコードM122をＰＬＣ１３５に渡す。ＰＬＣ１３５は、図１４に示したＭコードテーブルに基づいてＭコードM122に対応する指令内容を取得し、取得した指令内容を補助指令軸交換解析部１３８に渡す。補助指令軸交換解析部１３８は、指令内容を解析する。この解析によって、M122は、第１軸をＸ２軸とし、第２軸をＺ２軸とし、第３軸をＣ３軸とする軸構成であって、制御の主体は、制御ユニット＃１の第２系統$2であることを認識する。補助指令軸交換解析部１３８は、解析結果をワークエリア１２４を介して軸交換処理部１６０に渡す。
【００９７】
軸交換処理部１６０は、実施の形態１と同様に動作する。具体的には、軸交換処理部１６０は、共有エリア１２５の領域Ａ#1のＣ３軸のコマンドフィールドCmdに、自制御ユニット番号「＃１」を書き込み、制御ユニット＃２にＣ３軸の制御権を要求する。その後、軸交換処理部１６０は、制御権を取得できた場合、機械制御信号処理部１３６、ＰＬＣ１３５を介して、シーケンスプログラムに制御権取得完了を通知する。また、軸交換処理部１６０は、制御権を取得できたことを解析処理部１４０に伝える。解析処理部１４０は、加工プログラム#Q2のブロックN20の次ブロックを解析し、解析結果である位置指令を、共有エリア１２５の領域Ａ#1のＣ３軸の位置指令フィールドPIに書き込む。
【００９８】
このように実施の形態２によれば、各制御ユニットの共有エリアを使って軸交換のための制御権要求、応答信号の送受信を行うようにしたので、実施の形態１と同様、簡単で自由度の高い軸交換制御が可能となる。また、Ｍコードを用いて軸交換を行うようにしたので、制御ユニットと系統との組み合わせの変更が容易となる。
【００９９】
実施の形態３．
つぎに、図１５〜図１８に従って実施の形態３を説明する。図１５は、実施の形態３の数値制御装置によって制御される加工機械７００を示す図である。この加工機械７００は、マルチステーション機であり、加工ユニットの自動交換機能を有している。加工機械７００は、ワークドラム７１０と、ワークドラム７１０の周囲に配置される１５個の加工ユニット＄１〜＄１５を有する。ワークドラム７１０の外周には、１５個のワーク支持部７０１が配置されている。各ワーク支持部７０１は、ワークを支持する。したがって、ワークドラム７１０には、１５個のワークを配置可能である。各加工ユニット＄１〜＄１５は、対向するワーク支持部７０１が把持するワークに対して加工を実行する。ワークドラム７１０は、Ｂ方向に回転する。ワークドラム７１０の回転によってワークは次の加工ユニットの対向位置に移動する。各ワークは、加工ユニット＄１〜＄１５での加工が実行されると、加工終了となる。
【０１００】
加工ユニット＄１は、Ｘ１軸およびＣ１軸を有する。加工ユニット＄２は、Ｘ２軸、Ｚ２軸、およびＣ２軸を有する。加工ユニット＄３は、Ｘ３軸およびＣ３軸を有する。加工ユニット＄４は、Ｘ４軸、Ｚ４軸、およびＣ４軸を有する。加工ユニット＄５は、Ｘ５軸、Ｚ５軸、およびＣ５軸を有する。加工ユニット＄６は、Ｘ６軸およびＣ６軸を有する。加工ユニット＄７は、Ｘ７軸およびＣ７軸を有する。加工ユニット＄８は、Ｘ８軸、Ｙ８軸、およびＺ８軸を有する。加工ユニット＄９は、Ｘ９軸、Ｙ９軸、およびＺ９軸を有する。加工ユニット＄１０は、Ｘ１０軸、Ｚ１０軸、およびＣ１０軸を有する。加工ユニット＄１１は、Ｘ１１軸、Ｚ１１軸、およびＣ１１軸を有する。加工ユニット＄１２は、Ｘ１２軸、Ｙ１２軸、およびＺ１２軸を有する。加工ユニット＄１３は、Ｘ１３軸およびＣ１３軸を有する。加工ユニット＄１４は、Ｘ１４軸およびＣ１４軸を有する。加工ユニット＄１５は、Ｘ１５軸およびＣ１５軸を有する。加工ユニット＄１６は、加工ユニット＄１２と交換可能であり、Ｘ１６軸およびＺ１６軸を有する。
【０１０１】
図２に示した数値制御装置１０００の構成は、実施の形態３にも適用される。ただし、図２に示された駆動部１８０、２８０および３８０は、図１５に示した加工機械７００の駆動部に置換される。図１５に示した加工機械７００は、１５個の加工ユニット（系統）＄１〜＄１５を持ち、１５工程で一つのワークを加工する。工程１（系統＄１）から工程１１（系統＄１１）までが実行された後、工程１２（系統＄１２）では、例えば、ドリル加工が実行され、その後、工程１３（系統＄１３）から工程１５（系統＄１５）までが実行されて、加工完了となる。
【０１０２】
ワークを仕上げるためには、例えば旋削加工の追加が必要である。実施の形態３では、加工機械が持つ加工ユニットの自動交換機能を利用し、旋削加工を追加する。例えば、工程１２の加工ユニット＄１２によるドリル加工終了後に、ドリル加工ユニットである加工ユニット＄１２を、旋削加工ユニット＄１６に交換し、交換された旋削加工ユニット＄１６で旋削加工を行う。旋削加工終了後、旋削加工ユニット＄１６を加工ユニット＄１２に交換する。その後、旋削加工が行われたワークに対し、工程１３（系統＄１３）から工程１５（系統＄１５）までが実行されて、加工完了となる。
【０１０３】
図１６は、数値制御装置１０００の３つの制御ユニット＃１、＃２および＃３の軸定義を示す図である。図１６の軸定義によれば、制御ユニット＃１は、工程１を実行する加工ユニット＄１と、工程２を実行する加工ユニット＄２と、工程３を実行する加工ユニット＄３と、工程４を実行する加工ユニット＄４と、工程５を実行する加工ユニット＄５と、追加される旋削工程を実行する加工ユニット＄１６とを駆動制御する。
【０１０４】
図１６の軸定義によれば、制御ユニット＃２は、工程６を実行する加工ユニット＄６と、工程７を実行する加工ユニット＄７と、工程８を実行する加工ユニット＄８と、工程９を実行する加工ユニット＄９と、工程１０を実行する加工ユニット＄１０と、５軸加工工程を実行する加工ユニット＄１７とを駆動制御する。加工ユニット＄１７に関しては、実施の形態４で説明する。
【０１０５】
図１６の軸定義によれば、制御ユニット＃３は、工程１１を実行する加工ユニット＄１１と、工程１２を実行する加工ユニット＄１２と、工程１３を実行する加工ユニット＄１３と、工程１４を実行する加工ユニット＄１４と、工程１５を実行する加工ユニット＄１５とを駆動制御する。
【０１０６】
図１７は、制御ユニット＃３の第２系統によって実行される加工プログラムの一例を示す図である。この加工プログラムは、前述したドリル加工から旋削加工への加工ユニットの交換処理を含んでいる。図１８は、ドリル加工から旋削加工への加工ユニットの交換処理手順を示すフローチャートである。以下、図１７および図１８に従って動作説明する。
【０１０７】
図１７の加工プログラムのブロックN50においては、「G140  X=X12  Y=Y12  Z=Z12」が記述されている。制御ユニット＃３は、N50の次のブロック以降を実行することで、加工ユニット＄１２のＸ１２軸、Ｙ１２軸およびＺ１２軸を駆動制御し、ワークに対しドリル加工を実行する（図１８  Ｓ３００）。ドリル加工が終了すると、制御ユニット＃３は、ドリル加工から旋削加工への交換を指示するＭコードであるM100が加工プログラムに記述されているか否かを判定する（Ｓ３１０）。加工プログラムにM100がある場合、このＭコードM100はＰＬＣを介してシーケンスプログラムに通知される。シーケンスプログラムによる処理により、加工ユニット＄１２は旋削加工ユニットである加工ユニット＄１６に自動交換される（Ｓ３２０）。
【０１０８】
図１７の加工プログラムのブロックN60には、M100が記述されている。N60の次のブロックには、軸交換指令としての「G140  X=X16  Z=Z16」が記述されている。図１６に示したように、G140で指定されたＸ１６軸およびＺ１６軸は、制御ユニット＃１の制御軸である。したがって、制御ユニット＃３は、M100による加工ユニットの交換の終了後に、実施の形態１と同様の処理を実行することで、Ｘ１６軸およびＺ１６軸の制御権要求を共有エリア３２５を介して制御ユニット＃１に送信する。Ｘ１６軸およびＺ１６軸の制御権要求に対する許可信号OKを共有エリア３２５を介して制御ユニット＃１から受信すると、制御ユニット＃３は、「G140  X=X16  Z=Z16」が記述されているブロックの次のブロック以降を解析し、解析結果としての位置指令PIを共有エリア３２５を介して制御ユニット＃１に送信する。制御ユニット＃１は、共有エリア１２５を介して受信した位置指令PIに基づいて加工ユニット＄１６のＸ１６軸およびＺ１６軸を駆動制御し、旋削加工を実行する。このようにして、制御ユニット＃３から制御ユニット＃１への軸交換が行われ（Ｓ３３０）、旋削加工が実行される（Ｓ３４０）。
【０１０９】
旋削加工が終了すると、制御ユニット＃３は、旋削加工からドリル加工への交換を指示するＭコードであるM101が加工プログラムに記述されているか否かを判定する（Ｓ３５０）。加工プログラムにM101がある場合、このＭコードM101はＰＬＣを介してシーケンスプログラムに通知される。シーケンスプログラムによる処理により、加工ユニット＄１６は元の加工ユニット＄１２に自動交換される（Ｓ３６０）。
【０１１０】
図１７の加工プログラムのブロックN70には、M101が記述されている。N70の次のブロックには、軸交換指令としての「G140  X=X12  Y=Y12  Z=Z12」が記述されている。制御ユニット＃３は、M101による加工ユニットの交換の終了後に、「G140  X=X12  Y=Y12  Z=Z12」が記述されているブロックの次のブロック以降を解析し、解析結果に基づき加工ユニット＄１２のＸ１２軸、Ｙ１２軸およびＺ１２軸を駆動制御する。この駆動制御によって次のワークに対するドリル加工が実行される（Ｓ３７０）。このようにして加工ユニットの交換を行い、一連の工程に例えば、旋削加工が追加される。
【０１１１】
このように実施の形態３によれば、加工ユニットの交換後に制御ユニット間で軸交換を行うようにしており、機械を止めること無く継続して一連の加工が可能となる。
【０１１２】
実施の形態４．
図１９は、実施の形態４の数値制御装置２０００を示す図である。数値制御装置２０００は、制御ユニット＃１、＃２、および＃３を有する。各制御ユニット＃１、＃２、および＃３には、５軸制御演算部１７０、２７０および３７０が追加されている。５軸制御演算部１７０は、解析処理部１４０から取得した加工プログラムの解析結果に基づき、Ｘ軸、Ｙ軸、Ｚ軸、Ａ軸、Ｂ軸についての座標変換演算を行い、座標変換結果をワークエリア１２４を介して補間処理部１５０に渡す。
【０１１３】
図２０は、実施の形態４の数値制御装置２０００によって制御される加工機械７００を示す図である。この加工機械７００は、実施の形態３と同様のマルチステーション機であり、加工ユニットの自動交換機能を有している。図２０に示した加工機械７００は、加工ユニット＄１２を加工ユニット＄１７に交換可能である。加工ユニット＄１７は、Ｘ１７軸、Ｙ１７軸、Ｚ１７軸、Ａ１７軸、Ｂ１７軸を有し、５軸加工を行う。
【０１１４】
先に示した図１６は、実施の形態４の数値制御装置２０００の軸定義にも適用される。５軸加工を行う加工ユニット＄１７は、制御ユニット＃２の実軸であると定義されている。
【０１１５】
図２１は、制御ユニット＃３の第２系統によって実行される加工プログラムの一例を示す図である。この加工プログラムは、加工ユニット＄１２による加工から５軸加工ユニットである加工ユニット＄１７への加工ユニットの交換処理を含んでいる。図２１の加工プログラムのブロックN200においては、「G140  X=X12  Y=Y12  Z=Z12」が記述されている。制御ユニット＃３は、N200の次のブロック以降を実行することで、加工ユニット＄１２のＸ１２軸、Ｙ１２軸およびＺ１２軸を駆動制御し、ワークに対し例えばドリル加工を実行する。
【０１１６】
図２１の加工プログラムのブロックN210には、M100が記述されている。このM100によって、前述と同様にして、加工ユニット＄１２から加工ユニット＄１７への自動交換が行われる。N210の次のブロックには、軸交換指令としての「G140  X=X17  Y=Y17  Z=Z17  A=A17  B=B17」が記述されている。図１６に示したように、G140で指定されたＸ１７軸、Ｙ１７軸、Ｚ１７軸、Ａ１７軸およびＢ１７軸は、制御ユニット＃２によって駆動される。したがって、制御ユニット＃３は、M100による加工ユニットの交換（加工ユニット＄１２から加工ユニット＄１７への交換）の終了後に、実施の形態１と同様の処理を実行することで、Ｘ１７軸、Ｙ１７軸、Ｚ１７軸、Ａ１７軸およびＢ１７軸の制御権要求を共有エリア３２５を介して制御ユニット＃２に送信する。Ｘ１７軸、Ｙ１７軸、Ｚ１７軸、Ａ１７軸およびＢ１７軸の制御権要求に対する許可信号OKを共有エリア３２５を介して制御ユニット＃２から受信すると、制御ユニット＃３は、「G140  X=X17  Y=Y17  Z=Z17  A=A17  B=B17」が記述されているブロックの次のブロック以降を解析し、解析結果としての位置指令PIを共有エリア３２５を介して制御ユニット＃２に送信する。制御ユニット＃２では、共有エリア２２５を介して受信した位置指令PIを解析処理部２４０を介して５軸制御演算部２７０に渡す。５軸制御演算部２７０は、５軸の座標変換演算を行い、演算結果をワークエリア２２４を介して補間処理部２５０に渡す。これにより、加工ユニット＄１７のＸ１７軸、Ｙ１７軸、Ｚ１７軸、Ａ１７軸およびＢ１７軸が駆動制御され、５軸加工が実行される。
【０１１７】
図２１の加工プログラムのブロックN220には、M101が記述されている。N220の次のブロックには、軸交換指令としての「G140  X=X12  Y=Y12  Z=Z12」が記述されている。制御ユニット＃３は、M101による加工ユニット交換（加工ユニット＄１７から加工ユニット＄１２への交換）の終了後に、「G140  X=X12  Y=Y12  Z=Z12」が記述されているブロックの次のブロック以降を解析し、解析結果に基づき加工ユニット＄１２のＸ１２軸、Ｙ１２軸およびＺ１２軸を駆動制御する。この駆動制御によって次のワークに対する加工が実行される。このようにして、加工ユニットの交換を行い、一連の工程に例えば、５軸加工が追加される。
【０１１８】
５軸制御演算部１７０、２７０、３７０での５軸演算処理は、他の加工に比べ多くの演算時間を要する。また、或る制御ユニットが他の制御ユニットに比べ、処理負荷が高いという状況が発生する可能性がある。例えば、制御ユニット＃１および制御ユニット＃２が５つの系統に接続され、制御ユニット＃３が１つの系統に接続されている場合、制御ユニット＃１および制御ユニット＃２は、制御ユニット＃３に比べ、処理負荷が高い。このような状況を考慮し、各制御ユニットの共有エリアに各制御ユニットの負荷状況を確認できる負荷確認フィールドを設けるようにしてもよい。
【０１１９】
各制御ユニット＃１、＃２、＃３の５軸制御演算部１７０、２７０、３７０は、自制御ユニットの処理負荷を確認し、処理負荷が低い場合は、自制御ユニットの５軸制御演算部で５軸座標変換処理を行い、座標変換結果を、ワークエリア１２４、２２４、３３４を介して、補間処理部１５０、２５０、３５０に渡して、５軸加工動作を行う。
【０１２０】
一方、自制御ユニットの処理負荷が或る閾値より高い場合、各制御ユニット＃１、＃２、＃３の５軸制御演算部１７０、２７０、３７０は、共有エリアの負荷確認フィールドを参照して、他の制御ユニットの負荷状況を判定する。各制御ユニット＃１、＃２、＃３の５軸制御演算部１７０、２７０、３７０は、この判定によって、他のユニットに比べ処理負荷が低い制御ユニットを識別する。そして、各制御ユニット＃１、＃２、＃３の５軸制御演算部１７０、２７０、３７０は、共有エリアを介して、処理負荷が低い制御ユニットに対し、５軸演算データを渡す。共有エリアを介して５軸演算データを受け取った制御ユニットの５軸制御演算部は、５軸座標変換処理を実行し、座標変換結果を、共有エリアを介して、要求元の制御ユニットに返す。要求元の制御ユニットの５軸制御演算部は、受け取った座標変換結果をワークエリアを介して、補間処理部に渡して、５軸加工動作を行う。
【０１２１】
このように実施の形態４では、加工ユニットを５軸加工機械へ交換後に制御ユニット間で軸交換を行うようにしており、機械を止めること無く継続して、５軸加工を含む一連の加工が可能となる。
【０１２２】
実施の形態５．
図２２は、実施の形態５の数値制御装置３０００を示す図である。実施の形態５の数値制御装置３０００においては、制御ユニット＃１、＃２および＃３の外部に、記憶装置９００を設けている。記憶装置９００は、第１通信路５２０または第２通信路５３０に接続されており、制御ユニット＃１、＃２および＃３がアクセス可能な共有エリアとして機能する。実施の形態５においては、記憶装置９００を使って、前述した軸交換のための制御データの交換を制御ユニット＃１、＃２および＃３間で行う。記憶装置９００にストアされる制御データは、前述した軸交換のための制御権要求信号、応答信号を含む。前記制御データとして、各軸の制御を行うための位置指令、位置フィードバック信号を含ませてもよい。制御ユニット＃１、＃２および＃３内の共有エリア１２５，２２５および３２５は、軸交換のための制御データの交換のためには使用されず、他の用途のために使用される。
【０１２３】
記憶装置９００は、例えば、３つの領域９００#1，９００#2，および９００#3を有する。第１領域９００#1は、制御ユニット＃１が各軸の制御権要求信号を書き込むための領域であって、制御ユニット＃２,＃３がその応答信号を書き込むための領域である。第２領域９００#2は、制御ユニット＃２が各軸の制御権要求信号を書き込むための領域であって、制御ユニット＃１,＃３がその応答信号を書き込むための領域である。第３領域９００#3は、制御ユニット＃３が各軸の制御権要求信号を書き込むための領域であって、制御ユニット＃１,＃２がその応答信号を書き込むための領域である。制御ユニット＃１,＃２，＃３は、各領域９００#1，９００#2，および９００#3に、データが書き込まれたか否かを定期的に監視している。
【０１２４】
第１領域９００#1に、制御ユニット＃１が制御権を取得した軸の位置指令を書き込み、第２領域９００#2に、制御ユニット＃２が制御権を取得した軸の位置指令を書き込み、第３領域９００#3に、制御ユニット＃３が制御権を取得した軸の位置指令を書き込むようにしてもよい。また、第１領域９００#1に、制御ユニット＃１の実軸（Ｘ１軸，Ｃ１軸，Ｘ２軸，Ｚ２軸，Ｃ２軸）の位置フィードバック信号を書き込み、第２領域９００#2に、制御ユニット＃２の実軸（Ｘ３軸，Ｚ３軸，Ｃ３軸，Ｘ４軸，Ｚ４軸，Ｃ４軸）の位置フィードバック信号を書き込み、第３領域９００#3に、制御ユニット＃３の実軸（Ｘ５軸，Ｚ５軸，Ｃ５軸，Ｘ６軸，Ｚ６軸，Ｃ６軸）の位置フィードバック信号を書き込むようにしてもよい。領域９００#1，９００#2，および９００#3の記憶形態として、図５に示した制御データのフォーマットを採用する場合は、第１領域９００#1を領域Ａ#1に対応させ、第２領域９００#2を領域Ｂ#2に対応させ、第３領域９００#3を領域Ｃ#3に対応させればよい。
【０１２５】
例えば、制御ユニット＃１が、制御ユニット＃２の実軸であるＣ３軸の制御権を要求する場合、Ｃ３軸の制御権要求信号を第１領域９００#1に書き込む。制御ユニット＃２は、第１領域９００#1に書き込まれたＣ３軸の制御権要求信号を検出すると、実施の形態１と同様にして、Ｃ３軸の状態を判定する。制御ユニット＃２は、制御権要求されたＣ３軸の受渡しが可能と判定すると、第１領域９００#1に、Ｃ３軸の受渡しを許可する信号を書き込む。制御ユニット＃１は、第１領域９００#1に書き込まれた許可信号によって、Ｃ３軸の制御権の取得を把握する。
【０１２６】
このように実施の形態５では、各制御ユニットの外部に配した記憶装置９００を使って軸交換のための制御権要求、応答信号の送受信を行うようにしたので、実施の形態１と同様、簡単で、機械構成の変更または制御構成の変更への自由度の高い軸交換制御が可能となる。また、３つ以上の制御ユニットを持つ数値制御装置に対しても、簡単な設定で軸交換を実現できる。
【０１２７】
なお、実施の形態１〜実施の形態４の共有エリア１２５，２２５，３２５にストアする記憶データのフォーマット、あるいは実施の形態５の記憶装置９００にストアする記憶データのフォーマットに関しては、図５に示したものに限らず、他の任意のフォーマットを採用してもよい。
【０１２８】
また、前述した実施の形態２〜実施の形態４に実施の形態５を適用してもよい。例えば、実施の形態３が適用される場合、制御ユニット＃３は、旋削加工ユニット＄１６のＸ１６軸およびＺ１６軸の制御権要求を記憶装置９００を介して制御ユニット＃１に送信する。制御ユニット＃１は、制御権要求に対する応答信号を記憶装置９００を介して制御ユニット＃３に送信する。
【０１２９】
また、実施の形態１〜実施の形態４では、共有エリア１２５，２２５，３２５を制御ユニット＃１，＃２，＃３の内部に設けたが、共有エリア１２５，２２５，３２５を制御ユニットの外部に設けてもよい。この場合も、共有エリア１２５，２２５，３２５は、実施の形態１〜実施の形態４と同様、基本的には、同じ制御データがストアされている状態となるように制御され、共有エリア１２５については、制御ユニット＃１のみがアクセス可能で、共有エリア２２５については、制御ユニット＃２のみがアクセス可能で、共有エリア３２５については、制御ユニット＃３のみがアクセス可能となっている。
【０１３０】
また、上記実施の形態１〜５においては、例えば、制御ユニット＃１が他の制御ユニット＃２または＃３に接続された軸を制御する場合、位置指令を他の制御ユニットに送るようにしたが、補間処理部１５０での補間処理結果を他の制御ユニットに送るようにしてもよい。
【０１３１】
以上の実施の形態に示した構成は、本発明の内容の一例を示すものであり、別の公知の技術と組み合わせることも可能であるし、本発明の要旨を逸脱しない範囲で、構成の一部を省略、変更することも可能である。
【符号の説明】
【０１３２】
１２０，２２０，３２０  記憶部、１２５，２２５，３２５  共有エリア、１４０，２４０，３４０  解析処理部、１４１，２４１，３４１  軸交換解析部、１５０，２５０，３５０  補間処理部、１６０，２６０，３６０  軸交換処理部、１６５，２６５，３６５  データ転送部、１７０，２７０，３７０  ５軸制御演算部、１８０，２８０，３８０  駆動部、６００  加工機械、７００  加工機械、１０００，２０００  数値制御装置。
【要約】
第１制御ユニット＃１は、加工プログラムに、第２制御ユニット＃２によって駆動される第２系統軸２８０ａが指定された軸交換指令がある場合、第２系統軸２８０ａに対する制御権要求を共有エリア１２５に書き込み、共有エリア１２５に書き込まれた第２制御ユニット＃２からの応答に基づいて、第２系統軸２８０ａの制御権取得を判定する。簡単で機械構成の変更または制御構成の変更への自由度の高い軸交換制御を実現する。【図１】
0006498362.tif 000002
【図２】
0006498362.tif 000003
【図３】
0006498362.tif 000004
【図４】
0006498362.tif 000005
【図５】
0006498362.tif 000006
【図６】
0006498362.tif 000007
【図７】
0006498362.tif 000008
【図８】
0006498362.tif 000009
【図９】
0006498362.tif 000010
【図１０】
0006498362.tif 000011
【図１１】
0006498362.tif 000012
【図１２】
0006498362.tif 000013
【図１３】
0006498362.tif 000014
【図１４】
0006498362.tif 000015
【図１５】
0006498362.tif 000016
【図１６】
0006498362.tif 000017
【図１７】
0006498362.tif 000018
【図１８】
0006498362.tif 000019
【図１９】
0006498362.tif 000020
【図２０】
0006498362.tif 000021
【図２１】
0006498362.tif 000022
【図２２】
0006498362.tif 000023