(57)【要約】  スレーブ局３０は、受信したサイクリックデータをサイクリックメモリ３３に展開したかを示すデータ展開状態情報、およびデータフレーム受信時にデータフレームを受信可能な状態であったかを示すデータ処理状態情報を生成するサイクリックメモリ管理部３６と、データ展開状態情報とデータ処理状態情報を含む状態通知フレームをマスタ局宛に送信するフレーム送信部３８と、を備え、マスタ局は、トークンフレームを受信した場合に、フレーム受信部で受信した状態通知フレームのデータ展開状態情報とデータ処理状態情報を用いて、スレーブ局３０のエラー状態を判定するシステム異常状態判定部を備える。
2011021505.tif 000002
【特許請求の範囲】
【請求項１】
１台の通信管理装置と１台以上の通信装置とが伝送路を介して接続されたネットワーク内にトークンフレームを順に巡回させて所定の周期でデータフレームの送信を繰り返し行う通信システムにおいて、
前記通信装置は、
前記通信管理装置から受信した自局宛てのサイクリックデータを記憶するメモリと、
前記メモリ内の前記サイクリックデータを用いて所定の演算を行う演算処理手段と、
前記サイクリックデータを一時的に格納するサイクリックデータ一時バッファと、
前記サイクリックデータ一時バッファに自局宛てのサイクリックデータを正常に受信したか否かを判定し、その判定結果であるサイクリックデータ受信状態情報を出力するサイクリックデータ受信確認手段と、
前記演算処理手段が前記サイクリックデータ一時バッファに格納されている前記サイクリックデータの前記メモリへの展開を指示した場合にデータ書き換え許可情報を出力する監視手段と、
前記サイクリックデータ受信状態情報と前記データ書き換え許可情報とに基づいて、正常に受信された前記サイクリックデータを前記メモリに展開するか否かを決定するとともに、前記通信管理装置からのデータフレーム受信時に、前記データフレームを前記メモリに展開したか否かを示すデータ展開状態情報、および前記データフレーム受信時に前記データフレームを受信可能な状態であったか否かを示すデータ処理状態情報を生成するサイクリックメモリ管理手段と、
自装置に送信権がある場合に、前記データ展開状態情報と前記データ処理状態情報を含む前記通信管理装置宛ての状態通知フレームを生成する状態通知フレーム生成手段と、
自装置に送信権がある場合に、前記演算処理手段によって生成されたデータフレームと、前記状態通知フレームを送信するフレーム送信手段と、
を備え、
前記通信管理装置は、
前記ネットワークに接続される前記通信装置から受信したデータフレームを用いて所定の演算を行い、前記通信装置に対してサイクリックデータを生成するサイクリックデータ処理手段と、
自装置に送信権がある場合に、前記サイクリックデータを前記通信装置に送信するフレーム送信手段と、
前記通信装置から送信されるデータフレームを受信するフレーム受信手段と、
自装置に送信権がある前記トークンフレームを受信した場合に、前記フレーム受信手段で受信された前記通信装置からの前記状態通知フレームの前記データ展開状態情報と前記データ処理状態情報を用いて、前記通信装置のエラー状態を判定するシステム異常状態判定手段と、
を備えることを特徴とする通信システム。
【請求項２】
前記通信管理装置の前記システム異常状態判定手段は、
前記データ展開状態情報が前記メモリに展開したことを示す場合、または前記データ展開状態情報が前記メモリに展開しなかったことを示し、かつ前記データ処理状態情報が前記データフレームを受信不可能であることを示す場合に前記通信装置は正常であると判定し、
前記データ展開状態情報が前記メモリに展開しなかったことを示し、かつ前記データ処理状態情報が前記データフレームを受信可能であることを示す場合に前記通信装置はエラー状態であると判定することを特徴とする請求項１に記載の通信システム。
【請求項３】
前記通信装置の前記サイクリックデータ一時バッファは、自装置宛てのサイクリックデータのみを格納することを特徴とする請求項１に記載の通信システム。
【請求項４】
前記通信装置の前記サイクリックデータ受信確認手段は、自装置宛ての前記サイクリックデータを受信したか、または自装置宛ての前記サイクリックデータを受信せずに他のフレームを受信したかを示す取得時期情報をさらに出力し、
前記サイクリックメモリ管理手段は、前記取得時期情報が自装置宛での前記サイクリックデータを受信した場合に、前記データ処理状態情報として前記サイクリックデータ受信時における前記通信装置の受信状態を生成し、前記取得時期情報が他のフレームを受信したことを示す場合に、前記データ処理状態情報として前記他のフレーム受信時における前記通信装置の受信状態を生成することを特徴とする請求項１に記載の通信システム。
【請求項５】
前記他のフレームは、前記通信装置に送信権を与えるトークンフレームであることを特徴とする請求項４に記載の通信システム。
【請求項６】
前記他のフレームは、前記通信管理装置が発行したトークンフレームであることを特徴とする請求項４に記載の通信システム。
【請求項７】
前記通信装置の前記サイクリックデータ一時バッファは、前記通信管理装置から送信されるすべてのサイクリックデータを格納し、
前記通信装置の前記サイクリックメモリ管理手段は、前記サイクリックデータ受信状態情報と前記データ書き換え許可情報とに基づいて前記サイクリックデータを前記メモリに展開することを決定した場合に、前記サイクリックデータ一時バッファに格納された前記サイクリックデータから自装置宛ての前記サイクリックデータのみを前記メモリに展開することを特徴とする請求項４に記載の通信システム。
【請求項８】
前記他のフレームは、自装置宛ての前記サイクリックデータよりも後に到達する他の前記通信装置のサイクリックデータであることを特徴とする請求項７に記載の通信システム。
【請求項９】
前記通信管理装置の前記システム異常状態判定手段は、前記通信装置がエラー状態であると判定された場合に、エラー状態であると連続して判定された累積エラー回数と、前記通信装置に対して設定されたシステム上重大な問題があると判定されるエラー判定値と、を比較して、前記通信装置はシステム上重大な問題があるかを判定することを特徴とする請求項１に記載の通信システム。
【請求項１０】
前記通信管理装置は、前記システム異常状態判定手段によって、前記通信装置がエラー状態であると判定された場合に、その旨を出力する出力手段をさらに備えることを特徴とする請求項１に記載の通信システム。
【請求項１１】
前記通信管理装置は、前記システム異常状態判定手段によって、前記通信装置がシステム上重大な問題があると判定された場合に、その旨を出力する出力手段をさらに備えることを特徴とする請求項９に記載の通信システム。
【請求項１２】
１台の通信管理装置と１台以上の通信装置とが伝送路を介して接続されたネットワーク内にトークンフレームを順に巡回させて所定の周期でデータフレームの送信を繰り返し行う通信システムでの前記通信装置の状態を判定する通信装置状態判定方法において、
前記通信管理装置が、前記ネットワーク内のすべての通信装置に対してサイクリックデータを送信するサイクリックデータ送信工程と、
前記通信管理装置が、前記トークンフレームをつぎに送信権を獲得する通信装置に対して送信する第１のトークンフレーム送信工程と、
前記通信装置が、前記サイクリックデータのうち自装置宛てのサイクリックデータを一時バッファに記憶するサイクリックデータバッファ工程と、
前記一時バッファに記憶された前記サイクリックデータが正常に受信されたかを判定するサイクリックデータ受信確認工程と、
前記通信装置の演算処理手段からの前記一時バッファに記憶された前記サイクリックデータのメモリへの展開の指示の有無と、前記サイクリックデータ受信確認工程での判定結果に基づいて、前記一時バッファから前記メモリへの前記サイクリックデータの展開の有無を決定するサイクリックデータ展開処理工程と、
前記通信装置が、トークンフレームを受信し、自装置に送信権があることを認識すると、前記サイクリックデータバッファ工程で前記サイクリックデータを受信した際に、前記サイクリックデータを前記メモリに展開したかを示すデータ展開状態情報と、前記通信装置がデータフレームを受信可能な状態であったか否かを示すデータ処理状態情報を含む状態通知フレームと、前記演算処理手段によって生成されたサイクリックデータを含むサイクリックデータフレームと、を送信するフレーム送信工程と、
前記通信装置が、前記トークンフレームをつぎに送信権を獲得する通信装置または前記通信管理装置に対して送信する第２のトークンフレーム送信工程と、
前記通信管理装置が、前記トークンフレームを受信し、自装置に送信権があることを認識すると、前記フレーム送信工程で前記通信装置から送信された前記状態通知フレームの前記データ展開状態情報と前記データ処理状態情報を用いて、前記通信装置のエラー状態を判定するシステム異常状態判定工程と、
を含むことを特徴とする通信装置状態判定方法。
【請求項１３】
前記システム異常状態判定工程で、前記通信管理装置は、
前記データ展開状態情報が前記メモリに展開したことを示す場合、または前記データ展開状態情報が前記メモリに展開しなかったことを示し、かつ前記データ処理状態情報が前記データフレームを受信不可能であることを示す場合に前記通信装置は正常であると判定し、
前記データ展開状態情報が前記メモリに展開しなかったことを示し、かつ前記データ処理状態情報が前記データフレームを受信可能であることを示す場合に前記通信装置はエラー状態であると判定することを特徴とする請求項１２に記載の通信装置状態判定方法。
【請求項１４】
前記サイクリックデータ受信確認工程では、自装置宛ての前記サイクリックデータを受信したか、または自装置宛ての前記サイクリックデータを受信せずに他のフレームを受信したかを示す取得時期情報を生成し、
前記フレーム送信工程で、前記取得時期情報が自装置宛の前記サイクリックデータを受信したことを示す場合に、前記データ処理状態情報は、前記サイクリックデータ受信時における前記通信装置の状態を示し、前記取得時期情報が他のフレームを受信したことを示す場合に、前記データ処理状態情報は、前記他のフレーム受信時における前記通信装置の受信状態を示すことを特徴とする請求項１２に記載の通信装置状態判定方法。
【請求項１５】
前記他のフレームは、前記通信装置に送信権を与えるトークンフレームであることを特徴とする請求項１４に記載の通信装置状態判定方法。
【請求項１６】
前記他のフレームは、前記通信管理装置が発行したトークンフレームであることを特徴とする請求項１４に記載の通信装置状態判定方法。
【請求項１７】
サイクリックデータバッファ工程では、前記通信管理装置から送信されるすべてのサイクリックデータを前記一時バッファに格納し、
前記サイクリックデータ展開処理工程では、前記サイクリックデータを前記メモリに展開することを決定した場合に、前記一時バッファに格納された前記サイクリックデータから自装置宛ての前記サイクリックデータのみを前記メモリに展開することを特徴とする請求項１４に記載の通信装置状態判定方法。
【請求項１８】
前記他のフレームは、自装置宛ての前記サイクリックデータよりも後に到達する他の前記通信装置のサイクリックデータであることを特徴とする請求項１７に記載の通信装置状態判定方法。
【請求項１９】
前記システム異常状態判定工程は、前記通信装置がエラー状態であると判定された場合に、エラー状態であると連続して判定された累積エラーカウント数と、前記通信装置に対して設定されたシステム上重大な問題があると判定されるエラー判定値と、を比較して、前記通信装置はシステム上重大な問題があるかを判定することを特徴とする請求項１２に記載の通信装置状態判定方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、伝送路で接続された通信ノード間でトークンフレームを用いて通信を行う通信システムおよび通信装置状態判定方法に関するものである。
【背景技術】
【０００２】
ＦＡ（Factory  Automation）システムは、制御対象機器と、制御対象機器の状態を入力データとして所定の演算処理を行い、制御対象機器の動作条件を出力データとして出力するプログラマブルコントローラなどの制御機器と、を備えるが、制御機器と制御対象機器に通信手段を設け、ネットワークで接続することによって、リアルタイムな制御を可能としている。つまり、制御対象機器に設けられる通信手段はスレーブ局として、制御機器に設けられる通信手段はスレーブ局のデータ送信を制御する通信管理局として機能させ、通信管理局は、スレーブ局からデータを受信し、受信したデータを用いて制御機器が演算した制御対象機器を制御するためのデータをスレーブ局に送信する処理を周期的に行っている。このとき、通信管理局は、データ通信のリアルタイム性を保証するように、各スレーブ局によるデータ送信のタイミングを制御している。【０００３】
データ通信のリアルタイム性を保証するために、トークンパッシング方式を用いたデータ通信方法が知られている。トークンパッシング方式は、システム内に存在する通信管理局とスレーブ局からなる通信ノードに順にトークンフレームを流して送信権を与えることによって、各通信ノードがデータを送信するものであるが、トークンフレームを所定の周期で一巡させることで、サイクリックなデータ通信を行うことが可能となる（たとえば、特許文献１参照）。【０００４】
また、特許文献１では、スレーブ局が通信管理局から送られるデータフレームを正常に受信できなかったときに、データフレームに設けた受信誤り発生検出フィールドに異常である旨の情報を含ませてデータフレームを通信管理局に送信し、通信管理局は受信誤り発生検出フィールドが異常となるデータフレームの送信元に対して、前回送信したデータフレームを再送している。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開平６−２５２８９５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
ところで、トークンフレームの巡回周期は、通常、最も処理能力の高いスレーブ局に合わせて決定される。また、通信システムには、処理能力の高いスレーブ局と処理能力の低いスレーブ局とが混在する場合が一般的である。処理能力の高いスレーブ局は、通信管理局がデータフレームを送信するたびに、そのデータを受信して処理することが可能である。しかし、処理能力の低いスレーブ局では、通信管理局が送信したデータフレームを処理中に、つぎのデータフレームを受信処理できない状態となる。【０００７】
このような処理能力の低いスレーブ局が、データフレームの処理中のためにつぎのデータフレームを受信処理できず、通信管理局が送信したデータフレームの処理が見送られても、上記したシステム構成上正常動作であり、フレームの消失による通信管理局とスレーブ局間の情報（データ）の欠損による、アプリケーションレベルでのシステム的な問題とはならない。しかし、従来では、データフレームを受信処理できたか否かによって、データの再送を判断するので、このような場合は、システム的に異常と判定される虞がある。つまり、従来では、スレーブ局のデータフレームの受信状況からシステム的に異常であるのか否かについての判断を行う方法については、提案されていなかった。【０００８】
また、特許文献１では、受信したデータフレームのデータの化けの発生の有無で、サイクリックデータの再送の要否の判断を行っているので、データをストアしてから転送するスイッチングハブが通信ノード間に存在すると、化けの発生したデータはスイッチングハブ内で廃棄されてしまう。そのため、通信ノード間にスイッチングハブが存在するようなネットワーク構成の通信システムに、特許文献１を適用するとデータフレームの再送処理を実行することができないという問題点があった。【０００９】
この発明は、上記に鑑みてなされたもので、トークンフレームを巡回させてデータ通信のリアルタイム性を保証する通信システムにおいて、スレーブ局のデータフレームの受信状況からそのスレーブ局がシステム的に異常であるのかを判定することができる通信システムおよび通信装置状態判定方法を得ることを目的とする。
【課題を解決するための手段】
【００１０】
上記目的を達成するため、この発明にかかる通信システムは、１台の通信管理装置と１台以上の通信装置とが伝送路を介して接続されたネットワーク内にトークンフレームを順に巡回させて所定の周期でデータフレームの送信を繰り返し行う通信システムにおいて、前記通信装置は、前記通信管理装置から受信した自局宛てのサイクリックデータを記憶するメモリと、前記メモリ内の前記サイクリックデータを用いて所定の演算を行う演算処理手段と、前記サイクリックデータを一時的に格納するサイクリックデータ一時バッファと、前記サイクリックデータ一時バッファに自局宛てのサイクリックデータを正常に受信したか否かを判定し、その判定結果であるサイクリックデータ受信状態情報を出力するサイクリックデータ受信確認手段と、前記演算処理手段が前記サイクリックデータ一時バッファに格納されている前記サイクリックデータの前記メモリへの展開を指示した場合にデータ書き換え許可情報を出力する監視手段と、前記サイクリックデータ受信状態情報と前記データ書き換え許可情報とに基づいて、正常に受信された前記サイクリックデータを前記メモリに展開するか否かを決定するとともに、前記通信管理装置からのデータフレーム受信時に、前記データフレームを前記メモリに展開したか否かを示すデータ展開状態情報、および前記データフレーム受信時に前記データフレームを受信可能な状態であったか否かを示すデータ処理状態情報を生成するサイクリックメモリ管理手段と、自装置に送信権がある場合に、前記データ展開状態情報と前記データ処理状態情報を含む前記通信管理装置宛ての状態通知フレームを生成する状態通知フレーム生成手段と、自装置に送信権がある場合に、前記演算処理手段によって生成されたデータフレームと、前記状態通知フレームを送信するフレーム送信手段と、を備え、前記通信管理装置は、前記ネットワークに接続される前記通信装置から受信したデータフレームを用いて所定の演算を行い、前記通信装置に対してサイクリックデータを生成するサイクリックデータ処理手段と、自装置に送信権がある場合に、前記サイクリックデータを前記通信装置に送信するフレーム送信手段と、前記通信装置から送信されるデータフレームを受信するフレーム受信手段と、自装置に送信権がある前記トークンフレームを受信した場合に、前記フレーム受信手段で受信された前記通信装置からの前記状態通知フレームの前記データ展開状態情報と前記データ処理状態情報を用いて、前記通信装置のエラー状態を判定するシステム異常状態判定手段と、を備えることを特徴とする。
【発明の効果】
【００１１】
この発明によれば、各通信装置は、サイクリックデータをメモリに展開したかを示すデータ展開状態情報と、サイクリックデータ受信時にデータフレームを受信可能な状態であったかを示すデータ処理状態情報を通信管理装置に通知し、通信管理装置では、データ電界状態情報とデータ処理状態情報とを用いて、通信装置のサイクリックデータ受信時の装置状態がシステム的に問題であるのか否かを判定することができるという効果を有する。これによって、たとえば通信装置の処理能力が低く、通信管理装置からのサイクリックデータを受信できないような場合について、システム的に問題と判定することを防止し、不要な通信システムの点検などを行う必要がなくなるという効果を有する。
【図面の簡単な説明】
【００１２】
【図１】図１は、実施の形態１によるトークンを用いて通信が行われる通信システムの一例を示す図である。
【図２】図２は、スレーブ局の機能構成を模式的に示すブロック図である。
【図３】図３は、スレーブ局によるフレームの送受信処理の手順の一例を示すフローチャートである。
【図４】図４は、受信状態情報生成処理の手順の一例を示すフローチャートである。
【図５】図５は、マスタ局の機能構成の一例を示すブロック図である。
【図６】図６は、マスタ局のサイクリックメモリの送信エリアの一例を模式的に示す図である。
【図７】図７は、マスタ局によるスレーブ局の状態判定処理の手順の一例を示すフローチャートである。
【図８】図８は、実施の形態１による通信方法の一例を示すシーケンス図である。
【図９】図９は、実施の形態１による通信方法の他の例を示すシーケンス図である。
【図１０】図１０は、スレーブ局による受信状態情報生成処理の手順の一例を示すフローチャートである。
【図１１】図１１は、実施の形態２による通信方法の一例を示すシーケンス図である。
【図１２】図１２は、実施の形態３による通信方法の一例を示すシーケンス図である。
【図１３】図１３は、実施の形態４によるマスタ局の機能構成を模式的に示すブロック図である。
【図１４】図１４は、マスタ局による通信システムの異常状態の判定処理の手順の一例を示すフローチャートである。
【発明を実施するための形態】
【００１３】
以下に添付図面を参照して、この発明の実施の形態にかかる通信システムおよび通信装置状態判定方法を詳細に説明する。なお、これらの実施の形態によりこの発明が限定されるものではない。
【００１４】
実施の形態１．
図１は、実施の形態１によるトークンを用いて通信が行われる通信システムの一例を示す図である。この通信システムは、複数の通信ノード１０，３０Ａ，３０Ｂがイーサネット(登録商標)などの伝送路を介してライン状またはスター状に接続された同一セグメントのネットワークによって構成される。ここでは、通信ノードとして、同一セグメントのネットワーク内におけるデータ（フレーム）の送受信を管理する通信管理装置としての１台のマスタ局１０と、マスタ局１０による設定に基づいてデータ（フレーム）の送信を行う２台のスレーブ局３０Ａ，３０Ｂとが設けられる場合を示している。また、マスタ局１０とスレーブ局３０Ａ，３０Ｂは、それぞれ２つのポートを有し、各通信ノードのポート間は、ツイストペアケーブルや光ファイバなどのケーブル５０を介して接続される。
【００１５】
図２は、スレーブ局の機能構成を模式的に示すブロック図である。スレーブ局３０は、フレーム受信部３１と、サイクリックデータ受信確認部３２と、サイクリックメモリ３３と、アプリケーション３４と、アプリケーション状態監視部３５と、サイクリックメモリ管理部３６と、状態通知フレーム生成部３７と、フレーム送信部３８と、を備える。
【００１６】
フレーム受信部３１は、マスタ局１０などの他の通信ノードからのフレームの受信処理を行う。ここでは、フレーム受信部３１は、サイクリックデータ受信認識機能３１１と、トークンフレーム受信認識機能３１２と、サイクリックデータ一時バッファ３１３と、を備える。サイクリックデータ受信認識機能３１１は、受信したサイクリックデータから自局宛てのデータを抽出し、サイクリックデータ一時バッファ３１３に格納する機能を有する。
【００１７】
トークンフレーム受信認識機能３１２は、トークンフレームを受信すると、そのトークンフレームを用いて自局に送信権があるか否かを判定する機能を有する。このトークンフレーム受信認識機能３１２は、自局に送信権があると認識した場合は、フレーム送信部３８にフレームの送信が可能であることを通知する。
【００１８】
サイクリックデータ一時バッファ３１３は、受信したサイクリックデータのうち、サイクリックデータ受信認識機能３１１によって認識された自局宛てのデータを、サイクリックメモリ３３に格納するまでの間、または廃棄するまでの間、一時的に格納する。
【００１９】
サイクリックデータ受信確認部３２は、サイクリックデータ一時バッファ３１３に記憶されたデータが正常か否かを判定し、その結果をサイクリックデータ受信状態情報としてサイクリックメモリ管理部３６に通知する。サイクリックデータ受信確認部３２は、たとえばサイクリックデータ一時バッファ３１３に記憶されたデータにデータ化けが発生しているか否かや、自局宛てのデータをすべて受信できたか否かなどを確認する。
【００２０】
サイクリックメモリ３３は、後に説明するように自局宛てのデータが正常に受信でき、かつアプリケーション３４がサイクリックメモリ３３のデータ書き換えの許可を出したという条件が成立した場合に、サイクリックデータ一時バッファ３１３に格納されているサイクリックデータを受け取って格納する。
【００２１】
アプリケーション３４は、受信したサイクリックデータを用いて、プログラムにしたがって、所定の処理を行う。また、アプリケーション３４は、所定の処理を行った結果をフレーム送信部３８を介してマスタ局１０へサイクリックデータとして送信する処理も行う。このアプリケーション３４は、たとえばプログラマブルコントローラなどの制御機器が実行するプログラムに相当する。
【００２２】
アプリケーション状態監視部３５は、アプリケーション３４によってサイクリックメモリ３３のデータの書き換え許可が出されたか否かを監視し、サイクリックメモリ３３のデータ書き換え許可が出された場合に、データ書き換え許可情報としてサイクリックメモリ管理部３６に通知する。
【００２３】
サイクリックメモリ管理部３６は、自局宛てのサイクリックデータを正常に受信でき、かつ、アプリケーション３４からサイクリックメモリ３３のデータの書き換え許可が出されている場合にのみ、サイクリックデータ一時バッファ３１３に格納されている自局宛てのサイクリックデータをサイクリックメモリ３３に転送する処理を行う。具体的には、サイクリックデータ受信確認部３２から得たサイクリックデータ受信状態情報が正常であり、かつアプリケーション状態監視部３５からデータ書き換え許可情報を受信した場合に、サイクリックデータ一時バッファ３１３に格納されているサイクリックデータをサイクリックメモリ３３に転送する。
【００２４】
また、サイクリックメモリ管理部３６は、自局宛てのサイクリックデータの受信時において、サイクリックデータ受信確認部３２から得たサイクリックデータ受信状態情報の内容と、データ書き換え許可情報の有無と、を用いて受信状態情報を生成し、一時的に記憶する。
【００２５】
受信状態情報は、サイクリックメモリ３３へのサイクリックデータの展開状態を示すデータ展開状態情報「Cyc_set」と、サイクリックデータ受信時にデータを処理できる状態であるかを示すデータ処理状態情報「RX_status」と、を含む。なお、データ処理状態情報の判断基準であるサイクリックデータ受信時にデータを処理できる状態とは、ここでは、アプリケーション３４がサイクリックメモリ３３へのデータの展開を許可した状態のことをいうものとする。
【００２６】
データ展開状態情報は、サイクリックデータ受信状態情報が正常に受信したことを示し、かつサイクリックメモリ管理部３６がデータ書換え許可情報を受信した場合に、「Cyc_set」に「１」が設定され、これ以外のときに「０」が設定される。
【００２７】
また、データ処理状態情報は、「Cyc_set」が「０」のときで、データ書換え許可情報を受信しなかった場合に、「RX_status」に「０」が設定され、データ書換え許可情報を受信した場合に、「RX_status」に「１」が設定される。すなわち、データ処理状態情報は、サイクリックメモリ管理部３６によるデータ書き換え許可情報の受信の有無を示している。
【００２８】
状態通知フレーム生成部３７は、サイクリックメモリ管理部３６によって作成された受信状態情報を用いて、状態通知フレームを生成する処理を行う。状態通知フレームは、サイクリックデータ受信時のスレーブ局３０の状態をマスタ局１０に知らせるためのフレームであり、サイクリックデータがサイクリックメモリ３３に展開され、かつサイクリックデータ受信時にデータを処理可能な状態であったかを通知するものである。
【００２９】
フレーム送信部３８は、フレーム受信部３１のトークンフレーム受信認識機能３１２から自局にフレームの送信権がある旨の通知を受けると、状態通知フレーム生成部３７で生成された状態通知フレームをマスタ局１０に送信するとともに、アプリケーション３４によって生成されたサイクリックデータをマスタ局１０に送信する。
【００３０】
ここで、スレーブ局３０によるフレームの送受信処理について説明する。図３は、スレーブ局によるフレームの送受信処理の手順の一例を示すフローチャートである。まず、フレーム受信部３１でマスタ局１０からのサイクリックデータを受信すると、サイクリックデータ受信認識機能３１１は、所定のフレームから自局宛てのサイクリックデータを取得し、サイクリックデータ一時バッファ３１３に記憶する（ステップＳ１１）。このとき、サイクリックデータ受信確認部３２は、サイクリックデータ一時バッファ３１３に記憶されたサイクリックデータが正常に受信できたか否かを判定する（ステップＳ１２）。たとえば、自局宛のすべてのデータを受信できたか、またデータ化けが発生していないかなどの検査を行い、判定を行う。
【００３１】
正常受信できなかった場合（ステップＳ１２でＮｏの場合）には、正常受信できなかった旨のサイクリックデータ受信状態情報を生成し（ステップＳ１３）、サイクリックメモリ管理部３６に通知する。一方、正常受信できた場合（ステップＳ１２でＹｅｓの場合）には、正常受信できた旨のサイクリックデータ受信状態情報を生成し（ステップＳ１４）、サイクリックメモリ管理部３６に通知する。
【００３２】
アプリケーション状態監視部３５は、アプリケーション３４がサイクリックメモリ３３のデータ書き換えの許可を出したか否かを常時監視しており、アプリケーション３４からデータ書き換えの許可が出た場合には、データ書換え許可情報をサイクリックメモリ管理部３６に出力する。
【００３３】
ステップＳ１１でサイクリックデータを受信した後、サイクリックメモリ管理部３６は、アプリケーション状態監視部３５からデータ書換え許可情報を受信したか否かを判定する（ステップＳ１５）。
【００３４】
正常受信できた場合（ステップＳ１２でＹｅｓの場合）でデータ書換え許可情報を受信した場合（ステップＳ１５でＹｅｓの場合）には、サイクリックデータ一時バッファ３１３中のサイクリックデータをサイクリックメモリ３３に展開する（ステップＳ１６）。その後、アプリケーション３４によるプログラム処理（ステップＳ１７）が行われる。
【００３５】
その後、ステップＳ１３の後、または正常受信できた場合（ステップＳ１２でＹｅｓの場合）でデータ書換え許可情報を受信しなかった場合（ステップＳ１５でＮｏの場合）には、サイクリックメモリ管理部３６による受信状態情報生成処理（ステップＳ１８）が行われる。
【００３６】
ここで、受信状態情報生成処理の詳細について説明する。図４は、受信状態情報生成処理の手順の一例を示すフローチャートである。サイクリックメモリ管理部３６は、サイクリックデータ受信確認部３２から取得したサイクリックデータ受信状態情報と、アプリケーション状態監視部３５から取得したデータ書換え許可情報とに基づいて、サイクリックデータをサイクリックメモリ３３に展開したか否かを判定する（ステップＳ５１）。サイクリックメモリ３３に展開した場合（ステップＳ５１でＹｅｓの場合）、すなわちサイクリックデータ受信状態情報が正常であり、かつデータ書換え許可情報を受信した場合には、データ展開状態情報「Cyc_set」に「１」を設定し（ステップＳ５２）、処理が終了し、図３のフローチャートに戻る。
【００３７】
一方、サイクリックデータをサイクリックメモリ３３に展開しなかった場合（ステップＳ５１でＮｏの場合）、すなわちサイクリックデータ受信状態情報が異常であったか、またはデータ書換え許可情報を受信しなかった場合には、データ展開状態情報「Cyc_set」に「０」を設定する（ステップＳ５３）。
【００３８】
その後、アプリケーション状態監視部３５から取得したデータ書換え許可情報に基づいて、サイクリックデータ受信時に、自局（受信局）がサイクリックデータを処理できる状態にあったか否かを判定する（ステップＳ５４）。ここで、サイクリックデータを処理できる状態とは、データ書換え許可情報を受信した場合をいうものとする。
【００３９】
サイクリックデータ受信時に自局（受信局）がサイクリックデータを処理できる状態にあった場合（ステップＳ５４でＹｅｓの場合）、すなわちデータ書換え許可情報を受信した場合には、受信できる状態だったのに受信できなかったことになるので、データ処理状態情報「RX_status」に異常を示す「１」を設定する（ステップＳ５５）。そして、図３のフローチャートに戻る。
【００４０】
また、サイクリックデータ受信時に自局（受信局）がサイクリックデータを処理できる状態になかった場合（ステップＳ５４でＮｏの場合）、すなわちデータ書換え許可情報を受信しなかった場合には、スレーブ局３０が受信できない状態だったので、データ処理状態情報「RX_status」に正常を示す「０」を設定する（ステップＳ５６）。そして、図３のフローチャートに戻る。以上のようにして、受信状態情報が生成される。なお、生成された受信状態情報は記憶される。
【００４１】
図３に戻り、ステップＳ１８の受信状態情報生成処理が終了すると、フレーム受信部３１のトークンフレーム受信認識機能３１２は、自局宛のトークンフレームを受信したかを判定する（ステップＳ１９）。自局宛のトークンフレームを受信しない場合（ステップＳ１９でＮｏの場合）には、自局宛のトークンフレームを受信するまで待ち状態となる。そして、自局宛のトークンフレームを受信した場合（ステップＳ１９でＹｅｓの場合）には、状態通知フレーム生成部３７は、ステップＳ１８の受信状態情報生成処理で生成された受信状態情報を含む状態通知フレームを生成し（ステップＳ２０）、フレーム送信部３８は状態通知フレームを送信する（ステップＳ２１）。
【００４２】
その後、フレーム送信部３８は、アプリケーション３４によって生成されたサイクリックデータをマスタ局１０に送信し（ステップＳ２２）、その後、トークンフレームをつぎに送信権を有する通信ノードに送信する（ステップＳ２３）。以上によって、スレーブ局３０によるデータフレームの送受信処理が終了する。
【００４３】
図５は、マスタ局の機能構成の一例を示すブロック図である。マスタ局１０は、スレーブ局３０から受信したサイクリックデータを用いて所定の演算を行い、スレーブ局３０に送信するためのサイクリックデータを生成するサイクリックデータ処理部１１と、トークンフレームの送信順序を確立する処理やポートを介して同一セグメント内のスレーブ局３０に対してサイクリックデータを含むフレームの送受信処理などを行う通信処理部１２と、を備える。
【００４４】
通信処理部１２は、フレーム送信部１２１と、フレーム受信部１２２と、ネットワーク管理部１２３と、通信管理部１２４と、サイクリックメモリ１２５と、システム異常状態判定部１２６と、を備える。フレーム送信部１２１は、ネットワーク管理部１２３によって生成されたフレームを送信したり、自局にフレームの送信権がある場合に、サイクリックデータ処理部１１で生成されたフレームを送信したりする機能を有する。また、フレーム受信部１２２は、自局宛のフレームの受信処理を行う機能を有する。
【００４５】
ネットワーク管理部１２３は、同一セグメントのネットワークに接続される通信ノードを認識し、トークンフレームの送信順序を決定し、トークンフレームを用いた通信を行うための処理を行う。また、通信管理部１２４は、トークンフレームの送信順序、すなわち送信権が自局にあるか否かを判定し、フレーム送信部１２１によるフレームの送信を管理する。
【００４６】
サイクリックメモリ１２５は、フレーム送信部１２１とフレーム受信部１２２によって送受信されるサイクリックデータを格納するメモリである。図６は、マスタ局のサイクリックメモリの送信エリアの一例を模式的に示す図である。この例では、図１に示されるように、通信システムが１台のマスタ局１０と２台のスレーブ局３０Ａ，３０Ｂとで構成される場合を例示している。ここで、スレーブ局３０Ａ宛てのサイクリックデータの方がスレーブ局３０Ｂ宛てのサイクリックデータよりもデータ量が多く、スレーブ局３０Ａ用に割り当てられる領域の方が大きくなっている。その結果、スレーブ局３０Ａ宛てのデータは、サイクリックデータＡ−１フレーム、サイクリックデータＡ−２フレームに格納され、スレーブ局３０Ｂ宛てのデータは、サイクリックデータＡ−３フレームに格納される。なお、各スレーブ局３０宛てのデータのサイズは、毎回決まっており、データフレームに格納される場所（何番目のデータフレームに格納されるのか）については、予め定められている。
【００４７】
システム異常状態判定部１２６は、各スレーブ局３０から送信される状態通知フレームのデータ展開状態情報とデータ処理状態情報を用いて、通信システムがすぐに修理や確認の必要な異常状態であるのか、それとも通信システムが修理や確認の必要のない正常状態であるのか、について判定する処理を行う。具体的には、スレーブ局３０がそのスレーブ局３０宛てのサイクリックデータを正常に受信でき、かつサイクリックメモリ３３へ展開した場合、またはサイクリックデータをサイクリックメモリ３３へ展開しておらず、そのスレーブ局３０がサイクリックデータを受信できる状態になかった場合には、システム的に正常であると判定する。また、スレーブ局３０がサイクリックデータをサイクリックメモリ３３へ展開しておらず、かつそのスレーブ局３０がサイクリックデータを受信できる状態にあった場合には、システム的に異常であると判定する。システム的に異常であると判定された場合には、たとえばマスタ局１０に接続されるディスプレイ装置などの表示手段にその旨を表示出力するようにしてもよいし、ネットワークを経由して管理者が使用する端末装置に対して通信システムが異常である旨のメールなどを通知するようにしてもよい。
【００４８】
なお、システム異常状態判定部１２６は、各スレーブ局３０からの状態通知フレームを受信すると、その状態通知フレームを格納し、自局に送信権を与えるように設定されたトークンフレームを受信したときに、上記の判定処理を行う。
【００４９】
ここで、マスタ局１０による通信システムの異常状態の判定処理について説明する。図７は、マスタ局によるスレーブ局の状態判定処理の手順の一例を示すフローチャートである。なお、ここでは、各スレーブ局３０から送信される状態通知フレームを受信しており、その内容をメモリに記憶しているものとする。
【００５０】
まず、マスタ局１０の通信管理部１２４は、自局宛てのトークンフレームを受信したか否かを判定する（ステップＳ７１）。自局宛てのトークンフレームを受信していない場合（ステップＳ７１でＮｏの場合）には、自局宛てのトークンフレームを受信するまで待ち状態となる。
【００５１】
自局宛てのトークンフレームを受信した場合（ステップＳ７１でＹｅｓの場合）には、システム異常状態判定部１２６は、メモリに保存された状態通知フレームの中から１つのスレーブ局３０の状態通知フレームを選択する（ステップＳ７２）。そして、そのスレーブ局３０の状態通知フレームのデータ展開状態情報（Cyc_set）の値を取得し、その値が「１」であるのか、「０」であるのかを判定する（ステップＳ７３）。
【００５２】
状態通知フレームのデータ展開状態情報Cyc_setの値が「１」である場合には、スレーブ局３０が自局宛てのデータを正常に受信でき、かつアプリケーション３４がサイクリックメモリ３３のデータ書き換え許可を与えている場合であるので、システム的に正常状態であると判定する（ステップＳ７４）。
【００５３】
一方、状態通知フレームのデータ展開状態情報Cyc_setの値が「０」である場合には、スレーブ局３０が自局宛てのデータを正常に受信できなかったか、またはアプリケーション３４がサイクリックメモリ３３のデータ書き換え許可を出していなかった場合である。そこで、さらにスレーブ局３０がサイクリックデータを処理可能な状態にあったのか否かについて判定する。つまり、状態通知フレーム中のデータ処理状態情報（RX_status）の値が「０」であるのか「１」であるのかについて判定する（ステップＳ７５）。
【００５４】
状態通知フレームのデータ処理状態情報RX_statusの値が「１」である場合には、サイクリックデータを受信できる状態にあったことになる。つまり、スレーブ局３０は、サイクリックデータを受信できる状態にあったのに、受信できなかったので、システム的に異常な状態であると判断される（ステップＳ７６）。なお、このステップＳ７６で、システム的に異常であると判定された場合には、異常である旨の出力を行う。
【００５５】
また、状態通知フレームのデータ処理状態情報RX_statusの値が「０」である場合には、サイクリックデータを受信できない状態にあったことにある。つまり、スレーブ局３０は、サイクリックデータをサイクリックメモリ３３に展開できず、またサイクリックデータを受信できない状態にあったことになる。このような場合は、たとえば、通信システム中の最も処理性能の高いスレーブ局３０に比して処理能力が劣るスレーブ局３０において、そのスレーブ局３０の処理が単に性能的にマスタ局１０のサイクリックデータの送信周期に追いついていけないなどの状態である。そのため、システム的には問題がなく、正常状態であると判定する（ステップＳ７７）。
【００５６】
ステップＳ７４，Ｓ７６，Ｓ７７の後、メモリに保存されたすべてのスレーブ局３０の状態通知フレームについて処理を行ったかを判定し（ステップＳ７８）、すべてのスレーブ局３０の状態通知フレームについて処理を行っていない場合（ステップＳ７８でＮｏの場合）には、ステップＳ７２へと戻る。また、すべてのスレーブ局３０の状態通知フレームについて処理を行った場合（ステップＳ７８でＹｅｓの場合）には、処理が終了する。
【００５７】
つぎに、具体例を挙げて、通信システムがシステム的に正常であるのか否かについての判定処理を説明する。図８は、実施の形態１による通信方法の一例を示すシーケンス図である。ここでは、図１のシステムでマスタ局１０→スレーブ局３０Ａ→スレーブ局３０Ｂ→マスタ局１０の順にトークンフレームが巡回される場合を例に挙げて説明する。また、この図８では、スレーブ局３０Ａ，３０Ｂともにサイクリックデータ受信時にサイクリックデータを受信可能な状態にあるものとする。
【００５８】
まず、マスタ局１０は、自局のサイクリックメモリ１２５の送信エリア内のサイクリックデータＡ−１〜Ａ−３を格納したサイクリックデータフレームを生成し、フレーム送信部１２１から出力する（ステップＳ１０１）。ここでは、スレーブ局３０Ａ宛のサイクリックデータＡ-１フレーム、サイクリックデータＡ−２フレームと、スレーブ局３０Ｂ宛のサイクリックデータＡ−３フレームが出力され、スレーブ局３０Ａ，３０Ｂに伝送される。
【００５９】
スレーブ局３０Ａ，３０Ｂは、サイクリックデータフレームの内、自局宛のデータを取得し、サイクリックデータ一時バッファ３１３に格納する。ここでは、スレーブ局３０Ａは、サイクリックデータＡ−１，Ａ−２を取得してサイクリックデータ一時バッファ３１３に格納し、スレーブ局３０Ｂは、サイクリックデータＡ−３を取得してサイクリックデータ一時バッファ３１３に格納する。各スレーブ局３０Ａ，３０Ｂのサイクリックデータ受信確認部３２では、サイクリックデータ一時バッファ３１３に正常にサイクリックデータを格納することができたか否かを判定し、その結果であるサイクリックデータ受信状態情報をサイクリックメモリ管理部３６に通知する。
【００６０】
また、アプリケーション状態監視部３５は、アプリケーション３４からサイクリックメモリ３３の書き換え許可が出ている場合には、その旨をサイクリックメモリ管理部３６に通知する。ここでは、スレーブ局３０Ａ，３０Ｂともにサイクリックデータ受信時にサイクリックデータを受信可能な状態であることが前提であるので、アプリケーション状態監視部３５は、データ書換え許可情報をサイクリックメモリ管理部３６に出力する。これによって、スレーブ局３０Ａ，３０Ｂは、サイクリックデータをサイクリックデータ一時バッファ３１３サイクリックメモリ３３に展開する。
【００６１】
そして、各スレーブ局３０Ａ，３０Ｂのサイクリックメモリ管理部３６は、サイクリックデータ受信状態情報とデータ書換え許可情報を基に受信状態情報を作成する。たとえば、自局宛のすべてのサイクリックデータを正常に受信しサイクリックメモリ３３に展開した場合には、データ展開状態情報Cyc_setを「１」として記憶する。また、スレーブ局３０Ａ，３０Ｂが自局宛のサイクリックデータの受信時に受信可能状態であったので、データ処理状態情報RX_statusを「１」として記憶する。
【００６２】
また、たとえば、スレーブ局３０ＡでサイクリックデータＡ−１しか受信できなかった場合や、受信したサイクリックデータが化けてしまった場合のように、自局宛のサイクリックデータを正常に受信できなかった場合には、サイクリックデータはサイクリックメモリ３３に展開されないので、データ展開状態情報Cyc_setを「０」として記憶する。このとき、スレーブ局３０Ａ，３０Ｂが自局宛のサイクリックデータの受信時に受信可能状態であったので、データ処理状態情報RX_statusを「１」として記憶する。
【００６３】
なお、ここでは、スレーブ局３０Ａ，３０Ｂともにサイクリックデータをサイクリックメモリ３３に展開できたものとし、受信状態情報として、データ展開状態情報Cyc_setを「１」として記憶し、データ処理状態情報RX_statusを「１」として記憶しているものとする。
【００６４】
マスタ局１０は、サイクリックデータを送信した後、トークンフレームをスレーブ局３０Ａに渡す（ステップＳ１０２）。スレーブ局３０Ａは、トークンフレームを受信して、自局に送信権があることを認識した後、スレーブ局３０Ａの状態通知フレーム生成部３７は、サイクリックメモリ管理部３６が一時的に記憶したデータ展開状態情報Cyc_setとデータ処理状態情報RX_statusの値を状態通知フレームに設定し、マスタ局１０宛に送信する（ステップＳ１０３）。また、アプリケーション３４によって生成されるサイクリックデータＢもマスタ局１０宛に送信する（ステップＳ１０４）。
【００６５】
スレーブ局３０Ａは、サイクリックデータＢを送信した後、トークンフレームをスレーブ局３０Ｂに渡す（ステップＳ１０５）。スレーブ局３０Ｂは、トークンフレームを受信して、自局に送信権があることを認識した後、スレーブ局３０Ｂの状態通知フレーム生成部３７は、サイクリックメモリ管理部３６が一時的に記憶したデータ展開状態情報Cyc_setとデータ処理状態情報RX_statusの値を状態通知フレームに設定し、マスタ局１０宛に送信する（ステップＳ１０６）。また、アプリケーション３４によって生成されるサイクリックデータＣもマスタ局１０宛に送信する（ステップＳ１０７）。
【００６６】
スレーブ局３０Ｂは、サイクリックデータＣを送信した後、トークンフレームをマスタ局１０に渡す（ステップＳ１０８）。マスタ局１０は、トークンフレームを受信して、自局に送信権があることを認識する。なお、マスタ局１０は、自局宛のトークンフレームを受信したときまでに、通信システムに存在する通信ノードのすべて（スレーブ局３０Ａ，３０Ｂ）から状態通知フレームを受信している。トークンフレームを受信したマスタ局１０は、図７のフローチャートにしたがって、スレーブ局３０の状態判定処理を行う（ステップＳ１０９）。ここでは、スレーブ局３０Ａ，３０Ｂともに、データ展開状態情報Cyc_setが「１」であるので、システム上問題が発生していないことを認識する。以上の処理が、周期的に繰り返し実行される。
【００６７】
図９は、実施の形態１による通信方法の他の例を示すシーケンス図である。ここでも、図１のシステムでマスタ局１０→スレーブ局３０Ａ→スレーブ局３０Ｂ→マスタ局１０の順にトークンフレームが巡回されるものとする。また、この図９では、サイクリックデータ受信時において、スレーブ局３０Ａは受信可能な状態にあるが、スレーブ局３０Ｂは受信不可能な状態にあるものとする。
【００６８】
まず、マスタ局１０は、自局のサイクリックメモリ３３の送信エリア内のサイクリックデータＡ−１〜Ａ−３を格納したサイクリックデータフレームに生成し、送信部から出力する（ステップＳ１２１）。ここでも図８と同様に、スレーブ局３０Ａ宛のサイクリックデータＡ−１フレーム、サイクリックデータＡ−２フレームと、スレーブ局３０Ｂ宛のサイクリックデータＡ−３フレームが出力され、スレーブ局３０Ａ，３０Ｂに伝送される。なお、このとき、サイクリックデータＡ−１フレームは、マスタ局１０の送信時点で、伝送路上のノイズの影響でデータが化けてしまい、サイクリックデータＡ−１フレームはスレーブ局３０Ａ，３０Ｂに到達されなかったものとする。
【００６９】
スレーブ局３０Ａ，３０Ｂは、サイクリックデータＡ−１〜Ａ−３の内、自局宛のデータを取得し、サイクリックデータ一時バッファ３１３に格納する。ここでは、スレーブ局３０Ａは、サイクリックデータＡ−２を取得してサイクリックデータ一時バッファ３１３に格納し、スレーブ局３０Ｂは、サイクリックデータＡ−３を取得してサイクリックデータ一時バッファ３１３に格納する。各スレーブ局３０Ａ，３０Ｂのサイクリックデータ受信確認部３２では、サイクリックデータ一時バッファ３１３に正常にサイクリックデータを格納することができたか否かを判定し、その結果であるサイクリックデータ受信状態情報をサイクリックメモリ管理部３６に通知する。ここでは、スレーブ局３０Ａは、正常に受信できなかった旨のサイクリックデータ受信状態情報を生成し、スレーブ局３０Ｂは、正常に受信できた旨のサイクリックデータ受信状態情報を生成する。
【００７０】
また、アプリケーション状態監視部３５は、アプリケーション３４からサイクリックメモリ３３の書き換え許可が出ている場合には、その旨をサイクリックメモリ管理部３６に通知する。ここでは、スレーブ局３０Ａではサイクリックデータ受信時にサイクリックデータを受信可能な状態であることが前提であるので、アプリケーション状態監視部３５は、データ書換え許可情報をサイクリックメモリ管理部３６に出力している。しかし、スレーブ局３０Ｂではサイクリックデータ受信時にサイクリックデータを受信不可能な状態であることが前提であるので、アプリケーション状態監視部３５からデータ書換え許可情報は出力されない。また、スレーブ局３０Ａ，３０Ｂともに、サイクリックデータがサイクリックメモリ３３に展開されない。
【００７１】
そして、各スレーブ局３０Ａ，３０Ｂのサイクリックメモリ管理部３６は、サイクリックデータ受信状態情報とデータ書換え許可情報を基に受信状態情報を作成する。スレーブ局３０Ａの場合には、サイクリックデータを正常に受信できなかったので、サイクリックメモリ３３にサイクリックデータを展開していない。その結果、データ展開状態情報Cyc_setを「０」として記憶する。また、スレーブ局３０Ａは自局宛のサイクリックデータの受信時に受信可能状態であったので、データ処理状態情報RX_statusを「１」として記憶する。
【００７２】
また、スレーブ局３０Ｂの場合には、サイクリックデータを正常に受信できたが、サイクリックデータ受信時に受信可能な状態ではなかった。その結果、サイクリックメモリ３３にサイクリックデータを展開していないので、データ展開状態情報Cyc_setを「０」として記憶する。また、スレーブ局３０Ａは自局宛のサイクリックデータの受信時に受信不可能状態であったので、データ処理状態情報RX_statusを「０」として記憶する。
【００７３】
マスタ局１０は、サイクリックデータを送信した後、トークンフレームをスレーブ局３０Ａに渡す（ステップＳ１２２）。スレーブ局３０Ａは、トークンフレームを受信して、自局に送信権があることを認識した後、スレーブ局３０Ａの状態通知フレーム生成部３７は、サイクリックメモリ管理部３６が一時的に記憶したデータ展開状態情報Cyc_setとデータ処理状態情報RX_statusの値を状態通知フレームに設定し、マスタ局１０宛に送信する（ステップＳ１２３）。また、サイクリックデータＢもマスタ局１０宛に送信する（ステップＳ１２４）。
【００７４】
スレーブ局３０Ａは、サイクリックデータを送信した後、トークンフレームをスレーブ局３０Ｂに渡す（ステップＳ１２５）。スレーブ局３０Ｂは、トークンフレームを受信して、自局に送信権があることを認識した後、スレーブ局３０Ｂの状態通知フレーム生成部３７は、サイクリックメモリ管理部３６が一時的に記憶したデータ展開状態情報Cyc_setとデータ処理状態情報RX_statusの値を状態通知フレームに設定し、マスタ局１０宛に送信する（ステップＳ１２６）。また、サイクリックデータＣもマスタ局１０宛に送信する（ステップＳ１２７）。
【００７５】
スレーブ局３０Ｂは、サイクリックデータＣを送信した後、トークンフレームをマスタ局１０に渡す（ステップＳ１２８）。マスタ局１０は、トークンフレームを受信して、自局に送信権があることを認識する。なお、マスタ局１０は、自局宛のトークンフレームを受信したときまでに、通信システムに存在する通信ノードのすべて（スレーブ局３０Ａ，３０Ｂ）から状態通知フレームを受信している。トークンフレームを受信したマスタ局１０は、図７のフローチャートにしたがってスレーブ局３０の状態判定処理を行う（ステップＳ１２９）。ここでは、スレーブ局３０Ａはシステム的に問題があり、スレーブ局３０Ｂはシステム上問題がないと判断する。そして、スレーブ局３０Ａはシステム上問題がある旨の情報が、たとえば管理者に対して出力される。
【００７６】
この実施の形態１によれば、各スレーブ局３０は、サイクリックデータの正常受信の有無と、その処理状況（受信処理中でマスタ局１０からの新しいデータを反映できるのか否か）の情報を、マスタ局１０に通知するようにしたので、サイクリックデータの受信状況に応じてスレーブ局３０がネットワークシステム的に問題であるのか否かを判断することができるという効果を有する。
【００７７】
たとえば前に受信したデータを処理中にマスタ局１０からの新しいデータを受信できないスレーブ局３０が存在する場合に、そのスレーブ局３０が性能的にマスタ局１０からの新しいデータを受信できない状態にある場合には、システム的に問題のある（緊急のメンテナンスの必要な）スレーブ局３０であると判定されることがなく、正常に動作しているものと判定することができる。また、サイクリックデータの受信処理時間の周期がトークンフレームの周回時間に比して非常に長いスレーブ局３０における、稀にしか発生しないノイズによるサイクリックデータ未受信に対して、至急メンテナンスする必要があるのかについても判断することができる。これによって、不要なメンテナンスを行う機会を抑制して歩留まりを向上し、費用の削減の効果を大きくすることができる。
【００７８】
実施の形態２．
実施の形態１では、スレーブ局が少なくとも自局宛のサイクリックデータを受信できる状態にある場合を例に挙げたが、この実施の形態２では、マスタ局が送信したサイクリックデータのうち自局宛のサイクリックデータが伝送路上で消失してしまった場合についても対応することができる通信システムと通信装置状態判定方法について説明する。
【００７９】
実施の形態２による通信システムの構成は、実施の形態１と同様である。ただし、スレーブ局３０のサイクリックデータ受信確認部３２は、サイクリックデータ受信状態情報に加えて、局状態の取得時期に関する情報をサイクリックメモリ管理部３６に通知する機能を備えている。たとえば、マスタ局１０からの自局宛のサイクリックデータを１つでも受信した場合には、局状態の取得時期情報としてのＦＬＡＧに「１」を設定し、マスタ局１０からの自局宛のサイクリックデータを１つも受信せずに自局宛のトークンフレームを受信した場合に、ＦＬＡＧに「２」を設定するものとする。また、サイクリックメモリ管理部３６による受信状態情報の生成処理において、ＦＬＡＧ「１」の場合の処理は、実施の形態１で説明したとおりであるが、ＦＬＡＧ「２」の場合には、自局宛のトークンフレームの受信時を基準にしてスレーブ局３０が受信可能な状態であったか否かの判定を行う。
【００８０】
図１０は、スレーブ局による受信状態情報生成処理の手順の一例を示すフローチャートである。まず、サイクリックデータ受信確認部３２は、自局宛のサイクリックデータを受信せずに自局宛のトークンフレームを受信したかを判定する（ステップＳ２０１）。自局宛のサイクリックデータを受信した場合（ステップＳ２０１でＮｏの場合）には、局状態の取得時期情報としてのＦＬＡＧに「１」を設定し（ステップＳ２０２）、自局宛のサイクリックデータを受信せずに自局宛のトークンフレームを受信した場合（ステップＳ２０１でＹｅｓの場合）には、局状態の取得時期情報としてのＦＬＡＧに「２」を設定する（ステップＳ２０３）。これらの情報は、サイクリックデータ受信確認部３２からサイクリックメモリ管理部３６に、サイクリックデータ受信状態情報とともに渡される。
【００８１】
サイクリックメモリ管理部３６は、サイクリックデータ受信確認部３２から取得したサイクリックデータ受信状態情報および局状態の取得時期情報と、アプリケーション状態監視部３５から取得したデータ書換え許可情報とに基づいて、サイクリックデータをサイクリックメモリ３３に展開したか否かを判定する（ステップＳ２０４）。サイクリックメモリ３３に展開した場合（ステップＳ２０４でＹｅｓの場合）、すなわちサイクリックデータ受信状態情報が正常であり、かつデータ書換え許可情報を受信した場合には、データ展開状態情報「Cyc_set」に「１」を設定し（ステップＳ２０５）、処理が終了し、図３のフローチャートに戻る。
【００８２】
一方、サイクリックデータをサイクリックメモリ３３に展開しなかった場合（ステップＳ２０４でＮｏの場合）、すなわちサイクリックデータ受信状態情報が異常であったか、またはデータ書換え許可情報を受信しなかった場合には、データ展開状態情報「Cyc_set」に「０」を設定する（ステップＳ２０６）。
【００８３】
その後、サイクリックメモリ管理部３６は、局状態の取得時期情報のＦＬＡＧの値を取得する（ステップＳ２０７）。ＦＬＡＧが「１」の場合には、アプリケーション状態監視部３５から取得したデータ書換え許可情報に基づいて、サイクリックデータ受信時に、自局（受信局）がサイクリックデータを処理できる状態にあったか否かを判定する（ステップＳ２０８）。
【００８４】
また、ＦＬＡＧが「２」の場合には、アプリケーション状態監視部３５から取得したデータ書換え許可情報に基づいて、自局宛のトークンフレーム受信時に、自局（受信局）がサイクリックデータを処理できる状態にあったか否かを判定する（ステップＳ２０９）。
【００８５】
サイクリックデータ受信時または自局宛のトークンフレーム受信時に、自局（受信局）がサイクリックデータを処理できる状態にあった場合（ステップＳ２０８，Ｓ２０９でＹｅｓの場合）、すなわちデータ書換え許可情報を受信した場合には、受信できる状態だったのに受信できなかったことになるので、データ処理状態情報「RX_status」に「１」を設定する（ステップＳ２１０）。そして、図３のフローチャートに戻る。
【００８６】
また、サイクリックデータ受信時または自局宛のトークンフレーム受信時に、自局（受信局）がサイクリックデータを処理できる状態になかった場合（ステップＳ２０８，Ｓ２０９でＮｏの場合）、すなわちデータ書換え許可情報を受信しなかった場合には、スレーブ局３０が受信できない状態だったので、データ処理状態情報「RX_status」に「０」を設定する（ステップＳ２１１）。そして、図３のフローチャートに戻る。以上のようにして、受信状態情報が生成される。なお、生成された受信状態情報は記憶される。
【００８７】
つぎに、具体例を挙げて、通信システムがシステム的に正常であるのか否かについての判定処理を説明する。図１１は、実施の形態２による通信方法の一例を示すシーケンス図である。ここでは、図１のシステムでマスタ局１０→スレーブ局３０Ａ→スレーブ局３０Ｂ→マスタ局１０の順にトークンフレームが巡回される場合を例に挙げて説明する。また、この図１１では、スレーブ局３０Ａ，３０Ｂともにサイクリックデータ受信時にサイクリックデータを受信可能な状態にあるものとする。
【００８８】
まず、マスタ局１０は、自局のサイクリックメモリ３３の送信エリア内のサイクリックデータＡ−１〜Ａ−３を格納したサイクリックデータフレームを生成し、フレーム送信部１２１から出力する（ステップＳ２２１）。ここでは、スレーブ局３０Ａ宛のサイクリックデータＡ−１フレーム、サイクリックデータＡ−２フレームと、スレーブ局３０Ｂ宛のサイクリックデータＡ−３フレームが出力され、スレーブ局３０Ａ，３０Ｂに伝送される。なお、このとき、サイクリックデータＡ−３フレームは、マスタ局１０の送信時点で、伝送路上のノイズの影響でデータが化けてしまい、サイクリックデータＡ−３フレームはスレーブ局３０Ａ，３０Ｂに到達できなかったものとする。
【００８９】
スレーブ局３０Ａ，３０Ｂは、サイクリックデータフレームの内、自局宛のデータを取得し、それぞれサイクリックデータ一時バッファ３１３に格納する。ここでは、スレーブ局３０Ａは、サイクリックデータＡ−１，Ａ−２を取得してサイクリックデータ一時バッファ３１３に格納するが、スレーブ局３０Ｂは、自局宛のサイクリックデータＡ−３が消失してしまったので、サイクリックデータをサイクリックデータ一時バッファ３１３に格納できない状態となる。
【００９０】
その後、スレーブ局３０Ａのサイクリックデータ受信確認部３２は、サイクリックデータ一時バッファ３１３に正常にサイクリックデータを格納することができたか否かを判定し、その結果であるサイクリックデータ受信状態情報をサイクリックメモリ管理部３６に通知する。ここでは、スレーブ局３０Ａは、正常に受信できたことを示す情報とともに、局状態の取得時期情報としてのＦＬＡＧに「１」を設定したサイクリックデータ受信状態情報を生成する。
【００９１】
また、スレーブ局３０Ａのアプリケーション状態監視部３５は、アプリケーション３４からサイクリックメモリ３３の書き換え許可が出ている場合には、その旨をサイクリックメモリ管理部３６に通知する。ここでは、スレーブ局３０Ａはサイクリックデータ受信時にサイクリックデータを受信可能な状態であることが前提であるので、アプリケーション状態監視部３５は、データ書換え許可情報をサイクリックメモリ管理部３６に出力する。
【００９２】
そして、スレーブ局３０Ａのサイクリックメモリ管理部３６は、サイクリックデータ受信状態情報とデータ書換え許可情報を基に受信状態情報を作成する。ここでは、スレーブ局３０Ａは、自局宛のすべてのサイクリックデータを正常に受信しサイクリックメモリ３３に展開したので、データ展開状態情報Cyc_setを「１」として記憶する。また、スレーブ局３０Ａが自局宛のサイクリックデータの受信時に受信可能状態であったので、データ処理状態情報RX_statusを「１」として記憶する。なお、スレーブ局３０Ｂのサイクリックメモリ管理部３６は、自局宛のサイクリックデータもトークンフレームも到達しないので、この時点ではまだ受信状態情報を作成していない状態である。
【００９３】
マスタ局１０は、サイクリックデータを送信した後、トークンフレームをスレーブ局３０Ａに渡す（ステップＳ２２２）。スレーブ局３０Ａは、トークンフレームを受信して、自局に送信権があることを認識した後、スレーブ局３０Ａの状態通知フレーム生成部３７は、サイクリックメモリ管理部３６が一時的に記憶したデータ展開状態情報Cyc_setとデータ処理状態情報RX_statusの値を状態通知フレームに設定し、マスタ局１０宛に送信する（ステップＳ２２３）。また、サイクリックデータＢもマスタ局１０宛に送信する（ステップＳ２２４）。
【００９４】
スレーブ局３０Ａは、サイクリックデータを送信した後、トークンフレームをスレーブ局３０Ｂに渡す（ステップＳ２２５）。スレーブ局３０Ｂは、トークンフレームを受信して、自局に送信権があることを認識する。また、自局宛のサイクリックデータＡ−３よりも先に自局宛のトークンフレームを受信したので、スレーブ局３０Ｂのサイクリックデータ受信確認部３２は、サイクリックデータを正常に受信できなかったことを示す情報とともに、局状態の取得時期情報としてのＦＬＡＧに「２」を設定したサイクリックデータ受信状態情報を生成する。
【００９５】
また、スレーブ局３０Ｂはサイクリックデータ受信時にサイクリックデータを受信可能な状態であることが前提であるので、アプリケーション状態監視部３５は、データ書換え許可情報をサイクリックメモリ管理部３６に出力する。
【００９６】
そして、スレーブ局３０Ｂのサイクリックメモリ管理部３６は、サイクリックデータ受信状態情報とデータ書換え許可情報を基に受信状態情報を作成する。ここでは、自局宛のサイクリックデータを受信できず、サイクリックメモリ３３に展開しなかったので、データ展開状態情報Cyc_setを「０」として記憶する。また、スレーブ局３０Ｂが自局宛のサイクリックデータの受信時に受信可能状態であったので、データ処理状態情報RX_statusを「１」として記憶する。
【００９７】
その後、スレーブ局３０Ｂの状態通知フレーム生成部３７は、トークンフレーム受信時点の受信状態を示す状態通知フレームを生成する。つまり、スレーブ局３０Ｂの状態通知フレーム生成部３７は、サイクリックメモリ管理部３６が一時的に記憶したデータ展開状態情報Cyc_setとデータ処理状態情報RX_statusの値を状態通知フレームに設定し、マスタ局１０宛に送信する（ステップＳ２２６）。また、サイクリックデータＣもマスタ局１０宛に送信する（ステップＳ２２７）。
【００９８】
スレーブ局３０Ｂは、サイクリックデータＣを送信した後、トークンフレームをマスタ局１０に渡す（ステップＳ２２８）。マスタ局１０は、トークンフレームを受信して、自局に送信権があることを認識する。なお、マスタ局１０は、自局宛のトークンフレームを受信したときまでに、通信システムに存在する通信ノードのすべて（スレーブ局３０Ａ，３０Ｂ）から状態通知フレームを受信している。トークンフレームを受信したマスタ局１０は、図７のフローチャートにしたがって、各スレーブ局３０の状態判定処理を行う（ステップＳ２２９）。ここでは、スレーブ局３０Ａはシステム的に問題がなく、スレーブ局３０Ｂはシステム上問題があると判断する。
【００９９】
この実施の形態２によれば、あるスレーブ局３０宛のサイクリックデータがすべて消失してそのスレーブ局３０に届かない場合でも、そのスレーブ局３０宛のトークンフレームを受信した時点において、サイクリックデータの正常受信の有無と、トークンフレーム受信時の受信状態情報を生成するようにした。そのため、自局宛のサイクリックデータがすべて消失してしまった場合でも、各スレーブ局３０についてシステム的に問題があるか否かを判定することができるという効果を有する。また、通信システムを構成するネットワークに、ストアアンドフォアード方式でフレームの中継を行うスイッチングハブが存在するような場合でもスレーブ局３０の状態を判定することができるという効果を有する。
【０１００】
実施の形態３．
実施の形態２では、スレーブ局が自局宛のサイクリックデータをすべて受信できなかった場合に、自局宛のトークンフレームを用いて受信状態情報を生成するようにしたが、この実施の形態３では、マスタ局が送信したサイクリックデータがすべて伝送路上で消失してしまった場合についても対応することができる通信システムと通信装置状態判定方法について説明する。
【０１０１】
実施の形態３による通信システムの構成は、実施の形態２と同様である。ただし、スレーブ局３０のサイクリックデータ受信確認部３２は、マスタ局１０からの自局宛のサイクリックデータを１つでも受信した場合には、局状態の取得時期情報としてのＦＬＡＧに「１」を設定し、マスタ局１０からのサイクリックデータを受信する前にマスタ局１０が出力するトークンフレームを受信した場合に、ＦＬＡＧに「２」を設定するものとする。また、サイクリックメモリ管理部３６による受信状態情報の生成処理において、ＦＬＡＧ「１」の場合の処理は、実施の形態１で説明したとおりであるが、ＦＬＡＧ「２」の場合には、マスタ局１０がトークンフレームを発行したときを基準にしてスレーブ局３０が受信可能な状態であったか否かの判定を行う。
【０１０２】
また、実施の形態３のスレーブ局３０による受信状態情報生成処理の手順は、実施の形態２の図１０に示したフローチャートと基本的に同様である。ただし、ステップＳ２０１の処理が、「サイクリックデータを受信せずにマスタ局１０が発行するトークンフレームを受信したか？」という処理に代わり、ステップＳ２０９の処理が、「自局宛トークンフレーム受信時」ではなく、「マスタ局１０がトークンフレームを発行したとき」となる点が異なる。
【０１０３】
つぎに、具体例を挙げて、通信システムがシステム的に正常であるのか否かの判定処理について説明する。図１２は、実施の形態３による通信方法の一例を示すシーケンス図である。ここでは、図１のシステムでマスタ局１０→スレーブ局３０Ａ→スレーブ局３０Ｂ→マスタ局１０の順にトークンフレームが巡回される場合を例に挙げて説明する。また、この図１２では、スレーブ局３０Ａは受信可能な状態にあるが、スレーブ局３０Ｂは受信不可能な状態にあるものとする。
【０１０４】
まず、マスタ局１０は、自局のサイクリックメモリ３３の送信エリア内のサイクリックデータＡ−１〜Ａ−３を格納したサイクリックデータフレームを生成し、フレーム送信部１２１から出力する（ステップＳ３０１）。ここでは、スレーブ局３０Ａ宛のサイクリックデータＡ−１フレーム、サイクリックデータＡ−２フレームと、スレーブ局３０Ｂ宛のサイクリックデータＡ−３フレームが出力され、スレーブ局３０Ａ，３０Ｂに伝送される。しかし、このとき、サイクリックデータＡ−１フレーム、サイクリックデータＡ−２フレームおよびサイクリックデータＡ−３フレームは、マスタ局１０の送信時点で、伝送路上のノイズの影響でデータが化けてしまい、すべてのサイクリックデータＡ−１〜Ａ−３はスレーブ局３０Ａ，３０Ｂで受信されなかったものとする。
【０１０５】
通常時であれば、スレーブ局３０Ａ，３０Ｂは、サイクリックデータの内、自局宛のデータを取得し、サイクリックデータ一時バッファ３１３に格納する。しかし、スレーブ局３０Ａ，３０Ｂともに、自局宛てのサイクリックデータフレームが消失してしまった状態にあるので、サイクリックデータＡ−１〜Ａ−３をサイクリックデータ一時バッファ３１３に格納できない。そのため、スレーブ局３０Ａ，３０Ｂともに受信状態情報の生成処理が行われない状態となる。
【０１０６】
マスタ局１０は、サイクリックデータを送信した後、トークンフレームをスレーブ局３０Ａに渡す（ステップＳ３０２）。スレーブ局３０Ａは、トークンフレームを受信して、自局に送信権があることを認識する。また、自局宛のサイクリックデータよりも先にマスタ宛が発行するトークンフレームを受信したので、スレーブ局３０Ａのサイクリックデータ受信確認部３２は、正常に受信できなかったことを示す情報とともに、局状態の取得時期情報としてのＦＬＡＧに「２」を設定したサイクリックデータ受信状態情報を生成する。
【０１０７】
また、スレーブ局３０Ａのアプリケーション状態監視部３５は、アプリケーション３４からサイクリックメモリ３３の書き換え許可が出ている場合には、その旨をサイクリックメモリ管理部３６に通知する。ここでは、スレーブ局３０Ａはサイクリックデータ受信時にサイクリックデータを受信可能な状態であることが前提であるので、アプリケーション状態監視部３５は、データ書換え許可情報をサイクリックメモリ管理部３６に出力する。
【０１０８】
そして、スレーブ局３０Ａのサイクリックメモリ管理部３６は、サイクリックデータ受信状態情報とデータ書換え許可情報を基に受信状態情報を作成する。ここでは、自局宛のサイクリックデータを受信できず、サイクリックメモリ３３に展開しなかったので、データ展開状態情報Cyc_setを「０」として記憶する。また、スレーブ局３０Ａが自局宛のサイクリックデータの受信時に受信可能状態であったので、データ処理状態情報RX_statusを「１」として記憶する。
【０１０９】
その後、スレーブ局３０Ａの状態通知フレーム生成部３７は、マスタ局１０によるトークンフレーム発行時点の状態通知フレームを生成する。つまり、スレーブ局３０Ａの状態通知フレーム生成部３７は、サイクリックメモリ管理部３６が一時的に記憶したデータ展開状態情報Cyc_setとデータ処理状態情報RX_statusの値を状態通知フレームに設定し、マスタ局１０宛に送信する（ステップＳ３０３）。また、サイクリックデータもＢマスタ局１０宛に送信する（ステップＳ３０４）。
【０１１０】
また、マスタ局１０がスレーブ局３０Ａに送信したトークンフレームは、ブロードキャストで送信されるので、スレーブ局３０Ｂにも到達する。スレーブ局３０Ｂは、自局宛のサイクリックデータよりも先にマスタ局１０が発行するトークンフレームを受信したので、スレーブ局３０Ｂのサイクリックデータ受信確認部３２は、正常に受信できなかったことを示す情報とともに、局状態の取得時期情報としてのＦＬＡＧに「２」を設定したサイクリックデータ受信状態情報を生成する。
【０１１１】
また、アプリケーション状態監視部３５は、アプリケーション３４からサイクリックメモリ３３の書き換え許可が出ている場合には、その旨をサイクリックメモリ管理部３６に通知する。ここでは、スレーブ局３０Ａはサイクリックデータ受信時にサイクリックデータを受信可能な状態であることが前提であるので、アプリケーション状態監視部３５は、データ書換え許可情報をサイクリックメモリ管理部３６に出力する。
【０１１２】
そして、スレーブ局３０Ｂのサイクリックメモリ管理部３６は、サイクリックデータ受信状態情報とデータ書換え許可情報を基に受信状態情報を作成する。ここでは、自局宛のサイクリックデータを受信できず、サイクリックメモリ３３に展開しなかったので、データ展開状態情報Cyc_setを「０」として記憶する。また、スレーブ局３０Ｂが自局宛のサイクリックデータの受信時に受信不可能状態であったので、データ処理状態情報RX_statusを「０」として記憶する。
【０１１３】
その後、スレーブ局３０Ａは、サイクリックデータＢを送信した後、トークンフレームをスレーブ局３０Ｂに渡す（ステップＳ３０５）。スレーブ局３０Ｂは、トークンフレームを受信して、自局に送信権があることを認識した後、スレーブ局３０Ｂの状態通知フレーム生成部３７は、マスタ局１０のトークンフレーム発行時点の状態通知フレームを生成する。つまり、スレーブ局３０Ｂの状態通知フレーム生成部３７は、サイクリックメモリ管理部３６が一時的に記憶したデータ展開状態情報Cyc_setとデータ処理状態情報RX_statusの値を状態通知フレームに設定し、マスタ局１０宛に送信する（ステップＳ３０６）。また、サイクリックデータＣもマスタ局１０宛に送信する（ステップＳ３０７）。
【０１１４】
スレーブ局３０Ｂは、サイクリックデータＣを送信した後、トークンフレームをマスタ局１０に渡す（ステップＳ３０８）。マスタ局１０は、トークンフレームを受信して、自局に送信権があることを認識する。なお、マスタ局１０は、自局宛のトークンフレームを受信したときまでに、通信システムに存在する通信ノードのすべて（スレーブ局３０Ａ，３０Ｂ）から状態通知フレームを受信している。トークンフレームを受信したマスタ局１０は、図７のフローチャートにしたがって、スレーブ局３０の状態判定処理を行う（ステップＳ３０９）。ここでは、スレーブ局３０Ａはシステム上問題があると判定され、スレーブ局３０Ｂはシステム上問題がないと判定される。
【０１１５】
なお、サイクリックデータ一時バッファ３１３では、マスタ局１０が送出するすべてのサイクリックデータを格納し、自局宛のサイクリックデータよりも後に送信されるサイクリックデータを受信した時点で、自局宛のサイクリックデータが正常に届かなかったことと、自局の受信状態を判定するようにしてもよい。この場合には、サイクリックデータ一時バッファ３１３の容量を増やす必要があるが、上記の例の場合よりも、自局宛のサイクリックデータが届かなかったことを判定する時間を早めることができる。
【０１１６】
また、実施の形態２では、自局宛のサイクリックデータが全く受信できない場合において、自局宛てのトークンフレームを受信した時点で、自局宛のサイクリックデータが正常に届かなかったことと、自局の受信状態を判定するようにしていたが、この実施の形態３のように、マスタ局１０が発行するトークンフレームを受信した時点で、自局宛のサイクリックデータが正常に届かなかったことと、自局の受信状態を判定するようにしてもよい。
【０１１７】
この実施の形態３によれば、スレーブ局３０がサイクリックデータを受け取る前にマスタ局１０によって発行されたトークンフレームを受信したことをトリガとして、自局宛のサイクリックデータを正常に受信したか否かと、トークンフレームの発行時の自局の受信状態を判定するようにしたので、マスタ局１０から出力されるサイクリックデータが伝送路上ですべて消失してしまった場合でも、各スレーブ局３０についてシステム的に問題があるか否かの判定を行うことができる。また、通信システムを構成するネットワークに、ストアアンドフォアード方式でフレームの中継を行うスイッチングハブが存在するような場合に、スイッチングハブでデータ化けしたデータが廃棄されてしまうような場合でも、スレーブ局３０の状態を判定することができるという効果を有する。
【０１１８】
さらに、自局宛のサイクリックデータが来ない場合に、マスタ局１０が発行したトークンフレームを受信した時点で、受信状態情報の作成を行うようにしたので、スレーブ局３０がサイクリックデータが消失してしまったことを認識する時間Ｔ２（図１２）を、実施の形態２の場合の時間Ｔ１（図１１）に比して短くすることができるという効果も有する。
【０１１９】
実施の形態４．
実施の形態１〜３では、マスタ局は、スレーブ局からの状態通知フレームを用いて、システム的に正常か否かを判定していた。このとき、スレーブ局が１回でも異常であると判定された場合には、管理者に通知するようにしていた。この実施の形態４では、スレーブ局ごとに、メンテナンスの緊急度を任意に設定することができる場合を例に挙げて説明する。
【０１２０】
図１３は、実施の形態４によるマスタ局の機能構成を模式的に示すブロック図である。このマスタ局１０は、実施の形態１の構成において、何回エラーをカウントした場合にシステム上問題であると判定するか（管理者に通知するか）をスレーブ局３０ごとに設定したエラー判定値と、現在までに連続して何回エラーと判定されたかをスレーブ局３０ごとに記憶する累積エラーカウント数とを含むエラーカウント情報を格納するエラーカウント情報格納部１２７をさらに備える。また、システム異常状態判定部１２６は、スレーブ局３０ごとにエラーカウント情報格納部１２７からエラーカウント情報を取得し、エラー判定値とエラーカウント情報に基づいてスレーブ局３０がシステム的に異常であるか否かを判定するようにしている。つまり、あるスレーブ局３０について、連続してカウントされた累積エラーカウント数が、エラー判定値と等しくなった場合に、システム的に異常であると判定する。また、１回でもエラーと判定されなければ、累積エラーカウント数は、０にリセットされる。なお、その他の構成は実施の形態１と同様であるので、その説明を省略する。
【０１２１】
つぎに、マスタ局１０によるスレーブ局３０がシステム的に正常であるか否かの判定を行う処理について説明する。図１４は、マスタ局による通信システムの異常状態の判定処理の手順の一例を示すフローチャートである。なお、ここでは、マスタ局１０は、各スレーブ局３０から送信される状態通知フレームを受信しており、その内容をメモリに記憶しているものとする。
【０１２２】
まず、マスタ局１０の通信管理部１２４は、自局宛てのトークンフレームを受信したか否かを判定する（ステップＳ４０１）。自局宛てのトークンフレームを受信していない場合（ステップＳ４０１でＮｏの場合）には、自局宛てのトークンフレームを受信するまで待ち状態となる。
【０１２３】
そして、自局宛てのトークンフレームを受信した場合には（ステップＳ４０１でＹｅｓの場合）、システム異常状態判定部１２６は、メモリに保存された状態通知フレームの中から１つのスレーブ局３０の状態通知フレームを選択する（ステップＳ４０２）。そして、そのスレーブ局３０の状態通知フレームのデータ展開状態情報（Cyc_set）の値を取得し、その値が「１」であるのか、「０」であるのかを判定する（ステップＳ４０３）。
【０１２４】
状態通知フレームのデータ展開状態情報Cyc_setの値が「１」である場合には、スレーブ局３０が自局宛てのデータを正常に受信でき、かつスレーブ局３０のアプリケーション３４がサイクリックメモリ３３のデータ書き換え許可を与えている場合であるので、システム的に正常状態であると判定する（ステップＳ４０４）。そして、選択したスレーブ局３０に対してエラーカウント情報格納部１２７に格納されている累積エラーカウント数（ERR_CNT）を「０」にリセットする（ステップＳ４０７）。
【０１２５】
一方、メモリに保存された状態通知フレームのCyc_setの値が「０」である場合には、スレーブ局３０が自局宛てのデータを正常に受信できなかったか、またはスレーブ局３０のアプリケーション３４がサイクリックメモリ３３のデータ書き換え許可を与えていなかった場合である。そこで、さらにスレーブ局３０がサイクリックデータを受信可能な状態にあったのか否かについて判定する。つまり、状態通知フレーム中のデータ処理状態情報（RX_status）の値が「０」であるのか「１」であるのかについて判定する（ステップＳ４０５）。
【０１２６】
状態通知フレームのデータ処理状態情報RX_statusの値が「０」である場合には、サイクリックデータを受信できない状態であったことになる。つまり、スレーブ局３０は、サイクリックデータをサイクリックメモリ３３に展開できず、またサイクリックデータを受信できない状態にあったことになる。そのため、システム的には問題がなく、正常状態であると判定する（ステップＳ４０６）。その後、選択したスレーブ局３０に対してエラーカウント情報格納部１２７に格納されている累積エラーカウント数（ERR_CNT）を「０」にリセットする（ステップＳ４０７）。
【０１２７】
一方、状態通知フレームのデータ処理状態情報RX_statusの値が「１」である場合には、サイクリックデータを受信できる状態にあったことになる。つまり、スレーブ局３０は、サイクリックデータを受信できる状態にあったのに、受信できなかったので、一般的には、システム的に異常な状態であると判断されるが、ここではエラーであると判定する。そして、選択したスレーブ局３０に対してエラーカウント情報格納部１２７に格納されている累積エラーカウント数（ERR_CNT）に１加算する（ステップＳ４０８）。この加算された累積エラーカウント数はエラーカウント情報格納部１２７の選択したスレーブ局３０に対応付けて保存される。
【０１２８】
その後、加算した累積エラーカウント数（ERR_CNT）が、選択したスレーブ局３０に対してエラーカウント情報格納部１２７に格納されているエラー判定値（NG_CNT）に等しくなったか否かを判定する（ステップＳ４０９）。累積エラーカウント数がエラー判定値と等しい場合（ステップＳ４０９でＹｅｓの場合）には、システム的に問題が発生したものと判定する（ステップＳ４１０）。そして、管理者に対してスレーブ局３０がシステム的に異常である旨の通知を行う。
【０１２９】
ステップＳ４０７，Ｓ４１０の後、またはステップＳ４０９で累積エラーカウント数がエラー判定値よりも小さい場合（ステップＳ４０９でＮｏの場合）には、メモリに保存されたすべてのスレーブ局３０の状態通知フレームについて処理を行ったかを判定し（ステップＳ４１１）、すべてのスレーブ局３０の状態通知フレームについて処理を行っていない場合（ステップＳ４１１でＮｏの場合）には、ステップＳ４０２へと戻る。また、すべてのスレーブ局３０の状態通知フレームについて処理を行った場合（ステップＳ４１１でＹｅｓの場合）には、処理が終了する。
【０１３０】
なお、この実施の形態４の判定処理は、実施の形態１〜３でスレーブ局３０が送出する状態通知フレームに対して行うことができる。
【０１３１】
この実施の形態４によれば、スレーブ局３０がサイクリックデータ受信時に、サイクリックデータをサイクリックメモリ３３に展開せず、かつサイクリックデータを処理できる状態にあった場合をエラーとして、このエラーをスレーブ局３０ごとに設定したエラー判定値の回数だけ連続して検出すると、システム的に問題であると判定するようにした。これによって、システム的に重要なスレーブ局３０と重要でないスレーブ局３０を上記の継続回数で差別化することが可能になる。その結果、フレームロスによるシステムの影響度をフレキシブルに設定することができるようになり、メンテナンス性の向上につながるという効果を有する。
【産業上の利用可能性】
【０１３２】
以上のように、本発明にかかる通信システムは、所定の周期でデータの送受信を行うＦＡネットワークに有用である。
【符号の説明】
【０１３３】
１０  マスタ局
１１  サイクリックデータ処理部
１２  通信処理部
３０，３０Ａ，３０Ｂ  スレーブ局
３１  フレーム受信部
３２  サイクリックデータ受信確認部
３３，１２５  サイクリックメモリ
３４  アプリケーション
３５  アプリケーション状態監視部
３６  サイクリックメモリ管理部
３７  状態通知フレーム生成部
３８  フレーム送信部
５０  ケーブル
１２１  フレーム送信部
１２２  フレーム受信部
１２３  ネットワーク管理部
１２４  通信管理部
１２６  システム異常状態判定部
１２７  エラーカウント情報格納部
３１１  サイクリックデータ受信認識機能
３１２  トークンフレーム受信認識機能
３１３  サイクリックデータ一時バッファ
【図１】
2011021505.tif 000003
【図２】
2011021505.tif 000004
【図３】
2011021505.tif 000005
【図４】
2011021505.tif 000006
【図５】
2011021505.tif 000007
【図６】
2011021505.tif 000008
【図７】
2011021505.tif 000009
【図８】
2011021505.tif 000010
【図９】
2011021505.tif 000011
【図１０】
2011021505.tif 000012
【図１１】
2011021505.tif 000013
【図１２】
2011021505.tif 000014
【図１３】
2011021505.tif 000015
【図１４】
2011021505.tif 000016
【国際調査報告】
2011021505.tif 000017
2011021505.tif 000018
2011021505.tif 000019
2011021505.tif 000020