(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0009】
以下、実施形態に係る通信端末及び通信システムについて図面を参照して説明する。
図1は、実施形態に係る通信システム1の構成の一例を示す図である。
【0010】
図1に示すように、実施形態に係る通信システム1は、8台のセンサ10a〜10hと、8台のノード(通信端末)20a〜20hと、2台のGW(Gate Way(ゲートウェイ;中継装置))30a,30bと、サーバ40と、表示装置50とを有する。以下の説明において、センサ10a〜10hを区別して説明しない場合には、センサ10と総称し、ノード20a〜20hを区別して説明しない場合には、ノード20と総称し、GW30a,30bを区別して説明しない場合には、GW30と総称する。
【0011】
なお、GW30の台数は、2台に限られず、1台又は3台以上であってもよい。また、各GW30に直接的又は間接的に接続されるノード20の台数は、複数であれば何台でもよい。
【0012】
例えば、通信システム1は、工作機械が複数台設置された工場に設けられる。そして、通信システム1では、センサ10が工作機械の状態を検出し、ノード20がセンサ10により検出された工作機械の状態を示すセンサ情報(状態情報とも称される)をGW30を介してサーバ40に送信し、サーバ40がセンサ情報を収集する。なお、センサ情報は、例えば、工作機械が正常に動作している状態(正常状態)又は工作機械の動作が異常である状態(異常状態)のいずれかを示す情報である。そして、サーバ40が、収集したセンサ情報が示す工作機械の状態を表示装置50に表示させる。このようにして、通信システム1は、工場の管理者等のユーザに、複数台の工作機械の状態を把握させることができる。
【0013】
センサ10は、ノード20に接続されるとともに、工作機械に取り付けられている。センサ10は、所定時間(例えば、5秒)間隔で工作機械の状態を検出し、検出した状態をノード20に通知する。例えば、全ての工作機械の状態が検出されるように、複数のセンサ10のそれぞれが、複数台の工作機械のそれぞれに取り付けられ、複数台の工作機械のそれぞれの状態を検出する。センサ10は、検出部の一例であり、工作機械は、検出対象の一例である。
【0014】
例えば、センサ10aは、ノード20aに接続され、所定時間間隔で、工作機械の状態をノード20aに通知する。センサ10bは、ノード20bに接続され、所定時間間隔で、工作機械の状態をノード20bに通知する。センサ10cは、ノード20cに接続され、所定時間間隔で、工作機械の状態をノード20cに通知する。センサ10dは、ノード20dに接続され、所定時間間隔で、工作機械の状態をノード20dに通知する。センサ10eは、ノード20eに接続され、所定時間間隔で、工作機械の状態をノード20eに通知する。センサ10fは、ノード20fに接続され、所定時間間隔で、工作機械の状態をノード20fに通知する。センサ10gは、ノード20gに接続され、所定時間間隔で、工作機械の状態をノード20gに通知する。センサ10hは、ノード20hに接続され、所定時間間隔で、工作機械の状態をノード20hに通知する。なお、センサ10a〜10hのそれぞれは、互いに異なる工作機械に取り付けられている。
【0015】
センサ10は、例えば、温度センサである。センサ10が温度センサである場合には、センサ10は、工作機械の温度を検出し、検出した温度をノード20に通知する。なお、センサ10により検出された工作機械の温度が、工作機械の状態が正常状態である場合の温度の範囲(正常温度範囲)内である場合には、工作機械が正常状態であるとノード20により判断される。一方、センサ10により検出された工作機械の温度が、正常温度範囲内でない場合には、工作機械が異常状態であるとノード20により判断される。
【0016】
ノード20は、センサ10から通知された工作機械の状態が変化すると、変化後の状態を示すセンサ情報を生成し、GW30に送信する。例えば、ノード20は、工作機械の状態が正常状態から異常状態に変化した場合には、変化後の異常状態を示すセンサ情報をGW30に送信する。また、ノード20は、工作機械の状態が異常状態から正常状態に変化した場合には、変化後の正常状態を示すセンサ情報をGW30に送信する。
【0017】
ここで、ノード20a〜20d及びGW30aによってメッシュネットワーク91が形成され、ノード20e〜20h及びGW30bによってメッシュネットワーク92が形成されている。
【0018】
例えば、ノード20a〜20dのうち、ノード20a及びノード20bは、GW30aと直接的に無線通信が可能であり、ノード20cは、ノード20a又はノード20bを介して間接的にGW30aと無線通信が可能であり、ノード20dは、ノード20bを介して間接的にGW30aと無線通信が可能である。
【0019】
したがって、ノード20a及びノード20bは、GW30aにセンサ情報を直接送信し、ノード20cは、ノード20a又はノード20bを介してGW30aにセンサ情報を送信し、ノード20dは、ノード20bを介してGW30aにセンサ情報を送信する。すなわち、ノード20aは、ノード20cが生成したセンサ情報を中継する。また、ノード20bは、ノード20cが生成したセンサ情報、及び、ノード20dが生成したセンサ情報を中継する。
【0020】
また、ノード20e〜20hのうち、ノード20e及びノード20fは、GW30bと直接的に無線通信が可能であり、ノード20gは、ノード20e又はノード20fを介して間接的にGW30bと無線通信が可能であり、ノード20hは、ノード20fを介して間接的にGW30bと無線通信が可能である。
【0021】
したがって、ノード20e及びノード20fは、GW30bにセンサ情報を直接送信し、ノード20gは、ノード20e又はノード20fを介してGW30bにセンサ情報を送信し、ノード20hは、ノード20fを介してGW30bにセンサ情報を送信する。すなわち、ノード20eは、ノード20gが生成したセンサ情報を中継する。また、ノード20fは、ノード20gが生成したセンサ情報、及び、ノード20hが生成したセンサ情報を中継する。
【0022】
なお、ノード20a〜20dそれぞれが、GW30aに直接的に無線通信可能であってもよいし、ノード20e〜20hそれぞれが、GW30bに直接的に無線通信可能であってもよい。
【0023】
なお、ノード20は、図示しないパトランプを有し、センサ10から通知された工作機械の状態に応じて、パトランプから発せされる光の色を制御してもよい。例えば、ノード20は、工作機械の状態が正常状態である場合には、緑色の光を発するようにパトランプを制御し、異常状態である場合には、赤色の光を発するようにパトランプを制御してもよい。
【0024】
GW30は、サーバ40及びノード20と無線通信が可能である。GW30は、ノード20から送信されたセンサ情報を受信するとともに、受信したセンサ情報をサーバ40に送信する。すなわち、GW30は、センサ情報を中継する。また、GW30は、センサ情報を受信すると、センサ情報の送信元のノード20に対してACKを送信する。
【0025】
サーバ40は、例えば、コンピュータにより実現される。サーバ40は、GW30から送信されたセンサ情報を受信すると、受信したセンサ情報が示す工作機械の状態を表示装置50に表示させる。
【0026】
表示装置50は、例えば、液晶ディスプレイ等により実現される。表示装置50は、サーバ40の制御を受けて、工場内の全ての工作機械の状態を表示する。これにより、ユーザは、工場内の全ての工作機械の状態を把握することが可能となる。
【0027】
次に、
図2を参照して、実施形態に係るノード20の構成の一例について説明する。
図2は、実施形態に係るノード20の構成の一例を示す図である。
【0028】
図2に示すように、ノード20は、記憶部201と、通信部202と、制御部203とを有する。
【0029】
記憶部201は、例えば、メモリ等の記憶装置により実現される。記憶部201には、制御部203により実行される各種のプログラムが記憶されている。例えば、記憶部201には、センサ情報を送信するセンサ情報送信処理を実行するためのセンサ情報送信プログラムが記憶されている。また、記憶部201には、制御部203により各種のプログラムが実行される際に用いられる各種のデータが一時的に記憶される。
【0030】
通信部202は、例えば、Wifi(登録商標)やBluetooth(登録商標)等の規格に従って無線通信を行うネットワークインタフェースカードにより実現される。通信部202は、GW30と直接通信可能である場合には、GW30との間で無線通信を行う。また、通信部202は、GW30と直接通信可能でない場合には、GW30への中継を行うノード20との間で無線通信を行う。
【0031】
制御部203は、CPU(Central Processing Unit)等のプロセッサにより実現される。制御部203は、ノード20全体を制御する。制御部203は、記憶部201に記憶された各種のプログラムを読み取り、読み取ったプログラムを実行することで、各種の処理を実行する。例えば、制御部203は、センサ情報送信プログラムを実行することで、センサ情報送信処理を実行する。
【0032】
図2に示すように、センサ情報送信処理を実行する制御部203を機能的に表すと、制御部203は、決定部203aを有することとなる。
【0033】
次に、
図3を参照して、センサ情報送信処理について説明する。
図3は、実施形態に係る制御部203により実行されるセンサ情報送信処理の流れを示すフローチャートである。センサ情報送信処理は、制御部203に図示しない電源から電力が供給されると実行される。
【0034】
図3に示すように、制御部203の決定部203aは、センサ10により通知された工作機械の状態が変化したか否かを判定する(ステップS101)。工作機械の状態が変化していないと判定した場合(ステップS101:No)には、決定部203aは、再び、ステップS101の判定を行う。すなわち、ステップS101において、決定部203aは、工作機械の状態が変化するまで待機する。
【0035】
工作機械の状態が変化したと判定した場合(ステップS101:Yes)には、決定部203aは、変化後の工作機械の状態を示すセンサ情報を生成し、生成したセンサ情報をGW30に向けて送信するように通信部202を制御する(ステップS102)。これにより、通信部202は、センサ情報をGW30に向けて送信する。
【0036】
そして、決定部203aは、ソフトウェアによるタイマを用いて、センサ情報を送信してから、GW30から送信されたACKを受信するまでの時間の測定を開始する(ステップS103)。
【0037】
そして、決定部203aは、GW30からACKを受信したか否かを判定する(ステップS104)。ACKを受信していないと判定した場合(ステップS104:No)には、決定部203aは、再び、S104の判定を行う。すなわち、ステップS104において、決定部203aは、ACKを受信するまで待機する。
【0038】
なお、センサ情報をGW30に向けて送信してから所定の時間経過してもACKを受信しない場合には、決定部203aは、センサ情報を再び送信するように通信部202を制御する。この場合には、決定部203aは、タイマを用いて再度上述した時間の測定を開始する。なお、所定の回数、センサ情報を再送信してもACKを受信しない場合には、決定部203aは、センサ情報を破棄した後に、上述したステップS101に戻る。
【0039】
ACKを受信したと判定した場合(ステップS104:Yes)には、決定部203aは、タイマを用いた時間の測定を終了する(ステップS105)。これにより、ノード20が、センサ情報を送信してからACKを受信するまでの時間が測定される。センサ情報を送信してからACKを受信するまでの時間は、第1の時間の一例である。また、ACKは、センサ情報をGW30が受信したことを示す受信情報の一例である。
【0040】
そして、決定部203aは、センサ情報を送信してからACKを受信するまでの時間に、係数として1.1を乗じた時間である送信マスク期間を算出する(ステップS106)。なお、係数として、1.1を例に挙げたが、係数の値はこれに限られない。送信マスク期間は、第2の時間の一例である。
【0041】
そして、決定部203aは、ソフトウェアによるタイマを用いて、ACKを受信してからの時間(ステップS104で、ACKを受信したと判定してからの時間)の測定を開始する(ステップS107)。
【0042】
そして、決定部203aは、センサ10により通知された工作機械の状態が変化したか否かを判定する(ステップS108)。工作機械の状態が変化していないと判定した場合(ステップS108:No)には、決定部203aは、再び、ステップS108の判定を行う。すなわち、ステップS108において、決定部203aは、工作機械の状態が変化するまで待機する。
【0043】
工作機械の状態が変化したと判定した場合(ステップS108:Yes)には、決定部203aは、ステップS106で算出された送信マスク期間と、ステップS107で計測が開始されたACKを受信してからの時間とを比較することにより、ACKを受信してから送信マスク期間が経過したか否かを判定する(ステップS109)。
【0044】
送信マスク期間が経過していないと判定した場合(ステップS109:No)には、決定部203aは、再び、ステップS109の判定を行う。すなわち、ステップS109において、決定部203aは、送信マスク期間が経過するまで待機する。
【0045】
送信マスク期間が経過したと判定した場合(ステップS109:Yes)には、決定部203aは、タイマを用いたACKを受信してからの時間の測定を終了する(ステップS110)。そして、決定部203aは、上述したステップS102に戻り、変化後の工作機械の状態を示すセンサ情報を生成し、生成したセンサ情報をGW30に向けて送信するように通信部202を制御する。そして、決定部203aは、ステップS103以降の処理を再び実行する。すなわち、決定部203aは、ステップS102〜110の各処理を何回も繰り返し実行する。
【0046】
なお、ステップS109において待機中に、工作機械の状態が新たに変化した場合には、決定部203aは、変化後の工作機械の状態を示すセンサ情報を新たに生成し、センサ情報をFIFO(First-In First-Out)方式でキューイングし、古いセンサ情報から順次送信されるように制御してもよい。
【0047】
以上説明したセンサ情報送信処理では、1回目のステップS102で、決定部203aがセンサ情報をGW30に向けて送信するように通信部202を制御することにより、通信部202がセンサ情報をGW30に向けて送信する。そして、決定部203aは、1回目のステップS106において、1回目のステップS102で送信されたセンサ情報が送信された際のGW30の通信状態(例えば、GW30と複数のノード20との通信状態)に基づいて、1回目のステップS102で送信したセンサ情報の後に2回目のステップS102で通信部202により送信されるセンサ情報の送信タイミングを決定する。そして、決定部203aは、2回目のステップS102において、センサ情報をGW30に向けて送信するように通信部202を制御する。
【0048】
ここで、Nを自然数とすると、決定部203aが実行する処理は、次のように一般化することができる。例えば、N回目のステップS102で、決定部203aがセンサ情報をGW30に向けて送信するように通信部202を制御することにより、通信部202は、センサ情報をGW30に向けて送信する。そして、決定部203aは、N回目のステップS106において、N回目のステップS102で送信されたセンサ情報が送信された際のGW30の通信状態に基づいて、N回目のステップS102で送信したセンサ情報の後に(N+1)回目のステップS102で通信部202により送信されるセンサ情報の送信タイミングを決定する。そして、決定部203aは、(N+1)回目のステップS102において、センサ情報をGW30に向けて送信するように通信部202を制御する。
【0049】
なお、N回目のステップS102で送信されるセンサ情報は、第1の情報の一例であり、(N+1)回目のステップS102で送信されるセンサ情報は、第2の情報の一例である。また、第1の情報が示す工作機械の状態は、第1の状態の一例であり、第2の情報が示す工作機械の状態は、第2の状態の一例である。
【0050】
また、センサ情報送信処理では、決定部203aは、N回目のステップS102でセンサ情報を送信してから、N回目のステップS104でACKをGW30から受信するまでの時間に基づいて、(N+1)回目のステップS102で送信されるセンサ情報の送信タイミングを決定する。
【0051】
また、センサ情報送信処理では、決定部203aは、N回目のステップS108で工作機械の状態が変化したと判定した場合(工作機械の状態が変化した場合)に、N回目のステップS104でACKを受信したと判定してから(ACKを受信してから)、N回目のステップS106で算出した送信マスク期間が経過したタイミングを、(N+1)回目のステップS102で送信されるセンサ情報の送信タイミングとして決定する。なお、N回目のステップS106で算出される送信マスク期間は、N回目のステップS102でセンサ情報を送信してからN回目のステップS104でACKをGW30から受信するまでの時間に応じた時間である。
【0052】
また、センサ情報送信処理では、決定部203aは、N回目のステップS108で工作機械の状態が変化したと判定した場合に、N回目のステップS104でACKを受信したと判定してから、N回目のステップS102でセンサ情報を送信してからN回目のステップS104でACKをGW30から受信するまでの時間に係数を乗じた送信マスク期間が経過したタイミングを、(N+1)回目のステップS102で送信されるセンサ情報の送信タイミングとして決定する。
【0053】
ここで、GW30に複数台のノード20から一斉にセンサ情報が送信されて、メッシュネットワーク91、92におけるトラフィックが大きくなる場合がある。このような場合、GW30は、複数台のノード20に対して、1台ずつ順々にACKを送信する。このため、複数台のノード20においてACKを受信するタイミングにばらつきが生じるので、複数台のノード20により算出される複数の送信マスク期間の長さにばらつきが生じる。この結果、複数台のノード20は、次のセンサ情報を互いに異なるタイミングで送信する。特に、係数が1よりも大きい場合には、複数台のノード20においてACKを受信するタイミングのばらつきに比して、複数の送信マスク期間の長さのばらつきが大きくなる。したがって、実施形態に係るノード20によれば、自律的にトラフィックを制御して、GW30に多くのノード20から多くのセンサ情報が一斉に送信されるような事態の発生を抑制することができる。
【0054】
このため、実施形態に係るノード20によれば、コリジョンやバッファオーバーフロ−等の発生を抑制することができる。よって、実施形態に係るノード20によれば、GW30がコリジョンやバッファオーバーフロ−等の発生によりセンサ情報を正しく受信できなかったり、GW30によるACKの送信が遅延したりするような事態の発生を抑制することができる。
【0055】
したがって、実施形態に係るノード20によれば、センサ情報を確実かつ効率的にGW30に送信することができる。
【0056】
また、実施形態に係るノード20によれば、ACKを受信した後に、センサ情報を送信するので、GW30にセンサ情報を、より確実に受信させることができる。この結果、ノード20とGW30との通信の信頼性が高くなる。
【0057】
また、実施形態によれば、複数のノード20それぞれが、個別に送信マスク期間を算出するので、GW30が各ノード20との通信間隔を指定せずに済む。したがって、実施形態に係るノード20によれば、GW30の負荷を低減させることができる。
【0058】
(実施形態の変形例)
なお、上述したステップS106で、送信マスク期間が算出される際に用いられる係数が、固定値である場合について説明したが、決定部203aは、センサ情報を送信してからACKを受信するまでの時間に応じて係数を変化させてもよい。そこで、このような形態を、実施形態の変形例として説明する。
【0059】
図4は、実施形態の変形例に係るデータベース60のデータ構造の一例を示す図である。データベース60は、記憶部201に記憶されている。
【0060】
データベース60は、「時間」及び「係数」の各項目を有する。「時間」の項目には、センサ情報を送信してからACKを受信するまでの時間の範囲が登録されている。例えば、
図4に示す例では、データベース60の1番目のレコード目の「時間」の項目には、0秒よりも大きく5秒以下の範囲が登録されている。また、データベース60の2番目のレコード目の「時間」の項目には、5秒よりも大きく10秒以下の範囲が登録されている。
【0061】
「係数」の項目には、センサ情報を送信してからACKを受信するまでの時間の範囲に対応する係数が登録されている。例えば、
図4に示す例では、データベース60の1番目のレコード目の「係数」の項目には、0秒よりも大きく5秒以下の範囲に対応する係数「1.1」が登録されている。また、データベース60の2番目のレコード目の「係数」の項目には、5秒よりも大きく10秒以下の範囲に対応する係数「1.2」が登録されている。
【0062】
すなわち、
図4に示すデータベース60に登録されている係数は、センサ情報を送信してからACKを受信するまでの時間が長くなるほど大きくなる。
【0063】
そして、実施形態の変形例では、ステップS106で、決定部203aは、以下に説明する処理を行う。例えば、決定部203aは、データベース60の全レコードの中から、センサ情報を送信してからACKを受信するまでの時間を含む範囲が「時間」の項目に登録されたレコードを特定する。
【0064】
そして、決定部203aは、特定したレコードの「係数」の項目に登録された係数を取得する。そして、決定部203aは、センサ情報を送信してからACKを受信するまでの時間に、取得した係数を乗じた送信マスク期間を算出する。
【0065】
上述したように、決定部203aは、センサ情報を送信してからACKを受信するまでの時間に、センサ情報を送信してからACKを受信するまでの時間に応じた係数を乗じた送信マスク期間を算出する。
【0066】
実施形態の変形例によれば、例えば、センサ情報を送信してからACKを受信するまでの時間が長くなるほど係数が大きくなる。このため、GW30に複数台のノード20から一斉にセンサ情報が送信される場合には、複数台のノード20により算出される複数の送信マスク期間の長さのばらつきが更に大きくなる。この結果、複数台のノード20は、次のセンサ情報を互いに大きく異なるタイミングで送信する。したがって、実施形態の変形例に係るノード20によれば、GW30に多くのノード20から多くのセンサ情報が一斉に送信されるような事態の発生を更に抑制することができる。この結果、実施形態の変形例に係るノード20によれば、センサ情報を、更に、確実かつ効率的にGW30に送信することができる。
【0067】
なお、上述した実施形態や変形例では、決定部203aが、センサ情報を送信してからACKを受信するまでの時間に係数を乗じて送信マスク期間を算出する例について説明したが、決定部203aは、他の方法により送信マスク期間を算出してもよい。
【0068】
例えば、ノード20とGW30との間で時刻の同期を取り、GW30は、センサ情報を受信した時刻を示す情報が含まれたACKをノード20に送信する。そして、ノード20の決定部203aは、ACKを受信すると、ACKに含まれるGW30によりセンサ情報が受信された時刻から、ACKを受信した時刻までの時間を算出する。そして、決定部203aは、算出した時間に係数を乗じて送信マスク期間を算出する。
【0069】
このような送信マスク期間は、GW30のセンサ情報の受信処理の負荷、及び、GW30のACKの送信処理の負荷のうち、GW30のACKの送信処理の負荷が相対的に大きく反映された情報である。ノード20は、このようにしてGW30のACKの送信処理の負荷が相対的に大きく反映された送信マスク期間を用いて、センサ情報の送信タイミングを決定する。これにより、ノード20は、GW30のセンサ情報の受信処理の負荷、及び、GW30のACKの送信処理の負荷のうち、特に、GW30のACKの送信処理の負荷が低減されるように、メッシュネットワーク91、92におけるトラフィックを自律的に制御することができる。
【0070】
また、上述した実施形態や変形例では、ノードのセンサ情報をサーバに集約させる通信システムに、上述した技術を適用する例について説明したが、上述した技術を他のシステムに適用してもよい。
【0071】
また、上記実施の形態により本発明が限定されるものではない。上述した各構成要素を適宜組み合わせて構成したものも本発明に含まれる。また、さらなる効果や変形例は、当業者によって容易に導き出すことができる。よって、本発明のより広範な態様は、上記の実施の形態に限定されるものではなく、様々な変更が可能である。