Processing

Please wait...

Settings

Settings

Goto Application

1. WO2020089964 - COMMUNICATION SYSTEM, COMMUNICATION DEVICE, METHOD, AND PROGRAM

Document

明 細 書

発明の名称 通信システム、通信装置、方法、及びプログラム

技術分野

0001  

背景技術

0002   0003   0004  

先行技術文献

特許文献

0005  

発明の概要

発明が解決しようとする課題

0006   0007  

課題を解決するための手段

0008  

発明の効果

0009  

図面の簡単な説明

0010  

発明を実施するための形態

0011   0012   0013   0014   0015   0016   0017   0018   0019   0020   0021   0022   0023   0024   0025   0026   0027   0028   0029   0030   0031   0032   0033   0034   0035   0036   0037   0038   0039   0040   0041   0042   0043   0044   0045   0046   0047   0048   0049   0050   0051   0052   0053   0054   0055   0056   0057   0058   0059   0060   0061   0062   0063   0064   0065   0066   0067   0068   0069   0070  

符号の説明

0071  

請求の範囲

1   2   3   4   5   6   7  

図面

1   2   3   4   5   6   7   8  

明 細 書

発明の名称 : 通信システム、通信装置、方法、及びプログラム

技術分野

[0001]
 本発明は、通信システム、通信装置、方法、及びプログラムに関する。

背景技術

[0002]
 マスタスレーブ方式で通信を行う通信システムにおいて、マスタの通信装置に不具合が生じてしまい、マスタとして動作することができない状況が発生することがある。このような状況が発生した場合、スレーブとして動作していた他の通信装置のうちから、新たなマスタとして選ばれた通信装置が、マスタとして動作することがある。
[0003]
 特許文献1には、スレーブとして動作する通信装置は、マスタとして動作する通信装置から、決められた周期で発行されるべきマスタ通知フレームが、一定期間発行されなかった場合に、マスタが不在であると判別することが記載されている。さらに、特許文献1には、スレーブとして動作する通信装置は、マスタが不在であると判別した場合にマスタに切り替わり、他の通信装置にマスタ通知フレームをブロードキャストすることが記載されている。
[0004]
 上記構成により、複数のスレーブの通信装置がマスタに切り替わる状況が発生するため、特許文献1には、以下のように競合制御を行うことが記載されている。各通信装置にはマスタに切り替わる優先順位が設定されている。通信装置はマスタに切り替わった後に、他の通信装置からマスタ通知フレームを受信すると、受信したマスタ通知フレームにセットされた優先順位と自身の優先順位を比較する。自身の優先順位の方が受信したマスタ通知フレームにセットされた優先順位より低い場合には、通信装置は再びスレーブに切り替わる。また、自身の優先順位の方が受信したマスタ通知フレームにセットされた優先順位より高い場合には、通信装置は、そのマスタ通知フレームの送信元の通信装置に応答フレームを送信し、マスタとして動作を継続する。複数の通信装置間でマスタ通知フレームのやり取りと優先順位の比較とが行われ、最終的には1つのマスタのみが動作する状態となる。

先行技術文献

特許文献

[0005]
特許文献1 : 特開平9-149061号公報

発明の概要

発明が解決しようとする課題

[0006]
 特許文献1に記載された構成では、最終的に1つのマスタのみが動作する状態まで通信装置間でマスタ通知フレームのやり取りと優先順位の比較とを行う必要がある。このため、スレーブが多くなった場合には、最終的なマスタの選出までに時間がかかる。
[0007]
 本発明は、上記実情に鑑みてなされたものであり、マスタスレーブ方式で通信を行う通信システムにおいて、マスタが不在の場合に、新たなマスタの選出にかかる時間を短縮することを目的とする。

課題を解決するための手段

[0008]
 上記目的を達成するため、本発明に係るマスタスレーブ方式で通信を行う通信システムは、マスタ又はスレーブとして動作する通信装置を備える。スレーブとして動作する通信装置のうち少なくとも2つの通信装置はそれぞれ、検知期間記憶手段と、マスタ存在判別手段と、動作切替手段とを備える。検知期間記憶手段は、スレーブのうちで自機が新たなマスタとして選出される優先順位が高いほど、期間が短くなるように設定されたダウン検知期間を記憶する。マスタ存在判別手段は、マスタから信号を受信してからダウン検知期間が経過するまでに、マスタとして動作する通信装置から新たな信号を受信したか否かに応じて、マスタが存在するか否かを判別する。動作切替手段は、マスタ存在判別手段がマスタが不在であると判別すると、マスタとして動作するように自機の動作を切り替える。

発明の効果

[0009]
 本発明の通信システムにおいては、スレーブとして動作している通信装置は、マスタから信号を受信してから、ダウン検知期間が経過するまでに、マスタとして動作する通信装置から新たな信号を受信したか否かに応じて、マスタが存在するか否かを判別する。ダウン検知期間は、新たなマスタとして選出される優先順位が高いほど、期間が短くなるように設定されている。本発明の通信システムは、このような構成を備えることが、スレーブとして動作する通信機器のうち、マスタとして選出される優先順位が高い通信装置が、他の通信装置より先にマスタの不在を検知し、マスタに切り替わることができる。これにより、優先順位の低い通信装置が自機の優先順位を送信することがなくなり、新たなマスタの選出にかかる時間を短縮できる。

