ROBOT ENGINEERING NOTES

로봇과 AMR의
전장 설계부터 인증까지

회로 실무, 산업자동화, Functional Safety, ISO 규격과 로봇 인증을 실제 설계 관점에서 정리합니다.

회로 실무 AMR / AGV Functional Safety ISO 13849 EMC / CE
AMR ENGINEERING GUIDE →

【로봇 제어 실무】 엔코더 A상 B상 Z상이란? | PPR, CPR, 4체배, 회전방향과 RPM 계산

 

 

【통신 실무】 Modbus Coil, Discrete Input, Holding Register 차이 | 주소와 Function Code 이해하기

【Safety 기능안전】 OSSD란? Safety Scanner 출력과 일반 PNP 센서의 차이AMR이나 산업용 로봇에 Safety Scanner, Light Curtain 같은 안전센서를 적용하다 보면 OSSD1, OSSD2라는 출력을 자주 보게 된다.실제로 측정

terrypack.tistory.com

 

【회로-전장 실무】 24V Digital Input 회로는 어떻게 설계할까? | PLC, 포토커플러, 입력저항

산업용 로봇과 AMR에서는 3.3V나 5V MCU Logic만 사용하는 것이 아니라 24V Digital Signal을 매우 많이 사용한다. E-STOP 상태, Sensor, Relay Feedback, Charger Interface, PLC I/O 등이 대표적이다.핵심24V Digital Input은 단

terrypack.tistory.com

MOTION CONTROL BASIC
 
엔코더는 단순히 회전수를 세는 센서가 아니라, 위치, 방향, 속도를 만드는 Motion Feedback의 기준이다
A상, B상, Z상을 어떻게 읽는지부터 PPR, CPR, 4체배와 실제 RPM 계산까지 최대한 쉽게 연결해서 설명한다.

모터 제어를 처음 공부하면 Encoder A상, B상, Z상이라는 표현부터 어렵게 느껴진다. 하지만 원리는 단순하다. 회전축이 움직일 때 일정한 간격으로 Pulse를 만들고 Controller는 그 Pulse의 개수와 순서를 보고 얼마나 움직였는지, 어느 방향으로 움직였는지, 얼마나 빠르게 움직였는지를 계산한다.

실무에서는 Encoder Spec을 잘못 해석하면 Position Resolution과 RPM 계산이 모두 틀어진다. 특히 PPR과 CPR, 4체배를 같은 뜻처럼 사용하는 것이 가장 흔한 실수다.

먼저 한 문장으로 설명하면,
A상과 B상은 회전량과 방향을 판단하는 두 개의 Pulse이고, Z상은 보통 한 회전에 한 번 나오는 기준 Pulse다. 다만 PPR, CPR의 정의는 제조사마다 표현이 다를 수 있으므로 최종 계산에서는 Datasheet 정의를 확인해야 한다.

1. 엔코더는 무엇을 측정하는 센서인가?

Rotary Encoder는 회전축의 움직임을 전기적 Signal로 바꾸는 센서다. Motor Shaft, Gearbox Output, Wheel, Robot Joint 등에 설치해 Position이나 Speed Feedback으로 사용한다.

크게 보면 Incremental Encoder와 Absolute Encoder로 나눌 수 있다. 이번 글은 PLC와 MCU, Motor Control에서 가장 자주 접하는 Incremental Encoder에 집중한다.

구분 특징 대표 용도
Incremental 움직일 때 Pulse를 발생하고 Count를 누적 Motor Speed, Position, Wheel Odometry
Absolute 현재 각도에 대응하는 절대 Code를 출력 Robot Joint, Servo, 전원 재인가 후 위치 유지가 중요한 장비

2. A상과 B상은 왜 두 개가 필요할까?

A상과 B상은 일반적인 Quadrature Encoder에서 서로 약 90도 위상차를 가지는 Pulse다. 한 개의 Pulse만 있어도 회전량은 셀 수 있지만 어느 방향으로 돌았는지는 알기 어렵다.

A상과 B상의 선후관계를 비교하면 회전방향을 판단할 수 있다.

