(57)【要約】  制御システムは、サーバ５０と、複数のノード１００とを有する。サーバ５０は、ノード１００に実行させる所定の処理を逐次処理およびループ処理の組み合わせで記述したコマンド列のデータをノード１００に送信する。ノード１００は、サーバ５０から受信したコマンド列のデータを格納する。ノード１００は、予め定められた逐次処理を実行する複数のＡＰＩ部を有する。ノード１００は、サーバ５０から取得したコマンド列に基づいて、ＡＰＩ部を選択し、選択したＡＰＩ部に逐次処理およびループ処理を実行させる。
2017064758.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークを構成する複数のノードとサーバとを有する制御システムであって、
前記サーバは、前記ノードに実行させる所定の処理を逐次処理および前記逐次処理を繰り返し実行させるループ処理の組み合わせで記述したコマンド列のデータを前記ノードに送信する送信部を有し、
前記ノードは、
前記サーバから受信した前記コマンド列のデータを格納する記憶部と、
予め定められた逐次処理を実行する複数のＡＰＩ（Application  Programming  Interface）部と、
前記記憶部に記憶されたコマンド列に基づいて、前記ＡＰＩ部を選択し、選択したＡＰＩ部に逐次処理およびループ処理を実行させる制御部と
を有することを特徴とする制御システム。
【請求項２】
前記送信部が送信する前記コマンド列のデータは、前記ノードが前記ノードに接続された外部装置からデータを取得する処理と、前記ネットワークを介して前記ノードが前記サーバとデータ通信を行う処理と、前記ノードに供給する電力の制御を行う処理とを、逐次処理およびループ処理の組み合わせで記述したコマンド列のデータであり、前記複数のＡＰＩ部は、外部装置からデータを取得するＡＰＩ部と、前記ネットワークを介して前記サーバとデータ通信を行うＡＰＩ部と、前記ノードに供給する電力の制御を行うＡＰＩ部とを含むことを特徴とする請求項１に記載の制御システム。
【請求項３】
前記制御部は、前記ＡＰＩ部を制御して、前記サーバから受信したコマンド列のデータを、隣接ノードに転送することを特徴とする請求項１または２に記載の制御システム。
【請求項４】
前記記憶部は、前記ノードが所属するグループを識別する識別情報を格納し、前記制御部は、前記コマンド列のデータに付与される識別情報と、前記記憶部に格納される識別情報とが一致する場合に、前記コマンド列のデータを実行することを特徴とする請求項１に記載の制御システム。
【請求項５】
サーバが、ネットワークを構成する各ノードに実行させる所定の処理を逐次処理および前記逐次処理を繰り返し実行させるループ処理の組み合わせで記述したコマンド列のデータを前記ノードに送信し、
前記ノードは、前記サーバから受信した前記コマンド列のデータを記憶装置に格納し、
前記記憶装置に記憶されたコマンド列に基づいて、予め定められた逐次処理を実行する複数のＡＰＩ（Application  Programming  Interface）部を選択し、選択した各ＡＰＩ部に逐次処理およびループ処理を実行させる
処理を実行することを特徴とする制御方法。
【請求項６】
前記サーバが送信する前記コマンド列のデータは、前記ノードが前記ノードに接続された外部装置からデータを取得する処理と、前記ネットワークを介して前記ノードが前記サーバとデータ通信を行う処理と、前記ノードに供給する電力の制御を行う処理とを、逐次処理およびループ処理の組み合わせで記述したコマンド列のデータであり、前記複数のＡＰＩ部は、外部装置からデータを取得するＡＰＩ部と、前記ネットワークを介して前記サーバとデータ通信を行うＡＰＩ部と、前記ノードに供給する電力の制御を行うＡＰＩ部とを含むことを特徴とする請求項５に記載の制御方法。
【請求項７】
前記ノードは、前記ＡＰＩ部を制御して、前記サーバから受信したコマンド列のデータを、隣接ノードに転送する処理を更に実行することを特徴とする請求項５または６に記載の制御方法。
【請求項８】
前記記憶装置は、前記ノードが所属するグループを識別する識別情報を格納し、前記ノードは、前記コマンド列のデータに付与される識別情報と、前記記憶装置に格納される識別情報とが一致する場合に、前記コマンド列のデータを実行することを特徴とする請求項５に記載の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、制御システム等に関する。
【背景技術】
【０００２】
近年、ワイヤレス通信を行う複数のノードを配置したワイヤレスセンサーネットワークを用いて、サーバが温度や湿度等の各種の環境情報を収集するモニタリング技術が存在する。一般的に各ノードは屋外に設置され、各ノードはバッテリによって動作し、ソーラーパネルを用いてバッテリを充電する。【０００３】
屋外に設置されたノードは、天候や日照の変化に応じて、バッテリの電力残量が変動するため、電力枯渇等を抑止するべく、各ノードの動作周期に関するソフトウェアが適宜変更される。また、上記以外にも、管理者からの要望等により、ノードを動作させるためのソフトウェアが適宜変更される場合もある。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００６−２４４１２０号公報
【特許文献２】特開２００６−２０９４５７号公報
【特許文献３】特開２００６−２６０２８１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、上述した従来技術では、システムの運用にかかるコストが増加するという問題がある。【０００６】
例えば、各ノードが広範囲に設置されている場合には、管理者の負担を軽減するべく、一度設置したノード上のソフトウェアを更新することなく運用を続けることが望ましい。これを実現させるためには、考慮しうるあらゆる環境や運用の組み合わせに対応可能なソフトウェアをノードに予め実装しておくか、あるいは、汎用ＰＣ（Personal  Computer）のようにリモート制御によるソフトウェアアップデート機能を実装しておくことになる。しかし、上記のソフトウェアやソフトウェアアップデート機能は、複雑かつ実装量も大きいため、ノードのコストが増加する。また、一般的にソフトウェアの品質はソフトウェア物量とその制御量とに比例して劣化していくため、予めノードに実装した実装量の大きいソフトウェアで複雑な動作をさせようとした場合には、ソフトウェアの品質が低下する。【０００７】
これに対して、耐環境実装を行わず、運用に対するバリエーションにも対応しないシンプルな実装をノードに対して行うと、機能的に不十分となり、屋外に設置されるノードとしては、機能的に不向きなものとなってしまう。【０００８】
１つの側面では、本発明は、システムの運用にかかるコストが増加することを抑止できる制御システムおよび制御方法を提供することを目的とする。
【課題を解決するための手段】
【０００９】
第１の案では、制御システムは、サーバと複数のノードとを有する。サーバは、送信部を有する。送信部は、ノードに実行させる所定の処理を逐次処理および逐次処理を繰り返し実行させるループ処理の組み合わせで記述したコマンド列のデータをノードに送信する。ノードは、記憶部と、複数のＡＰＩ部と、制御部とを有する。記憶部は、サーバから受信したコマンド列のデータを格納する。ＡＰＩ部は、予め定められた逐次処理を実行する。制御部は、記憶部に記憶されたコマンド列に基づいて、ＡＰＩ部を選択し、選択したＡＰＩ部に逐次処理およびループ処理を実行させる。
【発明の効果】
【００１０】
システムの運用にかかるコストが増加することを抑止できる。
【図面の簡単な説明】
【００１１】
【図１】図１は、本実施例に係る制御システムの一例を示す図である。
【図２】図２は、葉ノードの消費電力と節ノードの消費電力とを説明するための図である。
【図３】図３は、本実施例に係るサーバの構成を示す機能ブロック図である。
【図４】図４は、制御パラメタＡに対応するスクリプトの一例を示す図（１）である。
【図５】図５は、制御パラメタＡに対応するスクリプトの一例を示す図（２）である。
【図６】図６は、制御パラメタＢに対応するスクリプトの一例を示す図（１）である。
【図７】図７は、制御パラメタＢに対応するスクリプトの一例を示す図（２）である。
【図８】図８は、ノードの役割を設定するスクリプトの一例を示す図（１）である。
【図９】図９は、ノードの役割を設定するスクリプトの一例を示す図（２）である。
【図１０】図１０は、本実施例に係るノードの構成を示す機能ブロック図である。
【図１１】図１１は、スクリプトａ１，ａ２を実行した場合のノードの消費電力の一例を示す図である。
【図１２】図１２は、スクリプトｂ１，ｂ２を実行した場合のノードの消費電力の一例を示す図である。
【図１３】図１３は、サーバの処理手順の一例を示すフローチャートである。
【図１４】図１４は、ノードの処理手順の一例を示すフローチャートである。
【図１５】図１５は、制御プログラムを実行するコンピュータの一例を示す図である。
【図１６】図１６は、ノードのハードウェア構成を示す図である。
【発明を実施するための形態】
【００１２】
以下に、本発明にかかる制御システムおよび制御方法の実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。
【実施例】
【００１３】
図１は、本実施例に係る制御システムの一例を示す図である。図１に示すように、サーバ５０と、ゲートウェイ６０と、センサーネットワーク７０とを有する。センサーネットワーク７０は、ノード１００ａ，１００ｂ，１００ｃ，１００ｄ，１００ｅ，１００ｆ，１００ｇ，１００ｈ，１００ｉ，１００ｊ，１００ｋ，１００ｌを有する。ここでは、一例として、ノード１００ａ〜１００ｌを示すが、その他のノードが含まれていても良い。以下の説明では、ノード１００ａ〜１００ｌをまとめて、適宜、ノード１００と表記する。【００１４】
サーバ５０は、ネットワーク５を介して、ゲートウェイ６０に接続される。ゲートウェイ６０は、センサーネットワーク７０に接続される。センサーネットワーク７０に含まれる各ノード１００は、無線通信によって相互に接続される。【００１５】
サーバ５０は、ノード１００に実行させる所定の処理を逐次処理およびループ処理の組み合わせで記述したコマンド列の情報をノード１００に送信する装置である。【００１６】
ゲートウェイ６０は、サーバ５０と、センサーネットワーク７０との間で送受信されるデータを中継する装置である。【００１７】
ノード１００は、屋外に設置され、バッテリによって動作し、ソーラーパネルを用いてバッテリに電力を充電する。ノード１００は、単純なＡＰＩ（Application  Programming  Interface）、ドライバ、逐次処理・ループ処理の制御構造のみを有する。ノード１００は、サーバ５０から通知されるコマンド列を基にして、逐次処理およびループ処理を実行する。【００１８】
センサーネットワーク７０上のノード１００は、ソフトウェア的な機能の違いから、節ノードまたは葉ノードに分類される。節ノードは、データ中継を行うセンサーネットワーク７０の節となるノード１００で、自身のデータを送信するだけではなく、節として接続された隣接ノードからデータを受信し、受信したデータを他の隣接ノードに転送する。これに対して、葉ノードは、自身のデータの送信のみを行うノードである。【００１９】
節ノードおよび葉ノードの違いは、ソフトウェアのセッティングだけの違いであり、どのノード１００も節ノードまたは葉ノードになることができる。しかし、葉ノードの消費電力と、節ノードの消費電力との間には大きな電力差がある。【００２０】
図２は、葉ノードの消費電力と節ノードの消費電力とを説明するための図である。図２において、グラフ１０Ａは、葉ノードの電力波形の一例を示すグラフであり、縦軸は電力を示し、横軸は時間を示す。グラフ１０Ｂは、節ノードの電力波形の一例を示すグラフであり、縦軸は電力を示し、横軸は時間を示す。【００２１】
グラフ１０Ａについて説明する。葉ノードは、ある時刻から時刻ｔ１までの間、待機を行う。待機時の消費電力は、２．１ｍＷとなる。葉ノードは、時刻ｔ１から時刻ｔ２までの間に、葉ノードに設置されたセンサからデータを取得する処理を実行する。葉ノードは、時刻ｔ２から時刻ｔ３までの間に、データ送信前処理を実行する。データ送信前処理を実行する際の消費電力は、９８．６ｍＷとなる。葉ノードは、時刻ｔ３から時刻ｔ４までの間に、データ送信を行う。データ送信時の消費電力は１２６．４ｍＷとなる。葉ノードは、時刻ｔ５から時刻ｔ６までの間に、後処理を実行する。後処理のある時刻では、消費電力が３０．６ｍＷとなる。葉ノードは、時刻ｔ６以降では再び、待機状態となる。【００２２】
グラフ１０Ｂについて説明する。節ノードは、ある時刻から時刻ｔ７までの間、隣接ノードからのデータ受信の待機を行う。データ受信の待機時の消費電力は、９８．６ｍＷとなる。節ノードは、時刻ｔ７から時刻ｔ８までの間、データ送信を行う。データ送信時の消費電力は１２６．４ｍＷとなる。【００２３】
グラフ１０Ａとグラフ１０Ｂとを比較すると、例えば、葉ノードでは、センサからデータを取得し始めた時刻ｔ１から後処理が完了する時刻ｔ６までの約１０ｍｓ間に限り、消費電力が大きくなるがそれ以外の時刻の消費電力は小さくなる。これに対して、節ノードは、常時、消費電力が大きくなる。【００２４】
センサーネットワーク７０を構成するノード１００は、屋外に設置されソーラーパネルによる発電と、バッテリによる充電が行われているが、節ノードの消費電力が大きいため、悪天候やノード１００が日陰に位置する場合には、節ノードの電力が枯渇する可能性が高くなる。【００２５】
ここで、天候や日陰の状態を考慮し、また、葉や節となるセンサーネットワーク７０のトポロジーに起因する消費電力の不均衡を加味することで、制御アルゴリズムを構築することは可能である。しかし、実際に自然環境下におかれた場合には、複雑な因子が絡み合い、実際に運用してみないと分からない事象がある。このため、単純に「ＸＸ、ＹＹ、ＺＺの条件の元で、電力閾値がＰＰより下がったので一時停止する」といった制御アルゴリズムでノード１００を独立動作させることは困難である。【００２６】
次に、図１に示したサーバ５０の構成について説明する。図３は、本実施例に係るサーバの構成を示す機能ブロック図である。図３に示すように、このサーバ５０は、通信部５１と、記憶部５２と、制御部５３とを有する。【００２７】
通信部５１は、ネットワーク５、ゲートウェイ６０を介して、センサーネットワーク７０のノード１００とデータ通信を実行する処理部である。通信部５１は、例えば、通信装置に対応する。後述する制御部５３は、通信部５１を介して、センサーネットワーク７０のノード１００とデータをやり取りする。【００２８】
記憶部５２は、電力データテーブル５２ｂを有する。記憶部５２は、例えば、ＲＡＭ（Random  Access  Memory）、ＲＯＭ（Read  Only  Memory）、フラッシュメモリ（Flash  Memory）などの半導体メモリ素子などの記憶装置に対応する。【００２９】
電力データテーブル５２ｂは、ノード１００を一意に識別する識別情報と、電力データとを対応付けて保持するテーブルである。例えば、電力データは、各ノード１００のバッテリに蓄積された電力量の情報である。【００３０】
制御部５３は、電力データ取得部５３ａと、スクリプト生成部５３ｂと、送信部５３ｃとを有する。制御部５３は、例えば、ＡＳＩＣ（Application  Specific  Integrated  Circuit）や、ＦＰＧＡ（Field  Programmable  Gate  Array）などの集積装置に対応する。また、制御部５３は、例えば、ＣＰＵやＭＰＵ（Micro  Processing  Unit）等の電子回路に対応する。【００３１】
電力データ取得部５３ａは、各ノード１００から電力データを取得する処理部である。電力データ取得部５３ａは、ノード１００から取得した電力データと、ノード１００の識別情報とを対応付けて、電力データテーブル５２ｂに格納する。【００３２】
スクリプト生成部５３ｂは、ノード１００に実行させる所定の処理を、逐次処理および逐次処理を繰り返し実行させるコマンド列の情報として生成する処理部である。例えば、コマンド列は、例えば、スクリプト言語で記載される。以下の説明では、スクリプト生成部５３ｂが生成するコマンド列を適宜、スクリプトと表記する。スクリプト生成部５３ｂは、スクリプトの情報を、送信部５３ｃに出力する。【００３３】
送信部５３ｃは、スクリプト生成部５３ｂから受け付けたスクリプトの情報を、センサーネットワーク７０の各ノード１００に送信する処理部である。以下の説明では、スクリプトの情報を、適宜、スクリプト情報と表記する。【００３４】
続いて、上述したスクリプト生成部５３ｂが生成するコマンド列の情報について具体的に説明する。【００３５】
まず、サーバ５０が、デフォルトでセンサーネットワーク７０の各ノード１００を運用する場合に送信するスクリプトについて説明する。センサーネットワーク７０のデフォルトの運用状態を構成する制御パラメタＡの情報は、下記に示すＡ１，Ａ２，Ａ３となる。
Ａ１：２０秒毎にサンプリングを行う。
Ａ２：Ａ１の状態を１分間持続する。
Ａ３：９分間休眠状態とする。【００３６】
サーバ５０のスクリプト生成部５３ｂは、デフォルトの運用状態でセンサーネットワーク７０を運用する場合には、制御パラメタＡに対応するスクリプトを生成する。制御パラメタＡに対応するスクリプトは、図４に示すスクリプトａ１と、図５に示すスクリプトａ２となる。図４および図５は、制御パラメタＡに対応するスクリプトの一例を示す図である。【００３７】
図４に示すスクリプトａ１の１行目は、コマンドを実行するノード１００を示している。１行目は「Target:All  end  device」となっており、コマンドを実行するノード１００は、センサーネットワーク７０に含まれる全ての葉ノードとなる。スクリプトａ１の２行目から５行目までの内容は「｛センシングする→センシングしたデータを送信する｝という処理を２０秒毎に行う」という意味である。このスクリプトａ１を取得した葉ノードは、２０秒毎にセンシングを行い、センシングしたデータを、サーバ５０に送信することになる。【００３８】
図５に示すスクリプトａ２の１行目は、コマンドを実行するノード１００を示している。１行目は「Target:All  end  device」となっており、コマンドを実行するノード１００は、センサーネットワーク７０に含まれる全ての葉ノードとなる。スクリプトａ２の２，３行目の内容は「９分スリープせよ」という意味である。例えば、スクリプトａ１に基づきループ動作していたノード１００は、スクリプトａ２を受信すると、受信した時点から９分間スリープ状態となり、スリープ状態が解除されてから、再度、スクリプトａ１に基づくループ動作に復帰する。【００３９】
なお、送信部５３ｃが、スクリプトａ１をノード１００に送信した後に、スクリプトａ２を１０分毎に送信することで、下記に示す処理を各ノード１００に実行させることができる。すなわち、ノード１００は、センシングしたデータをサーバ５０に送信する処理を２０秒毎に実行する処理を１分間継続する。そして、ノード１００は、９分間スリープ状態となり、再び、２０秒毎のサンプリングを実行する。【００４０】
続いて、サーバ５０が、電力が枯渇しそうなあるノード１００に送信するスクリプトについて説明する。ここでは、電力が枯渇しそうなあるノード１００をノード１００Ｘとする。ノード１００Ｘは、図１に示したノード１００ａ〜１００ｌの何れかに対応する。サーバ５０が、ノード１００Ｘを停止させてしまうと、ノード欠損となってしまい、トポロジー的にも歯抜けの問題がでできてしまう。このため、サーバ５０は、なるべくノード１００Ｘの運用を続ける。【００４１】
例えば、サーバ５０は、各ノード１００の発電状態の統計情報から一時的な発電不良からの復帰期待値、あるいは、日昇日没の時間を基にして、ノード１００Ｘをどのように動作させると、ノード１００Ｘの電力枯渇の状態を解消できるのかを判定する。【００４２】
例えば、サーバ５０のスクリプト生成部５３ｂは、１周期動作でのサンプリングを３回から１回に間引いたコマンド列のスクリプトを生成する。このスクリプトにより、ノード１００Ｘの消費電力が１／３に削減され、ノード１００Ｘの電力が枯渇するまでの時間を長くする。例えば、図４，図５に示す動作を継続すると、日が昇る前に電力枯渇になるが、サンプリング回数を間引くことで、日が昇るまで、動作を継続できる。その後の日照により、ノード１００Ｘのバッテリに電力が充電され、電力枯渇の危機を解消できる。【００４３】
例えば、電力枯渇を防ぐためにノード１００Ｘに送信する制御パラメタＢの情報は、下記に示すＢ１，Ｂ２，Ｂ３となる。
Ｂ１：６０秒毎にサンプリングを行う。
Ｂ２：Ｂ１の状態１を分間持続する。
Ｂ３：９分間休眠状態とする。【００４４】
サーバ５０のスクリプト生成部５３ｂは、制御パラメタＢに対応するスクリプトを生成する。制御パラメタＢに対応するスクリプトは、図６に示すスクリプトｂ１と、図７に示すスクリプトｂ２となる。図６および図７は、制御パラメタＢに対応するスクリプトの一例を示す図である。【００４５】
図６に示すスクリプトｂ１の１行目は、コマンドを実行するノード１００を示している。１行目は「Target:Node  X」となっており、コマンドを実行するノード１００は、センサーネットワーク７０に含まれるノード１００Ｘとなる。スクリプトｂ１の２行目から５行目までの内容は「｛センシングする→センシングしたデータを送信する｝という処理を６０秒毎に行う」という意味である。このスクリプトｂ１を取得したノード１００Ｘは、６０秒毎にセンシングを行い、センシングしたデータを、サーバ５０に送信することになる。【００４６】
図７に示すスクリプトｂ２の１行目は、コマンドを実行するノード１００を示している。１行目は「Target:Node  ALL  end  device」となっており、コマンドを実行するノード１００は、センサーネットワーク７０に含まれる全ノード１００となる。スクリプトｂ２の２，３行目の内容は「９分スリープせよ」という意味である。例えば、スクリプトｂ１に基づきループ動作していたノード１００Ｘは、スクリプトｂ２を受信すると、受信した時点から９分間スリープ状態となり、スリープ状態が解除されてから、再度、スクリプトｂ１に基づくループ動作に復帰する。【００４７】
なお、送信部５３ｃが、スクリプトｂ１をノード１００Ｘに送信した後に、スクリプトｂ２を１０分毎に送信することで、下記に示す処理を各ノード１００Ｘに実行させることができる。すなわち、ノード１００Ｘは、センシングしたデータをサーバ５０に送信する処理を６０秒毎に実行する処理を１分間継続する。そして、ノード１００Ｘは、９分間スリープ状態となり、再び、６０秒毎のサンプリングを実行する。【００４８】
上記例では、送信部５３ｃが、電力が枯渇しそうなノード１００Ｘに対して、スクリプトｂ１，ｂ２を送信して、電力の枯渇を防ぐことをしたが、送信部５３ｃは、その他のスクリプトをノード１００Ｘに送信しても良い。例えば、送信部５３ｃは、ノード１００Ｘの役割が節ノードである場合に、ノード１００Ｘの役割を葉ノードに変更することで、電力消費を抑えても良い。【００４９】
ここで、例えば、サーバ５０は、ノード１００Ｘの電力量が閾値を下回った場合に、ノード１００Ｘの電力が枯渇しそうであると判定する。例えば、サーバ５０は、以下の考慮１〜５を基にして、閾値を設定しても良い。【００５０】
考慮１：閾値を切った状態が、連続する節ノードでの運用によるものなのか。
考慮２：日没により発電状態が低下し、翌朝には発電が期待されるものなのか。
考慮３：突発的な天候変化に伴い、発電状態が低下した状態になっているのか。
考慮４：元々日陰に設置され、定常的に発電状態が悪いのか。
考慮５：考慮１〜４と、ノードが葉ノードであるか節ノードであるかの組み合わせ。【００５１】
続いて、サーバ５０が、各ノード１００を複数のグループに分類し、グループ毎に異なるスクリプトを送信する場合について説明する。例えば、サーバ５０は、グループ単位で、葉ノードと、節ノードとの役割分担を変更する。グループ単位で、葉ノードと節ノードとの役割分担を変更することで、各ノード１００の電力消費の偏りを解消することができる。【００５２】
ここでは、ノード１００が、グループＭまたはグループＮに分類されているものとする。図８および図９は、ノードの役割を設定するスクリプトの一例を示す図である。【００５３】
図８に示すスクリプトｃ１の１行目は、２行目から４行目までのコマンドを実行するノード１００を示している。１行目は「Target:Node  group  M」となっており、コマンドを実行するノード１００は、センサーネットワーク７０のグループＭに属するノード１００となる。スクリプトｃ１の２行目から４行目までの内容は「ノード１００の役割を、葉ノード（End  device）にする」という意味である。すなわち、グループＭに属するノード１００は、スクリプトｃ１を受信すると、役割を葉ノードに設定する。【００５４】
スクリプトｃ１の５行目は、６行目から８行目までのコマンドを実行するノード１００を示している。５行目は「Target:Node  group  N」となっており、コマンドを実行するノード１００は、センサーネットワーク７０のグループＮに属するノード１００になる。スクリプトｃ１の６行目から８行目までの内容は「ノード１００の役割を、節ノード（Router）にする」という意味である。すなわち、グループＮに属するノード１００は、スクリプトｃ１を受信すると、役割を節ノードに設定する。【００５５】
スクリプトｃ１の９行目は、１０行目から１２行目までのコマンドを実行するノード１００を示している。９行目は「Target:All  node」となっており、コマンドを実行するノード１００は、センサーネットワーク７０に含まれる全てのノード１００となる。スクリプトｃ１の１０行目から１２行目までの内容は「ネットワークを再構築する」という意味である。【００５６】
図９に示すスクリプトｃ２の１行目は、２行目から４行目までのコマンドを実行するノード１００を示している。１行目は「Target:Node  group  N」となっており、コマンドを実行するノード１００は、センサーネットワーク７０のグループＮに属するノード１００となる。スクリプトｃ２の２行目から４行目までの内容は「ノード１００の役割を、葉ノード（End  device）にする」という意味である。すなわち、グループＮに属するノード１００は、スクリプトｃ２を受信すると、役割を葉ノードに設定する。【００５７】
スクリプトｃ２の５行目は、６行目から８行目までのコマンドを実行するノード１００を示している。５行目は「Target:Node  group  M」となっており、コマンドを実行するノード１００は、センサーネットワーク７０のグループＭに属するノード１００になる。スクリプトｃ２の６行目から８行目までの内容は「ノード１００の役割を、節ノード（Router）にする」という意味である。なわち、グループＭに属するノード１００は、スクリプトｃ２を受信すると、役割を節ノードに設定する。【００５８】
スクリプトｃ２の９行目は、１０行目から１２行目までのコマンドを実行するノード１００を示している。９行目は「Target:All  node」となっており、コマンドを実行するノード１００は、センサーネットワーク７０に含まれる全てのノード１００となる。スクリプトｃ２の１０行目から１２行目までの内容は「ネットワークを再構築する」という意味である。【００５９】
次に、図１に示したノード１００の構成について説明する。図１０は、本実施例に係るノードの構成を示す機能ブロック図である。図１０に示すように、このノード１００は、ＡＰＩ部１１０ａ，１１０ｂ，１１０ｃ，１１０ｄ、ドライバ１２０ａ，１２０ｂ，１２０ｃ，１２０ｄを有する。ノード１００は、ＡＰＩ部１１０ａ〜１１０ｄ以外のＡＰＩ部を有していても良い。ノード１００は、ドライバ１２０ａ〜１２０ｄ以外のドライバを有していても良い。ノード１００は、記憶部１３０、制御部１４０を有する。【００６０】
ＡＰＩ部１１０ａは、制御部１４０からセンシングの実行コマンドを受け付けた場合に、ドライバ１２０ａを制御して、図示しないセンサからの環境データを取得する処理部である。環境データには、例えば、気温や湿度等のデータが含まれる。【００６１】
ドライバ１２０ａは、センサに接続される。ドライバ１２０ａは、センサから環境データを取得し、環境データをＡＰＩ部１１０ａに出力するデバイスドライバである。センサは、温度センサ、湿度センサ等に対応する。【００６２】
ＡＰＩ部１１０ｂは、制御部１４０からデータ送信の実行コマンドを受け付けた場合に、ドライバ１２０ｂを制御して、指定されたデータを送信する処理部である。例えば、ＡＰＩ部１１０ｂは、環境データ、電力データ、スクリプトのデータなどを送信する。また、ＡＰＩ部１１０ｂは、制御部１４０からデータ受信の実行コマンドを受け付けた場合に、ドライバ１２０ｂを制御して、データ受信を行う。【００６３】
ドライバ１２０ｂは、通信装置に接続される。ドライバ１２０ｂは、通信装置を操作して、データを送受信するデバイスドライバである。【００６４】
ＡＰＩ部１１０ｃは、制御部１４０からスリープの実行コマンドを受け付けた場合に、ドライバ１２０ｃを制御して、ノード１００に対する電源供給を制御する。なお、ＡＰＩ部１１０ｃおよびドライバ１２０ｃは、電源供給を行うパワーモジュールから常時電源供給を受け付けており、ノード１００に対する電源供給が停止しても、ＡＰＩ部１１０ｃ、ドライバ１２０ｃに対する電源供給は継続するものとする。例えば、ＡＰＩ部１１０ｃは、Ｘ分間のスリープの実行コマンドを受け付けた場合には、このスリープの実行コマンドを受け付けたタイミングから、Ｘ分間の間、ノード１００に対する電源供給を停止した後、電源供給を再開する。【００６５】
ＡＰＩ部１１０ｄは、制御部１４０から電力データ検出の実行コマンドを受け付けた場合に、ドライバ１２０ｄを制御して、図示しないバッテリの電力データを検出する処理部である。【００６６】
ドライバ１２０ｄは、バッテリに接続される。バッテリの電力データを検出し、検出した電力データをＡＰＩ部１１０ｄに出力する。【００６７】
記憶部１３０は、識別情報管理テーブル１３０ａと、スクリプト情報１３０ｂとを有する。例えば、記憶部１３０は、ＲＡＭ（Random  Access  Memory）、ＲＯＭ（Read  Only  Memory）、フラッシュメモリ（Flash  Memory）などの半導体メモリ素子や、ＨＤＤ（Hard  Disk  Drive）などの記憶装置に対応する。【００６８】
識別情報管理テーブル１３０ａは、ノード１００を識別するノード識別情報と、ノード１００の役割を識別する役割識別情報と、ノード１００の属するグループを識別するグループ識別情報とを有する情報である。このうち、役割識別情報は、葉ノード（end  device）または節ノード（Router）の何れかに設定される。【００６９】
スクリプト情報１３０ｂは、サーバ５０からノード１００に送信されるスクリプトの情報に対応する。例えば、スクリプトの情報は、図４〜図９に示したコマンド列の情報である。【００７０】
制御部１４０は、スクリプト情報１３０ｂに基づき、ＡＰＩ部１１０ａ〜１１０ｄを制御することで所定の処理を実行する処理部である。制御部１４０は、ＡＳＩＣ（Application  Specific  Integrated  Circuit）や、ＦＰＧＡ（Field  Programmable  Gate  Array）などの集積装置に対応する。また、制御部１４０は、例えば、ＣＰＵ（Central  Processing  Unit）やＭＰＵ（Micro  Processing  Unit）等の電子回路に対応する。【００７１】
制御部１４０は、ＡＰＩ部１１０ｂを介してスクリプト情報１３０ｂを受信すると、受信したスクリプト情報１３０ｂを、記憶部１３０に格納する。制御部１４０は、識別情報管理テーブル１３０ａを参照し、ノード１００が節ノードである場合には、スクリプト情報１３０ｂを、ＡＰＩ部１１０ｂを介して、隣接するノード１００に送信する。【００７２】
以下において、スクリプト情報１３０ｂに基づいて、制御部１４０が実行する処理の一例について説明する。制御部１４０は、スクリプト情報１３０ｂに含まれるTargetが、識別情報管理テーブル１３０ａの各識別情報に対応するものである場合には、該当するコマンド列を順次実行する。例えば、制御部１４０は、Targetで指定されるノード１００の識別情報と、識別情報管理テーブル１３０ａのノード識別情報とが一致する場合に、該当するコマンド列を実行する。制御部１４０は、Targetで指定されるノード１００の役割と、識別情報管理テーブル１３０ａの役割識別情報とが一致する場合に、該当するコマンド列を実行する。制御部１４０は、Targetで指定されるノード１００のグループの識別情報と、識別情報管理テーブル１３０ａのグループ識別情報とが一致する場合に、該当するコマンド列を実行する。また、制御部１４０は、Targetが「All  node」である場合には、識別情報管理テーブル１３０ａの各識別情報にかかわらず、該当するコマンド列を順次実行する。【００７３】
制御部１４０が、図４、図５に示すスクリプトａ１，ａ２を実行する場合の処理について説明する。一例として、識別情報管理テーブル１３０ａの役割識別情報を「葉ノード（end  device）」とする。図４では、スクリプトａ１のTargetと、識別情報管理テーブル１３０ａの役割識別情報とが一致するため、制御部１４０は、２行目から５行目までの処理を実行する。具体的に、制御部１４０は、センシングの実行コマンドを、ＡＰＩ部１１０ａに出力し、かつ、データ送信の実行コマンドをＡＰＩ部１１０ｂに出力する処理を、２０秒毎に実行する。例えば、データ送信で送信されるデータは、ＡＰＩ部１１０ａで取得する環境データに対応する。【００７４】
図５では、スクリプトａ２のTargetと、識別情報管理テーブル１３０ａの役割識別情報とが一致するため、制御部１４０は、２，３行目の処理を実行する。具体的に、制御部１４０は、ＡＰＩ部１１０ｃに、スリープ（９分間のスリープ）の実行コマンドを出力する。【００７５】
図１１は、スクリプトａ１，ａ２を実行した場合のノードの消費電力の一例を示す図である。図１１の縦軸は消費電力を示し、横軸は時間を示す。例えば、図１１に示す例では、制御部１４０が、スクリプトａ１の処理を開始してから１分後に、スクリプトａ２の処理を開始する処理を周期的に実行する場合について示す。図１１に示すように、２０秒毎に、センシングの実行コマンド、データ送信の実行コマンドが出力されるため、１分間の間に、センシングとデータ送信とが３回実行される。【００７６】
ここで、センシングおよびデータ送信の所要時間を１０ｍｓとする。そうすると、ノード１００は、１周期で３０ｍｓ動作し、１時間では１８０ｍｓ動作することになる。センシングとデータ送信に要する消費電力を１００ｍＷとすると、１時間当たりのノード１００の消費電力は、１００ｍＷ×１８０ｍｓ／３６００ｓ＝５×１０＾（−３）ｍＷとなる。例えば、バッテリの残り電力が、１５×１０＾（−３）ｍＷである場合には、このノード１００は、あと３時間で電力枯渇になることが分かる。【００７７】
制御部１４０が、図６、図７に示すスクリプトｂ１，ｂ２を実行する場合の処理について説明する。一例として、識別情報管理テーブル１３０ａのノード識別情報を「ノード１００Ｘ」とし、役割識別情報を「葉ノード（end  device）」とする。図６では、スクリプトｂ１のTargetと、識別情報管理テーブル１３０ａのノード識別情報とが一致するため、制御部１４０は、２行目から５行目までの処理を実行する。具体的に、制御部１４０は、センシングの実行コマンドを、ＡＰＩ部１１０ａに出力し、かつ、データ送信の実行コマンドをＡＰＩ部１１０ｂに出力する処理を、６０秒毎に実行する。例えば、データ送信で送信されるデータは、ＡＰＩ部１１０ａで取得する環境データに対応する。【００７８】
図７では、スクリプトｂ２のTargetと、識別情報管理テーブル１３０ａの役割識別情報とが一致するため、制御部１４０は、２，３行目の処理を実行する。具体的に、制御部１４０は、ＡＰＩ部１１０ｃに、スリープ（９分間のスリープ）の実行コマンドを出力する。【００７９】
図１２は、スクリプトｂ１，ｂ２を実行した場合のノードの消費電力の一例を示す図である。図１２の縦軸は消費電力を示し、横軸は時間を示す。例えば、図１２に示す例では、制御部１４０が、スクリプトｂ１の処理を開始してから１分後に、スクリプトｂ２の処理を開始する処理を周期的に実行する場合について示す。図１２に示すように、６０秒毎に、センシングの実行コマンド、データ送信の実行コマンドが出力されるため、１秒間の間に、センシングとデータ送信とが１回実行される。【００８０】
ここで、センシングおよびデータ送信の所要時間を１０ｍｓとする。そうすると、ノード１００は、１周期で１０ｍｓ動作し、１時間では６０ｍｓ動作することになる。センシングとデータ送信に要する消費電力を１００ｍＷとすると、１時間当たりのノード１００の消費電力は、１００ｍＷ×６０ｍｓ／３６００ｓ＝１．６７×１０＾（−３）ｍＷとなる。例えば、バッテリの残り電力が、１５×１０＾（−３）ｍＷである場合には、このノード１００は、あと約９時間で電力枯渇になることが分かる。例えば、図１１で説明した場合と比較して、図１２では、約３倍、電力枯渇になる時間を延期することができる。【００８１】
制御部１４０が、図８に示すスクリプトｃ１を実行する場合の処理について説明する。一例として、識別情報管理テーブル１３０ａのグループ識別情報を「グループＭ」とする。図８において、制御部１４０は、１行目のTargetとグループ識別情報とが一致するため、２行目から４行目までのコマンド列を実行する。具体的に、制御部１４０は、識別情報管理テーブル１３０ａの役割識別情報を「End  device」に設定する。【００８２】
制御部１４０は、５行目のTargetとグループ識別情報とが一致しないため、６行目から８行目までのコマンド列の実行をスキップする。【００８３】
制御部１４０は、９行目のTargetが「All  node」であるため、１０行目から１２行目までのコマンド列を実行する。具体的に、制御部１４０は、ネットワークの再構成を実行する。例えば、制御部１４０は、ＡＰＩ部１１０ｂを用いて、隣接するノード１００との間でハローパケットを送受信し、センサーネットワーク７０を再構築する。制御部１４０が、センサーネットワーク７０を再構築する処理は、従来技術と同様の処理を実行してもよい。【００８４】
制御部１４０が、図９に示すスクリプトｃ２を実行する場合の処理について説明する。一例として、識別情報管理テーブル１３０ａのグループ識別情報を「グループＭ」とする。制御部１４０は、１行目のTargetとグループ識別情報とが一致しないため、２行目から４行目までのコマンド列の実行をスキップする。【００８５】
制御部１４０は、５行目のTargetとグループ識別情報とが一致するため、６行目から８行目までのコマンド列を実行する。具体的に、制御部１４０は、識別情報管理テーブル１３０ａの役割識別情報を「Router」に設定する。【００８６】
制御部１４０は、９行目のTargetが「All  node」であるため、１０行目から１２行目までのコマンド列を実行する。具体的に、制御部１４０は、ネットワークの再構成を実行する。例えば、制御部１４０は、ＡＰＩ部１１０ｂを用いて、隣接するノード１００との間でハローパケットを送受信し、センサーネットワーク７０を再構築する。【００８７】
ところで、スクリプト情報１３０ｂには、上述したコマンド列以外にも、定期的に、電力データをサーバ５０に送信するコマンド列が格納されていても良い。制御部１４０は、かかるコマンド列を実行して、ＡＰＩ部１１０ｂ，１１０ｄにコマンドを出力することで、電力データをサーバ５０に送信する。【００８８】
次に、本実施例に係る制御システムのサーバ５０およびノード１００の処理手順について説明する。図１３は、サーバの処理手順の一例を示すフローチャートである。図１３に示すように、サーバ５０は、センサーネットワーク７０の各ノード１００にネットワークを構築するためのスクリプト情報を送信することで、センサーネットワーク７０を構築する（ステップＳ１０１）。【００８９】
サーバ５０は、ノード１００から電力データを受信する（ステップＳ１０２）。サーバ５０は、電力が閾値未満であるか否かを判定する（ステップＳ１０３）。サーバ５０は、電力が閾値未満でない場合には（ステップＳ１０４，Ｎｏ）、再度ステップＳ１０２に移行する。【００９０】
一方、サーバ５０は、電力が閾値未満である場合には（ステップＳ１０４，Ｙｅｓ）、スクリプト情報を生成する（ステップＳ１０５）。サーバ５０は、スクリプト情報をノード１００に送信する（ステップＳ１０６）。【００９１】
図１４は、ノードの処理手順の一例を示すフローチャートである。図１４に示すように、ノード１００の制御部１４０は、サーバ５０からスクリプト情報１３０ｂを受信する（ステップＳ２０１）。制御部１４０は、スクリプト情報１３０ｂを記憶部１３０に格納する（ステップＳ２０２）。【００９２】
制御部１４０は、役割識別情報が「Router（節ノード）」であるか否かを判定する（ステップＳ２０３）。制御部１４０は、役割識別情報が「Router」である場合には（ステップＳ２０３，Ｙｅｓ）、スクリプト情報１３０ｂを隣接ノードに送信する（ステップＳ２０４）。制御部１４０は、役割識別情報が「Router」でない場合には（ステップＳ２０３，Ｎｏ）、ステップＳ２０５に移行する。【００９３】
制御部１４０は、スクリプト情報１３０ｂのTargetと、識別情報管理テーブル１３０ａとを比較して、実行対象となるコマンド列を特定する（ステップＳ２０５）。制御部１４０は、コマンド列に対応する実行コマンドを該当するＡＰＩ部に出力する。また、制御部１４０は、コマンドがループ処理の場合には、繰り返し、実行コマンドをＡＰＩ部に出力する（ステップＳ２０６）。【００９４】
次に、上記実施例に示したサーバ５０と同様の機能を実現する制御プログラムを実行するコンピュータおよびハードウェア構成の一例について説明する。図１５は、制御プログラムを実行するコンピュータの一例を示す図である。【００９５】
図１５に示すように、コンピュータ３００は、各種演算処理を実行するＣＰＵ３０１と、ユーザからのデータの入力を受け付ける入力装置３０２と、ディスプレイ３０３とを有する。また、コンピュータ３００は、記憶媒体からプログラム等を読取る読み取り装置３０４と、ネットワークを介して他のコンピュータとの間でデータの授受を行うインターフェース装置３０５とを有する。また、コンピュータ３００は、各種情報を一時記憶するＲＡＭ３０６と、ハードディスク装置３０７とを有する。そして、各装置３０１〜３０７は、バス３０８に接続される。【００９６】
ハードディスク装置３０７は、電力データ取得プログラム３０７ａと、スクリプト生成プログラム３０７ｂと、送信プログラム３０７ｃとを有する。ＣＰＵ３０１は、電力データ取得プログラム３０７ａ、スクリプト生成プログラム３０７ｂ、送信プログラム３０７ｃを読み出してＲＡＭ３０６に展開する。電力データ取得プログラム３０７ａは、電力データ取得プロセス３０６ａとして機能する。スクリプト生成プログラム３０７ｂは、スクリプト生成プロセス３０６ｂとして機能する。送信プログラム３０７ｃは、送信プロセス３０６ｃとして機能する。例えば、電力データ取得プロセス３０６ａは、電力データ取得部５３ａに対応する。スクリプト生成プロセス３０６ｂは、スクリプト生成部５３ｂに対応する。送信プロセス３０６ｃは、送信部５３ｃに対応する。【００９７】
なお、電力データ取得プログラム３０７ａ、スクリプト生成プログラム３０７ｂ、送信プログラム３０７ｃについては、必ずしも最初からハードディスク装置３０７に記憶させておかなくても良い。例えば、コンピュータ３００に挿入されるフレキシブルディスク（ＦＤ）、ＣＤ−ＲＯＭ、ＤＶＤディスク、光磁気ディスク、ＩＣカードなどの「可搬用の物理媒体」に各プログラムを記憶させておく。そして、コンピュータ３００が電力データ取得プログラム３０７ａ、スクリプト生成プログラム３０７ｂ、送信プログラム３０７ｃを読み出して実行するようにしてもよい。【００９８】
次に、上記実施例に示したノード１００のハードウェア構成の一例について説明する。図１６は、ノードのハードウェア構成を示す図である。例えば、ノード１００は、エナジーハーベスト素子１０、パワーモジュール１１、バッテリ１２、センサーデバイス１３、Ｉ／Ｏ（Input  Output）１４、ＲＦ（Radio  Frequency）１５、タイマ１６、メモリ１７、ＣＰＵ１８を有する。【００９９】
エナジーハーベスト素子１０は、環境電波や温度などを用いて微弱発電する素子であり、例えば、ソーラーパネル等に対応する。【０１００】
パワーモジュール１１は、エナジーハーベスト素子１０、バッテリ１２に接続され、ノード１００のＩ／Ｏ１４、ＲＦ１５、タイマ１６、メモリ１７、ＣＰＵ１８に対する電源供給・停止を行う装置である。パワーモジュール１１は、タイマ１１ａと、ＰＭＵ（Power  Management  Unit）１１ｂとを有する。タイマ１１ａは、時間の情報をＰＭＵ１１ｂに出力するタイマである。ＰＭＵ１１ｂは、ノード１００のＩ／Ｏ１４、ＲＦ１５、タイマ１６、メモリ１７、ＣＰＵ１８に対する電源供給・停止を行う。例えば、ＣＰＵ１８から、９秒間スリープせよとの実行コマンドを受け付けた場合には、９秒間、Ｉ／Ｏ１４、ＲＦ１５、タイマ１６、メモリ１７、ＣＰＵ１８に対する電源供給を停止することで、ノード１００を、スリープ状態に移行させる。バッテリ１２は、エナジーハーベスト素子１０から生成される電力を蓄積する装置である。【０１０１】
センサーデバイス１３は、各種の環境データをセンシングする装置である。Ｉ／Ｏ１４は、センサーデバイス１３から環境データを取得する装置である。ＲＦ１５は、他の装置と無線通信を実行する通信装置である。タイマ１６は、ＣＰＵ１８に時間の情報を出力するタイマである。メモリ１７は、各種の情報を格納する記憶装置であり、例えば、図１０の記憶部１３０に示した、識別情報管理テーブル１３０ａ、スクリプト情報１３０ｂを格納する。ＣＰＵ１８は、図１０に示した制御部１４０に対応する装置である。【０１０２】
次に、本実施例に係る制御システムの効果について説明する。センサーネットワーク７０を構成する各ノード１００に単純なＡＰＩ部、ドライバ、逐次処理・ループ処理の制御構造のみを持たせ、サーバ５０側から単純な逐次処理・ループ処理を合わせたスクリプト情報をノード１００に通知して実行させるので、センサーネットワーク７０の運用コストを削減することができる。【０１０３】
例えば、従来のノードのように、ノード側に全ロジックを搭載させると、ノード側で２ＭＢｙｔｅのデータ容量を使用することになる。これに対して、本実施例のように、スクリプト情報をノード１００に送信して動作させることで、ノード１００側では８ｋＢｙｔｅのデータ容量の使用ですむ。【０１０４】
また、一般に、ソフトウェアは実装量と制御ブランチ量に比例して、潜在バグ率が上昇するが、本実施例で用いるスクリプト情報は、データ量が少ないため、潜在バグ率を従来のノードと比較して低減させることができる。【０１０５】
また、本実施例では、ノード１００から取得する電力データに基づき、電力枯渇の発生しそうなノード１００を特定し、スクリプト情報を用いて、ノード１００の役割や、動作のパターンを変更するので、電力枯渇を未然に防止できる。また、判定ロジックを動的に変更することができる。【０１０６】
また、本実施例に係るノード１００は、役割が節ノードである場合に、サーバ５０から受信したコマンド列のデータを、隣接ノードに転送するため、センサーネットワーク７０の各ノード１００に、スクリプト情報を通知することができる。【０１０７】
また、本実施例に係るノード１００は、識別情報管理テーブル１３０ａに、グループ識別情報を有し、スクリプト情報のTargetで指定されるグループと、グループ識別情報とが一致する場合に、スクリプトのコマンド列を実行する。このため、サーバ５０は、グループ毎に、一括して、ノード１００の役割や、動作パターンを変更することができる。
【符号の説明】
【０１０８】
５０  サーバ
６０  ゲートウェイ
１００ａ，１００ｂ，１００ｃ，１００ｄ，１００ｅ，１００ｆ，１００ｇ，１００ｈ，１００ｉ，１００ｊ，１００ｋ，１００ｌ  ノード
【図１】
2017064758.tif 000003
【図２】
2017064758.tif 000004
【図３】
2017064758.tif 000005
【図４】
2017064758.tif 000006
【図５】
2017064758.tif 000007
【図６】
2017064758.tif 000008
【図７】
2017064758.tif 000009
【図８】
2017064758.tif 000010
【図９】
2017064758.tif 000011
【図１０】
2017064758.tif 000012
【図１１】
2017064758.tif 000013
【図１２】
2017064758.tif 000014
【図１３】
2017064758.tif 000015
【図１４】
2017064758.tif 000016
【図１５】
2017064758.tif 000017
【図１６】
2017064758.tif 000018
【手続補正書】
【提出日】平成30年4月20日(2018.4.20)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
ネットワークを構成する複数のノードとサーバとを有する制御システムであって、
前記サーバは、前記ノードに実行させる所定の処理を逐次処理および前記逐次処理を繰り返し実行させるループ処理の組み合わせで記述したコマンド列のデータを前記ノードに送信する送信部を有し、
前記ノードは、
前記サーバから受信した前記コマンド列のデータを格納する記憶部と、
予め定められた逐次処理を実行する複数のＡＰＩ（Application  Programming  Interface）部と、
前記記憶部に記憶されたコマンド列に基づいて、前記ＡＰＩ部を選択し、選択したＡＰＩ部に逐次処理およびループ処理を実行させる制御部と
を有することを特徴とする制御システム。
【請求項２】
前記送信部が送信する前記コマンド列のデータは、前記ノードが前記ノードに接続された外部装置からデータを取得する処理と、前記ネットワークを介して前記ノードが前記サーバとデータ通信を行う処理と、前記ノードに供給する電力の制御を行う処理とを、逐次処理およびループ処理の組み合わせで記述したコマンド列のデータであり、前記複数のＡＰＩ部は、外部装置からデータを取得するＡＰＩ部と、前記ネットワークを介して前記サーバとデータ通信を行うＡＰＩ部と、前記ノードに供給する電力の制御を行うＡＰＩ部とを含むことを特徴とする請求項１に記載の制御システム。
【請求項３】
前記制御部は、前記ＡＰＩ部を制御して、前記サーバから受信したコマンド列のデータを、隣接ノードに転送することを特徴とする請求項１または２に記載の制御システム。
【請求項４】
前記記憶部は、前記ノードが所属するグループを識別する識別情報を格納し、前記制御部は、前記コマンド列のデータに付与される識別情報と、前記記憶部に格納される識別情報とが一致する場合に、前記コマンド列のデータを実行することを特徴とする請求項１に記載の制御システム。
【請求項５】
サーバが、ネットワークを構成する各ノードに実行させる所定の処理を逐次処理および前記逐次処理を繰り返し実行させるループ処理の組み合わせで記述したコマンド列のデータを前記ノードに送信し、
前記ノードは、前記サーバから受信した前記コマンド列のデータを記憶装置に格納し、
前記記憶装置に記憶されたコマンド列に基づいて、予め定められた逐次処理を実行する複数のＡＰＩ（Application  Programming  Interface）部を選択し、選択した各ＡＰＩ部に逐次処理およびループ処理を実行させる
処理を実行することを特徴とする制御方法。
【国際調査報告】
2017064758.tif 000019
2017064758.tif 000020
2017064758.tif 000021
2017064758.tif 000022