(57)【特許請求の範囲】
【請求項１】
マスター軸の位置にスレーブ軸の位置を同期させて追従させる数値制御装置であって、
マスター軸の位置とスレーブ軸の位置との位置関係を定義した位置テーブルと、
前記位置テーブルにしたがって、前記スレーブ軸の位置が前記マスター軸の位置に同期して追従するように、前記スレーブ軸を駆動制御するスレーブ軸同期制御部と、
所定の条件が成立する前記スレーブ軸を前記マスター軸の親として決定する親決定部と、
指令位置に基づいて前記マスター軸を駆動制御し、前記親決定部によって前記マスター軸の親となる前記スレーブ軸が決定された場合は、前記位置テーブルにしたがって、前記マスター軸の位置が、親として決定された前記スレーブ軸の位置に同期して追従するように、前記マスター軸を駆動制御するマスター軸制御部と、
を備えることを特徴とする数値制御装置。
【請求項２】
請求項１に記載の数値制御装置であって、
前記所定の条件が成立するスレーブ軸は、故障によって停止する前記スレーブ軸である
ことを特徴とする数値制御装置。
【請求項３】
請求項１または２に記載の数値制御装置であって、
前記スレーブ軸同期制御部は、前記マスター軸に複数の前記スレーブ軸が同期する場合に、前記親決定部によって前記マスター軸の親となる前記スレーブ軸が決定された場合は、親として決定された前記スレーブ軸以外の前記スレーブ軸の位置が前記マスター軸の位置に同期して追従するように、親として決定された前記スレーブ軸以外の前記スレーブ軸を駆動制御する
ことを特徴とする数値制御装置。
【請求項４】
請求項１〜３のいずれか１項に記載の数値制御装置であって、
前記スレーブ軸同期制御部は、前記マスター軸の位置情報を取得し、前記マスター軸の位置情報と前記位置テーブルとを用いて、前記スレーブ軸の位置が前記マスター軸の位置に同期して追従するように、前記スレーブ軸を駆動制御する
ことを特徴とする数値制御装置。
【請求項５】
請求項１〜４のいずれか１項に記載の数値制御装置であって、
前記マスター軸制御部は、親として決定された前記スレーブ軸の位置情報を取得し、取得した前記スレーブ軸の位置情報と前記位置テーブルとを用いて、前記マスター軸の位置が親として決定された前記スレーブ軸の位置に同期して追従するように、前記マスター軸を駆動制御する
ことを特徴とする数値制御装置。
【請求項６】
請求項１〜５のいずれか１項に記載の数値制御装置であって、
前記マスター軸制御部は、前記親決定部によって前記マスター軸の親となる前記スレーブ軸が決定された場合であって、前記位置テーブルに、親として決定された前記スレーブ軸の位置に対応する前記マスター軸の同期位置が複数ある場合は、現在の前記マスター軸の位置に近い前記同期位置を前記マスター軸の位置として決定する
ことを特徴とする数値制御装置。
【請求項７】
マスター軸の位置に複数のスレーブ軸の位置を同期させて追従させる数値制御装置であって、
予めマスター軸の位置と複数のスレーブ軸の位置との位置関係を定義した位置テーブルと、
前記位置テーブルにしたがって、前記複数のスレーブ軸の位置が前記マスター軸の位置に同期して追従するように、前記複数のスレーブ軸を駆動制御するスレーブ軸同期制御部と、
前記複数のスレーブ軸のうち、所定の条件が成立する１つの前記スレーブ軸を前記マスター軸の親として決定する親決定部と、
前記位置テーブルにしたがって、前記マスター軸を仮想的に構築した仮想軸が、親として決定された前記スレーブ軸の位置に同期して追従するように、前記仮想軸の位置を決定する仮想軸位置決定部と、
を備え、
前記スレーブ軸同期制御部は、前記親決定部によって前記マスター軸の親となる前記スレーブ軸が決定された場合は、前記位置テーブルにしたがって、親として決定された前記スレーブ軸以外の前記スレーブ軸の位置が、前記仮想軸の位置に同期して追従するように、親として決定された前記スレーブ軸以外の前記スレーブ軸を駆動制御する
ことを特徴とする数値制御装置。
【請求項８】
請求項７に記載の数値制御装置であって、
前記所定の条件が成立する１つのスレーブ軸は、故障によって停止する前記スレーブ軸である
ことを特徴とする数値制御装置。
【請求項９】
請求項７または８に記載の数値制御装置であって、
前記仮想軸位置決定部は、前記親決定部によって前記マスター軸の親となる前記スレーブ軸が決定された場合であって、前記位置テーブルに、親として決定された前記スレーブ軸の位置に対応する前記マスター軸の同期位置が複数ある場合は、現在の前記仮想軸の位置に近い前記同期位置を前記仮想軸の位置として決定する
ことを特徴とする数値制御装置。
【請求項１０】
マスター軸の位置にスレーブ軸の位置を同期させて追従させる同期追従制御方法であって、
指令位置に基づいて前記マスター軸を駆動制御するマスター軸駆動制御ステップと、
前記マスター軸の位置と前記スレーブ軸の位置との位置関係を予め定義した位置テーブルにしたがって、前記スレーブ軸の位置が前記マスター軸の位置に同期して追従するように、前記スレーブ軸を駆動制御するスレーブ軸同期制御ステップと、
所定の条件が成立する前記スレーブ軸を前記マスター軸の親として決定する親決定ステップと、
前記親決定ステップによって前記マスター軸の親となる前記スレーブ軸が決定された場合は、前記位置テーブルにしたがって、前記マスター軸の位置が、親として決定された前記スレーブ軸の位置に同期して追従するように、前記マスター軸を駆動制御するマスター軸同期制御ステップと、
を備えることを特徴とする同期追従制御方法。
【請求項１１】
請求項１０に記載の同期追従制御方法であって、
前記所定の条件が成立するスレーブ軸は、故障によって停止する前記スレーブ軸である
ことを特徴とする同期追従制御方法。
【請求項１２】
請求項１０または１１に記載の同期追従制御方法であって、
前記スレーブ軸同期制御ステップは、前記マスター軸に複数の前記スレーブ軸が同期する場合に、前記親決定ステップによって前記マスター軸の親となる前記スレーブ軸が決定された場合は、親として決定された前記スレーブ軸以外の前記スレーブ軸の位置が前記マスター軸の位置に同期して追従するように、親として決定された前記スレーブ軸以外の前記スレーブ軸を駆動制御する
ことを特徴とする同期追従制御方法。
【請求項１３】
請求項１０〜１２のいずれか１項に記載の同期追従制御方法であって、
前記マスター軸同期制御ステップは、前記親決定ステップによって前記マスター軸の親となる前記スレーブ軸が決定された場合であって、前記位置テーブルに、親として決定された前記スレーブ軸の位置に対応する前記マスター軸の同期位置が複数ある場合は、現在の前記マスター軸の位置に近い前記同期位置を前記マスター軸の位置として決定する
ことを特徴とする同期追従制御方法。
【請求項１４】
マスター軸の位置に複数のスレーブ軸の位置を同期させて追従させる同期追従制御方法であって、
前記マスター軸の位置と前記複数のスレーブ軸の位置との位置関係を予め定義した位置テーブルにしたがって、前記複数のスレーブ軸の位置が前記マスター軸の位置に同期して追従するように、前記複数のスレーブ軸を駆動制御するスレーブ軸同期制御ステップと、
前記複数のスレーブ軸のうち、所定の条件が成立する１つの前記スレーブ軸を前記マスター軸の親として決定する親決定ステップと、
前記位置テーブルにしたがって、前記マスター軸を仮想的に構築した仮想軸が、親として決定された前記スレーブ軸の位置に同期して追従するように、前記仮想軸の位置を決定する仮想軸位置決定ステップと、
を備え、
前記スレーブ軸同期制御ステップは、前記親決定ステップによって前記マスター軸の親となる前記スレーブ軸が決定された場合は、親として決定された前記スレーブ軸以外の前記スレーブ軸の位置が、前記仮想軸の位置に同期して追従するように、親として決定された前記スレーブ軸以外の前記スレーブ軸を駆動制御する
ことを特徴とする同期追従制御方法。
【請求項１５】
請求項１４に記載の同期追従制御方法であって、
前記所定の条件が成立する１つのスレーブ軸は、故障によって停止する前記スレーブ軸である
ことを特徴とする同期追従制御方法。
【請求項１６】
請求項１４または１５に記載の同期追従制御方法であって、
前記仮想軸位置決定ステップは、前記親決定ステップによって前記マスター軸の親となる前記スレーブ軸が決定された場合であって、前記位置テーブルに、親として決定された前記スレーブ軸の位置に対応する前記マスター軸の同期位置が複数ある場合は、現在の前記仮想軸の位置に近い前記同期位置を前記仮想軸の位置として決定する
ことを特徴とする同期追従制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、マスター軸の位置にスレーブ軸の位置を同期させて追従させる数値制御装置および同期追従制御方法に関する。
【背景技術】
【０００２】
板金などの被加工部材を金型に嵌め込んで加工するプレス機においては、被加工部材のプレス機への搬入、搬出を行うトランスファー装置を使用する場合がある。このような、プレス機およびトランスファー装置で構成されるシステムにおいては、マスター軸となるプレス機の位置に同期して、トランスファー装置の３次元で規定されるＸＹＺの３軸のスレーブ軸を駆動させる。
【０００３】
下記に示す特許文献１には、マスター軸に同期させて１軸以上のスレーブ軸を移動させる数値制御装置が開示されている。具体的には、移動指令が与えられた１軸をマスター軸、マスター軸以外の軸をスレーブ軸とし、移動指令をコピーして得られた移動指令をスレーブ軸に与えるというものである。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特許第３７２０８２５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
周辺装置やワークなどがスレーブ軸の経路上に残留し、障害物となってしまった場合、そのスレーブ軸のマスター軸との同期制御を中止し、そのスレーブ軸（以下、回避スレーブ軸と呼ぶ）を直ちに停止させたり、退避方向へ移動させたりすることで、障害物との衝突を回避する。この場合、回避スレーブ軸と回避スレーブ軸以外の軸とは非同期状態となってしまうため、マスター軸とスレーブ軸とが干渉したり、他の装置と干渉したりしてしまう場合がある。
【０００６】
また、サーボアンプの故障などの要因によってスレーブ軸を駆動させるサーボモータの励磁が落ちた場合は、そのスレーブ軸（以下、制御不能スレーブ軸と呼ぶ）は惰性により動いた後停止する。この場合は、制御不能スレーブ軸以外の軸（マスター軸やスレーブ軸）が動き続けると制御不能スレーブ軸が制御不能スレーブ軸以外の軸の動作に干渉してしまうため、制御不能スレーブ軸以外の軸も励磁を落として停止させる、または、励磁を落とさずに減速停止させる必要がある。
【０００７】
全軸の励磁が落ちる場合は、各軸が惰性で動作して停止するため、同期制御を行うことができない。また、制御不能スレーブ軸以外の軸を、励磁を落とさずに停止させる場合でも、制御不能スレーブ軸と制御不能スレーブ軸以外の軸とは非同期状態となってしまう。マスター軸とスレーブ軸とが非同期状態になると、マスター軸とスレーブ軸とが干渉したり、他の装置と干渉したりしてしまう場合がある。また、上記特許文献１に記載の発明でも、このような問題に対処することはできない。
【０００８】
そこで、本発明は、障害物の回避のためにスレーブ軸を意図的に停止または移動させる場合や故障によってスレーブ軸が停止する場合でも、全軸の同期状態を維持する数値制御装置および同期追従制御方法を提供することを目的とする。
【課題を解決するための手段】
【０００９】
第１の本発明は、数値制御装置であって、マスター軸の位置とスレーブ軸の位置との位置関係を定義した位置テーブルと、前記位置テーブルにしたがって、前記スレーブ軸の位置が前記マスター軸の位置に同期して追従するように、前記スレーブ軸を駆動制御するスレーブ軸同期制御部と、前記スレーブ軸を前記マスター軸の親として決定する親決定部と、指令位置に基づいて前記マスター軸を駆動制御し、前記親決定部によって前記マスター軸の親となる前記スレーブ軸が決定された場合は、前記位置テーブルにしたがって、前記マスター軸の位置が、親として決定された前記スレーブ軸の位置に同期して追従するように、前記マスター軸を駆動制御するマスター軸制御部と、を備える。
【００１０】
この構成により、スレーブ軸を停止または移動させる場合であっても、マスター軸とスレーブ軸との同期状態を維持させることができる。したがって、マスター軸とスレーブ軸とが干渉することを防止することができる。
【００１１】
第１の本発明は、数値制御装置であって、前記親決定部は、前記スレーブ軸が故障によって停止する場合に、その前記スレーブ軸を前記マスター軸の親として決定してもよい。
【００１２】
これにより、スレーブ軸が故障によって停止する場合であっても、マスター軸とスレーブ軸との同期状態を維持させることができる。したがって、マスター軸とスレーブ軸とが干渉することを防止することができる。
【００１３】
第１の本発明は、前記数値制御装置であって、前記スレーブ軸同期制御部は、前記マスター軸に複数の前記スレーブ軸が同期する場合に、前記親決定部によって前記マスター軸の親となる前記スレーブ軸が決定された場合は、親として決定された前記スレーブ軸以外の前記スレーブ軸の位置が前記マスター軸の位置に同期して追従するように、親として決定された前記スレーブ軸以外の前記スレーブ軸を駆動制御してもよい。
【００１４】
これにより、複数のスレーブ軸のうち、１つのスレーブ軸を意図的に停止または移動させる場合でも、故障によって停止する場合でも、全ての軸（マスター軸および複数のスレーブ軸）の同期状態を維持させることができる。したがって、マスター軸と複数のスレーブ軸とが干渉したり、他の装置、部材と干渉したりすることを防止することができる。例えば、全てのスレーブ軸で１つの部材を駆動させている場合に、１つのスレーブ軸が故障によって停止する場合であっても、その部材を正しい移動経路で動作させることができる。
【００１５】
第１の本発明は、前記数値制御装置であって、前記スレーブ軸同期制御部は、前記マスター軸の位置情報を取得し、前記マスター軸の位置情報と前記位置テーブルとを用いて、前記スレーブ軸の位置が前記マスター軸の位置に同期して追従するように、前記スレーブ軸を駆動制御してもよい。これにより、スレーブ軸のマスター軸への同期制御を適切に行うことができ、マスター軸とスレーブ軸との干渉を防止することができる。
【００１６】
第１の本発明は、前記数値制御装置であって、前記マスター軸制御部は、親として決定された前記スレーブ軸の位置情報を取得し、取得した前記スレーブ軸の位置情報と前記位置テーブルとを用いて、前記マスター軸の位置が親として決定された前記スレーブ軸の位置に同期して追従するように、前記マスター軸を駆動制御してもよい。これにより、マスター軸の親として決定されたスレーブ軸への同期制御を適切に行うことができ、マスター軸とスレーブ軸との干渉を防止することができる。
【００１７】
第１の本発明は、前記数値制御装置であって、前記マスター軸制御部は、前記親決定部によって前記マスター軸の親となる前記スレーブ軸が決定された場合であって、前記位置テーブルに、親として決定された前記スレーブ軸の位置に対応する前記マスター軸の同期位置が複数ある場合は、現在の前記マスター軸の位置に近い前記同期位置を前記マスター軸の位置として決定してもよい。これにより、マスター軸の親として決定されたスレーブ軸への同期制御を適切に行うことができ、マスター軸とスレーブ軸との干渉を防止することができる。
【００１８】
第２の本発明は、数値制御装置であって、予めマスター軸の位置と複数のスレーブ軸の位置との位置関係を定義した位置テーブルと、前記位置テーブルにしたがって、前記複数のスレーブ軸の位置が前記マスター軸の位置に同期して追従するように、前記複数のスレーブ軸を駆動制御するスレーブ軸同期制御部と、前記複数のスレーブ軸のうち、１つの前記スレーブ軸を前記マスター軸の親として決定する親決定部と、前記位置テーブルにしたがって、前記マスター軸を仮想的に構築した仮想軸が、親として決定された前記スレーブ軸の位置に同期して追従するように、前記仮想軸の位置を決定する仮想軸位置決定部と、を備え、前記スレーブ軸同期制御部は、前記親決定部によって前記マスター軸の親となる前記スレーブ軸が決定された場合は、前記位置テーブルにしたがって、親として決定された前記スレーブ軸以外の前記スレーブ軸の位置が、前記仮想軸の位置に同期して追従するように、親として決定された前記スレーブ軸以外の前記スレーブ軸を駆動制御する。このとき、仮想軸の構築時、その仮想軸の位置はその時点でのマスター軸の位置とする。
【００１９】
この構成により、マスター軸が別の制御装置で駆動制御されている場合であって、スレーブ軸を停止または移動させる場合であっても、全てのスレーブ軸の同期状態を維持することができる。つまり、マスター軸が別の制御装置で駆動制御されている場合は、停止させるスレーブ軸をマスター軸の親にすることができず、全てのスレーブ軸同士での同期状態が崩れてしまうが、マスター軸の仮想軸を構築することで、全てのスレーブ軸同士での同期状態を維持することができる。その結果、全てのスレーブ軸で１つの部材を駆動させている場合に、１つのスレーブ軸を停止させる場合であっても、その部材を正しい移動経路で動作させることができる。
【００２０】
第２の本発明は、数値制御装置であって、前記親決定部は、故障によって停止する１つの前記スレーブ軸を前記マスター軸の親として決定してもよい。
【００２１】
これより、マスター軸が別の制御装置で駆動制御されている場合であって、１つのスレーブ軸が故障によって停止する場合であっても、全てのスレーブ軸の同期状態を維持することができる。
【００２２】
第２の本発明は、前記数値制御装置であって、前記仮想軸位置決定部は、前記親決定部によって前記マスター軸の親となる前記スレーブ軸が決定された場合であって、前記位置テーブルに、親として決定された前記スレーブ軸の位置に対応する前記マスター軸の同期位置が複数ある場合は、現在の前記仮想軸の位置に近い前記同期位置を前記仮想軸の位置として決定してもよい。これにより、仮想軸の位置の親として決定されたスレーブ軸への同期制御を適切に行うことができ、全てのスレーブ軸の同期状態を維持することができる。
【００２３】
第３の本発明は、マスター軸の位置にスレーブ軸の位置を同期させて追従させる同期追従制御方法であって、指令位置に基づいて前記マスター軸を駆動制御するマスター軸駆動制御ステップと、前記マスター軸の位置と前記スレーブ軸の位置との位置関係を予め定義した位置テーブルにしたがって、前記スレーブ軸の位置が前記マスター軸の位置に同期して追従するように、前記スレーブ軸を駆動制御するスレーブ軸同期制御ステップと、前記スレーブ軸を前記マスター軸の親として決定する親決定ステップと、前記親決定ステップによって前記マスター軸の親となる前記スレーブ軸が決定された場合は、前記位置テーブルにしたがって、前記マスター軸の位置が、親として決定された前記スレーブ軸の位置に同期して追従するように、前記マスター軸を駆動制御するマスター軸同期制御ステップと、を備える。
【００２４】
この構成により、スレーブ軸を停止または移動させる場合であっても、マスター軸とスレーブ軸との同期状態を維持させることができる。したがって、マスター軸とスレーブ軸とが干渉することを防止することができる。
【００２５】
第３の本発明は、前記同期追従制御方法であって、前記親決定ステップは、前記スレーブ軸が故障によって停止する場合に、その前記スレーブ軸を前記マスター軸の親として決定してもよい。
【００２６】
これにより、スレーブ軸が故障によって停止する場合であっても、マスター軸とスレーブ軸との同期状態を維持させることができる。したがって、マスター軸とスレーブ軸とが干渉することを防止することができる。
【００２７】
第３の本発明は、前記同期追従制御方法であって、前記スレーブ軸同期制御ステップは、前記マスター軸に複数の前記スレーブ軸が同期する場合に、前記親決定ステップによって前記マスター軸の親となる前記スレーブ軸が決定された場合は、親として決定された前記スレーブ軸以外の前記スレーブ軸の位置が前記マスター軸の位置に同期して追従するように、親として決定された前記スレーブ軸以外の前記スレーブ軸を駆動制御してもよい。
【００２８】
これにより、複数のスレーブ軸のうち、１つのスレーブ軸を意図的に停止または移動させる場合でも、故障によって停止する場合でも、全ての軸（マスター軸および複数のスレーブ軸）の同期状態を維持させることができる。したがって、マスター軸と複数のスレーブ軸とが干渉したり、他の装置、部材と干渉したりすることを防止することができる。例えば、全てのスレーブ軸で１つの部材を駆動させている場合に、１つのスレーブ軸が故障によって停止する場合であっても、その部材を正しい移動経路で動作させることができる。
【００２９】
第３の本発明は、前記同期追従制御方法であって、前記マスター軸同期制御ステップは、前記親決定ステップによって前記マスター軸の親となる前記スレーブ軸が決定された場合であって、前記位置テーブルに、親として決定された前記スレーブ軸の位置に対応する前記マスター軸の同期位置が複数ある場合は、現在の前記マスター軸の位置に近い前記同期位置を前記マスター軸の位置として決定してもよい。これにより、マスター軸の親として決定されたスレーブ軸への同期制御を適切に行うことができ、マスター軸とスレーブ軸との干渉を防止することができる。
【００３０】
第４の本発明は、マスター軸の位置に複数のスレーブ軸の位置を同期させて追従させる同期追従制御方法であって、前記マスター軸の位置と前記複数のスレーブ軸の位置との位置関係を予め定義した位置テーブルにしたがって、前記複数のスレーブ軸の位置が前記マスター軸の位置に同期して追従するように、前記複数のスレーブ軸を駆動制御するスレーブ軸同期制御ステップと、前記複数のスレーブ軸のうち、１つの前記スレーブ軸を前記マスター軸の親として決定する親決定ステップと、前記位置テーブルにしたがって、前記マスター軸を仮想的に構築した仮想軸が、親として決定された前記スレーブ軸の位置に同期して追従するように、前記仮想軸の位置を決定する仮想軸位置決定ステップと、を備え、前記スレーブ軸同期制御ステップは、前記親決定ステップによって前記マスター軸の親となる前記スレーブ軸が決定された場合は、親として決定された前記スレーブ軸以外の前記スレーブ軸の位置が、前記仮想軸の位置に同期して追従するように、親として決定された前記スレーブ軸以外の前記スレーブ軸を駆動制御する。このとき、仮想軸の構築時、その仮想軸の位置はその時点でのマスター軸の位置とする。
【００３１】
この構成により、マスター軸が別の制御装置で駆動制御されている場合であって、スレーブ軸を停止または移動させる場合であっても、全てのスレーブ軸の同期状態を維持することができる。つまり、マスター軸が別の制御装置で駆動制御されている場合は、停止させるスレーブ軸をマスター軸の親にすることができず、全てのスレーブ軸同士での同期状態が崩れてしまうが、マスター軸の仮想軸を構築することで、全てのスレーブ軸同士での同期状態を維持することができる。その結果、全てのスレーブ軸で１つの部材を駆動させている場合に、１つのスレーブ軸を停止させる場合であっても、その部材を正しい移動経路で動作させることができる。
【００３２】
第４の本発明は、前記同期追従制御方法であって、前記親決定ステップは、故障によって停止する１つの前記スレーブ軸を前記マスター軸の親として決定してもよい。
【００３３】
これより、マスター軸が別の制御装置で駆動制御されている場合であって、１つのスレーブ軸が故障によって停止する場合であっても、全てのスレーブ軸の同期状態を維持することができる。
【００３４】
第４の本発明は、前記同期追従制御方法であって、前記仮想軸位置決定ステップは、前記親決定ステップによって前記マスター軸の親となる前記スレーブ軸が決定された場合であって、前記位置テーブルに、親として決定された前記スレーブ軸の位置に対応する前記マスター軸の同期位置が複数ある場合は、現在の前記仮想軸の位置に近い前記同期位置を前記仮想軸の位置として決定してもよい。これにより、仮想軸の位置の親として決定されたスレーブ軸への同期制御を適切に行うことができ、全てのスレーブ軸の同期状態を維持することができる。
【発明の効果】
【００３５】
本発明によれば、１つのスレーブ軸を意図的に停止または移動させる場合でも、故障によって停止する場合でも、全軸の同期状態を維持することができる。
【図面の簡単な説明】
【００３６】
【図１】第１の実施の形態における数値制御装置の構成を示す機能ブロック図である。
【図２】図１に示す位置テーブルに格納されている情報の一例を示す図である。
【図３】図２に示す位置テーブルに記憶されたマスター軸の位置とマスター軸の親として決定されたスレーブ軸の位置との関係の一例をグラフ化した図である。
【図４】図２に示す位置テーブルに記憶されたマスター軸の位置とマスター軸の親として決定されたスレーブ軸の位置との関係の一例（別の例）をグラフ化した図である。
【図５】第２の実施の形態における数値制御装置の構成を示す機能ブロック図である。
【発明を実施するための形態】
【００３７】
本発明に係る数値制御装置および同期追従制御方法について、好適な実施の形態を掲げ、添付の図面を参照しながら以下、詳細に説明する。
【００３８】
［第１の実施の形態］
図１は、第１の実施の形態における、数値制御装置１０の構成を示す機能ブロック図である。数値制御装置１０は、コンピュータとプログラムが記憶された記憶媒体とを有し、コンピュータがプログラムを実行することで、本第１の実施の形態の数値制御装置として機能する。数値制御装置１０は、複数のサーボアンプ１２ｍ、１２ｓ（１２ｓ１〜１２ｓ３）を介して、複数のサーボモータ１４ｍ、１４ｓ（１４ｓ１〜１４ｓ３）を駆動制御するものである。サーボモータ１４ｍはマスター軸Ｍを駆動させるサーボモータであり、サーボモータ１４ｓ（１４ｓ１〜１４ｓ３）はスレーブ軸Ｓ（Ｓ１〜Ｓ３）を駆動させるサーボモータである。なお、本第１の実施の形態においては、スレーブ軸Ｓの数を３つとするが、１つでも２つでもよく、また４つ以上であってもよい。この場合は、スレーブ軸Ｓの数と同じ数だけサーボアンプ１２ｓおよびサーボモータ１４ｓを設ければよい。
【００３９】
第１の実施の形態において、マスター軸Ｍの位置という場合は、サーボモータ１４ｍの回転位置（例えば、７２０度などの基準位置からの回転角度位置）またはサーボモータ１４ｍによって駆動する部材の位置とする。また、スレーブ軸Ｓ１の位置という場合は、サーボモータ１４ｓ１の回転位置（例えば、５４０度などの基準位置からの回転角度位置）またはサーボモータ１４ｓ１によって駆動する部材の位置とする。同様に、スレーブ軸Ｓ２の位置という場合は、サーボモータ１４ｓ２の回転位置またはサーボモータ１４ｓ２によって駆動する部材の位置とし、スレーブ軸Ｓ３の位置という場合は、サーボモータ１４ｓ３の回転位置またはサーボモータ１４ｓ３によって駆動する部材の位置とする。また、各サーボモータ１４ｓ（１４ｓ１〜１４ｓ３）による部材の駆動方向は、互いに直交するＸ軸方向、Ｙ軸方向、Ｚ軸方向であってもよい。さらに、３つのサーボモータ１４ｓ１〜１４ｓ３によって駆動する部材は同一部材であってもよい。この場合は、３つのサーボモータ１４ｓ１〜１４ｓ３によって同一の部材がＸ軸方向、Ｙ軸方向、Ｚ軸方向に移動する。
【００４０】
例えば、コンベアとコンベアで搬送される箱の中に物を詰める箱詰め機とで構成される箱詰めシステムでは、コンベアで運ばれる箱の位置に合せて箱詰め機のアームを駆動させる同期制御を行う必要がある。この場合は、コンベアを駆動させる軸がマスター軸Ｍとなり、箱詰め機のアームを駆動させる複数の軸が複数のスレーブ軸Ｓとなる。また、プレス機とプレス機にワークを搬入・搬出するトランファー装置とで構成されるプレスシステムでは、プレス機の動作に合せてトランスファー装置を駆動させる同期制御を行う必要がある。この場合は、プレス機を駆動させる軸がマスター軸Ｍとなり、トランスファー装置を駆動させる複数の軸が複数のスレーブ軸Ｓとなる。
【００４１】
数値制御装置１０は、指令位置算出部２０、マスター軸制御部２２、位置テーブル２４、スレーブ軸同期制御部２６、および、親決定部２８を備える。指令位置算出部２０は、加工プログラムを解析することによって、マスター軸Ｍの位置を指令する指令位置ＣＰを算出し、算出した指令位置ＣＰをマスター軸制御部２２に出力する。指令位置算出部２０は、オペレータによる操作を解析して指令位置ＣＰを算出してもよい。なお、加工プログラムは、数値制御装置１０の図示しない記憶媒体に記憶されている。また、指令位置算出部２０は、算出した指令位置ＣＰをスレーブ軸同期制御部２６に出力してもよい。
【００４２】
マスター軸制御部２２は、指令位置ＣＰに基づいてマスター軸Ｍを駆動制御する。具体的には、マスター軸制御部２２は、サーボアンプ１２ｍを介してサーボモータ１４ｍを制御することで、マスター軸Ｍを駆動制御する。サーボモータ１４ｍには、エンコーダなどの検出器３０ｍが設けられており、検出器３０ｍが検出した位置情報Ｓｍに基づいてサーボモータ１４ｍはフィードバック制御される。この検出器３０ｍが検出した位置情報Ｓｍは、数値制御装置１０に出力される。この位置情報Ｓｍからマスター軸Ｍの位置を特定することができる。
【００４３】
位置テーブル２４には、マスター軸Ｍの位置（同期位置）と３つのスレーブ軸Ｓ１〜Ｓ３の位置（同期位置）との位置関係が定義された情報が格納されている。つまり、位置テーブル２４には、スレーブ軸Ｓ１〜Ｓ３のマスター軸Ｍへの同期制御を行うために、複数のマスター軸Ｍの位置の各々に対応付けて３つのスレーブ軸Ｓ１〜Ｓ３の位置が記憶されている。
【００４４】
図２は、位置テーブル２４に格納されている情報の一例を示す図である。図２に示すように、ポイント１におけるマスター軸Ｍの位置、および、スレーブ軸Ｓ１〜Ｓ３の位置はともに「０．０００」となっている。また、ポイント２におけるマスター軸Ｍの位置は「１０．０００」、スレーブ軸Ｓ１の位置は「５．０００」、スレーブ軸Ｓ２の位置は「０．０００」、スレーブ軸Ｓ３の位置は「９．０００」となっている。ポイント３におけるマスター軸Ｍの位置は「２０.０００」、スレーブ軸Ｓ１の位置は「９．０００」、スレーブ軸Ｓ２の位置は「６．０００」、スレーブ軸Ｓ３の位置は「１２．０００」となっている。このように、位置テーブル２４は、マスター軸Ｍの位置と３つのスレーブ軸Ｓ１〜Ｓ３の位置との対応関係を定義している。なお、図２に示す例では、ポイント間における線分波形の情報も記憶されている。例えば、ポイント１とポイント２との間の線分波形が直線である旨の情報、ポイント２とポイント３との間の線分波形およびポイント３とポイント４との間の線分波形が変形正弦である旨の情報も記憶されている。
【００４５】
スレーブ軸同期制御部２６は、位置テーブル２４にしたがって、３つのスレーブ軸Ｓ１〜Ｓ３の位置がマスター軸Ｍの位置に同期して追従するように、３つのスレーブ軸Ｓ１〜Ｓ３を駆動制御する。スレーブ軸同期制御部２６は、マスター軸Ｍの位置情報と位置テーブル２４とを用いて、３つのスレーブ軸Ｓ１〜Ｓ３を駆動制御する。このマスター軸Ｍの位置情報は、検出器３０ｍが検出したサーボモータ１４ｍの位置情報Ｓｍであってもよいし、マスター軸Ｍを直接検出する図示しない検出器による位置情報であってもよいし、また指令位置算出部２０が算出したマスター軸Ｍの指令位置ＣＰであってもよい。要は、マスター軸Ｍの位置がわかる情報であればよい。検出器３０ｍが検出したサーボモータ１４ｍの位置情報Ｓｍやマスター軸Ｍを直接検出する図示しない検出器による位置情報によって現在のマスター軸Ｍの位置がわかり、指令位置ＣＰによってこれから移動するマスター軸Ｍの位置がわかる。いずれにしろ、位置情報Ｓｍまたは指令位置ＣＰを用いることでスレーブ軸Ｓ１〜Ｓ３の位置をマスター軸Ｍの位置に同期させて追従させることができる。
【００４６】
具体的には、スレーブ軸同期制御部２６は、マスター軸Ｍの位置情報から対応する各スレーブ軸Ｓ１〜Ｓ３の位置を位置テーブル２４から取得する。スレーブ軸同期制御部２６は、取得した各スレーブ軸Ｓ１〜Ｓ３の位置に基づいて、サーボアンプ１２ｓ１〜１２ｓ３を介してサーボモータ１４ｓ１〜１４ｓ３を制御することで、スレーブ軸Ｓ１〜Ｓ３を駆動制御する。サーボモータ１４ｓ（１４ｓ１〜１４ｓ３）には、エンコーダなどの検出器３０ｓ（３０ｓ１〜３０ｓ３）が設けられており、サーボアンプ１２ｓ（１２ｓ１〜１２ｓ３）は、該検出器３０ｓ（３０ｓ１〜３０ｓ３）が検出した位置情報Ｓｓ（Ｓｓ１〜Ｓｓ３）に基づいてサーボモータ１４ｓ（１４ｓ１〜１４ｓ３）はフィードバック制御される。この検出器３０ｓ１〜３０ｓ３が検出した位置情報Ｓｓ１〜Ｓｓ３は、数値制御装置１０に出力される。この位置情報Ｓｓ１〜Ｓｓ３からスレーブ軸Ｓ１〜Ｓ３の位置を特定することができる。
【００４７】
図２に示すように、例えば、マスター軸Ｍの位置が「２０．０００」の場合は、スレーブ軸同期制御部２６は、スレーブ軸Ｓ１の位置が「９．０００」、スレーブ軸Ｓ２の位置が「６．０００」、および、スレーブ軸Ｓ３の位置が「１２．０００」となるように、スレーブ軸Ｓ１〜Ｓ３を駆動制御する。このように、マスター軸Ｍとスレーブ軸Ｓ１〜Ｓ３との関係は、親と子の関係にある。つまり、親であるマスター軸Ｍの位置にしたがって子である３つのスレーブ軸Ｓ１〜Ｓ３が駆動する。
【００４８】
親決定部２８は、３つのスレーブ軸Ｓ１〜Ｓ３のうち、マスター軸Ｍの親（祖）となるスレーブ軸Ｓを決定する。親決定部２８は、故障によって停止するスレーブ軸Ｓ（制御不能スレーブ軸Ｓｆと呼ぶ場合がある）をマスター軸Ｍの親として決定する。したがって、親決定部２８は、制御不能スレーブ軸Ｓｆを検出し、検出した制御不能スレーブ軸Ｓｆをマスター軸Ｍの親として決定する。例えば、サーボアンプ１２ｓの故障などの要因によってサーボモータ１４ｓの励磁が落ちる場合は、励磁が落ちた該サーボモータ１４ｓは、惰性により回転した後停止する。そのため、励磁が落ちたサーボモータ１４ｓによって駆動されるスレーブ軸Ｓも惰性により動き、その後停止する。したがって、親決定部２８は励磁が落ちるサーボモータ１４ｓを検出した場合は、このサーボモータ１４ｓによって駆動されるスレーブ軸Ｓ（制御不能スレーブ軸Ｓｆ）を、マスター軸Ｍの親（祖）として決定する。例えば、親決定部２８は、サーボアンプ１２ｓ１の故障などの要因によってサーボモータ１４ｓ１の励磁が落ちる場合は、スレーブ軸Ｓ１（制御不能スレーブ軸Ｓｆ）をマスター軸Ｍの親（祖）として決定する。親決定部２８は、親として決定したスレーブ軸Ｓ（制御不能スレーブ軸Ｓｆ）を示す情報をマスター軸制御部２２およびスレーブ軸同期制御部２６に出力する。
【００４９】
具体的には、親決定部２８は、サーボアンプ１２ｓ１〜１２ｓ３の各々から出力される励磁電流を検出する図示しない電流センサからの出力信号を用いて、制御不能スレーブ軸Ｓｆを検出し、検出した制御不能スレーブ軸Ｓｆをマスター軸Ｍの親として決定してもよい。
【００５０】
なお、説明をわかり易くするために、故障によってスレーブ軸Ｓが停止する場合の例として、サーボアンプ１２ｓの故障により励磁が落ちた例を説明したが、これに限られるものではない。つまり、その他の故障要因によってスレーブ軸Ｓが惰性で動いた後停止する場合も、親決定部２８は、このスレーブ軸Ｓ（制御不能スレーブ軸Ｓｆ）をマスター軸Ｍの親として決定する。
【００５１】
マスター軸制御部２２は、親決定部２８によってマスター軸Ｍの親となる制御不能スレーブ軸Ｓｆが決定されると、位置テーブル２４にしたがって、マスター軸Ｍの位置が、親として決定された制御不能スレーブ軸Ｓｆの位置に同期して追従するように、マスター軸Ｍを駆動制御する。例えば、マスター軸制御部２２は、親決定部２８によって決定されたマスター軸Ｍの親となる制御不能スレーブ軸Ｓｆがスレーブ軸Ｓ１の場合は、位置テーブル２４にしたがって、マスター軸Ｍの位置がスレーブ軸Ｓ１の位置に同期して追従するように、マスター軸Ｍを駆動制御する。つまり、マスター軸制御部２２は、親決定部２８によって親となる制御不能スレーブ軸Ｓｆが決定されると、指令位置算出部２０が算出した指令位置ＣＰに基づくマスター軸Ｍの駆動制御を終了し、制御不能スレーブ軸Ｓｆの位置に基づく同期制御を開始する。これにより、マスター軸Ｍは、制御不能スレーブ軸Ｓｆの駆動と同期して駆動するので、制御不能スレーブ軸Ｓｆと一緒に減速した後停止する。
【００５２】
具体的には、マスター軸制御部２２は、親決定部２８によってマスター軸Ｍの親となる制御不能スレーブ軸Ｓｆの位置情報と位置テーブル２４とを用いて、マスター軸Ｍを駆動制御する。図３は、図２に示す位置テーブル２４に記憶されたマスター軸Ｍの位置とマスター軸Ｍの親として決定されたスレーブ軸Ｓ（制御不能スレーブ軸Ｓｆ）の位置との関係の一例をグラフ化した図である。このように、位置テーブル２４を用いて、制御不能スレーブ軸Ｓｆの位置に対応するマスター軸Ｍの位置（同期位置）を決定することができる。制御不能スレーブ軸Ｓｆの位置情報は、制御不能スレーブ軸Ｓｆを駆動させるサーボモータ１４ｓに設けられた検出器３０ｓの位置情報Ｓｓであってもよい。つまり、制御不能スレーブ軸Ｓｆがスレーブ軸Ｓ１の場合は、検出器３０ｓ１が検出した位置情報Ｓｓ１に基づいて制御不能スレーブ軸Ｓｆ（スレーブ軸Ｓ１）の位置を特定することができる。なお、制御不能スレーブ軸Ｓｆの位置情報がわかる情報であれば位置情報Ｓｓでなくてもよい。
【００５３】
なお、図４に示すように、位置テーブル２４にマスター軸Ｍの親として決定されたスレーブ軸Ｓ（制御不能スレーブ軸Ｓｆ）の位置に対応するマスター軸Ｍの位置が複数ある場合は、現在のマスター軸Ｍの位置に最も近い位置（同期位置）をマスター軸Ｍの位置として決定すればよい。
【００５４】
スレーブ軸同期制御部２６は、親決定部２８によってマスター軸Ｍの親となる制御不能スレーブ軸Ｓｆが決定されると、制御不能スレーブ軸Ｓｆ以外のスレーブ軸Ｓの位置がマスター軸Ｍの位置に同期して追従するように、制御不能スレーブ軸Ｓｆ以外のスレーブ軸Ｓを駆動制御する。したがって、制御不能スレーブ軸Ｓｆが親（祖）、マスター軸Ｍが制御不能スレーブ軸Ｓｆの子、その他のスレーブ軸Ｓ（制御不能スレーブ軸Ｓｆ以外のスレーブ軸Ｓ）がマスター軸Ｍの子という関係になる。例えば、スレーブ軸Ｓ１が制御不能スレーブ軸Ｓｆとして決定された場合は、スレーブ軸同期制御部２６は、スレーブ軸Ｓ２、Ｓ３の位置がマスター軸Ｍの位置に同期して追従するように、スレーブ軸Ｓ２、Ｓ３を駆動制御する。この場合は、制御不能スレーブ軸Ｓｆであるスレーブ軸Ｓ１が親（祖）となり、マスター軸Ｍがスレーブ軸Ｓ１の子となり、スレーブ軸Ｓ２、Ｓ３がマスター軸Ｍの子（スレーブ軸Ｓ１の孫）という関係になる。その結果、マスター軸Ｍは制御不能スレーブ軸Ｓｆと同期して駆動し、制御不能スレーブ軸Ｓｆ以外のスレーブ軸Ｓはマスター軸Ｍと同期して駆動するので、マスター軸Ｍと制御不能スレーブ軸Ｓｆ以外のスレーブ軸Ｓとは、制御不能スレーブ軸Ｓｆと一緒に同期位置関係を保持した状態のまま減速して停止する。
【００５５】
なお、本第１の実施の形態では、説明をわかり易くするために、故障によって自然に停止してしまうスレーブ軸Ｓをマスター軸Ｍの親と決定することとして説明したが、マスター軸Ｍの親とする軸は故障などの要因により停止するスレーブ軸Ｓに限らない。したがって、親決定部２８は、任意のスレーブ軸Ｓをマスター軸Ｍの親となるスレーブ軸Ｓとして決定してもよい。この場合は、マスター軸Ｍの親となるスレーブ軸Ｓは制御不能な軸とは限らないため、そのマスター軸Ｍの親となるスレーブ軸Ｓを停止させても、駆動させてもよく、マスター軸Ｍの親となるスレーブ軸Ｓの動きに応じて、マスター軸Ｍとマスター軸Ｍの親となるスレーブ軸Ｓ以外のスレーブ軸Ｓが同期して駆動することになる。
【００５６】
このように、第１の実施の形態における数値制御装置１０は、指令位置ＣＰに基づいてマスター軸Ｍを駆動制御するマスター軸制御部２２と、マスター軸Ｍの位置と複数のスレーブ軸Ｓの位置との位置関係を定義した位置テーブル２４と、位置テーブル２４にしたがって、複数のスレーブ軸Ｓの位置がマスター軸Ｍの位置に同期して追従するように、複数のスレーブ軸Ｓを駆動制御するスレーブ軸同期制御部２６と、複数のスレーブ軸Ｓのうち、任意の１つのスレーブ軸Ｓをマスター軸Ｍの親として決定する親決定部２８とを備える。そして、マスター軸制御部２２は、親決定部２８によってマスター軸Ｍの親となるスレーブ軸Ｓが決定された場合は、位置テーブル２４にしたがって、マスター軸Ｍの位置が、親として決定されたスレーブ軸Ｓの位置に同期して追従するように、マスター軸Ｍを駆動制御する。
【００５７】
これにより、マスター軸Ｍの親となるスレーブ軸Ｓをマスター軸Ｍに応じた同期制御ではなく、指令により駆動や停止をさせる場合であっても、全ての軸（マスター軸Ｍおよび複数のスレーブ軸Ｓ）の同期状態を維持させることができる。したがって、マスター軸Ｍと複数のスレーブ軸Ｓとが干渉したり、他の装置、部材と干渉したりすることを防止することができる。例えば、全てのスレーブ軸Ｓで１つの部材を駆動させている場合に、１つのスレーブ軸Ｓの経路上に障害物があり、即座に停止させる場合でも、マスター軸Ｍに同期した動きではない動作をさせる場合でも、また、故障によって停止する場合でも、その部材を正しい移動経路で動作させることができる。逆に、全てのスレーブ軸Ｓで１つの部材を駆動させる場合に、全てのスレーブ軸Ｓの各々が非同期状態になると、その部材を正しい移動経路で動作させることができず、予定していない経路を通ることになる。その結果、他の機械や部材と衝突することがあるが、本第１の実施の形態ではそのような問題も生じない。
【００５８】
スレーブ軸同期制御部２６は、親決定部２８によってマスター軸Ｍの親となるスレーブ軸Ｓが決定された場合は、親として決定されたスレーブ軸Ｓ以外のスレーブ軸Ｓの位置がマスター軸Ｍの位置に同期して追従するように、親として決定されたスレーブ軸Ｓ以外のスレーブ軸Ｓを駆動制御する。これにより、マスター軸Ｍの親となるスレーブ軸Ｓを意図的に停止または移動させる場合でも、故障によって停止する場合でも、マスター軸Ｍとマスター軸Ｍの親となるスレーブ軸Ｓ以外のスレーブ軸Ｓとの親子関係をそのまま保つことができる。したがって、全ての軸（マスター軸Ｍおよび複数のスレーブ軸Ｓ）の同期状態を維持させることができる。
【００５９】
スレーブ軸同期制御部２６は、マスター軸Ｍの位置情報を取得し、マスター軸Ｍの位置情報と位置テーブル２４とを用いて、スレーブ軸Ｓの位置がマスター軸Ｍの位置に同期して追従するように、スレーブ軸Ｓを駆動制御する。これにより、スレーブ軸Ｓのマスター軸Ｍへの同期制御を適切に行うことができ、マスター軸Ｍとスレーブ軸Ｓとの干渉を防止することができる。
【００６０】
マスター軸制御部２２は、親として決定されたスレーブ軸Ｓの位置情報を取得し、スレーブ軸Ｓの位置情報と位置テーブル２４とを用いて、マスター軸Ｍの位置が、親として決定されたスレーブ軸Ｓの位置に同期して追従するように、マスター軸Ｍを駆動制御する。これにより、マスター軸Ｍのマスター軸Ｍの親となるスレーブ軸Ｓへの同期制御を適切に行うことができ、マスター軸Ｍとスレーブ軸Ｓとの干渉を防止することができる。
【００６１】
マスター軸制御部２２は、親決定部２８によってマスター軸Ｍの親となるスレーブ軸Ｓが決定された場合であって、位置テーブル２４に、親として決定されたスレーブ軸Ｓの位置に対応するマスター軸Ｍの同期位置が複数ある場合は、現在のマスター軸Ｍの位置に近い同期位置をマスター軸Ｍの位置として決定する。これにより、マスター軸Ｍのマスター軸Ｍの親となるスレーブ軸Ｓへの同期制御を適切に行うことができ、マスター軸Ｍとスレーブ軸Ｓとの干渉を防止することができる。
【００６２】
［第２の実施の形態］
図５は、第２の実施の形態における、数値制御装置１０ａの構成を示す機能ブロック図である。なお、上記第１の実施の形態で説明した構成と同様の構成については同一の符号を付し、異なる部分のみを説明する。数値制御装置１０ａは、位置テーブル２４、スレーブ軸同期制御部２６、親決定部２８、および、仮想軸位置決定部５０を備える。なお、マスター軸Ｍは、数値制御装置１０ａとは別の数値制御装置によって駆動制御されているものとする。
【００６３】
スレーブ軸同期制御部２６は、位置テーブル２４にしたがって、３つのスレーブ軸Ｓ１〜Ｓ３の位置がマスター軸Ｍの位置に同期して追従するように、３つのスレーブ軸Ｓ１〜Ｓ３を駆動制御する。スレーブ軸同期制御部２６は、マスター軸Ｍの位置情報と位置テーブル２４を用いて、３つのスレーブ軸Ｓ１〜Ｓ３を駆動制御する。このマスター軸Ｍの位置情報は、上記第１の実施の形態で説明したマスター軸Ｍを駆動するサーボモータ１４ｍに設けられた検出器３０ｍが検出した位置情報Ｓｍであってもよいし、マスター軸Ｍを直接検出する図示しない検出器による位置情報であってもよいし、また上記第１の実施の形態で説明したマスター軸Ｍを駆動制御するために指令位置算出部２０が算出したマスター軸Ｍの指令位置ＣＰであってもよい。
【００６４】
親決定部２８は、３つのスレーブ軸Ｓ１〜Ｓ３のうち、マスター軸Ｍの親（祖）となるスレーブ軸Ｓを決定する。親決定部２８は、故障によって停止するスレーブ軸Ｓ（制御不能スレーブ軸Ｓｆ）をマスター軸Ｍの親として決定する。したがって、親決定部２８は、制御不能スレーブ軸Ｓｆを検出し、検出した制御不能スレーブ軸Ｓｆをマスター軸Ｍの親として決定する。親決定部２８は、親として決定したスレーブ軸Ｓ（制御不能スレーブ軸Ｓｆ）を示す情報をスレーブ軸同期制御部２６および仮想軸位置決定部５０に出力する。
【００６５】
仮想軸位置決定部５０は、親決定部２８によってマスター軸Ｍの親（祖）となるスレーブ軸Ｓ（制御不能スレーブ軸Ｓｆ）が決定されると、マスター軸Ｍを仮想的に構築する。仮想軸の構築時、その仮想軸の位置はその時点でのマスター軸Ｍの位置とする。そして、仮想軸位置決定部５０は、位置テーブル２４にしたがって、構築したマスター軸Ｍの仮想軸が、親として決定されたスレーブ軸Ｓ（制御不能スレーブ軸Ｓｆ）の位置に同期して追従するように、仮想軸の位置ＶＰを決定する。このとき、位置テーブル２４に、制御不能スレーブ軸Ｓｆの位置に対応するマスター軸Ｍの位置が複数記憶されている場合は、現在の仮想軸の位置ＶＰに最も近い位置（同期位置）を仮想軸の位置ＶＰとして決定すればよい。仮想軸位置決定部５０は、決定した仮想軸の位置ＶＰをスレーブ軸同期制御部２６に出力する。
【００６６】
スレーブ軸同期制御部２６は、親決定部２８によってマスター軸Ｍの親となる制御不能スレーブ軸Ｓｆが決定されると、制御不能スレーブ軸Ｓｆ以外のスレーブ軸Ｓの位置が仮想軸の位置ＶＰに同期して追従するように、制御不能スレーブ軸Ｓｆ以外のスレーブ軸Ｓを駆動制御する。つまり、スレーブ軸同期制御部２６は、親決定部２８によって親となる制御不能スレーブ軸Ｓｆが決定されると、マスター軸Ｍの位置に基づく同期制御を終了し、仮想軸の位置ＶＰに基づく同期制御を開始する。したがって、制御不能スレーブ軸Ｓｆが親（祖）、仮想軸が制御不能スレーブ軸Ｓｆの子、その他のスレーブ軸Ｓが仮想軸の子という関係になる。その結果、仮想軸の位置ＶＰは制御不能スレーブ軸Ｓｆと同期して変動し、制御不能スレーブ軸Ｓｆ以外のスレーブ軸Ｓは仮想軸の位置ＶＰと同期して駆動するので、制御不能スレーブ軸Ｓｆ以外のスレーブ軸Ｓは、制御不能スレーブ軸Ｓｆと一緒に減速して停止する。例えば、スレーブ軸Ｓ１が制御不能スレーブ軸Ｓｆとして決定された場合は、スレーブ軸同期制御部２６は、スレーブ軸Ｓ２、Ｓ３の位置が仮想軸の位置ＶＰに同期して追従するように、スレーブ軸Ｓ２、Ｓ３を駆動制御する。したがって、スレーブ軸Ｓ２、Ｓ３は、制御不能スレーブ軸Ｓｆであるスレーブ軸Ｓ１と一緒に同期位置関係を保持した状態のまま減速して停止する。
【００６７】
第２の実施の形態においては、親決定部２８が、故障によって停止するスレーブ軸Ｓ（制御不能スレーブ軸Ｓｆ）を検出すると、その旨の情報（スレーブ軸Ｓの故障情報）を、マスター軸Ｍを駆動制御している数値制御装置に出力する。マスター軸Ｍを駆動制御している数値制御装置は、スレーブ軸Ｓの故障情報を受け取ると、マスター軸Ｍを退避位置に退避させる。この退避位置は、スレーブ軸Ｓ１〜Ｓ３がどのように駆動しても、マスター軸Ｍがスレーブ軸Ｓ１〜Ｓ３と干渉しない位置である。例えば、マスター軸Ｍがプレス機を駆動させる軸である場合は、プレス機の位置が上死点となるような位置にマスター軸Ｍを駆動させればよい。
【００６８】
また、第２の実施の形態においては、マスター軸Ｍは、数値制御装置１０ａ以外の数値制御装置が駆動制御するようにしたが、数値制御装置１０ａがマスター軸Ｍを駆動制御してもよい。この場合は、数値制御装置１０ａは、図１に示すマスター軸制御部２２を備えることになるが、親決定部２８によってスレーブ軸Ｓの故障が検出されると、マスター軸制御部２２は、マスター軸Ｍを退避位置まで駆動させてもよい。
【００６９】
このように、第２の実施の形態における数値制御装置１０ａは、予めマスター軸Ｍの位置と複数のスレーブ軸Ｓの位置との位置関係を定義した位置テーブル２４と、位置テーブル２４にしたがって、複数のスレーブ軸Ｓの位置がマスター軸Ｍの位置に同期して追従するように、複数のスレーブ軸Ｓを駆動制御するスレーブ軸同期制御部２６と、複数のスレーブ軸Ｓのうち、故障によって停止する１つのスレーブ軸Ｓ（制御不能スレーブ軸Ｓｆ）をマスター軸Ｍの親として決定する親決定部２８と、位置テーブル２４にしたがって、マスター軸Ｍを仮想的に構築した仮想軸が、親として決定されたスレーブ軸Ｓ（制御不能スレーブ軸Ｓｆ）の位置に同期して追従するように、仮想軸の位置ＶＰを決定する仮想軸位置決定部５０とを備える。仮想軸の構築時、その仮想軸の位置はその時点でのマスター軸Ｍの位置とする。そして、スレーブ軸同期制御部２６は、親決定部２８によってマスター軸Ｍの親となるスレーブ軸Ｓ（制御不能スレーブ軸Ｓｆ）が決定された場合は、位置テーブル２４にしたがって、親として決定されたスレーブ軸Ｓ（制御不能スレーブ軸Ｓｆ）以外のスレーブ軸Ｓの位置が、仮想軸の位置ＶＰに同期して追従するように、親として決定されたスレーブ軸Ｓ（制御不能スレーブ軸Ｓｆ）以外のスレーブ軸Ｓを駆動制御する。
【００７０】
これにより、マスター軸Ｍが別の数値制御装置で駆動制御されている場合であって、制御不能スレーブ軸Ｓｆが故障によって停止する場合であっても、全てのスレーブ軸Ｓの同期状態を維持することができる。つまり、マスター軸Ｍが別の数値制御装置で駆動制御されている場合は、制御不能スレーブ軸Ｓｆをマスター軸Ｍの親にすることができず、全てのスレーブ軸Ｓの同期状態が崩れてしまうが、マスター軸Ｍの仮想軸を構築することで、全てのスレーブ軸Ｓの同期状態を維持することができる。その結果、全てのスレーブ軸Ｓで１つの部材を駆動させている場合に、１つの制御不能スレーブ軸Ｓｆが故障によって停止する場合であっても、その部材を正しい移動経路で動作させることができる。逆に、全てのスレーブ軸Ｓで１つの部材を駆動させる場合に、全てのスレーブ軸Ｓの各々が非同期状態になると、その部材を正しい移動経路で動作させることができず、予定していない経路を通ることになる。その結果、他の機械や部材と衝突することがあるが、本第２の実施の形態ではそのような問題も生じない。
【００７１】
仮想軸位置決定部５０は、親決定部２８によってマスター軸Ｍの親となるスレーブ軸Ｓが決定された場合であって、位置テーブル２４に、親として決定されたスレーブ軸Ｓの位置に対応するマスター軸Ｍの同期位置が複数ある場合は、現在の仮想軸の位置ＶＰに近い同期位置を仮想軸の位置ＶＰとして決定する。これにより、仮想軸の位置ＶＰの制御不能スレーブ軸Ｓｆへの同期制御を適切に行うことができ、全てのスレーブ軸Ｓの同期状態を維持することができる。
【００７２】
なお、第２の実施の形態においても、故障によって自然に停止してしまうスレーブ軸Ｓをマスター軸Ｍの親と決定することとして説明したが、マスター軸Ｍの親とするスレーブ軸Ｓは故障などの要因により停止するスレーブ軸Ｓに限らない。したがって、親決定部２８は、任意のスレーブ軸Ｓをマスター軸Ｍ（仮想軸）の親となるスレーブ軸Ｓとして決定してもよい。この場合は、マスター軸Ｍの親となるスレーブ軸Ｓは制御不能な軸とは限らないため、そのマスター軸Ｍの親となるスレーブ軸Ｓを停止させても、駆動させてもよく、マスター軸Ｍの親となるスレーブ軸Ｓの動きに応じて、マスター軸Ｍとマスター軸Ｍの親となるスレーブ軸Ｓ以外のスレーブ軸Ｓが同期して駆動することになる。
【００７３】
また、上記各実施の形態では、親決定部２８は、故障によって停止するスレーブ軸Ｓ（制御不能スレーブ軸Ｓｆ）を検出したが、３つのスレーブ軸Ｓ１〜Ｓ３が設けられた機械が制御不能スレーブ軸Ｓｆを検出してよい。この場合は、３つのスレーブ軸Ｓ１〜Ｓ３が設けられた機械が検出した制御不能スレーブ軸Ｓｆを示す情報（アラーム情報）を親決定部２８に送信し、親決定部２８は、アラーム情報に基づいて制御不能スレーブ軸Ｓｆをマスター軸Ｍの親として決定する。また、マスター軸Ｍの親とする軸を任意のスレーブ軸Ｓとする場合は、親決定部２８にマスター軸Ｍの親としたいスレーブ軸Ｓを通知することで、決定する。
【符号の説明】
【００７４】
１０、１０ａ…数値制御装置              １２ｍ、１２ｓ１〜１２ｓ３…サーボアンプ
１４ｍ、１４ｓ１〜１４ｓ３…サーボモータ
２０…指令位置算出部                    ２２…マスター軸制御部
２４…位置テーブル                      ２６…スレーブ軸同期制御部
２８…親決定部                          ３０ｍ、３０ｓ１〜３０ｓ３…検出器
５０…仮想軸位置決定部                  ＣＰ…指令位置
Ｍ…マスター軸                          Ｓ、Ｓ１〜Ｓ３…スレーブ軸
Ｓｍ、Ｓｓ１〜Ｓｓ３…位置情報          ＶＰ…仮想軸の位置
【図１】
0006441257.tif 000002
【図２】
0006441257.tif 000003
【図３】
0006441257.tif 000004
【図４】
0006441257.tif 000005
【図５】
0006441257.tif 000006