(57)【要約】【課題】データの取得先が変わっても容易にプログラムを変更することができる作業車両の制御システムを提供する。【解決手段】電子機器システム１の各コントローラのプロセッサは、コントローラのそれぞれに固有の処理を実行するアプリケーション３１と、コントローラ間で授受する信号を制御し、バス１１を介して他のコントローラからの信号を取得するドライバ３３と、アプリケーション３１とドライバ３３との間でデータを授受する中間層３２とにより、プログラム演算を実行して油圧ショベル２の各種機器を制御する。電子機器システム１のコントローラの構成が変更されデータの取得先が変わったときには、中間層３２のみを変更する。【選択図】図３
2004263489.tif 000002
【特許請求の範囲】
【請求項１】
それぞれがプロセッサによりプログラム演算を実行して作業車両の各種機器を制御し、互いにバスで接続された少なくとも２つのコントローラを有し、
前記プロセッサは、
前記コントローラのそれぞれに固有のアプリケーションプログラムと、
前記コントローラ間で授受する信号を制御し、前記バスを介して他のコントローラからの信号を取得するドライバプログラムと、
前記アプリケーションプログラムとドライバプログラムとの間でデータを授受する中間プログラムとにより前記プログラム演算を実行して前記各種機器を制御することを特徴とする作業車両用電子制御装置。
【請求項２】
請求項１の電子制御装置において、
前記ドライバプログラムは、計測手段により計測された前記各種機器の制御状態を示す信号をさらに取得し、
前記中間プログラムは、その取得信号を前記アプリケーションプログラムで用いるデータに変換することを特徴とする作業車両用電子制御装置。
【請求項３】
請求項１の電子制御装置において、
前記ドライバプログラムは、計測手段により計測された前記各種機器の制御状態を示す信号をさらに取得し、
前記中間プログラムは、その取得信号にフィルタリング処理を行って取得信号より不要な成分を除去することを特徴とする作業車両用電子制御装置。
【請求項４】
請求項２の電子制御装置において、
前記中間プログラムは、前記変換したデータにフィルタリング処理を行ってそのデータより不要な成分を除去することを特徴とする作業車両用電子制御装置。
【請求項５】
請求項２または４の電子制御装置において、
前記変換したデータを前記バスに送信し、すべてのコントローラで前記変換したデータを共有化することを特徴とする作業車両用電子制御装置。
【請求項６】
請求項５の電子制御装置において、
前記変換したデータは、データごとに決められた所定の周期で前記バスに送信されることを特徴とする作業車両用電子制御装置。
【請求項７】
請求項１〜６のいずれかの電子制御装置において、
前記中間プログラムは、前記ドライバプログラムにより取得される信号の取得先を記憶し、中間プログラムのみを変更することで前記取得先を変更することができることを特徴とする作業車両用電子制御装置。
【請求項８】
請求項１〜７のいずれかの電子制御装置において、
前記コントローラは、オペレータにより操作されるレバーの操作量に基づいて前記作業車両の動作に用いる油圧の指令値を算出する電気レバーコントローラと、
前記作業車両の作業範囲に設定された進入禁止領域と前記作業車両の動作部位との位置関係に基づいて、前記電気レバーコントローラにより算出された指令値を補正する作業範囲制限制御コントローラと、
前記電気レバーコントローラにより算出された指令値または前記作業範囲制限制御コントローラにより補正された指令値に基づいて、前記作業車両の動作を制御する車体制御コントローラと、
前記オペレータに前記作業車両の動作状態を表示する表示手段を制御し、前記オペレータが操作する入力手段の状態に基づいて前記表示手段の表示内容を変更する表示制御コントローラと、
前記電気レバーコントローラ、作業範囲制限制御コントローラ、車体制御コントローラおよび表示制御コントローラのいずれか２つ以上のコントローラ間で授受される情報を蓄積する情報蓄積コントローラのいずれかであることを特徴とする作業車両用電子制御装置。
【請求項９】
請求項１〜８のいずれかの電子制御装置により制御される各種機器を有する作業車両。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、建設機械などの作業車両の各種機器を制御する電子制御装置に関する。
【０００２】
【従来の技術】
近年、建設機械の制御装置についても電子化が進んでいる。電子化された制御装置では、複数のセンサを建設機械の車体に取り付け、コントローラで各センサからの情報を収集して車体の状態を検知し、その検知した結果に基づいて車体の制御を行っている。また、このような建設機械の制御装置では、車体の制御のみならず、稼働状況を管理するために故障の発生状況などのデータを収集・記録することも行われている。これらの目的を達成するために、機能ごとに別のコントローラを用いて、これら複数のコントローラをネットワーク化している制御システムがある（特許文献１）。
【０００３】
【特許文献１】
特開平７−２７７６７５号公報
【０００４】
建設機械の機能には、初めから標準機能として搭載されるものもあれば、顧客の個々の要求により拡張機能として後から追加するものもある。そのため特許文献１に記載の制御システムでは、個々のシステムごとに用いるコントローラの構成は変化する。各コントローラの機能を実現するアプリケーションには、それぞれの処理に用いるデータの取得先（要求先）の情報が組み込まれているが、システムの構成が一定でないことより、そのデータの取得先がシステムによって異なる場合がある。このような場合、コントローラのアプリケーションを変えなければならないが、アプリケーションを構成するプログラムのソースコード全てを変更する必要があり、多くの費用と時間がかかっている。
【０００５】
本発明は、建設機械などの作業車両の制御システムにおいて、データの取得先が変わっても容易にプログラムを変更することができる制御システムを提供するものである。
【０００６】
【課題を解決するための手段】
請求項１の発明による作業車両用電子制御装置は、それぞれがプロセッサによりプログラム演算を実行して作業車両の各種機器を制御し、互いにバスで接続された少なくとも２つのコントローラを有し、プロセッサは、コントローラのそれぞれに固有のアプリケーションプログラムと、コントローラ間で授受する信号を制御し、バスを介して他のコントローラからの信号を取得するドライバプログラムと、アプリケーションプログラムとドライバプログラムとの間でデータを授受する中間プログラムとによりプログラム演算を実行して各種機器を制御する。
請求項２の発明は、請求項１の電子制御装置において、ドライバプログラムは、計測手段により計測された各種機器の制御状態を示す信号をさらに取得し、中間プログラムは、その取得信号をアプリケーションプログラムで用いるデータに変換するものである。
請求項３の発明は、請求項１の電子制御装置において、ドライバプログラムは、計測手段により計測された各種機器の制御状態を示す信号をさらに取得し、中間プログラムは、その取得信号にフィルタリング処理を行って取得信号より不要な成分を除去するものである。
請求項４の発明は、請求項２の電子制御装置において、中間プログラムは、変換したデータにフィルタリング処理を行ってそのデータより不要な成分を除去するものである。
請求項５の発明は、請求項２または４の電子制御装置において、変換したデータをバスに送信し、すべてのコントローラで変換したデータを共有化するものである。
請求項６の発明は、請求項５の電子制御装置において、変換したデータは、データごとに決められた所定の周期でバスに送信されることとするものである。
請求項７の発明は、請求項１〜６のいずれかの電子制御装置において、中間プログラムは、ドライバプログラムにより取得される信号の取得先を記憶し、中間プログラムのみを変更することで取得先を変更することができるものである。
請求項８の発明は、請求項１〜７のいずれかの電子制御装置において、コントローラは、オペレータにより操作されるレバーの操作量に基づいて作業車両の動作に用いる油圧の指令値を算出する電気レバーコントローラと、作業車両の作業範囲に設定された進入禁止領域と作業車両の動作部位との位置関係に基づいて、前記電気レバーコントローラにより算出された指令値を補正する作業範囲制限制御コントローラと、電気レバーコントローラにより算出された指令値または作業範囲制限制御コントローラにより補正された指令値に基づいて、作業車両の動作を制御する車体制御コントローラと、オペレータに作業車両の動作状態を表示する表示手段を制御し、オペレータが操作する入力手段の状態に基づいて表示手段の表示内容を変更する表示制御コントローラと、電気レバーコントローラ、作業範囲制限制御コントローラ、車体制御コントローラおよび表示制御コントローラのいずれか２つ以上のコントローラ間で授受される情報を蓄積する情報蓄積コントローラのいずれかであるとするものである。
請求項９の発明は、作業車両において適用され、請求項１〜８のいずれかの電子制御装置により制御される各種機器を有するものである。
【０００７】
【発明の実施の形態】
――第１の実施の形態――
本発明による電子機器システムの第１の実施の形態を図１に示す。この電子機器システム１は、図２に示す油圧ショベル２に搭載され、これを制御する。以下、図２に示す油圧ショベル２の各部分の動作と合わせて、電子機器システム１の動作を説明する。
【０００８】
バスライン１１は、以降に説明する各コントローラをバス結合してネットワークを構築する。各コントローラ間のデータは、このバスライン１１を介して入出力される。バスライン１１は、たとえばＣＡＮ（Ｃｏｎｔｒｏｌｌｅｒ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）などにより実現される。
【０００９】
電気レバーコントローラ１２は、オペレータにより操作された２軸の電気式操作レバー１２１および１２２の操作量を取得し、取得された操作量に基づいて、図２のフロント部２６を制御するための指令値を算出する。算出された指令値は、バスライン１１を介して車体制御コントローラ１４に出力される。なお操作レバー１２１および１２２は、図２の運転席２５内に設置されている。
【００１０】
作業範囲制限制御コントローラ１３は、図２のフロント部２６が設定された進入禁止領域に入らないよう、各種センサの計測値に基づいて、フロント部２６を制御するための指令値を算出する。算出された指令値は、バスライン１１を介して車体制御コントローラ１４に出力される。このとき用いられる各種センサは、傾斜センサ１３１、バケットストロークセンサ１３２、アーム角センサ１３３、およびブーム角センサ１３４である。傾斜センサ１３１は図２の油圧ショベル２の車体の傾斜角、バケットストロークセンサ１３２はバケットシリンダ２６６のストローク、アーム角センサ１３３はアーム２６２の角度、ブーム角センサ１３４はブーム２６１の角度をそれぞれ計測する。
【００１１】
また、作業範囲制限制御コントローラ１３は、プロセッサ１３５、ＲＯＭ１３６、ＲＡＭ１３７およびＩ／Ｏ回路１３８を有している。プロセッサ１３５は、ＲＡＭ１３７を作業領域としてＲＯＭ１３６に記憶されたプログラムを実行し、上述した処理を実行する。Ｉ／Ｏ回路１３８は、外部との信号変換を行う。なお、その他の各コントローラ１２、１４〜１６もこの作業範囲制限制御コントローラ１３と同様にプロセッサ、ＲＯＭ、ＲＡＭおよびＩ／Ｏ回路を有しているが、図示および説明については省略する。
【００１２】
車体制御コントローラ１４は、電気レバーコントローラ１２や作業範囲制限制御コントローラ１３より出力された指令値に基づいて、電磁弁１４１を制御する。電磁弁１４１により、図２のブームシリンダ２６４、アームシリンダ２６５、およびバケットシリンダ２６６の油圧が制御され、フロント部２６の各部が動作する。なお、フロント部２６の動作の詳細については後に説明する。
【００１３】
情報蓄積コントローラ１５は、図示しないエンジン回転数センサや温度センサなどにより計測された各種情報、たとえば車体稼働情報や故障履歴などを記録する。記録された情報は、たとえば表示装置１６１により表示することとしてもよいし、必要に応じてパソコンなどの外部機器を接続し、これに出力することとしてもよい。なお情報蓄積コントローラ１５により各種情報を記録するタイミングは、任意に設定できる。たとえば、あらかじめ設定された時間により周期的に記録することとしてもよいし、または何らかの異常状態がいずれかのセンサにより検出されたときに記録することとしてもよい。
【００１４】
情報表示コントローラ１６は、各コントローラより情報を取得し、取得した情報に基づいて、表示装置１６１に車体の各種情報を表示する。また、キー入力装置１６２の出力を検出し、検出した出力内容に基づいて、表示装置１６１に表示する情報内容の切り替えなどを行う。なお、表示装置１６１とキー入力装置１６２は図２の運転席２５内に設置され、オペレータは表示装置１６１により車体の情報を確認するとともに、キー入力装置１６１を操作して情報内容を切り替えることができる。
【００１５】
次に、図２に示す油圧ショベル２について説明する。油圧ショベル２は、前述の電子機器システム１によって制御されるフロント部２６の他に、自走するための下部走行体２１と、下部走行体２１上に設けられてその上を旋回する上部旋回体２２とを主に有する。なお上部旋回体２２は、その前部の左側には運転室２５が設けられており、前部の中央ではフロント部２６を支持している。また上部旋回体２２には、車体の傾斜角を計測する前述の傾斜センサ１３１が備えられている。
【００１６】
フロント部２６は、上部旋回体２２に支持されて回転軸２６７を中心に俯仰動するブーム２６１と、ブーム２６１の先端に設けられて回転軸２６８を中心に回動するアーム２６２と、アーム２６２の先端に設けられて回転軸２６９を中心に回動するバケット２６３とを備えている。また、これらブーム２６１、アーム２６２およびバケット２６３はそれぞれブームシリンダ２６４、アームシリンダ２６５およびバケットシリンダ２６６で駆動される。ブームシリンダ２６４、アームシリンダ２６５およびバケットシリンダ２６６は油圧シリンダであり、図１の電磁弁１４１によりその油圧を制御される。これにより、それぞれのシリンダによってブーム２６１、アーム２６２およびバケット２６３が動作する。なお、回転軸２６７には前述のブーム角センサ１３４、回転軸２６８にはアーム角センサ１３３がそれぞれ取り付けられており、これらとバケットシリンダ２６６に備えられたバケットストロークセンサ１３２によって、フロント部２６の動作状態が計測される。
【００１７】
次に、図１に示す各コントローラ１２〜１６の処理内容について詳細に説明する。各コントローラのＲＯＭには、それぞれの処理を実行するプログラムが実装されており、その基本構成は同じである。各コントローラにおけるプログラムの基本構成は、図３に示すアプリケーション３１、中間層３２およびドライバ３３よりなる。
【００１８】
アプリケーション３１は、そのプログラムが実装されるコントローラに固有の機能を実現するための処理を実行する。その処理内容は油圧ショベル２の制御に関わるものであり、各コントローラごとに異なる。たとえば作業範囲制限制御コントローラ１３では、アプリケーション３１において図２のフロント部２６の動作範囲を制限するための指令値の補正が行われるが、この処理は他のコントローラでは行われない。なお、アプリケーション３１での処理結果は必要に応じて中間層３２へ出力され、アプリケーション３１において処理に必要なデータがあるときは、中間層３２へデータ要求が出力される。
【００１９】
中間層３２は、アプリケーション３１とドライバ３３との間で行われるデータの授受を制御する。中間層３２は、さらにデータ振り分け部３２１、データテーブル３２２、データ変換部３２３、タイマ部３２４、およびデータ格納部３２５を有する。データ振り分け部３２１は、アプリケーション３１またはドライバ３３の一方より中間層３２へ出力されたデータを適宜振り分け、もう一方へ出力したり、あるいはデータ格納部３２５へ格納したりする。データ振り分け部３２１はまた、アプリケーション３１またはドライバ３３の一方より中間層３２へ出力されるデータ要求を受け付け、その要求されたデータをもう一方、あるいはデータ格納部３２５より取得して、要求元へ返信する。このとき、後に説明するタイマ部３２４におけるタイミング処理により、このようなデータの出力または取得を定期的に実行することもできる。
【００２０】
データテーブル３２２は、前述のデータ振り分け部３２１がデータの取得や格納を行う際に必要な情報テーブルを記憶する。データ振り分け部３２１は、このデータテーブル３２２に記憶された情報テーブルに基づいて、データの出力先や取得先、あるいはデータ格納部３２５へ格納するときの格納先を判断する。なお情報テーブルの詳細については、後に説明する。
【００２１】
データ変換部３２３は、必要に応じてアプリケーション３１とドライバ３３との間で授受するデータの変換を行う。たとえばセンサによる計測値などは、このデータ変換部３２３において、アプリケーション３１で使用するデータ形式に変換される。例として、図１のブーム角センサ１３４により計測された図２のブーム２６１の角度は、ブーム角センサ１３４からは電圧値として出力され、その電圧値が作業範囲制限制御コントローラ１３において検出される。その検出された電圧値は、このデータ変換部３２３において、角度データに変換される。このように変換されたデータは、アプリケーション３１で使用される他に、後に説明するネットワークドライバによって、バスライン１１のネットワーク上にそのデータごとに決められた所定の周期で出力される。このようにすることで、あるコントローラにおいて変換されたデータを、他のコントローラ全てで共有できる。
【００２２】
タイマ部３２４は、データ振り分け部３２１において一定周期で定期的に実行される処理に対して、そのタイミングを取るためのタイミング処理を実行する。タイミング処理により一定の時間間隔ごとにデータ振り分け部３２１へタイミング信号が出力され、データ振り分け部３２１においてこのタイミング信号をカウントすることで、処理の実行周期が判断される。このときのタイミング信号の出力周期は、データ振り分け部３２１における処理の実行周期よりは少なくとも短い。または、タイマ部３２４において処理の実行周期を判断し、データ振り分け部３２１に対して一定周期ごとに処理の実行を要求することとしてもよい。
【００２３】
データ格納部３２５は、アプリケーション３１やドライバ３３より出力されたデータを一時的に格納するメモリ動作を行う。格納されたデータは、必要に応じてデータ振り分け部３２１によって取り出され、アプリケーション３１やドライバ３３へ出力される。なおデータ格納部３２５において、データの格納先はアドレス番号により指定される。以上説明したような各構成によって、中間層３２はアプリケーション３１とドライバ３３との間で行われるデータの授受を制御する。
【００２４】
ドライバ３３は、そのプログラムが実装されるコントローラが外部と授受する信号を制御し、各種センサからの信号や他のコントローラからの信号などを取得する。このドライバ３３は、信号の入出力先ごとに異なるものが用いられ、１つのコントローラに対して２つ以上のドライバが用いられる場合もある。たとえば図１の作業範囲制限制御コントローラ１３では、各センサ１３１〜１３４からの出力電圧をデータとして取り込むためのＡＤ変換ドライバと、他の各コントローラとバスライン１１を介してデータの入出力を行うためのネットワークドライバとが用いられている。なお、ドライバ３３によって取得されたコントローラ外部の信号は、必要に応じてデータとして中間層３２へ出力され、ドライバ３３において処理に必要なデータがあるときは、中間層３２へデータ要求が出力される。
【００２５】
以上説明したプログラムの基本構成を図１の各コントローラ１２〜１６ごとに図示したものを、図４〜７に示す。図４は電気レバーコントローラ１２および作業範囲制限制御コントローラ１３のプログラムの基本構成を図示したものであり、ドライバ３３として、ＡＤ変換ドライバ３３１およびネットワークドライバ３３２を有している。ＡＤ変換ドライバ３３１は、アナログ電圧値をデジタル値に変換するものである。電気レバーコントローラ１２では、このＡＤ変換ドライバ３３１によって、図１の電気式操作レバー１２１および１２２の操作量に応じて出力される電圧値を取得する。作業範囲制限制御コントローラ１３では、前述のように各センサ１３１〜１３４からの出力電圧をデータとして取り込む。また、ネットワークドライバ３３２は、前述のとおり他の各コントローラとバスライン１１を介してデータの入出力を行うものである。
【００２６】
図５は車体制御コントローラ１４について図示したものであり、ドライバ３３として、前述のネットワークドライバ３３２と、ＰＷＭドライバ３３３とを有している。ＰＷＭドライバ３３３は、前述の指令値にしたがって図１の電磁弁１４１を制御するためのものである。また、図６は情報蓄積コントローラ１５について図示したものであり、ドライバ３３として、前述のネットワークドライバ３３２を有している。
【００２７】
図７は情報表示コントローラ１６について図示したものであり、ドライバ３３として、前述のネットワークドライバ３３２と、ＤＩドライバ３３４およびディスプレイドライバ３３５とを有している。ＤＩドライバ３３４は、オペレータの設定操作などを入力する図１のキー入力装置１６２からの出力を取得するためのものである。またディスプレイドライバ３３５は、表示装置１６１に車体の情報画面を表示するためのものである。
【００２８】
このように、図３に示すコントローラのプログラムの基本構成は、主たる処理を実行するアプリケーション３１と、アプリケーション３１とドライバ３３との間で行われるデータの授受を制御する中間層３２と、外部と授受する信号を制御するドライバ３３とである。また、図４〜７に示す各コントローラごとのプログラムの基本構成は、ドライバ３３の他は全て同一である。このようにすることで、図１の電子機器システム１の構成を一部変更した場合において、プログラムはデータの授受を制御する中間層３２のみを変更すればよい。そのため、プログラムの開発時間および開発コストを低減できる。
【００２９】
なお、図４〜７に示す各コントローラごとのプログラムの基本構成において、ドライバ３３として用いられる各種ドライバは、ここで説明したものの他に各種のドライバを必要に応じて用いてもよい。
【００３０】
図３〜７におけるデータテーブル３２２に記憶された情報テーブルの内容の例を図８〜１１に示す。図８（ａ）および（ｂ）は電気レバーコントローラ１２、図９は作業範囲制限制御コントローラ１３、図１０は車体制御コントローラ１４、図１１は情報表示コントローラ１６のそれぞれに記憶された情報テーブルの例である。これらの情報テーブルにおいて、符号８１〜８５に示す列の内容は次のものを表す。列８１はそのデータの名称を、列８２はそのデータの取得先（出力元）を表すデータソースを、列８３はデータソースが複数のチャネルを有している場合、そのデータの取得先のチャネル番号を、列８４はそのデータがデータ格納部３２５に格納される場合、データ格納部３２５の格納先のアドレス番号を、列８５はそのデータのデータサイズを、それぞれ表す。
【００３１】
たとえば、図８（ａ）の符号８６に示す行にはブーム操作レバー操作量という名称のデータが記述されている。このデータは、ＡＤ変換ドライバ３３１のチャネル０より出力され、データサイズが２バイトであることが表されている。また、符号８７に示す行には、ブーム指令値という名称のデータが記述されている。このデータは、メモリ、すなわちデータ格納部３２５に格納されるとともに、このデータ格納部３２５より出力され、そのアドレス番号は０ｘ０１００番地、データサイズは２バイトであることが表されている。このような情報テーブルにより、中間層３２においてデータを振り分けるときのデータの出力先や、データを要求するときの要求先、あるいはデータ格納部３２５へ格納するときのアドレス番号を、データ振り分け部３２１は判断する。
【００３２】
次に、図４〜７に示す各コントローラのプログラムの基本構成において、各構成における処理内容および構成間でのデータフローの例を図１２〜１７に示す。以下、図１２より順に説明を行う。図１２には、図４に示す電気レバーコントローラ１２および作業範囲制限制御コントローラ１３の基本構成において、ＡＤ変換ドライバ３３１によりデータを取得するときのデータフロー図が示されている。ステップＳ９１では、アプリケーション３１がたとえば図８（ａ）の行８６に示すブーム操作レバー操作量を必要とするときに、アプリケーション３１において、そのデータを要求するデータ要求を発行し、中間層３２に出力する。
【００３３】
ステップＳ９２〜Ｓ９４の処理は、中間層３２において実行される。ステップＳ９２では、ステップＳ９１でアプリケーション３１より出力されたデータ要求を受け付ける。ステップＳ９３では、データテーブル３２２に記憶された図８（ａ）の情報テーブルを参照して、要求されたブーム操作レバー操作量の取得先がＡＤ変換ドライバ３３１であり、そのチャネル番号が０であることを判断する。ステップＳ９４では、ステップＳ９３で判断したデータの取得先、すなわちＡＤ変換ドライバ３３１に対して、チャネル番号０のデータを要求する。
【００３４】
ステップＳ９５〜Ｓ９７の処理は、ＡＤ変換ドライバ３３１において実行される。ステップＳ９５では、ステップＳ９４で中間層３２より出力されたデータ要求を受け付ける。ステップＳ９６では、要求されたチャネル番号０の計測値に対してＡＤ変換を行い、その値をデータとして取得する。ステップＳ９７では、ステップＳ９６で取得したチャネル番号０のＡＤ変換データを、中間層３２へ出力する。
【００３５】
ステップＳ９８〜Ｓ９１０の処理は、中間層３２において実行される。ステップＳ９８では、ステップＳ９７でＡＤ変換ドライバ３３１より出力されたチャネル番号０のＡＤ変換データを取得する。ステップＳ９９では、データ変換部３２３において、ステップＳ９８で取得したデータをアプリケーション３１で使用するブーム操作レバー操作量のデータ形式に変換する。ステップＳ９１０では、ステップＳ９９で得られたブーム操作レバー操作量のデータを、アプリケーション３１に出力する。
【００３６】
ステップＳ９１１では、アプリケーション３１において、ステップＳ９１０で中間層３２より出力されたブーム操作レバー操作量を取得する。ステップＳ９１１の後には、アプリケーション３１は次の処理へ移行し、このブーム操作レバー操作量を用いて、各種の処理を実行する。
【００３７】
図１３には、図１２と同じく、図４に示す電気レバーコントローラ１２および作業範囲制限制御コントローラ１３の基本構成において、ＡＤ変換ドライバ３３１によりデータを取得するときのデータフロー図が示されている。ただし、図１３における処理内容は、前述の図１２のものとは異なる。
【００３８】
ステップＳ１０１では、中間層３２において、タイマ部３２４により一定周期で処理を起動する。ステップＳ１０２では、データテーブル３２２に記憶された情報テーブル、たとえば図８（ｂ）の情報テーブルを参照して、必要とするデータ、たとえば行８８に示すブーム操作レバーセンサの取得先が、ＡＤ変換ドライバ３３１であり、そのチャネル番号が０であることを判断する。さらにＡＤ変換ドライバ３３１に対して、このチャネル番号０のデータを要求する。
【００３９】
ステップＳ１０３〜Ｓ１０５では、ＡＤ変換ドライバ３３１において、図１２のステップＳ９５〜Ｓ９７と同じ処理が行われる。ステップＳ１０３で中間層３２より出力されたデータ要求を受け付け、ステップＳ１０４でチャネル番号０のＡＤ変換データを取得し、ステップＳ１０５で中間層３２へ出力する。
【００４０】
ステップＳ１０６〜Ｓ１０１０の処理は、中間層３２において実行される。ステップＳ１０６では、図１２のステップＳ９８と同様に、ステップＳ１０５でＡＤ変換ドライバ３３１より出力されたチャネル番号０のデータを取得する。ステップＳ１０７では、データ変換部３２３において、取得したデータをアプリケーション３１で使用するデータ形式、すなわち図８（ｂ）の行８９に示すブーム操作レバー操作量に変換する。ステップＳ１０８では、ステップＳ１０７で変換したデータからノイズを除去するために、フィルタリング処理を行う。ステップＳ１０９では、データテーブル３２２に記憶された図８（ｂ）の情報テーブルを参照して、このブーム操作レバー操作量がデータ格納部３２５に格納され、そのアドレス番号が０ｘ０１００番地であることを判断する。ステップＳ１０１０では、ステップＳ１０９で判断したデータ格納部３２５のアドレス番号０ｘ０１００番地へ、ステップＳ１０８でフィルタリング処理を行ったブーム操作レバー操作量のデータを格納する。なお、ステップＳ１０１０を実行した後はステップＳ１０１へ戻り、一定周期が経過すると、タイマ部３２４により上述した処理を再び起動する。
【００４１】
ステップＳ１０１１は、アプリケーション３１がブーム操作レバー操作量を必要とするときに、アプリケーション３１において実行される。ステップＳ１０１１では、ブーム操作レバー操作量を要求するデータ要求を発行し、中間層３２へ出力する。
【００４２】
ステップＳ１０１２〜Ｓ１０１５の処理は、中間層３２において実行される。ステップＳ１０１２では、ステップＳ１０１１でアプリケーション３１より出力されたデータ要求を受け付ける。ステップＳ１０１３では、データテーブル３２２に記憶された図８（ｂ）の情報テーブルを参照して、要求されたブーム操作レバー操作量の取得先がデータ格納部３２５であり、そのアドレス番号が０ｘ０１００番地であることを判断する。ステップＳ１０１４では、ステップＳ１０１３で判断したデータの取得先、すなわちデータ格納部３２５のアドレス番号０ｘ０１００番地に格納されているデータを取得する。ステップＳ１０１５では、その取得したデータをアプリケーション３１に出力する。
【００４３】
ステップＳ１０１６では、アプリケーション３１において、ステップＳ１０１５で中間層３２より出力されたブーム操作レバー操作量を取得する。ステップＳ１０１６の後には、アプリケーション３１は次の処理へ移行し、このブーム操作レバー操作量を用いて、各種の処理を実行する。
【００４４】
図１４には、図４〜７に示す各コントローラの基本構成において、ネットワークドライバ３３２によりデータを取得するときのデータフロー図が示されている。ステップＳ１１１〜Ｓ１１３の処理は、ネットワークドライバ３３２において繰り返し実行される。ステップＳ１１１では、バスライン１１を介して他のコントローラからデータが送信されるまでデータの受信待ちを行う。他のコントローラからのデータを受信すると、ステップＳ１１２でそのデータの受信処理を行い、次のステップＳ１１３でネットワークドライバ３３２に備えられた不図示のバッファに、その受信データを格納する。
【００４５】
ステップＳ１１４では、中間層３２において、タイマ部３２４により一定周期で処理を起動する。ステップＳ１１５では、データテーブル３２２に記憶された情報テーブルを参照して、必要とするデータの取得先を判断する。たとえば、図５に示す車体制御コントローラ１４において、図１０に示す情報テーブルを参照して、必要とする行９０に示すブーム指令値の取得先が、ネットワークドライバ３３２であることを判断する。さらに、ネットワークドライバ３３２に対して、その必要とするブーム指令値のデータを要求する。
【００４６】
ステップＳ１１６〜Ｓ１１７の処理は、ネットワークドライバ３３２において実行される。ステップＳ１１６では、ステップＳ１１５で中間層３２より出力されたデータ要求を受け付ける。ステップＳ１１７では、要求されたブーム指令値のデータをバッファより取得する。ステップＳ１１８では、ステップＳ１１７で取得したブーム指令値を中間層３２へ出力する。
【００４７】
ステップＳ１１９〜Ｓ１１１１の処理は、中間層３２において実行される。ステップＳ１１９では、ステップＳ１１８でネットワークドライバ３３２より出力されたブーム指令値を取得する。ステップＳ１１１０では、図１０の情報テーブルを参照して、ブーム指令値の格納先のアドレス番号が０ｘ０１００番地であることを判断する。ステップＳ１１１１では、ステップＳ１１１０で判断したアドレス番号、すなわち０ｘ０１００番地へ、ステップＳ１１９で取得したブーム指令値を格納する。なお、ステップＳ１１１１を実行した後はステップＳ１１４へ戻り、一定周期が経過すると、タイマ部３２４により上述したステップＳ１１４以降の処理を再び起動する。
【００４８】
ステップＳ１１１２は、アプリケーション３１がブーム指令値を必要とするときに、アプリケーション３１において実行される。ステップＳ１１１２では、ブーム指令値を要求するデータ要求を発行し、中間層３２に出力する。
【００４９】
ステップＳ１１１３〜Ｓ１１１６では、中間層３２において、図１３のステップＳ１０１２〜Ｓ１０１５と同じ処理が行われる。ステップＳ１１１３でアプリケーション３１より出力されたデータ要求を受け付け、ステップＳ１１１４で図１０の情報テーブルを参照して、要求されたブーム指令値がデータ格納部３２５のアドレス番号０ｘ０１００番地に格納されていることを判断し、ステップＳ１１１５でそのアドレス番号０ｘ０１００番地に格納されているデータを取得し、ステップＳ１１１６で取得したデータをアプリケーション３１に出力する。
【００５０】
ステップＳ１１１７では、アプリケーション３１において、ステップＳ１１１６で中間層３２より出力されたブーム指令値を取得する。ステップＳ１１１７の後には、アプリケーション３１は次の処理へ移行し、このブーム指令値を用いて、各種の処理を実行する。
【００５１】
図１５には、図４〜７に示す各コントローラの基本構成において、ネットワークドライバ３３２により他のコントローラへデータを送信するときのデータフロー図が示されている。ステップＳ１２１では、アプリケーション３１において算出されたデータ、たとえば図８（ａ）の行８７に示すブーム指令値について、データ格納の要求を発行し、中間層３２に出力する。
【００５２】
ステップＳ１２２〜Ｓ１２５の処理は、中間層３２において実行される。ステップＳ１２２では、ステップＳ１２１でアプリケーション３１より出力されたデータ格納要求を受け付ける。ステップＳ１２３では、データテーブル３２２に記憶された図８（ａ）の情報テーブルを参照して、格納要求されたブーム指令値の格納先のアドレス番号が０ｘ０１００番地であることを判断する。ステップＳ１２４では、データ格納部３２５の、ステップＳ１２３で判断した格納先のアドレス番号、すなわち０ｘ０１００番地にデータを格納する。ステップＳ１２５では、データの格納が終了したことをアプリケーション３１に通知する。
【００５３】
ステップＳ１２６では、アプリケーション３１において、ステップＳ１２５で中間層３２よりデータの格納終了が通知されたことを確認する。ステップＳ１２５の後には、アプリケーション３１は次の処理へ移行する。
【００５４】
ステップＳ１２７〜Ｓ１２１０の処理は、中間層３２において実行される。ステップＳ１２７では、タイマ部３２４により一定周期で処理を起動する。ステップＳ１２８では、図８（ａ）の情報テーブルを参照して、他のコントローラへ出力するブーム指令値の格納先のアドレス番号０ｘ０１００番地を判断する。ステップＳ１２９では、ステップＳ１２８で判断したアドレス番号０ｘ０１００番地からブーム指令値のデータを読み出し、そのデータを取得する。ステップＳ１２１０では、ステップＳ１２９で取得したブーム指令値のデータをネットワークドライバ３３２へ出力するとともに、データの出力要求を行う。
【００５５】
ステップＳ１２１１〜Ｓ１２１３の処理は、ネットワークドライバ３３２において実行される。ステップＳ１２１１では、ステップＳ１２１０で中間層３２より出力されたブーム指令値のデータ出力要求を受け付ける。ステップＳ１２１２では、ブーム指令値のデータをバスライン１１へ送信する処理を行う。ステップＳ１２１３では、送信が終了したことを中間層３２へ通知する。
【００５６】
ステップＳ１２１４では、中間層３２において、ステップＳ１２１３でネットワークドライバ３３２よりデータの送信終了が通知されたことを確認する。ステップＳ１２１４を実行した後はステップＳ１２７へ戻り、一定周期が経過すると、タイマ部３２４により上述したステップＳ１２７以降の処理を再び起動する。
【００５７】
図１６には、図５に示す車体制御コントローラの基本構成において、ＰＷＭドライバ３３３を使用して電磁弁１４１を制御する際のデータフロー図が示されている。ステップＳ１３１では、ＰＷＭドライバ３３３において用いるデューティを算出する処理を終えたアプリケーション３１において、このデューティの格納要求を発行し、中間層３２に出力する。
【００５８】
ステップＳ１３２〜Ｓ１３５では、中間層３２において、図１５のステップＳ１２２〜Ｓ１２５と同様の処理が行われる。ステップＳ１３２でアプリケーション３１より出力されたデューティの格納要求を受け付け、ステップＳ１３３で図１０の情報テーブルを参照して、デューティの格納先のアドレス番号、たとえば行９１に示すデューティ（ブーム）のアドレス番号０ｘ０１０８番地を判断する。ステップＳ１３４でそのアドレス番号０ｘ０１０８にデューティ（ブーム）のデータを格納し、ステップＳ１３５でデータの格納が終了したことをアプリケーション３１に通知する。
【００５９】
ステップＳ１３６では、アプリケーション３１において、ステップＳ１３５で中間層３２よりデータの格納終了が通知されたことを確認する。ステップＳ１３５の後には、アプリケーション３１は次の処理へ移行する。
【００６０】
ステップＳ１３７では、ＰＷＭドライバ３３３において、タイマにより周期的に処理を起動する。このタイマは、中間層３２内のタイマ部３２４を用いてもよく、またタイマ部３２４とは別のものを用いてもよい。ステップＳ１３８では、制御対象である電磁弁１４１のデューティ、たとえば行９１に示すデューティ（ブーム）のデータを中間層３２に対して要求する。
【００６１】
ステップＳ１３９〜Ｓ１３１２の処理は、中間層３２において実行される。ステップＳ１３９では、ステップＳ１３８でＰＷＭドライバ３３３より出力されたデータ要求を受け付ける。ステップＳ１３１０では、図１０の情報テーブルを参照して、デューティ（ブーム）の格納先のアドレス番号が０ｘ０１０８であることを判断する。ステップＳ１３１１では、ステップＳ１３１０で判断したアドレス番号０ｘ０１０８のデータを読み出し、デューティ（ブーム）のデータを取得する。ステップＳ１３１２では、取得したデューティ（ブーム）をＰＷＭドライバ３３に出力する。
【００６２】
ステップＳ１３１３では、ＰＷＭドライバ３３３において、ステップＳ１３１２で中間層３２より出力されたデューティ（ブーム）を取得する。ステップＳ１３１４では、そのデューティ値に基づいて、ＰＷＭドライバ３３３よりＰＷＭ信号を電磁弁１４１に出力する。なお、ステップＳ１３１４を実行した後はステップＳ１３７へ戻り、一定周期が経過すると、タイマ部３２４により上述したステップＳ１３７以降の処理を再び起動する。
【００６３】
図１７には、図７に示す情報表示コントローラ１６の基本構成において、ＤＩドライバ３３４によりキー入力装置１６２からの出力を取得する際のデータフロー図が示されている。ステップＳ１４１では、ＤＩドライバ３３４において、タイマにより周期的に処理を起動する。このタイマは、中間層３２内のタイマ部３２４を用いてもよく、またタイマ部３２４とは別のものを用いてもよい。ステップＳ１４２では、そのときキー入力装置１６２から出力されているＤＩ値、たとえば図１１の行９２に示すキー０のデータを取得する。ステップＳ１４３では、その取得したキー０のデータのノイズを除去するために、フィルタリング処理を行う。ステップＳ１４４では、ＤＩドライバ３３４に備えられる不図示のバッファの所定チャネル、ここではチャネル番号０に、ステップＳ１４３でフィルタリング処理を行ったキー０のデータを格納する。
【００６４】
ステップＳ１４５は、アプリケーション３１がキー０のデータを必要とするときに、アプリケーション３１において実行される。ステップＳ１４５では、キー０のデータを要求するデータ要求を発行し、中間層３２へ出力する。
【００６５】
ステップＳ１４６〜Ｓ１４８の処理は、中間層３２において実行される。ステップＳ１４６では、ステップＳ１４５でアプリケーション３１より出力されたデータ要求を受け付ける。ステップＳ１４７では、データテーブル３２２に記憶された図１１の情報テーブルを参照して、要求されたキー０のデータの取得先がＤＩドライバ３３４であり、そのチャネル番号が０であることを判断する。ステップＳ１４８では、ステップＳ１４７で判断したデータの取得先、すなわちＤＩドライバ３３４に対して、チャネル番号０のデータを要求する。
【００６６】
ステップＳ１４９〜Ｓ１４１１は、ＤＩドライバ３３４において実行される。ステップＳ１４９では、ステップＳ１４８で中間層３２より出力されたデータ要求を受け付ける。ステップＳ１４１０では、要求されたチャネル番号０のバッファに格納されたキー０のデータを読み出し、その値をデータとして取得する。ステップＳ１４１１では、ステップＳ１４１０で取得したチャネル番号０のデータを、中間層３２へ出力する。
【００６７】
ステップＳ１４１２では、中間層３２において、ステップＳ１４１１でＤＩドライバ３３４より出力されたチャネル番号０のデータ、すなわちキー０のデータを取得する。ステップＳ１４１３では、そのキー０のデータをアプリケーション３１へ出力する。
【００６８】
ステップＳ１４１４では、アプリケーション３１において、ステップＳ１４１３で中間層３２より出力されたキー０のデータを取得する。ステップＳ１４１４の後には、アプリケーション３１は次の処理へ移行し、このキー０のデータを用いて、各種の処理を実行する。
【００６９】
以上のとおり図１２〜１７により説明したようにして、各コントローラはそれぞれの処理を行い、そのプログラムの基本構成の間でデータを入出力する。このようにすることで、各コントローラ間におけるデータの授受を制御する機能を中間層３２のみに持たせることができ、図１の電子機器システム１の構成が変わった場合には、図８（ａ）、（ｂ）および図９〜１１に示すような情報テーブルを変更すればよい。なお以上説明した例は各コントローラの処理のうちの一部であり、その他にもさまざまな処理が行われるが、ここでは省略する。
【００７０】
次に、作業範囲制限制御を行うときの処理内容について説明する。作業範囲制限制御とは、たとえば電線等の障害物が作業機械の作業範囲内に存在する場合に、その作業範囲に進入禁止領域を設定し、作業機械をその領域に進入しないように制御することである。この作業範囲制限制御の実施方法例を図１８に示す。油圧ショベル２の作業範囲のうち、高さＨＬ以上の領域１５１は進入禁止領域であり、この領域内に進入しないようフロント部２６を制御する。高さＨＳ以上の領域１５２は減速領域であり、この領域内にフロント部２６が進入した場合は、進入禁止領域１５１へ進入しないようにフロント部２６を減速する。このような領域１５１，１５２は、キー入力装置１６２をオペレータが操作することにより設定される。
【００７１】
このような作業範囲制限制御は、フロント部２６の各部に設定された参照点の位置を検出することにより行われる。この参照点は、たとえば符号Ｍ１〜Ｍ４に示す場所に設定される。それぞれの設定場所について説明する。参照点Ｍ１はブーム２６１とアームシリンダ２６５の基端部分の回動部、参照点Ｍ２はアーム２６２とアームシリンダ２６５のロッド先端部分の回動部、参照点Ｍ３はアーム２６２の上端部、参照点Ｍ４はバケット２６３の刃先が内接する円の最上部である。これらの参照点の位置の検出結果が前述の進入禁止領域１５１または減速領域１５２にあるか否かを判定し、その判定結果にしたがってフロント部２６の動作を制御する。
【００７２】
作業範囲制限制御を行うときの各コントローラにおける処理のフローチャートを図１９〜２２に示す。図１９は情報表示コントローラ１６、図２０および２１は電気レバーコントローラ１２、図２２は作業範囲制限制御コントローラ１３においてそれぞれ実行されるプログラムに基づく処理フローである。以下、これらのフローチャートについて順に説明する。
【００７３】
図１９のフローチャートに示される処理は、情報表示コントローラ１６の動作中、常に実行される。ステップＳ１６１では、キー入力装置１６２により作業範囲制限が設定されているか否かを判定する。作業範囲制限が設定されている場合はステップＳ１６２へ進み、設定されていない場合は処理を終了する。ステップＳ１６２では、作業範囲制限が設定されていることを示すデータをバスライン１１へ出力する。このデータを他のコントローラが受信すると、そのコントローラは作業範囲制限が設定されていることを認識する。
【００７４】
ステップＳ１６３では、作業範囲制限制御コントローラ１３から出力されるブーム２６１、アーム２６２およびバケット２６３の角度を示すデータを、バスライン１１を介して受信する。これらの角度データは、前述の図１２または１３のようにして作業範囲制限制御コントローラ１３において取得され、図１５のようにして送信されたものである。ステップＳ１６４では、ステップＳ１６３で受信した各部分の角度データに基づいてフロント部２６の姿勢を計算し、表示装置１６１にその姿勢を表示する。ステップＳ１６４を実行した後は、ステップＳ１６１へ戻る。このようにして、情報表示コントローラ１６は作業範囲制限の設定の有無を検知し、作業範囲制限が設定されている場合には、他のコントローラへその情報を送信するとともに、フロント部２６の姿勢を表示装置１６１に表示する。
【００７５】
図２０のフローチャートに示される処理は、電気レバーコントローラ１２の起動時に実行される。ステップＳ１７１では、バスライン１１に接続されているコントローラの構成を確認する。これは、たとえば電気レバーコントローラ１２を含んだ図１に示す電子機器システム１を起動するときに、各コントローラよりその種別を表すデータをバスライン１１に交互に出力し、そのデータにより確認するなどの方法によって行われる。
【００７６】
ステップＳ１７２では、ステップＳ１７１で確認した構成の中に、作業範囲制限制御コントローラ１３があるか否かを判定する。作業範囲制限制御コントローラ１３がある場合はステップＳ１７３へ進み、ない場合は図２０の処理を終了する。ステップＳ１７３では、作業範囲制限制御コントローラ１３があることを示すフラグを内部的に設定する。このフラグが設定されていることにより、次の図２１に示す処理において、出力するデータの宛先を変更する。ステップＳ１７３を実行した後は、図２０の処理を終了する。このようにして、電気レバーコントローラ１２は作業範囲制限制御コントローラ１３の有無を判定し、ある場合にはフラグを内部的に設定する。
【００７７】
図２１のフローチャートに示される処理は、図２０のフローチャートに示される処理を実行した後、電気レバーコントローラ１２の動作中は常に実行される。ステップＳ１８１では、電気式操作レバー１２１、１２２の操作量を取得する。この操作量は、前述の図１２または１３のようにして取得される。ステップＳ１８２では、ステップＳ１８１で取得したレバー操作量に基づいて、フロント部２６を動作させるためにブームシリンダ２６４、アームシリンダ２６５およびバケットシリンダ２６６に加える圧油方向と流量（指令値）を演算する。
【００７８】
ステップＳ１８３では、作業範囲制限制御コントローラ１３があることを示すフラグが内部的に設定されているか否かを判定する。このフラグは、前述の図２０に示すステップＳ１７３において起動時に設定される。フラグが設定されている場合はステップＳ１８４へ進み、設定されていない場合はステップＳ１８６へ進む。
【００７９】
ステップＳ１８４では、作業範囲制限が設定されているか否かを判定する。この判定は、前述の図１９に示すステップＳ１６２において、作業範囲制限が設定されていることを示すデータが情報表示コントローラ１６よりバスライン１１に出力されているか否かによって行われる。バスライン１１上にそのデータが出力されている場合は、作業範囲制限が設定されていると判定し、ステップＳ１８５へ進む。そのデータが出力されていない場合は設定されていないと判定し、ステップＳ１８６へ進む。
【００８０】
ステップＳ１８５では、ステップＳ１８２で演算された圧油方向と流量を示す指令値のデータの宛先を、作業範囲制限制御コントローラ１３に設定する。ステップＳ１８６では、このデータの宛先を、車体制御コントローラ１４に設定する。なおデータの宛先の設定は、バスライン１１にデータを出力するとき、そのデータに宛先を示すヘッダを付加するなどの方法により行われる。ステップＳ１８７では、ステップＳ１８５またはＳ１８６で設定された宛先にしたがって、ステップＳ１８２で演算された指令値のデータを送信する。ステップＳ１８７を実行した後は、ステップＳ１８１へ戻る。このようにして、電気レバーコントローラ１２は作業範囲制限制御コントローラ１３の有無と作業範囲制限の設定の有無とを判定し、圧油方向と流量を示す指令値のデータの宛先を切り替える。
【００８１】
図２２のフローチャートに示される処理は、作業範囲制限が設定されているときには常に実行される。ステップＳ１９１では、図２１のステップＳ１８７において、電気レバーコントローラ１２より作業範囲制限制御コントローラ１３宛に送信された指令値のデータを受信する。ステップＳ１９２では、傾斜センサ１３１、アーム角センサ１３３およびブーム角センサ１３４によりそれぞれ計測された傾斜角、アーム角およびブーム角のデータを取得する。これらの角度データは、前述の図１２または１３のようにして取得される。
【００８２】
ステップＳ１９３では、ステップＳ１９２で取得された各角度データと、あらかじめ設定されるブーム２６１、アーム２６２およびバケット２６３の長さとに基づいて、参照点Ｍ１〜Ｍ４の位置を算出する。ステップＳ１９４では、ステップＳ１９３で算出した各参照点の位置により、いずれかの参照点が図１８の減速領域１５２内にあるか否かを判定する。いずれかの参照点が減速領域１５２内にあると判定した場合はステップＳ１９５へ進み、いずれの参照点も減速領域１５２内にはないと判定した場合はステップＳ１９７へ進む。
【００８３】
ステップＳ１９５では、ステップＳ１９３で算出された参照点Ｍ１〜Ｍ４の位置に基づいて、減速係数Ｋを算出する。減速係数Ｋは０≦Ｋ≦１で表され、指令値のうち流量を示すデータにこの減速係数Ｋを乗算することで、フロント部２６の動作を減速して制限する。なお減速係数Ｋは、図１８の高さＨＳ、すなわち通常の領域と減速領域１５２の境界部分において１となり、高さＨＬ、すなわち進入禁止領域１５１と減速領域１５２の境界部分において０となる。
【００８４】
ステップＳ１９６では、ステップＳ１９５で算出された減速係数Ｋにより、ステップＳ１９１で受信した指令値のデータを補正する。ステップＳ１９７では、ステップＳ１９１で受信した指令値のデータ、またはステップＳ１９１で受信し、ステップＳ１９６で補正された指令値のデータを、車体制御コントローラ１４に送信する。ステップＳ１９７を実行した後は、ステップＳ１９１へ戻る。このようにして、作業範囲制限制御コントローラ１３は参照点のいずれかが減速領域にあるかを判定し、ある場合には指令値のデータを補正する。
【００８５】
このようにして決定された指令値のデータに基づいて、車体制御コントローラ１４ではデューティを算出し、ＰＷＭドライバ３３３により電磁弁１４１を制御する。このとき、車体制御コントローラ１４において、電気レバーコントローラ１２と作業範囲制限制御コントローラ１３のいずれから送信された指令値のデータであるかを考慮する必要はない。いずれの場合にも、車体制御コントローラ１４に宛てて送信された指令値のデータであることを認識できればよい。
【００８６】
以上のようにして、オペレータにより操作された電気式操作レバー１２１および１２２の操作量にしたがって、電磁弁１４１が制御され、フロント部２６が動作する。このときの各コントローラでの処理内容および各コントローラ間のデータフローを、図２３および２４に示す。図２３は作業範囲制限が設定されているときのものであり、図２４は設定されていないときのものである。以下にこれらについて順に説明する。
【００８７】
図２３のステップＳ２０１〜Ｓ２０３では、電気レバーコントローラ１２において図１８のフローチャートに示す処理を行い、算出した指令値のデータを送信する。このときの宛先は、作業範囲制限が設定されているため、図２１のステップＳ１８５により、作業範囲制限制御コントローラ１３となる。続くステップＳ２０４〜Ｓ２０８では、作業範囲制限制御コントローラ１３において図２２のフローチャートに示す処理を行い、補正された指令値のデータを車体制御コントローラ１４へ送信する。
【００８８】
ステップＳ２０９〜Ｓ２０１１では、車体制御コントローラ１４において処理が行われる。ステップＳ２０９では、ステップＳ２０８において作業範囲制限制御コントローラ１３から送信された、補正された指令値のデータを受信する。ステップＳ２０１０では、ステップＳ２０９で受信した指令値のデータに基づいて、電磁弁１４１をＰＷＭ制御するときのデューティを算出する。ステップＳ２０１１では、ステップＳ２０１０で算出したデューティによりＰＷＭ制御を行い、電磁弁１４１を駆動する。このとき、図１６のようにしてアプリケーション３１からＰＷＭドライバ３３３に算出したデューティを出力する。
【００８９】
図２４では、以上説明した処理のうち、作業範囲制限制御コントローラ１３においてステップＳ２０４〜Ｓ２０８の処理が行われない。このとき、電気レバーコントローラ１２においてステップＳ２０１〜Ｓ２０３の処理を行い、算出した指令値のデータを送信する。このときの宛先は、作業範囲制限が設定されていないため、図２１のステップＳ１８６により、車体制御コントローラ１４となる。この指令値のデータを車体制御コントローラ１４で受信し、図２３のステップＳ２０９〜Ｓ２０１１と同様にして、電磁弁１４１を駆動する。以上のようにして、通常の場合と作業範囲制限を行う場合の制御方法を切り替える。
【００９０】
上述した電子機器システム１によれば、次の作用効果を奏する。
（１）各コントローラのプロセッサは、コントローラのそれぞれに固有の処理を実行するアプリケーション３１と、コントローラ間で授受する信号を制御し、バス１１を介して他のコントローラからの信号を取得するドライバ３３と、アプリケーション３１とドライバ３３との間でデータを授受する中間層３２とにより、プログラム演算を実行して油圧ショベル２の各種機器を制御する。このようにしたので、電子機器システム１のコントローラの構成が変更されデータの取得先が変わっても、中間層３２のみを変更すればよく、容易にプログラムを変更することができる。
（２）ドライバ３３は、各センサにより計測された油圧ショベル２の各種機器の制御状態を示す信号をさらに取得し、中間層３２は、その取得信号をアプリケーション３１で使用するデータに変換する。また、その取得信号または変換したデータにフィルタリング処理を行い不要な成分を除去してもよい。このようにしたので、データの取得先が変わってドライバ３３により取得される信号の内容が変わっても、アプリケーション３１は変更せず中間層３２のみを変更すればよく、またフィルタリング処理を行うことにより、アプリケーション３１において不要な成分を除去する必要がない。そのため、容易にプログラムを変更することができる。
（３）中間層３２で変換したデータをバス１１に送信し、すべてのコントローラで変換したデータを共有化できるようにした。また、データごとに決められた所定の周期でバスに出力することとした。このようにしたので、いずれか１つのコントローラがデータ変換機能を備えていればよく、コスト低減を図ることができる。
（４）中間層３２はドライバ３３により取得される信号の取得先を記憶し、中間層３２のみを変更することでその取得先を変更することができるようにしたので、容易にプログラムを変更することができる。
【００９１】
なお、以上の実施の形態では、油圧ショベル２に搭載されてこれを制御する電子機器システムについて説明したが、本発明はこれに限定することなく、様々な建設機械や事業車両などの作業車両に搭載されてこれを制御する電子機器システムに適用することができる。
【００９２】
以上の実施の形態では、電子制御装置を電子機器システム１、作業車両を油圧ショベル２、アプリケーションプログラムをアプリケーション３１、ドライバプログラムをドライバ３３、中間プログラムを中間層３２でそれぞれ実現している。また、電気レバーコントローラを電気レバーコントローラ１２、作業範囲制限制御コントローラを作業範囲制限制御コントローラ１３、車体制御コントローラを車体制御コントローラ１４、情報表示コントローラを情報表示コントローラ１６、情報蓄積コントローラを情報蓄積コントローラ１５でそれぞれ実現している。さらに、計測手段を各センサ１３１〜１３４、表示手段を表示装置１６１、入力手段をキー入力装置１６２で実現し、コントローラはバスライン１１により接続されている。しかし、これらはあくまで一例であり、本発明の特徴が損なわれない限り、各構成要素は上記実施の形態に限定されない。
【００９３】
【発明の効果】
以上詳細に説明したように本発明による作業車両用電子制御装置によれば、各コントローラのプロセッサは、コントローラのそれぞれに固有の処理を実行するアプリケーションプログラムと、コントローラ間で授受する信号を制御し、他のコントローラからの信号を取得するドライバプログラムと、アプリケーションプログラムとドライバプログラムとの間でデータを授受する中間プログラムとにより、プログラム演算を事項して作業車両の各種機器を制御する。このようにしたので、コントローラの構成が変更されデータの取得先が変わっても、中間プログラムのみを変更すればよく、容易にプログラムを変更することができる。
【図面の簡単な説明】
【図１】本発明による電子機器装置の構成を示す図である。
【図２】電子機器装置が搭載される油圧ショベルを示す図である。
【図３】コントローラのプログラムの基本構成を示す図である。
【図４】電気レバーコントローラおよび作業範囲制限制御コントローラのプログラムの基本構成を示す図である。
【図５】車体制御コントローラのプログラムの基本構成を示す図である。
【図６】情報蓄積コントローラのプログラムの基本構成を示す図である。
【図７】情報表示コントローラのプログラムの基本構成を示す図である。
【図８】電気レバーコントローラのデータテーブルに記憶された情報テーブルの例を示す図である。
【図９】作業範囲制限制御コントローラのデータテーブルに記憶された情報テーブルの例を示す図である。
【図１０】車体制御コントローラのデータテーブルに記憶された情報テーブルの例を示す図である。
【図１１】情報表示コントローラのデータテーブルに記憶された情報テーブルの例を示す図である。
【図１２】ＡＤ変換されたデータを取得する際のデータフローの一例を示す図である。
【図１３】ＡＤ変換されたデータを取得する際のデータフローの別の一例を示す図である。
【図１４】ネットワーク上に流れているデータを取得する際のデータフローを示す図である。
【図１５】ネットワークにデータを流す際のデータフローを示す図である。
【図１６】電磁弁を制御する制御値を設定する際のデータフローを示す図である。
【図１７】ＤＩのデータを取得する際のデータフローを示す図である。
【図１８】作業範囲制限制御の例を示す図である。
【図１９】作業範囲制限制御を行う際の情報表示コントローラの処理フローを示す図である。
【図２０】作業範囲制限制御を行う際の電気レバーコントローラの起動時の処理フローを示す図である。
【図２１】作業範囲制限制御を行う際の電気レバーコントローラの稼働時の処理フローを示す図である。
【図２２】作業範囲制限制御を行う際の作業範囲制限制御コントローラの処理フローを示す図である。
【図２３】作業範囲制限制御を行うときの各コントローラ間のデータフローを示す図である。
【図２４】作業範囲制限制御を行わないときの各コントローラ間のデータフローを示す図である。
【符号の説明】
１  電子機器システム
１１  バスライン
１２  電気レバーコントローラ
１３  作業範囲制限制御コントローラ
１４  車体制御コントローラ
１５  情報蓄積コントローラ
１６  情報表示コントローラ
２  油圧ショベル
２１  下部走行体
２２  上部旋回体
２５  運転室
２６  フロント部
２６１  ブーム
２６２  アーム
２６３  バケット
２６４  ブームシリンダ
２６５  アームシリンダ
２６６  バケットシリンダ
３１  アプリケーション
３２  中間層
３３  ドライバ
【図１】
2004263489.tif 000003
【図２】
2004263489.tif 000004
【図３】
2004263489.tif 000005
【図４】
2004263489.tif 000006
【図５】
2004263489.tif 000007
【図６】
2004263489.tif 000008
【図７】
2004263489.tif 000009
【図８】
2004263489.tif 000010
【図９】
2004263489.tif 000011
【図１０】
2004263489.tif 000012
【図１１】
2004263489.tif 000013
【図１２】
2004263489.tif 000014
【図１３】
2004263489.tif 000015
【図１４】
2004263489.tif 000016
【図１５】
2004263489.tif 000017
【図１６】
2004263489.tif 000018
【図１７】
2004263489.tif 000019
【図１８】
2004263489.tif 000020
【図１９】
2004263489.tif 000021
【図２０】
2004263489.tif 000022
【図２１】
2004263489.tif 000023
【図２２】
2004263489.tif 000024
【図２３】
2004263489.tif 000025
【図２４】
2004263489.tif 000026