CNC 프로그램과 NC코드 G코드 M코드 이해하기

CNC(Computer Numerical Control) 프로그램은 공작물을 가공하기 위해 공작기계에 명령을 내리는 코드를 생성하는 프로그램입니다. 이때 사용하는 코드가 바로 NC코드(Numerical Control Code)입니다.

그리고 이러한 CNC코드는 기계의 움직임을 제어하고 특정 작업을 수행하는 다양한 명령어들로 구성되는데 그게 G코드와 M코드로 나뉩니다.

NC코드의 구성 요소

CNC 프로그램과 NC코드 G코드 M코드 이해하기 1

우선 NC코드는 크게 G코드와 M코드로 나눌 수 있습니다.

G코드 (G-Code)

G 코드명령어설명
G00위치결정공구를 급속도로 지정한 위치로 이동시킵니다.
G01직선보간공구를 지정한 직선 경로를 따라 이동시킵니다.
G02원호보간/헬리컬 보간 (시계방향)공구를 시계방향으로 원호 또는 헬리컬 경로를 따라 이동시킵니다.
G03원호보간/헬리컬 보간 (반시계방향)공구를 반시계방향으로 원호 또는 헬리컬 경로를 따라 이동시킵니다.
G04휴지(드웰)/이그잭트 스톱공구의 이동을 일시적으로 멈춥니다.
G07.1원통형보간원통형 보간을 수행합니다.
G08선행제어공구의 이동을 원활하게 하기 위해 선행 제어를 활성화합니다.
G09이그잭트 스톱 (Exact stop)공구의 이동을 즉시 멈춥니다.
G10데이터 설정기계 설정 데이터를 입력합니다.
G11데이터 설정 모드 취소데이터 설정 모드를 취소합니다.
G17XY 평면 설정XY 평면을 가공 기준 평면으로 설정합니다.
G18ZX 평면 설정ZX 평면을 가공 기준 평면으로 설정합니다.
G19YZ 평면 설정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 선택여섯 번째 공작물 좌표계를 선택합니다.
G61Exact 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.1Work 좌표계 Preset현재 위치를 기준으로 공작물 좌표계를 설정합니다.
G94분당 이송분당 이송 속도를 설정합니다.
G98초기점 복귀고정 싸이클 완료 후 초기점으로 복귀합니다.
G99R점 복귀 (홀 가공 고정 싸이클)고정 싸이클 완료 후 R점으로 복귀합니다.
G 코드 일람표

G코드는 기계의 동작을 지시하는 명령어로, 주로 공구의 이동과 가공 방법을 지정합니다. 주요 G코드는 다음과 같습니다.

CNC 프로그램과 NC코드 G코드 M코드 이해하기 2
  • G00: Rapid positioning (급이송)
    공구를 최대 이송 속도로 빠르게 이동시킵니다. 속도를 0%, 25%, 50%, 100%로 조절할 수 있습니다.
  • G01: Linear interpolation (직선 보간)
    공구를 점과 점 사이를 직선으로 이동시킵니다.
  • G02: Circular interpolation (시계 방향 원호 보간)
    공구를 시계 방향으로 원호 운동시킵니다.
  • G03: Circular interpolation (반시계 방향 원호 보간)
    공구를 반시계 방향으로 원호 운동시킵니다.
  • G04: Dwell (일시정지)
    공구의 이동을 일시적으로 정지합니다. 예를 들어, G04 X2.5는 2.5초 동안 정지합니다. 여기서 X와 U는 초(sec) 단위, P는 밀리초(msec) 단위입니다.
  • G17: XY Plane selection (XY 평면 선정)
    2차원 밀링에서 사용하는 기준 평면입니다.
  • G18: ZX Plane selection (ZX 평면 선정)
    NC선반에서 사용하는 기준 평면입니다.
  • G19: YZ Plane selection (YZ 평면 선정)
    YZ 평면을 기준으로 설정합니다.
  • G20: Inch input (인치 입력)
  • G21: Millimeter input (밀리미터 입력)
  • G90: Absolute positioning (절대 좌표)
  • G91: Incremental positioning (상대 좌표)
  • G92: Work coordinate system setting (작업물 좌표계 설정)
    현 위치에서 작업물 좌표계를 지정합니다.

M코드 (M-Code)

