IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 日立建機株式会社の特許一覧

<>
  • 特許-作業機械 図1
  • 特許-作業機械 図2
  • 特許-作業機械 図3
  • 特許-作業機械 図4
  • 特許-作業機械 図5
  • 特許-作業機械 図6
  • 特許-作業機械 図7
  • 特許-作業機械 図8
  • 特許-作業機械 図9
  • 特許-作業機械 図10
  • 特許-作業機械 図11
  • 特許-作業機械 図12
  • 特許-作業機械 図13
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-03-27
(45)【発行日】2023-04-04
(54)【発明の名称】作業機械
(51)【国際特許分類】
   G06F 8/65 20180101AFI20230328BHJP
   E02F 9/20 20060101ALI20230328BHJP
   B60R 16/02 20060101ALI20230328BHJP
【FI】
G06F8/65
E02F9/20 N
B60R16/02 660U
【請求項の数】 4
(21)【出願番号】P 2020003183
(22)【出願日】2020-01-10
(65)【公開番号】P2021111154
(43)【公開日】2021-08-02
【審査請求日】2021-12-14
(73)【特許権者】
【識別番号】000005522
【氏名又は名称】日立建機株式会社
(74)【代理人】
【識別番号】110001829
【氏名又は名称】弁理士法人開知
(72)【発明者】
【氏名】伊藤 純
(72)【発明者】
【氏名】三輪 茂
(72)【発明者】
【氏名】西澤 靖恵
(72)【発明者】
【氏名】長岡 雄輝
(72)【発明者】
【氏名】今野 繁哉
【審査官】河合 弘明
(56)【参考文献】
【文献】特開2017-156936(JP,A)
【文献】特開2015-219837(JP,A)
【文献】特開2008-171289(JP,A)
【文献】特開2016-045791(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 8/00-8/38
8/60-8/77
9/44-9/445
9/451
E02F 3/42-3/43
3/84-3/85
9/20-9/22
(57)【特許請求の範囲】
【請求項1】
自作業機械に搭載される機器を制御する制御装置と、無線基地局を介してサーバと通信を行う第1通信装置と、を備える作業機械において、
前記自作業機械とは別の複数の他作業機械と直接通信を行う第2通信装置を備え、
前記制御装置は、
複数の前記他作業機械のうちの第1他作業機械が有するプログラム情報のバージョンが、前記自作業機械が有するプログラム情報のバージョンよりも新しい場合に、前記第2通信装置を介して前記第1他作業機械から前記プログラム情報を取得し、取得した前記プログラム情報によって前記自作業機械の前記プログラム情報を更新し、
前記第1他作業機械から取得した前記プログラム情報の更新に失敗した場合に前記自作業機械に記憶されている書換前後記録を参照し、更新前のバージョンのプログラム情報が、複数の前記他作業機械のうちの前記第1他作業機械とは別の第2他作業機械に存在するか否かを判定し、
更新前のバージョンのプログラム情報が、前記第2他作業機械に存在すると判定された場合には、前記第2通信装置を介して前記第2他作業機械から前記第2他作業機械を制御するためのプログラム情報でもある前記更新前のバージョンのプログラム情報を取得し、取得した前記更新前のバージョンのプログラム情報によって前記自作業機械の前記プログラム情報を復旧する、
ことを特徴とする作業機械。
【請求項2】
請求項1に記載の作業機械において、
前記制御装置は、前記プログラム情報の更新を行う前に、前記自作業機械の前記プログラム情報を前記第2通信装置により前記他作業機械に送信し、前記他作業機械の記憶装置に記憶させる、
ことを特徴とする作業機械。
【請求項3】
請求項1に記載の作業機械において、
オペレータによって操作される入力装置を備え、
前記制御装置は、前記入力装置からの信号に基づいて、複数の前記他作業機械がそれぞれ有している前記プログラム情報のうちのいずれかを選択し、選択した前記プログラム情報を前記第2通信装置を介して前記他作業機械から取得し、取得した前記プログラム情報によって前記自作業機械の前記プログラム情報を更新する、
ことを特徴とする作業機械。
【請求項4】
自作業機械に搭載される機器を制御する制御装置と、無線基地局を介してサーバと通信を行う第1通信装置と、を備える作業機械において、
前記自作業機械とは別の他作業機械と直接通信を行う第2通信装置を備え、
前記制御装置は、前記他作業機械が有するプログラム情報のバージョンが、前記自作業機械が有するプログラム情報のバージョンよりも新しい場合に、前記第2通信装置を介して前記他作業機械から前記プログラム情報を取得し、取得した前記プログラム情報によって前記自作業機械の前記プログラム情報を更新し、
さらに、前記制御装置は、
前記第2通信装置を介して前記他作業機械からオーナー情報を取得し、
前記他作業機械から取得した前記他作業機械のオーナー情報と前記自作業機械のオーナー情報とを比較し、
前記他作業機械から取得した前記他作業機械のオーナー情報と前記自作業機械のオーナー情報とが一致しない場合、オペレータに対して前記他作業機械のオーナー情報の入力を要求し、
入力されたオーナー情報が前記他作業機械から取得した前記他作業機械のオーナー情報に一致しない場合には、前記他作業機械から前記プログラム情報を取得せず、入力されたオーナー情報が前記他作業機械から取得した前記他作業機械のオーナー情報に一致する場合には、前記他作業機械から前記プログラム情報を取得し、取得した前記プログラム情報によって前記自作業機械の前記プログラム情報を更新し、
前記他作業機械から取得した前記他作業機械のオーナー情報と前記自作業機械のオーナー情報とが一致する場合、オペレータに対して前記他作業機械のオーナー情報の入力を要求することなく、前記他作業機械から前記プログラム情報を取得し、取得した前記プログラム情報によって前記自作業機械の前記プログラム情報を更新する、
ことを特徴とする作業機械。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、作業機械に関する。
【背景技術】
【0002】
特許文献1には、現在利用されているプログラムを記憶するとともにプログラムを更新プログラムで書き換える書換処理を実行する車両コントローラと、更新プログラムを有するサーバに対して携帯電話通信網を介して通信可能でかつサーバから受信した更新プログラムを記憶する通信コントローラと、を有する作業機械が記載されている。
【先行技術文献】
【特許文献】
【0003】
【文献】特開2017-41114号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
特許文献1に記載の作業機械では、携帯電話事業者が展開する携帯電話通信網および無線基地局を介してサーバから更新プログラムを取得する構成であるため、通信コストがかかるという問題がある。特に、作業現場に複数の作業機械が稼働している場合には、複数の作業機械がそれぞれサーバと通信を行って更新プログラムを取得する必要が生じるため、作業機械の数が多くなるほど、通信コストが増大してしまう。
【0005】
本発明は、通信コストの低減を図ることを目的とする。
【課題を解決するための手段】
【0006】
本発明の一態様による作業機械は、自作業機械に搭載される機器を制御する制御装置と、無線基地局を介してサーバと通信を行う第1通信装置と、を備える。作業機械は、さらに前記自作業機械とは別の複数の他作業機械と直接通信を行う第2通信装置を備え、前記制御装置は、複数の前記他作業機械のうちの第1他作業機械が有するプログラム情報のバージョンが、前記自作業機械が有するプログラム情報のバージョンよりも新しい場合に、前記第2通信装置を介して前記第1他作業機械から前記プログラム情報を取得し、取得した前記プログラム情報によって前記自作業機械の前記プログラム情報を更新し、前記第1他作業機械から取得した前記プログラム情報の更新に失敗した場合に前記自作業機械に記憶されている書換前後記録を参照し、更新前のバージョンのプログラム情報が、複数の前記他作業機械のうちの前記第1他作業機械とは別の第2他作業機械に存在するか否かを判定し、更新前のバージョンのプログラム情報が、前記第2他作業機械に存在すると判定された場合には、前記第2通信装置を介して前記第2他作業機械から前記第2他作業機械を制御するためのプログラム情報でもある前記更新前のバージョンのプログラム情報を取得し、取得した前記更新前のバージョンのプログラム情報によって前記自作業機械の前記プログラム情報を復旧する。
【発明の効果】
【0007】
本発明によれば、通信コストの低減を図ることができる。
【図面の簡単な説明】
【0008】
図1】作業機械の管理システムの構成を示す図。
図2】作業機械に搭載される油圧システム及び制御装置を示す図である。
図3】各コントローラの不揮発性メモリの構成について示す図。
図4】プログラムバージョンテーブルについて示す図。
図5】オーナー情報について示す図。
図6】書換前後記録について示す図。
図7】情報コントローラの機能ブロック図。
図8】情報コントローラにより実行されるプログラム選択処理の内容について示すフローチャート。
図9】情報コントローラにより実行されるプログラム更新処理の内容について示すフローチャート。
図10】情報コントローラにより実行されるプログラム復旧処理の内容について示すフローチャート。
図11】情報コントローラにより実行される各種情報の発信処理の内容について示すフローチャート。
図12】他作業機械から取得した通常プログラムによって、自作業機械の通常プログラムを更新する例について示す図。
図13】他作業機械から取得した通常プログラムによって、自作業機械の通常プログラムを復旧する例について示す図。
【発明を実施するための形態】
【0009】
図面を参照して、本発明の実施形態に係る作業機械100及びその管理システム10について説明する。図1は、作業機械100の管理システム10の構成を示す図である。図1に示すように、管理システム10は、管理センタ40に設置される管理サーバ41と、作業現場で作業を行う油圧ショベルなどの作業機械100と、を含む。管理センタ40は、例えば、作業機械100の製造業者(メーカー)の本社、支社、工場等の施設、作業機械100のレンタル会社、サーバの運営を専門的に行うデータセンタ、作業機械100を所有するオーナーの施設等に設置される。管理サーバ41は、作業機械100から離れた位置に設置され、作業機械100と情報(データ)の送受信を行う。管理サーバ41は、作業機械100の状態を遠隔で管理(把握、監視)する管理装置として機能する。
【0010】
作業機械100は、その製造業者の工場から出荷され、作業現場(工事現場)で稼働している。作業機械100は、作業現場において、土木作業、建設作業、解体作業、浚渫作業等の種々の作業を行う。作業現場で稼働している複数の作業機械100は、作業現場全体での作業効率の向上を目的として、分担して作業を行う。
【0011】
管理システム10は、作業機械100と管理サーバ41との間で広域ネットワークの通信回線70を介して双方向通信を行うことができるように構成されている。すなわち、作業機械100と管理サーバ41とは、通信回線70を介して情報(データ)の送信、受信を行うことができる。通信回線70は、携帯電話事業者等が展開する携帯電話通信網(移動通信網)、インターネット等である。例えば、図示するように、作業機械100と無線基地局71とが携帯電話通信網(移動通信網)で接続されている場合、無線基地局71は、作業機械100から所定の情報を受信すると、受信した情報をインターネットを介して管理サーバ41に送信する。
【0012】
管理サーバ41は、作業機械100から受信した稼働情報、警告情報等の車体情報を受信することにより、作業機械100の状態を把握することができる。また、管理サーバ41の記憶装置42には、作業機械100の制御装置110によって実行される通常プログラム128(図3参照)を更新するためのプログラム情報(例えば、最新のバージョンの通常プログラム)が記憶されている。さらに、管理サーバ41の記憶装置42には、最新バージョンの通常プログラムだけでなく、作業機械100において通常プログラム128を最新バージョンへ更新する処理が失敗したときのために、作業機械100の通常プログラム128を復旧するためのプログラム情報(例えば、最新バージョンよりも古い旧バージョンの通常プログラム)が記憶されている。管理サーバ41は、作業機械100からの要求指令に応じて、通信回線70及び無線基地局71を介してプログラム情報を作業機械100に送信する。したがって、作業機械100は、管理サーバ41から取得したプログラム情報によって、通常プログラム128を書き換えることにより、通常プログラム128を更新したり、復旧したりすることができる。
【0013】
管理サーバ41は、通信回線70を介して、社内コンピュータ44及びオーナーコンピュータ45に接続されている。社内コンピュータ44は、製造業者の本社、支社、工場等の施設に設置され、製造業者によって使用されるコンピュータである。社内コンピュータ44は、通常プログラム128を通信回線70を介して管理サーバ41に送信し、管理サーバ41の記憶装置42に記憶させる。製造業者は、新しいバージョンの通常プログラム128が作成されると、作成された通常プログラム128を社内コンピュータ44を用いて管理サーバ41へ送信する。この結果、管理サーバ41の記憶装置42には、最初のバージョン(オリジナルバージョン)から最新バージョンまでの通常プログラム128が蓄積される。
【0014】
オーナーコンピュータ45は、作業機械100を所有するオーナーの施設に設置され、オーナーによって使用されるコンピュータである。オーナーは、オーナーコンピュータ45によって管理サーバ41と通信を行うことにより、作業現場で稼働する複数の作業機械100の稼働状況を確認し、作業機械100を管理することができる。
【0015】
作業機械100は、車体9と、車体9に取り付けられる作業装置13と、を備える。車体9は、走行体11と、走行体11上に旋回可能に設けられた旋回体12と、を備える。旋回体12の前部には作業装置13が取り付けられている。
【0016】
作業装置13は、回動可能に連結される複数のフロント部材を有する多関節型の作業装置である。本実施形態では、3つのフロント部材として、ブーム14、アーム15及びバケット16が、直列的に連結される。ブーム14は、その基端部が旋回体12のフレーム12bの前部に回動可能に連結される。アーム15は、その基端部がブーム14の先端部に回動可能に連結される。バケット16は、アーム15の先端部に回動可能に連結される。ブーム14は、ブームシリンダ14aを伸縮させることによって、旋回体12に対して回動する。アーム15は、アームシリンダ15aを伸縮させることによって、ブーム14に対して回動する。バケット16は、バケットシリンダ16aを伸縮させることによって、アーム15に対して回動する。
【0017】
走行体11は、左右一対のクローラを走行用油圧モータ11aによって駆動することにより走行する。旋回体12は、旋回用油圧モータ12aを駆動することにより旋回する。旋回体12の前部左側には運転室17が設けられ、運転室17の後部にはエンジン80(図2参照)が収容されるエンジン室18が設けられている。エンジン室18の後部には、作業時の機体のバランスをとるためのカウンタウエイト19が取り付けられている。
【0018】
運転室17内には、走行体11、旋回体12及び作業装置13を操作するための操作装置34(図2参照)と、エンジン回転数を設定するためのエンジンコントロールダイヤル62(図2参照)と、作業機械100に搭載される機器の制御を行う制御装置110と、入力装置180(図2参照)と、表示装置190(図2参照)と、が設けられる。
【0019】
図2は、作業機械100に搭載される油圧システム30及び制御装置110を示す図である。なお、以下では、作業機械100に搭載される走行モータ(油圧モータ)、旋回モータ(油圧モータ)、ブームシリンダ(油圧シリンダ)14a、アームシリンダ(油圧シリンダ)15a及びバケットシリンダ(油圧シリンダ)16a等を総称して油圧アクチュエータ37とも記す。油圧システム30には、複数の油圧アクチュエータ37が設けられているが、図2では、一つの油圧アクチュエータ37を代表して図示している。また、油圧アクチュエータ37を操作する操作装置34及び操作装置34の操作に応じて駆動されるコントロールバルブ35は、複数の油圧アクチュエータ37毎に設けられるが、図2では、代表して一つの操作装置34とコントロールバルブ35を図示している。
【0020】
油圧システム30は、メインポンプ31及びパイロットポンプ32と、メインポンプ31から吐出される作動流体としての作動油により駆動する油圧アクチュエータ37と、メインポンプ31から油圧アクチュエータ37への作動油の流れを制御するコントロールバルブ35と、を備える。メインポンプ31及びパイロットポンプ32は、エンジン80に接続され、エンジン80によって駆動されて作動油(圧油)を吐出する。メインポンプ31は可変容量型の油圧ポンプであり、パイロットポンプ32は固定容量型の油圧ポンプである。エンジン80は、作業機械100の動力源であり、例えば、ディーゼルエンジン等の内燃機関により構成される。
【0021】
パイロットポンプ32から吐出された作動油は、操作装置34に供給される。操作装置34は、オペレータによって操作される操作レバー34aと、油圧パイロット方式の一対の減圧弁と、を有する。操作装置34は、パイロットポンプ32の吐出圧を元圧として、操作レバー34aの操作量と操作方向に応じたパイロット圧(操作圧と称することもある)を発生する。このように発生したパイロット圧は、油圧アクチュエータ37に対応するコントロールバルブ35の受圧室35a,35bに導かれ、コントロールバルブ35を駆動する制御信号として利用される。
【0022】
操作装置34とコントロールバルブ35の受圧室35a,35bとを接続するパイロットラインには、オペレータによる操作レバー34aの操作によって生じる操作圧(操作量)を検出する操作センサ37a,37bが設けられている。操作センサ37a,37bは、後述するメインコントローラ101に接続されており、検出した操作量に関する情報をメインコントローラ101に出力する。
【0023】
メインポンプ31から吐出された作動油はコントロールバルブ35を通じて油圧アクチュエータ(油圧シリンダ、油圧モータ)37に供給され、作業装置13、旋回体12及び走行体11のそれぞれが駆動される。
【0024】
作業機械100は、作業機械100を制御するための制御装置110と、オペレータによって操作されることにより所定の信号を制御装置110に入力する入力装置180と、制御装置110から出力される信号に基づいて所定の画像を表示画面に表示させる表示装置190と、無線基地局71及び通信回線70を介して管理サーバ41と通信を行うための第1通信装置141と、無線基地局71等の中継局を介することなく、他の作業機械100と直接通信を行うための第2通信装置142と、を備える。本実施形態に係る制御装置110は、第1のコントローラとしてのメインコントローラ101、第2のコントローラとしての情報コントローラ102及び第3のコントローラとしてのエンジンコントローラ103を有する。
【0025】
コントローラ101,102,103は、それぞれが動作回路としてのCPU(Central Processing Unit)101a,102a,103a、記憶装置としてのEEPROM、フラッシュメモリ等の不揮発性メモリ101b,102b,103bと、記憶装置としての所謂RAM(Random Access Memory)と呼ばれる揮発性メモリ101c,102c,103cと、図示しない入出力インタフェース(I/Oインタフェース)と、その他の周辺回路と、を備えたマイクロコンピュータで構成される。各コントローラ101,102,103は、1のマイクロコンピュータで構成してもよいし、複数のマイクロコンピュータで構成してもよい。また、コントローラ101,102,103の機能の一部、または全部を他のコントローラに持たせてもよい。各コントローラ101,102,103の不揮発性メモリ101b,102b,103bには、各種演算が実行可能なプログラムが格納されている。すなわち、各コントローラ101,102,103の不揮発性メモリ101b,102b,103bは、本実施形態の機能を実現するプログラムを読み取り可能な記憶媒体である。コントローラ101,102,103は、例えば、CAN(Controller Area Network)と呼ばれる車載ネットワーク21を介して相互に通信可能に接続されている。なお、図示しないが、各コントローラ101,102,102には、電源装置が接続され、エンジンキースイッチが操作されることにより、電源装置から電力が供給される。
【0026】
メインコントローラ101には、グローバル座標系における旋回体12の位置を測定するためのGNSS(Global Navigation Satellite System)受信装置60と、作業装置13の姿勢に関する情報を検出する姿勢検出装置61と、エンジン80の目標回転数を設定するためのエンジンコントロールダイヤル62と、操作装置34の操作レバー34aの操作方向及び操作量(操作圧)を検出する操作センサ37a,37bと、が接続されている。
【0027】
姿勢検出装置61は、旋回体12に設けられ基準面(例えば水平面)に対する旋回体12の傾斜角を検出する角度センサ、旋回体12に対するブーム14の傾斜角(回動角)を検出する角度センサ、ブーム14に対するアーム15の傾斜角(回動角)を検出する角度センサ、及び、アーム15に対するバケット16の傾斜角(回動角)を検出する角度センサを有する。姿勢検出装置61の各角度センサで検出された角度に関する情報は、メインコントローラ101に出力される。
【0028】
本実施形態では、操作装置34とコントロールバルブ35の受圧室35a,35bとを接続するパイロットラインに、メインコントローラ101からの制御信号に応じて、操作装置34で生成される操作圧を減圧して受圧室35bに出力する電磁比例弁36bが設けられる。例えば、油圧アクチュエータ37がブームシリンダ14aである場合、電磁比例弁36bをブーム下げ操作信号としての操作圧を発生させるパイロットラインに設けることにより、ブーム下げ操作が行われたときに、掘削目標面よりも下方にバケットが侵入することを防止する停止制御を行うことができる。停止制御では、メインコントローラ101は、ブーム下げ操作中に、バケット16の先端部が掘削目標面に接近するにつれブーム下げ動作を徐々に減速させるように電磁比例弁36bを制御する。
【0029】
メインコントローラ101は、情報コントローラ102及びエンジンコントローラ103を統合的に管理する。エンジンコントローラ103には、エンジン80の燃料噴射装置81及び回転数センサ82が接続されている。燃料噴射装置81は、エンジン80のシリンダ内に燃料を噴射する装置であり、エンジンコントローラ103によって燃料の噴射量が調整される。回転数センサ82は、エンジン80の回転数(回転速度)を検出し、検出信号をエンジンコントローラ103に出力する。
【0030】
エンジンコントローラ103は、燃料噴射装置81により、エンジン80のシリンダ内に噴射する燃料の噴射量を調整してエンジン回転数を制御する。つまり、エンジン80は、エンジンコントローラ103により所定の回転数で回転するように制御される。
【0031】
エンジンコントロールダイヤル62からの指令値は、メインコントローラ101に入力される。メインコントローラ101は、エンジンコントロールダイヤル62からの指令値に基づいて目標回転数を演算し、演算した目標回転数の情報(データ)をエンジンコントローラ103に出力する。エンジンコントローラ103は、回転数センサ82の検出信号から演算したエンジン80の回転数(実回転数)を、メインコントローラ101から取得した目標回転数に一致させるように燃料噴射装置81を制御する。したがって、オペレータは、エンジンコントロールダイヤル62を操作することにより、エンジン80の目標回転数を調整することができる。
【0032】
情報コントローラ102には、第1通信装置141、第2通信装置142、入力装置180及び表示装置190が接続される。第1通信装置141は、広域ネットワークである通信回線70に接続される無線基地局71と無線通信可能な無線通信装置であって、例えば2.1GHz帯等の帯域を感受帯域とする通信アンテナを含む通信インタフェースを有する。第1通信装置141は、無線基地局71及び通信回線70を介して、管理サーバ41等と情報の授受を行う。
【0033】
第2通信装置142は、第1通信装置141よりも消費電力を低く抑えることのできる近距離用の通信方式が採用された無線通信装置である。第2通信装置142は、第1通信装置141よりも通信可能範囲が狭い、近距離無線通信方式で通信する無線通信装置であって、例えば2.4GHz帯、5GHz帯等の帯域を感受帯域とする通信アンテナを含む通信インタフェースを有する。第2通信装置142は、無線基地局71を介さずに作業機械100の周辺に存在する他の作業機械100と直接、情報(データ)の授受を行う。第2通信装置142は、他の作業機械100が備える無線通信装置(第2通信装置142に相当)との間で、例えば、IEEE(The Institute of Electrical and Electronics Engineers, Inc.)802.11規格に基づく無線通信方式であるWi-Fi(登録商標)に基づいて無線通信を行う。なお、通信方式は、これに限定されるものではなく、例えば、ZigBee(登録商標)、Bluetooth(登録商標)などの通信方式を採用することもできる。
【0034】
入力装置180は、オペレータによって操作され、オペレータの操作に応じた操作信号を情報コントローラ102に出力する装置である。入力装置180としては、キーボード、マウス、各種ボタンを有する操作パネル、タッチパネル等を採用することができる。表示装置190は、液晶ディスプレイなどであり、情報コントローラ102からの表示制御信号に基づき、所定の表示画像を表示画面に表示する。表示装置190は、例えば、エンジン80の駆動状態、車両の走行状態、旋回体12の旋回状態、作業装置13の姿勢等を表す表示画像を表示画面に表示する。
【0035】
図3は、各コントローラ101,102,103の不揮発性メモリ101b,102b,103bの構成について示す図である。図3に示すように、メインコントローラ101の不揮発性メモリ101bには、メインコントローラ101に電力が供給されると、初めに実行されるブートローダプログラム121aと、作業機械100に搭載される機器(電磁比例弁36b、メインポンプ31等)を制御するためのプログラム情報である通常プログラム128aと、が記憶されている。エンジンコントローラ103の不揮発性メモリ103bには、エンジンコントローラ103に電力が供給されると、初めに実行されるブートローダプログラム121cと、作業機械100に搭載される機器(エンジン80等)を制御するためのプログラム情報である通常プログラム128cと、が記憶されている。
【0036】
情報コントローラ102の不揮発性メモリ102bには、情報コントローラ102に電力が供給されると、初めに実行されるブートローダプログラム121bと、作業機械100に搭載される機器(第1通信装置141、第2通信装置142、表示装置190等)を制御するためのプログラム情報である通常プログラム128bと、が記憶されている。情報コントローラ102の不揮発性メモリ102bには、さらに、モードデータ122と、更新プログラム123aと、復旧プログラム123bと、プログラムバージョンテーブル124と、オーナー情報125と、書換前後記録126と、が記憶されている。
【0037】
モードデータ122は、更新モード、復旧モード、通常モードのいずれかを表すデータである。更新プログラム123aは、通常プログラム128a,128b,128cを新しいバージョンの通常プログラムに書き換える更新処理を行うための書換プログラムである。復旧プログラム123bは、更新処理が失敗した場合に通常プログラム128a,128b,128cを更新処理の前の状態に復旧する復旧処理を行うための書換プログラムである。以下、通常プログラム128a,128b,128cを総称して通常プログラム128とも記す。
【0038】
図4は、プログラムバージョンテーブル124について示す図である。図4に示すように、プログラムバージョンテーブル124は、各通常プログラム128a,128b,128cのバージョンを表すデータテーブルである。図4に示す例では、メインコントローラ101の通常プログラム128aのバージョンは1.11であり、情報コントローラ102の通常プログラム128bのバージョンは2.01であり、エンジンコントローラ103の通常プログラム128cのバージョンは1.00である。なお、バージョンは、数値が大きいものほど新しい。
【0039】
図5は、オーナー情報125について示す図である。図5に示すように、オーナー情報125は、オーナーを識別するためのIDと、このIDに対応付けられているパスワードと、を有する。
【0040】
図6は、書換前後記録126について示す図である。図6に示すように、書換前後記録126は、これから書換処理が行われる通常プログラム128を有するコントローラ(書換対象コントローラ)と、書換対象コントローラの通常プログラム128の書換前バージョンと、書換後バージョンを表すデータである。図6に示す書換前後記録126の例では、書換対象コントローラがメインコントローラ101であり、メインコントローラ101の通常プログラム128aの書換前バージョンは1.11であり、書換後バージョンが3.10である。書換前後記録126は、新しいバージョンの通常プログラム128への書換処理(更新処理)が、意図せずに中断されるなどして正常に完了できなかった場合、すなわち書換処理(更新処理)が失敗した場合に、書換前バージョン(元のバージョン)の通常プログラム128へ復旧するために用いられる。
【0041】
図3に示すように、情報コントローラ102の不揮発性メモリ102bには、管理サーバ41または他作業機械100Bから取得したプログラム情報を一時的に保存する一時保存領域127が確保されている。
【0042】
本実施形態では、上述したように、管理サーバ41から送信されるプログラム情報によって、通常プログラム128を書き換えることができる。しかしながら、管理サーバ41から広域ネットワークの通信回線70及び無線基地局71を介してプログラム情報を取得する場合、通信コストがかかるという問題がある。特に、作業現場には、複数の作業機械100が稼働しているため、それぞれの作業機械100が通常プログラム128の書き換え(更新、復旧)のために管理サーバ41と無線通信を行う場合には、作業機械100の数が多くなるほど、通信コストが増加してしまう。
【0043】
そこで、本実施形態では、自作業機械100Aの周辺(近辺)に存在する他作業機械100Bが、自作業機械100Aの通常プログラム128のバージョンよりも新しいバージョンの通常プログラムを有している場合、他作業機械100Bと直接通信を行って新しいバージョンの通常プログラムを取得し、自作業機械100Aの通常プログラムの更新を行う。本実施形態では、制御装置110の情報コントローラ102が更新処理等を行う。以下、情報コントローラ102の機能について、詳しく説明する。
【0044】
図7は、情報コントローラ102の機能ブロック図である。情報コントローラ102は、不揮発性メモリ102bに記憶されている更新プログラム123a(図3参照)、復旧プログラム123b(図3参照)、及び、通常プログラム128b等を実行することにより、通常制御部130、他作業機械存在判定部131、認証部132、バージョン確認部133、書換制御部134、応答確認部135、通信制御部136、及び、モード設定部137として機能する。
【0045】
モード設定部137は、起動モードを通常モード、更新モード及び復旧モードのいずれかに設定する。情報コントローラ102に電力が供給されブートローダプログラム121bが実行されると、情報コントローラ102は起動モードに応じたプログラムを選択し、選択したプログラムを実行する。情報コントローラ102は、起動モードが通常モードに設定されている場合には、通常プログラム128bを選択して実行し、起動モードが更新モードに設定されている場合には、更新プログラム123aを選択して実行し、起動モードが復旧モードに設定されている場合、復旧プログラムを選択して実行する。
【0046】
通常制御部130は、情報コントローラ102が担う作業機械100の通常の制御を実行する。通常制御部130は、例えば、表示装置190に対してオペレータに必要な情報(エンジン80の駆動状態、車両の走行状態、旋回体12の旋回状態、作業装置13の姿勢等)を表示するための表示制御信号を出力する。また、通常制御部130は、第1通信装置141及び第2通信装置142を介して、外部のコンピュータと情報の授受を行う。
【0047】
モード設定部137は、入力装置180によって、自動更新モードを無効とする操作信号が入力されると、通常モードを表すデータをモードデータ122として記憶することにより、起動モードを通常モードに設定する。モード設定部137は、入力装置180によって、自動更新モードを有効とする操作信号が入力されると、更新モードを表すデータをモードデータ122として記憶することにより、起動モードを更新モードに設定する。
【0048】
オペレータは、現行プログラムの更新を行いたい場合には、入力装置180によって自動更新モードを有効とする操作を行う。これにより、起動モードが更新モードに設定されるため、作業機械100を運転する際に、後述する更新処理が実行され、通常プログラム128の更新が行われる。オペレータは、現行プログラムの更新を行いたくない場合には、入力装置180によって自動更新モードを無効とする操作を行う。これにより、起動モードが通常モードに設定されるため、意図しない更新処理が行われることを避けることができる。
【0049】
通信制御部136は、第2通信装置142を介して、所定の制御周期で繰り返し、車体存在通知を発信する。車体存在通知は、自作業機械100Aの存在を周辺(近辺)の他作業機械100Bに知らせるための信号である。車体存在通知には、自作業機械100Aの固有の識別情報(例えば、製造番号)が含まれる。ここで、自作業機械100Aとは、当該情報コントローラ102を備える第1の作業機械のことを指す。また、他作業機械100Bとは、自作業機械100Aとは別の他の作業機械であって、自作業機械100Aの第2通信装置142によって直接通信が可能な第2の作業機械のことを指す。
【0050】
他作業機械存在判定部131は、自作業機械100Aの周辺(近辺)に他作業機械100Bが存在するか否かを判定する。なお、本実施形態では、他作業機械100Bは、自作業機械100Aと同様の構成を有しているものとして説明する。
【0051】
他作業機械存在判定部131は、他作業機械100Bの第2通信装置142から発信された車体存在通知を受信した場合、自作業機械100Aの周辺に他作業機械100Bが存在すると判定し、車体存在通知を受信しなかった場合、自作業機械100Aの周辺に他作業機械100Bは存在しないと判定する。
【0052】
他作業機械存在判定部131は、車体存在通知に含まれる識別情報を揮発性メモリ102cに記憶する。他作業機械存在判定部131は、複数の他作業機械100Bから車体存在通知を受信すると、各他作業機械100Bの識別情報を揮発性メモリ102cに記憶する。
【0053】
通信制御部136は、車体存在通知を受信した場合、第2通信装置142を介して、車体存在通知が発信された他作業機械100Bに対してオーナー情報を取得するための要求指令を送信し、他作業機械100Bから送信されたオーナー情報を取得する。
【0054】
認証部132は、他作業機械100Bから取得したオーナー情報と、自作業機械100Aの不揮発性メモリ102bに記憶されているオーナー情報125と、を比較し、他作業機械100Bと自作業機械100Aのオーナーが同じであるか否かを判定する。認証部132は、取得した他作業機械100Bのオーナー情報と自作業機械100Aのオーナー情報125とが一致する場合、他作業機械100Bと自作業機械100Aのオーナーは同じであると判定する。認証部132は、取得した他作業機械100Bのオーナー情報と自作業機械100Aのオーナー情報125とが一致しない場合、他作業機械100Bと自作業機械100Aのオーナーは同じでないと判定する。
【0055】
通信制御部136は、認証部132により他作業機械100Bと自作業機械100Aのオーナーは同じであると判定された場合、第2通信装置142を介して、自作業機械100Aとオーナーが同じであると判定された他作業機械100Bに対してプログラムバージョンテーブルを取得するための要求指令を送信し、他作業機械100Bから送信されたプログラムバージョンテーブルを取得する。
【0056】
起動モードが更新モードに設定されている場合、バージョン確認部133は、他作業機械100Bから取得したプログラムバージョンテーブルと、自作業機械100Aの不揮発性メモリ102bに記憶されているプログラムバージョンテーブル124と、を比較する。起動モードが更新モードに設定されている場合、バージョン確認部133は、比較結果に基づいて、自作業機械100Aの現行プログラムのバージョンよりも新しいバージョンの通常プログラム(以下、新プログラムとも記す)が他作業機械100Bに存在するか否かを判定する。なお、自作業機械100Aの現行プログラムとは、更新対象となる通常プログラム128、すなわち、現在通常の制御に利用されている通常プログラム128のことを指す。
【0057】
通信制御部136は、バージョン確認部133により新プログラムが他作業機械100Bに存在すると判定された場合、第2通信装置142を介して、新プログラムを有する他作業機械100Bに対して新プログラム(更新用のプログラム情報)を取得するための要求指令を送信し、他作業機械100Bから送信された新プログラム(更新用のプログラム情報)を取得する。
【0058】
また、通信制御部136は、オペレータの操作に基づいて入力装置180から出力される信号に基づいて、第1通信装置141を介して、新プログラムを有する管理サーバ41に対して新プログラム(更新用のプログラム情報)を取得するための要求指令を送信し、管理サーバ41から送信された新プログラム(更新用のプログラム情報)を取得する。
【0059】
書換制御部134は、取得した新プログラムを不揮発性メモリ102bの一時保存領域127に保存し、書換前後記録126を更新する。例えば、メインコントローラ101のバージョン「1.11」の通常プログラム128aを、一時保存領域127に保存されているバージョン「3.10」の新プログラムに書き換える場合、図6に示すように、書換前バージョンが「1.11」であり、書換後バージョンが「3.10」であるという情報(データ)が書換前後記録126として記憶される。
【0060】
図7に示す書換制御部134は、現行プログラムを一時保存領域127に保存されている新プログラムで書き換える第1の書換処理を実行する。第1の書換処理は、通常プログラム128を現行のバージョンから新しいバージョンのものに更新する更新処理に相当する。つまり、書換制御部134は、通常プログラム128のバージョンを更新する更新制御部として機能する。
【0061】
応答確認部135は、書換制御部134による更新処理が終了した後、更新処理が正常に行われたか否かを判定する。応答確認部135は、更新対象となったコントローラ(以下、更新対象コントローラとも記す)によって、通常プログラム128を実行させることにより、更新対象コントローラに応答確認処理を実行させる。応答確認部135は、応答確認処理によって、正常な応答がなされたときには書換処理(更新処理)が正常に行われたと判定し、正常な応答がなされなかったときには書換処理(更新処理)が正常に行われなかったと判定する。書換処理(更新処理)が正常に行われたと判定された場合、応答確認部135は、プログラムバージョンテーブル124を更新する。
【0062】
例えば、通常プログラム128には、更新対象コントローラによって実行されると予め定められた所定の信号(例えば、自身のバージョン)を出力させるコマンドが含まれている。応答確認部135は、更新対象コントローラによって新プログラムを実行させ、新プログラムのバージョンを更新対象コントローラから出力させる応答確認処理を実行させる。応答確認部135は、更新対象コントローラから出力されたバージョンが書換前後記録126の更新後バージョンに一致する場合、正常な応答がなされたものとして、書換処理が正常に行われたと判定する。応答確認部135は、更新対象コントローラから出力されたバージョンが書換前後記録126の更新後バージョンに一致しない場合、あるいは、所定時間内に更新対象コントローラからバージョン(所定の信号)が出力されない場合、正常な応答がなされなかったものとして、書換処理が正常に行われなかったと判定する。これにより、例えば、取得した通常プログラムが、要求指令とは異なる通常プログラム(例えば、書換対象コントローラとは異なるコントローラの通常プログラム、バージョンの異なる通常プログラム、通常プログラムとは異なるプログラム)であった場合に、書換処理が正常に行われなかったと判定することができる。
【0063】
起動モードが更新モードに設定されている場合であって、自作業機械100Aの周辺に新プログラムを有する他作業機械100Bが存在しないときには、モード設定部137は、通常モードを表すデータをモードデータ122として記憶することにより起動モードを通常モードに設定し、情報コントローラ102を再起動する。例えば、モード設定部137は、自作業機械100Aの周辺に他作業機械100Bが存在しないと判定された場合、起動モードを通常モードに設定する。また、モード設定部137は、他作業機械100Bから新プログラムを取得して更新が行われた結果、自作業機械100Aの周辺に、自作業機械100Aの通常プログラム128のバージョンよりも新しいバージョンの通常プログラム(新プログラム)を有する他作業機械100Bが存在しなくなった場合にも、起動モードを通常モードに設定する。
【0064】
モード設定部137は、応答確認部135により更新処理が正常に行われなかったと判定された場合、復旧モードを表すデータをモードデータ122として記憶することにより起動モードを復旧モードに設定し、情報コントローラ102を再起動する。
【0065】
起動モードが復旧モードに設定されている場合、バージョン確認部133は、他作業機械100Bから取得したプログラムバージョンテーブルと、自作業機械100Aの不揮発性メモリ102bに記憶されている書換前後記録126と、を参照し、更新前バージョンの通常プログラム(以下、更新前プログラムとも記す)が他作業機械100Bに存在するか否かを判定する。
【0066】
通信制御部136は、バージョン確認部133により更新前プログラムが他作業機械100Bに存在すると判定された場合、第2通信装置142を介して、更新前プログラムを有する他作業機械100Bに対して更新前プログラム(復旧用のプログラム情報)を取得するための要求指令を送信し、他作業機械100Bから送信された更新前プログラム(復旧用のプログラム情報)を取得する。
【0067】
起動モードが復旧モードに設定されている場合であって、自作業機械100Aの周辺に更新前プログラムを有する他作業機械100Bが存在しないときには、通信制御部136は、第1通信装置141を介して、更新前プログラムを有する管理サーバ41に対して更新前プログラム(復旧用のプログラム情報)を取得するための要求指令を送信し、管理サーバ41から送信された更新前プログラム(復旧用のプログラム情報)を取得する。
【0068】
書換制御部134は、取得した更新前プログラムを不揮発性メモリ102bの一時保存領域127に保存し、書換前後記録126を更新する。例えば、メインコントローラ101のバージョン「1.11」の通常プログラム128aを、一時保存領域127に保存されている同じバージョン「1.11」の通常プログラムに書き換える場合、書換前バージョンが「1.11」であり、書換後バージョンも「1.11」であるという情報(データ)が書換前後記録126として記憶される。
【0069】
書換制御部134は、書換処理が失敗した通常プログラムを一時保存領域127に保存されている更新前プログラムで書き換える第2の書換処理を実行する。第2の書換処理は、書換処理が正常に行われなかった新しいバージョンの通常プログラム128を更新前のバージョンに復旧する復旧処理に相当する。つまり、書換制御部134は、通常プログラム128のバージョンを復旧する復旧制御部として機能する。
【0070】
応答確認部135は、書換制御部134による復旧処理が終了した後、復旧処理が正常に行われたか否かを判定する。応答確認部135は、復旧対象となったコントローラ(以下、復旧対象コントローラとも記す)によって、通常プログラム128を実行させることにより、復旧対象コントローラに応答確認処理を実行させる。応答確認部135は、応答確認処理によって、正常な応答がなされたときには書換処理(復旧処理)が正常に行われたと判定し、正常な応答がなされなかったときには書換処理(復旧処理)が正常に行われなかったと判定する。書換処理(復旧処理)が正常に行われたと判定された場合、応答確認部135は、プログラムバージョンテーブル124を更新する。復旧処理が正常に行われたか否かを判定する方法は、更新処理が正常に行われたか否かを判定する方法と同様の方法で行うことができる。
【0071】
応答確認部135により他作業機械100Bから取得した更新前プログラムによる復旧処理が正常に行われなかったと判定された場合、通信制御部136は、さらに別の他作業機械100Bに対して更新前プログラムを取得するための要求指令を送信し、更新前プログラムを取得する。応答確認部135により自作業機械100Aの周辺に存在する他作業機械100Bから取得した更新前プログラムによる復旧処理が全て正常に行われなかったと判定された場合、通信制御部136は、第1通信装置141を介して、管理サーバ41に対して更新前プログラムを取得するための要求指令を送信し、管理サーバ41から送信された更新前プログラムを取得する。
【0072】
なお、管理サーバ41から取得した更新前プログラムによる復旧処理が正常に行われなかったと判定された場合、応答確認部135は、復旧処理が正常に行われなかった旨を表示装置190によって報知するエラー報知処理を実行する。
【0073】
モード設定部137は、応答確認部135により復旧処理が正常に行われたと判定された場合、通常モードを表すデータをモードデータ122として記憶することにより起動モードを通常モードに設定し、情報コントローラ102を再起動する。
【0074】
通信制御部136は、第2通信装置142を介して、オーナー情報125を取得するための要求指令を受信したか否かを判定する。通信制御部136は、オーナー情報125を取得するための要求指令を受信したと判定された場合、第2通信装置142によって、不揮発性メモリ102bに記憶されているオーナー情報125を要求指令元の他作業機械100Bに送信する。なお、オーナー情報125は、暗号化した上で他作業機械100Bに送信する。
【0075】
通信制御部136は、第2通信装置142を介して、プログラムバージョンテーブル124を取得するための要求指令を受信したか否かを判定する。通信制御部136は、プログラムバージョンテーブル124を取得するための要求指令を受信したと判定された場合、第2通信装置142によって、プログラムバージョンテーブル124を要求指令元の他作業機械100Bに送信する。
【0076】
通信制御部136は、第2通信装置142を介して、通常プログラム128を取得するための要求指令を受信したか否かを判定する。通信制御部136は、通常プログラム128を取得するための要求指令を受信したと判定された場合、第2通信装置142によって、要求指令に応じた通常プログラム128を要求指令元の他作業機械100Bに送信する。
【0077】
図8図11を参照して、情報コントローラ102により実行される書換処理の内容について説明する。図8は、情報コントローラ102により実行されるプログラム選択処理の内容について示すフローチャートである。図8に示すフローチャートの処理は、情報コントローラ102に電力が供給され、ブートローダプログラム121bが実行されることにより開始される。
【0078】
図8に示すように、ステップS103において、情報コントローラ102は、モードデータ122を読み込み、ステップS105へ進む。
【0079】
ステップS105において、情報コントローラ102は、ステップS103で読み込んだモードデータ122に基づいて、起動モードが更新モードに設定されているか否かを判定する。ステップS105において、ステップS103で読み込んだモードデータ122が更新モードを表すデータである場合、情報コントローラ102は、起動モードが更新モードに設定されていると判定し、ステップS110へ進む。ステップS110において、情報コントローラ102は、更新プログラム123aを実行して、図8のフローチャートに示す処理を終了する。すなわち、情報コントローラ102は、更新プログラム123a、復旧プログラム123b、及び通常プログラム128bの中から更新プログラム123aを選択して実行する。
【0080】
ステップS105において、ステップS103で読み込んだモードデータ122が更新モードを表すデータでない場合、情報コントローラ102は、起動モードは更新モードに設定されていないと判定し、ステップS107へ進む。
【0081】
ステップS107において、情報コントローラ102は、ステップS103で読み込んだモードデータ122に基づいて、起動モードが復旧モードに設定されているか否かを判定する。ステップS107において、ステップS103で読み込んだモードデータ122が復旧モードを表すデータである場合、情報コントローラ102は、起動モードが復旧モードに設定されていると判定し、ステップS150へ進む。ステップS150において、情報コントローラ102は、復旧プログラム123bを実行して、図8のフローチャートに示す処理を終了する。すなわち、情報コントローラ102は、更新プログラム123a、復旧プログラム123b、及び通常プログラム128bの中から復旧プログラム123bを選択して実行する。
【0082】
ステップS107において、ステップS103で読み込んだモードデータ122が復旧モードを表すデータでない場合(すなわちモードデータ122が通常モードを表すデータである場合)、情報コントローラ102は、起動モードは復旧モードに設定されていないと判定し(すなわち起動モードが通常モードに設定されていると判定し)、ステップS200へ進む。ステップS200において、情報コントローラ102は、通常プログラム128bを実行して、図8のフローチャートに示す処理を終了する。すなわち、情報コントローラ102は、更新プログラム123a、復旧プログラム123b、及び通常プログラム128bの中から通常プログラム128bを選択して実行する。
【0083】
図9は、情報コントローラ102により実行されるプログラム更新処理の内容について示すフローチャートである。図9に示すフローチャートの処理は、更新プログラム123aが実行されることにより開始される。
【0084】
図9に示すように、ステップS112において、情報コントローラ102は、自作業機械100Aの周辺に他作業機械100Bが存在するか否かを判定する。
【0085】
ステップS112において、自作業機械100Aの周辺に他作業機械100Bが存在しないと判定された場合、ステップS147へ進む。ステップS112において、自作業機械100Aの周辺に他作業機械100Bが存在すると判定された場合、ステップS114へ進み、情報コントローラ102は、ステップS116からステップS138までの処理を繰り返し行う第1ループ処理を実行する(ステップS114,S140)。第1ループ処理は、ステップS112で存在が確認された他作業機械100Bの全てに対する処理が完了すると終了し、第1ループ処理が終了すると、ステップS147へ進む。
【0086】
情報コントローラ102は、複数の他作業機械100Bが周辺に存在する場合、各他作業機械100Bから固有の識別情報(例えば、製造番号)を取得する。ステップS140において、情報コントローラ102は、所定の識別情報を有する他作業機械100Bに対する処理が終了した場合、ステップS114へ戻り、処理が終了した識別情報とは異なる識別情報を有する他作業機械100Bに対して同様の処理(S116~S138)を実行する。
【0087】
ステップS116において、情報コントローラ102は、第2通信装置142によって、オーナー情報を取得するための要求指令を他作業機械100Bへ送信し、他作業機械100Bからオーナー情報を取得し、ステップS118へ進む。
【0088】
ステップS118において、情報コントローラ102は、ステップS116で取得した他作業機械100Bのオーナー情報と、自作業機械100Aのオーナー情報125と、を比較し、他作業機械100Bと自作業機械100Aのオーナーが同じであるか否かを判定する。ステップS118において、他作業機械100Bのオーナー情報と自作業機械100Aのオーナー情報125とが一致しない場合、情報コントローラ102は、他作業機械100Bと自作業機械100Aのオーナーは同じでないと判定し、ステップS140へ進む。ステップS118において、他作業機械100Bのオーナー情報と自作業機械100Aのオーナー情報125とが一致する場合、情報コントローラ102は、他作業機械100Bと自作業機械100Aのオーナーは同じであると判定し、ステップS120へ進む。
【0089】
ステップS120において、情報コントローラ102は、第2通信装置142によって、プログラムバージョンテーブルを取得するための要求指令を他作業機械100Bへ送信し、他作業機械100Bからプログラムバージョンテーブルを取得し、ステップS122へ進む。
【0090】
ステップS122において、情報コントローラ102は、ステップS120で取得した他作業機械100Bのプログラムバージョンテーブルと、自作業機械100Aのプログラムバージョンテーブル124と、を比較し、更新対象となる自作業機械100Aの通常プログラム(現行プログラム)128よりも新しいバージョンの通常プログラム(新プログラム)が他作業機械100Bに存在するか否かを判定する。
【0091】
ステップS122において、新プログラムが他作業機械100Bに存在しないと判定された場合、ステップS140へ進む。ステップS122において、新プログラムが他作業機械100Bに存在すると判定された場合、ステップS124へ進み、情報コントローラ102は、ステップS126からステップS136までの処理を繰り返し行う第2ループ処理を実行する(ステップS124,S138)。第2ループ処理は、ステップS122で存在が確認された全ての新プログラム(例えば、メインコントローラ101の新プログラム、情報コントローラ102の新プログラム及びエンジンコントローラ103の新プログラム)に対する処理が完了すると終了し、第2ループ処理が終了すると、ステップS140へ進む。
【0092】
ステップS126において、情報コントローラ102は、第2通信装置142によって、新プログラムを取得するための要求指令を他作業機械100Bへ送信し、他作業機械100Bから新プログラムを取得し、ステップS128へ進む。取得した新プログラムは、不揮発性メモリ102bの一時保存領域127に保存される。なお、情報コントローラ102は、他作業機械100Bから取得する新プログラムのデータ合計値を照合するチェックサムを実行することにより、新プログラムの取得が完了したか否かの判定を行う。
【0093】
ステップS128において、情報コントローラ102は、現行プログラムのバージョンを書換前バージョン、新プログラムのバージョンを書換後バージョンとして、書換前後記録126を生成し、不揮発性メモリ102bに記憶し、ステップS130へ進む。
【0094】
ステップS130において、情報コントローラ102は、自作業機械100Aにおいて現在利用されている通常プログラム(現行プログラム)128を、ステップS126で取得した新プログラムに書き換える書換処理を実行し、ステップS132へ進む。
【0095】
ステップS132において、情報コントローラ102は、各コントローラ101,102,103のうちステップS130で現行プログラムを新プログラムに書き換えた更新対象コントローラに応答確認処理を実行させ、ステップS134へ進む。
【0096】
ステップS134において、情報コントローラ102は、更新対象コントローラの応答確認処理の結果に基づいて、書換処理(更新処理)が正常に行われたか否かを判定する。
【0097】
情報コントローラ102は、応答確認処理(ステップS132)において、正常な応答がなされた場合、書換処理(更新処理)が正常に行われたと判定し、ステップS136へ進む。情報コントローラ102は、応答確認処理(ステップS132)において、正常な応答がなされなかった場合、書換処理(更新処理)は正常に行われなかったと判定し、ステップS144へ進む。
【0098】
ステップS136において、情報コントローラ102は、プログラムバージョンテーブル124を更新し、ステップS138へ進む。ステップS144において、情報コントローラ102は、起動モードを復旧モードに設定する設定処理を実行し、情報コントローラ102を再起動する。ステップS144の設定処理では、復旧モードを表すデータがモードデータ122として不揮発性メモリ102bに記憶される。
【0099】
ステップS112において、自作業機械100Aの周辺に他作業機械100Bが存在しないと判定された場合、または、第1ループ処理(S114,S140)が終了すると、ステップS147へ進み、情報コントローラ102は、起動モードを通常モードに設定する設定処理を実行し、情報コントローラ102を再起動する。ステップS147の設定処理では、通常モードを表すデータがモードデータ122として不揮発性メモリ102bに記憶される。
【0100】
図10は、情報コントローラ102により実行されるプログラム復旧処理の内容について示すフローチャートである。図10に示すフローチャートの処理は、復旧プログラム123bが実行されることにより開始される。
【0101】
図10に示すように、ステップS152において、情報コントローラ102は、ステップS112と同様、自作業機械100Aの周辺に他作業機械100Bが存在するか否かを判定する。ステップS152において、自作業機械100Aの周辺に他作業機械100Bが存在しないと判定された場合、ステップS186へ進む。ステップS152において、自作業機械100Aの周辺に他作業機械100Bが存在すると判定された場合、ステップS154へ進み、情報コントローラ102は、ステップS156からステップS174までの処理を繰り返し行うループ処理を実行する(ステップS154,S180)。このループ処理は、ステップS152で存在が確認された他作業機械100Bの全てに対する処理が完了すると終了し、ループ処理が終了すると、ステップS186へ進む。
【0102】
ステップS156において、情報コントローラ102は、ステップS116と同様、第2通信装置142によって、オーナー情報を取得するための要求指令を他作業機械100Bへ送信し、他作業機械100Bからオーナー情報を取得し、ステップS158へ進む。
【0103】
ステップS158において、情報コントローラ102は、ステップS118と同様、ステップS156で取得した他作業機械100Bのオーナー情報と自作業機械100Aのオーナー情報125と、を比較し、他作業機械100Bと自作業機械100Aのオーナーが同じであるか否かを判定する。ステップS158において、他作業機械100Bのオーナー情報と自作業機械100Aのオーナー情報125とが一致しない場合、情報コントローラ102は、他作業機械100Bと自作業機械100Aのオーナーは同じでないと判定し、ステップS180へ進む。ステップS158において、他作業機械100Bのオーナー情報と自作業機械100Aのオーナー情報125とが一致する場合、情報コントローラ102は、他作業機械100Bと自作業機械100Aのオーナーは同じであると判定し、ステップS160へ進む。
【0104】
ステップS160において、情報コントローラ102は、ステップS120と同様、第2通信装置142によって、プログラムバージョンテーブルを取得するための要求指令を他作業機械100Bへ送信し、他作業機械100Bからプログラムバージョンテーブルを取得し、ステップS162へ進む。
【0105】
ステップS162において、情報コントローラ102は、ステップS160で取得した他作業機械100Bのプログラムバージョンテーブルと、自作業機械100Aの書換前後記録126と、を参照し、自作業機械100Aの更新対象コントローラ(書換対象コントローラ)の通常プログラム128の更新前バージョン(書換前バージョン)と同じバージョンの通常プログラム(更新前プログラム)が他作業機械100Bに存在するか否かを判定する。
【0106】
ステップS162において、情報コントローラ102は、他作業機械100Bのプログラムバージョンテーブルに、書換前後記録126の書換前バージョンと同じバージョンが記憶されていない場合、更新前プログラムが他作業機械100Bに存在しないと判定し、ステップS180へ進む。ステップS162において、情報コントローラ102は、他作業機械100Bのプログラムバージョンテーブルに、書換前後記録126の書換前バージョンと同じバージョンが記憶されている場合、更新前プログラムが他作業機械100Bに存在すると判定し、ステップS166へ進む。
【0107】
ステップS166において、情報コントローラ102は、第2通信装置142によって、更新前プログラムを取得するための要求指令を他作業機械100Bへ送信し、他作業機械100Bから更新前プログラムを取得し、ステップS168へ進む。取得した更新前プログラムは、不揮発性メモリ102bの一時保存領域127に保存される。なお、情報コントローラ102は、他作業機械100Bから取得する更新前プログラムのデータ合計値を照合するチェックサムを実行することにより、更新前プログラムの取得が完了したか否かの判定を行う。
【0108】
ステップS168において、情報コントローラ102は、書換前後記録126を更新し、ステップS170へ進む。
【0109】
ステップS170において、情報コントローラ102は、自作業機械100Aにおいて正常に更新処理が行われなかった通常プログラム128を、ステップS166で取得した更新前プログラムに書き換える書換処理を実行し、ステップS172へ進む。
【0110】
ステップS172において、情報コントローラ102は、各コントローラ101,102,103のうちステップS170で正常に更新処理が行われなかった通常プログラム128を更新前プログラムに書き換えた復旧対象コントローラに応答確認処理を実行させ、ステップS174へ進む。
【0111】
ステップS174において、情報コントローラ102は、復旧対象コントローラの応答確認処理の結果に基づいて、書換処理(復旧処理)が正常に行われたか否かを判定する。
【0112】
情報コントローラ102は、応答確認処理(ステップS172)において、正常な応答がなされなかった場合、書換処理(復旧処理)は正常に行われなかったと判定し、ステップS180へ進む。情報コントローラ102は、応答確認処理(ステップS172)において、正常な応答がなされた場合、書換処理(復旧処理)が正常に行われたと判定し、ループ処理(S154,S180)から抜けてステップS182へ進む。
【0113】
ステップS182において、情報コントローラ102は、プログラムバージョンテーブル124を更新し、ステップS184へ進む。ステップS184において、情報コントローラ102は、起動モードを通常モードに設定する設定処理を実行し、情報コントローラ102を再起動する。ステップS184の設定処理では、通常モードを表すデータがモードデータ122として不揮発性メモリ102bに記憶される。
【0114】
ステップS152において、自作業機械100Aの周辺に他作業機械100Bが存在しないと判定された場合、または、ループ処理(S154,S180)が終了すると、ステップS186へ進む。
【0115】
ステップS186において、情報コントローラ102は、第1通信装置141によって、更新前プログラムを取得するための要求指令を管理サーバ41へ送信し、管理サーバ41から更新前プログラムを取得し、ステップS188へ進む。
【0116】
ステップS188,S190,S192,S194の順に行われる各処理は、ステップS168,S170,S172,S174の順に行われる各処理と同様であるため、説明を省略する。なお、ステップS194において、書換処理(復旧処理)が正常に行われたと判定された場合、ステップS182へ進み、ステップS194において、書換処理(復旧処理)が正常に行われなかったと判定された場合、ステップS196へ進む。
【0117】
ステップS196において、情報コントローラ102は、報知装置としての表示装置190によって、復旧処理が正常に行われなかったことを表すエラー情報を報知する。例えば、情報コントローラ102は、表示装置190の表示画面に、復旧処理が正常に行われなかったことを表す文の画像を表示させる。情報コントローラ102は、エラー情報の報知処理(ステップS196)が完了すると、図10のフローチャートに示す処理を終了する。
【0118】
図11は、情報コントローラ102により実行される各種情報の発信処理の内容について示すフローチャートである。図11に示すフローチャートの処理は、通常プログラム128bが実行されることにより開始される。
【0119】
図11に示すように、通常プログラム128bが開始されると、情報コントローラ102は、メインコントローラ101及びエンジンコントローラ103からの出力指令、入力装置180からの入力信号、第1通信装置141及び第2通信装置142からの受信信号等に基づいて、表示装置190、第1通信装置141及び第2通信装置142等の機器の通常の制御処理(ステップS230)を実行する。通常の制御処理では、情報コントローラ102は、例えば、エンジン80の駆動状態、車両の走行状態、旋回体12の旋回状態、作業装置13の姿勢等を表す表示画像を表示装置190の表示画面に表示させたり、作業機械100の稼働情報、警告情報等の車体情報を第1通信装置141を介して管理サーバ41等に送信させたりする制御処理を実行する。
【0120】
情報コントローラ102は、通常の制御処理(ステップS230)と並行して、各種情報の発信処理及びモード設定処理を所定の周期で繰り返し行う。以下、詳しく説明する。
【0121】
ステップS202において、情報コントローラ102は、第2通信装置142によって車体存在通知を発信し、ステップS205へ進む。車体存在通知は、自作業機械100Aが存在することを周辺の他作業機械100Bに知らせるためのデータであり、自作業機械100Aの固有の識別情報(例えば、製造番号)を有する。
【0122】
ステップS205において、情報コントローラ102は、第2通信装置142によって、他作業機械100Bからのオーナー情報125の要求指令を受信したか否かを判定する。ステップS205において、オーナー情報125の要求指令を受信したと判定された場合、ステップS208へ進み、ステップS205において、オーナー情報125の要求指令を受信していないと判定された場合、ステップS211へ進む。
【0123】
ステップS208において、情報コントローラ102は、第2通信装置142によって、不揮発性メモリ102bに記憶されているオーナー情報125を要求指令元の他作業機械100Bに送信し、ステップS211へ進む。
【0124】
ステップS211において、情報コントローラ102は、第2通信装置142によって、他作業機械100Bからのプログラムバージョンテーブル124の要求指令を受信したか否かを判定する。ステップS211において、プログラムバージョンテーブル124の要求指令を受信したと判定された場合、ステップS214へ進み、ステップS211において、プログラムバージョンテーブル124の要求指令を受信していないと判定された場合、ステップS217へ進む。
【0125】
ステップS214において、情報コントローラ102は、第2通信装置142によって、不揮発性メモリ102bに記憶されているプログラムバージョンテーブル124を要求指令元の他作業機械100Bに送信し、ステップS217へ進む。
【0126】
ステップS217において、情報コントローラ102は、第2通信装置142によって、他作業機械100Bからの通常プログラムの要求指令を受信したか否かを判定する。ステップS217において、通常プログラムの要求指令を受信したと判定された場合、ステップS220へ進み、ステップS217において、通常プログラムの要求指令を受信していないと判定された場合、ステップS223へ進む。
【0127】
ステップS220において、情報コントローラ102は、複数の通常プログラム128a,128b,128cの中から要求指令に応じた通常プログラム128を選択し、選択した通常プログラム128を要求指令元の他作業機械100Bに送信し、ステップS223へ進む。
【0128】
ステップS223において、情報コントローラ102は、自動更新モードが有効であるか否かを判定する。ステップS223において、自動更新モードが有効であると判定されると、ステップS226へ進み、ステップS223において、自動更新モードが有効でない(すなわち無効である)と判定されると、ステップS229へ進む。
【0129】
ステップS226において、情報コントローラ102は、起動モードを更新モードに設定する設定処理を実行し、ステップS202へ戻る。ステップS226の設定処理では、更新モードを表すデータがモードデータ122として不揮発性メモリ102bに記憶される。
【0130】
ステップS229において、情報コントローラ102は、起動モードを通常モードに設定する設定処理を実行し、ステップS202へ戻る。ステップS229の設定処理では、通常モードを表すデータがモードデータ122として不揮発性メモリ102bに記憶される。
【0131】
図12を参照して、通常プログラム128を更新する際の動作の具体例について説明する。図12は、他作業機械100Bから取得した通常プログラムによって、自作業機械100Aの通常プログラム128を更新する例について示す図である。自作業機械100Aのエンジンキースイッチが電源オン位置に操作され、各コントローラ101,102,103に電力が供給されると、各コントローラ101,102,103はブートローダプログラム121a,121b,121cを実行する。情報コントローラ102は、起動モードが更新モードに設定されている場合、更新プログラムを実行し、更新処理を行う(図8のステップS103→S105でY→S110)。
【0132】
図12に示す例では、自作業機械100Aの周辺に、2台の他作業機械100Bが稼働しており、車体存在通知を発信している(図11のステップS202)。自作業機械100Aは、2台の他作業機械100Bの車体存在通知を受信すると、車体存在通知に含まれる製造番号の小さいものから順番に、所定の処理を実行する(図9のステップS112でY→S114,S140)。
【0133】
自作業機械100Aは、製造番号の最も小さい他作業機械100B1のオーナー情報125b1を取得し、自作業機械100Aのオーナー情報125と比較する。図示するように、他作業機械100B1のオーナー情報125b1を構成するID及びパスワードと、自作業機械100Aのオーナー情報125を構成するID及びパスワードは一致しているため、自作業機械100Aは、他作業機械100B1からプログラムバージョンテーブル124b1を取得し、自作業機械100Aのプログラムバージョンテーブル124と比較する(図9のステップS116→S118でY→S120)。
【0134】
図示するように、他作業機械100B1が有するメインコントローラの通常プログラムのバージョンは3.10であり、自作業機械100Aのメインコントローラ101の通常プログラム128aのバージョン1.11よりも新しい(図9のステップS122でY→S124,S138)。このため、自作業機械100Aは、他作業機械100B1からメインコントローラの通常プログラム(バージョン3.10)を取得する(図9の第2ループ処理S124,S138の1周目におけるステップS126)。取得したメインコントローラの新プログラム(バージョン3.10)は、一時保存領域127に保存される。
【0135】
情報コントローラ102は、一時保存領域127に保存された新プログラム(バージョン3.10)をメインコントローラ101に出力し、メインコントローラ101の不揮発性メモリ101bの通常プログラム128aを書き換える(図9のステップS130)。更新処理の後、メインコントローラ101が正常に応答する場合、すなわち通常プログラム128aの更新処理が正常に完了した場合、プログラムバージョンテーブル124のメインコントローラ101の通常プログラム128aのバージョンを1.11から3.10に書き換える(図9のステップS132→S134でY→S136)。
【0136】
さらに、他作業機械100B1が有する情報コントローラの通常プログラムのバージョンは2.05であり、自作業機械100Aの情報コントローラ102の通常プログラム128bのバージョン2.01よりも新しい。このため、情報コントローラ102の通常プログラム128bについても他作業機械100B1から新プログラム(バージョン2.05)を取得し、この新プログラムで通常プログラム128bを書き換える(第2ループ処理S124,S138の2周目におけるステップS126→S128→S130)。そして、更新が正常に完了すると、プログラムバージョンテーブル124の情報コントローラ102の通常プログラム128bのバージョンが2.01から2.05に書き換えられる(図9のステップS132→S134でY→S136)。つまり、図示する例では、情報コントローラ102は、1台の他作業機械100B1から2つの更新用(書換用)のプログラム情報である新プログラムを取得し、取得した新プログラムによって自作業機械100Aの通常プログラム128a,128bを書き換える。
【0137】
他作業機械100B1が有するエンジンコントローラの通常プログラムのバージョンは1.00であり、自作業機械100Aのエンジンコントローラ103の通常プログラム128cのバージョン1.00と同じである。このため、他作業機械100B1が有するエンジンコントローラの通常プログラムに基づいて、自作業機械100Aのエンジンコントローラ103の通常プログラム128cの更新は行わない。他作業機械100B1が有する全てのコントローラの通常プログラムに対して、一連の処理が終了すると、他作業機械100B1の次に製造番号が大きい他作業機械100B2に対して同様の処理(ステップS116~S138)が行われる。
【0138】
図示するように、他作業機械100B2が有するエンジンコントローラの通常プログラムのバージョンは2.00であり、自作業機械100Aのエンジンコントローラ103の通常プログラム128cのバージョン1.00よりも新しい(図9のステップS122でY→S124,S138)。このため、自作業機械100Aのエンジンコントローラ103の通常プログラム128cは、他作業機械100B2が有する新プログラム(バージョン2.00)によって更新される(図9のステップS130)。そして、更新処理が正常に完了すると、プログラムバージョンテーブル124のエンジンコントローラ103の通常プログラム128cのバージョンが1.00から2.00に書き換えられる(ステップS132→S134でY→S136)。
【0139】
このように、本実施形態に係る制御装置110は、他作業機械100Bが有するプログラム情報(通常プログラム)のバージョンが、自作業機械100Aが有するプログラム情報(通常プログラム128)のバージョンよりも新しい場合に、第2通信装置142を介して他作業機械100Bから更新用のプログラム情報(本実施形態では、新しいバージョンの通常プログラム128の全体)を取得し、取得したプログラム情報によって自作業機械100Aのプログラム情報(通常プログラム128)を更新する。
【0140】
つまり、本実施形態に係る作業機械100は、自作業機械100Aの周辺に存在する他作業機械100B(100B1,100B2)と直接通信を行って、更新用のプログラム情報を取得して、自作業機械100Aのプログラム情報を更新することができる。したがって、自作業機械100Aから遠方に設置されている管理サーバ41と無線基地局71及び通信回線70を介して通信を行って、更新用のプログラム情報を取得する場合に比べて、通信コストを低く抑えることができる。
【0141】
次に、図13を参照して、通常プログラム128の更新が失敗した場合の動作の具体例について説明する。図13は、他作業機械100Bから取得した通常プログラムによって、自作業機械100Aの通常プログラム128を復旧する例について示す図である。一時保存領域127に保存した更新プログラム(新プログラム)によって現行の通常プログラム128を書き換えている途中で、バッテリ切れによって制御装置110を構成する各コントローラ101,102,103への電力の供給が絶たれると、書換処理が中断されてしまう。このように、意図せずに書換処理が中断されてしまうと、通常プログラム128を正常に更新することができず、作業機械100の動作に支障が生じる。
【0142】
図12に示す例において、他作業機械100B1から取得したメインコントローラの新プログラム(バージョン3.10)による通常プログラム128aの更新に失敗した場合について説明する。更新が失敗した場合、図13に示すように、書換前後記録126は、書換前バージョンが1.11、書換後バージョンが3.10と記憶されており、起動モードは復旧モードに設定される(図9のステップS128→S130→S132→S134でN→S144)。
【0143】
情報コントローラ102の再起動がなされ、再び情報コントローラ102に電力が供給されると、情報コントローラ102はブートローダプログラム121bを実行する。情報コントローラ102は、起動モードが復旧モードに設定されている場合、復旧プログラムを実行し、復旧処理を行う(図8のステップS103→S105でN→S107でY→S150)。
【0144】
図13に示す例では、自作業機械100Aの周辺に、2台の他作業機械100Bが稼働しており、車体存在通知を発信している(図11のステップS202)。自作業機械100Aは、2台の他作業機械100Bの車体存在通知を受信すると、車体存在通知に含まれる製造番号の小さいものから順番に、所定の処理を実行する(図10のステップS152でY→S154,S180)。
【0145】
自作業機械100Aは、製造番号の最も小さい他作業機械100B1のオーナー情報125b1を取得し、自作業機械100Aのオーナー情報125と比較する。図示するように、他作業機械100B1のオーナー情報125b1を構成するID及びパスワードと、自作業機械100Aのオーナー情報125を構成するID及びパスワードは一致しているため、自作業機械100Aは、他作業機械100B1からプログラムバージョンテーブル124b1を取得する(図10のステップS156→S158でY→S160)。
【0146】
図示するように、他作業機械100B1が有するメインコントローラの通常プログラムのバージョンは3.10であり、自作業機械100Aのメインコントローラ101の通常プログラム128aの書換前バージョン1.11と異なる(図10のステップS162でN→S180)。このため、情報コントローラ102は、他作業機械100B1が有するメインコントローラの通常プログラムに基づいて、自作業機械100Aのメインコントローラ101の通常プログラム128aの復旧は行わない。情報コントローラ102は、他作業機械100B1の次に製造番号が大きい他作業機械100B2に対して同様の処理(ステップS156~S174)を行う。
【0147】
自作業機械100Aは、他作業機械100B2のオーナー情報125b2を取得し、自作業機械100Aのオーナー情報125と比較する。図示するように、他作業機械100B2のオーナー情報125b2と、自作業機械100Aのオーナー情報125は一致しているため、自作業機械100Aは、他作業機械100B1からプログラムバージョンテーブル124b2を取得する(図10のステップS156→S158でY→S160)。
【0148】
情報コントローラ102は、取得したプログラムバージョンテーブル124b2及び書換前後記録126を参照し、他作業機械100B2に更新前プログラム(書換前バージョンの通常プログラム)が存在するか否かを判定する(図10のステップS162)。
【0149】
図13に示す例では、自作業機械100Aの書換前後記録126における書換前バージョンは1.11であり、他作業機械100B2のメインコントローラの通常プログラムのバージョンと一致している。このため、情報コントローラ102は、他作業機械100B2からメインコントローラの通常プログラムを取得し、取得した通常プログラムによって復旧を行う(ステップS162でY→S166→S168→S170)。
【0150】
このように、本実施形態に係る制御装置110は、他作業機械100B1から取得したメインコントローラの所定のバージョン(バージョン3.10)へのプログラム情報(通常プログラム128a)の更新に失敗した場合に、第2通信装置142を介して他作業機械100B2から上記所定のバージョン(バージョン3.10)とは異なる更新前バージョン(バージョン1.11)のプログラム情報(通常プログラム)を復旧用のプログラム情報として取得し、取得した復旧用のプログラム情報によって自作業機械100Aのプログラム情報(通常プログラム128a)を復旧する。
【0151】
つまり、本実施形態に係る作業機械100は、自作業機械100Aの周辺に存在する他作業機械100B(100B1,100B2)と直接通信を行って、復旧用のプログラム情報を取得して、自作業機械100Aのプログラム情報を元の状態に復旧することができる。したがって、自作業機械100Aから遠方に設置されている管理サーバ41と無線基地局71及び通信回線70を介して通信を行って、復旧用のプログラム情報を取得する場合に比べて、通信コストを低く抑えることができる。
【0152】
以上の通り、本実施形態では、作業現場に存在する複数の作業機械100のうち、最初に更新を行う作業機械100は、無線基地局71及び通信回線70を介して管理サーバ41から最新バージョンのプログラム情報を取得してプログラム情報を更新することができる。なお、更新に失敗した場合には、近くの他作業機械100Bまたは管理サーバ41から旧バージョンのプログラム情報を取得して復旧することができる。複数の作業機械100のうちのいずれかにおいて更新が正常に行われると、更新が完了した作業機械100の近くに存在する作業機械100は、更新が完了した作業機械100から最新バージョンのプログラム情報を取得してプログラム情報を更新することができる。なお、更新に失敗した場合には、近くの他作業機械100Bまたは管理サーバ41から旧バージョンのプログラム情報を取得して復旧することができる。
【0153】
上述した実施形態によれば、次の作用効果を奏する。
【0154】
(1)作業機械100は、自作業機械100Aに搭載される機器(メインポンプ31、エンジン80、表示装置190等)を制御する制御装置110と、無線基地局71を介して管理サーバ(サーバ)41と通信を行う第1通信装置141と、自作業機械100Aとは別の他作業機械100Bと直接通信を行う第2通信装置142と、を備える。制御装置110は、第2通信装置142を介して他作業機械100Bからプログラム情報(本実施形態では、通常プログラム全体)を取得し、取得したプログラム情報によって自作業機械100Aのプログラム情報(通常プログラム128)を書き換える。制御装置110は、例えば、他作業機械100Bが有するプログラム情報のバージョンが、自作業機械100Aが有するプログラム情報のバージョンよりも新しい場合に、第2通信装置142を介して他作業機械100Bからプログラム情報を取得し、取得したプログラム情報によって自作業機械100Aのプログラム情報を更新する。作業機械100同士で直接通信を行うことにより、プログラム情報(通常プログラム128)を書き換えることができるため、無線基地局71を介して管理サーバ41からプログラム情報を取得する場合に比べて、通信コストの低減を図ることができる。
【0155】
(2)作業現場では、オーナーが同じ作業機械100が複数稼働されていることが多い。本実施形態では、他作業機械100Bのオーナーが自作業機械100Aのオーナーと同じであると判定された場合には、プログラム情報を他作業機械100Bから取得し、プログラム情報を書き換える。このため、プログラム情報の書き換えを行う度に、入力装置180によってオーナー情報(例えば、パスワード)を入力するといった操作の必要がない。したがって、本実施形態によれば、オーナー情報125に基づいて認証を行うことにより作業機械100間の情報セキュリティを確保しつつ、プログラム情報の書き換えを行う際のオペレータの操作負担を軽減することができる。また、他作業機械100Bのオーナーが自作業機械100Aのオーナーと異なる場合には、オーナーの異なる他作業機械100Bから通常プログラム128を取得することはない。このため、オーナーの異なる他作業機械100Bから送信されたプログラム情報によって、自作業機械100Aのプログラム情報が書き換えられることが防止される。つまり、自作業機械100Aのプログラム情報が、オペレータの意図しないプログラム情報に書き換えられることが防止されるので、情報セキュリティの向上を図ることができる。
【0156】
(3)自作業機械100Aのプログラム情報の更新に失敗した場合、他作業機械100Bのプログラム情報を用いて自作業機械100のプログラム情報を復旧することができる。このため、自作業機械100Aのプログラム情報(通常プログラム128)のコピー(バックアップデータ)を復旧用のプログラム情報として、予め自作業機械100Aの不揮発性メモリ102bに記憶させておく必要がない。したがって、本実施形態によれば、不揮発性メモリ102bのサイズを小さく抑えることができ、不揮発性メモリ102bのコストの低減を図ることができる。
【0157】
次のような変形例も本発明の範囲内であり、変形例に示す構成と上述の実施形態で説明した構成を組み合わせたり、以下の異なる変形例で説明する構成同士を組み合わせたりすることも可能である。
【0158】
<変形例1>
上記実施形態では、自作業機械100Aの周辺の他作業機械100Bに新プログラムを有する他作業機械100Bが存在しなくなると、起動モードを通常モードに設定し、通常の制御を行う例について説明したが、本発明はこれに限定されない。起動モードが更新モードに設定されている場合であって、自作業機械100Aの周辺に新プログラムを有する他作業機械100Bが存在しないときには、通信制御部136は、第1通信装置141を介して、新プログラムを有する管理サーバ41に対して新プログラム(更新用のプログラム情報)を取得するための要求指令を送信し、管理サーバ41から送信された新プログラム(更新用のプログラム情報)を取得するようにしてもよい。
【0159】
<変形例2>
上記実施形態では、起動モードに復旧モードが設定されている場合であって、自作業機械100Aの周辺に更新前プログラムを有する他作業機械100Bが存在しないときには、第1通信装置141によって管理サーバ41から更新前プログラム(復旧用のプログラム情報)を取得する例(図10のステップS180→S186)について説明した。この場合、管理サーバ41との通信に伴い通信コストがかかることになる。
【0160】
そこで、本変形例に係る制御装置110の情報コントローラ102は、プログラム情報(通常プログラム128)の更新を行う前に、自作業機械100Aのプログラム情報(通常プログラム128)を第2通信装置142により他作業機械100Bに送信し、他作業機械100Bの記憶装置に記憶させる。このように、予め、更新対象のプログラム情報(通常プログラム128)を復旧用のプログラム情報として他作業機械100Bの記憶装置に記憶させておくことにより、プログラム情報の更新が失敗した場合に、第2通信装置142によって他作業機械100Bから復旧用のプログラム情報を取得することができる。その結果、管理サーバ41から復旧用のプログラム情報を取得する機会を減らすことができ、通信コストの低減を図ることができる。なお、復旧用のプログラム情報を記憶させておく他作業機械100Bの記憶装置は、例えば、情報コントローラ102の不揮発性メモリ102bとすることができる。不揮発性メモリ102bには、一時保存領域127が確保されているため、他作業機械100Bに余分な記憶領域を設ける必要がない。つまり、作業機械100の記憶装置のサイズを小さく抑えることができ、記憶装置のコストの低減を図ることができる。
【0161】
<変形例3>
他作業機械100Bが有するプログラム情報(通常プログラム)の中から取得するプログラム情報(通常プログラム128)をオペレータによって選択できるようにしてもよい。本変形例に係る制御装置110の情報コントローラ102は、オペレータによって操作される入力装置180からの信号に基づいて、複数の他作業機械100Bがそれぞれ有しているプログラム情報(通常プログラム)のうちのいずれかを選択し、選択したプログラム情報を第2通信装置142を介して他作業機械100Bから取得し、取得したプログラム情報によって自作業機械100Aのプログラム情報を書き換える。
【0162】
例えば、オペレータは、図12に示す他作業機械100B1の情報コントローラの通常プログラム(バージョン2.05)及び他作業機械100B2の情報コントローラの通常プログラム(バージョン2.02)のうちのいずれかを選択することができる。これにより、例えば、有料版のバージョン(バージョン2.05)の通常プログラム、及び、無料版のバージョン(バージョン2.02)の通常プログラムが存在する場合に、オペレータは、いずれかを選択することができる。また、オペレータは、複数のバージョンに中から自身の好みの操作性を発揮できるバージョンの通常プログラムを選択することができる。
【0163】
<変形例4>
書換処理(図9のステップS130)を実行する前に、自作業機械100Aのオーナー(オーナーコンピュータ45)に対して、書換処理の承認を得るための承認要求を送信し、承認が得られた場合にのみ、書換処理を実行するようにしてもよい。例えば、図9のステップS122において、新プログラムが存在すると判定された場合、情報コントローラ102の通信制御部136は、第1通信装置141を介して、オーナーコンピュータ45に、書換処理の承認を得るための承認要求を送信する。オーナーは、書換処理を承認する場合、オーナーコンピュータ45によって承認することを表すデータを要求元の作業機械100に送信する。情報コントローラ102の通信制御部136は、オーナーコンピュータ45から承認することを表すデータを受信した場合、図9のステップS124へ進み、第2通信装置142を介して、新プログラムを取得するための要求指令を他作業機械100Bに送信する。このように、書換処理(図9のステップS130)を実行する前に、オーナーに対して、書換処理の承認を得るステップを追加することにより、オーナーの意図しない書換処理が実行されることを防止することができる。
【0164】
<変形例5>
他作業機械100Bと自作業機械100Aのオーナーが同じであるか否かの判定処理(図9のステップS118及び図10のステップS158)において、オーナーが同じでないと判定された場合には、自作業機械100Aのオペレータに対して、他作業機械100Bのオーナー情報を入力させるための入力要求を送信してもよい。この場合、情報コントローラ102は、入力装置180によって入力されたオーナー情報が、他作業機械100Bのオーナー情報125に一致する場合にのみ、書換処理を実行する。
【0165】
本変形例に係る制御装置110の情報コントローラ102は、他作業機械100Bのオーナー情報と自作業機械100Aのオーナー情報125とを比較し、他作業機械100Bのオーナー情報と自作業機械100Aのオーナー情報125とが一致しない場合、オペレータに対して他作業機械100Bのオーナー情報の入力を要求する。オペレータに対する入力要求は、例えば、表示装置190の表示画面に、他作業機械100Bの識別情報と、「オーナー情報を入力してください」といった文を表示させることにより行う。
【0166】
情報コントローラ102は、入力装置180によって入力されたオーナー情報(例えば、パスワード)が他作業機械100Bのオーナー情報125に一致しない場合には、他作業機械100Bからプログラム情報(通常プログラム)を取得しない。情報コントローラ102は、入力装置180によって入力されたオーナー情報が他作業機械100Bのオーナー情報に一致する場合には、他作業機械100Bからプログラム情報(通常プログラム)を取得し、取得したプログラム情報によって自作業機械100Aのプログラム情報(通常プログラム128)を書き換える。
【0167】
情報コントローラ102は、他作業機械100Bのオーナー情報と自作業機械100Aのオーナー情報125とが一致する場合、オペレータに対してオーナー情報の入力を要求することなく、他作業機械100Bからプログラム情報を取得し、取得したプログラム情報によって自作業機械100Aのプログラム情報(通常プログラム128)を書き換える。
【0168】
本変形例によれば、上記実施形態と同様、他作業機械100Bと自作業機械100Aのオーナーが同じであると判定された場合には、オペレータに対してオーナー情報の入力を要求しないので、オペレータの操作の負担を軽減することができる。
【0169】
<変形例6>
上記実施形態では、他作業機械100Bから取得するプログラム情報が通常プログラムであって、取得したプログラム情報(通常プログラム128全体)で自作業機械100Aの通常プログラム128を書き換える例について説明したが、本発明はこれに限定されない。例えば、自作業機械100Aの通常プログラム128を書き換えるためのプログラム情報は、上述したように、新しいバージョンの通常プログラム128の全体に限定されず、書換前後のプログラムの共通プログラムを除いた通常プログラムの一部であってもよい。また、書換対象(更新対象及び復旧対象)となる自作業機械100Aのプログラム情報は、通常プログラム128に限定されることもない。例えば、通常プログラム128を実行することにより、通常制御を行う際に用いる制御用データ、またはオペレータが入力装置180によって設定したユーザ設定データをプログラム情報として他作業機械100Bから取得し、取得したプログラム情報(制御用データまたはユーザ設定データ)によって自作業機械100Aのプログラム情報(制御用データまたはユーザ設定データ)を書き換えるようにしてもよい。
【0170】
<変形例7>
上記実施形態では、情報コントローラ102の不揮発性メモリ102bに、モードデータ122、更新プログラム123a、復旧プログラム123b、プログラムバージョンテーブル124、オーナー情報125及び書換前後記録126を記憶し、不揮発性メモリ102bに、一時保存領域127を確保する例について説明したが、本発明はこれに限定されない。モードデータ122、更新プログラム123a、復旧プログラム123b、プログラムバージョンテーブル124、オーナー情報125及び書換前後記録126は、メインコントローラ101の不揮発性メモリ101b、エンジンコントローラ103の不揮発性メモリ103b、または、その他のコントローラ(例えば、バッテリコントローラ)の不揮発性メモリに記憶させてもよい。同様に、一時保存領域127は、メインコントローラ101の不揮発性メモリ101b、エンジンコントローラ103の不揮発性メモリ103b、または、その他のコントローラの不揮発性メモリに確保してもよい。つまり、更新処理及び復旧処理は、情報コントローラ102が行うことに限定されず、メインコントローラ101、エンジンコントローラ103、または、その他のコントローラが行ってもよい。
【0171】
<変形例8>
上記実施形態では、作業機械100がクローラ式の油圧ショベルである場合を例に説明したが、本発明はこれに限定されない。ホイール式の油圧ショベル、ホイールローダ、クローラクレーン、ダンプトラック等、作業装置を備える種々の作業機械に本発明を適用することができる。
【0172】
以上、本発明の実施形態について説明したが、上記実施形態は本発明の適用例の一部を示したに過ぎず、本発明の技術的範囲を上記実施形態の具体的構成に限定する趣旨ではない。
【符号の説明】
【0173】
31…メインポンプ(機器)、36b…電磁比例弁(機器)、71…無線基地局、80…エンジン(機器)、100…作業機械、100A…自作業機械、100B(100B1,100B2)…他作業機械、101b,102b,103b…不揮発性メモリ(記憶装置)、110…制御装置、125…オーナー情報、128…通常プログラム(プログラム情報)、141…第1通信装置(機器)、142…第2通信装置(機器),190…表示装置(機器)
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13