はじめに
モータ制御や位置決めシステムを扱っていると、必ず登場するのがエンコーダです。
エンコーダのカタログやデータシートを読むと、「4逓倍」「分周」といった用語が当たり前のように出てきますが、初めて触れる方にとっては「結局パルスをどう数えているの?」と疑問に思うことも多いのではないでしょうか。
この記事では、インクリメンタル型ロータリーエンコーダの A相・B相の矩形波を題材に、以下の内容を図解で丁寧に解説します。
- 逓倍(ていばい):1逓倍・2逓倍・4逓倍それぞれのパルスカウント方法
- 分周(ぶんしゅう):パルス周波数を整数分の1に下げる仕組み
- 回転方向検出:A相・B相の位相差からCW/CCWを判定する方法
目次
- インクリメンタル型エンコーダの基本
- A相・B相の波形を理解する
- 逓倍とは何か
- 1逓倍(×1)のカウント方法
- 2逓倍(×2)のカウント方法
- 4逓倍(×4)のカウント方法
- 逓倍の比較まとめ
- 回転方向の検出(CW/CCW判定)
- 4逓倍の状態遷移テーブル
- Z相(原点信号)について
- 分周とは何か
- 分周の具体例と計算方法
- 逓倍と分周の組み合わせ
- 実務での注意点
- まとめ
1. インクリメンタル型エンコーダの基本
エンコーダとは
エンコーダは、モータや回転軸の回転角度や回転速度を電気信号に変換するセンサです。
エンコーダには大きく分けて2種類あります。
| 種類 | 特徴 |
|---|---|
| インクリメンタル型 | 回転量に応じたパルス信号を出力する。相対的な変位を検出。 |
| アブソリュート型 | 現在の絶対角度をデジタルコードとして出力する。 |
本記事では、産業用途で最も広く使われているインクリメンタル型に焦点を当てます。
インクリメンタル型エンコーダの信号
インクリメンタル型エンコーダは、一般的に以下の 3つの信号 を出力します。
| 信号名 | 役割 |
|---|---|
| A相 | 回転に応じた矩形波パルスを出力 |
| B相 | A相と90°位相がずれた矩形波パルスを出力 |
| Z相 | 1回転に1パルスだけ出力(原点信号) |
分解能(P/R)とは
エンコーダの分解能は、1回転あたりのパルス数で表され、単位は P/R(Pulses per Revolution)です。
例えば、1000 P/R のエンコーダであれば、軸が1回転する間にA相から 1000個のパルス(矩形波1000周期分)が出力されます。
分解能 1000 P/R のエンコーダの場合:
- 1パルスあたりの角度 = 360° ÷ 1000 = 0.36°
2. A相・B相の波形を理解する
インクリメンタル型エンコーダのA相とB相は、互いに90°(電気角)の位相差を持つ矩形波信号です。
ポイント
- A相とB相は同じ周波数・同じデューティ比(50%)の矩形波
- B相はA相に対して 90°(1/4周期)遅れて(または進んで)いる
- この位相差の方向が、回転方向の判別に使われる
「90°位相差」とは電気角のことです。エンコーダの物理的な取り付け角度ではありません。
1パルスの1周期が電気角360°に相当し、その1/4(=90°)ぶんずれている、という意味です。
3. 逓倍とは何か
逓倍(ていばい) とは、エンコーダのパルス信号からより多くのカウントを取り出す手法です。
エンコーダの分解能は物理的なスリットの数で決まりますが、信号処理の工夫によって、同じエンコーダから得られる位置情報の分解能を2倍・4倍に高めることができます。
逓倍の種類
| 逓倍 | カウント対象 | 1パルスあたりのカウント数 |
|---|---|---|
| 1逓倍(×1) | A相の立ち上がりエッジのみ | 1カウント |
| 2逓倍(×2) | A相の立ち上がり+立ち下がりエッジ | 2カウント |
| 4逓倍(×4) | A相+B相の全エッジ | 4カウント |
エッジ とは、信号が Low→High(立ち上がりエッジ)または High→Low(立ち下がりエッジ)に変化する瞬間のことです。
4. 1逓倍(×1)のカウント方法(通常のカウント方法)
1逓倍は最もシンプルなカウント方法です。A相の立ち上がりエッジだけをカウントします。
動作の説明
- A相の信号が Low → High に変化した瞬間(立ち上がりエッジ)を検出
- そのタイミングでカウントを+1する
- A相の立ち下がりエッジやB相の変化は無視する
特徴
- 1パルス = 1カウント なので、カウント値 = そのままパルス数
- 1000 P/R のエンコーダなら、1回転で 1000カウント
- 回路やソフトウェアが最もシンプル
- 分解能は最も低い
5. 2逓倍(×2)のカウント方法
2逓倍では、A相の立ち上がりエッジと立ち下がりエッジの両方をカウントします。
動作の説明
- A相の信号が Low → High(立ち上がり)に変化 → カウント+1
- A相の信号が High → Low(立ち下がり)に変化 → カウント+1
- B相の変化は無視する
特徴
- 1パルス = 2カウント となり、分解能が2倍になる
- 1000 P/R のエンコーダなら、1回転で 2000カウント
- 1逓倍と比べて分解能が向上するが、処理負荷は少し増える
6. 4逓倍(×4)のカウント方法
4逓倍は、A相・B相のすべてのエッジ(立ち上がり・立ち下がり)をカウントする方法です。これが最も高い分解能を実現します。
動作の説明
- A相の立ち上がりエッジ → カウント+1
- B相の立ち上がりエッジ → カウント+1
- A相の立ち下がりエッジ → カウント+1
- B相の立ち下がりエッジ → カウント+1
A相とB相は90°ずれているため、エッジは等間隔に発生します。1パルスの周期の中に4回のエッジがあるため、4逓倍と呼ばれます。
特徴
- 1パルス = 4カウント となり、分解能が4倍になる
- 1000 P/R のエンコーダなら、1回転で 4000カウント
- 最も高精度な位置検出が可能
- 産業用途では4逓倍が標準的に使われることが多い
なぜ4逓倍が広く使われるのか?
4逓倍は分解能が最大になるだけでなく、A相・B相の全エッジを監視するため、ノイズによる誤カウントの検出にも有利です。正常な状態遷移から外れた変化をエラーとして検出できます。
7. 逓倍の比較まとめ
同じ回転量に対して、逓倍方式によってカウント数がどう変わるかを比較します。
数値比較(1000 P/R のエンコーダの場合)
| 逓倍方式 | 1回転のカウント数 | 1カウントあたりの角度 | 用途 |
|---|---|---|---|
| 1逓倍(×1) | 1,000 | 0.360° | 回転数計測など |
| 2逓倍(×2) | 2,000 | 0.180° | 中精度の位置制御 |
| 4逓倍(×4) | 4,000 | 0.090° | 高精度位置決め |
カタログに記載されている「分解能 1000 P/R」は、逓倍前の値です。
4逓倍で使用する場合、実効分解能は 4000 カウント/回転 になります。
仕様書やプログラムを読む際は、逓倍を考慮した値かどうか確認しましょう。
8. 回転方向の検出(CW/CCW判定)
A相とB相の2つの信号があることで、パルスのカウントだけでなく回転方向も判定できます。
判定のルール
回転方向は、A相の立ち上がりエッジの瞬間に、B相がどの状態かを見ることで判定できます。
| A相の立ち上がり時のB相の状態 | 回転方向 |
|---|---|
| B相 = Low | 正転(CW) |
| B相 = High | 逆転(CCW) |
なぜこれで判定できるのか
正転(CW)の場合、A相がB相より先に変化します(A相がリード)。
そのため、A相が立ち上がった瞬間、B相はまだ Low のままです。
逆転(CCW)の場合は逆で、B相がA相より先に変化します。
そのため、A相が立ち上がった瞬間、B相はすでに High になっています。
補足: B相の立ち上がりエッジ時にA相の状態を見る、という逆のアプローチでも方向判定は可能です。この場合は判定条件が逆になります。
カウント方向との関係
方向検出とカウントを組み合わせることで、アップ/ダウンカウンタとして動作させられます。
- 正転(CW) → カウント +1(カウントアップ)
- 逆転(CCW) → カウント −1(カウントダウン)
これにより、モータの正転・逆転に対応した絶対位置のトラッキングが可能になります。
9. 4逓倍の状態遷移テーブル
4逓倍では、A相とB相の現在の状態と次の状態の組み合わせから、カウント方向を決定します。
A相とB相は、正転(CW)方向では以下の順序で状態が遷移します。
正転(CW):(0,0) → (1,0) → (1,1) → (0,1) → (0,0) → ...
逆転(CCW):(0,0) → (0,1) → (1,1) → (1,0) → (0,0) → ...
状態遷移テーブル
| 現在の状態 (A, B) | 次の状態 (A, B) | カウント |
|---|---|---|
| (0, 0) | (1, 0) | +1 |
| (1, 0) | (1, 1) | +1 |
| (1, 1) | (0, 1) | +1 |
| (0, 1) | (0, 0) | +1 |
| (0, 0) | (0, 1) | −1 |
| (0, 1) | (1, 1) | −1 |
| (1, 1) | (1, 0) | −1 |
| (1, 0) | (0, 0) | −1 |
| (0, 0) | (1, 1) | エラー |
| (1, 1) | (0, 0) | エラー |
| (0, 1) | (1, 0) | エラー |
| (1, 0) | (0, 1) | エラー |
エラーについて
エラーとは、正常な回転では起こりえない状態遷移です。例えば (0,0) から (1,1) に一気に変化するのは、A相とB相が同時に変化したことを意味し、正常な動作ではありえません。
エラーが発生した場合、以下の原因が考えられます。
- ノイズによる信号の乱れ
- 回転速度が速すぎてエッジを取りこぼしている
- 配線不良やコネクタの接触不良
エラー検出は4逓倍の大きなメリットです。1逓倍や2逓倍ではエッジを一部しか見ないため、ノイズによる誤カウントに気づきにくいという欠点があります。
10. Z相(原点信号)について
ここまでA相・B相について解説しましたが、多くのインクリメンタル型エンコーダにはもう1つ、Z相(またはインデックス信号)があります。
Z相の特徴
- 1回転に1回だけパルスを出力する
- パルス幅は通常、A相の1パルス幅と同じか、それより狭い
- A相・B相と特定の位相関係を持っている
Z相の用途
| 用途 | 説明 |
|---|---|
| 原点復帰 | 電源投入時やリセット時に、Z相を検出して機械原点を確定する |
| 回転数カウント | Z相のパルス数を数えることで、何回転したかを把握する |
| カウンタリセット | Z相のタイミングでカウンタを0にリセットし、累積誤差を防ぐ |
インクリメンタル型エンコーダは相対的な変位しかわかりません。電源を入れた直後は位置が不明です。Z相で原点を確定することで、擬似的に絶対位置を得ることができます。
11. 分周とは何か
分周(ぶんしゅう) は、逓倍とは逆の概念です。信号の周波数を整数分の1に下げる処理を指します。
分周の基本
| 分周比 | 意味 | 出力周波数 |
|---|---|---|
| ÷1 | 分周なし(そのまま) | f |
| ÷2 | 2パルスに1回出力 | f/2 |
| ÷4 | 4パルスに1回出力 | f/4 |
| ÷N | Nパルスに1回出力 | f/N |
分周の仕組み
分周は、入力パルスをカウンタで数えて、N回ごとに1つの出力パルスを生成する処理です。
入力: ┌┐┌┐┌┐┌┐┌┐┌┐┌┐┌┐ (8パルス)
2分周: ┌──┐┌──┐┌──┐┌──┐ (4パルス)
4分周: ┌────┐┌────┐ (2パルス)
なぜ分周が必要なのか
分周が必要になる主な場面は以下の通りです。
1. 高速回転時のパルス周波数が処理限界を超える場合
例えば、2000 P/R のエンコーダを 4逓倍で 3000 rpm で回転させると:
$$
パルス周波数 = 2000 \times 4 \times \frac{3000}{60} = 400 \text{ kHz}
$$
この周波数がコントローラの入力上限を超える場合、分周して周波数を下げる必要があります。
2. 既存システムとの分解能の整合
例えば、既存のプログラムが「1000カウント/回転」を前提にしている場合、2000 P/R のエンコーダを使うときは2分周して合わせるケースがあります。
3. 上位コントローラへの伝送
エンコーダの信号を長距離伝送する場合、高周波のパルスはノイズの影響を受けやすくなるため、分周して伝送するケースがあります。
12. 分周の具体例と計算方法
基本計算式
$$
出力パルス数 = \frac{エンコーダ分解能 \times 逓倍}{分周比}
$$
計算例
例1:高分解能エンコーダで標準的な制御を行う場合
- エンコーダ:2000 P/R
- 逓倍:4逓倍(×4)
- 分周比:÷4
$$
出力パルス数 = \frac{2000 \times 4}{4} = 2000 \text{ カウント/回転}
$$
例2:回転速度に応じた分周
エンコーダ 1000 P/R(4逓倍)を最大 6000 rpm で使用し、コントローラの最大入力周波数が 500 kHz の場合:
$$
最大パルス周波数 = 1000 \times 4 \times \frac{6000}{60} = 400 \text{ kHz}
$$
この場合は 500 kHz 以下なので分周不要です。
もし最大回転数が 10000 rpm に上がると:
$$
最大パルス周波数 = 1000 \times 4 \times \frac{10000}{60} \approx 667 \text{ kHz}
$$
500 kHz を超えるため、2分周が必要です:
$$
分周後の周波数 = \frac{667}{2} \approx 333 \text{ kHz} \quad (\leq 500 \text{ kHz} \quad \checkmark)
$$
分周回路の実現方法
分周は以下の方法で実現されます。
| 方法 | 概要 |
|---|---|
| ハードウェアカウンタ | Tフリップフロップやカウンタ IC を使って分周。応答が速い |
| 専用IC | エンコーダ信号処理用ICに分周機能が内蔵されていることが多い |
| マイコン内蔵タイマ | STM32等のマイコンのタイマペリフェラルにプリスケーラ(分周器)機能がある |
| PLC内蔵機能 | 高速カウンタモジュールに分周設定がある場合も |
13. 逓倍と分周の組み合わせ
実際のシステムでは、逓倍と分周を組み合わせて、目的に合った分解能に調整します。
設計の考え方
エンコーダ → 逓倍処理 → 分周処理 → コントローラ
(P/R) (×1/×2/×4) (÷N) (カウント値)
ステップ1: 必要な位置分解能から、逓倍方式を選ぶ
ステップ2: パルス周波数がコントローラの上限を超えないか確認
ステップ3: 必要に応じて分周比を設定
設計例
要件: 1回転を 1000分割したい。手元にあるエンコーダは 500 P/R。
解決策:
- 500 P/R × 2逓倍 = 1000カウント/回転 → 要件を満たす
- 500 P/R × 4逓倍 = 2000カウント/回転 → 2分周すれば1000 → これでもOK
どちらでも実現可能ですが、前者の方がシンプルです。
ただし後者は4逓倍のエラー検出メリットを活かせます。
14. 実務での注意点
1. カウント値とパルス数を混同しない
エンコーダの分解能が「1000 P/R」のとき:
- 1逓倍 → 1回転 = 1000カウント
- 4逓倍 → 1回転 = 4000カウント
仕様書やプログラム内で「パルス数」と「カウント値」のどちらを指しているかを常に確認しましょう。
2. 最大応答周波数に注意
逓倍を大きくすると、処理すべきパルスの周波数も上がります。
カウンタや割り込みの処理が追いつかないとパルスの取りこぼしが発生します。
$$
最大パルス周波数 = P/R \times 逓倍 \times \frac{最大回転数 [rpm]}{60}
$$
3. チャタリング対策
機械式エンコーダの場合、信号のエッジ付近でチャタリング(信号が不安定に振動する現象)が発生することがあります。4逓倍では全エッジをカウントするため、チャタリングの影響を受けやすいです。
対策例:
- デジタルフィルタ(一定時間内の複数回サンプリング)
- ハードウェアフィルタ(RCフィルタによるノイズ除去)
- 専用ICの内蔵フィルタ機能を活用
4. ケーブル長と信号品質
エンコーダの信号は高周波のパルスです。長距離配線では以下に注意が必要です。
- ラインドライバ/レシーバ(差動伝送)を使用する
- ケーブルはシールド付きツイストペアを使用
- 必要に応じて分周して周波数を下げてから伝送する
15. まとめ
逓倍
| 逓倍 | カウント対象 | 分解能倍率 |
|---|---|---|
| 1逓倍 | A相の立ち上がりのみ | ×1 |
| 2逓倍 | A相の両エッジ | ×2 |
| 4逓倍 | A相+B相の全エッジ | ×4 |
- 逓倍を大きくする → 分解能が上がる(より細かい位置を検出できる)
- 4逓倍が最も一般的で、エラー検出のメリットもある
分周
- 分周 = パルス周波数を整数分の1に下げる処理
- コントローラの周波数上限を超えないようにするために使う
- 逓倍と組み合わせて、目的の分解能に調整する
ラインセンサカメラとの同期撮影における分周の活用
ラインセンサカメラでは、エンコーダのパルスをトリガーにしてライン撮影を行うことで、送り方向の撮影間隔(=空間分解能)をエンコーダのパルスに同期させます。このとき、分周の設定を変えることで送り方向の撮影ピッチを調整できます。
例えば、分周比を大きくすればパルス間隔が広がり、撮影ピッチが粗くなります。逆に分周比を小さく(または分周なしに)すれば、より細かいピッチで撮影できます。
ただし、分周で撮影ピッチを調整する場合は、以下の点を考慮してエンコーダを選定する必要があります。
- エンコーダ側の最大応答周波数:分周前の元信号がエンコーダやカウンタの最大応答周波数を超えないこと
- ラインセンサカメラ側の最大ライン速度(最大応答周波数):分周比を小さくするほど撮影トリガーの頻度が上がりますが、ラインセンサカメラにはライン撮影可能な最大周波数(最大ラインレート)があります。分周比を小さくし過ぎて、カメラの最大ラインレートを超えるトリガー周波数にならないように注意が必要です。超えた場合、カメラが撮影に追いつかず、ラインの欠落や画像の乱れが発生します
- 調整代を見込んだパルス分解能:分周で撮影ピッチを調整するには、分周の「刻み幅」以下の細かい調整はできません。調整の自由度を確保するためには、あらかじめ十分に高い分解能(P/R)のエンコーダを選定し、分周で目的のピッチに落とす設計が有効です
$$
撮影ピッチ = \frac{送りローラ周長}{エンコーダ分解能 \times 逓倍 \div 分周比}
$$
分解能が低いエンコーダでは分周比の選択肢が限られ、ピッチの微調整ができなくなるため、最大応答周波数の範囲内で、できるだけ高分解能のエンコーダを選定することが実務上のポイントです。
回転方向検出
- A相の立ち上がり時のB相の状態で正転/逆転を判定
- 4逓倍では状態遷移テーブルで各エッジごとにカウント方向を判定
この記事が、エンコーダの逓倍と分周の理解のお役に立てれば幸いです。








