G-코드 & M-코드 이해: CNC 가공 성공의 핵심 명령어
이름에서 명확히 드러나듯 CNC(컴퓨터 수치 제어)는 컴퓨터를 이용한 가공 툴 자동 제어입니다. 하지만 그냥 되는 게 아닙니다. 올바른 코드 프로그래밍 지시가 필요합니다.
G-코드란 무엇인가? M-코드란 무엇인가? G-코드와 M-코드 프로그래밍은 실제로 어떻게 작동하는가? 이 글에서 각각 설명하지만, 먼저 프로그래밍이 무엇인지 짚어보겠습니다.
프로그램은 CNC 머신에 무엇을 할지 지시하는 코드와 데이터의 시퀀스입니다. 프로그래밍된 코드와 CNC 머신 센터의 적절한 툴링이 정확하고 반복 가능한 부품 제조를 가능케 합니다.
프로그래밍 과정에 관심 있으시면 이 글을 읽어보세요.
CNC 머신 가동 중 코드가 오퍼레이터 모니터에 표시되며, 스크롤하며 머신이 읽고 실행하는 걸 볼 수 있습니다.
G-코드 — 동작의 마스터
간단히 말해 G-코드는 CNC 머신을 제어하는 소프트웨어 프로그래밍 언어입니다. 복잡한 CNC 가공에서도 G-코드는 직관적이고 논리적으로 작성됩니다.
'G' 뒤에 숫자가 오는데, 이는 기하학적 변경을 명령합니다. 예: 'G00'은 급속 이동 명령입니다. 툴을 부품 기하학적 위치로 최대 속도 이동시키며, 보통 툴과 부품을 원거리에서 근거리 또는 그 반대로 이동할 때 씁니다.
G-코드 예시:
- G00: 특정 좌표 위치로 급속 이동
- G01: 직선 이송 이동
- G02/G03: 시계/반시계 방향 이송 이동
이 코드들(G00 등) 뒤엔 기하학적 위치가 옵니다. 기하학은 축 좌표로 전달되니 평면상 'X' 좌표와 'Y' 좌표입니다.
'G00G58X-120.Y-5.'를 분해해 보죠. 'G00'은 급속 이동. 'G58'은 작업 좌표 지정, 작업 오프셋(부품 원점) 기준 기하학 변경. 'X-120.'은 X축 '-120mm'로 이동, 'Y-5.'는 Y축 '-5mm'로 이동 의미합니다.
G-코드는 중단될 때까지 동작을 무한 반복할 수 있습니다. 예: G01 뒤에 X, Y, Z 위치 시퀀스가 오면 모든 직선 이송 이동이 G01로 발생합니다. 대표적 가공 예로 페이스 밀링이 있는데, 위치 시퀀스로 부품 면 윤곽을 가공합니다.
이 모든 G-코드 좌표 덕분에 CNC 머신은 일관되게 수행하면서도 다양한 부품 생산에 충분히 유연합니다.
X축과 Y축이 스핀들을 정밀 위치시켜 절삭이나 다른 기능을 수행하게 합니다.
M-코드 — 기능의 오거나이저
M-코드는 잡다한 기능을 제어하며, 보통 비기하학적 머신 기능으로 볼 수 있습니다. 예: 스핀들 회전 시작/정지, 쿨런트 온/오프, 팔렛 교체 등. 일부 기능은 특정 머신마다 다를 수 있습니다.
M-코드 예시:
- M00: 현재 프로그램 기능 정지
- M03: 스핀들 시계 방향 회전
- M08/M09: 플러드 쿨런트 온/오프
G-코드처럼 M-코드도 'M'과 숫자로 구성됩니다. 하지만 G-코드와 달리 M-코드는 머신별로 더 구체적일 수 있고 커스터마이징이 더 가능합니다. 두 타입 모두 필요해 CNC 머신이 기능을 수행합니다.
어떤 언어든 CNC엔 다른 많은 측면이 있습니다. 다음 표는 코드에 포함될 수 있는 모든 프로그램 라인의 일부 예시입니다.
| 프로그램 라인 | 설명 |
| N102M6T2 | 블록 번호 102, 툴 2로 툴 교체(3" 페이스밀) |
| Comment | 머신이 읽지 않음. 오퍼레이터/엔지니어에게 툴 2가 3인치 페이스밀임을 알림 |
| M82 | 팔렛 A |
| Check IF[#10002+#11002LT150.]GOTO2001 | 툴 높이 최소값 체크 |
| IF[#10002+#11002GT154.]GOTO2002 | 툴 높이 최대값 체크 |
| G00G90B267. | 급속, 절대 위치결정, 팔렛 B 267도(도) 회전 |
| M08 | 쿨런트 온 (파트 B) |
| Comment | |
코드 프로그래밍 라인 예시와 의미. 괄호 안 내용은 머신이 읽지 않음. 프로그래머와 오퍼레이터용 주석.
기타 명령어. 기타 머신.
G-코드, M-코드, X/Y/Z 축 위치결정 외에 CNC 가공에 다른 명령어들이 쓰입니다. M03 스핀들 회전 시작 명령엔 'S' 명령이 필요해 스핀들 속도(rpm)를 제어합니다.
현재 코드 샘플에 어떻게 추가되는지 보죠: G00G58X-120.Y-5.M03S3820.
'S3820'은 스핀들 속도 3820 rpm을 나타냅니다. 지금까지 프로그램은 기하학과 스핀들 속도를 설정했습니다.
기타 가능한 기능:
- F: 이송 속도
- T: 툴 번호
- H: 툴 길이 오프셋 호출
CNC 머신 역량에 따라 다른 많은 영숫자 지정이 쓰일 수 있습니다.
우리가 탐구한 구체적 G-코드와 M-코드 예시는 수평/수직 머시닝 센터 프로그램 기준입니다. CNC 선반도 G-코드와 M-코드를 쓰지만, 터닝용으로 일부 다른 명령어와 시퀀스를 기대할 수 있습니다.
소프트웨어의 힘
머신이 G-코드로 직접 프로그래밍되기도 하지만, CNC 프로그래머는 보통 고수준 컴퓨터 지원 제조(CAM) 프로그래밍 툴을 사용합니다.
마스터캠(Mastercam)은 프로그래머가 프로젝트용 올바른 코드를 만들도록 돕는 코드 생성 소프트웨어입니다. CNC 업계 표준으로, 마스터캠은 프로그래머 입력(수행해야 할 모든 것)을 받아 프로젝트용 올바른 G-코드와 M-코드 프로그래밍을 후처리기(마스터캠과 연결된 별도 소프트웨어)로 출력합니다.
마스터캠 작동 단순화 예시: 프로그래머가 머신 모델과 가공 지그를 임포트합니다. 그런 다음 툴과 스핀들이 갈 툴링 경로를 선택하면 소프트웨어가 코드를 생성합니다. 프로그래머는 CAD 모델로 작업하지만, 정확한 사양과 공차를 위해 도면을 참조합니다.
마스터캠이 강력하지만, 부품이 복잡하면(큰 크기, 많은 툴 필요) 프로그래밍에 2주가 걸릴 수 있고, 단순 부품이면 2시간이면 됩니다. 당연히 3툴 작업이 100툴 작업보다 단순합니다.
마스터캠 소프트웨어가 전체 프로젝트 시각화 표시; 왼쪽엔 다양한 기능 수행에 필요한 코드 폴더들이 있습니다.
누가 G-코드와 M-코드를 알아야 하나?
직무 책임에 따라 이 글을 읽는 게 CNC 프로그래밍의 G-코드, M-코드에 대해 알아야 할 전부일 수도, 일상 업무 제대로 수행하려 더 깊이 파야 할 수도 있습니다.
CNC 머신 숍 내에서 코드에 대해 아는 건 많은 포지션에 도움이 됩니다. 내부 교육 프로그램 좋은 숍들은 오리엔테이션 중 신입에게 코딩 기초를 설명합니다. 다른 숍들은 오퍼레이터 현장 교육의 일부로 포함하기도 합니다.
부품과 공정에 따라 CNC 머신 센터와 프로그램이 제한적 상호작용으로 반복 실행됩니다. 오퍼레이터는 적재, 하역, 검사, 디버링, 포장합니다.
이상적 세상에선 올바른 CNC 코드가 프로그래밍되면 끝, 현장 편집 불필요. 하지만 많은 프로젝트에서 작업 오프셋 조정, 툴 마모 보정 등 미세 조정이 필요합니다.
머신 컨트롤은 우발적 변경을 막으려 잠겨 있습니다. 편집은 현장에서도 가능하지만 키가 필요해 활성화됩니다. 편집은 주로 숙련 엔지니어, 셋업 전문가, 슈퍼바이저 몫입니다.
자, 코드를 깼습니다! 적어도 G-코드와 M-코드가 무엇인지, 기타 관련 명령어 몇 가지는 아시게 됐습니다. 이제 CNC 숍 전문성 활용을 고려 중이실지도 모릅니다.
가이드엔 CNC 머신 숍 협업으로 이어질(또는 아닐) 9가지 시나리오가 다뤄집니다. When Do You Know It's Time to Work With a High-End CNC Machine Shop?을 보려면 아래 이미지를 클릭하세요.
저자 소개
댄은 스테커 머신 머신들이 빠르게 돌아가게 합니다. 절삭 툴과 프로그램을 최적화해 최고 효율을 내고, 제조 이슈를 수정하며, 신규 작업과 제품 개선을 위한 고급 툴링을 설계·선정합니다. 톰은 스테커 머신의 마스터캠 전문가입니다. 모든 CNC 밀 프로그래밍을 담당하며, 지그 설계와 생산 지원도 합니다.