以下に添付図面を参照して、本発明にかかる判定方法、およびシステムの実施の形態を詳細に説明する。
図1は、本発明にかかる集約装置による一動作例を示す説明図である。システム100は、複数の通信装置である複数の集約装置101と、複数の通信ノードである複数のセンサーノード102とを有する。複数の集約装置101の各々は、送信指示を送信したり、送信指示に対する送信信号を受信して、送信信号に応じた処理を実行するコンピュータである。システム100では、測定の対象となる設置領域ar内にばらまかれた複数のセンサーノード102がマルチホップ通信によって連携しながら動作する。
複数のセンサーノード102の各々は、センサーと、自発電を行うハーベスタと、発電した電力を充電するバッテリと、を有する。複数のセンサーノード102の各々は、PC(Personal Computer)や携帯電話等の携帯端末装置と比較して使用可能な電力量が少なく、マイクロプロセッサ(以下、「MCU(Micro Control Unit)」と称する。)などの性能が低い。
各センサーノード102は、ハーベスタによってバッテリに電力を蓄えるため、蓄電可能な電力量が少ない。そのため、各センサーノード102は、センシングと、センシングに応じた処理の実行と、実行結果の送信と、などの一連の動作を1回行うと、バッテリの電力が低下し、バッテリに電力を充電している一定時間動作を行えない。そして、各センサーノード102は、信号伝播を送信指示の送信元へ返すように往復させることができない。
そこで、本実施の形態にかかるシステム100では、複数の集約装置101のいずれかが送信した送信指示を複数のセンサーノード102がマルチホップ通信によって伝搬させる。そして、システム100では、複数のセンサーノード102からの送信指示に対する送信信号をマルチホップ通信によって複数の集約装置101のうちの当該いずれかの集約装置101と異なる集約装置101が受信する。そして、送信信号を受信した集約装置101が送信信号に基づく処理を実行する。複数の集約装置101は、ネットワークNETを介して通信が可能とする。1回の送信指示に対して信号伝搬を送信指示の送信元へ往復させることができなくとも、他の集約装置101が各センサーノード102からの送信信号を受信する。
ここで、各センサーノード102の特性を以下に挙げる。各センサーノード102は設置領域ar内に任意にばらまかれるため、隣接するセンサーノード102がどのセンサーノード102であるか、自センサーノード102が設置領域ar内のどこに位置するかは自明でない。各センサーノード102には、自己診断中やデータ処理中などの複数の状態があるが、多重割り込み処理を行うことができない、または多重割り込み処理に制約がある。たとえば、各センサーノード102は、自ノードの故障であることを示す情報を自発的に集約装置101へ送信できない。または、たとえば、各センサーノード102は、多重化割り込み処理ができないため、故障が発生すると、何ら反応をしないか異常なデータを送信する可能性がある。
また、センサーノード102は、品質が一様でないと、複数のセンサーノード102のうち、故障するセンサーノード102は任意の確率で発生する。
上述したように、送信指示を送信した集約装置101と異なる集約装置101が送信指示に対する送信信号を受信する。送信指示は、たとえば、センサーノード102にセンシングしたセンシングデータを送信させる指示(「データ取得指示」と称する。)である。
たとえば、集約装置101−Aが送信指示を送信する第1通信装置とし、集約装置101−Bが送信指示に対する送信信号を受信する第2通信装置とする例について説明する。集約装置101−Bは、複数のセンサーノード102の間のマルチホップ通信により伝搬された送信指示に対する複数のセンサーノード102からの送信信号を複数のセンサーノード102の間のマルチホップ通信により受信する。コンピュータが、集約装置101−Bが送信信号を受信した際の、集約装置101−Aから集約装置101−Bまでの第1通信経路r1に関する第1情報を取得する。ここで、コンピュータは、集約装置101であってもよいし、ネットワークNETに接続された他の装置であってもよい。たとえば、集約装置101−Bに設けられたコンピュータであれば、第1情報を他の通信装置に転送させる手間を省くことができる。第1通信経路r1に関する第1情報は、たとえば、いずれのセンサーノード102を経由してきたかの識別情報が経由順に並べられた情報であったり、第1通信経路r1上のホップ数であってもよい。
コンピュータは、集約装置101−Aによって信号が送信されてから、複数のセンサーノード102の間のマルチホップ通信により伝搬されて信号が集約装置101−Bによって受信されるまでの第2通信経路r2に関する第2情報を記憶装置から取得する。第2通信経路r2に関する第2情報は、たとえば、第1通信経路r1に関する第1情報と同一種類のデータである。記憶装置としては、たとえば、ROM(Read Only Memory)、RAM(Random Access Memory)、や不揮発メモリが挙げられる。コンピュータは、第1情報と、第2情報と、を比較することにより、第1通信経路r1と第2通信経路r2との一致を判定する。
これにより、送信指示の送信元である集約装置101に対して、送信信号が戻ってこなくとも、複数のセンサーノード102内のいずれかのセンサーノード102に関する異常を判定することができる。
(センサーノード102のハードウェア構成例)
図2は、センサーノードのハードウェア構成例を示すブロック図である。センサーノード102は、MCU201と、センサー202と、無線通信回路(RF(Radio Frequency))203と、RAM204と、ROM205と、不揮発メモリ206と、アンテナ207と、ハーベスタ208と、バッテリ209と、PMU(Power Management Unit)210と、を有する。センサーノード102は、MCU201と、センサー202と、無線通信回路203と、RAM204と、ROM205と、不揮発メモリ206と、を接続する内部バス211を有する。
センサー202は、設置箇所における所定の変位量を検出する。センサー202は、たとえば、設置箇所の圧力を検出する圧電素子や、温度を検出する素子、光を検出する光電素子などを用いることができる。アンテナは、集約装置101と無線通信する電波を送受信する。無線通信回路203は、受信した無線電波を受信信号として出力し、送信信号を無線電波としてアンテナを介して送信する。
MCU201は、センサー202が検出したデータを処理する。RAM204は、MCU201における処理の一時データを格納する。RAM204は、MCU201における処理の一時データを格納する。ROM205は、MCU201が実行する処理プログラムなどを格納する。不揮発メモリ206は、書き込み可能なメモリであって、電力供給が途絶えたときなどにおいても書き込まれた所定のデータを保持する。たとえば、書き込み可能な不揮発メモリ206は、フラッシュメモリが挙げられる。
ハーベスタ208は、センサーノード102の設置箇所における外部環境、たとえば、光、振動、温度、無線電波(受信電波)などのエネルギー変化に基づき発電を行う。ハーベスタ208は、センサー202によって検出された変位量に応じて発電を行ってもよい。バッテリ209は、ハーベスタ208により発電された電力を蓄える。すなわち、センサーノード102は、二次電池や外部電源などが不要であり、動作に必要な電力を自装置の内部で生成する。PMU210は、バッテリ209によって蓄えられた電力を、センサーノード102の各部に駆動電源として供給する制御を行う。
(集約装置101のハードウェア構成例)
図3は、集約装置のハードウェア構成例を示すブロック図である。集約装置101は、センサーノード102と異なり、外部電源に基づき動作する。集約装置101は、センサーノード102のMCU201よりも高性能なプロセッサ(CPU(Central Processing Unit))301と、大容量のROM302、RAM303、および不揮発メモリ304と、インターフェース(I/O(Input/Output))回路305と、を有する。集約装置101は、CPU301と、ROM302と、RAM303と、不揮発メモリ304と、I/O回路305と、を接続するバス309を有する。
ここで、CPU301は、集約装置101の全体の制御を司る。CPU301は、ROM302、RAM303、不揮発メモリ304などの記憶装置に記憶されている判定プログラムなどの各種プログラムを実行することにより、記憶装置内のデータを読み出したり、実行結果となるデータを記憶装置に書き込んだりする。
また、I/O回路305には、アンテナ307および無線通信回路(RF)306と、ネットワークI/F308が接続されている。これにより、集約装置101は、アンテナ307および無線通信回路306を介して、センサーノード102と無線通信することができる。さらに、集約装置101は、ネットワークI/F308を介して、TCP/IPのプロトコル処理などにより、インターネットなどのネットワークNETを介してサーバやユーザ端末などの外部装置と通信を行うことができる。また、図示していないが、集約装置101はディスプレイやキーボード、またはタッチパネル式のディスプレイなどの入力装置や出力装置を有していてもよい。
図4は、各センサーノードについての状態定義とプロトコルを示す説明図である。表400は、各プロトコルによって判別されるセンサーノード102の状態を示している。たとえば、本実施の形態では、集約装置101による4つのプロトコルが定義されている。プロトコル1はデータ再取得指示であり、プロトコル2は検査指示であり、プロトコル3は検査指示であり、プロトコル4はデータ取得指示である。検査指示は、複数のセンサーノード102に自ノードを検査させる指示である。データ再取得指示は、センサーノード102に関する異常があると判定された場合に、異常の種類を特定するために再度データを取得させるための指示である。プロトコル2は、センサーノード102に関する異常があると判定された場合に、異常の種類を特定するために送信される。一方、プロトコル3は、定常時にセンサーノードに自ノードを検査させる際に送信される。
ここで、センサーノード102の状態には、故障、孤立、一時異常、チャージ、センサー、正常がある。故障状態とは、センサーノード102のハードウェアが故障している状態を示す。孤立状態とは、センサーノード102が他のセンサーノード102とマルチホップ通信可能な状態でないことを示す。たとえば、孤立状態は、センサーノード102の設置箇所の環境の破断やセンサーノード102の設置箇所の状態変化による未達によって生じる。具体的に環境の破断とは、センサーノード102が壁に埋め込まれている場合に壁が崩れると、センサーノード102の位置がずれるなどによって、位置がずれたセンサーノード102と他のセンサーノード102との位置関係が以前と異なることを示す。
たとえば、一時異常状態とは、センサーノード102が応答中にノイズが発生してしまうなどの偶発的に異常が発生する状態を示す。たとえば、チャージ状態とは、バッテリ209に電力をチャージ中であることを示す。上述したように、各センサーノード102は、バッテリ209に充電された電力の量が少ない。ここでは、たとえば、センサーノード102は、各指示を受信、各指示に対する処理の実行などの一連の処理を行うだけで、バッテリ209に充電された電力が無くなってしまうこととしている。ただし、センサーノード102の構成については特に限定していないため、種々変更可能である。
たとえば、センサー状態とは、自ノードによる自発的にセンシングを行っている状態を示す。上述したように、多重の割り込み処理ができないため、センシング中には、指示を受信できない。たとえば、定常状態とは、センサーノード102に関する異常が発生していない状態を示す。
表400については、プロトコル1とプロトコル2とは、センサーノード102に関する異常があると判定された後に行われるプロトコルである。そのため、集約装置101が、プロトコル1またはプロトコル2を送信前に、各センサーノード102の充電にかかる充電時間待機している。そのため、プロトコル1とプロトコル2の送信時、異常状態がチャージ状態であれば、正常時と同様の応答がセンサーノード102から受信される。
また、一時異常状態やセンサー状態であれば、再度通信を行うことにより、異常が解消される可能性が高い。そのため、表400では、プロトコル1またはプロトコル2の送信時には、正常時と同様の応答がセンサーノード102から受信されることとしている。また、孤立状態の場合、プロトコル2とプロトコル1を受信できないため、応答がない。
また、各センサーノード102は、故障していると、プロトコル4とプロトコル1のようなデータ取得指示について、応答をせずに沈黙している場合と、応答はするが異常値を出力する場合がある。一方、プロトコル2とプロトコル3のような検査指示について、各センサーノード102は、異常であることを応答する。ただし、無線通信回路203やアンテナ207が故障している場合には、各センサーノード102は、送受信ができないため、応答をしない。ここでの故障は、ハードウェアとしては正常に動作し、ソフトウェアも正常にプログラムカウンタによって動作するが、センサーの異常動作、ソフトウェア処理のバグ、メモリ破壊などによる故障である。さらに、ここでの故障は、センサーノード102の自診断機能であるダイアグ測定に対しては応答するが、その応答が正常値を返信しない場合を示す。
また、図示していないが、集約装置101間のプロトコルとして、集約装置101間でのバリア同期処理がある。本実施の形態では、バリア同期によって各集約装置101が実行中の処理を終了したら同期状態になり、すべての集約装置101が同期状態になってから、つぎのプロトコルに関する処理が実行される。
(センサーノード102の機能的構成例)
図5は、センサーノードの機能的構成を示すブロック図である。センサーノード102は、受信部501と、センシング部502と、比較部503と、診断部504と、判断部505と、送信部506と、を有する。センシング部502は、センサー202であって、受信部501と送信部506とは、無線通信回路203とアンテナ207によって実現される。具体的には、たとえば、図2に示したRAM204、ROM205、不揮発メモリ206などの記憶装置に記憶された、図5に示す各部の機能がコーディングされた判定プログラムをMCU201が読み出して、判定プログラムにコーディングされた処理を実行する。これにより、各部の機能が実現される。
(集約装置101の機能的構成例)
図6は、集約装置の機能的構成を示すブロック図である。集約装置101は、記憶装置600と、第1取得部601と、第2取得部602と、判定部603と、制御部604と、を有する。第1取得部601は受信部611を有し、制御部604は受信部612と送信部613とを有する。
受信部611と受信部612と送信部613とは、たとえば、無線通信回路306、アンテナ307、およびネットワークI/F308によって実現される。具体的には、たとえば、図3に示したROM302、RAM303、不揮発メモリ304などの記憶装置に記憶された、図6に示す各部の機能がコーディングされた判定プログラムをCPU301が読み出して、判定プログラムにコーディングされた処理を実行する。これにより、各部の機能が実現される。また、判定プログラムはネットワークI/F308を介して取得してもよい。
記憶装置600は、ROM302、RAM303、不揮発メモリ304などによって実現される。記憶装置600には、集約装置101の間の定常時の通信経路に関する情報を記憶する。設置されたすべての集約装置101がプロトコル発信元に成りうる。定常時の通信経路に関する情報は各集約装置101からの発信のすべてのパターンを記憶装置600に記憶させておかなければならない。そのため、定常時の通信経路に関する情報は、自集約装置101がプロトコルの発信元にならないケースの数だけ、すなわち「集約装置101の数−1」の数だけ、予め記憶装置600に記憶されていることとする。
集約装置101と、センサーノード102と、の各々の詳細な機能部の説明については、上述したプロトコルに沿って説明する。
図7は、異常値がない場合の運用状態フロー例を示す説明図である。図7の例では、プロトコル4による通信例を示す。ここでは、集約装置101−Aがプロトコル4によって送信指示であるデータ取得指示を送信した例を示す。複数のセンサーノード102は、データ取得指示をマルチホップ通信によって、データ取得指示に対するデータ取得を実行しながら集約装置101−Bや集約装置101−Cまでデータ取得指示を伝搬させる。
具体的に、各センサーノード102の受信部501がデータ取得指示を受信すると、センシング部502はセンサーによる測定を行う。ここで、受信部501は、データ取得指示と併せて他のセンサーノード102の判断結果を取得する。
そして、各センサーノード102の比較部503は、センシング部502によって得られるセンシングデータと定常データとを比較することにより、センシングデータが異常値であるか否かを判断する。異常値でない場合を定常値と称する。各センサーノード102の送信部506は、受信した他のセンサーノード102の判断結果と、自ノードによる判断結果と、通信経路に関する情報と、データ取得指示と、を併せて直接通信可能なセンサーノード102へ送信する。図7の例では、センサーノード102−1、センサーノード102−m、センサーノード102−nの順でデータ取得指示と、データ取得指示に対するデータ取得結果と、が伝搬される。たとえば、各センサーノード102は、データ取得結果を伝搬順に並べてセンサーノード102の識別情報を併せて送信することにより、データ取得指示の送信元である集約装置101からの通信経路に関する情報を送信する。データ取得結果は、データ取得指示に対する複数のセンサーノード102からの送信信号である。
ここでは、集約装置101−Aよって送信されたデータ取得指示が、複数のセンサーノード102の間のマルチホップ通信により伝搬される。そして、伝搬されたデータ取得指示に対する複数のセンサーノード102からのデータ取得結果を集約装置101−Bが複数のセンサーノード102の間のマルチホップ通信により受信した例を説明する。理解の容易化のため、図7では、センサーノード102の数を少なくしているが、実際にはセンサーノード102は大量にある。また、判定方法に関する処理を実行するコンピュータは複数あり、複数の集約装置101が連携しながら、行うこととする。
具体的に、第1取得部601−Bは、複数のセンサーノード102からのデータ取得結果を集約装置101−Bがマルチホップ通信により受信した際の、集約装置101−Aから集約装置101−Bまでの第1通信経路r1に関する第1情報を取得する。第1取得部601−Bは、取得した第1情報をRAM303−Bなどの記憶装置に書き込む。第1通信経路r1に関する第1情報は、たとえば、いずれのセンサーノード102を経由してきたかの識別情報が経由順に並べられた情報であったり、第1通信経路r1上のホップ数であってもよい。たとえば、第1取得部601−Bは、複数のセンサーノード102から複数のデータ取得結果を受信すると共に、いずれのセンサーノード102を経由してきたかの識別情報が経由順に並べられた情報を受信する。
第2取得部602−Bは、記憶装置600に記憶された第2通信経路r2に関する第2情報を取得する。第2取得部602−Bは、取得した第2情報をRAM303−Bなどの記憶装置に書き込む。ここでの第2通信経路r2は、集約装置101−Aによって信号が送信されてから、複数のセンサーノード102の間のマルチホップ通信を行うことにより伝搬されて信号が集約装置101−Bによって受信されるまでである。第2通信経路r2に関する第2情報は、第1通信経路r1に関する第1情報と同様に、たとえば、いずれのセンサーノード102を経由してきたかの識別情報が経由順に並べられた情報であったり、第2通信経路r2上のホップ数であってもよい。第1情報と第2情報との種類は同一である。具体的に、第2取得部602−Bは、記憶装置600から第2通信経路r2に関する第2情報を読み出す。また、通信経路についての候補は複数あってもよいため、第2通信経路r2に関する情報が複数種類あってもよい。また、1回のデータ取得指示であっても、複数通りの通信経路ができるため、第1通信経路r1と第2通信経路r2はそれぞれ複数ある。
判定部603−Bは、第1取得部601−Bによって取得された第1情報と、第2取得部602−Bによって取得された第2情報と、を比較する。具体的には、判定部603−Bは、RAM303−Bなどの記憶装置から読み出した第1情報と第2情報とを比較する。これにより、判定部603−Bは、複数のセンサーノード102のうちのいずれかのセンサーノード102に関する異常があるか否かを判定する。たとえば、判定部603−Bは、第1情報と、第2情報と、が一致している場合、第1通信経路r1と第2通信経路r2とが一致していると判断する。定常時と同様の通信経路であればセンサーノード102は応答をし、センサーノード102間の位置関係に変化があっても、他のセンサーノード102と通信可能であれば、応答するため、センサーノード102に関する異常がないと判定することができる。
一方、たとえば、判定部603−Bは、第1情報と、第2情報と、が一致していない場合、第1通信経路r1と第2通信経路r2とが一致していないと判断する。定常時と同様の通信経路でない場合、センサーノード102が応答をしていない場合やセンサーノード102間の位置関係の変化によって応答できない場合があるため、いずれかのセンサーノード102に関する異常があると判定することができる。
または、たとえば、第1情報と第2情報とがホップ数である場合に、判定部603−Bは、第1情報と、第2情報と、の差が所定範囲内であれば、第1通信経路r1と第2通信経路r2とが一致していないと判断してもよい。そして、いずれかのセンサーノード102に関する異常がないと判定することができる。一方、たとえば、第1情報と第2情報とがホップ数である場合に、判定部603−Bは、第1情報と、第2情報と、の差が所定範囲内でない場合、第1通信経路r1と第2通信経路r2とが一致していると判断してもよい。そして、いずれかのセンサーノード102に関する異常があると判定することができる。所定範囲については、センサーノード102の数やシステム100設計時の通信経路に応じてシステム100の設計者が定めたり、ユーザが定めてもよい。図7では、いずれかのセンサーノード102に関する異常がないと判定された例を示す。
また、判定部603−Bは、受信された複数のデータ取得結果の中に、異常値であることを示す情報が含まれているか否かを判定してもよい。
また、プロトコル4によるデータ取得結果を受信した集約装置101−Bは、他の集約装置101や通信可能な他のコンピュータにデータ取得結果を転送してもよい。これにより、集約装置101−Bは、各機能部によって異常判定に関する処理を他の集約装置101や通信可能な他のコンピュータに実行させてもよい。また、データ取得結果を受信した集約装置101−Bが、異常判定に関する処理を実行することにより、データ取得結果を転送する処理を省くことができる。
図8は、故障がない場合の検査フロー例を示す説明図である。図8の例では、プロトコル3による通信例を示す。図8の例では、プロトコル3による通信例を示す。たとえば、集約装置101−Aが、検査指示を送信する。複数のセンサーノード102は、検査指示をマルチホップ通信によって、検査指示に対する各センサーノード102の自ノードの検査を実行しながら集約装置101−Bや集約装置101−Cまで検査結果を伝搬させる。
具体的に、各センサーノード102の受信部501は検査指示を受信すると、診断部504はダイアグ測定を行うことにより、自診断を行う。ここで、受信部501は、検査指示と併せて、集約装置101−Aから経由した他のセンサーノード102の検査結果を取得する。たとえば、経由した他のセンサーノード102の検査結果は、それぞれのセンサーノード102の識別情報が付され、経由順に並べられていることとする。
そして、各センサーノード102の判断部505は、診断部504によるダイアグ測定結果が故障であることを示す異常値であったか否かを判断する。測定結果が故障であることを示す異常値でない場合、定常値と称する。図8の例では、各センサーノード102の測定結果はすべて定常値である。送信部506は、自センサーノード102の識別情報を付した、判断部505によって得られる検査結果を周辺のセンサーノード102へマルチホップ通信により送信する。さらに、送信部506は、検査結果と共に、受信部501によって受信された検査指示と、経由した他のセンサーノード102の検査結果と、を併せて、周辺のセンサーノード102へマルチホップ通信により送信する。
図8の例では、センサーノード102−1、センサーノード102−m、センサーノード102−nの順で検査指示と、検査指示に対する検査結果と、が伝搬される。たとえば、各センサーノード102は、検査結果を伝搬順に並べてセンサーノード102の識別情報を併せて送信することにより、検査指示の送信元である集約装置101からの通信経路に関する情報を送信する。
第1取得部601−Bは、複数のセンサーノード102からの検査結果を取得する。ここで、取得される検査結果は、集約装置101−Aと異なる集約装置101−Bが受信した、集約装置101−Aによって送信され複数のセンサーノード102の間のマルチホップ通信により伝搬された検査指示に対する検査結果である。
判定部603−Bは、第1取得部601−Bによって取得された検査結果に基づいて、いずれかのセンサーノード102に故障があるか否かを判定する。これにより、故障が発生したセンサーノード102を特定することができる。たとえば、判定部603−Bは、検査結果が定常値でないことを示す情報であるセンサーノード102は故障していると判定する。一方、たとえば、判定部603−Bは、検査結果が定常値であることを示す情報であるセンサーノード102は故障していると判定する。
また、第1取得部601−Bは、集約装置101−Aが検査指示を送信してから、複数のセンサーノード102の間のマルチホップ通信により検査結果を集約装置101−Bが受信するまでの第1通信経路r1に関する情報を取得する。
第2取得部602−Bは、第2通信経路r2に関する情報を記憶装置600から取得する。ここで、第2通信経路r2は、集約装置101−Aによって信号が送信されてから、複数のセンサーノード102の間のマルチホップ通信により伝搬されて信号が集約装置101−Bによって受信されるまでの経路である。
判定部603−Bは、第1取得部601−Bによって取得された情報と、第2取得部602−Bによって取得された情報と、を比較してもよい。たとえば、第1取得部601−Bによって取得された情報と、第2取得部602−Bによって取得された情報と、が一致している場合、判定部603−Bは、第1通信経路r1と第2通信経路r2とが一致していると判定する。これにより、一致している場合、いずれかのセンサーノード102に関する異常がないと判定することができる。一方、たとえば、第1取得部601−Bによって取得された情報と、第2取得部602−Bによって取得された情報と、が一致していない場合、判定部603−Bは、第1通信経路r1と第2通信経路r2とが一致していないと判定する。これにより、一致していない場合、いずれかのセンサーノード102に関する異常があると判定する。
たとえば、判定部603−Bによって故障していないと判断されたにも関わらず、判定部603−Bによって通信経路が異なると判定された場合、集約装置101−Bは、いずれかのセンサーノード102に関する異常があると判定する。ここでの異常とは、いずれかのセンサーノード102に関して、周辺のセンサーノード102との位置関係に異常が発生した、またはいずれかのセンサーノード102がチャージ不足により診断していない場合が挙げられる。位置関係に異常が発生する場合には、たとえば、設置された環境に異変が発生した可能性がある。たとえば、設置された環境異変があると、検査指示を受信できなかったり、以前と異なるセンサーノード102から検査指示を受信したり、または以前と異なるセンサーノード102へ検査指示を伝搬する可能性がある。図7では、いずれかのセンサーノード102に関する異常値がないと判定された例を示している。
図9は、図7と図8に示した指示の伝搬例を示す説明図である。集約装置101−Aが、データ取得指示または検査指示を複数のセンサーノード102に対して送信する。たとえば、センサーノード102−1、センサーノード102−m、センサーノード102−nの順に指示と指示に対する応答とが伝搬され、集約装置101−Bまたは集約装置101−Cまで到達する。
また、プロトコル3による検査指示やプロトコル4によるデータ取得指示を各集約装置101が送信するタイミングについては、たとえば、ユーザに指示されたタイミングであってもよいし、一定周期であってもよいし、特に限定しない。
図10は、センサーノードに関する異常がある場合の例を示す説明図である。図11は、センサーノードに関する異常がある場合の伝搬例を示す説明図である。センサーノード102−mは、図7に示した例と同様にデータ取得指示をセンサーノード102−1から取得するが、チャージ不足による動作ができない。そのため、センサーノード102−nは、異常が無い場合にはセンサーノード102−mからデータ取得指示を受信していたが、センサーノード102−xからデータ取得指示を受信する。図11に示すように、センサーノード102−mがデータ取得指示やデータ取得指示に対するデータ取得結果を送信できないため、伝搬パターンが変化してしまう。
ここでの第1取得部601−Bと、第2取得部602−Bと、判定部603−Bとは、図7で説明した例と同様に動作する。そのため、図10の例では、判定部603−Bは、第1通信経路r1と第2通信経路r2とが一致していないと判定する。これにより、いずれかのセンサーノード102に関する異常があると判定される。
図12は、チャージ不足の場合における再取得フローを示す説明図である。図13は、チャージ不足の場合における再取得指示の伝搬例を示す説明図である。図12の例では、プロトコル1による通信例を示す。制御部604−Bは、判定部603−Bによって第1通信経路r1と第2通信経路r2とが一致していないと判定された場合、データ取得信号を集約装置101−Bが受信してから複数のセンサーノード102の各々の充電にかかる充電時間待機する。充電時間はセンサーノード102の設計時に定められた値である。そして、制御部604−Bは、待機後に、集約装置101−Cによって第2送信指示を複数のセンサーノード102へ送信させる。ここでの第2送信指示は、上述したプロトコル1によるデータ再取得指示である。
また、制御部604−Bは、判定部603−Bによって第1通信経路r1と第2通信経路r2とが一致していないと判定された後に、複数の集約装置101の間でバリア同期を取る。これにより、複数のセンサーノード102の間での異常判定に関する検査指示の伝搬が他の指示の伝搬によって妨げられるのを防ぐことができる。したがって、判定精度を向上させることができる。そして、制御部604−Bは、バリア同期によって複数の集約装置101のうちの最後に同期状態になった集約装置101にプロトコル1によるデータ再取得指示を送信させる。このように、複数ある集約装置101のうちのいずれの集約装置にデータ再取得指示を送信させるかを予め定めておくことにより、通信時にいずれの集約装置に送信させるかを決定する処理を省くことができる。図12の例では、集約装置101−Cが最後に同期状態となるためデータ再取得指示を送信する。
集約装置101−Cは、すべての集約装置101が同期状態になった後に充電時間待機させた後、データ再取得指示を送信する。これにより、センサーノード102に対していずれかの集約装置が最後に指示を送信し、その指示に対する応答が終了してから、すべてのセンサーノード102のバッテリ209への充電を完了させることができる。そのため、各センサーノード102のバッテリ209の充電量が各指示を実行可能な量となる。具体的に、集約装置101−Cは、チャージインターバルをタイマによって測定する。そして、集約装置101−Cはチャージインターバルを測定後に、データ再取得指示を送信する。
ここで、センサーノード102−mがチャージ不足によってデータ取得指示に対する応答ができなかった場合、充電時間分待機されてからデータ再取得指示が送信されたため、センサーノード102−mは、データ再取得指示を受信することができる。図12の例では、センサーノード102−n、センサーノード102−m、センサーノード102−1の順でデータ再取得指示と、再取得結果とが、伝搬される。また、各センサーノード102は、再取得結果がプロトコル4によるデータ取得指示の際の取得結果と一致または所定範囲内であれば、再取得結果を送信しなくてもよい。ただし、センサーノード102は、センサーノード102の識別情報を伝搬順序が区別可能なように送信する。再取得結果がプロトコル4によるデータ取得指示の際の取得結果と一致しないのは、一時的な異常やセンサーノード102の温度などの設置環境に変化があり検出状態が変化した場合である。
図12の例では、集約装置101−Cから集約装置101−Aに伝搬された例を示している。ここでは、集約装置101−Aがセンサーノード102−mに関する異常の種別を特定する。第1取得部601−Aは、集約装置101−Cから集約装置101−Aまでの第3通信経路に関する第3情報を取得する。第1取得部601−Aは、取得した第1情報をRAM303−Aなどの記憶装置に書き込む。ここでの第3通信経路は、集約装置101−Cがデータ再取得指示を送信してから、マルチホップ通信により伝搬され、データ再取得指示に対する複数のセンサーノード102からの第2送信信号である再取得結果を集約装置101−Aが受信するまでの経路である。上述したように、第1取得部601−Aは、通信経路に関する第3情報を受信する。
第2取得部602−Aは、第4通信経路に関する第4情報を記憶装置600から取得する。第2取得部602−Aは、取得した第4情報をRAM303−Aなどの記憶装置に書き込む。ここで、第4通信経路は、集約装置101−Cによって信号が送信されてから、複数のセンサーノード102の間のマルチホップ通信により伝搬されて信号が集約装置101−Aによって受信されるまでの経路である。
判定部603−Aは、第1取得部601−Aによって取得された第3情報と、第2取得部602−Aによって取得された第4情報と、を比較することにより、第3通信経路と第4通信経路とが一致しているか否かを判断する。具体的に、判定部603−Aは、RAM303−Aなどの記憶装置から読み出した第3情報と第4情報とを比較する。これにより、いずれかのセンサーノード102に関する異常が継続しているか否かを判定することができる。
一方、たとえば、第1取得部601−Aによって取得された第3情報と、第2取得部602−Aによって取得された第4情報と、が一致している場合、判定部603−Aは、第3通信経路と第4通信経路とが一致していると判定する。これにより、いずれかのセンサーノード102に関する異常が継続していないと判定することができる。したがって、データ取得指示に対するデータ取得結果受信時の異常は、これにより、チャージ不足、またはノイズなどの一時的に発生した異常であったと特定される。
また、判定部603−Aは、複数のセンサーノード102からの再取得結果に異常値であることを示す情報が含まれているか否かを判断してもよい。
また、図12の例では、プロトコル1によるデータ再取得指示に対するデータ再取得結果を受信した集約装置101−Aは、他の集約装置101や通信可能な他のコンピュータにデータ再取得結果を転送してもよい。れにより、集約装置101−Aは、各機能部によって異常判定に関する処理を他の集約装置101や通信可能な他のコンピュータに実行させてもよい。また、データ再取得結果を受信した集約装置101−Aが、異常判定に関する処理を実行することにより、データ再取得結果を転送する処理を省くことができる。
図14は、異常があると判定されるデータ再取得フロー例を示す説明図である。図15は、異常があると判定される再取得指示の伝搬例を示す説明図である。図14の例では、プロトコル1による通信例を示す。図14の例では、センサーノード102−n、センサーノード102−1の順でデータ再取得指示と、データ再取得指示に対する再取得結果と、が伝搬され、センサーノード102−mはデータ再取得指示を受信できていない。第3通信経路r3は、第4通信経路r4と同様の経路を辿る場合もあれば、迂回してしまう場合もある。
たとえば、第1取得部601−Aによって取得された第3情報と、第2取得部602−Aによって取得された第4情報と、が一致していない場合、判定部603−Aは、第3通信経路r3と第4通信経路r4とが一致していないと判定する。これにより、いずれかのセンサーノード102に関する異常が継続していると判定することができる。したがって、チャージ不足、またはノイズなどの一時的に発生した異常と異なる異常が発生していると判断することができる。
また、図15に示すように、データ再取得指示に対するデータ再取得結果に異常値があると、異常値が伝搬される。そのため、判定部603−Aは、複数のセンサーノード102からの再取得結果に基づいて、再取得結果に異常値であることを示す情報が含まれているか否かを判定してもよい。たとえば、複数のセンサーノード102からの再取得結果に異常値であることを示す情報が含まれている場合、判定部603−Aは、異常が継続していると判断する。または、判定部603−Aは、チャージ不足、またはノイズなどの一時的に発生した異常でない異常が発生していると判断する。
図16は、通信経路が一致しないと判定された後の検査フロー例1を示す説明図である。図17は、検査指示が伝搬される例を示す説明図である。図16の例では、プロトコル2による通信例を示す。制御部604−Aは、判定部603−Aによって異常が継続していると判定された場合、バリア同期を行って、すべての集約装置101が同期状態になった後に充電時間待機させた後、データ再取得指示を送信した集約装置101に検査指示を送信させる。また、制御部604−Aは、第3通信経路r3と第4通信経路r4が一致していない場合にも、バリア同期を行ってすべての集約装置101が同期状態になってから充電時間待機させた後、データ再取得指示を送信した集約装置101に検査指示を送信させてもよい。上述したように、データ再取得指示は集約装置101−Cによって送信された。いずれかの集約装置101が同期状態になる前に複数のセンサーノード102に対して何らかの指示を行っている可能性がある。そのため、同期状態になってから充電時間待機させることにより、各センサーノード102のバッテリ209の充電量が各指示を実行可能な量となる。
集約装置101−Cは、チャージインターバル測定を行うことにより、充電時間待機した後に、検査指示を送信する。複数のセンサーノード102は、検査指示をマルチホップ通信によって、検査指示に対する各センサーノード102の自ノードの検査を実行しながら集約装置101まで検査結果を伝搬させる。
具体的に、各センサーノード102の受信部501が検査指示を受信すると、診断部504はダイアグ測定を行うことにより、自診断を行う。上述したように、受信部501は、検査指示と併せて、集約装置101から経由した他のセンサーノード102の検査結果を取得する。たとえば、経由した他のセンサーノード102の検査結果は、それぞれのセンサーノード102の識別情報が付され、経由順に並べられていることとする。
そして、各センサーノード102の判断部505は、診断部504によるダイアグ測定結果が故障であることを示す異常値であったか否かを判断する。測定結果が故障であることを示す異常値でない場合、定常値と称する。図16の例では、各センサーノード102の測定結果はすべて定常値である。集約装置101は、自センサーノード102の識別情報を付した、判断部505による判断によって得られる検査結果を周辺のセンサーノード102へマルチホップ通信により送信する。さらに、集約装置101は、検査結果と共に、受信部501によって受信された検査指示と、経由した他のセンサーノード102の検査結果と、を周辺のセンサーノード102へマルチホップ通信により送信する。
そして、第1取得部601−Aが、複数のセンサーノード102から検査結果を受信することにより、検査結果を取得する。集約装置101−Cによって送信され複数のセンサーノード102の間のマルチホップ通信により伝搬された検査指示に対する複数のセンサーノード102からの検査結果を取得する。具体的に、第1取得部601−Aは、マルチホップ通信により複数のセンサーノード102から検査結果を受信する。
判定部603−Aは、第1取得部601−Aによって取得された検査結果に基づいて、いずれかのセンサーノード102に故障があるか否かを判定する。
また、図12の例では、プロトコル2による検査指示に対する検査結果を受信した集約装置101−Aは、他の集約装置101や通信可能な他のコンピュータにデータ再取得結果を転送してもよい。れにより、集約装置101−Aは、各機能部によって異常判定に関する処理を他の集約装置101や通信可能な他のコンピュータに実行させてもよい。また、検査結果を受信した集約装置101−Aが、異常判定に関する処理を実行することにより、検査結果を転送する処理を省くことができる。
図18は、異常があると判定された後の検査フロー例2を示す説明図である。図19は、故障時の検査結果が伝搬される例を示す説明図である。図18の例の(1)の場合、センサーノード102−mでは、ダイアグ測定の測定結果が異常値であることを示しているため、判定部603−Aは、センサーノード102−mについての検査結果が故障であることを示していると判断する。図19の伝搬例のように、いずれかのセンサーノード102に故障が発生している場合、センサーノード102は、検査指示に対する検査結果を送信可能であるため、通信経路は正常の状態と同一である可能性が高い。そのため、判定部603−Aは、検査指示に対する検査結果に異常値を示す情報があるか否かを判断することにより、故障の有無を判定することができる。
一方、図18の例の(2)の場合、センサーノード102−mでは、検査指示をセンサーノード102−nから受信しない。そのため、検査指示の送信元である集約装置101−Cから検査結果を受信する集約装置101−Aまでのマルチホップ通信による通信経路が正常の場合と異なる。
図20は、位置関係に異常がある場合の検査指示が伝搬される例を示す説明図である。たとえば、センサーノード102が設置された環境が破断すると、センサーノード102の位置がずれたり、センシング対象と接触していない、などが発生している可能性があり、センサーノード102間の位置関係に異常が発生する。そのため、検査指示の送信元である集約装置101−Cから検査結果を受信する集約装置101−Aまでのマルチホップ通信による通信経路が迂回経路となる。
そこで、第1取得部601−Aは、集約装置101−Cから集約装置101−Aまでの第3通信経路r3に関する第3情報を取得する。第3通信経路r3は、集約装置101−Cから検査指示が送信されてから、複数のセンサーノード102の間のマルチホップ通信により伝搬された検査指示に対する複数のセンサーノード102からの検査結果を集約装置101−Aが受信するまでの経路である。
第2取得部602−Aは、第4通信経路r4に関する第4情報を記憶装置600から取得する。第4通信経路r4は、集約装置101−Cによって信号が送信されてから、複数のセンサーノード102の間のマルチホップ通信により伝搬されて信号が集約装置101−Aによって受信されるまでの経路である。たとえば、第4通信経路r4は定常時の通信経路である。また、たとえば、データ再取得指示を送信後に検査指示を送信し、データ再取得指示を送信した集約装置101と検査指示を送信した集約装置101とが同一の場合、第4通信経路r4は、データ再取得指示を送信時の通信経路であってもよい。
判定部603−Aは、第1取得部601−Aによって取得された第3情報と、第2取得部602−Aによって取得された第4情報と、を比較することにより、第3通信経路r3と第4通信経路r4とが一致しているか否かを判定する。これにより、いずれかのセンサーノード102と周辺のセンサーノード102との位置関係に異常が発生したか否かを判定することができる。たとえば、判定部603−Aは、第3情報と、第4情報と、が一致していない場合、第3通信経路r3と第4通信経路r4とが一致していないと判定する。これにより、いずれかのセンサーノード102と周辺のセンサーノード102との位置関係に異常が発生したと判定することができる。一方、たとえば、判定部603−Aは、第3情報と、第4情報と、が一致している場合、第3通信経路r3と第4通信経路r4とが一致していると判定する。これにより、いずれかのセンサーノード102と周辺のセンサーノード102との位置関係に異常が発生していないと判定することができる。
また、図16と図18の例では、データ再取得指示によっていずれかのセンサーノード102に関する異常が継続していると判定された後に、故障と位置関係の異常とを区別させるため、集約装置101が検査指示を送信している。これに限らず、図10の例によってデータ取得結果によって第1通信経路r1と第2通信経路r2とが一致しないと判定された後、データ再取得指示よりも前に集約装置101は、検査指示を送信させる制御を行ってもよい。
具体的に、たとえば、制御部604は、判定部603によって第1通信経路r1と第2通信経路r2とが一致しないと判定された場合、集約装置101に検査指示を送信させる。または、制御部604は、第1通信経路r1と第2通信経路r2とが一致しないと判定された場合、データ取得指示を集約装置101が受信してから複数のセンサーノード102の各々の充電にかかる充電時間待機する。そして、制御部604は、充電時間待機後に、検査指示を集約装置101によって送信させてもよい。
また、たとえば、制御部604は、判定部603によって第1通信経路r1と第2通信経路r2とが一致しないと判定された後に、複数の集約装置101間でバリア同期を取る。そして、制御部604は、バリア同期を取った際の複数の集約装置101のうちの最後に同期状態になった集約装置101に検査指示を送信させる。これにより、プロトコル4によるデータ取得指示によって異常があると判定された後に、プロトコル1によるデータ取得指示の送信前にプロトコル2による検査指示が送信される。制御部604による制御後の第1取得部601と第2取得部602と判定部603との処理は、図16〜図20に示した処理と同一であるため、詳細な説明を省略する。
本実施の形態では、センサーノード102のバッテリ209の蓄電量が少ないなどの限られた条件下であっても、センサーノード102が設置箇所に関する変位量をセンシングできているかを検出するシステム100を構築することができる。
また、環境の破断や、センサーノード102の間でマルチホップ通信が成立しない状態までセンサーノード102の故障が発生し、設置された集約装置101にセンシングデータが到達しないため、集約装置101がバリア同期できない場合がある。
また、上述したように、プロトコル3による検査指示やプロトコル4によるデータ取得指示を各集約装置101が送信するタイミングについては、たとえば、ユーザに指示されたタイミングであってもよいし、一定周期であってもよい。一方、プロトコル1によるデータ再取得指示やプロトコル2による検査指示を各集約装置101が送信するのは、プロトコル3による検査指示やプロトコル4によるデータ取得指示において、異常が発生したと判定された場合である。
図21は、バリア同期の応答がない例を示す説明図である。図21中×印のセンサーノード102が、故障が発生したセンサーノード102であり、センサーノード102の故障が多発すると、指示や結果が集約装置101−Cにまで伝搬されない。そのため、集約装置101−Cは、同期状態を受け付けても、つぎのプロトコルに移行できる同期状態になれない。そこで、制御部604は、制御部604によって複数の集約装置101間でバリア同期を発行してから、所定時間経過しても同期状態にならない集約装置101があるかを判断しながら、バリア同期を制御する。判定部603は、制御部604によって複数の集約装置101の間でバリア同期を取る際に、複数の集約装置101のうちのいずれか一つの集約装置101がバリア同期を発行してから所定時間経過しても同期状態にならないか否かを判定する。判定部603は、所定時間経過しても同期状態にならない場合、複数のセンサーノード102の間のマルチホップ通信が行えないと判定する。所定時間については、過去の通信時間に基づいてシステム100の設計者が決定してもよいし、ユーザが定めてもよい。図21の例では、集約装置101−Cが同期状態にならない。
そして、集約装置101は、測定環境が破綻したことをユーザに報告してもよい。または、集約装置101は、期待する運用期間とノード故障率から、測定環境に対するセンサーノード102の分布密度を調整させる旨をユーザに出力してもよい。たとえば、集約装置101は、あらたに通信経路に関する情報を取得しなおして、記憶装置600の記憶内容を更新してもよい。
(集約装置101による判定処理手順例)
図22は、集約装置による判定処理手順の例1を示すフローチャートである。図22の例では、データ取得結果は、経由したセンサーノード102の識別情報が経由順に並べられた通信経路に関する情報を有していることする。集約装置101は、プロトコル4によるデータ取得結果を受信したか否かを判断する(ステップS2201)。集約装置101は、プロトコル4によるデータ取得結果を受信していない場合(ステップS2201:No)、ステップS2201へ戻る。一方、集約装置101は、プロトコル4によるデータ取得結果を受信した場合(ステップS2201:Yes)、定常時の通信経路に関する情報を取得する(ステップS2202)。
集約装置101は、受信したデータ取得結果についての通信経路に関する情報が取得した定常時の情報と同じか否かを判断する(ステップS2203)。同じでない場合(ステップS2203:No)、集約装置101は、受信した通信経路に関する情報を記録する(ステップS2204)。そして、集約装置101は、プロトコル1によるデータ再取得、またはプロトコル2による検査指示をバリア同期後に送信させる制御を行い(ステップS2205)、一連の処理を終了する。
同じである場合(ステップS2203:Yes)、集約装置101は、データ取得結果に異常値を示す情報が含まれているか否かを判断する(ステップS2206)。異常値を示す情報が含まれていない場合(ステップS2206:No)、集約装置101は、センサーノード102に関する異常がないことを出力し(ステップS2207)、一連の処理を終了する。異常値を示す情報が含まれている場合(ステップS2206:Yes)、集約装置101は、センサーノード102のセンシングデータに異常があることを出力し(ステップS2208)、一連の処理を終了する。
図22のフローチャートでは、通信経路についての判定を行った後に、異常値を示す情報が含まれているか判定しているが、これに限らず、異常値を示す情報が含まれているか判定した後に、通信経路についての判定を行ってもよい。
図23は、集約装置による判定処理手順の例2を示すフローチャートである。図23の例では、データ再取得結果は、経由したセンサーノード102の識別情報が経由順に並べられた通信経路に関する情報を有していることする。集約装置101は、プロトコル1によるデータ再取得結果を受信したか否かを判断する(ステップS2301)。集約装置101は、プロトコル1によるデータ再取得結果を受信していない場合(ステップS2301:No)、ステップS2301へ戻る。一方、集約装置101は、プロトコル1によるデータ再取得結果を受信した場合(ステップS2301:Yes)、定常時の通信経路に関する情報を取得する(ステップS2302)。
集約装置101は、受信したデータ再取得結果についての通信経路に関する情報が定常時の情報と同じか否かを判定する(ステップS2303)。同じである場合(ステップS2303:Yes)、集約装置101は、チャージ不足または一時異常であることを出力し(ステップS2304)、一連の処理を終了する。同じでない場合(ステップS2303:No)、集約装置101は、プロトコル2による検査指示をバリア同期後に送信させる制御を行い(ステップS2305)、一連の処理を終了する。
図24は、集約装置による判定処理手順の例3を示すフローチャートである。図24の例では、検査結果は、経由したセンサーノード102の識別情報が経由順に並べられた通信経路に関する情報を有していることする。集約装置101は、プロトコル2による検査結果を受信したか否かを判断する(ステップS2401)。集約装置101は、プロトコル2による検査結果を受信していない場合(ステップS2401:No)、ステップS2401へ戻る。一方、集約装置101は、プロトコル2による検査結果を受信した場合(ステップS2401:Yes)、定常時の通信経路に関する情報を取得する(ステップS2402)。
集約装置101は、受信した検査結果についての通信経路に関する情報が定常時の情報と同じか否かを判断する(ステップS2403)。受信した検査結果についての通信経路に関する情報が定常時の情報と同じでない場合(ステップS2403:No)、集約装置101は、位置関係に異常が発生したことを出力し(ステップS2404)、一連の処理を終了する。
検査結果についての通信経路に関する情報が定常時の情報と同じである場合(ステップS2403:Yes)、集約装置101は、検査結果に故障を示す情報があるか否かを判断する(ステップS2405)。検査結果に故障を示す情報がない場合(ステップS2405:No)、一連の処理を終了する。検査結果に故障を示す情報がある場合(ステップS2405:Yes)、集約装置101は、センサーノード102が故障していることを出力し(ステップS2406)、一連の処理を終了する。
図25は、集約装置による判定処理手順の例4を示すフローチャートである。図25の例では、検査結果は、経由したセンサーノード102の識別情報が経由順に並べられた通信経路に関する情報を有していることとする。集約装置101は、プロトコル3による検査結果を受信したか否かを判断する(ステップS2501)。集約装置101は、プロトコル3による検査結果を受信していない場合(ステップS2501:No)、ステップS2501へ戻る。集約装置101は、プロトコル3による検査結果を受信した場合(ステップS2501:Yes)、検査結果に故障を示す情報があるか否かを判断する(ステップS2502)。検査結果に故障を示す情報がない場合(ステップS2502:No)、一連の処理を終了する。検査結果に故障を示す情報がある場合(ステップS2502:Yes)、集約装置101は、センサーノード102が故障していることを出力し(ステップS2503)、一連の処理を終了する。
図26は、集約装置によるバリア同期処理手順例を示すフローチャートである。集約装置101は、バリア同期を発行し(ステップS2601)、バリア同期を発行してから所定時間経過したか否かを判断する(ステップS2602)。所定時間経過していない場合(ステップS2602:No)、集約装置101は、他の集約装置101から同期状態を受信したか否かを判断する(ステップS2603)。集約装置101は、他の集約装置101から同期状態を受信していない場合(ステップS2603:No)、ステップS2602へ戻る。
集約装置101は、他の集約装置101から同期状態を受信した場合(ステップS2603:Yes)、すべての集約装置101から受信済みか否かを判断する(ステップS2604)。集約装置101は、すべての集約装置101から受信済みでない場合(ステップS2604:No)、ステップS2602へ戻る。集約装置101は、すべての集約装置101から受信済みである場合(ステップS2604:Yes)、最後に受信した同期状態の送信元にプロトコルによる指示を送信させ(ステップS2605)、一連の処理を終了する。
ステップS2602において、バリア同期を発行してから所定時間経過した場合(ステップS2602:Yes)、集約装置101は、複数のセンサーノード102がマルチホップ通信できないことを出力し(ステップS2606)、一連の処理を終了する。
以上説明したように、コンピュータが、第1集約装置が送信指示を送信してから、複数ノード間のマルチホップ通信によって送信指示に対する送信信号を第2集約装置が受信するまでの第1通信経路が平常時の第2通信経路と一致するか判定する。これにより、信号送信を指示した通信装置に通信ノードからの応答を戻さなくても、複数のセンサーノードのうちのいずれかの通信ノードに関する異常があるか否かを判定することができる。
また、コンピュータが、センサーノードに自ノードを検査させる検査指示が第3集約装置から送信されてから、センサーノードの間のマルチホップ通信によって第4集約装置が受信するまでの第3通信経路が、定常時の第4通信経路と一致するか判定する。ここでは、センサーデータの取得を指示する送信指示と性質の異なる検査指示を伝搬させる。2つの通信経路が一致しない場合、コンピュータが、いずれかのセンサーノードと他のセンサーノードとの通信時の位置関係に変化が生じた、またはチャージ中によって検査指示を受信できない状態にあると判定することができる。したがって、いずれかのセンサーノードの位置がずれるなどの異変が発生した、またはチャージ中であることを判定することができる。一方、検査指示送信時の通信経路が一致する場合、いずれかのセンサーノードが故障している、または送信指示の際にチャージ中、センシング中、一時異常などによって応答ができない状態にあったと判定することができる。
また、コンピュータが、データ再取得指示を送信後に検査指示を送信させた場合、データ再取得指示を送信した集約装置101と検査指示を送信した集約装置101とが同一の場合、第4通信経路は、データ再取得指示を送信時の通信経路であってもよい。
また、コンピュータが、充電時間待機してから検査指示を送信し、検査指示に対する検査結果の通信経路の一致を判定する。これにより、充電時間待機しているため、各センサーノードの充電は完了しているため、通信経路が一致しない場合、コンピュータが、いずれかのセンサーノードと他のセンサーノードとの通信時の位置関係に変化が生じたと判定することができる。
また、コンピュータが、検査指示送信後に、第2通信経路と第3通信経路との一致を判定すると共に、検査結果が故障を示すか否かを判定する。これにより、検査結果の通信経路が定常時の通信経路と一致している場合に、故障によってデータ取得に異常が検出されたか否かを判定することができる。したがって、判定精度を向上させることができる。
また、コンピュータは、第1通信経路と第2通信経路とが一致しない場合に検査指示を第3通信装置に送信させる前に、バリア同期を取る。これにより、複数のセンサーノードの間での異常判定に関する検査指示の伝搬が他の指示の伝搬によって妨げられるのを防ぐことができる。したがって、判定精度を向上させることができる。
また、コンピュータが、バリア同期によってすべての集約装置が同期状態となってから充電時間待機させた後に、検査指示を第3通信装置に送信させる。これにより、最後にセンサーノードに対していずれかの集約装置が指示を送信してからすべてのセンサーノードの充電を完了させているため、チャージ中による異常が発生するのを防ぐことができる。したがって、判定精度を向上させることができる。
また、コンピュータが、バリア同期によって最後に同期状態になる集約装置を第3集約装置として、検査指示を送信させる。これにより、複数ある通信装置のうちのいずれの通信装置に検査指示を送信させるかを予め定めておくことにより、通信時にいずれの通信装置に送信させるかを決定する処理を省くことができる。
また、送信指示に対する送信信号を受信する第2通信装置が、第1通信経路と第2通信経路との一致を判定するコンピュータの処理を実行することにより、受信したデータを他のコンピュータに転送させる処理を省くことができる。
また、コンピュータが、第1通信経路と第2通信経路が一致しない場合に、充電時間待機させてから、再度センシングデータを送信させる第2送信指示を第3集約装置に送信させる。そして、コンピュータが、第3集約装置から、第2送信指示に対する第2送信信号を受信する第4集約装置までの第3通信経路と、定常時の第4通信経路と、の一致を判定する。これにより、一致していれば、チャージ中、一時的な異常、またはセンサー応答中などによって第1通信経路が定常時の第2通信経路と異なっていたと判定することができる。
また、コンピュータが、第1通信経路と第2通信経路とが一致しない場合に第2送信信号を第3通信装置に送信させる前に、バリア同期を取る。これにより、複数のセンサーノードの間での検査指示の伝搬が他の指示の伝搬によって妨げられるのを防ぐことができる。したがって、判定精度を向上させることができる。
また、コンピュータが、バリア同期によってすべての集約装置が同期状態となってから充電時間待機させた後に、第2送信信号を第3通信装置に送信させる。これにより、最後にセンサーノードに対していずれかの集約装置が指示を送信してからすべてのセンサーノードの充電を完了させているため、チャージ中による異常が発生するのを防ぐことができる。したがって、判定精度を向上させることができる。
また、第1通信経路と第2通信経路とが一致しない場合に検査指示または第2送信信号を送信する第3通信装置は、バリア同期によって最後に同期状態になった装置にする。これにより、複数ある通信装置のうちのいずれの通信装置に検査指示または第2送信信号を送信させるかを予め定めておくことにより、通信時にいずれの通信装置に送信させるかを決定する処理を省くことができる。
また、送信指示に対する送信信号を受信する第2通信装置が、第1通信経路と第2通信経路との一致を判定するコンピュータの処理を実行する。そして、検査指示に対する検査結果または第2送信指示に対する送信信号を受信する第4通信装置が、第3通信経路と第4通信経路との一致を判定するコンピュータの処理を実行する。これにより、受信したデータを他のコンピュータに転送させる処理を省くことができる。
また、コンピュータが、バリア同期を発行後から所定時間経過しても同期状態にならない通信装置があれば、複数のセンサーノードによってマルチホップ通信ができないと判定する。これにより、設置領域内に配置されたセンサーノードの故障が増大したことを検出することができ、システムが破綻したと判定することができる。したがって、ユーザは、判定結果に応じて、システムの再設計を行うことができる。
また、プロトコル4によってセンサーノードに関する異常があると判定された後、プロトコル2とプロトコル1のいずれを先に送信させるかについては、システムの設計者やユーザが予めシステムに定義させておくこととする。また、プロトコル3によってセンサーノードに関する異常があると判定された後に、プロトコル2またはプロトコル1のいずれかを送信させて、異常の種類を判定してもよい。
以下に添付図面を参照して、本発明にかかる判定方法、およびシステムの実施の形態を詳細に説明する。
図1は、本発明にかかる集約装置による一動作例を示す説明図である。システム100は、複数の通信装置である複数の集約装置101と、複数の通信ノードである複数のセンサーノード102とを有する。複数の集約装置101の各々は、送信指示を送信したり、送信指示に対する送信信号を受信して、送信信号に応じた処理を実行するコンピュータである。システム100では、測定の対象となる設置領域ar内にばらまかれた複数のセンサーノード102がマルチホップ通信によって連携しながら動作する。
複数のセンサーノード102の各々は、センサーと、自発電を行うハーベスタと、発電した電力を充電するバッテリと、を有する。複数のセンサーノード102の各々は、PC(Personal Computer)や携帯電話等の携帯端末装置と比較して使用可能な電力量が少なく、マイクロプロセッサ(以下、「MCU(Micro Control Unit)」と称する。)などの性能が低い。
各センサーノード102は、ハーベスタによってバッテリに電力を蓄えるため、蓄電可能な電力量が少ない。そのため、各センサーノード102は、センシングと、センシングに応じた処理の実行と、実行結果の送信と、などの一連の動作を1回行うと、バッテリの電力が低下し、バッテリに電力を充電している一定時間動作を行えない。そして、各センサーノード102は、信号伝播を送信指示の送信元へ返すように往復させることができない。
そこで、本実施の形態にかかるシステム100では、複数の集約装置101のいずれかが送信した送信指示を複数のセンサーノード102がマルチホップ通信によって伝搬させる。そして、システム100では、複数のセンサーノード102からの送信指示に対する送信信号をマルチホップ通信によって複数の集約装置101のうちの当該いずれかの集約装置101と異なる集約装置101が受信する。そして、送信信号を受信した集約装置101が送信信号に基づく処理を実行する。複数の集約装置101は、ネットワークNETを介して通信が可能とする。1回の送信指示に対して信号伝搬を送信指示の送信元へ往復させることができなくとも、他の集約装置101が各センサーノード102からの送信信号を受信する。
ここで、各センサーノード102の特性を以下に挙げる。各センサーノード102は設置領域ar内に任意にばらまかれるため、隣接するセンサーノード102がどのセンサーノード102であるか、自センサーノード102が設置領域ar内のどこに位置するかは自明でない。各センサーノード102には、自己診断中やデータ処理中などの複数の状態があるが、多重割り込み処理を行うことができない、または多重割り込み処理に制約がある。たとえば、各センサーノード102は、自ノードの故障であることを示す情報を自発的に集約装置101へ送信できない。または、たとえば、各センサーノード102は、多重化割り込み処理ができないため、故障が発生すると、何ら反応をしないか異常なデータを送信する可能性がある。
また、センサーノード102は、品質が一様でないと、複数のセンサーノード102のうち、故障するセンサーノード102は任意の確率で発生する。
上述したように、送信指示を送信した集約装置101と異なる集約装置101が送信指示に対する送信信号を受信する。送信指示は、たとえば、センサーノード102にセンシングしたセンシングデータを送信させる指示(「データ取得指示」と称する。)である。
たとえば、集約装置101−Aが送信指示を送信する第1通信装置とし、集約装置101−Bが送信指示に対する送信信号を受信する第2通信装置とする例について説明する。集約装置101−Bは、複数のセンサーノード102の間のマルチホップ通信により伝搬された送信指示に対する複数のセンサーノード102からの送信信号を複数のセンサーノード102の間のマルチホップ通信により受信する。コンピュータが、集約装置101−Bが送信信号を受信した際の、集約装置101−Aから集約装置101−Bまでの第1通信経路r1に関する第1情報を取得する。ここで、コンピュータは、集約装置101であってもよいし、ネットワークNETに接続された他の装置であってもよい。たとえば、集約装置101−Bに設けられたコンピュータであれば、第1情報を他の通信装置に転送させる手間を省くことができる。第1通信経路r1に関する第1情報は、たとえば、いずれのセンサーノード102を経由してきたかの識別情報が経由順に並べられた情報であったり、第1通信経路r1上のホップ数であってもよい。
コンピュータは、集約装置101−Aによって信号が送信されてから、複数のセンサーノード102の間のマルチホップ通信により伝搬されて信号が集約装置101−Bによって受信されるまでの第2通信経路r2に関する第2情報を記憶装置から取得する。第2通信経路r2に関する第2情報は、たとえば、第1通信経路r1に関する第1情報と同一種類のデータである。記憶装置としては、たとえば、ROM(Read Only Memory)、RAM(Random Access Memory)、や不揮発メモリが挙げられる。コンピュータは、第1情報と、第2情報と、を比較することにより、第1通信経路r1と第2通信経路r2との一致を判定する。
これにより、送信指示の送信元である集約装置101に対して、送信信号が戻ってこなくとも、複数のセンサーノード102内のいずれかのセンサーノード102に関する異常を判定することができる。
(センサーノード102のハードウェア構成例)
図2は、センサーノードのハードウェア構成例を示すブロック図である。センサーノード102は、MCU201と、センサー202と、無線通信回路(RF(Radio Frequency))203と、RAM204と、ROM205と、不揮発メモリ206と、アンテナ207と、ハーベスタ208と、バッテリ209と、PMU(Power Management Unit)210と、を有する。センサーノード102は、MCU201と、センサー202と、無線通信回路203と、RAM204と、ROM205と、不揮発メモリ206と、を接続する内部バス211を有する。
センサー202は、設置箇所における所定の変位量を検出する。センサー202は、たとえば、設置箇所の圧力を検出する圧電素子や、温度を検出する素子、光を検出する光電素子などを用いることができる。アンテナは、集約装置101と無線通信する電波を送受信する。無線通信回路203は、受信した無線電波を受信信号として出力し、送信信号を無線電波としてアンテナを介して送信する。
MCU201は、センサー202が検出したデータを処理する。RAM204は、MCU201における処理の一時データを格納する。RAM204は、MCU201における処理の一時データを格納する。ROM205は、MCU201が実行する処理プログラムなどを格納する。不揮発メモリ206は、書き込み可能なメモリであって、電力供給が途絶えたときなどにおいても書き込まれた所定のデータを保持する。たとえば、書き込み可能な不揮発メモリ206は、フラッシュメモリが挙げられる。
ハーベスタ208は、センサーノード102の設置箇所における外部環境、たとえば、光、振動、温度、無線電波(受信電波)などのエネルギー変化に基づき発電を行う。ハーベスタ208は、センサー202によって検出された変位量に応じて発電を行ってもよい。バッテリ209は、ハーベスタ208により発電された電力を蓄える。すなわち、センサーノード102は、二次電池や外部電源などが不要であり、動作に必要な電力を自装置の内部で生成する。PMU210は、バッテリ209によって蓄えられた電力を、センサーノード102の各部に駆動電源として供給する制御を行う。
(集約装置101のハードウェア構成例)
図3は、集約装置のハードウェア構成例を示すブロック図である。集約装置101は、センサーノード102と異なり、外部電源に基づき動作する。集約装置101は、センサーノード102のMCU201よりも高性能なプロセッサ(CPU(Central Processing Unit))301と、大容量のROM302、RAM303、および不揮発メモリ304と、インターフェース(I/O(Input/Output))回路305と、を有する。集約装置101は、CPU301と、ROM302と、RAM303と、不揮発メモリ304と、I/O回路305と、を接続するバス309を有する。
ここで、CPU301は、集約装置101の全体の制御を司る。CPU301は、ROM302、RAM303、不揮発メモリ304などの記憶装置に記憶されている判定プログラムなどの各種プログラムを実行することにより、記憶装置内のデータを読み出したり、実行結果となるデータを記憶装置に書き込んだりする。
また、I/O回路305には、アンテナ307および無線通信回路(RF)306と、ネットワークI/F308が接続されている。これにより、集約装置101は、アンテナ307および無線通信回路306を介して、センサーノード102と無線通信することができる。さらに、集約装置101は、ネットワークI/F308を介して、TCP/IPのプロトコル処理などにより、インターネットなどのネットワークNETを介してサーバやユーザ端末などの外部装置と通信を行うことができる。また、図示していないが、集約装置101はディスプレイやキーボード、またはタッチパネル式のディスプレイなどの入力装置や出力装置を有していてもよい。
図4は、各センサーノードについての状態定義とプロトコルを示す説明図である。表400は、各プロトコルによって判別されるセンサーノード102の状態を示している。たとえば、本実施の形態では、集約装置101による4つのプロトコルが定義されている。プロトコル1はデータ再取得指示であり、プロトコル2は検査指示であり、プロトコル3は検査指示であり、プロトコル4はデータ取得指示である。検査指示は、複数のセンサーノード102に自ノードを検査させる指示である。データ再取得指示は、センサーノード102に関する異常があると判定された場合に、異常の種類を特定するために再度データを取得させるための指示である。プロトコル2は、センサーノード102に関する異常があると判定された場合に、異常の種類を特定するために送信される。一方、プロトコル3は、定常時にセンサーノードに自ノードを検査させる際に送信される。
ここで、センサーノード102の状態には、故障、孤立、一時異常、チャージ、センサー、正常がある。故障状態とは、センサーノード102のハードウェアが故障している状態を示す。孤立状態とは、センサーノード102が他のセンサーノード102とマルチホップ通信可能な状態でないことを示す。たとえば、孤立状態は、センサーノード102の設置箇所の環境の破断やセンサーノード102の設置箇所の状態変化による未達によって生じる。具体的に環境の破断とは、センサーノード102が壁に埋め込まれている場合に壁が崩れると、センサーノード102の位置がずれるなどによって、位置がずれたセンサーノード102と他のセンサーノード102との位置関係が以前と異なることを示す。
たとえば、一時異常状態とは、センサーノード102が応答中にノイズが発生してしまうなどの偶発的に異常が発生する状態を示す。たとえば、チャージ状態とは、バッテリ209に電力をチャージ中であることを示す。上述したように、各センサーノード102は、バッテリ209に充電された電力の量が少ない。ここでは、たとえば、センサーノード102は、各指示を受信、各指示に対する処理の実行などの一連の処理を行うだけで、バッテリ209に充電された電力が無くなってしまうこととしている。ただし、センサーノード102の構成については特に限定していないため、種々変更可能である。
たとえば、センサー状態とは、自ノードによる自発的にセンシングを行っている状態を示す。上述したように、多重の割り込み処理ができないため、センシング中には、指示を受信できない。たとえば、定常状態とは、センサーノード102に関する異常が発生していない状態を示す。
表400については、プロトコル1とプロトコル2とは、センサーノード102に関する異常があると判定された後に行われるプロトコルである。そのため、集約装置101が、プロトコル1またはプロトコル2を送信前に、各センサーノード102の充電にかかる充電時間待機している。そのため、プロトコル1とプロトコル2の送信時、異常状態がチャージ状態であれば、正常時と同様の応答がセンサーノード102から受信される。
また、一時異常状態やセンサー状態であれば、再度通信を行うことにより、異常が解消される可能性が高い。そのため、表400では、プロトコル1またはプロトコル2の送信時には、正常時と同様の応答がセンサーノード102から受信されることとしている。また、孤立状態の場合、プロトコル2とプロトコル1を受信できないため、応答がない。
また、各センサーノード102は、故障していると、プロトコル4とプロトコル1のようなデータ取得指示について、応答をせずに沈黙している場合と、応答はするが異常値を出力する場合がある。一方、プロトコル2とプロトコル3のような検査指示について、各センサーノード102は、異常であることを応答する。ただし、無線通信回路203やアンテナ207が故障している場合には、各センサーノード102は、送受信ができないため、応答をしない。ここでの故障は、ハードウェアとしては正常に動作し、ソフトウェアも正常にプログラムカウンタによって動作するが、センサーの異常動作、ソフトウェア処理のバグ、メモリ破壊などによる故障である。さらに、ここでの故障は、センサーノード102の自診断機能であるダイアグ測定に対しては応答するが、その応答が正常値を返信しない場合を示す。
また、図示していないが、集約装置101間のプロトコルとして、集約装置101間でのバリア同期処理がある。本実施の形態では、バリア同期によって各集約装置101が実行中の処理を終了したら同期状態になり、すべての集約装置101が同期状態になってから、つぎのプロトコルに関する処理が実行される。
(センサーノード102の機能的構成例)
図5は、センサーノードの機能的構成を示すブロック図である。センサーノード102は、受信部501と、センシング部502と、比較部503と、診断部504と、判断部505と、送信部506と、を有する。センシング部502は、センサー202であって、受信部501と送信部506とは、無線通信回路203とアンテナ207によって実現される。具体的には、たとえば、図2に示したRAM204、ROM205、不揮発メモリ206などの記憶装置に記憶された、図5に示す各部の機能がコーディングされた判定プログラムをMCU201が読み出して、判定プログラムにコーディングされた処理を実行する。これにより、各部の機能が実現される。
(集約装置101の機能的構成例)
図6は、集約装置の機能的構成を示すブロック図である。集約装置101は、記憶装置600と、第1取得部601と、第2取得部602と、判定部603と、制御部604と、を有する。第1取得部601は受信部611を有し、制御部604は受信部612と送信部613とを有する。
受信部611と受信部612と送信部613とは、たとえば、無線通信回路306、アンテナ307、およびネットワークI/F308によって実現される。具体的には、たとえば、図3に示したROM302、RAM303、不揮発メモリ304などの記憶装置に記憶された、図6に示す各部の機能がコーディングされた判定プログラムをCPU301が読み出して、判定プログラムにコーディングされた処理を実行する。これにより、各部の機能が実現される。また、判定プログラムはネットワークI/F308を介して取得してもよい。
記憶装置600は、ROM302、RAM303、不揮発メモリ304などによって実現される。記憶装置600には、集約装置101の間の定常時の通信経路に関する情報を記憶する。設置されたすべての集約装置101がプロトコル発信元に成りうる。定常時の通信経路に関する情報は各集約装置101からの発信のすべてのパターンを記憶装置600に記憶させておかなければならない。そのため、定常時の通信経路に関する情報は、自集約装置101がプロトコルの発信元にならないケースの数だけ、すなわち「集約装置101の数−1」の数だけ、予め記憶装置600に記憶されていることとする。
集約装置101と、センサーノード102と、の各々の詳細な機能部の説明については、上述したプロトコルに沿って説明する。
図7は、異常値がない場合の運用状態フロー例を示す説明図である。図7の例では、プロトコル4による通信例を示す。ここでは、集約装置101−Aがプロトコル4によって送信指示であるデータ取得指示を送信した例を示す。複数のセンサーノード102は、データ取得指示をマルチホップ通信によって、データ取得指示に対するデータ取得を実行しながら集約装置101−Bや集約装置101−Cまでデータ取得指示を伝搬させる。
具体的に、各センサーノード102の受信部501がデータ取得指示を受信すると、センシング部502はセンサーによる測定を行う。ここで、受信部501は、データ取得指示と併せて他のセンサーノード102の判断結果を取得する。
そして、各センサーノード102の比較部503は、センシング部502によって得られるセンシングデータと定常データとを比較することにより、センシングデータが異常値であるか否かを判断する。異常値でない場合を定常値と称する。各センサーノード102の送信部506は、受信した他のセンサーノード102の判断結果と、自ノードによる判断結果と、通信経路に関する情報と、データ取得指示と、を併せて直接通信可能なセンサーノード102へ送信する。図7の例では、センサーノード102−1、センサーノード102−m、センサーノード102−nの順でデータ取得指示と、データ取得指示に対するデータ取得結果と、が伝搬される。たとえば、各センサーノード102は、データ取得結果を伝搬順に並べてセンサーノード102の識別情報を併せて送信することにより、データ取得指示の送信元である集約装置101からの通信経路に関する情報を送信する。データ取得結果は、データ取得指示に対する複数のセンサーノード102からの送信信号である。
ここでは、集約装置101−Aよって送信されたデータ取得指示が、複数のセンサーノード102の間のマルチホップ通信により伝搬される。そして、伝搬されたデータ取得指示に対する複数のセンサーノード102からのデータ取得結果を集約装置101−Bが複数のセンサーノード102の間のマルチホップ通信により受信した例を説明する。理解の容易化のため、図7では、センサーノード102の数を少なくしているが、実際にはセンサーノード102は大量にある。また、判定方法に関する処理を実行するコンピュータは複数あり、複数の集約装置101が連携しながら、行うこととする。
具体的に、第1取得部601−Bは、複数のセンサーノード102からのデータ取得結果を集約装置101−Bがマルチホップ通信により受信した際の、集約装置101−Aから集約装置101−Bまでの第1通信経路r1に関する第1情報を取得する。第1取得部601−Bは、取得した第1情報をRAM303−Bなどの記憶装置に書き込む。第1通信経路r1に関する第1情報は、たとえば、いずれのセンサーノード102を経由してきたかの識別情報が経由順に並べられた情報であったり、第1通信経路r1上のホップ数であってもよい。たとえば、第1取得部601−Bは、複数のセンサーノード102から複数のデータ取得結果を受信すると共に、いずれのセンサーノード102を経由してきたかの識別情報が経由順に並べられた情報を受信する。
第2取得部602−Bは、記憶装置600に記憶された第2通信経路r2に関する第2情報を取得する。第2取得部602−Bは、取得した第2情報をRAM303−Bなどの記憶装置に書き込む。ここでの第2通信経路r2は、集約装置101−Aによって信号が送信されてから、複数のセンサーノード102の間のマルチホップ通信を行うことにより伝搬されて信号が集約装置101−Bによって受信されるまでである。第2通信経路r2に関する第2情報は、第1通信経路r1に関する第1情報と同様に、たとえば、いずれのセンサーノード102を経由してきたかの識別情報が経由順に並べられた情報であったり、第2通信経路r2上のホップ数であってもよい。第1情報と第2情報との種類は同一である。具体的に、第2取得部602−Bは、記憶装置600から第2通信経路r2に関する第2情報を読み出す。また、通信経路についての候補は複数あってもよいため、第2通信経路r2に関する情報が複数種類あってもよい。また、1回のデータ取得指示であっても、複数通りの通信経路ができるため、第1通信経路r1と第2通信経路r2はそれぞれ複数ある。
判定部603−Bは、第1取得部601−Bによって取得された第1情報と、第2取得部602−Bによって取得された第2情報と、を比較する。具体的には、判定部603−Bは、RAM303−Bなどの記憶装置から読み出した第1情報と第2情報とを比較する。これにより、判定部603−Bは、複数のセンサーノード102のうちのいずれかのセンサーノード102に関する異常があるか否かを判定する。たとえば、判定部603−Bは、第1情報と、第2情報と、が一致している場合、第1通信経路r1と第2通信経路r2とが一致していると判断する。定常時と同様の通信経路であればセンサーノード102は応答をし、センサーノード102間の位置関係に変化があっても、他のセンサーノード102と通信可能であれば、応答するため、センサーノード102に関する異常がないと判定することができる。
一方、たとえば、判定部603−Bは、第1情報と、第2情報と、が一致していない場合、第1通信経路r1と第2通信経路r2とが一致していないと判断する。定常時と同様の通信経路でない場合、センサーノード102が応答をしていない場合やセンサーノード102間の位置関係の変化によって応答できない場合があるため、いずれかのセンサーノード102に関する異常があると判定することができる。
または、たとえば、第1情報と第2情報とがホップ数である場合に、判定部603−Bは、第1情報と、第2情報と、の差が所定範囲内であれば、第1通信経路r1と第2通信経路r2とが一致していないと判断してもよい。そして、いずれかのセンサーノード102に関する異常がないと判定することができる。一方、たとえば、第1情報と第2情報とがホップ数である場合に、判定部603−Bは、第1情報と、第2情報と、の差が所定範囲内でない場合、第1通信経路r1と第2通信経路r2とが一致していると判断してもよい。そして、いずれかのセンサーノード102に関する異常があると判定することができる。所定範囲については、センサーノード102の数やシステム100設計時の通信経路に応じてシステム100の設計者が定めたり、ユーザが定めてもよい。図7では、いずれかのセンサーノード102に関する異常がないと判定された例を示す。
また、判定部603−Bは、受信された複数のデータ取得結果の中に、異常値であることを示す情報が含まれているか否かを判定してもよい。
また、プロトコル4によるデータ取得結果を受信した集約装置101−Bは、他の集約装置101や通信可能な他のコンピュータにデータ取得結果を転送してもよい。これにより、集約装置101−Bは、各機能部によって異常判定に関する処理を他の集約装置101や通信可能な他のコンピュータに実行させてもよい。また、データ取得結果を受信した集約装置101−Bが、異常判定に関する処理を実行することにより、データ取得結果を転送する処理を省くことができる。
図8は、故障がない場合の検査フロー例を示す説明図である。図8の例では、プロトコル3による通信例を示す。図8の例では、プロトコル3による通信例を示す。たとえば、集約装置101−Aが、検査指示を送信する。複数のセンサーノード102は、検査指示をマルチホップ通信によって、検査指示に対する各センサーノード102の自ノードの検査を実行しながら集約装置101−Bや集約装置101−Cまで検査結果を伝搬させる。
具体的に、各センサーノード102の受信部501は検査指示を受信すると、診断部504はダイアグ測定を行うことにより、自診断を行う。ここで、受信部501は、検査指示と併せて、集約装置101−Aから経由した他のセンサーノード102の検査結果を取得する。たとえば、経由した他のセンサーノード102の検査結果は、それぞれのセンサーノード102の識別情報が付され、経由順に並べられていることとする。
そして、各センサーノード102の判断部505は、診断部504によるダイアグ測定結果が故障であることを示す異常値であったか否かを判断する。測定結果が故障であることを示す異常値でない場合、定常値と称する。図8の例では、各センサーノード102の測定結果はすべて定常値である。送信部506は、自センサーノード102の識別情報を付した、判断部505によって得られる検査結果を周辺のセンサーノード102へマルチホップ通信により送信する。さらに、送信部506は、検査結果と共に、受信部501によって受信された検査指示と、経由した他のセンサーノード102の検査結果と、を併せて、周辺のセンサーノード102へマルチホップ通信により送信する。
図8の例では、センサーノード102−1、センサーノード102−m、センサーノード102−nの順で検査指示と、検査指示に対する検査結果と、が伝搬される。たとえば、各センサーノード102は、検査結果を伝搬順に並べてセンサーノード102の識別情報を併せて送信することにより、検査指示の送信元である集約装置101からの通信経路に関する情報を送信する。
第1取得部601−Bは、複数のセンサーノード102からの検査結果を取得する。ここで、取得される検査結果は、集約装置101−Aと異なる集約装置101−Bが受信した、集約装置101−Aによって送信され複数のセンサーノード102の間のマルチホップ通信により伝搬された検査指示に対する検査結果である。
判定部603−Bは、第1取得部601−Bによって取得された検査結果に基づいて、いずれかのセンサーノード102に故障があるか否かを判定する。これにより、故障が発生したセンサーノード102を特定することができる。たとえば、判定部603−Bは、検査結果が定常値でないことを示す情報であるセンサーノード102は故障していると判定する。一方、たとえば、判定部603−Bは、検査結果が定常値であることを示す情報であるセンサーノード102は故障していると判定する。
また、第1取得部601−Bは、集約装置101−Aが検査指示を送信してから、複数のセンサーノード102の間のマルチホップ通信により検査結果を集約装置101−Bが受信するまでの第1通信経路r1に関する情報を取得する。
第2取得部602−Bは、第2通信経路r2に関する情報を記憶装置600から取得する。ここで、第2通信経路r2は、集約装置101−Aによって信号が送信されてから、複数のセンサーノード102の間のマルチホップ通信により伝搬されて信号が集約装置101−Bによって受信されるまでの経路である。
判定部603−Bは、第1取得部601−Bによって取得された情報と、第2取得部602−Bによって取得された情報と、を比較してもよい。たとえば、第1取得部601−Bによって取得された情報と、第2取得部602−Bによって取得された情報と、が一致している場合、判定部603−Bは、第1通信経路r1と第2通信経路r2とが一致していると判定する。これにより、一致している場合、いずれかのセンサーノード102に関する異常がないと判定することができる。一方、たとえば、第1取得部601−Bによって取得された情報と、第2取得部602−Bによって取得された情報と、が一致していない場合、判定部603−Bは、第1通信経路r1と第2通信経路r2とが一致していないと判定する。これにより、一致していない場合、いずれかのセンサーノード102に関する異常があると判定する。
たとえば、判定部603−Bによって故障していないと判断されたにも関わらず、判定部603−Bによって通信経路が異なると判定された場合、集約装置101−Bは、いずれかのセンサーノード102に関する異常があると判定する。ここでの異常とは、いずれかのセンサーノード102に関して、周辺のセンサーノード102との位置関係に異常が発生した、またはいずれかのセンサーノード102がチャージ不足により診断していない場合が挙げられる。位置関係に異常が発生する場合には、たとえば、設置された環境に異変が発生した可能性がある。たとえば、設置された環境異変があると、検査指示を受信できなかったり、以前と異なるセンサーノード102から検査指示を受信したり、または以前と異なるセンサーノード102へ検査指示を伝搬する可能性がある。図7では、いずれかのセンサーノード102に関する異常値がないと判定された例を示している。
図9は、図7と図8に示した指示の伝搬例を示す説明図である。集約装置101−Aが、データ取得指示または検査指示を複数のセンサーノード102に対して送信する。たとえば、センサーノード102−1、センサーノード102−m、センサーノード102−nの順に指示と指示に対する応答とが伝搬され、集約装置101−Bまたは集約装置101−Cまで到達する。
また、プロトコル3による検査指示やプロトコル4によるデータ取得指示を各集約装置101が送信するタイミングについては、たとえば、ユーザに指示されたタイミングであってもよいし、一定周期であってもよいし、特に限定しない。
図10は、センサーノードに関する異常がある場合の例を示す説明図である。図11は、センサーノードに関する異常がある場合の伝搬例を示す説明図である。センサーノード102−mは、図7に示した例と同様にデータ取得指示をセンサーノード102−1から取得するが、チャージ不足による動作ができない。そのため、センサーノード102−nは、異常が無い場合にはセンサーノード102−mからデータ取得指示を受信していたが、センサーノード102−xからデータ取得指示を受信する。図11に示すように、センサーノード102−mがデータ取得指示やデータ取得指示に対するデータ取得結果を送信できないため、伝搬パターンが変化してしまう。
ここでの第1取得部601−Bと、第2取得部602−Bと、判定部603−Bとは、図7で説明した例と同様に動作する。そのため、図10の例では、判定部603−Bは、第1通信経路r1と第2通信経路r2とが一致していないと判定する。これにより、いずれかのセンサーノード102に関する異常があると判定される。
図12は、チャージ不足の場合における再取得フローを示す説明図である。図13は、チャージ不足の場合における再取得指示の伝搬例を示す説明図である。図12の例では、プロトコル1による通信例を示す。制御部604−Bは、判定部603−Bによって第1通信経路r1と第2通信経路r2とが一致していないと判定された場合、データ取得信号を集約装置101−Bが受信してから複数のセンサーノード102の各々の充電にかかる充電時間待機する。充電時間はセンサーノード102の設計時に定められた値である。そして、制御部604−Bは、待機後に、集約装置101−Cによって第2送信指示を複数のセンサーノード102へ送信させる。ここでの第2送信指示は、上述したプロトコル1によるデータ再取得指示である。
また、制御部604−Bは、判定部603−Bによって第1通信経路r1と第2通信経路r2とが一致していないと判定された後に、複数の集約装置101の間でバリア同期を取る。これにより、複数のセンサーノード102の間での異常判定に関する検査指示の伝搬が他の指示の伝搬によって妨げられるのを防ぐことができる。したがって、判定精度を向上させることができる。そして、制御部604−Bは、バリア同期によって複数の集約装置101のうちの最後に同期状態になった集約装置101にプロトコル1によるデータ再取得指示を送信させる。このように、複数ある集約装置101のうちのいずれの集約装置にデータ再取得指示を送信させるかを予め定めておくことにより、通信時にいずれの集約装置に送信させるかを決定する処理を省くことができる。図12の例では、集約装置101−Cが最後に同期状態となるためデータ再取得指示を送信する。
集約装置101−Cは、すべての集約装置101が同期状態になった後に充電時間待機させた後、データ再取得指示を送信する。これにより、センサーノード102に対していずれかの集約装置が最後に指示を送信し、その指示に対する応答が終了してから、すべてのセンサーノード102のバッテリ209への充電を完了させることができる。そのため、各センサーノード102のバッテリ209の充電量が各指示を実行可能な量となる。具体的に、集約装置101−Cは、チャージインターバルをタイマによって測定する。そして、集約装置101−Cはチャージインターバルを測定後に、データ再取得指示を送信する。
ここで、センサーノード102−mがチャージ不足によってデータ取得指示に対する応答ができなかった場合、充電時間分待機されてからデータ再取得指示が送信されたため、センサーノード102−mは、データ再取得指示を受信することができる。図12の例では、センサーノード102−n、センサーノード102−m、センサーノード102−1の順でデータ再取得指示と、再取得結果とが、伝搬される。また、各センサーノード102は、再取得結果がプロトコル4によるデータ取得指示の際の取得結果と一致または所定範囲内であれば、再取得結果を送信しなくてもよい。ただし、センサーノード102は、センサーノード102の識別情報を伝搬順序が区別可能なように送信する。再取得結果がプロトコル4によるデータ取得指示の際の取得結果と一致しないのは、一時的な異常やセンサーノード102の温度などの設置環境に変化があり検出状態が変化した場合である。
図12の例では、集約装置101−Cから集約装置101−Aに伝搬された例を示している。ここでは、集約装置101−Aがセンサーノード102−mに関する異常の種別を特定する。第1取得部601−Aは、集約装置101−Cから集約装置101−Aまでの第3通信経路に関する第3情報を取得する。第1取得部601−Aは、取得した第1情報をRAM303−Aなどの記憶装置に書き込む。ここでの第3通信経路は、集約装置101−Cがデータ再取得指示を送信してから、マルチホップ通信により伝搬され、データ再取得指示に対する複数のセンサーノード102からの第2送信信号である再取得結果を集約装置101−Aが受信するまでの経路である。上述したように、第1取得部601−Aは、通信経路に関する第3情報を受信する。
第2取得部602−Aは、第4通信経路に関する第4情報を記憶装置600から取得する。第2取得部602−Aは、取得した第4情報をRAM303−Aなどの記憶装置に書き込む。ここで、第4通信経路は、集約装置101−Cによって信号が送信されてから、複数のセンサーノード102の間のマルチホップ通信により伝搬されて信号が集約装置101−Aによって受信されるまでの経路である。
判定部603−Aは、第1取得部601−Aによって取得された第3情報と、第2取得部602−Aによって取得された第4情報と、を比較することにより、第3通信経路と第4通信経路とが一致しているか否かを判断する。具体的に、判定部603−Aは、RAM303−Aなどの記憶装置から読み出した第3情報と第4情報とを比較する。これにより、いずれかのセンサーノード102に関する異常が継続しているか否かを判定することができる。
一方、たとえば、第1取得部601−Aによって取得された第3情報と、第2取得部602−Aによって取得された第4情報と、が一致している場合、判定部603−Aは、第3通信経路と第4通信経路とが一致していると判定する。これにより、いずれかのセンサーノード102に関する異常が継続していないと判定することができる。したがって、データ取得指示に対するデータ取得結果受信時の異常は、これにより、チャージ不足、またはノイズなどの一時的に発生した異常であったと特定される。
また、判定部603−Aは、複数のセンサーノード102からの再取得結果に異常値であることを示す情報が含まれているか否かを判断してもよい。
また、図12の例では、プロトコル1によるデータ再取得指示に対するデータ再取得結果を受信した集約装置101−Aは、他の集約装置101や通信可能な他のコンピュータにデータ再取得結果を転送してもよい。れにより、集約装置101−Aは、各機能部によって異常判定に関する処理を他の集約装置101や通信可能な他のコンピュータに実行させてもよい。また、データ再取得結果を受信した集約装置101−Aが、異常判定に関する処理を実行することにより、データ再取得結果を転送する処理を省くことができる。
図14は、異常があると判定されるデータ再取得フロー例を示す説明図である。図15は、異常があると判定される再取得指示の伝搬例を示す説明図である。図14の例では、プロトコル1による通信例を示す。図14の例では、センサーノード102−n、センサーノード102−1の順でデータ再取得指示と、データ再取得指示に対する再取得結果と、が伝搬され、センサーノード102−mはデータ再取得指示を受信できていない。第3通信経路r3は、第4通信経路r4と同様の経路を辿る場合もあれば、迂回してしまう場合もある。
たとえば、第1取得部601−Aによって取得された第3情報と、第2取得部602−Aによって取得された第4情報と、が一致していない場合、判定部603−Aは、第3通信経路r3と第4通信経路r4とが一致していないと判定する。これにより、いずれかのセンサーノード102に関する異常が継続していると判定することができる。したがって、チャージ不足、またはノイズなどの一時的に発生した異常と異なる異常が発生していると判断することができる。
また、図15に示すように、データ再取得指示に対するデータ再取得結果に異常値があると、異常値が伝搬される。そのため、判定部603−Aは、複数のセンサーノード102からの再取得結果に基づいて、再取得結果に異常値であることを示す情報が含まれているか否かを判定してもよい。たとえば、複数のセンサーノード102からの再取得結果に異常値であることを示す情報が含まれている場合、判定部603−Aは、異常が継続していると判断する。または、判定部603−Aは、チャージ不足、またはノイズなどの一時的に発生した異常でない異常が発生していると判断する。
図16は、通信経路が一致しないと判定された後の検査フロー例1を示す説明図である。図17は、検査指示が伝搬される例を示す説明図である。図16の例では、プロトコル2による通信例を示す。制御部604−Aは、判定部603−Aによって異常が継続していると判定された場合、バリア同期を行って、すべての集約装置101が同期状態になった後に充電時間待機させた後、データ再取得指示を送信した集約装置101に検査指示を送信させる。また、制御部604−Aは、第3通信経路r3と第4通信経路r4が一致していない場合にも、バリア同期を行ってすべての集約装置101が同期状態になってから充電時間待機させた後、データ再取得指示を送信した集約装置101に検査指示を送信させてもよい。上述したように、データ再取得指示は集約装置101−Cによって送信された。いずれかの集約装置101が同期状態になる前に複数のセンサーノード102に対して何らかの指示を行っている可能性がある。そのため、同期状態になってから充電時間待機させることにより、各センサーノード102のバッテリ209の充電量が各指示を実行可能な量となる。
集約装置101−Cは、チャージインターバル測定を行うことにより、充電時間待機した後に、検査指示を送信する。複数のセンサーノード102は、検査指示をマルチホップ通信によって、検査指示に対する各センサーノード102の自ノードの検査を実行しながら集約装置101まで検査結果を伝搬させる。
具体的に、各センサーノード102の受信部501が検査指示を受信すると、診断部504はダイアグ測定を行うことにより、自診断を行う。上述したように、受信部501は、検査指示と併せて、集約装置101から経由した他のセンサーノード102の検査結果を取得する。たとえば、経由した他のセンサーノード102の検査結果は、それぞれのセンサーノード102の識別情報が付され、経由順に並べられていることとする。
そして、各センサーノード102の判断部505は、診断部504によるダイアグ測定結果が故障であることを示す異常値であったか否かを判断する。測定結果が故障であることを示す異常値でない場合、定常値と称する。図16の例では、各センサーノード102の測定結果はすべて定常値である。集約装置101は、自センサーノード102の識別情報を付した、判断部505による判断によって得られる検査結果を周辺のセンサーノード102へマルチホップ通信により送信する。さらに、集約装置101は、検査結果と共に、受信部501によって受信された検査指示と、経由した他のセンサーノード102の検査結果と、を周辺のセンサーノード102へマルチホップ通信により送信する。
そして、第1取得部601−Aが、複数のセンサーノード102から検査結果を受信することにより、検査結果を取得する。集約装置101−Cによって送信され複数のセンサーノード102の間のマルチホップ通信により伝搬された検査指示に対する複数のセンサーノード102からの検査結果を取得する。具体的に、第1取得部601−Aは、マルチホップ通信により複数のセンサーノード102から検査結果を受信する。
判定部603−Aは、第1取得部601−Aによって取得された検査結果に基づいて、いずれかのセンサーノード102に故障があるか否かを判定する。
また、図12の例では、プロトコル2による検査指示に対する検査結果を受信した集約装置101−Aは、他の集約装置101や通信可能な他のコンピュータにデータ再取得結果を転送してもよい。れにより、集約装置101−Aは、各機能部によって異常判定に関する処理を他の集約装置101や通信可能な他のコンピュータに実行させてもよい。また、検査結果を受信した集約装置101−Aが、異常判定に関する処理を実行することにより、検査結果を転送する処理を省くことができる。
図18は、異常があると判定された後の検査フロー例2を示す説明図である。図19は、故障時の検査結果が伝搬される例を示す説明図である。図18の例の(1)の場合、センサーノード102−mでは、ダイアグ測定の測定結果が異常値であることを示しているため、判定部603−Aは、センサーノード102−mについての検査結果が故障であることを示していると判断する。図19の伝搬例のように、いずれかのセンサーノード102に故障が発生している場合、センサーノード102は、検査指示に対する検査結果を送信可能であるため、通信経路は正常の状態と同一である可能性が高い。そのため、判定部603−Aは、検査指示に対する検査結果に異常値を示す情報があるか否かを判断することにより、故障の有無を判定することができる。
一方、図18の例の(2)の場合、センサーノード102−mでは、検査指示をセンサーノード102−nから受信しない。そのため、検査指示の送信元である集約装置101−Cから検査結果を受信する集約装置101−Aまでのマルチホップ通信による通信経路が正常の場合と異なる。
図20は、位置関係に異常がある場合の検査指示が伝搬される例を示す説明図である。たとえば、センサーノード102が設置された環境が破断すると、センサーノード102の位置がずれたり、センシング対象と接触していない、などが発生している可能性があり、センサーノード102間の位置関係に異常が発生する。そのため、検査指示の送信元である集約装置101−Cから検査結果を受信する集約装置101−Aまでのマルチホップ通信による通信経路が迂回経路となる。
そこで、第1取得部601−Aは、集約装置101−Cから集約装置101−Aまでの第3通信経路r3に関する第3情報を取得する。第3通信経路r3は、集約装置101−Cから検査指示が送信されてから、複数のセンサーノード102の間のマルチホップ通信により伝搬された検査指示に対する複数のセンサーノード102からの検査結果を集約装置101−Aが受信するまでの経路である。
第2取得部602−Aは、第4通信経路r4に関する第4情報を記憶装置600から取得する。第4通信経路r4は、集約装置101−Cによって信号が送信されてから、複数のセンサーノード102の間のマルチホップ通信により伝搬されて信号が集約装置101−Aによって受信されるまでの経路である。たとえば、第4通信経路r4は定常時の通信経路である。また、たとえば、データ再取得指示を送信後に検査指示を送信し、データ再取得指示を送信した集約装置101と検査指示を送信した集約装置101とが同一の場合、第4通信経路r4は、データ再取得指示を送信時の通信経路であってもよい。
判定部603−Aは、第1取得部601−Aによって取得された第3情報と、第2取得部602−Aによって取得された第4情報と、を比較することにより、第3通信経路r3と第4通信経路r4とが一致しているか否かを判定する。これにより、いずれかのセンサーノード102と周辺のセンサーノード102との位置関係に異常が発生したか否かを判定することができる。たとえば、判定部603−Aは、第3情報と、第4情報と、が一致していない場合、第3通信経路r3と第4通信経路r4とが一致していないと判定する。これにより、いずれかのセンサーノード102と周辺のセンサーノード102との位置関係に異常が発生したと判定することができる。一方、たとえば、判定部603−Aは、第3情報と、第4情報と、が一致している場合、第3通信経路r3と第4通信経路r4とが一致していると判定する。これにより、いずれかのセンサーノード102と周辺のセンサーノード102との位置関係に異常が発生していないと判定することができる。
また、図16と図18の例では、データ再取得指示によっていずれかのセンサーノード102に関する異常が継続していると判定された後に、故障と位置関係の異常とを区別させるため、集約装置101が検査指示を送信している。これに限らず、図10の例によってデータ取得結果によって第1通信経路r1と第2通信経路r2とが一致しないと判定された後、データ再取得指示よりも前に集約装置101は、検査指示を送信させる制御を行ってもよい。
具体的に、たとえば、制御部604は、判定部603によって第1通信経路r1と第2通信経路r2とが一致しないと判定された場合、集約装置101に検査指示を送信させる。または、制御部604は、第1通信経路r1と第2通信経路r2とが一致しないと判定された場合、データ取得指示を集約装置101が受信してから複数のセンサーノード102の各々の充電にかかる充電時間待機する。そして、制御部604は、充電時間待機後に、検査指示を集約装置101によって送信させてもよい。
また、たとえば、制御部604は、判定部603によって第1通信経路r1と第2通信経路r2とが一致しないと判定された後に、複数の集約装置101間でバリア同期を取る。そして、制御部604は、バリア同期を取った際の複数の集約装置101のうちの最後に同期状態になった集約装置101に検査指示を送信させる。これにより、プロトコル4によるデータ取得指示によって異常があると判定された後に、プロトコル1によるデータ取得指示の送信前にプロトコル2による検査指示が送信される。制御部604による制御後の第1取得部601と第2取得部602と判定部603との処理は、図16〜図20に示した処理と同一であるため、詳細な説明を省略する。
本実施の形態では、センサーノード102のバッテリ209の蓄電量が少ないなどの限られた条件下であっても、センサーノード102が設置箇所に関する変位量をセンシングできているかを検出するシステム100を構築することができる。
また、環境の破断や、センサーノード102の間でマルチホップ通信が成立しない状態までセンサーノード102の故障が発生し、設置された集約装置101にセンシングデータが到達しないため、集約装置101がバリア同期できない場合がある。
また、上述したように、プロトコル3による検査指示やプロトコル4によるデータ取得指示を各集約装置101が送信するタイミングについては、たとえば、ユーザに指示されたタイミングであってもよいし、一定周期であってもよい。一方、プロトコル1によるデータ再取得指示やプロトコル2による検査指示を各集約装置101が送信するのは、プロトコル3による検査指示やプロトコル4によるデータ取得指示において、異常が発生したと判定された場合である。
図21は、バリア同期の応答がない例を示す説明図である。図21中×印のセンサーノード102が、故障が発生したセンサーノード102であり、センサーノード102の故障が多発すると、指示や結果が集約装置101−Cにまで伝搬されない。そのため、集約装置101−Cは、同期状態を受け付けても、つぎのプロトコルに移行できる同期状態になれない。そこで、制御部604は、制御部604によって複数の集約装置101間でバリア同期を発行してから、所定時間経過しても同期状態にならない集約装置101があるかを判断しながら、バリア同期を制御する。判定部603は、制御部604によって複数の集約装置101の間でバリア同期を取る際に、複数の集約装置101のうちのいずれか一つの集約装置101がバリア同期を発行してから所定時間経過しても同期状態にならないか否かを判定する。判定部603は、所定時間経過しても同期状態にならない場合、複数のセンサーノード102の間のマルチホップ通信が行えないと判定する。所定時間については、過去の通信時間に基づいてシステム100の設計者が決定してもよいし、ユーザが定めてもよい。図21の例では、集約装置101−Cが同期状態にならない。
そして、集約装置101は、測定環境が破綻したことをユーザに報告してもよい。または、集約装置101は、期待する運用期間とノード故障率から、測定環境に対するセンサーノード102の分布密度を調整させる旨をユーザに出力してもよい。たとえば、集約装置101は、あらたに通信経路に関する情報を取得しなおして、記憶装置600の記憶内容を更新してもよい。
(集約装置101による判定処理手順例)
図22は、集約装置による判定処理手順の例1を示すフローチャートである。図22の例では、データ取得結果は、経由したセンサーノード102の識別情報が経由順に並べられた通信経路に関する情報を有していることする。集約装置101は、プロトコル4によるデータ取得結果を受信したか否かを判断する(ステップS2201)。集約装置101は、プロトコル4によるデータ取得結果を受信していない場合(ステップS2201:No)、ステップS2201へ戻る。一方、集約装置101は、プロトコル4によるデータ取得結果を受信した場合(ステップS2201:Yes)、定常時の通信経路に関する情報を取得する(ステップS2202)。
集約装置101は、受信したデータ取得結果についての通信経路に関する情報が取得した定常時の情報と同じか否かを判断する(ステップS2203)。同じでない場合(ステップS2203:No)、集約装置101は、受信した通信経路に関する情報を記録する(ステップS2204)。そして、集約装置101は、プロトコル1によるデータ再取得、またはプロトコル2による検査指示をバリア同期後に送信させる制御を行い(ステップS2205)、一連の処理を終了する。
同じである場合(ステップS2203:Yes)、集約装置101は、データ取得結果に異常値を示す情報が含まれているか否かを判断する(ステップS2206)。異常値を示す情報が含まれていない場合(ステップS2206:No)、集約装置101は、センサーノード102に関する異常がないことを出力し(ステップS2207)、一連の処理を終了する。異常値を示す情報が含まれている場合(ステップS2206:Yes)、集約装置101は、センサーノード102のセンシングデータに異常があることを出力し(ステップS2208)、一連の処理を終了する。
図22のフローチャートでは、通信経路についての判定を行った後に、異常値を示す情報が含まれているか判定しているが、これに限らず、異常値を示す情報が含まれているか判定した後に、通信経路についての判定を行ってもよい。
図23は、集約装置による判定処理手順の例2を示すフローチャートである。図23の例では、データ再取得結果は、経由したセンサーノード102の識別情報が経由順に並べられた通信経路に関する情報を有していることする。集約装置101は、プロトコル1によるデータ再取得結果を受信したか否かを判断する(ステップS2301)。集約装置101は、プロトコル1によるデータ再取得結果を受信していない場合(ステップS2301:No)、ステップS2301へ戻る。一方、集約装置101は、プロトコル1によるデータ再取得結果を受信した場合(ステップS2301:Yes)、定常時の通信経路に関する情報を取得する(ステップS2302)。
集約装置101は、受信したデータ再取得結果についての通信経路に関する情報が定常時の情報と同じか否かを判定する(ステップS2303)。同じである場合(ステップS2303:Yes)、集約装置101は、チャージ不足または一時異常であることを出力し(ステップS2304)、一連の処理を終了する。同じでない場合(ステップS2303:No)、集約装置101は、プロトコル2による検査指示をバリア同期後に送信させる制御を行い(ステップS2305)、一連の処理を終了する。
図24は、集約装置による判定処理手順の例3を示すフローチャートである。図24の例では、検査結果は、経由したセンサーノード102の識別情報が経由順に並べられた通信経路に関する情報を有していることする。集約装置101は、プロトコル2による検査結果を受信したか否かを判断する(ステップS2401)。集約装置101は、プロトコル2による検査結果を受信していない場合(ステップS2401:No)、ステップS2401へ戻る。一方、集約装置101は、プロトコル2による検査結果を受信した場合(ステップS2401:Yes)、定常時の通信経路に関する情報を取得する(ステップS2402)。
集約装置101は、受信した検査結果についての通信経路に関する情報が定常時の情報と同じか否かを判断する(ステップS2403)。受信した検査結果についての通信経路に関する情報が定常時の情報と同じでない場合(ステップS2403:No)、集約装置101は、位置関係に異常が発生したことを出力し(ステップS2404)、一連の処理を終了する。
検査結果についての通信経路に関する情報が定常時の情報と同じである場合(ステップS2403:Yes)、集約装置101は、検査結果に故障を示す情報があるか否かを判断する(ステップS2405)。検査結果に故障を示す情報がない場合(ステップS2405:No)、一連の処理を終了する。検査結果に故障を示す情報がある場合(ステップS2405:Yes)、集約装置101は、センサーノード102が故障していることを出力し(ステップS2406)、一連の処理を終了する。
図25は、集約装置による判定処理手順の例4を示すフローチャートである。図25の例では、検査結果は、経由したセンサーノード102の識別情報が経由順に並べられた通信経路に関する情報を有していることとする。集約装置101は、プロトコル3による検査結果を受信したか否かを判断する(ステップS2501)。集約装置101は、プロトコル3による検査結果を受信していない場合(ステップS2501:No)、ステップS2501へ戻る。集約装置101は、プロトコル3による検査結果を受信した場合(ステップS2501:Yes)、検査結果に故障を示す情報があるか否かを判断する(ステップS2502)。検査結果に故障を示す情報がない場合(ステップS2502:No)、一連の処理を終了する。検査結果に故障を示す情報がある場合(ステップS2502:Yes)、集約装置101は、センサーノード102が故障していることを出力し(ステップS2503)、一連の処理を終了する。
図26は、集約装置によるバリア同期処理手順例を示すフローチャートである。集約装置101は、バリア同期を発行し(ステップS2601)、バリア同期を発行してから所定時間経過したか否かを判断する(ステップS2602)。所定時間経過していない場合(ステップS2602:No)、集約装置101は、他の集約装置101から同期状態を受信したか否かを判断する(ステップS2603)。集約装置101は、他の集約装置101から同期状態を受信していない場合(ステップS2603:No)、ステップS2602へ戻る。
集約装置101は、他の集約装置101から同期状態を受信した場合(ステップS2603:Yes)、すべての集約装置101から受信済みか否かを判断する(ステップS2604)。集約装置101は、すべての集約装置101から受信済みでない場合(ステップS2604:No)、ステップS2602へ戻る。集約装置101は、すべての集約装置101から受信済みである場合(ステップS2604:Yes)、最後に受信した同期状態の送信元にプロトコルによる指示を送信させ(ステップS2605)、一連の処理を終了する。
ステップS2602において、バリア同期を発行してから所定時間経過した場合(ステップS2602:Yes)、集約装置101は、複数のセンサーノード102がマルチホップ通信できないことを出力し(ステップS2606)、一連の処理を終了する。
以上説明したように、コンピュータが、第1集約装置が送信指示を送信してから、複数ノード間のマルチホップ通信によって送信指示に対する送信信号を第2集約装置が受信するまでの第1通信経路が平常時の第2通信経路と一致するか判定する。これにより、信号送信を指示した通信装置に通信ノードからの応答を戻さなくても、複数のセンサーノードのうちのいずれかの通信ノードに関する異常があるか否かを判定することができる。
また、コンピュータが、センサーノードに自ノードを検査させる検査指示が第3集約装置から送信されてから、センサーノードの間のマルチホップ通信によって第4集約装置が受信するまでの第3通信経路が、定常時の第4通信経路と一致するか判定する。ここでは、センサーデータの取得を指示する送信指示と性質の異なる検査指示を伝搬させる。2つの通信経路が一致しない場合、コンピュータが、いずれかのセンサーノードと他のセンサーノードとの通信時の位置関係に変化が生じた、またはチャージ中によって検査指示を受信できない状態にあると判定することができる。したがって、いずれかのセンサーノードの位置がずれるなどの異変が発生した、またはチャージ中であることを判定することができる。一方、検査指示送信時の通信経路が一致する場合、いずれかのセンサーノードが故障している、または送信指示の際にチャージ中、センシング中、一時異常などによって応答ができない状態にあったと判定することができる。
また、コンピュータが、データ再取得指示を送信後に検査指示を送信させた場合、データ再取得指示を送信した集約装置101と検査指示を送信した集約装置101とが同一の場合、第4通信経路は、データ再取得指示を送信時の通信経路であってもよい。
また、コンピュータが、充電時間待機してから検査指示を送信し、検査指示に対する検査結果の通信経路の一致を判定する。これにより、充電時間待機しているため、各センサーノードの充電は完了しているため、通信経路が一致しない場合、コンピュータが、いずれかのセンサーノードと他のセンサーノードとの通信時の位置関係に変化が生じたと判定することができる。
また、コンピュータが、検査指示送信後に、第2通信経路と第3通信経路との一致を判定すると共に、検査結果が故障を示すか否かを判定する。これにより、検査結果の通信経路が定常時の通信経路と一致している場合に、故障によってデータ取得に異常が検出されたか否かを判定することができる。したがって、判定精度を向上させることができる。
また、コンピュータは、第1通信経路と第2通信経路とが一致しない場合に検査指示を第3通信装置に送信させる前に、バリア同期を取る。これにより、複数のセンサーノードの間での異常判定に関する検査指示の伝搬が他の指示の伝搬によって妨げられるのを防ぐことができる。したがって、判定精度を向上させることができる。
また、コンピュータが、バリア同期によってすべての集約装置が同期状態となってから充電時間待機させた後に、検査指示を第3通信装置に送信させる。これにより、最後にセンサーノードに対していずれかの集約装置が指示を送信してからすべてのセンサーノードの充電を完了させているため、チャージ中による異常が発生するのを防ぐことができる。したがって、判定精度を向上させることができる。
また、コンピュータが、バリア同期によって最後に同期状態になる集約装置を第3集約装置として、検査指示を送信させる。これにより、複数ある通信装置のうちのいずれの通信装置に検査指示を送信させるかを予め定めておくことにより、通信時にいずれの通信装置に送信させるかを決定する処理を省くことができる。
また、送信指示に対する送信信号を受信する第2通信装置が、第1通信経路と第2通信経路との一致を判定するコンピュータの処理を実行することにより、受信したデータを他のコンピュータに転送させる処理を省くことができる。
また、コンピュータが、第1通信経路と第2通信経路が一致しない場合に、充電時間待機させてから、再度センシングデータを送信させる第2送信指示を第3集約装置に送信させる。そして、コンピュータが、第3集約装置から、第2送信指示に対する第2送信信号を受信する第4集約装置までの第3通信経路と、定常時の第4通信経路と、の一致を判定する。これにより、一致していれば、チャージ中、一時的な異常、またはセンサー応答中などによって第1通信経路が定常時の第2通信経路と異なっていたと判定することができる。
また、コンピュータが、第1通信経路と第2通信経路とが一致しない場合に第2送信信号を第3通信装置に送信させる前に、バリア同期を取る。これにより、複数のセンサーノードの間での検査指示の伝搬が他の指示の伝搬によって妨げられるのを防ぐことができる。したがって、判定精度を向上させることができる。
また、コンピュータが、バリア同期によってすべての集約装置が同期状態となってから充電時間待機させた後に、第2送信信号を第3通信装置に送信させる。これにより、最後にセンサーノードに対していずれかの集約装置が指示を送信してからすべてのセンサーノードの充電を完了させているため、チャージ中による異常が発生するのを防ぐことができる。したがって、判定精度を向上させることができる。
また、第1通信経路と第2通信経路とが一致しない場合に検査指示または第2送信信号を送信する第3通信装置は、バリア同期によって最後に同期状態になった装置にする。これにより、複数ある通信装置のうちのいずれの通信装置に検査指示または第2送信信号を送信させるかを予め定めておくことにより、通信時にいずれの通信装置に送信させるかを決定する処理を省くことができる。
また、送信指示に対する送信信号を受信する第2通信装置が、第1通信経路と第2通信経路との一致を判定するコンピュータの処理を実行する。そして、検査指示に対する検査結果または第2送信指示に対する送信信号を受信する第4通信装置が、第3通信経路と第4通信経路との一致を判定するコンピュータの処理を実行する。これにより、受信したデータを他のコンピュータに転送させる処理を省くことができる。
また、コンピュータが、バリア同期を発行後から所定時間経過しても同期状態にならない通信装置があれば、複数のセンサーノードによってマルチホップ通信ができないと判定する。これにより、設置領域内に配置されたセンサーノードの故障が増大したことを検出することができ、システムが破綻したと判定することができる。したがって、ユーザは、判定結果に応じて、システムの再設計を行うことができる。
また、プロトコル4によってセンサーノードに関する異常があると判定された後、プロトコル2とプロトコル1のいずれを先に送信させるかについては、システムの設計者やユーザが予めシステムに定義させておくこととする。また、プロトコル3によってセンサーノードに関する異常があると判定された後に、プロトコル2またはプロトコル1のいずれかを送信させて、異常の種類を判定してもよい。
上述した実施の形態に関し、さらに以下の付記を開示する。
(付記1)情報を記憶する記憶部を有するコンピュータが、
第1通信装置によって送信され複数の通信ノードの間のマルチホップ通信により伝搬された送信指示に対する前記複数の通信ノードからの送信信号を前記第1通信装置と異なる第2通信装置が前記複数の通信ノードの間のマルチホップ通信により受信した際の、前記第1通信装置から前記第2通信装置までの第1通信経路に関する第1情報を前記記憶部へ書き込み、
前記第1情報を前記記憶部へ書き込んだ後に、前記第1通信装置によって信号が送信されてから、前記複数の通信ノードの間のマルチホップ通信により伝搬されて前記信号が前記第2通信装置によって受信されるまでの第2通信経路に関する第2情報を前記記憶部へ書き込み、
前記記憶部から読み出した前記第1情報と前記第2情報との比較結果に基づいて、前記第1通信経路と前記第2通信経路との一致を判定する、
処理を実行することを特徴とする判定方法。
(付記2)前記送信指示は、前記複数の通信ノードに対する、自ノードに設けられたセンサーのセンシングデータの送信指示であって、
前記コンピュータが、
前記第1通信経路と前記第2通信経路とが一致していないと判定した場合、前記複数の通信ノードに自ノードを検査させる検査指示を第3通信装置に送信させる制御を行い、
前記第3通信装置によって送信され前記複数の通信ノードの間のマルチホップ通信により伝搬された前記検査指示に対する前記複数の通信ノードからの検査結果を前記複数の通信ノードの間のマルチホップ通信により前記第3通信装置と異なる第4通信装置が受信した際の、前記第3通信装置から前記第4通信装置までの第3通信経路に関する第3情報を取得し、
記憶装置に記憶された、前記第3通信装置によって信号が送信されてから、前記複数の通信ノードの間のマルチホップ通信により伝搬されて前記信号が前記第4通信装置によって受信されるまでの第4通信経路に関する第4情報を取得し、
取得した前記第3情報と、取得した前記第4情報と、を比較することにより、前記第3通信経路と前記第4通信経路との一致を判定する、
処理を実行させることを特徴とする付記1に記載の判定方法。
(付記3)前記検査指示を前記第3通信装置に送信させる制御を行う処理では、
前記第1通信経路と前記第2通信経路とが一致していないと判定した場合、前記送信信号を前記第2通信装置が受信してから前記複数の通信ノードの各々の充電にかかる充電時間待機後に、前記検査指示を前記第3通信装置によって送信させることを特徴とする付記2に記載の判定方法。
(付記4)前記コンピュータが、
前記検査結果を取得し、
取得した前記検査結果に基づいて、前記複数の通信ノードのうちのいずれかの通信ノードに故障があるか否かを判定する、
処理を実行することを特徴とする付記2または3に記載の判定方法。
(付記5)前記コンピュータが、
前記第1通信経路と前記第2通信経路とが一致していないと判定した後に、少なくとも前記第1通信装置と前記第2通信装置とを含み、前記複数の通信ノードとの間で通信が可能な複数の通信装置の間でバリア同期を取らせる制御を行う処理を実行することを特徴とする付記2〜4のいずれか一つに記載の判定方法。
(付記6)前記検査指示を前記第3通信装置に送信させる制御を行う処理では、
前記複数の通信装置がすべて同期状態になってから前記複数の通信ノードの各々の充電にかかる充電時間待機させた後に、前記検査指示を前記第3通信装置によって送信させることを特徴とする付記5に記載の判定方法。
(付記7)前記検査指示を前記第3通信装置に送信させる制御を行う処理では、
前記バリア同期によって前記複数の通信装置のうちの最後に同期状態になった前記第3通信装置に前記検査指示を送信させることを特徴とする付記5または6に記載の判定方法。
(付記8)前記コンピュータが前記第2通信装置であることを特徴とする付記1に記載の判定方法。
(付記9)前記コンピュータが、
前記第1通信経路と前記第2通信経路とが一致していないと判定した場合、前記送信信号を前記第2通信装置が受信してから前記複数の通信ノードの各々の充電にかかる充電時間待機後に、第3通信装置によって第2送信指示を前記複数の通信ノードへ送信させる制御を行い、
前記第3通信装置によって送信され前記複数の通信ノードの間のマルチホップ通信により伝搬された第2送信指示に対する前記複数の通信ノードからの第2送信信号を前記第3通信装置と異なる第4通信装置が前記複数の通信ノードの間のマルチホップ通信により受信した際の、前記第3通信装置から前記第4通信装置までの第3通信経路に関する第3情報を取得して前記記憶部に書き込み、
前記第3通信装置によって信号が送信されてから、前記複数の通信ノードの間のマルチホップ通信により伝搬されて前記信号が前記第4通信装置によって受信されるまでの第4通信経路に関する第4情報を取得して前記記憶部に書き込み、
前記記憶部から読み出した前記第3情報と、前記記憶部から読み出した前記第4情報と、を比較することにより、前記第3通信経路と前記第4通信経路とが一致しているか否かを判定する、
処理を実行することを特徴とする付記1〜8のいずれか一つに記載の判定方法。
(付記10)前記コンピュータが、
前記第1通信経路と前記第2通信経路とが一致していないと判定した後に、少なくとも前記第1通信装置と前記第2通信装置とを含み、前記複数の通信ノードとの間で通信が可能な複数の通信装置の間でバリア同期を取らせる制御を行う処理を実行することを特徴とする付記9に記載の判定方法。
(付記11)前記第3通信装置によって前記第2送信指示を送信させる制御を行う処理は、
前記複数の通信装置のすべてが同期状態になってから前記複数の通信ノードの各々の充電にかかる充電時間待機させた後に、前記第2送信指示を前記第3通信装置によって送信させることを特徴とする付記10に記載の判定方法。
(付記12)前記第3通信装置によって第2送信指示を送信させる制御を行う処理は、
前記バリア同期によって前記複数の通信装置のうちの最後に前記同期状態になった前記第3通信装置に前記第2送信指示を送信させることを特徴とする付記10または11に記載の判定方法。
(付記13)前記コンピュータは前記第2通信装置に設けられたコンピュータと前記第4通信装置に設けられたコンピュータとを含み、
前記第2通信装置に設けられたコンピュータが、
前記第1情報を取得する処理と、
前記第2情報を取得する処理と、
前記第1通信経路と前記第2通信経路との一致を判定する処理と、
前記第3通信装置によって前記検査指示を送信させる制御を行う処理と、
を実行し、
前記第4通信装置に設けられたコンピュータが、
前記第3情報を取得する処理と、
前記第4情報を取得する処理と、
前記第3通信経路と前記第4通信経路との一致を判定する処理と、
を実行することを特徴とする付記3に記載の判定方法。
(付記14)前記コンピュータは前記第2通信装置に設けられたコンピュータと前記第4通信装置に設けられたコンピュータとを含み、
前記第2通信装置に設けられたコンピュータが、
前記第1情報を取得する処理と、
前記第2情報を取得する処理と、
前記第1通信経路と前記第2通信経路との一致を判定する処理と、
前記第3通信装置によって前記第2送信指示を送信させる制御を行う処理と、
を実行し、
前記第4通信装置に設けられたコンピュータが、
前記第3情報を取得する処理と、
前記第4情報を取得する処理と、
前記第3通信経路と前記第4通信経路との一致を判定する処理と、
を実行することを特徴とする付記9に記載の判定方法。
(付記15)前記コンピュータが、
前記複数の通信装置間でバリア同期を取った際に、前記複数の通信装置のうちのいずれか一つの通信装置が前記バリア同期を行ってから所定時間経過しても同期状態にならない場合、前記複数の通信ノードの間のマルチホップ通信が行えないと判定する処理を実行することを特徴とする付記5または10に記載の判定方法。
(付記16)複数の通信ノードと、
前記複数の通信ノードとの間で通信可能な第1通信装置と、
前記複数の通信ノードとの間で通信可能であって、前記第1通信装置と異なる第2通信装置と、
を有し、
前記第2通信装置が、
情報を記憶する記憶装置を有し、
前記第1通信装置によって送信され複数の通信ノードの間のマルチホップ通信により伝搬された送信指示に対する前記複数の通信ノードからの送信信号を前記複数の通信ノードの間のマルチホップ通信により受信した際の、前記第1通信装置から前記第2通信装置までの第1通信経路に関する第1情報を取得して前記記憶装置へ書き込み、
前記第1通信装置によって信号が送信されてから、前記複数の通信ノードの間のマルチホップ通信により伝搬されて前記信号が前記第2通信装置によって受信されるまでの第2通信経路に関する第2情報を取得して前記記憶装置へ書き込み、
取得した前記第1情報と、取得した前記第2情報と、を比較することにより、前記第1通信経路と前記第2通信経路との一致を判定する、
処理を実行することを特徴とするシステム。