본문 바로가기

3D 2D 디자인

CNC G코드와 M코드 차이점 및 명령어 기능

반응형

CNC G코드와 M코드 차이점 및 명령어 기능

오늘은 CNC 기계의 두 가지 핵심 언어, G코드와 M코드에 대해 알아보겠습니다. 이 두 코드는 마치 오케스트라의 지휘자처럼, 우리의 기계가 정확하고 효율적으로 작동할 수 있도록 지시하는 언어라고 생각하면 됩니다.

이때 G코드는 기계의 움직임을, M코드는 기계의 보조 기능을 제어하는 중요한 역할을 하며 이 두 코드를 통해 CNC 기계가 어떻게 정밀하게 작업을 수행하는지 자세히 살펴보겠습니다!

  1. G코드 (Geometric Code)
    • 역할: 기계의 이동 경로와 위치를 제어합니다.
    • 예시: G01은 직선 이동, G02는 시계 방향 원호 이동, G03은 반시계 방향 원호 이동을 의미합니다.
    • 주요 사용처: 절삭 경로, 드릴링 위치, 공구 경로 등.
  2. M코드 (Miscellaneous Code)
    • 역할: 기계의 보조 기능을 제어합니다.
    • 예시: M03은 스핀들 시계 방향 회전, M05는 스핀들 정지를 의미합니다.
    • 주요 사용처: 스핀들 제어, 냉각수 켜기/끄기, 프로그램 종료 등.

G코드 사용법

G코드는 일반적으로 G와 숫자 조합으로 이루어집니다.

G01 X10 Y20 F150

이 명령은 X축을 10, Y축을 20으로 이동시키며, 이동 속도는 150mm/min입니다.

M코드 사용법

M코드는 M과 숫자 조합으로 이루어집니다.

M03 S500

이 명령은 스핀들을 시계 방향으로 500 RPM으로 회전시킵니다.

G코드 명령어

