(57)【要約】  マスタ局とスレーブ局との間のデータ通信をイーサネット（登録商標）を用いたトークンパッシング方式で行なうデータ通信システムにおいて、マスタ局Ｍの通信処理部３Ｍは、スレーブ局ＳＬ１，ＳＬ２との間でトークンフレームを巡回させてスレーブ局ＳＬ１，ＳＬ２からのデータを受信する処理をリトライ処理する場合には、演算処理装置との間でデータの送受信を行うデータ処理部２へスレーブ局ＳＬ１，ＳＬ２からのデータを転送することなくリトライ処理する。
2010073352.tif 000002
【特許請求の範囲】
【請求項１】
マスタ局と複数のスレーブ局との間のデータ通信をイーサネット（登録商標）を用いたトークンパッシング方式で行なうデータ通信システムにおいて、
前記マスタ局は、
前記各スレーブ局との間でトークンフレームを巡回させて行なう前記各スレーブ局との間のデータ送受信を第１のデータ送受信処理として行なう通信処理部と、
前記スレーブ局から送られてくるデータを演算処理して前記スレーブ局へ送信するデータを生成する演算処理装置に接続するとともに、前記演算処理装置と前記通信処理部との間で行なうデータ送受信を第２のデータ送受信処理として行うデータ送受信処理部と、
を有し、
前記通信処理部は、前記データ送受信処理部との間で行なうデータ送受信を第３のデータ送受信処理として行うとともに、前記第１のデータ送受信処理のうち前記各スレーブ局との間で前記トークンフレームを巡回させるとともに前記各スレーブ局からのデータを受信するデータ受信処理をリトライ処理する場合には、前記第１のデータ送受信処理を行なった後、前記第３のデータ送受信処理を行なうことなく前記各スレーブ局との間で前記トークンフレームを巡回させるとともに前記各スレーブ局からのデータを受信することによってリトライ処理し、前記リトライ処理の後に前記第３のデータ送受信処理を行なうことを特徴とするデータ通信システム。
【請求項２】
前記通信処理部は、
前記第１のデータ送受信処理を行なった際に前記各スレーブ局へ送信したデータを、前記リトライ処理を行なう前に前記各スレーブ局へ再送信することを特徴とする請求項１に記載のデータ通信システム。
【請求項３】
前記通信処理部は、
前記各スレーブ局から送られてくるデータの受信状態に基づいて、前記第１のデータ送受信処理または前記リトライ処理を行なった後の処理として前記第３のデータ送受信処理または前記リトライ処理の何れか一方を選択して実行することを特徴とする請求項１または２に記載のデータ通信システム。
【請求項４】
前記通信処理部は、
前記各スレーブ局から送られてくるデータの受信状態に基づいて、前記各スレーブ局に要求するデータ送信回数を前記スレーブ局毎に設定し、設定したデータ送信回数を前記トークンフレームによって前記各スレーブ局に要求することを特徴とする請求項１または２に記載のデータ通信システム。
【請求項５】
前記通信処理部は、
前記第１のデータ送受信処理を行なった後、前記第３のデータ送受信処理を行なうことなく予め設定された回数だけ前記リトライ処理を繰り返すことを特徴とする請求項１または２に記載のデータ通信システム。
【請求項６】
前記通信処理部は、
前記受信状態の履歴を用いて算出された前記受信状態の統計情報に基づいて、前記第３のデータ送受信処理または前記リトライ処理の何れか一方を選択して実行することを特徴とする請求項３に記載のデータ通信システム。
【請求項７】
前記通信処理部は、
前記受信状態の履歴を用いて算出された前記受信状態の統計情報に基づいて、前記各スレーブ局に要求するデータ送信回数を設定することを特徴とする請求項４に記載のデータ通信システム。
【請求項８】
前記通信処理部は、前記データ受信処理によって全スレーブ局から受信したデータをまとめて前記第３のデータ送受信処理を行なうことを特徴とする請求項１に記載のデータ通信システム。
【請求項９】
前記スレーブ局は、
前記トークンフレームを受信した際に、前記マスタ局に予め指定された回数だけ前記マスタ局へのデータ送信を繰り返すことを特徴とする請求項４に記載のデータ通信システム。
【請求項１０】
前記スレーブ局は、前記マスタ局と共有するデータであって前記スレーブ局から前記マスタ局に送信するデータを複数のフレームに分割し、かつ分割後の各フレームにシーケンシャルナンバを付与するとともに分割後のフレームのうち最後のフレームに最後のフレームであることを示す最後情報を付与して前記各フレームを前記マスタ局に送信し、
前記通信処理部は、
前記シーケンシャルナンバおよび前記最後情報に基づいて前記スレーブ局から全てのデータを受信したか否かを判断する判断部を備え、
前記判断部が前記スレーブ局から全てのデータを受信したと判断した場合に、前記第３のデータ送受信処理を行なうことを特徴とする請求項１に記載のデータ通信システム。
【請求項１１】
前記スレーブ局が前記マスタ局に送信するフレームは、前記フレームの送信元を示すフレーム送信元情報を有し、
前記通信処理部は、
前記スレーブ局から受信したフレーム内のフレーム送信元情報に基づいて何れのスレーブ局から前記フレームを受信しているかを判断し、前回とは異なる次のスレーブ局から前記フレームを受信したと判断した場合に、前記判断部をリセットして前記判断部に前記次のスレーブ局から全てのデータを受信したか否かを判断させることを特徴とする請求項１０に記載のデータ通信システム。
【請求項１２】
前記トークンフレームは、前記トークンフレームの宛先を示すトークン宛先情報を有し、
前記通信処理部は、
前記トークン宛先情報に基づいて前記トークンフレームの宛先を判断し、自局宛てのトークンフレームを受信したと判断した場合に、前記判断部をリセットして前記判断部に前記次のスレーブ局から全てのデータを受信したか否かを判断させることを特徴とする請求項１０に記載のデータ通信システム。
【請求項１３】
前記トークンフレームは、前記トークンフレームの送信元を示すトークン送信元情報を有し、
前記通信処理部は、
前記トークン送信元情報に基づいて何れのスレーブ局から前記トークンフレームが送信されたかを判断し、前回とは異なる次のスレーブ局から前記トークンフレームを受信したと判断した場合に、前記判断部をリセットして前記判断部に前記次のスレーブ局から全てのデータを受信したか否かを判断させることを特徴とする請求項１０に記載のデータ通信システム。
【請求項１４】
マスタ局と複数のスレーブ局との間のデータ通信をイーサネット（登録商標）を用いたトークンパッシング方式で行なうデータ通信システムにおいて、
前記マスタ局は、
前記各スレーブ局との間でトークンフレームを巡回させて行なう前記各スレーブ局との間のデータ送受信を第１のデータ送受信処理として行なう通信処理部と、
前記スレーブ局から送られてくるデータを演算処理して前記スレーブ局へ送信するデータを生成する演算処理装置に接続するとともに、前記演算処理装置と前記通信処理部との間で行なうデータ送受信を第２のデータ送受信処理として行うデータ送受信処理部と、
を有し、
前記通信処理部は、前記データ送受信処理部との間で行なうデータ送受信を第３のデータ送受信処理として行うとともに、前記第１のデータ送受信処理を行う際には、データ送受信対象となるスレーブ局に前記トークンフレームを複数回繰り返して送信することを特徴とするデータ通信システム。
【請求項１５】
前記通信処理部は、
前記各スレーブ局に要求するトークンフレームの送信回数を前記スレーブ局毎に設定し、設定したトークンフレームの送信回数を前記各スレーブ局に要求することを特徴とする請求項１４に記載のデータ通信システム。
【請求項１６】
前記通信処理部は、
前記トークンフレームが消失した場合に前記トークンフレームの再発行を行うとともに、再発行したトークンフレームの数に基づいて、前記各スレーブ局に要求するトークンフレームの送信回数を前記スレーブ局毎に設定することを特徴とする請求項１５に記載のデータ通信システム。
【請求項１７】
前記通信処理部は、
消失したトークンフレームを検出するとともに、消失したトークンフレームの数に基づいて、前記各スレーブ局に要求するトークンフレームの送信回数を前記スレーブ局毎に設定することを特徴とする請求項１５に記載のデータ通信システム。
【請求項１８】
前記スレーブ局は、
前記トークンフレームを受信した際に、前記マスタ局に予め指定された回数だけ前記マスタ局または他のスレーブ局へのトークンフレームの送信を繰り返すことを特徴とする請求項１５に記載のデータ通信システム。
【請求項１９】
複数のスレーブ局との間のデータ通信をイーサネット（登録商標）を用いたトークンパッシング方式でマスタ局として行なうデータ通信装置において、
前記各スレーブ局との間でトークンフレームを巡回させて行なう前記各スレーブ局との間のデータ送受信を第１のデータ送受信処理として行なう通信処理部と、
前記スレーブ局から送られてくるデータを演算処理して前記スレーブ局へ送信するデータを生成する演算処理装置に接続するとともに、前記演算処理装置と前記通信処理部との間で行なうデータ送受信を第２のデータ送受信処理として行うデータ送受信処理部と、
を有し、
前記通信処理部は、前記データ送受信処理部との間で行なうデータ送受信を第３のデータ送受信処理として行うとともに、前記第１のデータ送受信処理のうち前記各スレーブ局との間で前記トークンフレームを巡回させるとともに前記各スレーブ局からのデータを受信するデータ受信処理をリトライ処理する場合には、前記第１のデータ送受信処理を行なった後、前記第３のデータ送受信処理を行なうことなく前記各スレーブ局との間で前記トークンフレームを巡回させるとともに前記各スレーブ局からのデータを受信することによってリトライ処理し、前記リトライ処理の後に前記第３のデータ送受信処理を行なうことを特徴とするデータ通信装置。
【請求項２０】
複数のスレーブ局との間のデータ通信をイーサネット（登録商標）を用いたトークンパッシング方式でマスタ局として行なうデータ通信装置において、
前記各スレーブ局との間でトークンフレームを巡回させて行なう前記各スレーブ局との間のデータ送受信を第１のデータ送受信処理として行なう通信処理部と、
前記スレーブ局から送られてくるデータを演算処理して前記スレーブ局へ送信するデータを生成する演算処理装置に接続するとともに、前記演算処理装置と前記通信処理部との間で行なうデータ送受信を第２のデータ送受信処理として行うデータ送受信処理部と、
を有し、
前記通信処理部は、前記データ送受信処理部との間で行なうデータ送受信を第３のデータ送受信処理として行うとともに、前記第１のデータ送受信処理を行う際には、データ送受信対象となるスレーブ局に前記トークンフレームを複数回繰り返して送信することを特徴とするデータ通信システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、マスタ局とスレーブ局との間のデータ通信をイーサネット（登録商標）を用いたトークンパッシング方式で行なうデータ通信システムおよびデータ通信装置に関するものである。
【背景技術】
【０００２】
工場等の製造現場では、ＰＬＣ（Programmable  Logic  Controller）、インバータ、温度計などのフィールド機器間を接続することによって通信システムを構成し、フィールド機器間でデータ通信を行いながら種々の処理を行なっている。このような通信システムでは、フィールド機器間で行なわれるデータ通信のリアルタイム性を保証するため、例えばイーサネット（登録商標）技術などのＬＡＮ（Local  Area  Network）規格を用いたトークンパッシング方式が採用されている。ところが、フィールド機器間を接続した通信システムでは、フィールド機器間で転送されるデータがノイズの影響を受けやすい。このため、フィールド機器間でデータ通信を行なう通信システムでは、伝送路の耐ノイズ性を向上させて効率良くデータ送信することが望まれている。【０００３】
例えば、特許文献１に記載のデータ通信制御方式では、データ転送に用いるフレーム長を短くしている。そして、データ転送フレームにビットエラーが発生した場合には、ビットエラーの発生した短いフレームを再送信している。これにより、再送信するデータ量を抑えることを可能とし、データ転送の効率を上げている。【０００４】
【特許文献１】特開平０９−１６０８５１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、上記従来の技術をフィールド機器に適用すると、データ転送の際の処理が増大し、フィールド機器間で行なわれるデータ通信のリアルタイム性がなくなるといった問題があった。特にトークンパッシング方式の場合には、送信権がトークン受信時にしか、フレームを送信できないため、従来の技術をそのまま適用した場合、性能劣化が大きくなってしまうことになる。このため、上記従来の技術をそのままフィールド機器間のデータ通信に適用することはできなかった。【０００６】
本発明は、上記に鑑みてなされたものであって、リアルタイム性を保証しながら耐ノイズ性を向上させて効率良くデータ通信を行うデータ通信システムおよびデータ通信装置を得ることを目的とする。また、トークンパッシング方式の場合は、特に効率良くデータ通信を行うことができるデータ通信システムおよびデータ通信装置を得ることを目的とする。
【課題を解決するための手段】
【０００７】
上述した課題を解決し、目的を達成するために、本発明は、マスタ局と複数のスレーブ局との間のデータ通信をイーサネット（登録商標）を用いたトークンパッシング方式で行なうデータ通信システムにおいて、前記マスタ局は、前記各スレーブ局との間でトークンフレームを巡回させて行なう前記各スレーブ局との間のデータ送受信を第１のデータ送受信処理として行なう通信処理部と、前記スレーブ局から送られてくるデータを演算処理して前記スレーブ局へ送信するデータを生成する演算処理装置に接続するとともに、前記演算処理装置と前記通信処理部との間で行なうデータ送受信を第２のデータ送受信処理として行うデータ送受信処理部と、を有し、前記通信処理部は、前記データ送受信処理部との間で行なうデータ送受信を第３のデータ送受信処理として行うとともに、前記第１のデータ送受信処理のうち前記各スレーブ局との間で前記トークンフレームを巡回させるとともに前記各スレーブ局からのデータを受信するデータ受信処理をリトライ処理する場合には、前記第１のデータ送受信処理を行なった後、前記第３のデータ送受信処理を行なうことなく前記各スレーブ局との間で前記トークンフレームを巡回させて前記各スレーブ局からのデータを受信することによってリトライ処理し、前記リトライ処理の後に前記第３のデータ送受信処理を行なうことを特徴とする。
【発明の効果】
【０００８】
本発明にかかるデータ通信システムは、各スレーブ局との間でデータ受信処理のリトライ処理を行なう場合には、スレーブ局と通信処理部との間での第３のデータ送受信処理を行なうことなくトークンフレームを巡回させて各スレーブ局からのデータを受信するので、マスタ局とスレーブ局との間で行なうデータ送受信のリアルタイム性を保証しながら耐ノイズ性を向上させて効率良くデータ通信を行うことが可能になるという効果を奏する。
【図面の簡単な説明】
【０００９】
【図１】図１は、実施の形態１に係るデータ通信システムの構成を示す図である。
【図２】図２は、ＰＬＣの構成を示すブロック図である。
【図３】図３は、実施の形態１に係るデータ通信システムの処理手順を示すシーケンス図である。
【図４】図４は、従来のデータ通信システムの処理手順を示すシーケンス図である。
【図５】図５は、ユーザ設定によってリトライ処理の種類を切替える通信処理部の構成を示す図である。
【図６】図６は、実施の形態２に係るデータ通信システムの処理手順を示すシーケンス図である。
【図７】図７は、実施の形態３に係るデータ通信システムの処理手順を示すシーケンス図である。
【図８】図８は、受信状態情報テーブルの構成の一例を示す図である。
【図９】図９は、実施の形態４に係るマスタ局の通信処理部の構成を示す図である。
【図１０】図１０は、実施の形態４に係るスレーブ局の構成を示す図である。
【図１１】図１１は、実施の形態４に係るデータ通信システムの処理手順を示すシーケンス図である。
【図１２】図１２は、スイッチングハブを介したデータ通信を説明するための図である。
【図１３】図１３は、実施の形態５に係るデータ通信システムのメモリ構成を示す図である。
【図１４】図１４は、実施の形態５に係るスレーブ局の通信処理部の構成を示す図である。
【図１５】図１５は、実施の形態５に係るマスタ局の通信処理部の構成を示す図である。
【図１６】図１６は、実施の形態５に係るデータ通信システムの処理手順を示すシーケンス図である。
【図１７】図１７は、サイクリックデータの分割処理を説明するための図である。
【図１８】図１８は、全ての分割後フレームを受信した場合の判定回路を示す図である。
【図１９】図１９は、一部の分割後フレームを受信できていない場合の判定回路を示す図である。
【図２０】図２０は、判定回路のリセット処理を説明するための図である。
【図２１】図２１は、実施の形態６に係るマスタ局の通信処理部の構成を示す図である。
【図２２】図２２は、実施の形態６に係るスレーブ局の通信処理部の構成を示す図である。
【図２３】図２３は、実施の形態６に係るデータ通信システムの処理手順を示すシーケンス図である。
【図２４】図２４は、ＴＦの繰り返し送信回数を変更する場合のマスタ局の通信処理部の構成を示す図である。
【図２５】図２５は、ＴＦの繰り返し送信回数を局毎に変更する場合のマスタ局の通信処理部の構成を示す図である。
【符号の説明】
【００１０】
１  ＣＰＵ
２  データ処理部
３Ｍ  通信処理部
４  メモリ
７  データ入出力部
１０  ＰＬＣ
２０  スイッチングハブ
３１，７１  送信バッファ
３２，７２  受信バッファ
３３  指示入力部
３５  設定切替部
３７  送信回数設定部
４１  トークン設定部
４２  再トークン発行部
４３  発行回数判定部
４４  監視タイマ
４５  カウンタ
４６  基準値記憶部
４７  判定部
４８  消失トークン判断部
５１  更新指示部
５２  判定回路
５３  レジスタリセット部
５４  レジスタリセット判定部
５６  ＳＡ判定部
５７  ＴＦ判定部
６１  分割処理部
６２  組立処理部
７０Ｓ  通信処理部
７３  データ送信回数制御部
７４  トークン送信制御部
７５  データ分割部
７６  シーケンシャルＮｏ付与部
７７  エンドフラグ設定部
８０Ｘ〜８３Ｘ  共有メモリ
９１  シーケンシャルＮｏレジスタ
９２  エンドフラグレジスタ
１００  データ通信システム
１０１  受信状態情報テーブル
Ｍ  マスタ局
ＳＬ１〜ＳＬｎ  スレーブ局
【発明を実施するための最良の形態】
【００１１】
以下に、本発明に係るデータ通信システムおよびデータ通信装置の実施の形態を図面に基づいて詳細に説明する。なお、この実施の形態によりこの発明が限定されるものではない。【００１２】
実施の形態１．
図１は、実施の形態１に係るデータ通信システムの構成を示す図である。データ通信システム１００は、マスタ局Ｍ、１〜複数のスレーブ局ＳＬ１〜ＳＬｎ（ｎは自然数）を有している。データ通信システム１００では、伝送路（バス）上にマスタ局Ｍと各スレーブ局ＳＬ１〜ＳＬｎが接続されており、互いに伝送路を介してデータ通信を行なう。【００１３】
本実施の形態のデータ通信システム１００は、例えばイーサネット（登録商標）技術などのＬＡＮ規格を用いたトークンパッシング方式を用いてサイクリック通信を実現し、局（マスタ局Ｍ、スレーブ局ＳＬ１〜ＳＬｎ）間のデータ通信（イーサネット（登録商標）フレームの送受信）を行なう。これにより、伝送路内で行なわれるデータ通信（データ授受のタイミング）のリアルタイム性を保証する。【００１４】
マスタ局Ｍやスレーブ局ＳＬ１〜ＳＬｎは、データ通信のリアルタイム性が必要なフィールド機器などである。マスタ局Ｍ、スレーブ局ＳＬ１〜ＳＬｎは、トークンパッシング方式を用いてサイクリック通信を実現するデータ通信装置である。マスタ局Ｍは、後述のＰＬＣ（Programmable  Logic  Controller）１０内に配設されるネットワークユニットであり、スレーブ局ＳＬ１〜ＳＬｎとデータ通信を行う。スレーブ局ＳＬ１〜ＳＬｎは、それぞれＩＯ機器やデジタル／アナログ変換装置などの周辺機器（図示せず）内に配設されており、これらの周辺機器にマスタ局Ｍからの動作指示などを送る。【００１５】
データ通信システム１００では、ＰＬＣ１０のデータがマスタ局Ｍからスレーブ局ＳＬ１〜ＳＬｎに送られる。そして、各スレーブ局ＳＬ１〜ＳＬｎは、マスタ局Ｍからのデータを用いて周辺機器を動作させる。さらに、各スレーブ局ＳＬ１〜ＳＬｎは、それぞれが接続されている周辺機器から取得したデータをマスタ局Ｍに送る。ＰＬＣ１０では、スレーブ局ＳＬ１〜ＳＬｎからのデータを用いて所定の演算を行い、スレーブ局ＳＬ１〜ＳＬｎへのデータを生成する。そして、生成したデータをマスタ局Ｍからスレーブ局ＳＬ１〜ＳＬｎへ送信する。データ通信システム１００は、このようなマスタ局Ｍとスレーブ局ＳＬ１〜ＳＬｎとの間で行なうデータ通信処理を繰り返すことによって動作する。【００１６】
データ通信システム１００では、予め何れの順番でトークンフレーム（以下、ＴＦという）がスレーブ局ＳＬ１〜ＳＬｎ間を流れていくかが設定されている。データ通信システム１００内の通信機器（各スレーブ局ＳＬ１〜ＳＬｎやマスタ局Ｍ）は、ＴＦを受信した場合に、自局が送信権を獲得したことを認識し、必要に応じて自局のデータを送信したのちＴＦを発行して次の送信局を指定する。データ通信システム１００では、この動作を各局が実施し、ＴＦがデータ通信システム１００内を巡回することによって伝送路上のフレームの輻輳状態を回避し、データ通信のリアルタイム性を保障する。また、マスタ局Ｍは、ＴＦを受信することによって、スレーブ局ＳＬ１〜ＳＬｎからのデータを受信したことを認識し、データの受信処理（ファームウェア処理）などを実行する。ファームウェア処理（以下、Ｆ／Ｗ処理という）は、マスタ局Ｍ内でのデータの送受信に関する処理である。マスタ局Ｍは、Ｆ／Ｗ処理を実行した後、スレーブ局ＳＬ１〜ＳＬｎへのデータ送信を開始することによって、スレーブ局ＳＬ１〜ＳＬｎとの間でデータ通信のタイミングを図る。【００１７】
仮に、マスタ局Ｍが、ＴＦを受信するタイミングではなく各スレーブ局ＳＬ１〜ＳＬｎからのデータ受信タイミングごとに受信処理を実施した場合には、全てのスレーブ局ＳＬ１〜ＳＬｎの受信データをまとめて処理する時間に比べて、マスタ局Ｍ内でのＤＭＡ（Direct  Memory  Access）転送に余分な時間がかかり性能が劣化する。一方、本実施の形態では、全てのスレーブ局ＳＬ１〜ＳＬｎの受信データをまとめて処理することによってデータ送受信の効率化を図っている。また、本実施の形態のマスタ局Ｍは、ＴＦを発行してＴＦが戻ってくるまでの間に別の処理を実施することが可能となるのでシステム全体の処理効率が向上する。【００１８】
図２は、ＰＬＣの構成を示すブロック図である。なお、図２では、マスタ局Ｍと接続されるスレーブ局としてスレーブ局ＳＬ１のみを図示している。同図に示すように、ＰＬＣ１０は、演算処理装置であるＣＰＵ（Central  Processing  Unit）１、マスタ局Ｍを有している。そして、マスタ局Ｍは、データ処理部２と、通信処理部３Ｍと、メモリ４とを備えている。マスタ局Ｍは、例えばＡＳＩＣ（Application  Specific  Integrated  Circuit）やマイコンなどを用いて構成されている。【００１９】
ＣＰＵ１は、マスタ局Ｍと接続されており、マスタ局Ｍとの間でデータ通信を行う。ＣＰＵ１は、スレーブ局ＳＬ１〜ＳＬｎへ送るデータ（周辺機器を制御するためのデータ等）をマスタ局Ｍのデータ処理部２へ送信する。また、ＣＰＵ１は、マスタ局Ｍが受信したスレーブ局ＳＬ１〜ＳＬｎからのデータをデータ処理部２から受信する。【００２０】
マスタ局Ｍのデータ処理部（データ送受信処理部）２は、ＣＰＵ１と通信処理部３Ｍとの間のデータ中継（第２のデータ送受信処理）を行なう。換言すると、データ処理部２は、ＣＰＵ１からのデータを通信処理部３Ｍに送り、通信処理部３Ｍからのデータをデータ処理部２に送る。マスタ局Ｍのデータ処理部２は、ＣＰＵ１からのデータを所定サイズのデータ（パケット）に分割して通信処理部３Ｍに送る。また、データ処理部２は、通信処理部３Ｍからのデータを所定サイズのデータに統合してＣＰＵ１に送る。【００２１】
通信処理部３Ｍは、スレーブ局ＳＬ１〜ＳＬｎとの間のデータ送受信処理（第１のデータ送受信処理）や、データ処理部２との間のデータ送受信処理（第３のデータ送受信処理）を行なう。通信処理部３Ｍは、スレーブ局ＳＬ１〜ＳＬｎから送られてくるデータをまとめてデータ処理部２にＤＭＡ転送する。通信処理部３Ｍは、送信バッファ３１と受信バッファ３２を備えている。通信処理部３Ｍは、ＣＰＵ１からのデータを送信バッファ３１に格納し、送信バッファ３１を介して各スレーブ局ＳＬ１〜ＳＬｎに送信する。また、通信処理部３Ｍは、スレーブ局ＳＬ１〜ＳＬｎからのデータを受信バッファ３２に格納し、受信バッファ３２を介してＣＰＵ１側へ送信する。【００２２】
メモリ４は、ＣＰＵ１からデータ処理部２に送られてくるデータや通信処理部３Ｍからデータ処理部２に送られてくるデータを格納する。メモリ４が格納しているデータは、ＣＰＵ１から読み出し許可が与えられた場合に所定のタイミングで通信処理部３Ｍによって読み出され、通信処理部３Ｍから読み出し許可が与えられた場合に所定のタイミングでＣＰＵ１によって読み出される。【００２３】
ＰＬＣ１０では、ＣＰＵ１からのデータがデータ処理部２に送られてメモリ４に格納される。そして、ＣＰＵ１から読み出し許可が与えられた後、通信処理部３Ｍは、メモリ４のデータを読み出す。このとき、通信処理部３Ｍは、データ処理部２にデータの読み出しを要求する。これにより、データ処理部２は、メモリ４内のデータを所定サイズのデータに分割して通信処理部３Ｍに送る。通信処理部３Ｍは、データ処理部２からのデータを送信バッファ３１を介してスレーブ局ＳＬ１〜ＳＬｎに送信する。【００２４】
また、ＰＬＣ１０では、スレーブ局ＳＬ１〜ＳＬｎからのデータが受信バッファ３２に格納される。受信バッファ３２内のデータは、データ処理部２にＤＭＡ転送されてメモリ４に格納される。通信処理部３Ｍからから読み出し許可が与えられた後、ＣＰＵ１は、メモリ４のデータを読み出す。このとき、データ処理部２は、メモリ４内のデータを所定サイズのデータに統合してＣＰＵ１に送る。【００２５】
つぎに、データ通信システム１００の処理手順について説明する。図３は、実施の形態１に係るデータ通信システムの処理手順を示すシーケンス図である。以下では、データ通信システム１００内のスレーブ局がスレーブ局ＳＬ１，ＳＬ２の２つである場合について説明する。また、マスタ局ＭからのＴＦがまずスレーブ局ＳＬ１に送られ、その後スレーブ局ＳＬ１からスレーブ局ＳＬ２へＴＦが送られる場合について説明する。【００２６】
本実施の形態のデータ通信システム１００の処理手順の特徴の１つは、スレーブ局ＳＬ１へのＴＦ送信およびスレーブ局ＳＬ１からマスタ局Ｍへのデータ送信と、スレーブ局ＳＬ２へのＴＦ送信およびスレーブ局ＳＬ２からマスタ局Ｍへのデータ送信と、スレーブ局ＳＬ２からマスタ局ＭへのＴＦ送信と、を含んだ１サイクルの通信処理を２サイクル繰り返すことである。【００２７】
データ通信システム１００では、マスタ局Ｍの通信処理部３Ｍがスレーブ局ＳＬ１へＴＦ（１回目）を送信する（ＳＴ１）。スレーブ局ＳＬ１は、ＴＦを受信すると、マスタ局Ｍへのデータ送信処理を行なう（ＳＴ２）。スレーブ局ＳＬ１からのデータは、データｓ１として通信処理部３Ｍに送られる（ＳＴ３）。スレーブ局ＳＬ１は、マスタ局Ｍへのデータ送信処理が完了すると、スレーブ局ＳＬ２へＴＦを送る（ＳＴ４）。【００２８】
スレーブ局ＳＬ２は、ＴＦを受信すると、マスタ局Ｍへのデータ送信処理を行なう（ＳＴ５）。スレーブ局ＳＬ２からのデータは、データｓ２として通信処理部３Ｍに送られる（ＳＴ６）。スレーブ局ＳＬ２は、マスタ局Ｍへのデータ送信処理が完了すると、マスタ局ＭへＴＦを送る（ＳＴ７）。【００２９】
マスタ局Ｍの通信処理部３Ｍは、データｓ１やデータｓ２を受信すると受信バッファ３２に格納しておく。ここでは、ＳＴ３のデータｓ１が通信処理部３Ｍによって正常に受信され、ＳＴ６のデータｓ２がノイズなどによって通信処理部３Ｍに正常に受信されなかった場合（データ化けやデータの消失が発生した場合）について説明する。【００３０】
本実施の形態のマスタ局Ｍの通信処理部３Ｍは、スレーブ局ＳＬ２からＴＦ（１回目）を受信すると、データｓ１やデータｓ２を正常に受信できたか否かに関わらずスレーブ局ＳＬ１にＴＦ（２回目）を送信する（ＳＴ８）。換言すると、通信処理部３Ｍは、データｓ１，ｓ２が正常に受信できたか否かの判定や、データｓ１，ｓ２のマスタ局Ｍ内での受信処理（後述のＦ／Ｗ処理）を行なうことなく、次のＴＦをスレーブ局ＳＬ１に送信する。【００３１】
スレーブ局ＳＬ１は、ＴＦを受信すると、マスタ局Ｍへのデータ送信処理を行なう（ＳＴ９）。スレーブ局ＳＬ１からのデータは、データｓ１として通信処理部３Ｍに送られる（ＳＴ１０）。スレーブ局ＳＬ１は、マスタ局Ｍへのデータ送信処理が完了すると、スレーブ局ＳＬ２へＴＦを送る（ＳＴ１１）。【００３２】
スレーブ局ＳＬ２は、ＴＦを受信すると、マスタ局Ｍへのデータ送信処理を行なう（ＳＴ１２）。スレーブ局ＳＬ２からのデータは、データｓ２として通信処理部３Ｍに送られる（ＳＴ１３）。スレーブ局ＳＬ２は、マスタ局Ｍへのデータ送信処理が完了すると、マスタ局ＭへＴＦを送る（ＳＴ１４）。ＳＴ１０とＳＴ１３では、通信処理部３Ｍがデータｓ１，ｓ２を正常に受信した場合を示している。ＳＴ１０やＳＴ１３で受信したデータｓ１，ｓ２は、ＳＴ３やＳＴ６で受信したデータｓ１，ｓ２とともに受信バッファ３２に格納される。【００３３】
通信処理部３Ｍは、スレーブ局ＳＬ２からＴＦ（２回目）を受信すると、データの受信処理を行なう（ＳＴ１５）。具体的には、通信処理部３Ｍは、受信バッファ３２に格納されているデータｓ１，ｓ２が正常に受信されたデータであるか否かを判断する。そして、通信処理部３Ｍは、各スレーブ局（スレーブ局ＳＬ１，ＳＬ２）から少なくとも１つずつの正常なデータを受信していると判断した場合に、各スレーブ局ＳＬ１，ＳＬ２からのデータｓ１，ｓ２をまとめてデータ処理部２にＤＭＡ転送する（ＳＴ１６、ＳＴ１７）。これにより、各スレーブ局からのデータを１つずつデータ処理部２に転送する場合よりも高速にデータ転送することが可能となる。通信処理部３Ｍは、正常なデータを１度も受信できなかったスレーブ局が存在する場合、正常なデータのみをデータ処理部２にＤＭＡ転送してもよいし、データ処理部２へのＤＭＡ転送を行なわなくてもよい。この後、通信処理部３Ｍは、データ処理部２にデータの読み出し要求を行なう。【００３４】
ＣＰＵ１から読み出し許可が与えられていれば、データ処理部２はメモリ４内のデータを通信処理部３Ｍにデータ送信する（ＳＴ１８）。データ処理部２からのデータは、データｍとして通信処理部３Ｍに送られる。【００３５】
これにより、通信処理部３Ｍの送信バッファ３１にデータ処理部２からのデータｍが格納（送信データセット）される（ＳＴ１９）。そして、通信処理部３Ｍは、スレーブ局ＳＬ１，ＳＬ２へのデータ送信処理を行なう（ＳＴ２０）。送信バッファ３１からは、データｍがブロードキャストでスレーブ局ＳＬ１，ＳＬ２に送信される（ＳＴ２１、ＳＴ２２）。【００３６】
通信処理部３Ｍは、スレーブ局ＳＬ１，ＳＬ２へのデータ送信処理を完了すると、スレーブ局ＳＬ１へＴＦを送る（ＳＴ２３）。スレーブ局ＳＬ１は、通信処理部３ＭからＴＦを受信すると、ＴＦをスレーブ局ＳＬ２に送信する（ＳＴ２４）。スレーブ局ＳＬ２は、スレーブ局ＳＬ１からＴＦを受信すると、ＴＦを通信処理部３Ｍへ送信する（ＳＴ２５）。この後、通信処理部３Ｍがスレーブ局ＳＬ２からのＴＦを受信すると、データ通信システム１００では、マスタ局Ｍからスレーブ局ＳＬ１，ＳＬ２へデータ送信し、その後、ＳＴ１〜ＳＴ２５の処理が繰り返される。【００３７】
このように、本実施の形態では、前述の通信処理を２サイクル繰り返した後、通信処理部３Ｍがデータの受信処理を行なっている。換言すると、データ通信システム１００では、Ｆ／Ｗ処理を行なうことなく、前述の通信処理を必ず１回リトライしている。これにより、スレーブ局ＳＬ１，ＳＬ２からマスタ局Ｍへ送られるデータの耐ノイズ性を向上させることが可能となる。なお、このときのリトライ時間は、１サイクル分の通信処理であり、このリトライ時間がリトライ処理によって生じるロス時間となる。これにより、データ通信システム１００では、短時間でリトライ処理を行なっている。このように、データ通信システム１００は、イーサネット（登録商標）などの耐ノイズに弱い方法を用いた場合であっても、短時間で効率良くデータ通信のリカバリを行なえる。【００３８】
ここで、本実施の形態のデータ通信システム１００と、従来から用いられていたデータ通信システムとの処理手順の差異を明確にするため、従来用いられていたデータ通信システムの処理手順の問題点を説明する。【００３９】
図４は、従来のデータ通信システムの処理手順を示すシーケンス図である。図４では、本実施の形態のデータ通信システム１００に、従来のデータ通信システムと同様の処理を行なわせた場合の処理手順を示している。ここでのデータ通信システム１００は、ＳＴ３１〜ＳＴ３７の処理として、図３に示したＳＴ１〜ＳＴ７と同様の処理を行なう。【００４０】
スレーブ局ＳＬ２が通信処理部３ＭへＴＦ（１回目）を送った後（ＳＴ３７）、通信処理部３Ｍは、データｓ１，ｓ２を受信バッファ３２に格納する。ここでは、ＳＴ３３のデータｓ１が通信処理部３Ｍによって正常に受信され、ＳＴ３６のデータｓ２がノイズなどによって通信処理部３Ｍに正常に受信されなかった場合について説明する。【００４１】
通信処理部３Ｍは、スレーブ局ＳＬ２からＴＦ（１回目）を受信すると、データの受信処理（データの正常判定やデータ処理部２への転送処理）を行なう（ＳＴ３８）。具体的には、通信処理部３Ｍは、データｓ１とデータｓ２をデータ処理部２にＤＭＡ転送する（ＳＴ３９、ＳＴ４０）。このとき、データｓ２は、ノイズなどによって正常に受信できなかったにも関わらず、通信処理部３Ｍによる受信処理（ＤＭＡ転送など）が行なわれる。この後、通信処理部３Ｍは、データ処理部２にデータの読み出し要求を行なう。【００４２】
ＣＰＵ１から読み出し許可が与えられていれば、データ処理部２はメモリ４内のデータを通信処理部３Ｍにデータ送信する（ＳＴ４１）。データ処理部２からのデータは、データｍとして通信処理部３Ｍに送られる。【００４３】
これにより、通信処理部３Ｍの送信バッファ３１にデータ処理部２からのデータｍが格納（送信データセット）される（ＳＴ４２）。そして、通信処理部３Ｍは、スレーブ局ＳＬ１，ＳＬ２へのデータ送信処理を行なう（ＳＴ４３）。送信バッファ３１からは、データｍがブロードキャストでスレーブ局ＳＬ１，ＳＬ２に送信される（ＳＴ４４、ＳＴ４５）。【００４４】
通信処理部３Ｍは、スレーブ局ＳＬ１，ＳＬ２へのデータ送信処理を完了すると、スレーブ局ＳＬ１へＴＦを送る（ＳＴ４６）。以下、データ通信システム１００では、実施の形態１の図３で説明したＳＴ９〜ＳＴ２５と同様の処理が行なわれる。図４に示したＳＴ４７〜ＳＴ６３の処理が、図３に示したＳＴ９〜ＳＴ２５の処理に対応している。この後、通信処理部３Ｍがスレーブ局ＳＬ２からのＴＦを受信すると、データ通信システム１００では、マスタ局Ｍからスレーブ局ＳＬ１，ＳＬ２へデータ送信し、その後ＳＴ３１〜ＳＴ６３の処理が繰り返される。【００４５】
このように、従来のデータ通信処理では、トークン方式を用いたサイクリック通信によってリトライ処理を行なっており、スレーブ局ＳＬ１，ＳＬ２からデータｓ１，ｓ２が送信される度（ＴＦを受信する度）に受信処理（ＳＴ３８）や送信データセット処理（ＳＴ４２）などを行なっている。このため、従来のデータ通信処理のリトライ処理には、通信処理部３Ｍによるデータの受信処理（ＳＴ３８）や送信データセット処理（ＳＴ４２）などのマスタ局Ｍ内でのデータの送受信に関するＦ／Ｗ処理が含まれている。このように、従来のデータ通信処理では、リトライ処理としてＳＴ３８〜ＳＴ５２が行なわれていた。トークンホールド時間内の内、マスタ局Ｍ内のＦ／Ｗ処理（送受信処理等）が占める割合が大きくなると、リトライ処理の時間が長くなる。特に局間（ノード間）で送受信するデータの容量が増えると、Ｆ／Ｗ処理に時間がかかるのでリトライの時間が長くなる。このように、従来のリトライ処理は、図３に示した本実施の形態のデータ通信処理と比べて長時間を要している。【００４６】
特に、通信処理部３Ｍが送信バッファ３１と受信バッファ３２を有し、Ｆ／Ｗ処理をユーザ任せの設定で行なう場合には、Ｆ／Ｗ処理に時間がかかる場合が多い。また、伝送路の帯域が向上（例えば１０Ｍｂｐｓから１００Ｍｂｐｓへ向上、１００Ｍｂｐｓから１Ｇｂｐｓへ向上）するにしたがって、Ｆ／Ｗ処理の性能が、データ通信システム１００の性能に与える影響が大きくなる。【００４７】
なお、ＴＣＰ（Transmission  Control  Protocol）でのリトライ処理によってフレームデータの欠落をリカバリする場合、タイムアウトの時間に数百ｍｓｅｃもかかり、リアルタイム性を重視されるフィールドネットワークでの適用が困難である。【００４８】
なお、データ通信システム１００では、ユーザ設定により、図３のデータ通信処理でのリトライ処理と図４のデータ通信処理でのリトライ処理を切替えて使用してもよい。図５は、ユーザ設定によってリトライ処理の種類を切替える通信処理部の構成を示す図である。同図に示すように、ユーザ設定によってリトライ処理の種類を切替える通信処理部３Ｍは、送信バッファ３１、受信バッファ３２に加えて指示入力部３３、設定切替部３５を有している。【００４９】
指示入力部３３は、マウス、キーボード、ボタンなどを備えて構成され、ユーザから外部入力される指示（データ通信処理の種類を指定する指示）を受け付ける。指示入力部３３へは、図３に示したリトライ処理を指定する指示や図４に示したリトライ処理を指定する処理が入力される。指示入力部３３は、ユーザから外部入力された指示を、データ通信処理の設定指示として設定切替部３５に送る。設定切替部３５は、指示入力部３３から送られてくるリトライ処理の設定指示に基づいて、データ通信処理の切替えを行なう。【００５０】
なお、図３ではデータ処理部２とＣＰＵ１との間のデータ通信についてはその説明を省略しているが、データ処理部２とＣＰＵ１は、データ処理部２と通信処理部３Ｍとの間のデータ通信とは非同期でデータ通信を行なう。【００５１】
なお、本実施の形態では、イーサネット（登録商標）を用いてデータ通信システム１００内でのデータ通信を行うこととしたが、データ通信システム１００内でのデータ通信は、他の通信方法を用いてもよい。【００５２】
また、本実施の形態では、マスタ局Ｍとデータ通信を行うスレーブ局がスレーブ局ＳＬ１，ＳＬ２の２つである場合について説明したが、マスタ局Ｍとデータ通信を行うスレーブ局は、１つであってもよいし３つ以上であってもよい。【００５３】
また、本実施の形態では、リトライ処理を１度だけ行なう場合について説明したが、リトライ処理は２回以上行ってもよい。データ通信システム１００で行なうリトライ処理の回数は、指示入力部３３などからのユーザ指示に基づいて予め設定しておく。設定されたリトライ回数（トークンフレーム連続送信回数）は、通信処理部３Ｍ内のデータ格納部（図示せず）に格納しておく。これにより、ユーザ所望のリトライ処理回数を容易に行なうことが可能となる。【００５４】
このように実施の形態１によれば、スレーブ局ＳＬ２からＴＦ（１回目）を受信すると、データｓ１，ｓ２を正常に受信できたか否かに関わらずマスタ局Ｍ内でのデータｓ１，ｓ２の受信処理を行なうことなく、マスタ局Ｍがスレーブ局ＳＬ１にＴＦ（２回目）を送信するので、短時間でデータ通信のリカバリ処理を行なうことが可能となる。したがって、効率良くデータ通信を行うことが可能となる。【００５５】
実施の形態２．
つぎに、図６を用いてこの発明の実施の形態２について説明する。実施の形態２では、リトライ処理の際に、マスタ局Ｍからスレーブ局ＳＬ１，ＳＬ２へデータｍを再送信する。【００５６】
図６は、実施の形態２に係るデータ通信システムの処理手順を示すシーケンス図である。実施の形態２のデータ通信システム１００は、ＳＴ７１〜ＳＴ７７の処理として、図３に示したＳＴ１〜ＳＴ７と同様の処理を行なう。【００５７】
スレーブ局ＳＬ２が通信処理部３ＭへＴＦ（１回目）を送った後（ＳＴ７７）、通信処理部３Ｍは、データｓ１やデータｓ２を受信バッファ３２に格納する。ここでは、ＳＴ７３のデータｓ１が通信処理部３Ｍによって正常に受信され、ＳＴ７６のデータｓ２がノイズなどによって通信処理部３Ｍに正常に受信されなかった場合について説明する。【００５８】
つぎに、通信処理部３Ｍは、データｓ１やデータｓ２を正常に受信できたか否かに関わらず、スレーブ局ＳＬ１，ＳＬ２へのデータ送信処理を行なう（ＳＴ７８）。このとき、通信処理部３Ｍは、送信バッファ３１に格納しておいたデータｍを用いてスレーブ局ＳＬ１，ＳＬ２へのデータ送信を行なう。送信バッファ３１に格納しておいたデータｍは、通信処理部３Ｍからスレーブ局ＳＬ１へ１回目のＴＦを送信する前に、通信処理部３Ｍからスレーブ局ＳＬ１へ送信されたデータｍと同じデータである。送信バッファ３１からは、データｍがブロードキャストでスレーブ局ＳＬ１，ＳＬ２に送信される（ＳＴ７９、ＳＴ８０）。【００５９】
通信処理部３Ｍは、スレーブ局ＳＬ１，ＳＬ２へのデータ送信処理を完了すると、スレーブ局ＳＬ１へＴＦを送る（ＳＴ８１）。以下、データ通信システム１００では、実施の形態１の図３で説明したＳＴ９〜ＳＴ２５と同様の処理が行なわれる。図６に示したＳＴ８２〜ＳＴ９８の処理が、図３に示したＳＴ９〜ＳＴ２５の処理に対応している。この後、通信処理部３Ｍがスレーブ局ＳＬ２からのＴＦを受信すると、データ通信システム１００では、マスタ局Ｍからスレーブ局ＳＬ１，ＳＬ２へデータ送信し、その後ＳＴ７１〜ＳＴ９８の処理が繰り返される。【００６０】
なお、本実施の形態でも、データ通信システム１００では、データ通信システム１００内の状態に応じて、図３のデータ通信処理、図４のデータ通信処理、図６のデータ通信処理を使い分けてもよい。この場合も、実施の形態１のデータ通信システム１００と同様に、図５に示した通信処理部３Ｍによって、通信処理の種類を切り替える。指示入力部３３へは、図３、図４、図６に示したデータ通信処理の何れかを指定する指示が入力される。【００６１】
また、マスタ局Ｍからスレーブ局ＳＬ１，ＳＬ２へのデータｍは、複数回に渡って繰り返し送信してもよい。例えば、マスタ局Ｍは、リトライ時のデータｍをスレーブ局ＳＬ１，ＳＬ２に複数回送信してもよいし、通常時のデータｍをスレーブ局ＳＬ１，ＳＬ２に複数回送信してもよい。【００６２】
このように、実施の形態２によれば、リカバリ処理の際にマスタ局Ｍからスレーブ局ＳＬ１，ＳＬ２へのデータ送信を行なっているので、マスタ局Ｍからスレーブ局ＳＬ１，ＳＬ２へ送られるデータの耐ノイズ性を向上させることが可能となる。【００６３】
実施の形態３．
つぎに、図７および図８を用いてこの発明の実施の形態３について説明する。実施の形態３では、マスタ局Ｍがデータｓ１，ｓ２を受信した際に、図３に示したデータ通信処理（ＳＴ８〜ＳＴ１４）と、図４に示したデータ通信処理（ＳＴ３８〜ＳＴ５２）の何れを行なうかをマスタ局Ｍの通信処理部３Ｍが判断し、データ通信処理を切替える。このとき、データ通信システム１００は、データ通信システム１００内の状態（データｓ１やデータｓ２の受信状態）に応じて、データ通信処理の種類を切替える。【００６４】
図７は、実施の形態３に係るデータ通信システムの処理手順を示すシーケンス図である。実施の形態３のデータ通信システム１００は、ＳＴ１０１〜ＳＴ１０７の処理として、図３に示したＳＴ１〜ＳＴ７と同様の処理を行なう。【００６５】
通信処理部３Ｍは、スレーブ局ＳＬ２からＴＦ（１回目）を受信した後（ＳＴ１０７）、通信処理部３Ｍは、データｓ１やデータｓ２の受信状態（到達状況）を確認する（ＳＴ１０８）。具体的には、通信処理部３Ｍは、例えばＦＣＳ（Frame  Check  Sequence）を用いてスレーブ局ＳＬ１，ＳＬ２から受信したデータｓ１，ｓ２が正常に受信されたデータであるか否かを判断する。換言すると、通信処理部３Ｍは、自身がトークンフレームを発行してから自身宛てのトークンフレームを受信するまでの間（ＳＴ１０１〜ＳＴ１０７）にスレーブ局ＳＬ１，ＳＬ２から送られてきたデータを正常にデータ受信しているか、伝送路でフレームが欠落しているかなどを判断する。【００６６】
通信処理部３Ｍは、この判断結果に基づいて、図３に示したデータ通信処理または図４に示したデータ通信処理の何れか一方を選択する（ＳＴ１０９）。換言すると、通信処理部３Ｍは、スレーブ局ＳＬ２からＴＦを受信した際に、スレーブ局ＳＬ１へＴＦを発行するか、それともスレーブ局ＳＬ１，ＳＬ２からのデータｓ１，ｓ２をマスタ局Ｍ内で受信処理するかを決定する。【００６７】
ここで、通信処理部３Ｍによるデータ通信処理の選択方法について説明する。通信処理部３Ｍは、１サイクルのデータ通信処理で全てのデータを正常に受信したと判断した場合、図４に示したデータ通信処理（Ｆ／Ｗ処理）を選択する。【００６８】
一方、通信処理部３Ｍは、ノイズの発生などによって何れかのデータを正常に受信していないと判断した場合、各データが正常であるか否かを情報テーブルに登録する。この情報テーブルは、各スレーブ局から受信したデータが正常か否かの判定結果を、データの受信回毎に登録しておく情報テーブル（以下、受信状態情報テーブルという）である。受信状態情報テーブルは、マスタ局Ｍのメモリ４内に格納される。【００６９】
ところで、マスタ局Ｍは、サイクリック通信を行うので、メモリ４はスレーブ局ＳＬ１〜ＳＬｎとの間で共用されるメモリである。ＰＬＣ１０では、ＣＰＵ１（アプリケーション）が、メモリ４へのデータのリード／ライトとしてデータの送受信を行なう。このため、マスタ局Ｍからスレーブ局ＳＬ１〜ＳＬｎへのデータ送信や、スレーブ局ＳＬ１〜ＳＬｎからマスタ局Ｍへのデータ送信は、各局に配置されているメモリ４上の送信エリアにＣＰＵ１がデータを書き込むことによって行なわれる。そして、ＣＰＵ１は、最新のデータがメモリ４に格納されるよう最新のデータをメモリ４に上書きしている。したがって、マスタ局Ｍのメモリ４が記憶する受信状態情報テーブルには、最新のデータが格納されている。【００７０】
図８は、受信状態情報テーブルの構成の一例を示す図である。受信状態情報テーブル１０１では、マスタ局Ｍがスレーブ局ＳＬ１〜ＳＬｎから受信したデータが正常であるか否かを示す情報が、各データの受信回毎に登録されている。【００７１】
図８では、例えばスレーブ局ＳＬ１から受信したデータの情報として、１回目のデータ受信は正常であったことを示す「ＯＫ」が登録され、２回目のデータ受信は正常でなかったことを示す「ＮＧ」が登録され、ｘ（ｘは自然数）回目のデータ受信は正常でなかったことを示す「ＮＧ」が登録された場合を示している。【００７２】
各スレーブ局ＳＬ１〜ＳＬｎからのデータのうち、ノイズの発生などによって何れかのデータを正常に受信できていない場合、通信処理部３Ｍは、受信状態情報テーブル１０１に、新たな回数（（ｘ＋１）回目）を登録し、この時の各スレーブ局ＳＬ１〜ＳＬｎからのデータがそれぞれ正常であるか否かを登録する。【００７３】
そして、通信処理部３Ｍは、受信状態情報テーブル１０１に基づいて、図３に示したデータ通信処理または図４に示したデータ通信処理の何れか一方を選択する。受信状態情報テーブル１０１において、各スレーブ局ＳＬ１〜ＳＬｎからのデータが何れかの回数で「ＯＫ」を登録されていれば、通信処理部３Ｍは、図４に示したデータ通信処理を選択する。一方、スレーブ局ＳＬ１〜ＳＬｎの何れかが、全ての回数で「ＮＧ」を登録されていれば、通信処理部３Ｍは、図３に示したデータ通信処理（リトライ処理）を選択する。なお、通信処理部３Ｍは、１サイクルのデータ通信処理で全てのデータを正常に受信したと判断した場合、受信状態情報テーブル１０１内の情報をリセットする。また、通信処理部３Ｍは、図４に示したデータ通信処理を選択した場合に受信状態情報テーブル１０１内の情報をリセットする。【００７４】
通信処理部３Ｍは、データ通信処理の種類を選択すると、選択したデータ通信処理によってデータ通信を行うよう設定切替部３５に指示を送る。設定切替部３５は、通信処理部３Ｍから送られてくる指示に基づいて、データ通信処理の切替えを行なう。【００７５】
図７では、ＳＴ１０３とＳＴ１０６で受信したデータｓ１，ｓ２が正常であった場合を示している。このため、通信処理部３Ｍは、図４に示したデータ通信処理を選択する。これにより、データ通信システム１００では、図４に示したデータ通信処理として、ＳＴ１１０〜ＳＴ１２４の処理を行なう。このＳＴ１１０〜ＳＴ１２４の処理は、図４に示したＳＴ３８〜ＳＴ５２の処理に対応している。【００７６】
スレーブ局ＳＬ２が通信処理部３ＭへＴＦ（２回目）を送った後（ＳＴ１２４）、通信処理部３Ｍは、今回受信したデータｓ１やデータｓ２の受信状態を確認する（ＳＴ１２５）。通信処理部３Ｍは、この確認結果に基づいて、図３に示したデータ通信処理または図４に示したデータ通信の何れか一方を選択する（ＳＴ１２６）。【００７７】
図７では、ＳＴ１０３とＳＴ１０６で受信したデータｓ１，ｓ２は正常である。したがって、受信状態情報テーブル１０１はリセットされている。また、図７では、ＳＴ１２０で受信したデータｓ１が正常であり、ＳＴ１２３で受信したデータが正常でなかった場合を示している。このため、通信処理部３Ｍは、図３に示したデータ通信処理を選択する。これにより、データ通信システム１００では、図３に示したデータ通信処理として、ＳＴ１２７〜ＳＴ１３３の処理を行なう。このＳＴ１２７〜ＳＴ１３３の処理は、図３に示したＳＴ８〜ＳＴ１４の処理に対応している。【００７８】
以下、通信処理部３Ｍは、スレーブ局ＳＬ１，ＳＬ２からデータｓ１，ｓ２を受信して、スレーブ局ＳＬ２からＴＦを受信する度に、受信状態情報テーブル１０１への情報登録やリセットを行なう。そして、通信処理部３Ｍは、今回受信したデータｓ１，ｓ２が正常であるか否かの判断結果や受信状態情報テーブル１０１に基づいて、図３に示したデータ通信処理または図４に示したデータ通信処理の何れか一方を選択する。そして、選択したデータ通信処理によってマスタ局Ｍとスレーブ局ＳＬ１，ＳＬ２との間のデータ通信を行う処理を繰り返す。【００７９】
なお、本実施の形態では、図３に示したデータ通信処理（ＳＴ８〜ＳＴ１４）と、図４に示したデータ通信処理（ＳＴ３８〜ＳＴ５２）とを切替えながらデータ通信を行う場合について説明したが、図６に示したデータ通信処理（ＳＴ７８〜ＳＴ８７）と、図４に示したデータ通信処理（ＳＴ３８〜ＳＴ５２）とを切替えながらデータ通信処理を行なってもよい。【００８０】
また、図３に示したデータ通信処理と、図４に示したデータ通信処理とを切替える場合について説明したが、通信処理部３Ｍは、データｓ１，ｓ２の受信状態に基づいて、実施の形態１で説明したリトライ回数を設定してもよい。この場合、データｓ１，ｓ２を正常に受信できていれば、リトライ回数を０回に設定してリトライ処理を行なわない。通信処理部３Ｍは、スレーブ局ＳＬ１，ＳＬ２から受信したデータｓ１，ｓ２のエラー部分が所定数よりも少ない場合に少数回（例えば１回）のリトライ回数を設定し、スレーブ局ＳＬ１，ＳＬ２から受信したデータｓ１，ｓ２のエラー部分が所定数よりも多い場合に多数回（例えば３回）のリトライ回数を設定する。また通信処理部３Ｍは、データｓ１，ｓ２の受信状態に基づいて、実施の形態２で説明したデータｍの送信回数を設定してもよい。【００８１】
また、本実施の形態では、マスタ局Ｍからスレーブ局ＳＬ１，ＳＬ２にデータ送信し、データｓ１，ｓ２を受信した後に、受信状態の確認や次処理判定を行なう場合について説明したが、リトライ処理の後に受信状態の確認や次処理判定を行なってもよい。【００８２】
このように、実施の形態３によれば、データｓ１，ｓ２の受信状態に応じて、データ通信処理の種類を切替えるので、データｓ１，ｓ２の受信状態に応じた適切なデータ通信処理を行なうことが可能となる。したがって、効率良くデータ通信を行うことが可能となる。【００８３】
実施の形態４．
つぎに、図９〜図１２を用いてこの発明の実施の形態４について説明する。実施の形態４では、マスタ局Ｍがデータｓ１，ｓ２を受信した際に、マスタ局Ｍがスレーブ局にデータ送信させる回数（データ送信の繰り返し回数）を指示する。このとき、マスタ局Ｍは、データ通信システム１００内の状態（データｓ１やデータｓ２の受信状態）に応じて、スレーブ局毎にデータ送信させる回数を決定する。【００８４】
図９は、実施の形態４に係るマスタ局の通信処理部の構成を示す図である。同図に示すように、通信処理部３Ｍは、送信バッファ３１、受信バッファ３２に加えて送信回数設定部３７を有している。【００８５】
送信回数設定部３７は、データｓ１，ｓ２の受信状態に基づいて、各スレーブ局ＳＬ１，ＳＬ２にデータ送信させる回数を設定する。通信処理部３Ｍは、送信回数設定部３７が設定した各スレーブ局ＳＬ１，ＳＬ２の送信回数（データ送信回数）の情報を、ＴＦ内に入れてスレーブ局ＳＬ１，ＳＬ２に送信する。【００８６】
図１０は、実施の形態４に係るスレーブ局の構成を示す図である。なお、スレーブ局ＳＬ１，ＳＬ２は同様の構成を有しているので、ここではスレーブ局ＳＬ１の構成について説明する。図１０に示すように、スレーブ局ＳＬ１は、データ入出力部７、通信処理部７０Ｓを有している。【００８７】
通信処理部７０Ｓは、マスタ局Ｍとの間のデータ送受信処理を行なう。通信処理部７０Ｓは、送信バッファ７１、受信バッファ７２、データ送信回数制御部７３を備えている。通信処理部７０Ｓは、データ入出力部７からのデータを送信バッファ７１に格納し、送信バッファ７１を介してマスタ局Ｍに送信する。また、通信処理部７０Ｓは、マスタ局Ｍからのデータを受信バッファ７２に格納し、受信バッファ７２を介してデータ入出力部７側へ送信する。【００８８】
データ送信回数制御部７３は、受信したＴＦに基づいて、マスタ局Ｍへのデータ送信回数を制御する。例えば、ＴＦ内でマスタ局Ｍへのデータ送信回数が２回に設定されている場合、データ送信回数制御部７３は、マスタ局Ｍへのデータ送信を２回繰り返す。【００８９】
データ入出力部７は、ＩＯ機器やデジタル／アナログ変換装置などの周辺機器（図示せず）と接続されており、これらの周辺機器にマスタ局Ｍからの動作指示などを送る。また、データ入出力部７へは周辺機器からのデータが送られる。周辺機器からデータ入出力部７へ送られてくるデータは、通信処理部７０Ｓを介してマスタ局Ｍへ送られる。【００９０】
図１１は、実施の形態４に係るデータ通信システムの処理手順を示すシーケンス図である。実施の形態４のデータ通信システム１００は、ＳＴ１４１〜ＳＴ１４７の処理として、図３に示したＳＴ１〜ＳＴ７と同様の処理を行なう。【００９１】
スレーブ局ＳＬ２が通信処理部３ＭへＴＦ（１回目）を送った後（ＳＴ１４７）、通信処理部３Ｍは、データｓ１やデータｓ２の受信状態を確認する（ＳＴ１４８）。そして、通信処理部３Ｍは、スレーブ局ＳＬ１，ＳＬ２から受信したデータｓ１，ｓ２が正常に受信されたデータであるか否かを判断する。【００９２】
通信処理部３Ｍは、スレーブ局ＳＬ１，ＳＬ２から受信したデータｓ１，ｓ２が正常に受信されたデータである場合、マスタ局Ｍでのデータの受信処理を行なう。一方、通信処理部３Ｍは、スレーブ局ＳＬ１，ＳＬ２から受信したデータｓ１，ｓ２が正常に受信されたデータでない場合、送信回数設定部３７が、データｓ１，ｓ２が正常に受信されたデータであるか否かの判断結果や、受信したデータｓ１，ｓ２の状態（エラー量）に基づいて、各スレーブ局ＳＬ１，ＳＬ２にデータ送信させる回数（繰り返し回数）を設定する（ＳＴ１４９）。【００９３】
具体的には、送信回数設定部３７は、スレーブ局ＳＬ１，ＳＬ２からデータｓ１，ｓ２を受信できた場合に、データを受信できたスレーブ局に少数回（例えば０回や１回）のデータ送信回数を設定する。また、送信回数設定部３７は、スレーブ局ＳＬ１，ＳＬ２から受信したデータｓ１，ｓ２のエラー部分が所定量よりも少ない場合に、このスレーブ局に少数回（例えば２回）のデータ送信回数を設定する。また、送信回数設定部３７は、スレーブ局ＳＬ１，ＳＬ２から受信したデータｓ１，ｓ２のエラー部分が所定量よりも多い場合に、このスレーブ局に多数回（例えば３回）のデータ送信回数を設定する。また、送信回数設定部３７は、スレーブ局ＳＬ１，ＳＬ２からデータｓ１，ｓ２を受信できなかった場合に、データを受信できなかったスレーブ局に多数回（例えば４回）のデータ送信回数を設定する。本実施の形態では、送信回数設定部３７が、スレーブ局ＳＬ１にデータ送信させる回数を２回に設定し、スレーブ局ＳＬ２にデータ送信させる回数を１回に設定する場合について説明する。【００９４】
通信処理部３Ｍは、送信回数設定部３７が設定したスレーブ局毎の送信回数の情報（スレーブ局ＳＬ１は２回、スレーブ局ＳＬ２は１回）を、次に送るＴＦ内に入れる。そして、通信処理部３Ｍは、このＴＦをスレーブ局ＳＬ１に送信する（ＳＴ１５０）。スレーブ局ＳＬ１の通信処理部７０Ｓはマスタ局ＭからのＴＦを受信する。スレーブ局ＳＬ１のデータ送信回数制御部７３は、マスタ局Ｍへのデータ送信処理回数をマスタ局ＭからのＴＦに基づいて設定する。ここでは、ＴＦ内でスレーブ局ＳＬ１が２回のデータ送信を行うよう設定されているので、データ送信回数制御部７３は、データ送信回数を２回に設定する。そして、スレーブ局ＳＬ１は、マスタ局Ｍへのデータ送信処理（１回目）を行なう（ＳＴ１５１）。スレーブ局ＳＬ１からのデータは、データｓ１として通信処理部３Ｍに送られる（ＳＴ１５２）。さらに、ＴＦではスレーブ局ＳＬ１からデータ送信する回数が２回に設定されているので、通信処理部３Ｍは、マスタ局Ｍへのデータ送信処理（２回目）を行なう（ＳＴ１５３）。スレーブ局ＳＬ１からのデータは、データｓ１として通信処理部３Ｍに送られる（ＳＴ１５４）。スレーブ局ＳＬ１は、マスタ局Ｍへのデータ送信処理（２回目）を完了すると、スレーブ局ＳＬ２へＴＦを送る（ＳＴ１５５）。このＴＦには、マスタ局Ｍの送信回数設定部３７が設定したスレーブ局毎の送信回数の情報が入れられている。【００９５】
スレーブ局ＳＬ２の通信処理部７０Ｓはスレーブ局ＳＬ１からのＴＦを受信する。スレーブ局ＳＬ２のデータ送信回数制御部７３は、マスタ局Ｍへのデータ送信処理回数をＴＦに基づいて設定する。ここでは、ＴＦ内でスレーブ局ＳＬ２が１回のデータ送信を行うよう設定されているので、データ送信回数制御部７３は、データ送信回数を１回に設定する。そして、スレーブ局ＳＬ２は、マスタ局Ｍへのデータ送信処理を行なう（ＳＴ１５６）。スレーブ局ＳＬ２からのデータは、データｓ２として通信処理部３Ｍに送られる（ＳＴ１５７）。ＴＦではスレーブ局ＳＬ２からデータ送信する回数が１回に設定されているので、通信処理部７０Ｓは、マスタ局Ｍへのデータ送信処理（１回目）が完了すると、マスタ局ＭへＴＦを送る（ＳＴ１５８）。【００９６】
通信処理部３Ｍは、スレーブ局ＳＬ２からＴＦを受信すると、データの受信処理を行なう（ＳＴ１５９）。このとき、通信処理部３Ｍは、スレーブ局ＳＬ１，ＳＬ２から受信したデータｓ１，ｓ２が正常に受信されたデータである場合にのみ、マスタ局Ｍでのデータの受信処理を行なってもよい。この場合、通信処理部３Ｍが、スレーブ局ＳＬ１，ＳＬ２から受信したデータｓ１，ｓ２が正常に受信されたデータでなければ、データ通信システム１００では再度ＳＴ１４９〜ＳＴ１５８の処理が行なわれる。【００９７】
通信処理部３Ｍは、各スレーブ局ＳＬ１，ＳＬ２からのデータｓ１，ｓ２をまとめてデータ処理部２にＤＭＡ転送する（ＳＴ１６０、ＳＴ１６１）。この後、通信処理部３Ｍは、データ処理部２にデータの読み出し要求を行ない、実施の形態１の図３で説明したＳＴ１８〜ＳＴ２５の処理を行なう。そして、通信処理部３Ｍがスレーブ局ＳＬ２からのＴＦを受信すると、データ通信システム１００では、マスタ局Ｍからスレーブ局ＳＬ１，ＳＬ２へデータ送信し、その後ＳＴ１４１〜ＳＴ１６１の処理と図３に示したＳＴ１８〜ＳＴ２５の処理が繰り返される。【００９８】
なお、本実施の形態では、送信回数設定部３７が各スレーブ局ＳＬ１，ＳＬ２にデータ送信させる回数を設定する場合について説明したが、各スレーブ局ＳＬ１，ＳＬ２にデータ送信させる回数は、予めユーザ設定してもよい。この場合、図９に示した通信処理部３Ｍは、図５に示した指示入力部３３の機能を有する構成とする。【００９９】
また、本実施の形態では、送信回数設定部３７がデータｓ１，ｓ２を受信した際のデータｓ１，ｓ２の受信状態に基づいて、各スレーブ局ＳＬ１，ＳＬ２にデータ送信させる回数を設定する場合について説明したが、過去に受信したデータｓ１，ｓ２の受信状態（受信状態の履歴を用いて算出された統計情報）に基づいて、各スレーブ局ＳＬ１，ＳＬ２にデータ送信させる回数を設定してもよい。【０１００】
データ通信システム１００では、例えば図１２に示すようにスイッチングハブ２０を介して各局間のデータ通信が行なわれる。図１２は、スイッチングハブを介したデータ通信を説明するための図である。この場合において、所定の伝送路のみでノイズが発生しやすい場合がある。したがって、送信回数設定部３７は、受信状態の統計情報に基づいて、各スレーブ局ＳＬ１，ＳＬ２にデータ送信させる回数を設定すれば、ノイズの発生率に応じた送信回数をスレーブ局毎に設定することができる。【０１０１】
送信回数設定部３７は、例えばＦＣＳを用いて、スレーブ局ＳＬ１，ＳＬ２から受信したデータｓ１，ｓ２が正常に受信されたデータであるか否かを判断する。送信回数設定部３７は、この判断結果を蓄積しておき、蓄積しておいた判断結果に基づいて、データの受信状態（正常な受信か否か）に関する統計情報（ノイズの発生率など）を作成する。そして、送信回数設定部３７は、作成した統計情報に基づいて、各スレーブ局ＳＬ１，ＳＬ２にデータ送信させる回数を設定する。この場合、送信回数設定部３７は、スレーブ局ＳＬ２からＴＦを受信する前に予め受信状態の統計情報に基づいて各スレーブ局ＳＬ１，ＳＬ２にデータ送信させる回数を設定しておいてもよい。【０１０２】
また、送信回数設定部３７は、マスタ局Ｍがデータ通信を行うスレーブ局の数、各スレーブ局との間のデータ通信に要する時間、マスタ局Ｍ内で行なうデータ処理に要する時間などに基づいて、各スレーブ局ＳＬ１，ＳＬ２にデータ送信させる回数を設定してもよい。【０１０３】
また、本実施の形態では、マスタ局Ｍからスレーブ局ＳＬ１，ＳＬ２にデータ送信し、データｓ１，ｓ２を受信した後に、受信状態の確認や送信回数の設定を行なう場合について説明したが、リトライ処理の後に受信状態の確認や送信回数の設定を行なってもよい。【０１０４】
このように、実施の形態４によれば、データｓ１，ｓ２の受信状態に基づいて、各スレーブ局ＳＬ１，ＳＬ２にデータ送信させる回数を設定するので、データｓ１，ｓ２の受信状態に応じた適切なリカバリ処理を行なうことが可能となる。したがって、効率良くデータ通信を行うことが可能となる。【０１０５】
実施の形態５．
つぎに、図１３〜図２０を用いてこの発明の実施の形態５について説明する。実施の形態５では、サイクリック通信を行う際に、サイクリックデータを分割するとともに、分割したサイクリックデータにシーケンシャルＮｏ（シーケンシャルナンバ）、エンドフラグ（最後情報）、データの格納範囲情報を付与してデータ管理する。そして、他局から送られてきたサイクリックデータを自局のメモリに更新する際には、シーケンシャルＮｏとエンドフラグに基づいて、全てのサイクリックデータを受信できたか否かを判断し、全てのサイクリックデータを受信できた場合に自局のメモリに展開する。データの格納範囲情報は、分割されたサイクリックデータのデータ長とメモリへ格納する際のアドレスであり、各局はデータの格納範囲情報に従ったメモリ内の位置にサイクリックデータを格納する。【０１０６】
ＦＡ分野などで用いられるサイクリック通信は、伝送路に接続された複数の局が互いに他局のデータを共有する通信方法である。このサイクリック通信では、各局は、他の局と共有して使用する共有メモリ（全局で共通のデータを格納するメモリ）を局毎に有している。各局の共有メモリは、送信エリア、受信エリアによって構成しておき、各局は、自局が取得したデータを送信エリアに格納するとともに、他局からのデータは受信エリアに格納しておく。そして、各局は、自局の送信エリアのデータを、所定の周期で他局の共有メモリの受信エリアに送信する。これにより、局間で共通のデータを共有すること（サイクリックデータの局単位保障）が可能となる。【０１０７】
図１３は、実施の形態５に係るデータ通信システムのメモリ構成を示す図である。図１３では、マスタ局Ｍが備える共有メモリを共有メモリ８０Ｘで示し、スレーブ局ＳＬ１〜ＳＬ３が備える共有メモリをそれぞれ共有メモリ８１Ｘ〜８３Ｘで示している。なお、図１３では、データ通信システム１００のスレーブ局がスレーブ局ＳＬ１〜ＳＬ３の３つである場合を示している。【０１０８】
マスタ局Ｍの共有メモリ８０Ｘは、自局（マスタ局Ｍ）のデータをマスタ局データとして格納する送信エリア８０ａ、スレーブ局ＳＬ１から送られてくるデータをスレーブ局データ（１）として格納する受信エリア８０ｂ、スレーブ局ＳＬ２から送られてくるデータをスレーブ局データ（２）として格納する受信エリア８０ｃ、スレーブ局ＳＬ３から送られてくるデータをスレーブ局データ（３）として格納する受信エリア８０ｄを有している。【０１０９】
また、スレーブ局ＳＬ１の共有メモリ８１Ｘは、マスタ局Ｍから送られてくるデータをマスタ局データとして格納する受信エリア８１ａ、自局（スレーブ局ＳＬ１）のデータをスレーブ局データ（１）として格納する送信エリア８１ｂ、スレーブ局ＳＬ２から送られてくるデータをスレーブ局データ（２）として格納する受信エリア８１ｃ、スレーブ局ＳＬ３から送られてくるデータをスレーブ局データ（３）として格納する受信エリア８１ｄを有している。【０１１０】
また、スレーブ局ＳＬ２の共有メモリ８２Ｘは、マスタ局Ｍから送られてくるデータをマスタ局データとして格納する受信エリア８２ａ、自局（スレーブ局ＳＬ２）のデータをスレーブ局データ（２）として格納する送信エリア８２ｃ、スレーブ局ＳＬ１から送られてくるデータをスレーブ局データ（１）として格納する受信エリア８２ｂ、スレーブ局ＳＬ３から送られてくるデータをスレーブ局データ（３）として格納する受信エリア８２ｄを有している。【０１１１】
また、スレーブ局ＳＬ３の共有メモリ８３Ｘは、マスタ局Ｍから送られてくるデータをマスタ局データとして格納する受信エリア８３ａ、自局（スレーブ局ＳＬ３）のデータをスレーブ局データ（３）として格納する送信エリア８３ｄ、スレーブ局ＳＬ１から送られてくるデータをスレーブ局データ（１）として格納する受信エリア８３ｂ、スレーブ局ＳＬ２から送られてくるデータをスレーブ局データ（２）として格納する受信エリア８３ｃを有している。【０１１２】
サイクリック通信では、１回の送信権を獲得（ＴＦ受信）した際に、自局の送信エリアのデータ（サイクリックデータ）をフレーム分割し、分割後のフレーム（以下、分割後フレームという場合がある）を他局に送信する。このとき、他局では、送信権を獲得した局からの分割後フレームを全て受信して最新のサイクリックデータに更新する必要がある。換言すると、送信権を獲得した時点で、全てのサイクリックデータが更新されなければならず、一部のみのサイクリックデータの更新は許されない。従来、送信権を獲得した局から一部のサイクリックデータしか受信できなかった場合、受信できなかったサイクリックデータを再送信（連続送信）する必要があった。【０１１３】
しかしながら、各局にサイクリックデータの再送信機能を実装させるとデータの受信処理が複雑になり、データ共有のリアルタイム性に悪影響を及ぼす場合がある。そこで、本実施の形態のデータ通信システム１００では、分割後フレームにシーケンシャルＮｏやエンドフラグを付与して送信する。そして、サイクリックデータを受信する際にはシーケンシャルＮｏとエンドフラグに基づいて、全ての分割後フレームを受信できたかを判断し、全ての分割後フレームを受信できた場合にサイクリックデータを更新する。【０１１４】
つぎに、本実施の形態に係るマスタ局Ｍとスレーブ局ＳＬ１〜ＳＬ３の構成について説明する。図１４は、実施の形態５に係るスレーブ局の通信処理部の構成を示す図である。なお、スレーブ局ＳＬ１〜ＳＬ３は、同様の構成を有しているので、ここではスレーブ局ＳＬ１の通信処理部７０Ｓの構成について説明する。実施の形態５に係るスレーブ局ＳＬ１の通信処理部７０Ｓは、送信バッファ７１、受信バッファ７２、分割処理部６１、組立処理部６２を有している。分割処理部６１は、サイクリックデータから分割後フレームへの分割などを行ない、組立処理部６２は、分割後フレームを全て受信できたか否かの判定などを行う。【０１１５】
分割処理部６１は、データ分割部７５、シーケンシャルＮｏ付与部７６、エンドフラグ設定部７７を有している。データ分割部７５は、共有メモリ８１Ｘの送信エリア８１ｂに格納しているサイクリックデータを他の局に送信する際に、サイクリックデータをフレーム分割する。データ分割部７５は、スレーブ局ＳＬ１がＴＦを受信してデータの送信権を得た際に、サイクリックデータを分割する。【０１１６】
シーケンシャルＮｏ付与部７６は、データ分割部７５によって分割されたサイクリックデータ（分割後フレーム）のそれぞれにシーケンシャルＮｏを付与する。エンドフラグ設定部７７は、データ分割部７５によって分割されたサイクリックデータのうち最後の分割後フレームにエンドフラグを付与する。【０１１７】
図１５は、実施の形態５に係るマスタ局の通信処理部の構成を示す図である。実施の形態５に係るマスタ局Ｍの通信処理部３Ｍは、他局（スレーブ局ＳＬ１〜ＳＬ３）から送られてくるサイクリックデータに付与されているシーケンシャルＮｏとエンドフラグに基づいて、全てのサイクリックデータを受信できたか否かを判断し、全てのサイクリックデータを受信できた場合に自局の共有メモリ８０Ｘにサイクリックデータを展開する。【０１１８】
通信処理部３Ｍは、送信バッファ３１、受信バッファ３２、分割処理部６１、組立処理部６２を有している。組立処理部６２は、更新指示部５１、レジスタリセット部５３を備えている。更新指示部５１は、分割後フレームを全て受信したか否かを判定する判定回路５２を有している。更新指示部５１は、判定回路５２が分割後フレームを全て受信したと判定した場合に、共有メモリ８０Ｘに分割後フレームを展開する。判定回路５２は、各シーケンシャルＮｏに対応する分割後フレームを受信したか否かの情報を入力するレジスタ（後述のシーケンシャルＮｏレジスタ９１）、分割後フレームにエンドフラグが付与されていたか否かの情報を入力するレジスタ（後述のエンドフラグレジスタ９２）を備えている。判定回路５２は、シーケンシャルＮｏレジスタ９１やエンドフラグレジスタ９２に入力される情報に基づいて、分割後フレームを全て受信したか否かを判定する。【０１１９】
レジスタリセット部５３は、サイクリックデータ内に付与されているＳＡ（ソースアドレス）に基づいて、何れの局からサイクリックデータを受信したかを判定する。ＳＡは、サイクリックデータの送信元を示すフレーム送信元情報である。レジスタリセット部５３は、例えば前回とは異なる局から分割後フレームを受信した場合に、前回の局から受信したシーケンシャルＮｏとエンドフラグを廃棄し判定回路５２をリセットする。【０１２０】
つぎに、実施の形態５に係るデータ通信システム１００の処理手順について説明する。図１６は、実施の形態５に係るデータ通信システムの処理手順を示すシーケンス図である。なお、ここでは、データ通信システム１００内のスレーブ局がスレーブ局ＳＬ１，ＳＬ２の２つである場合について説明する。また、マスタ局ＭからのＴＦがまずスレーブ局ＳＬ１に送られ、その後スレーブ局ＳＬ１からスレーブ局ＳＬ２へＴＦが送られる場合について説明する。【０１２１】
データ通信システム１００では、マスタ局Ｍの通信処理部３Ｍがスレーブ局ＳＬ１へＴＦを送信する（ＳＴ１９１）。スレーブ局ＳＬ１は、ＴＦを受信すると、マスタ局Ｍへのデータ送信処理を行なう（ＳＴ１９２）。このとき、スレーブ局ＳＬ１の通信処理部７０Ｓは、共有メモリ８１Ｘ内の送信エリア８１ｂに格納してある自局のサイクリックデータを分割してマスタ局Ｍに送信する。また、スレーブ局ＳＬ１からマスタ局Ｍへのデータ送信は、複数回（ここでは２サイクル）繰り返される。このように、本実施の形態のデータ通信システム１００では、サイクリックデータの送信を行う際に、データ送信を複数回繰り返すとともに、各データ送信の際にはサイクリックデータを分割して送信する。【０１２２】
図１７は、サイクリックデータの分割処理を説明するための図である。スレーブ局ＳＬ１のデータ分割部７５は、共有メモリ８１Ｘの送信エリア８１ｂに格納されているサイクリックデータ（データｓ１）を所定サイズのデータに分割する。ここでは、データ分割部７５がサイクリックデータを３つのデータ（データｓ１−１，ｓ１−２，ｓ１−３）に分割する場合について説明する。データ分割部７５が、サイクリックデータを３つのデータに分割すると、シーケンシャルＮｏ付与部７６は、分割後フレームのそれぞれにシーケンシャルＮｏを付与する。シーケンシャルＮｏ付与部７６は、例えば、１つ目の分割後フレーム（データｓ１−１）にシーケンシャルＮｏ「０」を付与し、２つ目の分割後フレーム（データｓ１−２）にシーケンシャルＮｏ「１」を付与し、３つ目の分割後フレーム（データｓ１−３）にシーケンシャルＮｏ「２」を付与する。また、エンドフラグ設定部７７は、分割後フレームのうち、最後の分割後フレームにエンドフラグを付与する。ここでのエンドフラグ設定部７７は、サイクリックデータが３分割されているので、３つ目の分割後フレームにエンドフラグ「１」を付与する。【０１２３】
スレーブ局ＳＬ１の通信処理部７０Ｓは、シーケンシャルＮｏやエンドフラグの付与された分割後フレームを、マスタ局Ｍに送信する。通信処理部７０Ｓは、まず１つ目の分割後フレームをデータｓ１−１としてマスタ局Ｍに送信する（ＳＴ１９３）。さらに、通信処理部７０Ｓは、２つ目の分割後フレームをデータｓ１−２としてマスタ局Ｍに送信し（ＳＴ１９４）、３つ目の分割後フレームをデータｓ１−３としてマスタ局Ｍに送信する（ＳＴ１９５）。【０１２４】
この後、通信処理部７０Ｓは、ＳＴ１９２と同様のデータ送信を繰り返す（ＳＴ１９６）。具体的には、通信処理部７０Ｓは、１つ目の分割後フレーム（データｓ１−１）、２つ目の分割後フレーム（データｓ１−２）、３つ目の分割後フレーム（データｓ１−３）の順番で各分割後フレームをマスタ局Ｍに送信する（ＳＴ１９７、ＳＴ１９８、ＳＴ１９９）。【０１２５】
マスタ局Ｍの通信処理部３Ｍは、スレーブ局ＳＬ１から分割後フレームを受信すると、分割後フレームに付与されているシーケンシャルＮｏやエンドフラグを抽出する。そして、判定回路５２のシーケンシャルＮｏレジスタ９１、エンドフラグレジスタ９２に、シーケンシャルＮｏやエンドフラグに応じた情報を入力する。【０１２６】
図１８および図１９は、判定回路の構成例と判定回路に入力される情報を示す図である。図１８では、全ての分割後フレームを受信した場合の判定回路５２を示し、図１９では、一部の分割後フレームを受信できていない場合の判定回路５２を示している。【０１２７】
判定回路５２は、シーケンシャルＮｏレジスタ９１、エンドフラグレジスタ９２を備えている。判定回路５２は、シーケンシャルＮｏレジスタ９１、エンドフラグレジスタ９２への情報を入力とし、スレーブ局ＳＬ１から全ての分割後フレームを受信したか否かの判定結果を出力する。【０１２８】
シーケンシャルＮｏレジスタ９１は、例えば５１２個のレジスタを有しており、各レジスタがそれぞれ分割後フレームに対応している。また、エンドフラグレジスタ９２は、例えば５１２個のレジスタを有しており、各レジスタがそれぞれ分割後フレームに対応している。例えば、シーケンシャルＮｏレジスタ９１の１つ目のレジスタ（Ｎｏ０  ｒｅｃｖ＿Ｒｅｇ）は、シーケンシャルＮｏ「０」の分割後フレームに対応し、２つ目のレジスタ（Ｎｏ１  ｒｅｃｖ＿Ｒｅｇ）は、シーケンシャルＮｏ「１」の分割後フレームに対応している。また、エンドフラグレジスタ９２の１つ目のレジスタ（Ｎｏ０  Ｅ＿Ｒｅｇ）は、シーケンシャルＮｏ「０」の分割後フレームに対応し、２つ目のレジスタ（Ｎｏ１  Ｅ＿Ｒｅｇ）は、シーケンシャルＮｏ「１」の分割後フレームに対応している。【０１２９】
マスタ局Ｍが、スレーブ局ＳＬ１から分割後フレームを受信すると、更新指示部５１は、分割後フレームに付与されているシーケンシャルＮｏとエンドフラグを全て抽出する。ここでは、更新指示部５１がシーケンシャルＮｏ「１」〜「３」と、シーケンシャルＮｏ「３」のエンドフラグを抽出する。【０１３０】
シーケンシャルＮｏレジスタ９１やエンドフラグレジスタ９２の初期値は、「０」である。更新指示部５１は、シーケンシャルＮｏレジスタ９１のうち、抽出したシーケンシャルＮｏに対応するレジスタに「１」を入力する。ここでは、シーケンシャルＮｏ「１」〜「３」に対応するレジスタに「１」が入力される。具体的には、「Ｎｏ０  ｒｅｃｖ＿Ｒｅｇ」のレジスタ、「Ｎｏ１  ｒｅｃｖ＿Ｒｅｇ」のレジスタ、「Ｎｏ２  ｒｅｃｖ＿Ｒｅｇ」の各レジスタに「１」が入力される。また、シーケンシャルＮｏ「３」のエンドフラグを抽出したので、エンドフラグレジスタ９２のうち、シーケンシャルＮｏ「３」の分割後フレームに対応するエンドフラグに「１」が入力される。【０１３１】
判定回路５２は、シーケンシャルＮｏレジスタ９１のうち、全ての分割後フレームに対応するレジスタに「１」が入力され、かつエンドフラグレジスタ９２の何れかのレジスタに「１」が入力された場合に、全ての分割後フレームを受信したことを示す「１」を出力するよう構成されている。【０１３２】
図１８に示した判定回路５２では、全ての分割後フレームに対応するレジスタに「１」が入力されている。また、図１８に示した判定回路５２では、シーケンシャルＮｏ「３」の分割後フレームに対応するエンドフラグに「１」が入力されている。したがって、図１８に示した判定回路５２からは、全ての分割後フレームを受信したことを示す「１」が出力される。【０１３３】
図１９に示した判定回路５２では、一部の分割後フレームに対応するレジスタに「１」が入力されていない。すなわち、「Ｎｏ１  ｒｅｃｖ＿Ｒｅｇ」のレジスタに「０」が入力されたままである。したがって、図１９に示した判定回路５２からは、全ての分割後フレームを受信していないことを示す「０」が出力される。【０１３４】
分割後フレームのうち、正しく受信できた分割後フレームは、通信処理部３Ｍの受信バッファ３２に格納しておく。スレーブ局ＳＬ１は、サイクリックデータの送信を２回繰り返している。このため、マスタ局Ｍには、サイクリックデータが２回送られてくる。２回目のサイクリックデータが送られてきた場合も、更新指示部５１は、分割後フレームに付与されているシーケンシャルＮｏとエンドフラグを全て抽出する。そして、更新指示部５１は、抽出したシーケンシャルＮｏに対応するレジスタに「１」を入力する。また、抽出したエンドフラグに対応するレジスタに「１」を入力する。このとき、既に「１」が入力されているレジスタへの「１」の再入力は省略してもよい。【０１３５】
これにより、マスタ局Ｍでは、２回送信された分割後フレームのうち少なくとも１回の分割後フレームを受信していれば、分割後フレームを受信したと判断する。そして、各分割後フレームを少なくとも１回ずつ受信した場合に、全ての分割後フレームを受信したと判断され、判定回路５２から「１」が出力される。更新指示部５１は、判定回路５２が「１」を出力すると、スレーブ局ＳＬ１から全ての分割後フレームを受信したと判断する。【０１３６】
スレーブ局ＳＬ１は、マスタ局Ｍへのデータ送信処理を完了すると、スレーブ局ＳＬ２へＴＦを送る（ＳＴ２００）。これにより、スレーブ局ＳＬ２の通信処理部７０Ｓは、サイクリックデータを、データｓ２としてマスタ局Ｍに送信する（ＳＴ２０１，ＳＴ２０２）。このとき、スレーブ局ＳＬ２は、スレーブ局ＳＬ１と同様に、サイクリックデータを複数回繰り返し送信するとともに、サイクリックデータを分割後フレームに分割してもよい。この後、スレーブ局ＳＬ２は、マスタ局ＭへＴＦを送る（ＳＴ２０３）。【０１３７】
マスタ局Ｍは、スレーブ局ＳＬ２からサイクリックデータを受信する。このとき、スレーブ局ＳＬ２からのサイクリックデータが分割後フレームであれば、スレーブ局ＳＬ１からの分割後フレームと同様の処理によってサイクリックデータを受信する。具体的には、マスタ局Ｍは、複数回繰り返し送信された各分割後フレームを少なくとも１回ずつ受信した場合に、全ての分割後フレームを受信したと判断する。このとき、判定回路５２では、「１」が出力される。更新指示部５１は、判定回路５２が「１」を出力すると、スレーブ局ＳＬ２から全ての分割後フレームを受信したと判断する。【０１３８】
スレーブ局ＳＬ２からのサイクリックデータが分割後フレームでなければ、サイクリックデータにシーケンシャルＮｏが含まれていない。この場合、更新指示部５１は、判定回路５２を用いることなく、スレーブ局ＳＬ２から全ての分割後フレームを受信したと判断する。【０１３９】
更新指示部５１は、全てのスレーブ局ＳＬ１，ＳＬ２から受信したサイクリックデータに対して判定回路５２が「１」を出力すると、全てのサイクリックデータを受信したか否かを示す受信許可フラグに「１」を入力する。受信許可フラグは、マスタ局Ｍが有するフラグであり、データ処理部２によるデータ受信処理を許可するか否かを示すフラグである。受信許可フラグが「０」の場合にデータ処理部２によるデータ受信処理は禁止され、受信許可フラグが「１」の場合にデータ処理部２によるデータ受信処理は許可される。【０１４０】
データ処理部２は、受信許可フラグの値をポーリングによって監視している。データ処理部２は、受信許可フラグが「１」の場合にデータ受信処理を行う（ＳＴ２０４）。これにより、受信バッファ３２に格納されている分割後フレームがデータ処理部２へ送られる。具体的には、通信処理部３Ｍは、各スレーブ局ＳＬ１，ＳＬ２からのデータｓ１，ｓ２をまとめてデータ処理部２にＤＭＡ転送する（ＳＴ２０５、ＳＴ２０６）。データ処理部２は、データ受信処理を完了すると、通信処理部３Ｍの受信許可フラグに「０」を入力させる。これにより、データ処理部２によるデータ受信処理は禁止され、通信処理部３Ｍは次のスレーブ局ＳＬ２からの分割後フレームを待つことになる。【０１４１】
なお、データ処理部２は、通信処理部３Ｍがスレーブ局ＳＬ１からのサイクリックデータを全て受信した時点でデータ受信処理を行ってもよい。この場合、データ処理部２は、通信処理部３Ｍがスレーブ局ＳＬ２からのサイクリックデータを全て受信した時点でデータ受信処理を行なう。【０１４２】
また、図１６ではスレーブ局ＳＬ１がマスタ局Ｍにサイクリックデータを送信する場合について説明したが、スレーブ局ＳＬ１はスレーブ局ＳＬ２へもサイクリックデータを送信する。さらに、スレーブ局ＳＬ２は、マスタ局Ｍとスレーブ局ＳＬ１にサイクリックデータを送信し、マスタ局Ｍはスレーブ局ＳＬ１，ＳＬ２にサイクリックデータを送信する。【０１４３】
つぎに、判定回路５２のリセット処理（シーケンシャルＮｏレジスタ９１やエンドフラグレジスタ９２のリセット）について説明する。図２０は、判定回路のリセット処理を説明するための図である。マスタ局Ｍの通信処理部３Ｍは、レジスタリセット部５３や判定回路５２などに加えてレジスタリセット判定部５４を備えている。なお、図１５に示した通信処理部３Ｍでは、レジスタリセット判定部５４の図示を省略している。【０１４４】
レジスタリセット判定部５４は、シーケンシャルＮｏレジスタ９１やエンドフラグレジスタ９２をリセットさせるか否かを判定するとともに、判定結果をレジスタリセット部５３に送る。レジスタリセット判定部５４は、ＳＡ判定部５６とＴＦ判定部５７を備えている。【０１４５】
ＳＡ判定部５６は、受信したサイクリックデータ内のＳＡに基づいて、何れの局からサイクリックデータを受信しているかを判断する。そして、ＳＡ判定部５６は、前回とは異なる局から分割後フレームを受信したと判断した場合に、レジスタリセット部５３にレジスタのリセット指示を送る。【０１４６】
ＴＦ判定部５７は、受信したＴＦの宛先（トークン宛先情報）に基づいて、何れの局へのＴＦであるかを判断する。そして、ＴＦ判定部５７は、自局（マスタ局Ｍ）宛てのＴＦを受信したと判断した場合に、レジスタリセット部５３にレジスタのリセット指示を送る。【０１４７】
レジスタリセット部５３は、ＳＡ判定部５６やＴＦ判定部５７からレジスタのリセット指示が送られてきた場合に、シーケンシャルＮｏとエンドフラグを廃棄し判定回路５２をリセットする。具体的には、シーケンシャルＮｏレジスタ９１とエンドフラグレジスタ９２の全てのレジスタに「０」を入力する。【０１４８】
マスタ局Ｍとサイクリックデータを共有する局が２台以上のスレーブ局である場合、レジスタリセット判定部５４は、ＳＡ判定部５６を用いてレジスタリセット部５３にレジスタのリセット指示を送る。【０１４９】
また、マスタ局Ｍとサイクリックデータを共有する局が１台のスレーブ局だけである場合、レジスタリセット判定部５４は、ＴＦ判定部５７を用いてレジスタリセット部５３にレジスタのリセット指示を送る。【０１５０】
なお、各局間でのＴＦの送受信をブロードキャストによって行う場合、マスタ局Ｍとサイクリックデータを共有する局が２台以上のスレーブ局である場合であっても、レジスタリセット判定部５４は、ＴＦ判定部５７を用いてレジスタリセット部５３にレジスタのリセット指示を送ることができる。この場合、ＴＦ判定部５７は、ＴＦ（任意の宛先を有したＴＦ）を受信した場合に、レジスタリセット部５３にレジスタのリセット指示を送る。また、各局間でＴＦを複数回繰り返して送受信する場合には、ＴＦ判定部５７は、前回とは異なる宛先のＴＦまたは前回とは異なる送信元（トークン送信元情報）のＴＦを受信した場合に、レジスタリセット部５３にレジスタのリセット指示を送る。換言すると、ＴＦ判定部５７は、他局を宛先としたＴＦを受信した場合に、レジスタリセット部５３にレジスタのリセット指示を送る。【０１５１】
なお、本実施の形態では、レジスタリセット判定部５４がＳＡ判定部５６とＴＦ判定部５７の両方を備えている場合について説明したが、レジスタリセット判定部５４の構成を、ＳＡ判定部５６とＴＦ判定部５７の何れか一方を備える構成としてもよい。【０１５２】
このように、実施の形態５によれば、データ通信システム１００内で共有するサイクリックデータを他局に送信する際に、サイクリックデータを分割するとともに分割後フレームにシーケンシャルＮｏとエンドフラグを付与しているので、サイクリックデータを受信した局はシーケンシャルＮｏとエンドフラグに基づいて全てのサイクリックデータを受信できたか否かを判断できる。これにより、複数回に渡ってサイクリックデータの送受信を繰り返す場合であっても、全てのサイクリックデータを受信できたか否かを容易に判断できる。複数回に渡ってサイクリックデータの送受信を繰り返すので、サイクリックデータの送信リトライを減らすことが可能となる。また、全てのサイクリックデータを受信できたか否かを容易に判断できるので、データ共有のリアルタイム性を容易に維持することが可能となる。【０１５３】
また、ＴＦやサイクリックデータ内に付与されているＳＡに基づいて判定回路５２をリセットするので、各局から全てのサイクリックデータを受信できたか否かを局毎に容易に判断することが可能となる。【０１５４】
実施の形態６．
つぎに、図２１〜図２５を用いてこの発明の実施の形態６について説明する。従来、データ通信システム内の各局は、自局のデータを送信した後、ＴＦを１回発行することによって次の送信局を指定していた。すなわち、従来のトークン方式では、ＴＦの受信によって送信権を得た局のみがデータ送信を行う規則であったので、ＴＦの多重発行は許されていなかった。これは、他局からのフレーム受信中に自局のフレームを送信してしまうと、伝送路でフレームの輻輳が発生しデータロスする可能性があるからである。本実施の形態では、各局が自局のデータを送信した後、ＴＦを複数回送信することによって次の送信局を指定する。換言すると、実施の形態６では、データ通信システム１００内の局間でＴＦを送受信する際に、ＴＦの送受信を複数回に渡って繰り返す。【０１５５】
図２１は、実施の形態６に係るマスタ局の通信処理部の構成を示す図である。同図に示すように、実施の形態４に係るマスタ局Ｍの通信処理部３Ｍは、送信バッファ３１、受信バッファ３２に加えてトークン設定部４１を有している。【０１５６】
本実施の形態のトークン設定部４１は、実施の形態４で説明した送信回数設定部３７と同様の処理によって、ＴＦの送信回数を設定する。トークン設定部４１は、論理リングを構成する際にスレーブ局ＳＬ１，ＳＬ２にトークン送信回数を指示するとともに、マスタ局Ｍからスレーブ局ＳＬ１へ送信するＴＦの繰り返し送信回数（ＴＦの連続送信回数）を設定する。【０１５７】
図２２は、実施の形態６に係るスレーブ局の通信処理部の構成を示す図である。なお、スレーブ局ＳＬ１，ＳＬ２は同様の構成を有しているので、ここではスレーブ局ＳＬ１の通信処理部７０Ｓの構成について説明する。図２２に示すように、実施の形態６に係るスレーブ局ＳＬ１の通信処理部７０Ｓは、トークン送信制御部７４、送信バッファ７１、受信バッファ７２を有している。【０１５８】
トークン送信制御部７４は、マスタ局Ｍ（トークン設定部４１）からの指示に基づいて、ＴＦを送信する回数を制御する。具体的には、スレーブ局ＳＬ１のトークン送信制御部７４は、スレーブ局ＳＬ２へ送信するＴＦの送信回数を制御し、スレーブ局ＳＬ２のトークン送信制御部７４は、マスタ局Ｍへ送信するＴＦの送信回数を制御する。トークン送信制御部７４は、マスタ局Ｍから１回目のＴＦを受信すると、このＴＦを受信してからの経過時間を測定するタイマ（図示せず）を備えている。トークン送信制御部７４は、マスタ局Ｍから１つ目（１回目）のＴＦを受信してから、予め設定しておいた所定時間が経過した後に、データ送信を開始する。換言すると、トークン送信制御部７４は、マスタ局Ｍから１つ目のＴＦを受信すると、予め設定しておいた所定時間が経過するまでデータ送信処理を待つ。トークン送信制御部７４は、マスタ局Ｍから１つ目のＴＦを受信すると、ＴＦを受信してからの時間を測定し、予め設定しておいた所定時間の経過後に、自局のデータをマスタ局Ｍに送信する。【０１５９】
図２３は、実施の形態６に係るデータ通信システムの処理手順を示すシーケンス図である。本実施の形態のデータ通信システム１００の処理手順の特徴の１つは、マスタ局Ｍからスレーブ局ＳＬ１へのＴＦ送信や、スレーブ局ＳＬ１からスレーブ局ＳＬ２へのＴＦ送信などを複数回繰り返すことである。以下では、マスタ局Ｍのトークン設定部４１がスレーブ局ＳＬ１，ＳＬ２にトークン送信回数として３回を指示するとともに、マスタ局Ｍからスレーブ局ＳＬ１へ送信するＴＦのトークン送信回数を３回に設定する場合について説明する。【０１６０】
データ通信システム１００では、論理リングを構成する際にマスタ局Ｍがスレーブ局ＳＬ１，ＳＬ２にトークン送信回数として３回を指示しておく。具体的には、マスタ局Ｍがスレーブ局ＳＬ１，ＳＬ２に送信するセットアップフレームにトークン送信回数（３回）を指定する情報を入れておく。これにより、スレーブ局ＳＬ１，ＳＬ２のトークン送信制御部７４は、マスタ局Ｍからの指示に基づいて、ＴＦの送信回数を３回に設定する。また、マスタ局Ｍのトークン設定部４１は、スレーブ局ＳＬ１へのトークン送信回数を３回に設定しておく。【０１６１】
この後、マスタ局Ｍの通信処理部３Ｍがスレーブ局ＳＬ１へ１回目のＴＦ（１）を送信する（ＳＴ１７１）。スレーブ局ＳＬ１は、マスタ局Ｍから１回目のＴＦ（１）を受信すると、トークン送信制御部７４がタイマをスタートさせるとともに、マスタ局Ｍへのデータ送信処理を待機させる（ＳＴ１７４）。マスタ局Ｍの通信処理部３Ｍは、１回目のＴＦを送信した後、所定の間隔をおいて、スレーブ局ＳＬ１へ２回目のＴＦ（２）を送信する（ＳＴ１７２）。さらに、マスタ局Ｍの通信処理部３Ｍは、２回目のＴＦ（２）を送信した後、所定の間隔をおいて、スレーブ局ＳＬ１へ３回目のＴＦ（３）を送信する（ＳＴ１７３）。ＴＦは、例えば、ＩＥＥＥ（Institute  of  Electrical  and  Electronics  Engineers）８０２．３ｕに従ったタイミングで送信される。【０１６２】
スレーブ局ＳＬ１のトークン送信制御部７４は、１回目のＴＦ（１）を受信してから予め設定しておいた所定時間（待機時間）が経過すると、データ送信の待機を解除する。トークン送信制御部７４は、最後のＴＦ（３回目のＴＦ）を受信した後に、データ送信の待機を解除するよう待機時間を設定しておく。これにより、スレーブ局ＳＬ１の通信処理部７０Ｓは、３回目のＴＦを受信した後にマスタ局Ｍへデータ送信を行う（ＳＴ１７５）。スレーブ局ＳＬ１からのデータは、データｓ１として通信処理部３Ｍに送られる（ＳＴ１７６）。【０１６３】
スレーブ局ＳＬ１は、マスタ局Ｍへのデータ送信処理が完了すると、スレーブ局ＳＬ２へ１回目のＴＦ（１）を送る（ＳＴ１７７）。スレーブ局ＳＬ２は、スレーブ局ＳＬ１から１回目のＴＦを受信すると、トークン送信制御部７４がタイマをスタートさせるとともに、マスタ局Ｍへのデータ送信処理を待機させる。ここでは、スレーブ局ＳＬ１からスレーブ局ＳＬ２への１回目のＴＦが消失した場合について説明する。この場合、スレーブ局ＳＬ２は、スレーブ局ＳＬからの１回目のＴＦ（１）を受信できない。スレーブ局ＳＬ１の通信処理部７０Ｓは、１回目のＴＦ（１）を送信した後、所定の間隔をおいて、スレーブ局ＳＬ２へ２回目のＴＦ（２）を送信する（ＳＴ１７８）。これにより、スレーブ局ＳＬ２は、スレーブ局ＳＬ１から２回目のＴＦを受信する。このとき、スレーブ局ＳＬ２は、１回目のＴＦを受信していないので、スレーブ局ＳＬ１からの２回目のＴＦを１回目のＴＦ受信であると認識する。そして、スレーブ局ＳＬ２のトークン送信制御部７４は、タイマをスタートさせるとともに、マスタ局Ｍへのデータ送信処理を待機させる（Ｓ１７９）。【０１６４】
スレーブ局ＳＬ１の通信処理部７０Ｓは、２回目のＴＦを送信した後、所定の間隔をおいて、スレーブ局ＳＬ２へ３回目のＴＦ（３）を送信する（ＳＴ１８１）。スレーブ局ＳＬ２のトークン送信制御部７４は、１回目のＴＦ（１）を受信してから予め設定しておいた所定時間が経過すると、データ送信の待機を解除する。これにより、スレーブ局ＳＬ２の通信処理部７０Ｓは、マスタ局Ｍへデータ送信を行う（Ｓ１８０）。スレーブ局ＳＬ１からのデータは、データｓ１として通信処理部３Ｍに送られる（ＳＴ１８２）。スレーブ局ＳＬ２は、マスタ局Ｍへのデータ送信処理が完了すると、マスタ局Ｍへ１回目のＴＦ（１）、２回目のＴＦ（２）、３回目のＴＦ（３）を送る（ＳＴ１８３、ＳＴ１８４、ＳＴ１８５）。【０１６５】
伝送路内のＴＦは、遅延する場合がある、このため、スレーブ局ＳＬ２では、マスタ局Ｍへのデータ送信を行なっている間に、スレーブ局ＳＬ１からのＴＦを受信する場合がある。例えば、マスタ局Ｍへのデータ送信（ＳＴ１８０）の際に、スレーブ局ＳＬ１からの３回目のＴＦ（３）がスレーブ局ＳＬ２に届く場合がある。この場合、スレーブ局ＳＬ２のトークン送信制御部７４は、データ送信中にＴＦを受信したことをマスタ局Ｍに通知する。換言すると、トークン送信制御部７４は、自局がデータ送信しているタイミングで自局宛のＴＦを受信した場合に、データ送信中にＴＦを受信したことをマスタ局Ｍに通知する。【０１６６】
データ通信システム１００では、伝送路上にイーサネット（登録商標）のようなスイッチングハブ２０が存在している場合がある。このため、各局がＴＦを最小のフレームＧＡＰ（送信間間隔）で送信しても、スイッチングハブ２０は必ずしもＴＦを受信した受信間隔でフレーム送信することを保障できない。そこで、本実施の形態では、スレーブ局ＳＬ１，ＳＬ２がデータ送信中にＴＦを受信すれば、データ送信中にＴＦを受信したことをマスタ局Ｍに通知している。これにより、マスタ局Ｍのトークン設定部４１は、１回目のＴＦを受信してから自局のデータを送信するまでの待機時間をスレーブ局ＳＬ２に再設定する。具体的には、マスタ局Ｍのトークン設定部４１は、１回目のＴＦを受信してから自局のデータを送信するまでの待機時間が現設定よりも長くなるよう待機時間をスレーブ局ＳＬ２に再設定する。【０１６７】
なお、本実施の形態では、マスタ局Ｍがスレーブ局ＳＬ２の待機時間を再設定する場合について説明したが、スレーブ局ＳＬ２が自ら待機時間を再設定してもよい。また、スレーブ局ＳＬ２のトークン送信制御部７４は、受信したＴＦと受信できなかったＴＦに基づいて待機時間を変更してもよい。この場合、予め各ＴＦに何回目のＴＦであるかを示す情報を付与（付加）しておく。例えば、ＴＦを５回繰り返して送信する場合、１回目〜５回目の各ＴＦにシーケンシャルＮｏを付与しておく。具体的には、１回目のＴＦにシーケンシャルＮｏとして「１」を付与し、２回目のＴＦにシーケンシャルＮｏとして「２」を付与し、３回目のＴＦにシーケンシャルＮｏとして「３」を付与しておく。さらに、４回目のＴＦにシーケンシャルＮｏとして「４」を付与し、５回目のＴＦにシーケンシャルＮｏとして「５」を付与しておく。【０１６８】
マスタ局Ｍから指定されている待機時間（指定待機時間）がｔの場合、トークン送信制御部７４は、式（１）によって新たな待機時間Ｔを算出する。ここでのＸは、ＴＦの送信繰り返し回数であり、Ｓｎは最初に受信したＴＦのシーケンシャルＮｏである。
Ｔ＝ｔ×（Ｘ−Ｓｎ）／（Ｘ−１）・・・（１）【０１６９】
したがって、最初に受信したＴＦのシーケンシャルＮｏが「１」である場合、トークン送信制御部７４は、マスタ局Ｍから指定されている待機時間ｔだけデータの送信処理を待つ。また、最初に受信したＴＦのシーケンシャルＮｏが「２」である場合、トークン送信制御部７４は、（３／４）ｔだけデータの送信処理を待ち、最初に受信したＴＦのシーケンシャルＮｏが「３」である場合、トークン送信制御部７４は、（２／４）ｔだけデータの送信処理を待つ。また、最初に受信したＴＦのシーケンシャルＮｏが「４」である場合、トークン送信制御部７４は、（１／４）ｔだけデータの送信処理を待ち、最初に受信したＴＦのシーケンシャルＮｏが「５」である場合、トークン送信制御部７４は、待機時間０でデータの送信処理を行う。なお、この待機時間の再設定は、マスタ局Ｍからスレーブ局ＳＬ１，ＳＬ２に指示してもよい。【０１７０】
また、スレーブ局ＳＬ１は、スレーブ局ＳＬ２と同様の構成を有しているので、スレーブ局ＳＬ１のトークン送信制御部７４も、スレーブ局ＳＬ２のトークン送信制御部７４と同様に、自局がデータ送信しているタイミングで自局宛のＴＦを受信すると、データ送信中にＴＦを受信したことをマスタ局Ｍに通知する。【０１７１】
データ送信中にＴＦ受信したことのスレーブ局ＳＬ２からマスタ局Ｍへの通知は、スレーブ局ＳＬ２からマスタ局Ｍにデータ送信を行った後（ＳＴ１８１）であってＴＦ（１）を送信する前（ＳＴ１８３の前）に行ってもよいし、スレーブ局ＳＬ２が、次にスレーブ局ＳＬ１からＴＦを受信した場合のデータ送信時に行ってもよい。【０１７２】
なお、本実施の形態では、スレーブ局ＳＬ１，ＳＬ２が、１回目のＴＦを受信した後に予め設定しておいた所定時間が経過してからデータ送信を開始する場合について説明したが、マスタ局Ｍもスレーブ局ＳＬ１，ＳＬ２と同様に、１回目のＴＦを受信した後に予め設定しておいた所定時間が経過してからデータ送信を開始してもよい。また、マスタ局Ｍがデータ送信している際に、マスタ局Ｍがスレーブ局ＳＬ１，ＳＬ２からＴＦを受信した場合には、マスタ局Ｍのトークン設定部４１が、１回目のＴＦを受信してから自局のデータを送信するまでの待機時間を自局に再設定してもよい。【０１７３】
また、本実施の形態では、各局がＴＦを３回繰り返して送信する場合について説明したが、各局がＴＦを繰り返して送信する回数は２回であってもよいし４回以上であってもよい。また、ＴＦの繰り返し送信回数は、局毎に異なる回数であってもよい。【０１７４】
また、ＴＦの繰り返し送信回数は、ＴＦの消失回数などに基づいてマスタ局Ｍが変更してもよい。図２４は、ＴＦの繰り返し送信回数を変更する場合のマスタ局の通信処理部の構成を示す図である。ＴＦの繰り返し送信回数を変更する場合のマスタ局Ｍの通信処理部３Ｍは、送信バッファ３１、受信バッファ３２、トークン設定部４１に加えて、再トークン発行部４２、発行回数判定部４３を備えている。【０１７５】
再トークン発行部４２は、ＴＦが消失した場合にＴＦを再発行する機能（再トークン発行機能）を有している。再トークン発行部４２は、データ通信システム１００内で所定時間の間ＴＦが発行されない場合に、ＴＦが消失したと判断してＴＦを再発行する。【０１７６】
発行回数判定部４３は、監視タイマ４４、カウンタ４５、基準値記憶部４６、判定部４７を具備しており、ＴＦを再発行した回数が所定値を超えたか否かを判定する。監視タイマ４４は時間を測定し、カウンタ４５は再トークン発行部４２が何回ＴＦを再発行したかをカウントする。基準値記憶部４６は、ＴＦの繰り返し送信回数を変更するか否かを判定する際に用いる基準値を記憶する。判定部４７は、監視タイマ４４が測定する時間と、カウンタ４５がカウントするＴＦの再発行回数に基づいて、単位時間当たりのＴＦの再発行回数を算出する。判定部４７は、算出した単位時間当たりのＴＦの再発行回数が、基準値記憶部４６で記憶している基準値を超えたか否かを判定する。判定部４７は、ＴＦの再発行回数が、基準値記憶部４６で記憶している基準値を超えた場合に、トークン設定部４１にＴＦの送信回数を再設定するよう指示する。【０１７７】
トークン設定部４１は、判定部４７からの指示に従って、現在設定しているＴＦの送信回数を増やす。例えば、トークン設定部４１は、初期値としてＴＦの送信回数を１回に設定しておき、判定部４７からＴＦの送信回数の変更指示を受ける度に、ＴＦの送信回数を２回、３回と増やしていく。【０１７８】
なお、基準値記憶部４６は、設定されているＴＦの送信回数毎に基準値を記憶しておいてもよい。例えば、基準値記憶部４６は、設定されているＴＦの送信回数が１回の場合に用いる基準値、２回の場合に用いる基準値のように、複数の基準値を記憶しておく。そして、判定部４７は、現在設定されているＴＦの送信回数をトークン設定部４１から取得し、現在設定されているＴＦの送信回数と、このＴＦの送信回数に対応する基準値と、を比較することによってＴＦの送信回数を増加させるか否かを判断する。【０１７９】
なお、判定部４７は、算出した単位時間当たりのＴＦの再発行回数が所定の基準値よりも小さい場合に、現在設定しているＴＦの送信回数を減らすようトークン設定部４１に指示してもよい。また、判定部４７は、算出した単位時間当たりのＴＦの再発行回数に基づいて、トークン設定部４１にＴＦの送信回数を指示してもよい。また、判定部４７は、算出した単位時間当たりのＴＦの再発行回数に基づいて、トークン設定部４１にＴＦの送信回数を指示してもよい。【０１８０】
このように、データ通信システム１００では、フレームの伝送環境（ノイズ発生の有無）に変化がある場合であっても、伝送環境の変化（単位時間当たりのＴＦの再発行回数）に応じてＴＦの送信回数を調整できる。これにより、伝送路上にノイズが発生していない場合には、高速通信を優先させるためにＴＦの送信回数を減らし、伝送路上にノイズが発生している場合には、ＴＦの送信回数を増やすことが可能となる。したがって、性能劣化の度合いを最小限に抑えることが可能となる。【０１８１】
また、マスタ局Ｍの通信処理部３Ｍは、消失したＴＦが何れの局から発行されたＴＦであるかに基づいて、ＴＦを繰り返し送信させる回数を局毎に変更してもよい。図２５は、ＴＦの繰り返し送信回数を局毎に変更する場合のマスタ局の通信処理部の構成を示す図である。ＴＦの繰り返し送信回数を局毎に変更する場合のマスタ局Ｍの通信処理部３Ｍは、送信バッファ３１、受信バッファ３２、トークン設定部４１に加えて、消失トークン判断部４８を備えている。【０１８２】
消失トークン判断部４８は、ＴＦが何れの局まで巡回したかを確認することによって、どの局が発行したＴＦが消失したかを判断する機能を有している。消失トークン判断部４８は、消失したＴＦを発行した局（スレーブ局ＳＬ１，ＳＬ２またはマスタ局Ｍ）をトークン設定部４１に通知する。これにより、トークン設定部４１は、消失したＴＦを発行した局（スレーブ局ＳＬ１、スレーブ局ＳＬ２、マスタ局Ｍ）に対して、ＴＦの繰り返し送信回数を変更する。このとき、トークン設定部４１は、ＴＦの消失回数に応じたＴＦの繰り返し回数をスレーブ局ＳＬ１，ＳＬ２、マスタ局Ｍの何れかに設定する。【０１８３】
データ通信システム１００内では、スレーブ局ＳＬ１，ＳＬ２にＴＦをブロードキャストで送信させる。さらに、ＴＦ内にＴＦの発行元を示すＳＡ（ソースアドレス）を含めておく。これにより、スレーブ局ＳＬ１，ＳＬ２から発行されたＳＡを有したＴＦは、マスタ局Ｍの消失トークン判断部４８へ送られる。消失トークン判断部４８は、ＴＦのＳＡを確認することによって、ＴＦが何れの位置を巡回し、何れの位置で消失したかを判断することが可能となる。【０１８４】
なお、本実施の形態では、通信処理部３Ｍが再トークン発行部４２と発行回数判定部４３を備える場合や、通信処理部３Ｍが消失トークン判断部４８を備える場合について説明したが、通信処理部３Ｍを、再トークン発行部４２、発行回数判定部４３、消失トークン判断部４８を有する構成としてもよい。【０１８５】
これにより、図１２に示したように局所的な部分にノイズ源がある場合であっても、ノイズ源に応じたＴＦの繰り返し送信を局毎に設定することが可能となる。したがって、ＴＦの繰り返し送信に起因する性能劣化を最小限に抑えることが可能となる。【０１８６】
このように、実施の形態６によれば、ＴＦとデータの衝突を防止しつつＴＦの消失を防止することが可能となる。したがって、トークンのリカバリを回避することが可能となり、効率良くデータ通信を行うことが可能となる。【０１８７】
また、マスタ局Ｍは、局毎にＴＦの送信回数を設定するので、各局に応じた効率の良いデータ通信が可能となる。また、マスタ局Ｍは、再発行したＴＦの数や消失したＴＦの数に基づいて、ＴＦの送信回数を設定するので、ノイズ源に応じた効率の良いデータ通信が可能となる。【０１８８】
なお、データ通信システム１００は、実施の形態１〜６のデータ通信処理や実施の形態１の図４で説明した従来のデータ通信処理を種々組み合わせてデータ通信処理を行なってもよい。【０１８９】
例えば、データ通信システム１００は、実施の形態２で説明したデータ通信処理と実施の形態４で説明したデータ通信処理を組み合わせてデータ通信処理を行なってもよい。この場合、データ通信システム１００は、データ送信回数を設定した後（図１１のＳＴ１４９）、データｍをブロードキャストでスレーブ局ＳＬ１，ＳＬ２に送信する（図６のＳＴ７９、ＳＴ８０）。そして、通信処理部３Ｍは、スレーブ局ＳＬ１，ＳＬ２へのデータ送信処理を完了すると、スレーブ局ＳＬ１へＴＦを送る（図１１のＳＴ１５０）。【０１９０】
また、データ通信システム１００は、実施の形態１で説明したデータ通信処理と実施の形態４で説明した従来のデータ通信処理を組み合わせてデータ通信処理を行なってもよい。この場合、データ通信システム１００では、通信処理部３Ｍがスレーブ局ＳＬ１，ＳＬ２からデータｓ１，ｓ２を受信した後、図４のＳＴ３８〜ＳＴ４３の処理（マスタ局ＭのＦ／Ｗ処理）と、図１１のＳＴ１４８〜ＳＴ１５８の処理が行なわれる。【０１９１】
また、実施の形態３の図７で説明したデータ通信処理のＳＴ１０９の処理（次判定処理）を、実施の形態４で説明した受信状態の統計情報に基づいて行なってもよい。この場合、例えばノイズの発生率が所定値以上であれば、通信処理部３Ｍは図３に示したデータ通信処理を選択し、ノイズの発生率が所定値未満であれば、通信処理部３Ｍは図４に示したデータ通信処理を選択する。これにより、データｓ１，ｓ２の受信状態に応じた適切なリカバリ処理を行なうことが可能となる。したがって、効率良くデータ通信を行うことが可能となる。
【産業上の利用可能性】
【０１９２】
以上のように、本発明に係るデータ通信システムおよびデータ通信装置は、マスタ局とスレーブ局との間のデータ通信に適している。
【図１】
2010073352.tif 000003
【図２】
2010073352.tif 000004
【図３】
2010073352.tif 000005
【図４】
2010073352.tif 000006
【図５】
2010073352.tif 000007
【図６】
2010073352.tif 000008
【図７】
2010073352.tif 000009
【図８】
2010073352.tif 000010
【図９】
2010073352.tif 000011
【図１０】
2010073352.tif 000012
【図１１】
2010073352.tif 000013
【図１２】
2010073352.tif 000014
【図１３】
2010073352.tif 000015
【図１４】
2010073352.tif 000016
【図１５】
2010073352.tif 000017
【図１６】
2010073352.tif 000018
【図１７】
2010073352.tif 000019
【図１８】
2010073352.tif 000020
【図１９】
2010073352.tif 000021
【図２０】
2010073352.tif 000022
【図２１】
2010073352.tif 000023
【図２２】
2010073352.tif 000024
【図２３】
2010073352.tif 000025
【図２４】
2010073352.tif 000026
【図２５】
2010073352.tif 000027
【手続補正書】
【提出日】平成24年1月12日(2012.1.12)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
マスタ局と複数のスレーブ局との間のデータ通信をイーサネット（登録商標）を用いたトークンパッシング方式で行なうデータ通信システムにおいて、
前記マスタ局は、
前記各スレーブ局との間でトークンフレームを巡回させて行なう前記各スレーブ局との間のデータ送受信を第１のデータ送受信処理として行なう通信処理部と、
前記スレーブ局から送られてくるデータを演算処理して前記スレーブ局へ送信するデータを生成する演算処理装置に接続するとともに、前記演算処理装置と前記通信処理部との間で行なうデータ送受信を第２のデータ送受信処理として行うデータ送受信処理部と、
を有し、
前記通信処理部は、前記データ送受信処理部との間で行なうデータ送受信を第３のデータ送受信処理として行うとともに、前記第１のデータ送受信処理のうち前記各スレーブ局との間で前記トークンフレームを巡回させるとともに前記各スレーブ局からのデータを受信するデータ受信処理をリトライ処理する場合には、前記第１のデータ送受信処理を行なった後、前記第３のデータ送受信処理を行なうことなく前記各スレーブ局との間で前記トークンフレームを巡回させるとともに前記各スレーブ局からのデータを受信することによってリトライ処理し、前記リトライ処理の後に前記第３のデータ送受信処理を行なうことを特徴とするデータ通信システム。
【請求項２】
前記通信処理部は、
前記第１のデータ送受信処理を行なった後、当該第１のデータ送受信処理を行なった際に前記各スレーブ局へ送信したデータを、前記リトライ処理を行なう前に前記各スレーブ局へ再送信することを特徴とする請求項１に記載のデータ通信システム。
【請求項３】
前記通信処理部は、
前記各スレーブ局から送られてくるデータの受信状態に基づいて、前記第１のデータ送受信処理または前記リトライ処理を行なった後の処理として前記第３のデータ送受信処理または前記リトライ処理の何れか一方を選択して実行することを特徴とする請求項１または２に記載のデータ通信システム。
【請求項４】
前記通信処理部は、
前記各スレーブ局から送られてくるデータの受信状態に基づいて、前記各スレーブ局に要求するデータ送信回数を前記スレーブ局毎に設定し、設定したデータ送信回数を前記トークンフレームによって前記各スレーブ局に要求することを特徴とする請求項１または２に記載のデータ通信システム。
【請求項５】
前記通信処理部は、
前記第１のデータ送受信処理を行なった後、前記第３のデータ送受信処理を行なうことなく予め設定された回数だけ前記リトライ処理を繰り返すことを特徴とする請求項１または２に記載のデータ通信システム。
【請求項６】
前記通信処理部は、
前記受信状態の履歴を用いて算出された前記受信状態の統計情報に基づいて、前記第３のデータ送受信処理または前記リトライ処理の何れか一方を選択して実行することを特徴とする請求項３に記載のデータ通信システム。
【請求項７】
前記通信処理部は、
前記受信状態の履歴を用いて算出された前記受信状態の統計情報に基づいて、前記各スレーブ局に要求するデータ送信回数を設定することを特徴とする請求項４に記載のデータ通信システム。
【請求項８】
前記通信処理部は、前記データ受信処理によって全スレーブ局から受信したデータをまとめて前記第３のデータ送受信処理を行なうことを特徴とする請求項１に記載のデータ通信システム。
【請求項９】
前記スレーブ局は、
前記トークンフレームを受信した際に、前記マスタ局に予め指定された回数だけ前記マスタ局へのデータ送信を繰り返すことを特徴とする請求項４に記載のデータ通信システム。
【請求項１０】
前記スレーブ局は、前記マスタ局と共有するデータであって前記スレーブ局から前記マスタ局に送信するデータを複数のフレームに分割し、かつ分割後の各フレームにシーケンシャルナンバを付与するとともに分割後のフレームのうち最後のフレームに最後のフレームであることを示す最後情報を付与して前記各フレームを前記マスタ局に送信し、
前記通信処理部は、
前記シーケンシャルナンバおよび前記最後情報に基づいて前記スレーブ局から全てのデータを受信したか否かを判断する判断部を備え、
前記判断部が前記スレーブ局から全てのデータを受信したと判断した場合に、前記第３のデータ送受信処理を行なうことを特徴とする請求項１に記載のデータ通信システム。
【請求項１１】
前記スレーブ局が前記マスタ局に送信するフレームは、前記フレームの送信元を示すフレーム送信元情報を有し、
前記通信処理部は、
前記スレーブ局から受信したフレーム内のフレーム送信元情報に基づいて何れのスレーブ局から前記フレームを受信しているかを判断し、前回とは異なる次のスレーブ局から前記フレームを受信したと判断した場合に、前記判断部をリセットして前記判断部に前記次のスレーブ局から全てのデータを受信したか否かを判断させることを特徴とする請求項１０に記載のデータ通信システム。
【請求項１２】
前記トークンフレームは、前記トークンフレームの宛先を示すトークン宛先情報を有し、
前記通信処理部は、
前記トークン宛先情報に基づいて前記トークンフレームの宛先を判断し、自局宛てのトークンフレームを受信したと判断した場合に、前記判断部をリセットして前記判断部に前記次のスレーブ局から全てのデータを受信したか否かを判断させることを特徴とする請求項１０に記載のデータ通信システム。
【請求項１３】
前記トークンフレームは、前記トークンフレームの送信元を示すトークン送信元情報を有し、
前記通信処理部は、
前記トークン送信元情報に基づいて何れのスレーブ局から前記トークンフレームが送信されたかを判断し、前回とは異なる次のスレーブ局から前記トークンフレームを受信したと判断した場合に、前記判断部をリセットして前記判断部に前記次のスレーブ局から全てのデータを受信したか否かを判断させることを特徴とする請求項１０に記載のデータ通信システム。
【請求項１４】
複数のスレーブ局との間のデータ通信をイーサネット（登録商標）を用いたトークンパッシング方式でマスタ局として行なうデータ通信装置において、
前記各スレーブ局との間でトークンフレームを巡回させて行なう前記各スレーブ局との間のデータ送受信を第１のデータ送受信処理として行なう通信処理部と、
前記スレーブ局から送られてくるデータを演算処理して前記スレーブ局へ送信するデータを生成する演算処理装置に接続するとともに、前記演算処理装置と前記通信処理部との間で行なうデータ送受信を第２のデータ送受信処理として行うデータ送受信処理部と、
を有し、
前記通信処理部は、前記データ送受信処理部との間で行なうデータ送受信を第３のデータ送受信処理として行うとともに、前記第１のデータ送受信処理のうち前記各スレーブ局との間で前記トークンフレームを巡回させるとともに前記各スレーブ局からのデータを受信するデータ受信処理をリトライ処理する場合には、前記第１のデータ送受信処理を行なった後、前記第３のデータ送受信処理を行なうことなく前記各スレーブ局との間で前記トークンフレームを巡回させるとともに前記各スレーブ局からのデータを受信することによってリトライ処理し、前記リトライ処理の後に前記第３のデータ送受信処理を行なうことを特徴とするデータ通信装置。
【国際調査報告】
2010073352.tif 000028
2010073352.tif 000029
2010073352.tif 000030