(57)【特許請求の範囲】
【請求項１】
センサネットワークを構成するセンサノードに実装される制御プログラムであって、実行条件と当該実行条件を満たした際の当該センサノードの動作設定とが定められたＮ個（Ｎ≧１）の制御コードが判断・実行される順に記述されて構成され、当該センサノードによって所与の制御サイクルで繰り返し実行されることとなる制御プログラムを、コンピュータに作成させるためのプログラムであって、
ユーザ操作に従って、前記実行条件に含まれる条件項目および当該条件項目に係る値条件と、前記動作設定に含まれる動作項目および当該動作項目に係る設定内容とを対応づけた仮制御コードを複数入力する入力手段、
前記入力手段により入力された仮制御コードのうち、実行条件の条件項目が互いに異なり、動作設定の動作項目が同一に設定されたコンフリクト関係にある仮制御コードを抽出するコンフリクトコード抽出手段、
前記コンフリクトコード抽出手段により抽出された仮制御コードの中から優先する仮制御コードを選択する優先コード選択手段、
前記入力手段により入力された仮制御コードと前記優先コード選択手段の選択結果とに基づいて制御コードを記述して制御プログラムを作成する作成手段、
として前記コンピュータを機能させるためのプログラム。
【請求項２】
前記作成手段が、前記優先コード選択手段により選択された仮制御コードについて、同一の動作項目の設定内容の変更を所与の時間禁止するロックコマンドを記述することで、当該選択された仮制御コードの優先実行を規定する設定継続優先規定手段を有する、
ように前記コンピュータを機能させるための請求項１に記載のプログラム。
【請求項３】
前記作成手段が、前記優先コード選択手段により選択された仮制御コードが複数の場合に、当該仮制御コードと同一の動作項目の設定内容の変更を所与の時間禁止するロックコマンドと、当該ロックコマンドによる禁止状態を解除するロック解除コマンドとを記述することで、当該選択された複数の仮制御コードの優先実行順を規定する設定継続優先順規定手段を有する、
ように前記コンピュータを機能させるための請求項１に記載のプログラム。
【請求項４】
前記作成手段が、前記仮制御コードの順番を変更して記述することで、同一の制御サイクルにおける優先実行順を規定する同一サイクル内優先順規定手段を有する、
ように前記コンピュータを機能させるための請求項１〜３の何れか一項に記載のプログラム。
【請求項５】
前記優先コード選択手段が、前記コンフリクトコード抽出手段により抽出された仮制御コードのうち、当該センサノードが検出する観測項目を条件項目とする仮制御コードを選択する観測優先選択手段を有する、
ように前記コンピュータを機能させるための請求項１〜４の何れか一項に記載のプログラム。
【請求項６】
センサネットワークを構成するセンサノードに実装される制御プログラムであって、実行条件と当該実行条件を満たした際の当該センサノードの動作設定とが定められたＮ個（Ｎ≧１）の制御コードが判断・実行される順に記述されて構成され、当該センサノードによって所与の制御サイクルで繰り返し実行されることとなる制御プログラムを作成するセンサノードプログラム作成装置であって、
ユーザ操作に従って、前記実行条件に含まれる条件項目および当該条件項目に係る値条件と、前記動作設定に含まれる動作項目および当該動作項目に係る設定内容とを対応づけた仮制御コードを複数入力する入力手段と、
前記入力手段により入力された仮制御コードのうち、実行条件の条件項目が互いに異なり、動作設定の動作項目が同一に設定されたコンフリクト関係にある仮制御コードを抽出するコンフリクトコード抽出手段と、
前記コンフリクトコード抽出手段により抽出された仮制御コードの中から優先する仮制御コードを選択する優先コード選択手段と、
前記入力手段により入力された仮制御コードと前記優先コード選択手段の選択結果とに基づいて制御コードを記述して制御プログラムを作成する作成手段と、
を備えたセンサノードプログラム作成装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、センサネットワークを構成するセンサノードに実装される制御プログラムを作成するセンサノードプログラム作成装置等に関する。
【背景技術】
【０００２】
センサネットワークは、各所に設置されたセンサノードによる観測データを集約することで、対象物の状態を監視するために有効なシステムである。特に、ワイヤレスセンサネットワークの構成要素の一つであるセンサノードは、センサ及び電源を搭載した小型の無線端末装置として構成され、実装された制御プログラムに従って、センサによる検出動作やセンサデータの送信といった定められた動作を自律的に行う（例えば、特許文献１参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】国際公開第２００５／０３３４７５号パンフレット
【発明の概要】
【発明が解決しようとする課題】
【０００４】
また、センサノードには、センサによる計測結果が異常と判断できるような値となった場合にデータの送信周期を短くしたり、バッテリ残量が少なくなると消費電力を抑制するためにデータの送信周期を長くするといった動作制御を規定する制御プログラムを実装することが可能なものがある。しかし、制御プログラムによって細かな動作制御を規定できる一方、シーケンス的な独特なプログラムであるが故に、内容が相反する動作が同時に適用されるといった思いもよらぬ動作が作動して不都合が生じる場合があった。
【０００５】
本発明は、上記事情に鑑みてなされたものであり、その目的とするところは、センサネットワークを構成するセンサノードに実装されるプログラムを容易に、そして意図したとおりに動作するプログラムとして作成することを可能にすることである。
【課題を解決するための手段】
【０００６】
上記課題を解決するための第１の形態は、
センサネットワークを構成するセンサノードに実装される制御プログラムであって、実行条件と当該実行条件を満たした際の当該センサノードの動作設定とが定められたＮ個（Ｎ≧１）の制御コードが判断・実行される順に記述されて構成され、当該センサノードによって所与の制御サイクルで繰り返し実行されることとなる制御プログラムを、コンピュータに作成させるためのプログラムであって、
ユーザ操作に従って、前記実行条件に含まれる条件項目および当該条件項目に係る値条件と、前記動作設定に含まれる動作項目および当該動作項目に係る設定内容とを対応づけた仮制御コードを複数入力する入力手段、
前記入力手段により入力された仮制御コードのうち、実行条件の条件項目が互いに異なり、動作設定の動作項目が同一に設定されたコンフリクト関係にある仮制御コードを抽出するコンフリクトコード抽出手段、
前記コンフリクトコード抽出手段により抽出された仮制御コードの中から優先する仮制御コードを選択する優先コード選択手段、
前記入力手段により入力された仮制御コードと前記優先コード選択手段の選択結果とに基づいて制御コードを記述して制御プログラムを作成する作成手段、
として前記コンピュータを機能させるためのプログラムである。
【０００７】
また、他の形態として、
センサネットワークを構成するセンサノードに実装される制御プログラムであって、実行条件と当該実行条件を満たした際の当該センサノードの動作設定とが定められたＮ個（Ｎ≧１）の制御コードが判断・実行される順に記述されて構成され、当該センサノードによって所与の制御サイクルで繰り返し実行されることとなる制御プログラムを作成するセンサノードプログラム作成装置であって、
ユーザ操作に従って、前記実行条件に含まれる条件項目および当該条件項目に係る値条件と、前記動作設定に含まれる動作項目および当該動作項目に係る設定内容とを対応づけた仮制御コードを複数入力する入力手段と、
前記入力手段により入力された仮制御コードのうち、実行条件の条件項目が互いに異なり、動作設定の動作項目が同一に設定されたコンフリクト関係にある仮制御コードを抽出するコンフリクトコード抽出手段と、
前記コンフリクトコード抽出手段により抽出された仮制御コードの中から優先する仮制御コードを選択する優先コード選択手段と、
前記入力手段により入力された仮制御コードと前記優先コード選択手段の選択結果とに基づいて制御コードを記述して制御プログラムを作成する作成手段と、
を備えたセンサノードプログラム作成装置を構成しても良い。
【０００８】
この第１の形態等によれば、入力された複数の仮制御コードのうちからコンフリクト関係にある仮制御コードが抽出され、この抽出された仮制御コードの中から優先する仮制御コードが選択される。そして、入力された仮制御コードと、優先するとして選択された仮制御コードとに基づいて、制御コードを記述して制御プログラムが作成される。つまり、制御プログラムを構成する制御コードのうち、コンフリクト関係にある制御コードがある場合、これらの制御コードの何れかを優先させた制御プログラムが作成されることとなり、意図した通りの制御プログラムを簡単に作成することが可能となる。ここで、仮制御コードを構成する「値条件」には、例えば数値条件や真偽値条件がある。
【０００９】
第２の形態として、第１の形態のプログラムであって、
前記作成手段が、前記優先コード選択手段により選択された仮制御コードについて、同一の動作項目の設定内容の変更を所与の時間禁止するロックコマンドを記述することで、当該選択された仮制御コードの優先実行を規定する設定継続優先規定手段を有する、
ように前記コンピュータを機能させるためのプログラムを構成しても良い。
【００１０】
この第２の形態によれば、優先するとして選択された仮制御コードについて、同一の動作項目の設定内容の変更を所与の時間禁止するロックコマンドを記述することで、優先実行が規定される。
【００１１】
第３の形態として、第１の形態のプログラムであって、
前記作成手段が、前記優先コード選択手段により選択された仮制御コードが複数の場合に、当該仮制御コードと同一の動作項目の設定内容の変更を所与の時間禁止するロックコマンドと、当該ロックコマンドによる禁止状態を解除するロック解除コマンドとを記述することで、当該選択された複数の仮制御コードの優先実行順を規定する設定継続優先順規定手段を有する、
ように前記コンピュータを機能させるためのプログラムを構成しても良い。
【００１２】
この第３の形態によれば、選択された仮制御コードが複数の場合、同一の動作項目の設定内容の変更を所与の時間禁止するロックコマンドと、このロックコマンドによる禁止状態を解除するロック解除コマンドとを記述することで、複数の仮制御コードの優先実行順が簡単に規定される。
【００１３】
第４の形態として、第１〜第３の何れかの形態のプログラムであって、
前記作成手段が、前記仮制御コードの順番を変更して記述することで、同一の制御サイクルにおける優先実行順を規定する同一サイクル内優先順規定手段を有する、
ように前記コンピュータを機能させるためのプログラムを構成しても良い。
【００１４】
この第４の形態によれば、仮制御コードの順番を変更して記述することで、同一の制御サイクルにおける優先実行順が規定される。これは、制御プログラムは、制御コードが判断・実行される順に記述されるという独特の構成となっていること、つまり、制御プログラムにおける制御コードの記述順によって判断・実行される順序が決まるためである。
【００１５】
第５の形態として、第１〜第４の何れかの形態のプログラムであって、
前記優先コード選択手段が、前記コンフリクトコード抽出手段により抽出された仮制御コードのうち、当該センサノードが検出する観測項目を条件項目とする仮制御コードを選択する観測優先選択手段を有する、
ように前記コンピュータを機能させるためのプログラムを構成しても良い。
【００１６】
この第５の形態によれば、コンフリクト関係にあるとして抽出された仮制御コードの中から、センサノードが検出する観測項目を条件項目とする仮制御コードが、優先する仮制御コードとして選択される。センサノードでは、実行条件として、その本来の目的である観測項目を含む仮制御コードが優先されることが望ましい。
【図面の簡単な説明】
【００１７】
【図１】ワイヤレスセンサネットワークの概略構成例。
【図２】センサノードへの制御プログラムの実装方法。
【図３】制御プログラムの構成例。
【図４】制御コードの一例。
【図５】制御コードへのロックコマンドの設定例。
【図６】制御コードへのロックコマンド及びロック解除コマンドの設定例。
【図７】制御コード入力画面の一例。
【図８】優先コード選択画面の一例。
【図９】ロック設定画面の一例。
【図１０】ロック設定画面の一例。
【図１１】最優先コード選択画面の一例。
【図１２】ロック解除設定画面の一例。
【図１３】優先実行順序決定画面の一例。
【図１４】プログラム確認画面の一例。
【図１５】センサノードプログラム作成装置の機能構成例。
【図１６】観測項目テーブルのデータ構成例。
【図１７】プログラム作成処理のフローチャート。
【発明を実施するための形態】
【００１８】
以下、図面を参照して、本発明の実施形態を説明する。但し、本発明の適用可能な実施形態がこれに限定されるものではない。
【００１９】
［概要］
本実施形態のセンサノードプログラム作成装置（以下、「プログラム作成装置」という）は、ワイヤレスセンサネットワークの構成要素であるセンサノードに実装される制御プログラムを作成する装置である。ワイヤレスセンサネットワークは、例えば地下鉄のトンネルや橋梁、水道管といった構造物の状態を監視するために構築され、監視対象物の各所に設置された多数のセンサノードによる観測データ（センサデータ）が、中継ノードを介して無線通信で転送されてデータ集約装置で集約される。
【００２０】
図１に、ワイヤレスセンサネットワークの概略構成を示す。図１では、地下鉄のトンネルを検査対象の構造物とした例を示している。図１に示すように、ワイヤレスセンサネットワーク１は、センサノード２と、中継ノード３と、データ集約装置であるゲートウェイ４と、管理サーバ５とを備えて構成されている。
【００２１】
センサノード２は、マイクロプロセッサにセンサや無線チップ、メモリ等が搭載された無線端末であり、トンネル内壁の検査対象部分に設置されている。このセンサノード２に搭載されているセンサとしては、例えば温度センサや照度センサ、歪みセンサ、振動センサ等、検査対象に応じた１又は複数種類のセンサである。そして、センサノード２は、搭載するセンサによる検出結果のデータ（センサデータ）を、送信先として予め定められた中継ノード３或いはゲートウェイ４に送信する。
【００２２】
中継ノード３は、無線通信機能を有し、センサノード２や他の中継ノード３からの受信データを、送信された他の中継ノード３或いはゲートウェイ４に転送する。なお、センサノード２が中継ノード３を兼ねる場合もある。ゲートウェイ４は、トンネル内の所定区間毎に設置され、既設の外部ケーブルや通信ネットワークＮを介して外部の管理サーバ５に接続されている。
【００２３】
このように、ワイヤレスセンサネットワーク１では、センサノード２によるセンサデータが、中継ノード３を介して繰り返し転送されてゲートウェイ４に集約され、管理サーバ５まで送信される。
【００２４】
また、センサノード２は、実装されている制御プログラム１０に従って自律的に動作する。具体的な動作としては、例えば、センサによる検出動作（計測動作）、センサデータの蓄積動作や送信動作があり、それぞれの動作周期を設定変更することも可能である。
【００２５】
センサノード２に実装される制御プログラム１０は、プログラム作成装置１００にて作成される。すなわち、図２に示すように、センサノード２をワイヤレスセンサネットワーク１の構成要素として設置する前に、該センサノード２をプログラム作成装置１００に接続する。そして、プログラム作成装置１００では、ユーザの操作指示に従って、該センサノード２に搭載されているセンサの種別等に応じた制御プログラム１０が作成され、作成された制御プログラム１０が、該センサノード２に送信・実装される。
【００２６】
図３は、センサノード２に実装される制御プログラム１０の概要図である。図３に示すように、制御プログラム１０は、１又は複数の制御コード１２から構成される。制御コード１２は、１つの実行条件１４と、この実行条件１４を満たしたときのセンサノード２の動作を定めた１又は複数の動作設定１６とからなる。実行条件１４は、条件項目と、この条件項目にかかる数値条件（値条件）とを含み、動作設定１６は、動作項目と、この動作項目にかかる設定内容とを含む。なおここで、実行条件１４の条件項目にかかる値条件として、数値条件の他に真偽値条件を加えることとしても良い。具体的には、例えば、条件項目が「電源ＯＮ」であり、真偽値条件が「真」である実行条件「電源がＯＮである」がある。
【００２７】
図４に、制御コード１２の一例を示す。この制御コード１２は、条件項目が「照度」であり、数値条件が「３０より大きい」であり、動作項目が「データの送信周期を設定」であり、設定内容が「１ｍｓ」である。つまり、「照度が３０より大きい（実行条件）」を満たす場合に、センサノード２の動作として「データの送信周期を１ｍｓに設定（動作設定）」するように定めている。
【００２８】
そして、制御プログラム１０の実行の際には、これらの制御コード１２が、その記述順に判断・実行される。また、制御プログラム１０の実行は、１回の実行を１サイクルとして所定時間間隔で繰り返し行われる。
【００２９】
ところで、制御プログラム１０を構成する制御コード１２の中には、互いに「コンフリクト関係（矛盾関係）」にある制御コード１２が存在し得る。コンフリクト関係とは、条件項目が異なる実行条件を同時に満たしたときになされる動作設定が矛盾する関係であり、具体的には、実行条件の条件項目は異なるが、動作設定の動作項目が一致する関係である。
【００３０】
図５（ａ）は、コンフリクト関係にある制御コード１２の一例である。図５（ａ）では、コンフリクト関係にある二つの制御コード１２ａ，１２ｂを示している。制御コード１２ａは、実行条件が「照度（条件項目）が３０より大きい（数値条件）」であり、動作設定が「送信周期を１ｍｓ（設定内容）に設定（動作項目）」である。また、制御コード１２ｂは、実行条件が「バッテリ残量（条件項目）が１０未満（数値条件）」であり、動作設定が「送信周期を１００ｍｓ（設定内容）に設定（動作項目）」である。つまり、制御コード１２ａ，１２ｂは、条件項目が「照度」と「バッテリ残量」とで異なるが、動作項目がともに「送信周期の設定」で同じであり、互いに「コンフリクト関係」にある。
【００３１】
このようなコンフリクト関係にある複数の制御コードについて、何れかの制御コードの動作設定に「ロックコマンド」を付加（追加）することで、当該制御コードの動作設定を優先させることができる。「ロックコマンド」は動作項目の一種であり、設定内容で定めた期間、所定の動作を禁止（ロック）するコマンドである。図５では、制御コード１２ａ，１２ｂに共通する動作項目である「送信周期の設定」を禁止する「ロックコマンド『lockInterval』」が付加されている。
【００３２】
具体的には、図５（ｂ）に示す例では、制御コード１２ａに、「送信周期の設定」を禁止する「ロックコマンド『lockInterval』」が付加されている。この場合、制御コード１２ａの実行条件を満たすと、データの送信周期が「１ｍｓ」に設定された後、「１０サイクル」の間、この送信周期の再設定が禁止（ロック）される。以降は、「１０サイクル」が経過するまでは、制御コード１２ｂの実行条件を満たしても送信周期が変更されない。つまり、ロックコマンドが付加されている制御コード１２ａの動作内容が、一定時間の間、優先される。
【００３３】
一方、図５（ｃ）に示す例では、制御コード１２ｂに、「送信周期の設定」を禁止する「ロックコマンド『lockInterval』」が付加されている。この場合、制御コード１２ｂの実行条件を満たすと、データの送信周期が「１００ｍｓ」に設定された後、「１０サイクル」の間、この送信周期の再設定が禁止（ロック）される。以降は、「１０サイクル」が経過するまでは、制御コード１２ａの実行条件を満たしても送信周期が変更されない。つまり、ロックコマンドが付加されている制御コード１２ｂの動作設定が、一定時間の間、優先される。
【００３４】
図６（ａ）は、コンフリクト関係にある制御コードの他の例である、図６（ａ）では、コンフリクト関係にある３つの制御コード１２ａ〜１２ｃを示している。制御コード１２ａは、実行条件が「照度（条件項目）が３０より大きい（数値条件）」であり、動作設定が「送信周期を１ｍｓ（設定内容）に設定（動作項目）」である。制御コード１２ｂは、実行条件が「照度（条件項目）が１０未満（数値条件）」であり、動作設定が「送信周期を１０ｍｓ（設定内容）に設定（動作項目）」である。制御コード１２ｃは、実行条件が「バッテリ残量（条件項目）が１０未満（数値条件）」であり、動作設定が「送信周期を１００ｍｓ（設定内容）に設定（動作項目）」である。
【００３５】
つまり、制御コード１２ａ，１２ｃは、実行条件の条件項目が「照度」と「バッテリ残量」とで異なるとともに、動作項目がともに「送信周期の設定」で同じであり、互いにコンフリクト関係にある。また、制御コード１２ｂ，１２ｃは、実行条件の条件項目が「照度」と「バッテリ残量」とで異なるとともに、動作項目がともに「送信周期の設定」で同じであり、互いにコンフリクト関係にある。
【００３６】
このようなコンフリクト関係にある３つ以上の制御コードについて、何れかの制御コードの動作設定に「ロックコマンド」及び「ロック解除コマンド」を付加することで、各制御コードの動作設定の優先度合いを段階的に定めることができる。「ロック解除コマンド」は、動作項目の一種であり、所定の動作の禁止（ロック）を解除するコマンドである。
【００３７】
図６（ｂ）に示す例では、制御コード１２ａの動作設定に、「送信周期の設定」の禁止を解除する「ロック解除コマンド『releaseInterval』」が先頭に挿入・付加され、「送信周期の設定」の後に、「送信周期の設定」を禁止する「ロックコマンド『lockInterval』が付加されている。また、制御コード１２ｃの動作設定に、「送信周期の設定」を禁止する「ロックコマンド『lockInterval』」が付加されている。
【００３８】
この場合、制御コード１２ａの実行条件を満たすと、送信周期の設定が禁止（ロック）されているならばその禁止が解除された後、送信周期が「１ｍｓ」に設定されて送信周期の設定が禁止（ロック）される。以降は、「１０サイクル」が経過するまでは、他の制御コード１２ｂ，１２ｃの実行条件を満たしても、送信周期は変更されない。
【００３９】
一方、最初に制御コード１２ｃの実行条件を満たすと、送信周期が「１００ｍｓ」に設定された後、送信周期の設定が禁止（ロック）される。以降は、「１０サイクル」が経過するまでは、制御コード１２ｂの実行条件を満たしても、送信周期が変更されない。しかし、制御コード１２ａの実行条件を満たすと、送信周期の設定の禁止（ロック）が解除されて送信周期が「１ｍｓ」に更新され、送信周期の変更が禁止（ロック）される。
【００４０】
つまり、同じサイクルにおいて、制御コード１２ａの実行条件と、制御コード１２ｃの実行条件とを同時に満たしている場合は、制御コード１２ａの動作設定が優先されることになる。また、同じサイクルにおいて、制御コード１２ｂの実行条件と、制御コード１２ｃの実行条件とを同時に満たしている場合には、制御コード１２ｃの動作設定が優先される。すなわち、制御コード１２ａ，１２ｃ，１２ｂの順に、実行条件を同時に満たした際の動作設定の優先度合いが高くなっている。つまり、「ロックコマンド」及び「ロック解除コマンド」が付加されている制御コード、「ロックコマンド」は付加されているが「ロック解除コマンド」は付加されていない制御コード、「ロックコマンド」及び「ロック解除コマンド」の何れも付加されていない制御コードの順に、実行条件を同時に満たした際の動作設定の優先度合いが高くなっている。
【００４１】
［作成画面］
続いて、プログラム作成装置１００における制御プログラム１０の作成手順を説明する。
【００４２】
先ず、図７に示す制御コード入力画面Ｗ１が表示される。この制御コード入力画面Ｗ１は、ユーザが制御コードを入力するための画面である。図７に示すように、制御コード入力画面Ｗ１では、１つの制御コード１２０を１つの単位として入力するようになっており、制御コードを構成する各項目を、定められた複数の選択肢のうちからプルダウン形式で選択・設定できるようになっている。ここで、条件項目１４１の選択肢としては、作成対象のセンサノード２に搭載されているセンサの種別に応じた測定対象の項目（例えば、照度センサならば「照度」、温度センサならば「温度」等）と、センサノード２の状態に関する項目（例えば、「バッテリ残量」や「メモリ残量」等）とがある。なお、ここで入力された制御コードは確定でなく、仮の制御コードであるため、以下では適宜「仮制御コード」という。
【００４３】
制御コードの入力を完了した後、入力完了を指示するボタンを選択すると、続いて、図８に示す優先コード選択画面Ｗ２が表示される。この優先コード選択画面Ｗ２は、入力した制御コードに対して、動作設定を優先させたい制御コードを選択する画面である。
【００４４】
図８に示すように、優先コード選択画面Ｗ２では、入力した制御コードのうち、コンフリクト関係にある制御コードが、太字や背景色の変更等の強調表示によってユーザに提示される。また、これらのコンフリクト関係にある制御コードそれぞれに、チェックボックス２２が対応して表示される。また、これらの制御コードがコンフリクト関係に有ることを知らせるとともに、動作設定を優先させたい制御コードの選択を要求する旨のメッセージ等が表示される。ユーザは、対応するチェックボックス２２をチェックすることで、提示された制御コードのうちから、実行条件を同時に満たした際に動作設定を優先させたい制御コードを選択する。
【００４５】
制御コードの選択を完了した後、選択完了を指示するボタンを選択すると、続いて、図９，図１０に示すロック設定画面Ｗ３，Ｗ４が表示される。このロック設定画面Ｗ３，Ｗ４では、直前の優先コード選択において選択した制御コードの動作設定に、ロックコマンド１４７が追加設定されている。
【００４６】
ここで、追加されるロックコマンドは、コンフリクト関係にあるとして提示された制御コードそれぞれに共通な動作項目に対する動作（設定）を禁止するロックコマンドである。すなわち、図９、図１０では、コンフリクト関係にある制御コードそれぞれに共通な動作項目である「送信周期の設定」を禁止するロックコマンド１４７が、選択した制御コードに付加されている。また、ロックコマンドは、追加設定したことが分かりやすいように、例えば、太字や背景色の変更等によって強調表示される。
【００４７】
図９は、優先コード選択画面Ｗ２（図８参照）において１つの制御コードを選択した場合の画面例であり、図１０は、優先コード選択画面Ｗ２（図８参照）において２つ（複数）の制御コードを選択した場合の画面例である。また、ロックコマンドは、設定内容として、該当する動作を禁止する期間を、予め定められた複数の選択肢のうちからプルダウン形式にて選択・設定することができる。
【００４８】
ロックコマンドの追加設定を確認し、確認完了を指示する所定のボタンを選択すると、ロックコマンドを追加設定した制御コードが複数の場合、続いて、図１１に示す最優先コード選択画面Ｗ５が表示される。この最優先コード選択画面Ｗ５は、ロックコマンドが設定された制御コードに対して、動作設定を更に優先（最優先）させたい制御コードを選択するための画面である。
【００４９】
図１１では、２つの制御コードにロックコマンドが追加された場合を示している。図１１に示すように、最優先コード選択画面Ｗ５では、ロックコマンドが追加設定された制御コードが、太字や背景色の変更等が強調表示されているとともに、これらの制御コードそれぞれに、チェックボックス２５が対応して表示されている。また、ロックコマンドが設定されている制御コードのうちから、動作設定を最優先させたい制御コードの選択を要求する旨のメッセージ等が表示される。ユーザは、対応するチェックボックス２５をチェックすることで、ロックコマンドが設定された制御コードのうちから、実行条件を同時に満たした際に動作設定を最優先させたい制御コードを選択する。
【００５０】
制御コードの選択を完了した後、選択完了を指示する所定のボタンを選択すると、続いて、図１２に示すロック解除設定画面Ｗ６が表示される。図１２に示すように、このロック解除設定画面Ｗ６では、直前の最優先コード選択画面Ｗ５において選択した制御コードに、ロック解除コマンド１４８が、動作設定の先頭に追加設定されている。
【００５１】
ここで、追加設定されるロック解除コマンドは、コンフリクト関係にあるとして提示された制御コードそれぞれに共通な動作項目に対する動作（設定）の禁止を解除するコマンドである。すなわち、図１２では、コンフリクト関係にある制御コードそれぞれに共通な動作項目である「送信周期の設定」の禁止を解除するロック解除コマンド『releaseInterval』が、追加設定されている。また、ロック解除コマンドは、追加設定したことが分かりやすいように、例えば、太字や背景色の変更等によって強調表示される。
【００５２】
ロック解除コマンドの追加設定を確認した後、確認完了を指示する所定のボタンを選択すると、続いて、図１３に示す優先実行順序決定画面Ｗ７が表示される。この優先実行順序決定画面Ｗ７は、制御プログラムにおける制御コードの優先実行順序を決定するための画面である。
【００５３】
図１３に示すように、優先実行順序決定画面Ｗ７には、ロックコマンドが追加設定された制御コード、及び、ロックコマンドが追加設定されていない制御コードのそれぞれについて、制御プログラムにおける優先実行順序を入力するための入力欄２７が対応させて表示されている。
【００５４】
ここで、制御コードの「優先実行順序」とは、同一のサイクルにおいて、対応する実行条件を満たした際になされる動作設定の優先順序である。すなわち、制御プログラムの実行の際には、記述順に制御コードが実行される。つまり、制御プログラムの１回の実行を考えると、ロックコマンドが設定されていない制御コードについては、該制御コードによる動作設定の内容が、実行順序が後の制御コードによって更新されることになる。このため、ロックコマンドが設定されていない制御コードについては、記述順序とは逆の順に優先実行順序が高くなる。
【００５５】
逆に、ロックコマンドが設定されている制御コードについては、ロックコマンドによって該制御コードにおける動作項目で定められる動作を禁止（ロック）するため、ロックコマンドが設定されている制御コードについては、記述順序の順に実行優先順序が高くなる。
【００５６】
優先実行順序決定画面Ｗ７において、ユーザは、対応する入力欄２７に順序を数字入力することで、制御プログラムにおける制御コードそれぞれの動作設定の優先実行順序を指定することができる。なお、優先実行順序決定画面Ｗ７では、優先実行順序に関係するロックコマンドの有無によるグループ毎に列Ｃ１，Ｃ２に分けて入力欄２７が表示されている。この列Ｃ１，Ｃ２毎に入力欄２７に数字を入力することで、制御コードそれぞれの動作設定の優先実行順序を入力する。
【００５７】
優先実行順序の指定を完了し、指定完了を指示する所定のボタンを選択すると、続いて、図１４に示すプログラム確認画面Ｗ８が表示される。図１４に示すように、プログラム確認画面Ｗ８には、直前の優先順序設定画面において入力した優先順序に従った記述順序で制御コードが記述された制御プログラムが表示される。そして、確定を指示する所定のボタンを選択すると、制御プログラムの作成が終了する。
【００５８】
［構成］
図１５は、プログラム作成装置１００の機能構成を示すブロック図である。プログラム作成装置１００は、機能的には、処理部１１０と、操作入力部１２０と、表示部１３０と、通信部１４０と、データ入出力部１５０と、記憶部２００とを備えたコンピュータシステムとして構成される。
【００５９】
処理部１１０は、例えばＣＰＵ等のプロセッサで実現され、操作入力部１２０から入力されたデータや、記憶部２００に記憶されたプログラムやデータ等に基づいて、プログラム作成装置１００を構成する各部への指示やデータ転送を行い、プログラム作成装置１００の全体制御を行う。
【００６０】
また、処理部１１０は、作成プログラム２１０に従ったプログラム作成処理を行って、センサノード２に実装する制御プログラムを作成する。プログラム作成処理では、先ず、ユーザが制御コードを入力するための制御コード入力画面Ｗ１（図７参照）を、表示部１３０に表示させる。このとき、観測項目テーブル２２０を参照して、制御プログラムの作成対象となるセンサノード２に搭載されているセンサ種別に対応する観測項目を、条件項目の選択肢に含める。
【００６１】
図１６に、観測項目テーブル２２０のデータ構成の一例を示す。図１６によれば、観測項目テーブル２２０は、センサ種別２２１それぞれと、観測項目２２２とを対応付けて格納している。
【００６２】
そして、処理部１１０は、制御コード入力画面Ｗ１におけるユーザの入力指示に従って、仮制御コードを作成する。続いて、これらの仮制御コードのうちから、コンフリクト関係にある仮制御コードの組み合わせを抽出する。そして、抽出した組み合わせ毎に、ロックコマンド及びロック解除コマンドの設定を行う。
【００６３】
具体的には、先ず、対象としている組み合わせの仮制御コードのうちから、ロックコマンドを追加する仮制御コードを選択するための優先コード選択画面Ｗ２（図８参照）を、表示部１３０に表示させる。このとき、対象組み合わせの仮制御コードを選択可能な制御コードとして表示させるとともに、これらがコンフリクト関係にある旨を知らせるメッセージを表示する。この優先コード選択画面Ｗ２におけるユーザによる入力指示に従って、対象組み合わせの仮制御コードのうちから、１又は複数の仮制御コードを選択する。
【００６４】
次いで、選択した仮制御コードそれぞれに、動作設定として、対象組み合わせの制御コードそれぞれに共通な動作項目に対する動作（設定）を禁止するロックコマンドを追加する。そして、選択した仮制御コードにロックコマンドを追加設定したロック設定画面Ｗ３，Ｗ４（図９，図１０参照）を、表示部１３０に表示させる。
【００６５】
ロックコマンドを追加設定した仮制御コードが複数の場合には、続いて、ロックコマンドを追加設定した仮制御コードのうちから、ロック解除コマンドを設定する制御コードを選択するための最優先コード選択画面Ｗ５（図１１参照）を、表示部１３０に表示させる。そして、この最優先コード選択画面Ｗ５におけるユーザの入力指示に従って、１つの仮制御コードを選択する。次いで、選択した仮制御コードに、動作設定として、対象組み合わせの仮制御コードに共通の動作項目に対する動作（設定）の禁止を解除するロック解除コマンドを追加設定する。続いて、選択した仮制御コードにロック解除コマンドを追加設定したロック解除設定画面Ｗ６（図１２参照）を、表示部１３０に表示させる。
【００６６】
このように、コンフリクト関係にあるとして抽出した仮制御コードの組み合わせそれぞれについて、ロックコマンド及びロック解除コマンドの追加設定を行ったならば、続いて、制御プログラムにおける仮制御コードの優先実行順序を設定するための優先実行順序決定画面Ｗ７（図１３参照）を、表示部１３０に表示させる。
【００６７】
そして、この優先実行順序決定画面Ｗ７におけるユーザの入力指示に従って、制御プログラムにおける仮制御コードの記述順を決定する。すなわち、ロックコマンドが設定されていない制御コードについては、入力された実行優先順序と逆の順序を記述順序とし、ロックコマンドが設定されている制御コードについては、入力された実行優先順序を記述順序とする。次いで、仮制御コードを制御コードとして確定し、決定した記述順序で記述して制御プログラムを完成する。
【００６８】
図１５に戻り、操作入力部１２０は、例えばキーボードやマウス、タッチパネル、各種スイッチ等で実現される入力装置であり、操作入力に応じた入力信号を処理部１１０に出力する。
【００６９】
表示部１３０は、例えばＬＣＤ等で実現される表示装置であり、処理部１１０から入力される表示信号に基づく各種画面を表示する。
【００７０】
通信部１４０は、例えば、無線通信モジュールやルータ、モデム、ＴＡ、有線用の通信ケーブルのジャックや制御回路等によって実現される通信装置であり、外部機器との間でデータ通信を行う。
【００７１】
データ入出力部１５０は、例えば有線ケーブルのジャックや制御回路等によって実現される、センサノード２に対するデータの読み取り／書き込み装置であり、センサノード２との間でデータの送受信（例えば、センサ種別の取得や制御プログラム１０の送信）を行って、作成した制御プログラムをセンサノード２に書き込む。
【００７２】
記憶部２００は、処理部１１０がプログラム作成装置１００を統合的に制御するための諸機能を実現するためのシステムプログラムや、本実施形態のプログラム作成処理を実行するためのプログラムやデータ等を記憶しているとともに、処理部１１０の作業領域として用いられ、処理部１１０が各種プログラムに従って実行した演算結果や、操作入力部１２０からの入力信号が一時的に格納される。また、本実施形態では、記憶部２００には、プログラムとして作成プログラム２１０が記憶されるとともに、データとして、観測項目テーブル２２０が記憶される。
【００７３】
［処理の流れ］
図１７は、プログラム作成処理の流れを説明するフローチャートである。図１７によれば、処理部１１０は、先ず、制御プログラムの作成対象となるセンサノード２の種別を特定し（ステップＡ１）、特定したセンサ種別に応じた観測項目を、制御コードにおける条件項目の選択肢に含める（ステップＡ３）。次いで、ユーザが制御コードを入力するための制御コード入力画面Ｗ１を表示させ、この制御コード入力画面Ｗ１におけるユーザの入力指示に従って、仮制御コードを作成する（ステップＡ５）。
【００７４】
続いて、作成した仮制御コードのうちから、コンフリクト関係にある仮制御コードの組み合わせを抽出し（ステップＡ７）、抽出した仮制御コードの組み合わせそれぞれを対象とした繰り返し処理（ループＡ）を行う。
【００７５】
この繰り返し処理では、先ず、対象組み合わせの仮制御コードのうちから、ロックコマンドを設定する仮制御コードを選択するための優先コード選択画面Ｗ２を表示させ、この優先コード選択画面Ｗ２におけるユーザの入力指示に従って、仮制御コードを選択する（ステップＡ９）。そして、選択した仮制御コードに、動作設定として、対象組み合わせの制御コードに共通な動作項目に対する動作（設定）を禁止するロックコマンドを追加設定する（ステップＡ１１）。
【００７６】
続いて、複数の仮制御コードにロックコマンドを追加設定したならば（ステップＡ１３：ＹＥＳ）、これらのロックコマンドを追加設定した仮制御コードのうちから、ロック解除コマンドを設定する仮制御コードを選択するための最優先コード選択画面Ｗ５を表示させる。そして、この最優先コード選択画面Ｗ５におけるユーザの入力指示に従って、１つの仮制御コードを選択する（ステップＡ１５）。そして、選択した仮制御コードに、動作設定として、対象組み合わせの制御コードに共通な動作項目に対する動作（設定）の禁止を解除するロック解除コマンドを追加設定する（ステップＡ１７）。ループＡの処理はこのように行われる。
【００７７】
コンフリクト関係にあるとして抽出した仮制御コードの全ての組み合わせを対象とした繰り返し処理を行うと、続いて、制御プログラムにおける仮制御コードの優先実行順序を決定するための優先実行順序決定画面Ｗ７を表示させる。そして、この優先実行順序決定画面Ｗ７におけるユーザの入力指示に従って、制御プログラムにおける仮制御コードの記述順を決定する（ステップＡ１９）。その後、制御コードとして確定し、制御コードの記述順を決定した決定した記述順として、制御プログラム作成する（ステップＡ２１）。以上の処理を行うと、処理部１１０は、プログラム作成処理を終了する。
【００７８】
［作用・効果］
このように、本実施形態によれば、センサノード２に実装される制御プログラム１０の作成の際に、ユーザの入力指示に従って入力された仮制御コードのうちから、コンフリクト関係にある仮制御コードが抽出され、抽出されたこれらの仮制御コードのうちから、優先させるとして選択された仮制御コードに、コンフリクト関係にある制御コードに共通な動作項目で定められる動作を禁止するロックコマンドが追加設定される。これにより、コンフリクト関係にある制御コードそれぞれの実行条件を同時に満たした際、ロックコマンドが設定された制御コードの動作設定が優先されることになる。ユーザにとってみれば、コンフリクト関係にある制御コードが自動的に抽出・表示されて優先順を設定することができるため、簡単に、意図通りに動作する制御プログラムを作成することができるようになる。
【００７９】
［変形例］
なお、本発明の適用可能な実施形は、上述の実施形態に限定されることなく、本発明の趣旨を逸脱しない範囲で適宜変更可能なのは勿論である。
【００８０】
例えば、上述の実施形態では、コンフリクト関係にある仮制御コードのうち、ユーザによって優先するとして選択された仮制御コードにロックコマンドを追加設定することにしたが、この設定を自動化しても良い。例えば、実行条件に観測項目が含まれる仮制御コードを優先させる制御コードとして自動的に選択し、ロックコマンドを自動的に追加設定する。その後に、ユーザが確認することにしても良い。
【符号の説明】
【００８１】
１  ワイヤレスセンサネットワーク
２  センサノード、３  中継ノード、４  ゲートウェイ、５  管理サーバ
１００  センサノードプログラム作成装置
１１０  処理部、１２０  操作入力部、１３０  表示部
１４０  通信部、１５０  データ入出力部
２００  記憶部
２１０  作成プログラム、２２０  観測項目テーブル
【図１】
0005537474.tif 000002
【図２】
0005537474.tif 000003
【図３】
0005537474.tif 000004
【図４】
0005537474.tif 000005
【図５】
0005537474.tif 000006
【図６】
0005537474.tif 000007
【図７】
0005537474.tif 000008
【図８】
0005537474.tif 000009
【図９】
0005537474.tif 000010
【図１０】
0005537474.tif 000011
【図１１】
0005537474.tif 000012
【図１２】
0005537474.tif 000013
【図１３】
0005537474.tif 000014
【図１４】
0005537474.tif 000015
【図１５】
0005537474.tif 000016
【図１６】
0005537474.tif 000017
【図１７】
0005537474.tif 000018