(57)【要約】【課題】従来、大きなストローク内のアブソリュート位置の検出を行う際、大きな記憶容量と、長い処理時間を必要とした。【解決手段】循環周期が互いに素の関係をもつ第１のＭ系列コードと、第２のＭ系列コードとの排他的論理和から生成される大きな循環周期の不規則循環乱数コードＸG-18（ＧＯＬＤ系列）を、アブソリュート位置センサ１２で検出し、マイクロプロセッサ１１とＲＯＭ９、１０とで、ＸG-18第１のＭ系列コードとの排他的論理和演算の結果と、第２のＭ系列コードとが一致するかを判定し、一致と判定した時の、第１のＭ系列の番地ｉと、第２のＭ系列の番地ｊとからアブソリュート位置Ｘを演算する方法により、高速な処理時間と、少ないＲＯＭ記憶領域とを実現する。【選択図】        図１
2004212072.tif 000002
【特許請求の範囲】
【請求項１】
循環周期が互いに素の関係をもつ２n−１（ｎは自然数）の周期で循環する第１のＭ系列コードと２m−１（ｍは自然数）の周期で循環する第２のＭ系列コードとの排他的論理和より生成される前記２つのＭ系列コードよりも大きな循環周期（２n−１）×（２m−１）を持つ不規則循環乱数コードの値から、アブソリュート位置を検出する方法において、
前記第１のＭ系列コードＮ（Ｎ≧ｎ＋ｍ）ｂｉｔとそのコードの番地を示す数値ｉを求めるＭ系列発生手段と、
前記不規則循環乱数コードＮｂｉｔと前記Ｍ系列発生手段が発生する前記第１のＭ系列コードＮｂｉｔとの排他的論理和を求める第１の演算手段と、
前記第２のＭ系列コードを、そのコードの番地を示す数値ｊに変換して求める第１の変換手段と、
前記第１の演算手段が求めたコードと前記第２のＭ系列コードとの一致の判定を行い、さらに一致したときの前記数値ｊを求めるコード判定手段と、
前記コード判定手段が一致すると判定した時の前記数値ｉと、前記数値ｊとに対して前記アブソリュート位置を求める第２の変換手段とを具備することを特徴とするアブソリュート位置検出方法。
【請求項２】
前記コード判定手段は、前記第１の変換手段を具備し、前記第１の演算手段が求めたＮｂｉｔのうちのｍｂｉｔの入力に対し前記第２のＭ系列コードと対応する番地を示す前記数値jを求めることを特徴とする請求項１に記載のアブソリュート位置検出方法。
【請求項３】
前記第１の変換手段は、ｍｂｉｔの前記第２のＭ系列コードに対応する前記数値ｊを予め記憶した第１のルックアップテーブルを用いて変換することを特徴とする請求項２に記載のアブソリュート位置検出方法。
【請求項４】
前記第２の変換手段は、式ｈ＝ＭＯＤ（ｊ−ｉ 、２n−１）による数値ｈと、数値ｈに１対１に対応した関数ｆ(ｈ)と、式Ｘ＝ｊ＋ｆ(ｈ)×（２m−１）の計算によりアブソリュート位置Ｘに変換することを特徴とする請求項１に記載のアブソリュート位置検出方法。
【請求項５】
前記第２の変換手段は、前記数値ｈに対応するｆ(ｈ)を予め記憶した第２のルックアップテーブルを用いて変換することを特徴とする請求項４に記載のアブソリュート位置検出方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、互いに素の循環周期の関係にある複数の不規則循環乱数コードから生成される不規則循環乱数コードをアブソリュート位置として検出する装置に関する。
【０００２】
【従来の技術】
工作機械等で高精度の加工を行うためには、ワークピースあるいは工具のアブソリュート（絶対値）位置を正確に検出することが求められる。ストローク内のアブソリュート位置を検出する方法として、ストローク内の位置に対応したＭ系列等の不規則循環乱数コードを出力するアブソリュート位置センサの出力からアブソリュート位置を検出する方法が知られている。
【０００３】
図７は、従来の不規則循環乱数コードを出力するアブソリュートセンサからアブソリュート位置を求める方法の例を示すブロック図である。同図でアブソリュート位置センサ２は位置変化に対応して、不規則循環乱数コードである５ｂｉｔ長の５ｂｉｔＭ系列コードＭ5-5を出力する。５ｂｉｔＭ系列発生装置１は、５ｂｉｔのシフトレジスタの右から５ｂｉｔ目と２ｂｉｔ目の排他的論理和をとり１ｂｉｔ左へシフトする動作をし、排他的論理和演算結果を１ｂｉｔ目に入力する第1の演算により、２5−１を１周期とするＭ系列コードを発生する。アブソリュート位置センサ２から得られる５ｂｉｔ長の５ｂｉｔＭ系列コードＭ5-5とＭ系発生装置1から得られる５ｂｉｔ長の５ｂｉｔＭ系列コードＭ5-5'の値をマイクロプロセッサ３で比較し、比較結果が一致するまで式（１）のようにシフトレジスタのシフト数を示す数値iを増加させ、シフトカウンタ４でカウントしつつ、前記第１の演算を繰り返しＭ5-5 ＝Ｍ5-5'となったとき、数値iの値がアブソリュート位置Ｘとなる。
【０００４】
【数１】
ｉ＝ｉ＋１                          ……（１）
【０００５】
本例では最大で２5−１回だけ第１の演算をする必要がある。ここでは説明を簡易にするために５ｂｉｔＭ系列の構成を示したが、アブソリュート位置検出すべきストロークの長さに応じてシフトレジスタのｂｉｔ数を設定する必要がある。また、ｎｂｉｔのＭ系列で全ストロークのアブソリュート位置を表し、アブソリュート位置を求める場合、最大で２n−１回だけ上記演算を繰り返す必要がある。ストローク長が２６２１４３（２６２１４３＝２18−１）のコードで表される場合、最大で２18−１回の第1の演算を繰り返す。
【０００６】
図８は、別な従来の不規則循環乱数コードを出力するアブソリュート位置センサの出力からアブソリュート位置を求める方法の例を示すブロック図である。同図で図７と同一構成箇所は同符号を付し説明を省略する。図９は図８のＲＯＭ５の記憶内容を示しており、５ｂｉｔ長の５ｂｉｔＭ系列コードＭ5-5と対応するアブソリュート位置Ｆ（Ｍ5-5）を記憶している。ＲＯＭ５には（２5−１）×１ｂｙｔｅの記憶領域を必要とする。アブソリュート位置センサ２から得られる５ｂｉｔ長の５ｂｉｔＭ系列コードＭ5-5をマイクロプロセッサ６とＲＯＭ５よりＦ（Ｍ5-5）に変換し、アブソリュート位置Ｘを得る。ＲＯＭなどのメモリへの記憶内容の容量は（２n−１）×（ｂｙｔｅ  ｏｒ  ｗｏｒｄ  ｏｒ  ｌｏｎｇｗｏｒｄ）だけ必要となる。Ｍ系列コードはｎ桁のコード長で表現されるためｎ≦８の場合はｂｙｔｅ、８＜ｎ≦１６の場合はｗｏｒｄとなり、１６＜ｎ≦３２の場合はｌｏｎｇ  ｗｏｒｄとなる。ストローク長が２６２１４３（２６２１４３＝２18−１）の場合（２18−１）×（ｌｏｎｇ  ｗｏｒｄ）だけの記憶領域が必要となる。
【０００７】
【特許文献１】
特開平８−２９２００号公報
【特許文献２】
特願２００１−２９６１４５号公報
【０００８】
【発明が解決しょうとする課題】
図７のアブソリュート位置検出方法の例では、大きなストローク内のアブソリュート位置検出において、アブソリュート位置検出用の記憶ＲＯＭを必要とせず実装面積を小さくできるが、長ストローク時のアブソリュート位置演算処理を高速に行えないという問題がある。一方、図８、９のアブソリュート位置検出方法の例では大きなストロークの場合、大きな記憶容量が必要となり実装面積の拡大、コスト高になるという問題がある。
【０００９】
本発明は上述のような事情から成されたものであり、本発明の目的は、不規則循環乱数コードを出力するアブソリュート位置センサから比較的高速に長ストロークのアブソリュート位置の検出が可能であり、大容量な記憶領域を必要とせず低コストで小型化されたアブソリュート位置を検出する方法を提供することにある。
【００１０】
【課題を解決するための手段】
本発明にかかるアブソリュート位置検出方法は、循環周期が互いに素の関係をもつ２n−１（ｎは自然数）の周期で循環する第１のＭ系列コードと２m−１（ｍは自然数）の周期で循環する第２のＭ系列コードとの排他的論理和より生成される前記２つのＭ系列コードよりも大きな循環周期（２n−１）×（２m−１）を持つ不規則循環乱数コードの値から、アブソリュート位置を検出する方法において、前記第１のＭ系列コードＮ（Ｎ≧ｎ＋ｍ）ｂｉｔとそのコードの番地を示す数値iを求めるＭ系列発生手段と、前記不規則循環乱数コードＮｂｉｔと前記Ｍ系列発生手段が発生する前記第１のＭ系列コードＮｂｉｔとの排他的論理和を求める第１の演算手段と、前記第２のＭ系列コードを、そのコードの番地を示す数値ｊに変換して求める第１の変換手段と、前記第１の演算手段が求めたコードと前記第２のＭ系列コードとの一致の判定を行い、さらに一致したときの前記数値jを求めるコード判定手段と、前記コード判定手段が一致すると判定した時の前記数値iとに対して前記数値jとに対して前記アブソリュート位置を求める第２の変換手段とを具備することを特徴とするアブソリュート位置検出方法によるものである。
【００１１】
これにより、循環周期（２n−１）×（２m−１）の不規則循環乱数コードで表現される長ストローク内のアブソリュート位置を、循環周期（２n−１）と（２m−１）とに分けることができ、第１のルックアップテーブルを用いた第１の変換手段と、第２のルックアップテーブルを用いてアブソリュート位置Ｘを算出する第２の変換手段により、比較的高速にアブソリュート位置Ｘを求めることができ、また第１、第２のルックアップテーブルを非常に容量の小さなＲＯＭ等のメモリで実現することができる。
【００１２】
【発明の実施の形態】
図１は本発明のアブソリュート位置検出方法によるアブソリュート位置検出装置の例を示すブロック図である。また、図４は図１のマイクロプロセッサ１１で行われるデータ処理を示すフローチャートである。図1で、アブソリュート位置センサ１２は、１８ｂｉｔ長の１８ｂｉｔ不規則循環乱数コードＸG-18を位置に対応して出力する。
【００１３】
本実施形態で用いられる１８ｂｉｔ長の１８ｂｉｔ不規則循環乱数コードＸG-18の生成方法を図６に示す。図６では式（２）に示すように、５ｂｉｔＭ系列発生装置８（ｎ＝５）から得られる１８ｂｉｔ長の２5−１の周期で循環する５ｂｉｔＭ系列コードＭ5-18と、１３ｂｉｔＭ系列発生装置７（ｍ＝１３）から得られる１８ｂｉｔ長の２13 −１の周期で循環する１３ｂｉｔＭ系列コードＭ13-18との排他的論理和をとることにより、循環周期２５３９２１[２５３９２１＝（２5−１）×(２13 −１)]の１８ｂｉｔ長の不規則循環乱数コードＸG-18を発生する。ここで、循環周期２5−１（３１）と循環周期２13 −１（８１９１）は互いに素な関係となっている。
【００１４】
【数２】
2004212072.tif 000003
不規則循環乱数コードＸG-18は、スケールに予め刻まれており図１のアブソリュート位置センサ１２で検出される。
【００１５】
図４のフローチャートに沿って本発明による位置検出の処理方法を説明する。図１において、アブソリュート位置センサ１２から１８ｂｉｔ長の不規則循環乱数系列コードＸG-18をマイクロプロセッサ１１に入力する（ＳＴＥＰ１）。数値ｉの初期値としてｉ＝０を設定する（ＳＴＥＰ２）。マイクロプロセッサ１１では予め与えられた１８ｂｉｔ長の５ｂｉｔＭ系列コードＭ5-18 の初期値をｉ回シフトさせ、ｉ番地のＭ5-18を求める（ＳＴＥＰ３）。１８ｂｉｔ長の不規則循環乱数コードＸG-18と１８ｂｉｔ長の５ｂｉｔＭ系列コードＭ5-18との排他的論理和から、式（２）の関係より式（３）の関係が成立し１８ｂｉｔ長の１３ｂｉｔＭ系列コードＭ13-18が得られる（ＳＴＥＰ４）。
【００１６】
【数３】
2004212072.tif 000004
ＳＴＥＰ４で得られた１８ｂｉｔ長の１３ｂｉｔＭ系列コードＭ13-18から、１３ｂｉｔ長の１３ｂｉｔＭ系列コードＭ13-13を取出し、Ｍ13-13とその番地を示す数値ｊとの対応関係を表した図２に示すような第１のルックアップテーブルを用いて、Ｍ13-13を数値jに変換する第１の変換手段により、式（４）のように数値jを求める（ＳＴＥＰ５）。
【００１７】
【数４】
ｊ＝Ｆ1（Ｍ13-13） ……（４）
【００１８】
ここで、ＳＴＥＰ５、ＳＴＥＰ６の詳細な説明として、図２、５を用いてコード判定方法の例を説明する。図２に示すようなｍｂｉｔ長ｍｂｉｔＭ系列コードＭm-mと（図２ではｍ＝１３）、その番地を示す数値ｊとの対応関係を表した第１のルックアップテーブルを用いる。(図２の第１のルックアップテーブルでは１３ｂｉｔ長の１３ｂｉｔＭ系列コードＭ13-13と数値jとを１６進数で表している。)  図５に示すように、Ｎｂｉｔ長のｍｂｉｔＭ系列コードＭm-N のコード（図５ではＮ＝１８、ｍ＝１３）の先頭からｐ番目（ｐ≦Ｎの自然数、図５ではｐ＝１）のｍｂｉｔ長のｍｂｉｔＭ系列コードＭm-m(p)を取出し、第１の変換手段より対応する数値ｊ(p)を求める。ここでは、ｐ＝１としてＭ系列コードＭ13-18の先頭から1番目のＭ系列コードＭ13-13(1)に対応する数値ｊ(1)を求める（ＳＴＥＰ５−１）。
【００１９】
次にｐ＋ｑ番目（ｑは式０＜ｐ＋ｑ≦Ｎ−ｍ、ｑ≠０を満たす整数、図５ではｑ＝４）のｍｂｉｔ長のｍｂｉｔＭ系列コードＭm-m(p+q)を取出し、第1の変換手段により対応するｊ(p+q)を求める。ここでは、ｐ＝１、ｑ＝４としてＭ系列コードＭ13-18の先頭から５番目のＭ系列コードＭ13-13(5)に対応する数値ｊ(5)を求める。数値ｊ、ｐ、ｑの関係が、式（５）に示すような関係を満たすかどうかを判定する（ＳＴＥＰ５−２）。
【００２０】
【数５】
ｊ(p+q)＝ｊ(p)＋ｑ                  ……（５）
ｑの値を変化させ（Ｎ−ｍ＋１）通り以上のパターンに対して、式（５）を満たしているならば求められた数値ｊ(p)を数値ｊとして決定し、コード判定手段からＸG-18が一致していると判定する（ＳＴＥＰ５−３）。
【００２１】
ＳＴＥＰ５で求めた数値jから、コード判定手段によりＳＴＥＰ１で求めたＸG-18 が一致するか判定する。もしＳＴＥＰ６のコード判定手段でＸG-18が一致しているならば、ＳＴＥＰ７に進み、もしＸG-18 が一致していないならば、数値iを式（１）のように加算しＳＴＥＰ２に戻る（ＳＴＥＰ６）。第２の変換手段により、式（６）で示す数値ｈを求める（ＳＴＥＰ７）。図３に示す数値ｈと数値ｋとの対応を表した第２のルックアップテーブルにより、式（７）のように前記数値ｋを求める（ＳＴＥＰ８）。
【００２２】
【数６】
ｈ＝ＭＯＤ（j−i 、2n−1）                      ……（６）
【００２３】
【数７】
ｋ＝Ｆ2（ｈ）                             ……（７）
式（４）で求めたjと、式（７）で求めたｋと、第２のＭ系列コードの循環周期８１９１(８１９１=２13−１)とから、式（８）式の計算より０〜２５３９１９の値で示されるアブソリュート絶対位置Ｘを出力する（ＳＴＥＰ９）。
【００２４】
【数８】
Ｘ＝ｊ＋ｋ×（２m−１）                    ……（８）
【００２５】
本例でのコード判定方法では、第１のルックアップテーブルを用いて、数値ｊを求めたが、Ｍ系列発生器を用いて数値ｊを求めコード判定することも可能である。また、本実施例ではコード判定手段を不規則循環乱数コードと同じｂｉｔ長である１８ｂｉｔで行ったため、コード判定手段において、全ｂｉｔが完全に一致したときのみ一致と判定したが、冗長ｂｉｔが付加された１８ｂｉｔよりも大きいサイズを扱う場合は、ｂｉｔの一致が部分的であっても一致と判定することも可能である。本例では、循環周期が違いに素の関係をもつ２つのＭ系列コードからなる不規則循環乱数コードからアブソリュート位置を検出したが、互いに素の関係を持つ３つ以上のＭ系列コードからなる不規則循環乱数系列コードから、アブソリュート位置を検出することも可能である。
【００２６】
【発明の効果】
以上のように本発明のアブソリュート位置検出方法によれば、図７の従来例に示す方法と比較して、高速にアブソリュート位置の検出ができるので、高速処理を要求する装置に適用することができる。また、図８の従来例に示すアブソリュート位置検出方法に比べ、少ない容量のメモリ記憶容量で済み、省スペース化、及び低コスト化ができ、より大きなストロークの絶対位置検出をする場合に、大幅にメモリ記憶容量を小さくしつつ実現することが可能である。ローコストな１６ｂｉｔ以下のマイクロプロセッサでの処理において、例えば、１８ｂｉｔＭ系列コードで表現されるアブソリュート位置を、５ｂｉｔＭ系列コードと１３ｂｉｔＭ系列コードとからなる１８ｂｉｔＧｏｌｄ系列のアブソリュート位置に表すことにより、汎用レジスタでの処理が簡易になる。
【図面の簡単な説明】
【図１】本発明のアブソリュート位置検出方法の１例を示すブロック図。
【図２】図１のＲＯＭ９に記憶されている１３ｂｉｔ長の１３ｂｉｔＭ系列コードＭ13-13と、数値jとの対応を表した第１のルックアップテーブル。
【図３】図１のＲＯＭ１０に記憶されている数値ｈと、数値ｋとの対応を表した第２のルックアップテーブル。
【図４】１８ｂｉｔＧｏｌｄ系列コードＸG-18の入力から、アブソリュート位置Ｘ出力までのフローチャート。
【図５】ＳＴＥＰ５−１〜ＳＴＥＰ５−３の動作例を示す概略図。
【図６】５ｂｉｔＭ系列発生装置８と、１３ｂｉｔＭ系列発生装置７から構成される１８ｂｉｔＧｏｌｄ系列発生装置の１例を示す概略図。
【図７】従来例１を示すブロック図。
【図８】従来例２を示すブロック図。
【図９】図８のＲＯＭ５に記憶されている５ｂｉｔ長の５ｂｉｔＭ系列コードＭ5-5と、アブソリュート位置Ｆ（Ｍ5-5）の対応を表したテーブル。
【符号の説明】
１  ５ｂｉｔＭ系列発生装置
２  アブソリュート位置検出センサ（Ｍ系列）
３，６，１１  マイクロプロセッサ
４  シフトカウンタ
７，８  Ｍ系列発生装置
５,９,１０  ＲＯＭ
１２  アブソリュート位置検出センサ（Ｇｏｌｄ系列）
【図１】
2004212072.tif 000005
【図２】
2004212072.tif 000006
【図３】
2004212072.tif 000007
【図４】
2004212072.tif 000008
【図５】
2004212072.tif 000009
【図６】
2004212072.tif 000010
【図７】
2004212072.tif 000011
【図８】
2004212072.tif 000012
【図９】
2004212072.tif 000013