G90 절대 좌표와 G91 증분 좌표: 같은 숫자가 다른 위치가 되는 순간
G90 절대 지령과 G91 증분 지령의 차이, 증분 모드가 유용한 반복 가공, 모드를 되돌리지 않아 생기는 사고를 사각 홈 예제와 좌표 추적 표로 설명합니다.
두 방식의 차이 한 문장
G90(절대)에서 X20.은 “작업 원점에서 X 방향으로 20인 위치로 가라”이고, G91(증분)에서 X20.은 “지금 위치에서 X로 20만큼 더 가라”입니다. 같은 글자와 숫자가 모드에 따라 전혀 다른 목적지가 됩니다.
두 코드는 같은 그룹의 모달 명령이라 한 번 지령하면 다른 쪽이 나올 때까지 유지됩니다. 블록에 G90/G91이 적혀 있지 않아도, 위쪽 어딘가에서 마지막으로 지령된 모드가 적용됩니다.
예제와 좌표 추적
G91 증분으로 20×15 사각을 그리고 G90으로 복귀
O3004
T1 M6
G21 G90 G17 G94
G54
S3000 M03
G00 X10. Y10. Z5.
G01 Z-1. F100
G91 X20. F300
Y15.
X-20.
Y-15.
G90 G00 Z50.
M30위 그림은 이 프로그램을 CNC Path Analyzer로 해석한 결과입니다 (급속 2 구간, 직선 절삭 5 구간).
한 줄씩 위치 따라가기
증분 구간의 네 블록은 시작점이 어디든 상관없이 20×15 사각을 그립니다. 시작점 (10,10)을 (40,30)으로 바꾸면 사각도 그대로 옮겨 갑니다. 이 성질이 증분 지령의 가장 큰 장점입니다.
| 블록 | 모드 | 이동량 | 이동 후 위치(X, Y, Z) |
|---|---|---|---|
G00 X10. Y10. Z5. | G90 | - | (10, 10, 5) |
G01 Z-1. F100 | G90 | - | (10, 10, -1) |
G91 X20. F300 | G91 | X +20 | (30, 10, -1) |
Y15. | G91 | Y +15 | (30, 25, -1) |
X-20. | G91 | X -20 | (10, 25, -1) |
Y-15. | G91 | Y -15 | (10, 10, -1) |
G90 G00 Z50. | G90 | - | (10, 10, 50) |
반복 형상에 증분 좌표 쓰기
같은 모양을 여러 위치에 만들어야 할 때 증분 모드는 특히 유용합니다. 모양을 증분으로 적어 서브프로그램으로 만들어 두면, 메인 프로그램에서는 각 위치로 이동한 뒤 호출만 하면 됩니다. 일정 간격의 구멍이나 홈을 반복할 때도 G91 X15. 같은 같은 줄을 반복하면 되어 실수가 줄어듭니다.
반대로 증분은 오차가 누적됩니다. 원호 끝점 계산을 반올림하며 0.001mm씩 어긋나면, 열 번 반복한 뒤에는 0.01mm가 됩니다. 정밀한 위치가 필요한 기준 구멍이나 마지막 위치는 절대 좌표로 지령해 누적을 끊는 것이 좋습니다.
가장 흔한 사고: G91을 끄지 않고 끝내기
증분 구간이 끝난 뒤 G90으로 돌아가지 않으면, 다음의 G00 Z50.은 “높이 50으로”가 아니라 “지금보다 50mm 위로”가 되고, G00 Z-5. 같은 블록은 “높이 -5로”가 아니라 “지금보다 5mm 아래로”가 됩니다. 공구 교환 위치로 간다고 믿은 이동이 소재 쪽으로 들어가는 사고가 이렇게 생깁니다.
예제의 마지막 블록이 G90 G00 Z50.처럼 모드 전환과 이동을 한 줄에 함께 적은 이유입니다. 서브프로그램이 G91로 끝나는 경우도 많으니, 호출 뒤 메인 프로그램 첫 줄에 G90을 다시 적는 습관이 안전합니다.
어느 쪽을 기본으로 쓸까
- 프로그램 전체는 G90 절대를 기본으로 씁니다. 어느 줄을 봐도 목적지가 바로 보여 검토가 쉽습니다.
- 반복 형상, 서브프로그램, 일정 피치 이동처럼 상대적인 모양이 중요한 부분에서만 G91을 쓰고, 구간이 끝나면 즉시 G90으로 돌아갑니다.
- 원호의 I·J·K는 대부분의 제어기에서 모드와 관계없이 증분(시작점 기준)으로 읽는다는 점을 기억합니다. 자세한 내용은 G02·G03 글에 있습니다.
자주 묻는 질문
한 블록 안에서 절대와 증분을 섞을 수 있나요?
X30. W-5.처럼 섞을 수 있습니다.