図面の簡単な説明

[0010]
[図1] 実施の形態に係る通信システムの構成を示すブロック図
[図2] 実施の形態に係る通信装置のハードウェア構成を示す図
[図3] 実施の形態に係るマスタ不在時の調停処理のフローチャート
[図4] 実施の形態に係る調停フレーム受信時の調停処理のフローチャート
[図5] 実施の形態に係る調停処理における調停フレームの送受信のタイミングを示す図
[図6] 実施の形態に係る調停処理における調停フレームの送受信の他のタイミングを示す図
[図7] 変形例2に係る通信システムの構成を示すブロック図
[図8] 変形例2に係るマスタ候補対象外の通信装置のハードウェア構成を示す図

発明を実施するための形態

[0011]
(実施の形態)
 以下、本発明の実施の形態に係る通信システムについて、図面を参照しつつ詳細に説明する。
[0012]
 図1に示すように通信システム1は、ネットワーク5を介して接続された通信装置100A~100Dを含む。以下、通信装置100A~100Dをまとめて通信装置100と称することがある。通信装置100A~100Dは、例えば、生産システム、制御システム等において稼動するプログラマブルロジックコントローラである。通信装置100A~100Dは、それぞれが管理するセンサから収集したデータを相互に送受信する。通信システム1において、複数の通信装置100はマスタスレーブ方式で相互に通信する。ネットワーク5は、例えば、100Base-Tの規格に則ったネットワークである。
[0013]
 通信システム1では、通信装置100A~100Dのうち1つがマスタとして動作し、その他がスレーブとして動作する。マスタとして動作する通信装置100は、データの送受信のタイミングを管理する。スレーブとして動作する通信装置100は、マスタの管理下でデータの送受信を行う。このようにして、通信装置100A~100Dは、同期通信を行う。
[0014]
 マスタとして動作する通信装置100は、マスタが存在することを通知するため、スレーブとして動作する通信装置100に対してマスタ通知フレームを一定期間毎にブロードキャストする。スレーブとして動作する通信装置100は、マスタ通知フレームを受信したか否かにより、マスタが存在するか否かを判別する。マスタ通知フレームには、例えば、マスタとして動作する通信装置100を識別する情報が含まれている。以下の説明において、マスタとして動作する通信装置100を、単にマスタという場合がある。スレーブとして動作する通信装置100を、単にスレーブという場合がある。
[0015]
 通信システム1では、マスタが故障又は他の理由で、マスタとして動作することができなくなった場合には、スレーブ同士で調整を行って、新たなマスタを選出する。以下、新たなマスタを選出するため、スレーブ同士が調整を行うことを、通信調停あるいは単に調停という。スレーブ同士は、通信調停のため調停フレームと呼ばれるフレームを送受信する。実施の形態においては、スレーブそれぞれについてマスタとして選出される優先順位が予め設定されている。マスタが不在の場合、優先順位が最も高いスレーブが新たなマスタとして選出される。調停フレームには、送信元のスレーブの優先順位がセットされる。調停フレームを受信したスレーブは、調停フレームにセットされた優先順位と自身の優先順位とを比較して、自機がマスタに切り替わるべきか否かを判別する。
[0016]
 図2に示すように通信装置100Aは、ハードウェア構成として、各種のプログラム及びデータを記憶するメモリ11と、他の通信装置100と通信を行う通信インタフェース12と、通信装置100全体を制御するプロセッサ13とを有する。メモリ11と、通信インタフェース12とはバス19を介してプロセッサ13に接続されており、プロセッサ13と通信する。なお、通信装置100Aを例に説明するが、通信装置100B~100Dも同様の構成を備える。
[0017]
 メモリ11は、揮発性メモリと不揮発性メモリとを含む。メモリ11は、通信装置100間で通信調停を行うための調停プログラム111と、通信調停に使用される調停パラメータ112と、マスタとして動作する場合にスレーブを管理するため使用する通信管理パラメータ113とを格納する。通信システム1を管理するユーザが不図示の設定ツールを使用して、調停プログラム111と調停パラメータ112と通信管理パラメータ113とを予めメモリ11に格納しているものとする。また、メモリ11は、プロセッサ13のワークメモリとして用いられる。調停プログラム111は本発明のプログラムの一例である。
[0018]
 調停プログラム111は、プロセッサ13により実行される。プロセッサ13は調停プログラム111を実行することにより、マスタが不在であるか否かを判別し、マスタが不在の場合に他の通信装置100と通信調停を行う機能を実現する。
