(57)【要約】【課題】マスタ装置とスレーブ装置間及びスレーブ装置間においてより厳密な同期が得られる制御システムを提供する。【解決手段】多軸モータ制御システム１は、マスタ装置２と、各々が個別の伝送路で前記マスタ装置と接続され、多軸駆動系の複数のモータ５を制御する複数のスレーブ装置３と、を含む。マスタ装置２は、所定の周期で固定長のマスタ送信データＭＤを複数のスレーブ装置３へ同時に送信するデータ送信部を有する。各スレーブ装置３は、所定の周期に応じて設定されたカウント設定値をカウントするカウンタ４１におけるカウント値に基づいて制御タイミングを決定してモータ５への制御信号ＣＤを出力すると共に、マスタ装置２からのマスタ送信データＭＤ中の所定のビットの受信タイミングに基づいてカウント設定値を調整する制御部２１、を有する。【選択図】図５
2019103176.tif 000002
【特許請求の範囲】
【請求項１】
マスタ装置と、各々が個別の伝送路で前記マスタ装置と接続され、多軸駆動系の複数のモータを制御する複数のスレーブ装置と、を含む多軸モータ制御システムであって、
前記マスタ装置は、所定の周期で固定長の第１の送信データを複数のスレーブ装置へ同時に送信するデータ送信部を有し、
各スレーブ装置は、前記所定の周期に応じて設定されたカウント設定値をカウントするカウンタにおけるカウント値に基づいて制御タイミングを決定してモータへの制御信号を出力すると共に、前記マスタ装置からの前記第１の送信データ中の所定のビットの受信タイミングに基づいて前記カウント設定値を調整する制御部を有することを特徴とする多軸モータ制御システム。
【請求項２】
前記各スレーブ装置は、前記第１の送信データを受信すると、前記モータに関する状態情報を含む第２の送信データを前記マスタ装置へ送信する、ことを特徴とする請求項１に記載の多軸モータ制御システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、多軸モータ制御システムに関する。  
【背景技術】
【０００２】
従来より、マルチドロップ、デイジーチェーン等の通信ラインで、マスタ装置と接続された複数のスレーブ装置を含む制御システムがある。各スレーブ装置は、マスタ装置からの制御コマンドを受けて被制御機器に対する各種制御を実行する。
【０００３】
このような制御システムにおいて、マスタ装置とスレーブ装置間及びスレーブ装置間で同期を取って各種制御動作を行うときは、通常、マスタ装置が同期コマンド信号をスレーブ装置である複数の制御装置へ送信することにより、マスタ装置とスレーブ装置間及びスレーブ装置間の同期が取られる。例えば、国際公開第２００８／１２３２７２号には、同期フレームを用いて複数のスレーブ装置間の同期を取る通信システムが開示されている。各スレーブ装置は、受信した同期フレームに基づいて、マスタ装置との同期及びスレーブ装置間での同期を取ることができる。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】国際公開第２００８／１２３２７２号
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかし、信号の伝播遅れ、装置内転送時間などを考慮しながら、マスタ装置とスレーブ装置間の同期及びスレーブ装置間における同期のタイミング精度を高くしようとしても、同期コマンド信号を用いた同期の方法の場合、同期コマンド信号の送受信及びその送受信処理が行われるまでの間は、マスタ装置と各スレーブ装置間の同期、及びスレーブ装置間での同期は確保されておらず、より高い精度の同期タイミングが得られないという問題がある。
【０００６】
例えば、複数のモータを連携させながら対象物に対する加工動作、移動動作等を行うような多軸モータ制御システムの場合、複数のモータの同期が厳密にとられていないと、高い精度で、対象物に対する加工、移動などができない。
【０００７】
そこで、本発明は、マスタ装置とスレーブ装置間及びスレーブ装置間においてより厳密な同期が得られる制御システムを提供することを目的とする。
【課題を解決するための手段】
【０００８】
本発明の一態様の多軸モータ制御システムは、マスタ装置と、各々が個別の伝送路で前記マスタ装置と接続され、多軸駆動系の複数のモータを制御する複数のスレーブ装置と、を含む多軸モータ制御システムであって、前記マスタ装置は、所定の周期で固定長の第１の送信データを複数のスレーブ装置へ同時に送信するデータ送信部を有し、各スレーブ装置は、前記所定の周期に応じて設定されたカウント設定値をカウントするカウンタにおけるカウント値に基づいて制御タイミングを決定してモータへの制御信号を出力すると共に、前記マスタ装置からの前記第１の送信データ中の所定のビットの受信タイミングに基づいて前記カウント設定値を調整する制御部を有する。
【発明の効果】
【０００９】
本発明によれば、マスタ装置とスレーブ装置間及びスレーブ装置間においてより厳密な同期が得られる多軸モータ制御システムを提供することができる。
【図面の簡単な説明】
【００１０】
【図１】本発明の実施の形態に係わる制御システムの構成を示す構成図である。
【図２】本発明の実施の形態に係わる、マスタ・スレーブ間で行われる同期通信を説明するための図である。
【図３】本発明の実施の形態に係わる、マスタ２とスレーブ３間での通信のシーケンス例を示す図である。
【図４】本発明の実施の形態に係わる、同期開始時の１回目の同期方法を説明するための図である。
【図５】本発明の実施の形態に係わる、２回目以降の同期方法を説明するための図である。
【発明を実施するための形態】
【００１１】
以下、図面を参照して本発明の実施の形態を説明する。
【００１２】
図１は、本実施の形態に係わる制御システムの構成を示す構成図である。
【００１３】
制御システム１は、システム全体を制御するマスタ装置（以下、マスタという）２と、複数のスレーブ装置（以下、スレーブという）３と、マスタ２と複数のスレーブ３を接続する複数の伝送路４とを含んで構成される。複数のスレーブ３は、被制御装置である複数台（ここでは、Ｎ（Ｎは、正の整数である）台）のモータ５に接続される。各スレーブ３は、個別の伝送路４を介してマスタ２と接続される。複数のスレーブ３は、多軸駆動系の複数のモータを制御し、マスタ２からの指令に応じてモータ５をサーボ制御する。よって、制御システム１は、多軸モータ制御システムである。
【００１４】
マスタ２は、制御部１１と、記憶装置１２と、通信制御部１３とを含む。制御部１１は、フィールドプログラマブルゲートアレイ（以下、ＦＰＧＡという）などにより構成されている。
【００１５】
記憶装置１２は、フラッシュメモリ、ハードディスクドライブなどの比較的大型の記憶装置であり、制御プログラム、管理プログラムなどのソフトウェアプログラム、及び各種制御パラメータデータ、制御システム１内の各種プロセスデータなどを記憶する。
【００１６】
通信制御部１３は、Ｎ台のスレーブ３との通信を行う制御回路である。通信制御部１３は、制御部１１からの指示に基づいてデータの送信を行い、データを受信すると受信したデータを制御部１１へ出力する。  
通信制御部１３は、カウンタ３１を有している。カウンタ３１は、制御周期ＴＳである１サイクルに対応するカウント値をカウントするためのカウンタである。１回の制御周期ＴＳを１サイクルとする。
【００１７】
カウンタ３１には、マスタ２の有するクロック回路３２に基づいてカウントアップされたカウント値が格納される。クロック回路３２は、水晶振動子を含み、カウンタ３１をカウントアップするためのクロック信号を、その水晶振動子の出力信号から生成する。
【００１８】
マスタ２の記憶装置１２には、制御周期ＴＳに対応するｎ（ここでは、ｎは正の整数である）が、カウント設定値ＣＳとして記憶され、通信制御部１３は、カウンタ３１のカウント値がｎになると１サイクルの終了と判定し、カウンタ３１をクリアしてカウントアップを再開するようにカウントを繰り返す。
【００１９】
通信制御部１３は、カウンタ３１のカウント設定値ＣＳまでのカウントを繰り返し、制御部１１は、カウンタ３１のカウント値を参照しながら、多軸モータ制御システムの制御動作のタイミングを決定する。言い換えれば、カウンタ３１は、マスタ２において制御周期ＴＳ、すなわち制御タイミングのインターバル時間、を計測するためのカウンタである。
【００２０】
後述するように、マスタ２は、Ｎ台のスレーブ３を互いに同期して動作させるためのマスタ送信データＭＤをＮ台のスレーブ３へ同時に送信することによって、マスタ２とＮ台のスレーブ３は、同じ制御周期ＴＳでサイクリックに動作する。
【００２１】
マスタ２は、記憶装置１２に格納された制御プログラムを読み出して実行することによって、カウンタ３１のカウント値を参照しながら、Ｎ台のスレーブ３に対して制御コマンド信号を生成し、マスタ送信データＭＤに含ませて通信制御部１３からＮ台のスレーブ３へ送信する。制御プログラムは、互いに同期した所定の動作をＮ台のモータ５にさせるための処理を実行させるためのプログラムである。制御コマンドには、モータ５をサーボ制御する指令以外に、スレーブ３のメモリ等の内部データを書き替え／読み出しする指令もある。
【００２２】
上述したように、マスタ２では、カウンタ３１のカウント値は所定のカウント設定値ＣＳになるとクリアされて、再度カウンタ３１のカウントアップが再開されるというように、カウントが繰り返される。マスタ２は、制御コマンド信号などの各種信号を含むマスタ送信データＭＤをＮ台のスレーブ３へ同時に送信する。
【００２３】
マスタ２とＮ台のスレーブ３は、Ｎ本の伝送路４を含むネットワーク６により接続されている。各スレーブ３は、対応する伝送路４によりマスタ２と一対一で接続されている。言い換えれば、制御システム１は、マスタ２とＮ台のスレーブ３が、スター型のネットワーク６により接続されている。  
各伝送路４は、全二重通信路からなる。よって、各伝送路４は、２つの通信ライン４ａ、４ｂ（図２）を有する。
【００２４】
スレーブ３は、制御部２１と、通信制御部２２と、駆動回路２３とを含む。スレーブ３は、スレーブ３に接続されたモータ５を、マスタ２からの制御コマンド信号に応じてサーボ制御する制御装置である。  
制御部２１は、ＦＰＧＡなどにより構成されており、マスタ２からの制御コマンドに応じて、制御信号ＣＤを生成して、駆動回路２３へ出力する。
【００２５】
通信制御部２２は、伝送路４を介してマスタ２と通信する回路である。通信制御部２２は、制御部２１からの指示に基づいてデータの送信を行い、データを受信すると受信したデータを制御部２１へ出力する。  
通信制御部２２は、カウンタ４１を有している。カウンタ４１は、マスタ２と同じ制御周期ＴＳに応じて設定されたカウント設定値ＣＳをカウントするためのカウンタである。
【００２６】
カウンタ４１には、スレーブ３の有するクロック回路４２に基づいてカウントアップされたカウント値が格納される。クロック回路４２は、水晶振動子を含み、カウンタ４１をカウントアップするためのクロック信号を、その水晶振動子の出力信号から生成する。
【００２７】
各スレーブ３の制御部２１は、カウンタ４１のカウント値を参照しながら、制御周期ＴＳの制御タイミングになったと判定すると、制御信号ＣＤを駆動回路２３へ出力する。制御周期ＴＳの制御タイミングは、カウント設定値ＣＳによって規定される。後述するように、カウント設定値ＣＳは、同期基準点におけるカウンタ４１のカウント値によって調整される。カウンタ４１は、スレーブ３において、制御周期すなわち制御タイミングのインターバル時間を計測するためのカウンタである。
【００２８】
また、制御部２１は、遅延量データを記憶する遅延量記憶部４３を有している。遅延量データは、各スレーブ３に接続されたモータ５の特性に応じて、制御信号ＣＤの出力タイミングを遅らせるための時間データである。Ｎ台のスレーブ３間で、遅延量データは、同じでもよいし、異なっていてもよい。遅延量記憶部４３の遅延量データは、外部から設定変更可能である。
【００２９】
マスタ２の制御周期ＴＳとスレーブ３の制御周期ＴＳは同じでなければならないが、マスタ２のクロック回路３２の水晶振動子とスレーブ３のクロック回路４２の水晶振動子の振動数には、個体差があるため、各スレーブ３の制御タイミングとマスタ２の制御タイミングにずれが生じると共に、スレーブ３間においても制御タイミングにずれが生じる。
そこで、各スレーブ３の遅延量記憶部４３の遅延量データが全スレーブ３ともに等しければ、後述するように、カウント設定値ＣＳを調整することにより、他のスレーブ３と制御信号の出力タイミングが一致するように、制御タイミングは調整される。
遅延量記憶部４３の遅延量データがスレーブ３間で違えば、各スレーブ３は、遅延量データに従い、制御信号の出力タイミングである制御タイミングはさらに調整される。
【００３０】
駆動回路２３は、制御部２１からの制御信号ＣＤに応じて駆動信号ＤＳを生成してモータ５へ出力する回路である。駆動回路２３は、制御信号ＣＤに応じた電流信号である駆動信号ＤＳをモータ５へ出力する。  
マスタ２が、制御コマンド信号を含むマスタ送信データＭＤを、Ｎ台のスレーブ３へ同時に送信し、スレーブ３の制御部２１は、カウント設定値ＣＳにより規定された制御タイミングで制御コマンド信号に応じた制御信号ＣＤを生成して駆動回路２３へ出力する。各スレーブ３は、カウンタ４１のカウント値がカウント設定値ＣＳになった時を、制御タイミングとして、その制御タイミングで駆動信号ＤＳをモータ５へ出力する。
【００３１】
後述するように、制御タイミングを規定するカウンタ４１のカウント設定値ＣＳは、マスタ２からのマスタ送信データＭＤの受信タイミングで調整される。
（マスタ・スレーブ間通信）
図２は、マスタ・スレーブ間で行われる同期通信を説明するための図である。
【００３２】
マスタ・スレーブ間通信は、サイクリックに行われる。マスタ２において制御周期ＴＳにより規定される１サイクル中に一往復通信が行われるように、マスタ・スレーブ間通信は行われる。以下、マスタ２から各スレーブ３へ送信される送信データをマスタ送信データＭＤとし、各スレーブ３からマスタ２へ送信される送信データをスレーブ送信データＳＤとする。
【００３３】
上述したように、マスタ２と各スレーブ３との間は、伝送路４を介して一対一で接続され、全二重通信方式で通信が行われる。マスタ２からのマスタ送信データＭＤの送信は伝送路４の通信ライン４ａを介して行われ、スレーブ３からのスレーブ送信データＳＤの送信は伝送路４の通信ライン４ｂを介して行われる。すなわち、マスタ２の通信制御部１３は、全二重通信方式の下、Ｎ台のスレーブ３へマスタ送信データＭＤを同時に送信することができるように構成されている。
【００３４】
また、上述したように、マスタ２は、Ｎ台のスレーブ３へのマスタ送信データＭＤの送信を同時に行う。すなわち、マスタ送信データＭＤは、受信タイミングが一致するようにＮ台のスレーブ３へ同時に送信される。
【００３５】
さらに、マスタ送信データＭＤは、固定長データであり、マスタ２は、マスタ送信データＭＤの送信を所定の周期でサイクリックに行っている。よって、マスタ２の通信制御部１３は、所定の周期で固定長の送信データを複数のスレーブ３へ同時に送信するデータ送信部を構成する。
【００３６】
マスタ２は、自己の制御タイミングに合わせてマスタ送信データＭＤをサイクリックに送信する。Ｎ台のスレーブ３は、マスタ２から固定長データであるマスタ送信データＭＤを同時に受信する。
【００３７】
各スレーブ３では、マスタ送信データＭＤの先頭ビットＨｂが最初に受信され、最終ビットＬｂが最後に受信される。各スレーブ３の制御部２１は、通信制御部２２からマスタ送信データＭＤの受信を開始したことが通知されると、マスタ送信データＭＤは固定長データでありかつマスタ・スレーブ間の通信速度も予め決まっているため、受信の開始のタイミングに基づき最終ビットＬｂの受信タイミングを制御タイミングとして決定する。
【００３８】
具体的には、各スレーブ３では、この最終ビットＬｂの受信終了タイミング（すなわち受信終了データ位置）を制御タイミングの同期基準点ｒｐとして、制御タイミングがこの同期基準点に合うように、カウント設定値ＣＳの値を調整することによって、制御タイミングを設定する。
【００３９】
図３は、マスタ２とスレーブ３間での通信のシーケンスを示す図である。  
マスタ２は、互いに所定の制御タイミングで連携してＮ台のモータ５を動作させるときは、マスタ２は、Ｎ台のスレーブ３にそのような連携動作をさせるための制御コマンド信号を含むマスタ送信データＭＤを生成してＮ台のスレーブ３に同時に送信する。マスタ２は、サイクル毎にマスタ送信データＭＤをＮ台のスレーブ３に同時にブロードキャストで送信し、Ｎ台のスレーブ３はマスタ送信データＭＤを同時に受信する。
【００４０】
マスタ２からのマスタ送信データＭＤに含まれる制御コマンド信号は、全スレーブ３に対して同じでもよく、スレーブ３間で異なっていてもよい。  
各スレーブ３は、マスタ２からのブロードキャストによるマスタ送信データＭＤを受信後、固定長のスレーブ送信データＳＤの送信を開始する。スレーブ送信データＳＤは、マスタ送信データＭＤに対するＡＣＫ信号、モータ５のステータスデータを含むプロセスデータ、等々を含む。
【００４１】
以上のように、マスタ２と各スレーブ３間では、１サイクル中に１往復のデータの送受信が行われる。  
なお、マスタ送信データＭＤのサイズ（ビット数）とスレーブ送信データＳＤのサイズ（ビット数）は、同じであっても、異なっていてもよい。
【００４２】
以上より、１サイクルは、マスタ送信データＭＤの送信と、マスタ送信データＭＤの送信後にスレーブ送信データＳＤが通信できる時間である。すなわち、１サイクルは、マスタ２と各スレーブ３間で２つの固定長データを送信するのに必要な時間以上の長さの期間である。
【００４３】
例えば、マスタ送信データＭＤ及びスレーブ送信データＳＤは、１００〜数百ビットのデータである。１サイクル長をＣ（秒）とし、マスタ送信データＭＤとスレーブ送信データＳＤを合わせたデータの合計ビット数をＢとし、通信速度をＳ（ビット／秒）としたとき、Ｃ，ＢとＳは、Ｃ＞（Ｂ／Ｓ）の関係を有する。Ｃは、例えば、数十マイクロ秒である。
【００４４】
よって、マスタ２と各スレーブ３間の通信速度は、１サイクル内で、マスタ送信データＭＤとスレーブ送信データＳＤの送受信ができる速度である。  
各スレーブ３では、後述するように、マスタ２からのマスタ送信データＭＤの受信タイミングに基づいて制御タイミングが決定され、決定した制御タイミングで駆動信号ＤＳがモータ５へ出力される。
【００４５】
マスタ２では、クロック回路３２に基づいてサイクルのタイミングが決定される。各スレーブでは、クロック回路４２に基づいてサイクルのタイミングが決定される。  
しかし、マスタ２のクロック回路３２の水晶振動子、及び各スレーブ３のクロック回路４２の水晶振動子には、個体差があるため、マスタ２とスレーブ３間で及び複数のスレーブ３間で、制御タイミングを合わせようとしても、同期タイミングを厳密に一致させることは極めて困難である。
【００４６】
そこで、本実施の形態では、マスタ２からのマスタ送信データＭＤの受信タイミングに基づいて各スレーブ３のカウント設定値ＣＳを調整することにより、マスタ２とスレーブ３間及び複数のスレーブ３間での制御タイミングを一致させている。
【００４７】
具体的には、各スレーブ３の通信制御部２２がマスタ送信データＭＤの受信を開始すると、制御部２１は、マスタ送信データＭＤの最後のビットの立ち下がりタイミングを判定して、次のサイクルにおける制御タイミングを調整する。
【００４８】
次に、マスタ２とスレーブ３間の同期方法について説明する。
（同期方法）
各スレーブ３は、マスタ２と通信をしながらモータ５を制御するが、マスタ２と通信をしないで単独でモータ５を制御することもできる。その場合、複数のスレーブ３間では同期は取られていない。
【００４９】
各スレーブ３は、マスタ２と通信をしていないときは、設定された制御周期ＴＳで駆動信号ＤＳを生成してモータ５へ出力する。例えば、各スレーブ３の制御部２１は、カウンタ４１のカウント値が制御周期ＴＳに対応するｎになったかを検出する。ｎは、制御周期ＴＳに対応する値であり、マスタ２において１サイクルを規定するカウント設定値ＣＳと同じである。
【００５０】
マスタ２は、カウンタ３１のカウント値がｎになる度に、サイクルを更新する。  
各スレーブ３は、カウンタ４１のカウントを繰り返し、カウンタ４１のカウント値がカウント設定値ＣＳになると、制御部２１は制御信号ＣＤを出力する。よって、制御信号ＣＤの出力タイミングは、カウント設定値ＣＳによって規定される。すなわち、各スレーブ３では、自己のクロック回路４２に基づいてカウントされるカウンタ４１のカウント値によって制御タイミングが決められる。
【００５１】
そして、各スレーブ３の制御部２１は、マスタ２と通信を開始すると、マスタ２の制御タイミングと同期した制御タイミングで制御信号ＣＤを生成して出力する。はじめに、マスタ２と通信を開始したときの同期方法について説明する。
（同期開始時）
図４は、同期開始時の１回目の同期方法を説明するための図である。
【００５２】
マスタ２と各スレーブ３間で通信が開始されたとき、マスタ２から最初のマスタ送信データＭＤがＮ台のスレーブ３へ同時に送信される。各スレーブ３は、マスタ送信データＭＤの受信に応じてスレーブ送信データＳＤをマスタ２へ送信する。
【００５３】
図４に示すように、サイクルＣ１においてマスタ２と各スレーブ３間で通信が開始されると、最初のマスタ送信データＭＤが、複数のスレーブ３において受信される。  
マスタ２は、自己のクロック回路３２に基づいて１サイクル内のマスタ送信データＭＤの送信タイミングを決定している。上述したように、通信制御部１３は、カウンタ３１のカウント値がカウント設定値ＣＳであるｎになるタイミングで、１サイクルの期間の終了タイミングを判定する。通信制御部１３は、１サイクル中の所定のタイミングで、マスタ送信データＭＤを送信する。
【００５４】
各スレーブ３は、カウント設定値ＣＳに基づいて、各サイクル内の制御タイミングを決定している。上述したように、通信制御部２２がカウント設定値ＣＳをｎに設定し、カウンタ４１のカウント値がｎになるタイミングで、制御部２１は、１サイクルの期間の終了タイミングとし、その終了タイミングを制御タイミングとしている。各スレーブ３は、マスタ２との通信が開始されるまでは、カウント値がｎになると、カウンタ４１はクリアされ、再度カウントアップを開始する。
【００５５】
各スレーブ３の通信制御部２２は、最初のサイクルＣ１に送信されたマスタ送信データＭＤの受信が開始されると、各スレーブの通信制御部２２は、マスタ送信データＭＤの先頭ビットＨｂの受信時のカウンタ４１のカウント値を制御部２１へ出力する。
【００５６】
制御部２１は、マスタ送信データＭＤが固定長データであるため、最初の先頭ビットＨｂの受信時のカウンタ４１のカウント値から、最終ビットＬｂの立ち下がりのタイミング時におけるカウンタ４１のカウント値ｍを算出する。
【００５７】
最終ビットＬｂの立ち下がりのタイミングは、スレーブ３のサイクル中のマスタ送信データＭＤの受信完了位置（時刻）であり、制御部２１は、このマスタ送信データＭＤの受信完了位置（時刻）を、同期基準点ｒｐとする。
【００５８】
そして、制御部２１は、通信制御部２２から読み出した同期基準点ｒｐのカウント値ｍをｎに加算して、調整カウント値（ｎ＋ｍ）を得る。  
制御部２１は、得られた調整カウント値（ｎ＋ｍ）を、カウント設定値ＣＳとする。その結果、次のサイクルの制御タイミングは、カウンタ４１のカウント値が（ｎ＋ｍ）になったときとなる。
【００５９】
すなわち、各スレーブ３は、次の式（１）に基づいて、自己の制御タイミングを同期基準点ｒｐに合わせるために、カウント設定値ＣＳを設定する。  
ＣＳ＝ｎ＋ｍ      ・・・（１）
その結果、図４に示すように、各スレーブ３は、マスタ２のサイクルＣ１でマスタ送信データＭＤを受信して判定した同期基準点ｒｐに基づいて、カウント設定値ＣＳを変更する。
【００６０】
図４に示すように、スレーブ３では、最初のマスタ送信データＭＤを受信したときのサイクルの制御タイミングＣＴ１１は、カウンタ４１のカウント値がｎ（カウント設定値ＣＳ）になったときであるが、次のサイクルの制御タイミングＣＴ１２は、カウンタ４１のカウント値が（ｎ＋ｍ）になったときとなる。
【００６１】
なお、図４に示されるように、カウント値が（ｎ＋ｍ）になるため、最初の同期時のサイクルは１回分だけ伸び、各スレーブ３の制御タイミングは、マスタ２のサイクルＣ３の最終ビットＬｂの受信タイミングと一致する。
【００６２】
以上のようにして、マスタ２と各スレーブ３間で最初の同期がとれた後は、制御部２１は、制御タイミングＣＴ１２の次の制御タイミングＣＴ１３のために、カウント設定値ＣＳをｎに設定する。
【００６３】
以上のようにして、マスタ２と各スレーブ３間で通信が開始されたとき、マスタ２からのマスタ送信データＭＤを受信すると、マスタ２のサイクルの時間と自己のサイクルの時間とのずれ量を判定し、そのずれ量に基づいて次のサイクル時間を調整することにより、最初の制御タイミングの同期が取られる。
（同期開始後、２回目以降の同期調整）
マスタ２は、上述した最初の同期調整が行われた後も、マスタ送信データＭＤをサイクル毎に送信する。
【００６４】
上述したように、各スレーブ３は、最初の同期調整により設定されたカウント設定値（ｎ＋ｍ）のカウント後は、カウント設定値ＣＳは、ｎに設定され、その後は、マスタ２のサイクルと各スレーブ３のサイクルが一致する。
【００６５】
しかし、上述したように、クロック回路３２，４２の水晶振動子には個体差があるため、厳密な制御タイミングの同期を取るには、個体差によるクロックのズレ量を調整する必要がある。
【００６６】
そこで、最初の同期が取られた後は、制御部２１が、マスタ送信データＭＤの受信時に、マスタ送信データＭＤの受信タイミングに基づいて、各スレーブ３のカウント設定値ＣＳの増減を行うことにより、マスタ２とスレーブ３間及びスレーブ３間の制御タイミングの同期を取っている。
【００６７】
以下、具体的に説明する。  
図５は、２回目以降の同期方法を説明するための図である。
【００６８】
上述したように、マスタ２と各スレーブ３間では、マスタ送信データＭＤとスレーブ送信データＳＤの送受信がサイクリックに行われる。各スレーブ３の制御部２１は、マスタ送信データＭＤの先頭ビットＨｂの受信時のカウンタ４１のカウント値から最終ビットＬｂの立ち下がりのタイミングを計算する。
各スレーブ３はマスタ２と通信を開始すると、通信制御部２２は、マスタ送信データＭＤの最終ビットＬｂの受信終了のタイミングでカウンタ４１のカウント値を保持し、次のサイクルのカウント設定値ＣＳの算出のために使用する。
カウンタ４１は、前回のサイクルで決定したカウント設定値ＣＳまでカウントしてから０にリセットされて、再度０からカウントアップする。  
【００６９】
制御部２１は、マスタ送信データＭＤの最終ビットＬｂの立ち下がりのタイミングを同期基準点ｒｐとして、その同期基準点ｒｐにおけるカウンタ４１のカウント値と、制御周期ＴＳに対応するｎとの差分を計算する。
【００７０】
図５では、あるサイクルＣ１１で送信されたマスタ送信データＭＤに基づく同期基準点ｒｐのカウント値がｎであり、差分が０であるため、スレーブ３の通信制御部２２では、カウント設定値ＣＳを変更していない。よって、制御部２１は、次のサイクルの制御タイミングＣＴ２２を、カウンタ４１のカウント値がｎになるタイミングとする。
【００７１】
よって、次のサイクルでは、スレーブ３の制御タイミングＣＴ２２はカウンタ４１のカウント値がｎになるタイミングであり、制御部２１はカウンタ４１のカウント値がｎになるタイミングで制御信号ＣＤを出力する。
しかし、図５に示すように、サイクルＣ１２で送信されたマスタ送信データＭＤに基づく同期基準点ｒｐのカウント値が、ｎよりも小さいｍであるとき、差分（ｎ−ｍ）が０でないため、制御部２１は、次の制御タイミングＣＴ２３のためにカウント設定値ＣＳを、変更する。
【００７２】
図５では、同期基準点ｒｐのカウンタ４１のカウント値ｍがカウント設定値ＣＳ（＝ｎ）よりも小さい。よって、制御部２１は、次の制御タイミングＣＴ２３を、ｎとｍの差分δだけ少ないカウント値になったときとするように、カウント設定値ＣＳを変更する。
【００７３】
すなわち、制御部２１は、自己の制御タイミングを同期基準点ｒｐに合わせるために、次の式（２）に基づいて、次の制御タイミングＣＴ２３のためにカウント設定値ＣＳを設定する。
【００７４】
ＣＳ＝ｎ−（ｎ−ｍ）      ・・・（２）
その結果、図５に示すように、スレーブ３の制御部２１は、次のサイクルの制御タイミングＣＴ２３では、式（２）のカウント設定値ＣＳにより規定された制御タイミングで制御信号ＣＤを生成して出力する。
【００７５】
制御部２１は、次のサイクルでも同様の処理を行うが、もしも、同期基準点ｒｐのカウンタ４１のカウント値ｋが（ｎ−（ｎ−ｍ））よりも大きいときは、その次の制御タイミングＣＴ２４では、上記の式（２）に基づいて、ｍ＝−ｋとして、ｎとｋの差分δだけ多いカウント値が、次の制御タイミングＣＴ２４を規定するカウント設定値ＣＳとして設定される。
【００７６】
なお、図５では、サイクルＣ１３の同期基準点ｒｐで、マスタ送信データＭＤを受信したときの同期基準点ｒｐにおけるカウンタ４１のカウント値ｋがｍであって差分が０であるため、制御部２１は、次の制御タイミングＣＴ２４を規定するカウント設定値ＣＳとして、ｎを設定している場合を示している。
【００７７】
以上のように、各スレーブ３の制御部２１は、所定の制御周期ＴＳに応じて設定されたカウント設定値ＣＳをカウントするカウンタ４１におけるカウント値に基づいて、次のサイクルの制御タイミングを決定してモータ５への制御信号ＣＤを出力すると共に、マスタ２からのマスタ送信データＭＤ中の所定のビットとしての最終ビットＬｂの受信タイミングに基づいてカウント設定値ＣＳを調整する。特に、制御部２１は、マスタ２からのマスタ送信データＭＤの受信の度に、カウント設定値ＣＳを調整する。
【００７８】
そのため、各スレーブ３では、マスタ２からのマスタ送信データＭＤの通信データ完了位置すなわち同期基準点ｒｐにおけるカウンタ４１のカウント値と、サイクル時間に対応するカウント値ｎと比較し、その差分に基づいて次の制御タイミングを規定するカウント設定値ＣＳを調整する。これにより、マスタ２と各スレーブ３の同期が取れると共に、スレーブ３間の制御タイミングの同期も厳密に取ることができる。
【００７９】
なお、各制御部２１の遅延量記憶部４３の遅延量データを設定することによって、各スレーブ３に接続されたモータ５の特性に応じて、制御信号ＣＤの出力タイミングを遅延量だけ遅らせて、制御信号ＣＤを出力するようにしてもよい。遅延量記憶部４３は、制御タイミングに対する遅延量を記憶する。
【００８０】
例えば、遅延量データを設定することによって、モータ５の特性に応じて、電流信号を出力するタイミングをその遅延量だけ遅らせることができる。あるいは、各スレーブ３の遅延量データを調整することによって、Ｎ台のスレーブ３を所望の順番で動作させることもできる。
【００８１】
さらになお、上述した式（２）に代えて、次の式（３）を用いてもよい。  
ＣＳ＝ｎ−α＊（ｎ−ｍ）      ・・・（３）
このαは、同期までの収束時間を調整するための係数である。例えば、αを１より小さくすることで、同期調整時の変動を小さくすることができる。
【００８２】
以上のように、上述した実施の形態によれば、マスタ装置とスレーブ装置間及びスレーブ装置間においてより厳密な同期が得られる多軸モータ制御システムを提供することができる。
【００８３】
また、上述した実施の形態によれば、サイクル毎に固定長データであるマスタ送信データＭＤをマスタ２から複数のスレーブ３に送信して、マスタ２とスレーブ３間及び複数のスレーブ３間で精度のよい同期タイミングが得られるが、上述したシステムによれば、所定のサイクル毎に固定長データで各スレーブ３からマスタ２へスレーブ送信データＳＤを送信するので、高い精度で同期が取られたアラーム信号、ステータス情報等のデータをマスタ２は収集することができる。よって、各スレーブ３は、マスタ送信データＭＤを受信すると、モータ５に関する状態情報を含むスレーブ送信データＳＤをマスタ２へ送信することができる。
【００８４】
従って、上述した実施の形態によれば、マスタ２に記憶されたステータス情報等のデータは、高い精度で同期の取れたデータであるので、より詳細なデータ解析に使うことができる。
【００８５】
以上のように、上述した実施の形態によれば、マスタ装置とスレーブ装置間及びスレーブ装置間においてより厳密な同期タイミングが得られる多軸モータ制御システムを提供することができる。
【００８６】
また、上述した実施の形態によれば、マスタ装置からの同期のための同期フレームを用いることなく、マスタ装置と通信をしながら、各スレーブ装置は他のスレーブ装置と制御タイミングの同期を取ることができる。特に、マスタ２は、１サイクルの間にマスタ送信データＭＤを一回送信しているので、各スレーブ３では、サイクル毎に、マスタ２との同期が取られるので、マスタ２とＮ台のスレーブ３間で同期ずれが生じ難い。
【００８７】
なお、上述した実施の形態では、各スレーブ３は、マスタ送信データＭＤの受信の度にカウント設定値ＣＳを調整しているが、カウント設定値ＣＳの調整は、マスタ送信データＭＤを２回受信の度に、３回受信の度に、等々、マスタ２のサイクル毎に行わないようにしてもよい。
【００８８】
本発明は、上述した実施の形態に限定されるものではなく、本発明の要旨を変えない範囲において、種々の変更、改変等が可能である。
【符号の説明】
【００８９】
１  制御システム、２  マスタ装置、３  スレーブ装置、４  伝送路、４ａ、４ｂ  通信ライン、５  モータ、６  ネットワーク、１１  制御部、１２  記憶装置、１３  通信制御部、２１  制御部、２２  通信制御部、２３  駆動回路、３１  カウンタ、３２  クロック回路、４１  カウンタ、４２  クロック回路、４３  遅延量記憶部。
【図１】
2019103176.tif 000003
【図２】
2019103176.tif 000004
【図３】
2019103176.tif 000005
【図４】
2019103176.tif 000006
【図５】
2019103176.tif 000007