G 코드 명령어 설명
G00 위치결정 공구를 급속도로 지정한 위치로 이동시킵니다.
G01 직선보간 공구를 지정한 직선 경로를 따라 이동시킵니다.
G02 원호보간/헬리컬 보간 (시계방향) 공구를 시계방향으로 원호 또는 헬리컬 경로를 따라 이동시킵니다.
G03 원호보간/헬리컬 보간 (반시계방향) 공구를 반시계방향으로 원호 또는 헬리컬 경로를 따라 이동시킵니다.
G04 휴지(드웰)/이그잭트 스톱 공구의 이동을 일시적으로 멈춥니다.
G07.1 원통형보간 원통형 보간을 수행합니다.
G08 선행제어 공구의 이동을 원활하게 하기 위해 선행 제어를 활성화합니다.
G09 이그잭트 스톱 (Exact stop) 공구의 이동을 즉시 멈춥니다.
G10 데이터 설정 기계 설정 데이터를 입력합니다.
G11 데이터 설정 모드 취소 데이터 설정 모드를 취소합니다.
G17 XY 평면 설정 XY 평면을 가공 기준 평면으로 설정합니다.
G18 ZX 평면 설정 ZX 평면을 가공 기준 평면으로 설정합니다.
G19 YZ 평면 설정 YZ 평면을 가공 기준 평면으로 설정합니다.
G20 인치 데이터 입력 인치 단위로 좌표 데이터를 입력합니다.
G21 메트릭 데이터 입력 미터법 단위로 좌표 데이터를 입력합니다.
G27 원점 복귀 검사 원점 복귀를 확인합니다.
G28 자동 원점 복귀 자동으로 원점으로 복귀합니다.
G29 원점으로 복귀 원점으로 복귀합니다.
G30 제2, 3, 4 원점 복귀 지정된 두 번째, 세 번째, 네 번째 원점으로 복귀합니다.
G31 스킵 기능 지정된 조건이 충족되면 공구 이동을 멈춥니다.
G40 공구경 옵셋 취소 공구경 옵셋 보정을 취소합니다.
G41 공구경 옵셋 보정, 왼쪽 공구경 보정을 왼쪽으로 설정합니다.
G42 공구경 옵셋 보정, 오른쪽 공구경 보정을 오른쪽으로 설정합니다.
G43 공구 길이 옵셋, + 공구 길이 보정을 더합니다.
G44 공구 길이 옵셋, - 공구 길이 보정을 뺍니다.
G49 공구 길이 옵셋 보정 취소 공구 길이 보정을 취소합니다.
G52 지역 좌표계 설정 지역 좌표계를 설정합니다.
G53 기계 좌표계 선택 기계 좌표계를 선택합니다.
G54 공작물 좌표계 1 선택 첫 번째 공작물 좌표계를 선택합니다.
G55 공작물 좌표계 2 선택 두 번째 공작물 좌표계를 선택합니다.
G56 공작물 좌표계 3 선택 세 번째 공작물 좌표계를 선택합니다.
G57 공작물 좌표계 4 선택 네 번째 공작물 좌표계를 선택합니다.
G58 공작물 좌표계 5 선택 다섯 번째 공작물 좌표계를 선택합니다.
G59 공작물 좌표계 6 선택 여섯 번째 공작물 좌표계를 선택합니다.
G61 Exact stop mode 공구의 이동을 정밀하게 멈추도록 설정합니다.
G63 탭핑 모드 탭핑 작업을 수행하도록 설정합니다.
G64 절삭 모드 (exact stop check mode) 절삭 작업을 원활하게 수행하도록 설정합니다.
G65 마크로 호출 지정된 매크로를 호출합니다.
G66 매크로 모달 호출 매크로 모달 호출을 설정합니다.
G67 매크로 모달 호출 취소 매크로 모달 호출을 취소합니다.
G68 좌표 회전 지정된 각도로 좌표를 회전시킵니다.
G69 좌표 회전 취소 좌표 회전을 취소합니다.
G72.1 회전 Copy 공작물을 회전하여 복사합니다.
G72.2 평행 Copy 공작물을 평행하게 복사합니다.
G73 고속 심공 싸이클 고속으로 깊은 구멍을 드릴링합니다.
G74 역회전 탭 싸이클 역회전하여 탭 싸이클을 수행합니다.
G76 파인 보링 싸이클 정밀 보링 싸이클을 수행합니다.
G80 홀 가공 고정 싸이클 취소 홀 가공 고정 싸이클을 취소합니다.
G81 스폿 드릴링 싸이클 스폿 드릴링 싸이클을 수행합니다.
G82 카운터 보링 싸이클 카운터 보링 싸이클을 수행합니다.
G83 심공 드릴링 싸이클 깊은 구멍 드릴링 싸이클을 수행합니다.
G84 탭핑 싸이클 탭핑 싸이클을 수행합니다.
G85 보링 싸이클 일반 보링 싸이클을 수행합니다.
G86 보링 싸이클 보링 싸이클을 수행하고 스핀들을 멈춥니다.
G87 백 보링 싸이클 보링 후 후퇴하는 싸이클을 수행합니다.
G88 보링 싸이클 보링 싸이클을 수행하고 일시 정지합니다.
G89 보링 싸이클 보링 싸이클을 수행하고 느리게 후퇴합니다.
G90 절대 지령 절대 좌표계를 사용합니다.
G91 증분 지령 증분 좌표계를 사용합니다.
G92 주축 최고 회전 속도 설정 주축의 최대 회전 속도를 설정하고 공작물 좌표계를 변경합니다.
G92.1 Work 좌표계 Preset 현재 위치를 기준으로 공작물 좌표계를 설정합니다.
G94 분당 이송 분당 이송 속도를 설정합니다.
G98 초기점 복귀 고정 싸이클 완료 후 초기점으로 복귀합니다.
G99 R점 복귀 (홀 가공 고정 싸이클) 고정 싸이클 완료 후 R점으로 복귀합니다.

M코드 명령어