M 코드명령어설명
M00프로그램 정지프로그램을 일시 정지합니다.
M01옵셔널 스톱조작판넬 선택에 따라 프로그램을 일시 정지합니다.
M02프로그램 종료프로그램을 종료하고 리셋합니다.
M03주축 정회전주축을 시계 방향으로 회전시킵니다.
M04주축 역회전주축을 반시계 방향으로 회전시킵니다.
M05주축 정지주축의 회전을 멈춥니다.
M06공구 교환자동 공구 교환(ATC) 싸이클을 시작합니다.
M08절삭유 ON절삭유를 토출합니다.
M09절삭유 OFF절삭유 토출을 중지합니다.
M104축 클램프분할 가공 시 4축을 클램프합니다.
M114축 언클램프분할 가공 시 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워크 카운트작업 개수를 카운트합니다.
M73Y축 미러 이미지 OFFY축 미러 이미지를 비활성화합니다.
M74Y축 미러 이미지 ONY축 미러 이미지를 활성화합니다.
M75X축 미러 이미지 OFFX축 미러 이미지를 비활성화합니다.
M76X축 미러 이미지 ONX축 미러 이미지를 활성화합니다.
M88스루 스핀들 쿨런트 ON스루 스핀들 쿨런트를 시작합니다.
M89스루 스핀들 쿨런트 OFF스루 스핀들 쿨런트를 정지합니다.
M98서브 프로그램 호출서브 프로그램을 호출합니다.
M99서브 프로그램 종료서브 프로그램 종료 후 메인 프로그램으로 돌아갑니다.
M 코드 일람표

M코드는 기계의 보조 기능을 제어하는 명령어로, 주로 기계의 상태를 관리합니다. 주요 M코드는 다음과 같습니다:

  • M00: Program stop (일시정지)
    작업 상태를 확인하기 위해 작업을 일시정지합니다.
  • M02: End of program (프로그램 종료)
  • M30: Program end and rewind (프로그램 종료 및 리셋)
    프로그램 종료 후 처음부터 다시 시작할 수 있도록 리셋합니다.
  • M03: Spindle on (CW) (스핀들 시계 방향 회전)
  • M04: Spindle on (CCW) (스핀들 반시계 방향 회전)
  • M05: Spindle stop (스핀들 정지)
  • M06: Tool change (공구 교환 명령)
  • M08: Coolant on (절삭유 공급)
  • M09: Coolant off (절삭유 정지)

공구 코드

공구의 이동 위치와 관련된 코드입니다.

  • X, Y, Z: 공구의 다음 이동 위치에 대한 좌표
  • I, J, K: 원호 보간에서 현재 위치에 대한 원 중심의 상대 좌표
  • T: 교환할 공구가 장착되어 있는 Tool Slot의 번호
  • F: 이송 속도를 설정합니다. (단위: mm/min 또는 in/min)
  • S: 주축 회전수를 설정합니다. (단위: rpm)

아래는 간단한 NC코드 예시로, 금속판에 직선 절삭을 수행하는 프로그램입니다.

G21 ; 미터 단위 사용
G17 ; XY 평면 선택
G90 ; 절대 좌표계 모드
M06 T01 ; 1번 공구 장착
M03 S1500 ; 스핀들 시계 방향 회전, 속도 1500
G00 X0 Y0 ; 빠른 이동, 시작점으로 이동
G01 Z-5 F100; 직선 절삭, Z축 방향으로 5mm 아래로 이동, 이송 속도 100
G01 X50 Y0 ; X축 방향으로 50mm 이동
G01 X50 Y50; Y축 방향으로 50mm 이동
G01 X0 Y50 ; X축 방향으로 0mm 이동
G01 X0 Y0 ; Y축 방향으로 0mm 이동
G00 Z10 ; Z축 방향으로 10mm 위로 이동
M05 ; 스핀들 정지
M30 ; 프로그램 종료 및 리셋

NC코드는 기계 가공에서 매우 중요한 역할을 합니다.

G코드와 M코드를 사용하여 공구의 이동과 기계 상태를 제어하며, 이를 통해 정밀하고 효율적인 가공이 가능합니다. NC코드는 기계 가공 분야에서 자동화와 정밀도를 높이는 데 필수적인 도구로, CNC 기계의 성능과 생산성을 극대화합니다.

You may also like...

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다