STEP 01A EdgeA상 변화 감지
STEP 02B LevelB상 상태 확인
RESULTDirection 1위상 선후관계
REVERSEB Edge반대 회전
CHECKA Level위상관계 반전
RESULTDirection 2Count 감소
CW와 CCW는 배선과 설치방향에 따라 바뀔 수 있다."A상이 B상보다 앞서면 무조건 CW"라고 기계방향까지 외우기보다 제조사 Datasheet의 회전방향 정의와 실제 설치방향을 확인하고 Software의 Count 부호를 결정하는 편이 안전하다.

3. Z상은 무엇을 하는 Signal일까?

Z상은 Index 또는 Reference Pulse라고도 부른다. 많은 Incremental Encoder에서는 한 회전에 한 번 출력되어 기준 위치를 잡는 데 사용한다.

예를 들어 Machine을 부팅한 뒤 Home Sensor로 대략적인 기준을 찾고 Z Pulse를 이용해 더 정밀한 회전 기준을 잡을 수 있다. 다만 Z상은 Absolute Position을 항상 알려주는 Signal이 아니다. 전원이 꺼진 동안 몇 바퀴 움직였는지는 Incremental Encoder만으로 알 수 없다.

4. PPR과 CPR은 왜 자꾸 헷갈릴까?

문제는 제조사마다 Resolution 용어를 조금씩 다르게 사용한다는 점이다. PPR을 한 채널의 Pulse 수로 쓰는 제조사가 있고 CPR을 최종 Count 수로 쓰는 경우도 있다.

따라서 "1000 PPR Encoder"라는 한 문장만 보고 4체배 후 4000 Count라고 단정하지 말고 Datasheet에서 PPR과 Count의 정의를 먼저 확인해야 한다.

실무 기준계산할 때는 용어보다 한 회전당 Controller가 실제로 몇 Count를 얻는지를 최종 기준으로 두는 것이 가장 안전하다.

5. 1체배, 2체배, 4체배는 무엇인가?

Quadrature Encoder는 A와 B의 Rising Edge와 Falling Edge를 어디까지 Count하느냐에 따라 한 회전에서 얻는 Count 수가 달라진다.

방식 일반적인 Count 방법 한 A주기당 Count
X1 A상의 한 Edge만 Count 1
X2 A상의 Rising과 Falling Count 2
X4 A와 B의 Rising과 Falling 모두 Count 4

NI의 Quadrature Encoder 설명도 X1, X2, X4는 어떤 Edge에서 Counter를 증감시키는지의 차이이며 Encoder 자체의 PPR 정의와 Controller의 X4 Count 설정을 구분해야 한다고 설명한다.

6. 한 Count당 각도는 어떻게 계산할까?

한 회전당 실제 Count가 C라면
Angle per Count = 360° / C

예를 들어 Controller에서 한 회전당 1404 Count를 얻는다면 한 Count에 해당하는 각도는 약 0.256°다.

360° / 1404 ≈ 0.256° / count

필자가 과거 DC Gear Motor를 이용해 Delta Robot을 제어했을 때도 4체배 기준 1404 Count/Rev 수준의 Feedback을 사용했다. Position을 읽는 데는 사용할 수 있었지만 짧은 Sampling Period에서 저속 Speed를 계산할 때는 Resolution이 부족해 Velocity Loop 성능을 제한하는 원인이 됐다.

7. RPM은 어떻게 계산할까?

가장 단순한 방법은 일정 시간 동안 증가한 Count를 세는 것이다.

Count 기반 RPM 계산
RPM = (ΔCount / Counts_per_Rev) × (60 / Δt)

예를 들어 실제 Count가 4000 Count/Rev이고 0.1초 동안 200 Count가 증가했다면:

RPM = (200 / 4000) × (60 / 0.1) = 30 RPM

8. 저속에서 RPM 값이 튀는 이유

Encoder Position은 누적 Count를 사용하므로 비교적 안정적으로 보일 수 있다. 하지만 Speed는 짧은 시간 동안 Count가 얼마나 변했는지를 계산한다.

저속에서는 1ms 동안 Pulse가 0개였다가 다음 1ms에 1개가 들어오는 식으로 보일 수 있다. 실제 Motor는 거의 일정하게 움직여도 계산된 Speed는 0과 특정 값 사이에서 계단처럼 변한다.