[0019]
 調停パラメータ112は、プロセッサ13が調停プログラム111を実行するときに使用するパラメータである。調停パラメータ112は、通信装置100Aがマスタとして選出される優先順位と、通信装置100Aがマスタの不在を検知するためのダウン検知期間と、通信調停のため通信装置100Aが待機するべき期間を示す待機期間とを含む。優先順位は、マスタが不在である場合に、その通信装置100Aが新たなマスタとして選出される順位を示す。
[0020]
 ダウン検知期間は、通信装置100Aが、マスタのダウンを検知するための期間である。通信装置100Aは、マスタ通知フレームを決められた期間マスタから受信しなかった場合に、マスタが不在であると判別する。この決められた期間がダウン検知期間である。ダウン検知期間は、マスタがマスタ通知フレームを送信する間隔より長めに設定されている。待機期間は、マスタが不在時に、通信装置100Aがマスタに切り替わる前に待機するべき期間である。通信装置100Aは、マスタが不在であると判別した場合に、調停フレームを他の通信装置100に送信してから待機期間が経過した後、マスタに切り替わる。待機期間は、通信装置100Aの優先順位が高いほど、期間が短くなるように設定されている。
[0021]
 通信管理パラメータ113は、通信装置100Aがマスタとして動作する場合に、ネットワーク5全体を管理するために必要なパラメータである。通信装置100Aは、スレーブからマスタに切り替わった場合に、通信管理パラメータ113を使用してネットワーク5全体を管理する。
[0022]
 通信インタフェース12は、他の装置と通信するためのネットワークインタフェース回路を含み、プロセッサ13の制御の下、他の通信装置100と通信する。通信インタフェース12は、プロセッサ13から供給されたデータを電気信号に変換し、変換した信号をネットワーク5を介して他の通信装置100に送信する。また、通信インタフェース12は、ネットワーク5を介して他の通信装置100から受信した電気信号をデータに復元してプロセッサ13に出力する。
[0023]
 プロセッサ13は、MPU(Micro Processing Unit)を含み、メモリ11に記憶される各種プログラムを実行して、通信装置100Aの各種機能を実現する。プロセッサ13は、さらに、検知タイマ131と待機タイマ132とを有する。
[0024]
 検知タイマ131は、ダウン検知期間を計測するために使用されるタイマである。プロセッサ13は、マスタからマスタ通知フレームを受信すると、検知タイマ131をリセットし、検知タイマ131に、測定値の最大値として、調停パラメータ112に含まれるダウン検知期間を示す値をセットし、検知タイマ131を起動する。
[0025]
 待機タイマ132は、待機期間を計測するために使用されるタイマである。プロセッサ13はマスタが不在であると判別すると、調停フレームを他の通信装置100に送信し、待機タイマ132をリセットし、待機タイマ132に、測定値の最大値として、調停パラメータ112に含まれる待機期間を示す値をセットし、待機タイマ132を起動する。
[0026]
 図1に示すように、通信装置100Aは機能的には、通信装置100Aの優先順位を記憶する優先順位記憶部110と、ダウン検知期間を記憶するダウン検知期間記憶部120と、他の通信装置100とデータを送受信する送受信部130と、マスタの存在の有無を判別するマスタ存在判別部140と、他の通信装置100との間で通信調停を行う通信調停部150と、マスタとして機能するため通信装置100Aの動作を切り替える動作切替部160とを有する。
[0027]
 優先順位記憶部110は、通信装置100Aがマスタとして選ばれる優先順位と、通信装置100Aを識別するための識別情報とを記憶する。識別情報は、通信装置100Aを一意に識別する情報である。識別情報は、例えば、通信装置100AのMAC(Media Access Control)アドレスである。優先順位と識別情報とは、後述の通信調停部150が他の通信装置100に送信する調停フレームにセットされる。優先順位記憶部110は、本発明の優先順位記憶手段の一例である。優先順位記憶部110の機能は、図2に示すメモリ11により実現される。
[0028]
 図1に示すダウン検知期間記憶部120は、通信装置100Aがマスタの不在を検知するためのダウン検知期間を記憶する。前述のように、通信装置100Aは、マスタから新たなマスタ通知フレームを受信しないまま、ダウン検知期間が経過すると、マスタが不在であると判別する。
[0029]
 ダウン検知期間は、通信装置100毎に異なっており、マスタとして選出される優先順位が高いほど、期間が短くなるように設定されている。例えば、通信装置100A、100B、100Cがスレーブとして動作し、優先順位は、通信装置100Aが一番高く、通信装置100Cが一番低いものとする。この場合、優先順位が1番高い通信装置100Aのダウン検知期間tAが一番短く、優先順位が3番目の通信装置100Cのダウン検知期間tCが一番長くなるように設定される。優先順位が2番目の通信装置100Bのダウン検知期間tBは、ダウン検知期間tAより長く、ダウン検知期間tCより短くなるように設定される。