M 코드 명령어 설명
M00 프로그램 정지 프로그램을 일시 정지합니다.
M01 옵셔널 스톱 조작판넬 선택에 따라 프로그램을 일시 정지합니다.
M02 프로그램 종료 프로그램을 종료하고 리셋합니다.
M03 주축 정회전 주축을 시계 방향으로 회전시킵니다.
M04 주축 역회전 주축을 반시계 방향으로 회전시킵니다.
M05 주축 정지 주축의 회전을 멈춥니다.
M06 공구 교환 자동 공구 교환(ATC) 싸이클을 시작합니다.
M08 절삭유 ON 절삭유를 토출합니다.
M09 절삭유 OFF 절삭유 토출을 중지합니다.
M10 4축 클램프 분할 가공 시 4축을 클램프합니다.
M11 4축 언클램프 분할 가공 시 4축을 언클램프합니다.
M16 공구 매거진 입력 스핀들에 있는 공구를 매거진에 입력합니다.
M17 에어 블라스트 ON 에어 블라스트를 시작합니다.
M18 매거진 원점 복귀 매거진을 원점으로 복귀시킵니다.
M19 주축 방향 정지 주축을 특정 방향으로 정지시킵니다.
M20 자동 전원 차단 자동으로 전원을 차단합니다.
M23 매거진 공구포트 하향 매거진 공구포트를 하향시킵니다.
M27 오일 미스트 쿨런트 절삭유를 에어로 분사합니다.
M29 리지드 탭 모드 리지드 탭 모드를 설정합니다.
M30 프로그램 리와인드 & 리스타트 프로그램을 종료하고 처음부터 다시 시작할 수 있도록 리셋합니다.
M33 공구 수납 주축 공구를 매거진으로 수납합니다.
M40 주축 기어 중립 위치 주축 기어를 중립 위치로 설정합니다.
M41 주축 기어 저속 위치 주축 기어를 저속 위치로 설정합니다.
M42 주축 기어 중속 위치 주축 기어를 중속 위치로 설정합니다.
M43 주축 기어 고속 위치 주축 기어를 고속 위치로 설정합니다.
M46 센서 절환 신호 ON 주축 쪽의 센서를 선택합니다.
M47 센서 절환 신호 OFF 테이블 쪽의 센서를 선택합니다.
M48 스핀들 오버라이드 취소 OFF 스핀들 속도 변화를 허용합니다.
M49 스핀들 오버라이드 취소 ON 스핀들 속도 변화를 허용하지 않습니다.
M51 에어 브로우 ON 에어 브로우를 시작합니다.
M53 센서 에어 브로우 ON 센서 에어 브로우를 시작합니다.
M55 오일 미스트 ON 오일 미스트를 배출합니다.
M59 에어 브로우 OFF 에어 브로우를 정지합니다.
M60 파레트 체인지 호리젠탈 파레트 체인지를 수행합니다.
M70 워크 카운트 작업 개수를 카운트합니다.
M73 Y축 미러 이미지 OFF Y축 미러 이미지를 비활성화합니다.
M74 Y축 미러 이미지 ON Y축 미러 이미지를 활성화합니다.
M75 X축 미러 이미지 OFF X축 미러 이미지를 비활성화합니다.
M76 X축 미러 이미지 ON X축 미러 이미지를 활성화합니다.
M88 스루 스핀들 쿨런트 ON 스루 스핀들 쿨런트를 시작합니다.
M89 스루 스핀들 쿨런트 OFF 스루 스핀들 쿨런트를 정지합니다.
M98 서브 프로그램 호출 서브 프로그램을 호출합니다.
M99 서브 프로그램 종료 서브 프로그램 종료 후 메인 프로그램으로 돌아갑니

G코드와 M코드를 함께 읽는 실제 예시

표만 보면 외워야 할 코드가 많아 보여도, 실제 CNC 프로그램 한 줄씩 보면 구조는 생각보다 단순합니다.

대부분의 NC 프로그램은 가공 준비 → 공구 호출 → 스핀들 회전 → 절삭 이동 → 종료 순서로 흘러갑니다. 여기서 이동은 G코드가 맡고, 스핀들·절삭유·공구교환·프로그램 종료는 M코드가 맡습니다.

아래처럼 아주 짧은 예시만 봐도 두 코드가 어떻게 섞여서 쓰이는지 바로 감이 옵니다.

O1001
G21 G17 G90 G40 G49 G80
G54
T01 M06
S3000 M03
G00 X0 Y0
G43 H01 Z50.
M08
G01 Z-2.0 F120
G01 X50.0 F300
G03 X70.0 Y20.0 I0 J20.0
G01 Y60.0
M09
G00 Z50.
M05
G28 G91 Z0
G90
M30

이 예시를 줄 단위로 보면 더 이해하기 쉽습니다. G21은 밀리미터 단위, G17은 XY 평면, G90은 절대좌표를 뜻합니다. 그 다음 G54로 공작물 좌표계를 불러오고, T01 M06으로 1번 공구를 교환합니다. 이어서 S3000 M03으로 스핀들을 3000RPM 정회전시키고, M08으로 절삭유를 켠 뒤, G01G03로 실제 절삭 경로를 움직입니다. 마지막에는 M09로 절삭유를 끄고 M05로 스핀들을 멈춘 뒤, M30으로 프로그램을 종료합니다.

직선 가공 예시

가장 먼저 익혀두면 좋은 것은 직선 이동 예시입니다. CNC를 처음 보는 분들도 이 부분부터 보면 코드를 읽는 눈이 빨리 생깁니다.

G00 X0 Y0
G01 Z-1.0 F100
G01 X30.0 F250
G01 Y20.0
G01 X0
G01 Y0

여기서 G00은 공구를 빠르게 시작 위치로 보내는 명령이고, G01은 실제 절삭을 하면서 직선으로 이동하는 명령입니다. 즉 공구를 대기 위치까지 보낼 때는 G00, 재료를 깎을 때는 G01을 쓴다고 생각하면 이해가 빠릅니다.

