G코드와 M코드 이해: CNC 프로그래밍 필수 기초
CNC 프로그래밍은 오늘날 제조업의 핵심입니다. 최신 CNC 기계는 프로그램으로 작동하므로, 운영자는 사용할 수 있는 코드 유형과 사용 방법을 알아야 합니다.
CNC 소프트웨어에서 가장 일반적으로 사용되는 프로그래밍 언어는 G코드이며, M코드도 특정 용도로 사용됩니다. CNC 가공에서 G코드와 M코드는 중요한 역할과 기능을 수행합니다:
- G코드: CNC 프로그래밍에서 기계의 움직임을 제어하며, 부품을 이동하는 방식과 위치를 지시합니다.
- M코드: CNC 프로그래밍에서 특정 동작이나 프로그램의 시작/정지 등 기타 기계 기능을 제어합니다.
이 두 코드는 부품과 어셈블리 제조를 위해 함께 작동하며, 제조업과 산업에서 필수적입니다.

G코드 소개
CNC G코드란 무엇인가?
G코드는 CNC 기계를 제어하는 프로그래밍 언어입니다. 프로그램은 기계에 수행할 작업을 지시하는 일련의 코드와 데이터입니다. 프로그래밍된 코드와 CNC 머시닝 센터의 올바른 도구는 정확하고 반복 가능한 부품 제조를 보장합니다. G코드는 CNC 공작기계에 일관된 프로그래밍 기능과 다양한 부품 생산을 위한 유연성을 제공합니다.
간단히 말해, G코드는 CNC 공작기계를 제어하는 소프트웨어 프로그래밍 언어입니다. 또한 복잡한 CNC 가공에서도 G코드는 단순하고 논리적인 방식으로 작성할 수 있습니다.
G코드 관련 명령어
"G" 뒤에 숫자가 오는 형식으로, 기하학적 형태를 변경하는 명령입니다. 예를 들어, "G00"은 빠른 이동 명령으로, 공구를 최대 속도로 부품 형상으로 이동시키며, 보통 공구와 부품을 원거리에서 근거리 또는 그 반대로 이동할 때 사용합니다.
G코드 문자의 기능:
- N: 줄 번호를 지정합니다.
- G: 공구가 언제 이동하고 정지하는지 나타냅니다.
- X, Y, Z: 3차원 공구 위치를 나타냅니다. X는 수평, Y는 수직, Z는 깊이를 의미합니다.
- F: 공작물 이송 속도입니다.
- S: 스핀들 회전 속도입니다.
- T: 사용할 공구를 지정합니다.
- M: 기타 기능이나 기계 기능을 제공하며, 켜기/끄기 지시로 장비 작동 방식을 제어합니다.
- I, J: 기계가 생성하는 호의 증분 중심을 나타냅니다.
- R: 기계가 생성하는 호의 반지름을 지정합니다.
- A: X축을 중심으로 공구를 안내합니다.
- B: Y축 중심 회전 값을 나타냅니다.
- C: Z축 중심 보조 축 회전 위치 값을 얻습니다.
- D: 시스템이 공구 직경을 얼마나 보상하는지 나타냅니다.
- L: 반복 작업 횟수를 지정합니다.
- P: 점프 시간 또는 지연 시간으로 사용됩니다.
- 기타 영숫자는 기계 기능에 따라 다릅니다.
다음은 몇 가지 G코드 예시입니다:
- G00: 특정 좌표 위치로 급속 이동
- G01: 직선 이송 운동
- G02 / G03: 시계/반시계 방향 이송 운동 (원호 보간)
이 코드들(예: G00) 뒤에는 기하학적 위치가 옵니다. 기하학은 좌표축으로 전송되므로 평면상의 "X" 좌표와 "Y" 좌표가 됩니다.
"G00 G58 X-120. Y-5"를 분석해 보겠습니다. "G00"은 급속 동작을 의미합니다. "G58"은 공작물 좌표계를 지정하며, 공작물 오프셋(부품 원점 등)에 상대적으로 기하학적 형태를 변경합니다. "X-120."은 X축에서 -120mm로, "Y-5"는 Y축에서 -5mm로 이동함을 의미합니다.
G코드는 중지될 때까지 작업을 무한 반복할 수 있습니다. 예를 들어 G01 뒤에는 일련의 X, Y 또는 Z 위치가 오며, 이는 모든 직선 이송 운동이 G01에서 발생함을 의미합니다. 대표적인 가공 예로 페이스 밀링이 있으며, 위치 시퀀스를 사용하여 부품의 면 프로파일을 가공합니다.
G코드 목록
다음은 기계 움직임을 안내하기 위해 조합하여 사용할 수 있는 일반적인 G코드들입니다. (출처: https://www.cnccookbook.com/g-code-m-code-reference-list-cnc-mills/)
G코드 기능을 이해하면 예시를 볼 때 운영 매뉴얼을 더 쉽게 읽을 수 있습니다. CNC 기계 프로그래밍에 능숙하지 않더라도, 영숫자 시스템의 중요성과 가공 제품 제작에 필요한 절차의 복잡성을 이해할 수 있습니다.
M코드 소개
CNC M코드란 무엇인가?
M코드는 CNC 가공에 사용되는 공작기계 제어 언어입니다. G코드와 결합하여 다양한 기계 기능을 켜고 끌 수 있습니다. 예로는 스핀들 회전 시작/정지, 냉각수 개폐, 팔레트 교체 등이 있습니다. G코드와 마찬가지로 다양한 컨트롤러 플랫폼 간에 기능적 공통점이 있지만, 특정 M코드 기능의 최종 정의는 컨트롤 제조업체가 내립니다.
M코드 목록
다음은 몇 가지 M코드 예시입니다:

G코드와 M코드의 차이
G코드와 M코드는 CNC 공작기계 제어에서 특별하지만 서로 다른 목적을 가집니다.
G코드에 수반되는 숫자는 시스템의 움직임과 기능만 나타내지만, 일부는 CNC 프로그램을 G코드라고 부르기도 합니다. M값은 프로그램의 일부로, 움직임 외의 기계 작동 방식을 지시합니다.
이 두 명령 유형이 기계와 어떻게 사용되는지 볼 때, G는 절삭용, M은 기타 작업용으로 생각하면 됩니다.
둘 다 장치를 제어하지만, 서로 다른 움직임을 조절합니다.
- G 명령은 공구가 어디에서 어떻게 절삭할지 지시합니다.
- M 작업은 기계에 공구 교환, 스핀들 이동, 장비 내부 비절삭 작업 등을 지시할 수 있습니다.
이 과정을 단순화하고 싶다면 CAD/CAM 소프트웨어 사용을 고려할 수 있지만, 이는 항상 완벽한 해결책은 아닙니다.
CAD/CAM 소프트웨어가 영숫자 프로그램이 주어지는 방향을 변경할 수 있어도, 기계가 요구하는 입력에 따라 소프트웨어를 변경하거나 수정하기 위해 CNC 프로그래밍에 익숙해야 합니다. 소프트웨어는 운영자가 지시한 작업만 수행합니다. 생성된 프로그램을 이해하지 못하면 기계가 잘못된 기능을 수행하여 시간과 자재를 낭비할 수 있습니다.