Control 주기를 빠르게 한다고 Speed Resolution까지 자동으로 좋아지는 것은 아니다.Encoder Resolution이 낮은 상태에서 Sampling Period만 지나치게 짧게 하면 한 주기당 Count 수가 더 줄어 Speed Quantization이 심해질 수 있다.

9. 저속 Speed는 Pulse 간격을 재는 방법도 있다

Count Window 방식 대신 Pulse와 다음 Pulse 사이의 시간을 측정하면 저속구간에서 더 세밀한 Speed Estimation이 가능할 수 있다.

Pulse Period 기반 개념식
RPM ≈ 60 / (Pulse_Period × Pulses_per_Rev)

고속에서는 짧은 시간창의 Count 방식이 편하고, 저속에서는 Period Measurement가 유리할 수 있다. 실제 Controller에서는 두 방법을 구간별로 조합하기도 한다.

10. 고속에서는 반대로 최대 입력주파수를 확인해야 한다

Resolution이 높을수록 좋다고만 생각하면 또 다른 문제가 생긴다. Motor RPM이 높고 PPR이 크면 Encoder Input Frequency가 빠르게 올라간다.

한 채널 Pulse Frequency의 단순 예
f = PPR × RPM / 60

Controller의 High-speed Counter, Timer, Input Filter가 이 Frequency를 받아들일 수 있어야 한다.

11. A, B, Z 외에 A-, B-, Z-가 있는 이유

산업용 Encoder에는 A+, A-, B+, B-, Z+, Z-처럼 Differential Signal이 제공되는 경우가 많다. 반대 위상의 두 Signal을 Differential Receiver가 비교하면 Cable에 공통으로 유입된 Noise를 줄이는 데 유리하다.

긴 Cable, Servo Motor 주변, Inverter Noise가 큰 환경에서는 Output Type과 Receiver Interface를 반드시 같이 확인해야 한다.

12. 실제 배선에서 확인할 항목

Encoder Wiring Checklist
  • Encoder Supply Voltage가 5V인지 12V인지 24V인지 확인한다.
  • Open Collector, Push-Pull, Line Driver 등 Output Type을 확인한다.
  • PLC 또는 MCU Input Voltage Level과 호환되는지 확인한다.
  • A/B/Z와 Complementary Signal의 Pinout을 확인한다.
  • Shield와 Frame Ground 연결방법은 제조사 권장사항을 따른다.
  • 최대 Cable Length와 최대 Output Frequency를 확인한다.

13. Encoder Resolution이 Control Architecture까지 바꿀 수 있다

실무에서 Encoder는 단순 Sensor가 아니다. 사용 가능한 Feedback 품질에 따라 어떤 Control Loop를 넣을 수 있는지가 달라질 수 있다.

과거 Delta Robot에서는 Position Control은 가능했지만 Encoder Resolution 때문에 Velocity Feedback 품질이 충분하지 않아 Current-Speed-Position 3중 Cascade 대신 Current-Position 구조를 사용했다.

설계에서 가장 중요한 질문
"PPR이 몇인가?"보다 "내가 원하는 Sampling Time과 최저속도에서 한 주기당 몇 Count를 얻을 수 있는가?"를 계산해야 한다.

14. 엔코더를 선정할 때 이렇게 보면 된다

KEY 01Position Resolution

필요한 각도 또는 이동거리보다 Count Resolution이 충분한지 확인한다.

KEY 02Low-speed Estimation

최저속도와 Control Period에서 Pulse가 충분히 들어오는지 계산한다.

KEY 03Maximum Frequency

최고 RPM에서 PLC HSC 또는 MCU Timer가 Pulse를 놓치지 않는지 확인한다.

KEY 04Electrical Interface

Voltage와 Output Type, Cable Noise까지 같이 본다.

마무리

Incremental Encoder는 A/B Pulse를 세는 단순한 장치처럼 보이지만 실제 Motion Control에서는 Position, Direction, Speed를 만드는 핵심 Feedback Sensor다.

A/B/Z의 의미를 이해한 뒤에는 PPR이라는 숫자만 보지 말고 실제 Count/Rev, Sampling Period, 최저속도와 최고속도까지 연결해서 봐야 한다.

같이 보면 좋은 TerryPack 글

반응형
LIST