본문 바로가기
돈버는정보 돈버는정보

엔코더 Gray Code·Binary Code 차이|절대 위치 코드 해석

읽는 시간 약 10분

앱솔루트 엔코더 데이터시트를 보면 Gray Code, Binary Code라는 표현을 볼 수 있습니다.

둘 다 현재 위치를 디지털 값으로 표현하는 방법이지만, 한 위치에서 다음 위치로 바뀔 때 비트가 변화하는 방식이 다릅니다.

가장 간단하게 보면

Binary Code = 일반적인 2진수 표현

Gray Code = 인접한 위치로 이동할 때 한 비트만 변화하는 코드

라고 이해할 수 있습니다.

Gray Code·Binary Code 기본 차이

구분Binary CodeGray Code
기본 원리일반 2진수인접 값에서 1bit만 변화
위치 변화 시여러 bit가 동시에 바뀔 수 있음기본적으로 1bit만 변화
장점계산과 해석이 간단전환 순간의 판독 오류 감소
대표 용도디지털 연산앱솔루트 엔코더 위치 출력

앱솔루트 엔코더에서는 회전축의 각 위치마다 고유한 디지털 코드를 부여합니다.

이때 어떤 코드체계를 사용하느냐에 따라 Gray 또는 Binary 방식으로 구분할 수 있습니다.

Binary Code란?

Binary Code는 우리가 일반적으로 사용하는 2진수 표현방식입니다.

예를 들어 0부터 7까지를 3bit Binary로 표시하면

0 = 000
1 = 001
2 = 010
3 = 011
4 = 100
5 = 101
6 = 110
7 = 111

이 됩니다.

숫자를 계산하거나 PLC에서 처리하기에는 매우 직관적인 방식입니다.

하지만 위치가 변하는 순간에는 여러 개의 비트가 동시에 바뀔 수 있다는 특징이 있습니다.

Binary는 여러 비트가 동시에 바뀔 수 있다

예를 들어 Binary 값이

3 = 011

에서

4 = 100

으로 바뀐다고 해보겠습니다.

이때

011 → 100

으로 세 개의 비트가 모두 변경됩니다.

실제 전자회로에서는 각 신호선이 완전히 같은 순간에 바뀌지 않을 수 있습니다.

아주 짧은 시간이라도 한 비트가 먼저 변하고 다른 비트가 나중에 변하면 컨트롤러가 중간값을 읽을 가능성이 생길 수 있습니다.

이런 문제를 줄이기 위해 앱솔루트 엔코더에서 Gray Code가 많이 사용됩니다.

Gray Code란?

Gray Code는 한 위치에서 바로 다음 위치로 이동할 때 단 하나의 비트만 바뀌도록 만든 코드입니다.

예를 들어 3bit Gray Code는 다음처럼 표현할 수 있습니다.

0 = 000
1 = 001
2 = 011
3 = 010
4 = 110
5 = 111
6 = 101
7 = 100

여기서 각 값을 순서대로 비교해 보면 항상 하나의 비트만 변경됩니다.

예를 들어

3 = 010

에서

4 = 110

으로 바뀔 때도 가장 왼쪽 비트 하나만 변합니다.

왜 엔코더에서 Gray Code를 사용할까?

앱솔루트 엔코더는 축이 움직이는 동안 여러 위치 데이터를 계속 읽습니다.

Binary Code처럼 여러 비트가 동시에 변경되는 구조에서는 신호 전환 시점에 잘못된 값을 잠깐 읽을 가능성이 있습니다.

반면 Gray Code는 인접한 위치 사이에서 한 비트만 바뀌기 때문에 위치 변화 순간에 발생할 수 있는 모호한 코드 판독을 줄이는 데 유리합니다.

그래서 Gray Code는 앱솔루트 엔코더의 위치 출력방식으로 널리 사용되어 왔습니다.

7에서 8로 바뀔 때 비교해보자

4bit Binary에서

7 = 0111

8 = 1000

입니다.

7에서 8로 바뀌면 4개의 비트가 모두 변경됩니다.

반면 같은 위치를 Gray Code로 표현하면 인접한 두 값 사이에서 하나의 비트만 변경됩니다.

즉 위치 경계에서 여러 신호선이 동시에 전환되는 문제를 줄일 수 있습니다.

이것이 Gray Code의 핵심 특징입니다.

Gray Code가 실제 숫자와 바로 같지는 않다

Gray Code의 010이라는 값이 일반 Binary의 숫자 2를 의미한다고 그대로 해석하면 안 됩니다.

Gray Code는 별도의 코드체계이므로 PLC나 컨트롤러에서 실제 숫자로 사용하려면 Gray-to-Binary 변환이 필요할 수 있습니다.

예를 들어 Gray Code

011

은 Binary로 변환하면

010

즉 Decimal 2가 됩니다.

따라서 엔코더가 Gray 출력을 제공한다면 제어기가 Gray Code 입력이나 변환기능을 지원하는지도 확인해야 합니다.

Gray Code를 Binary로 어떻게 바꿀까?

변환 원리는 비교적 간단합니다.

