(57)【要約】【課題】ソフトウェア更新対象のコントローラの記憶装置の空き容量を更新データの容量が越える場合でも、ソフトウェアの遠隔更新が可能な建設機械のソフトウェア遠隔更新システムを提供すること。【解決手段】建設機械１０１に搭載された複数のコントローラ１０２−１０５に含まれ、更新対象ソフトウェア３０４を格納したコントローラ１０３において、更新対象ソフトウェアの更新用データの容量及び各コントローラの空き容量を取得する容量取得部１３０と、各コントローラの空き容量に収まるようにサーバ１１２の更新用データを分割して各コントローラにダウンロードする分割ダウンロード部１３４と、その分割してダウンロードされた更新用データを基にコントローラの更新対象ソフトウェアを更新する更新部１３６とを備える。【選択図】  図１３
2018018307.tif 000002
【特許請求の範囲】
【請求項１】
ソフトウェアが格納された記憶装置及び前記ソフトウェアを実行する処理装置をそれぞれ有し、車載ネットワークを介して相互通信可能に接続された複数のコントローラと、
前記複数のコントローラを外部のコンピュータと相互通信可能に接続する無線通信端末とを備える建設機械のソフトウェア遠隔更新システムにおいて、
前記複数のコントローラに含まれ、第１ソフトウェアを前記記憶装置に格納した第１コントローラは、
前記外部のコンピュータに格納された前記第１ソフトウェアの更新用データの容量、及び、前記複数のコントローラの記憶装置のそれぞれの空き容量を取得する容量取得部と、
前記第１コントローラの記憶装置に格納された第１ソフトウェアの更新要求指令の入力があり、さらに、前記更新用データの容量が、前記第１コントローラの記憶装置の空き容量を越え、且つ、前記複数のコントローラの記憶装置の空き容量の合計値以下の場合に、前記無線通信端末を介して前記外部のコンピュータから前記更新用データを前記建設機械にダウンロードするに際して、前記複数のコントローラの記憶装置のそれぞれの空き容量に収まるように前記更新用データを分割して前記複数のコントローラの記憶装置のそれぞれにダウンロードする分割ダウンロード部と、
前記分割ダウンロード部で分割してダウンロードされた前記更新用データを基に前記第１コントローラの第１ソフトウェアを更新する更新部とを有すること
を特徴とする建設機械のソフトウェア遠隔更新システム。
【請求項２】
請求項１に記載の建設機械のソフトウェア遠隔更新システムにおいて、
前記第１コントローラは、前記容量取得部で取得した前記複数のコントローラの記憶装置のそれぞれの空き容量を基に、前記分割ダウンロード部で前記更新用データを分割してダウンロードする前記複数のコントローラの優先順位を決定する優先順位決定部をさらに有し、
前記容量取得部で取得した前記複数のコントローラの記憶装置のそれぞれの空き容量の情報、及び、前記優先順位決定部で決定した優先順位の情報を表示する表示装置をさらに備えること
を特徴とする建設機械のソフトウェア遠隔更新システム。
【請求項３】
請求項１に記載の建設機械のソフトウェア遠隔更新システムにおいて、
前記分割ダウンロード部による前記更新用データのダウンロード中に、前記更新用データのダウンロード先のコントローラの名称、及び、前記更新用データのダウンロードの進捗状況とを表示する表示装置をさらに備えること
を特徴とする建設機械のソフトウェア遠隔更新システム。
【請求項４】
請求項１に記載の建設機械のソフトウェア遠隔更新システムにおいて、
前記更新部による前記第１ソフトウェアの更新中に、前記更新用データの取得先のコントローラの名称と、前記第１ソフトウェアの更新の進捗状況を表示する表示装置をさらに備えること
を特徴とする建設機械のソフトウェア遠隔更新システム。
【請求項５】
請求項１に記載の建設機械のソフトウェア遠隔更新システムにおいて、
ソフトウェアが格納された記憶装置及び前記ソフトウェアを実行する処理装置をそれぞれ有し、車載ネットワークを介して相互通信可能に接続された複数のコントローラと、前記外部のコンピュータ及び前記建設機械と相互通信可能に接続する無線通信端末とを備える他の建設機械をさらに備え、
前記容量取得部は、前記外部のコンピュータに格納された前記第１ソフトウェアの更新用データの容量、及び、前記建設機械及び前記他の建設機械に搭載された前記複数のコントローラの記憶装置のそれぞれの空き容量を取得し、
前記分割ダウンロード部は、前記第１コントローラの記憶装置に格納された第１ソフトウェアの更新要求指令の入力があり、さらに、前記更新用データの容量が、前記第１コントローラの記憶装置の空き容量を越え、且つ、前記建設機械及び前記他の建設機械に搭載された前記複数のコントローラの記憶装置の空き容量の合計値以下の場合に、前記無線通信端末を介して前記外部のコンピュータから前記更新用データを前記建設機械及び前記他の建設機械にダウンロードするに際して、前記建設機械及び前記他の建設機械に搭載された前記複数のコントローラの記憶装置のそれぞれの空き容量に収まるように前記更新用データを分割して前記建設機械及び前記他の建設機械に搭載された前記複数のコントローラの記憶装置のそれぞれにダウンロードし、
前記更新部は、前記分割ダウンロード部で分割してダウンロードされた前記更新用データを基に前記第１コントローラの第１ソフトウェアを更新すること
を特徴とする建設機械のソフトウェア遠隔更新システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、建設機械に搭載されるコントローラのソフトウェアを遠隔で書き換えることができる建設機械のソフトウェア遠隔更新システムに関する。
【背景技術】
【０００２】
近年では、建設機械の電子制御化が進み、建設機械に搭載されたコンピュータである分散型コントローラのソフトウェアは、複雑化と大規模化の一途である。ソフトウェアが複雑化した結果、ソフトウェアの更新件数が増加し、それに伴いソフトウェアの更新作業を行う回数は増加している。
【０００３】
コントローラのソフトウェア更新作業は、サービス作業員が建設機械の在る場所まで直接行き、コントローラ自体を交換すること、または、コントローラに書き換え装置を接続しブートモードで起動してソフトウェアを書き換えることによって行っている。このため、ソフトウェア更新回数の増加は、サービス作業員の負担となっている。
【０００４】
そこで、サービス作業員の負担を軽減するためにコントローラのソフトウェア更新を遠隔にあるサーバによって書き換えるシステムが提案されている。これは、ソフトウェアの更新データを遠隔地にある建設機械の通信端末に無線送信し、その建設機械のコントローラ内のＲＡＭのテンポラリー領域に当該更新データを一時保存し、当該更新データの通信が完了した後に、フラッシュＲＯＭ領域の旧ソフトウェアを遠隔で書き換えるようにしている。なお、ＲＡＭのテンポラリー領域にソフトウェアの更新データを一時保存する理由は、通信異常等で更新が失敗した場合に更新前のソフトウェア（旧ソフトウェア）でコントローラを動作させるバックアップ動作を保証するためである（例えば、特許文献１参照。）。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００４―１９９４９１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかし、コントローラのソフトウェア大規模化に伴い、更新データの容量は大きくなっており、ソフトウェア更新対象のコントローラに搭載されているＲＯＭ等の記憶装置の空き容量に更新データを全てダウンロードできない場合がある。このような場合、ソフトウェアの遠隔更新はできないため、結局、サービス作業員や更新作業者が建設機械の場所まで出向いてソフトウェア更新作業を行うことが必要になる。そのため、サービス作業員や更新作業者の負担となる。また、ソフトウェア更新の遅れや、サービス作業員や更新作業者による現場での更新作業は、建設機械のダウンタイムの増加に繋がるため、建設機械の利用効率が低下するおそれがある。
【０００７】
本発明の目的は、上述の課題を解決するために、ソフトウェア更新対象のコントローラの記憶装置の空き容量を更新データの容量が越える場合でも、ソフトウェアの遠隔更新が可能な建設機械のソフトウェア遠隔更新システムを提供することにある。
【課題を解決するための手段】
【０００８】
本願は上記課題を解決する手段を複数含んでいるが、その一例を挙げるならば、ソフトウェアが格納された記憶装置及び前記ソフトウェアを実行する処理装置をそれぞれ有し、車載ネットワークを介して相互通信可能に接続された複数のコントローラと、前記複数のコントローラを外部のコンピュータと相互通信可能に接続する無線通信端末とを備える建設機械のソフトウェア遠隔更新システムにおいて、前記複数のコントローラに含まれ、第１ソフトウェアを前記記憶装置に格納した第１コントローラは、前記外部のコンピュータに格納された前記第１ソフトウェアの更新用データの容量、及び、前記複数のコントローラの記憶装置のそれぞれの空き容量を取得する容量取得部と、前記第１コントローラの記憶装置に格納された第１ソフトウェアの更新要求指令の入力があり、さらに、前記更新用データの容量が、前記第１コントローラの記憶装置の空き容量を越え、且つ、前記複数のコントローラの記憶装置の空き容量の合計値以下の場合に、前記無線通信端末を介して前記外部のコンピュータから前記更新用データを前記建設機械にダウンロードするに際して、前記複数のコントローラの記憶装置のそれぞれの空き容量に収まるように前記更新用データを分割して前記複数のコントローラの記憶装置のそれぞれにダウンロードする分割ダウンロード部と、前記分割ダウンロード部で分割してダウンロードされた前記更新用データを基に前記第１コントローラの第１ソフトウェアを更新する更新部とを有するものとする。
【発明の効果】
【０００９】
本発明によれば、ソフトウェア更新対象以外のコントローラの記憶装置の空き容量に更新データを分割して格納することで、ソフトウェア更新対象のコントローラの記憶装置の空き容量を更新データの容量が越える場合であってもソフトウェアの遠隔更新が可能となる。
【図面の簡単な説明】
【００１０】
【図１】建設機械のソフトウェア遠隔更新システムの基本構成図。
【図２】情報コントローラの基本構成図。
【図３】情報コントローラのフラッシュＲＯＭに格納したプログラムの構成図。
【図４】情報コントローラの状態記憶フラッシュＲＯＭに格納した変数の構成図。
【図５】各コントローラの空き容量と更新データ格納先のコントローラの優先順位を示すモニタ画面の一例である。
【図６】更新データの格納先コントローラと更新データのダウンロード進捗状況を示すモニタ画面の一例である。
【図７】ソフトウェア更新時の更新データ取得先コントローラとソフトウェア更新の進捗状況を示すモニタ画面の一例である。
【図８】車体制御プログラムの処理フローを示した図。
【図９】イニシャルプログラムローダの処理フローを示した図。
【図１０】ダウンロードプログラムの処理フローを示した図。
【図１１】更新プログラムの処理フローを示した図。
【図１２】図１のソフトウェア遠隔更新システムが搭載される建設機械の一例である油圧ショベルの側面図。
【図１３】情報コントローラの機能ブロック図。
【発明を実施するための形態】
【００１１】
以下、本発明の実施の形態について図面を用いて説明する。
【００１２】
図１は本発明の実施の形態に係る建設機械のソフトウェア遠隔更新システムの基本構成図である。図１２は図１のソフトウェア遠隔更新システムが搭載される建設機械１０１の一例である油圧ショベルの側面図である。以下では油圧ショベルにシステムを搭載した例について説明するが、車載ネットワークを介して相互通信可能に接続された複数のコントローラと、当該複数のコントローラを外部のコンピュータと相互通信可能に接続する無線通信端末を備える建設機械（例えば、クレーン、ローダ、ダンプトラック等）であれば他の建設機械にも搭載可能である。
【００１３】
図１２に示す油圧ショベル（建設機械１０１）において、下部走行体１０は、一対のクローラ１１及びクローラフレーム１２（図では片側のみを示す）、各クローラ１１を独立して駆動制御する一対の走行用油圧モータ１３（図では片側のみを示す）及びその減速機構などで構成されている。
【００１４】
上部旋回体２０は、旋回フレーム２１と、旋回フレーム２１上に設けられた、原動機としてのエンジン２２と、旋回用油圧モータ２４の駆動力により下部走行体１０に対して上部旋回体２０（旋回フレーム２１）を旋回駆動させるための旋回機構２３と、オペレータが搭乗して操作を行うキャブ（運転室）などで構成されている。
【００１５】
上部旋回体２０には、ブーム３１と、ブーム３１を駆動するためのブームシリンダ３２と、ブーム３１の先端部近傍に回転自在に軸支されたアーム３３と、アーム３３を駆動するためのアームシリンダ３４と、アーム３３の先端に回転可能に軸支されたバケット３５と、バケット３５を駆動するためのバケットシリンダ３６などで構成された多関節型のフロント作業機３０が搭載されている。
【００１６】
上部旋回体２０の旋回フレーム２１上には、走行用油圧モータ１３，旋回用油圧モータ２４、ブームシリンダ３２、アームシリンダ３４、バケットシリンダ３６などの油圧アクチュエータを駆動するための油圧を発生する油圧ポンプ４０、及び各アクチュエータを駆動制御するための、図示されないコントロールバルブを含む油圧システムが搭載されている。油圧源となる油圧ポンプ４０はエンジン２２によって駆動される。
【００１７】
図１において、建設機械１０１は、ソフトウェアが格納された記憶装置（例えば、ＲＡＭ、フラッシュＲＯＭ、ハードディスクドライブ）及び当該ソフトウェアを実行する処理装置（例えば、ＣＰＵ）をそれぞれ有する複数のコントローラ（コンピュータ）１０２，１０３，１０４，１０５を備えている。具体的には、エンジン２２の回転数やトルク等を制御するエンジンコントローラ１０２と、建設機械１０１の稼働状況や故障情報などの車体情報を収集する情報コントローラ１０３と、油圧ポンプ４０やバルブ等を制御する車体制御コントローラ１０４と、表示装置たるモニタ１１０に表示される項目や画面を制御するモニタコントローラ１０５を搭載している。これらのコントローラ１０２，１０３，１０４，１０５は、車載ネットワーク１０６によって相互通信可能に接続されている。
【００１８】
また、建設機械１０１は、無線通信端末１０７と、モニタ１１０と、モニタ操作装置１１１と、キースイッチ１２０を備えている。
【００１９】
無線通信端末１０７は、情報コントローラ１０３又は車載ネットワーク１０６に接続されている。無線通信端末１０７は、外部のコンピュータ（例えば更新データ格納サーバ１１２）と建設機械１０１を相互データ通信可能に接続している。図１の例では建設機械１０１と更新データ格納サーバ１１２の無線通信１０８の通信インフラとして、無線基地局１０９と、無線基地局１０９と更新データ格納サーバ１１２を接続する通信線１１３が存在している。
【００２０】
更新データ格納サーバ１１２は、建設機械１０１から遠隔地に設置された外部のコンピュータであり、自身の記憶装置（例えば、ＲＯＭ、ＲＡＭ、ハードディスクドライブ）に格納されているデータ（例えば、コントローラ１０２，１０３，１０４，１０５のソフトウェアの更新データ（更新用データとも称する））を、無線基地局１０９を介して建設機械１０１に送信することが可能である。
【００２１】
モニタ１１０は、モニタコントローラ１０５に接続され、建設機械１０１のエンジン回転数や燃料残量等の各種車両情報や、各コントローラのソフトウェア更新に関する情報等を表示することが可能である。モニタ１１０としては例えば液晶モニタが利用可能である。
【００２２】
モニタ操作装置１１１は、モニタコントローラ１０５に接続され、モニタ１１０に表示される情報の変更を行う等のモニタ表示画面の操作を行うことが可能な入力装置である。モニタ操作装置１１１は、モニタ専用の操作装置である必要は無く、マウス、モニタ、タッチパネル等の汎用的な入力装置に代替可能である。
【００２３】
キースイッチ（イグニッションキー）１２０は、キー穴に差し込まれたエンジンキーを回転させることで、ＯＦＦ位置、ＯＮ位置、スタート位置のいずれかに切り換えられる。ＯＮ位置では、コントローラ１０２，１０３，１０４，１０５を含む所定の電動機器（エアコン、ラジオを含む）にバッテリ（図示せず）からの電力供給が開始され、当該電動機器が起動される。スタート位置では、スタータモータ（図示せず）が起動されてエンジン２２が始動される。ＯＦＦ位置では、エンジン２２が作動している場合には停止し、当該電動機器への電力供給が停止される。
【００２４】
以下では、情報コントローラ１０３のソフトウェア（車体制御プログラム３０４（図３参照））に対して更新要求指令があった場合を例に挙げて説明する。また、以下では、作業者から更新要求指令のあったコントローラ（具体的には、コントローラ１０２，１０３，１０４，１０５のいずれかであり、本稿の例では情報コントローラ１０３）のことを「更新対象コントローラ」と称することがある。
【００２５】
図２は、情報コントローラ１０３のハードウェア構成図である。情報コントローラ１０３には、ダウンロードスイッチ２０１と通信端末１０７が接続されている。ダウンロードスイッチ２０１は、作業者により操作される装置であって、ソフトウェア更新作業を行う場合にはＯＮ位置に切り替えられ、更新作業を行わない場合にはＯＦＦ位置に切り替えられる。ダウンロードスイッチ２０１がＯＮ位置に切り替えられると、情報コントローラ１０３に対してソフトウェアの更新要求指令が入力される。
【００２６】
情報コントローラ１０３は、記憶装置として、フラッシュＲＯＭ２０３と、ＲＡＭ２０４と、状態記憶フラッシュＲＯＭ２０５を備えている。フラッシュＲＯＭ２０３には、図示しないセンサからの入力データを基に演算される車体情報と、建設機械１０１の制御に必要な各種プログラム（後述のプログラムを含む）と、当該各種プログラムを実行する１つ以上のソフトウェア等が格納されている。ＲＡＭ２０４は、ＣＰＵ２０２が演算処理を行う場合等に用いる一時記憶装置である。状態記憶フラッシュＲＯＭ２０５は、建設機械１０１の起動モードが通常、ダウンロード及び更新のいずれであるかを記録し、またソフトウェア更新状況が完了及び未完了のいずれであるかを記録する。なお、状態記憶フラッシュＲＯＭ２０５の機能は、フラッシュＲＯＭ２０３に搭載可能であり、両者を１つのＲＯＭにしても良い。
【００２７】
また、情報コントローラ１０３は、上記の記憶装置（フラッシュＲＯＭ２０３）に格納されたソフトウェアを実行する処理装置であるＣＰＵ２０２と、通信端末１０７とデータ通信を行うためのシリアルＩ／Ｏ（シリアル入出力装置）２０６と、車載ネットワーク１０６とデータ通信を行うための車載ネットワークＩ／Ｏ（車載ネットワーク入出力装置）２０７と、ダウンロードスイッチ２０１の信号を検知するためのセンサＩ／Ｏ（センサ入出力装置）２０８と、情報コントローラ１０３内で電気を必要とする部分と電源ケーブルで接続され、当該部分に電源を供給する電源２０９とを有する。また、情報コントローラ１０３の各部は通信線２１０によって相互に接続されている。
【００２８】
図１３は、情報コントローラ１０３の機能ブロック図である。この図に示すように情報コントローラ１０３は、容量取得部１３０、優先順位決定部１３２、分割ダウンロード部１３４、および更新部１３６として機能する。なお、各部１３０，１３２，１３４，１３５は、情報コントローラ１０３内のフラッシュＲＯＭ２０３等の記憶装置に記憶されるプログラムでソフトウェア的に構成しても良いし、情報コントローラ１０３に含まれる回路でハードウェア的に構成しても良い。
【００２９】
容量取得部１３０は、更新データ格納サーバ１１２（外部のコンピュータ）に格納されたソフトウェアの更新データであって、更新要求指令のあったコントローラ（具体的には、コントローラ１０２，１０３，１０４，１０５のいずれかであり、以下において「更新対象コントローラ」と称することがある）のソフトウェアの更新データの容量と、建設機械１０１に搭載された全てのコントローラ１０２，１０３，１０４，１０５の記憶装置のうち当該更新データの格納に利用可能な空き容量を全てのコントローラ１０２，１０３，１０４，１０５から取得する処理を実行する部分である。
【００３０】
分割ダウンロード部１３４は、無線通信端末１０７を介して更新データ格納サーバ１１２から更新対象コントローラの更新用データを建設機械１０１にダウンロードするに際して、各コントローラ１０２，１０３，１０４，１０５の記憶装置の空き容量に収まるように更新用データを分割して各コントローラ１０２，１０３，１０４，１０５の記憶装置にダウンロードする処理を実行する部分である。なお、更新データを分割ダウンロードする場合、２つ以上のコントローラの記憶装置を利用すれば良く、全てのコントローラの記憶装置を利用する必要は無い。また、更新対象コントローラの記憶装置を必ず利用する必要も無いが、更新対象コントローラの記憶装置を利用すれば通信速度が確保されるので後続するソフトウェア更新処理の速度を向上できる。
【００３１】
更新部１３６は、分割ダウンロード部１３４で複数のコントローラの記憶装置に分割してダウンロードされた更新用データを参照して更新対象コントローラのソフトウェアを更新する処理を実行する部分である。
【００３２】
優先順位決定部１３２は、容量取得部１３０で取得した各コントローラ１０２，１０３，１０４，１０５の記憶装置の空き容量を基に、分割ダウンロード部１３４により更新用データを分割してダウンロードするコントローラの優先順位を決定する処理を実行する部分である。優先順位（分割ダウンロード先の順番）の決定方法としては、種々の方法が適用可能であるが、例えば、記憶装置の空き容量が多い順、更新対象コントローラとの通信速度が速い順、または建設機械での利用頻度の少ない順、にダウンロードを行っていくものがある。
【００３３】
なお、詳細な説明は省略するが、エンジンコントローラ１０２、車体制御コントローラ１０４及びモニタコントローラ１０５も、情報コントローラ１０３と同様に、ＣＰＵ２０２、記憶装置（例えば、フラッシュＲＯＭ２０３、ＲＡＭ２０４、状態記憶フラッシュＲＯＭ２０５）、車載ネットワークＩ／Ｏ２０７及び電源２０９を備えている。また、エンジンコントローラ１０２、車体制御コントローラ１０４及びモニタコントローラ１０５も、情報コントローラ１０３と同様に、容量取得部１３０、優先順位決定部１３２、分割ダウンロード部１３４及び更新部１３６として機能する。
【００３４】
図３は、情報コントローラ１０３のフラッシュＲＯＭ２０３の使用状況を、フラッシュＲＯＭ２０３に格納されたプログラムの内訳とともに示した図である。図３において，フラッシュＲＯＭ２０３は、建設機械１０１を起動した後最初に実行されるイニシャルプログラムローダ３０１と、更新データを基に車体制御ソフトウェアを更新する更新プログラム３０２と、更新データを建設機械１０１にダウンロードするためのダウンロードプログラム３０３と、建設機械１０１の車体を制御するための車体制御プログラム３０４と、プログラムが書き込まれていない空エリア３０５で構成されている。４つのプログラム３０１〜３０４の中で、車体制御プログラム３０４は情報コントローラ１０３のメインプログラムであり、他のプログラム３０１，３０２，３０３は、車体制御プログラム（メインプログラム）３０４の更新作業に利用されるサブプログラムである。
【００３５】
なお、実際には、ファイル管理領域等に使用している容量を空エリア３０５の容量から除外したものが情報コントローラ１０３の記憶装置の空き容量となるが、本稿ではファイル管理領域は考慮せず空エリアの容量を当該記憶装置の空き容量とする。
【００３６】
図４は、情報コントローラ１０３の状態記憶フラッシュＲＯＭ２０５に格納した変数の内訳を示した図である。状態記憶フラッシュＲＯＭ２０５は、情報コントローラ１０３で利用される変数として、起動モード変数４０１と、更新完了変数４０２を記憶している。
【００３７】
起動モード変数４０１は、キースイッチ１２０をＯＮ位置に切り換えることにより建設機械１０１の電源をＯＮにしたときに起動されるイニシャルプログラムローダがどのプログラムを展開すべきかを決定する再に利用される変数である。起動モード変数４０１には、１：通常、２：ダウンロード、３：更新、の３つの変数のいずれかが格納される。初期設定では「通常」に設定される。
【００３８】
更新完了変数４０２は、更新対象コントローラのソフトウェアの更新が完了したか否かを判定する際に利用される変数である。更新完了変数４０２には、１：完了、２：未完了の２つの変数のいずれかが格納される。初期設定では「完了」が設定される。
【００３９】
図９は、情報コントローラ１０３の起動時（建設機械１０１の始動時）に開始されるイニシャルプログラムローダ３０１の処理フローを示した図である。
【００４０】
図９の処理フローには大きく４つのパスが存在する。具体的には、１：ステップ９０１、９０２、９０３から成る第１パス、２：ステップ９０１、９０４、９０５から成る第２パス、３：ステップ９０１、９０４、９０６から成る第３パス、４：ステップ９０１、９０２、９０７、９０８から成る第４パスである。第１パスでは図８に示した車体制御プログラムの一連の処理が起動される。第２パスでは図１０に示したダウンロードプログラム３０３の一連の処理が起動される。第３パスでは図１１に示した更新プログラム３０２の一連の処理が起動される。第４パスでは、フラッシュＲＯＭ２０３をソフトウェア更新処理の開始前の状態に復帰するとともに、状態記憶フラッシュＲＯＭ２０５の起動モード変数及び更新完了変数を初期設定値（「１：通常」と「１：完了」）に戻す処理が行われる。次に図９の具体的な処理内容を説明する。
【００４１】
＜１．イニシャルプログラムローダ３０１の処理フロー１（第１パス）＞
図９のフローチャートは、キースイッチ１２０がＯＮ位置に切り換えられて建設機械１０１の電源がＯＮになり、情報コントローラ１０３が起動した際に実行される。ステップ９０１では、イニシャルプログラムローダ３０１は、状態記憶フラッシュＲＯＭ２０５に起動モード変数を参照しにいき、起動モード変数が「通常」か否かを判定する。
【００４２】
ステップ９０１で、起動モード変数が初期設定値の場合も含め、起動モード変数が「通常」と判定された場合には、ステップ９０２に進む。ステップ９０２では、イニシャルプログラムローダ３０１は、状態記憶フラッシュＲＯＭ２０５に更新完了変数を参照しにいき、そこで更新完了変数が「完了」か否かの判定をする。ステップ９０２で、更新完了変数が初期設定値の場合も含め、更新完了変数が「完了」と判定された場合には、ステップ９０３で車体制御プログラム３０４を起動し、イニシャルプログラムローダ３０１による処理を終了する。次に図８を用いて車体制御プログラム３０４の処理フローについて説明する。
【００４３】
＜２．車体制御プログラム３０４の処理フロー＞
図８は車体制御プログラム３０４の処理フローを示した図である。図９のステップ９０３で車体制御プログラム３０４が起動されると図８の処理フローが開始される。
【００４４】
ステップ８０１では、ダウンロードスイッチ２０１の切り替え位置がＯＮ位置か否かを確認し、ステップ８０２では、通信端末１０７の接続が有りか否かを確認する。
【００４５】
まず、ステップ８０１でダウンロードスイッチ２０１がＯＦＦ位置と判定された場合（建設機械１０１の通常使用時）、または、ステップ８０２で通信端末１０７の接続が無いと判定された場合（通信不能時）には、ステップ８０５の車体制御処理が行われ、ステップ８０６のキースイッチ１２０がＯＦＦ位置か否かの判定処理が行われる。これにより、キースイッチがＯＦＦ位置に切り換えられるまでは、ステップ８０１、８０２、８０５、８０６が繰り返される。すなわち、建設機械１０１は通常使用が可能な状態に維持される。
【００４６】
ステップ８０６でキースイッチがＯＦＦ位置にあると判定された場合には、建設機械１０１の電源、すなわち情報コントローラ１０３の電源をＯＦＦにして処理を終了する。
【００４７】
一方、ステップ８０１，８０２で、ダウンロードスイッチ２０１がＯＮ位置と判定され、かつ通信端末１０７の接続が有り（通信状態が良好）と判定された場合は、ステップ８０３で起動モード変数４０１に「ダウンロード」を格納し、ステップ８０４で更新完了変数４０２に「未完了」を格納し、情報コントローラ１０３を再起動する。なお、情報コントローラ１０３の再起動に際しては、再起動をしても良いか更新作業者に確認するメッセージをモニタ１１０に表示し、ＹＥＳの場合には再起動を実行、ＮＯの場合にはステップ８０５及びそれ以降の処理を実行するように構成しても良い。
【００４８】
＜３．イニシャルプログラムローダ３０１の処理フロー２（第２パス）＞
車体制御プログラム３０４により情報コントローラ１０３が再起動されると、イニシャルプログラムローダ３０１により図９の処理フローが再び開始される。この場合、起動モード変数４０１は「ダウンロード」であるため、ステップ９０１からステップ９０４に進む。
【００４９】
ステップ９０４では、イニシャルプログラムローダ３０１は、状態記憶フラッシュＲＯＭ２０５の起動モード変数を再度参照し、起動モード変数が「ダウンロード」か否かを判定する。この場合、起動モード変数４０１は「ダウンロード」であるため、ステップ９０５でダウンロードプログラム３０３を起動し、イニシャルプログラムローダ３０１による処理を終了する。次に図１０を用いてダウンロードプログラム３０３の処理フローについて説明する。
【００５０】
＜４．ダウンロードプログラム３０３の処理フロー＞
図１０はダウンロードプログラム３０３の処理フローを示した図である。図９のステップ９０５でダウンロードプログラム３０３が起動されると図１０の処理フローが開始される。
【００５１】
まず、ダウンロードが行われる場合のフローについて記述する。ステップ１００１では、ダウンロードプログラム３０３（容量取得部１３０）は、エンジンコントローラ１０２と、情報コントローラ１０３と、車体制御コントローラ１０４と、モニタコントローラ１０５にそれぞれ搭載されているフラッシュＲＯＭ内に存在する空エリアの容量（空き容量）を取得し、その合計値を計算する。また、更新データ格納サーバ１１２に格納された更新データの容量を取得する。
【００５２】
ステップ１００２では、更新データの容量が、更新対象コントローラ（情報コントローラ１０３）の記憶装置（フラッシュＲＯＭ２０３）の空き容量を超え、かつ、前述の空エリア容量の合計値以下であるかを確認する。この条件が成立する場合は、ステップ１００３が実行される。
【００５３】
ステップ１００３では、ダウンロードプログラム３０３（優先順位決定部１３２）は、ステップ１００１で取得した各コントローラ１０２，１０３，１０４，１０５の記憶装置の空き容量を基に、更新データを分割してダウンロード（格納）するコントローラの優先順位と、分割後の各更新データの容量を決定する。ここでは、ソフトウェア更新対象のコントローラ（情報コントローラ１０３）を最優先とし、２番目以降の順番は空き容量の大きい順とする。優先順位に従って空き容量を合計し、その合計値が更新データの容量を上回ることが確認できたら、それ以降のコントローラは更新データの格納対象から除外することもできる。なお、更新データを格納するコントローラの優先順位を定めずに、更新データを格納するコントローラの順番は常に一定としてもよい。この場合、ステップ１００３は省略可能である。また、更新データを格納する順番を更新作業者に決定させる構成を採用しても良い。
【００５４】
ステップ１００４では、ダウンロードプログラム３０３は、各コントローラ１０２，１０３，１０４，１０５の記憶装置の空き容量と、その空き容量の合計値と、更新データ格納先コントローラの優先順位と、ダウンロード実行／不実行を確認するメッセージを示す表示画面（図５）をモニタ１１０に表示するようにモニタコントローラ１０５に指令を出力する。
【００５５】
図５は、各コントローラの記憶装置の空き容量（空エリアの容量）と、その合計の容量と、分割した更新データを格納する順番（優先順位）と、ダウンロード実行／不実行を確認するメッセージを示すモニタ画面の一例である。このモニタ１１０の表示画面に基づいて、更新作業者にダウンロード実行／不実行の判断を依頼し、更新作業者は、モニタ操作装置１１１を介してダウンロード実行／不実行を決定する。
【００５６】
ステップ１００５では、ステップ１００４での更新作業者の決定を基に、更新作業者がダウンロード実行と不実行のいずれを選択したかを判定する。ダウンロード実行が選択された場合にはステップ１００６に進み、不実行が選択された場合にはステップ１０１１に進む。なお、更新作業者のダウンロードの意思は図８のステップ８０１で一度確認しているので、ステップ１００４でのダウンロード実行／不実行を確認するメッセージの表示とステップ１００５は省略可能である。
【００５７】
ステップ１００６では、ダウンロードプログラム３０３（分割ダウンロード部１３４）は、通信端末１０７を用いて更新データ格納サーバ１１２から更新データのダウンロードを開始する。ステップ１０１４では、ダウンロードした更新データを格納先コントローラの空き容量に合わせて分割する。ステップ１００７は、情報コントローラ１０３から車載ネットワーク１０６を介して他のコントローラに対して、Ｓ１００３で決定した順番及び容量に従って更新データを分散して格納する。
【００５８】
ステップ１００６の処理によって、更新データの容量が、単一のコントローラの空エリアに格納できない場合であっても、複数のコントローラの空エリアに分割して格納することで当該更新データによるソフトウェアの遠隔更新が可能となる。
【００５９】
ステップ１００８では、ダウンロードプログラム３０３（分割ダウンロード部１３４）は、その時点で更新データを格納中のコントローラの名称と、更新データのダウンロード作業の進捗状況を示す表示画面（図６）をモニタ１１０に表示するようにモニタコントローラ１０５に指令を出力する。
【００６０】
図６は、その時点で更新データを格納中のコントローラ名称と、更新データのダウンロード作業の進捗状況を示すモニタ画面の一例である。図６の例では、ダウンロード作業の進捗状況をプログレスバーと百分率で表示している。
【００６１】
ステップ１００９では、ダウンロードプログラム３０３（分割ダウンロード部１３４）は、更新データのダウンロード状況を確認する。更新データのダウンロードが完了していない場合は、ステップ１００６〜１００８の処理フローへ戻る。一方、ダウンロードが完了していれば、ステップ１０１０で起動モード変数４０１に「更新」を格納し、情報コントローラ１０３を再起動する。
【００６２】
次に、図１０におけるダウンロードが行われない場合のフローについて説明する。ステップ１００２において、更新データの容量が、更新対象コントローラ（情報コントローラ１０３）の記憶装置（フラッシュＲＯＭ２０３）の空き容量を以下の場合、または、空エリア容量の合計値を越える場合は、ステップ１０１１で起動モード変数４０１に「通常」を格納し、ステップ１０１２で更新完了変数４０２に「完了」を格納し、情報コントローラ１０３を再起動する。これにより再起動後は図９のステップ９０３でイニシャルプログラムローダ３０１により車体制御プログラム３０４が起動されることになるので、更新データの容量が空エリアの容量の合計値を超えた場合には当該更新データのダウンロードは中止となる。また、ステップ１００５で更新作業者によりダウンロードの不実行が選択された場合も同様に、ステップ１０１１及び１０１２を実行する。そして、ステップ１０１３で更新データのダウンロードが行われない旨をモニタ１１０に表示し、情報コントローラ１０３を再起動する。これにより更新作業者によりダウンロード不実行の決定がなされた場合にも、当該更新データのダウンロードは中止される。なお、ステップ１０１３のモニタ表示に際して、ステップ１００２を経由した場合には、ダウンロード不実行の理由、すなわち更新データの容量が空き容量合計を越えるのでダウンロードできない、を表示するようにシステムを構成しても良い。
【００６３】
＜５．イニシャルプログラムローダ３０１の処理フロー３（第３パス）＞
図１０のステップ１０１０を経由してダウンロードプログラム３０３により情報コントローラ１０３が再起動されると、イニシャルプログラムローダ３０１により図９の処理フローが再び開始される。この場合、起動モード変数４０１は「更新」であるため、ステップ９０１からステップ９０４を経由してステップ９０６に進む。
【００６４】
ステップ９０６では更新プログラム３０２を起動し、イニシャルプログラムローダ３０１による処理を終了する。次に図１１を用いて更新プログラム３０２の処理フローについて説明する。
【００６５】
＜６．更新プログラム３０２の処理フロー＞
図１１は更新プログラム３０２の処理フローを示した図である。図９のステップ９０６で更新プログラム３０２が起動されると図１１の処理フローが開始される。
【００６６】
まず、ソフトウェア更新作業が正常に終了した場合のフローについて記述する。ステップ１１０１では、更新プログラム３０２（更新部１３６）は、ダウンロードプログラム３０３により各コントローラに分散して格納された更新データに関する情報（例えば、格納されたコントローラの名称、分散された更新データの容量、分散された更新データが全体のどの部分に該当するか等）を各コントローラから取得する。これにより、ソフトウェア更新対象のコントローラ（情報コントローラ１０３）は、他のコントローラに分散・格納された更新データを必要とするとき（すなわち更新データをインストールするとき）に、他のコントローラから車載ネットワーク１０６を介して必要な更新データを取得することが可能となる。
【００６７】
ステップ１１０２では、更新プログラム３０２（更新部１３６）は、ステップ１１０１で取得した情報と各コントローラに分散・格納された各更新データを基に車体制御ソフトウェア（車体制御プログラム３０４）の更新を行う。
【００６８】
ステップ１１０２の実行とともに、更新プログラム３０２（更新部１３６）は、ソフトウェア更新に際してその時点で更新データを取得しているコントローラの名称と、ソフトウェア更新の進捗状況を示す表示画面（図７）をモニタ１１０に表示するようにモニタコントローラ１０５に指令を出力する（ステップ１１０３）。
【００６９】
図７は、ソフトウェア更新に際してその時点で更新データを取得しているコントローラの名称と、ソフトウェア更新の進捗状況を示すモニタ画面の一例である。図７の例では、ソフトウェア更新の進捗状況をプログレスバーと百分率で表示している。
【００７０】
ステップ１１１４では、更新プログラム３０２（更新部１３６）はソフトウェア更新作業が完了しているか確認する。ソフトウェア更新作業が終了したと判断された場合は、ステップ１１０４に進む。ソフトウェア更新作業が終了していないと判断された場合は、ステップ１１０１に戻り、必要な場合には各コントローラに格納した更新データの残りを各コントローラから取得する。ステップ１１０２以降は前述した通りである。
【００７１】
ステップ１１０４では、ソフトウェア更新作業の結果を基に、元の更新データと更新後のソフトウェアの整合性を確認する。整合性の確認方法としては例えばチェックサムによる誤り検出がある。整合性が保たれている場合は、ステップ１１０５で起動モード変数４０１に「通常」（すなわち初期設定値）を格納し、ステップ１１０６で更新完了変数４０２に「完了」（すなわち初期設定値）を格納する。そして、ステップ１１１０でソフトウェア更新が正常終了したことをモニタ１１０に表示し、情報コントローラ１０３を再起動する。本処理によって、ソフトウェア更新処理を完了とする。なお、この場合、情報コントローラ１０３の再起動後のイニシャルプログラムローダ３０１の処理は初期設定と同じ第１パスを通過することになる。
【００７２】
次に、図１１において、ソフトウェア更新処理が失敗した場合のフローについて説明する。ステップ１１０１からステップ１１０４の説明は前述の通りである。
【００７３】
ステップ１１０４で確認したソフトウェア更新作業の整合性が崩れていた場合は、ステップ１１０７で起動モード変数４０１に「ダウンロード」を格納し、ステップ１１０８で更新完了変数４０２に「未完了」を格納する。そして、ステップ１１１２でソフトウェア更新に異常が発生したことをモニタ１１０に表示し、情報コントローラ１０３を再起動する。
【００７４】
＜７．イニシャルプログラムローダ３０１の処理フロー４（第４パス）＞
図１１でソフトウェア更新処理が失敗した場合、すなわちステップ１１０７及びステップ１１０８を経由した場合には、更新プログラム３０２により情報コントローラ１０３が再起動され、イニシャルプログラムローダ３０１により図９の処理フローが再び開始される。この場合、起動モード変数４０１は「ダウンロード」であるため、ステップ９０１からステップ９０２に進み、更新完了変数４０２は「未完了」であるため、ステップ９０７に進む。
【００７５】
ステップ９０７では、フラッシュＲＯＭ２０３の空エリア３０５を更新処理開始前の状態に戻し（初期化を行い）、ステップ６０８では、状態記憶フラッシュＲＯＭ２０５の２つの変数を初期設定値にセットする。この処理は、ソフトウェア更新処理が中断される等で正常終了しなかった場合に実行される処理で、フラッシュＲＯＭ２０３、および状態記憶フラッシュＲＯＭ２０５の初期化を行い、ソフトウェア更新処理開始前の状態へ復帰させる。
【００７６】
ところで、本実施形態では、ソフトウェア更新対象のコントローラに搭載されているＲＯＭ等の記憶装置の空き容量に更新データを全てダウンロードできない場合があるという課題を解決するために、建設機械が搭載している複数のコントローラの記憶装置の空き容量を統合して利用することに着目した。
【００７７】
そこで、上記の実施形態では、ソフトウェアが格納されたフラッシュＲＯＭ（記憶装置）及びソフトウェアを実行するＣＰＵ（処理装置）をそれぞれ有し、車載ネットワーク１０６を介して相互通信可能に接続された複数のコントローラ１０２，１０３，１０４，１０５と、複数のコントローラ１０２，１０３，１０４，１０５を外部の更新データ格納サーバ１１２と相互通信可能に接続する無線通信端末１０７とを備える建設機械１０１のソフトウェア遠隔更新システムにおいて、複数のコントローラ１０２，１０３，１０４，１０５に含まれ車両制御プログラム（更新対象のソフトウェア）３０４がフラッシュＲＯＭ２０３に格納された情報コントローラ１０３が、サーバ１１２に格納された車両制御プログラム３０４の更新データの容量、及び、複数のコントローラ１０２，１０３，１０４，１０５のフラッシュＲＯＭ（記憶装置）のそれぞれの空き容量を取得する容量取得部１３０と、情報コントローラ１０３の車両制御プログラムの更新要求指令の入力があり、さらに、その更新データの容量が、情報コントローラ１０３のフラッシュＲＯＭ２０３の空き容量を越え、且つ、複数のコントローラ１０２，１０３，１０４，１０５のフラッシュＲＯＭ（記憶装置）の空き容量の合計値以下の場合に、無線通信端末１０７を介して更新データ格納サーバ１１２から更新データを建設機械１０１にダウンロードするに際して、複数のコントローラ１０２，１０３，１０４，１０５のフラッシュＲＯＭ（記憶装置）のそれぞれの空き容量に収まるように更新データを分割して複数のコントローラ１０２，１０３，１０４，１０５のフラッシュＲＯＭ（記憶装置）のそれぞれにダウンロードする分割ダウンロード部１３４と、分割ダウンロード部１３４で分割してダウンロードされた更新データを基に情報コントローラ１０３の車両制御プログラムを更新する更新部１３６とを有することとした。
【００７８】
このように構成したソフトウェア遠隔更新システムによれば、単一のコントローラに搭載されている記憶装置（フラッシュＲＯＭ）の空エリアに更新データを空き容量の関係ですべて格納できない場合でも、分割ダウンロード部１３４（ダウンロードプログラム３０３）を用いて、複数のコントローラ１０２，１０３，１０４，１０５に搭載されている記憶装置の空エリアに更新データを分散して格納することができる。そして、更新対象のコントローラは、更新部１３６（更新プログラム３０２）を用いて，各コントローラ１０２，１０３，１０４，１０５に分散して格納された更新データをソフトウェア更新時に取得することが可能となる。以上のことから、ソフトウェア更新対象のコントローラの記憶装置の空き容量を更新データの容量が越える場合であってもソフトウェアの遠隔更新が可能となる。また、ソフトウェア更新用に各コントローラの記憶装置に設けておく空き容量を従前より小さくできるので、システムの導入及び運用に必要なコストを低廉に抑制できる。
【００７９】
また、上記の実施形態では、情報コントローラ１０３は、容量取得部１３０で取得した複数のコントローラの記憶装置のそれぞれの空き容量を基に、分割ダウンロード部１３４で更新データを分割してダウンロードする複数のコントローラの優先順位を決定する優先順位決定部１３２をさらに有し、容量取得部１３０で取得した複数のコントローラの記憶装置のそれぞれの空き容量の情報、及び、優先順位決定部１３２で決定した優先順位の情報を表示するモニタ１１０をさらに備えた。
【００８０】
すなわち、図１０のステップ１００４で、容量取得部１３０から得られる各コントローラの空き容量の情報と更新データ格納先優先順位の情報をモニタ１１０に表示するようにしたので、各コントローラの空き容量と優先順位を更新作業者が容易に認識できる。
【００８１】
また、上記の実施形態では、分割ダウンロード部１３４による更新データのダウンロード中に、更新データのダウンロード先のコントローラの名称、及び、更新データのダウンロードの進捗状況とを表示するモニタ１１０をさらに備えた。
【００８２】
すなわち、図１０のステップ１００８で、更新データのダウンロード先のコントローラ名称と、更新データのダウンロードの進捗状況をモニタ１１０に表示するようにしたので、更新データのダウンロード先のコントローラの名称とダウンロードの進捗状況を，更新作業者が容易に認識できる。
【００８３】
また、上記の実施形態では、更新部１３６によるソフトウェアの更新中に、更新データの取得先のコントローラの名称と、ソフトウェアの更新の進捗状況を表示するモニタ１１０をさらに備えた。
【００８４】
すなわち、図１１のステップ１１０３で、分散格納した更新データの取得先コントローラ名称とソフトウェア更新作業の進捗状況をモニタ１１０に表示するようにしたので、各コントローラの更新データの取得先コントローラ名称とソフトウェア更新作業の進捗状況を更新作業者が容易に把握できる。
【００８５】
＜付記＞
なお、上記では建設機械に４つのコントローラが搭載された場合を例示したが、コントローラは２つ以上の建設機械であれば本発明は適用可能である。
【００８６】
上記では更新対象のソフトウェアを車体制御プログラム３０４としたが、イニシャルプログラムローダ３０１、更新プログラム３０２、ダウンロードプログラム３０３を更新対象のソフトウェアとすることもできる。
【００８７】
図１０のステップ１００６において更新データ格納サーバ１１２から建設機械１０１に更新データをダウンロードする際、各コントローラの記憶装置の空き容量に合わせた更新データの分割作業は、更新データ格納サーバ１１２で行うようにすることもできる。
【００８８】
上記では、無線通信端末１０７が情報コントローラ１０３に接続されている場合を例示したたが、無線通信端末１０７は他のコントローラの通信にも利用可能である。
【００８９】
上記では、ダウンロードスイッチ２０１をハードウェアで構成したが、モニタ１１０の画面に表示されるソフトウェアでも構成できる。その場合、他のコントローラのダウンロード指示を入力するスイッチを追加しても良い。
【００９０】
更新データの保存先は、建設機械とは異なる場所に設置されたコンピュータであれば特に限定は無い。すなわち、ソフトウェア更新に用いる更新データは、上記例の更新データ格納サーバ１１２に代えて、建設機械１０１と同じネットワークに無線接続された他の建設機械のコントローラの記憶装置、又はコンピュータに格納し、当該他の建設機械又は当該コンピュータから無線通信を介してダウンロードするように構成しても良い。この場合、無線基地局１０９などの社会通信インフラが無い場所でも建設機械のソフトウェアの遠隔更新を行うことができる。
【００９１】
ところで、自動車等と異なり、建設機械は同じ作業場所・同じ管理者のもとで同じメーカーの建設機械が複数台利用されることが少なくないため、同じローカルネットワークに接続された複数の建設機械同士で連携がとりやすい。上記では単一の建設機械１０１に搭載された複数のコントローラの記憶装置を分割後の更新データのダウンロード先に指定したが、これに代えて又は追加して、他の建設機械のコントローラの記憶装置をダウンロード先に指定し、当該他の建設機械にダウンロードした更新データを用いて建設機械１０１のコントローラのソフトウェア更新作業を行っても良い。
【００９２】
すなわち、この場合は、上記の建設機械１０１と同様の構成、すなわち、ソフトウェアが格納された記憶装置（例えば、フラッシュＲＯＭ２０３）及びソフトウェアを実行する処理装置（例えば、ＣＰＵ２０２）をそれぞれ有し、車載ネットワークを介して相互通信可能に接続された複数のコントローラと、先の建設機械１０１と相互通信可能に接続する無線通信端末とを備える他の建設機械をシステム構成に追加する。そして、先の建設機械１０１の容量取得部１３０が、サーバ１１２に格納されたソフトウェアの更新データの容量、並びに、先の建設機械１０１及び他の建設機械に搭載された複数のコントローラの記憶装置のそれぞれの空き容量を取得するように構成する。そして、先の建設機械１０１の分割ダウンロード部１３４が、先の建設機械１０１で更新対象のコントローラの記憶装置に格納されたソフトウェア（例えば、情報コントローラ１０３の車体制御プログラム３０４）の更新要求指令の入力があり、さらに、そのソフトウェアの更新データの容量が、先の建設機械１０１の更新対象のコントローラの記憶装置の空き容量を越え、且つ、先の建設機械１０１及び他の建設機械に搭載された複数のコントローラの記憶装置の空き容量の合計値以下の場合に、無線通信端末１０７を介して外部のコンピュータ（さらに他の建設機械のコントローラでも良い）から更新データを先の建設機械１０１及び他の建設機械にダウンロードするに際して、先の建設機械１０１及び他の建設機械に搭載された複数のコントローラの記憶装置のそれぞれの空き容量に収まるように更新データを分割して先の建設機械１０１及び他の建設機械に搭載された複数のコントローラの記憶装置のそれぞれにダウンロードするように構成する。そして、先の建設機械１０１の更新部１３６が、分割ダウンロード部１３４により分割して先の建設機械１０１及び他の建設機械のコントローラにダウンロードした更新データを基に更新対象のコントローラのソフトウェアを更新するように構成する。このようなシステムを構成すると、更新用データのダウンロード先の数を格段に向上できるので、ソフトウェアが大容量化しても遠隔でのソフトウェア更新が容易になる。
【００９３】
なお、分割した更新データを２台の建設機械（先の建設機械１０１と他の建設機械）のどちらに格納するかは、更新データが格納されたコンピュータ（例えば更新データ格納サーバ１１２）が当該２台の建設機械のコントローラの空き容量に応じて決定しても良い。そして分割した更新データのダウンロードは各建設機械で個別に行っても良い。また、上記の２台の例に限らず、３台以上の建設機械でシステムを構成しても良いことはいうまでもない。
【００９４】
ところで、本発明は、上記の実施の形態に限定されるものではなく、その要旨を逸脱しない範囲内の様々な変形例が含まれる。例えば、本発明は、上記の実施の形態で説明した全ての構成を備えるものに限定されず、その構成の一部を削除したものも含まれる。また、ある実施の形態に係る構成の一部を、他の実施の形態に係る構成に追加又は置換することが可能である。また、最終的に得られる結果が同じであれば、図８，９，１０，１１の処理及びこれに関連する処理は、順番変更や省略が適宜可能である。
【００９５】
また、上記のコントローラに係る各構成や当該各構成の機能及び実行処理等は、それらの一部又は全部をハードウェア（例えば各機能を実行するロジックを集積回路で設計する等）で実現しても良い。また、上記のコントローラに係る構成は、処理装置（例えばＣＰＵ）によって読み出し・実行されることで当該コントローラの構成に係る各機能が実現されるプログラム（ソフトウェア）としてもよい。当該プログラムに係る情報は、例えば、半導体メモリ（フラッシュメモリ、ＳＳＤ等）、磁気記憶装置（ハードディスクドライブ等）及び記録媒体（磁気ディスク、光ディスク等）等に記憶することができる。
【符号の説明】
【００９６】
１０１…建設機械、１０３…情報コントローラ（第１コントローラ）、１０７…無線通信端末、１１２…更新データ格納サーバ（外部のコンピュータ）、１０９…通信装置、１１０…モニタ（表示装置）、１３０…容量取得部、１３２…優先順位決定部、１３４…分割ダウンロード部、１３６…更新部、２０１…ダウンロードスイッチ、２０３…フラッシュＲＯＭ、２０５…状態記憶フラッシュＲＯＭ、３０１…イニシャルプログラムローダ、３０２…更新プログラム、３０３…ダウンロードプログラム、３０４…車体制御プログラム、３０５…空エリア（フラッシュＲＯＭ内）
【図１】
2018018307.tif 000003
【図２】
2018018307.tif 000004
【図３】
2018018307.tif 000005
【図４】
2018018307.tif 000006
【図５】
2018018307.tif 000007
【図６】
2018018307.tif 000008
【図７】
2018018307.tif 000009
【図８】
2018018307.tif 000010
【図９】
2018018307.tif 000011
【図１０】
2018018307.tif 000012
【図１１】
2018018307.tif 000013
【図１２】
2018018307.tif 000014
【図１３】
2018018307.tif 000015