(57)【特許請求の範囲】
【請求項１】
絶対位置データに対応付けられた符号ビット系列をパターンとして表した符号板と、
前記符号板上のパターンに沿って相対移動し、移動位置において、前記パターンの一部を読み取るパターン読取部を含むパターン検出部と、
前記パターン検出部が読み取ったパターンの一部に基づいて絶対位置データを演算して出力するデータ変換部と、を備えたアブソリュートエンコーダにおいて、
前記パターン検出部のパターン読取部は、絶対位置データの演算に必要なｎビットのパターン長に加え、それに隣接するパターン部分をｋビットの冗長パターンとして読み取り、前記データ変換部は、前記パターン検出部が読み取ったｋビットの冗長パターンを含むパターンの一部から一続きの絶対位置データの演算に必要なパターン長ｎビットのパターンを順次抽出し、当該抽出したｎビットのパターンに対応する絶対位置データが連続的に変化するか否かによって、前記パターン検出部が読み取ったパターンに誤りがあるか否かを判定する判定部を含むことを特徴とするアブソリュートエンコーダ。
【請求項２】
請求項１に記載のアブソリュートエンコーダにおいて、前記符号板に表された符号ビット系列は、所定の系列生成ルールに従って生成された符号ビット系列の一部にビットを挿入し、または前記生成された符号ビット系列の一部を削除した不連続部分を有する符号ビット系列であることを特徴とするアブソリュートエンコーダ。
【請求項３】
請求項１又は２に記載のアブソリュートエンコーダにおいて、前記判定部は、冗長パターンに含まれる符号を順次処理し、誤りがあると判定すると、直ちに誤りを報知することを特徴とするアブソリュートエンコーダ。
【請求項４】
請求項１又は２に記載のアブソリュートエンコーダにおいて、
前記パターン検出部が読み取った絶対位置データの演算に必要なｎビットのパターンとｋビットの冗長パターンを含むｎ＋ｋビットのパターンについて所定ビットまでの誤りの検出及び訂正を行い、ｎ＋ｋビットの訂正後パターンを出力する誤り訂正部と、前記訂正後パターンに基づいて演算した複数の絶対位置データを用いて、前記訂正後パターンに誤りがあると判定する判定部を有することを特徴とするアブソリュートエンコーダ。
【請求項５】
請求項４に記載のアブソリュートエンコーダにおいて、前記誤り訂正部は、前記符号ビット系列の系列生成ルールから生成可能なｍ（＜ｎ＋ｋ）ビットの誤り検出訂正能力を有する検査多項式を一つ以上用いて、前記パターン検出部が読み取った冗長ビットを含むｎ＋ｋビットのパターンにｍビット以下の誤りがあるか否かの判定を行い、誤りがあれば該当ビットを訂正してｎ＋ｋビットの検出訂正後パターンを出力することを特徴とするアブソリュートエンコーダ。
【請求項６】
請求項１から４のいずれかに記載のアブソリュートエンコーダにおいて、さらに、冗長パターンにより誤りがあると判定された場合には、前記データ変換部が出力する絶対位置データを破棄し、前記パターン検出部に再読みとりを指示する手段を含む、ことを特徴とするアブソリュートエンコーダ。
【請求項７】
請求項１から５のいずれかに記載のアブソリュートエンコーダにおいて、前記符号板に表された符号ビット系列は、Ｍ系列符号であることを特徴とするアブソリュートエンコーダ。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、直線駆動される対象物の位置を検出するアブソリュートエンコーダに係り、特に位置検出誤りを防止するための改良に関する。
【０００２】
【従来の技術】
従来、図１に示すようなＭ系列等の符号パターンに相当する光学格子を検出パターンとして形成した符号板１を用いて絶対位置を検出する光学式リニアエンコーダが広く知られている。この光学式リニアエンコーダは、工作機械、三次元測定器、投影機、顕微鏡などの測長装置として利用されている。
【０００３】
具体的に、従来の光学式リニアエンコーダの一種であるアブソリュートエンコーダは、図１に示すように、ｎ次のＭ系列符号パターン等を必要な周期に変換し、相当する光学格子を透明なガラス板上に形成した符号板１と、この符号板１に対してその長手方向に平行移動可能に配置された位置検出ユニット１０とから基本的に構成されている。
【０００４】
この位置検出ユニット１０は、発光素子２とコリメータレンズ３とから主として構成され符号板１に平行光を照射して反射させ、その反射光を照射させる光照射手段と、符号板１を反射した平行光を受光するラインセンサ４とを備えている。
【０００５】
発光素子２から照射される光はコリメータレンズ３により平行光にコリメートされ、符号板１に照射される。位置検出ユニット１０を符号板１に対して相対的に移動させると、符号板１で反射される光信号はその移動に伴って明暗の周期を繰り返す。このようにして生じた光信号はラインセンサ４により検出され、離散的な階段状の信号となって出力される。
【０００６】
ラインセンサ４が出力するｎ次Ｍ系列等のｎビットの符号パターンに相当する離散信号は、ｎビットのビットパターンにディジタル符号化され、あらかじめ対応づけられた絶対位置データに変換される。この絶対位置データは、例えばｎ次のＭ系列符号パターンで、「０」の連続する部分に「０」を１個余分に追加した２ｎビットの符号系列においては、１ビットずつシフトさせていった各ｎビットのＭ系列パターンに対して、「０」から２ｎ−１までの連続した１０進数の値としてあらかじめ対応付けられている。このような対応付けから得られる絶対位置データを、相当する位置信号に変換することにより符号板１上の位置検出ユニット１０の絶対位置を求めることができるようになっている。
【０００７】
符号板１には、所定周期で繰り返される符号系列を表すパターンが光学格子として形成されている。この符号系列を得るには、例えば必要とする周期よりも大きな周期のｎ次のＭ系列パターンを途中削除して繋ぎあわせるか、２ｎ−１ビットの符号列の「０」が連続する部分に「０」を１つ挿入して、すべて「０」からなるｎビットのパターンを１つ追加して、２ｎビットの符号列とする方法等が知られている。
【０００８】
前記検出方式において、ラインセンサ４が符号板１上のｎビット符号パターンを読み誤ることにより、誤った絶対位置データが出力されてしまう問題がある。これに対しては、ｋビットの冗長ビットを含むｎ＋ｋビットの符号パターンを位置検出周期毎にラインセンサ４で読み取ることとし、符号板1に形成した符号パターンの生成規則に基づいて生成できる検査用多項式を複数用いることにより、読み取った符号パターンの検査結果を加算することで、読み取り誤りが発生したビット位置を検出する事が従来技術により可能である。例えば、「０００１００１１０１０１１１１」の１５の符号からなる４次のＭ系列パターンに対しては、ｎ＝４、ｋ＝３とすると、たとえば次の［数１］で表される３つの検査用多項式を用いる。Ｍ系列パターン中で連続する７桁のビットパターン（便宜上ａ〜ｇとする）において、１ビット読み誤った場合の検査式（１），（２），（３）の値を次の［表１］に示す。
【０００９】
【数１】
X0 + X3 + X4    (1)
X1 + X4 + X5    (2)
X2 + X5 + X6    (3)
【表１】
0004223195.tif 000002
［表１］に示すように、検査式（１），（２）及び（３）の値のすべてが「０」でない場合には、読み取られたａ〜ｇまでの符号に最低１個の読取り誤りが発生したことが判定できる。したがって、７ビットの読取りパターンについて、検査多項式の検査結果の排他的論理和を取ることにより、ラインセンサの1ビットの読取り誤りを検出できる。
【００１０】
符号板１に形成された光学格子のパターンを、ｎ次Ｍ系列パターンの「０」の連続する部分に「０」を１ビット分追加して２ｎビット周期の符号系列とした場合、検査用多項式を用いた従来の誤り検出方法を適用すると、挿入した「０」を１個含むすべて「０」のｎビットのパターンに対しては通常の誤り検出方法をそのまま適用できないという問題があった。したがって、この「０」を含むパターンを読み取った場合には検査結果により読取り誤りが検出されていても誤り無しとするか、その特定パターンの場合には検出された誤り情報を出力しないなどの特別な誤り検出を行う必要がある。そのような従来の技術として例えば特開平9-280892に開示されているものがある。
【００１１】
【発明が解決しようとする課題】
しかしながら、上記従来のリニアエンコーダでは、複雑な誤り検出を行うので、回路構成が複雑化するという問題点があった。
【００１２】
本発明は、上記実状に鑑みなされたもので、簡便な構成により、パターンの読み取り誤りを確実に検出、訂正できるアブソリュートエンコーダを提供することを目的とする。
【００１３】
【課題を解決するための手段】
上記従来例の問題点を解決するための請求項１記載の発明は、絶対位置データに対応付けられた符号ビット系列をパターンとして表した符号板と、前記符号板上のパターンに沿って相対移動し、移動位置において、前記パターンの一部を読み取るパターン読取部を含むパターン検出部と、前記パターン検出部が読み取ったパターンの一部に基づいて絶対位置データを演算して出力するデータ変換部と、を備えたアブソリュートエンコーダにおいて、前記パターン検出部のパターン読取部は、絶対位置データの演算に必要なｎビットのパターン長に加え、それに隣接するパターン部分をｋビットの冗長パターンとして読み取り、前記データ変換部は、前記パターン検出部が読み取ったｋビットの冗長パターンを含むパターンの一部から一続きの絶対位置データの演算に必要なパターン長ｎビットのパターンを順次抽出し、当該抽出したｎビットのパターンに対応する絶対位置データが連続的に変化するか否かによって、前記パターン検出部が読み取ったパターンに誤りがあるか否かを判定する判定部を含むことを特徴としている。
【００１４】
また、上記従来例の問題点を解決するための請求項２記載の発明は、請求項１に記載のアブソリュートエンコーダにおいて、前記符号板に表された符号ビット系列は、所定の系列生成ルールに従って生成された符号ビット系列の一部にビットを挿入し、または前記生成された符号ビット系列の一部を削除した不連続部分を有する符号ビット系列であることを特徴としている。
【００１５】
上記従来例の問題点を解決するための請求項３記載の発明は、請求項１又は２に記載のアブソリュートエンコーダにおいて、前記判定部は、冗長パターンに含まれる符号を順次処理し、誤りがあると判定すると、直ちに誤りを報知することを特徴としている。
【００１６】
また、上記従来例の問題点を解決するための請求項４記載の発明は、請求項１又は２に記載のアブソリュートエンコーダにおいて、前記パターン検出部が読み取った冗長パターンを誤り訂正符号として、前記演算した絶対位置データに含まれる所定ビットまでの誤りを訂正し、当該訂正後の絶対位置データを出力する誤り訂正部を含み、前記判定部が演算した絶対位置データに誤りがある場合に、前記所定ビットを超えるビット数の誤りがあるか否かを判断して、所定ビットを超えるビット数の誤りがあった場合に、前記訂正後の絶対位置データに誤りがあると判定することを特徴としている。
【００１７】
すなわち、例えばｎ次のＭ系列パターンに相当する光学格子が形成された符号板から、誤り検出のための冗長なｋビットを余分に付加したｎ＋ｋビットの符号列に相当するＭ系列パターンを読み取る。ここでの冗長ビット長ｋは、適用する符号系列の生成規則から生成可能な検査用多項式によりｍビットの誤り検出及び訂正に必要な長さに決定される。そして、読み取ったパターンに対して、ｍビットの誤り検出と訂正が可能な検査多項式を一つ以上用いて、所定の誤り訂正可能ビット長であるｍビットの読取り誤り位置を検出し、誤りビットの訂正も行う。ここで、誤りが検出されて誤りビットを訂正した場合と検出されなかった場合のいずれにも、読み取った元の符号パターンにｍ＋１ビット以上の読取り誤りが発生している可能性があるので、さらにｍ＋１ビット以上の誤り検出を行う。ここで、先に検査多項式によるｍビットの誤り検出、訂正を行ったにも関わらず、ｍ＋１ビット以上の誤りが検出された場合には、読み取った元のパターンにｍ＋１ビット以上の同時誤りが生じているものとし、読取り誤りである旨を報知する。また、ｍ＋１ビット以上の誤り検出を行っても誤りが検知されなかった場合には、読取ったパターンに誤りが無かったか、ｍビット以下の誤りが検出されて訂正された場合なので、元の、あるいはｍビット誤りが訂正された符号パターンを絶対位置データに換算して出力する。
【００１８】
上記従来例の問題点を解決するための請求項５記載の発明は、請求項１から４のいずれかに記載のアブソリュートエンコーダにおいて、さらに、冗長パターンにより誤りがあると判定された場合には、前記データ変換部が出力する絶対位置データを破棄し、前記パターン検出部に再読みとりを指示する手段を含む、ことを特徴としている。
【００１９】
上記従来例の問題点を解決するための請求項６記載の発明は、請求項１から５のいずれかに記載のアブソリュートエンコーダにおいて、前記符号板に表された符号ビット系列は、Ｍ系列符号であることを特徴としている。
【００２０】
【発明の実施の形態】
以下、本発明の好適な第１の実施の形態について、１０次のＭ系列符号パターンを形成した符号板１を用い、冗長ビット長ｋ＝３とした場合を例として、図面を参照しつつ説明する。尚、同様の構成となる部分については、同一の符号を付している。
【００２１】
本発明の実施の形態に係るアブソリュートエンコーダは、図１に示した従来のものと同様の構成をとるものであるが、パターン読み取り部としてのラインセンサ４と、ラインセンサ４により読み取られた符号の処理とが異なる。すなわち、本実施の形態のアブソリュートエンコーダは、図２に示すように、ラインセンサ４を含んでなるパターン検出部２１と、誤り検出部２２と、データ変換部２３と、信号出力部２４と、制御部３０とから構成されている。
【００２２】
符号板１には、具体的に図３のような「０」または「１」からなるビット列がパターンとして記録されている。以下の説明では簡単のため、パターンの代わりにこのビット列を用いて説明する。ラインセンサ４は、符号板１に沿って相対移動し、移動位置での符号板１上に表されたパターンのうち、絶対位置の検出に必要な符号長に相当するｎビット分のパターンとともに、その外側に隣接する符号（冗長パターン）ｋ＝３ビット分を読み取る。
【００２３】
すなわち、ここでは１０次のＭ系列符号パターンを用いた場合を例として説明しているので、図３の点線により示したｎ＝１０ビット分のビット列を読み取れば、絶対位置は検出できるのであるが、本実施の形態のラインセンサ４において特徴的なことは、このｎ＝１０ビットの少なくとも一方外側のビット列をｋビット分だけ読み取ることである。
【００２４】
具体的には、図４に示すように、本実施の形態では、パターン検出部２１のラインセンサ４は、図３に示した点線部分の図面上左側２ビット分と、右側１ビット分の合計ｋ＝３ビットを冗長パターンとして読み取り、パターン検出部２１が、このラインセンサ４で読み取ったｎ＋ｋビットのパターンをビット列に変換して出力する。尚、後の説明の便利のため、この図４のｎ＋ｋビットのパターン（１３ビットのパターン）の各ビットを先頭から順に「第１ビット」から「第１３ビット」と呼ぶ。
【００２５】
データ変換部２３は、パターン検出部２１が出力するビット列に基づいて絶対位置データを演算して出力する。誤り検出部２２は、データ変換部２３が出力する絶対位置データに基づいてラインセンサ４の読み取り誤りを判定し、誤りがなければ、データ変換部２３で得られた絶対位置データを信号出力部２４に出力する。また、誤りがあれば、パターン検出部２１に再度読み取りを指示する信号を出力する。信号出力部２４は、絶対位置データの入力を受けて、当該絶対位置データに対応する位置信号を生成して、制御装置３０に出力する。
【００２６】
ここでデータ変換部２３は、第１から第１０ビットまでのビット列と、第２から第１１ビットまでのビット列と、第３から第１２ビットまでのビット列と、第４から第１３までのビット列との各々に基づいて絶対位置データを演算し、誤り検出部２２は、各々のビット列から得られる絶対値データが連続しているか否かにより、読み取り誤りが発生したか否かを判定する。
【００２７】
以下、本発明の実施の形態に係るアブソリュートエンコーダの動作について、具体的に図３に示したビット列を読み取る場合を例として説明する。パターン検出部２１のラインセンサ４がこのパターンが表された符号板１を読み取るときに、図５に示すように、第５ビット、第８ビット、第１０ビットの３カ所で読み取り誤りが発生したと仮定すると、パターン検出部２１は、本来、「０００１００１００１００１」と読み取られるべきビット列を「０００１１０１１００００１」として出力する。
【００２８】
すると、データ変換部２３が、このパターン検出部２１が出力するビット列に基づいて、まず、本来用いるべきｎビット分として、第３ビットから第１２ビットまでの「０１１０１１００００」の部分を用いて絶対位置データを演算する。ここで、第５，第８，第１０の各ビットに誤りが含まれているので、このビット列からは正しい絶対位置データが演算されない。一例としてここでは、上記ビットにより、十進数で「９３５」の絶対位置データが演算されるものとする。
【００２９】
次に、データ変換部２３は、図６に示すように、第２ビットから第１１ビットまでの１０ビット分「００１１０１１０００」の部分（誤り検査用パターン）を用いて絶対位置データの演算を行う。この場合には、符号板１に対して位置検出ユニット１０が右に１ビット分だけずれた位置にあるので、本来ならば「９３５」に連続する「９３６」となるはずであるが、読み取り誤りが含まれているために全く別の数値、たとえば十進数で「４４７」が得られるようになる。誤り検出部２２は、「９３５」と、「４４７」とを比較し、これらが連続していないため、読み取り誤りが発生したと判断して、パターン検出部２１にパターンの再読みとりを指示し、パターン検出部２１が再度、パターンの読み取りを行うようになる。
【００３０】
尚、読み取り誤りが発生していない場合には、これらの数値は連続することになるため、誤り検出部２２は、第３ビットから第１２ビットまでのビット列から得られる本来の絶対位置データを信号出力部２４に出力する。そして、信号出力部２４が、当該絶対位置データに対応する位置信号を生成し、制御装置３０に出力する。
【００３１】
また、従来例と同様に、Ｍ系列符号の一部（「０」がｎ個並んだ位置）に無効なビット（余計な「０」）を追加したり、Ｍ系列符号の一部を削除して不連続部分を生成し、これを符号板１に表している場合には、読み取り誤りの結果、たとえば、第３ビットから第１２ビットまでのビット列から演算される絶対位置データ（本来の絶対位置データ）と、第２ビットから第１１ビットまでのビット列（誤り検査用パターン）から演算される絶対位置データとが連続してしまう可能性が否定できない。この場合には、誤り検出部２２は、図７に示すようなデータ変換部２３が第４ビットから第１３ビットまでのビット列に基づいて演算した絶対位置データや、第１ビットから第１０ビットまでのビット列に基づいて演算した絶対位置データ等を用い、これらすべての絶対位置データが連続している場合にのみ、誤りなしとして、データ変換部２３から入力される本来の絶対位置データを信号出力部２４にそのまま出力する。
【００３２】
さらに、ここでは、読み取られたビット列を１ビットずつシフトしたビット列が連続するか否かにより、読み取り誤りが発生したか否かを判定しているが、ｍビットずつシフトして、絶対位置データが「ｍ」だけずれて連続しているか否かを検出することとしてもかまわない。また、左右双方にシフトする場合には、シフト量が異なってもよい。
【００３３】
さらに、誤り検出部２２は、カウンタを備え、読み取り誤りが発生したことを検知してパターン検出部２１に対し再読み取りを指示したときに当該カウンタをインクリメントし、所定の値に当該カウンタが達したときには（読み取り誤りが繰り返し発生する場合には）、エラーを報知して処理を中断することとするのも好適である。この繰り返しの回数は、制御装置３０の用途やシステム全体の利用形態に依存して決定されるべきであるので、ユーザが適宜設定可能としておくことが好ましい。
【００３４】
このように本実施の形態によれば、適用するＭ系列符号の次数が決まれば、当該Ｍ系列符号の性質上、適切な冗長パターンのビット数を決定でき、検査多項式を用いた既存の誤り訂正方式を適用する場合に比べ、検出及び訂正できるビット数が限定されることがなく、検査多項式の誤り検出能力を超えるようなラインセンサの読み取り誤りに対しても対応できる。
【００３５】
ここで、冗長パターンのビット数は、Ｍ系列符号の性質上、読み取りの際の同時誤りビット数が多いほど冗長パターンのビット数は少なくてもよくなるので、１ビットの誤りを想定して適切な冗長パターンのビット数を定めることで確実性の高い誤り検出を行うことができる。
【００３６】
尚、ここまでの説明では、Ｍ系列符号を例として説明したが、順序がランダムで絶対位置データを対応付けるための全ての符号語が一意となれば（すなわちＭ系列と同様の性質を備えていれば）他の符号系列を用いても構わない。
【００３７】
次に、本発明の第２の実施の形態に係るアブソリュートエンコーダについて図面を参照しながら説明する。本実施の形態のアブソリュートエンコーダは、図８に示すように、ラインセンサ４を含んでなるパターン検出部２１と、誤り訂正部２５と、データ処理部２６と、データ変換部２３と、信号出力部２４と、制御装置３０とから構成されている。尚、第１の実施の形態と同様のものについては同じ符号を付して詳細な説明を省略する。また以下では、１０次（ｎ＝１０）のＭ系列符号を表すパターンが符号板１上に形成され、冗長ビットの長さｋ＝１０、誤り訂正可能なビット長ｍ＝１とした場合を例として説明する。
【００３８】
本実施の形態のアブソリュートエンコーダでは、ｎ＝１０、ｋ＝１０であるので、パターン検出部２１は図９に示すように、点線部分の図面上右側１０ビット分(ｋ＝１０)ビットを冗長パターンとして読み取り、パターン検出部２１が、このラインセンサ４で読み取ったｎ＋ｋビットのパターンをビット列に変換して出力する。尚、説明の便宜上、この図９のｎ＋ｋビットのパターン（２０ビットのパターン）の各ビットを先頭から順に「第０ビット」から「第１９ビット」と呼ぶ。
【００３９】
そして、位置検出ユニットは図１０に示す処理を開始し、誤り訂正部２５がＭ系列の生成規則から各次数毎に定まる検査多項式を用いて、読み取ったパターンに誤りが含まれているか否かを検査する（Ｓ１）。ここで、１０次のＭ系列パターンに対して、１ビットの誤り検出を行うための検査多項式は、一例として次式で与えられる。
【００４０】
【数２】
Ｘ0+i + Ｘ7+i + Ｘ10+i       （i= ０，１，２，… ，k-１）    （４）
なお、１０次のＭ系列パターンに対して、１ビットの誤り検出を行うには冗長ビットが最低７ビット必要であり、ここではさらに訂正も行うために、冗長ビット長を１０ビットとしている。（４）式により、読み取ったビット列中の該当ビットの値（「０」または「１」）を加算する（２を法とする）ことで、読取り誤りが発生したか否かを検出する。図９に示した元の読取りパターンで１ビットの読取り誤りが発生した場合の検査式（４）の値を次の表に示す。
【００４１】
【表２】
0004223195.tif 000003
そして、ｍビット以下の誤りが検出されたか否かが調べられ（Ｓ２）、ｍビット以下の誤りが検出される場合（Ｙｅｓの場合）、つまり例えば図９に示した符号パターンが、ラインセンサ４の読み取り誤りによって、図１１に示すように第７ビットが１ビット誤ってｍビット誤り訂正部に転送されたものとすると、（４）の検査式を用いた［表２］の結果より、ｉ＝０，７の場合の検査式である次式、
【数３】
Ｘ0 +Ｘ7 +Ｘ10  （５）
Ｘ7 +Ｘ14+Ｘ17  （６）
の値が「１」となり、ｉが０から９までの各検査式の値の組合せが、誤ったビット位置毎に一意に対応付けられる。ここでは、それぞれの検査式の結果をそれぞれ二進数の各桁と見立てて１０進数の値に変換して識別値とし、その値と誤ったビット位置とを関連づけている。したがって、図１１のような読取り誤りが発生した場合には検査式の各値を二進数の各桁と見立てた場合、誤り訂正部２５では検査結果として二進数の「１００００００１００」に対応する「２５８」が算出され、読取り誤りの発生とともに、誤ったビット位置が第７ビットであることが検出される。
【００４２】
そして誤り訂正部２５は、誤ったとして検出された位置のビットを反転する（Ｓ３）。具体的に図１１の第７ビットを反転して、全体のビットパターンを図９に示した「１００１１０１１０１１０１０１１１１１００」に訂正し、データ処理部２６に出力する。この場合、発生した１ビットの読取り誤りが検出、訂正されたので、後に説明するデータ処理部２６において、検出、訂正後の符号パターンから更に誤りが検出されることはない。
【００４３】
また、処理Ｓ２において、誤りがないとして検出された場合には（Ｎｏの場合）、ビットの反転を行うことなく、そのままデータ処理部２６での処理に移行する。
【００４４】
一方、図９に示すパターンを読み違えた場合に、処理Ｓ２では１ビットのみが誤りであって訂正可能と判断されるにも関わらず、実際には複数のビットが誤っているということもあり得る。そのような場合とは、例えば、ラインセンサ４の読み取り誤りにより、図９のパターンのうち、図１２に示すように、第０、７、１６ビットの３ビットが誤って読み取られ、ｍビット誤り訂正部２５に出力される場合がある。このとき（４）の検査式を用いた［表２］の結果より、ｉ＝６、９の場合の検査式、
【数４】
Ｘ6 + Ｘ13 + Ｘ16       （７）
Ｘ9 + Ｘ16 + Ｘ19       （８）
の値が１となり、検査結果により誤ったビット位置が第１６ビットの１ビットと検出され、第０、７ビットの誤りが正しく検出されない。この場合には、第１６ビットのみが反転されて、図１３に示すような符号に訂正されてデータ処理部２６に出力されることとなる。これは、検査多項式による誤り検出方式では、用いる検査多項式の検出能力を超える読取り誤りが発生した場合に、検出、訂正後の符号列にさらに誤りが含まれていないかどうか判定できないことによるものである。
【００４５】
データ処理部２６は、誤り訂正部２５から入力される誤り訂正後のｎ＋ｋビットの符号（ただし、誤り訂正部２５で誤りが検出されなかった場合には読み取られた符号そのものになる）に対して、さらにｍ＋１ビット以上の誤り検出を行う。具体的にこのデータ処理部２６は、第１の実施の形態における誤り検出部２２と同様に、読み取られたｎ＋ｋビットの符号パターンからｎビットを取り出して、そのｎビットに対しデータ変換部２３で変換された位置を示す値を得ておき、さらに１ビットずつずらしながらｎビットを取り出して連続しているか否かを比べることでｍ＋１ビット以上の誤りがあるか否か（誤り訂正によっても訂正不能であった誤りがまだ含まれているか否か）を検出し（Ｓ４）、誤りが検出されたかを判断して（Ｓ５）、誤りが検出されないならば（Ｎｏならば）、データ処理部２６は、図９の第０〜第９ビットで表される本来の絶対位置データを信号出力部２４に出力する。そして、信号出力部２４が、当該絶対位置データに対応する位置信号を生成し、制御装置３０に出力する。
【００４６】
しかし、読み取りを誤った場合にも、たとえば、第０ビットから第９ビットまでのビット列から演算される絶対位置データ（本来の絶対位置データ）と、第１ビットから第１０ビットまでのビット列（誤り検査用パターン）から演算される絶対位置データとが連続してしまう可能性も否定できない。このため、データ処理部２６は、さらにシフトした第２ビットから第１１ビットまでのビット列に基づいて演算した絶対位置データや、第３ビットから第１２ビットまでのビット列に基づいて演算した絶対位置データ等を用い、複数の絶対位置データが連続している場合にのみ、誤りがないとして、データ変換部２３から入力される本来の絶対位置データを信号出力部２４に出力するようにしてもよい。
【００４７】
また、処理Ｓ５において、誤りが検出されたときには（Ｙｅｓならば）、誤りがあったことをアラームとして報知し（Ｓ６）、パターン検出部２１に対し、再読み取りを指示して（Ｓ７）、処理を終了する。
【００４８】
尚、これら第１、第２の実施形態では、誤り検出部２２又はデータ処理部２６が、読み取られたビット列を１ビットずつシフトしたビット列が連続するか否かにより、読み取り誤りが発生したか否かを判定しているが、ｊビットずつシフトして、絶対位置データが「ｊ」だけずれて連続しているか否かを検出することとしてもかまわない。また、左右双方にシフトする場合には、左右それぞれにシフト量が異なってもよい。
【００４９】
さらに、誤り検出部２２又はデータ処理部２６は、カウンタを備え、読み取り誤りが発生したことを検知してパターン検出部２１に対し再読み取りを指示したときに当該カウンタをインクリメントし、所定の値に当該カウンタが達したときには（読み取り誤りが繰り返し発生する場合には）、エラーを報知して処理を中断することとするのも好適である。この繰り返しの回数は、制御装置３０の用途やシステム全体の利用形態に依存して決定されるべきであるので、ユーザが適宜設定可能としておくことが好ましい。
【００５０】
さらに、ここまでの説明では、Ｍ系列符号を例として説明したが、順序がランダムで絶対位置データを対応付けるための全ての符号語が一意となれば（すなわちＭ系列と同様の性質を備えていれば）他の符号系列を用いても構わない。
【００５１】
さらに、ここまでの説明では、適用する検査多項式として１ビットの誤り検出訂正が可能な（４）式を１０個用いた例として説明したが、本発明の要旨を逸脱しない範囲において、他の検査多項式を何個用いても構わない。
【００５２】
また、第２の実施の形態では、誤り訂正部２５において、符号系列の生成規則より定まる検査多項式を用いた誤り検出・訂正処理を行っている。ここで、適用する符号系列が例えばＭ系列であって、２のｎ乗−１ビットの符号列の、０が連続する部分に０を１個挿入して、オール０のｎビットのパターンを１個追加する方法等により、生成規則を崩した符号系列には、検査多項式の対応不可能なパターンが含まれる。したがって、そのような符号系列に本発明を適用する場合、ラインセンサ４による不連続部の読取り時においては、読取りパターンに含まれる誤りビット数がｍビット以下の場合にも、誤り訂正部２５により完全な誤り検出を行うのは不可能となるが、そのような場合にもデータ処理部２６におけるｍ＋１ビット誤り検出処理によって、不連続部を含む読取りパターンに含まれる誤りビットを検出することが可能である。
【００５３】
このように本実施の形態によれば、適用するＭ系列符号の次数が決まれば、当該Ｍ系列符号の性質上、適切な冗長パターンのビット数を決定でき、検査多項式を用いた既存の誤り訂正方式を適用する場合に比べ、検出できるビット数が限定されることがなく、検査多項式の誤り検出能力を超えるようなラインセンサの読み取り誤りに対しても対応できる。
【００５４】
ここで、冗長パターンのビット数は、Ｍ系列符号の性質上、読み取りの際の同時誤りビット数が多いほど冗長パターンのビット数は少なくてもよくなるので、１ビットの誤りを想定して適切な冗長パターンのビット数を定めることで確実性の高い誤り検出を行うことができる。ただし、冗長ビット数に関しては、前記ｍビット誤り検出訂正部４３の処理でｍビットの誤り検出訂正の必要なビット数以上に決定する必要がある。
【００５５】
さらに、第２の実施の形態のように、誤り訂正を行うこととすれば、符号板１の汚れ又は軽微な損傷によるパターンの欠落などに起因して、ラインセンサ４が読み取り誤りを起こしたり、あるいはラインセンサ４の出力波形の歪みに起因するＭ系列等のビット列への符号化誤りが特定箇所で頻繁に起こるような場合にも、検査多項式による誤り検出訂正によってｍビットの読取り誤りまでは訂正可能となるため、そのような場合にも、符号板１の清掃又は交換などの対処が不要となり、アブソリュートエンコーダのメンテナンスにかかる労力及びコストを低減することができる。
【００５６】
さらに、検査多項式の誤り訂正能力を超えるｍ＋１ビット以上の誤りビットが発生した場合には、検査多項式を用いた誤り検出方式では、発生した誤りビットの内のｍビット分しか検出訂正されないため、誤り検出訂正後の符号パターンに誤りビットが残っている可能性があり、そのままでは検出パターンを位置データとして適用できない。しかしながら、第２の実施の形態によれば、検査用多項式によるｍビットの誤り検出訂正を行った後、位置情報用パターンと誤り検査用パターンのそれぞれに対応する絶対位置データを順次比較する方法を用いて、元の検出パターンに検査多項式の誤り検出訂正能力を超えるｍ＋１ビット以上の誤りが含まれているか否か検査を行うように構成したので、位置データの信頼性を高めることができる。
【００５７】
また、第１、第２の実施の形態によれば、Ｍ系列等の符号生成規則に基づいて生成できる検査用多項式及び、冗長ビットを含む検出パターンから演算される絶対位置データの連続性によって読み取り誤りを検出するので、Ｍ系列で次数の異なる場合など、適用する検出パターンの周期によらず、任意周期の検出パターンに対して同様の構成により適用することができる。
【００５８】
【発明の効果】
本発明によれば、符号系列のパターンを用いたリニアエンコーダにおいて、誤り検出用の冗長ビットを含めたパターンを読み取り、この冗長ビットに基づいて読み取り誤りを検出するので、簡便な構成により、確実に読み取り誤りを検出できる。
【００５９】
また、本発明では、読み取ったパターンを順次シフトした場合に、各シフト後のパターンから演算される絶対位置データの連続性によって読み取り誤りを検出するので、簡便な構成により、確実に読み取り誤りを検出できる。また、これにより、１ビットの誤りのみならず、複数ビットの誤りをも確実に検出できる。
【００６０】
さらに本発明によれば、読取りの同時誤りビット数が多くなるほど誤り検出のために読取る冗長ビット数が少なくて済むため、１ビットの読取り誤りを想定して最適な冗長パターンのビット数を決めれば検出可能なビット数が制限されることがなく、読取りの同時誤りビット数に関わらず確実に読取り誤りを検出できる。
【００６１】
さらに本発明によれば、冗長ビットを誤り訂正符号として用いる第１の検査訂正法によって所定ビット数までの読み取り誤りを訂正し、さらに所定ビット数を超える読み取り誤りを検出可能な第２の検査法によって所定ビット数を超える読み取り誤りを検出するようにしたので、所定ビット数以下の誤りを訂正可能にするとともに、第１検査訂正法により検出不能であった所定ビット数を超える誤りが第２の検査法によって見いだされたときには、これを誤りとして扱うことで、簡便な構成により、位置検出の誤りを確実に検出・訂正できる。
【図面の簡単な説明】
【図１】  アブソリュートエンコーダの一例を表す説明図である。
【図２】  本発明の第１の実施の形態に係るアブソリュートエンコーダを表す構成ブロック図である。
【図３】  符号板１に表されたビット列の一部の一例を表す説明図である。
【図４】  ラインセンサ４により読み取られるビット列の一例を表す説明図である。
【図５】  データ変換部２３により処理されるビット列の一例を表す説明図である。
【図６】  データ変換部２３により処理されるビット列の一例を表す説明図である。
【図７】  データ変換部２３により処理されるビット列の一例を表す説明図である。
【図８】  本発明の第２の実施の形態に係るアブソリュートエンコーダを表す構成ブロック図である。
【図９】  ラインセンサ４により読み取られるビット列の一例を表す説明図である。
【図１０】  本発明の第２の実施の形態に係るアブソリュートエンコーダの動作を示すフローチャート図である。
【図１１】  ラインセンサ４により読み取られるビット列の一例を表す説明図である。
【図１２】  ラインセンサ４により読み取られるビット列の一例を表す説明図である。
【図１３】  ラインセンサ４により読み取られるビット列の一例を表す説明図である。
【符号の説明】
１  符号板、２  発光素子、３  コリメータレンズ、４  ラインセンサ、１０位置検出ユニット、２１  パターン検出部、２２  誤り検出部、２３  データ変換部、２４  信号出力部、２５  誤り訂正部、２６  データ処理部、３０  制御装置。
【図１】
0004223195.tif 000004
【図２】
0004223195.tif 000005
【図３】
0004223195.tif 000006
【図４】
0004223195.tif 000007
【図５】
0004223195.tif 000008
【図６】
0004223195.tif 000009
【図７】
0004223195.tif 000010
【図８】
0004223195.tif 000011
【図９】
0004223195.tif 000012
【図１０】
0004223195.tif 000013
【図１１】
0004223195.tif 000014
【図１２】
0004223195.tif 000015
【図１３】
0004223195.tif 000016