CNC 프로그램 명령어 분류별 설명

CNC 프로그램은 주로 G코드 (준비 명령어, Preparatory Codes)와 M코드 (기타 명령어, Miscellaneous Codes)로 구성됩니다. G코드는 공구의 이동, 보간, 좌표계 등을 제어하며, M-code는 스핀들, 쿨런트, 프로그램 흐름 등 기계의 보조 기능을 제어합니다.

대부분의 CNC 기계(특히 Fanuc, Haas, Siemens 등)는 ISO 6983 표준을 기반으로 하며, 제조사에 따라 약간의 차이가 있을 수 있습니다. 아래는 일반적으로 사용되는 명령어를 분류별로 정리한 것입니다. 각 명령어에 간단한 설명과 예시를 추가했습니다.

1. G코드 분류 (준비 명령어)

G코는 모달(Modal: 한 번 지정하면 취소될 때까지 유지)과 논모달(Non-modal: 한 블록만 유효)로 나뉩니다. 그룹으로 분류되며, 같은 그룹 내에서 마지막 명령어가 우선합니다.

이동 관련 명령어 (Motion Group, 그룹 01)

  • G00: 급속 이동 (Rapid Traverse). 절삭 없이 빠르게 위치 이동.
  • 예시: G00 X100 Y50 Z10; (X100, Y50, Z10으로 급속 이동)
  • G01: 직선 보간 (Linear Interpolation). 지정된 이송 속도로 직선 이동.
  • 예시: G01 X200 Y100 F200; (F200 속도로 직선 이동)
  • G02: 시계 방향 원호 보간 (Circular Interpolation CW).
  • 예시: G02 X100 Y100 I50 J0 F150; (중심偏移 I,J 사용)
  • G03: 반시계 방향 원호 보간 (Circular Interpolation CCW).
  • 예시: G03 X100 Y100 R50 F150; (반경 R 사용)

평면 선택 (Plane Selection, 그룹 02)

  • G17: XY 평면 선택 (밀링 기본).
  • G18: XZ 평면 선택 (선반 기본).
  • G19: YZ 평면 선택.
  • 예시: G17; (XY 평면으로 원호 보간)

단위 설정 (Units, 그룹 06)

  • G20: 인치 단위 (Inch).
  • G21: 밀리미터 단위 (mm, 기본).
  • 예시: G21; (mm 단위 설정)

좌표계 및 프로그래밍 모드 (Coordinate System, 그룹 03/12 등)

  • G90: 절대 좌표 (Absolute Programming).
  • 예시: G90 X100; (원점부터 X100)
  • G91: 증분 좌표 (Incremental Programming).
  • 예시: G91 X50; (현재 위치에서 +50)
  • G54 ~ G59: 작업 좌표계 선택 (Work Offset).
  • 예시: G54; (첫 번째 작업 좌표계 사용)

공구 보정 (Tool Compensation, 그룹 07/08)

  • G40: 공구 반경 보정 취소.
  • G41: 좌측 공구 반경 보정 (Cutter Compensation Left).
  • G42: 우측 공구 반경 보정 (Right).
  • 예시: G41 D01; (D01에 저장된 반경 보정 적용)
  • G43/G44: 공구 길이 보정 (Tool Length Compensation).
  • G49: 공구 길이 보정 취소.

이송 모드 (Feed Mode, 그룹 05)

  • G94: 분당 이송 (Feed per Minute).
  • G95: 회전당 이송 (Feed per Revolution, 선반常用).
  • G93: 역시간 이송 (Inverse Time Feed).

스핀들 속도 제어 (Spindle, 그룹 02 일부)

  • G96: 정면 속도 제어 (Constant Surface Speed).
  • G97: 정회전 속도 제어 취소 (Constant RPM).
  • 예시: G96 S200; (표면 속도 200m/min 유지)

캔드 사이클 (Canned Cycles, 그룹 09) – 밀링/선반 반복 작업 간소화

  • G81: 드릴링 사이클 (Drilling).
  • 예시: G81 Z-10 R2 F100; (Z-10까지 드릴, R은 안전 높이)
  • G82: 카운터보어링 (Dwell 포함).
  • G83: 펙 드릴링 (Chip Breaking).
  • G84: 탭핑 (Tapping).
  • G76: 나사 절삭 사이클 (선반).
  • G80: 캔드 사이클 취소.

기타 유용한 G코드

  • G04: 드웰 (Dwell, 정지 시간).
  • 예시: G04 P2; (2초 정지)
  • G28: 홈 위치 복귀 (Reference Return).
  • 예시: G28 U0 W0; (중간점 통해 홈으로)
  • G10: 데이터 설정 (Offset 입력).

2. M-code 분류 (기타 명령어)

M-code는 주로 기계 보조 기능을 제어하며, 대부분 논모달입니다.

프로그램 제어

  • M00: 프로그램 일시 정지 (Program Stop).
  • M01: 선택적 정지 (Optional Stop).
  • M02/M30: 프로그램 종료 (End of Program, M30은 테이프 rewind).
  • M98: 서브프로그램 호출.
  • 예시: M98 P1000; (O1000 프로그램 호출)
  • M99: 서브프로그램 종료 및 복귀.

스핀들 제어

  • M03: 스핀들 정회전 (CW).
  • M04: 스핀들 역회전 (CCW).
  • M05: 스핀들 정지.
  • 예시: M03 S2000; (2000 RPM 정회전)

쿨런트 제어

  • M07: 미스트 쿨런트 온 (Mist).
  • M08: 플러드 쿨런트 온 (Flood).
  • M09: 쿨런트 오프.

공구 교환

  • M06: 공구 교환 (Tool Change).
  • 예시: M06 T05; (5번 공구로 교환)

기타

  • M19: 스핀들 방향 지정 (Oriented Spindle Stop).
  • M48/M49: 이송/스핀들 오버라이드 허용/취소.

주의사항

  • 모달 명령어: G코드 대부분은 모달이므로, 변경할 때만 다시 지정.
  • 예시 프로그램 기본 구조:

O0001 (프로그램 번호)

G21 G17 G40 G49 G80 (초기 설정: mm, XY 평면, 보정 취소)

G90 (절대 좌표)

T01 M06 (1번 공구 교환)

S2000 M03 (스핀들 2000 RPM 정회전)

G00 X0 Y0 Z5 (급속 이동)

G01 Z-10 F100 (절삭 시작)

M30 (프로그램 종료)

  • 모든 명령어가 모든 기계에서 동일하게 작동하지 않을 수 있습니다. 기계 매뉴얼을 반드시 확인하세요 (Fanuc이 가장 일반적).
  • 고급 기능(매크로, 고속 가공 등)은 기계별 옵션입니다.

이 설명은 일반적인 Fanuc/Haas 기반을 기준으로 하며, 실제 프로그래밍 시 CAM 소프트웨어(Fusion 360 등)를 활용하면 편리합니다.