[0030]
 このように、ダウン検知期間を設定するため、マスタの存在の有無を検知するタイミングは、優先順位に従った順となる。従って、優先順位が最も高い通信装置100が、マスタからマスタ通知フレームを受信していないことを、最初に検知できる。上記の例では、優先順位が最も高い通信装置100Aが最初にマスタの存在の有無を検知できる。ダウン検知期間記憶部120は、本発明のダウン検知期間記憶手段の一例である。ダウン検知期間記憶部120の機能は、図2に示すメモリ11により実現される。
[0031]
 図1に示す送受信部130は、他の通信装置100とデータの送受信を行う。例えば、送受信部130は、マスタからマスタ通知フレームを受信する。また、送受信部130は、マスタが不在である場合に、調停フレームを他の通信装置100に送信する。送受信部130は、マスタが不在であると判別した他の通信装置100から調停フレームを受信する。送受信部130の機能は、図2に示す通信インタフェース12により実現される。
[0032]
 図1に示すマスタ存在判別部140は、マスタからマスタ通知フレームを受信してから、新たなマスタ通知フレームをマスタから受信しないまま、ダウン検知期間が経過すると、マスタが不在であると判別する。
[0033]
 具体的には、マスタ存在判別部140は、送受信部130がマスタ通知フレームを受信すると、図2に示す検知タイマ131をリセットし、検知タイマ131に、測定値の最大値として調停パラメータ112に含まれるダウン検知期間を示す値をセットし、検知タイマ131を起動する。マスタ存在判別部140は、検知タイマ131がタイムアップすると、マスタが不在であると判別する。前述のように、ダウン検知期間は、マスタがマスタ通知フレームを送信する間隔より長めに設定されており、検知タイマ131は、マスタ通知フレームを受信するたびにリセットされる。よって、検知タイマ131のタイムアップは、マスタがマスタ通知フレームを送信していないことを意味する。マスタ存在判別部140は、マスタが不在であると判別すると、通信調停部150にマスタが不在である旨を通知する。一方、マスタ存在判別部140は、検知タイマ131がタイムアップする前に、送受信部130がマスタ通知フレームを受信した場合には、マスタが存在すると判別する。この場合、マスタ存在判別部140は、検知タイマ131をリセットし、起動する。マスタ存在判別部140は、本発明のマスタ存在判別手段の一例である。マスタ存在判別部140の機能は図2に示すプロセッサ13により実現される。
[0034]
 図1に示す通信調停部150は、調停フレームの送受信により、他の通信装置100と通信調停を行う。通信調停部150は、マスタ存在判別部140からマスタが不在である旨が通知されると、自機が新たなマスタとして動作することが可能であることを他の通信装置100に通知する。具体的には、通信調停部150は、優先順位記憶部110に格納されている優先順位と識別情報とをセットした調停フレームを、送受信部130を介して他の通信装置100に送信する。通信調停部150は、他の通信装置100に対して調停フレームを送信すると、図2に示す待機タイマ132に、測定値の最大値として、調停パラメータ112に含まれる待機期間を示す値をセットし、待機タイマ132を起動する。通信調停部150は、待機タイマ132がタイムアップすると、マスタとしての動作に切り替える旨を図1に示す動作切替部160に通知する。
[0035]
 また、通信調停部150は、送受信部130を介して他の通信装置100から調停フレームを受信した場合、次のような処理を行う。通信調停部150は、受信した調停フレームにセットされた優先順位と、優先順位記憶部110に記憶されている自機の優先順位とを比較する。即ち、通信調停部150は、受信した調停フレームの送信元の通信装置100と、自記の優先順位とのいずれが高いかを判別する。通信調停部150は、自機の優先順位が、受信した調停フレームにセットされた優先順位より高いと判別した場合、優先順位と識別情報とをセットした調停フレームを送受信部130を介して他の全ての通信装置100に送信する。
[0036]
 一方、通信調停部150は、自機の優先順位が、受信した調停フレームにセットされた優先順位より低い場合、スレーブとしての動作を継続する。この場合、通信調停部150は、他の通信装置100から調停フレームを受信する前に、既に調停フレームを他の通信装置100に送信していた場合には、待機タイマ132を停止する。通信装置100Aがマスタに切り替わる必要がないからである。通信調停部150は本発明の通信調停手段の一例である。通信調停部150の機能は図2に示すプロセッサ13により実現される。
[0037]
 通信調停部150が調停フレームを送信してから、待機期間が経過するまで待機するのは次のような理由による。前述のようにダウン検知期間は、マスタとして選出される優先順位が高いほど、期間が短くなるように設定されている。よって、マスタの不在を最初に検出するのは、優先順位が一番高い通信装置100であり、本来は、通信調停部150は調停フレームを送信した後に待機する必要はない。しかし、何らかの事情で、優先順位が一番高い通信装置100が送信した調停フレームが、他の通信装置100に到達するより前に、優先順位が2番以下の通信装置100が調停フレームを送信してしまう状況が発生することもありえる。このため、通信調停部150は、調停フレームを送信した後に待機するものとする。
