以下、本発明の実施の形態について図面を参照して詳細に説明する。
(実施の形態1)
図1は、本発明の実施の形態1に係るプログラム転送システム1の構成を示す図である。プログラム転送システム1は、プログラム転送装置2と、複数の設備機器3(3a,3b,3c,…)とを備える。
プログラム転送装置2は、オフィスビル、商業ビル等の建物に設置された設備機器3a,3b,3c,…を集中して管理するための集中管理装置であり、さらに、設備機器3a,3b,3c,…に更新プログラムを転送する装置でもある。
プログラム転送装置2は、図2に示すように、ディスプレイ20と、操作受付部21と、通信インタフェース22と、外部メモリインタフェース23と、二次記憶装置24と、制御部25とを備える。
ディスプレイ20は、液晶ディスプレイ、有機ELディスプレイ、プラズマディスプレイ、CRTディスプレイ等の表示デバイスを含んで構成される。ディスプレイ20は、制御部25の制御の下、設備機器3a,3b,3c,…の動作状態を監視するための監視画面、設備機器3a,3b,3c,…を制御するための操作画面等を表示する。
操作受付部21は、例えば、キーボード、マウス、キーパッド、押しボタン、タッチパネル、タッチパッド等の入力デバイスを備え、設備機器3a,3b,3c,…の管理者等のユーザからの入力操作を受け付け、受け付けた入力操作に係る信号を制御部25に送出する。
通信インタフェース22は、ネットワークN1を介して設備機器3a,3b,3c,…と通信するためのインタフェースである。ネットワークN1は、例えば、RS−485等のシリアル通信規格に基づいて構築された設備ネットワークである。
外部メモリインタフェース23は、USB(Universal Serial Bus)メモリ、SDメモリカード等の記録媒体を接続するためのポート、スロット等を備え、接続された記録媒体から、更新プログラムとその他のデータを読み込むためのインタフェースである。以下、外部メモリインタフェース23に接続される記録媒体を外部装置という。
二次記憶装置24は、EEPROM(Electrically Erasable Programmable Read-Only Memory)、フラッシュメモリ等の読み書き可能な不揮発性の半導体メモリ又はHDD(Hard Disk Drive)を含んで構成される。二次記憶装置24は、設備機器3a,3b,3c,…の動作状態を監視するためのプログラム、設備機器3a,3b,3c,…を制御するためのプログラム、これらのプログラムの実行時に使用されるデータ等を記憶する。
また、二次記憶装置24は、図3に示すように、転送制御プログラム240と、プログラム更新管理テーブル241と、更新スケジュールテーブル242と、更新プログラム情報243とを記憶する。転送制御プログラム240は、制御部25によって実行されるプログラムである。転送制御プログラム240には、外部メモリインタフェース23を介して外部装置から読み出した更新プログラムを設備機器3a,3b,3c,…に転送し、通常プログラムの更新を指示するための処理が記述されている。
プログラム更新管理テーブル241、更新スケジュールテーブル242及び更新プログラム情報243については後述する。
制御部25は、何れも図示しないが、CPU(Central Processing Unit)、ROM(Read Only Memory)、RAM(Random Access Memory)等を含んで構成され、プログラム転送装置2を統括制御する。
設備機器3a,3b,3c,…は、本発明に係る複数の機器の一例である。設備機器3a,3b,3c,…の各々は、例えば、空調機器、照明機器、これらの専用リモコン等である。設備機器3a,3b,3c,…は、上述したネットワークN1に接続され、相互にデータ通信が可能であると共に、プログラム転送装置2とのデータ通信が可能である。プログラム転送装置2と、設備機器3a,3b,3c,…とは、設備システムを構成する。以下、設備機器3a,3b,3c,…にて共通する説明については、特に個々を指定せずに設備機器3と表記する。
各設備機器3は、図4に示すように、通信インタフェース30と、メインユニット31と、二次記憶装置32と、制御部33とを備える。通信インタフェース30は、ネットワークN1を介して上述した通信規格にて他の設備機器3及びプログラム転送装置2と通信するためのインタフェースである。
メインユニット31は、当該設備機器3の本来的な機能を実現するための構成部である。例えば、当該設備機器3が、空調機器の室外機である場合、メインユニット31には、コンプレッサ、凝縮器、膨張弁、蒸発器等が含まれる。あるいは、当該設備機器3が、空調機器の室内機である場合、メインユニット31には、ファン、熱交換器、温度センサ等が含まれ、当該設備機器3が、照明機器である場合、メインユニット31には、LEDが含まれる。
二次記憶装置32は、例えば、EEPROM、フラッシュメモリ等の読み書き可能な不揮発性の半導体メモリで構成される。二次記憶装置32は、図5に示すように、通常プログラム320と、新通常プログラム321と、機種コード322と、バージョン情報323とを記憶する。なお、これらの他にも、二次記憶装置32は、通常プログラム320の実行時に使用されるデータ等、様々なデータを記憶する。
通常プログラム320は、当該設備機器3の通常動作時における制御を行うための処理が記述されたプログラムであり、現在、制御部33により実行中のプログラムである。新通常プログラム321は、プログラム転送装置2から転送された更新プログラムであり、通常プログラム320を書き換えるためのプログラムである。制御部33は、プログラム転送装置2から通信により更新プログラムを取得すると、新通常プログラム321として二次記憶装置32に格納する。
機種コード322は、当該設備機器3の機種コードを示す。機種コードとは、当該設備機器3の機種を識別する情報であり、例えば、型番、型名などである。バージョン情報323は、通常プログラム320のバージョンを示す情報である。
図4に戻り、制御部33は、CPU、ROM、RAM等(何れも図示せず)を含んで構成され、当該設備機器3を統括制御する。設備機器3は、通常動作時において、ネットワークN1を介して、他の設備機器3及びプログラム転送装置2と制御コマンドの送受信を行う。制御部33は、当該設備機器3宛の制御コマンドを通信インタフェース30を介して受信すると、即ち、当該設備機器3の機器アドレスが宛先指定された制御コマンドを正常受信すると、正常受信の応答であるACKコマンドを通信インタフェース30を介して当該制御コマンドの送信元に返送する。また、制御部33は、通信インタフェース30を介して制御コマンドを他の設備機器3に送信した後、当該送信先の設備機器3からのACKコマンドを通信インタフェース30を介して受信できなかった場合、予め定めた最大再送回数を上限として、ACKコマンドを受信するまで制御コマンドの再送を繰り返す。
最大再送回数、制御コマンドを再送しても、ACKコマンドを受信できなかった場合、送信元の設備機器3の制御部33は、当該送信先の設備機器3との間で通信エラーが発生したと判定する。
また、制御部33は、プログラム転送装置2から機種コード及びバージョン情報の送信を指示する通知(以下、情報要求通知という。)を通信インタフェース30を介して受信すると、二次記憶装置32に記憶されている機種コード322及びバージョン情報323を読み出し、これらが格納された応答データを通信インタフェース30を介してプログラム転送装置2に送信する。
また、制御部33は、プログラム転送装置2から通信インタフェース30を介して転送開始通知を受信すると、以後、プログラム転送装置2から順次送られてくるフレームを通信インタフェース30を介して受信することで、更新プログラムを取得する。但し、更新プログラムの受信について、当該設備機器3が特定機器である場合とそうでない場合とで若干の相違がある。
特定機器とは、詳細は後述するが、プログラム転送装置2が、更新プログラムの適用対象となる複数の設備機器3から選定した1台の設備機器3である。以下、更新プログラムの適用対象となる設備機器3を対象機器という。制御部33は、受信した転送開始通知に含まれる特定機器の機器アドレスが自機器の機器アドレスと一致する場合、自機器が特定機器であると判定する。
特定機器は、上記の転送開始通知を受信後、プログラム転送装置2から自機器宛てに順次送信されるフレームを受信することで更新プログラムを取得する。プログラム転送装置2が、特定機器に対して送信する各フレームには、特定機器の機器アドレスと、シーケンス番号と、更新プログラムを分割したデータが格納されている。特定機器は、受信したフレームのシーケンス番号をチェックし、正しいフレームを受信したか否かを判定する。詳細には、特定機器は、受信したフレームのシーケンス番号が前回正常受信したフレームのシーケンス番号+1である場合、正しいフレームを受信した、即ち、正常受信したとして、ACKコマンドをプログラム転送装置2に返送する。
一方、受信したフレームのシーケンス番号が、前回正常受信したフレームのシーケンス番号+1を超えている場合、特定機器は、受信できなかったフレームの再送をプログラム転送装置2に要求するための通知(以下、再送要求通知という。)を送信する。再送要求通知には、要求するフレームのシーケンス番号として、前回正常受信したフレームのシーケンス番号+1が格納されている。なお、既に受信済みのフレームと同一のシーケンス番号が格納されたフレームを再度受信した場合、特定機器は、再度受信したフレームを破棄する。
特定機器以外の対象機器は、上記の転送開始通知を受信後、プログラム転送装置2から特定機器宛てに順次送信されるフレームを受信することで更新プログラムを取得する。換言すると、特定機器を除く対象機器は、プログラム転送装置2から特定機器宛てに順次送信されるフレームを傍受することで更新プログラムを取得する。特定機器以外の対象機器は、受信したフレームのシーケンス番号をチェックし、正しいフレームを受信したか否かを判定する。詳細には、特定機器以外の対象機器は、受信したフレームのシーケンス番号が前回正常受信したフレームのシーケンス番号+1である場合、正しいフレームを受信した、即ち、正常受信したと判定する。但し、特定機器以外の対象機器は、傍受したフレームが正しいフレームであっても、ACKコマンドをプログラム転送装置2に送信しない。
一方、受信したフレームのシーケンス番号が、前回正常受信したフレームのシーケンス番号+1を超えている場合、特定機器以外の対象機器は、特定機器と同様、再送要求通知をプログラム転送装置2に送信する。この再送要求通知には、要求するフレームのシーケンス番号として、前回正常受信したフレームのシーケンス番号+1が格納されている。なお、既に受信済みのフレームと同一のシーケンス番号が格納されたフレームを再度受信した場合、特定機器以外の対象機器は、再度受信したフレームを破棄する。
対象機器(以下、特定機器を含む対象機器全般に共通する説明については、単に「対象機器」と称する。)は、プログラム転送装置2から個別に送信された転送終了通知を受信すると、必要な全てのフレームを受信したか否かを判定する。対象機器は、シーケンス番号1〜Nmax(最大シーケンス番号)の全てのフレームを受信したか否かで上記の判定を行う。Nmaxは、転送開始通知に格納されている。シーケンス番号1〜Nmaxの全てのフレームを受信していない場合、対象機器は、最後に正常受信したフレームのシーケンス番号+1が格納された再送要求通知をプログラム転送装置2に送信する。
一方、必要な全てのフレームを受信すると、対象機器は、各フレームのデータ領域に格納されている分割された更新プログラムのデータを読み出して、シーケンス番号に従って結合することで更新プログラムを復元し、復元した更新プログラムを新通常プログラム321として二次記憶装置32に保存する。
上記のようにして更新プログラムを取得した後、設備機器3は、プログラム転送装置2から個別に送信された更新要求通知を受信すると、二次記憶装置32に保存されている新通常プログラム321を通常プログラム320として保存する。即ち、設備機器3は、通常プログラム320の内容を、新通常プログラム321の内容に書き換える。また、設備機器3は、バージョン情報323を、新たな通常プログラム320のバージョン情報、即ち、取得した更新プログラムのバージョン情報に書き換える。更新プログラムのバージョン情報は、転送開始通知に格納されている。設備機器3は、更新が完了すると、再起動を行う。再起動した設備機器3は、起動通知をプログラム転送装置2に送信する。
図3に戻り、プログラム転送装置2の二次記憶装置24に記憶される、プログラム更新管理テーブル241、更新スケジュールテーブル242及び更新プログラム情報243の詳細について説明する。
プログラム更新管理テーブル241は、各設備機器3について、通常プログラム320の更新を管理するためのレコード(以下、更新管理情報という。)が登録されたデータテーブルである。更新管理情報は、図6に示すように、機器アドレス2410と、機種コード2411と、バージョン情報2412と、コマンド送信回数2413と、通信エラー回数2414と、通信エラー率2415とを含む複数の項目で構成される。
機器アドレス2410には、当該設備機器3の機器アドレスが格納される。機器アドレスとは、設備機器3を識別するための情報であり、ネットワークN1に接続される各設備機器3に割り振られた通信上のアドレスである。機種コード2411は、当該設備機器3の機種コードが格納される。バージョン情報2412には、当該設備機器3の現在の通常プログラム320のバージョンを示す情報が格納される。
コマンド送信回数2413には、プログラム転送装置2から当該設備機器3に対して送信した制御コマンドの回数(但し、再送回数は除く。)が格納される。通信エラー回数2414は、プログラム転送装置2から当該設備機器3に対して制御コマンドを送信した際に発生した通信エラーの通算回数が格納される。通信エラー率2415は、当該設備機器3の通信エラー率が格納される。通信エラー率とは、プログラム転送装置2から当該設備機器3に対して送信した制御コマンドの回数に対する通信エラーの発生割合であり、通信エラー回数2414の格納値をコマンド送信回数2413の格納値で除算することで得られる。
図3に戻り、更新スケジュールテーブル242は、各設備機器3について、通常プログラム320の更新スケジュールを管理するためのレコード(以下、更新スケジュール情報という。)が登録されたデータテーブルである。更新スケジュール情報は、図7に示すように、機器アドレス2420と、更新時間帯2421とを含む複数の項目で構成される。
機器アドレス2420には、当該設備機器3の機器アドレスが格納される。更新時間帯2421には、当該設備機器3において通常プログラム320の更新が可能な時間帯(以下、更新可能時間帯という。)が格納される。更新可能時間帯とは、当該設備機器3が運転を停止しても問題が生じない時間帯であり、例えば、在室者が居ない深夜の時間帯等である。
図3に戻り、更新プログラム情報243は、外部メモリインタフェース23を介して、USBメモリ等の外部装置から読み出された情報である。詳細には、更新プログラム情報243には、図8に示すように、更新プログラム2431と、機種コード2432と、バージョン情報2433とが含まれる。
更新プログラム2431は、更新プログラムそのものを示し、機種コード2432は、更新プログラム2431に対応する機種コードを示し、バージョン情報2433は、更新プログラム2431のバージョンを示す情報である。
続いて、プログラム転送装置2の機能について詳細に説明する。プログラム転送装置2は、機能的には、図9に示すように、通信エラー率算出部200と、更新プログラム取得部201と、機器情報取得部202と、対象機器選定部203と、特定機器選定部204と、プログラム転送部205と、更新指示部206と、更新可能時間帯設定部207とを備える。これらの機能部は、制御部25のCPUが二次記憶装置24に記憶されている転送制御プログラム240を実行することで実現される。
通信エラー率算出部200は、プログラム転送装置2から何れかの設備機器3に対して、制御コマンドが送信される度に(但し、再送は除く。)、当該設備機器3の通信エラー率を算出する。詳細には、制御コマンドが送信される度に、通信エラー率算出部200は、当該設備機器3に対応する更新管理情報(図6参照)のコマンド送信回数2413の格納値をインクリメントする。また、当該制御コマンドの送信で通信エラーが発生した場合、通信エラー率算出部200は、当該更新管理情報の通信エラー回数2414の格納値をインクリメントする。そして、通信エラー率算出部200は、通信エラー回数2414の格納値をコマンド送信回数2413の格納値で除算することで通信エラー率を算出する。通信エラー率算出部200は、算出した通信エラー率を通信エラー率2415に格納する。
更新プログラム取得部201は、本発明に係る更新プログラム取得手段の一例である。更新プログラム取得部201は、作業者等のユーザによって、更新プログラム情報243が記憶された外部装置が外部メモリインタフェース23に接続されると、当該外部装置から更新プログラム情報243を読み出して取得し、二次記憶装置24に保存する。
機器情報取得部202は、更新プログラム取得部201により更新プログラム情報243が取得されると、各設備機器3に対して上述した情報要求通知を個別に送信する。そして、かかる情報要求通知に応答して、各設備機器3から送信された応答データを受信し、受信した応答データから機種コード322及びバージョン情報323を抽出して取得する。機器情報取得部202は、取得した機種コード322を当該設備機器3に対応する更新管理情報(図6参照)の機種コード2411に格納する。また、機器情報取得部202は、取得したバージョン情報323を当該更新管理情報のバージョン情報2412に格納する。なお、機器情報取得部202が、各設備機器3から機種コード322及びバージョン情報323を取得するタイミングは任意の設計事項である。例えば、設備機器3から上述した起動通知を受信した後に、当該設備機器3に対して情報要求通知を送信してもよい。
対象機器選定部203は、全ての設備機器3の内から、更新プログラム取得部201により取得された更新プログラム情報243の更新プログラム2431の適用対象となる対象機器を選定する。詳細には、対象機器選定部203は、更新プログラム情報243の機種コード2432及びバージョン情報2433を使用して、プログラム更新管理テーブル241に登録されている各更新管理情報(図6参照)を参照することで対象機器を選定する。具体的には、対象機器選定部203は、機種コードが一致し、且つ、更新管理情報のバージョン情報2412で示されるバージョンと、バージョン情報2433で示されるバージョンとが異なる場合、当該更新管理情報に対応する設備機器3を対象機器として選定する。
特定機器選定部204は、本発明に係る選定手段の一例である。特定機器選定部204は、選定した対象機器が複数である場合、その内から、プログラム転送装置2との通信が最も不安定なものを特定機器として選定する。詳細には、特定機器選定部204は、プログラム更新管理テーブル241を参照して、選定した複数の対象機器の内で最も通信エラー率の高い対象機器を特定機器として選定する。なお、選定した対象機器が1台である場合、特定機器選定部204は、当該対象機器を特定機器として選定する。
プログラム転送部205は、本発明に係る転送手段の一例である。プログラム転送部205は、対象機器に外部装置から取得した更新プログラム2431を転送する。詳細には、先ず、プログラム転送部205は、各対象機器に対して、上述した転送開始通知を個別に送信する。各転送開始通知には、共通して、更新プログラムの転送が開始されることを示す通知種別と、バージョン情報2433と、最大シーケンス番号(Nmax)と、特定機器を識別する情報(本実施の形態では、機器アドレス)とが格納されている。
各対象機器に対する転送開始通知の送信後、プログラム転送部205は、全ての対象機器に更新プログラム2431を転送する。詳細には、プログラム転送部205は、シーケンス番号と、分割した各データとが格納されたフレームを特定機器を宛先として順次送信する。なお、上述したように、特定機器以外の対象機器は、上記のフレームを傍受する。
プログラム転送部205は、最初のフレームを特定機器宛てに送信した後、特定機器から、直近に送信したフレームに対する正常受信の応答があった場合、即ち、ACKコマンドを受信した場合に、次のフレームを特定機器宛てに送信する。
上述した転送終了通知の送信前に、対象機器から再送要求通知を受信すると、プログラム転送部205は、当該再送要求通知から再送を要求されたフレームのシーケンス番号を抽出する。そして、プログラム転送部205は、当該対象機器に対して、当該シーケンス番号に対応するフレームを送信する。
プログラム転送部205は、特定機器宛ての最後のフレームが送信されると、各対象機器に対して、転送終了通知を個別に送信する。ここで、最後のフレームとは、最大シーケンス番号Nmaxが格納されたフレームである。
更新指示部206は、本発明に係る更新指示手段の一例である。更新指示部206は、更新プログラム2431を転送した設備機器3に対して、通常プログラム320の更新を指示する。詳細には、更新指示部206は、更新プログラム2431を転送した設備機器3の内、未だ通常プログラム320を更新していない設備機器3があるか否かを判定する。未だ通常プログラム320を更新していない設備機器3がある場合、更新指示部206は、該当する各設備機器3について、更新スケジュールテーブル242における対応する更新スケジュール情報(図7参照)をチェックして、現在、通常プログラム320の更新が可能か否かを判定する。通常プログラム320の更新が可能と判定すると、更新指示部206は、当該設備機器3に対して上述した更新要求通知を送信する。
更新可能時間帯設定部207は、設備システムの管理者等が操作受付部21を介して入力した各設備機器3の更新時間帯を、更新スケジュールテーブル242の対応する更新スケジュール情報(図7参照)に設定する。管理者等は、各設備機器3の更新時間帯を適宜変更することができる。
図10は、プログラム転送装置2によって実行されるプログラム転送処理の手順を示すフローチャートである。このプログラム転送処理は、ユーザにより、更新プログラム情報243が記録されたUSBメモリ等の外部装置が外部メモリインタフェース23に接続されることで開始される。
更新プログラム取得部201は、外部メモリインタフェース23に接続された外部装置から更新プログラム情報243(図8参照)を読み出して取得し、二次記憶装置24に保存する(ステップS101)。機器情報取得部202は、各設備機器3に対して上述した情報要求通知を個別に送信することで、各設備機器3から機種コード322及びバージョン情報323を取得する(ステップS102)。
対象機器選定部203は、全ての設備機器3の内から更新プログラム2431の適用対象となる対象機器を選定する(ステップS103)。特定機器選定部204は、選定した対象機器から、プログラム転送装置2との通信が最も不安定なものを特定機器として選定する(ステップS104)。なお、上述したように、選定した対象機器が1台である場合、特定機器選定部204は、当該対象機器を特定機器として選定する。
プログラム転送部205は、各対象機器に対して、上述した転送開始通知を個別に送信する(ステップS105)。プログラム転送部205は、更新プログラム2431を分割した各データが格納された各フレームを特定機器を宛先として順次送信する(ステップS106)。即ち、プログラム転送部205は、更新プログラム2431をNmaxのデータに分割し、シーケンス番号と、分割した各データとが格納された各フレームを特定機器を宛先として順次送信する。
プログラム転送部205により最大シーケンス番号Nmaxが格納されたフレームが特定機器を宛先として送信されると、プログラム転送部205は、各対象機器に対して、転送終了通知を個別に送信する(ステップS107)。この後、プログラム転送装置2は、プログラム転送処理を終了する。
図11は、プログラム転送装置2の更新指示部206によって実行される更新指示処理の手順を示すフローチャートである。この更新指示処理は、予め定めた周期で(例えば、1分毎に)繰り返し実行される。
更新指示部206は、更新プログラム2431を転送済みの設備機器3の内、通常プログラム320を未更新の設備機器3があるか否かを判定する(ステップS201)。通常プログラム320を未更新の設備機器3がないと判定した場合(ステップS201;NO)、更新指示部206は、本周期での更新指示処理を終了する。
一方、通常プログラム320を未更新の設備機器3があると判定した場合(ステップS201;YES)、当該設備機器3の内、現時点において通常プログラム320の更新が可能な設備機器3があるか否かを判定する(ステップS202)。現時点において通常プログラム320の更新が可能な設備機器3がないと判定した場合(ステップS202;NO)、更新指示部206は、本周期での更新指示処理を終了する。
現時点において通常プログラム320の更新が可能な設備機器3があると判定した場合(ステップS202;YES)、更新指示部206は、当該設備機器3に対して更新要求通知を送信する(ステップS203)。この後、更新指示部206は、本周期での更新指示処理を終了する。
図12を参照して、プログラム転送システム1の全体的な動作について説明する。プログラム転送装置2に外部装置が接続されると、プログラム転送装置2は、外部装置から更新プログラム情報243(図8参照)を読み出して取得する(ステップS301)。
プログラム転送装置2は、各設備機器3に対して情報要求通知を個別に送信して、各設備機器3から機種コード322及びバージョン情報323を取得する(ステップS302)。プログラム転送装置2は、全ての設備機器3の内から更新プログラム2431の適用対象となる対象機器を選定し、選定した対象機器から特定機器を選定する(ステップS303)。本例では、対象機器として、設備機器3a〜3cが選定され、特定機器として設備機器3aが選定されたものとする。
プログラム転送装置2は、各対象機器に対して転送開始通知を個別に送信する(ステップS304)。そして、プログラム転送装置2は、更新プログラム2431をNmax個のデータに分割し、各データが格納されたNmax個のフレームを特定機器、即ち、設備機器3a宛てに順次送信する(ステップS305)。その際、プログラム転送装置2は、特定機器から、直近に送信したフレームに対するACKコマンドを受信した場合に、次のフレームを特定機器宛てに送信する。
特定機器である設備機器3aは、自機器宛てのフレームを順次受信して、更新プログラム2431を分割したデータを順次取得する(ステップS306)。設備機器3aは、正しいフレームを受信した場合、ACKコマンド(即ち、ACK応答)をプログラム転送装置2に送信する。また、特定機器以外の対象機器である設備機器3b,3cは、それぞれ、設備機器3a宛てのフレームを順次受信(即ち、順次傍受)して、更新プログラム2431を分割したデータを順次取得する(ステップS307)。
Nmax番目のフレームを特定機器宛てに送信すると、プログラム転送装置2は、設備機器3a〜3cに対して転送終了通知を個別に送信する(ステップS308)。
やがて、現在時刻が設備機器3aによる通常プログラム320の更新可能な時間帯に突入すると、プログラム転送装置2は、設備機器3aに対して更新要求通知を送信する(ステップS309)。かかる更新要求通知を受信すると、設備機器3aは、通常プログラム320を更新し、再起動を行う(ステップS310)。詳細には、設備機器3aは、二次記憶装置32に保存されている新通常プログラム321(即ち、プログラム転送装置2から転送された更新プログラム2431)を通常プログラム320として保存することで、通常プログラム320を更新し、更新が完了すると再起動を行う。そして、再起動した設備機器3aは、プログラム転送装置2に起動通知を送信する(ステップS311)。
また、現在時刻が設備機器3bによる通常プログラム320の更新可能な時間帯に突入すると、プログラム転送装置2は、設備機器3bに対して更新要求通知を送信する(ステップS312)。かかる更新要求通知を受信すると、設備機器3bは、通常プログラム320を更新し、再起動を行う(ステップS313)。そして、再起動した設備機器3bは、プログラム転送装置2に起動通知を送信する(ステップS314)。
また、現在時刻が設備機器3cによる通常プログラム320の更新可能な時間帯に突入すると、プログラム転送装置2は、設備機器3cに対して更新要求通知を送信する(ステップS315)。かかる更新要求通知を受信すると、設備機器3cは、通常プログラム320を更新し、再起動を行う(ステップS316)。そして、再起動した設備機器3cは、プログラム転送装置2に起動通知を送信する(ステップS317)。
以上説明したように、実施の形態1に係るプログラム転送システム1では、プログラム転送装置2は、外部装置から更新プログラム2431を取得すると、更新プログラム2431の適用対象となる全対象機器から通信エラー率が最も高い特定機器を選定する。そして、プログラム転送装置2は、更新プログラム2431を複数のデータに分割し、各データが格納された複数のフレームを特定機器宛てに順次送信する。特定機器は、自機器宛てのフレームを順次受信することで、更新プログラム2431を取得する。また、特定機器以外の対象機器は、特定機器宛てのフレームを順次受信(即ち、順次傍受)することで、更新プログラム2431を取得する。
これにより、更新プログラム2431を、対象となる全ての設備機器3に個別に送信する場合に比べ、通信データ量を低減することができる。また、プログラム転送装置2との通信が不安定な設備機器3に対しても、更新プログラム2431の転送における安定性を確保でき、フレーム紛失等によるプログラム転送装置2への再送要求の発生頻度を抑制できる。
さらに、更新プログラム2431の転送後、ユーザにより設備機器3毎に予め設定された更新可能時間帯に従って、プログラム転送装置2は、各設備機器3に対して通常プログラム320の更新を指示するため、各設備機器3は、ユーザの快適性、利便性を損なわないタイミングで、通常プログラム320の更新を実行することができる。
(実施の形態2)
続いて、本発明の実施の形態2について説明する。なお、以下の説明において、実施の形態1と共通する構成要素等については、同一の符号を付し、その説明を省略する。
図13は、実施の形態2に係るプログラム転送システム1Aの構成を示す図である。プログラム転送システム1Aは、プログラム転送装置2Aと、複数の設備機器3(3a,3b,3c,…)と、管理サーバ4とを備える。
管理サーバ4は、本発明に係る外部装置の一例である。管理サーバ4は、遠隔地から設備システムにおける設備機器3a,3b,3c,…を監視し、制御するためのサーバコンピュータであり、ネットワークN2を介してプログラム転送装置2Aと通信可能に接続する。ネットワークN2は、WAN(Wide Area Network)、インターネット等の広域ネットワークである。
プログラム転送装置2Aは、実施の形態1のプログラム転送装置2と同様、設備機器3a,3b,3c,…を集中して管理するための集中管理装置である。プログラム転送装置2Aのハードウェア構成は、実施の形態1のプログラム転送装置2と同様(図2参照)であるが、プログラム転送装置2Aの通信インタフェース22は、ネットワークN2を介して外部の装置と通信するためのインタフェースをさらに備える。
また、プログラム転送装置2Aの更新プログラム取得部201は、外部メモリインタフェース23を介してUSB等の記録媒体から更新プログラム情報243を取得するだけでなく、さらに、管理サーバ4から送られてきた更新プログラム情報243をネットワークN2を介して受信して取得することもできる。この他のプログラム転送装置2Aの機能については、実施の形態1のプログラム転送装置2と同様である(図9参照)。
このように、実施の形態2に係るプログラム転送システム1Aでは、プログラム転送装置2Aは、外部装置である管理サーバ4から通信により更新プログラム2431を取得し、対象となる各設備機器3に転送する。このため、実施の形態1と同等の効果を奏することに加え、作業者等のユーザの作業負荷が軽減される。
なお、プログラム転送装置2Aは、更新プログラム2431を転送した全ての設備機器3から、起動通知を受信した場合、管理サーバ4に対して更新完了通知を送信してもよい。また、プログラム転送装置2Aの更新可能時間帯設定部207は、管理サーバ4から通信により各設備機器3の更新可能時間帯を取得し、取得した各設備機器3の更新時間帯を、更新スケジュールテーブル242の対応する更新スケジュール情報(図7参照)に設定してもよい。
本発明は、上記の各実施の形態に限定されず、本発明の要旨を逸脱しない範囲での種々の変更は勿論可能である。
例えば、上記の各実施の形態では、プログラム転送装置2は、設備システムを集中して管理する集中管理装置であったが、設備機器3a,3b,3c,…の何れかであってもよく、あるいは、通常プログラム320の更新作業を行う際、一時的にネットワークN1に接続される専用端末であってもよい。
また、転送開始通知には、機種コード2432がさらに格納されていてもよい。この場合、対象機器は、転送開始通知に含まれる機種コード2432及びバージョン情報2433と、自機器の二次記憶装置32に保存されている機種コード322及びバージョン情報323とを比較することで、当該転送開始通知の正否をチェックすることができる。
また、転送開始通知には、最大シーケンス番号(Nmax)に替えて、又は、併用して、更新プログラム2431のデータサイズが格納されていてもよい。
上記の各実施の形態では、プログラム転送装置2,2Aの制御部25が備えるCPUによって二次記憶装置24に記憶されている転送制御プログラム240が実行されることで、プログラム転送装置2,2Aの各機能部(図9参照)が実現された。しかし、プログラム転送装置2,2Aの機能部の全部又は一部が、専用のハードウェアで実現されるようにしてもよい。専用のハードウェアとは、例えば、単一回路、複合回路、プログラム化されたプロセッサ、ASIC(Application Specific Integrated Circuit)、FPGA(Field-Programmable Gate Array)、又は、これらの組み合わせである。
上記の各実施の形態において、転送制御プログラム240は、CD−ROM(Compact Disc Read Only Memory)、DVD(Digital Versatile Disc)、光磁気ディスク(Magneto-Optical Disc)、USBメモリ、メモリカード、HDD等のコンピュータ読み取り可能な記録媒体に格納して配布することも可能である。そして、このように配布した転送制御プログラム240を特定の又は汎用のコンピュータにインストールすることによって、当該コンピュータを上記の各実施の形態におけるプログラム転送装置2,2Aとして機能させることも可能である。
また、転送制御プログラム240をインターネット上の図示しないサーバが有する記憶装置に格納しておき、当該サーバからプログラム転送装置2,2Aに転送制御プログラム240がダウンロードされるようにしてもよい。
本発明は、広義の精神と範囲を逸脱することなく、様々な実施の形態及び変形が可能である。また、上述した実施の形態は、本発明を説明するためのものであり、本発明の範囲を限定するものではない。つまり、本発明の範囲は、実施の形態ではなく、請求の範囲によって示される。そして、請求の範囲内及びそれと同等の発明の意義の範囲内で施される様々な変形が、本発明の範囲内とみなされる。