(57)【特許請求の範囲】
【請求項１】
モータによる複数の駆動軸を有し、各駆動軸には上位装置から周期ｎの同じ同期パルスが与えられ、各駆動軸では前記同期パルスに基づいて生成される内部周期で前記同期パルス１周期当たりｎ回の処理が行われる複数軸制御装置であって、
前記同期パルスの１周期を基準クロックでカウントした場合の理想カウント値Ｃｉがあらかじめ与えられ、
各駆動軸には、前記同期パルスの立ち下がり（あるいは立ち上がり）エッジから次の立ち下がり（あるいは立ち上がり）エッジまでを基準クロックでカウントすることにより前記同期パルスの周期を検出するためのパルス周期検出器と、該パルス周期検出器の検出結果に基づいて前記内部周期を設定する周期設定手段とを備え、
前記周期設定手段は、任意の同期パルス周期における前記パルス周期検出器からの実際の前記同期パルスのカウント値Ｃｘと、前記理想カウント値Ｃｉとからずれ量ｄを算出し、前記任意の同期パルス周期の次の同期パルス周期における前記内部周期を（Ｃｉ＋ｄ）／ｎで与えることにより、前記同期パルスと前記内部周期との同期を実現するようにしたことを特徴とする複数軸制御装置。
【請求項２】
請求項１記載の複数軸制御装置において、前記内部周期（Ｃｉ＋ｄ）／ｎの算出において余りが生じた場合には、該余りは次回の周期設定のための計算に加算されることを特徴とする複数軸制御装置。
【請求項３】
請求項１あるいは２記載の複数軸制御装置において、
各駆動軸における前記同期パルス１周期当たりｎ回の処理には１〜ｍ（但し、ｍ＜ｎ）のシーケンス番号が与えられて、該シーケンス番号で決まる処理が行われ、
更に、前記同期パルスの立ち下がり（あるいは立ち上がり）エッジに所望の前記シーケンス番号による処理を合わせるための補正処理手段を備え、
該補正処理手段は、前記シーケンス番号による処理毎に前記同期パルスの立ち下がり（あるいは立ち上がり）エッジが入っているかを判定し、前記立ち下がり（あるいは立ち上がり）エッジが入っていた時のシーケンス番号を判別すると共に、前記所望のシーケンス番号との差を算出し、前記差が１以上である場合には、前記立ち下がり（あるいは立ち上がり）エッジが入っていた周期の前記同期パルスの次の周期における処理数を（ｎ−１）とするようにこれに対応する内部周期を算出し、
前記同期パルスの次の周期では、前記算出された内部周期で（ｎ−１）回の処理が行われ、
上記の動作を、前記差が０になるまで、つまり前記同期パルスの立ち下がり  （あるいは立ち上がり）エッジが前記所望のシーケンス番号による処理に入るまで繰り返すことを特徴とする複数軸制御装置。
【請求項４】
請求項３記載の複数軸制御装置において、
前記補正処理手段は更に、前記シーケンス番号による処理毎に前記同期パルスの立ち下がり（あるいは立ち上がり）エッジが入っているかを判定して、前記立ち下がり（あるいは立ち上がり）エッジが入っていた時には、その時点での前記同期パルスのカウント値Ｃｙを読み込んで前記同期パルスの次の周期における内部周期の算出を、前記読み込んだカウント値Ｃｙと合わせたい位相の目標値Ｃ+gt との差分を加算したうえで行うことにより、前記同期パルス立ち下がり（あるいは立ち上がり）エッジに対する前記内部周期の位相合わせを行うようにしたことを特徴とする複数軸制御装置。
【請求項５】
モータによる複数の駆動軸を有し、各駆動軸には上位装置から周期ｎの同じ同期パルスが与えられ、各駆動軸では前記同期パルスに基づいて生成される内部周期で前記同期パルス１周期当たりｎ回の処理が行われる複数軸制御装置の軸間同期方法であって、
前記同期パルスの１周期を基準クロックでカウントした場合の理想カウント値Ｃｉがあらかじめ与えられており、
各駆動軸においては、前記同期パルスの立ち下がり（あるいは立ち上がり）エッジから次の立ち下がり（あるいは立ち上がり）エッジまでを基準クロックでカウントすることにより前記同期パルスの周期を検出すると共に、該パルス周期検出器の検出結果に基づいて前記内部周期を設定する動作を実行し、
前記内部周期設定動作は、任意の同期パルス周期における前記パルス周期検出器からの実際の前記同期パルスのカウント値Ｃｘと、前記理想カウント値Ｃｉとからずれ量ｄを算出し、前記任意の同期パルス周期の次の同期パルス周期における前記内部周期を（Ｃｉ＋ｄ）／ｎで与えることにより、前記同期パルスと前記内部周期との同期を実現するようにしたことを特徴とする複数軸制御装置における軸間同期方法。
【請求項６】
請求項５記載の軸間同期方法において、前記内部周期（Ｃｉ＋ｄ）／ｎの算出において余りが生じた場合には、該余りは次回の周期設定のための計算に加算されることを特徴とする複数軸制御装置における軸間同期方法。
【請求項７】
請求項５あるいは６記載の軸間同期方法において、
各駆動軸における前記同期パルス１周期当たりｎ回の処理には１〜ｍ（但し、ｍ＜ｎ）のシーケンス番号が与えられて、該シーケンス番号で決まる処理が行われ、
更に、前記同期パルスの立ち下がり（あるいは立ち上がり）エッジに所望の前記シーケンス番号による処理を合わせるための補正処理を実行し、
該補正処理は、前記シーケンス番号による処理毎に前記同期パルスの立ち下がり（あるいは立ち上がり）エッジが入っているかを判定し、前記立ち下がり（あるいは立ち上がり）エッジが入っていた時のシーケンス番号を判別すると共に、前記所望のシーケンス番号との差を算出し、前記差が１以上である場合には、前記立ち下がり（あるいは立ち上がり）エッジが入っていた周期の前記同期パルスの次の周期における処理数を（ｎ−１）とするようにこれに対応する内部周期を算出し、
前記同期パルスの次の周期では、前記算出された内部周期で（ｎ−１）回の処理が行われ、
上記の動作を、前記差が０になるまで、つまり前記同期パルスの立ち下がり  （あるいは立ち上がり）エッジが前記所望のシーケンス番号による処理に入るまで繰り返すことを特徴とする複数軸制御装置における軸間同期方法。
【請求項８】
請求項７記載の軸間同期方法において、
前記補正処理おいて更に、前記シーケンス番号による処理毎に前記同期パルスの立ち下がり（あるいは立ち上がり）エッジが入っているかを判定して、前記立ち下がり（あるいは立ち上がり）エッジが入っていた時には、その時点での前記同期パルスのカウント値Ｃｙを読み込んで前記同期パルスの次の周期における内部周期の算出を、前記読み込んだカウント値Ｃｙと合わせたい位相の目標値Ｃ+gt との差分を加算したうえで行うことにより、前記同期パルス立ち下がり（あるいは立ち上がり）エッジに対する前記内部周期の位相合わせを行うようにしたことを特徴とする複数軸制御装置における軸間同期方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ロボットやライン制御装置等、複数台のサーボモータと各サーボモータを駆動する複数のドライバ及びこれらを統括制御するための上位装置との組み合わせによる複数軸制御装置及びその軸間同期方法に関する。
【０００２】
【従来の技術】
この種の複数軸制御装置においては、サーボモータとこれを駆動するドライバを含むサーボドライバとの組み合わせを駆動軸と呼び、各駆動軸におけるサーボドライバは上位装置から位置指令値を受け、ある一定の処理周期毎に制御を行う。つまり、各サーボドライバにおいては、制御対象部に設置された検出器、例えば位置検出器からの位置検出信号を受け、その位置検出値と位置指令値との偏差よりＰＩ（比例・積分）等の制御演算を施し、ドライバに対する操作量を決定し、その操作量を出力する。ドライバは、例えばＰＷＭ（Ｐｕｌｓｅ  ＷｉｄｔｈＭｏｄｕｌａｔｉｏｎ）電流制御部である。また、ある一定の処理周期は、サーボドライバ毎に内蔵しているクロック発生源の周期で規定される。
【０００３】
【発明が解決しようとする課題】
上記のような複数軸制御装置には以下のような問題点がある。
【０００４】
▲１▼位置指令を生成する上位装置とサーボドライバ間において処理周期が同期しておらず、位置指令の授受時に動作するドライバの場合、ドライバの位置指令受け取り周期のむらによって駆動軸間動作が微少にばらつく問題がある。
【０００５】
▲２▼ドライバとしてＰＷＭ電流制御部が使用され、複数のサーボドライバの処理周期が同期していない場合、処理周期が各々のサーボドライバ間でばらばらなため、ある駆動軸のＰＷＭ電流制御部におけるノイズの影響が他の駆動軸に干渉する可能能性がある。
【０００６】
▲３▼サーボドライバ間で共通の割込み信号によって同期を行っている複数軸制御装置では、サーボドライバの処理周期は同期するが、処理周期のｎ倍周期における位相を規定することができない。例えば、処理周期ｎ回に１回の周期で位置指令を受信するようなサーボドライバの場合、この周期の位相を複数のサーボドライバ間で規定できていないため、位置指令を生成する上位装置が各駆動軸に対して同時に位置指令発行を行っても、動作開始時刻が位相のずれ分だけばらついてしまう問題がある。
【０００７】
そこで、本発明の課題は、上位装置から複数の各サーボドライバに対して共通の同期パルスを供給するようにし、各サーボドライバにおいてはこの同期パルスに同期した処理周期で処理を行うことができるような複数軸制御装置及びその軸間同期方法を提供することにある。
【０００８】
本発明の他の課題は、各サーボドライバにおける処理周期の位相を同期パルスの位相に一致させることのできる複数軸制御装置及びその軸間同期方法を提供することにある。
【０００９】
本発明の更に他の課題は、複数のサーボドライバ間における同期をも実現できる複数軸制御装置及びその軸間同期方法を提供することにある。
【００１０】
【課題を解決するための手段】
本発明によれば、モータによる複数の駆動軸を有し、各駆動軸には上位装置から周期ｎの同じ同期パルスが与えられ、各駆動軸では前記同期パルスに基づいて生成される内部周期で前記同期パルス１周期当たりｎ回の処理が行われる複数軸制御装置であって、前記同期パルスの１周期を基準クロックでカウントした場合の理想カウント値Ｃｉがあらかじめ与えられ、各駆動軸には、前記同期パルスの立ち下がり（あるいは立ち上がり）エッジから次の立ち下がり（あるいは立ち上がり）エッジまでを基準クロックでカウントすることにより前記同期パルスの周期を検出するためのパルス周期検出器と、該パルス周期検出器の検出結果に基づいて前記内部周期を設定する周期設定手段とを備え、前記周期設定手段は、任意の同期パルス周期における前記パルス周期検出器からの実際の前記同期パルスのカウント値Ｃｘと、前記理想カウント値Ｃｉとからずれ量ｄを算出し、前記任意の同期パルス周期の次の同期パルス周期における前記内部周期を（Ｃｉ＋ｄ）／ｎで与えることにより、前記同期パルスと前記内部周期との同期を実現するようにしたことを特徴とする複数軸制御装置が提供される。
【００１１】
本発明によればまた、各駆動軸における前記同期パルス１周期当たりｎ回の処理には１〜ｍ（但し、ｍ＜ｎ）のシーケンス番号が与えられて、該シーケンス番号で決まる処理が行われ、更に、前記同期パルスの立ち下がり（あるいは立ち上がり）エッジに所望の前記シーケンス番号による処理を合わせるための補正処理手段を備え、該補正処理手段は、前記シーケンス番号による処理毎に前記同期パルスの立ち下がり（あるいは立ち上がり）エッジが入っているかを判定し、前記立ち下がり（あるいは立ち上がり）エッジが入っていた時のシーケンス番号を判別すると共に、前記所望のシーケンス番号との差を算出し、前記差が１以上である場合には、前記立ち下がり（あるいは立ち上がり）エッジが入っていた周期の前記同期パルスの次の周期における処理数を（ｎ−１）とするようにこれに対応する内部周期を算出し、前記同期パルスの次の周期では、前記算出された内部周期で（ｎ−１）回の処理が行われ、上記の動作を、前記差が０になるまで、つまり前記同期パルスの立ち下がり（あるいは立ち上がり）エッジが前記所望のシーケンス番号による処理に入るまで繰り返すことを特徴とする複数軸制御装置が提供される。
【００１２】
本発明によれば更に、前記補正処理手段が更に、前記シーケンス番号による処理毎に前記同期パルスの立ち下がり（あるいは立ち上がり）エッジが入っているかを判定して、前記立ち下がり（あるいは立ち上がり）エッジが入っていた時には、その時点での前記同期パルスのカウント値Ｃｙを読み込んで前記同期パルスの次の周期における内部周期の算出を、前記読み込んだカウント値Ｃｙと合わせたい位相の目標値Ｃ+gt との差分を加算したうえで行うことにより、前記同期パルス立ち下がり（あるいは立ち上がり）エッジに対する前記内部周期の位相合わせを行うようにしたことを特徴とする複数軸制御装置が提供される。
【００１３】
本発明による軸間同期方法は、モータによる複数の駆動軸を有し、各駆動軸には上位装置から周期ｎの同じ同期パルスが与えられ、各駆動軸では前記同期パルスに基づいて生成される内部周期で前記同期パルス１周期当たりｎ回の処理が行われる複数軸制御装置の軸間同期方法であって、前記同期パルスの１周期を基準クロックでカウントした場合の理想カウント値Ｃｉがあらかじめ与えられており、各駆動軸においては、前記同期パルスの立ち下がり（あるいは立ち上がり）エッジから次の立ち下がり（あるいは立ち上がり）エッジまでを基準クロックでカウントすることにより前記同期パルスの周期を検出すると共に、該パルス周期検出器の検出結果に基づいて前記内部周期を設定する動作を実行し、前記内部周期設定動作は、任意の同期パルス周期における前記パルス周期検出器からの実際の前記同期パルスのカウント値Ｃｘと、前記理想カウント値Ｃｉとからずれ量ｄを算出し、前記任意の同期パルス周期の次の同期パルス周期における前記内部周期を（Ｃｉ＋ｄ）／ｎで与えることにより、前記同期パルスと前記内部周期との同期を実現するようにしたことを特徴とする。
【００１４】
なお、上記の複数軸制御装置及び軸間同期方法のいずれにおいても、前記内部周期（Ｃｉ＋ｄ）／ｎの算出において余りが生じた場合には、該余りは次回の周期設定のための計算に加算される。
【００１５】
本軸間同期方法においてはまた、各駆動軸における前記同期パルス１周期当たりｎ回の処理には１〜ｍ（但し、ｍ＜ｎ）のシーケンス番号が与えられて、該シーケンス番号で決まる処理が行われ、更に、前記同期パルスの立ち下がり（あるいは立ち上がり）エッジに所望の前記シーケンス番号による処理を合わせるための補正処理を実行し、該補正処理は、前記シーケンス番号による処理毎に前記同期パルスの立ち下がり（あるいは立ち上がり）エッジが入っているかを判定し、前記立ち下がり（あるいは立ち上がり）エッジが入っていた時のシーケンス番号を判別すると共に、前記所望のシーケンス番号との差を算出し、前記差が１以上である場合には、前記立ち下がり（あるいは立ち上がり）エッジが入っていた周期の前記同期パルスの次の周期における処理数を（ｎ−１）とするようにこれに対応する内部周期を算出し、前記同期パルスの次の周期では、前記算出された内部周期で（ｎ−１）回の処理が行われ、上記の動作を、前記差が０になるまで、つまり前記同期パルスの立ち下がり（あるいは立ち上がり）エッジが前記所望のシーケンス番号による処理に入るまで繰り返すことを特徴とする。
【００１６】
本発明による軸間同期方法においては更に、前記補正処理おいて更に、前記シーケンス番号による処理毎に前記同期パルスの立ち下がり（あるいは立ち上がり）エッジが入っているかを判定して、前記立ち下がり（あるいは立ち上がり）エッジが入っていた時には、その時点での前記同期パルスのカウント値Ｃｙを読み込んで前記同期パルスの次の周期における内部周期の算出を、前記読み込んだカウント値Ｃｙと合わせたい位相の目標値Ｃ+gt との差分を加算したうえで行うことにより、前記同期パルス立ち下がり（あるいは立ち上がり）エッジに対する前記内部周期の位相合わせを行うようにしたことを特徴とする。
【００１７】
【作用】
本発明では、位置指令生成を行う上位装置が出力する、サーボドライバの内部周期のｎ倍（ｎは正の整数）の同期パルスを複数のサーボドライバが入力する。
この同期パルスの周期を各サーボドライバ内部の基準クロックで測定し、この測定結果を利用してサーボドライバの内部周期を補正することにより、同期パルスに対して次の同期を実現する。
【００１８】
Ａ．同期パルスに対する各サーボドライバの内部周期の同期を実現する。
Ｂ．各サーボドライバ相互の内部周期の同期を実現する。
Ｃ．各サーボドライバ内部における、内部周期のｎ倍周期の位相を同期パルスの位相と一致させる。
【００１９】
【発明の実施の形態】
以下に、図面を参照して、本発明の好ましい実施の形態について説明する。図１は、本発明が適用される複数軸制御装置の構成例を示す。図１において、この複数軸制御装置は、Ｍ（Ｍは正の整数）個のサーボモータＳＭ−１〜ＳＭ−Ｍを制御するためのもので、上位装置としての位置指令生成部１０と、Ｍ軸のサーボドライバ２０−１〜２０−Ｍとを含む。ここでは、ドライバとして、ＰＷＭ電流制御部を備えている場合について説明する。ＰＷＭ電流制御部は、対応するサーボモータに供給される電流のパルス幅制御を行うものであり、良く知られているのでその詳しい説明は省略する。
【００２０】
位置指令生成部１０は、基準クロック発生源１１、この基準クロック発生源１１からの基準クロックに基づいて同期パルスを発生する同期パルス発生部１２、及び基準クロック発生源１１からの基準クロックに基づいて位置指令を生成する位置指令生成部１３を含む。
【００２１】
サーボドライバは、サーボドライバ２０−１について言えば、基準クロック発生源２１、位置指令生成部１３からの位置指令を受信する位置指令受信部２２、位置制御処理部２３、ＰＷＭ電流制御部２４、位置検出用のパルス発生器２５、同期パルス周期検出器２６、同期処理部２７、ＰＷＭ周期設定部２８を含む。同期処理部２７とＰＷＭ周期設定部２８は内部周期補正処理部を構成する。内部周期と言うのは、前に述べた処理周期と同じと考えて良い。また、パルス発生器２５は、例えばロータリエンコーダのようなものであり、サーボモータＳＭ−１の回転数に対応したパルス信号を発生する。そして、このパルス信号は、サーボモータＳＭ−１で駆動される被駆動部の位置を示す位置検出信号となる。
【００２２】
他のサーボドライバの構成も、サーボドライバ２０−１とまったく同じであるので、以下ではサーボドライバ２０−１のみについて説明を行う。
【００２３】
ここで、基準クロック発生源２１、位置指令受信部２２、位置制御処理部２３、ＰＷＭ電流制御部２４、位置検出用のパルス発生器２５から成る構成は、サーボモータＳＭ−１の制御系であり、従来と同じ構成と考えて良い。簡単に説明すると、位置制御処理部２３は、パルス発生器２５からの位置検出信号を受けると共に、位置指令受信部２２からの位置指令値を受け、これらの位置検出値と位置指令値との偏差よりＰＩ（比例・積分）等の制御演算を施し、ＰＷＭ電流制御部２４に対する操作量（制御量）を決定し、その操作量を出力する。ＰＷＭ電流制御部２４は、後述するＰＷＭ周期設定部２８で設定される内部周期で電流制御を行う。このように、内部周期はＰＷＭ電流制御部２４における処理の周期を規定するものであるので、以下ではＰＷＭ周期と呼ぶこととする。
【００２４】
同期パルス周期検出器２６、同期処理部２７、ＰＷＭ周期設定部２８は、同期パルス発生部１２からの同期パルスを受け、この同期パルスに対するＰＷＭ周期の同期（処理Ａ）と、同期パルスの位相に対するＰＷＭ周期の位相合わせ（処理Ｃ）、及びＭ軸の各サーボドライバにおけるＰＷＭ周期の同期のための補正処理（処理Ｂ）を行う。
【００２５】
以降の説明では、同期パルスの周期をｎ（ｎは正の整数）とし、ＰＷＭ電流制御部２４ではＰＷＭ周期で同期パルス１周期当たりｎ回の処理が行われるものとする。また、同期パルス１周期当たりｎ回の処理には１〜ｍ（但し、ｍ＜ｎ）のシーケンス番号が与えられて、このシーケンス番号で決まる処理が行われるものとする。
【００２６】
はじめに、同期パルスに対するＰＷＭ周期の同期（処理Ａ）は、同期パルス周期検出器２６とＰＷＭ周期設定部２８とにより以下のようにして行われる。同期パルス周期検出器２６は、同期パルスの立ち下がりエッジから次の立ち下がりエッジまでを基準クロック発生源２１からの基準クロックでカウントすることにより同期パルスの周期を検出する。ＰＷＭ周期設定部２８は、同期パルス周期検出器２６の検出結果に基づいてＰＷＭ周期を設定する。ここで、同期パルスの１周期を前記基準クロックでカウントした場合の理想カウント値がＣｓとしてあらかじめ与えられているものとする。ＰＷＭ周期設定部２８は、任意の同期パルス周期における同期パルス周期検出器２６からの実際の同期パルスのカウント値Ｃｘと、理想カウント値Ｃｓとからずれ量ｄ（＝Ｃｓ−Ｃｘ）を算出し、前記任意の同期パルス周期の次の同期パルス周期におけるＰＷＭ周期を（Ｃｓ＋ｄ）／ｎで与えることにより、同期パルスとＰＷＭ周期との同期を実現する。
【００２７】
上記の処理動作を図２を参照して説明する。
【００２８】
ａ．同期パルス周期の測定
ＰＷＭ周期による処理ｎ回毎に、前の周期の同期パルス周期のカウント結果Ｃｘ1 を得る。上記のように、同期パルス周期を基準クロックでカウントした時の理想カウント値はＣｓ、実際の同期パルス周期カウント結果はＣｘ1 であり、ずれがある場合のずれ量は（Ｃｓ−Ｃｘ1 ）である。
【００２９】
ｂ．ＰＷＭ周期Ｃｐｗｍの計算
上記の場合、次の同期パルス周期におけるＰＷＭ周期Ｃｐｗｍを、
Ｃｐｗｍ＝｛Ｃｓ＋（Ｃｓ−Ｃｘ1 ）｝／ｎと設定する。
【００３０】
これにより、同期パルスとＰＷＭ周期とが同期する。つまり、次の同期パルス周期では、（ＰＷＭ周期×ｎ）＝同期パルス周期となる。但し、上記の計算において余りが生じた場合には、この余りは次回のＰＷＭ周期Ｃｐｗｍの計算に加算される。
【００３１】
なお、上記の処理では、同期パルス１周期当たりに分配されるｎ個のＰＷＭ周期のうち、例えばｎ個目のＰＷＭ周期が同期パルスのどの部分にくるかということまでは規定できない。これを可能にするための処理が、図１の同期処理部２７をも含めて行われる以下の処理（処理Ｂ）である。つまり、以下の処理は、同期パルスに対するＰＷＭ周期での処理のシーケンス番号合わせ処理である。言い換えれば、同期パルスの立ち下がりエッジに所望のシーケンス番号による処理を合わせるための補正処理である。
【００３２】
この補正処理は、シーケンス番号による処理毎に同期パルスの立ち下がりエッジが入っているかを判定し、立ち下がりエッジが入っていた時のシーケンス番号を判別すると共に、所望のシーケンス番号との差を算出し、この差が１以上である場合には、立ち下がりエッジが入っていた周期の同期パルスの次の周期における処理数を（ｎ−１）回とするようにこれに対応するＰＷＭ周期を算出し、同期パルスの次の周期では、前記算出されたＰＷＭ周期で（ｎ−１）回の処理を行う。そして、上記の動作を、同期パルスの立ち下がりエッジが所望のシーケンス番号による処理に入るまで、つまり前記の差が０になるまで繰り返すようにする。
【００３３】
上記の補正処理を図３を参照して説明する。図３において、前に述べたように、同期パルス１周期当たりｎ回（ここではｎ＝１５）の処理には１〜ｍ（ここではｍ＝５）のシーケンス番号が与えられて、このシーケンス番号で決まる処理が行われている。なお、上記の数ｎはあらかじめパラメータとして与えられている。
【００３４】
ある同期パルスの周期において、ＰＷＭ周期での処理毎に同期パルスの立ち下がりエッジｅ1 が入ったかどうかを判定する。図３では、立ち下がりエッジが入った時のシーケンス番号は３であるが、これを１にしたいものとする。この場合、次の同期パルス周期におけるＰＷＭ周期での処理の回数を１減らしてｎ´＝１４とする。これは、ＰＷＭ周期を前の同期パルス周期におけるＰＷＭ周期より多少長くすることを意味する。その結果、次の次の同期パルスの立ち下がりエッジ（次の次の周期の同期パルスの立ち下がりエッジ）ｅ3 が入った時のシーケンス番号は２となる。このような補正処理をもう１回行うと、次の次の次の周期の同期パルスの立ち下がりエッジ、つまり４周期目の同期パルスの立ち下がりエッジはシーケンス番号１に入ることになる。
【００３５】
この補正処理は、同期パルス２周期につき１回行うことができ、上記のようにシーケンス番号を３から１に補正する場合には同期パルス４周期分で行われることになる。そして、このような補正処理をすべてのサーボドライバで行うことにより、すべてのサーボドライバにおける処理のシーケンス番号を同じにする、つまりサーボドライバ相互間のシーケンス番号合わせ、すなわちサーボドライバ相互間の同期を実現することができる。
【００３６】
とは言え、上記の補正処理でも、同期パルスの立ち下がりエッジとＰＷＭ周期との間には、ＰＷＭ周期の位相において最大ＰＷＭ周期１周期分のずれが生じる可能性がある（図４ａ）。このような位相ずれを補正して、同期パルスの立ち下がりエッジに対してＰＷＭ周期の位相合わせを行う処理が以下の位相合わせ処理である。この位相合わせ処理においても同期処理部２７が使用される。
【００３７】
この位相合わせ処理（処理Ｃ）では、シーケンス番号による処理毎に同期パルスの立ち下がりエッジが入っているかを判定し、立ち下がりエッジが入っていた時には、その時点での同期パルス検出器２６の実際のカウント値Ｃｙを読み込む。そして、同期パルスの次の周期におけるＰＷＭ周期の算出を、前記カウント値Ｃｙと合わせたい位相の目標値Ｃ+gt との差分を加算したうえで行うことにより、同期パルスの立ち下がりエッジに対するＰＷＭ周期の位相合わせを行う。この位相合わせ処理によれば、同期パルスの立ち下がりエッジに対するＰＷＭ周期の位相は、与えられた目標値Ｃ+gt に近い値となる。
【００３８】
上記の位相合わせ処理を図４を参照して説明する。図４（ａ）において、ＰＷＭ周期での処理内で同期パルスの立ち下がりエッジを検出した時だけ、その時点での同期パルス周期のカウント値Ｃｙを読む。なお、図４（ａ）においてεは、ソフトウエア演算処理により同期パルス周期のカウント値を得る時に時間遅れによるずれ分が生じることを表している。続いて、同期パルス周期のカウント値Ｃｙが目標値Ｃ+gt となるように次回のＰＷＭ周期Ｃｐｗｍ´の計算においてずれ分ε（＝Ｃ+gt −Ｃｙ）を加算する。つまり、下記の式、
Ｃｐｗｍ´＝（ｎ×Ｃｐｗｍ＋ε）／ｎ
により、次の同期パルス周期におけるＰＷＭ周期Ｃｐｗｍ´が計算される。
【００３９】
その結果、ずれ分εが０に近付く方向に補正がかかる。すなわち、カウント値Ｃｙが目標値Ｃ+gt に近付く。
【００４０】
図５、図６は、上記の処理Ａ〜Ｃの流れを示すフローチャート図である。処理Ａでは、ステップＳ１〜Ｓ３、Ｓ７、Ｓ９、Ｓ１１が実行され、処理Ｂでは更にステップＳ４、Ｓ５、Ｓ８も実行される。また、処理Ｃでは更に、ステップＳ６、Ｓ１０も実行される。
【００４１】
なお、上記の説明では、同期パルスの立ち下がりエッジに対してＰＷＭ周期の同期、シーケンス番号の補正、位相合わせを行う場合について説明したが、同期パルスの立ち上がりエッジに対して行う場合もまったく同じである。
【００４２】
本発明による複数軸制御装置は、位置指令伝達経路に遅延のある複数軸位置決め制御装置や、共有メモリ等を使用し、一定周期のコマンドにて位置指令伝達を行う複数軸位置決め制御装置に適している。
【００４３】
【発明の効果】
以上説明したように、本発明によれば以下の効果が得られる。
【００４４】
▲１▼複数のサーボモータ軸間の速度誤差を厳密に除去することが可能である。
▲２▼複数のサーボドライバ間のＰＷＭノイズによる干渉を防止することが可能である。
▲３▼位置指令を生成する上位装置側の同期周期にサーボドライバのＰＷＭ周期を同期させることにより、複数軸間での位置指令受け取りタイミングのばらつきをなくすことが可能であり、各軸での動作開始タイミングのずれを無くすことができる。
【図面の簡単な説明】
【図１】本発明による複数軸制御装置の一構成例を示したブロック図である。
【図２】本発明による同期パルスとＰＷＭ周期の同期処理を説明するための図である。
【図３】本発明による同期パルスに対するシーケンス番号の補正処理を説明するための図である。
【図４】本発明による同期パルスに対するＰＷＭ周期の位相合わせ処理を説明するための図である。
【図５】図２〜図４の処理の前半部分を説明するためのフローチャート図である。
【図６】図２〜図４の処理の後半部分を説明するためのフローチャート図である。
【符号の説明】
ＳＭ−１〜ＳＭ−Ｍ    サーボモータ
１０    位置指令生成部
１１、２１    基準クロック発生源
１２    同期パルス発生部
２０−１〜２０−Ｍ    サーボドライバ
２２    位置指令受信部
２３    位置制御処理部
２４    ＰＷＭ電流制御部
２５    パルス発生器
２６    同期パルス周期検出器
２７    同期処理部
２８    ＰＷＭ周期設定部
【図１】
0004638094.tif 000002
【図２】
0004638094.tif 000003
【図３】
0004638094.tif 000004
【図４】
0004638094.tif 000005
【図５】
0004638094.tif 000006
【図６】
0004638094.tif 000007