※本記事にはプロモーション(広告)が含まれています。
エンコーダとは、モーターなどの軸の回転を、パルスやコードの電気信号に変えて、角度・位置・速さを測るセンサーです。エンコーダー、ロータリーエンコーダとも呼びます。回転の量に応じたパルスを出して数えるインクリメンタル形と、軸の位置ごとに決まったコードを出すアブソリュート形があります。
サーボモーターの軸の後ろ、工場のコンベアの軸の端、プリンターの紙送り。回転を正確に止めたい所には、たいていエンコーダが付いています。
この記事を書いたのは、「エンコーダとは」で調べる人が多いと、検索の数字でわかったからです。このブログには、パルスで回す側(モーター)の記事はあるのに、回転を測る側がありませんでした。仕組み・2つの種類・A相とB相・計算の順に進みます。

エンコーダの仕組み:回転を「数えられる信号」に変える
エンコーダは、軸と一緒に回る円板の模様を読み取り、回転を電気のパルスやコードに変えます。読み取り方には、光を使う光学式と、磁石とホールセンサを使う磁気式があります。
光学式は、細いすき間(スリット)が円周に並んだ円板を軸と一緒に回し、光が通るか通らないかを受光素子で読み取ります。すき間が来れば光が通って1、来なければ0。これが電気のパルスになります。
磁気式は、軸に付けた磁石の回転で変わる磁場を、ホールセンサ(磁場を電気に変える素子)で測ります。ifm の解説によると、光学式はガラスの円板のすき間を通る光で、磁気式はホール効果で信号を作ります。

インクリメンタル形とアブソリュート形の違い
インクリメンタル形は回転の量に応じたパルスを出し、受ける側が数えて位置を出します。アブソリュート形は軸の位置ごとに決まったコードを出すので、電源を切っても位置がわかり、原点復帰が要りません。
| インクリメンタル形 | アブソリュート形 | |
|---|---|---|
| 出すもの | 回転の量に応じたパルス | 位置ごとに決まったコード(絶対番地) |
| 位置の知り方 | パルスを数える(カウンタ) | コードをそのまま読む |
| 電源を切ったとき | 位置がわからなくなる | 位置がわかる |
| 電源を入れたとき | 原点復帰が必要 | 原点復帰が要らない |
| 出力 | A相・B相・Z相のパルス | パラレル・シリアル・フィールドバス |
ifm「インクリメンタル式エンコーダ」「アブソリュート式エンコーダ」と、オムロン「技術編 ロータリエンコーダ」の分解能の定義から作った。
アブソリュート形には、1回転の中の位置がわかるシングルターンと、何回転したかまでわかるマルチターンがあります。シングルターンは、軸が360°以上回らない場面で使われます(ifm)。
アブソリュートのコードには、隣の位置に移るとき1ビットだけ変わるグレイコードがよく使われます。ふつうの2進数だと、7(0111)から8(1000)へ移るとき4ビットが同時に変わる。読み取りの一瞬のずれで、まったく違う値を読むおそれがあるのです。
アブソリュートのコードを読むのに使う、2進数・10進数・16進数の変換
A相・B相・Z相の役割:方向と原点を知る
インクリメンタル形のエンコーダは、A相・B相・Z相の3つの信号を出すものが多く、A相とB相は電気角で90°ずれています。どちらが先に変わるかで回転方向が、1回転に1回出るZ相で原点がわかります。
| 信号 | 役割 |
|---|---|
| A相 | 回転の量に応じたパルス |
| B相 | A相と電気角で90°ずれたパルス。A相とどちらが先かで回転方向がわかる |
| Z相 | 1回転に1回だけ出るパルス。原点を決める |
A相だけでは、軸がどちらに回っているのかわかりません。パルスの数は、右に回しても左に回しても同じだからです。そこで、少しずらした B相を一緒に出します。
一方の向きに回すと A相が先に立ち上がり、逆に回すと B相が先になります(どちらを正転と呼ぶかは機種の決まり)。受ける側は「A相が変わった瞬間の B相が1か0か」を見て、数を足すか引くかを決めます。東京工業大学の演習資料も、この方法で回転方向を判別しています。
パルスを数えるカウンタのもとになる、フリップフロップ回路の動作

