(57)【特許請求の範囲】
【請求項１】
設備機器と、
当該設備機器の動作を制御する制御部、前記制御部が使用するデータを格納する記憶部、前記記憶部が格納しているデータにアクセスするとともにそのデータの使用状態フラグを管理するデータアクセス部、及び、前記設備機器に対する管理命令の送信またはその応答の受信を行う通信部を有する設備管理装置と、
を備え、
前記記憶部は、前記設備機器の管理データおよびその管理データの使用間隔を定義した間隔管理テーブルを格納し、
前記制御部は、
前記記憶部が格納する管理データに対する読み取りまたは書き込みを要求する複数の制御プロセスを非同期に実行し、
前記間隔管理テーブルは、前記制御プロセス毎に前記使用間隔を保持し、
前記制御部は、
前記間隔管理テーブルに定義され、同一の前記管理データを参照する複数の制御プロセスに対応する前記使用間隔を、前記データアクセス部を介して参照し、
当該使用間隔の最大公約数を算出し、
前記複数の制御プロセスがそれぞれ対応する前記使用間隔によって前記管理命令を送信する単位時間あたりの通信回数と、前記最大公約数を使用間隔として前記複数の制御プロセスが共通に当該使用間隔によって前記管理命令を送信する単位時間あたりの通信回数とを比較して、小さい方の前記通信回数に対応する使用間隔を新たな使用間隔とし、
前記制御プロセスは、
前記新たな使用間隔で前記通信部を介して前記設備機器に対する前記管理命令の送信を行い、
その管理命令に対する前記設備機器からの応答に基づき前記記憶部に前記データアクセス部を介してその設備機器の管理データを格納し、
前記データアクセス部は、
前記制御プロセスからの前記管理データの読取要求または書込要求を受け付け、
当該管理データの使用状態フラグが使用不可状態であれば、
当該管理データにアクセスできない旨を当該制御プロセスに返却し、
当該管理データの使用状態フラグが使用可能状態であれば、
使用状態フラグを使用不可状態にセットしてその管理データにアクセスし、当該管理データの読み取りまたは書き込みが終了すると、当該管理データの使用状態フラグを使用可能状態にセットして、当該管理データの読み取りまたは書き込みの結果を当該制御プロセスに返却する
ことを特徴とする設備機器ネットワークシステム。
【請求項２】
前記データアクセス部は、
前記使用状態フラグを使用不可状態にセットする際には、
当該データに対する読み取りまたは書き込みの結果の返却先である前記制御プロセスの識別ＩＤをその使用状態フラグの値としてセットする
ことを特徴とする請求項１に記載の設備機器ネットワークシステム。
【請求項３】
前記データアクセス部は、
前記使用状態フラグに対し複数の制御プロセスから同時にアクセス要求があった際は、
１の制御プロセスのみその使用状態フラグに対するアクセスを許可し、
先の制御プロセスがその使用状態フラグへのアクセスを終了するまで他の制御プロセスを待機させる
ことを特徴とする請求項１または請求項２に記載の設備機器ネットワークシステム。
【請求項４】
前記設備管理装置は、前記記憶部が格納するデータに対するアクセス状況ログを生成するログ生成部を備え、
前記ログ生成部は、
前記記憶部が格納するデータに対する前記制御プロセスからの読み取りまたは書き込みの要求が競合した際に、
その競合状況を表すアクセス状況ログを生成する
ことを特徴とする請求項１ないし請求項３のいずれかに記載の設備機器ネットワークシステム。
【請求項５】
前記制御部は、
前記ログ生成部が生成するアクセス状況ログの生成条件または書式の指定を受け付け、
その生成条件または書式を定義するログ定義データを前記記憶部に格納し、
前記ログ生成部は、
前記アクセス状況ログを生成する際に、
前記ログ定義データを参照してその生成条件または書式に基づき前記アクセス状況ログを生成する
ことを特徴とする請求項４に記載の設備機器ネットワークシステム。
【請求項６】
前記設備管理装置は、画面表示を行う表示部を備え、
前記制御部は、
前記ログ生成部が生成した前記アクセス状況ログを取得し、
その内容を前記表示部に画面表示させる
ことを特徴とする請求項４または請求項５に記載の設備機器ネットワークシステム。
【請求項７】
前記設備管理装置は、前記制御部が実行する前記制御プロセスに対し、前記記憶部が格納するデータに対する読み取りまたは書き込みの要求が競合した旨を通知する競合状況通知部を備え、
前記競合状況通知部は、
前記ログ生成部が生成した前記アクセス状況ログを取得し、
そのアクセス状況ログに基づき前記通知を行う
ことを特徴とする請求項４または請求項５に記載の設備機器ネットワークシステム。
【請求項８】
前記設備管理装置は、前記ログ生成部が生成した前記アクセス状況ログを当該設備管理装置の外部に出力するログ出力部を備えた
ことを特徴とする請求項４または請求項５に記載の設備機器ネットワークシステム。
【請求項９】
前記データアクセス部は、
前記制御プロセスから受け付けたデータ読取要求または書込要求が競合した際は、
要求元の前記制御プロセスにその競合状況を通知する
ことを特徴とする請求項１ないし請求項３のいずれかに記載の設備機器ネットワークシステム。
【請求項１０】
設備機器の動作を管理する設備管理装置のデータアクセスを制御する方法であって、
当該設備管理装置が備える記憶部が格納する前記設備機器の管理データに対して読み取りまたは書き込みを要求する複数の制御プロセスを非同期に実行するステップと、
前記記憶部が格納している前記管理データにアクセスするとともに当該管理データの使用状態フラグを管理するデータアクセスステップと、
前記記憶部に格納され、前記設備機器の前記管理データおよび前記制御プロセス毎に当該管理データの使用間隔を定義した間隔管理テーブルから、同一の前記管理データを参照する複数の制御プロセスに対応する前記使用間隔を参照し、当該使用間隔の最大公約数を参照し、前記複数の制御プロセスがそれぞれ対応する前記使用間隔によって前記設備機器に対する管理命令を送信する単位時間あたりの通信回数と、前記最大公約数を使用間隔として前記複数の制御プロセスが共通に当該使用間隔によって前記管理命令を送信する単位時間あたりの通信回数とを比較して、小さい方の前記通信回数に対応する使用間隔を新たな使用間隔とする間隔取得ステップと、
前記新たな使用間隔で前記設備機器に対する管理命令を送信する通信ステップと、
その管理命令に対する前記設備機器からの応答に基づき前記記憶部にその設備機器の管理データを格納するステップと、
を有し、
前記データアクセスステップはさらに、
前記制御プロセスからの前記管理データの読取要求または書込要求を受け付けるステップと、
当該管理データの使用状態フラグの状態を判定するステップと、
を有し、
前記データアクセスステップにおいて、
当該管理データの使用状態フラグが使用不可状態であれば、
当該管理データにアクセスできない旨を当該制御プロセスに返却し、
当該管理データの使用状態フラグが使用可能状態であれば、
使用状態フラグを使用不可状態にセットしてその管理データにアクセスし、当該管理データの読み取りまたは書き込みが終了すると、当該管理データの使用状態フラグを使用可能状態にセットして、当該管理データの読み取りまたは書き込みの結果を当該制御プロセスに返却する
ことを特徴とするデータアクセス制御方法。
【請求項１１】
前記データアクセスステップにおいて、
前記使用状態フラグを使用不可状態にセットする際には、
当該データに対する読み取りまたは書き込みの結果の返却先である前記制御プロセスの識別ＩＤをその使用状態フラグの値としてセットする
ことを特徴とする請求項１０に記載のデータアクセス制御方法。
【請求項１２】
前記使用状態フラグに対し複数の制御プロセスから同時にアクセス要求があった際は、
前記データアクセスステップにおいて、
１の制御プロセスのみその使用状態フラグに対するアクセスを許可し、
先の制御プロセスがその使用状態フラグへのアクセスを終了するまで他の制御プロセスを待機させる
ことを特徴とする請求項１０または請求項１１に記載のデータアクセス制御方法。
【請求項１３】
前記記憶部が格納するデータに対するアクセス状況ログを生成するログ生成ステップを有し、
前記ログ生成ステップにおいて、
前記記憶部が格納するデータに対する前記制御プロセスからの読み取りまたは書き込みの要求が競合した際に、
その競合状況を表すアクセス状況ログを生成する
ことを特徴とする請求項１０ないし請求項１２のいずれかに記載のデータアクセス制御方法。
【請求項１４】
前記ログ生成ステップにおいて生成されるアクセス状況ログの生成条件または書式の指定を受け付け、その生成条件または書式を定義するログ定義データを前記記憶部に格納する格納ステップを有し、
前記ログ生成ステップにおいて、
前記アクセス状況ログを生成する際に、
前記格納ステップにおいて前記記憶部に格納された前記ログ定義データを参照してその生成条件または書式に基づき前記アクセス状況ログを生成する
ことを特徴とする請求項１３に記載のデータアクセス制御方法。
【請求項１５】
前記ログ生成ステップで生成した前記アクセス状況ログを取得し、
当該設備管理装置に設けられ、画面表示を行う表示部に前記アクセス状況ログの内容を画面表示させる表示ステップを有した
ことを特徴とする請求項１３または請求項１４に記載のデータアクセス制御方法。
【請求項１６】
前記制御プロセスに対し、前記記憶部が格納するデータに対する読み取りまたは書き込みの要求が競合した旨を通知する競合状況通知ステップを有し、
前記競合状況通知ステップにおいて、
前記ログ生成ステップで生成した前記アクセス状況ログを取得し、
そのアクセス状況ログに基づき前記通知を行う
ことを特徴とする請求項１３または請求項１４に記載のデータアクセス制御方法。
【請求項１７】
前記ログ生成ステップで生成した前記アクセス状況ログを当該設備管理装置の外部に出力するステップを有する
ことを特徴とする請求項１３または請求項１４に記載のデータアクセス制御方法。
【請求項１８】
前記データアクセスステップにおいて、
前記制御プロセスから受け付けたデータ読取要求または書込要求が競合した際は、
要求元の前記制御プロセスにその競合状況を通知する
ことを特徴とする請求項１０ないし請求項１２のいずれかに記載のデータアクセス制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、設備機器の動作を管理する設備管理装置を有する設備機器ネットワークシステム、および、設備管理装置のデータアクセス制御方法に関するものである。
【背景技術】
【０００２】
従来、『データの処理を通信系で結合された各システム内で原本及びコピーに対して個別に行う場合におけるデータの不一致及び参照更新衝突の発生を防止する。』ことを目的とした技術として、『アプリケーション実行部１６で実行されるクライアント１上のアプリケーションからの更新要求をクライアントスプール１３に一時保存する。クライアント１とサーバ２との接続を待って、サーバスプール２３に、アプリケーションからの更新要求を転送保存する。サーバ制御部２１は、更新要求に他の参照要求と衝突がないかを調べる。衝突がない場合には、原本格納部２２のデータ原本及びキャッシュ１２内のデータを要求にしたがって更新する。衝突があった場合には、データ更新を行わない。そして、衝突の有無を参照要求者へ通知し、更新要求者に対して更新結果を通知する。』というものが提案されている（特許文献１）。
【０００３】
また、『障害時のデータを採取して障害原因を解析し、障害を早期に復旧させる』ことを目的とした技術として、プログラムの実行所用時間と処理完了状態とを一定時間毎にチェックし，各プログラムが所定時間内に終了していない場合あるいは実行終了時に全処理が完了していない場合に異常と判定し、その時点で主メモリの内容を保存することによって障害原因の解析に必要な情報を得るソフトウェア障害検出方法が提案されている（特許文献２）。
【０００４】
【特許文献１】特開平１０−１３３９２８号公報（要約）
【特許文献２】特開平２−２０７３４７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
設備機器の動作を管理する設備管理装置上では、記憶部が格納するデータに対する読み取りまたは書き込みを要求する複数の制御プロセスが、非同期に実行される場合がある。
このような非同期のデータアクセスは、設備機器に対する管理命令や状態取得命令などを行うアプリケーションの処理が、設備管理装置上で個別に実行されることが一因となっている。
【０００６】
複数の制御プロセスが個別にデータに対する読み取りまたは書き込みを要求すると、そのタイミングによってはデータアクセスが競合し、アクセスしたデータが破壊されてしまう可能性がある。
しかし、このようなデータアクセスの競合に起因する不具合は、設備管理装置出荷前の試験で明らかになる場合もあるが、出荷前の試験ではそのような問題を発見することができず、出荷後に設置現場で運用を開始した後に発生することもある。
【０００７】
従来の設備管理装置では、上述のようなデータアクセスの競合に起因する不具合の原因を開発者が簡単にトレースできるような仕組みがなく、そのため、不具合発生時の原因解析に多大な工数が必要となるという課題があった。
【０００８】
本発明は、上記のような課題を解決するためになされたものであり、データアクセスの競合に起因する不具合を低減し、通信トラフィックを緩和して安定動作が可能な設備機器ネットワークシステムおよびデータアクセス制御方法を提供することを目的とする。
【課題を解決するための手段】
【０００９】
本発明に係る設備機器ネットワークシステムは、設備機器と、当該設備機器の動作を制御する制御部、前記制御部が使用するデータを格納する記憶部、前記記憶部が格納しているデータにアクセスするとともにそのデータの使用状態フラグを管理するデータアクセス部、及び、前記設備機器に対する管理命令の送信またはその応答の受信を行う通信部を有する設備管理装置と、を備え、前記記憶部は、前記設備機器の管理データおよびその管理データの使用間隔を定義した間隔管理テーブルを格納し、前記制御部は、前記記憶部が格納する管理データに対する読み取りまたは書き込みを要求する複数の制御プロセスを非同期に実行し、前記間隔管理テーブルは、前記制御プロセス毎に前記使用間隔を保持し、前記制御部は、前記間隔管理テーブルに定義され、同一の前記管理データを参照する複数の制御プロセスに対応する前記使用間隔を、前記データアクセス部を介して参照し、当該使用間隔の最大公約数を算出し、前記複数の制御プロセスがそれぞれ対応する前記使用間隔によって前記管理命令を送信する単位時間あたりの通信回数と、前記最大公約数を使用間隔として前記複数の制御プロセスが共通に当該使用間隔によって前記管理命令を送信する単位時間あたりの通信回数とを比較して、小さい方の前記通信回数に対応する使用間隔を新たな使用間隔とし、前記制御プロセスは、前記新たな使用間隔で前記通信部を介して前記設備機器に対する前記管理命令の送信を行い、その管理命令に対する前記設備機器からの応答に基づき前記記憶部に前記データアクセス部を介してその設備機器の管理データを格納し、前記データアクセス部は、前記制御プロセスからの前記管理データの読取要求または書込要求を受け付け、当該管理データの使用状態フラグが使用不可状態であれば、当該管理データにアクセスできない旨を当該制御プロセスに返却し、当該管理データの使用状態フラグが使用可能状態であれば、使用状態フラグを使用不可状態にセットしてその管理データにアクセスし、当該管理データの読み取りまたは書き込みが終了すると、当該管理データの使用状態フラグを使用可能状態にセットして、当該管理データの読み取りまたは書き込みの結果を当該制御プロセスに返却するものである。
【発明の効果】
【００１０】
本発明に係る設備機器ネットワークシステムによれば、使用状態フラグを用いてデータアクセスを制御することにより、複数の制御プロセスが同一のデータに対して同時に読み取りまたは書き込みを行うことがなくなるので、データアクセスの競合に起因する不具合を低減することができる。
【発明を実施するための最良の形態】
【００１１】
実施の形態１．
図１は、本発明の実施の形態１に係る設備機器ネットワークシステムの構成図である。
図１において、１００は設備管理装置、２００ａは照明器、２００ｂは空調機、３００は監視装置、４００はネットワークである。
設備管理装置１００は、照明器２００ａと空調機２００ｂの動作を管理する。以後、照明器２００ａと空調機２００ｂを総称するときは、設備機器２００とする。
監視装置３００は、ネットワーク４００を介して設備管理装置１００に接続され、設備機器２００に対する管理命令の発行を、設備管理装置１００に依頼する。設備管理装置１００は、その依頼を受けて設備機器２００に管理命令を発行し、その結果を監視装置３００に送信する。
ネットワーク４００は、例えばＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）などの通信ネットワークである。
【００１２】
設備管理装置１００は、通信部１１０、制御部１２０、データアクセス部１３０、記憶部１４０を備える。
【００１３】
通信部１１０は、設備機器２００と接続可能なインターフェースを備え、制御部１２０の指示に基づき、設備機器２００に対して管理命令を発行する。ここでいう管理命令とは、例えば動作指示命令や、機器状態を取得する命令のことである。
また、通信部１１０は、ネットワーク３００と接続可能なインターフェースも備え、監視装置３００との間で通信を行う。
これら２つのインターフェースを個別に構成してもよい。
【００１４】
制御部１２０は、設備管理装置１００の全体動作を制御するものであり、後述の図２で説明する複数の制御プロセスを非同期で並列的に実行する。
ここでいう制御プロセスとは、制御部１２０の動作を規定するプログラム等の機能要素のことであり、制御部１２０の配下で実行される。この制御プロセスは、記憶部１４０が格納しているデータに対するアクセスを、データアクセス部１３０に要求する。
【００１５】
データアクセス部１３０は、制御部１２０が実行する制御プロセスからのデータ読取要求またはデータ書込要求を受け付け、既定のデータ粒度（データ管理単位）毎にアクセス制御を行ってアクセス競合が生じないように管理しながら、記憶部１４０が格納しているデータにアクセスする。アクセス制御の詳細は、後述の図２〜図４で説明する。
データアクセス部１３０が、記憶部１４０に格納されているデータを読み取り、または書き込んだ結果は、データ読取要求またはデータ書込要求を発行した制御プロセスに返される。
【００１６】
記憶部１４０は、制御部１２０が実行する制御プロセスが、データアクセス部１３０を介して読み取り、または書き込みを行う管理データを格納している。ここでいう管理データとは、設備機器２００の動作状態などを表すデータのことである。
例えば、空調機２００ｂの現時点での設定温度が記憶部１４０に格納されており、制御プロセスは、この値を読み取ることで、空調機２００ｂの設定温度を取得することができる。
制御プロセスは、空調機２００ｂの設定温度を変更するときは、通信部１１０を介して設定温度を変更すべき旨の管理命令を発行し、その結果を受信して、更新後の設定温度の値を記憶部１４０に書き込む。
【００１７】
制御部１２０とデータアクセス部１３０は、これらの機能を実現する回路デバイスのようなハードウェアで実現することもできるし、ＣＰＵやマイコンのような演算装置とその動作を規定する制御プログラムで実現することもできる。
ハードウェアで構成した場合、先に述べた制御プロセスとは、ハードウェアの機能で実現される制御動作のことを指す。演算装置とソフトウェアで実現した場合、先に述べた制御プロセスとは、演算装置上で実行される制御プログラムの制御動作のことを指す。
制御部１２０とデータアクセス部１３０は、図１に示すように分離して構成してもよいし、両者を一体的に構成してもよい。
【００１８】
なお、図１に示す構成では、通信部１１０と設備機器２００を直接接続しているが、設備機器２００がネットワーク４００とのインターフェースを備えるのであれば、ネットワーク４００を介して設備管理装置１００と設備機器２００を接続してもよい。
いずれの構成を採用するかは、各機器のインターフェース仕様に準じて適宜定める。
【００１９】
以上、図１の設備機器ネットワークを構成する各機器と、設備管理装置１００の構成、および設備機器２００に対する管理命令の発行に係る概略動作について説明した。
次に、設備管理装置１００上で実行される制御プロセスのデータアクセス制御について説明する。
【００２０】
図２は、データアクセスの競合により、記憶部１４０が格納しているデータに不具合が発生する例を説明するものである。ここでは、制御部１２０が２つの制御プロセス１２０Ａおよび１２０Ｂを非同期に並列実行しているものとする。
制御プロセス１２０Ａは、記憶部１４０が格納しているある管理データの値に３０を加算して更新しようとしている。
制御プロセス１２０Ｂは、制御プロセス１２０Ａが更新しようとしている同じ管理データの値から６０を減算して更新しようとしている。
以下、図２に示す各制御プロセスの処理ステップについて説明する。
【００２１】
（０）記憶部１４０が格納している管理データは、初期値として「１００」がセットされている。
（１）制御プロセス１２０Ａは、管理データの初期値「１００」を取得する。
（２）制御プロセス１２０Ｂは、管理データの初期値「１００」を取得する。
（３）制御プロセス１２０Ａは、取得した管理データの値に３０を加算する。
（４）制御プロセス１２０Ｂは、取得した管理データの値から６０を減算する。
【００２２】
（５）制御プロセス１２０Ａは、加算後の値「１３０」を記憶部１４０に書き込む。
（６）記憶部１４０には、加算後の値「１３０」が格納される。
（７）制御プロセス１２０Ｂは、減算後の値「４０」を記憶部１４０に書き込む。
（８）記憶部１４０には、減算後の値「４０」が格納される。
【００２３】
本来であれば、初期値「１００」に３０を加算して６０を減算すると、記憶部１４０に格納される最終的な値は「７０」になるはずであるが、制御プロセス１２０Ａと１２０Ｂがそれぞれ独自に値を更新すると、図２のように不整合が生じることになる。
特に、設備管理装置１００では、管理対象の設備機器ごとに、管理データの参照周期や更新周期が異なる場合があり、同一の管理データに対して図２のような非同期更新が生じやすい。
そこで、本実施の形態１に係る設備管理装置１００は、制御プロセスが読み取りまたは書き込みを行う管理データに対するアクセスを、データアクセス部１３０が一括して管理し、図２のようなアクセス競合による不整合が生じないようにする。
【００２４】
以上、図２を用いて、設備管理装置１００でデータアクセスの競合が生じることによる不具合について説明した。
次に、データアクセス部１３０の具体的なデータアクセス制御の手法を説明する。
【００２５】
図３は、制御プロセス１２０Ａが、記憶部１４０に格納されている管理データにアクセスする際の処理フローである。
データアクセス部１３０は、図３中で説明する使用状態フラグを、記憶部１４０または図示しないメモリ中に格納して管理しており、同フラグを用いてアクセス制御を行う。
以下、各ステップについて説明する。
【００２６】
（Ｓ３００）
制御部１２０は、制御プロセス１２０Ａを起動する。以下、制御プロセス１２０Ａは制御部１２０の配下で実行される。制御プロセス１２０Ａは、記憶部１４０に格納されている管理データにアクセスするものである。
以後のステップで、制御プロセス１２０Ａが実行する処理は、実体的には制御部１２０が実行するものである。
（Ｓ３０１）
制御プロセス１２０Ａは、データアクセス部１３０に対して管理データへのアクセス要求を発行する。ここでのアクセス要求は、読み取り要求でも書き込み要求でもよい。
【００２７】
（Ｓ３０２）
データアクセス部１３０は、アクセス要求を受けた管理データの使用状態フラグに対するアクセス権の取得を試みる。使用状態フラグは、管理データ毎に設定されている。
本ステップは、使用状態フラグそのもののアクセス競合を防ぐための手続きで、例えば設備管理装置１００のＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）が有するセマフォなどの機能により、使用状態フラグのアクセス競合を防ぐ。セマフォの機能と、使用状態フラグを用いてアクセス制御を行う理由については、後述の図５で説明する。
【００２８】
（Ｓ３０３）
使用状態フラグへのアクセス権が取得できた場合はステップＳ３０４へ進み、取得できなかった場合はステップＳ３０５へ進む。
（Ｓ３０４）
データアクセス部１３０は、当該管理データの使用状態フラグの値を読み出す。
（Ｓ３０５）
使用状態フラグへのアクセス権が取得できないときは、他の制御プロセスが当該管理データの使用状態フラグへのアクセスを行なっている状態であるため、管理データそのものへのアクセスも不可である状態とみなし、データアクセス部１３０は、その旨を制御プロセス１２０Ａに返して処理を終了する。
【００２９】
（Ｓ３０６）
データアクセス部１３０は、ステップＳ３０４で取得した使用状態フラグの値が負であるか否かを判定する。負であればステップＳ３０７へ進み、負でなければステップＳ３１０へ進む。
なお、使用状態フラグには、当該管理データが使用可能状態の場合には負値、管理データが使用不可状態の場合には使用している制御プロセスのＩＤ（正値）がセットされるものとする。
すなわち、使用状態フラグが正値の場合、当該管理データが現在どのアプリケーションに使用されているのかが、使用状態フラグの値（＝制御プロセスのＩＤ）によって分かるようになっている。
【００３０】
（Ｓ３０７）
使用状態フラグの値が負の場合は、当該管理データを他の制御プロセスが使用しておらず、制御プロセス１２０Ａが使用可能であることが分かる。
データアクセス部１３０は、当該管理データに制御プロセス１２０Ａがアクセス中であることを他の制御プロセスが検知できるようにするために、当該管理データの使用状態フラグの値として、制御プロセス１２０ＡのＩＤ（正値）をセットする。
このようにしておくことで、制御プロセス１２０Ａが当該管理データを使用している最中に他の制御プロセスが同管理データにアクセスしようとした際、使用状態フラグにセットされたＩＤから、管理データは「制御プロセス１２０Ａによって使用中」であることが検知可能となる。
【００３１】
（Ｓ３０８）
データアクセス部１３０は、使用状態フラグへのアクセス権を返却する。
使用状態フラグへのアクセスは、即座に他の制御プロセスに解放して他の制御プロセスから管理データの使用状態を確認できるようにする必要があるため、本ステップはステップＳ３０７に続いて直ちに実行される。
（Ｓ３０９）
制御プロセス１２０Ａは、当該管理データへのアクセス権を得る。以後、データアクセス部１３０は、当該管理データにアクセスし、制御プロセス１２０Ａにその結果を返す。
管理データの読み書きは、データアクセス部１３０が行ってもよいし、制御プロセス１２０Ａが直接行ってもよい。
【００３２】
（Ｓ３１０）
データアクセス部１３０は、ステップＳ３０４で取得した使用状態フラグの値と、制御プロセス１２０ＡのＩＤとを比較する。
両者が一致すれば、制御プロセス１２０Ａ自身がその管理データを使用中であることが分かるので、ステップＳ３０８へ進み、そのまま当該管理データを使い続けることができる。一致しなければステップＳ３１１へ進む。
【００３３】
（Ｓ３１１）
データアクセス部１３０は、使用状態フラグへのアクセス権を直ちに返却する。
ステップＳ３０８と同様に、使用状態フラグへのアクセスは即座に他の制御プロセスに解放する必要があることによる。
（Ｓ３１２）
使用状態フラグの値と、制御プロセス１２０ＡのＩＤとが一致しないときは、当該管理データは現在の使用状態フラグの値で示されるＩＤを持つ制御プロセスによって使用中であるため、データアクセス部１３０は、当該管理データにアクセス不可である旨を制御プロセス１２０Ａに返して処理を終了する。
【００３４】
図４は、制御プロセス１２０Ａが、図３の処理フローで管理データへのアクセスを許可された後、記憶部１４０に格納されている管理データへのアクセスを終了しようとする際の処理フローである。以下、各ステップについて説明する。
【００３５】
（Ｓ４００）
制御プロセス１２０Ａは、管理データの読み取りまたは書き込みを終了しようとする際に、本処理フローを開始する。
（Ｓ４０１）
制御プロセス１２０Ａは、データアクセス部１３０に対して管理データへのアクセス権解放を要求する。
（Ｓ４０２）
データアクセス部１３０は、当該管理データの使用状態フラグへのアクセス権取得を試みる。
本ステップは、ステップＳ３０２と同様、使用状態フラグそのもののアクセス競合を防ぐための手続きで、例えばＯＳが有するセマフォなどの機能により、使用状態フラグのアクセス競合を防ぐのも同様である。
【００３６】
（Ｓ４０３）
使用状態フラグへのアクセス権が取得できた場合はステップＳ４０４へ進み、取得できなかった場合はステップＳ４０５へ進む。
（Ｓ４０４）
データアクセス部１３０は、当該管理データの使用状態フラグの値を読み出す。
（Ｓ４０５）
使用状態フラグへのアクセス権が取得できないときは、他の制御プロセスが使用状態フラグへのアクセスを行なって当該管理データへのアクセス可否について調べている状態であるため、管理データのアクセス権解放も不可である状態とみなす。
データアクセス部１３０は、アクセス権解放失敗（使用状態フラグへのアクセス失敗）の旨を制御プロセス１２０Ａに返して処理を終了する。
【００３７】
（Ｓ４０６）
データアクセス部１３０は、ステップＳ４０４で取得した使用状態フラグの値と、制御プロセス１２０ＡのＩＤとを比較する。
両者が一致すればステップＳ４０７へ進み、アクセス権を解放する。一致しなければステップＳ４１０へ進む。
（Ｓ４０７）
データアクセス部１３０は、他の制御プロセスからの当該管理データに対するアクセス要求に応えられるように、使用状態フラグを、未使用状態を表す負値にセットする。
【００３８】
（Ｓ４０８）
データアクセス部１３０は、使用状態フラグへのアクセス権を返却する。
このようにしておくことで、データアクセス部１３０は、当該管理データに対する他の制御プロセスからのアクセス要求に応えられるようになる。
（Ｓ４０９）
使用状態フラグの値が制御プロセス１２０ＡのＩＤと一致した場合、制御プロセス１２０Ａ自身がその管理データを使用中であることが分かるので、そのアクセス権解放が認められ、アクセス権解放成功の旨が制御プロセス１２０Ａに返される。
【００３９】
（Ｓ４１０）
データアクセス部１３０は、使用状態フラグへのアクセス権を直ちに返却する。
ステップＳ３０８やＳ４０８と同様に、使用状態フラグへのアクセスは即座に他の制御プロセスに解放する必要があることによる。
（Ｓ４１１）
制御プロセス１２０ＡのＩＤと使用状態フラグの値が一致しないときは、制御プロセス１２０Ａが当該管理データを使用しているのではないため、アクセス権の解放は許可されない。
データアクセス部１３０は、アクセス権解放失敗（ＩＤ不一致）の旨を制御プロセス１２０Ａに返して処理を終了する。
【００４０】
以上、データアクセス部１３０が、使用状態フラグを用いて管理データに対するデータアクセス制御を行う手順を説明した。
次に、図３〜図４の説明中で用いているセマフォの機能と、管理データに対する直接的なアクセス制御ではなく使用状態フラグを介してアクセス制御を行うことに関し、以下に補足説明する。
【００４１】
図５は、設備管理装置１００が備えるセマフォの機能を説明するものである。
本実施の形態１では、設備管理装置１００のＯＳが備えるセマフォ等の機能を使用して、使用状態フラグのアクセス制御を行う。セマフォ以外の機能を用いて使用状態フラグのアクセス制御を行ってもよい。ここでは１例としてセマフォを取り上げ、その機能を説明する。
なお、図５では、図２と同様に制御プロセス１２０Ａと１２０Ｂが存在し、セマフォが管理する使用状態フラグへのアクセス権取得を、図３のＳ３０２や図４のＳ４０２などで試みているものと仮定する。以下、図５の各ステップについて説明する。
【００４２】
（０）セマフォは、割り当て可能な個数を管理する計数ボックスのような役割を果たす。ここでは、制御プロセス１２０Ａと１２０Ｂがアクセス権取得を試みようとしている使用状態フラグの個数を管理する。
初期状態では、いずれの制御プロセスも使用状態フラグのアクセス権を取得していないため、セマフォの初期値は「１」である。
【００４３】
（１）制御プロセス１２０Ａは、使用状態フラグのアクセス権取得を試みる。その旨がセマフォに通知される。
（２）制御プロセス１２０Ａは、使用状態フラグのアクセス権を取得する。
（３）制御プロセス１２０Ａが使用状態フラグのアクセス権を取得することにより、割り当て可能なアクセス権はなくなるので、セマフォの値は「０」に更新される。
【００４４】
（４）制御プロセス１２０Ｂは、使用状態フラグのアクセス権取得を試みる。その旨がセマフォに通知される。
（５）セマフォの値が「０」であるため、その使用状態フラグにアクセスすることはできないことが分かる。使用状態フラグにアクセスできない旨が、制御プロセス１２０Ｂに返却される。本ステップは、図３のＳ３０５や図４のＳ４０５に相当する。
（６）制御プロセス１２０Ｂは、制御プロセス１２０Ａが使用状態フラグのアクセス権を解放するまで、待機状態となる。もっとも、使用状態フラグのアクセス権は即座に解放されるため、待機時間はわずかである。
【００４５】
（７）制御プロセス１２０Ａは、使用状態フラグのアクセス権を解放する。
（８）制御プロセス１２０Ａがアクセス権を解放することにより、使用状態フラグのアクセス権を割り当て可能となるので、セマフォの値は「１」に更新される。
（９）制御プロセス１２０Ｂは、使用状態フラグのアクセス権取得が可能となる。
【００４６】
以上、セマフォの機能について説明した。
一般にセマフォは、データの読み書きアクセスの瞬間に記憶部１４０の排他アクセス制御を行うといった、ＯＳレベルもしくはこれに近い階層で行われる処理の排他制御に用いられることが多い。
したがって、セマフォを用いた排他制御は、瞬時的なアクセス制御に比較的向いていると言える。
【００４７】
一方、設備管理装置１００のデータアクセス制御においては、ＯＳレベルよりも上位階層の、例えばアプリケーションレベルの排他制御を行いたい場合もある。
ここでいうアプリケーションレベルの排他制御とは、あるアプリケーションが開始してから終了するまでの間や、あるアプリケーション内の特定の処理区間の間、そのアプリケーションが使用するデータを独占使用するような場合に、他のアプリケーションからそのデータに対するアクセスを排除することである。
例えば、ある監視アプリケーションが起動している際は、他のアプリケーションによる同じデータの更新を禁止する、といった場合が考えられる。
【００４８】
このような、アプリケーションレベルのアクセス制御を行う場合、その排他制御の基準となる仕組みも、同様にアプリケーションレベルであることが好ましい。
そこで、本実施の形態１に係る設備管理装置１００では、使用状態フラグなるアプリケーションレベルのフラグを用いて、データアクセス制御を行うのである。
もっとも、使用状態フラグ自体のアクセス制御も必要であるので、そのアクセス制御には、例えばＯＳレベルのセマフォを用いることとした。
【００４９】
なお、上記の説明において、「アプリケーション」と「制御プロセス」は、概ね同義に用いていることを付言しておく。
【００５０】
以上の説明では、データへのアクセスとしてデータの読み込み、書き込みの区別なく、双方同様に扱う場合を一例として述べたが、例えば書き込みが発生する場合のみ本実施の形態１で述べた例のように競合を管理し、読み込みのみの場合は複数のアプリケーションから同時に行なえるようにする、などとしてもよい。
【００５１】
また、ここまでデータへのアクセスの競合を制御することについて述べたが、これをアプリケーションによる制御の競合と置き換えて考えてもよい。
例えば、空調機２００ｂの省エネ制御ではある機器を停止しておきたいが、快適制御では運転しておきたい、といった場合が考えられる。このような場合の競合の管理にも本発明は適用可能である。
【００５２】
以上のように、本実施の形態１では、各制御プロセスがデータへのアクセスの開始および終了に際し、図３〜図４の手続きを踏むようにすることによって、データアクセスの競合を容易に検知することが可能となる。
これにより、ソフトウェア実行時におけるデータアクセスの競合に起因する問題点の抽出が容易となって、不具合解析のための工数を削減し、不具合対応力強化を行なうことができる。
【００５３】
また、本実施の形態１では、データのアクセス権管理について、ＯＳ資源を用いた管理のみではなく、使用状態フラグというアプリケーションレベルの管理単位を持たせたことにより、あるデータに対するアプリケーションからのアクセス権の取得が、読み込みの瞬間、書き込みの瞬間といったＯＳレベルのプリミティブなもののみではなく、「あるアプリケーション機能を実現している間」等、一定の処理を行なうのに必要となる時間区間連続で可能となる。
このため、機能単位での競合管理が可能となるなど、競合管理の自由度が増し、適用可能範囲が広まるため、ソフトウェア実行時の問題点の抽出がより容易になり、不具合対応力強化に役立つ。
【００５４】
実施の形態２．
実施の形態１では、使用状態フラグを用いてデータアクセス制御を行う構成と動作例について説明した。
本発明の実施の形態２では、複数の制御プロセスによるデータアクセスの競合が発生した際に、データアクセス状況のログを生成し、後の不具合解析に役立てるための構成と動作例を説明する。
【００５５】
図６は、本実施の形態２に係る設備管理装置１００の機能ブロック図である。
本実施の形態２に係る設備管理装置１００は、実施の形態１の図１で説明した構成に加えて、新たにログ生成部１５０を備える。その他の構成は、実施の形態１と同様であるため、説明を省略する。
【００５６】
本実施の形態２において、データアクセス部１３０は、データアクセスの競合が発生すると、そのときのアクセス状況をログ生成部１５０に通知する。
ログ生成部１５０は、その通知を受けて、所定の書式に従ってログを生成する。生成したログは、記憶部１４０に格納してもよいし、図示しないメモリなどに保持しておいてもよい。
【００５７】
ログ生成部１５０は、その機能を実現する回路デバイスのようなハードウェアで実現することもできるし、ＣＰＵやマイコンのような演算装置とその動作を規定する制御プログラムで実現することもできる。
また、制御部１２０やデータアクセス部１３０と一体的に構成することもできる。
【００５８】
ログ生成部１５０は、例えば以下の（１）〜（３）のような内容を、既定の内容として保持する。保持先は、記憶部１４０に格納するものでもよいし、図示しないメモリなどに保持してもよい。また、ログ生成部１５０を構成する回路デバイスやソフトウェア上に組み込んでもよい。
（１）データアクセスの競合条件、すなわちログ生成を行なうか否かの判定条件
（２）ログへの記録内容
（３）ログの記録形式
【００５９】
また、これらの内容を、設備管理装置１００の外部から、ユーザが設定できるようにしてもよい。
設定に際しては、例えば通信部１１０を介して監視装置３００の表示画面に適当な選択肢を表示させ、設備管理装置１００の動作設定項目としてユーザに提示したり、設定値の入力を同画面上でユーザに促したりして、設定作業によりこれらの内容をユーザに設定させてもよい。
また、設備管理装置１００の開発時に、開発者がプログラムでこれらの内容を記述するなどしてもよい。これら以外の方法で自由にユーザが設定できるようにしてもよい。
【００６０】
さらには、ユーザがこれらの内容を設定する場合は、例えば通信部１１０を介してその設定内容を制御部１２０が取得し、制御部１２０は、その設定内容をログ定義データとして記憶部１４０や図示しないメモリに格納しておく。
ログ生成部１５０は、このログ定義データを参照し、ログの生成条件や書式（ログへの記録内容と記録形式）を取得して、これに従いアクセス状況ログを生成する。
【００６１】
以上、ログ生成部１５０の機能について説明した。
次に、データアクセスの競合が発生した際の、ログ生成部１５０が行う動作について説明する。
【００６２】
ログ生成部１５０によるログ生成は、制御プロセスによるデータアクセスが競合した場合、すなわち図３のステップＳ３０５やＳ３１２のように、当該管理データへのアクセスが不可であるとする場合に行うとよい。
【００６３】
例えば、図３のステップＳ３０３において、使用状態フラグに対するアクセス権を取得できなかった場合には、以下の（１）〜（３）のような情報を、ログとして生成しておくと、後の不具合の解析に役立つ。
（１）使用状態フラグへのアクセス競合発生の旨
（２）当該管理データを識別するＩＤ
（３）当該管理データにアクセスしようとした制御プロセスのＩＤ
【００６４】
また、使用状態フラグの値が他の制御プロセスのＩＤとなっていた場合、すなわち他の制御プロセスによって当該管理データが使用されていた場合には、以下の（１）〜（３）のような情報を、ログとして生成しておくと、後の不具合の解析に役立つ。
（１）データアクセス競合発生の旨
（２）当該管理データを識別するＩＤ
（３）当該管理データにアクセスしようとした制御プロセスのＩＤ、および当該管理データを使用中の制御プロセスのＩＤ（＝使用状態フラグの値）
【００６５】
また、図４で説明した、管理データへのアクセスを終了しようとする際の処理フローにおいても、同様にログ生成を行うことができる。
ただし、この場合のログ生成の考え方は、データアクセスの競合というよりはアクセス権解放失敗の記録を残すか否かということを趣旨とする。
当然、データアクセスの開始の場合もデータアクセスの終了の場合も同様であるが、処理に成功した場合や成功と失敗の双方の場合において、ログを生成するようにしても構わない。
【００６６】
以上の説明では、実施の形態１で説明した、使用状態フラグによるデータアクセス制御に加えて、ログ生成部１５０によるアクセス状況ログの生成を行うことで、不具合解析に役立てることを説明したが、アクセス制御を行わずログ生成のみを行う場合でも、一定の効果を発揮することができる。
この場合のアクセス競合の検出は、例えば実施の形態１で説明したような構成と手順で行い、アクセス制御は行わずに競合発生の旨をログ出力しておく、などとすればよい。
特に、不具合の原因が解明されていない時点においては、上述のようにログ生成のみを行っておき、ログの解析により原因がある程度解明された段階で、実施の形態１で説明したようなアクセス競合の回避を行う、などとすることもできる。
【００６７】
以上のように、本実施の形態２によれば、設備管理装置１００が設置された現場における実稼動時の複数のソフトウェアモジュールからのデータアクセス要求、および制御要求の競合状態を、ログ記録として容易に得ることができるので、アクセス競合に起因する問題点の抽出が容易となり、不具合解析のための工数を削減し、不具合対応力強化を行なうことができる。
【００６８】
実施の形態３．
図７は、本発明の実施の形態３に係る設備管理装置１００の機能ブロック図である。
本実施の形態３に係る設備管理装置１００は、実施の形態２の図６で説明した構成に加え、新たにログ表示部１６０を備える。その他の構成は図６と同様であるため、説明を省略する。
【００６９】
ログ表示部１６０は、液晶ディスプレイなどの画面表示装置からなり、ログ生成部１５０が生成したログの情報を利用して、例えば競合の発生したデータや競合する制御プロセスのＩＤ等の情報を画面表示する。
ログの取得は、ログ表示部１６０が自ら行ってもよいし、ログ表示部１６０は画面表示のみを行い、ログ表示部１６０の動作指示は制御部１２０またはログ生成部１５０が行うようにしてもよい。
ログ表示部１６０を備えることにより、問題の発生状況を画面表示により簡単に確認することができる。
【００７０】
実施の形態４．
図８は、本発明の実施の形態４に係る設備管理装置１００の機能ブロック図である。
本実施の形態４に係る設備管理装置１００は、実施の形態２の図６で説明した構成に加え、新たにログ情報通知部１７０を備える。その他の構成は図６と同様であるため、説明を省略する。
【００７１】
ログ情報通知部１７０は、ログ生成部１５０が生成したログの情報を利用して、例えば競合の発生したデータに関する情報等を、制御部１２０の配下で実行中の競合する制御プロセス等に通知する。
【００７２】
ログ情報通知部１７０は、その機能を実現する回路デバイスのようなハードウェアで実現することもできるし、ＣＰＵやマイコンのような演算装置とその動作を規定する制御プログラムで実現することもできる。
また、制御部１２０、データアクセス部１３０、またはログ生成部１５０と一体的に構成することもできる。
【００７３】
ログ情報通知部１７０を備えることにより、問題の発生状況を各制御プロセスに直接通知できるので、通知を受けた各制御プロセスは、一定時間待機した後に再度データアクセスを試みるなど、適切な対処を行うことができる。
【００７４】
また、図８に示したような、ログ生成部１５０が生成したログ情報をログ情報通知部１７０から制御部１２０に通知する手法の他、ログ情報を介さず、データアクセス部１３０が直接、競合情報を元に、該当する制御プロセスに競合状況を通知するような構成（図示せず）にしてもよい。
【００７５】
本実施の形態４における「競合状況通知部」は、ログ情報通知部１７０がこれに相当する。
【００７６】
実施の形態５．
図９は、本発明の実施の形態５に係る設備管理装置１００の機能ブロック図である。
本実施の形態５に係る設備管理装置１００は、実施の形態２の図６で説明した構成に加え、新たにログ出力部１８０を備える。その他の構成は図６と同様であるため、説明を省略する。
【００７７】
ログ出力部１８０は、ログ生成部１５０が生成したログ情報を設備管理装置１００の外部に出力する。
出力方式は、例えば外付けのメモリ装置にログデータをコピーする方法、シリアルケーブルやＬＡＮ等による接続を介した通信によりログデータを出力する方法、等を利用することができる。
また、出力されるログデータの形式は、生のログデータそのまま、ＸＭＬ等によりデータ構造記述されたもの、外部からの指示により特定の形式に変更されたもの、外部からの指示により選抜されたもの、等とすることができる。
ログデータを設備管理装置１００の外部に出力することにより、ログデータの解析を設備管理装置１００の外部で行うことができる。
【００７８】
ログ出力部１８０は、その機能を実現する回路デバイスのようなハードウェアで実現することもできるし、ＣＰＵやマイコンのような演算装置とその動作を規定する制御プログラムで実現することもできる。
また、制御部１２０、データアクセス部１３０、またはログ生成部１５０と一体的に構成することもできる。
ログ出力時のインターフェースは、出力方式やログデータの形式に応じて適宜定める。
【００７９】
実施の形態６．
図１０は、本発明の実施の形態６に係る設備管理装置５００の機能ブロック図である。
図１０において、通信部５１０、制御部５２０、データアクセス部５３０、記憶部５４０の機能や役割は、概ね実施の形態１の図１で説明した同名の構成部と同様であるため、本実施の形態６では差異点のみを説明する。
【００８０】
記憶部５４０は、後述の図１１で説明する使用間隔管理テーブル５４１を格納している。
制御部５２０が実行する制御プロセスは、使用間隔管理テーブル５４１を参照し、同テーブルに定義されている各管理データの使用間隔を取得して、その使用間隔で記憶部５４０に格納されている各管理データを参照し、または更新する。使用間隔の詳細は後述する。
なお、制御プロセスが各管理データにアクセスする際は、実施の形態１と同様に、データアクセス部５３０を介して行う。
【００８１】
使用間隔管理テーブル５４１が格納するデータは、設備管理装置５００の外部から、ユーザが設定できるようにしてもよい。
設定に際しては、例えば通信部５１０を介して監視装置３００の表示画面に適当な選択肢を表示させ、設備管理装置５００の動作設定項目としてユーザに提示したり、設定値の入力を同画面上でユーザに促したりして、設定作業によりこれらの内容をユーザに設定させてもよい。
【００８２】
図１１は、使用間隔管理テーブル５４１の構成とデータ例である。
使用間隔管理テーブル５４１は、「データ識別ＩＤ」列、「制御プロセスＩＤ」列、「使用間隔」列を有する。
「データ識別ＩＤ」列には、記憶部５４０が格納する各管理データを一意に識別するＩＤが格納される。
「制御プロセスＩＤ」列には、「データ識別ＩＤ」列の値で特定される管理データを使用する制御プロセスの識別ＩＤが格納される。
「使用間隔」列には、「制御プロセスＩＤ」列の値で特定される制御プロセスが、「データ識別ＩＤ」列の値で特定される管理データを、参照しまたは更新する時間間隔が数値で格納される。
図１１のデータ例では、１〜２行目のデータを参照すると、以下のことが分かる。
【００８３】
（１）制御プロセス５２０Ａは、空調機２００ｂの設定温度を１０分毎に使用することが定義されているので、制御部５２０は、通信部５１０へ１０分毎に、空調機２００ｂの設定温度を取得すべき旨の管理命令を発行させる。
【００８４】
なお、管理データを提供すべきタイミングとしては、以下のような例が考えられる。
（１．１）制御プロセス５２０Ａが同管理データを要求した際に、その時点より前の１０分以内に更新された最新の管理データを提供する。
（１．２）１０分毎に最新の管理データを取得し、制御プロセスにその旨の通知を出力する。
【００８５】
（２）制御プロセス５２０Ｂも同様に、空調機２００ｂの設定温度を１５分毎に使用するので、制御部５２０は、同管理データを１５分毎に更新するよう、通信部５１０へ１５分毎に、空調機２００ｂの設定温度を取得すべき旨の管理命令を発行させる。
【００８６】
各「使用間隔」列の値に基づき、制御部５２０が空調機２００ｂの設定温度を取得すると、制御部５２０は、記憶部５４０が格納している該当管理データの値を更新する。
【００８７】
なお、管理データの更新周期のみならず、例えばネットワーク４００に接続されている各設備機器２００に所定の管理命令を定時発報する時間間隔など、種々のデータの使用間隔について、使用間隔管理テーブル５４１を用いて定義することができる。
【００８８】
以上、使用間隔管理テーブル５４１を用いた各管理データの使用間隔の定義、および制御部５２０の動作について、原則となる事項を説明した。
次に、上記の原則の下、さらに各管理データの使用間隔を最適化して通信トラフィックを低減する動作について説明する。
【００８９】
図１１で説明した通り、通信部５１０は、同一の管理データに対して１０分毎と１５分毎それぞれに、データ更新を行うための管理命令を発行するのが原則であるが、このように、同一の管理データを制御プロセス毎に個別に更新するのは煩雑である。
そこで、制御部５２０は、いずれの使用間隔で管理データを使用すれば最も効率的かを判断し、その周期をもって各管理データを読み取りまたは書き込みするよう、最適化を行う。
【００９０】
ここでいう最適化とは、通信部５１０の通信トラフィックを低減する観点から、例えば通信部５１０と各設備機器２００との間の通信回数が最小となる使用間隔を求めることである。
例えば、１０分と１５分の最大公約数をとった５分間隔でその管理データを更新し、各制御プロセスの更新周期を共通化する、といった最適化処理が考えられる。
以下、図１１のデータ例を用いて、最適化の手法の１例を下記ステップ（１）〜（３）で説明する。
【００９１】
（１）制御プロセス５２０Ａが使用するための１０分毎の更新と、制御プロセス５２０Ｂが使用するための１５分毎の更新を、個別に実行するものと仮定する。
この場合、１時間で行われる更新回数は、以下のようになる。
（１．１）制御プロセス５２０Ａのための更新：６０分／１０分＝６回
（１．２）制御プロセス５２０Ｂのための更新：６０分／１５分＝４回
（１．３）合計更新回数：６回＋４回＝１０回
【００９２】
（２）一方、制御プロセス５２０Ａと５２０Ｂの更新間隔の最大公約数を取り、５分間隔で更新を実行するものと仮定する。
この場合、１時間で行われる更新回数は、以下のようになる。
（２．１）制御プロセス５２０Ａと５２０Ｂの共通更新：６０分／５分＝１２回
【００９３】
（３）制御部５２０は、上記（１）〜（２）の演算を行い、いずれの更新間隔を用いる方が更新回数が少ないかを判定する。この場合は、制御プロセス５２０Ａと５２０Ｂそれぞれのための更新を個別に行った方がよいことが分かる。
したがって制御部５２０は、使用間隔管理テーブル５４１の「使用間隔」列の値をそのまま用いて、空調機２００ｂの設定温度の更新のための管理命令を発行する。
【００９４】
一方、制御プロセス５２０Ａが５分毎に更新し、制御プロセス５２０Ｂが１０分毎に更新する場合は、以下のようになる。
【００９５】
（１）制御プロセス５２０Ａが使用するための５分毎の更新と、制御プロセス５２０Ｂが使用するための１０分毎の更新を、個別に実行するものと仮定する。
この場合、１時間で行われる更新回数は、以下のようになる。
（１．１）制御プロセス５２０Ａのための更新：６０分／  ５分＝１２回
（１．２）制御プロセス５２０Ｂのための更新：６０分／１０分＝  ６回
（１．３）合計更新回数：１２回＋６回＝１８回
【００９６】
（２）一方、制御プロセス５２０Ａと５２０Ｂの更新間隔の最大公約数を取り、５分間隔で更新を実行するものと仮定する。
この場合、１時間で行われる更新回数は、以下のようになる。
（２．１）制御プロセス５２０Ａと５２０Ｂの共通更新：６０分／５分＝１２回
【００９７】
（３）この場合は、制御プロセス５２０Ａと５２０Ｂの更新を共通にした方が、合計の更新回数が少ないことが分かる。
【００９８】
なお、上記の説明では、各管理命令とその応答に要する通信データ量が、制御プロセス５２０Ａと５２０Ｂで同一であるものと仮定したが、通信データ量の差異がある場合は、通信回数に通信データ量を乗算し、合計の通信データ量が少なくなる方の更新周期を選択するようにしてもよい。
【００９９】
本実施の形態６では、実施の形態１と同様の構成の下、使用間隔テーブル５４１を用いた管理データの更新周期の最適化について説明したが、実施の形態２〜５と同様の構成の下で、同様に管理データの更新周期の最適化を行うようにしてもよい。
【０１００】
以上のように、本実施の形態６では、制御部５２０は、使用間隔テーブル５４１に格納されている各管理データの使用間隔を最適化する。
これにより、設備管理装置５００と各設備機器２００の間の通信トラフィックを緩和することができ、安定動作可能な設備管理装置５００を得ることができる。
【図面の簡単な説明】
【０１０１】
【図１】実施の形態１に係る設備機器ネットワークシステムの構成図である。
【図２】データアクセスの競合により、記憶部１４０が格納しているデータに不具合が発生する例を説明するものである。
【図３】制御プロセス１２０Ａが、記憶部１４０に格納されている管理データにアクセスする際の処理フローである。
【図４】制御プロセス１２０Ａが、記憶部１４０に格納されている管理データへのアクセスを終了しようとする際の処理フローである。
【図５】設備管理装置１００が備えるセマフォの機能を説明するものである。
【図６】実施の形態２に係る設備管理装置１００の機能ブロック図である。
【図７】実施の形態３に係る設備管理装置１００の機能ブロック図である。
【図８】実施の形態４に係る設備管理装置１００の機能ブロック図である。
【図９】実施の形態５に係る設備管理装置１００の機能ブロック図である。
【図１０】実施の形態６に係る設備管理装置５００の機能ブロック図である。
【図１１】使用間隔管理テーブル５４１の構成とデータ例である。
【符号の説明】
【０１０２】
１００  設備管理装置、１１０  通信部、１２０  制御部、１３０  データアクセス部、１４０  記憶部、１５０  ログ生成部、１６０  ログ表示部、１７０  ログ情報通知部、１８０  ログ出力部、２００ａ  照明器、２００ｂ  空調機、３００  監視装置、４００  ネットワーク、５００  設備管理装置、５１０  通信部、５２０  制御部、５３０  データアクセス部、５４０  記憶部、５４１  使用間隔テーブル。
【図１】
0004920567.tif 000002
【図２】
0004920567.tif 000003
【図３】
0004920567.tif 000004
【図４】
0004920567.tif 000005
【図５】
0004920567.tif 000006
【図６】
0004920567.tif 000007
【図７】
0004920567.tif 000008
【図８】
0004920567.tif 000009
【図９】
0004920567.tif 000010
【図１０】
0004920567.tif 000011
【図１１】
0004920567.tif 000012