(57)【特許請求の範囲】
【請求項１】
互いに接続されることでリング状の通信経路を形成するマスター装置とスレーブ装置とを有する通信システムであって、
前記マスター装置は、
前記通信経路に沿う第１方向及び該第１方向とは反対の第２方向の両方向に、通信を管理するための管理データを送信して前記両方向から該管理データを受信し、
前記スレーブ装置が機器を制御するための制御データを前記両方向に送信し、
前記スレーブ装置は、
前記第１方向及び前記第２方向それぞれにおいて前記マスター装置によって送信されてから自局が受信するまでの前記管理データが伝送される経過を確認し、
確認した前記経過に基づいて、前記マスター装置によって前記両方向に送信された前記制御データのうちいずれか一方の前記制御データを処理して前記機器を制御する、通信システム。
【請求項２】
複数の前記スレーブ装置を有する通信システムであって、
前記管理データは、該管理データを中継した前記スレーブ装置の数である中継数を示す経過情報を含み、
前記スレーブ装置は、
前記第１方向及び前記第２方向それぞれから前記管理データを受信すると、該管理データに含まれる前記経過情報により示される前記中継数を確認して、前記中継数を増加させて該管理データを転送し、
前記マスター装置によって前記両方向に送信された前記制御データのうち、前記中継数が少ない前記管理データを受信した方向から受信した前記制御データを処理する、
請求項１に記載の通信システム。
【請求項３】
前記管理データは、該管理データが前記マスター装置から送信された送信時刻を示す経過情報を含み、
前記スレーブ装置は、
前記第１方向及び前記第２方向それぞれにおいて伝送される前記管理データに含まれる前記経過情報により示される前記送信時刻を確認し、
前記マスター装置によって前記両方向に送信された前記制御データのうち、確認した前記送信時刻から受信した時刻までに経過した時間の長さが短い前記管理データを受信した方向から受信した前記制御データを処理する、
請求項１に記載の通信システム。
【請求項４】
前記マスター装置は、前記管理データと前記制御データとを予め規定された周期で送信する、
請求項１から３のいずれか一項に記載の通信システム。
【請求項５】
前記スレーブ装置は、
前記第１方向及び前記第２方向それぞれからの前記管理データの受信の有無から前記両方向における通信の状況を判断し、
前記第１方向及び前記第２方向のうちいずれか一方からの前記管理データが途絶すると、他方から受信した前記制御データを処理する、
請求項１から４のいずれか一項に記載の通信システム。
【請求項６】
他の通信装置と接続されることでリング状の通信経路を形成する通信装置であって、
前記通信経路に沿う第１方向及び該第１方向とは反対の第２方向それぞれにおいて前記他の通信装置によって送信されてから自局が受信するまでの、通信を管理するための管理データが伝送される経過を確認し、
確認した前記経過に基づいて、前記他の通信装置によって前記第１方向及び前記第２方向の両方向に送信された制御データのうちいずれか一方の前記制御データを処理して機器を制御する、通信装置。
【請求項７】
通信装置と接続されることでリング状の通信経路を形成するコンピュータに、
前記通信経路に沿う第１方向及び該第１方向とは反対の第２方向それぞれにおいて前記通信装置によって送信されて前記コンピュータが受信するまでの、通信を管理するための管理データが伝送される経過を確認し、
確認した前記経過に基づいて、前記通信装置によって前記第１方向及び前記第２方向の両方向に送信された制御データのうちいずれか一方の前記制御データを処理して機器を制御する、
ことを実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信システム、通信装置及びプログラムに関する。
【背景技術】
【０００２】
産業用ネットワークを利用して構成されるＦＡ（Factory Automation）システムには、ケーブルの断線に代表される通信障害が発生した場合においてもＦＡシステムが継続して稼働することが要求される。この要求に対して、リングネットワークに代表される通信システムを適用して通信経路をリング状に形成することで冗長化することが考えられる（例えば、特許文献１を参照）。【０００３】
特許文献１には、リングネットワークのルーティング方法に関する技術について記載されている。リングネットワークは、右回りと左回りの２つの経路を有する。上記技術では、リングネットワークを構成するノードが、リングネットワークのトポロジーを示す情報を取得して、２つの経路のうち一方をメインパスとして他方をバックアップパスとして選択する。そして、当該ノードは、通常時にはメインパスにデータを送信し、障害を検出したときにはバックアップパスにデータを送信する。これにより、障害が発生した場合にも通信を継続することができる。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００９−２８４４８６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
特許文献１の技術では、リングネットワークを構成する各ノードが、自ノードと隣接するノードとのリンクに故障が発生したことを検出すると、当該隣接するノードとは反対側のリンクを介してメッセージを送信することで故障の発生を他のノードに通知する。故障を通知するメッセージを受けたノードは、メインパスからバックアップパスに通信方向を切り替えて通信を継続する。【０００６】
このため、１つのノードが故障を検出してから、他のノードが通信方向を切り替えてバックアップパスを利用した通信を開始するまでには、メッセージを伝送するための時間がかかってしまう。これにより、故障が発生したリンクを経由して伝送されるデータは、通信経路の切替えが完了するまでの間に消失してしまい、一部の経路の通信障害に起因して通信システム全体に障害が発生するおそれがある。したがって、リング状に形成される通信経路を利用する通信システムには、耐障害性に向上の余地がある。【０００７】
本発明は、上記の事情に鑑みてなされたものであり、リング状に形成される通信経路を利用する通信システムの耐障害性を向上させることを目的とする。
【課題を解決するための手段】
【０００８】
上記目的を達成するため、本発明の通信システムは、互いに接続されることでリング状の通信経路を形成するマスター装置とスレーブ装置とを有する通信システムであって、マスター装置は、通信経路に沿う第１方向及び該第１方向とは反対の第２方向の両方向に、通信を管理するための管理データを送信して両方向から該管理データを受信し、スレーブ装置が機器を制御するための制御データを両方向に送信し、スレーブ装置は、第１方向及び第２方向それぞれにおいてマスター装置によって送信されてから自局が受信するまでの管理データが伝送される経過を確認し、確認した経過に基づいて、マスター装置によって両方向に送信された制御データのうちいずれか一方の制御データを処理して機器を制御する。
【発明の効果】
【０００９】
本発明によれば、マスター装置は、第１方向及び第２方向の両方向に制御データを送信し、スレーブ装置は、マスター装置によって両方向に送信された制御データのうちいずれか一方の制御データを処理して機器を制御する。これにより、冗長化された通信経路の両方向に、冗長化された制御データが伝送されていずれか一方が処理される。このため、一部の経路に通信障害が発生した際にも、スレーブ装置は、当該経路を経由しない制御データを受信することができる。したがって、リング状に形成される通信経路を利用する通信システムの耐障害性を向上させることができる。
【図面の簡単な説明】
【００１０】
【図１】本発明の実施の形態１に係る通信システムの構成を示す図
【図２】実施の形態１に係るマスター装置及びスレーブ装置のハードウェア構成を示す図
【図３】実施の形態１に係るマスター装置の機能的な構成を示す図
【図４】実施の形態１に係るスレーブ装置の機能的な構成を示す図
【図５】実施の形態１に係るマスター処理を示すフローチャート
【図６】実施の形態１に係る管理データの構成を示す図
【図７】実施の形態１に係る制御データの構成を示す図
【図８】実施の形態１に係るスレーブ処理を示すフローチャート
【図９】実施の形態１に係る転送処理を示すフローチャート
【図１０】実施の形態１に係る判別情報の形式を示す図
【図１１】実施の形態１に係る判別情報の例を示す第１の図
【図１２】実施の形態１に係る判別情報の例を示す第２の図
【図１３】実施の形態１に係るＣＷ方向の受信処理を示すフローチャート
【図１４】実施の形態１に係るＣＣＷ方向の受信処理を示すフローチャート
【図１５】実施の形態１に係る途絶検知処理を示すフローチャート
【図１６】実施の形態１に係る通信障害が発生した通信システムを示す図
【図１７】実施の形態１に係る判別情報の例を示す第３の図
【図１８】実施の形態２に係る管理データの構成を示す図
【図１９】実施の形態２に係る転送処理を示すフローチャート
【図２０】実施の形態２に係る判別情報の形式を示す図
【図２１】実施の形態２に係るＣＷ方向の受信処理を示すフローチャート
【図２２】実施の形態２に係るＣＣＷ方向の受信処理を示すフローチャート
【図２３】変形例に係る通信システムを示す図
【発明を実施するための形態】
【００１１】
以下、本発明の実施の形態に係る通信システム１００について、図面を参照しつつ詳細に説明する。
【００１２】
実施の形態１．
本実施の形態に係る通信システム１００は、工場に設置されるＦＡシステムの一部に相当する。通信システム１００は、ＦＡシステムとしての生産システム、検査システム、加工システム、その他のシステムを構成する機器同士を、通信路を介して接続することで形成されるリングネットワークである。図１に示されるように、通信システム１００は、通信装置として、マスター装置１０と、スレーブ装置２１，２２，２３，２４，２５を有する。
【００１３】
マスター装置１０及びスレーブ装置２１〜２５は、例えば、ＰＬＣ（Programmable Logic Controller）、ＰＬＣと連動するデバイス、又はＩＰＣ（Industrial Personal Computer）である。マスター装置１０及びスレーブ装置２１〜２５は、互いに接続されることでリング状の通信経路４０を形成する。詳細には、マスター装置１０及びスレーブ装置２１〜２５はそれぞれ、２つのポートを有する。マスター装置１０及びスレーブ装置２１〜２５は、通信線を介してポート同士が接続されることで互いに通信する。通信線は、ネットワークケーブルである。
【００１４】
より詳細には、図１に示されるように、マスター装置１０は、通信線を介してスレーブ装置２１に接続するためのポート１０ａと、通信線を介してスレーブ装置２５に接続するためのポート１０ｂと、を有する。また、スレーブ装置２１は、通信線を介してスレーブ装置２２に接続するためのポート２１ａと、通信線を介してマスター装置１０に接続するためのポート２１ｂと、を有する。スレーブ装置２２は、通信線を介してスレーブ装置２３に接続するためのポート２２ａと、通信線を介してスレーブ装置２１に接続するためのポート２２ｂと、を有する。スレーブ装置２３は、通信線を介してスレーブ装置２４に接続するためのポート２３ａと、通信線を介してスレーブ装置２２に接続するためのポート２３ｂと、を有する。スレーブ装置２４は、通信線を介してスレーブ装置２５に接続するためのポート２４ａと、通信線を介してスレーブ装置２３に接続するためのポート２４ｂと、を有する。スレーブ装置２５は、通信線を介してマスター装置１０に接続するためのポート２５ａと、通信線を介してスレーブ装置２４に接続するためのポート２５ｂと、を有する。このようにマスター装置１０及びスレーブ装置２１〜２５がリング状に接続されることで、リングネットワークが構築される。
【００１５】
リングネットワークとしての通信システム１００は、冗長化された２つの通信経路４０を有する。詳細には、通信システム１００は、マスター装置１０からスレーブ装置２１，２２，２３，２４，２５をこの順で経由してマスター装置１０に戻るＣＷ（Clockwise）方向３１の経路と、マスター装置１０からスレーブ装置２５，２４，２３，２２，２１をこの順で経由してマスター装置１０に戻るＣＣＷ（Counter Clockwise）方向３２の経路と、を有する。ＣＷ方向３１及びＣＣＷ方向３２は、通信経路４０に沿う方向であって、ＣＣＷ方向３２は、ＣＷ方向３１とは反対の方向である。
【００１６】
マスター装置１０は、リングネットワークのマスターノードに相当し、スレーブ装置２１〜２５はいずれも、リングネットワークのスレーブノードに相当する。マスター装置１０は、スレーブ装置２１〜２５に対する制御指示の通信経路をＣＷ方向３１及びＣＣＷ方向３２に冗長化して送信し、スレーブ装置２１〜２５は、制御指示に従って、スレーブ装置２１〜２５に接続された機器７０を制御する。これらの機器７０は、例えば、センサ装置、アクチュエータ又はロボットである。
【００１７】
続いて、マスター装置１０及びスレーブ装置２１〜２５のハードウェア構成について説明する。なお、以下ではスレーブ装置２１〜２５を総称してスレーブ装置２０と適宜表記する。マスター装置１０及びスレーブ装置２０はそれぞれ、図２に示されるように、プロセッサ５１、主記憶部５２、補助記憶部５３、入力部５４、出力部５５、及び通信部５６を有するコンピュータ装置として構成される。主記憶部５２、補助記憶部５３、入力部５４、出力部５５及び通信部５６はいずれも、内部バス５７を介してプロセッサ５１に接続される。
【００１８】
プロセッサ５１は、ＣＰＵ（Central Processing Unit）又はＭＰＵ（Micro Processing Unit）を含む。プロセッサ５１は、補助記憶部５３に記憶されるプログラム５８を実行することにより、マスター装置１０及びスレーブ装置２０の種々の機能を実現して、後述の処理を実行する。
【００１９】
主記憶部５２は、ＲＡＭ（Random Access Memory）を含む。主記憶部５２には、補助記憶部５３からプログラム５８がロードされる。そして、主記憶部５２は、プロセッサ５１の作業領域として用いられる。
【００２０】
補助記憶部５３は、ＥＥＰＲＯＭ（Electrically Erasable Programmable Read-Only Memory）に代表される不揮発性メモリを含む。補助記憶部５３は、プログラム５８の他に、プロセッサ５１の処理に用いられる種々のデータを記憶する。補助記憶部５３は、プロセッサ５１の指示に従って、プロセッサ５１によって利用されるデータをプロセッサ５１に供給し、プロセッサ５１から供給されたデータを記憶する。
【００２１】
入力部５４は、スイッチ、入力キー、ポインティングデバイス及びカメラに代表される入力デバイスを含む。入力部５４は、ユーザによって入力された情報を取得して、取得した情報をプロセッサ５１に通知する。
【００２２】
出力部５５は、ＬＥＤ、ＬＣＤ（Liquid Crystal Display）及びスピーカに代表される出力デバイスを含む。出力部５５は、プロセッサ５１の指示に従って、種々の情報をユーザに提示する。
【００２３】
通信部５６は、外部の装置と通信するための通信インタフェース回路を含む。通信部５６は、外部から信号を受信して、この信号により示されるデータをプロセッサ５１へ出力する。また、通信部５６は、プロセッサ５１から出力されたデータを示す信号を外部の装置へ送信する。
【００２４】
続いて、マスター装置１０及びスレーブ装置２０の機能的な構成について説明する。マスター装置１０及びスレーブ装置２０は、上述のハードウェア構成が協働することにより、種々の機能を発揮する。
【００２５】
マスター装置１０は、マスターノードとして２種のデータをそれぞれ冗長化された通信経路４０に送信する。詳細には、マスター装置１０は、２種のうちの第１データとして、リングネットワークの通信を管理するための管理データを、ＣＷ方向３１及びＣＣＷ方向３２の両方向に送信することで、リングネットワークを周回する管理データをＣＷ方向３１及びＣＣＷ方向３２の両方向から受信する。また、マスター装置１０は、第２データとして、スレーブ装置２０が機器７０を制御するための制御データをＣＷ方向３１及びＣＣＷ方向３２の両方向に送信する。なお、制御データは、マスター装置１０によって送信される制御指示の内容を示すデータに限られず、マスター装置１０によって受信されるデータであってもよい。マスター装置１０によって受信される制御データは、例えば、制御指示を受けたスレーブノードの応答に相当する。
【００２６】
マスター装置１０は、図３に示されるように、その機能として、ポート１０ａ，１０ｂと、データを受信する受信部１１と、制御データと管理データとを識別する識別部１２と、管理データを処理する管理データ処理部１３と、制御データを処理する制御データ処理部１４と、データを送信する送信部１５と、を有する。
【００２７】
ポート１０ａ，１０ｂは、通信部５６に相当する。ポート１０ａ，１０ｂはそれぞれ、通信線を差し込むための差し込み口と端子とを有する。なお、ポート１０ａ，１０ｂは、別個に構成されるハードウェアとして実現されてもよいし、ソフトウェア上の通信インタフェースとして実現されてもよい。ポート１０ａには、ＣＣＷ方向３２からデータが入力され、ポート１０ａからは、ＣＷ方向３１にデータが出力される。また、ポート１０ｂには、ＣＷ方向３１からデータが入力され、ポート１０ｂからは、ＣＣＷ方向３２にデータが出力される。
【００２８】
受信部１１は、プロセッサ５１及び通信部５６の協働により実現される。受信部１１は、通信線を介して伝送されたデータを、ポート１０ａ，１０ｂを介して受信する。受信部１１は、受信したデータを、当該データを受信したポート１０ａ，１０ｂいずれかを示す番号とともに識別部１２に送出する。識別部１２は、主としてプロセッサ５１によって実現される。識別部１２は、受信部１１から送出されたデータが管理データであるか制御データであるかを識別して、当該データを受信したポート１０ａ，１０ｂいずれかの番号とともに、管理データを管理データ処理部１３に送出し、制御データを制御データ処理部１４に送出する。
【００２９】
管理データ処理部１３は、主としてプロセッサ５１によって実現される。管理データ処理部１３は、受信された管理データを破棄する。詳細には、管理データ処理部１３は、受信された管理データの送信元がマスター装置１０のアドレスである場合に、当該管理データがリングネットワーク内を回り続けることを回避するために破棄する。また、管理データ処理部１３は、新たな管理データを定期的に生成して送信部１５に送出する。
【００３０】
制御データ処理部１４は、主としてプロセッサ５１によって実現される。制御データ処理部１４は、受信された制御データを処理する。詳細には、制御データ処理部１４は、受信された制御データの送信元がマスター装置１０のアドレスである場合に、当該制御データがリングネットワーク内を回り続けることを回避するために破棄する。また、制御データ処理部１４は、スレーブ装置２０から送信された制御データを必要に応じて処理する。例えば、マスター装置１０がスレーブ装置２０に対して稼働準備を指示した後にこの準備が完了した旨の制御データをスレーブ装置２０から受信した場合に、制御データ処理部１４は、稼働の開始を指示するための制御データを生成する処理を実行する。また、制御データ処理部１４は、新たな制御指示をスレーブ装置２０へ与える際に、この制御指示を示す制御データを生成する処理を実行する。そして、制御データ処理部１４は、生成した制御データを送信部１５に送出する。
【００３１】
送信部１５は、プロセッサ５１及び通信部５６の協働により実現される。送信部１５は、管理データ処理部１３から送出された管理データを複製して、ＣＷ方向３１及びＣＣＷ方向３２の両方向に送信する。両方向に送信された管理データは、リングネットワークが正常である場合には周回して受信部１１によって受信されるが、リングネットワークに障害が発生した場合には受信部１１によって受信されることがない。また、送信部１５は、制御データ処理部１４から送出された制御データを複製して、ＣＷ方向３１及びＣＣＷ方向３２の両方向に送信する。両方向に送信された制御データは、ＣＷ方向３１及びＣＣＷ方向３２に沿った２つの経路で送信先であるスレーブ装置２０に到達する。
【００３２】
スレーブ装置２０は、図４に示されるように、その機能として、ポート２０ａ，２０ｂと、データを受信する受信部２１０と、制御データと管理データとを識別する識別部２２０と、管理データを処理する管理データ処理部２３０と、制御データを処理する制御データ処理部２４０と、ＣＷ方向３１及びＣＣＷ方向３２それぞれに沿って伝送された制御データのいずれを優先するかを判別するための判別情報２５１を記憶する記憶部２５０と、データを送信する送信部２６０と、を有する。
【００３３】
ポート２０ａ，２０ｂは、通信部５６に相当する。ここで、ポート２０ａは、図１に示されるポート２１ａ，２２ａ，２３ａ，２４ａ，２５ａの総称であって、ポート２０ｂは、ポート２１ｂ、２２ｂ、２３ｂ、２４ｂ、２５ｂの総称である。ポート２０ａ，２０ｂはそれぞれ、通信線を差し込むための差し込み口と端子とを有する。なお、ポート２０ａ，２０ｂは、別個に構成されるハードウェアとして実現されてもよいし、ソフトウェア上の通信インタフェースとして実現されてもよい。ポート２０ａには、ＣＣＷ方向３２からデータが入力され、ポート２０ａからは、ＣＷ方向３１にデータが出力される。また、ポート２０ｂには、ＣＷ方向３１からデータが入力され、ポート２０ｂからは、ＣＣＷ方向３２にデータが出力される。
【００３４】
受信部２１０は、プロセッサ５１及び通信部５６の協働により実現される。受信部２１０は、通信線を介して伝送されたデータを、ポート２０ａ，２０ｂを介して受信する。受信部２１０は、受信したデータを、当該データを受信したポート２０ａ，２０ｂいずれかを示す番号とともに識別部２２０に送出する。識別部２２０は、主としてプロセッサ５１によって実現される。識別部２２０は、受信部２１０から送出されたデータが管理データであるか制御データであるかを識別して、当該データを受信したポート２０ａ，２０ｂいずれかの番号とともに、管理データを管理データ処理部２３０に送出し、制御データを制御データ処理部２４０に送出する。
【００３５】
管理データ処理部２３０は、主としてプロセッサ５１によって実現される。管理データ処理部２３０は、ＣＷ方向３１から受信した管理データをＣＷ方向３１に沿って転送し、ＣＣＷ方向３２から受信した管理データをＣＣＷ方向３２に沿って転送する。
【００３６】
管理データ処理部２３０は、受信された管理データに基づいて記憶部２５０の判別情報２５１を更新する。詳細には、管理データ処理部２３０は、管理データの受信状況に基づいて、ＣＷ方向３１及びＣＣＷ方向３２のいずれの経路で受信した制御データが受信対象として有効かを判別するための情報を判別情報２５１として記憶部２５０に書き込む。そして、管理データ処理部２３０は、管理データを送信部２６０に送出して転送させる。
【００３７】
また、管理データ処理部２３０は、定期的に受信されるべき管理データの受信状況を監視することで、リングネットワークにおける通信障害を検出する。例えば、ＣＷ方向３１から受信されるべき管理データが途絶すると、管理データ処理部２３０は、マスター装置１０からＣＷ方向３１に沿った通信路の障害を検出して、ＣＣＷ方向３２から受信した制御データが優先されることを示す判別情報２５１を、途絶の検出後即座に記憶部２５０に書き込む。また、ＣＣＷ方向３２から受信されるべき管理データが途絶すると、管理データ処理部２３０は、マスター装置１０からＣＣＷ方向３２に沿った通信路の障害を検出して、ＣＷ方向３１から受信した制御データが優先されることを示す判別情報２５１を、途絶の検出後即座に記憶部２５０に書き込む。
【００３８】
制御データ処理部２４０は、主としてプロセッサ５１によって実現される。制御データ処理部２４０は、自局を送信先とする制御データが受信されると、判別情報２５１に基づいてＣＷ方向３１及びＣＣＷ方向３２のいずれか一方から受信された制御データを有効と判別し、他方から受信された制御データを無効と判別する。そして、制御データ処理部２４０は、有効と判別した制御データを処理して制御指示に従う機器７０の制御を開始し、無効と判別した制御データを破棄する。
【００３９】
また、制御データ処理部２４０は、自局とは異なる他のスレーブ装置２０を送信先とする制御データが受信されると、この制御データをそのまま送信部２６０に送出して転送させる。例えば、スレーブ装置２２の制御データ処理部２４０は、スレーブ装置２３を送信先とする制御データがＣＷ方向３１から受信された場合に、この制御データをＣＷ方向３１に沿って転送させる。また、スレーブ装置２２の制御データ処理部２４０は、スレーブ装置２１を送信先とする制御データがＣＣＷ方向３２から受信された場合に、この制御データをＣＣＷ方向３２に沿って転送させる。
【００４０】
記憶部２５０は、主として補助記憶部５３によって実現される。記憶部２５０に記憶される判別情報２５１の詳細については、後述する。
【００４１】
送信部２６０は、プロセッサ５１及び通信部５６の協働により実現される。送信部２６０は、管理データ処理部２３０から送出される管理データを転送し、制御データ処理部２４０から送出される制御データを転送する。
【００４２】
続いて、マスター装置１０によって実行されるマスター処理について、図５〜７を参照して説明する。図５に示されるマスター処理は、マスター装置１０の電源が投入されることで開始する。
【００４３】
マスター処理では、管理データ処理部１３が管理データを生成する（ステップＳ１１）。管理データは、図６に示されるように、管理データの送信元６１１及び送信先６１２を規定するネットワークヘッダ６１と、当該データが管理データであることを示す種別情報６２１が格納される種別情報格納領域６２と、いわゆるペイロードに相当し、経過情報６３１が格納されるデータ格納領域６３と、を有する。管理データの送信元６１１は、及び送信先６１２はいずれも、マスター装置１０のアドレスを示す。管理データの送信先６１２は、全スレーブ装置２０が受信可能なアドレスを示し、管理データはブロードキャストされる。なお、管理データの送信先６１２は、全スレーブ装置２０に加えてマスター装置１０が受信可能なアドレスを示してもよいし、マスター装置１０のアドレスを示してもよい。管理データの送信元６１１及び送信先６１２は、管理データが通信経路４０を周回して破棄されるアドレスであればよい。
【００４４】
管理データの種別情報６２１は、例えば、管理データであることを示す「Ｍ」と、管理データを識別するための識別子「１２３４」とを組み合わせた「Ｍ−１２３４」という情報である。また、経過情報６３１は、管理データがリングネットワーク上で伝送される経過を示す情報である。換言すると、経過情報６３１は、ＣＷ方向３１及びＣＣＷ方向３２それぞれにおいてマスター装置１０によって送信されてからスレーブ装置２０が受信するまでの管理データが伝送される経過を示す。詳細には、経過情報６３１は、マスター装置１０から送信された以降に管理データを中継したスレーブ装置２０の数である中継数を示す。管理データ処理部１３は、中継数がゼロである管理データを生成する。
【００４５】
図５に戻り、送信部１５は、ＣＷ方向３１及びＣＣＷ方向３２の両方向に、ステップＳ１１で生成された管理データを送信する（ステップＳ１２）。具体的には、送信部１５が、ポート１０ａからスレーブ装置２１へ管理データを送信するとともに、この管理データと同等の管理データを、ポート１０ｂからスレーブ装置２５へ送信する。なお、管理データを両方向に送信するタイミングは、一致していることが好ましいが、タイミングがずれていてもよい。このようにして送信された管理データは、通信経路４０に障害がない場合には、周回して受信部１１によって受信される。
【００４６】
次に、制御データ処理部１４は、制御データを生成する（ステップＳ１３）。制御データは、図７に示されるように、ネットワークヘッダ６１と、種別情報格納領域６２と、データ格納領域６３と、を有する。制御データの送信元６１１及び送信先６１２は、互いに異なる。例えば、マスター装置１０が発する制御指令を示す制御データについては、送信先６１２がスレーブ装置２０のアドレスを示し、送信元６１１がマスター装置１０のアドレスを示す。また、制御データの種別情報６２１は、例えば、管理データであることを示す「Ｃ」と、制御データを識別するための識別子「５６７８」とを組み合わせた「Ｃ−５６７８」という情報である。さらに、制御データのデータ格納領域６３には、制御に関する内容を示す制御情報６３２が格納される。
【００４７】
図５に戻り、送信部１５は、ＣＷ方向３１及びＣＣＷ方向３２の両方向に、ステップＳ１３にて生成された制御データを送信する（ステップＳ１４）。具体的には、送信部１５が、ポート１０ａからスレーブ装置２１へ制御データを送信するとともに、この制御データと同等の制御データを、ポート１０ｂからスレーブ装置２５へ送信する。なお、制御データを両方向に送信するタイミングは、一致していることが好ましいが、タイミングがずれていてもよい。
【００４８】
次に、マスター装置１０は、ステップＳ１１以降の処理を繰り返す。これにより、管理データ及び制御データが定期的に送信される。これらデータの送信周期は、予め規定された周期であって、例えば、１０マイクロ秒、１００マイクロ秒、１ミリ秒又は１０ミリ秒である。
【００４９】
続いて、スレーブ装置２０によって実行されるスレーブ処理について、図８〜１７を用いて説明する。図８に示されるスレーブ処理は、スレーブ装置２０の電源が投入されることで開始する。
【００５０】
スレーブ処理では、受信部２１０が、データを受信したか否かを判定する（ステップＳ２１）。具体的には、受信部２１０が、ポート２０ａ，２０ｂのいずれか一方を介してデータを受信したか否かを判定する。
【００５１】
データを受信していないと判定された場合（ステップＳ２１；Ｎｏ）、スレーブ装置２０による処理は、ステップＳ２７へ移行する。一方、データを受信したと判定された場合（ステップＳ２１；Ｙｅｓ）、スレーブ装置２０は、ステップＳ２１にて受信したと判定されたデータが管理データであるか否かを判定する（ステップＳ２２）。具体的には、識別部２２０が、データの種別情報６２１を読み出すことで、当該データが管理データであるか制御データであるかを特定する。
【００５２】
管理データであると判定された場合（ステップＳ２２；Ｙｅｓ）、管理データ処理部２３０が、転送処理を実行する（ステップＳ２３）。図９には、この転送処理の詳細が示されている。図９に示されるように、転送処理では、管理データ処理部２３０が、転送処理の対象となる管理データが伝送された経過を確認して、記憶部２５０に記憶されている判別情報２５１を更新する（ステップＳ２３１）。具体的には、管理データ処理部２３０が、管理データに含まれる経過情報６３１を読み出して、読み出した経過情報６３１に基づいて判別情報２５１を更新する。
【００５３】
ここで、判別情報２５１は、図１０に示されるように、管理データを受信したポート番号と、この管理データを受信した通信経路の方向と、この管理データに含まれる経過情報６３１と、を関連付けるテーブル形式のデータである。図１０において、ポート番号は、ポート２０ａ，２０ｂの符号に等しく、通信経路は、ＣＷ方向３１及びＣＣＷ方向３２の符号に等しく、経過情報６３１は、中継数を示す。判別情報２５１に含まれる中継数の初期値は、−１に設定される。
【００５４】
管理データ処理部２３０は、受信された管理フレームのデータ格納領域６３に格納されている経過情報６３１を取り出して、この経過情報６３１により示される中継数を確認し、当該管理データを受信したポートの番号と確認した中継数とを関連付けて判別情報２５１を更新する。
【００５５】
例えば、スレーブ装置２２がＣＷ方向３１からポート２２ａを介して管理データを受信した場合においては、この管理データはスレーブ装置２１によって１回だけ中継されているため、中継数は１である。そこで、管理データ処理部２３０は、図１１に示されるように、ポート番号「２２ａ」と通信経路「３１」とに関連付けられる中継数を１に更新する。なお、図１１中のポート番号「２２ｂ」に関連付けられる中継数は、初期値である−１となっている。
【００５６】
また、スレーブ装置２２がＣＣＷ方向３２からポート２２ｂを介して管理データをさらに受信した場合においては、この管理データはスレーブ装置２５，２４，２３によってこの順に計３回中継されているため、中継数は３である。そこで、管理データ処理部２３０は、図１２に示されるように、ポート番号「２２ｂ」と通信経路「３２」とに関連付けられる中継数を３に更新する。
【００５７】
図９に戻り、ステップＳ２３１に続いて、管理データ処理部２３０は、管理データを受信したポート番号に基づいて、当該管理データがＣＷ方向３１から受信されたか否かを判定する（ステップＳ２３２）。管理データがＣＷ方向３１から受信されたと判定した場合（ステップＳ２３２；Ｙｅｓ）、管理データ処理部２３０は、経過情報６３１により示される中継数を１だけ増加させて管理データをＣＷ方向３１に転送する（ステップＳ２３３）。例えば、スレーブ装置２２は、中継数が１である管理データをスレーブ装置２１から受信した場合に、中継数を２に増加させて管理データをスレーブ装置２３に転送する。これにより、スレーブ装置２３には、中継数が２である管理データがスレーブ装置２２から伝送される。その後、スレーブ装置２０による処理は、転送処理から図８に示されるスレーブ処理に戻る。
【００５８】
一方、管理データがＣＷ方向３１から受信されたものでないと判定した場合（ステップＳ２３２；Ｎｏ）、管理データ処理部２３０は、当該管理データがＣＣＷ方向３２から受信したものであると判断して、経過情報６３１により示される中継数を１だけ増加させて管理データをＣＣＷ方向３２に転送する（ステップＳ２３４）。例えば、スレーブ装置２２は、中継数が３である管理データをスレーブ装置２３から受信した場合に、中継数を４に増加させて管理データをスレーブ装置２１に転送する。これにより、スレーブ装置２１には、中継数が４である管理データがスレーブ装置２２から伝送される。その後、スレーブ装置２０による処理は、転送処理から図８に示されるスレーブ処理に戻る。
【００５９】
図８のステップＳ２２にて、受信されたデータが管理データでないと判定された場合（ステップＳ２２；Ｎｏ）、制御データ処理部２４０は、当該データが制御データであると判断し、制御データを受信したポート番号に基づいて、制御データがＣＷ方向３１から受信されたか否かを判定する（ステップＳ２４）。
【００６０】
制御データがＣＷ方向３１から受信されたと判定された場合（ステップＳ２４；Ｙｅｓ）、制御データ処理部２４０が、ＣＷ方向３１の受信処理を実行する（ステップＳ２５）。図１３には、ＣＷ方向３１の受信処理の詳細が示されている。
【００６１】
図１３に示されるように、ＣＷ方向３１の受信処理では、制御データ処理部２４０は、受信された制御データの送信先が自局であるか否かを判定する（ステップＳ２５１）。具体的には、制御データ処理部２４０は、制御データの送信先６１２を読み出して、この送信先６１２が、制御データ処理部２４０自体を有するスレーブ装置２０のアドレスに等しいか否かを判定する。
【００６２】
送信先が自局ではないと判定した場合（ステップＳ２５１；Ｎｏ）、制御データ処理部２４０は、受信した制御データを、ＣＷ方向３１に沿ってそのまま転送する（ステップＳ２５２）。その後、スレーブ装置２０による処理は、ＣＷ方向３１の受信処理から図８に示されるスレーブ処理に戻る。
【００６３】
一方、送信先が自局であると判定した場合（ステップＳ２５１；Ｙｅｓ）、制御データ処理部２４０は、ＣＣＷ方向３２からのデータが途絶しているか否かを判定する（ステップＳ２５３）。具体的には、制御データ処理部２４０は、判別情報２５１を読み出して、ＣＣＷ方向３２の経路に関連付けられている中継数の値が−１であるか否かを判定する。ＣＣＷ方向３２から受信される管理データが途絶すると、後述するように、この中継数の値が−１に設定されるため、制御データ処理部２４０は、判別情報２５１を参照することで通信障害の有無を判別することができる。
【００６４】
ＣＣＷ方向３２からのデータが途絶していると判定した場合（ステップＳ２５３；Ｙｅｓ）、制御データ処理部２４０は、受信された制御データが有効であると判断して処理する（ステップＳ２５４）。具体的には、制御データに含まれる制御情報６３２に従った制御を開始して機器７０を制御する。これにより、ＣＣＷ方向３２からのデータが途絶したときには、ＣＷ方向３１からの制御データが処理される。
【００６５】
一方、ＣＣＷ方向３２からのデータが途絶していないと判定した場合（ステップＳ２５３；Ｎｏ）、制御データ処理部２４０は、ＣＷ方向３１の方が、中継数が少ないか否かを判定する（ステップＳ２５５）。具体的には、制御データ処理部２４０は、判別情報２５１を読み出して、ＣＷ方向３１に関連付けられている中継数の方が、ＣＣＷ方向３２に関連付けられている中継数より少ないか否かを判定する。これにより、マスターノードであるマスター装置１０からのホップ数について、ＣＷ方向３１の方がＣＣＷ方向３２より小さいかが判定される。例えば、図１２に示される例では、ＣＷ方向３１の中継数の方が少ないと判定される。なお、ＣＷ方向３１の中継数とＣＣＷ方向３２の中継数とが等しい場合には、ＣＷ方向３１及びＣＣＷ方向３２のうち予め定められた方を優先すればよい。
【００６６】
ＣＷ方向３１の方が中継数が少ないと判定した場合（ステップＳ２５５；Ｙｅｓ）、制御データ処理部２４０は、ステップＳ２５４へ処理を移行する。これにより、ホップ数が少ない経路を優先して制御データが処理される。
【００６７】
一方、ＣＷ方向３１の方が中継数が少ないわけではないと判定した場合（ステップＳ２５５；Ｎｏ）、制御データ処理部２４０は、制御データを無効と判断して破棄する（ステップＳ２５６）。これにより、ＣＣＷ方向３２からのデータが途絶していない場合において、ホップ数が多いＣＷ方向３１からのデータが処理されることはなく、破棄される。その後、スレーブ装置２０による処理は、ＣＷ方向３１の受信処理から図８に示されるスレーブ処理に戻る。
【００６８】
図８のステップＳ２４にて、制御データがＣＷ方向３１から受信されたものでないと判定された場合（ステップＳ２４；Ｎｏ）、制御データ処理部２４０は、ＣＣＷ方向３２の受信処理を実行する（ステップＳ２６）。ＣＣＷ方向３２の受信処理は、上述したＣＷ方向３１の受信処理においてＣＷ方向３１をＣＣＷ方向３２に置き換えた処理に相当する。図１４には、ＣＣＷ方向３２の受信処理の詳細が示されている。
【００６９】
図１４に示されるように、ＣＣＷ方向３２の受信処理では、制御データ処理部２４０が、制御データの送信先が自局であるか否かを判定し（ステップＳ２６１）、送信先が自局でないと判定した場合（ステップＳ２６１；Ｎｏ）、当該制御データをそのままＣＣＷ方向３２に沿って転送する（ステップＳ２６２）。その後、スレーブ装置２０による処理は、ＣＣＷ方向３２の受信処理から図８に示されるスレーブ処理に戻る。
【００７０】
一方、送信先が自局であると判定した場合（ステップＳ２６１；Ｙｅｓ）、制御データ処理部２４０は、ＣＷ方向３１からのデータが途絶しているか否かを判定する（ステップＳ２６３）。ＣＷ方向３１からのデータが途絶していると判定した場合（ステップＳ２６３；Ｙｅｓ）、制御データ処理部２４０は、制御データが有効であると判断して処理する（ステップＳ２６４）。その後、スレーブ装置２０による処理は、ＣＣＷ方向３２の受信処理から図８に示されるスレーブ処理に戻る。
【００７１】
一方、ＣＷ方向３１からのデータが途絶していないと判定した場合（ステップＳ２６３；Ｎｏ）、制御データ処理部２４０は、ＣＣＷ方向３２の方が中継数が少ないか否かを判定する（ステップＳ２６５）。ＣＣＷ方向３２の方が中継数が少ないと判定した場合（ステップＳ２６５；Ｙｅｓ）、制御データ処理部２４０は、ステップＳ２６４に処理を移行する。
【００７２】
一方、ＣＣＷ方向３２の方が中継数が少ないわけではないと判定した場合（ステップＳ２６５；Ｎｏ）、制御データ処理部２４０は、制御データが無効であると判断して破棄する（ステップＳ２６６）。その後、スレーブ装置２０による処理は、ＣＣＷ方向３２の受信処理から図８に示されるスレーブ処理に戻る。
【００７３】
図８に戻り、ステップＳ２３，Ｓ２５，Ｓ２６に続いて、管理データ処理部２３０は、途絶検知処理を実行する（ステップＳ２７）。途絶検知処理は、管理データの受信の有無からスレーブ装置２０が両方向における通信の状況を判断することでリングネットワークにおける通信障害を検知する処理である。図１５には、途絶検知処理の詳細が示されている。
【００７４】
図１５に示されるように、途絶検知処理では、管理データ処理部２３０は、ＣＷ方向３１及びＣＣＷ方向３２の少なくとも一方に沿って定期的に受信されるべき管理データが一定時間にわたり途絶しているか否かを判定する（ステップＳ２７１）。具体的には、管理データ処理部２３０は、ＣＷ方向３１から管理データを最後に受信してから新たな管理データを受信しないまま一定時間が経過したか否かを判定し、ＣＣＷ方向３２から管理データを最後に受信してから新たな管理データを受信しないまま一定時間が経過したか否かを判定する。一定時間は、例えば、管理データの送信周期の１．５倍、２倍、又は５倍に相当する。この一定時間は、通信障害が発生してから検知するまでの時間といえるため、短い方が好ましい。
【００７５】
例えば、図１６に示されるように、スレーブ装置２１とスレーブ装置２２との間で通信障害が発生してリンクが切断された場合を想定する。この場合には、スレーブ装置２１は、ＣＣＷ方向３２から定期的に受信されるべき管理データが途絶したと判定することで、マスター装置１０からＣＣＷ方向３２に沿って自局に至る通信路における通信障害の発生を検知する。また、スレーブ装置２２〜２５は、ＣＷ方向３１から定期的に受信されるべき管理データが途絶されたと判定することで、マスター装置１０からＣＷ方向３１に沿って自局に至る通信路における通信障害の発生を検知する。また、マスター装置１０は、ＣＷ方向３１及びＣＣＷ方向３２に沿って定期的に受信されるべき管理データが途絶したことで、リングネットワークにおける通信障害の発生を検知する。なお、マスター装置１０及びスレーブ装置２０はいずれも、リングネットワークにおける通信障害の発生位置を特定することはない。
【００７６】
図１５に戻り、ステップＳ２７１にて管理データが途絶していないと判定された場合（ステップＳ２７１；Ｎｏ）、スレーブ装置２０による処理は、途絶検知処理から図８に示されるスレーブ処理に戻る。一方、管理データが途絶していると判定した場合（ステップＳ２７１；Ｙｅｓ）、管理データ処理部２３０は、途絶を示す情報を書き込むことで判別情報２５１を更新する（ステップＳ２７２）。具体的には、管理データ処理部２３０は、管理データが途絶した通信経路に関連付けられた中継数を初期値である−１に設定する。例えば、図１６のような通信障害が発生した場合において、スレーブ装置２２は、判別情報２５１を図１７に示されるように更新する。その後、スレーブ装置２０による処理は、途絶検知処理から図８に示されるスレーブ処理に戻る。
【００７７】
なお、マスター装置１０とスレーブ装置２０の少なくとも１つが、スレーブ装置２０各々が有する判別情報２５１を比較することで、障害位置を特定してもよい。具体的には、図１６の例では、スレーブ装置２１，２２の判別情報２５１を比較すると、途絶を示す「−１」に関連付けられた経路が異なる。このため、スレーブ装置２１，２２間の通信路において障害が発生していることがわかる。例えば、マスター装置１０は、通信障害が発生した際に、スレーブ装置２０各々に判別情報２５１の提供を要求し、提供された判別情報２５１を比較してもよい。
【００７８】
図８に戻り、ステップＳ２７に続いて、スレーブ装置２０は、ステップＳ２１以降の処理を繰り返す。これにより、管理データの転送、判別情報２５１の更新、及び制御データの受信処理が繰り返し実行される。例えば、図１６のように発生した通信障害からリングネットワークが復旧すると、スレーブ装置２０は、両方向からの管理データを再度受信して判別情報２５１を更新し、この判別情報２５１に基づいて制御データ処理部２４０による受信処理が実行される。
【００７９】
以上、説明したように、マスター装置１０は、ＣＷ方向３１及びＣＣＷ方向３２の両方向に管理データを送信して、スレーブ装置２０は、ＣＷ方向３１及びＣＣＷ方向３２それぞれにおいてマスター装置１０によって送信されてから自局が受信するまでの管理データが伝送される経過を確認する。また、マスター装置１０は、両方向に制御データを送信し、スレーブ装置２０は、確認した管理データの伝送経過に基づいて、マスター装置１０によって両方向に送信された制御データのうちいずれか一方の制御データを処理して機器を制御する。これにより、冗長化された通信経路の両方向に、冗長化された制御データが伝送されていずれか一方が処理される。このため、一部の経路に通信障害が発生した際にも、スレーブ装置は、当該経路を経由しない制御データを受信することができる。したがって、リング状に形成される通信経路を利用する通信システムの耐障害性を向上させることができる。
【００８０】
また、マスター装置１０は、両方向に管理データを繰り返し送信し、スレーブ装置２０を宛先とする制御データをＣＷ方向３１及びＣＣＷ方向３２の両方向に送信する。スレーブ装置２０は、ＣＷ方向３１及びＣＣＷ方向３２それぞれからの管理データの受信の有無から両方向における通信の状況を判断し、いずれか一方の方向から受信される管理データが途絶すると、他方の方向に送信された制御データを受信して処理する。このため、通信障害が発生して管理データが途絶したときに、スレーブ装置２０は、通信障害の発生が通知されるのを待機することなく、上記他方の方向に送信された制御データを、長い遅延を伴わずに受信して処理することができる。これにより、通信障害が発生したときに通信を継続する際のデータのリアルタイム性を向上させることができる。
【００８１】
また、管理データは、経過情報６３１を含み、制御データ処理部２４０は、ＣＷ方向３１から受信した管理データに含まれる経過情報６３１と、ＣＣＷ方向３２から受信した管理データに含まれる経過情報６３１と、の比較に基づいて、ＣＷ方向３１及びＣＣＷ方向３２のうち一方の方向に送信された制御データを受信して処理した。これにより、マスター装置１０からスレーブ装置２０へ至る２つの経路それぞれの状況に応じて適当な制御データを処理対象とすることができる。
【００８２】
また、経過情報６３１は、いわゆるホップ数に相当する中継数を示す。スレーブ装置２０は、ＣＷ方向３１及びＣＣＷ方向３２それぞれから管理データを受信すると、該管理データにより示される中継数を確認して、中継数が少ない経路で受信した制御データを受信して処理した。換言すると、スレーブ装置２０は、マスター装置１０によって両方向に送信された制御データのうち、中継数が少ない管理データを受信した方向から受信した制御データを処理した。これにより、ホップ数が少ない経路で伝送された制御データが処理対象とされる。ホップ数が少ないと、通常は制御データの伝送時間が短いことから、スレーブ装置２０は、冗長化された経路で伝送される制御データのうち、早く到達する制御データを処理対象とすることができる。
【００８３】
実施の形態２．
続いて、実施の形態２について、上述の実施の形態１との相違点を中心に説明する。なお、上記実施の形態１と同一又は同等の構成については、同等の符号を用いるとともに、その説明を省略又は簡略する。上記実施の形態１では、２つの通信経路のうち優先される経路が、経過情報６３１により示される中継数に基づいて判別されていたが、データの伝送時間に基づいて判別することも考えられる。以下、伝送時間に基づいて優先すべき経路を選択する形態について説明する。
【００８４】
図１８には、本実施の形態に係る管理データの構成が示されている。図１８に示されるように、管理データのデータ格納領域６３には、この管理データの送信時刻を示す経過情報６３１が格納される。マスター装置１０は、管理データを送信する際に、当該管理データが送信される送信時刻を示す経過情報６３１を生成し、生成した経過情報６３１を含む管理データを送信する。
【００８５】
図１９には、スレーブ装置２０の管理データ処理部２３０によって実行される転送処理が示されている。この転送処理では、図９に示されたステップＳ２３１，２３２と同等の処理が実行される。ただし、ステップＳ２３１において、判別情報２５１を更新する際に、管理データ処理部２３０は、管理データがマスター装置１０から送信されてからスレーブ装置２０に到達するまでの到達時間を得る。具体的には、管理データ処理部２３０は、管理データに含まれる送信時刻を確認し、この送信時刻から当該管理データを受信した時刻までに経過した時間を算出する。そして、管理データ処理部２３０は、図２０に示されるように、管理フレームを受信したポート番号及び通信経路と関連付けて到達時間を書き込むことで判別情報２５１を更新する。なお、到達時間の初期値は、−１である。
【００８６】
図１９に戻り、ステップＳ２３２の判定が肯定された場合（ステップＳ２３２；Ｙｅｓ）、管理データ処理部２３０は、管理データをそのままＣＷ方向３１に転送する（ステップＳ２３５）。一方、ステップＳ２３２の判定が否定された場合（ステップＳ２３２；Ｎｏ）、管理データ処理部２３０は、管理データをそのままＣＣＷ方向３２に転送する（ステップＳ２３６）。その後、スレーブ装置２０による処理は、転送処理から図８に示されるスレーブ処理に戻る。
【００８７】
図２１には、ＣＷ方向３１の受信処理の詳細が示されている。このＣＷ方向３１の受信処理では、ステップＳ２５３の判定が否定された場合（ステップＳ２５３；Ｎｏ）、制御データ処理部２４０は、ＣＷ方向３１の方が到達時間が短いか否かを判定する（ステップＳ２５７）。具体的には、制御データ処理部２４０は、判別情報２５１を読み出して、ＣＷ方向３１に関連付けられている到達時間が、ＣＣＷ方向３２に関連付けられている到達時間より短いか否かを判定する。
【００８８】
ＣＷ方向３１の方が到達時間が短いと判定した場合（ステップＳ２５７；Ｙｅｓ）、制御データ処理部２４０は、ステップＳ２５４へ処理を移行する。一方、ＣＷ方向３１の方が到達時間が短くはないと判定した場合（ステップＳ２５７；Ｎｏ）、制御データ処理部２４０は、ステップＳ２５６へ処理を移行する。
【００８９】
図２２には、ＣＣＷ方向３２の受信処理の詳細が示されている。このＣＣＷ方向３２の受信処理では、ステップＳ２６３の判定が否定された場合（ステップＳ２６３；Ｎｏ）、制御データ処理部２４０は、ＣＣＷ方向３２の方が到達時間が短いか否かを判定する（ステップＳ２６７）。具体的には、制御データ処理部２４０は、判別情報２５１を読み出して、ＣＣＷ方向３２に関連付けられている到達時間が、ＣＷ方向３１に関連付けられている到達時間より短いか否かを判定する。
【００９０】
ＣＣＷ方向３２の方が到達時間が短いと判定した場合（ステップＳ２６７；Ｙｅｓ）、制御データ処理部２４０は、ステップＳ２６４へ処理を移行する。一方、ＣＣＷ方向３２の方が到達時間が短くはないと判定した場合（ステップＳ２６７；Ｎｏ）、制御データ処理部２４０は、ステップＳ２６６へ処理を移行する。
【００９１】
また、スレーブ装置２０は、図１５に示された途絶検知処理と同等の処理を実行する。ただし、途絶検知処理のうちステップＳ２７２では、管理データ処理部２３０は、途絶を示す情報として、到達時間を初期値である−１に書き換える。
【００９２】
以上、説明したように、経過情報６３１は、送信時刻を示し、制御データ処理部２４０は、到達時間が短い経路で伝送された制御データを受信して処理する。詳細には、制御データ処理部２４０は、マスター装置１０によって両方向に送信された制御データのうち、確認した送信時刻から受信した時刻までに経過した時間の長さが短い管理データを受信した方向から受信した制御データを処理する。これにより、２つの経路のうち、データの伝送時間が短い経路を確実に優先させることができる。例えば、ホップ数が多いにも関わらず到達時間が短い経路を選択することができる。
【００９３】
以上、本発明の実施の形態について説明したが、本発明は上記実施の形態によって限定されるものではない。
【００９４】
例えば、通信システム１００がリングネットワークに相当する例について説明したが、これには限定されない。例えば、通信システム１００は、図２３に示されるようなメッシュ型のネットワークであってもよい。このようなネットワークにおいても、マスターノードからスレーブノードを経由してマスターノードに戻るＣＷ方向３１の通信経路４０と、ＣＷ方向３１とは反対のＣＣＷ方向３２に沿ってマスターノードからスレーブノードを経由してマスターノードに戻る通信経路４０とを、管理データ及び制御データそれぞれの冗長化された通信経路として規定すれば、上記実施の形態と同様の効果を得ることができる。
【００９５】
また、ＣＷ方向３１の経路及びＣＣＷ方向３２の経路の始点及び終点は、マスター装置１０に限らない。始点及び終点を有しないＣＷ方向３１の周回経路と、始点及び終点を有しないＣＣＷ方向３２の周回経路と、を想定してもよい。また、マスターノードとスレーブノードとを区別して設けなくてもよい。対等に制御データを送受信する複数のノードから、管理データを送信する１つのノードを規定してもよい。
【００９６】
また、通信障害が発生しておらず制御データの通信経路が冗長化されている状況において、ＣＷ方向３１及びＣＣＷ方向３２のうち、中継数が少ない方を優先する例と、到達時間が短い方を優先する例について説明したが、優先すべき経路を選択する手法は任意である。例えば、中継数が多い方を優先してもよいし、到達時間が長い方を優先してもよい。また、中継数が等しいときに到達時間の長短に応じて優先すべき経路を決定してもよいし、到達時間が等しいときに中継数の大小に応じて優先すべき経路を決定してもよい。
【００９７】
また、判別情報２５１とは異なる基準により優先すべき経路を決定してもよい。例えば、スレーブ装置２０は、過去に受信した制御データを記憶部２５０に蓄積しておいて、制御データを受信するたびに、蓄積されたデータと同一であるか否かを判定してもよい。そして、同一である場合には、制御データを破棄し、同一の制御データが蓄積されていない場合には、制御データを有効であると判断して処理対象としてもよい。
【００９８】
また、判別情報２５１を更新する際に、２つの経路のうち優先される経路を示すフラグを判別情報２５１に含めてもよい。これにより、制御データ処理部２４０が中継数及び到達時間を比較することなく、フラグを参照するだけで制御データが有効か無効かを判断することができる。
【００９９】
また、上記実施の形態では、マスター装置１０は、制御データと管理データとを等しい周期で送信したが、これには限定されない。これらの送信周期が異なってもよいし、マスター装置１０は、制御データを定期的に送信することなく、必要に応じて送信してもよい。
【０１００】
また、マスター装置１０及びスレーブ装置２０の機能は、専用のハードウェアによっても、また、通常のコンピュータシステムによっても実現することができる。
【０１０１】
例えば、プロセッサ５１によって実行されるプログラム５８を、コンピュータ読み取り可能な非一時的な記録媒体に格納して配布し、そのプログラム５８をコンピュータにインストールすることにより、上述の処理を実行する装置を構成することができる。このような記録媒体としては、例えばフレキシブルディスク、ＣＤ−ＲＯＭ（Compact Disc Read−Only Memory）、ＤＶＤ（Digital Versatile Disc）、ＭＯ（Magneto−Optical Disc）が考えられる。
【０１０２】
また、プログラム５８をインターネットに代表される通信ネットワーク上のサーバ装置が有するディスク装置に格納しておき、例えば、搬送波に重畳させて、コンピュータにダウンロードさせてもよい。
【０１０３】
また、通信ネットワークを介してプログラム５８を転送しながら起動実行することによっても、上述の処理を達成することができる。
【０１０４】
さらに、プログラム５８の全部又は一部をサーバ装置上で実行させ、その処理に関する情報をコンピュータが通信ネットワークを介して送受信しながらプログラムを実行することによっても、上述の処理を達成することができる。
【０１０５】
なお、上述の機能を、ＯＳ（Operating System）が分担して実現する場合又はＯＳとアプリケーションとの協働により実現する場合等には、ＯＳ以外の部分のみを媒体に格納して配布してもよく、また、コンピュータにダウンロードしてもよい。
【０１０６】
また、マスター装置１０及びスレーブ装置２０の機能を実現する手段は、ソフトウェアに限られず、その一部又は全部を、回路を含む専用のハードウェアによって実現してもよい。
【０１０７】
本発明は、本発明の広義の精神と範囲を逸脱することなく、様々な実施の形態及び変形が可能とされるものである。また、上述した実施の形態は、本発明を説明するためのものであり、本発明の範囲を限定するものではない。つまり、本発明の範囲は、実施の形態ではなく、請求の範囲によって示される。そして、請求の範囲内及びそれと同等の発明の意義の範囲内で施される様々な変形が、本発明の範囲内とみなされる。
【産業上の利用可能性】
【０１０８】
本発明は、通信障害に耐性のある頑健なネットワークの構築に適している。
【符号の説明】
【０１０９】
１００  通信システム、  １０  マスター装置、  １０ａ，１０ｂ，２０ａ，２０ｂ，２１ａ，２１ｂ，２２ａ，２２ｂ，２３ａ，２３ｂ，２４ａ，２４ｂ，２５ａ，２５ｂ  ポート、  １１  受信部、  １２  識別部、  １３  管理データ処理部、  １４  制御データ処理部、  １５  送信部、  ２０〜２５  スレーブ装置、  ２１０  受信部、  ２２０  識別部、  ２３０  管理データ処理部、  ２３２  ステップ、  ２４０  制御データ処理部、  ２５０  記憶部、  ２５１  判別情報、  ２６０  送信部、  ３１  ＣＷ方向、  ３２  ＣＣＷ方向、  ４０  通信経路、  ５１  プロセッサ、  ５２  主記憶部、  ５３  補助記憶部、  ５４  入力部、  ５５  出力部、  ５６  通信部、  ５７  内部バス、  ５８  プログラム、  ６１  ネットワークヘッダ、  ６２  種別情報格納領域、  ６３  データ格納領域、  ６１１  送信元、  ６１２  送信先、  ６２１  種別情報、  ６３１  経過情報、  ６３２  制御情報、  ７０  機器。
【要約】
通信システム（１００）は、互いに接続されることでリング状の通信経路（４０）を形成するマスター装置（１０）とスレーブ装置（２１−２５）とを有する。マスター装置（１０）は、通信経路（４０）に沿うＣＷ方向（３１）及び該ＣＷ方向（３１）とは反対のＣＣＷ方向（３２）の両方向に、通信を管理するための管理データを送信して両方向から該管理データを受信し、スレーブ装置（２１−２５）が機器（７０）を制御するための制御データを両方向に送信する。スレーブ装置（２１−２５）は、ＣＷ方向（３１）及びＣＣＷ方向（３２）それぞれにおいてマスター装置（１０）によって送信されてから自局が受信するまでの管理データが伝送される経過を確認し、確認した経過に基づいて、マスター装置（１０）によって両方向に送信された制御データのうちいずれか一方の制御データを処理して機器（７０）を制御する。【図１】
0006556416.tif 000002
【図２】
0006556416.tif 000003
【図３】
0006556416.tif 000004
【図４】
0006556416.tif 000005
【図５】
0006556416.tif 000006
【図６】
0006556416.tif 000007
【図７】
0006556416.tif 000008
【図８】
0006556416.tif 000009
【図９】
0006556416.tif 000010
【図１０】
0006556416.tif 000011
【図１１】
0006556416.tif 000012
【図１２】
0006556416.tif 000013
【図１３】
0006556416.tif 000014
【図１４】
0006556416.tif 000015
【図１５】
0006556416.tif 000016
【図１６】
0006556416.tif 000017
【図１７】
0006556416.tif 000018
【図１８】
0006556416.tif 000019
【図１９】
0006556416.tif 000020
【図２０】
0006556416.tif 000021
【図２１】
0006556416.tif 000022
【図２２】
0006556416.tif 000023
【図２３】
0006556416.tif 000024