[0038]
 例えば、通信装置100Aの優先順位が2番であると仮定する。何らかの事情で、優先順位が1番の通信装置100が送信した調停フレームが、通信装置100Aに到達するのが遅れたとする。通信装置100Aは、通信装置100Aに対して設定されたダウン検知期間が経過すると、マスタが不在であると判別し、他の通信装置100に調停フレームを送信し、待機期間が経過するまで待機する。待機期間中に、通信装置100Aが優先順位が1番の通信装置100から調停フレームを受信した場合、通信装置100Aは、マスタに切り替わらない。このように、通信調停部150が調停フレームを送信した後に設定された待機期間を待機することで、マスタとして動作すべきでない通信装置100がマスタに切り替わることを事前に防ぐことができる。
[0039]
 図1に示す動作切替部160は、通信調停部150から、マスタとしての動作に切り替える旨の通知を受けると、通信管理パラメータ113を使用して、通信装置100Aがマスタとして機能するよう、通信装置100Aの動作を切り替える。例えば、通信装置100Aは、マスタとしての動作を開始してから、スレーブとして動作する他の通信装置100とのコネクションを再接続し、マスタ通知フレームを決められたタイミングで他の通信装置100に送信する。動作切替部160の機能は図2に示すプロセッサ13により実現される。動作切替部160は本発明の動作切替手段の一例である。
[0040]
 次に、通信装置100の調停に係る一連の処理の流れを説明する。図1に示す通信装置100Dがマスタとして動作しており、通信装置100A~100Cがスレーブとして動作しているものと仮定する。以下、通信装置100Aを例に説明するが、スレーブとして動作している通信装置100B、100Cも同様の構成を備える。
[0041]
 図2に示す通信装置100Aのプロセッサ13が、メモリ11に格納されている調停プログラム111を実行して、以下の処理を行う。なお、プロセッサ13は、マスタとして動作する通信装置100Dからマスタ通知フレームを受信すると、検知タイマ131をリセットし、検知タイマ131を再び起動しているものとする。
[0042]
 まず、図3を参照して、マスタが不在である場合の調停に係る処理を説明する。図3に示すように、プロセッサ13は、検知タイマ131がタイムアップしたか否かを判別する(ステップS11)。プロセッサ13は、検知タイマ131がタイムアップしたと判別すると(ステップS11;Yes)、調停フレームを他の通信装置100に送信する(ステップS12)。具体的には、プロセッサ13は、メモリ11の調停パラメータ112に含まれる優先順位と自機の識別情報とをセットした調停フレームを生成し、生成した調停フレームを、通信インタフェース12に出力する。従って、通信インタフェース12は、調停フレームをブロードキャストする。従って、調停フレームは、ネットワーク5を介して、他の通信装置100B、100Cに送信される。プロセッサ13は、待機タイマ132を起動し(ステップS13)、ステップS14の処理を実行する。
[0043]
 ステップS14において、プロセッサ13は、待機タイマ132がタイムアップすると(ステップS14;Yes)、図2に示す通信管理パラメータ113を使用して、マスタとしての動作を開始する(ステップS15)。
[0044]
 一方、ステップS14において、プロセッサ13は、待機タイマ132がタイムアップする前に(ステップS14;No)、通信インタフェース12を介して他の通信装置100から調停フレームを受信した場合(ステップS16;Yes)、図4に示す調停フレーム受信時の調停処理を実行する。
[0045]
 プロセッサ13は、以下のような場合に図4の処理を実行する。通信装置100Aのプロセッサ13は、図3に示すステップS12で調停フレームを送信した後、図3に示すステップS16で他の通信装置100から調停フレームを受信した場合に図4に示す処理を開始する。これは、何らかの事情で、優先順位が2番目以下の通信装置100が、優先順位が一番の通信装置100より先に調停フレームを送信する場合もありえるからである。あるいは、プロセッサ13は、検知タイマ131がタイムアップする前に他の通信装置100から調停フレームを受信した場合に、図4に示す処理を開始する。
[0046]
 プロセッサ13は、調停パラメータ112に含まれている自機の優先順位が、受信した調停フレームにセットされた優先順位に比べて高いか否かを判別する(ステップS21)。プロセッサ13は、自機の優先順位の方が高いと判別すると(ステップS21;Yes)、待機タイマ132が起動しているか否かを判別する(ステップS22)。
[0047]
 待機タイマ132が起動している場合(ステップS22;Yes)、プロセッサ13はステップS25の処理を実行する。待機タイマ132が起動されていることは、プロセッサ13が他の通信装置100B、100Cに調停フレームを送信済みであることを示す。
[0048]
 一方、待機タイマ132が起動していない場合(ステップS22;No)、プロセッサ13は、調停フレームを他の通信装置100B、100Cに送信する(ステップS23)。具体的には、プロセッサ13は、メモリ11の調停パラメータ112から、優先順位と自機の識別情報とを読み出し、優先順位と識別情報とをセットした調停フレームを生成し、生成した調停フレームを、通信インタフェース12に出力する。従って、通信インタフェース12は、調停フレームをブロードキャストする。その後、プロセッサ13は、待機タイマ132を起動する(ステップS24)。その後、プロセッサ13はステップS25の処理を実行する。
