(57)【要約】【課題】可動軸が停止中でも、故障検出ができる位置検出器用アップダウンカウンタを提供することにある。【解決手段】位置検出器用アップダウンカウンタは、２相のセンサ信号の変化に応じて、アップ又はダウンするアップダウンカウント値に対して、周波数Ｆでカウントアップする値を加算したアップカウント値ＣＴを出力するアップカウンタ１４と、前記周波数Ｆに総カウント時間ｔを乗算した値Ｆ×ｔを、前記アップカウンタ値ＣＴから減算することにより、前記アップダウンカウント値を出力する信号処理部と、を備えることを特徴とする。【選択図】図１
2018084459.tif 000002
【特許請求の範囲】
【請求項１】
２相のセンサ信号の変化に応じて、アップ又はダウンするアップダウンカウント値に対して、周波数Ｆでカウントアップする値を加算したアップカウント値を出力するアップカウンタと、
前記周波数Ｆに総カウント時間ｔを乗算した値Ｆ×ｔを、前記アップカウンタ値から減算することにより、前記アップダウンカウント値を出力する演算部と、
を備えることを特徴とする位置検出器用アップダウンカウンタ。
【請求項２】
前記アップカウンタのカウントパルスを生成する論理回路は、前記カウントパルスを出力するタイミング以外の時間で、論理回路の入力を切り替えて、論理回路の出力をテストする手段を設けたことを特徴とする請求項１に記載の位置検出器用アップダウンカウンタ。
【請求項３】
前記アップカウンタのカウントパルスである信号ＣＵＰを生成する論理回路は、前記位置検出器の入力軸が停止中は、周期１／Ｆごとに１回、前記入力軸が正回転中は、周期１／Ｆごとに２回、信号ＣＵＰ＝１を出力し、前記入力軸が反回転中は、信号ＣＵＰ＝０を出力し、
前記アップカウンタは、前記信号ＣＵＰが、１から０に変化する度に、カウントアップした値を、前記アップカウンタ値として出力する、
ことを特徴とする請求項１または２に記載の位置検出器用アップダウンカウンタ。
【請求項４】
請求項１に記載の位置検出器用アップダウンカウンタと、
２相のセンサ信号の変化に応じて、アップ又はダウンする第２のアップダウンカウント値を出力する第２のアップダウンカウンタと、
を備え、
前記位置検出器用アップダウンカウンタのアップダウンカウント値と、前記第２のアップダウンカウント値の比較結果に基づいて、異常の有無を判定する、
ことを特徴とする位置検出器。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、位置センサから出力される２相のセンサ信号の変化に応じて、アップカウント又はダウンカウントするアップダウンカウンタにおいて、カウント値が変化しない条件でも、故障検出が可能な位置検出器用アップダウンカウンタおよび位置検出器に関する。
【背景技術】
【０００２】
近年、制御機器に搭載される回路規模の増大と信号処理の高速化及び集積回路の微細化、さらには、制御機器に組み込むソフトウェアの複雑化により、制御機器が偶発的に誤動作を起こす可能性が高まる傾向にある。このため、万一の制御機器誤動作に対して、制御対象となる機械の可動部を安全に停止させる安全機能が制御機器に搭載されるようになってきている。また、制御機器の誤動作を検出する装置としては、可動部を駆動するモータに設置した複数の位置センサからの２相のセンサ信号に基づき速度監視する速度監視装置等が、安全機能を有する制御装置に搭載されている。このような装置では、２相のセンサ信号の変化に応じて、アップカウント又はダウンカウントするアップダウンカウンタにより、２相のセンサ信号を位置データに変換する。さらに、マイクロコンピュータにより、一定時間あたりの位置データの差を演算して可動部の速度を求め、その値が安全な速度を超過していないかを監視する。さらに、機械の保護扉等が開いた状態で、安全速度を超過した場合は、モータ制御装置に停止指令を出力する。通常、このような速度監視装置の位置検出装置では、装置の信頼性を向上させるため、マイクロコンピュータ外部のアップダウンカウンタとマイクロコンピュータ搭載するアップダウンカウンタのように１組（２つ）のアップダウンカウンタを備えており、２つのアップダウンカウンタを相互比較することにより、両者のアップダウンカウンタの故障を検出するようにできている。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
前述した２つのアップダウンカウンタを持った速度監視装置では、可動部が動いている場合は、常にアップダウンカウンタの出力が変化するため、２つのカウント値を相互比較することにより、アップダウンカウンタの故障を検出することが可能である。しかし、可動部が停止中は、アップダウンカウンタの出力が変化しないため、一方のアップダウンカウンタの出力が変化しない故障モードなどでは、故障を検出できない場合がある。また、長時間可動部が停止する場合は、両方のカウンタが異なるタイミングで故障する場合も想定する必要がある。このとき、両方のアップダウンカウンタの出力が変化しないモードで故障した場合は、可動部が急に動きだして安全速度を超過しても、速度０の状態の安全な状態と判定されてしまう。このため、機械の保護扉等が開いた状態で、可動部が安全速度を超過して動いたとしてもモータを停止することができず、危険な状態となる可能性を否定できない。
【０００４】
なお、アップダウンカウンタの故障対策としては、独立した素子のアップダウンカウンタを３個以上使用して信頼性を上げる方法や、アップダウンカウンタの処理をすべてマイクロコンピュータ内のＣＰＵのソフトウェアで実現する方法もある。しかし、独立した素子のアップダウンカウンタを増加する方法は、コストと部品点数が増加するという問題がある。さらには、長期間可動しないときに、３つのアップダウンカウンタの出力が変化しないモードで故障する場合に対しては、故障検出ができないという問題がある。また、アップダウンカウンタの処理をＣＰＵのソフトウェアで行う方法は、ＣＰＵの自己診断処理によって、カウンタ処理機能の故障を検出することは可能である。しかし、２相のパルス信号の変化を常時ＣＰＵが監視する必要があるため、ＣＰＵの処理負担が増大するという問題がある。さらには、モータ１回転あたりの位置センサ信号のパルス数が大きい場合や監視速度が高い場合には、ＣＰＵではカウント処理ができなくなるという問題もあった。
【０００５】
本発明は、上述のような事情から成されたものであり、本発明の目的は、可動部が停止中でも、故障を検出できる位置検出器用アップダウンカウンタを提供することにある。
【課題を解決するための手段】
【０００６】
本発明の位置検出用アップダウンカウンタは、２相のセンサ信号の変化に応じて、アップ又はダウンするアップダウンカウント値に対して、周波数Ｆでカウントアップする値を加算した値でカウントアップするアップカウンタと、アップカウンタを一定周期でリードしたアップカウンタ値からＦ＊ｔ（ｔ＝アップカウンタリード時間）を減算することにより、アップダウンカウント値を出力するアップダウンカウンタである。
【０００７】
また、アップカウンタのカウントパルスを生成する論理回路は、カウントパルスを出力するタイミング以外の時間で、論理回路の入力を切り替えて、論理回路の出力をテストする手段を設けた方がよい。
【発明の効果】
【０００８】
本発明では、少なくとも１つのカウンタは、位置の停止および回転方向に関係なく、常にカウントアップするカウンタ回路を使用するため、カウント回路に故障があれば、カウント値が変化するため、他のカウント値と比較することにより、カウント回路の故障を検出できる。特に、カウンタ回路が停止するような故障の場合は、他のカウント値と比較しなくとも、アップカウンタのカウント値が変化しないことで、カウンタ回路の故障を検出できる。また、アップカウントするカウンタ回路の値を減算する処理は、一定時間Ｔごとに自己診断のできるＣＰＵ等により行っても、ＣＰＵの処理負担としては僅かである。また、アップカウントするカウンタ回路のアップカウントパルスを生成する論理回路の診断に関しては、１分間隔程度でカウントパルスを出力するタイミング以外の時間に、論理回路の入力データパターンを１つずつ変化させ、その論理回路の出力データパターンの正常データとの比較をＣＰＵ等により行うことができる。そのため、このテスト処理をＣＰＵに行わせたとしても、ＣＰＵの処理負担は僅かである。
【０００９】
以上より、本発明により、可動軸が停止中でも、故障を診断できるアップダウンカウンタを実現できる。
【図面の簡単な説明】
【００１０】
【図１】位置検出センサとしてレゾルバを使用した位置検出装置に、本発明のアップダウンカウンタを適用したブロック図である。
【図２】図１の論理回路２４の６つの入力信号に対する２つの出力の関係を示す真理値表である。
【図３】図２の真理値表の信号ＡＰ１，ＢＰ１，ＡＰ２，ＢＰ２を信号Ａ１，Ｂ１，Ａ２，Ｂ２に変換した真理値表である。
【図４】図３の真理値表の入力値Ａ１，Ｂ１，Ａ２，Ｂ２の値でまとめて簡略化し、出力値を信号Ｆｅｘの半サイクル内の信号ＣＵＰのパルス数で表した真理値表である。
【発明を実施するための形態】
【００１１】
図１で、３つの破線枠は、それぞれマイクロコンピュータ１とＦＰＧＡ２とレゾルバ３を示している。ＦＰＧＡ２が内蔵するタイミング発生器２１は、内蔵するクロック信号を分周してレゾルバ励磁信号の元となり、周波数Ｆ／２の矩形波信号Ｆｅｘとを出力する。また、タイミング発生器２１は、信号Ｆｅｘの２倍、４倍、８倍の周波数の矩形波信号ＤＦｅｘ（周波数Ｆ）、ＱＦｅｘ（周波数２Ｆ）、ＯＦｅｘ（周波数４Ｆ）を出力する。また、タイミング発生器２１は、信号Ｆｅｘ周期の半サイクルの１０倍のサイクル、すなわち、周波数Ｆ／１０で、周期１０／Ｆで、割り込み信号ＴＩＮＴを出力する。
【００１２】
波形整形回路４と増幅器５では、矩形波信号Ｆｅｘを波形整形して正弦波信号に変換し、増幅器５で増幅することにより、レゾルバ励磁信号ＥＸＷが増幅器５から出力される。レゾルバ励磁信号ＥＸＷは、レゾルバ３の励磁巻線３３を励磁する。レゾルバ３の２つの検出巻線３４と巻線３５からは、それぞれ信号Ａと信号Ｂが出力される。レゾルバ３では、外周部に３２個の凹凸を有する磁性体から成るロータが入力軸３１に固着されている。このような構造のレゾルバでは、入力軸３１の回転量をθとすると、信号ＡはＣＯＳ（３２θ）・ＳＩＮ（２π・Ｆｅｘ・ｔ）で表現できる信号となる。また、信号ＢはＳＩＮ（３２θ）・ＳＩＮ（２π・Ｆｅｘ・ｔ）で表現できる信号となる。
【００１３】
信号Ａと信号Ｂは、それぞれ増幅器８と増幅器９で増幅され、信号ＡＳと信号ＢＳとなる。信号ＡＳと信号ＢＳは、それぞれマイクロコンピュータが内蔵するＡＤ変換器１２とＡＤ変換器１３で、ＳＩＮ（２π・Ｆｅｘ・ｔ）＝１となるタイミングでＡＤ変換され、デジタルの信号ＡＤＤＡと信号ＡＤＤＢに変換される。
【００１４】
また、信号ＡＳと信号ＢＳは、それぞれコンパレータ６とコンパレータ７により２値化され、信号ＡＰと信号ＢＰとして出力される。信号ＡＰと信号ＢＰは、ＦＰＧＡ２内の４ビットラッチ回路２２で、信号ＤＦｅｘの立ち上がりエッジでラッチされ、信号ＡＰ１と信号ＢＰ１として出力される。また、信号ＡＰ１と信号ＢＰ１もそれぞれ４ビットラッチ回路２２でラッチされ、信号ＡＰ２と信号ＢＰ２として出力される。ここで信号ＡＰ１と信号ＢＰ１は、入力軸３１が１回転すると３２パルス出力する２相のパルスエンコーダと等価な信号を信号Ｆｅｘ＝０で出力が反転する信号となる。また、信号ＡＰ２と信号ＢＰ２は、それぞれ信号ＡＰ１と信号ＢＰ１の信号Ｆｅｘの半サイクル前の信号となる。ここで、入力軸３１の回転中、信号ＡＰ１と信号ＡＰ２の値が一致しているときには、信号ＢＰ１と信号ＢＰ２の値が反転し、信号ＡＰ１と信号ＡＰ２の値が反転しているときには、信号ＢＰ１と信号ＢＰ２の値が一致する。また、入力軸３１が停止している場合、信号ＡＰ１と信号ＡＰ２は、互いに値が反転しており、また、信号ＢＰ１と信号ＢＰ２は、互いに値が反転している。さらに、励磁信号ＥＸＷが断線などで、励磁巻線３３を励磁できなくなった場合には、ＡＰ１＝ＡＰ２かつＢＰ１＝ＢＰ２となる。
【００１５】
選択器２３では、信号ＱＦｅｘ（周波数２Ｆ）が１のタイミングで、信号ＤＦｅｘ、信号Ｆｅｘ、信号ＡＰ１、信号ＢＰ１、信号ＡＰ２、信号ＢＰ２を、信号Ｓ１、信号Ｓ２、信号Ｓ３、信号Ｓ４、信号Ｓ５、信号Ｓ６として出力する。論理回路２４では、信号Ｓ１、信号Ｓ２、信号Ｓ３、信号Ｓ４、信号Ｓ５、信号Ｓ６の入力に応じて、図２の真理値表に示す対応関係で信号ＵＣと信号ＥＲを出力する。
【００１６】
図２の真理値表に従えば、ＡＰ１≠ＡＰ２かつＢＰ１≠ＢＰ２かつＤＦｅｘ＝１のときにＵＣ＝１としている。そのため、入力軸３１が停止中は、Ｆｅｘの半サイクルに１回、ＵＣ＝１が出力される。また、ＡＰ１＝ＡＰ２かつＢＰ１＝ＢＰ２のときにＥＲ＝１としている。そのため、励磁信号ＥＸＷが断線などで、励磁巻線３３を励磁できなくなった場合には、ＥＲ＝１が出力される。さらに、（ＡＰ１，ＡＰ２，ＢＰ１，ＢＰ２）の組み合わせが、（０，０，１，０）、（０，１，０，０）、（１，０，１，１）、（１，１，０，１）のときは、ＤＦｅｘ＝１およびＤＦｅｘ＝０のいずれの場合でも、ＵＣ＝１としている。さらに、（ＡＰ１，ＡＰ２，ＢＰ１，ＢＰ２）の組み合わせが、（１，０，０，０）、（１，１，１，０）、（０，０，０，１）、（０，１，１，１）のとき、ＤＦｅｘ＝１およびＤＦｅｘ＝０のいずれの場合でも、ＵＣ＝０としている。
【００１７】
ＡＮＤ回路２５では、信号ＱＦｅｘと信号ＯＦｅｘがともに１のタイミングで信号ＵＣが１の時にのみカウントアップ用の信号ＣＵＰを１にして出力する。また、ＡＮＤ回路２６では、信号ＱＦｅｘと信号ＯＦｅｘがともに１のタイミングで信号ＥＲが１の時にのみ信号ＥＲＩＮＴを１にして出力する。
【００１８】
図２の真理値表では、信号ＡＰ１、信号ＢＰ１、信号ＡＰ２、信号ＢＰ２は、信号Ｆｅｘに同期したレゾルバ励磁信号ＥＸＷによって正負に変調された信号をコンパレータ６，７によって二値化した値を示している。信号ＡＰ１、信号ＢＰ１、信号ＡＰ２、信号ＢＰ２は、一般的な２相のパルスエンコーダの信号とは異なるため、その動作がわかりにくくなっている。そこで、信号ＡＰ１、信号ＢＰ１を其々信号Ｆｅｘの否定値で排他論理和した値をＡ１，Ｂ１とし、信号ＡＰ２、信号ＢＰ２其々を半サイクル前の信号Ｆｅｘの値で排他論理和した値をＡ２，Ｂ２とすれば、Ａ１とＢ１は、ＣＯＳ（３２θ）とＳＩＮ（３２θ）をそれぞれ２値化した値となり、一般的な２相のパルスエンコーダのＡ相信号とＢ相信号と同じになる。この場合、入力軸３１がＣＣＷ方向に回転すると、１／１２８回転移動するごとに信号Ａ１，Ｂ１は、１，１→０，１→０，０→１，０→１，１のように変化する。図２の真理値表の信号ＡＰ１，ＢＰ１，ＡＰ２，ＢＰ２を信号Ａ１，Ｂ１，Ａ２，Ｂ２に変換すると図３の真理値表となる。また、図３の真理値表の入力値Ａ１，Ｂ１，Ａ２，Ｂ２の値でまとめて簡略化し、出力値を信号Ｆｅｘの半サイクル内の信号ＣＵＰのパルス数で表すと、図４の真理値表となる。なお、図４の真理値表では、一般的なアップダウンカウンタを用いた場合のアップカウント信号を信号ＵＰで示し、ダウンカウント信号を信号ＤＯＷＮとしても示す。
【００１９】
図２や図４の真理値表より、レゾルバ３の入力軸３１が停止中又は、１／１２８回転可動するまでは、信号Ｆｅｘの半サイクルの周期につき（信号Ｆｅｘの２倍の周波数Ｆで）、１回カウントアップ用の信号ＣＵＰが信号ＱＦｅｘと信号ＯＦｅｘがともに１のタイミングで１となる。これにより、信号ＣＵＰは停止中でもＦｅｘの２倍の周波数Ｆでカウンタをカウントアップするパルス信号となる。また、入力軸３１が１／１２８回転ＣＣＷ方向に可動するたびに、信号Ｆｅｘの半サイクルで、カウントアップ用の信号ＣＵＰが信号ＱＦｅｘと信号ＯＦｅｘがともに１のタイミングで２回１となり、停止中よりも１回多くカウントアップする。また、入力軸３１が１／１２８回転ＣＷ方向に可動するたびに、信号Ｆｅｘの半サイクルで、カウントアップ用の信号ＣＵＰが０のままとなり、信号Ｆｅｘの半サイクル内でカウントアップしないタイミングが発生する。
【００２０】
以上の他、励磁信号ＥＸＷが断線などで、励磁巻線３３を励磁できなくなった場合など、信号ＡＰ、ＢＰが両方ともに変化しなくなったとき（ＡＰ１＝ＡＰ２かつＢＰ１＝ＢＰ２のとき）は、信号ＥＲＩＮＴが１となる。また、断線などで、信号ＡＰ，ＢＰの一方が変化しなくなった場合（ＡＰ１＝ＡＰ２またはＢＰ１＝ＢＰ２のとき）でも、入力軸３１が１／６４回転可動するまでに他方の信号も変化しないタイミングがあるため、必ず信号ＥＲＩＮＴが１となり、断線等の異常を検出することが可能である。一般的な２相のパルスエンコーダの場合は、Ａ相信号又はＢ相信号が断線してもＡ１＝Ａ２またはＢ１＝Ｂ２となるだけのため、異常を検出することはできない。
【００２１】
マイクロコンピュータ１の１６ビットアップカウンタ１４は、ＦＰＧＡ２からの信号ＣＵＰが０から１に変化するたびに１６ビットデータ信号ＣＴをカウントアップする。キャプチャーレジスタ１５は、ＦＰＧＡ２からの信号ＴＩＮＴが０から１に変化すると、アップカウントデータである信号ＣＴをラッチし、信号ＣＴＬを出力する。マイクロコンピュータ１内のＣＰＵ１１（演算部）は、信号ＴＩＮＴが０から１に変化すると割り込み処理が起動する。信号ＴＩＮＴによる割り込み処理では、１６ビット変数ＦＴに１０を加算して変数ＦＴを更新する。ここで、変数ＦＴに加算される数値「１０」とは、信号ＴＩＮＴの１周期である５×（２／Ｆ）を、Ｆｅｘの半周期（１／Ｆ）で除算した値である。この数値「１０」は、入力軸３１の停止中において、信号ＴＩＮＴの１周期の間における信号ＣＴのカウントアップ回数と同じである。これにより、変数ＦＴは、キャプチャーレジスタ１５が１６ビットデータ信号ＣＴをキャプチャーした時間ｔに周波数Ｆを乗算した数と同じ値となる。次に、キャプチャーレジスタ１５からカウントデータとなる１６ビットデータＣＴＬを読み出し、１６ビット変数ＦＴを減算することにより、レゾルバ３の入力軸３１の回転量を１／１２８回転の分解能で検出することができる。次に、信号ＡＤＤＡと信号ＡＤＤＢを読み出し、逆正接演算処理することにより、入力軸３１の回転量１／３２回転内の回転量を１６ビットの分解能で検出する。次に、分解能の異なる２つの回転量を結合することで、入力軸３１の１回転を２２ビットで示す位置データＰＯを生成し、シリアル通信ＩＦ１６を介して、生成した位置データをシリアル信号ＴＸとして外部へ出力する。
【００２２】
また、ＣＰＵ１１では、ＦＰＧＡ２からの信号ＥＲＩＮＴが０から１に変化すると、エラー割り込み処理が起動し、位置データの送信を停止するとともに、エラー情報をシリアル通信ＩＦ１６を介して外部へ出力する。また、図１には記載していないが、ＦＰＧＡ２には、２相のセンサ信号の変化に応じて図４の真理値表に示した信号ＵＰまたは信号ＤＯＷＮに応じてアップ又はダウンカウントする１６ビットの第２のアップダウンカウンタも搭載している。ＣＰＵ１１の信号ＴＩＮＴによる割り込み処理では、上記の処理以外にもＦＰＧＡ２の第２のアップダウンカウンタの第２のアップダウンカウント値を読み出し、１６ビットデータＣＴＬから変数ＦＴを減算したデータと比較するカウンタのテスト処理も行っており、比較値が異なる場合は、エラー割り込み処理と同じ動作を行う。
【００２３】
また、ＣＰＵ１１では、信号ＴＩＮＴによる割り込み処理の１０００回につき１回の割合で、ＦＰＧＡ２内の６ビットのＴＰレジスタ２７の値を１インクリメントする。ＴＰレジスタ２７の６ビット出力である信号ＴＰ１、信号ＴＰ２、信号ＴＰ３、信号ＴＰ４、信号ＴＰ５、信号ＴＰ６は、選択器２３へ入力される。選択器２３では、信号ＱＦｅｘが０のタイミングで、信号ＴＰ１、信号ＴＰ２、信号ＴＰ３、信号ＴＰ４、信号ＴＰ５、信号ＴＰ６を、信号Ｓ１、信号Ｓ２、信号Ｓ３、信号Ｓ４、信号Ｓ５、信号Ｓ６として出力する。８ビットＴＲレジスタ２８では、信号ＱＦｅｘが０から１に変化するタイミングで、信号Ｓ１、信号Ｓ２、信号Ｓ３、信号Ｓ４、信号Ｓ５、信号Ｓ６と論理回路２４の出力の信号ＵＣ、信号ＥＲをラッチする。また、ＣＰＵ１１では、信号ＴＩＮＴによる割り込み処理で、ＴＰレジスタ２７の値を１インクリメントした次のサイクルで、ＴＲレジスタ２８から読み出した８ビットのデータが図２の真理値表に一致するかを比較する。また、信号Ｓ１、信号Ｓ２、信号Ｓ３、信号Ｓ４、信号Ｓ５、信号Ｓ６が信号ＴＰ１、信号ＴＰ２、信号ＴＰ３、信号ＴＰ４、信号ＴＰ５、信号ＴＰ６と一致するかを比較する。これらの比較で１つでも不一致があった場合は、エラー割り込み処理と同じ動作を行う。
【００２４】
なお、図１では、位置センサの断線検出も可能なレゾルバの例を説明したが、位置センサとしては、一般的な２相のパルスエンコーダを用いた位置検出装置でも本発明のアップダウンカウンタを使用可能である。また、本アップダウンカウンタを実施する場合の注意としては、最高回転数でのアップダウンカウンタのカウントアップ又はカウントダウン周波数よりも、アップカウンタが停止時のカウントアップ周波数Ｆを高く設定する必要がある。
【符号の説明】
【００２５】
１  マイクロコンピュータ、２  ＦＰＧＡ、３  レゾルバ、４  波形成形器、５，８，９  増幅器、６，７  コンパレータ、１１  ＣＰＵ、１２，１３  ＡＤ変換器、１４  カウンタ、１５  キャプチャーレジスタ、１６  シリアル通信ＩＦ、２１  タイミング発生器、２２  ラッチ回路、２３  選択器、２４  論理回路、２５，２６  ＡＮＤ回路、２７，２８  レジスタ、３１  入力軸。
【図１】
2018084459.tif 000003
【図２】
2018084459.tif 000004
【図３】
2018084459.tif 000005
【図４】
2018084459.tif 000006