(57)【特許請求の範囲】
【請求項１】
２のＮ乗値を、パルスエンコーダの１回転で出力するパルス数に所定数を乗じた値で除算することで得られる除算演算値を変換定数とし、
回転軸に結合した前記パルスエンコーダが出力するパルス数を前記所定数倍して得られるパルス数を計数し、
この計数値に前記変換定数を乗じて得られる値を変換パルス数とし、
この変換パルス数と、前記２のＮ乗値の１６進数変換値から１を減算して得られるマスクデータとの論理積を演算し、
該論理積演算結果を前記主軸の現在位置データとすることを特徴とするパルスエンコーダによる位置検出方法。
【請求項２】
２のＮ乗値を、パルスエンコーダの１回転で出力するパルス数に所定数を乗じた値で除算することで得られる除算演算値を変換定数とし、
回転軸に結合した前記パルスエンコーダが出力するパルス数を前記所定数倍して得られるパルス数を計数し、
この計数値に前記変換定数を乗じて得られる値を変換パルス数とし、
この変換パルス数と、前記２のＮ乗値の１６進数変換値から１を減算して得られるマスクデータとの論理積を演算し、
該論理積演算結果と、別途に設定する停止位置設定値に前記変換定数を乗じて得られる値との偏差を求め、
この偏差値を零にする調節動作により、前記主軸を前記停止設定位置に停止させることを特徴とするパルスエンコーダによる停止位置制御方法。
【請求項３】
請求項１または請求項２に記載のパルスエンコーダによる位置検出方法または停止位置制御方法において、
前記変換定数を求める際に、２のＮ乗値から１を差し引いた値が、パルスエンコーダの１回転で出力されるパルス数を前記所定数倍して得られる値よりも大となるように前記Ｎの値を定めることを特徴とするパルスエンコーダによる位置検出方法または停止位置制御方法。
【発明の詳細な説明】
【発明の属する技術分野】
この発明は、パルスエンコーダの１回転パルス数が任意の値であっても、連続的なパルスカウントにより位置検出や停止位置制御が行えるパルスエンコーダによる位置検出方法または停止位置制御方法に関する。
【従来の技術】
図３は２N Ｐ／Ｒ（Ｐ／Ｒ＝パルス数／１回転）なるパルス数を出力するパルスエンコーダによる位置検出方法の従来例を示したブロック回路図であるが、ここではパルスエンコーダの出力パルス数が２10Ｐ／Ｒ＝１０２４Ｐ／Ｒの場合を例にして説明する。
図３の従来例回路において、図示していないパルスエンコーダが出力するＡ相パルス１１とＢ相パルス１２（いずれも１０２４Ｐ／Ｒ）を４逓倍回路１４へ入力させる。Ａ相パルス１１とＢ相パルス１２には９０度の位相差があるので、それぞれの立ち上がり点と立ち下がり点とを起点とすることで、４逓倍回路１４からは１０２４の所定倍数としての４倍のパルス数，すなわち４０９６Ｐ／Ｒが得られる。このようにパルスエンコーダの出力パルス数を４倍（または所定数倍）にすることで、検出位置の精度を向上させることができる。この４倍になったパルス数をパルスカウンタ１５で計数するのであるが、このときパルスエンコーダからその１回転につき１つ出力されるＺ相パルス１３も、パルスカウンタ１５へ入力される。このパルスカウンタ１５での計数値は、次段の１６進数変換回路１６において１６進数の値に変換される。
図４は主軸の原点付近の位置関係を示した位置相関図であって、Ｃ点を位置検出の基準となる電気的な原点（以下では単に原点と称する）とし、この原点であるＣ点から時計方向（以下ではこれを逆転と称する）に１パルス分（１回転の４０９６分の１）回転させた点を−Ａ点，２パルス分（１回転の４０９６分の２）回転させた点を−Ｂ点とする。また原点であるＣ点から反時計方向（以下ではこれを正転と称する）に１パルス分回転させた点を＋Ａ点，２パルス分回転させた点を＋Ｂ点とする。
Ｃ点（原点）でのパルスカウンタ１５の出力値は零であるとする。主軸がこのＣ点から正転方向に＋Ａ点まで回転したときのパルスカウンタ１５の出力値は１６進数での１であり、＋Ｂ点まで回転すれば１６進数での２を出力する。これから更にほぼ１回転して−Ｂ点に達すれば、そのときのパルスカウンタ１５の出力は１６進数でＦＦＥ（１０進数では４０９４）であり、−Ａ点に達すれば１６進数でＦＦＦ（１０進数では４０９５）となる。また、主軸がこのＣ点から逆転方向に−Ａ点まで回転したときのパルスカウンタ１５の出力値は１６進数でのＦＦＦとなり、−Ｂ点まで回転すれば１６進数でのＦＦＥを出力する。すなわち各点の値は、主軸の回転方向が正転方向であっても逆転方向であっても、同じ値を呈する。
マスク用データ発生回路１７では、１６進数での１０００なる値から１を差し引いたＦＦＦ（１０進数では２12−１＝４０９６−１）なる値がセットされ、これがマスク用データとなる。一方で主軸が−Ａ点から正転方向へ１パルス分回転したＣ点では、１６進数変換回路１６の出力値は、ＦＦＦに１を加算した１０００であり、これとマスク用データ発生回路１７のセット値ＦＦＦとを論理積演算回路１８において論理積演算すれば零となる。すなわち、主軸が１回転する度毎に１６進数変換回路１６の出力値は零にリセットされるから、論理積演算回路１８の演算結果が主軸の現在位置を示すことになる。
【発明が解決しようとする課題】
例えば１回転したときのパルス数が２０００となるパルスエンコーダを採用し、これを４逓倍して使用する場合は、１回転のパルス数は８０００である。従来と同様に１６進数を使ってＣ点（原点）の値を零とすれば、＋Ａ点の値は００１，＋Ｂ点の値は００２であり、これからほぼ１回転して−Ｂ点に達したときの値は１Ｆ３Ｅで、−Ａ点に達したときの値は１Ｆ３Ｆである。ここで−Ａ点から正方向へ１バルス分回転させたＣ点の値は、１Ｆ３Ｆに１を加算して１Ｆ４０となる。またＣ点から逆方向へ１パルス分回転させた−Ａ点での値は、零から１を減算し、これを４桁でマスクするとＦＦＦＦとなり、位置データが異なってしまうことになる。
すなわち、１回転のパルス数が２N とならないパルスエンコーダを使用する場合は、前述したように異なった位置データを呈することになるので、Ｃ点で零にクリアする際の処理が複雑になる欠点を有する。
そこでこの発明の目的は、パルス数が２N ではないパルスエンコーダを使用しても、原点の前後で位置データが不連続になるのを回避して、位置検出が容易に行えるようにすることにある。
【課題を解決するための手段】
前記の目的を達成するために、この発明のパルスエンコーダによる位置検出方法または停止位置制御方法は、
２のＮ乗値を、パルスエンコーダの１回転で出力するパルス数に所定数を乗じた値で除算することで得られる除算演算値を変換定数とし、回転軸に結合した前記パルスエンコーダが出力するパルス数を前記所定数倍して得られるパルス数を計数し、この計数値に前記変換定数を乗じて得られる値を変換パルス数とし、この変換パルス数と、前記２のＮ乗値の１６進数変換値から１を減算して得られるマスクデータとの論理積を演算し、該論理積演算結果を前記主軸の現在位置データとする。
または、２のＮ乗値を、パルスエンコーダの１回転で出力するパルス数に所定数を乗じた値で除算することで得られる除算演算値を変換定数とし、回転軸に結合した前記パルスエンコーダが出力するパルス数を前記所定数倍して得られるパルス数を計数し、この計数値に前記変換定数を乗じて得られる値を変換パルス数とし、この変換パルス数と、前記２のＮ乗値の１６進数変換値から１を減算して得られるマスクデータとの論理積を演算し、該論理積演算結果と、別途に設定する停止位置設定値に前記変換定数を乗じて得られる値との偏差を求め、この偏差値を零にする調節動作により、前記主軸を前記停止設定位置に停止させる。
前記変換定数を求める際に、２のＮ乗値から１を差し引いた値が、パルスエンコーダの１回転で出力されるパルス数を前記所定数倍して得られる値よりも大となるように前記Ｎの値を定める。
【発明の実施の形態】
以下では出力パルス数が３００００Ｐ／Ｒのパルスエンコーダを例にして、本発明の詳細を説明する。
図１は本発明の第１実施例を表したブロック回路図である。
図１の第１実施例回路において、図示していないパルスエンコーダが出力するＡ相パルス２１とＢ相パルス２２（いずれも３００００Ｐ／Ｒ）を４逓倍回路１４へ入力させることにより、図３で既述の従来例回路と同様に、４逓倍回路１４からは３００００の４倍である１２００００Ｐ／Ｒのパルス数が得られる。これをパルスカウンタ１５で計数するのであるが、このときパルスエンコーダからのＺ相パルス２３（１Ｐ／Ｒ）もパルスカウンタ１５へ入力される。このパルスカウンタ１５での計数値は変換定数回路２４へ入力され、パルス計数値と変換定数との積が演算される。
変換定数はパルスエンコーダの４逓倍値が２N となるように、以下の数式１により求める。
【数１】
変換定数＝１３１０７２／（３００００×４）＝１.０９２２６６６７
この変換定数を算出するための１３１０７２なる値は、（２N −１）＞（パルスエンコーダのパルス数の４逓倍値）となるようにＮの値を定めることで得られる。すなわち図１の第１実施例回路では、２N ＝２17＝１３１０７２とする。
前述した図４の位置相関図に記載の各点に対応する演算用位置データは、
＋Ａ点───１.０９２２６６６    −Ａ点───１３１０７０.９０７７
＋Ｂ点───２.１８４５３３３    −Ｂ点───１３１０６９.８１５５
として演算処理される。この演算用位置データは小数点を含む実数形であり、位置データをパルス計数値に整数形データとして逆変換する場合に、演算誤差を生じることなく逆変換を行うためには、有効数字が６桁となるようなデータとして位置データを演算すれば、演算誤差を生じない演算が可能になる。
なお、１３１０７２を１６進数で表せば２００００である。マスク用データ発生回路２５では、１６進数での２００００なる値から１を差し引いた１ＦＦＦＦなる値がセットされる。この１ＦＦＦＦと、主軸が−Ａ点から正転方向へ１パルス分回転したＣ点での変換定数回路２４の出力値２００００とを論理積演算回路１８において論理積演算すれば零となる。すなわち、主軸が１回転する度毎に変換定数回路２４の出力値は零にリセットされるから、論理積演算回路１８の演算結果が主軸の現在位置を示すことになるのは、図３の従来例回路の場合と同じである。
図２は本発明の第２実施例を表したブロック回路図であって、位置検出器２７は、３００００Ｐ／Ｒのパルスを出力するパルスエンコーダ２６，４逓倍回路１４，パルスカウンタ１５，変換定数回路２４，マスク用データ発生回路２４および論理積演算回路１８で構成されているが、これらの名称・用途・機能は既に説明済であるから、これらの説明は省略する。
この第２実施例回路では、別途に停止位置を停止位置設定器３１で設定しているが、この停止位置設定値と数式１で既述の変換定数との積を変換定数回路３２で演算する。この変換定数回路３２の演算値と論理積演算回路１８の演算値との偏差を位置調節器３３へ入力させることにより、この入力偏差を零に調節する制御信号が電動機制御回路３４へ与えられ、電動機３５を制御するから、主軸３６は設定された停止位置に停止することになる。
【発明の効果】
従来は、パルスエンコーダの出力パルス数が２N Ｐ／Ｒでない場合は、原点の前後で位置データが不連続になるため、位置検出の演算が複雑になる不都合があった。これに対して本発明では、パルスエンコーダの出力パルス数が任意の値であっても、２N −１なる値がこの出力パルス数，あるいはそれの４逓倍した値よりも大となるようにＮの値を選んだ変換定数をパルス計測数との積に採用することにより、原点の前後で位置データが不連続になるのを回避できるので、位置検出が容易に行える効果が得られる。
【図面の簡単な説明】
【図１】本発明の第１実施例を表したブロック回路図
【図２】本発明の第２実施例を表したブロック回路図
【図３】２N Ｐ／Ｒなるパルス数を出力するパルスエンコーダによる位置検出方法の従来例を示したブロック回路図
【図４】主軸の原点付近の位置関係を示した位置相関図
【符号の説明】
１１，２１  Ａ相パルス
１２，２２  Ｂ相パルス
１３，２３  Ｚ相パルス
１４        ４逓倍回路
１５        パルスカウンタ
１６        １６進数変換回路
１７，２５  マスク用データ発生回路
１８        論理積演算回路
２４，３２  変換定数回路
２６        バルスエンコーダ
２７        位置検出器
３１        停止位置設定器
３３        位置調節器
３４        電動機制御装置
３５        電動機
３６        主軸
【図１】
0004660983.tif 000002
【図２】
0004660983.tif 000003
【図３】
0004660983.tif 000004
【図４】
0004660983.tif 000005