원호 가공 예시

직선 다음으로 많이 보는 것이 원호 보간입니다. 이때 많이 헷갈리는 것이 G02와 G03의 방향입니다.

G02 X40.0 Y40.0 I20.0 J0
G03 X0 Y40.0 I-20.0 J0

G02는 시계 방향 원호, G03은 반시계 방향 원호입니다. 그리고 I, J 값은 시작점에서 원 중심까지의 상대 거리입니다. 처음에는 이 부분이 어렵게 느껴지지만, 실제로는 가공 방향과 원 중심 위치를 지정하는 값이라고 생각하면 됩니다.

드릴링 예시

홀 가공에서는 고정 사이클을 자주 씁니다. 특히 드릴링 작업은 코드가 길어지기 쉬운데, 고정 사이클을 쓰면 훨씬 짧게 정리됩니다.

G98 G81 X10.0 Y10.0 Z-15.0 R2.0 F120
X40.0 Y10.0
X70.0 Y10.0
G80

G81은 일반 드릴링 싸이클입니다. 한 번 지정해두면 다음 좌표에서는 같은 조건으로 반복 가공할 수 있어 홀 여러 개를 뚫을 때 편합니다. 마지막의 G80은 고정 사이클 해제입니다. 실제 현장에서도 이 G80 해제를 빼먹으면 다음 공정에서 엉뚱한 움직임이 나올 수 있어 꼭 확인하는 편입니다.

탭핑 예시

나사 가공에서는 탭핑 관련 코드가 많이 등장합니다. 장비마다 세부 동작은 조금 다르지만 기본 개념은 비슷합니다.

M29 S500
G84 X25.0 Y25.0 Z-12.0 R2.0 F1.25
G80

M29는 리지드 탭 모드, G84는 탭핑 싸이클입니다. 이 구간은 스핀들 회전과 이송이 정확히 맞아야 하므로, 장비 세팅이나 탭 공구 조건이 틀어지면 바로 문제를 일으키기 쉽습니다. 그래서 초보자라면 탭핑은 코드만 보기보다 CAM 시뮬레이션과 장비 매뉴얼을 같이 보는 것이 훨씬 안전합니다.

현장에서 자주 보는 조합

실무에서 자주 보는 조합은 따로 있습니다. 모든 코드를 다 외우기보다 아래처럼 많이 묶여 나오는 조합부터 익히면 훨씬 편합니다.

자주 나오는 조합 보는 위치
G21 G17 G90 밀리미터, XY평면, 절대좌표 프로그램 시작부
T01 M06 1번 공구 호출 및 교환 공구 바뀌는 지점
S3000 M03 스핀들 정회전 3000RPM 절삭 시작 전
G43 H01 공구 길이 보정 적용 가공 시작 직전
M08 / M09 절삭유 켜기 / 끄기 절삭 시작과 종료 구간
G81 ~ G80 드릴링 싸이클 시작과 해제 홀 가공 구간
M05 M30 스핀들 정지 후 프로그램 종료 프로그램 마지막

초보자가 자주 헷갈리는 부분

CNC 코드를 처음 접하면 가장 많이 실수하는 부분이 몇 가지 정해져 있습니다. 이 부분만 먼저 체크해도 코드 해석이 훨씬 쉬워집니다.

  • G00과 G01 혼동 : 둘 다 이동이지만 G00은 급속이송, G01은 절삭 이동입니다.
  • G02와 G03 방향 혼동 : 시계 방향인지 반시계 방향인지 먼저 구분해야 합니다.
  • G90과 G91 혼동 : 절대좌표인지 증분좌표인지에 따라 움직임이 완전히 달라집니다.
  • M03과 M04 혼동 : 스핀들 정회전인지 역회전인지 확인해야 합니다.
  • G80 누락 : 드릴링 고정 싸이클 해제를 빼먹으면 다음 줄에서 오류가 날 수 있습니다.
  • G54~G59 좌표계 착각 : 프로그램은 맞는데 원점이 달라서 공구가 엉뚱한 곳으로 가는 경우가 많습니다.

G코드와 M코드를 외우는 쉬운 방법

저라면 처음부터 모든 코드를 외우지 않습니다.

먼저 움직임 관련 G코드장비 동작 관련 M코드로 나눠서 기억하는 편이 훨씬 쉽습니다.