[0049]
 ステップS25で、プロセッサ13は、待機タイマ132がタイムアップすると(ステップS25;Yes)、図2に示す通信管理パラメータ113を使用して、マスタとしての動作を開始する(ステップS26)。その後、プロセッサ13は、調停フレーム受信時の調停処理を終了する。
[0050]
 ステップS25において、プロセッサ13は、待機タイマ132がタイムアップする前に(ステップS25;No)、通信インタフェース12を介して他の通信装置100から調停フレームを受信したか否かを判別する(ステップS27)。プロセッサ13は、他の通信装置100から調停フレームを受信したと判別すると(ステップS27;Yes)、再びステップS21の処理を実行する。
[0051]
 また、ステップS21で、プロセッサ13は、調停パラメータ112に含まれている自機の優先順位が、受信した調停フレームにセットされた優先順位に比べて低いと判別すると(ステップS21;No)、待機タイマ132が起動しているか否かを判別する(ステップS28)。
[0052]
 待機タイマ132が起動している場合(ステップS28;Yes)、プロセッサ13は待機タイマ132を停止する(ステップS29)。自機の優先順位より高い優先順位を有する通信装置100から調停フレームを受信したため、通信装置100Aはマスタとして動作する必要がないからである。その後、プロセッサ13は調停フレーム受信時の調停処理を終了する。また、待機タイマ132が起動していない場合(ステップS28;No)、プロセッサ13は調停フレーム受信時の調停処理を終了する。
[0053]
 以上説明したように、実施の形態に係る構成では、スレーブとして動作する通信装置100について、それぞれのダウン検知期間が、優先順位が高いほど期間が短くなるように設定されている。通信装置は、優先順位に応じて設定されたダウン検知期間が経過したときにマスタの存在の有無を判別する。例えば、図5に示すように、通信装置100A、100B、100Cがスレーブとして動作し、通信装置100Dがマスタとして動作すると仮定する。優先順位は、通信装置100Aが一番高く、通信装置100A、100B、100Cの順に低くなるように設定されているものとする。ダウン検知期間の長さは、通信装置100Aのダウン検知期間tA、通信装置100Bのダウン検知期間tB、通信装置100Cのダウン検知期間tC、の順に長くなるように設定されている。
[0054]
 この場合、通信装置100Aのダウン検知期間tAが一番短いので、通信装置100Aが最初にマスタの不在を検知することになる。よって、優先順位が高い通信装置100Aが、最も早く調停フレームを他の通信装置100に送信できる。通信装置100B、100Cは、通信装置100Aから受信したマスタ通知フレームの優先順位と、自機の優先順位とを比較する。通信装置100B、100Cは、通信装置100Aから受信した調停フレームにセットされた優先順位より自機の優先順位の方が低いため、何もしない。通信装置100Aは、調停フレームを送信してから待機期間wAが経過したときに、マスタとしての動作を開始する。
[0055]
 図5の例では、優先順位が高い通信装置100Aのみが調停フレームを送信しており、他の通信装置100B、100Cが調停フレームを送信することがない。よって、通信装置100間において、調停フレームのやり取りをする時間が短縮され、新たなマスタの選出までにかかる時間を短くできる。
[0056]
 また、図6に示すように、優先順位が一番高い通信装置100Aが送信した調停フレームが何らかの理由で遅れて通信装置100B及び100Cに到達することもありえる。図示する例では、通信装置100Aが送信した調停フレームが通信装置100B及び100Cに到達する前に、優先順位が2番目の通信装置100Bが送信した調停フレームが通信装置100A及び100Cに到達している。
[0057]
 この場合、通信装置100Bは、調停フレームを送信してから待機タイマ132を起動して、待機期間wBが経過するまで待機する。通信装置100Bは、待機期間wBが経過する前に、通信装置100Aから調停フレームを受信する。通信装置100Bは、通信装置100Aから受信した調停フレームに設置された優先順位と自機の優先順位を比較し、自機の優先順位の方が低いため、待機タイマ132を停止する。この場合、通信装置100Bは、マスタに切り替わらない。
[0058]
 通信装置100Cは、通信装置100Bから受信した調停フレームにセットされた優先順位と、自機の優先順位を比較する。通信装置100Cは、通信装置100Bの優先順位より自機の優先順位の方が低いため、何もしない。さらに、通信装置100Cは、通信装置100Aから受信した調停フレームにセットされた優先順位と、自機の優先順位を比較する。通信装置100Cは、通信装置100Aの優先順位より自機の優先順位の方が低いため、何もしない。
[0059]
 通信装置100Aは、通信装置100Bから調停フレームを受信するものの、受信した調停フレームの優先順位より自機の優先順位が高いため、他の通信装置100B、100Cに調停フレームを送信する。通信装置100Aは、待機期間wAが経過するとマスタとの動作を開始する。図6に示す例では、図5に示す例より、若干時間がかかってしまうものの、全ての通信装置が調停フレームを送信することがなく、新たなマスタの選出までにかかる時間を短縮できる。
