(57)【要約】【課題】  新旧のソフトウェア間で情報の引き継ぎを実行するための処理が、更新処理における大きなオーバーヘッドとなり得る。【解決手段】  プログラムファイル取得部１７０は、機器インタフェースモジュールの実行中において、新たな機器インタフェースモジュールのプログラムファイルを取得する。ロード処理部１８０は、新たな機器インタフェースモジュールのプログラムファイルを更新されるべき機器インタフェースモジュールのプログラムファイルがロードされているメモリ領域とは異なるメモリ領域にロードする。停止処理部１８２は、新たな機器インタフェースモジュールのプログラムファイルがロードされたあとに、更新されるべき機器インタフェースモジュールの実行を停止させる。起動処理部１８４は、更新されるべき機器インタフェースモジュールの実行が停止されたあとに、新たな機器インタフェースモジュールモジュールの実行を開始させる。【選択図】  図６
2006004373.tif 000002
【特許請求の範囲】
【請求項１】
電気機器から機器の状態を示す機器状態値を取得する機器状態値取得部と、前記取得された機器状態値を所定の記憶領域に記録する機器状態値記録部と、を備える監視モジュールと、
前記監視モジュールのプログラムファイルを更新する第１更新モジュールと、を備え、
前記第１更新モジュールは、
前記監視モジュールが実行されているときに、前記監視モジュールの新たなプログラムファイルを外部装置から取得する第１プログラムファイル取得部と、
前記監視モジュールの新たなプログラムファイルを前記監視モジュールの現在のプログラムファイルがロードされている記憶領域とは異なる記憶領域にロードする第１プログラムファイルロード処理部と、
前記監視モジュールの新たなプログラムファイルがロードされたあとに、前記監視モジュールの実行を停止させる監視モジュール停止指示部と、
前記監視モジュールの実行が停止されたあとに、前記新たなプログラムファイルにより監視モジュールの実行を再開する監視モジュール実行指示部と、
を備えることを特徴とする電気機器管理装置。
【請求項２】
前記監視モジュールの機器状態値記録部により記録された機器状態値を前記所定の記憶領域から読み出す機器状態値読出部と、前記読み出された機器状態値に基づいて所定の演算を実行することにより、前記電気機器に対する制御内容を示す制御データを生成する制御データ生成部と、を備える機器制御モジュールと、
前記機器制御モジュールのプログラムファイルを更新する第２更新モジュールと、を更に備え、
前記第２更新モジュールは、
前記機器制御モジュールから前記制御データを取得する制御データ取得部と、
前記機器制御モジュールが実行されているときに、前記機器制御モジュールの新たなプログラムファイルを外部装置から取得する第２プログラムファイル取得部と、
前記機器制御モジュールの新たなプログラムファイルを前記機器制御モジュールの現在のプログラムファイルがロードされている記憶領域とは異なる記憶領域にロードする第２プログラムファイルロード処理部と、
前記機器制御モジュールの新たなプログラムファイルがロードされたあとに、前記機器制御モジュールの実行を停止させる機器制御モジュール停止指示部と、
前記機器制御モジュールの実行が停止されたあとに、前記取得された制御データに基づいて、前記新たなプログラムファイルにより機器制御モジュールの実行を再開する機器制御モジュール実行指示部と、
を備えることを特徴とする請求項１に記載の電気機器管理装置。
【請求項３】
前記第２更新モジュールは、前記機器制御モジュールによる前記制御データを生成するための演算が完了するタイミングを検出する演算完了検出部を更に備え、
前記機器制御モジュール停止指示部は、その検出がなされたあとに、前記機器制御モジュールの実行を停止させることを特徴とする請求項２に記載の電気機器管理装置。
【請求項４】
前記第２更新モジュールは、前記監視モジュールの実行時に前記機器制御モジュールのプログラムファイルを更新することを特徴とする請求項２または３に記載の電気機器管理装置。
【請求項５】
電気機器の状態を監視するための監視モジュールが実行されているときに、前記監視モジュールの新たなプログラムファイルを外部装置から取得する第１プログラムファイル取得部と、
前記監視モジュールの新たなプログラムファイルを前記監視モジュールの現在のプログラムファイルがロードされている記憶領域とは異なる記憶領域にロードする第１プログラムファイルロード処理部と、
前記監視モジュールの新たなプログラムファイルがロードされたあとに、前記監視モジュールの実行を停止させる監視モジュール停止指示部と、
前記監視モジュールの実行が停止されたあとに、前記新たなプログラムファイルにより監視モジュールの実行を再開する監視モジュール実行指示部と、
を備えることを特徴とするソフトウェア更新装置。
【請求項６】
電気機器に対する制御内容を示す制御データを生成する機器制御モジュールが実行されているときに、前記機器制御モジュールの新たなプログラムファイルを外部装置から取得する第２プログラムファイル取得部と、
前記機器制御モジュールから前記制御データを取得する制御データ取得部と、
前記機器制御モジュールの新たなプログラムファイルを前記機器制御モジュールの現在のプログラムファイルがロードされている記憶領域とは異なる記憶領域にロードする第２プログラムファイルロード処理部と、
前記機器制御モジュールの新たなプログラムファイルがロードされたあとに、前記機器制御モジュールの実行を停止させる機器制御モジュール停止指示部と、
前記機器制御モジュールの実行が停止されたあとに、前記取得された制御データに基づいて、前記新たなプログラムファイルにより機器制御モジュールの実行を再開する機器制御モジュール実行指示部と、
を備えることを特徴とするソフトウェア更新装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明はソフトウェアの更新に関し、特に、ソフトウェアの実行時においてソフトウェアを更新するための技術に関する。
【背景技術】
【０００２】
近年、コンピュータプログラムによって制御される多くの電気機器が、インターネットなどの通信ネットワークに接続する機能を有しつつある。複数の電気機器を通信ネットワークを介して統合的に制御すれば、これら複数の電気機器が互いに協調して動作することも可能となる。
【０００３】
このような状況下において、電気機器を制御するためのソフトウェアも高度化、多機能化しつつあり、通信ネットワークを介して遠隔から機器状態を監視する場合も多い。これらのソフトウェアを更新すれば、ハードウェア自体を変更しなくとも、電気機器、あるいは、電気機器群に新たな機能を発揮させることも可能となる。また、ソフトウェアの高度化、多機能化は、いわゆるバグとよばれる不具合を生じさせやすくなっている。そのため、ソフトウェアをいったんインストールしたあとも、適宜、バグ修正後のソフトウェアに更新する必要がしばしば生じうる。ソフトウェアを更新するためには、電気機器によるサービスの提供を停止し、ソフトウェアを差し替えた上で、電気機器を再起動させるという方法が一般的である。
【０００４】
しかし、このような方法は、長時間のサービス停止が許容されがたい電気機器にとっては好適とはいえない。たとえば、コンビニエンスストアのショーケースのような電気機器を監視する装置は、その性質上、電気機器の監視が停止する時間を最小限に抑制する必要がある。
【０００５】
特許文献１に記載の発明は、このようなソフトウェアの更新に伴うサービス停止期間を短縮することを目的とする。この文献に記載の発明は、新旧のソフトウェアをメモリ上に一時的に併存させ、旧ソフトウェアのデータを新ソフトウェアに引き継ぐことにより、更新に際して制御の継続性を保つ方法を開示する。
【特許文献１】特開２００１−６７２１４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
特許文献１に記載の発明によれば、ソフトウェアをほぼ実行した状態で更新処理を実行可能である。しかし、新旧のソフトウェア間でデータの引き継ぎを実行するための処理が、更新処理における大きなオーバーヘッドとなり得る。特に、リアルタイム性が高いソフトウェアの更新においては、この問題点が顕在化しやすい。
【０００７】
本発明はこのような課題に鑑みてなされたものであり、その目的は、電気機器を制御するソフトウェアの更新を好適に行うための技術を提供することである。
【課題を解決するための手段】
【０００８】
上記課題を解決するために、本発明のある態様のソフトウェア更新装置は、電気機器から機器の状態を示す機器状態値を取得して所定のメモリ領域に記録することにより、電気機器の状態を監視するための監視モジュールと、監視モジュールのプログラムファイルを更新するための第１更新モジュールを備える。第１更新モジュールは、監視モジュールが実行されているときに、監視モジュールの新たなプログラムファイルを外部装置から取得し、監視モジュールの現在のプログラムファイルがロードされているメモリ領域とは異なるメモリ領域にロードする。第１更新モジュールは、監視モジュールの新たなプログラムファイルがロードされたあとに、監視モジュールの実行を停止させ、そのあとに、新たなプログラムファイルにより監視モジュールの実行を再開させる。
【０００９】
この態様によると、電気機器を監視する監視モジュールは、電気機器からその機器状態を示す値としての機器状態値をメモリに記録する。第１更新モジュールは、この記録された機器状態値とは別個に、監視モジュールのプログラムファイルだけを更新してもよい。起動された新しい監視モジュールは、電気機器から取得した機器状態値を旧い監視モジュールが機器状態値を記録したメモリ領域に引き続き記録してもよい。このような態様によれば、監視モジュールの更新に際して、新旧の監視モジュール間でデータの引き継ぎ処理を行う必要がない。また、更新に際して機器状態値の連続性が保たれるため、更新に伴う電気機器の監視が停止することを回避しやすくなる。
【発明の効果】
【００１０】
本発明によれば、ソフトウェアの更新に要する時間を短縮化する上で効果がある。
【発明を実施するための最良の形態】
【００１１】
図１は、本実施例における電気機器管理装置１００の機能ブロック図である。電気機器管理装置１００は、ハードウェア的には、コンピュータのＣＰＵをはじめとする素子や機械装置で実現でき、ソフトウェア的にはコンピュータプログラム等によって実現される。ここでは、電気機器管理装置１００のうち、主としてソフトウェアによって実現される機能ブロックを描いている。なお、これらの機能ブロックはハードウェア、ソフトウェアの組合せによっていろいろなかたちで実現できることは、当業者には理解されるところである。
【００１２】
電気機器管理装置１００は、各種の電気機器（以下、これらをまとめていうときには「電気機器群１０６」とよぶ）を制御するための装置である。ユーザは、キーボードなどの直接的手段やネットワークなどを介した間接的手段により電気機器管理装置１００を操作する。ユーザは監視センタを直接のユーザインタフェースとして、インターネットを介して電気機器管理装置１００を操作してもよい。電気機器管理装置１００は、ソフトウェア更新モジュール１０２と電気機器管理モジュール１０４を含む。電気機器管理モジュール１０４は、電気機器群１０６を管理するためのソフトウェアモジュールである。電気機器管理モジュール１０４は、後述するように、更に複数のソフトウェアモジュールによって構成される。ソフトウェア更新モジュール１０２は、電気機器管理モジュール１０４に含まれる各種のソフトウェアモジュールを更新するためのソフトウェアモジュールである。ソフトウェア更新モジュール１０２の詳細については図３、電気機器管理モジュール１０４の詳細については図２に関連して後に詳述する。
【００１３】
図２は、図１に示した電気機器管理モジュール１０４を更に詳細に示す機能ブロック図である。電気機器管理モジュール１０４は、機器制御モジュール１１２、機器状態値記憶部１１８および機器インタフェースモジュール群１１０を含む。機器制御モジュール１１２は、電気機器群１０６に含まれる第１電気機器１１６ａ、第２電気機器１１６ｂ、第Ｎ電気機器１１６ｃ（Ｎは３以上の整数）などの複数の電気機器１１６を制御するための指示である制御データを生成する。
【００１４】
機器インタフェースモジュール群１１０は、電気機器群１０６とのデータ通信を担当する。機器インタフェースモジュール群１１０に含まれる第１機器インタフェースモジュール１１４ａ、第２機器インタフェースモジュール１１４ｂ、第Ｎ機器インタフェースモジュール１１４ｃなどの複数の機器インタフェースモジュール１１４は、機器制御モジュール１１２から制御データを受信し、それに応じて各電気機器１１６に制御信号を送る。また、機器インタフェースモジュール群１１０は、電気機器群１０６から各機器の状態を示す値（以下、「機器状態値」とよぶ）を取得する。機器インタフェースモジュール群１１０は、機器ごとに得られた機器状態値を機器状態値記憶部１１８に記録する。機器制御モジュール１１２は、機器状態値記憶部１１８に記録される機器状態値に基づいて、制御データを生成する。
【００１５】
同図において、第１機器インタフェースモジュール１１４ａは第１電気機器１１６ａ、第２機器インタフェースモジュール１１４ｂは第２電気機器１１６ｂ、第Ｎ機器インタフェースモジュール１１４ｃは第Ｎ電気機器１１６ｃとそれぞれデータ通信を行う。第１機器インタフェースモジュール１１４ａが第１電気機器１１６ａ、第２電気機器１１６ｂとデータ通信してもよい。このように、一つの機器インタフェースモジュールが複数の電気機器とデータ通信を実行してもよい。機器状態値記憶部１１８は、たとえば、ＲＡＭ（Random Access Memory）などの半導体記憶装置に確保される領域において実現される。機器制御モジュール１１２の詳細については図５、機器インタフェースモジュール１１４の詳細については図４に関連して後に詳述する。
【００１６】
ここで一例として、第１電気機器１１６ａがショーケースである場合、第１機器インタフェースモジュール１１４ａは第１電気機器１１６ａに備え付けられた温度計から庫内外の温度を機器状態値として取得して機器状態値記憶部１１８に記録する。機器制御モジュール１１２は、庫外と庫内の温度差やそれらの温度の変化履歴に基づいて、ショーケースへの冷媒供給路に設けられる電磁弁の開閉量を算出する。この電磁弁が開弁されると、ショーケースに連結された冷凍機から冷媒がショーケースに流入することにより、ショーケースの温度が低下する。庫外気温が高いときには、庫内を冷却するためには比較的定常的に冷媒を供給する必要があるが、庫外気温が低いときには、比較的少ない冷媒の供給によりショーケースの庫内を冷却することができる。機器制御モジュール１１２は、これらの機器状態値に基づいて、この電磁弁の開弁量や開弁時間、開弁タイミングを演算し、この値を制御データとして第１機器インタフェースモジュール１１４ａに送る。第１機器インタフェースモジュール１１４ａは、制御データに基づいて第１電気機器１１６ａを制御するための信号を送信する。
【００１７】
図３は、図１に示したソフトウェア更新モジュール１０２を更に詳細に示す機能ブロック図である。ソフトウェア更新モジュール１０２は、サブ更新モジュール１３０とメイン更新モジュール１３２を含む。メイン更新モジュール１３２は、電気機器管理モジュール１０４の更新処理を実行するソフトウェアモジュールである。メイン更新モジュール１３２は、機器インタフェースモジュール用更新モジュール１３４と機器制御モジュール用更新モジュール１３６を含む。
【００１８】
機器インタフェースモジュール用更新モジュール１３４は機器インタフェースモジュール群１１０に含まれる複数の機器インタフェースモジュール１１４のうちの更新対象となる機器インタフェースモジュール１１４を更新する。機器制御モジュール用更新モジュール１３６は、機器制御モジュール１１２の更新処理を実行する。サブ更新モジュール１３０は、メイン更新モジュール１３２の更新処理を実行する。サブ更新モジュール１３０の詳細については図８、機器インタフェースモジュール用更新モジュール１３４の詳細については図６、機器制御モジュール用更新モジュール１３６の詳細については図７に関連して後に詳述する。
【００１９】
図４は、図２に示した機器インタフェースモジュール１１４を更に詳細に示す機能ブロック図である。同図は特に第１機器インタフェースモジュール１１４ａについて示すが、他の第２機器インタフェースモジュール１１４ｂや第Ｎ機器インタフェースモジュール１１４ｃなども同等であってよい。第１機器インタフェースモジュール１１４ａは、命令取得部１４０、機器状態値記録部１４２、実行制御部１４４および電気機器インタフェース処理部１４６を含む。
【００２０】
命令取得部１４０は、機器制御モジュール１１２から第１電気機器１１６ａに対する制御データを受信する。また、命令取得部１４０は機器インタフェースモジュール用更新モジュール１３４から更新に伴う指示を受信する。実行制御部１４４は第１機器インタフェースモジュール１１４ａの起動や停止など第１機器インタフェースモジュール１１４ａ自体のプロセスに関わる処理を担当する。電気機器インタフェース処理部１４６は、命令取得部１４０により取得された制御データに基づいて、第１電気機器１１６ａに制御信号を送信する。第１電気機器１１６ａはこの制御信号に応じて、電気的、機械的に制御される。また、電気機器インタフェース処理部１４６は、第１電気機器１１６ａから機器状態値を取得する。機器状態値記録部１４２は、この機器状態値を図２に示した機器状態値記憶部１１８に記録する。
【００２１】
命令取得部１４０が機器制御モジュール１１２や機器インタフェースモジュール用更新モジュール１３４から第１機器インタフェースモジュール１１４ａの停止命令を受け取ると、実行制御部１４４は、電気機器インタフェース処理部１４６に対して第１電気機器１１６ａとインタラクションを停止するように指示する。電気機器インタフェース処理部１４６と第１電気機器１１６ａのデータ通信が停止された後に、実行制御部１４４は第１機器インタフェースモジュール１１４ａのプロセス全体を停止させる。
【００２２】
第１機器インタフェースモジュール１１４ａの停止中において、命令取得部１４０が機器制御モジュール１１２や機器インタフェースモジュール用更新モジュール１３４から第１機器インタフェースモジュール１１４ａの起動命令を受け取ると、実行制御部１４４は第１機器インタフェースモジュール１１４ａのプロセスを起動した後に、電気機器インタフェース処理部１４６に対して第１電気機器１１６ａとのデータ通信を開始するように指示する。電気機器インタフェース処理部１４６はこのような明示的な指示がなくとも第１電気機器１１６ａとのデータ通信を開始してもよい。たとえば、電気機器インタフェース処理部１４６は、第１機器インタフェースモジュール１１４ａの起動を契機として、自動的に第１電気機器１１６ａとのデータ通信を開始してもよい。
【００２３】
図５は、図２に示した機器制御モジュール１１２を更に詳細に示す機能ブロック図である。機器制御モジュール１１２は、更新モジュールインタフェース処理部１５０、ユーザインタフェース処理部１５２、実行制御部１５４、機器インタフェースモジュール入出力部１５６、制御データ記憶部１５８および制御データ生成部１６０を含む。更新モジュールインタフェース処理部１５０は、機器制御モジュール１１２自体の更新に際して、機器制御モジュール１１２の停止や起動に関する指示を機器制御モジュール用更新モジュール１３６から受信する。ユーザインタフェース処理部１５２は、ユーザからの操作を受け付けると共に、ユーザに対して各種データを提示する。ユーザは、ユーザインタフェース処理部１５２を介して、機器インタフェースモジュール１１４を直接的に制御してもよい。
【００２４】
実行制御部１５４は機器制御モジュール１１２自体の実行停止や起動に関する処理を担当する。機器インタフェースモジュール入出力部１５６は、機器状態値記憶部１１８から各種電気機器１１６の機器状態値を読み出す。制御データ生成部１６０は、機器インタフェースモジュール入出力部１５６が読み出した機器状態値に基づいて制御データを生成する。制御データ生成部１６０は、生成した制御データを制御データ記憶部１５８に記録する。機器インタフェースモジュール入出力部１５６は、適宜、制御データ記憶部１５８が記憶する制御データを読み出すことにより、機器インタフェースモジュール群１１０に対して制御データを送る。機器インタフェースモジュール入出力部１５６は、制御データを読み出すと、制御データ記憶部１５８からその制御データを消去する。
【００２５】
制御データは、電気機器群１０６の制御に関する各種情報を指標化したものである。たとえば、電気機器１１６がショーケースである場合、制御データはショーケースの庫内温度が上昇または低下したときに警報を発生すべき温度として設定される閾値であってもよい。あるいは、ショーケースの庫内温度としての設定される値を含んでもよい。さらには、「庫内温度と庫外温度の温度差が１０度以上となった場合には、ショーケースの電磁弁を１０秒開弁させる」といった制御条件であってもよい。これらの制御データ記憶部１５８に記録される制御データは、ユーザインタフェース処理部１５２や更新モジュールインタフェース処理部１５０を介して読み出すことができる。制御データ記憶部１５８は、制御データ生成部１６０が機器状態値に基づいて演算した制御データや予め設定された制御データを記憶する。
【００２６】
実行制御部１５４は、更新モジュールインタフェース処理部１５０やユーザインタフェース処理部１５２から機器制御モジュール１１２の停止命令を受け取ると、機器インタフェースモジュール入出力部１５６に対して、機器インタフェースモジュール群１１０への制御データ送信や、機器状態値記憶部１１８からの機器状態値の読み出しを停止するように指示する。実行制御部１５４は、機器インタフェースモジュール入出力部１５６の機器インタフェースモジュール群１１０や機器状態値記憶部１１８とのインタラクションが停止された後に、機器制御モジュール１１２をスリープ状態に移行させる。
【００２７】
機器制御モジュール１１２の停止時において、実行制御部１５４が更新モジュールインタフェース処理部１５０やユーザインタフェース処理部１５２から機器制御モジュール１１２の起動命令を受け取ると、実行制御部１５４は機器制御モジュール１１２のプロセスを起動した後に、機器インタフェースモジュール入出力部１５６に機器インタフェースモジュール群１１０や機器状態値記憶部１１８とのインタラクションを開始するように指示する。
【００２８】
図６は、図３に示した機器インタフェースモジュール用更新モジュール１３４を更に詳細に示す機能ブロック図である。機器インタフェースモジュール用更新モジュール１３４は、プログラムファイル取得部１７０、更新インタフェース処理部１７２、実行制御部１７４および機器インタフェースモジュール更新処理部１７６を含む。プログラムファイル取得部１７０は、通信ネットワークを経由して外部のデータベースから新しい機器インタフェースモジュール１１４のプログラムファイルを取得する。プログラムファイル取得部１７０は、ユーザから機器インタフェースモジュール１１４の更新に関するユーザインタフェース処理も担当してもよい。
【００２９】
プログラムファイル取得部１７０は、更に、更新判定部１７８を含む。更新判定部１７８は、通信ネットワークを介して外部のデータベースにアクセスし、機器インタフェースモジュール１１４を更新すべきか否かを判定する。電気機器管理装置１００が有するいずれかの機器インタフェースモジュール１１４よりも作成日時が新しい機器インタフェースモジュール１１４が外部のデータベースに公開されているときには、更新判定部１７８は機器インタフェースモジュール１１４を更新すべきと判定する。プログラムファイル取得部１７０は、電気機器管理装置１００が有する機器インタフェースモジュール１１４のうち、いずれかを更新すべきことが更新判定部１７８により判定された場合には、外部データベースから、該当する機器インタフェースモジュール１１４の最新のプログラムファイルを取得する。なお、プログラムファイル取得部１７０は更新判定部１７８を含まない構成としてもよい。この場合には、たとえば、プログラムファイル取得部１７０は外部からの指示によりプログラムファイルを取得してもよい。
【００３０】
機器インタフェースモジュール更新処理部１７６は、プログラムファイル取得部１７０からの指示により該当する機器インタフェースモジュール１１４を更新する。機器インタフェースモジュール更新処理部１７６は、ロード処理部１８０、停止処理部１８２および起動処理部１８４を含む。
【００３１】
ロード処理部１８０は、プログラムファイル取得部１７０が外部データベースから取得した機器インタフェースモジュール１１４の最新プログラムデータをメモリにロードする。ロードが完了すると、停止処理部１８２は更新対象となる機器インタフェースモジュール１１４を実行停止させる。機器インタフェースモジュール１１４の命令取得部１４０がこの停止指示を受け取ると、実行制御部１４４は機器インタフェースモジュール１１４の実行を停止させる。起動処理部１８４は、ロード処理部１８０がロードした新たな機器インタフェースモジュール１１４に対して実行開始を指示する。新たな機器インタフェースモジュール１１４の実行制御部１４４は、命令取得部１４０を介してこの指示を受け取ると機器インタフェースモジュール１１４を新たに起動する。ロード処理部１８０は、新しい機器インタフェースモジュール１１４が起動された後、実行停止された旧い機器インタフェースモジュール１１４をメモリ上から削除する。
【００３２】
更新インタフェース処理部１７２は、サブ更新モジュール１３０により機器インタフェースモジュール用更新モジュール１３４自体の更新指示を受け付ける。実行制御部１７４は、機器インタフェースモジュール用更新モジュール１３４自体の実行停止や起動に関する処理を担当する。実行制御部１７４は、更新インタフェース処理部１７２から機器インタフェースモジュール用更新モジュール１３４の停止命令を受け取ると、機器インタフェースモジュール更新処理部１７６に対して、機器インタフェースモジュール群１１０に対するアクセスを停止するように指示する。機器インタフェースモジュール更新処理部１７６が機器インタフェースモジュール１１４の更新処理中であれば、実行制御部１７４は、その更新処理が終了するまで待機する。実行制御部１７４は、機器インタフェースモジュール更新処理部１７６の機器インタフェースモジュール群１１０に対するアクセスが停止された後に、機器インタフェースモジュール用更新モジュール１３４のプロセス全体を停止させる。
【００３３】
機器インタフェースモジュール用更新モジュール１３４の停止時において、実行制御部１７４が更新インタフェース処理部１７２から機器インタフェースモジュール用更新モジュール１３４の起動命令を受け取ると、実行制御部１７４は機器インタフェースモジュール用更新モジュール１３４を起動した後に、機器インタフェースモジュール更新処理部１７６と機器インタフェースモジュール群１１０とのインタラクションを許可する。
【００３４】
図７は、図３に示した機器制御モジュール用更新モジュール１３６を更に詳細に示すブロック図である。機器制御モジュール用更新モジュール１３６は、プログラムファイル取得部１９０、更新インタフェース処理部１９２、実行制御部１９４および機器制御モジュール更新処理部１９６を含む。プログラムファイル取得部１９０は、通信ネットワークを経由して外部のデータベースから新しい機器制御モジュール１１２のプログラムファイルを取得する。プログラムファイル取得部１９０は、ユーザから機器制御モジュール１１２の更新に関するユーザインタフェース処理も担当してもよい。
【００３５】
プログラムファイル取得部１９０は、更に、更新判定部１９８を含む。更新判定部１９８は、定期的に通信ネットワークを介して外部のデータベースにアクセスし、機器制御モジュール１１２を更新すべきか否かを判定する。電気機器管理装置１００が有する機器制御モジュール１１２よりも作成日時が新しい機器制御モジュール１１２が外部のデータベースに公開されているときには、更新判定部１９８は機器制御モジュール１１２を更新すべきと判定する。電気機器管理装置１００が有する機器制御モジュール１１２を更新すべきと判定された場合には、プログラムファイル取得部１９０は外部データベースから、機器制御モジュール１１２の最新のプログラムファイルを取得する。なお、プログラムファイル取得部１９０は更新判定部１９８を含まない構成としてもよい。この場合には、たとえば、プログラムファイル取得部１９０は外部からの指示によりプログラムファイルを取得してもよい。
【００３６】
機器制御モジュール更新処理部１９６は、プログラムファイル取得部１９０からの指示により機器制御モジュール１１２を更新する。機器制御モジュール更新処理部１９６は、ロード処理部２００、停止処理部２０２、起動処理部２０４および制御データ一時記憶部２０６を含む。
【００３７】
ロード処理部２００は、プログラムファイル取得部１９０が外部データベースから取得した新しい機器制御モジュール１１２のプログラムデータをメモリにロードする。ロードが完了すると、停止処理部２０２は機器制御モジュール１１２の実行を停止させる。このとき、機器制御モジュール１１２の実行制御部１５４は、この停止指示を受け取ると、機器制御モジュール１１２の実行を停止させる。機器制御モジュール１１２は複数の機器インタフェースモジュール１１４を協働させるために、複数の機器インタフェースモジュール１１４に対する一連の制御命令をひとまとめにして生成する。停止処理部２０２は、機器制御モジュール１１２によるこれら制御データの生成が完了するタイミングを待って実行を停止させる。たとえば、ショーケースの電磁弁の開閉量を演算するときには、その制御データの生成が完了、または、なんらかの中間的な制御データが生成された後に、機器制御モジュール１１２は停止される。
【００３８】
停止処理部２０２は、停止された機器制御モジュール１１２の制御データ記憶部１５８に記憶されている制御データを取得して、制御データ一時記憶部２０６に一時的に記録する。制御データと機器から取得された他のデータは別個に記録されてもよい。起動処理部２０４は、ロード処理部２００がロードした新たな機器制御モジュール１１２に対して実行を指示する。新しい機器制御モジュール１１２の更新モジュールインタフェース処理部１５０は、実行開始に際して制御データ一時記憶部２０６に一時的に記録されている旧い機器制御モジュール１１２の制御データを取得する。新たな機器制御モジュール１１２の更新モジュールインタフェース処理部１５０は、この制御データを制御データ記憶部１５８に記録する。新たな機器制御モジュール１１２が、旧い機器制御モジュール１１２の制御データを引き継ぐことにより、更新処理に際しての機器制御モジュール１１２の制御の継続性が保たれる。ロード処理部２００は、新しい機器制御モジュール１１２が起動された後、実行停止された旧い機器制御モジュール１１２をメモリ上から削除する。
【００３９】
更新インタフェース処理部１９２は、サブ更新モジュール１３０により機器制御モジュール用更新モジュール１３６自体の更新指示を受け付ける。実行制御部１９４は、機器制御モジュール用更新モジュール１３６自体の実行停止や起動に関する処理を担当する。実行制御部１９４は、更新インタフェース処理部１９２から機器制御モジュール用更新モジュール１３６の停止命令を受け取ると、機器制御モジュール更新処理部１９６に対して機器制御モジュール１１２に対するアクセスを停止するように指示する。機器制御モジュール更新処理部１９６が機器制御モジュール１１２の更新処理中であれば、実行制御部１９４は、その更新処理が終了するまで待機する。実行制御部１９４は、機器制御モジュール更新処理部１９６の機器制御モジュール１１２に対するアクセスが停止された後に、機器制御モジュール用更新モジュール１３６全体を停止させる。
【００４０】
機器制御モジュール用更新モジュール１３６の停止時において、実行制御部１９４が機器制御モジュール用更新モジュール１３６の起動命令を受け取ると、実行制御部１９４は機器制御モジュール用更新モジュール１３６を起動した後に、機器制御モジュール更新処理部１９６と機器制御モジュール１１２とのインタラクションを許可する。
【００４１】
図８は、図３に示したサブ更新モジュール１３０を更に詳細に示すブロック図である。サブ更新モジュール１３０は、プログラムファイル取得部２１０とメイン更新モジュール更新処理部２１２を含む。プログラムファイル取得部２１０は、通信ネットワークを経由して外部のデータベースから新しいメイン更新モジュール１３２あるいはその一部である機器インタフェースモジュール用更新モジュール１３４や機器制御モジュール用更新モジュール１３６などのプログラムファイルを取得する。プログラムファイル取得部２１０は、ユーザからメイン更新モジュール１３２の更新に関するユーザインタフェース処理も担当してもよい。
【００４２】
プログラムファイル取得部２１０は、更新判定部２１４を含む。更新判定部２１４は、定期的に通信ネットワークを介して外部のデータベースにアクセスし、メイン更新モジュール１３２を更新すべきか否かを判定する。更新判定部２１４は、電気機器管理装置１００が有するメイン更新モジュール１３２よりも作成日時が新しいメイン更新モジュール１３２が外部のデータベースに公開されているときには、メイン更新モジュール１３２を更新すべきと判定する。プログラムファイル取得部２１０は、メイン更新モジュール１３２を更新すべきと判定された場合には、外部データベースからメイン更新モジュール１３２の最新のプログラムファイルを取得する。なお、プログラムファイル取得部２１０は更新判定部２１４を含まない構成としてもよい。この場合には、たとえば、プログラムファイル取得部２１０は外部からの指示によりプログラムファイルを取得してもよい。
【００４３】
メイン更新モジュール更新処理部２１２は、プログラムファイル取得部２１０からの指示によりメイン更新モジュール１３２を更新する。メイン更新モジュール更新処理部２１２は、ロード処理部２１６、停止処理部２１８および起動処理部２２０を含む。ロード処理部２１６は、プログラムファイル取得部２１０が外部データベースから取得したメイン更新モジュール１３２のプログラムデータをメモリにロードする。ロードが完了すると、停止処理部２１８はメイン更新モジュール１３２の実行を停止させる。このとき、機器インタフェースモジュール用更新モジュール１３４の更新インタフェース処理部１７２や機器制御モジュール用更新モジュール１３６の更新インタフェース処理部１９２は停止指示を受け取り、メイン更新モジュール１３２全体としての実行を停止させる。起動処理部２２０は、ロード処理部２１６がロードした新たなメイン更新モジュール１３２に対して実行を指示する。ロード処理部２１６は、新しいメイン更新モジュール１３２が起動された後、実行停止された旧いメイン更新モジュール１３２をメモリ上から削除する。
【００４４】
図９は、機器インタフェースモジュール用更新モジュール１３４が機器インタフェースモジュール１１４を更新する過程を示すフローチャートである。同フローチャートでは、例として第１機器インタフェースモジュール１１４ａを更新する過程を示すが、他の機器インタフェースモジュール１１４であっても同様である。まず、更新判定部１７８が第１機器インタフェースモジュール１１４ａを新たに更新すべきと判定すると、プログラムファイル取得部１７０は外部のデータベースから最新の第１機器インタフェースモジュール１１４ａのプログラムデータを取得する（Ｓ１０）。プログラムファイル取得部１７０は、取得したこのプログラムデータをハードディスクなどの記録媒体に記録する。また、プログラムファイル取得部１７０は、プログラムデータを取得したことを機器インタフェースモジュール更新処理部１７６に通知する。
【００４５】
ロード処理部１８０は、新たに取得された第１機器インタフェースモジュール１１４ａのプログラムデータをメモリにロードする（Ｓ１２）。このとき、ロード処理部１８０は、既に起動されている対応する第１機器インタフェースモジュール１１４ａのデータを上書きすることなく、別の領域に新たな第１機器インタフェースモジュール１１４ａのプログラムデータをロードする。すなわち、一時的に新旧の第１機器インタフェースモジュール１１４ａのプログラムデータが同時にメモリ上にロードされることになる。
【００４６】
新たな第１機器インタフェースモジュール１１４ａがメモリ上にロードされると、停止処理部１８２は旧い第１機器インタフェースモジュール１１４ａに対して実行を停止するよう指示する（Ｓ１４）。旧い第１機器インタフェースモジュール１１４ａの命令取得部１４０はこの停止命令を取得する。そして、旧い第１機器インタフェースモジュール１１４ａの実行制御部１４４は、まず、電気機器インタフェース処理部１４６に指示して第１電気機器１１６ａと第１機器インタフェースモジュール１１４ａのインタラクションを停止させる。その上で、実行制御部１４４は第１機器インタフェースモジュール１１４ａ全体の実行を停止させる。
【００４７】
起動処理部１８４は、旧い第１機器インタフェースモジュール１１４ａの実行が停止されると、新たな第１機器インタフェースモジュール１１４ａの実行を開始させる（Ｓ１６）。新たな第１機器インタフェースモジュール１１４ａの命令取得部１４０はこの起動命令を取得する。そして、新たな第１機器インタフェースモジュール１１４ａの実行制御部１４４は第１機器インタフェースモジュール１１４ａの実行を開始させた上で、第１電気機器１１６ａと第１機器インタフェースモジュール１１４ａのインタラクションを開始させる。
【００４８】
ロード処理部１８０は、新たな機器インタフェースモジュール１１４ａの実行が開始されたあと、旧い第１機器インタフェースモジュール１１４ａのプログラムデータをメモリ上から削除する（Ｓ１８）。また、ロード処理部１８０は、ハードディスクに残っている旧い第１機器インタフェースモジュール１１４ａのプログラムデータも削除する。新たに起動された第１機器インタフェースモジュール１１４ａは、機器状態値を取得すると、第１機器インタフェースモジュール１１４ａの外部の機器状態値記憶部１１８にこれを記録する。なお、このフローチャートにおいては、更新判定部１７８が更新の実行可否を判定する場合を示したが、ユーザが手動にて更新を指示してもよい。あるいは、外部装置からの更新指示に基づいて更新が実行されてもよい。また、Ｓ１４における停止処理を実行する前に、新たな機器インタフェースモジュール１１４が実行されてもよい。すなわち、旧い機器インタフェースモジュール１１４の実行中において、新たに機器インタフェースモジュール１１４を取得してメモリにロードしそれを起動する。起動時には、新たな機器インタフェースモジュール１１４は、コマンド待機状態となっている。このあと、旧い機器インタフェースモジュール１１４を停止し、そのあとに新たにロードされた機器インタフェースモジュール１１４のデータ処理を開始するとしてもよい。
【００４９】
図１０は、機器制御モジュール用更新モジュール１３６が機器制御モジュール１１２を更新する過程を示すフローチャートである。まず、更新判定部１９８が機器制御モジュール１１２を新たに更新すべきと判定すると、プログラムファイル取得部１９０は外部のデータベースから新たな機器制御モジュール１１２のプログラムデータを取得する（Ｓ２０）。プログラムファイル取得部１９０は、取得したこのプログラムデータをハードディスクなどの記録媒体に記録する。また、プログラムファイル取得部１９０は、プログラムデータを取得したことを機器制御モジュール更新処理部１９６に通知する。
【００５０】
プログラムファイル取得部１９０は、新たに取得された機器制御モジュール１１２のプログラムデータをメモリにロードする（Ｓ２２）。このとき、プログラムファイル取得部１９０は、既に起動されている機器制御モジュール１１２のデータを上書きすることなく、別の領域に新たな機器制御モジュール１１２のプログラムデータをロードする。すなわち、一時的に新旧の機器制御モジュール１１２のプログラムデータが同時にメモリ上にロードされることになる。
【００５１】
新たな機器制御モジュール１１２がメモリ上にロードされると、ロード処理部２００は旧い機器制御モジュール１１２に対して実行停止を指示する（Ｓ２４）。旧い機器制御モジュール１１２の更新モジュールインタフェース処理部１５０はこの停止命令を取得する。そして、旧い機器制御モジュール１１２の実行制御部１５４は、まず、機器インタフェースモジュール入出力部１５６と機器インタフェースモジュール群１１０のインタラクションを停止させる。その上で、実行制御部１５４は機器制御モジュール１１２全体の実行を停止させる。停止処理部２０２は、停止された機器制御モジュール１１２の制御データ記憶部１５８から制御データを取得する（Ｓ２６）。停止処理部２０２は、取得した制御データを制御データ一時記憶部２０６に記録する。
【００５２】
起動処理部２０４は、旧い機器制御モジュール１１２の実行が停止されると、新たな機器制御モジュール１１２の実行を開始させる（Ｓ２８）。このとき、起動処理部２０４は、新たな機器制御モジュール１１２に対して、制御データ一時記憶部２０６が記憶する旧い機器制御モジュール１１２の制御データを渡す。新たな機器制御モジュール１１２の更新モジュールインタフェース処理部１５０は、この制御データを取得すると制御データ記憶部１５８に記録する。新たな機器制御モジュール１１２は、この制御データに基づいて、処理を開始する。これにより、機器制御モジュール１１２の更新の過程において処理の連続性を保つことができる。新たな機器制御モジュール１１２の実行制御部１５４は機器制御モジュール１１２の実行を開始させた上で、機器インタフェースモジュール入出力部１５６と機器インタフェースモジュール群１１０のインタラクションを許可する。
【００５３】
ロード処理部２００は、新たな機器制御モジュール１１２の実行が開始されたあと、旧い機器制御モジュール１１２のプログラムデータをメモリ上から削除する（Ｓ３０）。また、ロード処理部２００は、ハードディスクに残っている旧い機器制御モジュール１１２のプログラムデータも削除する。なお、このフローチャートにおいても、更新判定部１９８が更新の実行可否を判定する場合を示したが、ユーザが手動にて更新を指示してもよい。あるいは、外部装置からの更新指示に基づいて更新が実行されてもよい。また、Ｓ２４における停止処理を実行する前に、新たな機器制御モジュール１１２が実行されてもよい。すなわち、旧い機器制御モジュール１１２の実行中において、新たに機器制御モジュール１１２を取得してメモリにロードしそれを起動する。起動時には、新たな機器制御モジュール１１２は、コマンド待機状態となっている。このあと、旧い機器制御モジュール１１２を停止し、そのあとに新たにロードされた機器制御モジュール１１２のデータ処理を開始するとしてもよい。
【００５４】
図１１は、サブ更新モジュール１３０がメイン更新モジュール１３２を更新する過程を示すフローチャートである。まず、更新判定部２１４がメイン更新モジュール１３２を新たに更新すべきと判定すると、プログラムファイル取得部２１０は外部のデータベースから新たなメイン更新モジュール１３２のプログラムデータを取得する（Ｓ４０）。プログラムファイル取得部２１０は、取得したこのプログラムデータをハードディスクなどの記録媒体に記録する。また、プログラムファイル取得部２１０は、プログラムデータを取得したことをメイン更新モジュール更新処理部２１２に通知する。
【００５５】
ロード処理部２１６は、新たに取得されたメイン更新モジュール１３２のプログラムデータをメモリにロードする（Ｓ４０）。このとき、ロード処理部２１６は、既に起動されているメイン更新モジュール１３２のプログラムデータを上書きすることなく、別の領域に新たなメイン更新モジュール１３２のプログラムデータをロードする。すなわち、一時的に新旧のメイン更新モジュール１３２のプログラムデータが同時にメモリ上にロードされることになる。
【００５６】
新たなメイン更新モジュール１３２がメモリ上にロードされると、ロード処理部２１６は旧いメイン更新モジュール１３２に対して実行を停止するよう指示する（Ｓ４４）。このとき、メイン更新モジュール１３２に含まれる機器インタフェースモジュール用更新モジュール１３４や機器制御モジュール用更新モジュール１３６が更新処理を実行している最中である場合には、それらの処理が優先される。この場合には、それらの処理が完了してから、メイン更新モジュール１３２の実行が停止される。旧いメイン更新モジュール１３２の実行制御部１９４や機器インタフェースモジュール更新処理部１７６がこの停止命令を取得する。
【００５７】
起動処理部２２０は、旧いメイン更新モジュール１３２の実行が停止されると、新たなメイン更新モジュール１３２の実行を開始させる（Ｓ４６）。ロード処理部２１６は、新たなメイン更新モジュール１３２の実行が開始されたあと、旧いメイン更新モジュール１３２のプログラムデータをメモリ上から削除する（Ｓ４８）。また、ロード処理部２１６は、ハードディスクに残っている旧いメイン更新モジュール１３２のプログラムデータも削除する。なお、このフローチャートにおいても、更新判定部２１４が更新の実行可否を判定する場合を示したが、ユーザが手動にて更新を指示してもよい。あるいは、外部装置からの更新指示に基づいて更新が実行されてもよい。また、Ｓ４４における停止処理を実行する前に、新たなメイン更新モジュール１３２が実行されてもよい。すなわち、旧いメイン更新モジュール１３２の実行中において、新たにメイン更新モジュール１３２を取得してメモリにロードしそれを起動する。起動時には、新たなメイン更新モジュール１３２は、コマンド待機状態となっている。このあと、旧いメイン更新モジュール１３２を停止し、そのあとに新たにロードされたメイン更新モジュール１３２のデータ処理を開始するとしてもよい。
【００５８】
以上、本実施例によれば、電気機器管理モジュール１０４を、リアルタイム性が高く処理履歴が未来の処理に影響しない機器インタフェースモジュール群１１０と、比較的リアルタイム性が低く、処理履歴が将来の処理に影響しやすい機器制御モジュール１１２にモジュール分割している。新旧の機器インタフェースモジュール１１４については、引き継ぎのデータを持つ必要がないため、機器インタフェースモジュール１１４をより短時間に更新できる。また、新旧の機器制御モジュール１１２においては、引き継ぎデータを持つ構成とすることにより、電気機器管理モジュール１０４における更新時間の短縮と、制御の連続性を確保している。また、電気機器管理モジュール１０４だけでなく、ソフトウェア更新モジュール１０２に含まれるメイン更新モジュール１３２や機器インタフェースモジュール用更新モジュール１３４も更新する機能を設けることにより、電気機器管理装置１００の柔軟性を更に高めることができる。
【００５９】
以上、実施例をもとに本発明を説明した。なお本発明はこの実施の形態に限定されることなく、そのさまざまな変形例もまた、本発明の態様として有効である。
【図面の簡単な説明】
【００６０】
【図１】本実施例における電気機器管理装置の機能ブロック図である。
【図２】図１に示した電気機器管理モジュールを更に詳細に示す機能ブロック図である。
【図３】図１に示したソフトウェア更新モジュールを更に詳細に示す機能ブロック図である。
【図４】図２に示した第１機器インタフェースモジュールを更に詳細に示す機能ブロック図である。
【図５】図２に示した機器制御モジュールを更に詳細に示す機能ブロック図である。
【図６】図３に示した機器インタフェースモジュール用更新モジュールを更に詳細に示す機能ブロック図である。
【図７】図３に示した機器制御モジュール用更新モジュールを更に詳細に示すブロック図である。
【図８】図３に示したサブ更新モジュールを更に詳細に示すブロック図である。
【図９】機器インタフェースモジュール用更新モジュールが機器インタフェースモジュールを更新する過程を示すフローチャートである。
【図１０】機器制御モジュール用更新モジュールが機器制御モジュールを更新する過程を示すフローチャートである。
【図１１】サブ更新モジュールがメイン更新モジュールを更新する過程を示すフローチャートである。
【符号の説明】
【００６１】
１００  電気機器管理装置、１０２  ソフトウェア更新モジュール、１０４  電気機器管理モジュール、１０６  電気機器群、１１０  機器インタフェースモジュール群、１１２  機器制御モジュール、１１４  機器インタフェースモジュール、１１６  電気機器、１１８  機器状態値記憶部、１３０  サブ更新モジュール、１３２  メイン更新モジュール、１３４  機器インタフェースモジュール用更新モジュール、１３６  機器制御モジュール用更新モジュール、１４２  機器状態値記録部、１４６  電気機器インタフェース処理部、１５８  制御データ記憶部、１６０  制御データ生成部、１７６  機器インタフェースモジュール更新処理部、１９６  機器制御モジュール更新処理部、２１２  メイン更新モジュール更新処理部。
【図１】
2006004373.tif 000003
【図２】
2006004373.tif 000004
【図３】
2006004373.tif 000005
【図４】
2006004373.tif 000006
【図５】
2006004373.tif 000007
【図６】
2006004373.tif 000008
【図７】
2006004373.tif 000009
【図８】
2006004373.tif 000010
【図９】
2006004373.tif 000011
【図１０】
2006004373.tif 000012
【図１１】
2006004373.tif 000013