失火検知機能を有する複数気筒エンジンに失火が発生した場合の故障部位を、エンジン制御装置と通信する外部診断機により絞り込むエンジンの故障診断方法であって、失火発生気筒を示す故障コードを前記エンジン制御装置から前記外部診断機に読み出す故障コード読出しステップと、前記失火発生気筒における失火発生の連続性の有無で分類した失火パターンを検出する失火パターン検出ステップと、当該失火パターンに対応させて前記故障部位を絞り込む故障部位絞り込みステップとを有することを特徴とするエンジンの故障診断方法。請求項1記載のエンジンの故障診断方法において、前記外部診断機は、横軸を時間とし縦軸を失火回数の累積値とするグラフを前記失火パターンとして表示することを特徴とするエンジンの故障診断方法。請求項1又は2記載のエンジンの故障診断方法において、前記失火パターン検出ステップでは、前記外部診断機からの指令に応じて前記エンジンを再始動させて前記失火発生気筒での失火の再現を試み、失火が再現しない場合には、前記故障コードが生成された時点で前記エンジン制御装置が記憶した、前記失火発生気筒における失火発生の連続的なデータに基づいて前記失火パターンを検出することを特徴とするエンジンの故障診断方法。請求項1~3のいずれか1項に記載のエンジンの故障診断方法において、前記失火パターン検出ステップでは、前記外部診断機からの指令に応じて前記エンジンをアイドリング状態にさせて前記失火発生気筒での失火の再現を試み、失火が再現しない場合には、前記故障コードが生成された時点で前記エンジン制御装置が記憶した前記エンジンの作動状況を再現させて前記失火発生気筒において失火を再現させ、前記失火パターンを検出することを特徴とするエンジンの故障診断方法。請求項1~4のいずれか1項に記載のエンジンの故障診断方法において、前記外部診断機からの指令に応じて前記エンジンを再始動させて前記失火発生気筒での失火が再現する場合、各気筒における爆発を中止させつつクランク軸を回転させるクランキング回転状態を発生させ、前記クランキング回転状態において、前記クランク軸の角速度の変動値を検出し、前記変動値が所定値以下の気筒を圧縮圧力が不足している圧縮圧力不足気筒と判定すると共に、無負荷状態で、各気筒に供給する燃料の空燃比を順次変更して前記各気筒の失火発生の程度で判別される空燃比不良の発生を判定することで前記故障部位をさらに絞り込むことを特徴とするエンジンの故障診断方法。請求項1~5のいずれか1項に記載のエンジンの故障診断方法において、前記失火パターンは、単気筒及び複数気筒の連続失火、単気筒のランダム失火並びに複数気筒のランダム失火を含むことを特徴とするエンジンの故障診断方法。複数の気筒を有するエンジンにおける失火の発生を検出し、失火発生気筒を示す故障コードを記憶するエンジン制御装置と、前記失火を発生させている故障部位を絞り込む外部診断機とを備えるエンジンの故障診断システムであって、前記外部診断機は、前記エンジン制御装置から前記故障コードを取得し、当該故障コードに応じた診断作業を案内し、前記失火発生気筒における失火発生の連続性の有無で分類した失火パターンを検出し、前記失火パターンに対応させて前記故障部位を絞り込んで表示することを特徴とするエンジンの故障診断システム。請求項7記載のエンジンの故障診断システムにおいて、前記外部診断機は、横軸を時間とし縦軸を失火回数の累積値とするグラフを前記失火パターンとして表示することを特徴とするエンジンの故障診断システム。請求項7又は8記載のエンジンの故障診断システムにおいて、前記外部診断機は、前記エンジンを再始動させて前記失火発生気筒での失火の再現を試み、失火が再現しない場合には、前記故障コードが生成された時点で前記エンジン制御装置が記憶した、前記失火発生気筒における失火発生の連続的なデータに基づいて前記失火パターンを検出することを特徴とするエンジンの故障診断システム。請求項7~9のいずれか1項に記載のエンジンの故障診断システムにおいて、前記外部診断機は、前記エンジンをアイドリング状態にさせて前記失火発生気筒での失火の再現を試み、失火が再現しない場合には、前記故障コードが生成された時点で前記エンジン制御装置が記憶した前記エンジンの作動状況を再現させて前記失火発生気筒において失火を再現させ、前記失火パターンを検出することを特徴とするエンジンの故障診断システム。請求項7~10のいずれか1項に記載のエンジンの故障診断システムにおいて、前記外部診断機は、前記エンジンを再始動させることで前記失火発生気筒での失火が再現する場合、各気筒における爆発を中止させつつクランク軸を回転させるクランキング回転状態を発生させ、前記クランキング回転状態において、前記クランク軸の角速度の変動値を検出し、前記変動値が所定値以下の気筒を圧縮圧力が不足している圧縮圧力不足気筒と判定すると共に、無負荷状態で、各気筒に供給する燃料の空燃比を順次変更して前記各気筒の失火発生の程度で判別される空燃比不良の発生を判定することで前記故障部位をさらに絞り込むことを特徴とするエンジンの故障診断システム。請求項7~11のいずれか1項に記載のエンジンの故障診断システムにおいて、前記失火パターンは、単気筒及び複数気筒の連続失火、単気筒のランダム失火並びに複数気筒のランダム失火を含むことを特徴とするエンジンの故障診断システム。複数の気筒を有するエンジンにおいて失火を発生させている故障部位を絞り込むエンジンの故障診断機であって、失火発生気筒における失火発生の連続データを直接的又は間接的に車両側から取得し、失火発生の連続性の有無で分類した失火パターンを前記連続データに基づいて検出し、前記失火パターンに対応させて前記故障部位を絞り込むことを特徴とするエンジンの故障診断機。特許文献1のように各部の作動状態を確認するテストファンクションテストは、失火の原因となり得る部位に対して1つ1つ実行する必要があるため、大変手間がかかり作業効率が悪い。加えて、実際に失火が再現しない又は再現し難い場合、大変診断が難しいという問題がある。この発明は、このような問題を考慮してなされたものであり、失火を発生させている故障部位を特定又は確認するための工数を大幅に削減することが可能なエンジンの故障診断方法、故障診断システム及び故障診断機を提供することを目的とする。この発明に係るエンジンの故障診断方法は、複数の気筒を有するエンジンに失火を発生させている故障部位を、エンジン制御装置と通信する外部診断機により絞り込むものであって、失火発生気筒を示す故障コードを前記エンジン制御装置から前記外部診断機に読み出す故障コード読出しステップと、前記失火発生気筒における失火発生の連続性の有無で分類した失火パターンを検出する失火パターン検出ステップと、当該失火パターンに対応させて前記故障部位を絞り込む故障部位絞り込みステップとを有することを特徴とする。この発明によれば、実際に発生している又は過去に発生した失火について、失火発生気筒における失火発生の連続性の有無で分類した失火パターンを検出し、当該失火パターンに対応させて故障部位を絞り込む。このため、故障部位を特定又は確認するための工数を大幅に削減することが可能になる。前記外部診断機は、横軸を時間とし縦軸を失火回数の累積値とするグラフを前記失火パターンとして表示してもよい。これにより、作業者は、当該グラフを目視確認することで失火パターンを簡単に判別することが可能となる。このため、作業者は、実際に起こっている失火発生の状況を容易に把握することができると共に、失火発生の連続性の有無を簡易に分類することが可能となる。従って、作業者は、実際に行われている診断作業すなわち、失火発生の連続性の有無の判定及びその結果当該連続性の有無を容易に把握することが可能となり、作業能率を高めることができると共に、経験の浅い作業者にとっての学習効果を高め、作業者のスキルアップを図ることができる。前記失火パターン検出ステップでは、前記外部診断機からの指令に応じて前記エンジンを再始動させて前記失火発生気筒での失火の再現を試み、失火が再現しない場合には、前記故障コードが生成された時点で前記エンジン制御装置が記憶した、前記失火発生気筒における失火発生の連続的なデータに基づいて前記失火パターンを検出してもよい。これにより、エンジンの再始動により失火が再現しない場合であっても、故障コードの生成時点における失火発生の連続的なデータを利用して故障部位を絞り込むことが可能となる。前記失火パターン検出ステップでは、前記外部診断機からの指令に応じて前記エンジンをアイドリング状態にさせて前記失火発生気筒での失火の再現を試み、失火が再現しない場合には、前記故障コードが生成された時点で前記エンジン制御装置が記憶した前記エンジンの作動状況を再現させて前記失火発生気筒において失火を再現させ、前記失火パターンを検出してもよい。これにより、アイドリング状態では失火が再現し難い場合でも積極的に失火状態を再現させて故障部位を絞り込むことが可能となる。前記外部診断機からの指令に応じて前記エンジンを再始動させて前記失火発生気筒での失火が再現する場合、各気筒における爆発を中止させつつクランク軸を回転させるクランキング回転状態を発生させ、前記クランキング回転状態において、前記クランク軸の角速度の変動値を検出し、前記変動値が所定値以下の気筒を圧縮圧力が不足している圧縮圧力不足気筒と判定すると共に、無負荷状態で、各気筒に供給する燃料の空燃比を順次変更して前記各気筒の失火発生の程度で判別される空燃比不良の発生を判定することで前記故障部位をさらに絞り込んでもよい。これにより、失火パターンに対応させて絞り込んだ故障部位を、さらに、圧縮圧力不足気筒の判定と、空燃比不良の発生の判定とでかなりの限定的な箇所にまで絞り込むことが可能となる。従って、故障部位を特定又は確認するための工数を一層削減することが可能になる。前記失火パターンは、例えば、単気筒及び複数気筒の連続失火、単気筒のランダム失火並びに複数気筒のランダム失火とすることができる。これにより、失火パターンを簡易に区分しつつ、故障部位を効率的に絞り込むことが可能となる。この発明に係るエンジンの故障診断システムは、複数の気筒を有するエンジンにおける失火の発生を検出し、失火発生気筒を示す故障コードを記憶するエンジン制御装置と、前記失火を発生させている故障部位を絞り込む外部診断機とを備えるものであって、前記外部診断機は、前記エンジン制御装置から前記故障コードを取得し、当該故障コードに応じた診断作業を案内し、前記失火発生気筒における失火発生の連続性の有無で分類した失火パターンを検出し、前記失火パターンに対応させて前記故障部位を絞り込んで表示することを特徴とする。この発明に係るエンジンの故障診断機は、複数の気筒を有するエンジンにおいて失火を発生させている故障部位を絞り込むものであって、失火発生気筒における失火発生の累積データを直接的又は間接的に車両側から取得し、前記失火発生の累積データにおける失火発生の連続性の有無で分類した失火パターンを前記連続的なデータに基づいて検出し、前記失火パターンに対応させて前記故障部位を絞り込むことを特徴とする。この発明によれば、実際に発生している又は過去に発生した失火の症状として、失火発生気筒における失火発生の連続性の有無で分類した失火パターンを検出し、当該失火パターンに対応させて故障部位を絞り込む。このため、故障部位を特定又は確認するための工数を大幅に削減することが可能になる。A.一実施形態1.構成1全体構成図1は、この発明の一実施形態に係る故障診断システム10以下システム10ともいう。の概略的な構成を示すブロック図である。システム10は、診断対象としてのエンジン16を搭載した車両12と、エンジン16の診断を行う外部診断機14以下診断機14ともいう。とを有する。2車両12a全体構成車両12は、エンジン16に加え、エンジン16からの排ガスを浄化する排ガスフィルタ18以下フィルタ18ともいう。と、エンジン16の動作を制御するエンジン電子制御装置20以下エンジンECU20又はECU20という。と、イグニションスイッチ22以下IGSW22という。と、アクセルペダル24と、アクセルペダル24の操作量θapを検出する操作量センサ26と、警告灯28とを有する。bエンジン16図2には、エンジン16内部の概略的な構成が示されている。図2に示すように、エンジン16は、いわゆる直列4気筒エンジンである。エンジン16は、吸気量センサ30、スロットル弁32、開度センサ34、第1~第4気筒36a~36d以下気筒36と総称する。と、吸気バルブ38と、排気バルブ40と、燃料噴射弁42と、点火プラグ44と、空燃比センサ46と、クランク軸48と、ピストン50と、スタータモータ52と、クランク角センサ54と、上死点センサ56と、温度センサ58とを有する。吸気バルブ38、排気バルブ40及び点火プラグ44は、各気筒36a~36dの燃焼室60に面して配置されている。吸気量センサ30は、スロットル弁32の開度θth[°]に応じてエンジン16に吸入される空気量以下吸気量Qafという。を検出し、エンジンECU20に出力する。スロットル弁32は、インテークマニホールド62内に配置されている。開度センサ34は、スロットル弁32の開度θthを検出し、エンジンECU20に出力する。燃料噴射弁42及び点火プラグ44は、各気筒36a~36dの燃焼室60に面して配置されている。空燃比センサ46は、図示しない酸素センサを含み、エキゾーストマニホールド64内に配置されている。空燃比センサ46は、エンジン16全体の空燃比以下全体空燃比Raf_totalという。を検出し、エンジンECU20に出力する。スタータモータ52は、図示しないバッテリから供給される電力に基づきクランク軸48を駆動する。クランク角センサ54は、クランク軸48の回転角以下クランク角Acという。[°]を検出し、エンジンECU20に出力する。上死点センサ56は、ピストン50の上死点を検出し、エンジンECU20に出力する。温度センサ58は、図示しないエンジン冷却水の温度Tw[°C]を検出し、ECU20に出力する。温度センサ58が検出する温度は、図示しないエンジンオイルの温度To[°C]であってもよい。c排ガスフィルタ18排ガスフィルタ18は、エキゾーストマニホールド64の下流側排気側に配置され、エンジン16からの排ガスを浄化して放出する。本実施形態におけるフィルタ18は、排ガス浄化用の三元触媒を含む。dエンジンECU20エンジンECU20は、エンジン16の動作を制御するものであり、図1に示すように、入出力部70、演算部72及び記憶部74を有する。本実施形態におけるエンジンECU20は、例えば、エンジン回転数算出機能、失火発生回数カウント機能、スロットル弁制御機能、燃料噴射弁制御機能及び点火プラグ制御機能を実行する。エンジン回転数算出機能は、各上死点センサ56からの出力に基づいてエンジン16の回転数エンジン回転数NE[rpm]を算出する機能であり、本実施形態では、各上死点センサ56と組み合わせることにより、エンジン回転数センサを構成する。代わりに、エンジンECU20とは独立のエンジン回転数センサを設け、その出力をエンジンECU20に送信してもよい。失火発生回数カウント機能は、クランク角センサ54からの出力に基づいて各気筒36a~36dそれぞれにおける失火発生の有無を判別し、失火が発生したと判別された場合の各気筒36a~36dそれぞれにおける失火発生回数をカウントする機能であり、本実施形態では、クランク角センサ54と組み合わせることにより、失火カウンタを構成する。なお、失火発生の有無の判別は、例えば、所定クランク角での燃焼圧力を検出し、当該燃焼圧力が所定値以下である場合に失火が発生したと判定する、又は、所定クランク角でのクランク角速度が所定値以下である場合に失火が発生したと判定する等の公知の手段を用いることができる。スロットル弁制御機能は、アクセルペダル24の操作量θapなどに基づいてスロットル弁32の開度θthを制御することにより、エンジン16の出力を制御する機能である。燃料噴射弁制御機能は、アクセルペダル24の操作量θapなどに基づいて燃料噴射弁42からの燃料噴射量Qfi目標値を制御することにより、エンジン16の出力を制御する機能である。点火プラグ制御機能は、アクセルペダル24の操作量θapなどに基づいて各点火プラグ44の点火タイミングを制御することにより、エンジン16の出力を制御する機能である。3外部診断機14外部診断機14は、エンジン16の故障を診断するものであり、図1に示すように、車両内データの入出力用として車両12に設けられているデータリンクコネクタ80を介してエンジンECU20に接続するためのケーブル82と、ケーブル82が連結される入出力部84と、図示しないキーボードやタッチパッド等からなる操作部86と、各部の制御及び各気筒36a~36dの異常判定を行う演算部88と、演算部88で用いる制御プログラムや異常診断プログラムなどの各種プログラムやデータを記憶する記憶部90と、各種の表示を行う表示部92とを有する。外部診断機14のハードウェア構成としては、例えば、市販のノート型パーソナルコンピュータを用いることができる。外部診断機14を用いて各気筒36a~36dの異常診断を行う際、ケーブル82の一端を入出力部84に接続した状態で、車両12の図示しないインスツルメントパネルに設けられたデータリンクコネクタ80にケーブル82の他端を接続する。その後、操作部86に対する作業者ユーザからの操作に応じて、外部診断機14は、各気筒36a~36dの異常診断を行う。その際、外部診断機14は、エンジンECU20を介してエンジン16を作動させる。外部診断機14が行う各気筒36a~36dの異常診断の詳細は後述する。2.失火発生時の診断1失火発生時の処理図3は、車両12の通常走行時エンジン16の通常運転時においてエンジン16に失火が発生した場合の処理のフローチャートである。ステップS1において、エンジンECU20は、失火カウンタを用いてエンジン16における失火の発生を検出する。ステップS2において、エンジンECU20は、失火の発生及び当該失火が発生した気筒36a~36dを示す故障コードと、失火発生時のデータを記憶部74に記憶する。第1気筒36aに失火が発生した場合、故障コードとしてP0301が記憶される。第2気筒36bに失火が発生した場合、故障コードとしてP0302が記憶される。第3気筒36cに失火が発生した場合、故障コードとしてP0303が記憶される。第4気筒36dに失火が発生した場合、故障コードとしてP0304が記憶される。気筒36a~36dにおいて複数の気筒に失火が発生した場合、故障コードとしてP0300が記憶される。失火発生時のデータは、エンジンECU20が、エンジン16に失火が発生したと判定した直前15秒間のデータを0.2秒間隔で取得したものである。当該データには、例えば、車速V[km/h]、エンジン回転数NE[rpm]、エンジン16の冷却水の温度Tw[°C]、アクセルペダル24の操作量θap、所定期間後述する測定周期Pmにおける各気筒36a~36dでの失火発生回数が含まれる。ステップS3において、エンジンECU20は、失火の発生を通知する警告灯28を点灯させる等の警告を行って、エンジン16に異常失火が発生した旨をユーザに通知する。当該警告を受けたユーザは、例えば、車両12を修理工場等に持ち込む。2失火の発生に伴うエンジン16の診断時の処理図4及び図5は、失火の発生に伴うエンジン16の診断時の処理を示す第1及び第2フローチャートである。ステップS11において、車両12の警告灯28の点灯を確認した作業者テクニシャンは、ケーブル82及びデータリンクコネクタ80を介して外部診断機14をエンジンECU20に接続する。ステップS12において、外部診断機14の演算部88は、作業者の操作に応じて記憶部90から診断プログラムを読み出し、起動する。ステップS13において、作業者は、外部診断機14の操作部86を操作して、エンジンECU20から外部診断機14に故障コードDTC及び故障発生時のデータを読み出す。ステップS14において、外部診断機14は、読み出した故障コードに対応した診断作業の案内画面を表示する。図6は、エンジン16の診断時において表示される作業案内画面100の各領域の位置等を示す図である。図6に示すように、作業案内画面100は、主として、ツールバー領域102、全体作業表示領域104及び具体的作業表示領域106から構成される。ツールバー領域102は、保存、印刷等のアイコン等を含むツールバー図示せずを表示する領域である。全体作業表示領域104は、ステップS13で読み出された故障コードに応じた全体作業フローチャート110図7を表示する領域である。具体的作業表示領域106は、全体作業フローチャート110中で選択された作業タイトル作業項目に応じた具体的作業内容を表示する領域である。図7には、全体作業表示領域104の表示の例が示されている。図7に示すように、全体作業フローチャート110は、スタートボックス112と、第1~第3作業タイトルボックス114a~114c以下作業タイトルボックス114と総称する。と、複数の垂直矢印116と、複数の水平矢印118と、第1~第4点検結果ボックス120a~120d以下点検結果ボックス120と総称する。と、第1~第3スキップボックス122a~122c以下スキップボックス122と総称する。と、第1スクロールバー124及び第2スクロールバー126図6とを有する。スタートボックス112は、故障コード又は症状を表示する欄であり、本実施形態は、故障コードDTCがP0300、P0301、P0302、P0303、P0304=エンジン16で失火発生の場合である。作業タイトルボックス114は、作業タイトル作業項目を表示する欄である。ここにいう作業タイトル作業項目には、診断作業項目及び検証作業項目が含まれる。診断作業項目は、故障部位を特定するための作業項目であり、検証作業項目は、特定した故障部位を修理又は交換するための作業項目である。図7では、5角形状の第1作業タイトルボックス114aが、全体としての作業項目を示し、矩形状の第2及び第3作業タイトルボックス114b、114cが個別の作業項目を示す。垂直矢印116及び水平矢印118は、次に進む作業タイトルボックス114、スキップボックス122などを示す。点検結果ボックス120は、点検の結果{OK再現又は正常、NG再現せず又は異常など}を表示する欄であり、背景及び枠が透明であるため、図7中では点検結果ボックス120内部の文字のみが示されている。スキップボックス122は、ある作業タイトルボックス114などから別の作業タイトルボックス114などへのスキップを示す欄である。第1スクロールバー124図6は、全体作業表示領域104中の表示を上下方向にスクロールさせるバーである。すなわち、図6の全体作業表示領域104において、全体作業フローチャート110の全体が表示されない場合、作業者は、第1スクロールバー124を用いて全体作業表示領域104中の表示を上下させることにより、全体作業フローチャート110の全体を見ることが可能である。第2スクロールバー126図6は、具体的作業表示領域106中の表示を上下方向にスクロールさせるバーである。すなわち、図6の具体的作業表示領域106において、具体的作業内容の全体が表示されない場合、作業者は、第2スクロールバー126を用いて具体的作業内容例えば、図8の表示を上下させることにより、全体作業フローチャート110の全体を見ることが可能である。なお、上下方向にスクロールさせる第1スクロールバー124及び第2スクロールバー126に加え、横方向にスクロールさせるスクロールバーを設けてもよい。さらに、対象となっている作業タイトルボックス114行うべき作業項目については、枠を太くすることで、当該作業タイトルボックス114を強調表示する。例えば、第2作業タイトルボックス114b1.再現テストが対象となっている場合、第2作業タイトルボックス114bの枠を太くすることで強調表示する。或いは、作業案内画面100全体をカラーで表示する場合、作業タイトルボックス114の背景色を変化させて例えば、青色からオレンジ色に変化させて、当該作業タイトルボックス114を強調表示することもできる。図4に戻り、ステップS15において、作業者は、読み出した故障コードが失火の発生を示すものであるか否かを判定する。故障コードが失火の発生を示すものでない場合S15:NO、ステップS16において、作業者は、故障コードに応じた診断作業を実行する。故障コードが失火の発生を示すものである場合S15:YES、ステップS17において、外部診断機14は、エンジン16をアイドリング状態にして全ての気筒36a~36dについて失火再現テストを行う。ステップS17の失火再現テストでは、エンジン16のアイドリング状態のときに、失火発生を示す警告灯28が点灯すると、失火が再現したと判定される。作業者は、全体作業フロー110のスキップボックス122を選択することにより失火再現テストの結果を入力する。外部診断機14は、当該入力に応じた作業を案内する。或いは、作業者による入力に代えて、外部診断機14自身が、失火の再現の有無を判定してもよい。この場合、外部診断機14は、エンジン16をアイドリング状態にして各気筒36a~36dについて失火カウンタで測定周期Pmにおける失火回数の累積値Tmf_cyl_nを計測する。Tmf_cyl_nにおけるnは、各気筒36a~36dの番号を示し、例えば、累積値Tmf_cyl_1は、第1気筒36aの累積値を示す。そして、少なくとも1つの気筒の累積値Tmf_cyl_nが、失火の発生を判定するための閾値を超えた場合に失火が再現したと判定する。アイドリング状態で失火が再現した場合S18:YES、ステップS22に進む。アイドリング状態で失火が再現しなかった場合S18:NO、ステップS19において、外部診断機14は、故障発生時の再現状態で全ての気筒36a~36dについて失火再現テストを行う。ステップS19の失火再現テストでは、アイドリング状態が、失火発生時の再現状態に変わった他は、同じ方法で行う。すなわち、外部診断機14は、故障発生時の状況を再現して失火発生のデータを取得するよう要求するメッセージと、ステップS13で読み出した故障発生時のデータとを具体的作業表示領域106に表示する。当該故障発生時のデータには、例えば、車速V、エンジン回転数NE、エンジン冷却水の温度Tw及びアクセルペダル24の操作量θapが含まれる。作業者は、具体的作業表示領域106の表示内容に基づき、故障発生時の状況を再現する。この状態で失火が再現生した場合、失火発生を示す警告灯28が点灯する。作業者は、警告灯28の点灯状態に基づいて失火が再現したか否かを判定し、全体作業フローチャート110のスキップボックス122を選択することにより失火再現テストの結果を入力する。或いは、ステップS17と同様、外部診断機14自身が、失火の再現の有無を判定してもよい。失火発生時の再現状態で失火が再現した場合S20:YES、ステップS22に進む。失火発生時の再現状態で失火が再現しなかった場合S20:NO、ステップS21において、外部診断機14は、失火に関する過去の故障データを表示部92に一覧表示すると共に、一覧表示の中から選択された過去の故障データの詳細を表示する。これにより、作業者は、過去の故障データに基づいて故障部位を特定可能となる。なお、失火に関する過去の故障データは、記憶部90に予め記憶されている。ステップS22において、外部診断機14は、各気筒36a~36dの失火パターンを表示部92に表示する。図8は、具体的作業表示領域106に表示する複数の失火パターン並びにこれらに対応する失火状況及び故障可能性部位の例を示す図である。図8では、複数の失火パターンとして、単一の気筒が連続的に失火している失火パターン1単気筒-連続失火と、複数の気筒が連続的に失火している失火パターン2複数気筒-連続失火と、単一の気筒がランダム不規則に失火する失火パターン3単気筒-ランダム失火と、複数の気筒がランダムに失火する失火パターン4複数気筒-ランダム失火とが示されている。また、失火パターン1単気筒-連続失火に関する失火している状況失火症状の欄には、失火気筒が毎回失火し、連続的に失火カウンタがアップしている。リニアにアップしている及び1つの気筒だけ失火カウンタがアップする。との記載と、横軸を時間軸計測時間とし縦軸を失火回数の累積値Tmf_cyl_n失火カウンタ[回数]とする失火パターン1単気筒-連続失火のグラフが表示される。また、失火パターン1に関する故障可能性部位の欄では、失火パターン1に伴って故障が発生している可能性のある部位として、イグニッションIGコイル、スパークプラグ、コンプレッション圧縮不良、タペットクリアランスバルブクリアランス及びインジェクタが表示される。失火パターン2複数気筒-連続失火に関する失火している状況失火症状の欄には、失火気筒が毎回失火し、連続的に失火カウンタがアップしている。リニアにアップしている及び複数の気筒の失火カウンタがアップする。との記載と、横軸を時間軸とし縦軸を失火回数の累積値Tmf_cyl_nとする失火パターン2複数気筒-連続失火のグラフが表示される。また、失火パターン2に関する故障可能性部位の欄では、失火パターン2に伴って故障が発生している可能性のある部位として、IGコイル、スパークプラグ、コンプレッション、タペットクリアランス及びインジェクタが表示される。失火パターン3単気筒-ランダム失火に関する失火している状況失火症状の欄には、失火気筒がランダムに不規則に失火したり、正常になったりと不規則に失火カウンタがアップする。、正常なときと失火カウントがアップするときとがある。及び1つの気筒だけ失火カウンタがアップする。との記載と、横軸を時間軸とし縦軸を失火回数の累積値Tmf_cyl_nとする失火パターン3単気筒-連続失火のグラフが表示される。また、失火パターン3に関する故障可能性部位の欄では、失火パターン3に伴って故障が発生している可能性のある部位として、イグニッションIGコイル、クランクパルサ、クランクセンサ、VTEC可変バルブタイミングリフト機構、コンプレッション及びタペットクリアランスが表示される。失火パターン4複数気筒-ランダム失火に関する失火している状況失火症状の欄には、失火気筒がランダムに不規則に失火したり、正常になったりと不規則に失火カウンタがアップする。、正常なときと失火カウントがアップするときとがある。及び全気筒や複数気筒の失火カウンタがアップする。との記載と、横軸を時間軸とし縦軸を失火回数の累積値Tmf_cyl_nとする失火パターン4複数気筒-連続失火のグラフが表示される。また、失火パターン4に関する故障可能性部位の欄では、失火パターン4に伴って故障が発生している可能性のある部位として、クランクパルサ、クランクセンサ、EGRバルブ、VTEC、コンプレッション、タペットクリアランス、燃料室、燃料系燃圧、ポンプ、フィルタ及びエンジン本体が表示される。なお、図8の表示は、作業者が失火パターンを判定するための指標であり、これとは別に、各気筒36a~36dに関する今回の失火回数の累積値Tmf_cyl_nのグラフ図8と同様のもの。図示せずが具体的作業表示領域106に表示される。今回の失火回数の累積値Tmf_cyl_nに関し、エンジン16がアイドリング状態で失火が再現した場合S18:YES、その際に取得されたデータが用いられ、エンジン16がアイドリング状態で失火が再現しなかった場合S18:NO、失火発生時のデータが用いられる。加えて、具体的作業表示領域106には、失火パターンの選択枝とが表示される。作業者は、図8の表示及び今回の失火回数の累積値Tmf_cyl_nのグラフに基づいて、失火パターンの選択枝を操作部86を用いて選択する。これにより、失火パターンが選択される。図5のステップS23において、外部診断機14は、圧縮圧力異常判定テストを実行する。圧縮圧力異常判定テストは、各気筒36a~36dにおける圧縮圧力の異常を判定するテストであり、機械系の故障が発生しているか否かを判定することができる詳細は後述する。。ステップS24において、外部診断機14は、空燃比不良診断テストを実行する。空燃比不良診断テストは、各気筒36a~36dにおける空燃比の不良を診断するテストであり、空燃比が過度に薄くなるリーン故障と空燃比が過度に濃くなるリッチ故障とを判定することができる詳細は後述する。。ステップS25において、外部診断機14は、失火再現テストS17、S19、圧縮圧力異常判定テストS23及び空燃比不良診断テストS24の結果に基づいて、故障が発生している可能性のある部位以下故障可能性部位という。を絞り込み、各テストの結果と共に表示する。図9は、具体的作業表示領域106に表示する各テストの結果と故障可能性部位の例を示す。図9では、複数の失火パターン1~4と、圧縮圧力異常判定テストの結果と、空燃比不良診断テストの結果とに応じて故障可能性部位を表示する。具体的には、失火パターンが1単気筒-連続失火又は2複数気筒-連続失火であり、圧縮圧力異常判定テストの結果が不合格機械系の故障ありである場合、故障可能性部位としてコンプレッション及びタペットクリアランスズレ大が表示される。失火パターンが1又は2であり、圧縮圧力異常判定テストの結果が合格機械系の故障なしであり、空燃比不良診断テストの結果がリーン故障である場合、故障可能性部位としてIGコイル、スパークプラグ及びインジェクタが表示される。失火パターンが1又は2であり、圧縮圧力異常判定テストの結果が合格機械系の故障なしであり、空燃比不良診断テストの結果がリッチ故障である場合、故障可能性部位としてインジェクタが表示される。また、失火パターンが3単気筒-連続失火であり、圧縮圧力異常判定テストの結果が不合格機械系の故障ありである場合、故障可能性部位としてコンプレッション及びタペットクリアランスズレ大が表示される。失火パターンが3であり、圧縮圧力異常判定テストの結果が合格機械系の故障なしであり、空燃比不良診断テストの結果がリーン故障である場合、故障可能性部位としてIGコイル、タペットクリアランスズレ小及びインジェクタが表示される。失火パターンが3であり、圧縮圧力異常判定テストの結果が合格であり、空燃比不良診断テストの結果がリッチ故障である場合、故障可能性部位としてインジェクタが表示される。失火パターンが3であり、圧縮圧力異常判定テスト及び空燃比不良診断テストの結果が合格である場合、故障可能性部位としてIGコイル、クランクパルサ、クランクセンサ及びVTECが表示される。さらに、失火パターンが4複数気筒-連続失火であり、圧縮圧力異常判定テストの結果が不合格機械系の故障ありである場合、故障可能性部位としてコンプレッション及びタペットクリアランスズレ大が表示される。失火パターンが4であり、圧縮圧力異常判定テストの結果が合格機械系の故障なしであり、空燃比不良診断テストの結果がリーン故障である場合、故障可能性部位としてタペットクリアランスズレ小、燃料室、燃料系燃圧、ポンプ、フィルタ、EGR開き故障及びEGRリークが表示される。失火パターンが4であり、圧縮圧力異常判定テストの結果が合格であり、空燃比不良診断テストの結果がリッチ故障である場合、故障可能性部位としてインジェクタが表示される。失火パターンが4であり、圧縮圧力異常判定テスト及び空燃比不良診断テストの結果が合格である場合、故障可能性部位としてクランクパルサ、クランクセンサ、VTEC切換え遅れ及びEGR追従遅れが表示される。図5に戻り、ステップS26において、作業者は、各故障可能性部位の故障を判定する。例えば、図9における具体的な故障可能性部位コンプレッション、IGコイルなどを、これらの具体的作業内容のデータとリンクさせておき、作業者が、いずれかの選択枝故障可能性部位を操作部86を用いて入力する。これに応じて、外部診断機14は、入力された選択枝故障可能性部位に応じた全体作業フローチャート110を表示すると共に、全体作業フローチャート110中で選択されている作業タイトルボックス114に応じた具体的作業内容を具体的作業表示領域106に表示する。そして、作業者は、これらの表示を参照して各故障可能性部位において実際に故障が発生しているか否かを確認し、故障が発生している場合に修理作業を行う。次に、本実施形態での圧縮圧力異常判定テスト及び空燃比不良診断テストについて説明する。3圧縮圧力異常判定テスト上記のように、圧縮圧力異常判定テストは、各気筒36a~36dにおける圧縮圧力の異常を判定するテストであり、各気筒36a~36dにおける機械系の故障が発生しているか否かを判定することができる。圧縮圧力異常判定テストでは、各気筒36a~36dにおける爆発を中止させつつクランク軸48を回転させるクランキング回転状態を発生させ、クランク軸48の角加速度変動Δω[rad/s]に基づいて圧縮圧力に異常が生じている気筒36a~36d圧縮圧力異常気筒を判定する。本実施形態のクランキング回転状態では、燃料供給系燃料噴射弁42等及び点火系点火プラグ44等の両方を停止する。図10には、クランキング回転時における各気筒36a~36dのピストン50の動作と、ピストン50の動作に伴ってクランク軸48に生じる負荷L1の大きさとの関係の例が、正常に動作しているときと圧縮圧力の不足が発生しているときとに分けてモデル的に示されている。ここでの負荷L1は、エンジン回転数NE[rpm]の低下、すなわち、クランク角速度ω[rad/s]の低下を示す。また、クランキング回転時には各気筒36a~36dにおける爆発を中止させるため、図10における爆発工程は、実際には爆発を伴うものではない。換言すると、ここでの爆発工程とは、通常運転時における爆発工程とクランク角Acの範囲を等しくする工程を指すことに留意されたい。図10の例では、正常に動作している場合と、圧縮異常が発生している場合とを比較して示しており、負荷L1の差は、吸入工程、爆発工程及び排気工程と比較して、圧縮工程が特に大きい。これは、気筒36a~36dのいずれかの箇所において気体の漏れを生じている場合、圧縮負荷が小さくなるためである。そして、複数の気筒36a~36dで構成されたエンジン16においては、それぞれの気筒36a~36dの工程の位相をずらすことで規則性を持たせた角速度変動Δωとなるように設定されているので、正常動作では安定したクランキング回転が得られるように構成されている。ところが、いずれかの気筒36a~36dで圧縮異常が発生すると、上記のように圧縮負荷がかからず角速度変動Δωに乱れが発生する。本実施形態ではこの点に着目し、圧縮工程における負荷L1の差を直接用いるのではなく、爆発工程における角速度変動Δωを用いる。これは、圧縮圧力が不足している気筒36a~36dを含むクランキング回転では、圧縮圧力不足気筒の圧縮工程ではクランク角速度ωが上昇するが、その反動で次工程爆発工程では角速度ωの低下が起こることを利用したものである。これにより、爆発工程における角速度ωの低下変動に基づいて圧縮圧力の不足の有無を判定することが可能である。従って、失火判定のためのロジックに角加速度変動Δωを用いていた場合、当該ロジックを圧縮圧力不足気筒の判定のためのロジックとして利用することが可能となる。図11には、クランキング回転状態において、各気筒36a~36dが正常に動作している場合及び第1気筒36に失火が発生している場合におけるクランク角Ac及びクランク角速度ωと、各気筒36a~36dにおける工程吸入工程、圧縮工程、爆発工程及び排気工程との関係の例がモデル的に示されている。図11において、実線130は、各気筒36a~36dが正常に動作している場合におけるクランク角Ac及びクランク角速度ωの関係を示す。破線132は、第1気筒36aに失火が発生している場合におけるクランク角Ac及びクランク角速度ωの関係を示す。図11の例では、第1気筒36aの圧縮工程の後の爆発行程での回転に乱れが発生して角速度ωが急減している。図12には、図11の例に対応するクランク角Ac及び角速度変動Δωと、各気筒36a~36dの爆発工程との関係が示されている。図12において、実線140は、各気筒36a~36dが正常に動作している場合におけるクランク角Ac及び角速度変動Δωの関係を示す。破線142は、第1気筒36aに失火が発生している場合におけるクランク角Ac及び角速度変動Δωの関係を示す。図11の例では、圧縮圧力不良が発生している状態をわかりやすく説明するために、第1気筒36aの圧縮工程において圧縮抜け圧縮圧力がゼロの状態が発生した場合を示しており、図12の例では、第1気筒36aの爆発工程において角速度変動Δωが減少している。これは、第1気筒36aの圧縮工程において圧縮負荷がかからずその分だけ角速度変動Δωが増加し、その反動で第1気筒36aの爆発工程において角速度変動Δωが減少するためである。このようにして、爆発工程ごとの比較で第1気筒36aにおいて圧縮圧力の不足が発生していることを判定することができる。より具体的には、外部診断機14は、取得した角速度変動Δωに基づいて個別平均値AVEr、全体平均値AVEt及び割合R1を算出する。個別平均値AVErは、各気筒36a~36dそれぞれについての爆発工程における角速度変動Δωの平均値である。全体平均値AVEtは、全気筒36a~36dの個別平均値AVErの平均値である。割合R1は、個別平均値AVEr/全体平均値AVEtである。外部診断機14は、先に読み出した故障コード及び前記割合R1に基づいて各気筒36a~36dについて機械的故障の有無を判定し、判定結果を表示部92に表示する。すなわち、外部診断機14は、各気筒36a~36dについての割合R1に基づき失火発生気筒における圧縮圧力不足の有無を判定する。具体的には、割合R1が、圧縮圧力不足の有無を判定するための閾値圧縮圧力不足判定閾値TH2を下回る場合、ECU20は、当該失火発生気筒に圧縮圧力不足が発生していると判定する。本実施形態において、閾値TH2は100である。図13には、気筒36a~36dのうち第1気筒36aが異常で、第2~第4気筒36b~36dが正常である場合において、第1気筒36aのタペットクリアランスTCが正常である場合例えば、TC=0.23mm、タペットクリアランスTCのずれが小である場合例えば、TC=0.13mm、タペットクリアランスTCのずれが大である場合例えば、TC=0.05mm、及び圧縮圧力がゼロである場合それぞれにおける個別平均値AVEの例が示されている。すなわち、実線150は、タペットクリアランスTCが正常である場合例えば、TC=0.23mmの個別平均値AVErを示す。破線152は、タペットクリアランスTCのずれが小さい場合例えば、TC=0.13mmの個別平均値AVErを示す。一点鎖線154は、タペットクリアランスTCのずれが大きい場合例えば、TC=0.05mmの個別平均値AVErを示す。二点鎖線156は、圧縮圧力がゼロである場合の個別平均値AVErを示す。図14には、図13の各気筒36a~36dの個別平均値AVErに基づく全体平均値AVEtに対する個別平均値AVErの割合R1=AVEe/AVEtを示す図である。図15は、図14の一部を拡大して表示した図である。図14及び図15の実線160は第1気筒36aに対応し、破線162は第2気筒36bに対応し、一点鎖線164は第3気筒36cに対応し、二点鎖線166は第4気筒36dに対応する。以上のような方法により、外部診断機14は、各気筒36a~36dにおける圧縮圧力の異常を判定し、機械系の故障が発生しているか否かを判定する。4空燃比不良診断テスト上記のように、空燃比不良診断テストは、各気筒36a~36dにおける空燃比の不良を診断するテストであり、空燃比が過度に薄くなるリーン故障と空燃比が過度に濃くなるリッチ故障とを判定することができる。a本実施形態における空燃比制御まず、本実施形態における空燃比制御について説明しておく。本実施形態では、エンジン16を作動させる際に一般的に通常空燃比制御を用いる。通常空燃比制御は、エンジンECU20の燃料噴射弁制御機能で用いる制御であり、燃料噴射基本制御と空燃比フィードバック制御以下空燃比FB制御という。とを組み合わせたものである。本実施形態における燃料噴射基本制御は、各気筒36a~36dそれぞれに供給する混合気における燃料ここでは、ガソリンと空気の比以下気筒空燃比Raf_1~Raf_4又はこれらを総称して気筒空燃比Raf_n若しくは空燃比Raf_nという。を理論空燃比燃料:空気=1:14.7とする制御である。より具体的には、燃料噴射基本制御では、吸気量センサ30が検出する吸気量Qafと燃料噴射弁42の燃料噴射量Qfiの目標値との関係をマップ化して事前に設定しておき、検出された吸気量Qafに対応する燃料噴射量Qfiの目標値に応じて燃料噴射弁42を制御する。但し、各気筒36a~36dの吸気バルブ38及び排気バルブ40の作動タイミングタペットクリアランスTCのばらつきや燃料噴射弁42の経年変化など種々の要因のため、必ずしも各気筒36a~36dの空燃比Raf_n及びエンジン16の全体空燃比Raf_totalは、理論空燃比と等しくならない。本実施形態における空燃比FB制御は、全体空燃比Raf_totalが理論空燃比と等しくなるようにフィードバックする制御である。具体的には、空燃比センサ46の検出値が理論空燃比でない場合、当該検出値が理論空燃比となるように、全ての燃料噴射弁42の燃料噴射量Qfiを増減させることにより、理論空燃比を実現する。この際、補正値Pcを用いて燃料噴射量Qfiを補正する。なお、補正値Pcは、後述する各気筒36a~36dの燃料噴射率Rfi_n[]目標値の補正値であるが、それ以外のもの例えば、燃料噴射量Qfi目標値又は全体空燃比Raf_totalについてのものであってもよい。なお、本実施形態では、1つの空燃比センサ46がエキゾーストマニホールド64の下流側に設けられるのみであるため、各気筒36a~36dの空燃比Raf_nは検出されない。従って、燃料噴射基本制御では、エンジン16の全体空燃比Raf_totalを理論空燃比に収束させることはできるが、各気筒36a~36dの空燃比Raf_nを理論空燃比に収束させることはできない。b空燃比不良診断テスト図16は、空燃比不良診断テストの実行時におけるエンジン回転数NEと、各気筒36a~36dの空燃比気筒空燃比Raf_nと、各気筒36a~36dの失火回数の累積値Tmf_cyl_n[回]との関係を示すタイムチャートである。図16では、時点t1から時点t2までがエンジン16の暖機運転期間であり、時点t3から時点t4までが第1気筒36aを対象とするテスト期間であり、時点t4から時点t5までが第2気筒36bを対象とするテスト期間であり、時点t5から時点t6までが第3気筒36cを対象とするテスト期間であり、時点t6から時点t7までが第4気筒36dを対象とするテスト期間である。図16に示すように、空燃比不良診断テストでは、診断対象となる気筒36a~36d以下対象気筒という。について気筒空燃比Raf_nを段階的に変更しながら気筒36a~36dを1つずつ作動させる。そして、この際の累積値Tmf_cyl_nを検出する。累積値Tmf_cyl_nは、測定周期Pm[sec]における対象気筒の失火発生回数の累積値である。また、Tmf_cyl_nにおけるnは、各気筒36a~36dの番号を示し、例えば、累積値Tmf_cyl_1は、第1気筒36aの累積値を示す。対象気筒以外の気筒36a~36dについては燃料噴射基本制御を行う。測定周期Pmは、補正量Cfi_nを切り替える周期すなわち、燃料噴射率Rfi_n及び気筒空燃比Raf_nを切り替える周期である図16参照。このため、累積値Tmf_cyl_nは、補正量Cfi_nを切り替える毎の対象気筒の失火発生回数の累積値である。気筒空燃比Raf_nに異常がなければ、気筒空燃比Raf_nが0のときに累積値Tmf_cyl_nはゼロであり、0から離れていくに連れて累積値Tmf_cyl_nが大きくなる。気筒空燃比Raf_nと累積値Tmf_cyl_nとの関係を気筒36a~36d毎に確認することにより、各気筒36a~36dに空燃比不良が発生しているか否かを判定することができる。具体的には、気筒空燃比Raf_nが0であるときよりも気筒空燃比Raf_nが負の値例えば、-20のときの方が失火回数の累積値Tmf_cyl_nが小さい場合、当該気筒36a~36dは、燃料が濃く噴射され過ぎるリッチ故障であるといえる。一方、気筒空燃比Raf_nが0であるとき既に失火が発生しており例えば、失火回数の累積値Tmf_cyl_nが所定の閾値を上回り、気筒空燃比Raf_nが負の値例えば、-20のときの方が失火回数の累積値Tmf_cyl_nが大きい場合、当該気筒36a~36dが、燃料が薄く噴射され過ぎるリーン故障であるといえる。従って、外部診断機14は、気筒空燃比Raf_nと失火回数の累積値Tmf_cyl_nとの関係に基づいて各気筒36a~36dのリッチ故障とリーン故障を判定することができる。3.本実施形態の効果以上のように、本実施形態によれば、実際に発生している又は過去に発生した失火についての失火パターンを検出し、当該失火パターンに対応させて故障部位を絞り込む図8及び図9。このため、故障部位を特定又は確認するための工数を大幅に削減することが可能になる。本実施形態において、外部診断機14は、横軸を時間とし縦軸を失火回数の累積値Tmf_cyl_nとするグラフを失火パターンとして表示する図8。これにより、作業者は、当該グラフを目視確認することで失火パターンを簡単に判別することが可能となる。このため、作業者は、実際に起こっている失火発生の状況を容易に把握することができると共に、失火発生の連続性の有無を簡易に分類することが可能となる。従って、作業者は、実際に行われている診断作業すなわち、失火発生の連続性の有無の判定及びその結果当該連続性の有無を容易に把握することが可能となり、作業能率を高めることができると共に、経験の浅い作業者にとっての学習効果を高め、作業者のスキルアップを図ることができる。本実施形態では、外部診断機14からの指令に応じてエンジン16を再始動させて失火発生気筒での失火の再現を試み図4のS19、失火が再現しない場合S20:NOには、失火発生時のデータに基づいて失火パターンを検出するS21。これにより、エンジン16の再始動により失火が再現しない場合であっても、故障コードの生成時点における失火発生の連続的なデータを利用して故障部位を絞り込むことが可能となる。本実施形態では、外部診断機14からの指令に応じてエンジン16をアイドリング状態にさせて失火発生気筒での失火の再現を試み図4のS17、失火が再現しない場合S18:NOには、失火発生時のデータに基づいて失火発生時の状況を再現させて失火発生気筒において失火を再現させ、失火パターンを検出するS19。これにより、アイドリング状態では失火が再現し難い場合でも積極的に失火状態を再現させて故障部位を絞り込むことが可能となる。本実施形態では、外部診断機14からの指令に応じてエンジン16を再始動させて失火発生気筒での失火が再現する場合S18:YES又はS20:YES、圧縮圧力異常判定テストにより圧縮圧力不足気筒を判定すると共に、空燃比不良診断テストにより空燃比不良の発生を判定することで故障部位をさらに絞り込む。これにより、失火パターンに対応させて絞り込んだ故障部位を、さらに、圧縮圧力不足気筒の判定と、空燃比不良の発生の判定とでかなりの限定的な箇所にまで絞り込むことが可能となる。従って、故障部位を特定又は確認するための工数を一層削減することが可能になる。本実施形態では、失火パターンは、単気筒及び複数気筒の連続失火、単気筒のランダム失火並びに複数気筒のランダム失火を含む図8。これにより、失火パターンを簡易に区分しつつ、故障部位を効率的に絞り込むことが可能となる。B.変形例なお、この発明は、上記実施形態に限らず、この明細書の記載内容に基づき、種々の構成を採り得ることはもちろんである。例えば、以下に示す構成を採ることができる。1.外部診断機14上記実施形態では、外部診断機14を車両12のエンジン16の診断に用いたが、これに限らず、内燃機関を有するその他の装置例えば、船舶等の移動体に用いることもできる。また、上記実施形態において、外部診断機14は、車両12の外部からエンジンECU20と通信するものとしたが、車両12の内部に搭載してもよい。換言すると、エンジンECU20に外部診断機14の機能を持たせることも可能である。2.エンジン16上記実施形態では、エンジン16は、直列4気筒エンジンであったが、気筒36の配置や数は、これに限らない。例えば、エンジン16は、V型6気筒エンジンであってもよい。この場合は、6気筒の一連の工程吸入→圧縮→爆発→排気がクランク軸48の2回転720°に対応する。従って、クランク角Acが120°=720°/6毎に各気筒の爆発工程を対応させる。3.空燃比センサ46上記実施形態では、エンジン16全体で1つの空燃比センサ46を設けたが、これに限らず、空燃比センサ46を複数の気筒36毎に設けてもよい。4.失火再現テスト上記実施形態では、2種類の失火再現テストアイドリング状態及び失火発生時の状況再現を実行可能としたが、これに限らず、いずれか一方のみ実行してもよい。上記実施形態では、失火パターンとして単気筒-連続失火、複数気筒-連続失火、単気筒-ランダム失火及び複数気筒-ランダム失火を設定したが、これに限らない。例えば、連続失火及びランダム失火の2種類のみ、並びに連続失火、単気筒-ランダム失火及び複数気筒-ランダム失火の3種類のみとしてもよい。上記実施形態では、失火パターンの判定を作業者が行ったが、外部診断機14が自動的に行ってもよい。その場合、例えば、失火不発生とランダム失火を区別するための第1失火閾値と、ランダム失火と連続失火を区別するための第2失火閾値とを事前に設定しておく。そして、各気筒36a~36dに関する失火回数の累積値Tmf_cyl_nと第1失火閾値及び第2失火閾値とを比較することにより、各気筒36a~36dについて失火不発生、ランダム失火又は連続失火のいずれであるかを判定することができる。上記実施形態では、作業者が失火パターンを判定するための指標として図8の表示と、今回の失火回数の累積値Tmf_cyl_nのグラフの両方を具体的作業表示領域106に表示したが、今回の失火回数の累積値Tmf_cyl_nのグラフのみであってもよい。上記実施形態では、外部診断機14は、失火発生のデータを車両12側エンジンECU20から直接取得したが、これに限らず、何らかの中継装置を介して間接的に取得することができる。当該中継装置としては、エンジンECU20と有線通信し、外部診断機14と無線通信する無線中継器を用いることができる。或いは、無線通信機能を有するカーナビゲーション装置又は携帯端末スマートフォンなどを介して外部診断機14が失火発生のデータを取得することもできる。5.圧縮圧力異常判定テスト上記実施形態では、クランキング回転状態の際、燃料供給系燃料噴射弁42等及び点火系点火プラグ44等の両方を停止したが、気筒36a~36dにおける爆発を発生させなければよく、例えば、燃料供給系のみを停止させてもよい。上記実施形態では、爆発工程における角速度変動Δωを用いて圧縮圧力異常を判定したが、これに限らず、例えば、圧縮工程における角速度変動Δωを用いて圧縮圧力異常を判定してもよい。6.空燃比不良診断テスト上記実施形態では、外部診断機14の演算部88は、エンジンECU20を介して気筒空燃比Raf_n燃料噴射率Rfi_n及び補正値Cfi_nの切替えを行ったが、これに限らず、演算部88から燃料噴射弁42を直接制御して気筒空燃比Raf_n燃料噴射率Rfi_n及び補正値Cfi_nの切替えを行ってもよい。或いは、エンジンECU20に外部診断機14の機能を持たせることにより、エンジンECU20外部診断機14が燃料噴射弁42を直接制御して気筒空燃比Raf_n燃料噴射率Rfi_n及び補正値Cfi_nの切替えを行うこともできる。上記実施形態では、補正値Cfi_nを減少させることで各気筒36の空燃比Raf_nを理論空燃比からリーン側に減少させていったが図16、これに限らない。例えば、補正値Cfi_nを正から負に段階的に切り替えることで、気筒空燃比Raf_nをリッチ側からリーン側に段階的に切り替えることができる。或いは、補正値Cfi_nを負から正に段階的に切り替えることで、気筒空燃比Raf_nをリーン側からリッチ側に段階的に切り替えることもできる。これらの場合、補正値Cfi_nは、±0、-10、-20、-30、-40の組合せのみではなく、適宜変更することができる。上記実施形態では、対象気筒以外の気筒36a~36dについて燃料噴射基本制御を行いつつ、対象気筒について空燃比Raf_n補正値Cfi_nを徐々に変化させた。これに限らず、対象気筒以外の気筒36a~36dについては、燃料噴射基本制御を停止し、燃料噴射及び点火を中止することもできる。7.その他上記実施形態では、失火再現テスト、圧縮圧力異常判定テスト及び空燃比不良診断テストの結果を組み合わせて、故障可能性部位を絞り込んだが、これに限られない。例えば、失火再現テストに加えていずれか1つのみを用いて故障可能性部位を絞り込むことも可能である。