JP4265071B2 - Vehicle control apparatus and recording medium having self-diagnosis function - Google Patents

Vehicle control apparatus and recording medium having self-diagnosis function Download PDF

Info

Publication number
JP4265071B2
JP4265071B2 JP2000057356A JP2000057356A JP4265071B2 JP 4265071 B2 JP4265071 B2 JP 4265071B2 JP 2000057356 A JP2000057356 A JP 2000057356A JP 2000057356 A JP2000057356 A JP 2000057356A JP 4265071 B2 JP4265071 B2 JP 4265071B2
Authority
JP
Japan
Prior art keywords
abnormality
abnormality detection
water temperature
abnormal
self
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2000057356A
Other languages
Japanese (ja)
Other versions
JP2001248494A (en
Inventor
孝吉 清水
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Denso Corp
Original Assignee
Denso Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Denso Corp filed Critical Denso Corp
Priority to JP2000057356A priority Critical patent/JP4265071B2/en
Publication of JP2001248494A publication Critical patent/JP2001248494A/en
Application granted granted Critical
Publication of JP4265071B2 publication Critical patent/JP4265071B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Combined Controls Of Internal Combustion Engines (AREA)
  • Testing And Monitoring For Control Systems (AREA)

Description

【0001】
【発明の属する技術分野】
本発明は、車両を制御する車両用制御装置の自己診断機能に関し、さらに、当該自己診断機能をオブジェクト指向プログラミングにて実現する技術に関する。
【0002】
【従来の技術】
近年、高性能マイクロプロセッサの出現などエレクトロニクス技術の進歩を背景として、機械技術と電子技術とが結びついたメカトロニクス技術の進歩が著しい。メカトロニクスの進歩の一部として、自動車等の車両にも多くのコンピュータシステムが採用されてきている。このような車載用のコンピュータシステムは、省資源、省エネルギー、走行性能、安全性、快適性等を追求するものであり、車両内のエンジン・駆動系、走行・安全系、エンターテイメント系、及びその他の随所に搭載されている。
【0003】
その中でも特に高い信頼性を要求される車両制御用のコンピュータシステムは、システム内の各部位の異常検出を的確に行わないと、走行上の不具合を引き起こす可能性があり、場合によっては走行不能となることもある。そのため、コンピュータシステムに自己診断機能を備えることにより、信頼性の向上が図られている。すなわち、コンピュータ部やセンサ類の動作状態を適当な周期で自動的にチェックし、故障時には、ユーザなどに故障を知らせるための警告灯(MIL)を点灯したり、その故障内容が修理担当者などに分かるよう異常コード(DTC)を記憶したりするダイアグノーシス(以下「ダイアグ」という。)処理を可能にしている。このダイアグ処理の対象は、クランク角センサ、カム角センサ、水温センサなどの各センサをはじめ、現在では約200にもおよぶ。以下、ダイアグ処理の対象を「ダイアグ対象」と呼ぶ。
【0004】
ところでこのダイアグ処理は、ただ単にダイアグ対象の作動状態を単発的にチェックして「正常」又は「異常」を判定するものではない。「正常」、「異常」にもレベルがあるからである。例えば、センサからの入力信号系の「異常」を例に挙げた場合、コネクタ等における一時的な接触不良も「異常」であるし、完全な断線も「異常」である。前者の場合は、その後良好な作動状態を維持することがあり、特に部品交換の必要性が認められないことがある。したがって、一度異常と判定された場合であっても、例えば40暖機サイクルの間に全てのダイアグ対象について異常が検出されなかった場合には、それまでに記憶した異常コードを全て消去する車両用制御装置があった。
【0005】
【発明が解決しようとする課題】
本発明は、ある限定された期間に上述したような一時的な異常が検出される可能性が高く、そのために記憶される異常コードによって生じる不都合に着目したものである。これについて説明する。
【0006】
一時的な異常が検出される可能性の高い期間として、例えば工場における車両の組立期間や工場出荷直後の走行期間が挙げられる。車両の組立期間においては、動作確認のためにバッテリを仮固定するため、バッテリ接続関係の異常が検出されてしまう可能性が高い。また、工場出荷直後の走行期間には、エンジン等の稼働部分から微量の金属くずが出るため、この金属くずの影響によって異常が検出されてしまう可能性が高い。そして、これらの異常はどちらも、一時的なものであって本質的なものでない。しかしながら、従来の構成において異常コードの消去は、上述したように、全てのダイアグ対象について40暖機サイクルの間異常検出がなされなかった場合にはじめて行われる。したがって、異常コードが消去されないうちにユーザが車両を修理工場などに持ち込んだ場合など、記憶された異常コードに基づき、本来は交換する必要のない部品が交換されてしまうという問題があった。
【0007】
これを防止するためには、一度記憶された異常コードを、ダイアグ対象毎に、例えば20暖機サイクルというような比較的早いタイミングで消去することが考えられる。ところが、あるダイアグ対象に対して複数の異常検出手法が存在することがあるため、そのダイアグ対象に対して記憶された異常コードを単純に消去できない。例えばあるダイアグ対象の異常検出手法に2つの手法A,Bがある場合、手法Aによる異常検出がなされないからと言って、異常コードを消去してしまうことはできない。手法Bによって異常検出がなされている可能性があるためである。したがって、同一のダイアグ対象に複数の異常検出手法が存在する場合には、それら複数の異常検出結果に基づき異常コードを消去する構成を必要とする。
【0008】
そして、このような構成を採用するにあたっては、次に示す点における考慮がさらに必要になる。
それは、上述したダイアグ対象が、車種やグレードあるいはモデルチェンジのタイミングで変わるということである。そのため、再利用性を考慮したオブジェクト指向設計とすることが望ましい。つまり、ダイアグ対象に依存する処理とダイアグ対象に依存しない処理を別のオブジェクトが実行するようにして、ダイアグ対象に依存しない処理を実行するオブジェクトはそのまま再利用できるようにし、作成した自己診断プログラムを部分的に用いて新たな自己診断プログラムを作成できるようにするのである。
【0009】
本発明は、自己診断プログラムの再利用性を確保しつつ、一時的な異常によって記憶された異常時情報をダイアグ対象毎に消去できるようにし、本来は交換する必要のない部品が交換されてしまうことを極力防止することを目的とする。
【0010】
【課題を解決するための手段及び発明の効果】
上述した目的を達成するためになされた請求項1に記載の車両用制御装置は、ダイアグ対象の異常検出結果に基づき、当該ダイアグ対象に対応する異常時情報を記憶する自己診断機能を備えている。ここで異常時情報には、少なくとも異常内容を示す異常コードが含まれる。異常時情報としたのは、その他に、車速・エンジン回転数・水温・スロットル開度など異常時の車両状態を示すいわゆるフリーズデータを含める意図である。すなわち、ここでいう自己診断機能は、異常検出結果に基づき、これらの異常時情報を例えばスタンバイRAMやEEPROMに記憶するというものであり、これによって、修理工場などでスタンバイRAM又はEEPROMの記憶内容を読み出せば異常箇所を特定できる。
【0011】
本発明では、この自己診断機能が、自己診断プログラムの実行によって実現される。そして、この自己診断プログラムは、ダイアグ対象毎に処理を実行する異常検出オブジェクトと、ダイアグ対象に共通する処理を実行するオブジェクト群とから構成されている。異常検出オブジェクトは、ダイアグ対象毎に用意されて、ダイアグ対象の異常を検出する処理(異常検出処理を実行する。一方、オブジェクト群は、異常検出オブジェクトによる異常検出結果に基づき、異常時情報を記憶する処理を実行する。
【0012】
このような構成を前提とし、本発明では特に、同一のダイアグ対象の異常を検出する複数の手法が存在する場合には、当該複数の手法毎に異常検出オブジェクトを用意する。そして、それら異常検出オブジェクトの少なくとも1つは、一度異常検出を行った後に所定の条件が満たされると、同一のダイアグ対象に係る他の異常検出オブジェクトにて異常検出がなされていない場合に限り、異常時情報を無効にするよう指示する。ここで所定の条件が満たされた場合とは、例えば20暖機サイクルといった所定回の暖機サイクルの間に異常検出がなされなかった場合や、例えば20トリップ(イグニッションキーのオンからオフまでの期間が1トリップである。)といった所定回のトリップの間に異常検出がなされなかった場合等が考えられる。また、他の異常検出オブジェクトにて異常検出がなされたか否かは、異常検出オブジェクトの異常検出結果が例えばグローバル変数に代入されるような構成においてはそのグローバル変数を参照して判断する。また、異常検出結果が例えば異常検出オブジェクトの内部情報となっている場合には、該当する異常検出オブジェクトに異常検出結果を読み出すためのメッセージを送出し、これによって異常検出結果を参照して判断する。
【0013】
そして、異常検出オブジェクトから異常時情報の無効指示があると、上述したオブジェクト群が異常時情報を無効にする。ここで「無効にする」としたのは、記憶された異常時情報を消去することだけでなく、記憶された異常時情報をマスク処理することが考えられるためである。マスク処理とは、例えば異常時情報に対するフラグを立てることによって、その異常時情報を読み出せない状態にすることをいう。この場合、記憶装置自体には異常時情報が残るため、修理工場などにおける通常操作では読み出せないが、特別な操作をすれば異常時情報を読み出して参照することができる。
【0014】
本発明によれば、検出された異常が一時的なものであれば、ダイアグ対象毎に、例えば20暖機サイクルといった比較的早いタイミングで、記憶された異常時情報が無効にされる。その結果、本来は交換する必要のない部品が交換されてしまうことを防止できる。
【0015】
また、各異常検出手法毎に用意される複数の異常検出オブジェクトの少なくとも1つが、同一のダイアグ対象に係る他の異常検出オブジェクトにて異常検出がなされていない場合に限って異常時情報の無効指示を行う。したがって、ある異常検出手法にて異常検出がなされていないからと言って、他の手法にて異常検出がなされている場合に異常コードが無効にされることもない。
【0016】
さらにまた、他の異常検出オブジェクトの異常検出結果を判断してオブジェクト群に異常時情報の無効指示を送出するのは、異常検出オブジェクトである。したがって、ダイアグ対象が変わった場合には、異常検出オブジェクトのみを変更すればよく、オブジェクト群は何等変更する必要がない。そのため、自己診断プログラムの再利用性を確保できる。
【0017】
なお、異常時情報の無効指示を行う異常検出オブジェクトは、同一のダイアグ対象に係る異常検出オブジェクトの中で、異常を検出する可能性の相対的に高い手法にて異常検出を行うものとするとよい(請求項2)。例えば、異常を検出する可能性が最も高い異常検出オブジェクトが、他の異常検出オブジェクトの異常検出結果を参照して異常時情報の無効指示を行うという具合である。ただし、無効指示を行う異常検出オブジェクトは、異常を検出する可能性が相対的に高いものであればよく、一つには限られない。
【0018】
異常を検出する可能性が相対的に高いオブジェクトで異常が検出されなかった場合、他のオブジェクトで異常が検出される可能性は少なく、全ての異常検出オブジェクトにおいて判断処理を実行しなくても十分である。本発明によれば、異常時情報を無効とするか否かの判断処理を一部の(例えば一つの)異常検出オブジェクトに挿入することになるため、処理プログラムが簡略化されるという面において、また、判断処理の実行回数が少なくなり処理負荷が軽減されるという面において有利である。
【0019】
一方、オブジェクト群は、例えば請求項3に示すように構成することが考えられる。すなわち、少なくとも、異常確定オブジェクトと、異常時処理オブジェクトと、異常時情報記憶オブジェクトとを含むものとすることが考えられる。このとき各オブジェクトは、次のように動作する。
【0020】
異常確定オブジェクトは、異常検出オブジェクトによる異常検出結果に基づき実質的な異常であるか否かを判断する。例えばバッテリが外れている場合には、バッテリが外れたことに起因して、たとえセンサ等のダイアグ対象自体が正常であっても、その異常が検出されることがあるからである。また、異常時処理オブジェクトは、異常確定オブジェクトにて異常判断がなされると、異常時情報の記憶要求を行う。すると、異常時情報記憶オブジェクトが、異常時処理オブジェクトによる異常時情報の記憶要求に従い、異常時情報を記憶する。
【0021】
上述したように検出された異常が実質的なものであるか否かといった判断、例えばバッテリ外れによるものであるか否かの判断は、各ダイアグに共通する判断処理である。したがって、この判断処理を実行する異常確定オブジェクトを設けることによって全体のプログラム構成が簡単になり、さらなる再利用性を図ることができる。
【0022】
また、異常時処理オブジェクトの要求に従い、異常時情報記憶オブジェクトが異常時情報を記憶する構成を採るのは、次のような理由による。
ダイアグ処理においては、異常時情報の記憶に限らず、異常発生をユーザに知らせるために警告灯の点灯/消灯処理を行うのが一般的である。このような構成を考えると、異常時情報の記憶や警告灯の点灯/消灯といった異常時処理を統括するオブジェクトを用意することが望ましい。プログラム構成が分かり易くなると共に拡張性が高くなるからである。そこで本発明では、異常時処理オブジェクトを設けた。このようにすれば、例えば警告灯の点灯/消灯を行う場合には、異常時処理オブジェクトが警告灯の点灯/消灯要求を所定のオブジェクトに出力し、その所定のオブジェクトが警告灯の点灯/消灯をすることで実現できる。
【0023】
なお、このような構成を前提とすれば、異常検出オブジェクトから異常時情報の無効指示があると、異常時処理オブジェクトが、異常時情報の無効要求を行うことが考えられる。このとき、異常時情報記憶オブジェクトは、異常時処理オブジェクトによる異常時情報の無効要求に従い、異常時情報を無効にする(請求項4)。
【0024】
ところで、このような車両用制御装置の備える自己診断プログラムは、例えば、フロッピーディスク、光磁気ディスク、CD−ROM、ハードディスク等のコンピュータ読み取り可能な記録媒体に記録し、必要に応じてコンピュータシステムにロードして起動することにより用いることができる。この他、ROMやバックアップRAMをコンピュータ読み取り可能な記録媒体として自己診断プログラムを記録しておき、このROMあるいはバックアップRAMをコンピュータシステムに組み込んで用いてもよい。
【0025】
【発明の実施の形態】
以下、本発明を具体化した一実施例を図面を参照して説明する。
図1は、エンジン制御システムの全体を示す構成図である。このエンジン制御システムは、エンジン11及び、このエンジン11を制御するエンジン制御ユニット16を中心に構成されている。このエンジン制御ユニット16が「車両用制御装置」に相当する。
【0026】
エンジン11には、エアクリーナからの吸入空気が吸気管12を経て供給されている。この吸気管12には、吸入空気量を測定するエアフローセンサ13と、吸気温度を検出する吸気温センサ14が配置され、さらに、アクセルペダルによって駆動されるスロットル弁15が配置されている。
【0027】
エンジン制御ユニット16には、エンジン11の状態を示す各種信号が入力される。この信号を列挙すれば、エアフローセンサ13からの吸入空気量検出信号、スロットルセンサ17からのスロットル弁15の開度検出信号、排出ガス中に含まれる酸素濃度を検出する空燃比センサ18からの信号、バッテリ19からのバッテリ電圧信号、水温センサ20からの検出信号、エンジン11によって駆動されるディストリビュータ21からの回転信号、さらに気筒判別信号等である。
【0028】
また、エンジン制御ユニット16では、これらの各種検出信号に基づいてエンジン11の運転状態に対応した燃料噴射量等を演算し、エンジン11の複数の気筒それぞれに設定されるインジェクタ22a〜22dに対して燃料噴射指令を出力し、また、イグナイタ23に対して点火指令信号を出力して、エンジン11の運転制御を実行する。
【0029】
さらに、エンジン制御ユニット16は、車両の各部位の診断も各センサ群からの検出信号に基づいて実行する。このため、エンジン制御ユニット16に対しては、異常検出結果の出力のための診断モードを設定するテストスイッチ24が配置され、さらに、そのテスト結果であるダイアグノーシスの結果表示等を行う警告灯25が接続されている。
【0030】
スイッチ26はバッテリ19をエンジン制御ユニット16に対して接続するイグニッションスイッチであり、このイグニッションスイッチ26に連動するようにしてスタータモータ27を制御するスタータスイッチ28が設けられている。
次に、エンジン制御ユニット16について説明する。図2は、図1に示したエンジン制御ユニット16の構成を示すブロック図である。エンジン制御ユニット16は、コンピュータシステムを構成するCPU31を備える。このCPU31にはアナログ入力回路32及びディジタル入力回路33からのデータが入力され、アナログ入力回路32からのアナログ入力データは、A/D変換器34でディジタルデータに変換されてCPU31に入力される。
【0031】
アナログ入力回路32には、エアフローセンサ13からの検出信号Us、水温センサ20からの検出信号Thw、吸気温センサ14からの検出信号Tha、及びバッテリ19の電圧+Bが入力される。一方、ディジタル入力回路33には、ディストリビュータ21からの気筒判別信号G1と回転角信号Ne、空燃比センサ18からの酸素濃度に対応したリーン・リッチ信号Ox、スロットルセンサ17からのスロットル弁15が全閉であることを示すアイドル信号Idle、スタータスイッチ28からのスタート信号STA、及びテストスイッチ24からの診断モードを設定する信号Tが入力される。
【0032】
A/D変換器34は、アナログ入力回路32に入力される各種の検出信号をCPU31からの指令に従い順次選択して読み取り、ディジタルデータに変換するマルチプレクサ機能を有する。
また、電源回路35は、イグニッションスイッチ26を経てバッテリ19の電圧+BをCPU31に供給し、また、常時バックアップ用電源Battを供給している。
【0033】
CPU31からの出力データは、出力回路36、37及び38に供給され、エンジン制御ユニット16からの出力信号として取り出される。すなわち、出力回路36からはイグナイタ23に対して点火指令信号IGtを出力する。また、出力回路37からは診断結果を表す信号Wを出力して警告灯25を点灯制御する。出力回路38からの出力信号τqは、エンジン11の運転状態に対応した燃料噴射量を指示するもので、インジェクタ22a〜22dに出力されて、これらインジェクタ22a〜22dの噴射量を変える。
【0034】
さらにCPU(エンジン制御ユニット)31内には、後述する自己診断プログラムを格納するメモリ39が設けられている。このメモリ39は、ROM及び、イグニッションスイッチ26がオフされているときにも電源供給されてデータを保持するスタンバイRAMとで構成されている。自己診断プログラムは、ROM内に格納されている。そして後述するように、スタンバイRAMには、自己診断プログラムによって異常コードが記憶される。
【0035】
本実施例は、メモリ39のROM内に格納された自己診断プログラムに特徴を有するものである。そこで次に、自己診断プログラムについて説明する。
図3は、自己診断プログラムの構造(アーキテクチャ)を概念的に示した説明図である。自己診断プログラムは、オブジェクト指向設計された複数のプログラムで構成される。既に知られるように、オブジェクト指向設計とは、従来のソフトウェアが処理(例えば、燃料噴射という処理)に着目したものに対し、モノを基本単位にモデル化し、そのモノの特性や振る舞い(動作)で処理を記述するものである。この基本単位を「オブジェクト」と称し、オブジェクト指向設計されたプログラムは、このオブジェクトを最小構成単位として記述される。プログラム全体としては、要求や応答といったやりとり(以下「メッセージ」という。)によりオブジェクト間を結合することで一連の処理が実行される。オブジェクトは、データ(属性)とデータに対するメソッド(手続き)とを備え、他のオブジェクトからのメッセージによってメソッドを実行する。なお、本明細書中では、「オブジェクトが・・・する。」というオブジェクトを主体とした表現を用いるが、実際には、CPU31が処理プログラムを実行することで実現されることはいうまでもない。
【0036】
図3には、本実施例を説明するために必要なオブジェクトのみを示した。つまり、本実施例における自己診断プログラムは少なくとも、異常検出オブジェクト100と、異常確定オブジェクト200と、異常時処理オブジェクト300と、異常コード記憶オブジェクト400とを備えている。
【0037】
異常検出オブジェクト100は、エンジン制御ユニット16に入力された各センサ群などの情報に基づき、自己診断の対象となるダイアグ対象の異常を検出する。この異常検出オブジェクト100は、ダイアグ対象毎に用意されている。例えば図3には、異常検出オブジェクト100の中の、水温センサ20の異常を検出する水温センサ異常検出オブジェクト(以下「水温センサオブジェクト」という。)110、吸気温センサ14の異常を検出する吸気温センサ異常検出オブジェクト(以下「吸気温センサオブジェクト」という。)120、及びスロットルセンサ17の異常を検出するスロットルセンサ異常検出オブジェクト(以下「スロットルセンサオブジェクト」という。)130を示した。つまり、ここでは水温センサ20、吸気温センサ14、スロットルセンサ17が「ダイアグ対象」に相当する。
【0038】
そしてまた、同一のダイアグ対象に対し複数の異常検出手法があれば、当該複数の異常検出手法毎に、異常検出オブジェクト100が用意される。例えば水温センサ20の異常検出手法が3つあれば、図3に示すように、3つの水温センサオブジェクト110a,110b,110cが用意される。以下、この3つの水温センサオブジェクト110a〜110cを、A水温センサオブジェクト110a,B水温センサオブジェクト110b,C水温センサオブジェクト110cと記述して区別する。
【0039】
異常確定オブジェクト200は、各異常検出オブジェクト100にて検出された異常が実質的な異常であるか否かを判断する。例えばバッテリ19が外れている場合には、バッテリ19が外れたことに起因し、たとえダイアグ対象自体が正常であっても、その異常が検出されることがあるからである。
【0040】
異常時処理オブジェクト300は、異常時処理を実行する。異常時処理には、異常コードの記憶/マスク要求や警告灯の点灯/消灯要求が含まれる。
異常コード記憶オブジェクト400は、ダイアグ対象に対応する異常コードをメモリ39のスタンバイRAMに記憶する。又は、一度メモリ39に記憶した異常コードをマスクする。マスクとは、異常コードに対応するフラグを立てることによって、スタンバイRAMに記憶された異常コードを通常操作では読み出せない状態にすることをいう。なお、本実施例では、煩雑になることを避ける意味で異常コードのみを記憶/マスクする構成としたが、異常コードだけでなく、異常判断がなされた時点における車速・エンジン回転数・水温・スロットル開度など車両状態を示すいわゆるフリーズデータをスタンバイRAMに記憶/マスクするようにしてもよい。
【0041】
上述したように各オブジェクト100〜400は、メッセージによって結合されて一連の処理を実行する。そこで次に、メッセージシーケンスチャート(以下「MSC」という。)を参照して各オブジェクト100〜400の結合を説明する。
【0042】
図4は、ダイアグ対象の異常検出から異常コードの記憶までを示すMSCである。まず異常検出オブジェクト100が異常検出処理を実行する(S1)。この異常検出処理にて、ダイアグ対象の異常が検出されると、異常フラグがセットされる。そこで、異常検出オブジェクト100は、フラグ処理要求を異常確定オブジェクト200に対して発行する。
【0043】
異常確定オブジェクト200は、このフラグ処理要求を受け取ると、異常確定処理を実行する(S2)。この異常確定処理にて実質的な異常であると判断されると、異常確定オブジェクト200は、異常時処理オブジェクト300に対して異常確定通知を行う。
【0044】
すると、異常時処理オブジェクト300は、異常時処理を実行する(S3)。この異常時処理では、異常コード記憶オブジェクト400に対する異常コード記憶要求が発行される。なお、異常時処理では、警告灯の点灯要求も他のオブジェクト(不図示)に発行されるのが一般的であるが、実施例の説明に必要でないため警告灯の点灯要求については割愛する。
【0045】
異常コード記憶要求を受け取ると、異常コード記憶オブジェクト400は、異常コード記憶処理を実行する(S4)。これによって、異常と判断されたダイアグ対象に対応する異常コードがメモリ39のスタンバイRAMに記憶される。
また、本実施例では、一度異常コードが記憶された後の20トリップの間に、そのダイアグ対象の異常が検出されない場合には、一時的な異常であるとして、メモリ39のスタンバイRAMに記憶した異常コードをダイアグ対象毎にマスクする。
【0046】
図5は、異常コードのマスク処理を示すMSCである。上述した異常検出処理(S1)では、異常が検出された後の20トリップの間に異常検出がなされない場合、異常時処理オブジェクト300に対してマスク処理要求が発行される。
異常時処理オブジェクト300は、上述した異常時処理を実行して(S3)、このマスク処理要求に従い異常コードマスク要求を発行する。これによって、異常コード記憶オブジェクト400が、異常コードマスク処理を実行する(S5)。その結果、ダイアグ対象に対応してメモリ39のスタンバイRAMに記憶された異常コードがマスクされることになる。
【0047】
ただし、図3に示したように、ダイアグ対象である水温センサ20に対しては、異常検出オブジェクト100としてA〜Cの3つの水温センサオブジェクト110a〜110cが存在する。したがって、水温センサ20に対応する異常コードが記憶された後、例えばA水温センサオブジェクト110aが20トリップの間に異常を検出しない場合であっても、B水温センサオブジェクト110bが異常を検出している場合も考えられる。そのため、A水温センサオブジェクト110aは、B,Cの水温センサオブジェクト110b,110cの異常検出結果を参照してマスク処理要求を発行する必要がある。
【0048】
本実施例では、同一のダイアグ対象に対して複数の異常検出オブジェクト100が存在することを前提とし、上述したマスク処理要求について工夫した。
したがってこの点を含め、上述した異常検出処理(S1)、異常確定処理(S2)、異常コード記憶処理(S4)及び異常コードマスク処理(S5)の詳細について、図6〜図14のフローチャートに基づき説明する。なお、異常検出処理(S1)については、A〜Cの3つの水温センサオブジェクト110a〜110cのぞれぞれにおける異常検出処理を例に挙げて説明する。なお説明上、A水温センサオブジェクト110aの実行する異常検出処理を「A異常検出処理」と記述し、同様に、B水温センサオブジェクト110bの実行する異常検出処理を「B異常検出処理」、C水温センサオブジェクト110cの実行する異常検出処理を「C異常検出処理」と記述して区別する。A〜Cの異常検出処理は、いずれも水温センサ20のレンジ外れによる異常を検出するものである。レンジ外れとは、規定通りの信号幅で信号が出力されない状況をいう。例えば0〜5Vの範囲で出力されるはずの信号Thwが常に2Vで出力されたり、2〜3Vの範囲で出力されたりする場合が挙げられる。このように信号Thwがある値に又はある範囲のものとなってしまうことを「信号値の固着」という。
【0049】
図6及び図7は、A水温センサオブジェクト110aが実行するA異常検出処理を示すフローチャートである。A異常検出処理は、信号値の低温側の固着を判断するものであり、暖機による水温上昇に基づき異常検出を行うものである。
まず最初のステップ(以下ステップを単に記号Sで示す。)1000において、フラグ情報をレジスタへコピーする。ここでいうフラグ情報は、異常検出結果を示す異常フラグ(正常:「0」、異常「1」)及び異常が確定したことを示す異常判定フラグ(未確定:「0」、確定「1」)である。これらのフラグは、グローバル変数としてメモリ39のスタンバイRAMに用意される。この処理は、前回の処理にて確定したフラグ情報を、過去のフラグ情報として待避させるものである。
【0050】
続くS1010では、エンジン始動時であるか否かを判断する。ここでエンジン始動時であると判断された場合(S1010:YES)、S1020にて初期化処理を実行し、その後、図7中のS1110へ移行する。S1020の初期化処理では、エンジン始動時の水温を始動時水温Tsに代入し、暖機カウンタDをリセットして「0」にし、さらにトリップフラグFtを「0」にセットする。一方、エンジン始動時でないと判断された場合(S1010:NO)、S1030へ移行する。
【0051】
S1030では、暖機カウンタDをインクリメントする。続くS1040では、水温Tがフィードバック水温T(F/B)よりも小さいか否かを判断する。このフィードバック水温T(F/B)は、エンジン11のフィードバック制御を開始する条件となる水温である。ここでT<T(F/B)である場合(S1040:YES)、S1050へ移行する。一方、T≧T(F/B)である場合(S1040:NO)、S1070へ移行する。
【0052】
S1050では、暖機カウンタDが暖機判定値Dthよりも大きいか否かを判断する。この暖機判定値Dthは、フィードバック制御に移行可能な程度に暖機されたか否かを判定するためのものであり、エンジンの始動時における水温である始動時水温Tsに基づいて算出される。つまり、始動時水温Tsが相対的に高い場合には小さく算出され、逆に始動時水温Tsが相対的に低い場合には大きく算出される。始動時水温Tsが高ければ暖機されるまでに時間がかかり、低ければ暖機されるまでに時間がかからないためである。ここでD>Dthである場合(S1050:YES)、すなわち、フィードバック水温T(F/B)よりも水温Tが低いにもかかわらず暖機されていると判断された場合には、水温を示す信号値が低温側に固着しているとして、S1060にて異常フラグFAを「1」にセットし、さらに正常判定カウンタSを「0」にリセットして、図7中のS1110へ移行する。一方、D≦Dthである場合(S1050:NO)、すなわち暖機が不十分である場合には、S1060の処理を実行せず、図7中のS1110へ移行する。
【0053】
S1040で否定判断された場合に移行するS1070では、正常であるとして異常フラグFAを「0」にセットする。この場合、水温Tがフィードバック水温T(F/B)よりも大きくなっており、水温を示す信号値の低温側への固着がないためである。
【0054】
続くS1080では、トリップフラグFtが「0」であるか否かを判断する。トリップフラグFtは、各トリップで既にS1040にて否定判断がなされたか否かを判断するためのものである。ここでFt=0である場合(S1080:YES)、正常判定カウンタSをインクリメントし(S1090)、トリップフラグFtを「1」にセットして(S1100)、図7中のS1110へ移行する。これによって、正常判定カウンタSは、各トリップで一度だけインクリメントされることになる。一方、Ft≠0である場合(S1080:NO)、S1090及びS1100の処理を実行せず、図7中のS1110へ移行する。
【0055】
図7中のS1110では、異常確定オブジェクト200に対してフラグ処理要求を発行する。続くS1120では、正常判定カウンタSが「20」以上となったか否かを判断する。ここでS≧20である場合(S1120:YES)、すなわち20トリップの間に異常検出がなされなかった場合には、S1130へ移行する。一方、S<20である場合(S1120:NO)、S1130及びS1140の処理を実行せず、本A異常検出処理を終了する。
【0056】
S1130では、異常フラグFB,FCが共に「0」であるか否かを判断する。異常フラグFB,FCはそれぞれ、後述するように、B水温センサオブジェクト110b、C水温センサオブジェクト110cで異常が検出された時にセットされて「1」となるグローバル変数である。したがって、ここではグローバル変数FB,FCを参照して判断する。ここでFB=0かつFC=0である場合(S1130:YES)、すなわちB及びCの両方の水温センサオブジェクト110b,110cにて異常検出がなされていない場合には、S1140にて異常時処理オブジェクト300へマスク処理要求を発行し、その後、本A異常検出処理を終了する。一方、FB=1又はFC=1である場合(S1130:NO)、すなわちB又はCの少なくともいずれか一方の水温センサオブジェクト110b,110cで異常検出がなされている場合には、S1140の処理を実行せず、本A異常検出処理を終了する。
【0057】
続けて、図8のフローチャートに基づき、B水温センサオブジェクト110bの実行するB異常検出処理を説明する。このB異常検出処理は、加速運転による水温上昇に基づき異常検出を行うものである。
まず最初のS2000において、フラグ情報をレジスタへコピーする。続くS2010では、エンジン始動時であるか否かを判断する。ここでエンジン始動時であると判断された場合(S2010:YES)、S2020にて初期化処理を実行し、その後、S2100へ移行する。S2020の初期化処理では、最低水温TL、最高水温TU、最低車速SL、最高車速SUをそれぞれエンジン始動時の水温・車速として初期化し、アイドルOFFカウンタIを「0」にリセットする。また、始動時水温Tsにエンジン始動時の水温を代入し、加速モードカウンタMAを「0」にリセットする。一方、エンジン始動時でないと判断された場合(S2010:NO)、S2030へ移行する。
【0058】
S2030では、演算の対象となる値を更新する演算対象値更新処理を実行する。この演算対象値更新処理は、図9に示す如くである。図9に示すように、まず処理が開始されると、最低車速SL・最高車速SUを更新する。具体的には、最低車速SLが現車速よりも大きければ、最低車速SLに現車速を代入する。また、最高車速SUが現車速よりも小さければ、最高車速SUに現車速を代入する。続いてアイドル状態か否かを判断する(S2210)。アイドル状態とは、図1中のスロットル弁15の全閉の状態をいう。したがってこの判断は、スロットルセンサ17からのIdle信号に基づいてなされる。ここでアイドル状態でないと判断された場合(S2210:NO)、アイドルOFFカウンタIをインクリメントし(S2220)、S2230へ移行する。一方、アイドル状態であると判断された場合(S2210:YES)、S2220の処理を実行せず、S2230へ移行する。さらに、最低水温TL・最高水温TUを更新する(S2230)。具体的には、最低水温TLが現水温よりも高ければ、最低水温TLに現水温を代入する。また、最高水温TUが現水温よりも低ければ、最高水温TUに現水温を代入する。
【0059】
ここで図8のフローチャートの説明に戻る。S2030に続くS2040では、最高車速SUと最低車速SLとの差分(SU−SL)が加速判定値Ath以上であるか否かを判断する。つまり、ある程度の加速運転がなされたか否かを判断するのである。ここで(SU−SL)≧Athである場合(S2040:YES)、S2050にて加速モードカウンタMAをインクリメントし、さらに、現車速を代入することで最低車速SL・最高車速SUをリセットして、その後、S2060へ移行する。一方(SU−SL)<Athである場合(S2040:NO)、S2050の処理を実行せず、S2060へ移行する。
【0060】
S2060では、最高水温TUと最低水温TLとの差分(TU−TL)が水温偏差判定値Tth以上であるか否かを判断する。また、始動時水温Tsが水温判定値TH以下であるか否かを判断する。つまり、ここでは一定の水温上昇があったか否かを判断する。ただし、始動時水温Tsが低い場合には水温上昇率が低くなるため、その場合を考慮する。ここで(TU−TL)≧Tth、又は、Ts≦THである場合(S2060:YES)、正常であると判断し、異常フラグFBを「0」にセットして(S2070)、S2100へ移行する。一方、(TU−TL)<Tth、かつ、Ts>THである場合(S2060:NO)、S2080へ移行する。
【0061】
S2080では、加速モードカウンタMAが一定値Mth以上であるか否かを判断する。また、アイドルOFFカウンタIが一定値Ith以上であるか否かを判断する。前者は、ある程度の加速運転が一定回数以上なされたか否かを判断するものである。一方後者は、アイドルOFFの状態が一定回数以上あったか否かを判断するものである。ここでMA≧Mth、かつ、I≧Ithである場合(S2080:YES)、すなわち、S2060にて(TU−TL)<Tthと判断されているにもかかわらず、一定回数の加速運転がなされておりアイドルOFFの状態が一定回数以上あった場合には、異常であると判断し、S2090にて異常フラグFBを「1」にセットして、その後、S2100へ移行する。一方、MA<Mth、又は、I<Ithである場合(S2080:NO)、S2090の処理を実行せず、S2100へ移行する。
【0062】
S2100では、異常確定オブジェクト200に対してフラグ処理要求を発行する。その後、本B異常検出処理を終了する。
さらに続けて、図10及び図11のフローチャートに基づき、C水温センサオブジェクト110cの実行するC異常検出処理を説明する。このC異常検出処理は、上述したB異常検出処理と同様、加速運転による水温上昇に基づき異常検出を行うものである。ただし、この異常検出手法は、法規で定められたものであり、一定の加減速パターンで走行した場合の水温上昇に基づく。
【0063】
まず最初のS3000において、フラグ情報をレジスタへコピーする。続くS3010では、エンジン始動時であるか否かを判断する。ここでエンジン始動時であると判断された場合(S3010:YES)、S3020にて初期化処理を実行し、その後、図11中のS3100へ移行する。S3020の初期化処理では、パターン条件成立フラグFpを「0」にセットし、最低水温TL、最高水温TUをそれぞれエンジン始動時の水温として初期化し、さらに、始動時水温Tsにエンジン始動時の水温を代入する。一方、エンジン始動時でないと判断された場合(S3010:NO)、S3030へ移行する。
【0064】
S3030では、パターン条件が成立したか否かを判断する。このパターンは法規によって定められており、加速走行→定常走行→第1の減速走行→定常走行→第2の減速走行といった一定の加減速パターンである。したがってここでは、走行パターンの軌跡がこの加減速パターンに一致したか否かを判断する。ここでパターン条件が成立したと判断された場合(S3030:YES)、S3040にてパターン条件成立フラグFpを「1」にセットし、その後、S3050へ移行する。一方、パターン条件が成立していないと判断された場合(S3030:NO)、S3040の処理を実行せず、S3050へ移行する。
【0065】
S3050では、最低水温TL・最高水温TUを更新する。この処理は、図9中のS2230と同様、最低水温TLが現水温よりも高ければ最低水温TLに現水温を代入し、一方、最高水温TUが現水温よりも低ければ最高水温TUに現水温を代入するものである。
【0066】
続くS3060では、最高水温TUと最低水温TLとの差分(TU−TL)が水温偏差判定値Tth以上であるか否かを判断する。つまり、ここでは一定の水温上昇があったか否かを判断する。ここで(TU−TL)≧Tthである場合(S3060:YES)、正常であると判断し、異常フラグFCを「0」にセットして(S3070)、その後、S3080へ移行する。一方、(TU−TL)<Tthである場合(S3060:NO)、S3070の処理を実行せず、S3080へ移行する。
【0067】
S3080では、パターン条件成立フラグFpが「1」であるか否かを判断する。また、最高水温TUと最低水温TLとの差分(TU−TL)が水温偏差判定値Tthよりも小さいか否かを判断する。ここでFp=1、かつ、(TU−TL)<Tthである場合(S3080:YES)、すなわち定められた加減速パターンで走行したにもかかわらず一定の水温上昇が見られない場合には、異常であるとして異常フラグFCを「1」にセットし(S3090)、図11中のS3100へ移行する。一方、Fp=0、又は、(TU−TL)≧Tthである場合(S3080:NO)、S3090の処理を実行せず、図11中のS3100へ移行する。
【0068】
図11中のS3100では、最低水温TL・最高水温TUを更新する。この処理は、上述した図10中のS3050と同様の処理である。
続くS3110では、最高水温TUと最低水温TLとの差分(TU−TL)が第2の水温偏差判定値T2th以上であるか否かを判断する。第2の水温偏差判定値T2thは、トリップを跨いでいる場合の水温上昇を判定するためのものである。ここで(TU−TL)>T2thである場合(S3110:YES)、正常であるとして異常フラグFCを「0」にセットし、さらに現水温を代入することにより最低水温TL・最高水温TUをリセットして(S3120)、その後、S3130へ移行する。一方、(TU−TL)≦T2thである場合(S3110:NO)、S3120の処理を実行せず、S3130へ移行する。
【0069】
S3130では、異常確定オブジェクト200に対し、フラグ処理要求を発行する。その後、本C異常検出処理を終了する。
次に、異常確定オブジェクト200にて実行される異常確定処理(S2)を、図12のフローチャートに基づいて説明する。
【0070】
S4000,S4010,S4020における低電圧1〜3は、フラグ情報であり、「0」又は「1」にセットされて、フラグ処理要求と共に異常検出オブジェクト100から送出される。
例えば水温センサ20の異常検出の場合、バッテリ19の電圧+Bが低下すると、水温センサ20が正常であるにもかかわらず、水温センサ20からの信号値は固着する。そこで水温センサオブジェクト110は、低電圧3を「1」にセットする。これによってバッテリ19の電圧+Bが低下して電圧V以下となっている場合には、S4020にて肯定判断され、異常判定フラグが「0」にセットされる(S4030)。つまり、実質的な異常ではないと判断されるのである。エンジンの回転信号を検出する回転センサ等はバッテリ19の電圧+Bに関係しないため、回転センサの異常を検出する異常検出オブジェクト100は、低電圧3を「0」にセットして送出する。
【0071】
このように各異常検出オブジェクト100が低電圧1〜3というフラグ情報を送出するようにし、各異常検出オブジェクト100の異常検出結果を共通の処理ステップ(S4000〜S4020)で処理できるようにした。
すなわち、S4000における判断処理では、イグニッションスイッチ26からの信号IGがオフで、かつ低電圧1が「1」にセットされている場合(S4000:YES)、異常でないと判断してS4030へ移行させる。また、S4010における判断処理では、スタータスイッチ28からの信号STAがオンで、かつ低電圧2が「1」にセットされている場合(S4010:YES)、異常でないと判断してS4030へ移行させる。さらにまた、S4020における判断処理では、バッテリ19の電圧+Bが電圧V以下で、かつ低電圧3が「1」にセットされている場合(S4010:YES)、異常でないと判断してS4030へ移行させる。
【0072】
S4000〜S4020で全て否定判断された場合に移行するS4040では、フラグ情報が変化したか否かを判断する。これは異常検出オブジェクト100にて待避させられた(図6中のS1000,図8中のS2000,10中のS300参照)過去のフラグ情報と比較して判断する。ここでフラグ情報が変化したと判断された場合(S4040:YES)、S4050にて異常判定フラグを「1」にセットし、S4060にて異常時処理オブジェクト300に対する異常確定通知を行い、その後、本異常確定処理を終了する。一方、フラグ情報が変化していないと判断された場合(S4040:NO)、S4050及びS4060の処理を実行せず、本異常確定処理を終了する。
【0073】
次に、異常コード記憶オブジェクト400にて実行される異常コード記憶処理(S4)・異常コードマスク処理(S5)を、図13及び図14のフローチャートに基づいて説明する。
図13に示す異常コード記憶処理では、最初にメモリ39のスタンバイRAMに空き領域があるか否かを判断する(S5000)。ここで空き領域があると判断された場合(S5000:YES)、S5010へ移行する。一方、空き領域がないと判断された場合(S5000:NO)、以下の処理を実行せず、本異常コード記憶処理を終了する。
【0074】
S5010では、記憶しようとする異常コードが既に記憶されているか否かを判断する。既に記憶されている場合(S5010:YES)、S5020の処理を実行せず、本異常コード記憶処理を終了する。一方、未だ記憶されていない場合(S5010:NO)、異常コードを小さい順にソートしてメモリ39のスタンバイRAMに記憶し(S5020)、その後、本異常コード記憶処理を終了する。
【0075】
図14に示す異常コードマスク処理では、最初にマスク対象となる異常コードが16進表記で「0000」であるか否かを判断する。これは空き領域に「0000」が記憶されているために行う不具合の防止処理である。マスク対象が「0000」であれば(S6000:YES)、以降の処理を実行せず、本異常コードマスク処理を終了する。一方、マスク対象が「0000」以外であれば(S6000:NO)、S6010へ移行する。
【0076】
S6010では、マスク対象となる異常コードが記憶されているか否かを判断する。ここでマスク対象となる異常コードが記憶されていなければ(S6010:NO)、S6020の処理を実行せず、本異常コードマスク処理を終了する。一方、マスク対象となる異常コードが記憶されていれば(S6010:YES)、S6020にてその異常コードをマスクする。すなわち、異常コードに対応するフラグを立て異常コードを読み出せない状態とする。その後、本異常コードマスク処理を終了する。
【0077】
以上のように各オブジェクト100〜400を構成したことによる本実施例のエンジン制御ユニット16の発揮する効果を次に述べる。
本実施例のエンジン制御ユニット16では、異常検出オブジェクト100が異常検出処理(S1)を実行することによって(図5参照)、一度異常検出を行った後に20トリップの間異常検出がなされなかった場合には(図7中のS1120:YES)、異常時処理オブジェクト300に対するマスク処理要求を発行する(S1140)。異常時処理オブジェクト300は異常時処理(S3)を実行して異常コードマスク要求を発行し、これによって、異常コード記憶オブジェクト400が異常コードマスク処理(S5)を実行する。この処理(S5)は、図14に示したように、ダイアグ対象に対応する異常コードを検索し(S6010)、ダイアグ対象毎に異常コードをマスクするものである(S6020)。つまり、検出された異常が一時的なものであれば、ダイアグ対象毎に、20トリップといった比較的早いタイミングで、記憶された異常コードがマスクされる。その結果、例えば修理工場などで異常コードが読み出され、本来は交換する必要のない部品が交換されてしまうことを防止できる。
【0078】
また、水温センサオブジェクト110を例に挙げて上述したように、複数の異常検出手法に対応させてA〜Cの3つの水温センサオブジェクト110a,110b,110cを設けた。そして3つのうちのA水温センサオブジェクト110aがマスク処理要求を行うのであるが、このときB及びCの両方の水温センサオブジェクト110b,110cで異常検出がなされていない場合に限り(図7中のS1130:YES)、マスク処理要求を発行する(S1140)。したがって、A水温センサオブジェクト110aにて異常検出がなされていないからと言って、B又はCの水温センサオブジェクト110b,110cにて異常検出がなされている場合に異常コードがマスク処理されることはない。
【0079】
さらにまた、異常検出オブジェクト100がダイアグ対象に依存する異常検出処理を実行する構成とし、加えて、B及びCの水温センサオブジェクト110b,110cの異常検出結果を判断してマスク処理要求を発行するオブジェクトも、異常検出オブジェクト100であるA水温センサオブジェクト110aとした。したがって、ダイアグ対象が変わった場合には、異常検出オブジェクト100のみを、つまりA〜Cの3つの水温センサオブジェクト110a〜110c・吸気温センサオブジェクト120・スロットルセンサオブジェクト130等を変更すればよく、異常確定オブジェクト200、異常時処理オブジェクト300、異常コード記憶オブジェクト400は何等変更する必要がない。そのため、自己診断プログラムの再利用性を確保できる。
【0080】
なお、A〜Cの3つの水温センサオブジェクト110a〜110cが相互に異常検出結果を参照してそれぞれがマスク処理要求を発行する構成も考えられるが、A水温センサオブジェクト110aがB及びCの水温センサオブジェクト110b,110cの異常検出結果を参照してマスク処理要求を発行すれば十分である。その理由は、B又はCの異常検出処理と比較してA水温センサオブジェクト110aの実行するA異常検出処理では異常が検出される可能性が相対的に高いからであり、A異常検出処理において水温センサ20の異常が検出されなかった場合、B又はCの異常検出処理で異常が検出される可能性は少ないためである。本実施例では、マスク処理要求を発行するための処理(図6中のS1060,S1080,S1090,S1100,図7中のS1120,S1130,S1140)をA水温センサオブジェクト110aのみが有するため、自己診断プログラムをトータルで見た場合に、処理プログラムが簡略化されるという面において、また、判断処理が少なくなり処理負荷が軽減されるという面において有利である。
【0081】
ところで、異常確定オブジェクト200にて実行される各異常確定処理を異常検出オブジェクト100が実行する構成とすることもできる。しかし、異常確定処理は、異常を検出する場合の共通の処理であるため、本実施例では、異常確定オブジェクト200が実行するようにした。これによって、自己診断プログラムの構成が簡単になると共に、ダイアグ対象の変更によって異常検出オブジェクト100を変更する場合、この共通の処理を作成/変更する必要がないため、さらなる再利用性を図ることができる。
【0082】
また、本実施例では、異常時処理オブジェクト300を設けた。この異常時処理オブジェクト300は、異常コードの記憶/マスク要求だけでなく、警告灯25の点灯/消灯要求も発行し(図3参照)、図示しないオブジェクトによって警告灯25の点灯/消灯が行われる。このような異常時の処理を統括する異常時処理オブジェクト300を備える構成としたため、本実施例では、自己診断プログラムの全体構成が分かり易くなると共に拡張性が高くなっている。
【0083】
以上、本発明はこのような実施形態に何等限定されるものではなく、本発明の主旨を逸脱しない範囲において種々なる形態で実施し得る。
例えば上記実施例では、異常コードをマスクすることによって読み出せなくする構成であった。この場合、メモリ39のスタンバイRAM内には異常コードが残っているため、修理工場などにおける通常操作では読み出せないが、特別な操作をすれば異常時情報を読み出して参照することができるという点で有利である。これに対して、メモリ39のスタンバイRAMに記憶された異常コードを消去してしまう構成とすることも当然できる。
【0084】
また、上記実施例ではメモリ39内のスタンバイRAMに異常コードを記憶していたが、イグニッションスイッチがオフの状態となっても記憶内容が失われないメモリ装置であればよく、スタンバイRAMには限られない。例えばEEPROMに異常コードを記憶する構成としても差し支えない。
【図面の簡単な説明】
【図1】実施例のエンジン制御システムを示す構成図である。
【図2】実施例のエンジン制御ユニットの構成を示すブロック図である。
【図3】自己診断プログラムの構造を概念的に示した説明図である。
【図4】異常コードの記憶手順を示すMSCである。
【図5】異常コードのマスク手順を示すMSCである。
【図6】A異常検出処理の前半部分を示すフローチャートである。
【図7】A異常検出処理の後半部分を示すフローチャートである。
【図8】B異常検出処理を示すフローチャートである。
【図9】演算対象値更新処理を示すフローチャートである。
【図10】C異常検出処理の前半部分を示すフローチャートである。
【図11】C異常検出処理の後半部分を示すフローチャートである。
【図12】異常確定処理を示すフローチャートである。
【図13】異常コード記憶処理を示すフローチャートである。
【図14】異常コードマスク処理を示すフローチャートである。
【符号の説明】
11…エンジン
12…吸気管
13…エアフローセンサ
14…吸気温センサ
15…スロットル弁
16…エンジン制御ユニット
17…スロットルセンサ
18…空燃比センサ
19…バッテリ
20…水温センサ
21…ディストリビュータ
22a,22b,22c,22d
…インジェクタ
23…イグナイタ
24…テストスイッチ
25…警告灯
26…イグニッションスイッチ
27…スタータモータ
28…スタータスイッチ
32…アナログ入力回路
33…ディジタル入力回路
34…A/D変換器
35…電源回路
36,37,38
…出力回路
39…メモリ
100…異常検出オブジェクト
110…水温センサオブジェクト
110a…A水温センサオブジェクト
110b…B水温センサオブジェクト
110c…C水温センサオブジェクト
120…吸気温センサオブジェクト
130…スロットルセンサオブジェクト
200…異常確定オブジェクト
300…異常時処理オブジェクト
400…異常コード記憶オブジェクト
[0001]
BACKGROUND OF THE INVENTION
The present invention relates to a self-diagnosis function of a vehicle control device that controls a vehicle, and further relates to a technique for realizing the self-diagnosis function by object-oriented programming.
[0002]
[Prior art]
In recent years, mechatronics technology, which combines mechanical technology and electronic technology, has made remarkable progress against the backdrop of advances in electronics technology such as the advent of high-performance microprocessors. As part of the progress of mechatronics, many computer systems have been adopted in vehicles such as automobiles. Such in-vehicle computer systems pursue resource saving, energy saving, driving performance, safety, comfort, etc., such as engine / drive system, driving / safety system, entertainment system, and other in-vehicle systems. It is installed everywhere.
[0003]
Among them, a computer system for vehicle control that requires particularly high reliability may cause a trouble in traveling unless the abnormality detection of each part in the system is accurately performed. Sometimes. Therefore, reliability is improved by providing the computer system with a self-diagnosis function. In other words, the operating state of the computer unit and sensors is automatically checked at an appropriate cycle, and when a failure occurs, a warning lamp (MIL) is turned on to notify the user of the failure, or the details of the failure are repaired by a person in charge of repair. As shown in FIG. 5, a diagnosis (hereinafter referred to as “diagnosis”) processing for storing an abnormal code (DTC) is enabled. The target of this diagnosis process includes about 200 sensors such as a crank angle sensor, a cam angle sensor, and a water temperature sensor, and currently reaches about 200. Hereinafter, the object of the diagnosis process is referred to as “diag object”.
[0004]
By the way, this diagnosis process does not simply determine the “normal” or “abnormal” by checking the operation state of the diagnosis target on a single occasion. This is because “normal” and “abnormal” also have levels. For example, when “abnormality” of the input signal system from the sensor is taken as an example, the temporary contact failure in the connector or the like is “abnormal”, and the complete disconnection is also “abnormal”. In the former case, a good operating state may be maintained thereafter, and in particular, the necessity for replacing parts may not be recognized. Therefore, even if it is determined that there is an abnormality once, for example, if no abnormality is detected for all diagnostic targets during the 40 warm-up cycle, all the abnormality codes stored so far are deleted. There was a control unit.
[0005]
[Problems to be solved by the invention]
The present invention focuses on the inconvenience caused by the abnormal codes stored therefor because there is a high possibility that the above-mentioned temporary abnormalities are detected during a limited period. This will be described.
[0006]
Examples of a period in which a temporary abnormality is likely to be detected include a vehicle assembly period in a factory and a travel period immediately after factory shipment. During the vehicle assembly period, the battery is temporarily fixed for operation confirmation, and therefore there is a high possibility that an abnormality in the battery connection will be detected. In addition, during the traveling period immediately after shipment from the factory, a small amount of metal scrap is generated from the operating part of the engine or the like, and therefore there is a high possibility that an abnormality will be detected due to the influence of the metal scrap. And both of these anomalies are temporary and not essential. However, in the conventional configuration, as described above, the erasure of the abnormal code is performed only when no abnormality is detected for 40 warm-up cycles for all diagnosis objects. Therefore, there is a problem that parts that are not originally required to be replaced are replaced based on the stored abnormal code, for example, when the user brings the vehicle to a repair shop or the like before the abnormal code is erased.
[0007]
In order to prevent this, it is conceivable that the abnormal code once stored is erased for each diagnosis target at a relatively early timing such as 20 warm-up cycles. However, since a plurality of abnormality detection methods may exist for a certain diagnosis target, it is not possible to simply delete the abnormality code stored for the diagnosis target. For example, when there are two methods A and B as an abnormality detection method for a diagnosis target, an abnormality code cannot be erased just because the abnormality detection by the method A is not performed. This is because there is a possibility that an abnormality is detected by the method B. Therefore, when a plurality of abnormality detection methods exist in the same diagnosis target, a configuration for deleting the abnormality code based on the plurality of abnormality detection results is required.
[0008]
And in adopting such a configuration, further consideration in the following points is necessary.
That is, the diagnosis target described above changes at the timing of the vehicle type, grade or model change. Therefore, it is desirable to adopt an object-oriented design that takes reusability into consideration. In other words, the processing that depends on the diagnosis target and the processing that does not depend on the diagnosis target are executed by another object, and the object that executes the processing that does not depend on the diagnosis target can be reused as it is. It can be used partially to create a new self-diagnosis program.
[0009]
The present invention makes it possible to erase abnormal information stored by temporary abnormality for each diagnosis target while ensuring reusability of the self-diagnosis program, and parts that do not need to be replaced are replaced. The purpose is to prevent this as much as possible.
[0010]
[Means for Solving the Problems and Effects of the Invention]
The vehicle control device according to claim 1, which has been made to achieve the above-described object, has a self-diagnosis function for storing abnormal time information corresponding to the diagnosis target based on the abnormality detection result of the diagnosis target. . Here, the abnormality time information includes at least an abnormality code indicating an abnormality content. In addition, the information at the time of abnormality is intended to include so-called freeze data indicating the vehicle state at the time of abnormality such as vehicle speed, engine speed, water temperature, throttle opening. In other words, the self-diagnostic function here is to store these abnormal-time information in, for example, a standby RAM or EEPROM based on the abnormality detection result, whereby the contents stored in the standby RAM or EEPROM are stored in a repair shop or the like. If it is read, the abnormal part can be specified.
[0011]
In the present invention, this self-diagnosis function is realized by executing a self-diagnosis program. And this self-diagnosis program Every Anomaly detection objects that execute processing and diagnostic targets Common It consists of a group of objects that execute processing. An anomaly detection object is prepared for each diagnosis target. Processing to detect anomalies ( Anomaly detection processing ) Execute. On the other hand, the object group executes a process of storing information at the time of abnormality based on the abnormality detection result by the abnormality detection object.
[0012]
Based on such a configuration, particularly in the present invention, when there are a plurality of methods for detecting an abnormality of the same diagnosis target, an abnormality detection object is prepared for each of the plurality of methods. And, at least one of these abnormality detection objects, when a predetermined condition is satisfied after abnormality detection is performed once, only when abnormality detection is not performed in another abnormality detection object related to the same diagnosis target, Instructs the invalid information to be invalidated. Here, when a predetermined condition is satisfied, for example, when no abnormality is detected during a predetermined number of warm-up cycles, for example, 20 warm-up cycles, or for example, 20 trips (period from turning on to off of the ignition key) It is conceivable that no abnormality is detected during a predetermined number of trips. Further, whether or not an abnormality is detected in another abnormality detection object is determined by referring to the global variable in a configuration in which the abnormality detection result of the abnormality detection object is substituted into a global variable, for example. In addition, when the abnormality detection result is, for example, internal information of the abnormality detection object, a message for reading the abnormality detection result is sent to the corresponding abnormality detection object, thereby making a determination with reference to the abnormality detection result. .
[0013]
When an abnormality detection object invalid instruction is issued from the abnormality detection object, the above-described object group invalidates the abnormality information. The reason for “invalidating” is not only to erase the stored abnormal information but also to mask the stored abnormal information. The masking process refers to, for example, setting a flag for abnormal time information so that the abnormal time information cannot be read. In this case, since the abnormal time information remains in the storage device itself, it cannot be read by a normal operation in a repair shop or the like, but the abnormal time information can be read and referred to by performing a special operation.
[0014]
According to the present invention, if the detected abnormality is temporary, the stored abnormality information is invalidated at a relatively early timing such as 20 warm-up cycles for each diagnosis target. As a result, it is possible to prevent parts that originally do not need to be replaced from being replaced.
[0015]
In addition, when at least one of a plurality of anomaly detection objects prepared for each anomaly detection method has not been anomaly detected by another anomaly detection object related to the same diagnosis target, the invalidity information invalid instruction is issued. I do. Therefore, just because an abnormality is not detected by a certain abnormality detection method, the abnormality code is not invalidated when an abnormality is detected by another method.
[0016]
Furthermore, it is the abnormality detection object that determines the abnormality detection result of the other abnormality detection object and sends an invalid instruction of the abnormality information to the object group. Accordingly, when the diagnosis target changes, only the abnormality detection object needs to be changed, and the object group need not be changed at all. Therefore, reusability of the self-diagnosis program can be ensured.
[0017]
Note that the abnormality detection object for instructing invalidity information invalidity detection should be performed with a method having a relatively high possibility of detecting an abnormality among abnormality detection objects related to the same diagnosis target. (Claim 2). For example, an abnormality detection object having the highest possibility of detecting an abnormality refers to an abnormality detection result of another abnormality detection object and issues an invalid instruction of information at the time of abnormality. However, the abnormality detection object that gives an invalid instruction is not limited to one as long as it has a relatively high possibility of detecting an abnormality.
[0018]
If an abnormality is not detected for an object with a relatively high possibility of detecting an abnormality, there is a low possibility that an abnormality will be detected for another object, and it is not necessary to perform judgment processing on all abnormality detection objects. It is. According to the present invention, since the determination process for determining whether or not the abnormality information is invalid is inserted into some (for example, one) abnormality detection objects, the processing program is simplified. Further, it is advantageous in that the number of executions of the determination process is reduced and the processing load is reduced.
[0019]
On the other hand, the object group can be configured as shown in claim 3, for example. That is, it is conceivable to include at least an abnormality confirmation object, an abnormality processing object, and an abnormality information storage object. At this time, each object operates as follows.
[0020]
The abnormality confirmation object determines whether or not it is a substantial abnormality based on the abnormality detection result by the abnormality detection object. For example, when the battery is disconnected, the abnormality may be detected even if the diagnosis target itself such as a sensor is normal due to the battery being disconnected. Further, when an abnormality determination is made by the abnormality confirmation object, the abnormality processing object makes a storage request for abnormality information. Then, the abnormal time information storage object stores the abnormal time information in accordance with the abnormal time information storage request by the abnormal time processing object.
[0021]
The determination as to whether or not the detected abnormality is substantial as described above, for example, the determination as to whether or not the abnormality is due to battery removal is a determination process common to each diagnosis. Therefore, by providing an abnormality confirmation object for executing this determination process, the entire program configuration is simplified, and further reusability can be achieved.
[0022]
Further, the configuration in which the abnormal time information storage object stores the abnormal time information in accordance with the request of the abnormal time processing object is as follows.
In the diagnosis process, not only the storage of information at the time of abnormality but also a warning lamp lighting / extinguishing process is generally performed to notify the user of the occurrence of the abnormality. In view of such a configuration, it is desirable to prepare an object that supervises abnormal-time processing such as storage of abnormal-time information and lighting / extinguishing of a warning lamp. This is because the program structure is easy to understand and expandability is enhanced. Therefore, in the present invention, an abnormality processing object is provided. In this way, for example, when the warning lamp is turned on / off, the abnormality processing object outputs a warning lamp turn-on / off request to the predetermined object, and the predetermined object turns on / off the warning light. It can be realized by doing.
[0023]
Assuming such a configuration, if there is an instruction to invalidate the abnormal time information from the abnormality detection object, the abnormal time processing object may make an invalid request for the abnormal time information. At this time, the abnormal time information storage object invalidates the abnormal time information in accordance with the invalid time information invalidation request from the abnormal time processing object.
[0024]
By the way, such a self-diagnosis program included in the vehicle control device is recorded on a computer-readable recording medium such as a floppy disk, a magneto-optical disk, a CD-ROM, or a hard disk, and is loaded into a computer system as necessary. It can be used by starting. In addition, a self-diagnosis program may be recorded as a computer-readable recording medium using a ROM or backup RAM, and the ROM or backup RAM may be incorporated into a computer system.
[0025]
DETAILED DESCRIPTION OF THE INVENTION
Hereinafter, an embodiment of the present invention will be described with reference to the drawings.
FIG. 1 is a configuration diagram showing the entire engine control system. This engine control system is mainly composed of an engine 11 and an engine control unit 16 that controls the engine 11. The engine control unit 16 corresponds to a “vehicle control device”.
[0026]
The engine 11 is supplied with intake air from an air cleaner through an intake pipe 12. The intake pipe 12 is provided with an air flow sensor 13 for measuring the intake air amount, an intake air temperature sensor 14 for detecting intake air temperature, and a throttle valve 15 driven by an accelerator pedal.
[0027]
Various signals indicating the state of the engine 11 are input to the engine control unit 16. If this signal is listed, the intake air amount detection signal from the air flow sensor 13, the opening degree detection signal of the throttle valve 15 from the throttle sensor 17, and the signal from the air-fuel ratio sensor 18 that detects the oxygen concentration contained in the exhaust gas. A battery voltage signal from the battery 19, a detection signal from the water temperature sensor 20, a rotation signal from the distributor 21 driven by the engine 11, and a cylinder discrimination signal.
[0028]
Further, the engine control unit 16 calculates a fuel injection amount corresponding to the operating state of the engine 11 based on these various detection signals, and for the injectors 22a to 22d set for each of the plurality of cylinders of the engine 11. A fuel injection command is output, and an ignition command signal is output to the igniter 23 to execute operation control of the engine 11.
[0029]
Furthermore, the engine control unit 16 also performs diagnosis of each part of the vehicle based on detection signals from each sensor group. For this reason, a test switch 24 for setting a diagnosis mode for outputting an abnormality detection result is arranged for the engine control unit 16, and a warning lamp 25 for displaying a diagnosis result as the test result. Is connected.
[0030]
The switch 26 is an ignition switch that connects the battery 19 to the engine control unit 16, and a starter switch 28 that controls the starter motor 27 in conjunction with the ignition switch 26 is provided.
Next, the engine control unit 16 will be described. FIG. 2 is a block diagram showing a configuration of the engine control unit 16 shown in FIG. The engine control unit 16 includes a CPU 31 that constitutes a computer system. Data from the analog input circuit 32 and the digital input circuit 33 are input to the CPU 31, and the analog input data from the analog input circuit 32 is converted into digital data by the A / D converter 34 and input to the CPU 31.
[0031]
The analog input circuit 32 receives the detection signal Us from the airflow sensor 13, the detection signal Thw from the water temperature sensor 20, the detection signal Tha from the intake air temperature sensor 14, and the voltage + B of the battery 19. On the other hand, in the digital input circuit 33, the cylinder discrimination signal G1 and the rotation angle signal Ne from the distributor 21, the lean / rich signal Ox corresponding to the oxygen concentration from the air-fuel ratio sensor 18, and the throttle valve 15 from the throttle sensor 17 are all provided. An idle signal Idle indicating that it is closed, a start signal STA from the starter switch 28, and a signal T for setting a diagnostic mode from the test switch 24 are input.
[0032]
The A / D converter 34 has a multiplexer function that sequentially selects and reads various detection signals input to the analog input circuit 32 in accordance with commands from the CPU 31 and converts them into digital data.
The power supply circuit 35 supplies the voltage + B of the battery 19 to the CPU 31 via the ignition switch 26 and also supplies the backup power supply Batt.
[0033]
Output data from the CPU 31 is supplied to output circuits 36, 37 and 38 and is taken out as an output signal from the engine control unit 16. That is, the output circuit 36 outputs an ignition command signal IGt to the igniter 23. Further, the output circuit 37 outputs a signal W representing the diagnosis result to control the lighting of the warning lamp 25. The output signal τq from the output circuit 38 indicates the fuel injection amount corresponding to the operating state of the engine 11, and is output to the injectors 22a to 22d to change the injection amount of these injectors 22a to 22d.
[0034]
Further, in the CPU (engine control unit) 31, a memory 39 for storing a self-diagnosis program described later is provided. The memory 39 is composed of a ROM and a standby RAM that retains data by being supplied with power even when the ignition switch 26 is turned off. The self-diagnosis program is stored in the ROM. As will be described later, an abnormal code is stored in the standby RAM by a self-diagnosis program.
[0035]
This embodiment is characterized by a self-diagnosis program stored in the ROM of the memory 39. Next, the self-diagnosis program will be described.
FIG. 3 is an explanatory diagram conceptually showing the structure (architecture) of the self-diagnosis program. The self-diagnosis program is composed of a plurality of programs designed in an object-oriented manner. As is already known, object-oriented design is based on the characteristics and behavior (operation) of an object modeled on a basic unit, compared to what conventional software focuses on processing (for example, fuel injection processing). Describes the process. This basic unit is referred to as an “object”, and an object-oriented designed program is described with this object as the minimum constituent unit. As a whole program, a series of processing is executed by connecting objects by exchanging requests and responses (hereinafter referred to as “messages”). The object includes data (attribute) and a method (procedure) for the data, and executes the method by a message from another object. In the present specification, the expression “object is ...” based on the object is used, but it is needless to say that it is actually realized by the CPU 31 executing the processing program. .
[0036]
FIG. 3 shows only the objects necessary for explaining the present embodiment. That is, the self-diagnosis program in this embodiment includes at least an abnormality detection object 100, an abnormality confirmation object 200, an abnormality processing object 300, and an abnormality code storage object 400.
[0037]
The abnormality detection object 100 detects an abnormality of a diagnosis target that is a target of self-diagnosis based on information such as each sensor group input to the engine control unit 16. This abnormality detection object 100 is prepared for each diagnosis target. For example, FIG. 3 shows a water temperature sensor abnormality detection object (hereinafter referred to as “water temperature sensor object”) 110 that detects an abnormality of the water temperature sensor 20 in the abnormality detection object 100, and an intake air temperature that detects an abnormality of the intake air temperature sensor 14. A sensor abnormality detection object (hereinafter referred to as “intake air temperature sensor object”) 120 and a throttle sensor abnormality detection object (hereinafter referred to as “throttle sensor object”) 130 for detecting abnormality of the throttle sensor 17 are shown. That is, here, the water temperature sensor 20, the intake air temperature sensor 14, and the throttle sensor 17 correspond to “diagnosis targets”.
[0038]
If there are a plurality of abnormality detection methods for the same diagnosis target, an abnormality detection object 100 is prepared for each of the plurality of abnormality detection methods. For example, if there are three abnormality detection methods for the water temperature sensor 20, three water temperature sensor objects 110a, 110b, and 110c are prepared as shown in FIG. Hereinafter, the three water temperature sensor objects 110a to 110c are described as an A water temperature sensor object 110a, a B water temperature sensor object 110b, and a C water temperature sensor object 110c.
[0039]
The abnormality confirmation object 200 determines whether the abnormality detected by each abnormality detection object 100 is a substantial abnormality. For example, when the battery 19 is disconnected, the abnormality may be detected even if the diagnosis target itself is normal due to the battery 19 being disconnected.
[0040]
The abnormal-time processing object 300 executes abnormal-time processing. The abnormal process includes a storage / mask request for an abnormal code and a request for turning on / off a warning lamp.
The abnormal code storage object 400 stores the abnormal code corresponding to the diagnosis target in the standby RAM of the memory 39. Alternatively, the abnormal code once stored in the memory 39 is masked. Masking means that an abnormal code stored in the standby RAM cannot be read out by normal operation by setting a flag corresponding to the abnormal code. In the present embodiment, only the abnormal code is stored / masked to avoid complication, but not only the abnormal code but also the vehicle speed, engine speed, water temperature, throttle at the time when the abnormality is determined. So-called freeze data indicating the vehicle state such as the opening degree may be stored / masked in the standby RAM.
[0041]
As described above, the objects 100 to 400 are combined by a message and execute a series of processes. Therefore, next, the connection of the objects 100 to 400 will be described with reference to a message sequence chart (hereinafter referred to as “MSC”).
[0042]
FIG. 4 is an MSC showing from abnormality detection of a diagnosis target to storage of an abnormality code. First, the abnormality detection object 100 executes an abnormality detection process (S1). When an abnormality to be diagnosed is detected in this abnormality detection process, an abnormality flag is set. Therefore, the abnormality detection object 100 issues a flag processing request to the abnormality confirmation object 200.
[0043]
When receiving the flag processing request, the abnormality confirmation object 200 executes the abnormality confirmation processing (S2). If it is determined in this abnormality confirmation process that there is a substantial abnormality, the abnormality confirmation object 200 sends an abnormality confirmation notification to the abnormality processing object 300.
[0044]
Then, the abnormal time processing object 300 executes the abnormal time processing (S3). In this abnormal process, an abnormal code storage request for the abnormal code storage object 400 is issued. In the process at the time of abnormality, a warning lamp lighting request is generally issued to another object (not shown), but since it is not necessary for the description of the embodiment, the warning lamp lighting request is omitted.
[0045]
When the abnormal code storage request is received, the abnormal code storage object 400 executes an abnormal code storage process (S4). As a result, the abnormal code corresponding to the diagnosis target determined to be abnormal is stored in the standby RAM of the memory 39.
Further, in this embodiment, if an abnormality to be diagnosed is not detected during 20 trips after the abnormality code is once stored, it is stored in the standby RAM of the memory 39 as a temporary abnormality. The abnormal code is masked for each diagnosis target.
[0046]
FIG. 5 is an MSC showing abnormal code mask processing. In the above-described abnormality detection process (S1), if no abnormality is detected during 20 trips after the abnormality is detected, a mask process request is issued to the abnormality processing object 300.
The abnormal time processing object 300 executes the abnormal time processing described above (S3), and issues an abnormal code mask request in accordance with the mask processing request. Thus, the abnormal code storage object 400 executes the abnormal code mask process (S5). As a result, the abnormal code stored in the standby RAM of the memory 39 corresponding to the diagnosis target is masked.
[0047]
However, as shown in FIG. 3, there are three water temperature sensor objects 110 a to 110 c of A to C as the abnormality detection object 100 for the water temperature sensor 20 to be diagnosed. Therefore, after the abnormality code corresponding to the water temperature sensor 20 is stored, for example, even when the A water temperature sensor object 110a does not detect an abnormality during the 20 trip, the B water temperature sensor object 110b detects the abnormality. Cases are also conceivable. Therefore, the A water temperature sensor object 110a needs to issue a mask processing request with reference to the abnormality detection results of the B and C water temperature sensor objects 110b and 110c.
[0048]
In this embodiment, the above-described mask processing request is devised on the premise that there are a plurality of abnormality detection objects 100 for the same diagnosis target.
Therefore, including this point, the details of the above-described abnormality detection process (S1), abnormality confirmation process (S2), abnormality code storage process (S4) and abnormality code mask process (S5) are based on the flowcharts of FIGS. explain. Note that the abnormality detection process (S1) will be described by taking the abnormality detection process in each of the three water temperature sensor objects 110a to 110c of A to C as an example. For the sake of explanation, the abnormality detection process executed by the A water temperature sensor object 110a is described as “A abnormality detection process”, and similarly, the abnormality detection process executed by the B water temperature sensor object 110b is called “B abnormality detection process”, C water temperature. The abnormality detection process executed by the sensor object 110c is described as “C abnormality detection process” to be distinguished. Each of the abnormality detection processes A to C detects an abnormality caused by the water temperature sensor 20 being out of range. Out-of-range refers to a situation where a signal is not output with a specified signal width. For example, the signal Thw that is supposed to be output in the range of 0 to 5V is always output at 2V or output in the range of 2 to 3V. Such a signal Thw having a certain value or within a certain range is referred to as “fixing of signal value”.
[0049]
6 and 7 are flowcharts showing the A abnormality detection process executed by the A water temperature sensor object 110a. The A abnormality detection process is to determine whether the signal value is stuck on the low temperature side, and performs abnormality detection based on a rise in water temperature due to warm-up.
First, in the first step (hereinafter, steps are simply indicated by symbol S) 1000, flag information is copied to a register. The flag information here includes an abnormality flag (normal: “0”, abnormality “1”) indicating an abnormality detection result and an abnormality determination flag (unconfirmed: “0”, confirmation “1”) indicating that the abnormality has been established. It is. These flags are prepared in the standby RAM of the memory 39 as global variables. In this process, the flag information determined in the previous process is saved as past flag information.
[0050]
In subsequent S1010, it is determined whether or not the engine is being started. If it is determined that the engine is being started (S1010: YES), an initialization process is executed in S1020, and then the process proceeds to S1110 in FIG. In the initialization process of S1020, the water temperature at engine startup is substituted for the startup water temperature Ts, the warm-up counter D is reset to “0”, and the trip flag Ft is set to “0”. On the other hand, if it is determined that the engine is not being started (S1010: NO), the process proceeds to S1030.
[0051]
In S1030, the warm-up counter D is incremented. In subsequent S1040, it is determined whether or not the water temperature T is lower than the feedback water temperature T (F / B). The feedback water temperature T (F / B) is a water temperature that is a condition for starting feedback control of the engine 11. If T <T (F / B) (S1040: YES), the process proceeds to S1050. On the other hand, when T ≧ T (F / B) (S1040: NO), the process proceeds to S1070.
[0052]
In S1050, it is determined whether or not the warm-up counter D is greater than the warm-up determination value Dth. This warm-up determination value Dth is used to determine whether or not the engine has been warmed up to such an extent that it is possible to shift to feedback control, and is calculated based on a starting water temperature Ts that is a water temperature when the engine is started. That is, when the starting water temperature Ts is relatively high, it is calculated to be small, and conversely, when the starting water temperature Ts is relatively low, it is calculated to be large. This is because if the water temperature Ts at the start is high, it takes time to warm up, and if it is low, it takes time to warm up. If D> Dth (S1050: YES), that is, if it is determined that the water temperature T is lower than the feedback water temperature T (F / B), the water temperature is indicated. Assuming that the signal value is fixed on the low temperature side, the abnormality flag FA is set to “1” in S1060, the normality determination counter S is reset to “0”, and the process proceeds to S1110 in FIG. On the other hand, when D ≦ Dth (S1050: NO), that is, when the warm-up is insufficient, the process of S1060 is not executed and the process proceeds to S1110 in FIG.
[0053]
In S1070, which is shifted when a negative determination is made in S1040, the abnormality flag FA is set to “0” as normal. In this case, the water temperature T is larger than the feedback water temperature T (F / B), and the signal value indicating the water temperature is not fixed to the low temperature side.
[0054]
In subsequent S1080, it is determined whether or not the trip flag Ft is “0”. The trip flag Ft is used to determine whether or not a negative determination has already been made in S1040 for each trip. If Ft = 0 (S1080: YES), the normality determination counter S is incremented (S1090), the trip flag Ft is set to “1” (S1100), and the process proceeds to S1110 in FIG. As a result, the normality determination counter S is incremented only once in each trip. On the other hand, if Ft ≠ 0 (S1080: NO), the processing of S1090 and S1100 is not executed, and the routine proceeds to S1110 in FIG.
[0055]
In S1110 in FIG. 7, a flag processing request is issued to the abnormality confirmed object 200. In subsequent S1120, it is determined whether or not the normality determination counter S is equal to or greater than “20”. If S ≧ 20 (S1120: YES), that is, if no abnormality is detected during 20 trips, the process proceeds to S1130. On the other hand, when S <20 (S1120: NO), the processing of S1130 and S1140 is not executed, and the present A abnormality detection processing is terminated.
[0056]
In S1130, it is determined whether or not the abnormality flags FB and FC are both “0”. The abnormality flags FB and FC are global variables that are set to “1” when an abnormality is detected in the B water temperature sensor object 110b and the C water temperature sensor object 110c, as will be described later. Therefore, the determination is made with reference to the global variables FB and FC here. Here, when FB = 0 and FC = 0 (S1130: YES), that is, when no abnormality is detected in both the water temperature sensor objects 110b and 110c of B and C, an abnormality processing object is obtained in S1140. A mask process request is issued to 300, and then the A abnormality detection process is terminated. On the other hand, when FB = 1 or FC = 1 (S1130: NO), that is, when an abnormality is detected in at least one of the water temperature sensor objects 110b and 110c of B or C, the process of S1140 is executed. Without completing the A abnormality detection process.
[0057]
Next, the B abnormality detection process executed by the B water temperature sensor object 110b will be described based on the flowchart of FIG. This B abnormality detection process detects abnormality based on the water temperature rise by acceleration operation.
First, in S2000, the flag information is copied to the register. In subsequent S2010, it is determined whether or not the engine is being started. If it is determined that the engine is being started (S2010: YES), an initialization process is executed in S2020, and then the process proceeds to S2100. In the initialization process of S2020, the minimum water temperature TL, the maximum water temperature TU, the minimum vehicle speed SL, and the maximum vehicle speed SU are initialized as the water temperature and vehicle speed at the time of starting the engine, respectively, and the idle OFF counter I is reset to “0”. Further, the water temperature at engine start is substituted for the water temperature Ts at start, and the acceleration mode counter MA is reset to “0”. On the other hand, if it is determined that the engine is not being started (S2010: NO), the process proceeds to S2030.
[0058]
In S2030, calculation target value update processing for updating a value to be calculated is executed. This calculation target value update processing is as shown in FIG. As shown in FIG. 9, when the process is started, the minimum vehicle speed SL and the maximum vehicle speed SU are updated. Specifically, if the minimum vehicle speed SL is larger than the current vehicle speed, the current vehicle speed is substituted for the minimum vehicle speed SL. If the maximum vehicle speed SU is smaller than the current vehicle speed, the current vehicle speed is substituted for the maximum vehicle speed SU. Subsequently, it is determined whether or not an idle state is set (S2210). The idle state means a state in which the throttle valve 15 in FIG. 1 is fully closed. Therefore, this determination is made based on the Idle signal from the throttle sensor 17. If it is determined that the engine is not in the idle state (S2210: NO), the idle OFF counter I is incremented (S2220), and the process proceeds to S2230. On the other hand, when it is determined that the vehicle is in the idle state (S2210: YES), the process of S2220 is not executed and the process proceeds to S2230. Furthermore, the minimum water temperature TL and the maximum water temperature TU are updated (S2230). Specifically, if the minimum water temperature TL is higher than the current water temperature, the current water temperature is substituted for the minimum water temperature TL. If the maximum water temperature TU is lower than the current water temperature, the current water temperature is substituted for the maximum water temperature TU.
[0059]
Returning to the flowchart of FIG. In S2040 following S2030, it is determined whether or not the difference (SU−SL) between the maximum vehicle speed SU and the minimum vehicle speed SL is equal to or greater than the acceleration determination value Ath. That is, it is determined whether or not a certain amount of acceleration operation has been performed. If (SU−SL) ≧ Ath (S2040: YES), the acceleration mode counter MA is incremented in S2050, and the current vehicle speed is substituted to reset the minimum vehicle speed SL and the maximum vehicle speed SU. Thereafter, the process proceeds to S2060. On the other hand, if (SU-SL) <Ath (S2040: NO), the process of S2050 is not executed and the process proceeds to S2060.
[0060]
In S2060, it is determined whether or not the difference (TU−TL) between the maximum water temperature TU and the minimum water temperature TL is equal to or greater than the water temperature deviation determination value Tth. Further, it is determined whether or not the starting water temperature Ts is equal to or lower than the water temperature determination value TH. That is, it is determined here whether or not there has been a certain increase in water temperature. However, when the water temperature Ts at the time of starting is low, the rate of increase in the water temperature is low, so that case is considered. Here, if (TU−TL) ≧ Tth or Ts ≦ TH (S2060: YES), it is determined to be normal, the abnormality flag FB is set to “0” (S2070), and the process proceeds to S2100. . On the other hand, if (TU-TL) <Tth and Ts> TH (S2060: NO), the process proceeds to S2080.
[0061]
In S2080, it is determined whether or not the acceleration mode counter MA is greater than or equal to a certain value Mth. Further, it is determined whether or not the idle OFF counter I is equal to or greater than a certain value Ith. The former is to determine whether or not a certain amount of acceleration operation has been performed a certain number of times. On the other hand, the latter is to determine whether or not the idling OFF state has occurred a certain number of times or more. Here, when MA ≧ Mth and I ≧ Ith (S2080: YES), that is, although it is determined that (TU−TL) <Tth in S2060, a certain number of acceleration operations are performed. If the idle idle state has been exceeded for a certain number of times, it is determined that there is an abnormality, the abnormality flag FB is set to “1” in S2090, and then the process proceeds to S2100. On the other hand, if MA <Mth or I <Ith (S2080: NO), the process proceeds to S2100 without executing the process of S2090.
[0062]
In S2100, a flag processing request is issued to the abnormality confirmed object 200. Thereafter, the B abnormality detection process is terminated.
Further, C abnormality detection processing executed by the C water temperature sensor object 110c will be described based on the flowcharts of FIGS. This C abnormality detection process is to detect an abnormality based on the water temperature rise due to the acceleration operation, similar to the above-described B abnormality detection process. However, this abnormality detection method is stipulated by laws and regulations, and is based on a rise in water temperature when the vehicle travels with a constant acceleration / deceleration pattern.
[0063]
First, in step S3000, flag information is copied to a register. In subsequent S3010, it is determined whether or not the engine is being started. If it is determined that the engine is being started (S3010: YES), an initialization process is executed in S3020, and then the process proceeds to S3100 in FIG. In the initialization process of S3020, the pattern condition satisfaction flag Fp is set to “0”, the minimum water temperature TL and the maximum water temperature TU are initialized as the water temperature at the time of starting the engine, respectively, and further the water temperature at the time of starting the engine Is assigned. On the other hand, if it is determined that the engine is not being started (S3010: NO), the process proceeds to S3030.
[0064]
In S3030, it is determined whether the pattern condition is satisfied. This pattern is defined by laws and regulations, and is a constant acceleration / deceleration pattern such as acceleration travel → steady travel → first deceleration travel → steady travel → second deceleration travel. Therefore, it is determined here whether or not the trajectory of the traveling pattern matches this acceleration / deceleration pattern. If it is determined that the pattern condition is satisfied (S3030: YES), the pattern condition satisfaction flag Fp is set to “1” in S3040, and then the process proceeds to S3050. On the other hand, when it is determined that the pattern condition is not satisfied (S3030: NO), the processing of S3040 is not executed, and the process proceeds to S3050.
[0065]
In S3050, the minimum water temperature TL and the maximum water temperature TU are updated. In this process, as in S2230 in FIG. 9, if the minimum water temperature TL is higher than the current water temperature, the current water temperature is substituted for the minimum water temperature TL, while if the maximum water temperature TU is lower than the current water temperature, the current water temperature is set to the maximum water temperature TU. Is substituted.
[0066]
In subsequent S3060, it is determined whether or not the difference (TU−TL) between the maximum water temperature TU and the minimum water temperature TL is equal to or greater than the water temperature deviation determination value Tth. That is, it is determined here whether or not there has been a certain increase in water temperature. Here, if (TU−TL) ≧ Tth (S3060: YES), it is determined to be normal, the abnormality flag FC is set to “0” (S3070), and then the process proceeds to S3080. On the other hand, if (TU-TL) <Tth (S3060: NO), the processing of S3070 is not executed, and the processing proceeds to S3080.
[0067]
In S3080, it is determined whether or not the pattern condition satisfaction flag Fp is “1”. Further, it is determined whether or not the difference (TU−TL) between the maximum water temperature TU and the minimum water temperature TL is smaller than the water temperature deviation determination value Tth. Here, when Fp = 1 and (TU−TL) <Tth (S3080: YES), that is, when a constant water temperature rise is not seen even though the vehicle has traveled in a predetermined acceleration / deceleration pattern, Since it is abnormal, the abnormality flag FC is set to “1” (S3090), and the process proceeds to S3100 in FIG. On the other hand, if Fp = 0 or (TU−TL) ≧ Tth (S3080: NO), the process of S3090 is not executed, and the process proceeds to S3100 in FIG.
[0068]
In S3100 in FIG. 11, the minimum water temperature TL and the maximum water temperature TU are updated. This process is the same as S3050 in FIG. 10 described above.
In subsequent S3110, it is determined whether or not the difference (TU−TL) between the maximum water temperature TU and the minimum water temperature TL is equal to or greater than a second water temperature deviation determination value T2th. The second water temperature deviation determination value T2th is for determining an increase in the water temperature when straddling a trip. If (TU-TL)> T2th (S3110: YES), the abnormality flag FC is set to “0” as normal, and the current water temperature is substituted to reset the minimum water temperature TL and the maximum water temperature TU. (S3120), and then the process proceeds to S3130. On the other hand, if (TU−TL) ≦ T2th (S3110: NO), the process of S3120 is not executed, and the process proceeds to S3130.
[0069]
In S3130, a flag processing request is issued to the abnormality confirmed object 200. Thereafter, the C abnormality detection process is terminated.
Next, the abnormality confirmation process (S2) executed by the abnormality confirmation object 200 will be described based on the flowchart of FIG.
[0070]
Low voltages 1 to 3 in S4000, S4010, and S4020 are flag information, set to “0” or “1”, and sent from the abnormality detection object 100 together with the flag processing request.
For example, in the case of detecting an abnormality of the water temperature sensor 20, when the voltage + B of the battery 19 decreases, the signal value from the water temperature sensor 20 is fixed even though the water temperature sensor 20 is normal. Therefore, the water temperature sensor object 110 sets the low voltage 3 to “1”. As a result, when the voltage + B of the battery 19 decreases to be equal to or lower than the voltage V, an affirmative determination is made in S4020, and the abnormality determination flag is set to “0” (S4030). That is, it is determined that there is no substantial abnormality. Since the rotation sensor that detects the rotation signal of the engine is not related to the voltage + B of the battery 19, the abnormality detection object 100 that detects abnormality of the rotation sensor sets the low voltage 3 to “0” and sends it out.
[0071]
In this way, each abnormality detection object 100 transmits flag information of low voltage 1 to 3, and the abnormality detection result of each abnormality detection object 100 can be processed in common processing steps (S4000 to S4020).
That is, in the determination process in S4000, when the signal IG from the ignition switch 26 is off and the low voltage 1 is set to “1” (S4000: YES), it is determined that there is no abnormality and the process proceeds to S4030. In the determination process in S4010, if the signal STA from the starter switch 28 is on and the low voltage 2 is set to “1” (S4010: YES), it is determined that there is no abnormality and the process proceeds to S4030. Furthermore, in the determination process in S4020, when the voltage + B of the battery 19 is equal to or lower than the voltage V and the low voltage 3 is set to “1” (S4010: YES), it is determined that there is no abnormality and the process proceeds to S4030. .
[0072]
In S4040 that is shifted when all negative determinations are made in S4000 to S4020, it is determined whether or not the flag information has changed. This was saved by the anomaly detection object 100 (S1000 in FIG. 6, S2000 in FIG. 8, Figure S300 in 10 0 Refer to: Judged by comparing with past flag information. If it is determined that the flag information has changed (S4040: YES), the abnormality determination flag is set to “1” in S4050, an abnormality confirmation notification is given to the abnormality processing object 300 in S4060, and then The abnormality confirmation process is terminated. On the other hand, when it is determined that the flag information has not changed (S4040: NO), the process of S4050 and S4060 is not executed, and the abnormality determination process is terminated.
[0073]
Next, the abnormal code storage process (S4) and abnormal code mask process (S5) executed by the abnormal code storage object 400 will be described with reference to the flowcharts of FIGS.
In the abnormal code storage process shown in FIG. 13, it is first determined whether or not there is an empty area in the standby RAM of the memory 39 (S5000). If it is determined that there is a free area (S5000: YES), the process proceeds to S5010. On the other hand, when it is determined that there is no free space (S5000: NO), the following process is not executed and the abnormal code storage process is terminated.
[0074]
In S5010, it is determined whether or not the abnormal code to be stored is already stored. If already stored (S5010: YES), the process of S5020 is not executed, and the abnormal code storage process is terminated. On the other hand, if not yet stored (S5010: NO), the abnormal codes are sorted in ascending order and stored in the standby RAM of the memory 39 (S5020), and then the abnormal code storage process is terminated.
[0075]
In the abnormal code masking process shown in FIG. 14, it is first determined whether or not the abnormal code to be masked is “0000” in hexadecimal notation. This is a failure prevention process performed because “0000” is stored in the free space. If the mask target is “0000” (S6000: YES), the subsequent process is not executed and the abnormal code mask process is terminated. On the other hand, if the mask target is other than “0000” (S6000: NO), the process proceeds to S6010.
[0076]
In S6010, it is determined whether an abnormal code to be masked is stored. If the abnormal code to be masked is not stored (S6010: NO), the process of S6020 is not executed and the abnormal code mask process is terminated. On the other hand, if an abnormal code to be masked is stored (S6010: YES), the abnormal code is masked in S6020. In other words, a flag corresponding to the abnormal code is set so that the abnormal code cannot be read. Thereafter, the abnormal code mask process is terminated.
[0077]
The effect which the engine control unit 16 of a present Example exhibits by having comprised each object 100-400 as mentioned above is described below.
In the engine control unit 16 of the present embodiment, when the abnormality detection object 100 executes the abnormality detection process (S1) (see FIG. 5), the abnormality is not detected for 20 trips after the abnormality is detected once. (S1120 in FIG. 7: YES), a mask processing request for the abnormal time processing object 300 is issued (S1140). The abnormal process object 300 executes the abnormal process (S3) and issues an abnormal code mask request, whereby the abnormal code storage object 400 executes the abnormal code mask process (S5). In this process (S5), as shown in FIG. 14, an abnormal code corresponding to a diagnosis target is searched (S6010), and the abnormal code is masked for each diagnosis target (S6020). In other words, if the detected abnormality is temporary, Vs For each elephant, the stored abnormal code is masked at a relatively early timing such as 20 trips. As a result, it is possible to prevent an abnormal code from being read out at a repair shop, for example, and a part that does not need to be replaced from being replaced.
[0078]
Further, as described above with the water temperature sensor object 110 as an example, the three water temperature sensor objects 110a, 110b, and 110c of A to C are provided corresponding to a plurality of abnormality detection methods. Of the three water temperature sensor objects 110a, the mask process request is made, but only when the water temperature sensor objects 110b and 110c of both B and C are not detected abnormally (S1130 in FIG. 7). : YES), a mask processing request is issued (S1140). Therefore, the abnormality code is not masked when the abnormality is detected in the water temperature sensor objects 110b and 110c of B or C just because the abnormality detection is not performed in the A water temperature sensor object 110a. .
[0079]
Furthermore, the abnormality detection object 100 is configured to execute an abnormality detection process that depends on a diagnosis target, and in addition, an object that issues a mask process request by determining the abnormality detection results of the water temperature sensor objects 110b and 110c of B and C. The A water temperature sensor object 110a which is the abnormality detection object 100 is also used. Therefore, when the diagnosis target is changed, only the abnormality detection object 100, that is, the three water temperature sensor objects 110a to 110c of A to C, the intake air temperature sensor object 120, the throttle sensor object 130, etc. may be changed. The fixed object 200, the abnormal time processing object 300, and the abnormal code storage object 400 need not be changed at all. Therefore, reusability of the self-diagnosis program can be ensured.
[0080]
A configuration in which the three water temperature sensor objects 110a to 110c A to C refer to the abnormality detection results and issue a mask processing request to each other is also conceivable, but the water temperature sensor object 110a is a water temperature sensor for B and C. It is sufficient to issue a mask processing request with reference to the abnormality detection results of the objects 110b and 110c. The reason is that there is a relatively high possibility that an abnormality is detected in the A abnormality detection process executed by the A water temperature sensor object 110a as compared with the B or C abnormality detection process. This is because if the abnormality of the sensor 20 is not detected, the possibility that an abnormality is detected in the abnormality detection process for B or C is small. In this embodiment, since only the A water temperature sensor object 110a has a process for issuing a mask processing request (S1060, S1080, S1090, S1100 in FIG. 6, S1120, S1130, S1140 in FIG. 7), the self-diagnosis is performed. When the program is viewed in total, it is advantageous in that the processing program is simplified, and that the determination processing is reduced and the processing load is reduced.
[0081]
By the way, it can also be set as the structure which the abnormality detection object 100 performs each abnormality confirmation process performed with the abnormality confirmation object 200. FIG. However, since the abnormality confirmation process is a common process when an abnormality is detected, in this embodiment, the abnormality confirmation object 200 is executed. As a result, the configuration of the self-diagnosis program is simplified, and when the abnormality detection object 100 is changed by changing the diagnosis target, it is not necessary to create / change this common processing, so that further reusability can be achieved. it can.
[0082]
In this embodiment, the abnormality processing object 300 is provided. This abnormality processing object 300 issues not only an abnormal code storage / mask request, but also a request for turning on / off the warning lamp 25 (see FIG. 3), and the warning lamp 25 is turned on / off by an object not shown. . Since the configuration is provided with the abnormal-time processing object 300 that supervises such abnormal-time processing, in this embodiment, the overall configuration of the self-diagnosis program is easily understood and expandability is enhanced.
[0083]
As described above, the present invention is not limited to such an embodiment, and can be implemented in various forms without departing from the gist of the present invention.
For example, in the above embodiment, the abnormal code is masked so that it cannot be read out. In this case, since the abnormal code remains in the standby RAM of the memory 39, it cannot be read by a normal operation at a repair shop or the like, but the abnormal information can be read and referred to by performing a special operation. Is advantageous. On the other hand, it is possible to adopt a configuration in which the abnormal code stored in the standby RAM of the memory 39 is deleted.
[0084]
In the above embodiment, the abnormal code is stored in the standby RAM in the memory 39. However, any memory device may be used as long as the stored contents are not lost even when the ignition switch is turned off. I can't. For example, an abnormal code may be stored in the EEPROM.
[Brief description of the drawings]
FIG. 1 is a configuration diagram illustrating an engine control system according to an embodiment.
FIG. 2 is a block diagram illustrating a configuration of an engine control unit according to the embodiment.
FIG. 3 is an explanatory diagram conceptually showing the structure of a self-diagnosis program.
FIG. 4 is an MSC showing an abnormal code storage procedure;
FIG. 5 is an MSC showing an abnormal code masking procedure;
FIG. 6 is a flowchart showing the first half of an A abnormality detection process.
FIG. 7 is a flowchart showing the latter half of A abnormality detection processing;
FIG. 8 is a flowchart showing B abnormality detection processing;
FIG. 9 is a flowchart showing calculation target value update processing;
FIG. 10 is a flowchart showing the first half of C abnormality detection processing;
FIG. 11 is a flowchart showing the latter half of the C abnormality detection process.
FIG. 12 is a flowchart showing abnormality confirmation processing.
FIG. 13 is a flowchart showing an abnormal code storage process.
FIG. 14 is a flowchart showing an abnormal code mask process.
[Explanation of symbols]
11 ... Engine
12 ... Intake pipe
13 ... Air flow sensor
14 ... Intake air temperature sensor
15 ... Throttle valve
16 ... Engine control unit
17 ... Throttle sensor
18. Air-fuel ratio sensor
19 ... Battery
20 ... Water temperature sensor
21 ... Distributor
22a, 22b, 22c, 22d
... injector
23 ... Igniter
24 ... Test switch
25 ... Warning light
26 ... Ignition switch
27 ... Starter motor
28 ... Starter switch
32 ... Analog input circuit
33. Digital input circuit
34 ... A / D converter
35 ... Power supply circuit
36, 37, 38
... Output circuit
39 ... Memory
100: Anomaly detection object
110 ... Water temperature sensor object
110a ... A water temperature sensor object
110b ... B water temperature sensor object
110c ... C water temperature sensor object
120: Intake air temperature sensor object
130: Throttle sensor object
200: Anomaly confirmation object
300 ... Abnormal processing object
400: Abnormal code storage object

Claims (5)

ダイアグ対象の異常検出結果に基づき、当該ダイアグ対象に対応する異常時情報を記憶する自己診断機能を備え、
前記自己診断機能を実現するための自己診断プログラムを、前記ダイアグ対象毎に用いられて前記ダイアグ対象の異常を検出する処理を実行する異常検出オブジェクトと、前記ダイアグ対象に共通して用いられて前記異常検出オブジェクトによる異常検出結果に基づき前記異常時情報を記憶する処理を実行するオブジェクト群とで構成した車両用制御装置において、
同一のダイアグ対象の異常を検出する複数の手法が存在する場合には、当該複数の手法毎に前記異常検出オブジェクトを用意し、当該異常検出オブジェクトの少なくとも1つは、一度異常検出を行った後に所定の条件が満たされると、同一のダイアグ対象に係る他の異常検出オブジェクトにて異常検出がなされていない場合に限り、前記異常時情報を無効にするよう指示し、
一方、前記オブジェクト群は、前記異常検出オブジェクトから前記異常時情報の無効指示があると、前記異常時情報を無効にすること
を特徴とする自己診断機能を備えた車両用制御装置。
Based on the abnormality detection result of the diagnosis target, it has a self-diagnosis function that stores information at the time of abnormality corresponding to the diagnosis target,
A self-diagnostic program for realizing the self-diagnosis function is used for each diagnosis target and executes a process for detecting an abnormality of the diagnosis target. in the vehicle control apparatus configured in the object group that performs a treatment you store the abnormality information based on the abnormality detection result by the abnormality detection object,
When there are a plurality of methods for detecting an abnormality of the same diagnosis target, the abnormality detection object is prepared for each of the plurality of methods, and at least one of the abnormality detection objects is subjected to abnormality detection once. When a predetermined condition is satisfied, an instruction is given to invalidate the abnormality information only when no abnormality is detected in another abnormality detection object related to the same diagnosis target,
On the other hand, the control unit for a vehicle having a self-diagnosis function, wherein the object group invalidates the abnormality time information when an instruction to invalidate the abnormality time information is given from the abnormality detection object.
請求項1に記載の車両用制御装置において、
前記異常時情報の無効指示を行う異常検出オブジェクトは、同一のダイアグ対象に係る異常検出オブジェクトの中で、相対的に異常を検出する可能性の高い手法にて異常検出を行うオブジェクトであること
を特徴とする自己診断機能を備えた車両用制御装置。
The vehicle control device according to claim 1,
The abnormality detection object for instructing invalidity information of the abnormality is an object that performs abnormality detection by a method having a relatively high possibility of detecting abnormality among abnormality detection objects related to the same diagnosis target. A vehicle control device having a characteristic self-diagnosis function.
請求項1又は2に記載の車両用制御装置において、
前記オブジェクト群は少なくとも、
前記異常検出オブジェクトによる異常検出結果に基づき実質的な異常であるか否かを判断する異常確定オブジェクトと、
該異常確定オブジェクトにて異常判断がなされると、前記異常時情報の記憶要求を行う異常時処理オブジェクトと、
該異常時処理オブジェクトによる前記異常時情報の記憶要求に従い、前記異常時情報を記憶する異常時情報記憶オブジェクトとを含むこと
を特徴とする自己診断機能を備えた車両用制御装置。
The vehicle control device according to claim 1 or 2,
The object group is at least:
An abnormality confirmation object for determining whether or not there is a substantial abnormality based on an abnormality detection result by the abnormality detection object;
When an abnormality determination is made in the abnormality confirmation object, an abnormality processing object that makes a storage request for the abnormality information,
A vehicle control apparatus having a self-diagnosis function, comprising: an abnormality information storage object that stores the abnormality information according to the abnormality information storage request by the abnormality processing object.
請求項3に記載の車両用制御装置において、
前記異常時処理オブジェクトは、前記異常検出オブジェクトから前記異常時情報の無効指示があると、前記異常時情報の無効要求を行い、
前記異常時情報記憶オブジェクトは、前記異常時処理オブジェクトによる前記異常時情報の無効要求に従い、前記異常時情報を無効にすること
を特徴とする自己診断機能を備えた車両用制御装置。
The vehicle control device according to claim 3,
When there is an invalid instruction for the abnormal time information from the abnormal detection object, the abnormal time processing object makes an invalid request for the abnormal time information,
The vehicle control device having a self-diagnosis function, wherein the abnormal time information storage object invalidates the abnormal time information in accordance with a request for invalidation of the abnormal time information by the abnormal time processing object.
請求項1〜4のいずれかに記載の車両用制御装置の前記自己診断プログラムを記録したコンピュータ読み取り可能な記録媒体。The computer-readable recording medium which recorded the said self-diagnosis program of the control apparatus for vehicles in any one of Claims 1-4.
JP2000057356A 2000-03-02 2000-03-02 Vehicle control apparatus and recording medium having self-diagnosis function Expired - Fee Related JP4265071B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2000057356A JP4265071B2 (en) 2000-03-02 2000-03-02 Vehicle control apparatus and recording medium having self-diagnosis function

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2000057356A JP4265071B2 (en) 2000-03-02 2000-03-02 Vehicle control apparatus and recording medium having self-diagnosis function

Publications (2)

Publication Number Publication Date
JP2001248494A JP2001248494A (en) 2001-09-14
JP4265071B2 true JP4265071B2 (en) 2009-05-20

Family

ID=18578165

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000057356A Expired - Fee Related JP4265071B2 (en) 2000-03-02 2000-03-02 Vehicle control apparatus and recording medium having self-diagnosis function

Country Status (1)

Country Link
JP (1) JP4265071B2 (en)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5272507B2 (en) * 2008-05-12 2013-08-28 株式会社デンソー Electronic control unit
JP6972875B2 (en) * 2017-10-05 2021-11-24 株式会社デンソー Electronic control device

Also Published As

Publication number Publication date
JP2001248494A (en) 2001-09-14

Similar Documents

Publication Publication Date Title
JP4491967B2 (en) VEHICLE CONTROL DEVICE AND RECORDING MEDIUM HAVING SELF-DIAGNOSTIC FUNCTION
JP3692932B2 (en) VEHICLE CONTROL DEVICE AND RECORDING MEDIUM HAVING INFORMATION PROVIDING FUNCTION
JP2666229B2 (en) Abnormality diagnosis device for internal combustion engine
JPS61261145A (en) Trouble diagnoser for vehicles
US6615119B1 (en) Object-oriented diagnostic apparatus for vehicle controller
JP4080115B2 (en) Engine fault diagnosis system
JPH0711435B2 (en) Method for determining sensor abnormality of internal combustion engine
JPH02502392A (en) Control device for internal combustion engines
US8240193B2 (en) Method for operating a sensor
JP5285458B2 (en) Control apparatus and control method
JP5296568B2 (en) Control apparatus and control method
JP4449220B2 (en) VEHICLE CONTROL DEVICE AND RECORDING MEDIUM HAVING SELF-DIAGNOSTIC FUNCTION
JP4265071B2 (en) Vehicle control apparatus and recording medium having self-diagnosis function
JPH06201496A (en) Device for judging abnormality of atmospheric sensor
US6216084B1 (en) Memory check apparatus and method for checking data upon retrieval from memory
US6559647B1 (en) Diagnosing spark plugs malfunction in a dual plug engine
JPH07502316A (en) Electronic engine control device with operation inspection function for ignition final stage
US20020052678A1 (en) Vehicular control device having self-diagnosis function and self-diagnosis program for implementing the same
JPH10506449A (en) Protection system for a supercharged internal combustion engine
JP3846398B2 (en) Vehicle control device
US20220003182A1 (en) Method and system for diagnosing misfire of engine
JP2008215113A (en) Abnormality diagnostic device of internal combustion engine control system
KR100412694B1 (en) Method of checking mis-combination of o2 sensor
JPH09112318A (en) Controller for diesel engine
JPS6155612B2 (en)

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20060419

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080916

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20081114

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20090127

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20090209

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120227

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130227

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140227

Year of fee payment: 5

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees