以下、例示的な実施形態を図面に基づいて詳細に説明する。
図1は、無線通信システム100の概略図である。無線通信システム100は、データステーション10と、複数の中継機20と、複数のセンサ30とを有している。データステーション10、中継機20、センサ30は、通信端末であり、互いに無線通信を行い、自律的にネットワークを構築する。無線通信システム100においては、マルチホップ無線ネットワークが形成される。データステーション10は、親機として機能し、中継機20及びセンサ30は、子機として機能する。基本的には、データステーション10は、中継機20と通信を行い、センサ30は、中継機20と通信を行う。センサ30の個数は、中継機20に比べて多い。データステーション10及び中継機20は、データステーション10を頂点(最上位)とするツリー型のネットワークトポロジを有している。本明細書では、ネットワークにおいてデータステーション10側を上流側又は上位とし、ツリーの末端側を下流側又は下位とする。また、データステーション10、中継機20、センサ30を区別しない場合には、単に通信端末と称する場合がある。また、各中継機20を区別する場合には、符号「20」の後にアルファベットを付して区別する。同様に、各センサ30を区別する場合には、符号「30」の後にアルファベットを付して区別する。
無線通信システム100においては、センサ30が対象物の所定の物理量を検出し、その検出値、即ち、検出データが中継機20を介してデータステーション10に収集される。本開示における例では、無線通信システム100は、蒸気システムを有する工場内に設置されている。蒸気システムは、複数のスチームトラップT(図1では1つだけ図示)を有している。対象物は、スチームトラップTである。センサ30は、スチームトラップTの振動数及び温度を検出する。
〈データステーションの構成〉
図2は、データステーション10のブロック図である。データステーション10は、無線通信システム100の通信経路の確立やセンサ30の検出値の収集及び管理を行う。また、データステーション10は、図示を省略するが、外部ネットワーク等を介して上位のサーバ90に接続される。データステーション10は、必要に応じて、センサ30の検出値をサーバ90に転送する。
データステーション10は、CPU11と、メモリ12と、記憶部13と、無線通信回路14と、計時回路15と、上位インターフェース部16と、電源回路17とを有している。
記憶部13には、各種プログラム及び各種情報が記憶されている。CPU11は、記憶部13から各種プログラムを読み込み、実行することにより、様々な処理を行う。例えば、記憶部13には、ネットワークの通信経路を形成するためのプログラム、センサ30の検出値を収集するためのプログラム、ネットワークのツリー構造を規定するツリーテーブル、各センサ30がどの中継機20に接続されているかを規定したセンサテーブル、最終送信先へのルートを規定するルーティングテーブル、ツリーテーブルからルーティングテーブルを作成するためのプログラム、中継機20と通信を行うスケジュールを規定したスケジュール情報、及び、収集した検出値等が記憶されている。
無線通信回路14は、中継機20等の他の通信端末と無線通信を行う。無線通信回路14は、CPU11の制御によって動作し、各種信号を符号化・変調等の処理により無線信号に変換し、アンテナを介して送信する。また、無線通信回路14は、アンテナを介して受信した信号を復調・複合化等の処理により適切な信号に変換する。さらに、無線通信回路14は、受信した信号に基づいて受信信号強度(RSSI:Received Signal Strength Indicator)を計測する。
計時回路15は、所定のクロックを発生し、データステーション10の基準となる時刻を計時する。上位インターフェース部16は、サーバ90との間のインターフェース処理を行う。電源回路17は、外部電源(図示省略)が接続されており、データステーション10の各要素に電力を供給する。
〈中継機の構成〉
図3は、中継機20のブロック図である。中継機20は、データステーション10の指令に応じて、センサ30の検出値をデータステーション10へ送信する。
中継機20は、CPU21と、メモリ22と、記憶部23と、無線通信回路24と、計時回路25と、電源回路26と、電池27とを有している。
記憶部23には、各種プログラム及び各種情報が記憶されている。CPU21は、記憶部23から各種プログラムを読み込み、実行することにより、様々な処理を行う。例えば、記憶部23には、ネットワークの通信経路を形成するためのプログラム、センサ30の検出値を中継するためのプログラム、ツリーテーブル、ルーティングテーブル、ツリーテーブルからルーティングテーブルを作成するためのプログラム、繋がっているセンサ30を特定するセンサ接続情報及び、センサ30から取得した検出値等が記憶されている。
また、記憶部23には、電池27の残量を推定するためのプログラムも記憶されている。CPU21は、該プログラムを実行することによって、各種処理に応じた消費電力を積算し、電池27の残量を推定する。
無線通信回路24は、他の通信端末と無線通信を行う。無線通信回路24は、CPU21の制御によって動作し、各種信号を符号化・変調等の処理により無線信号に変換し、アンテナを介して送信する。また、無線通信回路24は、アンテナを介して受信した信号を復調・複合化等の処理により適切な信号に変換する。さらに、無線通信回路24は、受信した信号に基づいて受信信号強度を計測する。
計時回路25は、所定のクロックを発生し、中継機20の基準となる時刻を計時する。電源回路26には、電池27が接続されている。電源回路26は、中継機20の各要素に電力を供給する。
中継機20は、他の通信端末との信号の送受信等の様々な処理を実行できるアクティブ状態と、信号の送受信等の処理が実行できないが、アクティブ状態に比べて消費電力が抑制されたスリープ状態とを切り替え可能に構成されている。中継機20がアクティブ状態からスリープ状態となる際には、CPU21は、アクティブ状態になるべき時刻を計時回路25に設定し、非アクティブ状態となる。スリープ状態においては、計時回路25は、計時を継続する。設定された時刻になると、計時回路25は、CPU21に時刻の到来を通知し、この通知を受けたCPU21は、非アクティブ状態からアクティブ状態となる。こうして、中継機20は、スリープ状態からアクティブ状態となる。
〈センサの構成〉
図4は、センサ30のブロック図である。センサ30は、スチームトラップTの振動数及び温度を検出し、その検出値を対応する中継機20に送信する。センサ30は、対象物の所定の物理量を検出するセンサ部40と、センサ部40の検出値を他の通信端末に送信する処理部50とを有している。
センサ部40は、振動センサ及び温度センサを含んでおり、スチームトラップTの振動数及び温度を検出する。センサ部40は、スチームトラップTのケーシング(例えば、蒸気及びドレンが流入する流入部)に接触するように設置され、接触した部分の振動数及び温度を検出する。センサ部40は、検出した振動数及び温度に対応する電気信号を処理部50に出力する。
処理部50は、CPU51と、メモリ52と、記憶部53と、無線通信回路54と、計時回路55と、センサインターフェース部56と、電源回路57と、電池58とを有している。
記憶部53には、各種プログラム及び各種情報が記憶されている。CPU51は、記憶部53から各種プログラムを読み込み、実行することにより、様々な処理を行う。例えば、記憶部53には、ネットワークの通信経路を形成するためのプログラム、センサ部40から振動数及び温度を取得し、検出値として中継機20に送信するためのプログラム、繋がっている中継機20を特定する中継機接続情報、及び、検出値等が記憶されている。
また、記憶部53には、電池58の残量を推定するためのプログラムも記憶されている。CPU51は、該プログラムを実行することによって、各種処理に応じた消費電力を積算し、電池58の残量を推定する。
無線通信回路54は、他の通信端末と無線通信を行う。無線通信回路54は、CPU51の制御によって動作し、各種信号を符号化・変調等の処理により無線信号に変換し、アンテナを介して送信する。また、無線通信回路54は、アンテナを介して受信した信号を復調・複合化等の処理により適切な信号に変換する。さらに、無線通信回路54は、受信した信号に基づいて受信信号強度を計測する。
計時回路55は、所定のクロックを発生し、センサ30の基準となる時刻を計時する。センサインターフェース部56は、センサ部40との間のインターフェース処理を行う。電源回路57には、電池58が接続されている。電源回路57は、センサ30の各要素に電力を供給する。
センサ30は、中継機20と同様に、他の通信端末との信号の送受信等の様々な処理を実行できるアクティブ状態と、信号の送受信等の処理が実行できないが、アクティブ状態に比べて消費電力が抑制されたスリープ状態とを切り替え可能に構成されている。
〈通信端末の接続関係〉
無線通信システム100では、各通信端末の接続先が定められており、その接続関係に基づいて信号の伝搬が行われる。無線通信システム100は、データステーション10、中継機20及びセンサ30の接続関係として、ツリーテーブル、ルーティングテーブル、センサテーブル、センサ接続情報及び中継機接続情報を保持している。
ツリーテーブルは、無線通信システム100のツリー構造を規定するテーブルであり、各中継機20の上位の通信端末を規定している。ツリーテーブルは、無線通信システム100で1つ作成され、データステーション10及び全ての中継機20は、共通のツリーテーブルを保持している。図5は、図1の無線通信システム100に対応するツリーテーブルである。ツリーテーブルの上欄には、対象となる中継機20が記載され、下欄には、各中継機20が接続される上位側の通信端末(データステーション10又は中継機20)が規定されている。
ルーティングテーブルは、或る通信端末から全ての到達可能な最終送信先の通信端末と或る通信端末から該最終送信先までの通信経路における次の(1ホップ先の)通信端末との対応関係、即ち、最終送信先までの通信経路における或る通信端末から1ホップだけ下位の通信端末を規定している。ルーティングテーブルは、ツリーテーブルに基づいて作成される。データステーション10及び各中継機20がそれぞれに固有のルーティングテーブルを保持している。図6は、図1の無線通信システム100における中継機20aのルーティングテーブルである。ルーティングテーブルの上欄には、対象となる最終送信先が記載され、下欄には、中継機20aを起点とする場合の1ホップ先の中継機20が規定されている。中継機20aからは、中継機20b,20c,20d,20e,20f,20g,20h,20iに到達可能であるので、それらの中継機20までの通信経路上の中継機20aから1ホップだけ下位の中継機20がそれぞれ規定されている。中継機20j,20kは、中継機20aからは到達できないので、中継機20aのルーティングテーブルにおいては、最終送信先を中継機20j,20kとした場合の1ホップ先の中継機20は規定されていない。
センサテーブルは、センサ30と中継機20との接続関係(即ち、各センサ30がどの中継機20に接続されているか)を規定している。センサテーブルは、無線通信システム100で1つ作成され、データステーション10が保持している。図7は、図1の無線通信システム100に対応するセンサテーブルである。センサテーブルの上欄には、対象となるセンサ30が記載され、下欄には、各センサ30が接続される中継機20が規定されている。
センサ接続情報は、中継機20がそれぞれ保持する情報であって、各中継機20に接続されたセンサ30を特定する情報(例えば、センサ30の通信アドレス)である。
中継機接続情報は、センサ30のそれぞれが保持する情報であって、各センサ30が接続される中継機20を特定する情報(例えば、中継機20の通信アドレス)である。
無線通信システム100では、これらの接続関係を用いて信号の伝搬が行われる。
まず、信号がデータステーション10からダウンリンク方向に送信される場合について説明する。例えば、データステーション10がセンサ30gへ信号を送信する場合、データステーション10は、センサテーブルに基づいて、センサ30gが繋がっている中継機20hを割り出す。そして、データステーション10は、自身のルーティングテーブルに基づいて、最終送信先が中継機20hである場合の1ホップ先の中継機20が中継機20aであることを割り出す。データステーション10は、最終送信先に中継機20hを設定し、1ホップ先の送信先に中継機20aを設定した信号を送信する。以下、この信号を受信した各中継機20は、自身のルーティングテーブルに基づいて、1ホップ先の中継機20を変更し、該信号を中継機20hまで伝搬する。具体的には、中継機20aは、中継機20dを1ホップ先の送信先に設定して、該信号を転送する。該信号を受信した中継機20dは、中継機20gを1ホップ先の送信先に設定して、該信号を転送する。該信号を受信した中継機20gは、中継機20hを1ホップ先の送信先に設定して、該信号を転送する。最終送信先である中継機20hは、該信号を受信すると、自身のセンサ接続情報に基づいて、最終送信先及び1ホップ先の送信先の両方をセンサ30gに設定し、該信号を送信する。こうして、該信号は、最終的にセンサ30gによって受信される。
次に、信号がデータステーション10へアップリンク方向に送信される場合について説明する。例えば、センサ30gがデータステーション10へ信号を送信する場合、センサ30gは、自身の中継機接続情報に基づいて、最終送信先及び1ホップ先の送信先の両方を中継機20hに設定した信号を送信する。該信号は、中継機20hによって受信される。中継機20hは、ツリーテーブルに基づいて、1ホップだけ上位の中継機20が中継機20gであることを割り出す。中継機20hは、最終送信先にデータステーション10を設定し、1ホップ先の送信先に中継機20gを設定した信号を送信する。以下、この信号を受信した各中継機20は、ツリーテーブルに基づいて、1ホップ先の中継機20を変更し、該信号をデータステーション10まで伝搬する。具体的には、中継機20gは、1ホップ先の送信先に中継機20dを設定して、該信号を転送する。中継機20dは、1ホップ先の送信先に中継機20aを設定して、該信号を転送する。中継機20aは、1ホップ先の送信先にデータステーション10を設定して、該信号を転送する。こうして、該信号は、最終的にデータステーション10によって受信される。
このようにデータステーション10、中継機20及びセンサ30は、通信端末の接続関係(ツリーテーブル、ルーティングテーブル、ツリーテーブル、センサ接続情報及び中継機接続情報)に基づいて信号を送信する。
〈通信スケジュール〉
このように構成された無線通信システム100は、通常の運転動作として、センサ30の検出値をデータステーション10に収集する収集処理を行う。データステーション10は、図8に示す通信スケジュールに従って各中継機20と通信を行い、各中継機20に対応する、即ち、繋がっているセンサ30の検出値を収集する。
図8の通信スケジュールは、収集処理の1サイクルを示しており、図8の通信スケジュールが繰り返し実行される。通信スケジュールは、複数のタイムスロットに分割されている。各中継機20には、特定のタイムスロットが割り当てられている。各中継機20は、対応するタイムスロットにおいてデータステーション10と通信を行い、該中継機20に繋がったセンサ30からの検出値をデータステーション10に送信する(以下、この処理を「返信処理」ともいう)。基本的には、各中継機20は、割り当てられた特定のタイムスロット(以下、「特定スロット」とも称する)においてアクティブ状態となり、特定スロット以外のときはスリープ状態となる。ただし、他の中継機20とデータステーション10との通信経路上に存在する中継機20は、下位の中継機20がデータステーション10と通信する場合に中継処理を行う必要があるため、下位の中継機20に割り当てられたタイムスロット(以下、「中継スロット」とも称する)においてもアクティブ状態となって中継処理を実行する。また、センサ30は、繋がっている中継機20の特定スロットにおいて該中継機20へ検出値を送信するので、該中継機20の特定スロットにおいてアクティブ状態となっている。センサ30は、中継機20へ検出値を送信する必要がないときには、基本的にはスリープ状態となっている。
図8の通信スケジュールでは、タイムスロットがマトリックス状に規定されている。基本的には、ツリー構造の通信経路の階層に従ってタイムスロットが割り当てられている。詳しくは、列ごとにツリー構造の階層が割り当てられる。例えば、列L0には、データステーション10が割り当てられ、列L1には、第1階層(即ち、ホップ数が1)が割り当てられ、列L2には、第2階層(即ち、ホップ数が2)が割り当てられる。第3階層以降についても同様である。
通常、各中継機20には、何れか1つのタイムスロットが割り当てられる。第1階層の中継機20a,20jには、列L1のタイムスロットが割り当てられる。第2階層の中継機20b,20c,20d,20kには、列L2のタイムスロットが割り当てられる。第3階層の中継機20e,20f,20gには、列L3のタイムスロットが割り当てられる。第4階層の中継機20h,20iには、列L4のタイムスロットが割り当てられる。一方、データステーション10は、中継機20に比べて処理内容が多いので、1つのタイムスロットではなく、複数のタイムスロット(図8では、列L0の全てのタイムスロット)がデータステーション10に割り当てられる。尚、列に含まれるタイムスロットの数と各階層に含まれる中継機20の数は異なる(通常、列に含まれるタイムスロットの数の方が多い)ので、列に含まれるタイムスロットには、中継機が割り当てられていないものも存在する。
また、前述の如く、或る中継機20の特定スロットにおいては、該中継機20に繋がるセンサ30もアクティブ状態となるので、実質的に、各センサ30にも特定のタイムスロットが割り当てられていることになる。ただし、中継機20には複数のセンサ30が繋がり得るので、そのような場合には、該中継機20の特定スロットには、複数のセンサ30が割り当てられていることになる。例えば、図8の例では、列L3、行N1のタイムスロットには中継機20eが割り当てられている。中継機20eには2つのセンサ30が繋がっているので(図1参照)、列L3、行N1のタイムスロットには実質的に該2つのセンサ30が割り当てられていることになる。
通信スケジュールでは、タイムスロットの処理は、列方向に進んでいく。例えば、或る列(例えば、列L1)において、行番号に関して昇順(即ち、行N1からNmの順)にタイムスロットの処理が進んでいき、当該行の最後の行番号(行Nm)のタイムスロットの処理が終了すると、次の列(例えば、列L2)の最初の行番号(行N1)のタイムスロットから同様の順序で処理が進められていく。
〈接続関係の確定及びタイムスロットの割り当て〉
データステーション10は、ネットワークの通信経路を確立する際に、通信端末の接続関係を確定すると共に、タイムスロットの割り当てを行って通信スケジュールを完成させる。
例えば、データステーション10は、どの通信端末同士が繋がるか、即ち、データステーション10、中継機20及びセンサ30の接続関係を確定させ、ツリーテーブル及びセンサテーブルを作成する。さらに、データステーション10は、ツリーテーブルに基づいてルーティングテーブルを作成する。こうして、接続関係が確定されると、データステーション10は、各中継機20にタイムスロットを割り当て、通信スケジュールを完成させる。データステーション10は、ツリーテーブル、センサテーブル、ルーティングテーブル及び通信スケジュール(即ち、中継機20へのタイムスロットの割り当て)を記憶部13に保存する。
データステーション10は、タイムスロットの割り当てが完了すると、各中継機20にツリーテーブル及び特定スロットのスロット番号を通知する。このとき、下位の中継機20の中継処理を行う必要がある中継機20には、それ自身の特定スロットのスロット番号に加えて、下位の中継機20の特定スロット、即ち、中継スロットのスロット番号も通知される。また、データステーション10は、センサテーブルに基づいて、各中継機20にセンサ接続情報を、各センサ30に中継機接続情報を通知する。
各中継機20は、ツリーテーブルに基づいてルーティングテーブルを作成する。また、中継機20は、繋がっているセンサ30に該中継機20の特定スロットのスロット番号を通知する。中継機20は、特定スロット及び中継スロットのスロット番号、ツリーテーブル、ルーティングテーブル及びセンサ接続情報を記憶部23に保存する。
センサ30は、繋がっている中継機20の特定スロットのスロット番号及び中継機接続情報を記憶部53に保存する。
〈システムの動作〉
−収集処理−
収集処理においては、データステーション10は、通信スケジュールに従って処理を進める。具体的には、データステーション10は、それ自身に割り当てられたタイムスロットにおいて、データステーション10に必要な処理を行う。続いて、データステーション10は、タイムスロットの順番で、タイムスロットに割り当てられた中継機20と順次、通信を行う。このとき、データステーション10から各中継機20に送られる信号には、少なくとも、センサ30の検出値の返信を要求するリクエスト信号が含まれている。
一方、中継機20は、通信スケジュールに従って、特定スロットのタイミングでアクティブ状態となって、データステーション10からのリクエスト信号を待機する。また、中継機20は、特定スロットに応じて、該中継機20に繋がっているセンサ30から検出値を取得する。中継機20は、リクエスト信号を受信すると、センサ30からの検出値をリクエスト信号に対する応答としてデータステーション10へ返信する。また、中継機20は、中継スロットでもアクティブ状態となって、データステーション10と下位の中継機20との間の中継処理を行う。
センサ30は、接続される中継機20の特定スロットに応じてアクティブ状態となって検出値を該中継機20に送信する。一の中継機20に複数のセンサ30が接続されている場合には、一の中継機20の特定スロットの少なくとも開始時点において、該複数のセンサ30の全てがアクティブ状態となっている。複数のセンサ30は、順番に、中継機20からリクエスト信号を受け取り、検出値を中継機20へ送信する。複数のセンサ30は、中継機20への検出値の送信が完了した順にスリープ状態となる。
このように、収集処理の基本的な処理においては、データステーション10は、通信スケジュールに従って各特定スロットにおいて該特定スロットに対応するセンサ30の検出値を収集することによって、全てのセンサ30の検出値を収集する。
−接続先の更新−
前述の如く、無線通信システム100では、通信端末の接続関係が定められており、この接続関係に基づいて信号の伝搬が行われる。しかしながら、通信環境が変化する場合もあり、以前は良好であった通信端末間の通信が不調となることもある。そこで、各中継機20及び各センサ30は、周囲の通信状態をスキャンし、データステーション10は、そのスキャン結果に基づいて中継機20及びセンサ30の接続先を通信状態が改善するように更新する。以下、中継機20及びセンサ30の接続先の更新処理について詳細に説明する。
まず、中継機20及びセンサ30は、その周囲の通信状態をスキャンするスキャン処理を実行する。図9にスキャン処理のフローチャートを示す。
具体的には、データステーション10は、ステップSa1において、所定のスキャン条件が成立したか否かを判定する。例えば、スキャン条件は、所定のスキャン周期が到来することである。スキャン周期は、例えば、6時間である。
尚、スキャン条件は、それ以外の条件であってもよい。スキャン条件は、パケットエラーレート(PER:Packet Error Rate)が所定の判定レートを上回った場合、又は、受信信号強度が所定の判定強度を下回った場合であってもよい。つまり、前述の収集処理時にはパケットエラーレート及び受信信号強度が計測されている。収集処理においては、データステーション10は、タイムスロットに従って、対応する中継機20から検出値を収集するが、対応する中継機20から検出値が返ってこない場合もある。データステーション10は、(検出値の返信が無かった回数)/(検出値の返信を要求した回数)をPERとして、収集処理中に中継機20ごとのPERを測定している。また、各中継機20は、収集処理時に自身の特定スロットにおいて検出値の返信処理を行う際に、上位の通信端末(中継機20)及び下位の通信端末(センサ30)と信号を送受信する際にその受信信号強度を計測し、その測定結果をセンサ30の検出値と併せてデータステーション10に返信している。こうして、データステーション10は、収集処理中に、センサ30の検出値だけでなく、各中継機20の、上位及び下位の通信端末との間の受信信号強度も収集している。データステーション10は、こうして収集されたPERが判定レートを上回った場合又は、受信信号強度が判定強度を下回った場合に、スキャン条件が成立したと判定してもよい。
スキャン条件が成立していない場合には、データステーション10は、ステップSa1を繰り返して、スキャン条件の成立を待機する。スキャン条件が成立している場合には、データステーション10は、ステップSa2へ進む。
ステップSa2では、データステーション10は、全ての中継機20及びセンサ30にスキャン信号を送信する。データステーション10は、収集処理と並行してスキャン信号を送信する。具体的には、データステーション10は、各タイムスロットにおいて対応する中継機20に検出値のリクエスト信号と共にスキャン信号も送信する。
尚、スキャン条件がPER又は受信信号強度に関するものである場合には、PER又は受信信号強度が悪化した中継機20又はセンサ30だけにスキャン信号を送信してもよい。
スキャン信号を受信した中継機20及びセンサ30は、スキャン動作を実行する。詳しくは、中継機20は、特定スロットだけでなく、それ以外のタイムスロットにおいてもアクティブ状態となり、他の通信端末からの信号を待機する。通常、中継機20が特定スロットにおいて行う処理に同期信号の送信がある。中継機20は、特定スロットにおいて同期信号をブロードキャストし、該同期信号を受信した他の中継機20又はセンサ30と同期を行う。スキャン動作を行う中継機20は、自身の特定スロット以外のタイムスロットにおいて、他の通信端末(データステーション10及び中継機20)からの同期信号を待機する。中継機20は、同期信号を受信できた場合には、その受信信号強度を計測する。中継機20は、この処理を通信スケジュールの1サイクルの間行うことによって、特定スロット以外の全てのタイムスロットにおける同期信号の受信の可否(即ち、通信の可否)と受信信号強度とを取得する。中継機20は、タイムスロットのスロット番号と、同期信号の受信の可否と、同期信号の受信信号強度とを関連づけたデータをスキャンデータとして記憶部23に保存する。
さらに詳しくは、各中継機20が同期信号を送信するタイミングは、各特定スロット内で決まっている。つまり、中継機20は、特定スロットにおける所定のタイミング(例えば、特定スロットの終盤)で同期信号を送信する。そこで、スキャン動作を行う中継機20は、自身の特定スロット以外のタイムスロットにおいて、同期信号が送信されるタイミングを含む一部の期間だけアクティブ状態となって同期信号を待機し、該一部の期間以外はスリープ状態となる。これにより、スキャン動作における消費電力を低減することができる。
センサ30も、中継機20と同様のスキャン動作を行う。センサ30は、繋がっている中継機20の特定スロット以外のタイムスロットにおいて、同期信号が送信されるタイミングを含む一部の期間だけアクティブ状態となり、同期信号を待機する。センサ30は、同期信号を受信できた場合には、その受信信号強度を計測する。タイムスロットにおける該一部の期間以外は、センサ30は、スリープ状態となる。センサ30は、この処理を通信スケジュールの1サイクルの間行う。センサ30は、繋がっている中継機20の特定スロットにおいても同期信号の受信の可否を判定し且つ同期信号の受信信号強度を計測する。こうして、センサ30は、全てのタイムスロットにおける同期信号の受信の可否と受信信号強度とを取得する。センサ30は、タイムスロットのスロット番号と、同期信号の受信の可否と、同期信号の受信信号強度とを関連づけたデータをスキャンデータとして記憶部53に保存する。
続いて、データステーション10は、ステップSa3において、中継機20及びセンサ30にスキャンデータの返信信号を送信する。データステーション10は、ステップSa2でスキャン信号を送信してから通信スケジュールの1サイクルが経過した後に、全ての中継機20及びセンサ30へ返信信号をタイムスロットに従って順次送信する。尚、データステーション10は、ステップSa2において特定の中継機20又はセンサ30だけにスキャン信号を送信していた場合には、スキャン信号を送信した中継機20又はセンサ30だけに返信信号を送信する。
返信信号を受信した中継機20及びセンサ30は、例えば、スキャンデータのうち受信信号強度が高い上位5個のタイムスロットに関するスキャンデータをデータステーション10へ返信する。尚、中継機20及びセンサ30は、全てのスキャンデータをデータステーション10へ返信してもよい。データステーション10は、スキャンデータを受信すると、スキャンデータを記憶部13に保存する。
スキャンデータを受け取ったデータステーション10は、スキャンデータを記憶部13に保存する(ステップSa4)。
データステーション10は、以上の処理を繰り返すことによって、中継機20及びセンサ30のスキャンデータを蓄積していく。
続いて、データステーション10は、中継機20又はセンサ30の接続先を更新する更新処理を実行する。図10に更新処理のフローチャートを示す。
具体的には、データステーション10は、ステップSb1において、所定の更新条件が成立したか否かを判定する。例えば、更新条件は、所定の更新周期が到来することである。更新周期は、例えば、1日であり、スキャン周期以上の長さである。
尚、更新条件は、それ以外の条件であってもよい。更新条件は、収集処理時のPERが所定の判定レートを上回った場合、又は、収集処理時の受信信号強度が所定の判定強度を下回った場合であってもよい。収集されたPERが判定レートを上回った場合又は、受信信号強度が判定強度を下回った場合に、データステーション10は、更新条件が成立したと判定してもよい。ただし、スキャン条件が前述の判定レート又は判定強度に基づくものである場合、更新条件における判定レート又は判定強度は、スキャン条件における判定レート又は判定強度と同じ値であっても異なる値であってもよい。
更新条件が成立していない場合には、データステーション10は、ステップSb1を繰り返して、更新条件の成立を待機する。更新条件が成立している場合には、データステーション10は、ステップSb2へ進む。
ステップSb2では、データステーション10は、記憶部13に保存しているスキャンデータに基づいて、中継機20及びセンサ30の新たな接続先を決定する。スキャンデータは、前述の如く、スロット番号と、同期信号の受信の可否と、同期信号の受信信号強度とを関連づけた、中継機20ごと、及び、センサ30ごとのデータであるので、スキャンデータからは、或る中継機20又はセンサ30の周囲に存在する、通信可能な中継機20がどれで、その受信信号強度がどのくらいかがわかる。ここで、「新たな接続先」とは、上位側の新たな接続先を意味し、即ち、互いに接続される或る2つの通信端末において上位側となる通信端末を意味する。
詳しくは、データステーション10は、記憶部13に保存しているスキャンデータのうち過去1週間分のスキャンデータに基づいて、各中継機20及び各センサ30の新たな接続先を決定する。尚、参照するスキャンデータは、過去1週間分に限られず、任意に設定することができる。データステーション10は、新たな接続先を決定する対象となる中継機20又はセンサ30に関し、その周囲の各中継機20との間のスキャン時のPER、及び、その周囲の各中継機20との間の受信信号強度の平均値をスキャンデータから求める。スキャン時のPERとは、対象となる中継機20又はセンサ30とその周囲の各中継機20との間での、スキャン処理時のPERであって、(同期信号を受信できなかった回数)/(スキャンの回数)である。受信信号強度の平均値は、対象となる中継機20又はセンサ30とその周囲の各中継機20との間で同期信号を受信できた場合の受信信号強度の平均値である。データステーション10は、求めたスキャン時のPER及び受信信号強度の平均値に加え、その周囲の各中継機20のデータステーション10からのホップ数、その周囲の各中継機20の電池残量、及び、その周囲の各中継機20の下位に包含する通信端末(中継機20及びセンサ30)の総数(以下、「端末接続数」という)を考慮して、新たな接続先を決定する。PER、受信信号強度及びホップ数は、通信状態に関するものである。PERは、通信を行うことができるか否かの指標であり、PERが低くなるほど通信の安定性が高まる。受信信号強度は、各通信の安定性を示す指標であり、受信信号強度が高くなるほど通信の安定性が高まる。ホップ数も、通信の安定性を示す指標であり、ホップ数が少ないほど通信の安定性が高まる。電池残量及び下位の通信端末の総数は、接続先の中継機20の電池の寿命に関するものである。電池残量は、多くなるほど電池寿命は長くなる。下位に包含する通信端末とは、一の中継機20の下位側に直接的(1ホップで)又は間接的(複数ホップで)に接続された中継機20及びセンサ30を意味する。端末接続数が大きくなるほど、中継処理やセンサ30との信号の送受信が増加するので中継機20の消費電力大きくなり、電池寿命が短くなる。データステーション10は、まず通信状態に関するパラメータに基づいて新たな接続先を決定し、通信状態に関するパラメータでは中継機20の優劣が付かない場合には、電池寿命に関するパラメータに基づいて新たな接続先を決定する。
尚、電池残量は、前述の収集処理時に中継機20及びセンサ30において推定されている。各中継機20は、収集処理時にセンサ30の電池残量及び中継機20自身の電池残量を、センサ30の検出値と併せてデータステーション10に返信している。こうして、データステーション10は、収集処理中にセンサ30の検出値だけでなく、各中継機20及びセンサ30の電池残量も収集している。
例えば、図1における中継機20cの新たな接続先を決定する場合について説明する。中継機20cは、スキャン処理において、その周囲の中継機20a,20b,20d,20f,20g,20kからの同期信号を受信できたとすると、中継機20cについては、中継機20a,20b,20d,20f,20g,20kのそれぞれとの間でのスキャンデータが取得される。
ここで、中継機20fは、中継機20cの下位に存在するので、新たな接続先の候補から除外される。ただし、中継機20fの新たな接続先の決定も並行して実行され、中継機20fの新たな接続経路上に中継機20cが含まれない場合には、中継機20fを、中継機20cの新たな接続先の候補に残してもよい。
データステーション10は、中継機20cと中継機20aとの間のスキャン時のPER、中継機20cと中継機20bとの間のスキャン時のPER、中継機20cと中継機20dとの間のスキャン時のPER、中継機20cと中継機20gとの間のスキャン時のPER、及び、中継機20cと中継機20kとの間のスキャン時のPERを求める。中継機20cがスキャン処理のたびに同期信号を受信できるか、スキャン処理の際に同期信号を受信できない場合があるかは、中継機20cと中継機20a,20b,20d,20g,20kのそれぞれとの間の通信環境に依存する。そのため、各中継機20との間のスキャン時のPERは、それぞれ異なり得る。
さらに、データステーション10は、中継機20cと中継機20aとの間の受信信号強度の平均値、中継機20cと中継機20bとの間の受信信号強度の平均値、中継機20cと中継機20dとの間の受信信号強度の平均値、中継機20cと中継機20gとの間の受信信号強度の平均値、及び、中継機20cと中継機20kとの間の受信信号強度の平均値を求める。各中継機20との間の受信信号強度は、中継機20cと中継機20a,20b,20d,20g,20kのそれぞれとの間の通信環境に依存する。
データステーション10は、ツリーテーブルに基づいて、中継機20a,20b,20d,20g,20kのそれぞれのホップ数を求める。ホップ数は、中継機20aは1であり、中継機20bは2であり、中継機20dは2であり、中継機20gは3であり、中継機20kは2である。
また、データステーション10は、中継機20a,20b,20d,20g,20kのそれぞれの最新の電池残量を記憶部13から読み出す。
データステーション10は、ツリーテーブル及びセンサテーブルに基づいて、中継機20a,20b,20d,20g,20kの端末接続数を求める。このとき、中継機20c及びその下位に繋がっている通信端末の個数は、端末接続数に含めない。中継機20aの端末接続数は15であり、中継機20bの端末接続数は4であり、中継機20dの端末接続数は8であり、中継機20gの端末接続数は7であり、中継機20kの端末接続数は2である。尚、端末接続数は、センサ30を考慮せず、中継機20だけを考慮してもよい。
そして、データステーション10は、PER、受信信号強度の平均値、ホップ数、電池残量及び端末接続数をこの順で優先的に考慮して中継機20cの新たな接続先を決定する。例えば、中継機20cと中継機20dとの間のスキャン時のPERが最小であれば、データステーション10は、中継機20dを中継機20cの新たな接続先に決定する。中継機20b,20dのPERが共に最小であれば、データステーション10は、中継機20b,20dのうち受信信号強度の平均値が大きい方を中継機20cの新たな接続先に決定する。中継機20b,20dの受信信号強度の平均値が略同じであれば、データステーション10は、中継機20b,20dのうちホップ数が小さい方を中継機20cの新たな接続先に決定する(図1の例では、ホップ数は2で同じ)。中継機20b,20dのホップ数が同じであれば、データステーション10は、中継機20b,20dのうち電池残量が多い方を中継機20cの新たな接続先に決定する。中継機20b,20dの電池残量が略同じであれば、データステーション10は、中継機20b,20dの端末接続数が少ない方を中継機20cの新たな接続先に決定する。図1の例では、中継機20bの方が端末接続数が少ないので、中継機20bが中継機20cの新たな接続先に決定される(図1に破線で示す)。
データステーション10は、このような新たな接続先の決定を全ての中継機20及びセンサ30のそれぞれについて実行する。
新たな接続先が決定されると、データステーション10は、ステップSb3において、新たな接続先を中継機20及びセンサ30に通知する。具体的には、データステーション10は、新たな接続先に基づいてツリーテーブル及びセンサテーブルを更新し、更新したツリーテーブルを全ての中継機20に通知する。図11に更新後のツリーテーブルを示す。図11では、更新された情報に下線が付されている。中継機20cの接続先が中継機20bに更新されている。
センサ30の接続先が更新された場合には、データステーション10は、新たなセンサ30が接続された中継機20に、センサ接続情報、即ち、接続されたセンサ30を特定する情報を通知すると共に、接続先が変更されたセンサ30に中継機接続情報、即ち、繋がる中継機20を特定する情報及び該中継機20のスロット番号を通知する。さらに、データステーション10は、ツリーテーブルに基づいてルーティングテーブルを更新する。
更新されたツリーテーブルを受信した中継機20は、ツリーテーブルを記憶部23に保存すると共に、ツリーテーブルに基づいてルーティングテーブルを更新する。図12に、中継機20aの更新後のルーティングテーブルを示す。図12では、更新された情報に下線が付されている。最終送信先が中継機20c及び中継機20fの場合の1ホップ先の送信先が、それぞれ中継機20bに更新されている。
また、新たなセンサ接続情報を受信した中継機20は、センサ接続情報を更新する。該中継機20は、以降の処理(例えば、収集処理)では新たに接続されたセンサ30に対して処理を実行する。
新たな中継機接続情報及び新たなスロット番号を受信したセンサ30は、中継機接続情報及びスロット番号を更新する。該センサ30は、新たな中継機20の特定スロットに応じてアクティブ状態となり、検出値を該中継機20に送信する。
こうして、通信端末の接続先の更新が完了する。
このように、データステーション10は、定期的又は所定の条件が成立したときに中継機20及びセンサ30にその周囲の通信端末との通信状態をスキャンさせ、各中継機20及びセンサ30の周囲の通信状態を収集する。そして、データステーション10は、定期的又は所定の条件が成立したときに、収集しておいた各中継機20及びセンサ30の周囲の通信状態に基づいて各中継機20及びセンサ30の接続先を通信状態が改善されるように更新する。これにより、無線通信システム100における通信を安定させることができる。
以上のように、無線通信システム100は、無線通信により互いに接続されるデータステーション10、中継機20及びセンサ30(複数の通信端末)を備え、データステーション10、中継機20及びセンサ30の間では、信号を送受信する互いの接続先が規定されており、データステーション10、中継機20及びセンサ30は、他の通信端末との間の通信状態を収集し、収集された通信状態に基づいて接続先を更新する。
この構成によれば、通信端末の接続先が一旦、規定されても、周囲の他の通信端末との間の通信状態に基づいて接続先が更新される。つまり、各通信端末は、その周囲の他の通信端末との間の通信状態を収集している。仮に一の通信端末とその接続先として規定された別の通信端末との間の通信状態が悪化したとしても、該一の通信端末とその周囲の他の通信端末との間の通信状態に基づいて、該一の通信端末の新たな接続先が決定される。こうして、接続先を更新することによって、各通信端末間での通信状態を改善することができ、ひいては、無線通信システム100の通信を安定させることができる。
また、複数の無線端末は、データステーション10(親機)と複数の中継機20及びセンサ30(子機)とを含み、中継機20及びセンサ30は、他の中継機20及びセンサ30との通信状態を収集し、データステーション10は、中継機20及びセンサ30によって収集された通信状態に基づいて、中継機20及びセンサ30の接続先を更新する。
この構成によれば、他の通信端末との通信状態の収集を、複数の中継機20及びセンサ30のそれぞれが行う。そして、データステーション10が、収集された通信状態に基づいて中継機20及びセンサ30の接続先を更新する。
さらに、データステーション10は、複数のタイムスロットを含む通信スケジュールに従って中継機20と通信を行い、中継機20のそれぞれは、複数のタイムスロットのうちの特定スロットが割り当てられ、割り当てられた特定スロットにおいてデータステーション10と通信を行うように構成され、通信状態を収集する際には、他の中継機20が割り当てられた特定スロットにおいて他の中継機20が送信する信号に基づいて他の中継機20との通信状態を求める。
この構成によれば、複数の中継機20のそれぞれには特定スロットが割り当てられ、データステーション10と各中継機20とは、対応する特定スロットにおいて通信を行う構成が前提となる。そして、一の中継機20は、自身の特定スロットにおいて他の中継機20との通信状態を取得するのではなく、他の中継機20の特定スロットにおいて該他の中継機20との通信状態を取得する。他の中継機20の特定スロットにおいては、該他の中継機20が何らかの処理を行っており、即ち、何らかの信号を送信し得る。つまり、一の中継機20は、他の中継機20の特定スロットにおいて該他の中継機20が送信する信号を利用して該他の中継機20との通信状態を求める。
さらに、中継機20のそれぞれは、特定スロットにおいて同期信号を送信するように構成され、通信状態を収集する際には、他の中継機20が割り当てられた特定スロットにおいて他の中継機20が送信する同期信号に基づいて他の中継機20との通信状態を求める。
この構成によれば、各中継機20が自身の特定スロットにおいて同期信号を送信する構成が前提となる。そして、一の中継機20は、通信状態を収集する際には、他の中継機20が送信する同期信号を利用して、該他の中継機20との通信状態を求める。つまり、中継機20は、通信状態を収集するための特別な信号の送受信を行う必要はない。これにより、通信状態を収集する際の処理の簡略化及びトラフィックの低減を図ることができる。
また、中継機20のそれぞれは、特定スロット内の所定の送信タイミングで同期信号を送信するように構成され、通信状態を収集する際には、他の中継機20が割り当てられた特定スロットにおいて、同期信号の送信タイミングを含む一部の期間でアクティブ状態となって同期信号を待機し、一部の期間以外ではスリープ状態となる。
この構成によれば、特定スロットにおいては、同期信号が送信されるタイミングが決まっている。そこで、中継機20は、通信状態を収集する際に、他の中継機20の特定スロットの全期間でアクティブ状態となるのではなく、特定スロットのうち同期信号の送信タイミングを含む一部の期間だけアクティブ状態となり、それ以外の期間ではスリープ状態となる。それにより、通信状態を収集する際の中継機20の消費電力を低減することができる。
データステーション10、中継機20及びセンサ30は、通信状態として、通信の可否及び受信信号強度を収集し、収集された通信の可否及び受信信号強度に基づいて接続先を更新する。
この構成によれば、通信端末の接続先が通信の可否及び受信信号強度に基づいて更新されるので、通信端末間のPER及び受信信号強度を改善することができる。
《その他の実施形態》
以上のように、本出願において開示する技術の例示として、前記実施形態を説明した。しかしながら、本開示における技術は、これに限定されず、適宜、変更、置き換え、付加、省略などを行った実施の形態にも適用可能である。また、前記実施形態で説明した各構成要素を組み合わせて、新たな実施の形態とすることも可能である。また、添付図面および詳細な説明に記載された構成要素の中には、課題解決のために必須な構成要素だけでなく、前記技術を例示するために、課題解決のためには必須でない構成要素も含まれ得る。そのため、それらの必須ではない構成要素が添付図面や詳細な説明に記載されていることをもって、直ちに、それらの必須ではない構成要素が必須であるとの認定をするべきではない。
前記実施形態について、以下のような構成としてもよい。
例えば、無線通信システム100は、蒸気システム以外に適用してもよい。また、センサ30は、スチームトラップTの振動数及び温度を検出しているが、これ以外の物理量(例えば、電力等)を検出してもよい。
また、無線通信システム100は、センサ30を含んでいなくてもよい。つまり、中継機20は、センサ30の検出値以外のデータをデータステーション10へ送信するものであってもよい。さらに、無線通信システム100は、データステーション10を含んでいなくてもよい。すなわち、無線通信システム100は、少なくとも複数の中継機20を含んでいればよい。
データステーション10は、通信スケジュールに従って中継機20と通信を行い、中継機20にセンサ30の検出値を返信するように要求しているが、これに限られるものではない。例えば、データステーション10は、センサ30のそれぞれを最終送信先として通信を行い、センサ30に指令を直接送信する構成であってもよい。
データステーション10と中継機20とは、通信スケジュールに従って通信を行わなくてもよい。
また、通信スケジュールは、タイムスロットがマトリックス状に規定されていなくてもよい。中継機20へのタイムスロットの割り当ては、ネットワークの階層ごとでなくてもよい。また、1つの中継機20に1つの特定スロットが割り当てられているが、1つの中継機20に2以上の特定スロットが割り当てられていてもよい。
前記実施形態では、中継機20及びセンサ30が他の通信端末との通信状態を収集し、収集された通信状態をデータステーション10に集約させ、データステーション10が通信状態に基づいて接続先を更新し、更新された接続先がデータステーション10から中継機20及びセンサ30に通知され、中継機20及びセンサ30は、自身が保持する接続先の情報を更新する。しかしながら、本発明は、このような構成に限定されない。つまり、他の通信端末との通信状態を収集するのは中継機20又はセンサ30であるが、収集された通信状態に基づいて接続先を更新するのは、データステーション10でなくてもよく、中継機20又はセンサ30であってもよい。例えば、他の通信端末との通信状態を収集した中継機20及びセンサ30のそれぞれが、該通信状態に基づいて接続先を更新してもよい。
また、中継機20及びセンサ30は、データステーション10からの指令ではなく、自発的にスキャン処理を実行してもよい。特に、定期的にスキャン処理を実行する場合には、中継機20及びセンサ30自身がスキャン処理を実行する周期を計時し、スキャン処理を実行し、スキャンデータをデータステーション10へ送信してもよい。あるいは、上位又は下位の通信端末との受信信号強度に基づいてスキャン処理を実行するか否かが判定される場合にも、中継機20及びセンサ30自身がスキャン処理を実行するか否かを判定し、自発的にスキャン処理を実行してもよい。
また、中継機20及びセンサ30は、通信状態として、通信の可否及び受信信号強度以外のものを取得してもよい。
スキャン処理は、更新処理と独立してではなく、更新処理の一環として行われてもよい。つまり、更新条件が成立した場合に、データステーション10は、スキャン処理を1回又は複数回行ってもよい。ただし、スキャン処理を更新処理とは別に実行しておくことによって、或る程度の期間にわたる複数回のスキャンデータに基づいて通信端末間の通信状態を判定することができる。
また、中継機20及びセンサ30は、他の通信端末(データステーション10、中継機20及びセンサ30)が送信する同期信号に基づいて、通信の可否及び受信信号強度を取得しているが、同期信号以外の信号に基づいて通信の可否受信信号強度を取得してもよい。
中継機20及びセンサ30の新たな接続先は、スキャン時のPER、スキャン時の受信信号強度、ホップ数、電池残量、及び、下位に繋がっている通信端末の総数に基づいて決定されているが、これに限られるものではない。例えば、中継機20及びセンサ30の新たな接続先は、スキャン時のPER又はスキャン時の受信信号強度に基づいて決定されてもよい。あるいは、中継機20及びセンサ30の新たな接続先は、新たな接続先となる中継機20の電池残量に基づいて決定されてもよい。さらには、中継機20及びセンサ30の新たな接続先は、スキャン時のPER、スキャン時の受信信号強度、ホップ数、電池残量、及び、下位に繋がっている通信端末の総数のそれぞれに重み付けをして、それらを総合的に考慮して決定されてもよい。
中継機20及びセンサ30の接続先を、ツリーテーブル、ルーティングテーブル、センサテーブル、センサ接続情報及び中継機接続情報として規定されている。しかし、接続先は、これらとは異なる形で規定されていてもよい。例えば、無線通信システム100は、ダウンリンク方向のルートを規定したルーティングテーブルを保持しているが、アップリンク方向のルートを規定したルーティングテーブルを中継機20及びセンサ30の接続先として保持していてもよい。また、前述のツリーテーブル、ルーティングテーブル、センサテーブルの形式も一例に過ぎず、異なる形式であってもよい。
前述のフローチャートは、一例に過ぎず、前述のステップを省略したり、別のステップを追加したりしてもよい。