クランク軸に対するカム軸の回転位相を制御することにより前記カム軸が開閉する弁の開閉タイミングを調整するバルブタイミング調整装置を用いたエンジンに適用され、前記クランク軸の回転に伴い所定の角度間隔で発生する信号列中に所定の角度位置を表わす基準位置信号を有するクランク角信号と、前記カム軸の回転に伴って所定の角度位置で発生するカム角信号とに基づいて気筒判別を行い、前記クランク角信号に基づいて1燃焼サイクルにおけるエンジン回転位置をカウントするエンジン制御装置において、前記クランク角信号の異常を判定する異常判定手段と、前記クランク角信号が異常であると前記異常判定手段が判定すると、前記バルブタイミング調整装置を制御し前記クランク軸に対して前記カム軸を最遅角位置に回転させる遅角制御手段と、前記クランク角信号が異常であると前記異常判定手段が判定する直前の前記カム軸の前記最遅角位置からの進角量と、前記カム軸が進角位置から前記最遅角位置に向けて回転するときの遅角変化量とに基づいて所定の疑似角度間隔で疑似クランク角信号を生成する信号生成手段と、前記クランク角信号が異常であると前記異常判定手段が判定する直前の気筒判別情報および前記進角量に基づいて前記疑似クランク角信号のカウント値を設定し、前記疑似クランク角信号に基づいて前記エンジン回転位置をカウントする回転位置設定手段と、を備えることを特徴とするエンジン制御装置。前記遅角制御手段は、前記クランク角信号が異常であると前記異常判定手段が判定すると、前記バルブタイミング調整装置を制御して前記カム軸を前記最遅角位置に保持させることを特徴とする請求項1に記載のエンジン制御装置。前記信号生成手段は、前記クランク角信号が異常であると前記異常判定手段が判定する直前における前記カム軸の前記進角量に基づいて前記疑似クランク角信号の初回の生成タイミングを決定することを特徴とする請求項1または2に記載のエンジン制御装置。前記信号生成手段は、前記カム角信号の角度間隔を時間換算して前記疑似クランク角信号を生成する時間間隔を算出することを特徴とする請求項1から3のいずれか一項に記載のエンジン制御装置。前記信号生成手段は、前記カム角信号を検出する毎に、前記カム軸の前記進角量と前記遅角変化量とに基づいて今回と次回との前記カム角信号の角度間隔を算出し、算出した前記カム角信号の角度間隔に基づいて前記疑似クランク角信号を生成することを特徴とする請求項1から4のいずれか一項に記載のエンジン制御装置。前記回転位置設定手段は、前記カム角信号を検出する毎に、前記カム角信号を検出するときの前記気筒判別情報と前記進角量とに基づいて、前記疑似クランク角信号のカウント値を設定することを特徴とする請求項1から5のいずれか一項に記載のエンジン制御装置。特許文献1、2では、クランク軸に対するカム軸の回転位相が固定であるから、カム角信号が発生する角度位置は変化しない。したがって、クランク角信号が異常になっても、カム角信号の発生間隔に基づいて生成した疑似クランク角信号とカム角信号の発生角度位置とに基づいてエンジン回転位置を判定できる。これにより、該当する気筒で燃料を燃焼させることが可能である。しかしながら、クランク軸に対するカム軸の回転位相を制御することによりカム軸が開閉する弁の開閉タイミングを調整するバルブタイミング調整装置を用いるエンジンの場合、カム角信号の発生角度位置は、クランク軸に対するカム軸の回転位相の基準位置である最遅角位置から進角側に可変に制御されている。したがって、クランク角信号の異常時にカム角信号の発生間隔から疑似クランク角信号を生成し、カム角信号の発生位置を基準にして疑似クランク角信号をカウントしてエンジン回転位置を判定すると、カム軸が進角している場合にエンジン回転位置がずれるという問題がある。本発明は、上記課題を解決するためになされたものであり、バルブタイミング調整装置を用いたエンジンに適用され、クランク角信号の異常時にカム角信号に基づいてエンジン回転位置を判定するエンジン制御装置を提供することを目的とする。請求項1から6に記載の発明によると、バルブタイミング調整装置を用いたエンジンに適用され、クランク軸の回転に伴い所定の角度間隔で発生する信号列中に所定の角度位置を表わす基準位置信号を有するクランク角信号と、カム軸の回転に伴って所定の角度位置で発生するカム角信号とに基づいて気筒判別を行い、クランク角信号に基づいて1燃焼サイクルにおけるエンジン回転位置をカウントするエンジン制御装置において、遅角制御手段は、クランク角信号が異常であると異常判定手段が判定すると、バルブタイミング調整装置を制御しクランク軸に対してカム軸を最遅角位置に回転させる。尚、1燃焼サイクルは、吸入行程、圧縮行程、膨張行程、排気行程からなり、クランク軸の2回転、カム軸の1回転の角度に相当する。そして、エンジン回転位置は、1燃焼サイクルの回転角度におけるエンジンの回転位置を表わしており、エンジン回転位置に基づいて各気筒の行程の位置を判定できる。このように、クランク角信号が異常になり、クランク角信号とカム角信号とに基づいてクランク軸に対するカム軸の回転位相を制御できない場合に、クランク軸に対してカム軸を基準位置である最遅角位置に回転させることにより、クランク軸に対するカム軸の回転位相を特定できる。そして、信号生成手段は、クランク角信号が異常であると異常判定手段が判定する直前におけるカム軸の最遅角位置からの進角量と、カム軸が進角位置から最遅角位置に向けて回転するときの遅角変化量とに基づいて所定の疑似角度間隔で疑似クランク角信号を生成する。このように、クランク角信号が異常であると判定される直前のカム軸の進角量と遅角変化量とに基づいてカム軸が最遅角位置に達するタイミングを判定できるとともにカム角信号の間隔を算出できるので、カム角信号の間隔において所定の疑似角度間隔の疑似クランク角信号を生成する回数を決定できる。そして、回転位置設定手段は、クランク角信号が異常であると異常判定手段が判定する直前の気筒判別情報と進角量とに基づいて疑似クランク角信号のカウント値を設定し、疑似クランク信号に基づいてエンジン回転位置をカウントする。このように、クランク角信号が異常になる直前の気筒判別情報および進角量に基づいて、エンジン回転位置を表わす疑似クランク角信号のカウント値を設定し、疑似クランク角信号に基づいてエンジン回転位置をカウントするので、カム軸が最遅角位置に回転するまでの間において、クランク軸に対するカム軸の回転位相を考慮してエンジン回転位置を判定できる。これにより、クランク角信号が異常になっても、疑似クランク角信号に基づいて1燃焼サイクルにおけるエンジン回転位置を判定できる。その結果、カム軸が最遅角位置に達するまでの間に、該当する気筒で1燃焼サイクルにおける適切なタイミングで速やかに燃料を噴射して燃焼させることができる。したがって、クランク角信号が異常の場合にもエンジンの運転を継続し車両を走行させることができる。請求項2に記載の発明によると、遅角制御手段は、クランク角信号が異常であると異常判定手段が判定すると、バルブタイミング調整装置を制御してカム軸を最遅角位置に保持させる。クランク軸に対するカム軸の回転位相を最遅角位置に保持することにより、クランク軸に対するカム軸の回転位相を最遅角位置に固定させることができる。これにより、バルブタイミング調整装置が吸気弁のバルブタイミングを調整する場合には、吸気弁と排気弁との開弁期間のオーバーラップを防止し、エンジンの運転を継続できる。請求項3に記載の発明によると、信号生成手段は、クランク角信号が異常であると異常判定手段が判定する直前におけるカム軸の進角量に基づいて疑似クランク角信号の初回の生成タイミングを決定する。これにより、例えば、カム軸の最遅角位置からの進角量に疑似クランク角信号を生成する疑似角度間隔に満たない端数が生じている場合、この端数分待ち合わせて疑似クランク角信号の生成を開始すれば、疑似クランク角信号の生成タイミングを最遅角位置に一致させることができる。その結果、クランク軸に対するカム軸の回転位相の基準となる最遅角位置を基準としてエンジン回転位置をカウントできる。請求項4に記載の発明によると、信号生成手段は、カム角信号の角度間隔を時間換算して疑似クランク角信号を生成する時間間隔を算出する。これにより、カム角信号の時間間隔に基づき、カム角信号の角度間隔に対する比率に応じて、所定の疑似角度間隔になるように疑似クランク角信号を生成する時間間隔を算出できる。請求項5に記載の発明によると、信号生成手段は、カム角信号を検出する毎に、カム軸の進角量と遅角変化量とに基づいて今回と次回とのカム角信号の角度間隔を算出し、算出したカム角信号の角度間隔に基づいて疑似クランク角信号を生成する。これにより、カム軸が最遅角位置に回転している途中のカム角信号の角度間隔が変化するときにおいて、今回と次回とのカム角信号の角度間隔に基づいて疑似クランク角信号を生成できる。請求項6に記載の発明によると、回転位置設定手段は、カム角信号を検出する毎に、カム角信号を検出するときの気筒判別情報と進角量とに基づいて、疑似クランク角信号のカウント値を設定する。これにより、カム軸が最遅角位置に向けて回転している途中でカム角信号を検出しクランク軸に対してカム軸が進角していても、そのときの気筒判別情報と進角量とに基づいて、エンジン回転位置を再設定できる。尚、本発明に備わる複数の手段の各機能は、構成自体で機能が特定されるハードウェア資源、プログラムにより機能が特定されるハードウェア資源、またはそれらの組合せにより実現される。また、これら複数の手段の各機能は、各々が物理的に互いに独立したハードウェア資源で実現されるものに限定されない。以下、本発明の実施形態を図に基づいて説明する。図1に、車両に搭載される本実施形態の電子制御装置ECU:ElectronicControlUnit10を示す。ECU10は、例えば、3気筒のガソリンエンジン用のインジェクタの噴射制御、点火プラグの点火制御を行うエンジンECUであり、CPU12、ROM14、RAM16、SRAMスタンバイRAM18、EEPROM20、入力回路30および出力回路32等から構成されている。さらにECU10は、カム軸50図2参照が開閉する弁として吸気弁の開閉タイミングを可変に調整するバルブタイミング調整装置以下、VVT装置とも言う。40図2参照を制御する。ECU10は、ROM14に記憶されている制御プログラムをCPU12が実行することにより、各種センサが検出するアクセル開度、スロットル開度、車速、クランク角、カム角、イグニションスイッチ等の各種信号を入力回路30を介して入力する。そして、これらセンサの検出信号に基づいて、図示しないインジェクタの噴射制御、点火プラグの点火制御、VVT装置40の位相制御等の制御信号を出力回路32を介して出力する。図2に示すように、VVT装置40は、クランク軸のトルクをカム軸50に伝達するトルク伝達系に設置され、クランク軸に対するカム軸50の回転位相を進角側または遅角側に制御する。ECU10は、OCVOilControlValve60に供給する電流値をデューティ制御することにより、油路100を介してVVT装置40の遅角側および進角側の各油圧室と油供給側または油排出側との連通状態を制御し、クランク軸に対するカム軸50の回転位相を制御する。ECU10は、クランク軸に対するカム軸50の回転位相を制御することにより、カム軸50に設けられたカム52が吸気弁を開閉する開閉タイミングを調整する。ECU10の制御プログラムが作業用に使用し、イグニションスイッチがオフされると電力供給が遮断されて記憶データが消失するRAM16と異なり、イグニションスイッチのオン、オフに関わらず、SRAM18にはバッテリから電力が供給される。したがって、SRAM18は、バッテリの交換等により電力供給が遮断されない限り、記憶しているデータを保存する記憶部である。EEPROM20は、書き換え可能な不揮発性の記憶部である。バッテリから電力供給が遮断されても、EEPROM20に記憶されているデータは保存される。ECU10は、イグニションスイッチをオフして車両の運転を停止しても記憶する必要のあるデータを、SRAM18またはEEPROM20に記憶する。気筒判別ECU10は、クランク軸の回転に伴って所定の角度間隔で発生する信号列中に所定の角度位置を表わす基準位置信号を有するクランク角信号と、カム軸50の回転に伴って所定の角度位置で発生するカム角信号とに基づいて、気筒判別を行い、吸入行程、圧縮行程、膨張行程、排気行程からなる1燃焼サイクルにおけるエンジン回転位置をクランク角信号に基づいて判定する。クランク角信号は、クランク軸に固定されたクランクロータの外周に所定の角度間隔例えば10°で形成された歯を、クランク軸の回転に伴って図示しないクランク角センサが検出することにより発生する。尚、クランクロータの外周に形成される歯の間隔は10°に限るものではなく、10°より小さくてもよいし、大きくてもよい。クランクロータの歯列の途中には、1個の歯を挟んで2個の歯が2箇所で連続して欠損した欠歯の連欠け200図3参照と、2個の歯が1箇所で欠損した欠歯の単欠け202図3参照とが、所定の角度位置として180°反対側に形成されている。連欠け200、単欠け202を検出するときのクランク角信号は、気筒判別および1燃焼サイクルにおけるエンジン回転位置の設定を行うときの基準位置信号になる。ECU10は、クランク角信号に基づいて1回転中におけるクランク軸の角度位置を検出するとともに、単位時間当たりのクランク角信号のパルス数を算出することにより、エンジン回転数を検出する。カム軸50は、クランク軸に対して1/2の比率で回転するので、クランク軸が2回転720°CAする間に1回転する。カム角信号は、カム軸50に固定されたカムの外周に3気筒エンジンに対応して、所定の角度位置として240°CAカムロータの角度としては120°間隔で形成されたカム歯210図3参照を、カム軸50の回転に伴って図示しないカム角センサが検出することにより発生する。図3に、実線で示すカム歯210の位置は、クランク軸に対してカム軸50が最遅角位置にあることを表わし、点線で示すカム歯210の位置は、VVT装置40によりクランク軸に対してカム軸50が進角していることを表わしている。クランク軸に対してカム軸50の回転位相が最遅角位置に調整されている場合、本実施形態では図3に示すように、カム歯210の30°CA後に各気筒の圧縮TDC圧縮上死点に達する構成になっている。VVT装置40によりクランク軸に対するカム軸50の回転位相が調整されると、カム歯210の位置は点線で示すように最遅角位置から進角する。したがって、カム歯210を検出してから30°CA進角量後に圧縮TDCに達する。ECU10は、クランク角信号の連欠け200および単欠け202と、カム歯210との組合せにより、カム歯210を検出した次の圧縮TDCが3気筒のうちのどの気筒に相当するかを判定する。連欠け200を検出する角度範囲内でカム歯210を検出すると、次の圧縮TDCは第2気筒であり、単欠け202を検出してからカム歯210を検出すると、次の圧縮TDCは第3気筒であり、連欠け200を検出する角度範囲内でカム歯210を検出しないと、カム歯210を検出したときの次の圧縮TDCは第1気筒である。ECU10は、クランク角信号の連欠け200および単欠け202と、カム歯210との組合せにより気筒を判別すると、図3に示すように、カム歯210を検出する毎に、次の圧縮TDCに該当する気筒を表わす気筒位置情報を気筒判別情報に基づいて更新する。エンジン回転位置エンジンの始動時には、カム軸の回転位相は最遅角位置に固定されている。したがって、エンジン始動時にカム角信号を検出すると、30°CA後にいずれかの気筒の圧縮TDCに達する。そこで、ECU10は、エンジン始動時に、クランク角信号の連欠け200および単欠け202と、カム歯210との組合せにより気筒を判別すると、カム角信号の検出時において、30°CA後に該当する気筒の圧縮TDCに対応するカウント値になるように基準気筒カウンタのカウント値を設定する。ECU10は、第1気筒の圧縮TDCにおいて0、第2気筒の圧縮TDCにおいて8、第3気筒の圧縮TDCにおいて16になるように、カム角信号の検出時において基準気筒カウンタのカウント値を設定する。つまり、基準気筒カウンタのカウント値は、1燃焼サイクルにおける各気筒の行程位置、つまりエンジン回転位置を表わしている。ECU10は、エンジン始動時に気筒判別を実行して基準気筒カウンタのカウント値を設定すると、10°CA毎に検出されるクランク角信号に基づき、エンジン回転位置をカウントする基準気筒カウンタを30°CA毎に1カウントアップする。基準気筒カウンタの値が24になるときには、角度の合計が720°CAとなるので、カウント値を0に戻す。ECU10は、基準気筒カウンタのカウント値に基づいて、インジェクタによる燃料の噴射タイミング、点火プラグによる点火タイミングを、エンジン運転状態に適したタイミングに設定する。回転位置設定処理次に、ROM14等に記憶されている制御プログラムをCPU12が実行することにより、ECU10が実行する回転位置設定処理について説明する。クランク角センサの故障等によりクランク角信号に異常が発生し、図4に示すようにクランク角信号が出力されない場合、クランク軸に対するカム軸50の回転位相が最遅角位置に固定されていれば、240°CAで発生するカム角信号の間隔に基づいて、基準気筒カウンタのカウント間隔と同様に30°CA毎に擬似クランク角信号を生成し、カム歯210の検出タイミングを基準にして基準気筒カウンタのカウント値を設定して、疑似クランク角信号に基づいて基準気筒カウンタをカウントすることはできる。しかし、本実施形態では、VVT装置40によりクランク軸に対するカム軸50の回転位相が可変に調整されているので、カム歯210の検出タイミングを基準にして基準気筒カウンタのカウント値を設定すると、カム軸50の最遅角位置からの進角量分、エンジン回転位置がずれてしまう。このように、進角量分ずれたエンジン回転位置を使用すると、該当気筒において適切なタイミングで燃料を噴射して燃焼させることができない。そこで、本実施形態では、クランク軸に対するカム軸50の回転位相をVVT装置40で調整する構成においてクランク角信号に異常が発生した場合でも、図5および図6に示す回転位置設定処理のフローチャートにより、該当気筒において適切なタイミングで燃料を噴射して燃焼させることを実現している。図5は、カム歯210によるカム角信号を検出する毎に実行される処理であり、図6は、クランク角信号の異常時に生成される疑似クランク角信号を検出する毎に実行される処理である。カム角信号検出時カム角信号を検出すると、図5のS400において、ECU10は、クランク角信号が異常であるか否かを判定する。クランク角信号は、例えば、クランク角信号のレベルがロウまたはハイに固定されている場合、異常と判定される。クランク角信号が正常の場合S400:No、ECU10はクランク角信号とカム角信号とに基づいて次に圧縮TDCを迎える気筒を判別し、この気筒判別情報に基づいて気筒位置情報を更新するS402。クランク角信号が異常の場合S400:Yes、ECU10は、今回カム角信号を検出したときのカム軸50の最遅角位置からの今回推定進角量が0であるか否かを判定するS404。ECU10は、クランク角信号が異常であると初回に判定されたときには、クランク角信号が異常であると判定される直前のクランク角信号とカム角信号との位相差に基づいて、クランク軸に対するカム軸50の今回推定進角量を算出する。図4に示すタイムチャートでは、クランク角信号が異常であると初回に判定されたときの今回推定進角量は50°CAになっている。今回推定進角量が0ではない場合S404:No、ECU10は、OCV60に供給する電流値をデューティ制御し、カム軸50が最値遅角位置に向けて回転するようにVVT装置40を遅角制御するS406。つまり、今回推定進角量が0になりカム軸50が最値遅角位置に達するまで、ECU10はS406の遅角制御を実行する。カム軸50が最遅角位置に達すると、ECU10はカム軸50を最遅角位置に保持する。これにより、排気弁と吸気弁との開弁期間がオーバーラップすることを防止するので、クランク角信号が異常であっても、エンジンの運転を継続し、車両を退避走行させることができる。次に、カム角信号を検出してから最初に生成する疑似クランク角信号の生成タイミングを設定するために、次式1で初回疑似クランク角信号角度TCAMを算出しS408、S412に処理を移行する。TCAM=今回推定進角量/30°CAの余り1本実施形態では、前述したように疑似クランク角信号の信号間隔を基準気筒カウンタのカウント間隔と同じ30°CAに設定しているので、TCAMは今回推定進角量に対して、30°CAの端数である余りになる。図4に示す例では、今回推定進角量は前述したように50°CAであるから、式1から算出されるTCAMは20°CAである。今回推定進角量が0の場合S404:Yes、つまりカム軸50が最遅角位置にある場合、ECU10はTCAMに0を設定しS410、S412に処理を移行する。S408またはS410でTCAMが設定されると、ECU10は、タイマ等で測定して時間換算することにより求めた前回と今回とのカム角信号間隔Tの時間間隔に基づき、30°CA間隔で生成する疑似クランク角信号の時間間隔をカム角信号間隔Tに対する30°CAの角度比率から算出する。ECU10は、カム角信号間隔Tを時間換算するために、前回と今回とのカム角信号間隔Tの時間間隔をタイマ等で常時計測している。さらに、疑似クランク角信号の時間間隔に基づいてTCAMを時間換算し、換算結果を疑似クランク角信号出力用タイマに設定するS412。クランク角信号が異常になる直前のカム軸の進角量が保持されていれば、クランク角信号が異常であると初回に判定されたときの前回と今回とのカム角信号間隔Tは240°CAである。疑似クランク角信号出力用タイマに設定されたTCAMの時間が経過すると、カム角信号検出後の初回の疑似クランク角信号が出力される。そして、後述する図6の処理において、初回の疑似クランク角信号に続いて30°CA間隔で疑似クランク角信号が生成され、基準気筒カウンタがカウントされる。このように、今回推定進角量に対して30°CAの端数を考慮して疑似クランク角信号を生成することにより、疑似クランク角信号の生成タイミングが最遅角位置と一致する。これにより、後述する図6の処理において、エンジン回転位置を表わす基準気筒カウンタを最遅角位置を基準にしてカウントできる。そして、ECU10は、現在の気筒位置情報が3以外の1または2であればS414:No、気筒位置情報を1カウントアップしS416、現在の気筒位置情報が3であればS414:Yes、気筒位置情報を1に設定しS418、S420に処理を移行する。カム角信号を今回検出してからカム角信号を次回検出するまでにS406の遅角制御によりカム軸50が遅角側に回転する遅角変化量は、前回と今回とのカム角信号間隔Tと今回推定進角量とにより決定される。そこで、ECU10は、前回と今回とのカム角信号間隔Tと今回推定進角量とに基づき、次回カム角信号を検出するまでにS406の遅角制御によりカム軸50が遅角側に回転する遅角変化量をマップ等から算出するS420。カム軸50が最遅角位置にある場合、遅角変化量は0である。図4の例では、次回にカム角信号を検出するときにカム軸50は最遅角位置まで達しているので、遅角変化量は今回推定進角量と同じ50°CAである。そして、今回のカム角信号を検出してからTCAM経過後に最初に疑似クランク角信号を出力してから、カム軸50を遅角制御している状態で次回カム角信号を検出するまでの間隔である推定カム角信号間隔を次式2で算出するS422。推定カム角信号間隔=240°CA遅角変化量-TCAM2式2で算出する推定カム角信号間隔は、今回カム角信号を検出してから次回カム角信号を検出するまでの間に、S408またはS410で算出したTCAMを除いて疑似クランク角信号を生成する角度間隔を表わしている。図4の例では、遅角変化量は50°CA、TCAMは20°CAであるから、推定カム角信号間隔は270°CAである。また、カム軸50が最遅角位置にある場合、推定カム角信号間隔は240°CAである。ECU10は、今回推定進角量からS420で算出した遅角変化量を減算し、次回にカム角信号を検出して本ルーチンを実行するときに使用する今回推定進角量とするS424。図4の例では、次回にカム角信号を検出するときにカム軸50は最遅角位置まで達しているので、S424で算出する今回推定進角量は0°CAである。疑似クランク角信号検出時疑似クランク角信号を検出すると、図6のS430においてECU10は、今回の処理がカム角信号検出後に最初に実行する初回処理であるか否かを判定する。つまり、カム角信号検出後に最初に疑似クランク角信号を検出したか否かを判定する。カム角信号検出後の初回処理ではない場合S430:No、ECU10は、基準気筒カウンタを1カウントアップしS432、基準気筒カウンタのカウント値が23を超えるとS434:Yes、基準気筒カウンタを0に設定しS436、S446に処理を移行する。カム角信号検出後の初回処理の場合S430:Yes、ECU10は、気筒位置情報に応じて、次式3~5により基準気筒カウンタのカウント値を設定するS440、S442、S444。尚、式3~5において[]はガウス記号であり、記号内の数値を超えない最大の整数を表わす。気筒位置情報=1の場合基準気筒カウンタ=24-[今回進角量/30°CA]13気筒位置情報=2の場合基準気筒カウンタ=8-[今回進角量/30°CA]14気筒位置情報=3の場合基準気筒カウンタ=16-[今回進角量/30°CA]15S440、S442、S444で基準気筒カウンタを設定すると、ECU10は、推定カム角信号間隔が30°CA以上であるか否かを判定するS446。推定カム角信号間隔が30°CA未満の場合S446:No、ECU10は本処理を終了する。推定カム角信号間隔が30°CA以上の場合S446:Yes、ECU10は推定カム角信号間隔から30°CAを減算するS448。そして、ECU10は、タイマ等で測定して前回と今回とのカム角信号間隔Tを時間換算することにより、カム角信号間隔Tに対する30°CAの角度比率に相当する時間を疑似クランク角信号出力用タイマに設定しS450、本処理を終了する。このように、クランク角信号が異常であっても、前回と今回とのカム角信号間隔を時間換算し、カム角信号間隔に対する角度比率に基づいて疑似クランク角信号出力用タイマに30°CAに相当する時間を設定することにより、30°CA毎に疑似クランク角信号を生成できる。図6の処理は疑似クランク角信号を検出する毎に実行され、その都度、ECU10は推定カム角信号間隔から30°CAを減算するので、図5のS422で算出した推定カム角信号間隔の間、30°CA間隔で疑似クランク角信号が生成される。以上説明した上記実施形態では、クランク角信号が異常になる直前の気筒判別情報および今回推定進角量に基づいてエンジン回転位置を表わす基準気筒カウンタのカウント値を設定する。さらに、今回推定進角量に対して疑似クランク角信号の信号間隔である30°CAの端数と次回のカム角信号検出時までのカム軸50の遅角変化量とに基づいて推定カム角信号間隔を算出し、推定カム角信号間隔に基づいて疑似クランク角信号の生成回数を決定している。これにより、VVT装置40を使用するエンジンにおいてクランク角信号が異常になっても、クランク軸に対するカム軸50の回転位相を考慮し、基準気筒カウンタのカウント値に基づいて1燃焼サイクルにおけるエンジン回転位置を判定できる。その結果、カム軸が最遅角位置に達するまでの間に、該当する気筒で1燃焼サイクルにおける適切なタイミングで速やかに燃料を噴射して燃焼させることができる。したがって、クランク角信号が異常の場合にもエンジンの運転を継続し車両を走行させることができる。図5の処理において、S400の処理が本発明の異常判定手段が実行する機能に相当し、S406の処理が本発明の遅角制御手段が実行する機能に相当し、S412の処理が本発明の信号生成手段が実行する機能に相当する。また、図6の処理において、S430~S444の処理が本発明の回転位置設定手段が実行する機能に相当し、S446~S450の処理が本発明の信号生成手段が実行する機能に相当する。また、ECU10は、本発明のエンジン制御装置に相当し、本発明の異常判定手段、遅角制御手段、信号生成手段および回転位置設定手段が実行する機能を実現する。[他の実施形態]上記実施形態では、カム角信号を検出して最初に疑似クランク角信号を生成する場合、今回推定進角量に対して、疑似クランク角信号の信号間隔である30°CAの端数であるTCAMだけ待ち合わせて疑似クランク角信号を生成している。これに対し、今回推定進角量に30°CAの端数が含まれていても、その端数分待ち合わせずに疑似クランク角信号を生成してもよい。今回推定進角量の端数分、疑似クランク角信号に基づいて判定するエンジン回転位置はずれるが、そのずれは30°CA未満の範囲である。したがって、エンジン回転位置の精度は低下するが、車両を退避走行させることは可能である。本発明は、ガソリンエンジンに限らず、ディーゼルエンジン等の内燃機関を駆動源とする車両に適用できる。また、エンジンの気筒数は3気筒に限るものではない。また、上記実施形態では、異常判定手段、遅角制御手段、信号生成手段および回転位置設定手段の機能を、制御プログラムにより機能が特定されるECU10により実現している。これに対し、上記複数の手段の機能の少なくとも一部を、回路構成自体で機能が特定されるハードウェアで実現してもよい。このように、本発明は、上記実施形態に限定されるものではなく、その要旨を逸脱しない範囲で種々の実施形態に適用可能である。