以下、例示的な実施形態を図面に基づいて詳細に説明する。
《実施形態1》
図1は、無線通信システム100の概略図である。無線通信システム100は、データステーション10と、複数の中継機20と、複数のセンサ30とを有している。データステーション10、中継機20、センサ30は、通信端末であり、互いに無線通信を行い、自律的にネットワークを構築する。無線通信システム100においては、マルチホップ無線ネットワークが形成される。データステーション10は、親機として機能し、中継機20は、子機として機能する。基本的には、データステーション10は、中継機20と通信を行い、センサ30は、中継機20と通信を行う。データステーション10及び中継機20は、データステーション10を頂点とするツリー型のネットワークトポロジを有している。本明細書では、ネットワークにおいてデータステーション10側を上流側又は上位とし、ツリーの末端側を下流側又は下位とする。また、データステーション10、中継機20、センサ30を区別しない場合には、単に通信端末と称する場合がある。また、各中継機20を区別する場合には、符号「20」の後にアルファベットを付して区別する。同様に、各センサ30を区別する場合には、符号「30」の後にアルファベットを付して区別する。尚、図1では、中継機20eに繋がる2つのセンサ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の検出値を収集するためのプログラム、ネットワークの通信経路のツリー情報、中継機20と通信を行うスケジュールを規定したスケジュール情報、及び、収集した検出値等が記憶されている。
無線通信回路14は、中継機20等の他の通信端末と無線通信を行う。無線通信回路14は、CPU11の制御によって動作し、各種信号を符号化・変調等の処理により無線信号に変換し、アンテナを介して送信する。また、無線通信回路14は、アンテナを介して受信した信号を復調・複合化等の処理により適切な信号に変換する。
計時回路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から取得した検出値等が記憶されている。
無線通信回路24は、他の通信端末と無線通信を行う。無線通信回路24は、CPU21の制御によって動作し、各種信号を符号化・変調等の処理により無線信号に変換し、アンテナを介して送信する。また、無線通信回路24は、アンテナを介して受信した信号を復調・複合化等の処理により適切な信号に変換する。
計時回路25は、所定のクロックを発生し、中継機20の基準となる時刻を計時する。電源回路26には、電池27が接続されている。電源回路26は、中継機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に送信するためのプログラム、振動数及び温度を検出する頻度を変更するためのプログラム、上位の通信端末に関する情報、及び、検出値等が記憶されている。
無線通信回路54は、他の通信端末と無線通信を行う。無線通信回路54は、CPU51の制御によって動作し、各種信号を符号化・変調等の処理により無線信号に変換し、アンテナを介して送信する。また、無線通信回路54は、アンテナを介して受信した信号を復調・複合化等の処理により適切な信号に変換する。
計時回路55は、所定のクロックを発生し、センサ30の基準となる時刻を計時する。センサインターフェース部56は、センサ部40との間のインターフェース処理を行う。電源回路57には、電池58が接続されている。電源回路57は、センサ30の各要素に電力を供給する。
〈通信スケジュール〉
このように構成された無線通信システム100は、通常の運転動作として、センサ30の検出値をデータステーション10に収集する。データステーション10は、図5に示す通信スケジュールに従って各中継機20と通信を行い、各中継機20に対応する、即ち、繋がっているセンサ30の検出値を収集する。
図5の通信スケジュールは、データ収集の1サイクルを示しており、図5の通信スケジュールが繰り返し実行される。通信スケジュールは、複数のタイムスロットに分割されている。各中継機20には、特定のタイムスロットが割り当てられている。各中継機20は、対応するタイムスロットにおいてデータステーション10と通信を行い、該中継機20に繋がったセンサ30からの検出値をデータステーション10に送信する(以下、この処理を「返信処理」ともいう)。基本的には、各中継機20は、割り当てられた特定のタイムスロット(以下、「特定スロット」とも称する)においてアクティブ状態となり、特定スロット以外のときはスリープ状態となる。ただし、他の中継機20とデータステーション10との通信経路上に存在する中継機20は、下位の中継機20がデータステーション10と通信する場合に中継処理を行う必要があるため、下位の中継機20に割り当てられたタイムスロット(以下、「中継スロット」とも称する)においてもアクティブ状態となって中継処理を実行する。また、センサ30は、繋がっている中継機20の特定スロットにおいて該中継機20へ検出値を送信するので、該中継機20の特定スロットにおいてアクティブ状態となっている。センサ30は、中継機20へ検出値を送信する必要がないときには、基本的にはスリープ状態となっている。
図5の通信スケジュールでは、タイムスロットがマトリックス状に規定されている。ツリー構造の通信経路の階層に従ってタイムスロットが割り当てられている。詳しくは、列ごとにツリー構造の階層が割り当てられる。例えば、列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つのタイムスロットではなく、複数のタイムスロット(図5では、列L0の全てのタイムスロット)がデータステーション10に割り当てられる。尚、列に含まれるタイムスロットの数と各階層に含まれる中継機20の数は異なる(通常、列に含まれるタイムスロットの数の方が多い)ので、列に含まれるタイムスロットには、中継機が割り当てられていないものも存在する。
また、前述の如く、或る中継機20の特定スロットにおいては、該中継機20に繋がるセンサ30もアクティブ状態となるので、実質的に、各センサ30にも特定のタイムスロットが割り当てられていることになる。ただし、中継機20には複数のセンサ30が繋がり得るので、そのような場合には、該中継機20の特定スロットには、複数のセンサ30が割り当てられていることになる。例えば、図5の例では、列L3、行N1のタイムスロットには中継機20eが割り当てられている。中継機20eには2つのセンサ30が繋がっているので(図1参照)、列L3、行N1のタイムスロットには実質的に該2つのセンサ30が割り当てられていることになる。
通信スケジュールでは、タイムスロットの処理は、列方向に進んでいく。例えば、或る列(例えば、列L1)において、行番号に関して昇順(即ち、行N1からNmの順)にタイムスロットの処理が進んでいき、当該行の最後の行番号(行Nm)のタイムスロットの処理が終了すると、次の列(例えば、列L2)の最初の行番号(行N1)のタイムスロットから同様の順序で処理が進められていく。
タイムスロットの割り当ては、通信経路が確立されたときにデータステーション10が行う。例えば、無線通信システム100の全体の通信経路の確立に先立ち、通信端末間で経路が形成される。その後、データステーション10は、どの通信端末同士が繋がっているかという経路情報を取得し、無線通信システム100の全体の通信経路を確立する。通信経路が確立されると、データステーション10は、各中継機20にタイムスロットを割り当て、各中継機20に特定スロットの番号を通知する。このとき、下位の中継機20の中継処理を行う必要がある中継機20には、それ自身の特定スロットに加えて、下位の中継機20の特定スロット、即ち、中継スロットも通知される。また、中継機20は、繋がっているセンサ30に該中継機20の特定スロットを通知する。データステーション10は、通信スケジュール(即ち、中継機20へのタイムスロットの割り当て)を記憶部13に保存する。中継機20は、特定スロットと中継スロットを記憶部23に保存する。センサ30は、繋がっている中継機20の特定スロットを記憶部53に保存する。
〈システムの動作〉
データ収集においては、データステーション10は、通信スケジュールに従って処理を進める。具体的には、データステーション10は、それ自身に割り当てられたタイムスロットにおいて、データステーション10に必要な処理を行う。続いて、データステーション10は、タイムスロットの順番で、タイムスロットに割り当てられた中継機20と順次、通信を行う。このとき、データステーション10から各中継機20に送られる信号には、少なくとも、センサ30の検出値の返信を要求するリクエスト信号が含まれている。
一方、中継機20は、通信スケジュールに従って、特定スロットのタイミングでアクティブ状態となって、データステーション10からのリクエスト信号を待機する。また、中継機20は、特定スロットに応じて、該中継機20に繋がっているセンサ30から検出値を取得する。そのため、センサ30は、繋がっている中継機20の特定スロットに応じてアクティブ状態となって検出値を該中継機20に送信する。中継機20は、リクエスト信号を受信すると、センサ30からの検出値をリクエスト信号に対する応答としてデータステーション10へ返信する。また、中継機20は、中継スロットでもアクティブ状態となって、データステーション10と下位の中継機20との間の中継処理を行う。
このように、データ収集の基本的な処理においては、データステーション10は、通信スケジュールに従って各特定スロットにおいて該特定スロットに対応するセンサ30の検出値を収集することによって、全てのセンサ30の検出値を収集する。通信スケジュールにおいては各中継機20に特定スロットが1つだけ割り当てられているので、実質的に各センサ30にも特定スロットが1つだけ割り当てられている。つまり、データステーション10は、1回の通信スケジュールにおいて1回の頻度(以下、「収集頻度」ともいう)で各センサ30の検出値を収集する。このように、データステーション10は、センサ30の検出値を通信スケジュールの1サイクルに相当する周期(以下、「基本周期」ともいう)で周期的に収集する。
このような基本的な処理に加え、データステーション10は、センサ30がスチームトラップTの振動数及び温度を検出する頻度である検出頻度を状況に応じて変更する。
詳しくは、データステーション10は、スチームトラップTの故障率パラメータをセンサ30の検出値に基づいて求め、故障率パラメータに基づいてセンサ30の検出頻度を変更する。故障率パラメータは、スチームトラップTの故障の可能性を表し、値が大きいほど故障の可能性が高くなる。例えば、故障率パラメータは、温度又は振動数の検出値が正常な範囲内である場合には、検出値が正常な範囲の境界値に近づくほど大きくなり、検出値が正常な範囲外である場合には、検出値が正常な範囲の境界値から離れるほど大きくなるように算出される。また、故障率パラメータには、検出値が継続する期間及びスチームトラップTの種類も考慮される。つまり、検出値が正常な範囲外であっても、それが突発的であって継続しない場合には故障率パラメータは小さくなる。また、検出値が同じであっても、スチームトラップTの型式やスチームトラップTの上流又は下流に接続されている機器の種類が異なれば、故障率パラメータは変わり得る。これは、温度又は振動数の変動幅は、スチームトラップTの型式やスチームトラップTの上流又は下流に接続されている機器に応じて変わり得るためである。
データステーション10は、故障率パラメータが大きい場合には、故障率パラメータが小さい場合に比べてセンサ30の検出頻度を増加させる。詳しくは、センサ30は、検出頻度が相対的に少ない第1モードと、検出頻度が相対的に多い第2モードとを有している。第1モードにおいては、センサ30は、1回の通信スケジュールにおいて、繋がっている中継機20の特定スロットに対応するタイミングで検出値を1回取得する。つまり、第1モードの検出頻度は、通信スケジュール中に1回であり、データステーション10による収集頻度と同じである。一方、第2モードにおいては、センサ30は、1回の通信スケジュール中に検出値を複数回取得する。第2モードの検出頻度は、通信スケジュール中に複数回の頻度であり、収集頻度よりも多い。第2モードのセンサ30は、繋がっている中継機20の特定スロットが到来するまで、取得した複数の検出値を記憶部53に保存しておき、該特定スロットが到来したときに保存しておいた複数の検出値を該中継機20へ、ひいては、データステーション10へ送信する。
〈処理フロー〉
以下、データ収集におけるデータステーション10、中継機20及びセンサ30の処理について詳細に説明する。
まず、データステーション10の処理について、図6のフローチャートを参照しながら説明する。
データステーション10は、ステップSa1において、通信スケジュールに従って処理を実行する。具体的には、前述の如く、データステーション10は、データステーション10に必要な処理を行い、タイムスロットの順番でタイムスロットに割り当てられた中継機20に順次、リクエスト信号を送信する。このとき、モードを変更する必要があるセンサ30が存在する場合には、データステーション10は、該当するセンサ30が繋がっている中継機20の特定スロットにおいて、リクエスト信号と共にモード信号を送信する。モード信号は、センサ30を第1モードから第2モードへ、又は、第2モードから第1モードへ変更するための信号である。モード信号を送信する必要性は、後述するステップSa3以下で判断される。
データステーション10は、センサ30からの検出値を受信すると、ステップSa2において故障率パラメータを算出する。データステーション10は、センサ30ごとに、それまでの過去の検出値も考慮して故障率パラメータを算出する。尚、過去の検出値は、サーバ90から取得することもできる。ステップSa2以下の処理は、それぞれのセンサ30に対して行われる。
そして、ステップSa3において、データステーション10は、故障率パラメータが所定の判定値αよりも大きいか否かを判定する。故障率パラメータが判定値αよりも大きい場合には、スチームトラップTの故障の可能性があるため、より多くの検出値を取得して、スチームトラップTの故障の有無をより精度良く分析する必要がある。
そこで、故障率パラメータが判定値α以下であれば、データステーション10は、ステップSa4において、センサ30の運転モードが第1モードか否かを判定する。データステーション10は、各センサ30の運転モードを記憶部13に記憶している。故障率パラメータが相対的に小さい場合にはセンサ30の検出頻度を増加させる必要がないので、センサ30が第1モードであれば、データステーション10は、リターンして、前述の処理を繰り返す。一方、センサ30が第1モードでない、即ち、第2モードであれば、データステーション10は、ステップSa5において、記憶部13に記憶しているセンサ30の運転モードを第2モードから第1モードへ変更すると共に、運転モードを第2モードから第1モードへ変更させるモード信号をセンサ30へ送信する旨を記憶部13に記憶する(例えば、運転モードを第2モードから第1モードへ変更させるモード信号をセンサ30へ送信することを示すフラグをオンにする)。その後、データステーション10は、リターンして前述の処理を繰り返す。そして、次の通信スケジュールでは、故障率パラメータが小さいセンサ30が繋がっている中継機20の特定スロットにおいて、データステーション10は、リクエスト信号と共に、該センサ30の運転モードを第2モードから第1モードへ変更するモード信号を送信する。
一方、故障率パラメータが判定値αよりも大きい場合には、データステーション10は、ステップSa6において、センサ30の運転モードが第2モードか否かを判定する。故障率パラメータが相対的に大きい場合にはセンサ30の検出頻度を増加させる必要がある。センサ30が第2モードであれば、データステーション10は、リターンして、前述の処理を繰り返す。一方、センサ30が第2モードでない、即ち、第1モードであれば、データステーション10は、ステップSa7において、記憶部13に記憶しているセンサ30の運転モードを第1モードから第2モードへ変更すると共に、運転モードを第1モードから第2モードへ変更させるモード信号をセンサ30へ送信する旨を記憶部13に記憶する(例えば、運転モードを第1モードから第2モードへ変更させるモード信号をセンサ30へ送信することを示すフラグをオンにする)。その後、データステーション10は、リターンして前述の処理を繰り返す。そして、次の通信スケジュールでは、故障率パラメータが大きいセンサ30が繋がっている中継機20の特定スロットにおいて、データステーション10は、リクエスト信号と共に、センサ30の運転モードを第1モードから第2モードへ変更するモード信号を送信する。
次に、中継機20の処理について、図7のフローチャートを参照しながら説明する。中継機20は、前述の如く、特定スロット及び中継スロットにおいてアクティブ状態となり、それ以外のタイムスロットにおいてはスリープ状態となる。
アクティブ状態の中継機20は、アクティブ状態になるべき次のタイムスロットの開始時刻を計時回路25に設定する(ステップSb1)。具体的には、中継機20は、特定スロット及び中継スロットのうち次に到来するタイムスロットの開始時刻を計時回路25に設定する。その後、中継機20は、アクティブ状態からスリープ状態となる(ステップSb2)。
計時回路25は、計時を継続し、設定された時刻になるとCPU21に時刻の到来を通知する。CPU21は、計時回路25からの通知を受けてスリープ状態からアクティブ状態となる(ステップSb3)。
ステップSb4においては、中継機20は、行う処理が返信処理か否か判定する。すなわち、現在のタイムスロットが特定スロットであれば、行う処理は返信処理であり、現在のタイムスロットが中継スロットであれば、行う処理は中継処理である。
行う処理が返信処理の場合には、中継機20は、データステーション10からのリクエスト信号を待機する(ステップSb5)。そして、中継機20は、リクエスト信号を受信すると、センサ30からの検出値をデータステーション10へ向けて送信する(ステップSb6)。このとき、中継機20は、検出値の返信を要求する検出信号をセンサ30に送信し、センサ30からの検出値を取得する。この検出値の取得は、データステーション10からのリクエスト信号を受信してから行ってもよいし、リクエスト信号の受信に先立って行ってもよい。中継機20は、検出値の送信が完了すると、リターンする。また、中継機20は、データステーション10からリクエスト信号と共にモード信号を受信した場合には、該モード信号を対応するセンサ30に送信する。すなわち、モード信号には、センサ30を特定する情報、例えば、センサ30の通信アドレス又はIDが付加されている。中継機20に複数のセンサ30が繋がっている場合には、中継機20は、モード信号に付加された、センサ30を特定する情報に基づいて、対応するセンサ30にのみモード信号を送信する。
中継機20が特定スロット中にリクエスト信号を受信できない場合には、中継機20は、今回の特定スロットでのデータステーション10との通信を諦め、特段の処理を行わずにリターンする。
一方、ステップSb4の判定において、行う処理が中継処理の場合には、中継機20は、ステップSb7において中継処理を行う。中継処理では、中継機20、受信した信号の内容にかかわらず、該信号の最終的な送信先への通信経路上の次の通信端末に該信号を送信する。例えば、中継機20は、データステーション10から下位の中継機20へのリクエスト信号を受信すると、下位の中継機20までの通信経路上の次の中継機20へ該リクエスト信号を送信する。中継機20は、下位の中継機20からデータステーション10への検出値を受信すると、データステーション10までの通信経路上の次の中継機20へ該検出値を送信する。中継機20は、中継処理が完了するか、又は、タイムスロットが終了すると、リターンする。
中継機20は、以上のフローを繰り返すことによって、特定スロット及び中継スロットでアクティブ状態となってそのときのタイムスロットに応じた処理を行う。中継機20は、特定スロット及び中継スロット以外ではスリープ状態となる。
−センサ−
次に、センサ30の処理について説明する。図8は、第1モードのセンサ30の処理を示すフローチャートであり、図9は、第2モードのセンサ30の処理を示すフローチャートである。
まず、第1モードのセンサ30の処理について、図8を参照しながら説明する。第1モードのセンサ30は、前述の如く、繋がっている中継機20の特定スロットに応じてアクティブ状態となり、それ以外のときにはスリープ状態となる。
第1モードにおけるアクティブ状態のセンサ30(処理部50)は、アクティブ状態になるべき次のタイムスロットの開始時刻を計時回路55に設定する(ステップSc1)。具体的には、センサ30は、次に到来する、繋がっている中継機20の特定スロットの開始時刻を計時回路55に設定する。その後、センサ30は、アクティブ状態からスリープ状態となる(ステップSc2)。
計時回路55は、計時を継続し、設定された時刻になるとCPU51に時刻の到来を通知する。CPU51は、計時回路55からの通知を受けてスリープ状態からアクティブ状態となる(ステップSc3)。
ステップSc4において、センサ30は、中継機20からの検出信号を待機する。そして、センサ30が検出信号を受信すると、センサ部40がスチームトラップTの振動数及び温度を検出し(ステップSc5)、処理部50が検出値を中継機20へ送信する(ステップSc6)。
ステップSc7において、センサ30は、モード信号を受信したか否かに基づいてモード変更の要否を判定する。センサ30は、モード信号を受信していなければ、運転モードを変更することなく、リターンして前述の処理を繰り返す。一方、センサ30は、モード信号を受信している場合には、運転モードを変更、即ち、運転モードを第1モードから第2モードへ変更する(ステップSc8)。
このように、第1モードのセンサ30は、繋がっている中継機20の特定スロットに応じてアクティブ状態となって検出値を取得及び送信し、それ以外ではスリープ状態となる。つまり、各センサ30は、通信スケジュールの1サイクルの間に1度だけ検出値を取得及び送信する。
次に、第2モードのセンサ30の処理について、図9を参照しながら説明する。第2モードのセンサ30は、繋がっている中継機20の特定スロットに応じてアクティブ状態となると共に、所定の検出周期ごとにアクティブ状態となる。検出周期は、通信スケジュールの基本周期よりも短い周期である。それ以外のときには、センサ30は、スリープ状態となる。
第2モードにおけるアクティブ状態のセンサ30は、次にアクティブ状態になる時刻を計時回路55に設定する(ステップSd1)。具体的には、第2モードのセンサ30は、繋がっている中継機20の特定スロット及び検出周期のうち先に到来する方の開始時刻を計時回路55に設定する。その後、センサ30は、アクティブ状態からスリープ状態となる(ステップSd2)。
計時回路55は、計時を継続し、設定された時刻になるとCPU51に時刻の到来を通知する。CPU51は、計時回路55からの通知を受けてスリープ状態からアクティブ状態となる(ステップSd3)。
続いて、センサ30は、現在が特定スロットか否かを判定する(ステップSd4)。現在が特定スロットの場合には、センサ30は、ステップSd5へ進む。一方、現在が特定スロットでない、即ち、検出周期の到来によりセンサ30がアクティブ状態となっている場合には、センサ30は、ステップSd10へ進む。
センサ30が検出周期でアクティブ状態となっている場合には、センサ30は、ステップSd10において検出値を取得する。そして、センサ30は、検出値を記憶部53に保存し、リターンしてステップSd1からの処理を繰り返す。その後、特定スロットが到来するまでは、センサ30は、ステップSd1〜Sd4,Sd10,Sd11の処理を繰り返す。つまり、センサ30は、特定スロットが到来するまで検出値を繰り返し取得し、該検出値を記憶部53に保存していく。
一方、現在が特定スロットの場合には、センサ30は、第1モードと同様の処理を行う。すなわち、ステップSd5〜ステップSd8の処理は、第1モードのステップSc4〜ステップSc7の処理と同様である。センサ30は、繋がっている中継機20からの検出信号を待機し、検出信号を受信すると検出値を取得し、該検出値を中継機20へ送信する。このとき、センサ30は、前回の特定スロットから現在の特定スロットまでの間に取得して記憶部53に保存している検出値も、ステップSd6で取得した検出値と併せて中継機20へ送信する。
その後、センサ30は、ステップSd8においてモード信号の受信の有無に基づいてモード変更の要否を判定する。センサ30は、運転モードを第2モードから第1モードへ変更するモード信号を受信している場合には、ステップSd9へ進んで、運転モードを第2モードから第1モードへ変更する。一方、センサ30は、モード信号を受信していない場合には、リターンしてステップSd1からの処理を繰り返す。すなわち、センサ30は、次の特定スロットの到来まで、検出周期での検出値の取得及び保存を繰り返す。
このように、第2モードのセンサ30は、検出周期ごとに検出値の取得及び保存を繰り返すと共に、繋がっている中継機20の特定スロットに応じて第1モードと同様の処理を実行する。このとき、センサ30は、保存していた検出値も中継機20へ送信する。つまり、各センサ30は、通信スケジュールの1サイクルの間に複数の検出値を取得し、複数の検出値をまとめて送信する。
以上のフローを繰り返すことによって、データステーション10は、センサ30の検出頻度をスチームトラップTの故障の可能性に応じて変更しながら、センサ30の検出値の収集を繰り返す。スチームトラップTの故障の可能性が高い場合には、データステーション10は、該スチームトラップTに設置されたセンサ30の検出頻度を高める。このとき、データステーション10は、センサ30の検出値の収集頻度(即ち、通信スケジュール)は変更せずに、複数の検出値を対応する中継機20の特定スロットにおいてまとめて収集する。これにより、データステーション10は、より多くの検出値を収集することができ、スチームトラップTの故障の可能性をより精度良く分析することができる。
以上のように、無線通信システム100は、複数の通信端末によってネットワークを形成する。複数の通信端末は、スチームトラップT(対象物)の振動数及び温度(所定の物理量)を検出する複数のセンサ30と、センサ30の検出値を中継する複数の中継機20と、センサ30の検出値を基本周期で(周期的に)収集するデータステーション10(親機)とを含んでおり、データステーション10は、センサ30の検出頻度を変更する。
この構成によれば、データステーション10は、基本的には、センサ30の検出値を周期的に収集する。その上で、データステーション10は、センサ30の検出頻度を変更することができる。その結果、データステーション10は、状況に応じてセンサ30の検出頻度を変更して、例えば、より多くの検出値を収集することができる。
また、データステーション10は、センサ30の検出頻度をセンサ30の検出値に基づいて変更する。
より具体的には、データステーション10は、センサ30の検出値から求められる、スチームトラップTの故障の可能性が大きい場合には、故障の可能性が小さい場合よりもセンサ30の検出頻度を増加させる。
この構成によれば、センサ30の検出頻度をセンサ30の検出値に基づいて変更する一例として、データステーション10は、センサ30の検出値から求められる、スチームトラップTの故障の可能性に基づいてセンサ30の検出頻度を変更する。そして、データステーション10は、スチームトラップTの故障の可能性が高い場合には、故障の可能性が低い場合よりもセンサ30の検出頻度を増加させる。スチームトラップTの故障の可能性が高い場合には、より多くの検出値が取得されるので、スチームトラップTの故障をより精度良く分析することができる。
データステーション10は、センサ30の検出値を収集する頻度である収集頻度とセンサ30の検出頻度が異なるように、センサ30の検出頻度を変更する。
この構成によれば、データステーション10が所定の収集頻度でセンサ30の検出値を収集する構成であっても、センサ30は、収集頻度とは異なる検出頻度でスチームトラップTの振動数及び温度を検出することができる。
より詳しくは、センサ30は、検出頻度を収集頻度よりも増加させる場合、データステーション10による検出値の収集タイミングが到来するまでの検出値を保存し、収集タイミングが到来したときに保存しておいた複数の検出値をデータステーション10へ送信する。
この構成によれば、センサ30の検出頻度が収集頻度よりも増加された場合、センサ30が検出値を取得するたびに検出値をデータステーション10へ送信するのではなく、検出値を保存しておき、収集タイミングが到来したときに保存しておいた複数の検出値をデータステーション10へ送信する。これにより、通信スケジュールに従ったデータステーション10とセンサ30との通信への影響を抑制しつつ、センサ30の検出頻度を変更することができる。
《実施形態2》
次に、実施形態2に係る無線通信システム100の処理について説明する。無線通信システム100の構成は、実施形態1と同じである。実施形態1では、センサ30の検出頻度を増加した場合、複数の検出値を対応する特定スロットでまとめてデータステーション10へ送信しているのに対し、実施形態2では、データステーション10による検出値の収集頻度を増加させることによって、センサ30の検出頻度を増加させている。
図10は、実施形態2に係るデータステーション10の処理を示すフローチャートである。ステップSe1〜Se3の処理は、実施形態1のステップSa1〜Sa3の処理と同様である。
詳しくは、データステーション10は、ステップSe1において、通信スケジュールに従って、データステーション10に必要な処理を行うと共に、タイムスロットの順番でタイムスロットに割り当てられた中継機20に順次、リクエスト信号を送信する。ただし、実施形態2では、データステーション10は、実施形態1のようなモード信号を送信しない。
データステーション10は、センサ30からの検出値を受信すると、ステップSe2において故障率パラメータを算出し、ステップSa3において、故障率パラメータが所定の判定値αよりも大きいか否かを判定する。
故障率パラメータが判定値α以下であれば、データステーション10は、リターンして前述の処理を繰り返す。
一方、故障率パラメータが判定値αよりも大きい場合には、データステーション10は、通信スケジュールを変更する。図11に、変更後の通信スケジュールを示す。詳しくは、データステーション10は、通信スケジュールのタイムスロットのうち、何も割り当てられていない(即ち、空いている)タイムスロットに、故障率パラメータの高いセンサ30が繋がっている中継機20を割り当てる。例えば、図1における中継機20eに繋がるセンサ30mの故障率パラメータが判定値αよりも大きい場合には、データステーション10は、図5の通信スケジュールにおいて空いているタイムスロットの全てに中継機20eを割り当てる。割り当てた結果、通信スケジュールは、図11に示すようになる。つまり、中継機20eには、複数のタイムスロットが割り当てられることになる。
尚、データステーション10は、空いている全てのタイムスロットに中継機20eを割り当てる必要はなく、空いているタイムスロットのうち1又は複数のタイムスロットに中継機20eを割り当ててもよい。また、故障率パラメータの高いセンサ30が繋がっている中継機20が複数存在する場合には、空いているタイムスロットが該複数の中継機20に分配して割り当てられる。
データステーション10は、変更後の通信スケジュールを中継機20に通知する。具体的には、データステーション10は、各中継機20に変更後の特定スロットの番号を通知する。各中継機20は、自身の特定スロットを変更後のタイムスロットに更新し、変更後の特定スロットの番号をセンサ30に通知する。ただし、各中継機20は、変更により追加された特定スロットの番号を故障率パラメータの高いセンサ30にのみ通知する。各センサ30は、繋がっている中継機20の特定スロットを変更後のタイムスロットに更新する。
その後、データステーション10は、リターンして前述の処理を繰り返す。変更後の通信スケジュールでは1サイクル中に中継機20eの特定スロットが何度も到来する。データステーション10は、中継機20eの特定スロットが到来する度に中継機20eへリクエスト信号を送信する。ただし、データステーション10は、当初の特定スロット(列L3、行N1)では、センサ30m,30nの両方の検出値を要求するリクエスト信号を送信するのに対し、追加の特定スロットでは、センサ30mの検出値だけを要求するリクエスト信号を送信する。
一方、中継機20eは、変更後の通信スケジュールに従って、アクティブ状態とスリープ状態との切替を実行する。具体的には、中継機20eは、割り当てられた全ての特定スロットにおいてアクティブ状態となり、データステーション10からのリクエスト信号を待機する。そして、中継機20eは、リクエスト信号に応じて、対応するセンサ30から検出値を取得し、検出値をデータステーション10へ送信する。
センサ30m,30nは、変更後の通信スケジュールに従って、アクティブ状態とスリープ状態との切替を実行する。具体的には、当初の特定スロット(列L3、行N1)では、センサ30m,30nの両方がアクティブ状態となり、中継機20eからの検出信号に応じて検出値を取得、返信する。一方、追加の特定スロット(例えば、列L1〜Ln−1,行Nm、列Ln,行N1〜Nmなど)では、センサ30mだけがアクティブ状態となり、中継機20eからの検出信号に応じて検出値を取得、返信する。このとき、センサ30nは、スリープ状態となっている。
尚、実施形態2では、センサ30は、第1モード及び第2モードを有さないので、図8に示す処理のみを実行し、図9に示す処理は実行しない。ただし、図8の処理においても、ステップSc7,Sc8は省略され、ステップSc6の後は、センサ30は、リターンしてステップSc1からの処理を繰り返す。
以上の処理を繰り返すことによって、データステーション10は、センサ30の検出頻度をスチームトラップTの故障の可能性に応じて変更しながら、センサ30の検出値の収集を繰り返す。詳しくは、故障率パラメータが判定値αより小さいセンサ30は、1回の通信スケジュールの間に検出値の取得及び送信を1回だけ行う。一方、故障率パラメータが判定値αより大きいセンサ30は、1回の通信スケジュールの間に検出値の取得及び送信を複数回行う。つまり、データステーション10は、故障率パラメータが小さいセンサ30の収集頻度は変更せずに、故障率パラメータが大きいセンサ30の収集頻度を増加させる。収集頻度を増加させることによって、センサ30の検出頻度も増加する。これにより、データステーション10は、故障率パラメータが大きいスチームトラップTに関してより多くの検出値を収集することができ、スチームトラップTの故障の可能性をより精度良く分析することができる。
《その他の実施形態》
以上のように、本出願において開示する技術の例示として、前記実施形態を説明した。しかしながら、本開示における技術は、これに限定されず、適宜、変更、置き換え、付加、省略などを行った実施の形態にも適用可能である。また、前記実施形態で説明した各構成要素を組み合わせて、新たな実施の形態とすることも可能である。また、添付図面および詳細な説明に記載された構成要素の中には、課題解決のために必須な構成要素だけでなく、前記技術を例示するために、課題解決のためには必須でない構成要素も含まれ得る。そのため、それらの必須ではない構成要素が添付図面や詳細な説明に記載されていることをもって、直ちに、それらの必須ではない構成要素が必須であるとの認定をするべきではない。
前記実施形態について、以下のような構成としてもよい。
例えば、無線通信システム100は、蒸気システム以外に適用してもよい。また、センサ30は、スチームトラップTの振動数及び温度を検出しているが、これ以外の物理量(例えば、電力等)を検出してもよい。
また、通信スケジュールは、タイムスロットがマトリックス状に規定されていなくてもよい。中継機20へのタイムスロットの割り当ては、ネットワークの階層ごとでなくてもよい。また、1つの中継機20に1つの特定スロットが割り当てられているが、1つの中継機20に2以上の特定スロットが割り当てられていてもよい。
前記実施形態では、データステーション10が故障率パラメータを算出しているが、それに限られるものではない。例えば、データステーション10は、センサ30の検出値をサーバ90へ転送し、サーバ90が検出値に基づいて故障率パラメータを算出してもよい。データステーション10は、サーバ90が算出した故障率パラメータを受け取り、故障率パラメータに基づいてセンサ30の検出頻度を変更する。
データステーション10は、複数のタイムスロットに分割された通信スケジュールに従って中継機20と通信を行って、センサ30の検出値を収集しているが、それに限られるものではない。データステーション10は、センサ30の検出値を周期的に収集すれば、任意の構成を採用することができる。また、検出値を収集する周期は、全てのセンサ30で共通である必要はなく、センサ30ごとに異なっていてもよい。
前記実施形態では、センサ30の検出頻度をデータステーション10による収集頻度よりも増加させる場合について説明しているが、これに限られない。例えば、故障率パラメータが低い値で安定しているセンサ30については、その検出頻度を収集頻度よりも低下させてもよい。
故障率パラメータは、検出値、検出値が継続する期間及びスチームトラップTの種類を考慮して算出されているが、これに限られるものではない。これらのうち何れかの要素を省略したり、別の要素を追加したりして、故障率パラメータを算出してもよい。
さらには、検出頻度を変更する際の基準は、故障率パラメータに限られない。例えば、検出頻度は、検出値の大小関係だけに基づいて変更されてもよい。あるいは、検出頻度は、センサ30が設置されるシステム(実施形態では、蒸気システム)の運転状態(例えば、運転開始直後であるか否かとか、運転期間が長いか否かとか)に基づいて変更されてもよい。
実施形態1の第2モードの検出頻度は、段階的又は線形的に変更されてもよい。例えば、第2モードの検出頻度は、故障率パラメータに応じて段階的又は線形的に変更されてよい。例えば、スチームトラップTの種類や型式又はスチームトラップTが設置されているスチームアプリケーション(例えば、熱交換器等)の特性や重要度を考慮して作成された、故障率パラメータと検出頻度との関係式を用いて第2モードの検出頻度を決定するようにしてもよい。
また、実施形態1と実施形態2とを組み合わせてもよい。すなわち、故障率パラメータが大きい場合には、データステーション10は、実施形態2のように、該当するセンサ30が繋がっている中継機20を空いているタイムスロットに割り当てると共に、通信スケジュールのうち該中継機20が割り当てられていないタイムスロットにおいては、実施形態1のように、センサ30が検出値を取得及び保存し、特定スロットにおいて保存しておいた検出値をまとめて送信するようにしてもよい。
また、実施形態2では、空いているタイムスロットを利用することで、センサ30の検出頻度を増加させているが、これに限られるものではない。例えば、データステーション10は、複数のチャンネルで中継機20と通信を行ってもよい。すなわち、データステーション10は、通常は、一のチャンネルで前述の通常の通信スケジュールに従って各中継機20と通信を行い、センサ30の検出頻度を変更する際には、別のチャンネルでも中継機20と通信を行う。別のチャンネルでは、データステーション10は、通常の通信スケジュールとは別の通信スケジュールに従って通信を行う。別の通信スケジュールでは、検出頻度を変更させるセンサ30が繋がっている中継機20との通信頻度が、通常の通信スケジュールとは異なっている。(例えば、全てのタイムスロットに該中継機20に割り当てられている)。
前述のフローチャートは、一例に過ぎず、前述のステップを、順番を入れ替えて実行したり、並行に実行したり、省略したりしてもよい。例えば、図8のフローチャートにおいて、センサ30は、検出値を取得した後、検出値を中継機20に送信してから(ステップSc6)、モード変更の要否の判定を行っているが(ステップSc7)、検出値の送信とモード変更の要否の判定とを逆の順番で行ってもよいし、並行に行ってもよい。