(57)【特許請求の範囲】
【請求項１】
受信ポートが受信した通信フレームのうち、他の装置へ中継する必要がある通信フレームを受け取って送信ポートへ出力するフレーム中継部と、
通信フレームを生成して前記送信ポートへ出力するフレーム送信部と、
定周期でネットワーク内に送信される通信フレームの到着が予想される時間帯を含んだ期間であるガードタイムにおいて前記フレーム送信部による前記通信フレームの前記送信ポートへの出力を規制する送信フレーム調停部と、
を備えることを特徴とする通信装置。
【請求項２】
前記ガードタイムは前記時間帯および前記フレーム送信部が送信可能なフレームの最大サイズに基づいて決定されていることを特徴とする請求項１に記載の通信装置。
【請求項３】
前記ガードタイムの開始時刻は、前記時間帯の開始時刻から前記フレーム送信部が送信可能な最大サイズのフレームの送信所要時間を減算した時刻であり、前記ガードタイムの終了時刻は、前記時間帯の終了時刻と同じまたは前記時間帯の終了時刻よりも後であることを特徴とする請求項１または２に記載の通信装置。
【請求項４】
前記定周期でネットワーク内に送信される通信フレームを、同期して動作する複数の装置の間での同期制御で使用される同期フレームとすることを特徴とする請求項１、２または３に記載の通信装置。
【請求項５】
前記時間帯に受信した前記同期フレームに基づいて同期制御用の同期パルスを生成し、同期制御対象機器へ出力する同期パルス出力部、
を備えることを特徴とする請求項４に記載の通信装置。
【請求項６】
モーションコントローラと当該モーションコントローラにより同期制御される複数のサーボドライブとを接続するサーボネットワークを構成し、前記モーションコントローラを構成する同期マスタから定周期で送信される通信フレームを利用して前記サーボドライブを制御することを特徴とする請求項１から５のいずれか一つに記載の通信装置。
【請求項７】
同期制御を行うシステムの同期マスタと、前記同期マスタに同期する複数のスレーブユニットとを備え、前記同期マスタは前記複数のスレーブユニットの中の１台と接続され、前記複数のスレーブユニットのうち、前記同期マスタに接続されていないスレーブユニットは、他のスレーブユニットを介して前記同期マスタと通信するネットワークシステムであって、
前記同期マスタは、
前記複数のスレーブユニットの各々に同期タイミングを指定するための同期フレームを定周期で送信する同期タイミング制御部、
を備え、
前記スレーブユニットは、
受信ポートが受信した通信フレームのうち、他の装置へ中継する通信フレームを受け取って送信ポートへ出力するフレーム中継部と、
通信フレームを生成して前記送信ポートへ出力するフレーム送信部と、
前記同期フレームの到着が予想される時間帯を含んだ期間であるガードタイムにおいて前記フレーム送信部による前記通信フレームの前記送信ポートへの出力を規制する送信フレーム調停部と、
を備えることを特徴とするネットワークシステム。
【請求項８】
前記同期マスタは、
前記複数のスレーブユニットの各々との間の通信遅延時間および当該通信遅延時間のジッタを測定する通信遅延測定部と、
前記通信遅延測定部で測定された前記通信遅延時間および前記ジッタに基づいて前記ガードタイムを算出するガードタイム算出部と、
前記ガードタイム算出部で算出された前記ガードタイムを前記スレーブユニットへ通知するパラメータ通知部と、
を備えることを特徴とする請求項７に記載のネットワークシステム。
【請求項９】
前記ガードタイムの開始時刻は、前記時間帯の開始時刻から前記フレーム送信部が送信可能な最大サイズのフレームの送信所要時間を減算した時刻であり、前記ガードタイムの終了時刻は、前記時間帯の終了時刻と同じまたは前記時間帯の終了時刻よりも後であることを特徴とする請求項７または８に記載のネットワークシステム。
【請求項１０】
前記スレーブユニットは、
前記時間帯に受信した前記同期フレームに基づいて同期制御用の同期パルスを生成し、同期制御対象機器へ出力する同期パルス出力部、
を備えることを特徴とする請求項７、８または９に記載のネットワークシステム。
【請求項１１】
モーションコントローラと当該モーションコントローラにより同期制御される複数のサーボドライブとを接続するサーボネットワークを構成することを特徴とする請求項７から１０のいずれか一つに記載のネットワークシステム。
【請求項１２】
第１の他の通信装置から周期的に送信される同期フレームを含む通信フレームを受信する受信ポートと、
第２の他の通信装置に通信フレームを送信する送信ポートと、
前記受信ポートが受信した前記同期フレームを前記送信ポートへ出力させるとともに、前記同期フレームの送信周期よりも短い期間である、前記同期フレームの受信予定期間の開始時刻より前から前記受信予定期間の終了時刻までの期間、においては前記同期フレームではない通信フレームを前記送信ポートに出力させない制御部と、
を備えた通信装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、周期的に送信される通信フレームを受信して他の機器へ中継する機能を有する通信装置およびネットワークシステムに関する。
【背景技術】
【０００２】
従来、工作機械、半導体製造装置、産業用ロボット等の複数の軸を使用した高精度なモーション動作が必要とされるモーションコントロールシステムでは、モーションコントローラと、該モーションコントローラに制御される複数の軸は、動作時に互いに同期させる必要がある。従来のモーションコントロールシステムで使用されている技術として、複数のモーションコントローラから同じ補間指令を入力し、複数のサーボドライブのサーボ位置指令またはサーボトルク指令を、作成タイミングを少しずつずらして作成し、これを複数のサーボドライブに送信することで、単体のモーションコントローラでは所望の制御周期で処理できないような多軸補間指令であっても、所望の制御周期でサーボドライブに指令を出力可能な技術が存在する。各指令の発行から実行までのタイミングは軸毎に一定ではないため、指令の発行タイミングをずらすことで、軸の動作を一致させることができる。【０００３】
従来の技術として、１つのモーションコントローラと複数のサーボドライブがサーボネットワークで接続されたネットワークシステムが知られている。サーボネットワークでは、ＩＥＣ（International  Electrotechnical  Commission）６１４９１またはＩＥＥＥ（Institute  of  Electrical  and  Electronics  Engineers）１３９４のように、予め設定した周期毎に一定数のデータを送信する同期通信機能を有するネットワークを使用し、モーションコントローラから複数のサーボドライブに周期的且つ同一のタイミングでモーション指令データを送信している。さらに、このような同期通信機能を有するネットワークは、ネットワークに接続された各ノードへ周期毎に起動割込みを発生させる機能も備え、この機能を用いて各サーボドライブにおけるサーボ制御処理を周期的且つ同一のタイミングで実行させることで、モーションコントローラとモーションコントローラに制御される複数の軸との同期を実現している。【０００４】
また、特許文献１には、ネットワークにおいて、ネットワーク遅延の変動により、機器間の時間を同期化させる同期化プロトコルの精度が低下する課題を解決する発明が開示されている。この発明では、時間同期を行う２台の装置がタイミングパケットを交換することにより時間オフセットを算出してローカルクロックを調整する際に、タイミングパケットと関連したネットワーク遅延を計測し、計測したネットワーク遅延がしきい値を超える場合にはタイミングパケットを破棄する。これにより、ネットワークの時間同期化処理では、格段に大きなネットワーク遅延を使用することがなくなるので、時間同期化プロトコルの精度が低下するのを防止できる。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００７−１７４６７６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、上記従来の技術によれば、ネットワークの時間同期化の為に周期的に送信されるフレームを中継するタイミングで、他の通信フレームが送信中の場合、通信フレームの送信が完了するまで、時間同期化の為のフレームの中継が遅れるため、遅延時間が増大して同期精度が低下してしまうという問題があった。特許文献１に記載の発明では、ネットワーク遅延がしきい値を超えた場合、時間同期化の為のフレームに相当するタイミングパケットを破棄して不要な時間調整を回避している。しかし、ネットワーク遅延がしきい値を超えない場合にはタイミングパケットを破棄しないため、しきい値を超えない範囲でタイミングパケットの中継遅れが生じた場合には同期精度が低下してしまう。【０００７】
本発明は、上記に鑑みてなされたものであって、周期的に送信される通信フレームを中継する際の遅延時間が増大して同期精度が低下してしまうのを防止することが可能な通信装置を得ることを目的とする。
【課題を解決するための手段】
【０００８】
上述した課題を解決し、目的を達成するために、本発明は、受信ポートが受信した通信フレームのうち、他の装置へ中継する通信フレームを受け取って送信ポートへ出力するフレーム中継部と、通信フレームを生成して前記送信ポートへ出力するフレーム送信部と、定周期でネットワーク内に送信される通信フレームの到着が予想される時間帯を含んだ期間であるガードタイムにおいて前記フレーム送信部による前記通信フレームの前記送信ポートへの出力を規制する送信フレーム調停部と、を備えることを特徴とする。
【発明の効果】
【０００９】
本発明にかかる通信装置は、周期的に送信される通信フレームを中継する際に遅延時間が増大するのを防止することができるという効果を奏する。
【図面の簡単な説明】
【００１０】
【図１】本発明の実施の形態にかかる通信装置が適用されるネットワークシステムの構成例を示す図
【図２】同期マスタを実現するためのハードウェア構成例を示す図
【図３】スレーブユニットの構成例を示す図
【図４】ガードタイムを設定しない場合における同期フレームの中継動作と通信フレームの送信動作の競合例を示す図
【図５】ガードタイムを設定する場合における同期フレームの中継動作と通信フレームの送信動作の競合例を示す図
【発明を実施するための形態】
【００１１】
以下に、本発明の実施の形態にかかる通信装置およびネットワークシステムを図面に基づいて詳細に説明する。なお、この実施の形態によりこの発明が限定されるものではない。
【００１２】
実施の形態．
図１は、本発明の実施の形態にかかる通信装置が適用されるネットワークシステムの構成例を示す図である。
【００１３】
図１に示したネットワークシステムは、一般的なモーションコントローラが有する同期マスタとして動作する同期マスタ１０と、サーボドライブなどの同期制御対象機器である同期対象が接続されているスレーブユニット２０1、２０2、２０3および２０4と、を含んで構成されている。スレーブユニット２０1、２０2、２０3および２０4の構成は同一である。また、同期マスタ１０および各スレーブユニット２０1，２０2，２０3，２０4は通信装置である。なお、本実施の形態では、図１に示したネットワークシステムが、モーションコントローラと複数のサーボドライブを接続するサーボネットワークの場合について説明するが、本発明に係る通信装置をサーボネットワークでの利用に限定するものではない。また、これ以降の説明において、スレーブユニット２０1、２０2、２０3および２０4に共通の事項、すなわち、構成、機能、動作などを説明する場合、スレーブユニット２０1、２０2、２０3および２０4をまとめてスレーブユニット２０と記載する。
【００１４】
ここで、本明細書で述べている同期とは、同期マスタ１０が、ネットワーク経由で軸制御を行う制御データを、アンプを接続している各スレーブユニット２０へ周期的に送信し、制御データを使用して軸制御を行うタイミングを同期フレームによって決定（補正）することである。同期マスタ１０は、定周期で送信する同期フレームと同期フレームの間に、軸制御に必要な制御データを送信する。同期マスタ１０は、モーションコントローラ内において作成された制御データを受け取ると、受け取った制御データを同期フレームと同期フレームの間に送信する。
【００１５】
同期マスタ１０とスレーブユニット２０1がネットワーク１１０を介して接続されている。また、スレーブユニット２０1とスレーブユニット２０2がネットワーク１１０ａを介して接続され、スレーブユニット２０2とスレーブユニット２０3がネットワーク１１０ｂを介して接続され、スレーブユニット２０3とスレーブユニット２０4がネットワーク１１０ｃを介して接続されている。
【００１６】
スレーブユニット２０1，２０2，２０3，２０4は、ネットワーク１１０ａ，１１０ｂ，１１０ｃを通じて、定周期で他のスレーブユニットと通信する。ネットワーク１１０ａ，１１０ｂ，１１０は例えばイーサネット（登録商標）である。
【００１７】
また、スレーブユニット２０1にはシステムバス１３１を介して同期対象１２１が接続され、スレーブユニット２０2にはシステムバス１３２を介して同期対象１２２が接続され、スレーブユニット２０3にはシステムバス１３３を介して同期対象１２３が接続され、スレーブユニット２０4にはシステムバス１３４を介して同期対象１２４が接続されている。
【００１８】
なお、図１に示したネットワークシステムではスレーブユニット２０を４台としているが、スレーブユニット２０の数はこれに限定されない。また、１つのスレーブユニットに接続される同期対象を１つとしているが、複数であってもよい。
【００１９】
次に、同期マスタ１０の構成について説明する。同期マスタ１０は、同期フレームを送信して各スレーブユニット２０に同期処理の実行を指示する同期タイミング制御部１１と、スレーブユニット２０の各々に対し各種のパラメータを通知するパラメータ通知部１２と、同期マスタ１０と各スレーブユニット２０との間の通信遅延時間および通信遅延時間のゆらぎであるジッタを測定する通信遅延測定部１３と、各スレーブユニット２０が同期フレームを受信するタイミングを算出する同期フレーム受信タイミング算出部１４と、各スレーブユニット２０が通信フレームを中継する際に発生する遅延時間を抑制するためのガードタイムを算出するガードタイム算出部１５と、ネットワーク１１０に対して通信フレームを送受信する通信インタフェース部１６と、を備えている。なお、本実施の形態では同期マスタ１０がネットワーク１１０に接続して通信フレームを送受信するための通信インタフェース部１６を備えた構成としているが、この構成に限定されない。同期マスタ１０はシリアルバス、パラレルバス等のシステムバスに接続される構成であってもよい。同期フレームは、システム全体の同期タイミングを指定してシステム内の装置間で同期制御を実現するための通信フレームである。
【００２０】
また、図１の同期マスタ１０においては、説明の都合上、同期マスタ１０が有する機能ごとに機能部を分けて示しているが、本発明はこのような形態に限定されず、１つの機能部が複数の機能部を兼ねる構成であってもよい。なお、図１においては、説明が必要以上に煩雑化するのを回避するために、同期マスタ１０の構成要素のうち、通信フレームを受信する処理に関連する構成要素については記載を省略している。通信フレームは、軸制御を行う制御データの送信で使用される。また、同期フレームは通信フレームの一種である。同期マスタは、定周期で同期フレームを生成してスレーブユニット２０に向けて送信する。また、同期マスタ１０は、モーションコントローラ内で生成された制御データを受け取ると、受け取った制御データが格納された通信フレームを生成し、スレーブユニット２０に向けて送信する。
【００２１】
ここで、同期マスタ１０を実現するためのハードウェア構成について説明する。図２は、同期マスタ１０を実現するためのハードウェア構成例を示す図である。
【００２２】
同期マスタ１０は、プロセッサ１０１と、ＲＡＭ（Random  Access  Memory）、ＲＯＭ（Read  Only  Memory）などで構成されるメモリ１０２と、各種ネットワークに接続するための入出力インタフェース１０３とにより実現することが可能である。プロセッサ１０１、メモリ１０２および入出力インタフェース１０３はバス１００に接続され、バス１００を介してデータ、制御情報などの受け渡しを相互に行うことが可能である。
【００２３】
同期マスタ１０を実現する場合、同期マスタ１０用のプログラムをメモリ１０２に格納しておき、このプログラムをプロセッサ１０１が実行することにより、図１に示した同期タイミング制御部１１、パラメータ通知部１２、通信遅延測定部１３、同期フレーム受信タイミング算出部１４およびガードタイム算出部１５が実現される。通信インタフェース部１６は入出力インタフェース１０３により実現される。なお、複数のプロセッサおよび複数のメモリが連携して同期マスタ１０の各部を実現するようにしてもよい。
【００２４】
次に、スレーブユニット２０1〜２０4の構成について説明する。スレーブユニット２０1〜２０4は同一構成である。そのため、ここではスレーブユニット２０1を例にとって説明を行う。
【００２５】
図３は、スレーブユニット２０1の構成例を示す図である。なお、図３においては、スレーブユニット２０1に接続されている他の装置も併せて記載している。
【００２６】
スレーブユニット２０1は、同期マスタ１０から受信した通信フレームのうち、他のスレーブユニットへ中継すべき通信フレームをスレーブユニット２０2へ中継するフレーム中継部２１と、フレーム中継部２１によるフレーム中継処理と自装置で生成した通信フレームの送信処理を調停する送信フレーム調停部２２と、通信フレームをネットワーク１１０ａへ送信する送信ポート２３と、ネットワーク１１０から通信フレームを受信する受信ポート２４と、自装置宛の同期フレームを受信ポート２４経由で受信する同期フレーム受信部２５と、同期フレームを受信可能な時間範囲を制御するウィンドウ部２６と、同期フレームを受信してからの経過時間をカウントする遅延カウンタ２７と、遅延カウンタ２７のカウント値に基づいて同期制御用の同期パルスを生成して出力する同期パルス出力部２８と、システムバス１３１に対してコマンドなどを送受信するシステムバスインタフェース部２９と、通信フレームの送信が規制される期間であるガードタイムを設定するガードタイム設定部３０と、ガードタイムの設定タイミングおよび解除タイミングをカウントするガードタイムカウンタ３１と、通信フレームを生成して送信するフレーム送信部３２と、を備えている。通信フレームは、周期通信のメッセージ、非周期通信のメッセージを送信するためのフレームである。周期通信において、フレーム送信部３２は、機器を制御するための制御データが格納された通信フレームを生成して送信する。また、非周期通信において、フレーム送信部３２は、自機器のステータスを示すデータ、他機器のメモリ領域へのデータ書き込み要求、他機器のメモリ領域からのデータ読み出し要求、などが格納されたフレームを生成して送信する。
【００２７】
ここで、スレーブユニット２０1による通信フレームの受信動作を説明する。スレーブユニット２０1は同期マスタ１０から通信フレームを受信すると、通信フレームのヘッダに格納されている宛先を確認し、自機器宛の通信フレームか否かを判別する。他のスレーブユニット宛の通信フレームの場合、次のスレーブユニット２０2へ通信フレームを転送する。この場合、スレーブユニット２０1において、通信フレームは、受信ポート２４からフレーム中継部２１へと渡され、送信ポート２３からネットワーク１１０ａへ送信される。一方、受信した通信フレームが自機器宛である場合、スレーブユニット２０1は、通信フレームのヘッダに格納されている種別情報を確認し、受信した通信フレームが同期フレーム、軸制御などで使用する制御フレーム、メッセージフレームのどれに該当しているかを確認する。受信した通信フレームが同期フレームの場合、後述する処理を実行する。また、受信した通信フレームが制御フレームの場合、スレーブユニット２０1は、制御フレームから制御データを読み出し、図３では記載を省略しているメモリ内の制御情報格納領域に制御データを書き込む。また、受信した通信フレームがメッセージフレームの場合、スレーブユニット２０1は、メモリ内のメッセージフレーム格納領域にメッセージフレームを書き込む。メモリに書き込まれたメッセージフレームは、図３では記載を省略しているメッセージフレーム処理部により読み出されてメッセージの内容が解析され、メッセージの内容に応じた処理が実行される。
【００２８】
本実施の形態では、ネットワークシステムがライン型で構成された場合を想定しているため、スレーブユニット２０1が送信ポート２３および受信ポート２４を備えた構成としている。しかし、送信ポート２３および受信ポート２４の双方の機能を備えた送受信ポートを有する構成としてもよい。また、送受信用のインタフェースはネットワークを中継する機能を有していればよく、ネットワークのトポロジは特定のものに限定されない。ツリー型など、スレーブユニット２０に相当する機器において他の機器への通信フレームの中継が発生するネットワークであれば本発明を適用可能である。
【００２９】
図３においては、説明が必要以上に煩雑化するのを回避するために、スレーブユニット２０1を実現する上で必要な一般的な構成要素、具体的には、マイコン、メモリ、クロックなどについては記載を省略している。また、スレーブユニット２０1は、同期フレームの中継動作に特徴を有する。そのため、図３においては同期フレームの中継動作に関連する構成要素の記載にとどめ、その他の処理、具体的には、スレーブユニット２０1が同期マスタ１０に通信フレームを送信する処理などに関連する構成要素については記載を省略している。
【００３０】
また、図３においては、説明の都合上、スレーブユニット２０1が有する機能ごとに機能部を分けて示しているが、本発明はこのような形態に限定されず、１つの機能部が複数の機能部を兼ねる構成であってもよい。
【００３１】
スレーブユニット２０1の構成要素の一部または全ては、同期マスタ１０と同様に、図２に示した構成のハードウェアによって実現することが可能である。
【００３２】
本実施の形態では、スレーブユニット２０1，２０2，２０3，２０4がネットワーク１１０，１１０ａ，１１０ｂ，１１０ｃを介した通信を行い同期マスタ１０と同期する動作について説明するが、同期マスタ１０との同期を実現する目的とは異なる他の目的のためにネットワーク１１０，１１０ａ，１１０ｂ，１１０ｃを介した通信を行ってもよい。また、スレーブユニット２０1，２０2，２０3，２０4は、スイッチングハブ、ルータなどのネットワーク中継器であってもよい。
【００３３】
次に、図１に示した構成の同期マスタ１０の各部の詳細について説明する。
【００３４】
同期マスタ１０の同期タイミング制御部１１は、同期フレームを定周期で送信し、送信された同期フレームは、ネットワーク１１０を介してスレーブユニット２０1により受信され、ネットワーク１１０ａに転送される。ネットワーク１１０ａに転送された同期フレームはスレーブユニット２０2により受信され、ネットワーク１１０ｂに転送される。ネットワーク１１０ｂに転送された同期フレームはスレーブユニット２０3により受信され、ネットワーク１１０ｃに転送される。ネットワーク１１０ｃに転送された同期フレームはスレーブユニット２０4により受信される。このようにして、同期フレームはスレーブユニット２０1、２０2、２０3および２０4まで到着する。なお、同期フレームの形式について限定しない。受信側に同期フレームであることを知らせるための情報を含んでいればよく、イーサネットヘッダまたはデータ領域に１ビットの同期フレームであるか否かのフラグ情報を付加したものを同期フレームとしてもよい。これ以外の形式であっても構わない。
【００３５】
パラメータ通知部１２は、通信遅延測定部１３による測定結果、同期フレーム受信タイミング算出部１４による算出結果およびガードタイム算出部１５による算出結果をスレーブユニット２０1、２０2、２０3および２０4へ通知する。
【００３６】
通信遅延測定部１３は、同期タイミング制御部１１が同期フレームをネットワーク１１０に出力してから同期対象が接続されているスレーブユニット２０の各々に入力されるまでの時間である通信遅延時間を測定するとともに、通信遅延時間のジッタを測定する。通信遅延測定部１３が通信遅延時間およびジッタを測定する方法については特に限定しない。通信遅延測定部１３は、ＩＥＥＥ１５８８規格で規定された方法などを用いて通信遅延時間とジッタを測定すればよい。
【００３７】
ここで、ＩＥＥＥ１５８８規格で規定された方法による通信遅延時間の測定では、通信遅延時間を測定する２台の装置の一方がマスタ、他方がスレーブとして動作し、規定のメッセージをマスタとスレーブの間で送受信することにより、スレーブが通信遅延時間を算出する。そのため、通信遅延測定部１３は、ＩＥＥＥ１５８８規格に従った方法で通信遅延時間を測定する場合、通信遅延時間を測定する処理におけるマスタとして同期マスタ１０が動作するのであれば、スレーブとして動作するスレーブユニット２０で算出された通信遅延時間をスレーブユニット２０から取得する。通信遅延測定部１３が通信遅延時間を直接測定する構成とする場合、通信遅延測定部１３は、スレーブユニット２０に対して通信遅延時間を測定する処理におけるマスタとして動作するよう依頼し、自身はスレーブとして動作する。通信遅延測定部１３は、通信遅延時間の測定を複数回にわたって実行し、その結果得られた複数の測定結果の平均値を最終的な通信遅延時間とする。また、通信遅延測定部１３は、複数の測定結果のばらつきをジッタとする。通信遅延測定部１３は、スレーブユニット２０1〜２０4の各々について、通信遅延時間およびジッタを測定する。
【００３８】
同期フレーム受信タイミング算出部１４は、通信遅延測定部１３が測定した通信遅延時間に基づいて、スレーブユニット２０1〜２０4の各々が同期フレームを受信するタイミングを算出する。同期フレーム受信タイミング算出部１４による算出結果である同期フレーム受信タイミングは、パラメータ通知部１２によってスレーブユニット２０1〜２０4の各々に通知される。すでに説明したように、同期フレームは同期タイミング制御部１１から定周期で送信される。よって、同期タイミング制御部１１が同期フレームを送信する時刻も予め決まっている。そのため、同期フレーム受信タイミング算出部１４は、同期タイミング制御部１１が同期フレームを送信する時刻に対して、通信遅延測定部１３で測定されたスレーブユニット２０毎の通信遅延時間を加算し、各スレーブユニット２０の同期フレーム受信タイミングを算出する。
【００３９】
ガードタイム算出部１５は、通信遅延測定部１３が測定した通信遅延時間およびジッタに基づいて、スレーブユニット２０1〜２０4の各々のガードタイムを算出する。ガードタイムは期間を示す情報である。詳細については別途説明するが、スレーブユニット２０1〜２０4の各々は、ガードタイムが示す期間においては他の機器から受信した通信フレームを中継する処理は行うが、通常のフレーム送信処理は行わない。
【００４０】
ガードタイムを算出する場合、ガードタイム算出部１５は、まず、同期タイミング制御部１１が同期フレームを送信する時刻に対して、通信遅延測定部１３で測定されたスレーブユニット２０毎の通信遅延時間を加算し、スレーブユニット２０の各々に同期フレームが到着するタイミングを算出する。通信遅延時間にはジッタが存在するため、ガードタイム算出部１５は、次に、スレーブユニット２０に同期フレームが到着するタイミングが通信遅延時間のジッタの中心と一致し、かつガードタイムが示す期間の長さとジッタが同じになるか、ガードタイムが示す期間の長さの方がジッタよりも長くなるよう、ガードタイムを算出する。ガードタイムは、ネットワークシステムで許容されている最大サイズの通信フレームを送信する場合の送信所要時間を考慮して算出されるのが望ましい。最大サイズの通信フレームを送信する場合の送信所要時間を考慮してガードタイムを算出するのが望ましい理由については別途説明する。仮に、同期タイミング制御部１１が同期フレームを送信する時刻をＴ、同期マスタ１０とスレーブユニット２０1の間の通信遅延時間をＤ、ジッタをＸ、最大サイズの通信フレームの送信所要時間をＹとし、ガードタイムが示す期間の開始時刻をｔs、終了時刻をｔeとすると、ガードタイム算出部１５は、次式（１）に従ってｔsおよびｔeを算出する。なお、ジッタに対してマージンを設定し、次式（２）に従ってｔsおよびｔeを算出するようにしてもよい。式（２）において、αがマージンであり、０＜αとする。ただし、ガードタイムの算出方法をこれらに限定するものではない。
【００４１】
ｔs＝Ｔ＋Ｄ−Ｘ/２−Ｙ
ｔe＝Ｔ＋Ｄ＋Ｘ/２        …（１）
【００４２】
ｔs＝Ｔ＋Ｄ−（Ｘ＋α）/２−Ｙ
ｔs＝Ｔ＋Ｄ＋（Ｘ＋α）/２        …（２）
【００４３】
ここでは、ガードタイム算出部１５が、通信遅延測定部１３で測定された通信遅延時間およびジッタに基づいてスレーブユニット２０1〜２０4の各々のガードタイムを算出することとした。しかし、式（１）および式（２）における「Ｔ＋Ｄ」は同期フレーム受信タイミング算出部１４で算出される、スレーブユニット２０1〜２０4の各々が同期フレームを受信するタイミングに相当する。そのため、ガードタイム算出部１５は、同期フレーム受信タイミング算出部１４での算出結果を受け取り、受け取った算出結果と通信遅延測定部１３で測定されたジッタに基づいてガードタイムを算出するようにしてもよい。
【００４４】
ガードタイム算出部１５により算出されたガードタイムは、パラメータ通知部１２によってスレーブユニット２０1〜２０4の各々に通知される。
【００４５】
次に、図３に示した構成のスレーブユニット２０1の各部の詳細について説明する。
【００４６】
フレーム中継部２１は、受信ポート２４から転送されてきた通信フレームを解析し、転送されてきた通信フレームがスレーブユニット２０2へ中継する必要がある通信フレームであり、かつ送信フレーム調停部２２から中継許可を示す信号が出力されている場合、送信ポート２３へ通信フレームを出力する。送信フレーム調停部２２から中継許可を示す信号が出力されていない場合、通信ポート２３へ出力することなく通信フレームを保持し続け、送信フレーム調停部２２から中継許可を示す信号が出力されている状態となった後に、保持していた通信フレームを送信ポート２３へ出力する。
【００４７】
同期フレームはスレーブユニット２０2へ中継する必要がある通信フレームに該当するが、フレーム中継部２１には、同期フレームの他にも、中継する必要がある通信フレームが転送されてくる場合がある。同期フレーム以外の通信フレームのうち、中継する必要があるものとしては、宛先がマルチキャストの通信フレーム、宛先が自スレーブユニット以外のユニキャストフレームなどがある。フレーム中継部２１は、同期フレーム以外の中継する必要がある通信フレームを受け取った場合にも中継処理を行う。ただし、先に到着している通信フレームが存在する場合には、これを追い抜かすことはなく、先に到着している通信フレームの中継が終了してから、中継する。すなわち、受信ポート２４から受け取った順番通りに中継を行う。
【００４８】
送信フレーム調停部２２は、フレーム中継部２１により中継される通信フレームとフレーム送信部３２により送信される通信フレームが競合することのないよう、フレーム中継部２１に中継許可または中継不可を示す信号を出力するとともに、フレーム送信部３２に送信許可または送信不可を示す出力信号を出力する。
【００４９】
すなわち、送信フレーム調停部２２は、フレーム中継部２１およびフレーム送信部３２の動作を監視し、フレーム中継部２１が通信フレームを中継している間は、送信不可を示す信号をフレーム送信部３２に出力する。また、送信フレーム調停部２２は、フレーム送信部３２が通信フレームを送信している間は、中継不可を示す信号をフレーム中継部２１に出力する。送信フレーム調停部２２によるフレーム中継部２１およびフレーム送信部３２の動作の監視方法については特に規定しないが、フレーム中継部２１は中継処理を実行中にその旨を示す信号を送信フレーム調停部２２へ出力し、フレーム送信部３２は送信処理を実行中にその旨を示す信号を送信フレーム調停部２２へ出力する構成とすることで、送信フレーム調停部２２は、フレーム中継部２１およびフレーム送信部３２の動作状態を把握できる。この構成の場合、送信フレーム調停部２２は、フレーム中継部２１が中継処理を実行しておらず、かつフレーム送信部３２が送信処理を実行していなければ、フレーム中継部２１に中継許可を示す信号を出力するとともにフレーム送信部３２に送信許可を示す信号を出力する。送信フレーム調停部２２は、フレーム中継部２１が中継処理を開始したことを検知するとフレーム送信部３２に対して送信不可を示す信号を出力する。同様に、送信フレーム調停部２２は、フレーム送信部３２が送信処理を開始したことを検知するとフレーム中継部２１に対して中継不可を示す信号を出力する。ただし、後述するガードタイム設定部３０によりガードタイムが設定された場合はこの限りではない。送信フレーム調停部２２は、ガードタイムにおいては、フレーム中継部２１の動作状態によらず、フレーム送信部３２に対して送信不可を示す信号を出力し続ける。
【００５０】
同期フレーム受信部２５は、受信ポート２４から自スレーブユニットを対象とする同期フレームを受信して解析する。同期フレーム受信部２５は、同期フレームを受信すると、ウィンドウ部２６に同期フレームの到着を通知する。
【００５１】
ウィンドウ部２６は、同期フレームの受信可能な時間範囲である受信ウィンドウを制御する。同期フレームは定周期での受信が期待されるが、何らかの要因によって期待される定周期以外のタイミングで受信してしまうことがある。ウィンドウ部２６は、定周期以外のタイミングで受信した同期フレームが同期タイミングを乱すことがないように、期待される受信タイミングから大きく外れて到着した同期フレームか否かを判別する。ウィンドウ部２６は、受信ウィンドウが示す時間範囲において同期フレーム到着の通知を同期フレーム受信部２５から受けると、同期フレームの到着を遅延カウンタ２７に通知する。一方、受信ウィンドウが示す時間範囲以外で同期フレーム到着の通知を同期フレーム受信部２５から受けると、これを無視する。期待される同期フレームの受信タイミングは、同期マスタ１０から通知される同期フレーム受信タイミングを用いてもよいし、その他の手段で決定した値を用いてもよい。ウィンドウ幅は同期マスタ１０から自装置までの通信遅延時間のジッタに基づいて決定してもよい。この場合、ジッタと同じになるかジッタよりも広くなるよう、ウィンドウ幅を決定する。ただし、ウィンドウ幅の決定方法をこれに限定するものではない。
【００５２】
遅延カウンタ２７は、図示を省略しているクロックに同期してカウントアップを行う。遅延カウンタ２７は、同期フレームが到着した旨の通知をウィンドウ部２６から受けるとカウントを開始し、上限値までカウントアップすると初期値にクリアされる。初期値は、０以外の値であってもよい。
【００５３】
同期パルス出力部２８は、内部に設定されている同期パルス出力値と遅延カウンタ２７の値とを比較し、一致を検出するとシステムバスインタフェース部２９を介してシステムバス１３１に同期パルスを出力する。同期パルス出力値の設定値は変更可能とする。また、設定されている同期パルス出力値は複数であってもよい。この場合、１つの同期周期につき同期パルスを複数回出力する。同期パルス出力部２８が出力する同期パルスは、１つの同期周期につき１度のみ出力するように設定されていてもよい。予め設定しておく同期パルス出力値は、遅延カウンタ２７が取りうる範囲内となるように設定する。同期パルス出力値は、同期マスタ１０から通知される通信遅延時間およびジッタに基づいて設定してもよい。
【００５４】
なお、スレーブユニット２０1は、同期フレーム以外の通信フレームのうち、制御フレームを受信した場合、制御情報を取り出し、システムバス１３１を介して、制御情報を同期対象１２１へ出力する。同期対象１２１は、制御データを元に、同期パルスの受信タイミングで軸制御などを行う。
【００５５】
スレーブユニット２０1がウィンドウ部２６を備えたことにより、同期精度が劣化するのを防止できる。また、遅延カウンタ２７と、同期パルス設定値の設定を変更可能な同期パルス出力部２８とを備えたことにより、同期フレームの到着タイミングを基準とした任意のタイミングで、同期対象１２１へ同期パルスを出力することができる。
【００５６】
ガードタイム設定部３０は、同期マスタ１０のガードタイム算出部１５で算出されたガードタイムの情報を受け取り、受け取った情報に基づき、ガードタイムを送信フレーム調停部２２に設定する。送信フレーム調停部２２は、ガードタイム設定部３０により設定されたガードタイムにおいては、フレーム中継部２１に中継許可を示す信号を出力し、フレーム送信部３２には送信不可を示す信号を出力する。
【００５７】
なお、ここでは、ガードタイム設定部３０は、同期マスタ１０のガードタイム算出部１５で算出されたガードタイムの情報を受け取り、受け取った情報に基づいてガードタイムを送信フレーム調停部２２に設定することとしたが、スレーブユニット２０1側でガードタイムを算出することも可能である。ガードタイムの算出はガードタイム設定部３０が行ってもよいし、ガードタイムを算出するための構成要素を独立に設けてもよい。すなわち、同期マスタ１０のガードタイム算出部１５と同様の方法でガードタイム設定部３０などがガードタイムを算出してもよい。ガードタイムの算出で必要な通信遅延時間およびジッタは同期マスタ１０から取得してもよいし、同期マスタ１０の通信遅延測定部１３と同様の方法によりスレーブユニット２０1側で測定するようにしてもよい。
【００５８】
フレーム送信部３２は、通信フレームを生成し、同期マスタ１０、他のスレーブユニット（スレーブユニット２０2，２０3，２０4）が送信する同期フレームを含む通信フレームとは非同期に、生成した通信フレームを送信する。ただし、フレーム送信部３２は、送信フレーム調停部２２から送信許可を示す信号が出力されている場合に、通信フレームを送信ポート２３へ出力する。送信フレーム調停部２２から送信不可を示す信号が出力されている場合、フレーム送信部３２は、送信許可を示す信号の出力が開始されるまで、通信フレームの送信を待つ。
【００５９】
つづいて、本実施の形態のネットワークシステムにおける特徴的な動作について、図４および図５を参照しながら説明する。
【００６０】
図４は、図１に示した構成のネットワークシステムにおいて、スレーブユニット２０のガードタイム設定部３０が送信フレーム調停部２２にガードタイムを設定しない場合における、フレーム中継部２１による同期フレームの中継動作とフレーム送信部３２による通信フレームの送信動作の競合例を示す図である。図４では、ウィンドウ部２６、フレーム中継部２１、フレーム送信部３２および送信ポート２３の状態を示している。スレーブユニット２０は、ウィンドウ部２６の状態が「オープン」となっている期間で受信した同期フレームを有効なものとして取り扱い、他のスレーブユニットへ中継する。一方「クローズ」となっている期間で受信した同期フレームについては無効なものとして取り扱う。なお、「クローズ」期間で受信した同期フレームも他のスレーブユニットに中継しても良いが、中継せずに破棄してもよい。
【００６１】
図４に示した動作例では、時刻ｔ1でフレーム送信部３２が通信フレームの送信を開始する。その後、時刻ｔ2でフレーム中継部２１が同期フレームを中継しようとするが、送信ポート２３はフレーム送信部３２から受け取った通信フレームを送信している最中であるため、時刻ｔ3に同期フレームを送信しようとしても、通信フレームの送信が完了する時刻ｔ4まで待たされる。そして、時刻ｔ4で同期フレームの中継が開始となる。この同期フレーム中継の待機が発生することにより同期フレームの伝送遅延が大きくなり、同期精度が低下してしまう。
【００６２】
一方、図５は、図１に示した構成のネットワークシステムにおいて、スレーブユニット２０のガードタイム設定部３０が送信フレーム調停部２２にガードタイムを設定する場合における、フレーム中継部２１による同期フレームの中継動作とフレーム送信部３２による通信フレームの送信動作の競合例を示す図である。図５では、ウィンドウ部２６、ガードタイム設定部３０、フレーム中継部２１、フレーム送信部３２および送信ポート２３の状態を示している。
【００６３】
図５に示した動作例では、時刻ｔ5からｔ8の期間でガードタイム設定部３０がガードタイムを設定しており、この期間では通信フレームの中継だけが許可され、スレーブユニット２０の内部で生成した通信フレームの送信は不許可となる。すなわち、送信フレーム調停部２２はこの期間においてフレーム中継部２１に中継許可を示す信号を出力する。そのため、時刻ｔ6でフレーム送信部３２が通信フレームを送信しようとするが、ガードタイムが設定されており、送信フレーム調停部２２から送信許可を示す信号が出力されていないため、送信が待たされる。その後、時刻ｔ7において、フレーム中継部２１が同期マスタ１０から受信した同期フレームの中継を開始しようとする。このとき、ガードタイム設定部３０がガードタイムを設定しており、送信フレーム調停部２２から中継許可を示す信号が出力されているため、フレーム中継部２１は同期フレームの中継をすぐに開始する。時刻ｔ8でガードタイム設定部３０がガードタイムの設定を解除すると、送信フレーム調停部２２からフレーム送信部３２へ送信許可を示す信号が出力され、待たされていたフレーム送信部３２は通信フレームの送信を開始する。このように、同期フレームの到着が予想される期間にガードタイムを設定し、フレーム送信部３２による送信動作を規制するので、フレーム送信部３２による通信フレームの送信が同期フレームを中継する際の遅延発生要因となるのを防止することができる。よって、同期フレームの伝送遅延時間の増大により同期精度が低下してしまうのを防止できる。
【００６４】
ここで、スレーブユニット２０1は、ウィンドウ部２６により制御される受信ウィンドウで同期フレームを受信した場合に有効な同期フレームの受信と判断する。そのため、ガードタイムカウンタ３１に設定する時間は、受信ウィンドウの開始時刻より、フレーム送信部３２が送信しうる１通信フレームの最大時間分前にガードタイムが開始となり、受信ウィンドウの終了時刻に合わせてガードタイムが終了するようにする。すなわち、フレーム送信部３２によるフレーム送信が受信ウィンドウの開始時点において終了していないことがないように、ガードタイムの開始タイミングを設定する。１通信フレームの最大時間は、通信フレームが最大サイズの場合の送信所要時間に相当する。
【００６５】
なお、ガードタイムが設定された期間では、同期フレーム以外のフレームの中継処理も行う。
【００６６】
また、定周期で繰り返し送信される同期フレームを一度中継すると、しばらくの間は同期フレームの中継が発生しない。そのため、以下のような動作としてもよい。すなわち、フレーム中継部２１は、中継したフレームが同期フレームか否かを判別し、同期フレームを中継した場合には同期フレームの中継実施をガードタイム設定部３０に通知し、この通知を受けたガードタイム設定部は、送信フレーム調停部２２に対するガードタイムの設定を解除する。この場合、同期フレームの中継が実施されたことをトリガとしてガードタイムが解除となるので、スレーブユニット２０は、同期フレームを遅滞なく中継することができるとともに、フレーム送信部３２による通信フレームの送信待機時間が必要以上に長くなるのを回避できる。
【００６７】
以上のように、本実施の形態のスレーブユニットは、定周期で送信される同期フレームの到着が予想される時間帯を含んだ期間にガードタイムを設定し、自スレーブユニットで生成した通信フレームの送信を規制する。これにより、同期フレームの中継処理において中継待機の発生により遅延時間が増大してしまうのを防止でき、同期精度を向上させることができる。
【００６８】
なお、本実施の形態では本発明にかかる通信装置であるスレーブユニット２０をモーションコントロールシステムに適用する場合について説明したが、定周期で送信される通信フレームを受信して他の装置へ中継する通信装置であれば、本発明を適用することが可能である。また、定周期で送信される通信装置を中継する場合に限らず、既知のタイミングで送信される通信フレームを中継する場合にも適用することができる。この場合、既知のタイミングで送信される通信フレームを中継する通信装置は、既知のタイミングを含む期間において通信フレームの送信を規制して中継処理のみを許容することにより、通信フレームの中継を遅滞なく行うことができる。
【００６９】
以上の実施の形態に示した構成は、本発明の内容の一例を示すものであり、別の公知の技術と組み合わせることも可能であるし、本発明の要旨を逸脱しない範囲で、構成の一部を省略、変更することも可能である。
【符号の説明】
【００７０】
１０  同期マスタ、１１  同期タイミング制御部、１２  パラメータ通知部、１３  通信遅延測定部、１４  同期フレーム受信タイミング算出部、１５  ガードタイム算出部、１６  通信インタフェース部、２０1，２０2，２０3，２０4  スレーブユニット、２１  フレーム中継部、２２  送信フレーム調停部、２３  送信ポート、２４  受信ポート、２５  同期フレーム受信部、２６  ウィンドウ部、２７  遅延カウンタ、２８  同期パルス出力部、２９  システムバスインタフェース部、３０  ガードタイム設定部、３１  ガードタイムカウンタ、３２  フレーム送信部、１００  バス、１０１  プロセッサ、１０２  メモリ、１０３  入出力インタフェース、１１０，１１０ａ，１１０ｂ，１１０ｃ  ネットワーク、１２１〜１２４  同期対象、１３１〜１３４  システムバス。
【要約】
本発明にかかる通信装置であるスレーブユニット２０1は、受信ポート２４が受信した通信フレームのうち、他の装置へ中継する通信フレームを受け取って送信ポート２３へ出力するフレーム中継部２１と、通信フレームを生成して送信ポート２３へ出力するフレーム送信部３２と、定周期でネットワーク内に送信される通信フレームの到着が予想される時間帯を含んだ期間であるガードタイムにおいてフレーム送信部３２による通信フレームの送信ポート２３への出力を規制する送信フレーム調停部２２と、を備えている。【図１】
0006005307.tif 000002
【図２】
0006005307.tif 000003
【図３】
0006005307.tif 000004
【図４】
0006005307.tif 000005
【図５】
0006005307.tif 000006