(57)【特許請求の範囲】
【請求項１】
第一の通信装置と第二の通信装置との時刻を同期させるために通信される同期フレームを、前記第一の通信装置から受信するフレーム受信部と、
前記フレーム受信部によって受信された前記同期フレームを記憶するバッファ部と、
前記フレーム受信部によって前記同期フレームが受信されたときから経過した経過時間を計測する経過時間計測部と、
前記経過時間計測部によって計測された前記経過時間が、前記同期フレームの送信を遅らせるための定遅延時間に達したか否かを判定する経過時間判定部と、
前記経過時間判定部によって前記経過時間が前記定遅延時間に達したと判定されたときに、前記バッファ部に記憶された前記同期フレームを前記第二の通信装置に送信するフレーム送信部と、
前記同期フレーム以外のフレームである通常フレームの送信に要する時間以上の時間として予め定められた前記定遅延時間を記憶する定遅延時間記憶部と、
ネットワークを識別するネットワーク識別子と、前記定遅延時間の候補である候補時間とを対応付けて記憶する候補時間記憶部と、
入力されるネットワーク識別子と同じネットワーク識別子に対応付けられた候補時間を前記候補時間記憶部から取得し、取得した前記候補時間を前記定遅延時間として前記定遅延時間記憶部に記憶させる定遅延時間設定部と
を備えることを特徴とする中継装置。
【請求項２】
前記フレーム受信部は、前記通常フレームを受信し、
前記バッファ部は、前記フレーム受信部によって受信された前記通常フレームを記憶し、
前記フレーム送信部は、前記バッファ部に記憶された前記通常フレームの送信を開始し、
前記フレーム送信部は、前記通常フレームの送信中に前記フレーム受信部によって前記同期フレームが受信された場合、前記同期フレームが受信されたときから経過した前記経過時間が前記定遅延時間に達したと判定される前に、前記通常フレームの送信を完了することを特徴とする請求項１記載の中継装置。
【請求項３】
前記経過時間計測部は、前記同期フレームが受信されたときから前記経過時間が前記定遅延時間に達したと判定されるときまで、前記経過時間を計測し、
前記フレーム送信部は、前記フレーム受信部によって新たな通常フレームが受信された場合、前記経過時間計測部によって前記経過時間が計測されている間、前記新たな通常フレームの送信を開始しない
ことを特徴とする請求項２記載の中継装置。
【請求項４】
前記フレーム送信部は、前記経過時間が前記定遅延時間に達したと判定されたときに前記同期フレームを送信し、前記同期フレームを送信した後に前記新たな通常フレームを送信する
ことを特徴とする請求項３記載の中継装置。
【請求項５】
中継装置を用いる中継方法であって、
フレーム受信部が、第一の通信装置と第二の通信装置との時刻を同期させるために通信される同期フレームを、前記第一の通信装置から受信し、
バッファ部が、前記同期フレームを記憶し、
経過時間計測部が、前記フレーム受信部によって前記同期フレームが受信されたときから経過した経過時間を計測し、
経過時間判定部が、前記経過時間が、前記同期フレームの送信を遅らせるための定遅延時間に達したか否かを判定し、
フレーム送信部が、前記経過時間判定部によって前記経過時間が前記定遅延時間に達したと判定されたときに、前記バッファ部に記憶された前記同期フレームを前記第二の通信装置に送信し、
定遅延時間記憶部が、前記同期フレーム以外のフレームである通常フレームの送信に要する時間以上の時間として予め定められた前記定遅延時間を記憶し、
候補時間記憶部が、ネットワークを識別するネットワーク識別子と、前記定遅延時間の候補である候補時間とを対応付けて記憶し、
定遅延時間設定部が、入力されるネットワーク識別子と同じネットワーク識別子に対応付けられた候補時間を前記候補時間記憶部から取得し、取得した前記候補時間を前記定遅延時間として前記定遅延時間記憶部に記憶させる
ことを特徴とする中継方法。
【請求項６】
請求項１から請求項４いずれかに記載の中継装置としてコンピュータを機能させる中継プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、例えば、同期フレームを中継する中継装置、中継方法および中継プログラムに関するものである。
【背景技術】
【０００２】
ＦＡ（Ｆａｃｔｏｒｙ  Ａｕｔｏｍａｔｉｏｎ）では、モータまたはアクチュエータなどの複数の機器を連携して動作させる。
ＦＡで製品の加工精度を向上させるためには、各機器が動作するタイミングの精度が高い方が良い。【０００３】
通常、ＦＡで機器の動作タイミングを制御するために各機器に時計を持たせ、時計の時刻を合わせて各機器を使用する。
以下に、各機器の動作タイミングを制御する従来技術について説明する。
（１）各機器はネットワークに接続する。
（２）マスタと呼ばれる機器は、ネットワークを介して他の機器（以下、スレーブ）に時刻を通知する。
（３）マスタの時刻を受信した各スレーブは時計の時刻をマスタの時刻に合わせる。
（４）マスタは、動作指令と実行時刻とをネットワークを介して各スレーブに通知する。
（５）各スレーブは、実行時刻になったときに動作指令に従って動作する。
以上により、各機器の動作タイミングが制御される。【０００４】
図１１は、従来技術における時刻同期方法を示すシーケンス図である。
従来技術（非特許文献１参照）における時刻同期方法について、図１１に基づいて説明する。
以下の説明において、マスタおよびスレーブは中継装置を介してフレームを通信する。
ここで、中継装置がフレームを中継する処理に要する時間を中継時間Ｔｄとし、通信ケーブルがフレームの伝搬に要する時間を伝搬時間Ｔｐとする。
また、図中の「Ｔｍ」にマスタの時刻の具体例を示し、図中の「Ｔｓ」にスレーブの時刻の具体例を示す。【０００５】
（１）マスタは、時刻Ｔｍ１に、マスタの時刻Ｔｍ１を含んだＳｙｎｃフレームを、中継装置を介してスレーブに送信する。【０００６】
（２）スレーブはＳｙｎｃフレームを受信する。ここで、スレーブがＳｙｎｃフレームを受信したときのスレーブの時刻を「Ｔｓ１」とする。
スレーブは、Ｓｙｎｃフレームに含まれるマスタの時刻Ｔｍ１に基づいて、スレーブの時刻Ｔｓ１を時刻Ｔｓ２に修正する。時刻Ｔｓ２は以下の式（ａ）で表すことができる。【０００７】
Ｔｓ２＝Ｔｓ１−（Ｔｓ１−Ｔｍ１）      式（ａ）【０００８】
このとき、スレーブの時刻Ｔｓ２は、マスタの時刻Ｔｍ１に対して、中継装置の中継時間Ｔｄとネットワークの伝搬時間Ｔｐとを合計した遅延時間（Ｔｄ＋Ｔｐ）だけ遅れた時刻である。つまり、以下の式（ｂ）の関係が成り立つ。【０００９】
Ｔｓ２＝Ｔｍ１＋（Ｔｄ＋Ｔｐ）      式（ｂ）【００１０】
（３）スレーブは、遅延時間（Ｔｄ＋Ｔｐ）を計測するためのＤｅｌａｙ＿Ｒｅｑフレームを、中継装置を介してマスタに送信する。
ここで、スレーブがＤｅｌａｙ＿Ｒｅｑフレームを送信したときのスレーブの時刻を「Ｔｓ３」とし、マスタの時刻を「Ｔｍ３」とする。【００１１】
（４）マスタはＤｅｌａｙ＿Ｒｅｑフレームを受信する。ここで、マスタがＤｅｌａｙ＿Ｒｅｑを受信したときのマスタの時刻を「Ｔｍ４」とする。時刻Ｔｍ４は以下の式（ｃ）で表すことができる。【００１２】
Ｔｍ４（＝Ｔｍ３＋（Ｔｄ＋Ｔｐ））      式（ｃ）【００１３】
（５）マスタは、Ｄｅｌａｙ＿Ｒｅｑフレームを受信した時刻Ｔｍ４を含んだＤｅｌａｙ＿Ｒｅｓｐフレームを、中継装置を介してスレーブに送信する。【００１４】
（６）スレーブは、Ｄｅｌａｙ＿Ｒｅｓｐフレームを受信する。スレーブは、Ｄｅｌａｙ＿Ｒｅｓｐフレームに含まれるマスタの時刻Ｔｍ４に基づいて、遅延時間（Ｔｄ＋Ｔｐ）を以下のように算出する。【００１５】
（６−１）スレーブがＤｅｌａｙ＿Ｒｅｑフレームを送信したときのマスタの時刻を「Ｔｍ３」とする。時刻Ｔｍ３は以下の式（ｄ）で表すことができる。【００１６】
Ｔｍ３＝Ｔｓ３＋（Ｔｄ＋Ｔｐ）      式（ｄ）【００１７】
（６−２）上記の式（ｄ）を上記の式（ｃ）に代入すると、以下の式（ｅ）が得られる。【００１８】
Ｔｍ４＝（Ｔｓ３＋（Ｔｄ＋Ｔｐ））＋（Ｔｄ＋Ｔｐ）＝Ｔｓ３＋２（Ｔｄ＋Ｔｐ）      式（ｅ）【００１９】
上記の式（ｅ）から以下の式（ｆ）が得られる。【００２０】
Ｔｍ４−Ｔｓ３＝２（Ｔｄ＋Ｔｐ）      式（ｆ）【００２１】
したがって、遅延時間（Ｔｄ＋Ｔｐ）は以下の式（ｇ）で表すことができる。【００２２】
（Ｔｄ＋Ｔｐ）＝（Ｔｍ４−Ｔｓ３）／２      式（ｇ）【００２３】
（７）スレーブは、スレーブの時刻Ｔｓ４を遅延時間（Ｔｄ＋Ｔｐ）だけ進めた時刻Ｔｓ５に修正する。時刻Ｔｓ５は以下の式（ｈ）で表すことができる。【００２４】
Ｔｓ５＝Ｔｓ４＋（Ｔｄ＋Ｔｐ）＝Ｔｓ４＋（Ｔｍ４−Ｔｓ３）／２      式（ｈ）【００２５】
以上の処理により、マスタの時刻Ｔｍ５とスレーブの時刻Ｔｓ５とが一致する。
例えば、図中の「Ｔｍ」「Ｔｓ」に示す時刻の場合、マスタの時刻Ｔｍ５とスレーブの時刻Ｔｓ５とが共に「３９０」になる。【００２６】
図１１に示すような時刻同期方法は、ＰＴＰ（Ｐｒｅｃｉｓｉｏｎ  Ｔｉｍｅ  Ｐｒｏｔｏｃｏｌ）と呼ばれる。【００２７】
但し、従来の時刻同期方法（ＰＴＰ）は、フレームの中継時間Ｔｄが変動しないことを前提にしているため、フレームの中継時間Ｔｄが変動すると同期精度が低下する。【００２８】
図１２は、従来技術における時刻同期方法による時刻のずれを示すシーケンス図である。
例えば、従来の時刻同期方法（ＰＴＰ）では、マスタの時刻とスレーブの時刻とが図１２に示すようにずれてしまう。【００２９】
図１２では、Ｄｅｌａｙ＿Ｒｅｑフレームの遅延時間が、Ｓｙｎｃフレームの遅延時間（Ｔｄ＋Ｔｐ）に対して「ΔＴｄ」だけ変動している。
つまり、Ｄｅｌａｙ＿Ｒｅｑフレームの遅延時間は「Ｔｄ＋ΔＴｄ＋Ｔｐ」である。【００３０】
この場合、スレーブがＤｅｌａｙ＿Ｒｅｑフレームを送信したときのマスタの時刻Ｔｍ３は、図１１の場合と同じく、以下の式（ｄ）で表される。【００３１】
Ｔｍ３＝Ｔｓ３＋（Ｔｄ＋Ｔｐ）      式（ｄ）【００３２】
しかし、マスタがＤｅｌａｙ＿Ｒｅｑフレームを受信したときのマスタの時刻Ｔｍ４は、図１１とは異なり、以下の式（ｉ）で表される。【００３３】
Ｔｍ４＝Ｔｍ３＋（Ｔｄ＋ΔＴｄ＋Ｔｐ）      式（ｉ）【００３４】
そして、上記の式（ｄ）を上記の式（ｉ）に代入すると、以下の式（ｊ）が得られる。【００３５】
（Ｔｄ＋Ｔｐ）＝（Ｔｍ４−Ｔｓ３）／２−ΔＴｄ／２      式（ｊ）【００３６】
つまり、図１１と図１２とでは遅延時間（Ｔｄ＋Ｔｐ）が「−ΔＴｄ／２」だけ異なる。【００３７】
そのため、スレーブが、図１１と同様に式（ｈ）を用いて、スレーブの時刻Ｔｓ４を時刻Ｔｓ５に修正した場合、スレーブの時刻Ｔｓ５がマスタの時刻ｔｍ５に対して「ΔＴｄ／２」だけ進んだ時刻になってしまう。【００３８】
例えば、図中の「Ｔｍ」において、Ｓｙｎｃフレームの遅延時間（Ｔｄ＋Ｔｐ）は「５０」であり、Ｄｅｌａｙ＿Ｒｅｑフレームの遅延時間（Ｔｄ＋ΔＴｄ＋Ｔｐ）は「７０」であり、遅延時間の変動量ΔＴｄは「２０（＝７０−５０）」である。
この場合、スレーブの時刻Ｔｓ５（＝４００）は、マスタの時刻Ｔｍ５（＝３９０）に対して「１０（＝２０／２）」だけ進んだ時刻になってしまう。【００３９】
図１３は、従来技術におけるフレーム中継方法を示す概要図である。
例えば、フレームの中継時間Ｔｄは、図１３に示すようにフレームの送信タイミングが衝突するときに「Ｔｄ＋ΔＴｄ」に変動してしまう。【００４０】
図１３では、中継装置は、Ｄｅｌａｙ＿Ｒｅｑフレームをスレーブから受信したときに、何らかのフレームＦを送信中である。
この場合、中継装置は、フレームＦを送信し終わるまで、Ｄｅｌａｙ＿Ｒｅｑフレームをマスタに送信することができない。
そのため、Ｄｅｌａｙ＿Ｒｅｑフレームの中継時間は、フレームＦを送信し終わるまでの時間ΔＴｄだけ長くなり、「Ｔｄ＋ΔＴｄ」に変動する。
【先行技術文献】
【非特許文献】
【００４１】
【非特許文献１】ＩＥＥＥ  Ｓｔｄ  １５８８−２００８  （Ｒｅｖｉｓｉｏｎ  ｏｆ  ＩＥＥＥ  Ｓｔｄ  １５８８−２００２）、「ＩＥＥＥ  Ｓｔａｎｄａｒｄ  ｆｏｒ  ａ  Ｐｒｅｃｉｓｉｏｎ  Ｃｌｏｃｋ  Ｓｙｎｃｈｒｏｎｉｚａｔｉｏｎ  Ｐｒｏｔｏｃｏｌ  ｆｏｒ  Ｎｅｔｗｏｒｋｅｄ  Ｍｅａｓｕｒｅｍｅｎｔ  ａｎｄ  Ｃｏｎｔｒｏｌ  Ｓｙｓｔｅｍｓ」、２００８年７月２４日発行、ｐ．ｃ１〜２６９
【発明の概要】
【発明が解決しようとする課題】
【００４２】
本発明は、例えば、同期フレームの中継に要する中継時間が変動しないようにすることを目的とする。
【課題を解決するための手段】
【００４３】
本発明の中継装置は、
第一の通信装置と第二の通信装置との時刻を同期させるために通信される同期フレームを、前記第一の通信装置から受信するフレーム受信部と、
前記フレーム受信部によって受信された前記同期フレームを記憶するバッファ部と、
前記フレーム受信部によって前記同期フレームが受信されたときから経過した経過時間を計測する経過時間計測部と、
前記経過時間計測部によって計測された前記経過時間が、前記同期フレームの送信を遅らせるための定遅延時間に達したか否かを判定する経過時間判定部と、
前記経過時間判定部によって前記経過時間が前記定遅延時間に達したと判定されたときに、前記バッファ部に記憶された前記同期フレームを前記第二の通信装置に送信するフレーム送信部とを備える。
【発明の効果】
【００４４】
本発明によれば、例えば、同期フレームの中継に要する中継時間を変動させないようにすることができる。
【図面の簡単な説明】
【００４５】
【図１】実施の形態１における通信システム１００の構成図である。
【図２】実施の形態１における中継装置２００の構成図である。
【図３】実施の形態１における中継装置２００のフレーム中継処理を示すフローチャートである。
【図４】実施の形態１におけるバッファ部２２０のフレーム出力処理（Ｓ１４０）を示すフローチャートである。
【図５】実施の形態１におけるバッファ部２２０の動作を示す表である。
【図６】実施の形態１におけるフレーム中継方法を示す概要図である。
【図７】実施の形態１における通信システム１００の時刻同期手順の一例を示すシーケンス図である。
【図８】実施の形態１における中継装置２００のハードウェア資源の一例を示す図である。
【図９】実施の形態２における中継装置２００の構成図である。
【図１０】実施の形態２における定遅延時間テーブル２８１を示す図である。
【図１１】従来技術における時刻同期方法を示すシーケンス図である。
【図１２】従来技術における時刻同期方法による時刻のずれを示すシーケンス図である。
【図１３】従来技術におけるフレーム中継方法を示す概要図である。
【発明を実施するための形態】
【００４６】
実施の形態１．
同期フレームの中継に要する中継時間が変動しないようにする形態について説明する。
【００４７】
図１は、実施の形態１における通信システム１００の構成図である。
実施の形態１における通信システム１００の構成について、図１に基づいて説明する。
【００４８】
通信システム１００は、ネットワーク１０９を介して通信フレーム１０１（通信パケットまたは通信データともいう）を通信するためのネットワークシステムである。
通信システム１００は、マスタ装置１１０とスレーブ装置１２０と中継装置２００とを備える。
【００４９】
マスタ装置１１０とスレーブ装置１２０とは、互いに時刻を同期させて通信フレーム１０１を通信する通信装置である。
以下、時刻を同期させるために通信される通信フレーム１０１を「同期フレーム」といい、同期フレーム以外のフレームを「通常フレーム」という。
【００５０】
中継装置２００は、通信フレーム１０１をマスタ装置１１０とスレーブ装置１２０との間で中継する通信装置である。
【００５１】
図２は、実施の形態１における中継装置２００の構成図である。
実施の形態１における中継装置２００の構成について、図２に基づいて説明する。
【００５２】
中継装置２００は、フレーム受信部２１０と、バッファ部２２０と、フレーム送信部２３０と、フレーム生成部２４０と、フレーム判定部２５０と、定時間遅延部２６０（経過時間計測部、経過時間判定部の一例）と、定遅延時間記憶部２７０とを備える。
【００５３】
フレーム受信部２１０は、ネットワーク１０９から通信フレーム１０１を受信する構成である。
バッファ部２２０は、通信フレーム１０１を一時的に記憶する構成である。
フレーム送信部２３０は、通信フレーム１０１をネットワーク１０９に送信する構成である。
フレーム生成部２４０は、通信フレーム１０１（通常フレーム）を生成する構成である。
【００５４】
フレーム判定部２５０は、フレーム受信部２１０によって受信された通信フレーム１０１が通常フレームと同期フレームとのいずれの種類のフレームであるかを判定する構成である。
通信フレーム１０１が同期フレームである場合、フレーム判定部２５０は、通信フレーム１０１が同期フレームであることを通知するための同期信号２５１を、バッファ部２２０と定時間遅延部２６０とに出力する。
【００５５】
定時間遅延部２６０は、同期フレームの送信を一定の時間だけ遅延させる構成である。以下、同期フレームの送信を遅延させる一定の時間を「定遅延時間２７１」という。
定時間遅延部２６０は、定遅延時間２７１が経過するまで間、定遅延時間２７１の経過待ちであることを通知するための定時間遅延信号２６１を、バッファ部２２０に出力する。
定時間遅延部２６０は、定遅延時間２７１が経過したときに、定遅延時間２７１が経過したことを通知するための遅延終了信号２６２を、バッファ部２２０に出力する。
【００５６】
定遅延時間記憶部２７０は、定遅延時間２７１を記憶する構成である。
定遅延時間２７１は、フレーム送信部２３０が通信フレーム１０１を送信し始めてから送信し終わるまでに要する最長の送信時間以上の時間である。
【００５７】
図３は、実施の形態１における中継装置２００のフレーム中継処理を示すフローチャートである。
実施の形態１における中継装置２００のフレーム中継処理について、図３に基づいて説明する。
【００５８】
中継装置２００は、フレーム受信部２１０が通信フレーム１０１を受信する毎に、図３に示すフレーム中継処理を実行する。
【００５９】
Ｓ１１０において、フレーム受信部２１０は、ネットワーク１０９から通信フレーム１０１を受信する。
Ｓ１１０の後、処理はＳ１１１に進む。
【００６０】
Ｓ１１１において、フレーム受信部２１０は、受信した通信フレーム１０１をバッファ部２２０とフレーム判定部２５０とに出力する。
バッファ部２２０は、フレーム受信部２１０から出力された通信フレーム１０１を通信バッファに記憶する。
例えば、バッファ部２２０は、通信フレーム１０１と、通信フレーム１０１の種類を示すフレーム種類フラグとを対応付けて記憶する。このとき、フレーム種類フラグの初期値は通常フレームを意味するフラグ値にする。
Ｓ１１１の後、処理はＳ１２０に進む。
【００６１】
Ｓ１２０において、フレーム判定部２５０は、フレーム受信部２１０から出力された通信フレーム１０１が同期フレームと通常フレームとのいずれの種類のフレームであるかを判定する。
例えば、通信フレーム１０１は、同期フレームと通常フレームとのいずれの種類であるかを示すフレーム種類フラグをフレームヘッダに有する。そして、フレーム判定部２５０は、通信フレーム１０１のフレームヘッダを参照し、フレームヘッダに設定されているフレーム種類フラグのフラグ値に基づいて通信フレーム１０１の種類を判定する。但し、フレーム判定部２５０は、その他の方法によって通信フレーム１０１の種類を判定しても構わない。
通信フレーム１０１が同期フレームである場合、処理はＳ１２１に進む。
通信フレーム１０１が通常フレームである場合、処理はＳ１４０に進む。
【００６２】
Ｓ１２１において、フレーム判定部２５０は、バッファ部２２０と定時間遅延部２６０とに同期信号２５１を出力する。
フレーム判定部２５０から同期信号２５１が出力された場合、バッファ部２２０は、Ｓ１１１で記憶した通信フレーム１０１を同期フレームとして保持する。
例えば、バッファ部２２０は、通信フレーム１０１（同期フレーム）とフレーム種類フラグとを対応付けて記憶すると共に、同期フレームを意味するフラグ値をフレーム種類フラグに設定する。
Ｓ１２１の後、処理はＳ１３０に進む。
【００６３】
Ｓ１３０において、定時間遅延部２６０は、フレーム判定部２５０から同期信号２５１が出力されたときに経過時間の計測を開始する。
そして、定時間遅延部２６０は、単位経過時間（例えば、０．１秒）が経過する毎に、経過時間が定遅延時間２７１に達したか否かを判定する。
また、定時間遅延部２６０は、経過時間が定遅延時間２７１に達するまでの間、バッファ部２２０に定時間遅延信号２６１を出力し続ける。
【００６４】
つまり、定時間遅延部２６０は、同期フレームが受信されたときから経過した経過時間を計測し、計測している経過時間が定遅延時間２７１に達するまでバッファ部２２０に定時間遅延信号２６１を出力し続ける。
【００６５】
例えば、定時間遅延部２６０は、定遅延時間２７１として予め定められている定遅延カウント値を定遅延時間記憶部２７０から取得する。そして、定時間遅延部２６０は、定遅延カウント値からカウントダウンを開始する。そして、定遅延カウント値がゼロになるまでの間、定時間遅延部２６０はバッファ部２２０に定時間遅延信号２６１を出力し続ける。
但し、定時間遅延部２６０は、カウント数をゼロからカウントアップし、カウント数が定遅延カウント値になるまでバッファ部２２０に定時間遅延信号２６１を出力し続けても構わない。また、定時間遅延部２６０は、その他の方法で経過時間を計測しても構わない。
【００６６】
経過時間が定遅延時間２７１に達したと判定したとき、処理はＳ１３１に進む。
【００６７】
Ｓ１３１において、定時間遅延部２６０は、経過時間の計測を終了し、遅延終了信号２６２をバッファ部２２０に出力する。
Ｓ１３１の後、処理はＳ１４０に進む。
【００６８】
Ｓ１４０において、バッファ部２２０は、後述するフレーム出力処理によって、通信フレーム１０１をフレーム送信部２３０に出力する。
Ｓ１４０の後、処理はＳ１５０に進む。
【００６９】
Ｓ１５０において、フレーム送信部２３０は、バッファ部２２０から出力された通信フレーム１０１をネットワーク１０９に送信する。
Ｓ１５０の後、フレーム中継処理は終了する。
【００７０】
上記のＳ１２０において通信フレーム１０１が通常フレームであった場合、フレーム判定部２５０は、通信フレーム１０１が通常フレームであることを通知するための通常信号をバッファ部２２０に出力してもよい。
フレーム判定部２５０から通常信号が出力された場合、バッファ部２２０は、Ｓ１１１で記憶した通信フレーム１０１を通常フレームとして保持する。
例えば、バッファ部２２０は、通信フレーム１０１（通常フレーム）とフレーム種類フラグとを対応付けて記憶すると共に、通常フレームを意味するフラグ値をフレーム種類フラグに設定する。
【００７１】
図４は、実施の形態１におけるバッファ部２２０のフレーム出力処理（Ｓ１４０）を示すフローチャートである。
実施の形態１におけるバッファ部２２０のフレーム出力処理（Ｓ１４０）について、図４に基づいて説明する。
【００７２】
バッファ部２２０は、図４に示すフレーム出力処理（Ｓ１４０）を繰り返し実行する。
【００７３】
Ｓ１４１において、バッファ部２２０は、定時間遅延部２６０から定時間遅延信号２６１または遅延終了信号２６２が出力されているか否かを判定する。
定時間遅延部２６０から定時間遅延信号２６１が出力されている場合、処理は移行しない。
定時間遅延部２６０から遅延終了信号２６２が出力された場合、処理はＳ１４４に進む。
定時間遅延部２６０から定時間遅延信号２６１と遅延終了信号２６２とのいずれの信号も出力されていない場合、処理はＳ１４２に進む。
【００７４】
Ｓ１４２において、バッファ部２２０は、通常フレームを記憶しているか否かを判定する。
例えば、バッファ部２２０は、通常フレームを意味するフラグ値と共に記憶している通信フレーム１０１が有るか否かを判定する。
通常フレームを記憶している場合、処理はＳ１４３に進む。
通常フレームを記憶していない場合、処理はＳ１４１に戻る。
【００７５】
Ｓ１４３において、バッファ部２２０は、記憶している通常フレームをフレーム送信部２３０に出力し、通信バッファから通常フレームを削除する。複数の通常フレームを記憶している場合、バッファ部２２０は、最初に記憶した通常フレームをフレーム送信部２３０に出力する。
Ｓ１４３の後、処理はＳ１４１に戻る。
【００７６】
Ｓ１４４において、バッファ部２２０は、記憶している同期フレームをフレーム送信部２３０に出力し、通信バッファから同期フレームを削除する。
つまり、バッファ部２２０は、同期フレームの他に通常フレームを記憶している場合であっても、通常フレームではなく同期フレームを優先してフレーム送信部２３０に出力する。
例えば、同期フレームを意味するフラグ値と共に記憶している通信フレーム１０１が同期フレームである。
Ｓ１４４の後、処理はＳ１４１に戻る。
【００７７】
図５は、実施の形態１におけるバッファ部２２０の動作を示す表である。
実施の形態１におけるバッファ部２２０の動作について、図５に基づいて説明する。
【００７８】
（１）定時間遅延部２６０から定時間遅延信号２６１と遅延終了信号２６２とのいずれの信号も出力されていない場合、バッファ部２２０は、通常フレームをフレーム送信部２３０に出力する。
（２）定時間遅延部２６０から定時間遅延信号２６１が出力されている間、バッファ部２２０は、通常フレームと同期フレームとのいずれの通信フレーム１０１もフレーム送信部２３０に出力しない。
（３）定時間遅延部２６０から遅延終了信号２６２が出力されたとき、バッファ部２２０は、同期フレームをフレーム送信部２３０に出力する。
【００７９】
図６は、実施の形態１におけるフレーム中継方法を示す概要図である。
実施の形態１におけるフレーム中継方法の概要について、図６に基づいて説明する。
【００８０】
中継装置２００は、送信中の通信フレームＦｃがあるか否かに関わらず、同期フレームＦｓを受信したときから定遅延時間Ｔｃが経過したときに同期フレームＦｓを送信する。
【００８１】
ここで、定遅延時間Ｔｃは、フレーム送信部２３０が通信フレーム１０１を送信し始めてから送信し終わるまでに要する最長の送信時間以上の時間である。
【００８２】
例えば、マスタ装置１１０およびスレーブ装置１２０によって通信される通信フレームＦｃの最大のフレームサイズが規定によって定められているものとする。また、フレームサイズが最大である通信フレームＦｃを「最大フレーム」とする。
この場合、定遅延時間Ｔｃは、フレーム送信部２３０が最大フレームを送信し始めてから送信し終わるまでに要する送信時間以上の時間である。
【００８３】
したがって、同期フレームＦｓが受信されたときから通信フレームＦｃの送信が終わるときまでの待ち時間ΔＴｄに対して、「定遅延時間Ｔｃ  ≧  待ち時間ΔＴｄ」の関係が成り立つ。
つまり、同期フレームＦｓが受信されたときから定遅延時間Ｔｃが経過するときまでに、通信フレームＦｃの送信は終了する。
【００８４】
そのため、同期フレームＦｓが受信されたときから同期フレームＦｓの送信が開始されるときまでの遅延時間は、常に、定遅延時間Ｔｃである。
【００８５】
図７は、実施の形態１における通信システム１００の時刻同期手順の一例を示すシーケンス図である。
例えば、非特許文献１に記載の時刻同期方法（ＰＴＰ：Ｐｒｅｃｉｓｉｏｎ  Ｔｉｍｅ  Ｐｒｏｔｏｃｏｌ）を適用した場合、マスタ装置１１０およびスレーブ装置１２０は、以下のように同期する。
【００８６】
図中の「Ｔｍ」にマスタ装置１１０の時刻の具体例を示し、図中の「Ｔｓ」にスレーブ装置１２０の時刻の具体例を示す。
【００８７】
（１）マスタ装置１１０は、時刻Ｔｍ１に、時刻Ｔｍ１を含んだＳｙｎｃフレームを送信する。中継装置２００（図示省略）は、Ｓｙｎｃフレームをスレーブ装置１２０に中継する。
【００８８】
（２）スレーブ装置１２０は、Ｓｙｎｃフレームを受信する。ここで、スレーブ装置１２０がＳｙｎｃフレームを受信したときのスレーブ装置１２０の時刻を「Ｔｓ１」とする。
スレーブ装置１２０は、Ｓｙｎｃフレームに含まれるマスタ装置１１０の時刻Ｔｍ１に基づいて、スレーブ装置１２０の時刻Ｔｓ１を時刻Ｔｓ２に修正する。時刻Ｔｓ２は以下の式（Ａ）で表すことができる。
【００８９】
Ｔｓ２＝Ｔｓ１−（Ｔｓ１−Ｔｍ１）      式（Ａ）
【００９０】
このとき、スレーブ装置１２０の時刻Ｔｓ２は、マスタ装置１１０の時刻Ｔｍ１に対して、中継装置２００の定遅延時間Ｔｃとネットワーク１０９の伝搬時間Ｔｐとを合計した遅延時間（Ｔｃ＋Ｔｐ）だけ遅れた時刻である。つまり、以下の式（Ｂ）の関係が成り立つ。
【００９１】
Ｔｓ２＝Ｔｍ１＋（Ｔｃ＋Ｔｐ）      式（Ｂ）
【００９２】
（３）スレーブ装置１２０は、遅延時間（Ｔｃ＋Ｔｐ）を計測するためのＤｅｌａｙ＿Ｒｅｑフレームを送信する。中継装置２００は、Ｄｅｌａｙ＿Ｒｅｑフレームをマスタ装置１１０に中継する。
ここで、スレーブ装置１２０がＤｅｌａｙ＿Ｒｅｑフレームを送信したときのスレーブ装置１２０の時刻を「Ｔｓ３」とし、マスタ装置１１０の時刻を「Ｔｍ３」とする。
【００９３】
（４）マスタ装置１１０はＤｅｌａｙ＿Ｒｅｑフレームを受信する。ここで、マスタ装置１１０がＤｅｌａｙ＿Ｒｅｑを受信したときのマスタ装置１１０の時刻を「Ｔｍ４」とする。時刻Ｔｍ４は以下の式（Ｃ）で表すことができる。
【００９４】
Ｔｍ４（＝Ｔｍ３＋（Ｔｃ＋Ｔｐ））      式（Ｃ）
【００９５】
（５）マスタ装置１１０は、Ｄｅｌａｙ＿Ｒｅｑフレームを受信した時刻Ｔｍ４を含んだＤｅｌａｙ＿Ｒｅｓｐフレームを送信する。中継装置２００は、Ｄｅｌａｙ＿Ｒｅｓｐフレームをスレーブ装置１２０に中継する。
【００９６】
（６）スレーブ装置１２０は、Ｄｅｌａｙ＿Ｒｅｓｐフレームを受信する。スレーブ装置１２０は、Ｄｅｌａｙ＿Ｒｅｓｐフレームに含まれるマスタ装置１１０の時刻Ｔｍ４に基づいて、遅延時間（Ｔｃ＋Ｔｐ）を以下のように算出する。
【００９７】
（６−１）スレーブ装置１２０がＤｅｌａｙ＿Ｒｅｑフレームを送信したときのマスタ装置１１０の時刻を「Ｔｍ３」とする。時刻Ｔｍ３は以下の式（Ｄ）で表すことができる。
【００９８】
Ｔｍ３＝Ｔｓ３＋（Ｔｃ＋Ｔｐ）      式（Ｄ）
【００９９】
（６−２）上記の式（Ｄ）を上記の式（Ｃ）に代入すると、以下の式（Ｅ）が得られる。
【０１００】
Ｔｍ４＝（Ｔｓ３＋（Ｔｃ＋Ｔｐ））＋（Ｔｃ＋Ｔｐ）＝Ｔｓ３＋２（Ｔｃ＋Ｔｐ）      式（Ｅ）
【０１０１】
上記の式（Ｅ）から以下の式（Ｆ）が得られる。
【０１０２】
Ｔｍ４−Ｔｓ３＝２（Ｔｃ＋Ｔｐ）      式（Ｆ）
【０１０３】
したがって、遅延時間（Ｔｃ＋Ｔｐ）は以下の式（Ｇ）で表すことができる。
【０１０４】
（Ｔｃ＋Ｔｐ）＝（Ｔｍ４−Ｔｓ３）／２      式（Ｇ）
【０１０５】
（７）スレーブ装置１２０は、時刻Ｔｓ４を遅延時間（Ｔｃ＋Ｔｐ）だけ進めた時刻Ｔｓ５に修正する。時刻Ｔｓ５は以下の式（Ｈ）で表すことができる。
【０１０６】
Ｔｓ５＝Ｔｓ４＋（Ｔｃ＋Ｔｐ）＝Ｔｓ４＋（Ｔｍ４−Ｔｓ３）／２      式（Ｈ）
【０１０７】
以上の処理により、マスタ装置１１０の時刻Ｔｍ５とスレーブ装置１２０の時刻Ｔｓ５とが一致する。
例えば、図中の「Ｔｍ」「Ｔｓ」に示す時刻の場合、マスタ装置１１０の時刻Ｔｍ５とスレーブ装置１２０の時刻Ｔｓ５とが共に「３９０」になる。
【０１０８】
図８は、実施の形態１における中継装置２００のハードウェア資源の一例を示す図である。
図８において、中継装置２００（コンピュータの一例）は、ＣＰＵ９０１（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）を備えている。ＣＰＵ９０１は、バス９０２を介してＲＯＭ９０３、ＲＡＭ９０４、通信ボード９０５などのハードウェアデバイスと接続され、これらのハードウェアデバイスを制御する。
ＲＯＭ９０３およびＲＡＭ９０４はバッファまたは記憶装置の一例である。
【０１０９】
通信ボード９０５は、有線または無線で、ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、インターネット、電話回線などの通信網に接続している。
【０１１０】
ＲＯＭ９０３またはＲＡＭ９０４などの記憶装置には、ＯＳ（オペレーティングシステム）、プログラム群、ファイル群が記憶されている。
【０１１１】
プログラム群には、実施の形態において「〜部」として説明する機能を実行するプログラムが含まれる。プログラム（例えば、中継プログラム）は、ＣＰＵ９０１により読み出され実行される。すなわち、プログラムは、「〜部」としてコンピュータを機能させるものであり、また「〜部」の手順や方法をコンピュータに実行させるものである。
【０１１２】
ファイル群には、実施の形態において説明する「〜部」で使用される各種データ（入力、出力、判定結果、計算結果、処理結果など）が含まれる。
【０１１３】
実施の形態において構成図およびフローチャートに含まれている矢印は主としてデータや信号の入出力を示す。
フローチャートなどに基づいて説明する実施の形態の処理はハードウェア（例えば、ＣＰＵ９０１）を用いて実行される。
【０１１４】
実施の形態において「〜部」として説明するものは「〜回路」、「〜装置」、「〜機器」であってもよく、また「〜ステップ」、「〜手順」、「〜処理」であってもよい。すなわち、「〜部」として説明するものは、ファームウェア、ソフトウェア、ハードウェアまたはこれらの組み合わせのいずれで実装されても構わない。
【０１１５】
実施の形態１により、例えば、以下のような効果を奏する。
中継装置２００は、同期フレームを受信したときから定遅延時間２７１が経過するときまで同期フレームおよび通常フレームを送信せず、定遅延時間２７１が経過したときに同期フレームを送信する。つまり、中継装置２００は、同期フレームの中継に要する中継時間を一定の時間（定遅延時間２７１）に保ち、同期フレームに対する中継時間の変動を防ぐことができる。そして、マスタ装置１１０およびスレーブ装置１２０は、中継装置２００を介して同期フレームを通信することにより、互いの時刻を正確に同期させることができる。
【０１１６】
実施の形態１において、例えば、以下のような中継装置（２００）について説明した。括弧内に対応する構成の符号または名称を記す。
前記中継装置は、フレーム受信部（２１０）と、バッファ部（２２０）と、経過時間計測部（２６０）と、経過時間判定部（２６０）と、フレーム送信部（２３０）とを備える。
前記フレーム受信部は、第一の通信装置（１１０）と第二の通信装置（１２０）との時刻を同期させるために通信される同期フレームを、前記第一の通信装置から受信する（Ｓ１１０）。
前記バッファ部は、前記フレーム受信部によって受信された前記同期フレームを記憶する（Ｓ１１１）。
前記経過時間計測部は、前記フレーム受信部によって前記同期フレームが受信されたときから経過した経過時間を計測する（Ｓ１３０）。
前記経過時間判定部は、前記経過時間計測部によって計測された前記経過時間が、前記同期フレームの送信を遅らせるための定遅延時間（２７１）に達したか否かを判定する（Ｓ１３０）。
前記フレーム送信部は、前記経過時間判定部によって前記経過時間が前記定遅延時間に達したと判定されたときに、前記バッファ部に記憶された前記同期フレームを前記第二の通信装置に送信する（Ｓ１４４、Ｓ１５０）。
【０１１７】
前記中継装置は、前記同期フレーム以外のフレームである通常フレームの送信に要する時間以上の時間として予め定められた前記定遅延時間を記憶する定遅延時間記憶部（２７０）を備える。
前記フレーム受信部は、前記通常フレームを受信する（Ｓ１１０）。
前記バッファ部は、前記フレーム受信部によって受信された前記通常フレームを記憶する（Ｓ１１１）。
前記フレーム送信部は、前記バッファ部に記憶された前記通常フレームの送信を開始する（Ｓ１４３、Ｓ１５０）。
前記フレーム送信部は、前記通常フレームの送信中に前記フレーム受信部によって前記同期フレームが受信された場合、前記同期フレームが受信されたときから経過した前記経過時間が前記定遅延時間に達したと判定される前に、前記通常フレームの送信を完了する（Ｓ１５０）。
【０１１８】
前記経過時間計測部は、前記同期フレームが受信されたときから前記経過時間が前記定遅延時間に達したと判定されるときまで、前記経過時間を計測する（Ｓ１３０）。
前記フレーム送信部は、前記フレーム受信部によって新たな通常フレームが受信された場合、前記経過時間計測部によって前記経過時間が計測されている間、前記新たな通常フレームの送信を開始しない（Ｓ１４１で「定時間遅延信号」の場合）。
【０１１９】
前記フレーム送信部は、前記経過時間が前記定遅延時間に達したと判定されたときに前記同期フレームを送信し、前記同期フレームを送信した後に前記新たな通常フレームを送信する（Ｓ１４４）。
【０１２０】
実施の形態２．
定遅延時間２７１を変更できるようにする形態について説明する。
以下、実施の形態１と異なる事項について主に説明する。説明を省略する事項については実施の形態１と同様である。
【０１２１】
図９は、実施の形態２における中継装置２００の構成図である。
実施の形態２における中継装置２００の構成について、図９に基づいて説明する。
【０１２２】
中継装置２００は、実施の形態１（図２参照）の構成に加えて、定遅延時間設定部２８０を備える。
【０１２３】
定遅延時間設定部２８０は、定遅延時間記憶部２７０に定遅延時間２７１を設定するための構成である。
例えば、管理者は、中継装置２００を設置するネットワーク１０９の種類に応じて定遅延時間２７１を決定し、決定した定遅延時間２７１を定遅延時間設定部２８０に入力する。そして、定遅延時間設定部２８０は、入力された定遅延時間２７１を定遅延時間記憶部２７０に記憶する。
【０１２４】
図１０は、実施の形態２における定遅延時間テーブル２８１を示す図である。
例えば、定遅延時間設定部２８０は、図１０に示すように、「ネットワーク」と「定遅延時間」とを対応付ける定遅延時間テーブル２８１（候補時間記憶部の一例）を記憶してもよい。
この場合、管理者は、中継装置２００を設置するネットワーク１０９（またはネットワーク１０９の種類）を識別するネットワーク識別子を定遅延時間設定部２８０に入力する。
そして、定遅延時間設定部２８０は、入力されたネットワーク識別子に対応付けられた定遅延時間２７１を定遅延時間テーブル２８１から取得し、取得した定遅延時間２７１を定遅延時間記憶部２７０に記憶する。
【０１２５】
実施の形態２により、例えば、以下のような効果を奏する。
中継装置２００は、ネットワーク１０９の種類に応じて、同期フレームの定遅延時間２７１を変更することができる。
【０１２６】
実施の形態２において、例えば、以下のような中継装置（２００）について説明した。括弧内に対応する構成の符号または名称を記す。
中継装置は、入力される入力時間を前記定遅延時間（２７１）として前記定遅延時間記憶部（２７０）に記憶させる定遅延時間設定部（２８０）を備える。
【０１２７】
中継装置は、候補時間記憶部（２８１）と、定遅延時間設定部（２８０）とを備える。
候補時間記憶部は、ネットワーク（１０９）を識別するネットワーク識別子（例えば、Ｎａ）と、前記定遅延時間の候補である候補時間（例えば、Ｔｃ（Ｎａ））とを対応付けて記憶する。
定遅延時間設定部は、入力されるネットワーク識別子と同じネットワーク識別子に対応付けられた候補時間を前記候補時間記憶部から取得し、取得した前記候補時間を前記定遅延時間として前記定遅延時間記憶部（２７０）に記憶させる。
【符号の説明】
【０１２８】
１００  通信システム、１０１  通信フレーム、１０９  ネットワーク、１１０  マスタ装置、１２０  スレーブ装置、２００  中継装置、２１０  フレーム受信部、２２０  バッファ部、２３０  フレーム送信部、２４０  フレーム生成部、２５０  フレーム判定部、２５１  同期信号、２６０  定時間遅延部、２６１  定時間遅延信号、２６２  遅延終了信号、２７０  定遅延時間記憶部、２７１  定遅延時間、２８０  定遅延時間設定部、２８１  定遅延時間テーブル、９０１  ＣＰＵ、９０２  バス、９０３  ＲＯＭ、９０４  ＲＡＭ、９０５  通信ボード。
【図１】
0005815155.tif 000002
【図２】
0005815155.tif 000003
【図３】
0005815155.tif 000004
【図４】
0005815155.tif 000005
【図５】
0005815155.tif 000006
【図６】
0005815155.tif 000007
【図７】
0005815155.tif 000008
【図８】
0005815155.tif 000009
【図９】
0005815155.tif 000010
【図１０】
0005815155.tif 000011
【図１１】
0005815155.tif 000012
【図１２】
0005815155.tif 000013
【図１３】
0005815155.tif 000014