"内燃機関のクランク軸の回転速度の1/2の回転速度に対してモータの回転速度を調整することで該クランク軸に対するカム軸の回転位相以下カム軸位相というを変化させて吸気側又は排気側のバルブタイミングを変化させる可変バルブタイミング装置と、前記モータの回転位置に応じた位置信号及び/又は該モータの回転方向に応じた方向信号を周期的に出力するモータ回転状態検出系と、前記モータ回転状態検出系の異常診断処理を周期的に実行する異常診断手段とを備えた可変バルブタイミング制御システムのモータ回転状態検出系異常診断装置において、モータ回転速度を推定するモータ回転速度推定手段を備え、前記異常診断手段は、前記モータ回転速度推定手段で推定したモータ回転速度が所定範囲内にあるときに前記モータ回転状態検出系の異常診断を禁止又は診断結果を無効とする手段を有することを特徴とする可変バルブタイミング制御システムのモータ回転状態検出系異常診断装置。前記モータ回転速度推定手段は、前記カム軸位相の変化速度及び内燃機関回転速度に基づいてモータ回転速度を推定することを特徴とする請求項1に記載の可変バルブタイミング制御システムのモータ回転状態検出系異常診断装置。内燃機関のクランク軸の回転速度の1/2の回転速度に対してモータの回転速度を調整することで該クランク軸に対するカム軸の回転位相以下カム軸位相というを変化させて吸気側又は排気側のバルブタイミングを変化させる可変バルブタイミング装置と、前記モータの回転位置に応じた位置信号及び/又は該モータの回転方向に応じた方向信号を周期的に出力するモータ回転状態検出系と、前記モータ回転状態検出系の異常診断処理を周期的に実行する異常診断手段とを備えた可変バルブタイミング制御システムのモータ回転状態検出系異常診断装置において、前記異常診断手段は、前記カム軸位相が遅角側に変化しているときに前記モータ回転状態検出系の異常診断を禁止又は診断結果を無効とする手段を有することを特徴とする可変バルブタイミング制御システムのモータ回転状態検出系異常診断装置。ところで、位置信号と方向信号は、モータ回転速度が小さくなるほど、信号発生周期パルス間隔が長くなるため、モータ回転速度が0付近になると、信号発生周期が異常診断の処理周期よりも長くなってしまい、異常診断処理時に信号のエッジが検出されないことがある。このため、モータ回転速度が0付近になると、モータ回転状態検出系が正常な状態であっても、信号線の断線、ショート等の異常が発生した場合と同様に、異常診断処理時に信号のエッジが検出されないことがあり、モータ回転状態検出系の正常な状態を信号線の断線、ショート等の異常と誤判定する可能性がある。そこで、本発明が解決しようとする課題は、位置信号や方向信号のエッジを検出できない可能性のあるモータ低回転領域で、モータ回転状態検出系の正常な状態を異常と誤判定することを未然に防止できる可変バルブタイミング制御システムのモータ回転状態検出系異常診断装置を提供することである。上記課題を解決するために、請求項1に係る発明は、内燃機関のクランク軸の回転速度の1/2の回転速度に対してモータの回転速度を調整することで該クランク軸に対するカム軸の回転位相以下カム軸位相というを変化させて吸気側又は排気側のバルブタイミングを変化させる可変バルブタイミング装置と、前記モータの回転位置に応じた位置信号及び/又は該モータの回転方向に応じた方向信号を周期的に出力するモータ回転状態検出系と、前記モータ回転状態検出系の異常診断処理を周期的に実行する異常診断手段とを備えた可変バルブタイミング制御システムのモータ回転状態検出系異常診断装置において、モータ回転速度を推定するモータ回転速度推定手段を備え、前記異常診断手段は、前記モータ回転速度推定手段で推定したモータ回転速度が所定範囲内にあるときに前記モータ回転状態検出系の異常診断を禁止又は診断結果を無効とする手段を有することを特徴とするものである。この場合、異常診断を禁止又は診断結果を無効とする所定範囲を、異常診断処理時に位置信号や方向信号のエッジを検出できない可能性のあるモータ低回転領域が含まれるように設定することで、位置信号や方向信号のエッジを検出できない可能性のあるモータ低回転領域で、モータ回転状態検出系の正常な状態を異常と誤判定することを未然に防止でき、異常診断の信頼性を向上することができる。ここで、モータ回転速度の推定方法は、例えばモータ駆動電流から推定しても良いが、請求項2のように、カム軸位相の変化速度及び内燃機関回転速度クランク軸回転速度に基づいてモータ回転速度を推定するようにしても良い。例えば、カム軸位相が変化しないときには、モータ回転速度がカム軸回転速度=クランク軸回転速度の1/2と一致する状態に維持され、モータ回転速度がカム軸回転速度から変化すると、その変化量に応じてカム軸位相が変化してバルブタイミングが変化する。このような関係から、カム軸位相の変化速度と内燃機関回転速度=カム軸回転速度×2とからモータ回転速度を精度良く推定することができる。ところで、カム軸位相バルブタイミングを遅角する場合は、モータ回転速度を低下させるため、モータ回転速度が0付近となる可能性があり、位置信号や方向信号のエッジを検出できない可能性がある。この点を考慮して、請求項3のように、カム軸位相が遅角側に変化しているときに、モータ回転状態検出系の異常診断を禁止又は診断結果を無効とするようにしても良い。このようにしても、位置信号や方向信号のエッジを検出できない可能性のあるモータ低回転領域で、モータ回転状態検出系の正常な状態を異常と誤判定することを未然に防止することができる。以下、本発明を実施するための形態を具体化した2つの実施例1,2を説明する。本発明の実施例1を図1乃至図8に基づいて説明する。まず、図1に基づいて可変バルブタイミング制御システムの構成を説明する。内燃機関であるエンジンのクランク軸10は、タイミングチェーン11又はタイミングベルトとカムスプロケット12を介してカムシャフト13に連結されている。カム軸13には、エンジンの吸気バルブ又は排気バルブを開閉駆動するためのカムが設けられている。カムスプロケット12とカム軸13との間にはバルブタイミング調整機構14が設けられている。このバルブタイミング調整機構14は、カム軸13と同一の回転軸になるように配設された内歯付きのアウタギア15と、このアウタギア15の内周に同一の回転軸になるように配設された外歯付きのインナギア16と、これらアウタギア15とインナギア16との間に配置されて両者に噛み合う遊星ギア17とを備えている。アウタギア15は、クランク軸10と同期して回転するカムスプロケット12と一体的に回転するように設けられ、インナギア16は、カム軸13と一体的に回転するように設けられている。遊星ギア17は、アウタギア15とインナギア16とに噛み合った状態で円軌道を描くようにインナギア16の回りを旋回することにより、アウタギア15の回転力をインナギア16に伝達する。これらアウタギア15、インナギア16及び遊星ギア17の歯数は、それぞれカム軸13がクランク軸10の回転速度エンジン回転速度neの1/2の回転速度で駆動されるように設定され、インナギア16の回転速度=カム軸13の回転速度に対する遊星ギア17の旋回速度公転速度を変化させることにより、アウタギア15に対するインナギア16の回転位相を調整するように構成されている。エンジンには、遊星ギア17の旋回速度を変化させるためのモータ18が設けられている。このモータ18の出力軸19は、カム軸13、アウタギア15及びインナギア16の回転軸と同軸上に配置され、該モータ18の出力軸19と遊星ギア17の支持軸とが一体的に回転するように連結されている。これにより、モータ18の出力軸19の回転に伴って、遊星ギア17がその支持軸を中心に回転自転しながらインナギア16の外周の円軌道を旋回公転するようになっている。以上のように構成した可変バルブタイミング装置24において、機関バルブのバルブタイミング開閉時期を現状で維持する場合には、モータ18の出力軸19の回転速度以下モータ回転速度というがカム軸13の回転速度と一致するように該モータ18が駆動される。これにより、遊星ギア17の公転速度がアウタギア15及びインナギア16の回転速度と一致するようになり、アウタギア15とインナギア16との回転位相差が現状で維持されて、機関バルブのバルブタイミングが現状で維持される。一方、カム軸位相バルブタイミングを進角させる場合には、モータ回転速度がインナギア16の回転速度より速くなるようにモータ18が駆動される。これにより、遊星ギア17の公転速度がインナギア16の回転速度より速くなってアウタギア15に対するインナギア16の相対回転位相が進角されて、カム軸位相バルブタイミングが進角される。反対に、カム軸位相バルブタイミングを遅角させる場合には、モータ回転速度がインナギア16の回転速度より遅くなるようにモータ18が駆動される。これにより、遊星ギア17の公転速度がインナギア16の回転速度より遅くなって、アウタギア15に対するインナギア16の相対回転位相が遅角され、カム軸位相バルブタイミングが遅角される。カム軸13の近傍には、該カム軸13の回転位相カム角を検出するためのカムセンサ20が設けられ、クランク軸10の近傍には、該クランク軸10の回転位相クランク角とエンジン回転速度neを検出するためのクランクセンサ21が設けられている。これらカムセンサ20、クランクセンサ21等の各種センサの出力信号は、電子制御ユニット以下ECUと表記する22に入力される。ECU22は、マイクロコンピュータを主体として構成され、そのROMに記憶された各種エンジン制御用のプログラムを実行することにより、エンジン運転状態に応じて燃料噴射量の制御や点火時期の制御等を実行する。また、ECU22は、カムセンサ20の出力信号に基づいてカム角を演算し、クランクセンサ21の出力信号に基づいてクランク角及びエンジン回転速度neを演算し、エンジン運転条件に応じて目標カム角を演算すると共に、目標カム角と実際のカム角との偏差、及びエンジン回転速度neに基づいて目標モータ回転速度Tnmを演算して、その目標モータ回転速度Tnmをモータ18側に設けられたモータ駆動回路以下EDUと表記する23に出力する。この目標モータ回転速度Tnmは、目標モータ回転速度の絶対値と回転方向の両方の情報が含まれ、回転方向が正方向であるときには正の値が設定され、逆方向であるときには負の値が設定される。モータ18には、その出力軸19の回転位置回転位相に応じたパルス信号を出力する複数の回転センサ図示せずが取り付けられ、それら回転センサの出力パルスがEDU23に入力される。EDU23は、複数の回転センサの出力パルスに基づいてモータ18の出力軸19の回転速度実モータ回転速度NMを算出し、その実モータ回転速度NMと上記目標モータ回転速度Tnmとの偏差を小さくするようにモータ18への供給電力具体的にはモータ18に印加する電圧のデューティをフィードバック制御する。このように、実モータ回転速度NMを目標モータ回転速度Tnmにフィードバック制御することにより、カム角を目標カム角にフィードバック制御する。また、EDU23は、上記複数の回転センサの出力パルスに基づいてモータ18の出力軸19の回転位置以下モータ回転位置というと該出力軸19の回転方向以下モータ回転方向というとを算出すると共に、モータ回転位置に応じた位置信号VTSとモータ回転方向に応じた方向信号VTDとをそれぞれECU22に周期的に出力する。上記複数の回転センサ及びEDU23等から特許請求の範囲でいうモータ回転状態検出系が構成されている。図2は、モータ18が一定の回転速度で回転している場合の位置信号VTS及び方向信号VTDの変化パターンの一例を示すタイムチャートである。図2[a]に示すように、位置信号VTSは、モータ回転位置が所定角度変化する毎に変化するパルス信号である。また、図2[b]に示すように、方向信号VTDは、位置信号VTSと同期して変化するパルス信号であり、モータ18が正方向カム軸13の回転方向と同一の方向に回転するときには、方向信号VTDが位置信号VTSと同一位相で変化する。一方、図2[c]に示すように、モータ18が逆方向に回転するときには、方向信号VTDが位置信号VTSと逆位相で変化する。このような関係から、位置信号VTSと方向信号VTDとが同一位相であるときには、モータ回転方向が正方向であると判断し、位置信号VTSと方向信号VTDと逆位相であるときにはモータ回転方向が逆方向であると判断するといったように、位置信号VTSと方向信号VTDとの関係に基づいてモータ回転方向を推定することができる。以上のように構成したモータ回転状態検出系において、例えば、位置信号VTSや方向信号VTDの信号線の断線又はショート、EDU23の故障、モータ18の回転センサの故障等により位置信号VTSや方向信号VTDがECU22に入力されなくなる異常が発生すると、正しく可変バルブタイミング制御を実行できなくなる。従って、モータ回転状態検出系の異常が発生した場合には、その異常を早期に検出して運転者に警告する必要がある。そこで、本実施例1では、モータ回転状態検出系の異常を次のようにして検出する。まず、図3を用いて位置信号VTSの異常診断方法の一例を説明する。ハード回路又は高速ソフト処理により周期的に発生する位置信号VTSがHi→Lo又はLo→Hiに切り換わるタイミング位置信号VTSのエッジを検出し、このエッジ検出情報を所定の診断処理周期例えば40ms周期で取り込んでエッジ検出フラグxvtsを次のようにしてセット/リセットする。例えば、エッジ検出フラグxvtsが0の状態で、位置信号VTSのエッジが検出されれば、エッジ検出フラグxvtsを1にセットし、エッジ検出フラグxvtsが1の状態で、位置信号VTSのエッジが検出されれば、エッジ検出フラグxvtsをそのまま1に維持する。所定の診断処理周期例えば40ms周期でエッジ検出フラグxvtsを判定し、エッジ検出フラグxvtsが1であれば、正常カウンタcvtsnormlをインクリメントして異常カウンタcvtsfaultを0にリセットすると共に、エッジ検出フラグxvtsを0にリセットする。このような処理を繰り返して、正常カウンタcvtsnormlのカウント値が正常判定回数しきい値KJDGEOKを越えた時点で、位置信号VTSが正常であると判定して正常判定フラグを1にセットし、異常判定フラグを0に維持又はリセットする。これに対し、所定の診断処理周期例えば40ms周期でエッジ検出フラグxvtsを判定したときに、エッジ検出フラグxvtsが0であれば、異常カウンタcvtsfaultをインクリメントして正常カウンタcvtsnormlを0にリセットする。このような処理を繰り返して、異常カウンタcvtsfaultのカウント値が異常判定回数しきい値KJDGENGを越えた時点で、位置信号VTSが異常であると判定して異常判定フラグを1にセットし、正常判定フラグを0に維持又はリセットする。次に、図5を用いて方向信号VTDの異常診断方法の一例を説明する。本実施例1では、位置信号VTSの異常診断と同様の方法で、方向信号VTDの異常診断を行う。ハード回路又は高速ソフト処理により周期的に発生する方向信号VTDがHi→Lo又はLo→Hiに切り換わるタイミング方向信号VTDのエッジを検出し、このエッジ検出情報を所定の診断処理周期例えば40ms周期で取り込んでエッジ検出フラグxvtdを次のようにしてセット/リセットする。例えば、エッジ検出フラグxvtdが0の状態で、方向信号VTDのエッジが検出されれば、エッジ検出フラグxvtdを1にセットし、エッジ検出フラグxvtdが1の状態で、方向信号VTDのエッジが検出されれば、エッジ検出フラグxvtdをそのまま1に維持する。所定の診断処理周期例えば40ms周期でエッジ検出フラグxvtdを判定し、エッジ検出フラグxvtdが1であれば、正常カウンタcvtdnormlをインクリメントして異常カウンタcvtdfaultを0にリセットすると共に、エッジ検出フラグxvtdを0にリセットする。このような処理を繰り返して、正常カウンタcvtdnormlのカウント値が正常判定回数しきい値KJDGEOKを越えた時点で、方向信号VTDが正常であると判定して正常判定フラグを1にセットし、異常判定フラグを0に維持又はリセットする。これに対し、所定の診断処理周期例えば40ms周期でエッジ検出フラグxvtdを判定したときに、エッジ検出フラグxvtdが0であれば、異常カウンタcvtdfaultをインクリメントして正常カウンタcvtdnormlを0にリセットする。このような処理を繰り返して、異常カウンタcvtdfaultのカウント値が異常判定回数しきい値KJDGENGを越えた時点で、方向信号VTDが異常であると判定して異常判定フラグを1にセットし、正常判定フラグを0に維持又はリセットする。ところで、図7に示すように、位置信号VTSと方向信号VTDは、モータ回転速度が0に近付くほど、信号発生周期パルス間隔が長くなるため、モータ回転速度が0付近になると、信号発生周期が異常診断の処理周期よりも長くなってしまい、異常診断処理時に信号のエッジが検出されないことがある。このため、モータ回転速度が0付近になると、モータ回転状態検出系が正常な状態であっても、信号線の断線、ショート等の異常が発生した場合と同様に、異常診断処理時に信号のエッジが検出されないことがあり、モータ回転状態検出系の正常な状態を信号線の断線、ショート等の異常と誤判定する可能性がある。この対策として、本実施例1では、カム軸位相の変化速度及びエンジン回転速度neクランク軸回転速度に基づいてモータ回転速度を推定し、モータ回転速度が所定範囲内にあるときに異常診断を禁止するようにしている。ここで、異常診断を禁止する所定範囲は、異常診断処理時に位置信号VTSや方向信号VTDのエッジを検出できない可能性のあるモータ低回転領域モータ回転速度が0付近の領域が含まれるように設定されている。図7に示すように、カム軸位相バルブタイミングが変化しないときには、モータ回転速度がカム軸回転速度=クランク軸回転速度neの1/2と一致する状態に維持され、モータ回転速度がカム軸回転速度から変化すると、その変化量に応じてカム軸位相が変化してバルブタイミングが変化する。このような関係から、カム軸位相の変化速度とエンジン回転速度ne=カム軸回転速度×2とからモータ回転速度を精度良く推定することができる。以上説明した本実施例1の異常診断処理は、ECU22によって図4、図6、図8の各ルーチンに従って実行される。以下、各ルーチンの処理内容を説明する。[位置信号異常診断ルーチン]図4の位置信号異常診断ルーチンは、所定の診断処理周期例えば40ms周期で繰り返し実行され、特許請求の範囲でいう異常診断手段として役割を果たす。本ルーチンが起動されると、まずステップ101で、異常診断が許可されているか否かを、異常診断許可フラグxjdgeが1であるか否かで判定する。この異常診断許可フラグxjdgeは、後述する図8の異常診断許可/禁止判定ルーチンによってセット/リセットされる。このステップ101で、異常診断が禁止されている異常診断許可フラグxjdge=0と判定されれば、以降の処理を行わずに本ルーチンを終了する。これに対し、上記ステップ101で、異常診断が許可されている異常診断許可フラグxjdge=1と判定されれば、ステップ102に進み、位置信号VTSのエッジを検出したか否かを、エッジ検出フラグxvtsが1であるか否かで判定する。このステップ102で、位置信号VTSのエッジを検出したエッジ検出フラグxvts=1と判定されれば、ステップ103に進み、正常カウンタcvtsnormlをインクリメントして、次のステップ104で、異常カウンタcvtsfaultを0にリセットし、続くステップ105で、エッジ検出フラグxvtsを0にリセットする。この後、ステップ106に進み、正常カウンタcvtsnormlのカウント値が正常判定回数しきい値KJDGEOK以上であるか否かを判定し、その結果、正常カウンタcvtsnormlのカウント値が正常判定回数しきい値KJDGEOK以上であると判定されれば、ステップ107に進み、位置信号VTSが正常であると判定して正常判定フラグを1にセットし、異常判定フラグを0に維持又はリセットして本ルーチンを終了する。これに対し、上記ステップ106で、正常カウンタcvtsnormlのカウント値が正常判定回数しきい値KJDGEOK未満であると判定されれば、まだ正常とは判定せずに本ルーチンを終了する。一方、上述したステップ102で、位置信号VTSのエッジを検出していないエッジ検出フラグxvts=0と判定されれば、ステップ108に進み、異常カウンタcvtsfaultをインクリメントして、次のステップ109で、正常カウンタcvtsnormlを0にリセットする。この後、ステップ110に進み、異常カウンタcvtsfaultのカウント値が異常判定回数しきい値KJDGENG以上であるか否かを判定し、異常カウンタcvtsfaultのカウント値が異常判定回数しきい値KJDGENG以上であると判定されれば、ステップ111に進み、位置信号VTSが異常であると判定して異常判定フラグを1にセットし、正常判定フラグを0に維持又はリセットして本ルーチンを終了する。これに対し、上記ステップ110で、異常カウンタcvtsfaultのカウント値が異常判定回数しきい値KJDGENG未満であると判定されれば、まだ異常とは判定せずに本ルーチンを終了する。[方向信号異常診断ルーチン]図6の方向信号異常診断ルーチンは、所定の診断処理周期例えば40ms周期で繰り返し実行され、特許請求の範囲でいう異常診断手段として役割を果たす。本ルーチンが起動されると、まずステップ201で、異常診断が許可されているか否かを、異常診断許可フラグxjdgeが1であるか否かで判定する。この異常診断許可フラグxjdgeは、後述する図8の異常診断許可/禁止判定ルーチンによってセット/リセットされる。このステップ201で、異常診断が禁止されている異常診断許可フラグxjdge=0と判定されれば、以降の処理を行わずに本ルーチンを終了する。これに対し、上記ステップ201で、異常診断が許可されている異常診断許可フラグxjdge=1と判定されれば、ステップ202に進み、方向信号VTDのエッジを検出したか否かを、エッジ検出フラグxvtdが1であるか否かで判定する。このステップ202で、方向信号VTDのエッジを検出したエッジ検出フラグxvtd=1と判定されれば、ステップ203に進み、正常カウンタcvtdnormlをインクリメントして、次のステップ204で、異常カウンタcvtdfaultを0にリセットし、続くステップ205で、エッジ検出フラグxvtdを0にリセットする。この後、ステップ206に進み、正常カウンタcvtdnormlのカウント値が正常判定回数しきい値KJDGEOK以上であるか否かを判定し、その結果、正常カウンタcvtdnormlのカウント値が正常判定回数しきい値KJDGEOK以上であると判定されれば、ステップ207に進み、方向信号VTDが正常であると判定して正常判定フラグを1にセットし、異常判定フラグを0に維持又はリセットして本ルーチンを終了する。これに対し、上記ステップ206で、正常カウンタcvtdnormlのカウント値が正常判定回数しきい値KJDGEOK未満であると判定されれば、まだ正常とは判定せずに本ルーチンを終了する。一方、上述したステップ202で、方向信号VTDのエッジを検出していないエッジ検出フラグxvtd=0と判定されれば、ステップ208に進み、異常カウンタcvtdfaultをインクリメントして、次のステップ209で、正常カウンタcvtdnormlを0にリセットする。この後、ステップ210に進み、異常カウンタcvtdfaultのカウント値が異常判定回数しきい値KJDGENG以上であるか否かを判定し、異常カウンタcvtdfaultのカウント値が異常判定回数しきい値KJDGENG以上であると判定されれば、ステップ211に進み、方向信号VTDが異常であると判定して異常判定フラグを1にセットし、正常判定フラグを0に維持又はリセットして本ルーチンを終了する。これに対し、上記ステップ210で、異常カウンタcvtdfaultのカウント値が異常判定回数しきい値KJDGENG未満であると判定されれば、まだ異常とは判定せずに本ルーチンを終了する。[異常診断許可/禁止判定ルーチン]図8の異常診断許可/禁止判定ルーチンは、所定の診断処理周期例えば40ms周期で繰り返し実行され、特許請求の範囲でいう異常診断手段として役割を果たす。本ルーチンが起動されると、まずステップ201で、現在のカム軸位相実進角値vvtaと、本ルーチンの前回終了時に取り込んだカム軸位相vvtaoldとの差を求め、この差を本ルーチンの処理周期である40ms0.04で除算した値vvtadevを求める。vvtadev=vvta-vvtaold/0.04この値vvtadevは、カム軸位相の1秒当たりの変化量、すなわちカム軸位相の変化速度となる。この後、ステップ302に進み、カム軸位相の変化速度vvtadevに係数kを乗算して、エンジン回転速度neとモータ回転速度との回転速度差nedevを求める。nedev=vvtadev×kここで、係数kは、モータ18の基本速度であって、カム軸13とモータ18のギア比減速比により決まる。例えば、ギア比が150の場合、エンジン回転速度が1500rpmのときに、モータ18が60°CA/secの速度で回転する。従って、エンジン回転速度1500rpmとモータ回転速度60°CA/secとの比から25=1500/60が算出され、この値が係数kになる。この後、ステップ303に進み、回転速度差nedevをエンジン回転速度neに加算して、モータ回転速度推定値revmotorを求める。revmotor=nenedev上述したステップ301~303の処理は、特許請求の範囲でいうモータ回転速度推定手段として機能する。この後、ステップ304に進み、モータ回転速度推定値revmotorの絶対値を所定の低回転判定値KMOTOREN1と比較して、モータ回転速度推定値revmotorの絶対値が低回転判定値KMOTOREN1よりも大きいと判定されれば、ステップ305に進み、異常診断許可フラグxjdgeを1にセットして異常診断を許可する。これに対し、上記ステップ304で、モータ回転速度推定値revmotorの絶対値が低回転判定値KMOTOREN1以下と判定されれば、ステップ306に進み、異常診断許可フラグxjdgeを0にリセットして異常診断を禁止する。この後、ステップ307に進み、次回の本ルーチンの処理で用いるカム軸位相の前回進角値vvtaoldの記憶データを現在の実進角値vvtaをvvtaoldで更新して、本ルーチンを終了する。以上説明した本実施例1によれば、モータ回転速度が小さくなると、位置信号VTSや方向信号VTDのエッジを検出できないためにモータ回転状態検出系の異常診断を誤判定する可能性があることを考慮して、カム軸位相変化速度及びエンジン回転速度neに基づいてモータ回転速度推定値revmotorを算出し、このモータ回転速度推定値revmotorが所定範囲内|revmotor|≦KMOTOREN1にあるときに異常診断を禁止するようにしたので、位置信号VTSや方向信号VTDのエッジを検出できない可能性のあるモータ低回転領域でモータ回転状態検出系の正常な状態を異常と誤判定することを未然に防止でき、異常診断の信頼性を向上することができる。図7に示すように、カム軸位相バルブタイミングを遅角する場合は、モータ回転速度を低下させるため、モータ回転速度が0付近となる可能性があり、位置信号VTSや方向信号VTDのエッジを検出できない可能性がある。そこで、本発明の実施例2では、図9の異常診断許可/禁止判定ルーチンを実行することで、カム軸位相が遅角側に変化しているときに、モータ回転状態検出系の異常診断を禁止するようにしている。本実施例2でも、前記実施例1で説明した図4、図6の各異常診断ルーチンを実行する。図9の異常診断許可/禁止判定ルーチンは、所定の診断処理周期例えば40ms周期で繰り返し実行され、特許請求の範囲でいう異常診断手段として役割を果たす。本ルーチンが起動されると、まずステップ401で、現在のカム軸位相実進角値vvtaと、本ルーチンの前回終了時に取り込んだカム軸位相vvtaoldとの差であるカム軸位相変化量を求め、このカム軸位相変化量が所定値KMOTOREN2例えば0又は0付近の値以上であるか否かを判定する。その結果、カム軸位相変化量が所定値KMOTOREN2以上であると判定されれば、カム軸位相が遅角側に変化していないと判断して、ステップ402に進み、ステップ異常診断許可フラグxjdgeを1にセットして異常診断を許可する。これに対し、上記ステップ401で、カム軸位相変化量が所定値KMOTOREN2未満と判定されれば、カム軸位相が遅角側に変化していると判断して、ステップ403に進み、異常診断許可フラグxjdgeを0にリセットして異常診断を禁止する。この後、ステップ404に進み、次回の本ルーチンの処理で用いるカム軸位相の前回進角値vvtaoldの記憶データを現在の実進角値vvtaをvvtaoldで更新して、本ルーチンを終了する。以上説明した本実施例2によれば、カム軸位相が遅角側に変化しているときに、モータ回転速度が0付近となる可能性があり、それによって位置信号VTSや方向信号VTDのエッジを検出できない可能性があることを考慮して、カム軸位相が遅角側に変化しているときに、モータ回転状態検出系の異常診断を禁止するようにしたので、位置信号VTSや方向信号VTDのエッジを検出できない可能性のあるモータ低回転領域で、モータ回転状態検出系の正常な状態を異常と誤判定することを未然に防止でき、異常診断の信頼性を向上することができる。上記実施例1,2では、モータ回転速度が0付近の所定範囲内のときや、カム軸位相が遅角側に変化しているときに、モータ回転状態検出系の異常診断を禁止するようにしたが、診断結果を無効とするようにしても良い。また、上記実施例1,2では、カム軸位相の変化速度及びエンジン回転速度に基づいてモータ回転速度を推定するようにしたが、例えばモータ駆動電流から推定しても良い。その他、本発明は、異常診断方法を適宜変更しても良い等、要旨を逸脱しない範囲内で種々変更して実施できる。"