엔코더 PPR·CPR 해상도 차이
로터리 엔코더 데이터시트를 보면 500 PPR, 1000 PPR, 4000 CPR 같은 표기를 자주 볼 수 있습니다. 모두 엔코더가 한 바퀴 회전할 때 만들어지는 위치정보의 양과 관련된 값이지만, PPR과 CPR은 제조사에 따라 정의가 다르게 사용되는 경우가 있어 특히 주의해야 합니다.
일반적인 쿼드러처 엔코더 기준으로 보면
PPR = Pulses Per Revolution, 1회전당 펄스 수
CPR = Counts Per Revolution, 1회전당 실제 카운트 수
로 구분할 수 있습니다.
A·B상의 상승·하강 에지를 모두 읽는 ×4 디코딩에서는 일반적으로
CPR = PPR × 4
가 됩니다. NI도 ×4 방식에서는 A상과 B상의 상승·하강 에지를 모두 카운트해 한 주기당 4개의 카운트를 얻는다고 설명합니다.
엔코더의 PPR이란?
PPR은 일반적으로 Pulses Per Revolution, 즉 엔코더 축이 한 바퀴 회전할 때 한 채널에서 발생하는 펄스 또는 신호 주기의 개수를 의미합니다.
예를 들어
1000 PPR
엔코더라면 축이 한 바퀴 회전할 때 A상에서 1000개의 신호 주기가 발생한다고 이해할 수 있습니다.
따라서 PPR 값이 높을수록 한 바퀴를 더 잘게 나눠 위치를 검출할 수 있습니다.
다만 Pulse라는 용어를 제조사마다 조금 다르게 사용하는 경우가 있기 때문에 제품 데이터시트에서 PPR이 주기 수를 의미하는지, 에지 카운트까지 포함한 값인지 확인하는 것이 중요합니다. Same Sky도 PPR·CPR 용어가 제조사마다 서로 다른 의미로 사용될 수 있다고 설명합니다.
CPR이란?
CPR은 일반적으로 Counts Per Revolution, 즉 엔코더가 1회전했을 때 컨트롤러가 실제로 얻는 카운트 수를 의미합니다.
쿼드러처 엔코더에서는 A상과 B상이라는 두 개의 신호가 사용됩니다.
두 신호는 약 90°의 전기적 위상차를 갖기 때문에 회전 방향을 판별할 수 있으며, 어떤 에지를 카운트하느냐에 따라 한 주기에서 얻을 수 있는 카운트 수가 달라집니다.
대표적으로
×1 → PPR × 1
×2 → PPR × 2
×4 → PPR × 4
가 됩니다. NI는 ×1에서는 A상의 한쪽 에지, ×2에서는 A상의 상승·하강 에지, ×4에서는 A·B 양쪽의 상승·하강 에지를 모두 이용한다고 설명합니다.
PPR과 CPR 차이
일반적인 정의를 기준으로 비교하면 다음과 같습니다.
| 구분 | PPR | CPR |
|---|---|---|
| 대표 의미 | Pulses Per Revolution | Counts Per Revolution |
| 기준 | 한 채널의 신호 주기 | 컨트롤러가 실제 계산하는 카운트 |
| ×1 디코딩 | PPR | PPR |
| ×2 디코딩 | PPR | PPR × 2 |
| ×4 디코딩 | PPR | PPR × 4 |
| 주 용도 | 엔코더 기본 분해능 표기 | 제어기 위치 계산 |
따라서 1000 PPR 엔코더라고 해서 항상 1회전에 1000카운트만 얻는 것은 아닙니다.
×4 쿼드러처 디코딩을 사용한다면 4000카운트까지 얻을 수 있습니다.
1000 PPR 엔코더를 실제로 계산해보면?
1000 PPR의 A·B상 엔코더가 있다고 가정해보겠습니다.
×1 방식
한 주기당 한 번만 카운트하면
1000 × 1 = 1000 counts/rev
입니다.
한 카운트당 회전각은
360° ÷ 1000 = 0.36°
입니다.
×2 방식
A상의 상승과 하강 에지를 모두 읽으면
1000 × 2 = 2000 counts/rev
이고,
360° ÷ 2000 = 0.18°
가 됩니다.
×4 방식
A·B상의 상승·하강 에지를 모두 읽으면
1000 × 4 = 4000 counts/rev
가 됩니다.
따라서 한 카운트당 각도는
360° ÷ 4000 = 0.09°
입니다.
NI 역시 ×4 디코딩에서 한 신호 주기마다 4개의 증가 또는 감소 카운트가 발생한다고 설명합니다.
해상도는 어떻게 계산할까?
회전형 엔코더의 이론적인 각도 해상도는 다음과 같이 계산할 수 있습니다.
각도 해상도 = 360° ÷ 1회전당 실제 카운트 수
예를 들어 2500 PPR 엔코더를 ×4 방식으로 사용한다면
2500 × 4 = 10,000 CPR
입니다.
따라서
360° ÷ 10,000 = 0.036°/count
가 됩니다.
즉 이론적으로 한 카운트가 약 0.036°의 회전변화에 해당합니다.
PPR이 높으면 무조건 더 정확할까?
그렇지는 않습니다.
PPR이나 CPR이 높아지면 더 작은 움직임을 구분할 수 있는 해상도는 높아집니다.
하지만 해상도와 실제 정확도는 같은 의미가 아닙니다.
엔코더의 실제 위치 정확도에는
기계적 편심, 축 설치오차, 신호 위상오차, 디스크 제조오차, 베어링 유격, 전기적 노이즈
등 여러 요소가 영향을 줄 수 있습니다.
따라서
높은 PPR = 높은 해상도
라고 할 수는 있지만,
높은 PPR = 실제 위치 정확도가 반드시 그만큼 높음
이라고 단정할 수는 없습니다.
A상과 B상을 왜 두 개 사용할까?
A상과 B상은 같은 형태의 펄스를 출력하지만 서로 90° 위상이 어긋나 있습니다.
이 차이를 이용하면 회전 방향을 판단할 수 있습니다.
예를 들어 한 방향으로 회전할 때 A상이 B상보다 먼저 변한다면 반대 방향에서는 B상이 먼저 변합니다.
컨트롤러는 이 순서를 보고
정회전
역회전
을 구분합니다.
NI 역시 쿼드러처 엔코더에서 A와 B의 어느 신호가 앞서는지를 이용해 카운터를 증가시킬지 감소시킬지 판단한다고 설명합니다.
Z상은 PPR·CPR과 어떤 관계가 있을까?
인크리멘털 엔코더에는 A·B 외에 Z상(Index)이 있는 제품이 많습니다.
Z상은 일반적으로 축이 한 바퀴 회전할 때 특정 위치에서 한 번 발생하는 기준신호로 사용됩니다.
A·B상은 계속 위치변화를 카운트하지만 전원이 꺼지면 누적 위치값이 사라질 수 있습니다.
이때 Z상을 이용하면 기계의 원점이나 기준위치를 다시 찾는 데 활용할 수 있습니다.
따라서
A·B = 위치변화와 방향 검출
Z = 1회전 기준점
이라고 구분하면 이해하기 쉽습니다.
가장 중요한 주의점: CPR 정의가 제조사마다 다르다
PPR과 CPR에서 가장 주의해야 할 부분입니다.
많은 자료에서는
PPR = 펄스 또는 주기 수
CPR = ×4 디코딩 후 카운트 수
로 설명합니다.
Same Sky 역시 이 정의에서는 쿼드러처 ×4 사용 시 CPR = PPR × 4라고 설명합니다. 하지만 동시에 일부 제조사는 CPR을 Cycles Per Revolution의 약자로 사용한다고 지적합니다. 이 경우 CPR이 PPR과 같은 의미가 될 수 있습니다.
심지어 US Digital은 자사 용어에서 CPR을 쿼드러처 전 기본 해상도, PPR을 ×4 후 펄스 수 의미로 사용하는 경우가 있다고 명시하고 있습니다.
즉 업계 전체에서 PPR·CPR 약어가 완전히 통일되어 있다고 생각하면 안 됩니다.
같은 1000이라는 숫자도 4배 차이가 날 수 있다
예를 들어 제조사 A가
1000 PPR
이라고 표시하고 이것이 A상 한 채널의 1000주기를 의미한다면 ×4에서
4000 counts/rev
가 됩니다.
그런데 제조사 B가
4000 CPR
이라고 표시하고 CPR을 ×4 후의 Counts Per Revolution 의미로 사용한다면 두 제품의 실질적인 카운트 해상도는 같을 수 있습니다.
반대로 어떤 제조사가 1000 CPR을 Cycles Per Revolution 의미로 사용한다면 ×4 후에는 4000카운트가 될 수도 있습니다.
그래서 엔코더를 구입하거나 PLC·서보드라이브를 설정할 때는 숫자만 비교하면 안 됩니다.
PLC나 서보드라이브에 어떤 값을 입력해야 할까?
제어기 설정에는
Encoder PPR
Encoder resolution
Counts/rev
Pulses/rev
같은 항목이 있을 수 있습니다.
여기에서 무조건 명판 숫자를 그대로 입력하면 안 됩니다.
예를 들어 엔코더가 1000 PPR이고 컨트롤러가 입력값으로 Counts per Revolution after ×4 decoding을 요구한다면 입력해야 할 값은
4000
일 수 있습니다.
반대로 제어기가 Encoder PPR을 요구하면서 내부에서 자동으로 ×4 계산을 한다면
1000
을 입력해야 합니다.
따라서 반드시 엔코더 데이터시트와 컨트롤러 매뉴얼의 정의를 둘 다 확인해야 합니다.
PPR와 CPR을 잘못 입력하면 위치나 속도가 실제보다 4배 크거나 1/4로 작게 표시되는 문제가 생길 수 있습니다.
PPR이 높으면 최대 회전속도에도 영향을 줄까?
영향을 줄 수 있습니다.
PPR이 높아지면 같은 회전속도에서도 출력 펄스 주파수가 높아집니다.
예를 들어 1000 PPR 엔코더가 3000 rpm으로 회전한다고 가정하면 초당 회전수는
3000 ÷ 60 = 50 rps
입니다.
따라서 A상 기본 주파수는
1000 × 50 = 50,000Hz
즉 약 50kHz가 됩니다.
2500 PPR이라면 같은 회전속도에서
2500 × 50 = 125kHz
가 됩니다.
따라서 고해상도 엔코더를 고속으로 사용할 때는 PLC 고속카운터나 서보드라이브가 해당 입력주파수를 처리할 수 있는지 확인해야 합니다.
단순히 PPR이 높다고 좋은 것이 아니라 필요한 위치 해상도와 최대 회전속도, 입력주파수 한도를 함께 고려해야 합니다.
기어가 연결되어 있다면 실제 해상도는 어떻게 될까?
엔코더와 출력축 사이에 감속기가 있다면 출력축 기준 해상도는 더 높아질 수 있습니다.
예를 들어
엔코더 = 1000 PPR
×4 디코딩 = 4000 CPR
감속비 = 10:1
이라면 출력축이 한 바퀴 회전하는 동안 모터축은 10바퀴 회전합니다.
따라서 출력축 기준으로는
4000 × 10 = 40,000 counts/rev
가 됩니다.
한 카운트당 이론적 회전각은
360° ÷ 40,000 = 0.009°
입니다.
다만 실제 기계에서는 감속기 백래시와 기계적 유격 등이 추가되므로 계산된 값이 곧 실제 위치정확도를 의미하는 것은 아닙니다.
실제 데이터시트는 어떻게 읽을까?
예를 들어 다음과 같은 엔코더 사양이 있다고 가정해보겠습니다.
Resolution: 1024 PPR
Output: A, B, Z
Quadrature: A/B 90°
Maximum response frequency: 100kHz
이를 해석하면
1024 PPR
1회전당 기본적으로 1024개의 주기 또는 제조사가 정의한 펄스 해상도
A, B
회전량과 회전방향 검출
Z
1회전 기준 위치 신호
A/B 90°
쿼드러처 신호
입니다.
만약 제조사가 PPR을 한 채널의 주기 수로 정의하고 컨트롤러가 ×4 디코딩한다면
1024 × 4 = 4096 counts/rev
가 됩니다.
각도 해상도는
360° ÷ 4096 ≈ 0.0879°/count
입니다.
하지만 계산하기 전에 반드시 해당 제조사가 PPR·CPR을 어떻게 정의했는지 확인해야 합니다.
정리
엔코더의 PPR과 CPR은 모두 1회전당 위치정보의 양을 나타내는 데 사용되지만 의미가 완전히 같지는 않습니다.
일반적인 쿼드러처 엔코더 정의에서는
PPR = Pulses Per Revolution
CPR = Counts Per Revolution
이며 ×4 디코딩에서는
CPR = PPR × 4
로 계산할 수 있습니다. NI는 ×4 방식에서 A·B상의 상승과 하강 에지를 모두 카운트해 한 주기당 4개의 카운트를 얻는다고 설명합니다.
예를 들어
1000 PPR → ×4 → 4000 counts/rev
이고,
360° ÷ 4000 = 0.09°/count
가 됩니다.
하지만 가장 중요한 점은 PPR과 CPR의 정의가 제조사마다 통일되어 있지 않다는 것입니다. 일부 제조사는 CPR을 Counts Per Revolution이 아니라 Cycles Per Revolution으로 사용하기도 하므로, 숫자만 보고 엔코더의 해상도를 판단해서는 안 됩니다.
실제 엔코더를 선택하거나 PLC·서보드라이브를 설정할 때는 PPR·CPR 정의 → A/B 쿼드러처 여부 → ×1·×2·×4 디코딩 → 실제 counts/rev → 최대 입력주파수 → 필요한 각도 해상도 순서로 확인하는 것이 중요합니다.




댓글 0
첫 댓글을 남겨보세요.