가장 왼쪽의 Gray bit는 그대로 Binary의 첫 번째 bit가 됩니다.

그다음 비트부터는 이전 Binary bit와 현재 Gray bit를 이용해 순서대로 계산합니다.

실제 산업용 PLC에서는 프로그램 명령이나 변환 함수로 처리할 수 있기 때문에 사람이 매번 직접 계산할 필요는 없습니다.

중요한 것은 엔코더 출력 코드와 PLC 설정을 동일하게 맞추는 것입니다.

12bit 엔코더라면 몇 개 위치를 표현할까?

12bit 앱솔루트 엔코더라면 이론적으로

2¹² = 4096

개의 서로 다른 위치값을 표현할 수 있습니다.

한 바퀴를 4096단계로 나눈다면 한 단계는

360° ÷ 4096 ≈ 0.088°

입니다.

이 4096개 위치를 Binary로 출력할 수도 있고 Gray Code로 출력할 수도 있습니다.

따라서

12bit = 분해능

Gray·Binary = 위치값을 표현하는 코드방식

이라는 점을 구분해야 합니다.

SSI와 Gray Code는 같은 것일까?

같지 않습니다.

이 부분은 데이터시트를 볼 때 자주 혼동할 수 있습니다.

SSI

는 엔코더의 데이터를 컨트롤러로 전달하는 통신 인터페이스

이고,

Gray·Binary

는 전달되는 위치값을 표현하는 코드 형식

입니다.

실제로 일부 앱솔루트 엔코더는

Interface: SSI

Code: Gray or Binary

처럼 표시됩니다.

즉 SSI 통신을 사용하면서 위치데이터는 Gray 또는 Binary 중 하나로 설정할 수 있는 것입니다. Baumer의 여러 앱솔루트 엔코더도 SSI 인터페이스에서 Gray와 Binary 코드를 지원합니다. Baumer

Gray Code가 무조건 더 좋은가?

항상 그렇게 볼 필요는 없습니다.

Gray Code는 위치 전환 과정에서 발생할 수 있는 코드 판독 오류를 줄이는 데 장점이 있습니다.

반면 Binary Code는 일반적인 숫자 표현과 직접 연결되어 있어 제어시스템에서 처리하기 간단할 수 있습니다.

최근의 시리얼 앱솔루트 엔코더에서는 데이터 전송방식과 오류검출 기능도 함께 사용되기 때문에 실제 선택은 엔코더와 제어기의 인터페이스 구조에 따라 달라집니다.

따라서 Gray가 고급이고 Binary가 낮은 등급이라는 의미는 아닙니다.

실제 사양은 어떻게 읽을까?

앱솔루트 엔코더 사양에

Singleturn: 13bit

Interface: SSI

Code: Gray

라고 적혀 있다고 가정해보겠습니다.

이를 해석하면

13bit
한 바퀴의 위치를 최대 8192단계로 표현

SSI
컨트롤러로 위치데이터를 전달하는 통신방식

Gray
위치값을 Gray Code 형식으로 전달

한다는 의미입니다.

실제로 Baumer의 SSI 앱솔루트 엔코더에서도 13bit 해상도와 Gray Code 조합을 사용하는 제품을 확인할 수 있습니다. Baumer

정리

앱솔루트 엔코더의 Gray Code와 Binary Code는 위치정보를 숫자로 표현하는 방법의 차이입니다.

Binary Code = 일반적인 2진수 표현

Gray Code = 인접한 위치로 이동할 때 한 비트만 변경

Gray Code는 한 위치에서 다음 위치로 전환될 때 하나의 bit만 변경되기 때문에 위치 경계에서의 판독 오류를 줄이는 데 유리합니다. OMRON 역시 Gray Code의 특징을 주소가 변할 때 한 비트만 바뀌는 코드로 설명합니다. Omron IA

따라서 앱솔루트 엔코더를 선택할 때는

분해능(bit) → Gray·Binary 코드 → Singleturn·Multiturn → SSI 등 인터페이스 → PLC 호환성

순서로 확인하는 것이 좋습니다.

참고자료

  • OMRON Industrial Automation – Gray Code / Rotary Encoder FAQ: Gray Code는 위치가 변경될 때 하나의 bit만 변화하기 때문에 Binary나 BCD보다 전환 시 안정적으로 읽을 수 있다고 설명합니다. Omron IA
  • Encoder Products Company – Gray Codes, Natural Binary Codes, and Conversions: Gray Code와 Natural Binary의 차이 및 앱솔루트 엔코더에서 한 bit 전환방식을 사용하는 이유를 설명합니다. Encoder
  • Baumer Absolute Encoder Technical Data: 실제 SSI 앱솔루트 엔코더에서 Code: Gray or binary를 지원하는 제품 사양을 확인할 수 있습니다. Baumer
moneytoday
함께 보면 좋은 글

댓글 0

첫 댓글을 남겨보세요.

광고 차단 알림

광고 클릭 제한을 초과하여 광고가 차단되었습니다.

단시간에 반복적인 광고 클릭은 시스템에 의해 감지되며, IP가 수집되어 사이트 관리자가 확인 가능합니다.