[0060]
 実施の形態に係る構成においては、スレーブそれぞれの優先順位に応じて、ダウン検知期間、即ちスレーブがマスタの存在の有無を判別する時間間隔を異ならせることで、優先順位の低いスレーブの大多数が調停フレームを送信することがない。よって、スレーブの数が増えた場合に、マスタの選出にかかる時間を短縮する効果がより大きくなる。通信装置100Aの優先順位は本発明の第1の順位の一例であり、通信装置100Bの優先順位は本発明の第2の順位の一例である。
[0061]
(変形例1)
 実施の形態においては、通信システム1を管理するユーザが設定ツールを使用して、優先順位とダウン検知期間とを図2に示す調停パラメータ112としてメモリ11に登録していた。しかしながら、優先順位は自動的に決定されてよい。以下、実施の形態と異なる構成を中心に説明する。
[0062]
 図1に示す通信装置100Dがマスタとして動作し、通信装置100A~100Cがスレーブとして動作しているものとする。例えば、マスタである通信装置100Dは、コネクションを確立した直後に、スレーブである通信装置100A~100Cに対して、それぞれの識別情報を要求する。通信装置100A~100Cは、それぞれメモリ11に格納されている識別情報をマスタである通信装置100Dに送信する。マスタは、MACアドレスの値が大きいほど優先順位が高いとして、スレーブの通信装置100A~100Cそれぞれの優先順位とダウン検知期間とを決定し、決定したい優先順位とダウン検知期間とを通信装置100A~100Cに送信する。
[0063]
 さらに、マスタは、優先順位に応じてダウン検知期間を決定する。具体的には、マスタは、優先順位に決められた基準期間を乗じた期間をダウン検知期間として決定する。例えば、基準期間を100ミリ秒と仮定する。さらに、優先順位が1位の通信装置については、1×100ミリ秒=100ミリ秒をダウン検知期間として決定し、優先順位が2位の通信装置については2×100ミリ秒=200ミリ秒をダウン検知期間として決定するものとする。マスタは、通信装置100B~100Dそれぞれに、決定した優先順位とダウン検知期間とを送信する。従って、スレーブとして動作する通信装置100B~100Dは、マスタから受信した優先順位とダウン検知期間とを、図2に示す調停パラメータとしてメモリ11に格納するものとする。
[0064]
(変形例2)
 上述の例ではスレーブとして動作している通信装置100A~100Cが全てマスタとして動作できるように、図1、図2に示すような構成を備えることを説明した。しかし、スレーブとして動作する通信装置100のうち、予め選択された一部の通信装置のみが、マスタのダウンを検知し、マスタとして動作してもよい。
[0065]
 図7に示す変形例2に係る通信システム2においては、通信装置100A及び通信装置100Bは、マスタとして動作できるように設定されている。言い換えると、通信装置100A及び通信装置100Bは、マスタ候補として設定されている。通信装置100Cは、マスタ候補として設定されていないものとする。通信装置100Dはマスタとして動作するよう設定されている。通信装置100A及び100Bは、図1、図2に示すような実施の形態で説明した構成を備える。通信装置100A及び100Bは、マスタのダウンを検知し、通信調停に係る処理を実行する。
[0066]
 一方、通信装置100Cは、機能的には、調停フレームを受信する送受信部130だけを備えており、マスタのダウンの検知も、調停フレームにセットされた優先順位の比較も行わない。よって、図8に示すように、ハードウェア構成として、通信装置100Cは、メモリ11に、通信装置100間で通信調停を行うための調停プログラム111と、通信調停に使用される調停パラメータ112と、ネットワーク5を介した通信を管理するための通信管理パラメータ113とを有する必要がない。また、通信装置100Cのプロセッサ13は、検知タイマ131と待機タイマ132とを有する必要がない。このように、マスタとして選出されないスレーブについては、ハードウェア構成を簡素なものとすることが可能である。例えば、処理能力が低い通信装置100より、処理能力が高い通信装置100がマスタとして動作することが好ましいので、マスタの候補から、処理能力が低い通信装置100を外すようにしてもよい。
[0067]
 以上、実施の形態、変形例1、2に係る構成を説明したが、本発明は上記の例に限定されたに。例えば、マスタが、スレーブとして動作する通信装置100に対して要求する識別情報はMACアドレスに限らず、IP(Internet Protocol)アドレス、あるいは、ネットワーク5における局番であってもよい。また、マスタは、識別情報の値が小さいものから優先順位が高いと決定してもよい。
[0068]
 実施の形態においては、通信装置100が調停フレームを送信した後に待機する待機期間が、優先順位が高いほど、期間が短くなるように設定されている例を説明したが、これに限られない。例えば、全ての通信装置100の待機期間は同じ期間であってもよい。
[0069]
 上記のプログラムを記録する記録媒体としては、磁気ディスク、光ディスク、光磁気ディスク、フラッシュメモリ、半導体メモリ、磁気テープを含むコンピュータ読取可能な記録媒体を使用することができる。
