(57)【特許請求の範囲】
【請求項１】
マスタスレーブ方式で通信を行う通信システムであって、
マスタ又はスレーブとして動作する通信装置、
を備え、
前記スレーブとして動作する通信装置のうち少なくとも２つの通信装置はそれぞれ、
前記スレーブとして動作する通信装置のうちで自機が新たな前記マスタとして選出される優先順位を記憶する優先順位記憶手段と、
前記優先順位が高いほど期間が短くなるように設定されたダウン検知期間を記憶する検知期間記憶手段と、
前記マスタとして動作する通信装置から信号を受信してから前記ダウン検知期間が経過するまでに、前記マスタとして動作する通信装置から新たな信号を受信したか否かに応じて、前記マスタとして動作する通信装置が存在するか否かを判別するマスタ存在判別手段と、
前記マスタ存在判別手段が前記マスタとして動作する通信装置が不在であると判別すると、自機の前記優先順位である第１の順位を他の通信装置に通知する通信調停手段と、
前記通信調停手段が前記第１の順位を前記他の通信装置に通知してから待機期間が経過すると、前記マスタとして動作するように自機の動作を切り替える動作切替手段と、
を有し、
前記マスタとして動作する通信装置は、前記スレーブとして動作する通信装置それぞれから通信装置を一意に識別する識別情報を収集し、収集した前記識別情報から前記優先順位を決定し、前記優先順位に応じた前記ダウン検知期間を決定し、前記スレーブとして動作する通信装置に前記優先順位と前記ダウン検知期間とを送信し、
前記スレーブとして動作する通信装置は、前記マスタとして動作する通信装置から前記優先順位と前記ダウン検知期間とを受信すると、前記優先順位を前記優先順位記憶手段に格納し、前記ダウン検知期間を前記検知期間記憶手段に格納する、
通信システム。
【請求項２】
前記待機期間は、前記優先順位が高いほど期間が短くなるように設定されている、
請求項１に記載の通信システム。
【請求項３】
前記通信調停手段は、前記第１の順位を前記他の通信装置に通知する前に、前記他の通信装置から前記他の通信装置の前記優先順位である第２の順位が通知されると、前記第１の順位が前記第２の順位より高いか否かを判別し、前記第１の順位が前記第２の順位より高いと判別した場合、自機の前記優先順位である前記第１の順位を自機以外の通信装置に通知する、
請求項１または２に記載の通信システム。
【請求項４】
前記待機期間に、前記通信調停手段は、前記他の通信装置から前記他の通信装置の前記優先順位である第２の順位が通知されると、前記第１の順位が前記第２の順位より高いか否かを判別し、
前記動作切替手段は、前記通信調停手段が前記第１の順位が前記第２の順位より低いと判別した場合、前記待機期間が経過しても前記スレーブから前記マスタへと動作を切り替えない、
請求項１から３のいずれか１項に記載の通信システム。
【請求項５】
マスタスレーブ方式で通信を行う通信装置であって、
スレーブとして動作する通信装置のうちで自機が新たなマスタとして選出される優先順位を記憶する優先順位記憶手段と、
前記優先順位が高いほど期間が短くなるように設定されたダウン検知期間を記憶する検知期間記憶手段と、
前記マスタから信号を受信してから前記ダウン検知期間が経過するまでに、前記マスタから新たな信号を受信したか否かに応じて、前記マスタが存在するか否かを判別するマスタ存在判別手段と、
前記マスタ存在判別手段が前記マスタが不在であると判別すると、自機の前記優先順位である第１の順位を他の通信装置に通知する通信調停手段と、
前記通信調停手段が前記第１の順位を前記他の通信装置に通知してから待機期間が経過すると、前記マスタとして動作するように自機の動作を切り替える動作切替手段と、
を備え、
前記優先順位は、前記マスタが、前記スレーブとして動作する通信装置それぞれから収集した前記スレーブとして動作する通信装置を一意に識別する識別情報から決定したものであり、前記ダウン検知期間は、前記マスタが、前記優先順位に応じて決定したものであり、
前記マスタから前記優先順位と前記ダウン検知期間とを受信すると、前記優先順位を前記優先順位記憶手段に格納し、前記ダウン検知期間を前記検知期間記憶手段に格納する、
通信装置。
【請求項６】
マスタスレーブ方式で通信を行う通信システムにおいて、
スレーブとして動作するコンピュータに、
前記スレーブのうちで前記コンピュータが新たなマスタとして選出される優先順位であって、前記スレーブとして動作する前記コンピュータの識別情報から決定された前記優先順位を記憶させ、
前記優先順位が高いほど期間が短くなるように設定されたダウン検知期間を記憶させ、
前記マスタから信号を受信してから前記ダウン検知期間が経過するまでに、前記マスタから新たな信号を受信したか否かに応じて、前記マスタが存在するか否かを判別させ、
前記マスタが不在であると判別した場合に、前記コンピュータの前記優先順位である第１の順位を前記スレーブとして動作する他のコンピュータに通知させ、
前記第１の順位を前記他のコンピュータに通知してから待機期間が経過したか否かを判別させ、
前記待機期間が経過したと判別した場合に、前記マスタとして動作するように前記コンピュータの動作を切り替えさせ、
前記優先順位と前記ダウン検知期間とは、前記マスタが決定し、前記マスタから前記スレーブとして動作する前記コンピュータに供給される、
プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信システム、通信装置、及びプログラムに関する。
【背景技術】
【０００２】
マスタスレーブ方式で通信を行う通信システムにおいて、マスタの通信装置に不具合が生じてしまい、マスタとして動作することができない状況が発生することがある。このような状況が発生した場合、スレーブとして動作していた他の通信装置のうちから、新たなマスタとして選ばれた通信装置が、マスタとして動作することがある。【０００３】
特許文献１には、スレーブとして動作する通信装置は、マスタとして動作する通信装置から、決められた周期で発行されるべきマスタ通知フレームが、一定期間発行されなかった場合に、マスタが不在であると判別することが記載されている。さらに、特許文献１には、スレーブとして動作する通信装置は、マスタが不在であると判別した場合にマスタに切り替わり、他の通信装置にマスタ通知フレームをブロードキャストすることが記載されている。【０００４】
上記構成により、複数のスレーブの通信装置がマスタに切り替わる状況が発生するため、特許文献１には、以下のように競合制御を行うことが記載されている。各通信装置にはマスタに切り替わる優先順位が設定されている。通信装置はマスタに切り替わった後に、他の通信装置からマスタ通知フレームを受信すると、受信したマスタ通知フレームにセットされた優先順位と自身の優先順位を比較する。自身の優先順位の方が受信したマスタ通知フレームにセットされた優先順位より低い場合には、通信装置は再びスレーブに切り替わる。また、自身の優先順位の方が受信したマスタ通知フレームにセットされた優先順位より高い場合には、通信装置は、そのマスタ通知フレームの送信元の通信装置に応答フレームを送信し、マスタとして動作を継続する。複数の通信装置間でマスタ通知フレームのやり取りと優先順位の比較とが行われ、最終的には１つのマスタのみが動作する状態となる。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開平９−１４９０６１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
特許文献１に記載された構成では、最終的に１つのマスタのみが動作する状態まで通信装置間でマスタ通知フレームのやり取りと優先順位の比較とを行う必要がある。このため、スレーブが多くなった場合には、最終的なマスタの選出までに時間がかかる。【０００７】
本発明は、上記実情に鑑みてなされたものであり、マスタスレーブ方式で通信を行う通信システムにおいて、マスタが不在の場合に、新たなマスタの選出にかかる時間を短縮することを目的とする。
【課題を解決するための手段】
【０００８】
上記目的を達成するため、本発明に係るマスタスレーブ方式で通信を行う通信システムは、マスタ又はスレーブとして動作する通信装置を備える。スレーブとして動作する通信装置のうち少なくとも２つの通信装置はそれぞれ、優先順位記憶手段と、検知期間記憶手段と、マスタ存在判別手段と、通信調停手段と、動作切替手段とを備える。優先順位記憶手段は、スレーブとして動作する通信装置のうちで自機が新たなマスタとして選出される優先順位を記憶する。検知期間記憶手段は、優先順位が高いほど期間が短くなるように設定されたダウン検知期間を記憶する。マスタ存在判別手段は、マスタとして動作する通信装置から信号を受信してからダウン検知期間が経過するまでに、マスタとして動作する通信装置から新たな信号を受信したか否かに応じて、マスタとして動作する通信装置が存在するか否かを判別する。通信調停手段は、マスタ存在判別手段がマスタとして動作する通信装置が不在であると判別すると、自機の優先順位である第１の順位を他の通信装置に通知する。動作切替手段は、通信調停手段が第１の順位を他の通信装置に通知してから待機期間が経過すると、マスタとして動作するように自機の動作を切り替える。マスタとして動作する通信装置は、スレーブとして動作する通信装置それぞれから通信装置を一意に識別する識別情報を収集し、収集した識別情報から優先順位を決定し、優先順位に応じたダウン検知期間を決定し、スレーブとして動作する通信装置に優先順位とダウン検知期間とを送信する。スレーブとして動作する通信装置は、マスタとして動作する通信装置から優先順位とダウン検知期間とを受信すると、優先順位を優先順位記憶手段に格納し、ダウン検知期間を検知期間記憶手段に格納する。
【発明の効果】
【０００９】
本発明の通信システムにおいては、スレーブとして動作している通信装置は、マスタから信号を受信してから、ダウン検知期間が経過するまでに、マスタとして動作する通信装置から新たな信号を受信したか否かに応じて、マスタが存在するか否かを判別する。ダウン検知期間は、新たなマスタとして選出される優先順位が高いほど、期間が短くなるように設定されている。マスタとして動作する通信装置は、スレーブとして動作する通信装置を一意に識別する識別情報から決定した優先順位と優先順位に応じて決定したダウン検知期間とをスレーブとして動作する通信装置に送信する。本発明の通信システムは、このような構成を備えているため、スレーブとして動作する通信機器のうち、マスタとして選出される優先順位が高い通信装置が、他の通信装置より先にマスタの不在を検知し、マスタに切り替わることができる。これにより、優先順位の低い通信装置が自機の優先順位を送信することがなくなり、新たなマスタの選出にかかる時間を短縮できる。
【図面の簡単な説明】
【００１０】
【図１】実施の形態に係る通信システムの構成を示すブロック図
【図２】実施の形態に係る通信装置のハードウェア構成を示す図
【図３】実施の形態に係るマスタ不在時の調停処理のフローチャート
【図４】実施の形態に係る調停フレーム受信時の調停処理のフローチャート
【図５】実施の形態に係る調停処理における調停フレームの送受信のタイミングを示す図
【図６】実施の形態に係る調停処理における調停フレームの送受信の他のタイミングを示す図
【図７】変形例２に係る通信システムの構成を示すブロック図
【図８】変形例２に係るマスタ候補対象外の通信装置のハードウェア構成を示す図
【発明を実施するための形態】
【００１１】
（実施の形態）
以下、本発明の実施の形態に係る通信システムについて、図面を参照しつつ詳細に説明する。
【００１２】
図１に示すように通信システム１は、ネットワーク５を介して接続された通信装置１００Ａ〜１００Ｄを含む。以下、通信装置１００Ａ〜１００Ｄをまとめて通信装置１００と称することがある。通信装置１００Ａ〜１００Ｄは、例えば、生産システム、制御システム等において稼動するプログラマブルロジックコントローラである。通信装置１００Ａ〜１００Ｄは、それぞれが管理するセンサから収集したデータを相互に送受信する。通信システム１において、複数の通信装置１００はマスタスレーブ方式で相互に通信する。ネットワーク５は、例えば、１００Ｂａｓｅ−Ｔの規格に則ったネットワークである。
【００１３】
通信システム１では、通信装置１００Ａ〜１００Ｄのうち１つがマスタとして動作し、その他がスレーブとして動作する。マスタとして動作する通信装置１００は、データの送受信のタイミングを管理する。スレーブとして動作する通信装置１００は、マスタの管理下でデータの送受信を行う。このようにして、通信装置１００Ａ〜１００Ｄは、同期通信を行う。
【００１４】
マスタとして動作する通信装置１００は、マスタが存在することを通知するため、スレーブとして動作する通信装置１００に対してマスタ通知フレームを一定期間毎にブロードキャストする。スレーブとして動作する通信装置１００は、マスタ通知フレームを受信したか否かにより、マスタが存在するか否かを判別する。マスタ通知フレームには、例えば、マスタとして動作する通信装置１００を識別する情報が含まれている。以下の説明において、マスタとして動作する通信装置１００を、単にマスタという場合がある。スレーブとして動作する通信装置１００を、単にスレーブという場合がある。
【００１５】
通信システム１では、マスタが故障又は他の理由で、マスタとして動作することができなくなった場合には、スレーブ同士で調整を行って、新たなマスタを選出する。以下、新たなマスタを選出するため、スレーブ同士が調整を行うことを、通信調停あるいは単に調停という。スレーブ同士は、通信調停のため調停フレームと呼ばれるフレームを送受信する。実施の形態においては、スレーブそれぞれについてマスタとして選出される優先順位が予め設定されている。マスタが不在の場合、優先順位が最も高いスレーブが新たなマスタとして選出される。調停フレームには、送信元のスレーブの優先順位がセットされる。調停フレームを受信したスレーブは、調停フレームにセットされた優先順位と自身の優先順位とを比較して、自機がマスタに切り替わるべきか否かを判別する。
【００１６】
図２に示すように通信装置１００Ａは、ハードウェア構成として、各種のプログラム及びデータを記憶するメモリ１１と、他の通信装置１００と通信を行う通信インタフェース１２と、通信装置１００全体を制御するプロセッサ１３とを有する。メモリ１１と、通信インタフェース１２とはバス１９を介してプロセッサ１３に接続されており、プロセッサ１３と通信する。なお、通信装置１００Ａを例に説明するが、通信装置１００Ｂ〜１００Ｄも同様の構成を備える。
【００１７】
メモリ１１は、揮発性メモリと不揮発性メモリとを含む。メモリ１１は、通信装置１００間で通信調停を行うための調停プログラム１１１と、通信調停に使用される調停パラメータ１１２と、マスタとして動作する場合にスレーブを管理するため使用する通信管理パラメータ１１３とを格納する。通信システム１を管理するユーザが不図示の設定ツールを使用して、調停プログラム１１１と調停パラメータ１１２と通信管理パラメータ１１３とを予めメモリ１１に格納しているものとする。また、メモリ１１は、プロセッサ１３のワークメモリとして用いられる。調停プログラム１１１は本発明のプログラムの一例である。
【００１８】
調停プログラム１１１は、プロセッサ１３により実行される。プロセッサ１３は調停プログラム１１１を実行することにより、マスタが不在であるか否かを判別し、マスタが不在の場合に他の通信装置１００と通信調停を行う機能を実現する。
【００１９】
調停パラメータ１１２は、プロセッサ１３が調停プログラム１１１を実行するときに使用するパラメータである。調停パラメータ１１２は、通信装置１００Ａがマスタとして選出される優先順位と、通信装置１００Ａがマスタの不在を検知するためのダウン検知期間と、通信調停のため通信装置１００Ａが待機するべき期間を示す待機期間とを含む。優先順位は、マスタが不在である場合に、その通信装置１００Ａが新たなマスタとして選出される順位を示す。
【００２０】
ダウン検知期間は、通信装置１００Ａが、マスタのダウンを検知するための期間である。通信装置１００Ａは、マスタ通知フレームを決められた期間マスタから受信しなかった場合に、マスタが不在であると判別する。この決められた期間がダウン検知期間である。ダウン検知期間は、マスタがマスタ通知フレームを送信する間隔より長めに設定されている。待機期間は、マスタが不在時に、通信装置１００Ａがマスタに切り替わる前に待機するべき期間である。通信装置１００Ａは、マスタが不在であると判別した場合に、調停フレームを他の通信装置１００に送信してから待機期間が経過した後、マスタに切り替わる。待機期間は、通信装置１００Ａの優先順位が高いほど、期間が短くなるように設定されている。
【００２１】
通信管理パラメータ１１３は、通信装置１００Ａがマスタとして動作する場合に、ネットワーク５全体を管理するために必要なパラメータである。通信装置１００Ａは、スレーブからマスタに切り替わった場合に、通信管理パラメータ１１３を使用してネットワーク５全体を管理する。
【００２２】
通信インタフェース１２は、他の装置と通信するためのネットワークインタフェース回路を含み、プロセッサ１３の制御の下、他の通信装置１００と通信する。通信インタフェース１２は、プロセッサ１３から供給されたデータを電気信号に変換し、変換した信号をネットワーク５を介して他の通信装置１００に送信する。また、通信インタフェース１２は、ネットワーク５を介して他の通信装置１００から受信した電気信号をデータに復元してプロセッサ１３に出力する。
【００２３】
プロセッサ１３は、ＭＰＵ（Micro Processing Unit）を含み、メモリ１１に記憶される各種プログラムを実行して、通信装置１００Ａの各種機能を実現する。プロセッサ１３は、さらに、検知タイマ１３１と待機タイマ１３２とを有する。
【００２４】
検知タイマ１３１は、ダウン検知期間を計測するために使用されるタイマである。プロセッサ１３は、マスタからマスタ通知フレームを受信すると、検知タイマ１３１をリセットし、検知タイマ１３１に、測定値の最大値として、調停パラメータ１１２に含まれるダウン検知期間を示す値をセットし、検知タイマ１３１を起動する。
【００２５】
待機タイマ１３２は、待機期間を計測するために使用されるタイマである。プロセッサ１３はマスタが不在であると判別すると、調停フレームを他の通信装置１００に送信し、待機タイマ１３２をリセットし、待機タイマ１３２に、測定値の最大値として、調停パラメータ１１２に含まれる待機期間を示す値をセットし、待機タイマ１３２を起動する。
【００２６】
図１に示すように、通信装置１００Ａは機能的には、通信装置１００Ａの優先順位を記憶する優先順位記憶部１１０と、ダウン検知期間を記憶するダウン検知期間記憶部１２０と、他の通信装置１００とデータを送受信する送受信部１３０と、マスタの存在の有無を判別するマスタ存在判別部１４０と、他の通信装置１００との間で通信調停を行う通信調停部１５０と、マスタとして機能するため通信装置１００Ａの動作を切り替える動作切替部１６０とを有する。
【００２７】
優先順位記憶部１１０は、通信装置１００Ａがマスタとして選ばれる優先順位と、通信装置１００Ａを識別するための識別情報とを記憶する。識別情報は、通信装置１００Ａを一意に識別する情報である。識別情報は、例えば、通信装置１００ＡのＭＡＣ（Media Access Control）アドレスである。優先順位と識別情報とは、後述の通信調停部１５０が他の通信装置１００に送信する調停フレームにセットされる。優先順位記憶部１１０は、本発明の優先順位記憶手段の一例である。優先順位記憶部１１０の機能は、図２に示すメモリ１１により実現される。
【００２８】
図１に示すダウン検知期間記憶部１２０は、通信装置１００Ａがマスタの不在を検知するためのダウン検知期間を記憶する。前述のように、通信装置１００Ａは、マスタから新たなマスタ通知フレームを受信しないまま、ダウン検知期間が経過すると、マスタが不在であると判別する。
【００２９】
ダウン検知期間は、通信装置１００毎に異なっており、マスタとして選出される優先順位が高いほど、期間が短くなるように設定されている。例えば、通信装置１００Ａ、１００Ｂ、１００Ｃがスレーブとして動作し、優先順位は、通信装置１００Ａが一番高く、通信装置１００Ｃが一番低いものとする。この場合、優先順位が１番高い通信装置１００Ａのダウン検知期間ｔＡが一番短く、優先順位が３番目の通信装置１００Ｃのダウン検知期間ｔＣが一番長くなるように設定される。優先順位が２番目の通信装置１００Ｂのダウン検知期間ｔＢは、ダウン検知期間ｔＡより長く、ダウン検知期間ｔＣより短くなるように設定される。
【００３０】
このように、ダウン検知期間を設定するため、マスタの存在の有無を検知するタイミングは、優先順位に従った順となる。従って、優先順位が最も高い通信装置１００が、マスタからマスタ通知フレームを受信していないことを、最初に検知できる。上記の例では、優先順位が最も高い通信装置１００Ａが最初にマスタの存在の有無を検知できる。ダウン検知期間記憶部１２０は、本発明のダウン検知期間記憶手段の一例である。ダウン検知期間記憶部１２０の機能は、図２に示すメモリ１１により実現される。
【００３１】
図１に示す送受信部１３０は、他の通信装置１００とデータの送受信を行う。例えば、送受信部１３０は、マスタからマスタ通知フレームを受信する。また、送受信部１３０は、マスタが不在である場合に、調停フレームを他の通信装置１００に送信する。送受信部１３０は、マスタが不在であると判別した他の通信装置１００から調停フレームを受信する。送受信部１３０の機能は、図２に示す通信インタフェース１２により実現される。
【００３２】
図１に示すマスタ存在判別部１４０は、マスタからマスタ通知フレームを受信してから、新たなマスタ通知フレームをマスタから受信しないまま、ダウン検知期間が経過すると、マスタが不在であると判別する。
【００３３】
具体的には、マスタ存在判別部１４０は、送受信部１３０がマスタ通知フレームを受信すると、図２に示す検知タイマ１３１をリセットし、検知タイマ１３１に、測定値の最大値として調停パラメータ１１２に含まれるダウン検知期間を示す値をセットし、検知タイマ１３１を起動する。マスタ存在判別部１４０は、検知タイマ１３１がタイムアップすると、マスタが不在であると判別する。前述のように、ダウン検知期間は、マスタがマスタ通知フレームを送信する間隔より長めに設定されており、検知タイマ１３１は、マスタ通知フレームを受信するたびにリセットされる。よって、検知タイマ１３１のタイムアップは、マスタがマスタ通知フレームを送信していないことを意味する。マスタ存在判別部１４０は、マスタが不在であると判別すると、通信調停部１５０にマスタが不在である旨を通知する。一方、マスタ存在判別部１４０は、検知タイマ１３１がタイムアップする前に、送受信部１３０がマスタ通知フレームを受信した場合には、マスタが存在すると判別する。この場合、マスタ存在判別部１４０は、検知タイマ１３１をリセットし、起動する。マスタ存在判別部１４０は、本発明のマスタ存在判別手段の一例である。マスタ存在判別部１４０の機能は図２に示すプロセッサ１３により実現される。
【００３４】
図１に示す通信調停部１５０は、調停フレームの送受信により、他の通信装置１００と通信調停を行う。通信調停部１５０は、マスタ存在判別部１４０からマスタが不在である旨が通知されると、自機が新たなマスタとして動作することが可能であることを他の通信装置１００に通知する。具体的には、通信調停部１５０は、優先順位記憶部１１０に格納されている優先順位と識別情報とをセットした調停フレームを、送受信部１３０を介して他の通信装置１００に送信する。通信調停部１５０は、他の通信装置１００に対して調停フレームを送信すると、図２に示す待機タイマ１３２に、測定値の最大値として、調停パラメータ１１２に含まれる待機期間を示す値をセットし、待機タイマ１３２を起動する。通信調停部１５０は、待機タイマ１３２がタイムアップすると、マスタとしての動作に切り替える旨を図１に示す動作切替部１６０に通知する。
【００３５】
また、通信調停部１５０は、送受信部１３０を介して他の通信装置１００から調停フレームを受信した場合、次のような処理を行う。通信調停部１５０は、受信した調停フレームにセットされた優先順位と、優先順位記憶部１１０に記憶されている自機の優先順位とを比較する。即ち、通信調停部１５０は、受信した調停フレームの送信元の通信装置１００と、自記の優先順位とのいずれが高いかを判別する。通信調停部１５０は、自機の優先順位が、受信した調停フレームにセットされた優先順位より高いと判別した場合、優先順位と識別情報とをセットした調停フレームを送受信部１３０を介して他の全ての通信装置１００に送信する。
【００３６】
一方、通信調停部１５０は、自機の優先順位が、受信した調停フレームにセットされた優先順位より低い場合、スレーブとしての動作を継続する。この場合、通信調停部１５０は、他の通信装置１００から調停フレームを受信する前に、既に調停フレームを他の通信装置１００に送信していた場合には、待機タイマ１３２を停止する。通信装置１００Ａがマスタに切り替わる必要がないからである。通信調停部１５０は本発明の通信調停手段の一例である。通信調停部１５０の機能は図２に示すプロセッサ１３により実現される。
【００３７】
通信調停部１５０が調停フレームを送信してから、待機期間が経過するまで待機するのは次のような理由による。前述のようにダウン検知期間は、マスタとして選出される優先順位が高いほど、期間が短くなるように設定されている。よって、マスタの不在を最初に検出するのは、優先順位が一番高い通信装置１００であり、本来は、通信調停部１５０は調停フレームを送信した後に待機する必要はない。しかし、何らかの事情で、優先順位が一番高い通信装置１００が送信した調停フレームが、他の通信装置１００に到達するより前に、優先順位が２番以下の通信装置１００が調停フレームを送信してしまう状況が発生することもありえる。このため、通信調停部１５０は、調停フレームを送信した後に待機するものとする。
【００３８】
例えば、通信装置１００Ａの優先順位が２番であると仮定する。何らかの事情で、優先順位が１番の通信装置１００が送信した調停フレームが、通信装置１００Ａに到達するのが遅れたとする。通信装置１００Ａは、通信装置１００Ａに対して設定されたダウン検知期間が経過すると、マスタが不在であると判別し、他の通信装置１００に調停フレームを送信し、待機期間が経過するまで待機する。待機期間中に、通信装置１００Ａが優先順位が１番の通信装置１００から調停フレームを受信した場合、通信装置１００Ａは、マスタに切り替わらない。このように、通信調停部１５０が調停フレームを送信した後に設定された待機期間を待機することで、マスタとして動作すべきでない通信装置１００がマスタに切り替わることを事前に防ぐことができる。
【００３９】
図１に示す動作切替部１６０は、通信調停部１５０から、マスタとしての動作に切り替える旨の通知を受けると、通信管理パラメータ１１３を使用して、通信装置１００Ａがマスタとして機能するよう、通信装置１００Ａの動作を切り替える。例えば、通信装置１００Ａは、マスタとしての動作を開始してから、スレーブとして動作する他の通信装置１００とのコネクションを再接続し、マスタ通知フレームを決められたタイミングで他の通信装置１００に送信する。動作切替部１６０の機能は図２に示すプロセッサ１３により実現される。動作切替部１６０は本発明の動作切替手段の一例である。
【００４０】
次に、通信装置１００の調停に係る一連の処理の流れを説明する。図１に示す通信装置１００Ｄがマスタとして動作しており、通信装置１００Ａ〜１００Ｃがスレーブとして動作しているものと仮定する。以下、通信装置１００Ａを例に説明するが、スレーブとして動作している通信装置１００Ｂ、１００Ｃも同様の構成を備える。
【００４１】
図２に示す通信装置１００Ａのプロセッサ１３が、メモリ１１に格納されている調停プログラム１１１を実行して、以下の処理を行う。なお、プロセッサ１３は、マスタとして動作する通信装置１００Ｄからマスタ通知フレームを受信すると、検知タイマ１３１をリセットし、検知タイマ１３１を再び起動しているものとする。
【００４２】
まず、図３を参照して、マスタが不在である場合の調停に係る処理を説明する。図３に示すように、プロセッサ１３は、検知タイマ１３１がタイムアップしたか否かを判別する（ステップＳ１１）。プロセッサ１３は、検知タイマ１３１がタイムアップしたと判別すると（ステップＳ１１；Ｙｅｓ）、調停フレームを他の通信装置１００に送信する（ステップＳ１２）。具体的には、プロセッサ１３は、メモリ１１の調停パラメータ１１２に含まれる優先順位と自機の識別情報とをセットした調停フレームを生成し、生成した調停フレームを、通信インタフェース１２に出力する。従って、通信インタフェース１２は、調停フレームをブロードキャストする。従って、調停フレームは、ネットワーク５を介して、他の通信装置１００Ｂ、１００Ｃに送信される。プロセッサ１３は、待機タイマ１３２を起動し（ステップＳ１３）、ステップＳ１４の処理を実行する。
【００４３】
ステップＳ１４において、プロセッサ１３は、待機タイマ１３２がタイムアップすると（ステップＳ１４；Ｙｅｓ）、図２に示す通信管理パラメータ１１３を使用して、マスタとしての動作を開始する（ステップＳ１５）。
【００４４】
一方、ステップＳ１４において、プロセッサ１３は、待機タイマ１３２がタイムアップする前に（ステップＳ１４；Ｎｏ）、通信インタフェース１２を介して他の通信装置１００から調停フレームを受信した場合（ステップＳ１６；Ｙｅｓ）、図４に示す調停フレーム受信時の調停処理を実行する。
【００４５】
プロセッサ１３は、以下のような場合に図４の処理を実行する。通信装置１００Ａのプロセッサ１３は、図３に示すステップＳ１２で調停フレームを送信した後、図３に示すステップＳ１６で他の通信装置１００から調停フレームを受信した場合に図４に示す処理を開始する。これは、何らかの事情で、優先順位が２番目以下の通信装置１００が、優先順位が一番の通信装置１００より先に調停フレームを送信する場合もありえるからである。あるいは、プロセッサ１３は、検知タイマ１３１がタイムアップする前に他の通信装置１００から調停フレームを受信した場合に、図４に示す処理を開始する。
【００４６】
プロセッサ１３は、調停パラメータ１１２に含まれている自機の優先順位が、受信した調停フレームにセットされた優先順位に比べて高いか否かを判別する（ステップＳ２１）。プロセッサ１３は、自機の優先順位の方が高いと判別すると（ステップＳ２１；Ｙｅｓ）、待機タイマ１３２が起動しているか否かを判別する（ステップＳ２２）。
【００４７】
待機タイマ１３２が起動している場合（ステップＳ２２；Ｙｅｓ）、プロセッサ１３はステップＳ２５の処理を実行する。待機タイマ１３２が起動されていることは、プロセッサ１３が他の通信装置１００Ｂ、１００Ｃに調停フレームを送信済みであることを示す。
【００４８】
一方、待機タイマ１３２が起動していない場合（ステップＳ２２；Ｎｏ）、プロセッサ１３は、調停フレームを他の通信装置１００Ｂ、１００Ｃに送信する（ステップＳ２３）。具体的には、プロセッサ１３は、メモリ１１の調停パラメータ１１２から、優先順位と自機の識別情報とを読み出し、優先順位と識別情報とをセットした調停フレームを生成し、生成した調停フレームを、通信インタフェース１２に出力する。従って、通信インタフェース１２は、調停フレームをブロードキャストする。その後、プロセッサ１３は、待機タイマ１３２を起動する（ステップＳ２４）。その後、プロセッサ１３はステップＳ２５の処理を実行する。
【００４９】
ステップＳ２５で、プロセッサ１３は、待機タイマ１３２がタイムアップすると（ステップＳ２５；Ｙｅｓ）、図２に示す通信管理パラメータ１１３を使用して、マスタとしての動作を開始する（ステップＳ２６）。その後、プロセッサ１３は、調停フレーム受信時の調停処理を終了する。
【００５０】
ステップＳ２５において、プロセッサ１３は、待機タイマ１３２がタイムアップする前に（ステップＳ２５；Ｎｏ）、通信インタフェース１２を介して他の通信装置１００から調停フレームを受信したか否かを判別する（ステップＳ２７）。プロセッサ１３は、他の通信装置１００から調停フレームを受信したと判別すると（ステップＳ２７；Ｙｅｓ）、再びステップＳ２１の処理を実行する。
【００５１】
また、ステップＳ２１で、プロセッサ１３は、調停パラメータ１１２に含まれている自機の優先順位が、受信した調停フレームにセットされた優先順位に比べて低いと判別すると（ステップＳ２１；Ｎｏ）、待機タイマ１３２が起動しているか否かを判別する（ステップＳ２８）。
【００５２】
待機タイマ１３２が起動している場合（ステップＳ２８；Ｙｅｓ）、プロセッサ１３は待機タイマ１３２を停止する（ステップＳ２９）。自機の優先順位より高い優先順位を有する通信装置１００から調停フレームを受信したため、通信装置１００Ａはマスタとして動作する必要がないからである。その後、プロセッサ１３は調停フレーム受信時の調停処理を終了する。また、待機タイマ１３２が起動していない場合（ステップＳ２８；Ｎｏ）、プロセッサ１３は調停フレーム受信時の調停処理を終了する。
【００５３】
以上説明したように、実施の形態に係る構成では、スレーブとして動作する通信装置１００について、それぞれのダウン検知期間が、優先順位が高いほど期間が短くなるように設定されている。通信装置は、優先順位に応じて設定されたダウン検知期間が経過したときにマスタの存在の有無を判別する。例えば、図５に示すように、通信装置１００Ａ、１００Ｂ、１００Ｃがスレーブとして動作し、通信装置１００Ｄがマスタとして動作すると仮定する。優先順位は、通信装置１００Ａが一番高く、通信装置１００Ａ、１００Ｂ、１００Ｃの順に低くなるように設定されているものとする。ダウン検知期間の長さは、通信装置１００Ａのダウン検知期間ｔＡ、通信装置１００Ｂのダウン検知期間ｔＢ、通信装置１００Ｃのダウン検知期間ｔＣ、の順に長くなるように設定されている。
【００５４】
この場合、通信装置１００Ａのダウン検知期間ｔＡが一番短いので、通信装置１００Ａが最初にマスタの不在を検知することになる。よって、優先順位が高い通信装置１００Ａが、最も早く調停フレームを他の通信装置１００に送信できる。通信装置１００Ｂ、１００Ｃは、通信装置１００Ａから受信したマスタ通知フレームの優先順位と、自機の優先順位とを比較する。通信装置１００Ｂ、１００Ｃは、通信装置１００Ａから受信した調停フレームにセットされた優先順位より自機の優先順位の方が低いため、何もしない。通信装置１００Ａは、調停フレームを送信してから待機期間ｗＡが経過したときに、マスタとしての動作を開始する。
【００５５】
図５の例では、優先順位が高い通信装置１００Ａのみが調停フレームを送信しており、他の通信装置１００Ｂ、１００Ｃが調停フレームを送信することがない。よって、通信装置１００間において、調停フレームのやり取りをする時間が短縮され、新たなマスタの選出までにかかる時間を短くできる。
【００５６】
また、図６に示すように、優先順位が一番高い通信装置１００Ａが送信した調停フレームが何らかの理由で遅れて通信装置１００Ｂ及び１００Ｃに到達することもありえる。図示する例では、通信装置１００Ａが送信した調停フレームが通信装置１００Ｂ及び１００Ｃに到達する前に、優先順位が２番目の通信装置１００Ｂが送信した調停フレームが通信装置１００Ａ及び１００Ｃに到達している。
【００５７】
この場合、通信装置１００Ｂは、調停フレームを送信してから待機タイマ１３２を起動して、待機期間ｗＢが経過するまで待機する。通信装置１００Ｂは、待機期間ｗＢが経過する前に、通信装置１００Ａから調停フレームを受信する。通信装置１００Ｂは、通信装置１００Ａから受信した調停フレームに設置された優先順位と自機の優先順位を比較し、自機の優先順位の方が低いため、待機タイマ１３２を停止する。この場合、通信装置１００Ｂは、マスタに切り替わらない。
【００５８】
通信装置１００Ｃは、通信装置１００Ｂから受信した調停フレームにセットされた優先順位と、自機の優先順位を比較する。通信装置１００Ｃは、通信装置１００Ｂの優先順位より自機の優先順位の方が低いため、何もしない。さらに、通信装置１００Ｃは、通信装置１００Ａから受信した調停フレームにセットされた優先順位と、自機の優先順位を比較する。通信装置１００Ｃは、通信装置１００Ａの優先順位より自機の優先順位の方が低いため、何もしない。
【００５９】
通信装置１００Ａは、通信装置１００Ｂから調停フレームを受信するものの、受信した調停フレームの優先順位より自機の優先順位が高いため、他の通信装置１００Ｂ、１００Ｃに調停フレームを送信する。通信装置１００Ａは、待機期間ｗＡが経過するとマスタとの動作を開始する。図６に示す例では、図５に示す例より、若干時間がかかってしまうものの、全ての通信装置が調停フレームを送信することがなく、新たなマスタの選出までにかかる時間を短縮できる。
【００６０】
実施の形態に係る構成においては、スレーブそれぞれの優先順位に応じて、ダウン検知期間、即ちスレーブがマスタの存在の有無を判別する時間間隔を異ならせることで、優先順位の低いスレーブの大多数が調停フレームを送信することがない。よって、スレーブの数が増えた場合に、マスタの選出にかかる時間を短縮する効果がより大きくなる。通信装置１００Ａの優先順位は本発明の第１の順位の一例であり、通信装置１００Ｂの優先順位は本発明の第２の順位の一例である。
【００６１】
（変形例１）
実施の形態においては、通信システム１を管理するユーザが設定ツールを使用して、優先順位とダウン検知期間とを図２に示す調停パラメータ１１２としてメモリ１１に登録していた。しかしながら、優先順位は自動的に決定されてよい。以下、実施の形態と異なる構成を中心に説明する。
【００６２】
図１に示す通信装置１００Ｄがマスタとして動作し、通信装置１００Ａ〜１００Ｃがスレーブとして動作しているものとする。例えば、マスタである通信装置１００Ｄは、コネクションを確立した直後に、スレーブである通信装置１００Ａ〜１００Ｃに対して、それぞれの識別情報を要求する。通信装置１００Ａ〜１００Ｃは、それぞれメモリ１１に格納されている識別情報をマスタである通信装置１００Ｄに送信する。マスタは、ＭＡＣアドレスの値が大きいほど優先順位が高いとして、スレーブの通信装置１００Ａ〜１００Ｃそれぞれの優先順位とダウン検知期間とを決定し、決定したい優先順位とダウン検知期間とを通信装置１００Ａ〜１００Ｃに送信する。
【００６３】
さらに、マスタは、優先順位に応じてダウン検知期間を決定する。具体的には、マスタは、優先順位に決められた基準期間を乗じた期間をダウン検知期間として決定する。例えば、基準期間を１００ミリ秒と仮定する。さらに、優先順位が１位の通信装置については、１×１００ミリ秒＝１００ミリ秒をダウン検知期間として決定し、優先順位が２位の通信装置については２×１００ミリ秒＝２００ミリ秒をダウン検知期間として決定するものとする。マスタは、通信装置１００Ｂ〜１００Ｄそれぞれに、決定した優先順位とダウン検知期間とを送信する。従って、スレーブとして動作する通信装置１００Ｂ〜１００Ｄは、マスタから受信した優先順位とダウン検知期間とを、図２に示す調停パラメータとしてメモリ１１に格納するものとする。
【００６４】
（変形例２）
上述の例ではスレーブとして動作している通信装置１００Ａ〜１００Ｃが全てマスタとして動作できるように、図１、図２に示すような構成を備えることを説明した。しかし、スレーブとして動作する通信装置１００のうち、予め選択された一部の通信装置のみが、マスタのダウンを検知し、マスタとして動作してもよい。
【００６５】
図７に示す変形例２に係る通信システム２においては、通信装置１００Ａ及び通信装置１００Ｂは、マスタとして動作できるように設定されている。言い換えると、通信装置１００Ａ及び通信装置１００Ｂは、マスタ候補として設定されている。通信装置１００Ｃは、マスタ候補として設定されていないものとする。通信装置１００Ｄはマスタとして動作するよう設定されている。通信装置１００Ａ及び１００Ｂは、図１、図２に示すような実施の形態で説明した構成を備える。通信装置１００Ａ及び１００Ｂは、マスタのダウンを検知し、通信調停に係る処理を実行する。
【００６６】
一方、通信装置１００Ｃは、機能的には、調停フレームを受信する送受信部１３０だけを備えており、マスタのダウンの検知も、調停フレームにセットされた優先順位の比較も行わない。よって、図８に示すように、ハードウェア構成として、通信装置１００Ｃは、メモリ１１に、通信装置１００間で通信調停を行うための調停プログラム１１１と、通信調停に使用される調停パラメータ１１２と、ネットワーク５を介した通信を管理するための通信管理パラメータ１１３とを有する必要がない。また、通信装置１００Ｃのプロセッサ１３は、検知タイマ１３１と待機タイマ１３２とを有する必要がない。このように、マスタとして選出されないスレーブについては、ハードウェア構成を簡素なものとすることが可能である。例えば、処理能力が低い通信装置１００より、処理能力が高い通信装置１００がマスタとして動作することが好ましいので、マスタの候補から、処理能力が低い通信装置１００を外すようにしてもよい。
【００６７】
以上、実施の形態、変形例１、２に係る構成を説明したが、本発明は上記の例に限定されたに。例えば、マスタが、スレーブとして動作する通信装置１００に対して要求する識別情報はＭＡＣアドレスに限らず、ＩＰ（Internet Protocol）アドレス、あるいは、ネットワーク５における局番であってもよい。また、マスタは、識別情報の値が小さいものから優先順位が高いと決定してもよい。
【００６８】
実施の形態においては、通信装置１００が調停フレームを送信した後に待機する待機期間が、優先順位が高いほど、期間が短くなるように設定されている例を説明したが、これに限られない。例えば、全ての通信装置１００の待機期間は同じ期間であってもよい。
【００６９】
上記のプログラムを記録する記録媒体としては、磁気ディスク、光ディスク、光磁気ディスク、フラッシュメモリ、半導体メモリ、磁気テープを含むコンピュータ読取可能な記録媒体を使用することができる。
【００７０】
本発明は、広義の精神と範囲を逸脱することなく、様々な実施形態及び変形が可能とされるものである。また、上述した実施形態は、本発明を説明するためのものであり、本発明の範囲を限定するものではない。つまり、本発明の範囲は、実施形態ではなく、請求の範囲によって示される。そして、請求の範囲内及びそれと同等の発明の意義の範囲内で施される様々な変形が、本発明の範囲内とみなされる。
【符号の説明】
【００７１】
ｔＡ，ｔＢ，ｔＣ  ダウン検知期間、ｗＡ  待機期間、１  通信システム、５  ネットワーク、１１  メモリ、１２  通信インタフェース、１３  プロセッサ、１９  バス、１００，１００Ａ，１００Ｂ，１００Ｃ，１００Ｄ  通信装置、１１０  優先順位記憶部、１１１  調停プログラム、１１２  調停パラメータ、１１３  通信管理パラメータ、１２０  ダウン検知期間記憶部、１３０  送受信部、１３１  検知タイマ、１３２  待機タイマ、１４０  マスタ存在判別部、１５０  通信調停部、１６０  動作切替部
【要約】
マスタスレーブ方式で通信を行う通信システム（１）は、マスタ又はスレーブとして動作する通信装置（１００Ａ〜１００Ｄ）を備える。スレーブとして動作する通信装置（１００Ａ〜１００Ｃ）のうち少なくとも２つの通信装置がそれぞれ有するダウン検知期間記憶部（１２０）は、スレーブのうちで自機が新たなマスタとして選出される優先順位が高いほど、期間が短くなるように設定されたダウン検知期間を記憶する。マスタ存在判別部（１４０）は、マスタから信号を受信してからダウン検知期間が経過するまでに、マスタとして動作する通信装置から新たな信号を受信したか否かに応じて、マスタが存在するか否かを判別する。動作切替部（１６０）は、マスタ存在判別部（１４０）がマスタが不在であると判別すると、マスタとして動作するように自機の動作を切り替える。【図１】
0006611995.tif 000002
【図２】
0006611995.tif 000003
【図３】
0006611995.tif 000004
【図４】
0006611995.tif 000005
【図５】
0006611995.tif 000006
【図６】
0006611995.tif 000007
【図７】
0006611995.tif 000008
【図８】
0006611995.tif 000009