예를 들어 G00, G01, G02, G03, G17, G21, G54, G90 정도만 먼저 익혀도 기본적인 가공 프로그램은 꽤 읽을 수 있습니다. M코드도 마찬가지로 M03, M05, M06, M08, M09, M30 정도부터 익히면 실제 프로그램 구조가 보이기 시작합니다.

Fusion이나 CAM에서 생성된 코드도 결국 같은 원리입니다

요즘은 직접 한 줄씩 수동으로 프로그램을 짜기보다 Fusion 같은 CAM에서 자동으로 NC코드를 생성하는 경우가 많은데요 그래도 기본 원리는 같습니다. CAM이 코드를 대신 만들어줄 뿐이고, 실제 장비가 읽는 명령은 결국 G코드와 M코드입니다.

그래서 CAM을 써도 기본 코드 구조는 꼭 알아두는 것이 좋습니다. 프로그램이 길어도 지금 이 줄이 이동인지, 회전인지, 절삭유인지, 종료인지 정도만 읽을 수 있으면 오류를 찾는 속도가 훨씬 빨라집니다.

 

Fusion G코드 NC코드 생성 방법과 후처리 설정 정리

Fusion G코드 NC코드 생성 방법과 후처리 설정 총정리Fusion에서 CNC 가공용 코드를 뽑을 때 가장 많이 헷갈리는 부분은 G코드와 NC코드가 어떻게 다른지, 그리고 후처리기를 왜 꼭 맞춰야 하는지입니

jab-guyver.co.kr

G코드는 공구의 이동과 경로를 담당하고, M코드는 스핀들·절삭유·공구교환·프로그램 종료 같은 보조 기능을 담당합니다. 둘은 따로 떨어져 쓰이는 것이 아니라 실제 NC 프로그램 안에서 함께 움직이며, CNC 장비는 이 두 언어를 조합해 하나의 가공 동작을 완성합니다.

처음에는 코드가 많아 보여도, 직선 이동, 원호 이동, 드릴링, 탭핑처럼 작업별 예시를 하나씩 보는 방식으로 익히면 생각보다 빨리 익숙해집니다.

특히 시작부 준비 코드마지막 종료 코드를 먼저 읽는 습관을 들이면 전체 프로그램 구조를 파악하기 훨씬 쉬워집니다.

FAQ

Q. G코드와 M코드는 어떤 차이가 있나요?

G코드는 공구의 이동 경로와 좌표를 제어하고, M코드는 스핀들 회전, 절삭유, 공구교환, 프로그램 종료 같은 장비의 보조 기능을 제어합니다.

Q. NC코드와 G코드는 같은 말인가요?

완전히 같지는 않습니다. NC코드는 전체 프로그램 파일을 넓게 부르는 말이고, 그 안에 G코드와 M코드가 함께 들어갑니다. 다만 현장에서는 비슷한 의미로 섞어서 말하는 경우도 많습니다.

Q. CNC 초보자는 어떤 코드부터 먼저 외우는 게 좋나요?

G00, G01, G02, G03, G17, G21, G54, G90과 M03, M05, M06, M08, M09, M30부터 먼저 익히는 편이 좋습니다. 이 정도만 알아도 기본 프로그램 구조를 읽는 데 큰 도움이 됩니다.

Q. G00과 G01은 왜 구분해야 하나요?

G00은 급속이송이라 빠르게 이동만 할 때 쓰고, G01은 이송속도를 적용해 실제로 절삭할 때 씁니다. 이 둘을 헷갈리면 공구 움직임을 잘못 해석하기 쉽습니다.

Q. G02와 G03이 자꾸 헷갈립니다.

G02는 시계 방향 원호, G03은 반시계 방향 원호입니다. 시작점과 끝점, 그리고 원 중심 위치인 I와 J 값을 함께 보면서 익히면 이해가 빠릅니다.

Q. CAM이 코드를 자동 생성해주면 G코드와 M코드를 몰라도 되나요?

기본 구조는 알고 있는 편이 좋습니다. 자동 생성된 코드라도 원점, 공구 번호, 스핀들 회전, 절삭유, 종료 구간 정도는 읽을 수 있어야 오류를 빨리 찾을 수 있습니다.

Q. M03과 M05는 무엇을 뜻하나요?

M03은 스핀들을 정회전시키는 명령이고, M05는 스핀들을 정지시키는 명령입니다. CNC 프로그램에서 매우 자주 나오는 기본 M코드입니다.

Q. 드릴링 작업에서 G80은 왜 중요한가요?

G80은 고정 싸이클 해제 명령입니다. G81, G83 같은 드릴링 싸이클 뒤에 G80을 넣지 않으면 다음 줄에서 예상하지 못한 동작이 나올 수 있습니다.

728x90
반응형
그리드형