(57)【特許請求の範囲】
【請求項１】
マスタと複数のスレーブを通信ケーブルで接続し構成されるマスタ・スレーブ通信システムにおいて、
前記マスタには、前記複数のスレーブ間の同期をとる同期基準信号を発信する同期基準信号発生手段を備え、
前記スレーブには、このスレーブの内部処理の開始タイミングの基準となる処理開始基準信号を発信する処理開始基準信号発生手段と、
前記処理開始基準信号で開始される処理の回数をカウントし、所定の上限の回数で１に戻り繰り返しカウントする基底カウンタと、
前記基底カウンタの回数である基底カウンタ値を、他のスレーブと同じタイミングで前記マスタに送信する基底カウンタ値通知手段とを備え、
また、前記マスタには、前記複数のスレーブのうち、あるスレーブの基底カウンタを基準とした場合に、この基底カウンタ値と前記複数のスレーブ間で前記基底カウンタ値通知手段で送られた各々の基底カウンタ値との差分を求める演算手段と、
前記演算手段の結果を前記スレーブに通知する差分通知手段とを備え、
前記差分通知手段から通知される差分を前記スレーブの基底カウンタ値に加えることで、前記スレーブ間の基底カウンタ値を揃えた状態でスレーブ間の同期処理をし、
前記スレーブには、このスレーブの前記内部処理の整数倍の周期で起動され、このスレーブ内には所定の前記基底カウンタ値で起動される１つまたは複数の第２の内部処理を持ち、前記基底カウンタ値を揃えた状態でスレーブ間の同期処理が終了するまで、これら全ての第２の内部処理は起動しない、マスタ・スレーブ同期通信システム。
【請求項２】
前記内部処理は前記基底カウンタを有し、この内部処理が実行後に前記第２の内部処理が起動する請求項１記載のマスタ・スレーブ同期通信システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、スレーブ間の同期が必要なマスタ・スレーブ同期通信システムに関する。
【背景技術】
【０００２】
従来、モータ制御を行う通信システムにおいて、マスタが１台に対し、複数台のスレーブを接続する方式が一般的に用いられている。制御方式としては、マスタは各スレーブに対し、位置指令や速度指令、トルク（電流）指令を通信にて送信し、現在位置や実速度などスレーブの状態を受信するのが一般的である。また、マスタから各スレーブへ指令を与える場合、個々に送信するデータの内容は異なり、一回の通信で送信できるパケット量にも上限があることからデータ通信上にすべてのスレーブのデータを同時に送ることができなかった。そこで、通信周期を基底サイクルの整数倍に設定し、さらに基底サイクルにカウンタを設け、あるスレーブは特定の基底カウンタのときにデータを受信するようにし、全てのスレーブにデータを送信した後に同時に処理を実行することで同期処理を実現する方法がある（例えば、特許文献１参照）。
【０００３】
また、一回の通信で扱える通信パケット量の増加に伴い、基底サイクルを分けてデータを送信する必要がなくても、周期的に生成される同期信号の整数倍の通信周期を持つ処理を各スレーブ間で同期させる場合、基底サイクルカウンタを利用し、特定のタイミングで処理を開始することで同期処理を実現する方法がある。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００９−７７１１１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、上記に示されるような従来のマスタ・スレーブ同期通信システムは、マスタから各スレーブに送信されるデータにカウンタを設ける必要がある。このため、通信状態によって、マスタからスレーブへデータを同時に送信できない場合、スレーブは処理の開始タイミングを他のスレーブと合わせることができず、周期的に生成される同期信号の整数倍の周期を持つ処理を各スレーブ間で同期させることができないが、上述した技術では考慮されていない。
【０００６】
本発明は上記従来の課題を解決するものであり、マスタからスレーブへデータを同時に送信できない場合においても、スレーブ間の通信同期を実現するマスタ・スレーブ同期通信システムを提供することを目的とする。
【課題を解決するための手段】
【０００７】
マスタと複数のスレーブを通信ケーブルで接続され構成されるマスタ・スレーブ通信システムにおいて、
前記マスタには、前記複数のスレーブ間の同期をとる同期基準信号を発信する同期基準信号発生手段を備え、
前記スレーブには、このスレーブの内部処理の開始タイミングの基準となる処理開始基準信号を発信する処理開始基準信号発生手段と、
前記処理開始基準信号で開始される処理の回数をカウントし、所定の上限の回数で１から繰り返しカウントする基底カウンタと、
前記基底カウンタの基底カウンタ値を他のスレーブと同じタイミングで前記マスタに送信
する基底カウンタ値通知手段とを備え、
また、前記マスタには、あるスレーブの基底カウンタを基準とした場合に、この基底カウンタ値と前記複数のスレーブ間で前記基底カウンタ値通知手段で送られた各々の基底カウンタ値との差分を求める演算手段と、
前記演算手段の結果を前記スレーブに通知する差分通知手段とを備え、
前記差分通知手段から通知される差分を前記スレーブの基底カウンタ値に加えることで、前記スレーブ間の基底カウンタ値を揃え、スレーブ間の同期処理を実現することを特徴とするマスタ・スレーブ同期通信システム。
【発明の効果】
【０００８】
本発明のマスタ・スレーブ同期通信システムによれば、マスタから各スレーブへの一斉データ送信を行う手段がない場合においても、スレーブ間の同期処理が実現できる。
【０００９】
よって、マスタからスレーブに一斉にデータを送信する同期通信を行う前に同期信号より長い周期で処理されるスレーブの処理をスレーブ間で同期させることができる。
【図面の簡単な説明】
【００１０】
【図１】本発明の実施の形態１におけるマスタ・スレーブ同期通信システムの構成図
【図２】本発明の実施の形態１における完全同期未完了時のタイミング図
【図３】本発明の実施の形態１における完全同期完了時のタイミング図
【発明を実施するための形態】
【００１１】
以下、実施の形態について、図面を参照しながら説明する。
【００１２】
（実施の形態１）
図１は、本発明のマスタ・スレーブ同期通信システムの構成図であり、ネットワーク通信のマスタ４、マスタ４に接続されたスレーブ１、スレーブ１に接続されたスレーブ２、３はｎ個目のスレーブで終端のスレーブ３、マスタとスレーブを接続する通信ケーブル５である。
【００１３】
次に、動作について説明する。図２は、完全同期未完了時のマスタ・スレーブ同期通信システムのスレーブ処理タイミング図である。スレーブの処理は、基準信号の立下りタイミング時に処理Ａが起動される。処理Ａは起動される毎にインクリメントされる基底カウンタを備えている。
【００１４】
ここで、図２および後述の図３の処理Ａに書かれている数値は基底カウンタ値である。
【００１５】
処理Ｂは処理Ａの整数倍の周期とし、ここでは、説明のために処理Ｂは処理Ａの４倍の周期とする。このとき、基底カウンタ値は１から４までインクリメントした後、再び１に戻るものとし、基底カウンタ値が１のときの処理Ａ実行後に処理Ｂが起動することで、処理Ｂが周期的に起動される。
【００１６】
ｎ個のスレーブを接続されたマスタ・スレーブ同期通信システムにおいて、電源投入タイミングのズレや内部クロックのばらつきなどによりスレーブ間の基準信号のタイミングにズレが発生するが、各スレーブ共通のタイミングの同期信号を用意し、同期信号と各スレーブの基準信号を同期させることでスレーブ間の基準信号を同期することができる。
【００１７】
しかし、各スレーブの基準信号を同期させるだけでは、処理Ａの基底カウンタは必ずしもスレーブ間で一致するとは限らないため、処理Ｂの起動タイミングにズレが生じる。この状態を完全同期未完了状態とする。
【００１８】
図２では、スレーブ１の処理１Ｂとスレーブ２の処理２Ｂの起動タイミングにズレがある状態を示している。完全同期未完了時に、各スレーブからマスタ４へ基底カウンタ値を通知することでマスタ４はスレーブ間の処理起動タイミングのズレを認識することができる。
【００１９】
スレーブ１の基底カウンタ値を基準とした場合、マスタ４は基底カウンタの上限値に１を加え、スレーブ１の基底カウンタ値が１のときのスレーブ２の基底カウンタ値を引いた値がスレーブ１とスレーブ２の処理Ｂの処理起動タイミングのズレとなる。実施例の場合、基底カウンタの上限値は４であり、スレーブ１の基底カウンタ値が１のときのスレーブ２の基底カウンタ値は２であるため、ズレは３となる。
【００２０】
マスタは演算結果のズレである３をスレーブ２に通知する。スレーブ２は通知されたズレの３を基底カウンタに加える。このとき、処理２Ｂの起動は禁止しておく。これによりスレーブ１の基底カウンタ値が１のときのスレーブ２の基底カウンタ値は５となり、基底カウンタの上限値である４を引くと１となるため、スレーブ１とスレーブ２の基底カウンタの同期が実現し、処理Ｂの起動タイミングが一致する。
【００２１】
図３は完全同期完了時のマスタ・スレーブ同期通信システムのスレーブ処理タイミング図である。これにより基準信号毎に起動される処理の整数倍の周期で起動される全ての処理タイミングが同期したマスタ・スレーブ同期通信システムが実現できる。
【００２２】
なお、図１はライン接続でマスタ・スレーブ同期通信システムの説明をしたが、接続方法はスレーブの接続順序が固定される接続方式であれば、スター接続、ツリー接続、リング接続、バス接続でもよい。
【００２３】
また、基底カウンタが１のときに処理Ｂを起動する例としたが、基底カウンタの値が１以外で処理Ｂを起動してもよい。
【００２４】
また、例として処理Ａの整数倍の周期で起動される処理を１個の場合で説明したが、処理Ａの整数倍の処理が複数個あっても、処理Ａの基底カウンタの数値をスレーブ間で合わせることで、処理Ａの整数倍の周期で起動される処理の起動タイミングをスレーブ間で合わせることができる。
【００２５】
また、スレーブ１を基底カウンタの基準として説明したが、基底カウンタの基準とするスレーブは他のスレーブとしてもよい。
【００２６】
また、スレーブ２のみにズレがある例として説明したが、複数のスレーブにズレが生じている場合においても、１スレーブ毎に基底カウンタを合わせることで完全同期を実現できる。
【００２７】
また、スレーブ間の基底カウンタの差分をマスタで求め、スレーブに通知する方法を説明したが、基準とするスレーブの基底カウンタ値が１のときにマスタが受け取った各スレーブの基底カウンタをそのまま各スレーブに通知し、通知された基底カウンタ時に処理Ｂを起動してもよい。
【産業上の利用可能性】
【００２８】
本発明のマスタ・スレーブ同期通信システムは、マスタからスレーブへ同時にデータを送信しない通信状態を持つ通信方式を利用した通信システムなどにも有用である。
【符号の説明】
【００２９】
１、２、３  スレーブ
４  マスタ
５  通信ケーブル
【図１】
0005877310.tif 000002
【図２】
0005877310.tif 000003
【図３】
0005877310.tif 000004