(57)【特許請求の範囲】
【請求項１】
マスタ軸と、該マスタ軸の位置に対応して位置決めされるスレーブ軸を有する機械の同期制御方法において、
前記マスタ軸の位置と前記スレーブ軸変位を関係付ける基準変数を設け、
該基準変数に対応する前記スレーブ軸の変位データを登録しておき、
マスタ軸の位置と基準変数の関数関係を設定し、
同期実行区間の開始基準変数と該区間の基準変数領域及びマスタ軸の同期開始位置を指定し、
前記指定したマスタ軸の同期開始位置より、前記指定した同期実行区間の開始基準変数から基準変数に対応するスレーブ軸の変位データに基づいてスレーブ軸を時々刻々変化するマスタ軸の位置に対応させて位置決めする同期制御方法。
【請求項２】
前記同期実行区間は、前記スレーブ軸の変位データとの関係を登録した基準変数の任意の一部あるいは全部を同期実行区間として指定するとともに、
前記指定した同期実行区間の一つないし複数個を任意の順序で指定する請求項１に記載の同期制御方法。
【請求項３】
同期実行区間と合わせて繰り返し回数を指定することにより、繰り返し回数が指定された同期実行区間を指定繰り返し回数だけ繰り返し実行することを特徴とする請求項１または請求項２記載の同期制御方法。
【請求項４】
同期実行区間および繰り返し回数のパターンは複数指定できることを特徴とする請求項３記載の同期制御方法。
【請求項５】
モーションプログラムまたはシーケンスプログラムにより同期実行区間および繰り返し回数を指定することにより、
アプローチ−加工・作業動作−退避の工程によるスレーブ軸の動作パターンの切り換えや、加工物の変更にともない途中からスレーブ軸の動作を変えるアプリケーションにも適用可能としたことを特徴とする請求項１乃至４の内いずれか１項に記載の同期制御方法。
【請求項６】
同期実行区間または繰り返し回数のパターンを複数指定した場合、パターンの切り換え時にスレーブ軸の変位差がある場合は、次のパターンを変位差がなくなるようにスレーブ軸の変位をオフセットし、滑らかに次のパターンへ切り換えることを特徴とする請求項１乃至５の内いずれか１項に記載の同期制御方法。
【請求項７】
同期実行区間または繰り返し回数のパターンを複数指定した場合で、パターンの切り換え時に次のパターンの実行区間が連続していない場合は、次のパターンまで直線的に移動することを特徴とする請求項１乃至５の内いずれか１項に記載の同期制御方法。
【請求項８】
マスタ軸の単位移動量に対する基準変数の変化量を指定して、マスタ軸の移動量に対するスレーブ軸の移動量を変えてマスタ軸の位置に対応してスレーブ軸を位置決めする請求項１乃至７項の内いずれか１項に記載の同期制御方法。
【請求項９】
マスタ軸と、該マスタ軸の位置に対応して位置決めされるスレーブ軸を有する機械の同期制御装置において、
前記マスタ軸の位置と前記スレーブ軸変位を関係付ける基準変数を設け、
該基準変数に対応して前記スレーブ軸の変位データを登録しておく記憶手段と、
１以上の同期実行区間の開始基準変数と各区間の基準変数領域及び各区間のマスタ軸の同期開始位置を指定するモーションプログラムまたはシーケンスプログラムと、
前記指定したマスタ軸の同期開始位置より、前記指定した実行区間の開始基準変数から基準変数に対応するスレーブ軸の変位データに基づいてスレーブ軸を時々刻々変化するマスタ軸の位置に対応させて位置決めする手段と、
を備えたことを特徴とする同期制御装置。
【請求項１０】
前記モーションプログラムまたはシーケンスプログラムにより、マスタ軸の単位移動量に対する基準変数の変化量を指定し、前記位置決めする手段は、マスタ軸の変化量に対して基準変数を指定変化量だけ変化させてスレーブ軸を位置決めする請求項９に記載の同期制御装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
同期制御を行う産業機械、工作機械等の２以上の可動軸を同期運転するための同期制御方法および同期制御装置に関する。
【０００２】
【従来の技術】
従来の同期制御方法では、１つの可動軸をマスタ軸とし、該マスタ軸に同期して他の可動軸をスレーブ軸として駆動制御している。この場合、マスタ軸の位相０°から始まり１回転するまでのマスタ軸の位相に対応してスレーブ軸の変位が決まっている。そのため、スレーブ軸は同じ動作の繰り返ししかできず、機械の状態に合わせて途中からスレーブ軸の動作を変えたり、特定の動作を繰り返したりすることができない。図１は、このマスタ軸が３６０°で１回転する場合のマスタ軸１回転の各位相θに対応したスレーブ軸の変位ｙを表した例である。また、図２は、このマスタ軸の位相θに対応するスレーブ軸の変位ｙを記憶するデータテーブルの説明図である。この図１、図２に示すように、時々刻々変化するマスタ軸の位相θに対応してスレーブ軸の位置ｙを対応する位置に位置決めするようにしている。マスタ軸は通常回転軸で構成され、その回転角が３６０°を越えると０°に戻ることから、まったく同じ動作を繰り返し行うことができる。
【０００３】
また、スレーブ軸の動作がマスタ軸の各回転毎に異なる場合、複数回転の全てのデータを入れる必要があり、データが膨大になる。さらに、別の変位データを呼び出すサブプログラム方式という方法も公知であるが、この方法は、呼び出しのための処理が必要なため、変位データのつなぎ目でパルスが途切れてしまい、変位データのつなぎ目での加工や動作が滑らかにならない欠点がある。
【０００４】
【発明が解決しようとする課題】
上述したように、従来の同期制御方法では、マスタ軸の０度の角度からマスタ軸１回転に合わせてスレーブ軸の位置を同期させるものであることから、マスタ軸の途中、すなわち、機械の状態に合わせて途中からスレーブ軸の動作を変えたり、特定の動作を繰り返したりすることができないという欠点がある。また、繰り返し部分も指定しなければならずデータが膨大になるという問題点もある。
【０００５】
なお、繰り返しデータはサブプログラムにして呼び出す方式、あるいは、データを複数に分割する方式はあるが、データが固定化されてしまい、運転状態を変化させる場合、対応できず融通が効かない。
そこで、本発明は、マスタ軸に対してスレーブ軸を任意のパターンで同期させて移動させることができ、かつ、繰り返しも容易にできるようにした同期制御方法及び装置を提供することにある。
【０００６】
【課題を解決するための手段】
マスタ軸と、該マスタ軸の位置に対応して位置決めされるスレーブ軸を有する機械の同期制御方法において、本願請求項１に係わる発明は、前記マスタ軸の位置と前記スレーブ軸変位を関係付ける基準変数を設け、該基準変数に対応する前記スレーブ軸の変位データを登録しておき、マスタ軸の位置と基準変数の関数関係を設定し、同期実行区間の開始基準変数と該区間の基準変数領域及びマスタ軸の同期開始位置を指定し、前記指定したマスタ軸の同期開始位置より、前記指定した同期実行区間の開始基準変数から基準変数に対応するスレーブ軸の変位データに基づいてスレーブ軸を時々刻々変化するマスタ軸の位置に対応させて位置決めするものである。
また、請求項２に係わる発明は、前記同期実行区間を、前記スレーブ軸の変位データとの関係を登録した基準変数の任意の一部あるいは全部を同期実行区間として指定するとともに、前記指定した同期実行区間の一つないし複数個を任意の順序で指定するものとした。請求項３に係わる発明は、同期実行区間と合わせて繰り返し回数を指定することにより、繰り返し回数が指定された同期実行区間を指定繰り返し回数だけ繰り返し実行することができるようにした。請求項４に係わる発明は、同期実行区間および繰り返し回数のパターンを複数指定できるものとした。
請求項５に係わる発明は、モーションプログラムまたはシーケンスプログラムにより同期実行区間および繰り返し回数を指定することにより、アプローチ−加工・作業動作−退避の工程によるスレーブ軸の動作パターンの切り換えや、加工物の変更にともない途中からスレーブ軸の動作を変えるアプリケーションにも適用可能とした。さらに、請求項６に係わる発明は、同期実行区間または繰り返し回数のパターンを複数指定した場合、パターンの切り換え時にスレーブ軸の変位差がある場合は、次のパターンを変位差がなくなるようにスレーブ軸の変位をオフセットし、滑らかに次のパターンへ切り換えるようにし、請求項７に係わる発明は、次のパターンまで直線的に移動するようにした。請求項８に係わる発明は、マスタ軸の単位移動量に対する基準変数の変化量を指定して、マスタ軸の移動量に対するスレーブ軸の移動量を変えてマスタ軸の位置に対応してスレーブ軸を位置決めするようにした。
【０００７】
請求項９に係わる発明は、マスタ軸と、該マスタ軸の位置に対応して位置決めされるスレーブ軸を有する機械の同期制御装置において、前記マスタ軸の位置と前記スレーブ軸変位を関係付ける基準変数を設け、該基準変数に対応して前記スレーブ軸の変位データを登録しておく記憶手段と、１以上の同期実行区間の開始基準変数と各区間の基準変数領域及び各区間のマスタ軸の同期開始位置を指定するモーションプログラムまたはシーケンスプログラムと、前記指定したマスタ軸の同期開始位置より、前記指定した実行区間の開始基準変数から基準変数に対応するスレーブ軸の変位データに基づいてスレーブ軸を時々刻々変化するマスタ軸の位置に対応させて位置決めする手段とを備えたことを特徴とする同期制御装置である。また、請求項１０に係わる発明は、前記モーションプログラムまたはシーケンスプログラムにより、マスタ軸の単位移動量に対する基準変数の変化量を指定し、前記位置決めする手段は、マスタ軸の変化量に対して基準変数を指定変化量だけ変化させてスレーブ軸を位置決めする同期制御装置とした。
【０００８】
【発明の実施の形態】
図３は、本発明の一実施形態におけるスレーブ軸の変位状態を表す図である。本発明においては、マスタ軸の位置とスレーブ軸変位を関係付ける基準変数ｘを設け、スレーブ軸変位ｙはこの基準変数ｘの関数として設定登録される。図３に示すような基準変数ｘに対するスレーブ軸の変位ｙは、図４に示すようなデータテーブルＤＴに格納記憶される。
【０００９】
また、マスタ軸の位置θ（マスタ軸の位置は０度から３６０＝０度までの角度としており，以下位相という）と基準変数ｘは、リニアな関係に設定するもので、例えば、マスタ軸位相θが０度のとき基準変数ｘは０、マスタ軸位相θが５０度のとき基準変数ｘは５０として対応させる。すなわち、マスタ軸位相θと基準変数ｘは対応関係を持たせる。これによって、マスタ軸位相θとこのマスタ軸位相に対応するスレーブ軸変位ｙは、基準変数ｘを媒介して得られることになる。
【００１０】
また、基準変数ｘが「０」から「１０８３」まで変化する間に、スレーブ軸変位ｙが、図３、図４に示すように変化するように設定登録したとき、マスタ軸に同期してスレーブ軸を駆動する場合、基準変数ｘとマスタ軸位相θを対応付けて、基準変数ｘが「０」から「１０８２」まで、１回、またはこれを繰り返して、実行すれば、図１、図２に示した従来の同期制御と同様に、マスタ軸の移動に同期してスレーブ軸が１つのパターンで移動するものとなる。
【００１１】
しかし、本発明においては、図３、図４に示すように、この設定登録された基準変数ｘに対するスレーブ軸変位ｙのパターンを区間わけして、各区間毎の同期制御、各区間の組み合わせによる同期制御、任意に指定された区間の繰り返し同期制御等を実行できるものである。
【００１２】
例えば、マスタ軸とスレーブ軸を同期して加工・作業等を行う場合、アプローチ区間に続いて加工、作業区間があり、最後に退避区間があるような場合、図３、図４に示すように、区間１、区間２、区間３と三つの区間に分け、基準変数ｘが０から１５０までの区間１をアプローチ区間とし、基準変数ｘが１５０から８７２までの区間２を加工、作業動作の区間とし、基準変数ｘが８７２から１０８３までの区間３を退避の区間とし、アプローチ区間の区間１と退避区間の区間３は最初と終わりに夫々１回行い、加工、作業区間の区間２を複数回（例えば１０回）行うような場合で、マスタ軸が３６０°で１回転し、マスタ軸が１回転する間にスレーブ軸の変位データを３６１点使用する場合、つまりマスタ軸１°おきのデータを使用する場合、次のように同期制御のモーションプログラム指令またはシーケンスプログラムの指令で行う。なお、このプログラムをモーションプログラム１という。
【００１３】
Ｇ０５ Ｐ２３０１０ Ｑ０ Ｒ１５０ Ｓ０ Ｔ１ Ｌ１
Ｇ０５ Ｐ２３０１０ Ｑ１５０ Ｒ８７２ Ｓ１５０ Ｔ２ Ｌ１０
Ｇ０５ Ｐ２３０１０ Ｑ８７２ Ｒ１０８３ Ｓ１５０ Ｔ１ Ｌ１
このプログラム指令において、「Ｇ０５ Ｐ２３０１０」は、同期制御コマンドを意味し、「Ｑ」は同期制御実行区間の開始基準変数番号、「Ｒ」は同期制御実行区間の終了基準変数番号、「Ｓ」は同期制御開始位置（マスタ軸の位相）、「Ｔ」は変位データのピッチ、「Ｌ」は繰り返し回数を指定するものである。
【００１４】
このように実行区間の指定は開始基準変数番号と終了基準変数番号をそれぞれＱ，Ｒのアドレスで指定し、またマスタ軸との対応づけとして開始位置（区間の切り換え位置）をマスタ軸の位相で指定する。さらに、同期を開始するマスタ軸の位置(マスタ軸位相)を示すアドレスはＳを使用する。またマスタ軸１回転あたりに使用するスレーブ軸の変位データ点数（この例では３６１点）と、図４に示すデータテーブルＤＴのスレーブ軸変位データの点数を関連付けるためにスレーブ軸変位データのピッチをＴで指定する。例えばＴ１であればスレーブ軸変位データｙのピッチは１となるので基準変数ｘとマスタ軸位相θは１対１に対応する。また、Ｔ２であればスレーブ軸変位データｙのピッチは２となり基準変数ｘの１つおきのスレーブ軸変位データｙとマスタ軸の位相θが対応させられることを意味する。
【００１５】
このモーションプログラムの起動により、マスタ軸が位相０°から＋方向に任意の速度で回転する場合、スレーブ軸は次のように動作する。
・アプローチ工程
区間１（０〜１５０）をマスタ軸位相０°〜１５０°に対するスレーブ軸の変位データとみなして同期制御を１サイクル行う。すなわち、「Ｓ０」であるので、このアプローチ工程の開始のマスタ軸位相は「０°」であり、かつ、「Ｑ０」であることから、このアプローチ工程の開始基準変数が「０」となり、アプローチ工程の開始は、マスタ軸位相は「０°」であり、開始基準変数ｘが「０」のスレーブ軸変位データｙが対応することを意味する。さらに、「Ｔ１」であるから、マスタ軸位相が「１°」変化する毎に基準変数ｘは「１」変化し、スレーブ軸の変位もそれに対応して変化することになる。そして、「Ｒ１５０」で「Ｌ１」であるから、このアプローチ工程の終了は基準変数ｘが「１５０」となったときであり、しかも、このアプローチ工程の区間１の処理は１回のみ行われることとなる。
よって、マスタ軸の位相が０度から１５０度に変化する間に、基準変数ｘは０から１５０まで変化し、それに応じて読み出され指令されるスレーブ軸の変位ｙは図４のデータテーブルＤＴに示すように、０から７０００まで変化することになる。
・加工・作業動作工程
区間２は、「Ｑ１５０」、「Ｒ８７２」であることから、基準変数ｘが１５０から８７２までの区間であり、「Ｔ２」と指令されピッチが２であることから、マスタ軸位相が１度変化する毎に基準変数ｘが１つとび毎に指定され、それに対応するスレーブ軸の変位データｙが読み出され指令されることになる。従って、マスタ軸位相が１５０°、１５１°、１５２°…と変化したとき、基準変数ｘは、１５０、１５２、１５４…と一つおきに指定され、それに対応するスレーブ軸変位ｙが指令されることになる。よって、マスタ軸位相１５０°〜３６０°〜１５０°のマスタ軸の１回転で、基準変数は１５０から８７２まで変化して、夫々のスレーブ軸変位データｙが出力される。そして、「Ｌ１０」とプログラムされているから、マスタ軸が駆動され、このマスタ軸位相１５０°〜３６０°〜１５０°、対応する基準変数ｘの１５０〜８７２が指定され、この基準変数ｘに対して設定されているスレーブ軸変位データｙの７０００〜７０００の位置にスレーブ軸が夫々駆動されて区間２の処理の同期制御が１０サイクル行われることになる。
・退避工程
区間３では、マスタ軸位相θが１５０°から基準変数ｘの８７２スレーブ軸変位データｙが読み出され、マスタ軸位相θが１°増加する毎に基準変数ｘも１増加して、スレーブ軸変位データｙが読み出される。この動作処理を１回だけ実施する。
【００１６】
ここでは説明の簡略上、マスタ軸が位相０°から＋方向に回転するとしたが、スタート位置は３６０°内のどこからでもよい。マスタ軸の位相が開始位置に達するまでは、スレーブ軸は停止したままとなる。また上述した例では、＋方向を前提にアプローチ−加工・作業動作−退避という工程の動作を行うようにしたものであるが、マスタ軸を−方向に回転しても同期制御は行わせることができる。この場合には、−方向に回転することを考慮した変位データテーブルＤＴを作成しておく必要がある。
【００１７】
以上のように、マスタ軸位相θに対する基準変数ｘに対応させて区間を設定できることから、図４に示すようなデータテーブルＤＴがある場合、このデータテーブルＤＴを利用して、任意の区間を指定して、マスタ軸に同期されてスレーブ軸をこのデータテーブルＤＴで設定された変位に移動させることができるものとなる。
【００１８】
図５は、図３で区間２の一部分を区間４として、これを加工工程２としたときの説明図であり、図６は、図４に示したデータテーブルＤＴにおいて、各区間１〜４を示す図である。そこで、区間１のアプローチ処理を実行した後、区間２の加工処理１をピッチ２で１０回行い、次に区間４の加工処理２をピッチ１で５回行い、その後、区間３の退避工程を実行するものとすると、同期制御のモーションプログラム指令またシーケンスプログラム指令は次のようになる。なお、このプログラムをモーションプログラム２という。
0003665008.tif 000002
このモーションプログラムの起動により、マスタ軸が位相０°から＋方向に任意の速度で回転する場合、スレーブ軸は次のように動作する。
・アプローチ工程
区間１の基準変数ｘが０〜１５０に対して設定されているスレーブ軸変位データｙをマスタ軸位相０°〜１５０°に対するスレーブ軸の変位データとみなして同期制御を１サイクル行う。
・加工工程１
区間２の基準変数ｘが１５０〜８７２に対して設定されているスレーブ軸変位データｙをマスタ軸位相１５０°〜３６０°〜１５０°に対するスレーブ軸の変位データとみなして同期制御を１０サイクル行う。ただし変位データはピッチが２なので一つおきに読み取られる。
・加工工程２
区間４の基準変数ｘが２００〜５６１に対して設定されているスレーブ軸変位データｙをマスタ軸位相１５０°〜３６０°〜１５０°に対するスレーブ軸の変位データとみなして同期制御を５サイクル行う。このときのピッチは１なのでマスタ軸の位相に１対１対応する。
【００１９】
ここで、区間２の終点と区間４の始点は段差が生じており変位データが連続していない。この場合は区間４の始点での変位データが区間２の終点での変位データと等しくなるように区間４すべての変位データを負の方向にシフトする。
【００２０】
さらに区間４の終点は始点と一致していないので、区間４を繰り返し実行するときは、終点まできたらさらに区間４のスレーブ軸の変位ｙを負の方向へシフトして終点と始点を一致させる。従って加工する度にスレーブ軸の変位は負の方向へと落ち込んでいく。
【００２１】
退避工程
区間３の基準変数ｘが８７２〜１０８３に対して設定されているスレーブ軸変位データｙをマスタ軸位相２００°〜３６０°〜５０°に対するスレーブ軸の変位データとみなして同期制御を１サイクル行う。ここで、区間４の終点は１５０°で区間３の始点は２００°なので１５０°〜２００°までの変位データが存在しない。この場合は、マスタ軸位相θが区間３の始点に達するまで、スレーブ軸を停止して待つか、マスタ軸位相θが区間３の始点に達するまでの間に区間４の終点（１５０°のスレーブ軸変位）と区間３の始点（２００°のスレーブ軸変位）を結ぶ直線上を移動するようにする。
【００２２】
図７は複数のスレーブ軸を制御する制御装置の一構成例を説明するブロック図である。第１スレーブ軸、第２スレーブ軸、第３スレーブ軸は、別個のスレーブ軸とすることも、あるいは、同一のスレーブ軸とすることもできる。
【００２３】
各スレーブ軸について同期制御を適用するか否かの制御は、同期信号によって選択できる。図７において、マスタ軸側は、マスタ軸分配処理部１０ｂと加減速制御部１０ｃとディジタルサーボ回路１０ｄとサーボモータ１０ｅとを備える。加減速制御部１０ｃは、制御部１０ａが備えるマスタ軸分配処理部１０ｂから出力される信号を受けてサーボモータ１０ｅを駆動し、マスタ軸を駆動する。
【００２４】
一方、スレーブ側は、第１，２，３スレーブ分配処理部２１ｂ，２２ｂ，２３ｂと加減速制御部２１ｃ，２２ｃ，２３ｃとディジタルサーボ回路２１ｄ，２２ｄ，２３ｄとサーボモータ２１ｅ，２２ｅ，２３ｅとを備える。第１，２，３スレーブ分配処理部２１ｂ，２２ｂ，２３ｂは、マスタ分配処理部１０ｂから出力される信号を受け、各マスタ軸に応じた信号を形成し加減速制御部２１ｃ，２２ｃ，２３ｃに送る。
【００２５】
第１，２，３スレーブ軸の同期制御の切り替えは、マスタ分配処理部１０ｂと第１，２，３スレーブ分配処理部２１ｂ，２２ｂ，２３ｂとの間に設けた切り替え手段により行うことができ、該切り替えは同期信号のオン，オフで行うことができる。なお、図７の例では、複数のスレーブ軸として３つの場合を示しているが、該例に限らず任意の複数個とすることができる。
【００２６】
また、本発明の同期制御方法は数値制御装置に適用することができる。図８は本発明の同期制御方法及び装置を適用する数値制御装置１００のブロック図である。ＣＰＵ１１は数値制御装置１００を全体的に制御するプロセッサである。ＣＰＵ１１は、ＲＯＭ１２に格納されたシステムプログラムをバス２０を介して読み出し、該システムプログラムに従って数値制御装置全体を制御する。ＲＡＭ１３には一時的な計算データや表示データ及び表示器／ＭＤＩユニット７０を介してオペレータが入力した各種データが格納される。ＣＭＯＳメモリ１４は図示しないバッテリでバックアップされ、数値制御装置１００の電源がオフされても記憶状態が保持される不揮発性メモリとして構成される。ＣＭＯＳメモリ１４中には、インターフェイス１５を介して読み込まれた加工プログラムや表示器／ＭＤＩユニット７０を介して入力された加工プログラム等が記憶される。また、ＲＯＭ１２には、加工プログラムの作成及び編集のために必要とされる編集モードの処理や自動運転のための処理を実施するための各種システムプログラムがあらかじめ書き込まれている。
【００２７】
本発明の同期制御を行うためのデータテーブルＤＴは不揮発性メモリ１４に予め書き込み設定しておく。なお、このデータテーブルＤＴは、各スレーブ軸毎に設定されるものであるが、２つ以上のスレーブ軸が同一動作を行うものであれば、データテーブルＤＴは、これらに対して１つ設ければよい。
【００２８】
インターフェイス１５は、数値制御装置１００とアダプタ等の外部機器７２との接続を可能とするものである。外部機器７２側からは加工プログラムが読み込まれる。また、数値制御装置１００内で編集した加工プログラムは、外部機器７２を介して外部記憶手段に記憶させることができる。ＰＭＣ（プログラマブル・マシン・コントローラ）１６は、数値制御装置１００に内蔵されたシーケンスプログラムで工作機械の補助装置（例えば、工具交換用のロボットハンドといったアクチュエータ）にＩ／Ｏユニット１７を介して信号を出力し制御する。また、工作機械の本体に配備された操作盤の各種スイッチ等の信号を受け、必要な信号処理をした後、ＣＰＵ１１に渡す。なお、機械側からの信号を、本発明の同期信号として用いることができる。
【００２９】
表示器／ＭＤＩユニット７０はディスプレイやキーボード等を備えた手動データ入力装置であり、インターフェイス１８は表示器／ＭＤＩユニット７０のキーボードからの指令，データを受けてＣＰＵ１１に渡す。インターフェイス１９は手動パルス発生器等が設けられた操作盤７１に接続されている。
【００３０】
各軸の軸制御回路３０〜３３はＣＰＵ１１からの各軸の移動指令量を受けて、各軸の指令をサーボアンプ４０〜４３に出力する。サーボアンプ４０〜４３はこの指令を受けて、各軸のサーボモータ５０〜５３を駆動する。各軸のサーボモータ５０〜５３は位置・速度検出器を内蔵し、この位置・速度検出器からの位置。速度フィードバック信号を軸制御回路３０〜３３にフィードバックし、位置・速度のフィードバック制御を行う。なお、図８では、位置・速度のフィードバックについては省略している。
【００３１】
また、スピンドル制御回路６０は主軸回転指令を受け、スピンドルアンプ６１にスピンドル速度信号を出力する。スピンドルアンプ６１はスピンドル速度信号を受けて、主軸モータ６２を指令された回転速度で回転させる。ポジションコーダ６３は、主軸モータ６２の回転に同期して帰還パルスをスピンドル制御回路６０にフィードバックし、速度制御を行う。
【００３２】
マスタ軸をスピンドル軸(スピンドル制御回路６０、スピンドルアンプ６１、スピンドルモータ６２)としても、また、他の軸（軸制御回路３０〜３３，サーボアンプ４０〜４３，及びサーボモータ５０〜５３で駆動される軸）で構成することができ、何れをマスタ軸とし何れをスレーブ軸とするかは、設定により定めることができる。
【００３３】
図９は、上述した数値制御装置が実行する同期制御のフローチャートである。例えば、スピンドル軸をマスタ軸として、他の軸を１以上をスレーブ軸として、同期制御するものとする。この場合、スレーブ軸が２以上ある場合で、各スレーブ軸が異なった動きに同期制御されるときは、図４、図６に示すようなデータテーブルＤＴは、その動きの異なるスレーブ軸分設けられることになる。以下に説明する例では、説明を簡単にするために、スレーブ軸は１つであるとして説明する。
【００３４】
プロセッサ１１は、プログラムの１ブロックを読み(ステップＡ１)、該ブロックで指令されている指令が「Ｇ０５ Ｐ２３０１０」の同期制御指令かを判断し、(ステップＡ２)、この同期制御指令でなければ、フラグＦを「０」にセットし(ステップＡ２１)、このブロックで指令された処理を実行する。
【００３５】
一方、同期制御指令であると、該ブロックで指令されているアドレスＱ，Ｒ，Ｓ，Ｔ，Ｌの指令値を読み出し、アドレスＱの同期実行の開始基準変数番号ｘを開始基準変数Ｓｔｘとして、アドレスＳの同期開始するマスタ軸の位相θを開始位相Ｓｔθとして、アドレスＲで指令された当該区間の終了基準変数を終了基準変数番号Ｅｘとして、アドレスＴで指定された値をピッチＰとして、さらに、アドレスＬに指定された値を繰り返し回数Ｎとして記憶する。また、レジスタＲ（θ）に開始位相Ｓｔθを格納し、レジスタＲ（ｘ）に開始基準変数Ｓｔｘを格納する。
【００３６】
一例として、図５、図６で示すモーションプログラム２を参照して説明する。この例であると、最初のブロックでＳｔｘ＝０、Ｓｔθ＝０、Ｅｘ＝１５０、Ｐ＝１、Ｎ＝１が記憶される。レジスタＲ（θ）には、Ｓｔθ＝０が格納され、レジスタＲ（ｘ）にはＳｔｘ＝０が格納されることになる。なお、マスタ軸のスピンドル軸は、所定の任意の速度で回転させられているものとする。
【００３７】
そして、フラグＦが「１」か判断し、最初は、初期設定またはステップＡ２１の処理で「０」が設定されているから、ステップＡ５に移行し、シフト量Ｈを「０」にセットし、フラグＦを「１」にセットする(ステップＡ６)。
【００３８】
次に、マスタ軸の位相θを読み(ステップＡ７)、該マスタ軸位相θがレジスタＲ（θ）に記憶する同期区間の開始位相(Ｓｔθ)に達したか判断し(ステップＡ８)、達するまでステップＡ７、Ａ８の処理を繰り返し実行する。モーションプログラム２の最初のブロック(区間１)ではＳｔθ＝０であるから、マスタ軸の位相θが「０」に達するまで待ち、達すると、レジスタＲ（ｘ）に記憶する開始基準変数番号Ｓｔｘに対して設定されているスレーブ軸変位ｙを読み取り、該読み出したスレーブ軸変位ｙから記憶するシフト量Ｈ(最初はステップＡ５で「０」が設定されている)を減じて、スレーブ軸の変位を出力する(ステップＡ９)。モーションプログラム２の最初のブロック(区間１)では、基準変数Ｓｔｘ＝０で、対応するスレーブ軸変位ｙ＝０であり、スレーブ軸への出力ｙ0＝０−０＝０が出力される。
【００３９】
次に、レジスタＲ（ｘ）に記憶する値がこの区間の終了基準変数番号Ｅｘに達したか判断し(ステップＡ１０)、達してなければ、基準変数を記憶するレジスタＲ（ｘ）にピッチＰを加算し、マスタ軸位相を記憶するレジスタＲ（θ）に１°を加算する(ステップＡ１１)。そして、マスタ軸位相を記憶するレジスタＲ（θ）が３６０°でなければそのまま、また３６０°となっていれば、該レジスタＲ（θ）を「０」にセットしたあと、ステップＡ８に戻り前述したステップＡ７以下の処理を実行する。レジスタＲ（ｘ）にＰ＝１が加算され、レジスタＲ（θ）に記憶する位相θは１°進められるから、ステップＡ８では１°マスタ軸位相θが１°進んだときＹＥＳとなり、ステップＡ９では、１進んだ基準変数ｘに対するスレーブ軸変位ｙが読み出されることになり、シフト量Ｈ＝０を減じてスレーブ軸変位ｙ0＝ｙが出力される。
【００４０】
以下、レジスタＲ（θ）の記憶値は、０、１、２、３…と進み、これに同期してレジスタＲ（ｘ）も０、１、２、３…と進み、このレジスタＲ（ｘ）に記憶する基準変数ｘに対応したスレーブ軸変位ｙが読み出され、シフト量Ｈを減じたあとスレーブ軸変位として出力される。そして、レジスタＲ（ｘ）＝１５０、レジスタＲ（θ）＝１５０となって、ステップＡ１０で、Ｒ（ｘ）＝Ｅｘ＝１５０と判断されたとき、すなわち区間１が終了したときには、ステップＡ１０からステップＡ１４に移行し、回数Ｎを記憶するレジスタから１を減じて(ステップＡ１４)、該レジスタに記憶する回数Ｎが「０」か判断する(ステップＡ１５)。モーションプログラム２の最初のブロック(区間１)では、回数は１回であるから、Ｎ＝０となりステップＡ１５からステップＡ１に戻り、次のブロックを読む、モーションプログラム２の次のブロックも同期制御指令であり、図５に示す区間２のパターンを１０回繰り返す指令である。ステップＡ３では、Ｓｔｘ＝１５０、Ｓｔθ＝１５０、Ｅｘ＝８７２、Ｐ＝２、Ｎ＝１０が記憶される。レジスタＲ（θ）には、Ｓｔθ＝１５０が格納され、レジスタＲ（ｘ）にはＳｔｘ＝１５０が格納されることになる。
【００４１】
また、フラグＦは「１」にセットされているから、ステップＡ４からステップＡ１９に移行して、開始基準変数番号Ｓｔｘ(＝１５０)として記憶する基準変数に対するスレーブ軸変位ｙを読み出す。この変位をｙｓ（＝７０００）とする。この当該区間(区間２)の開始スレーブ変位ｙｓから、ステップＡ９で求めた１つ前のブロック(区間１)の終了時のスレーブ軸の変位ｙ０（＝７０００）を減じて差を求め、この差をシフト量Ｈとする(ステップＡ２０)。図５の区間１から区間２に移行する際のシフト量Ｈは、Ｈ＝ｙｓ−ｙ０＝７０００−７０００＝０である。
そして、前述したステップＡ７以下の処理を行うが、この区間２では、Ｐ＝２がセットされているので、ステップＡ１１では、レジスタＲ（ｘ）にはＰ＝２が加算されることになる。よって、マスタ軸変位θが１°進む毎に基準変数ｘは２つ進むことになり、マスタ軸変位θが１５０°、１５１°、１５２°……０°……１５０°と変化すると、基準変数ｘを記憶するレジスタＲ（ｘ）の値は、１５０、１５２、１５４…５１０……８７２と１つとびに変化し、その基準変数ｘに対応するスレーブ軸変位ｙが読み出されシフト量Ｈ＝０が減算されてスレーブ軸の変位ｙ0として出力される。
【００４２】
こうして区間２の１回の処理動作が終了し、レジスタＲ（ｘ）の記憶値が終了基準変数番号Ｅｘ＝８７２に達すると、ステップＡ１０からステップＡ１４に移行し、回数Ｎを記憶するレジスタから「１」減じる。この場合Ｎ＝９となる。回数Ｎが「０」でないことからステップＡ１５からステップＡ１６に移行し、ステップＡ３で記憶した開始基準変数番号Ｓｔｘに対応するスレーブ変位ｙｓを読みとり、該スレーブ変位ｙｓから、ステップＡ９で求めたスレーブ変位ｙ0を減じてシフト量Ｈを求める(ステップＡ１７)。区間２の場合、図５、図６に示すように、区間２の開始基準変数番号Ｓｔｘに対するスレーブ軸変位ｙｓは「７０００」で、区間２の終了時におけるスレーブ軸変位ｙ0も「７０００」でありシフト量Ｈは「０」となる。
【００４３】
次に、レジスタＲ（θ）にステップＡ３で記憶したマスタ軸の区間２の開始位相Ｓｔθを格納し、レジスタＲ（ｘ）に区間２の開始基準変数Ｓｔｘを格納し(ステップＡ１８)、ステップＡ７に移行する。
以下、回数Ｎを記憶するレジスタの値が「０」となるまで、ステップＡ７からステップＡ１８の処理を繰り返し実行することになる。このときシフト量Ｈは「０」である。
【００４４】
ステップＡ７からステップＡ１８の区間２の処理を１０回行い、回数Ｎが「０」となると、ステップＡ１に戻り、次のブロックを読む。モーションプログラム２の次のブロックは区間４の処理動作であり、Ｑ＝２００、Ｒ＝５６１，Ｓ＝１５０，Ｔ＝１，Ｌ＝５であるから、基準変数ｘが２００〜５６１までの区間をマスタ軸位相θが１５０°からピッチ１で実行開始し、この区間を５回実行する指令である。この指令が読まれてステップＡ３の処理がなされ、Ｐ＝１、Ｓｔθ＝１５０°、Ｓｔｘ＝２００，Ｅｘ＝５６１，Ｎ＝５，Ｒ（θ）＝１５０°，Ｒ（ｘ）＝２００として記憶される。フラグＦは「１」であるからステップＡ４からステップＡ１９に移行する。
【００４５】
区間１の処理、区間２の１０回の処理ではシフト量Ｈは「０」であるから、この時点でのスレーブ軸変位ｙ0は、区間２の終わり基準変数ｘ＝「８７２」に対応する「７０００」であり、区間４の開始基準変数番号Ｓｔｘは「２００」で、対応するスレーブ軸変位ｙは「１００００」でｙｓ＝１００００となり、ステップＡ２０でシフト量Ｈが、Ｈ＝ｙｓ−ｙ0＝１００００−７０００＝３０００として求められる。
【００４６】
次にステップＡ７以下の処理により、区間４の処理が繰り返し５回実行することになるが、最初の区間処理では、前述したようにシフト量Ｈが「３０００」であり、区間４の開始のマスタ軸位相θは、区間２の終了時のマスタ軸位相１５０と同一であるから、ステップＡ７の読みで直ちにθ＝１５０°が読み出され、レジスタＲ（θ）に記憶する値と一致するから、ステップＡ８からステップＡ９に進み、Ｒ（ｘ）に記憶する基準変数ｘ＝２００のスレーブ軸変位ｙの「１００００」が読み出されるが、これからシフト量Ｈ＝３０００が減じられることにより、スレーブ軸変位ｙ0は、「７０００」となり、区間２の終了時のスレーブ軸変位と等しくなり、区間２と区間４は連続するものとなる。そして、前述したステップＡ７からステップＡ１３の処理が実行され、区間４の１サイクルが実行される。このとき、ステップＡ９でシフト量Ｈが基準変数に対して読み出されたスレーブ軸変位ｙに対して補正されるから、図５において、区間４のスレーブ軸変位のパターンは「３０００」だけ下方向にシフトした形となる。
【００４７】
かくして、区間４の１サイクルが終了し、ステップＡ１４でＮ＝４となり、ステップＡ１６に移行し、当該区間４の開始基準変数番号Ｓｔｘのスレーブ軸変位ｙｓ＝「１００００」が読み出され、該変位ｙｓ＝「１００００」からステップＡ９で求めたスレーブ軸この時点の変位ｙ0が減算されて、シフト量Ｈが求められる(ステップＡ１７)。すなわち、区間４の１サイクルの終了時におけるスレーブ軸変位ｙの値が該区間４の２サイクル目の開始スレーブ軸変位の値となるようにシフト量Ｈが求められるものである。次に、レジスタＲ（θ），Ｒ（ｘ）に区間４のマスタ軸の開始位相Ｓｔθ、開始基準変数Ｓｔｘを格納し(ステップＡ１８)、ステップＡ７以下の処理を実行する。
【００４８】
ステップＡ７からステップＡ１８の処理を繰り返し実行し、区間４の処理を５回実行すると、Ｎ＝０となり、ステップＡ１５からステップＡ１に移行して次のブロックを読む。モーションプログラム２の次のブロックは、区間３の処理を１回実行する処理であり、Ｑ＝８７２，Ｒ＝１０８３，Ｓ＝２００，Ｔ＝１，Ｌ＝１であるから、Ｓｔθ＝２００，Ｓｔｘ＝８７２，Ｅｘ＝１０８３，Ｐ＝１，Ｎ＝１が記憶され、レジスタＲ（θ），Ｒ（ｘ）には、Ｓｔθ＝２００、Ｓｔｘ＝８７２が格納される。そして、ステップＡ１９、Ａ２０で、当該区間３の開始スレーブ軸変位ｙｓから前区間４の終了スレーブ軸変位ｙ0を減じてシフト量Ｈを求め、ステップＡ７以下の処理を実行するが、前区間の区間４の終了時のマスタ軸位相は１５０°であり、当該区間３の開始マスタ軸位相は２００°であるから、該マスタ軸位相θが２００°になるまで、ステップＡ７からステップＡ８の処理が実行され、その間スレーブ軸の移動は停止した状態となる。
【００４９】
マスタ軸位相θが２００°となり、レジスタＲ（θ）に記憶する開始位相２００°と一致すると(ステップＡ８)、前述したステップＡ９以下の処理を実行する。以下、ステップＡ７からステップＡ１３の処理を繰り返し実行し、レジスタＲ（ｘ）の値が当該区間３の終了基準変数番号Ｅｘに達すると、ステップＡ１０からステップＡ１４に移行し、回数Ｎを記憶するレジスタから「１」減算され、該回数が「０」となったことがステップＡ１５で確認されるので、ステップＡ１に戻り次のブロックを読むが、次のブロックが同期制御指令ではない場合には、同期制御は終了し、フラグＦを「０」にセットして（ステップＡ２１）、このブロックで指令された処理を実行する(ステップＡ２２)。
【００５０】
図５、図６で示した実施形態では、区間２の中に区間４を設定してこの区間４を実行するようにしたが、さらに異なったスレーブ軸のマスタ軸に対する同期動作を行われるような場合、そのスレーブ軸の異なった同期パターン部分を異なった基準変数で設定しておき、この基準変数を選択することによって、マスタ軸に対してスレーブ軸を同期制御することができる。例えば、区間１，区間３のアプローチ動作や退避動作は同一でも、加工、作業動作が区間２や区間４のパターンとは異なるパターンを選択して実施するような場合には、さらに異なった基準変数領域に対してスレーブ軸変位のパターンをデータテーブルＤＴに格納しておき、この基準変数領域を選択することによって、さらに別なパターンの区間の加工、作業動作をさせることができる。
【００５１】
なお、上記実施形態では、区間から区間に移行するさい、当該区間の開始時のスレーブ軸変位を前区間の終了時のスレーブ軸変位と一致するようにシフト量Ｈを求めるようにしたが、前区間の終了時のスレーブ軸変位から該区間の開始時のスレーブ軸変位まで直線状に移動させるようにしてもよい。この場合、前区間の終了時のマスタ軸位相と当該区間のマスタ軸開始位相とに差Δθがある場合には、この差分Δθで、前区間の終了時のスレーブ軸変位から該区間の開始時のスレーブ軸変位の差を割り、マスタ軸が１°変化する毎にスレーブ軸の移動量Δｙを求め、前区間の終了時からマスタ軸が１°増加する毎にスレーブ軸の増加移動量Δｙを前区間の終了時のスレーブ軸変位に加算した値をスレーブ軸へ指令とすればよい。また、前区間の終了時のマスタ軸位相と当該区間のマスタ軸開始位相とに差Δθが「０」で、スレーブ軸変位ｙに差Δｙがある場合には、マスタ軸が３６０°回転する間に、この差Δｙだけスレーブ軸を直線的に移動させるようにすればよい。
また、上記実施形態ではマスタ軸変位θが１°ずつ進むような速度でマスタ軸が回転している場合について説明したが、マスタ軸の回転速度は任意で，変動してもよい。その場合はマスタ軸の位相に対応した基準変数ｘに対応するスレーブ軸変位に位置決めされる。
【００５２】
【発明の効果】
スレーブ軸の変位データに基づいて、スレーブ軸を時々刻々変化するマスタ軸の位相に対応する変位に位置決めする同期制御において、モーションプログラムまたはシーケンスプログラムにより実行区間および繰り返し回数を指定することにより、アプローチ−加工・作業動作−退避の工程によるスレーブ軸の動作パターンの切り換えや、加工物の変更にともない途中からスレーブ軸の動作を変えたり、また特定の部分を繰り返すようなアプリケーションにも適用できる。
また、区間を繰り返し実行できるため、同じ動作を繰り返す部分を含む場合はデータ量を削減できる。
別の変位データを呼び出すサブプログラム方式と比較して、同一の変位データ内での動作のため、呼び出しのための処理が不要なため、変位データのつなぎ目でパルスが途切れない処理にすることが容易である。（通常、メインプログラムとサブプログラムの切り替え時にパルスが途切れないようにするのは難しく、工夫が必要である。）
繰り返しや任意の指定区間の運転を可能とすることにより、同じ動作の部分を1ヶ所にまとめられるので、変位データのサイズを小さくできる。
【図面の簡単な説明】
【図１】従来の同期制御におけるマスタ軸１回転の各位相に対応したスレーブ軸の変位を表した例である。
【図２】図１に示した従来の同期制御におけるこのマスタ軸の位相に対応するスレーブ軸の変位を記憶するデータテーブルの説明図である。
【図３】本発明の一実施形態における基準変数に対するスレーブ軸の変位状態を表す図である。
【図４】図３に示す基準変数に対するスレーブ軸の変位状態を格納したデータテーブルの説明図である。
【図５】図３で区間２の一部分を区間４として、これを加工工程２としたときの説明図である。
【図６】図４に示したデータテーブルにおいて、区間１〜４を示す図である。
【図７】本発明の同期制御方法を実施する制御装置の一実施形態である。
【図８】本発明の同期制御方法一実施形態を実施する数値制御装置の要部ブロック図である。
【図９】本発明の同期制御方法の一実施形態のフローチャートである。
【符号の説明】
１００  数値制御装置
ＤＴ  データテーブル
【図１】
0003665008.tif 000003
【図２】
0003665008.tif 000004
【図３】
0003665008.tif 000005
【図４】
0003665008.tif 000006
【図５】
0003665008.tif 000007
【図６】
0003665008.tif 000008
【図７】
0003665008.tif 000009
【図８】
0003665008.tif 000010
【図９】
0003665008.tif 000011