[0070]
 本発明は、広義の精神と範囲を逸脱することなく、様々な実施形態及び変形が可能とされるものである。また、上述した実施形態は、本発明を説明するためのものであり、本発明の範囲を限定するものではない。つまり、本発明の範囲は、実施形態ではなく、請求の範囲によって示される。そして、請求の範囲内及びそれと同等の発明の意義の範囲内で施される様々な変形が、本発明の範囲内とみなされる。

符号の説明

[0071]
tA,tB,tC ダウン検知期間、wA 待機期間、1 通信システム、5 ネットワーク、11 メモリ、12 通信インタフェース、13 プロセッサ、19 バス、100,100A,100B,100C,100D 通信装置、110 優先順位記憶部、111 調停プログラム、112 調停パラメータ、113 通信管理パラメータ、120 ダウン検知期間記憶部、130 送受信部、131 検知タイマ、132 待機タイマ、140 マスタ存在判別部、150 通信調停部、160 動作切替部

請求の範囲

[請求項1]
 マスタスレーブ方式で通信を行う通信システムであって、
 マスタ又はスレーブとして動作する通信装置、
 を備え、
 スレーブとして動作する通信装置のうち少なくとも2つの通信装置はそれぞれ、
 スレーブのうちで自機が新たなマスタとして選出される優先順位が高いほど、期間が短くなるように設定されたダウン検知期間を記憶する検知期間記憶手段と、
 マスタから信号を受信してから前記ダウン検知期間が経過するまでに、マスタとして動作する通信装置から新たな信号を受信したか否かに応じて、マスタが存在するか否かを判別するマスタ存在判別手段と、
 前記マスタ存在判別手段がマスタが不在であると判別すると、マスタとして動作するように自機の動作を切り替える動作切替手段と、
 を有する、
 通信システム。
[請求項2]
 前記優先順位を記憶する優先順位記憶手段と、
 自機の前記優先順位である第1の順位を他の通信装置に通知する通信調停手段と、
 をさらに備え、
 前記動作切替手段は、前記通信調停手段が前記第1の順位を前記他の通信装置に通知してから待機期間が経過すると、自機の動作をスレーブからマスタへと切り替える、
 請求項1に記載の通信システム。
[請求項3]
 前記通信調停手段は、前記第1の順位を前記他の通信装置に通知する前に、前記他の通信装置から前記他の通信装置の前記優先順位である第2の順位が通知されると、前記第1の順位が前記第2の順位より高いか否かを判別し、前記第1の順位が前記第2の順位より高いと判別した場合、自機の前記優先順位である前記第1の順位を前記自機以外の通信装置に通知する、
 請求項2に記載の通信システム。
[請求項4]
 前記待機期間に、前記通信調停手段は、前記他の通信装置から前記他の通信装置の前記優先順位である第2の順位が通知されると、前記第1の順位が前記第2の順位より高いか否かを判別し、
 前記動作切替手段は、前記通信調停手段が前記第1の順位が前記第2の順位より低いと判別した場合、前記待機期間が経過してもスレーブからマスタへと動作を切り替えない、
 請求項2又は3に記載の通信システム。
[請求項5]
 マスタスレーブ方式で通信を行う通信装置であって、
 スレーブのうちで自機が新たなマスタとして選出される優先順位が高いほど、期間が短くなるように設定されたダウン検知期間を記憶する検知期間記憶手段と、
 マスタから信号を受信してから前記ダウン検知期間が経過するまでに、マスタとして動作する通信装置から新たな信号を受信したか否かに応じて、マスタが存在するか否かを判別するマスタ存在判別手段と、
 前記マスタ存在判別手段がマスタが不在であると判別すると、マスタとして動作するように自機の動作を切り替える動作切替手段と、
 を備える、
 通信装置。
[請求項6]
 マスタスレーブ方式で通信を行う通信システムにおいて、スレーブとして動作する通信装置が実行する方法であって、
 自機が新たなマスタとして選出される優先順位に応じた時間間隔でマスタが存在するか否かを判別するステップと、
 マスタが不在であると判別した場合、マスタとして動作するように自機の動作を切り替えるステップと、
 を含む方法。
[請求項7]
 マスタスレーブ方式で通信を行う通信システムにおいて、
 スレーブとして動作するコンピュータに、
 スレーブのうちで前記コンピュータが新たなマスタとして選出される優先順位が高いほど、期間が短くなるように設定されたダウン検知期間を記憶させ、
 マスタから信号を受信してから前記ダウン検知期間が経過するまでに、マスタから新たな信号を受信したか否かに応じて、マスタが存在するか否かを判別させ、
 マスタが不在であると判別した場合に、マスタとして動作するように前記コンピュータの動作を切り替えさせる、
 プログラム。

図面

[ 図 1]

[ 図 2]

[ 図 3]

[ 図 4]

[ 図 5]

[ 図 6]

[ 図 7]

[ 図 8]