分解能と4逓倍:同じエンコーダで細かく測るしくみ
エンコーダの分解能は、軸1回転で出るパルス数(P/R)です。A相とB相の立ち上がりと立ち下がりを全部数える4逓倍にすると、同じエンコーダで1回転のカウントが4倍になります。
4逓倍で増えるのは、エンコーダのパルスではありません。受ける側(カウンタや PLC)が数える「エッジ」の数です。エンコーダ自体は同じ1,000P/R のまま。
ではカタログの「1,000P/R」は、逓倍の前か後か。調べると、キヤノンのエンコーダの製品比較は「パルス/1回転」と「パルス/1回転(4逓倍後)」を別の欄に書き分けていました。オムロンの技術資料も、分解能を「軸1回転で出力されるパルス数」と定義しています。筆者は、ただの「P/R」は逓倍前の数と読みます。

エンコーダの計算:出力周波数・回転速度・移動量
エンコーダの出力周波数は「回転速度÷60×分解能」で求めます。1,000P/R のエンコーダを3,000min⁻¹ で回すと A相は50kHz で、これが受ける側の入力の最高周波数以下かを確かめます。
例1:1,000P/R を3,000min⁻¹ で回す
3,000min⁻¹ は1秒に 3,000÷60=50回転。1回転で1,000パルスなので、50×1,000=50,000Hz、つまり50kHz です。4逓倍で数えるなら、1秒に 200,000カウント。
例2:周波数から回転速度を出す
500P/R のエンコーダの A相が20kHz なら、1秒に 20,000÷500=40回転。1分では 40×60=2,400min⁻¹ です。逆に 2,400÷60×500 と計算すると20,000Hz に戻ります。
例3:ボールねじの1カウントの移動量
リード10mm(1回転で10mm 進む)のボールねじに、1,000P/R のエンコーダを4逓倍で使います。1回転 4,000カウントなので、10mm÷4,000=0.0025mm=2.5μm が1カウントの移動量です。
カタログの値で検算する
キヤノンの製品比較の例(81,000P/R・最高応答周波数 0.5MHz)を式に入れると、0.5MHz÷81,000×60 ≒ 370rpm。カタログの最高応答回転数は360rpm でした。式で出した値より少し低い、余裕を持った値です。
| 確かめること | 理由 |
|---|---|
| エンコーダの最高応答周波数 | 超えるとパルスが出きらず、数え落とす |
| 受ける側(カウンタ・PLC)の入力の最高周波数 | 超えると数え落とす。4逓倍ではカウントの速さが4倍 |
| 必要な分解能 | オムロンの資料は、機械の総合精度の1/2〜1/4 になる分解能を選ぶのがよいとしている |
計算の数値は例です。最高応答周波数や入力の周波数は機種で違うので、使う機器のカタログで確かめてください。

出力回路の種類と、よくある間違い
インクリメンタル形の出力回路には、オープンコレクタ(NPN・PNP)、電圧出力、ラインドライバがあります。配線が長い・ノイズが多い所では、A と A反転の2本で送るラインドライバが向きます。
| 出力回路 | 特徴 | 向いている場面 |
|---|---|---|
| オープンコレクタ(NPN・PNP) | 受ける側の電源とプルアップ抵抗で信号を作る | 近い距離、PLC の入力 |
| 電圧出力 | エンコーダの中にプルアップがある | 近い距離、簡単な回路 |
| ラインドライバ | A と A反転の2本(差動)で送る | 長い配線、ノイズの多い工場 |
どこまで配線を延ばせるかは、出力回路と機種で違います。手元で確かめていない値は、ここでは言えません。カタログの「ケーブル長」の欄を見てください。
| よくある間違い | 正しくは |
|---|---|
| インクリメンタル形なのに、電源を切っても位置が残ると思う | 位置はわからなくなる。原点復帰が要る |
| P/R と4逓倍のカウントを混同する | カタログの P/R は逓倍前。4逓倍は受ける側で4倍 |
| 応答周波数を確かめずに速く回す | f=N÷60×P が最高応答周波数以下か確かめる |
| ノイズでカウントがずれるのを放置する | ラインドライバ・シールド・動力線と分けた配線で対策 |
ラインドライバの差動の信号が、なぜノイズに強いのか(同相ノイズとCMRR)

エンコーダはどこで使われる?サーボモーターの「目」
エンコーダは、サーボモーターの位置・速度の検出、コンベアや回転テーブルの位置決め、紙送りなどで使われます。とくにサーボモーターでは、モーターの後ろに付いて回転を測り、アンプが指令とのずれを直します。
サーボモーターは、エンコーダで測った位置を、指令した位置と比べてずれを直しながら回ります。目で確かめながら歩く人に近い動き方です。反対に、ステッピングモーターはエンコーダなしで、送ったパルスの数だけ回る前提で動かします。
2つのモーターの違いと選び方は、同じ筆者が運営する工場の機械と制御のブログ「機械と制御の教科書」のサーボモーターとステッピングモーターの違いで詳しく解説しています。

