CNC는 제조업체가 복잡한 부품을 만들 때 높은 정확도, 속도, 유연성을 달성할 수 있는 수단을 제공함으로써 제조업의 수준을 한 단계 끌어올렸습니다. G 코드와 M 코드는 모든 CNC 프로그램의 핵심을 이루는 두 가지 코드로, 특정 기계가 수행할 수 있는 많은 작업을 지시합니다. 따라서 기계공과 CNC 프로그래머는 다음을 구분하는 것이 중요합니다. G 코드 및 M 코드 를 클릭하세요.
이 문서에서는 가장 일반적인 G 및 M 코드와 일반적인 CNC 프로그램에서 작동하는 방식, 그리고 이러한 코드가 제조에 중요한 이유에 대해 설명합니다.
CNC 프로그래밍의 G 코드
G 코드는 주로 기하학 코드입니다. CNC에서 가장 일반적인 형태의 프로그래밍입니다. 예를 들어 직선, 원 운동 또는 이송 속도와 같이 기계가 어떻게 움직여야 하는지 알려줍니다.
기본적으로 G 코드는 CNC 기계에 공구를 배치할 위치와 움직임에 따라 공구가 공작물과 어떻게 관계를 맺어야 하는지를 알려줍니다.
각 G 코드에는 CNC 기계에서 어떤 동작이나 움직임이 있으며, 이러한 일련의 코드가 순서대로 실행되어 특정 작업을 수행합니다. G 코드 프로그래밍은 처음에 NC 기계용으로 개발되었지만, 그 원리는 현대 CNC 가공의 기본으로 남아 있습니다.
일반적인 G 코드와 그 기능
CNC 가공에서 가장 필수적인 G 코드 몇 가지를 분석해 보겠습니다:
1. G00: 빠른 포지셔닝
G00 명령은 절삭에 관여하지 않고 공구를 지정된 좌표로 빠르게 이동하도록 기계에 지시합니다. 일반적으로 가공을 시작하기 전에 공구를 시작 위치로 이동하거나 공구 교환을 준비하는 데 사용됩니다. 이는 기계가 할 수 있는 가장 빠른 움직임 중 하나입니다.
2. G01: 선형 보간
G01 명령은 지정된 이송 속도로 직선을 따라 절삭 공구의 이동을 제어합니다. 이 명령은 이송 속도가 빠른 위치 지정보다 느리기 때문에 정밀한 절단 작업에 자주 사용되어 정확도를 높일 수 있습니다.
3. G02: 시계 방향 원형 보간
G02 코드는 도구가 시계 방향으로 이동하도록 명령합니다. 일반적으로 부품에 원형 절단 또는 둥근 모서리가 필요한 경우에 사용됩니다.
4. G03: 시계 반대 방향 원형 보간
G02와 마찬가지로 G03 명령은 공구를 시계 반대 방향의 원형 경로로 이동시킵니다. 기공사는 G02와 G03을 종합적으로 사용하여 복잡한 곡선 모양과 프로파일을 만들 수 있습니다.
5. G04: Dwell
G04 명령은 기계에 지정된 시간 동안 일시 정지 또는 정지 상태를 유지하도록 지시합니다. 이 명령은 스핀들이 안정된 속도에 도달하거나 절삭유가 효과를 발휘할 때까지 기다릴 때와 같이 절삭 공구가 위치를 유지해야 할 때 유용합니다.
6. G17, G18 및 G19: 평면 선택
이 코드는 기계가 작동할 기하학적 평면을 선택합니다:
- G17: XY 평면을 선택합니다.
- G18: XZ 평면을 선택합니다.
- G19: YZ 평면을 선택합니다. 이는 다축 가공에서 공구가 올바른 공간 파라미터 내에서 움직이도록 하는 데 중요합니다.
7. G43: 공구 길이 보정
G43 코드는 공구의 길이를 보정하여 기계가 작동 중에 다양한 공구 크기를 고려할 수 있도록 합니다. 이 기능이 없으면 다양한 길이의 공구를 사용하면 가공 시 부정확한 결과가 발생할 수 있습니다.
G 코드 목록
| G 코드 | 그룹 | 의미 |
| G00 | 01* | 빠른 모션 |
| G01 | 01 | 선형 보간 모션 |
| G02 | 01 | CW 보간 모션 |
| G03 | 01 | CCW 보간 모션 |
| G04 | 00 | Dwell |
| G09 | 00 | 정확한 정류장 |
| G10 | 00 | 프로그래밍 가능한 데이터 입력 |
| G11 | 00 | 프로그래밍 가능한 데이터 입력 취소 |
| G15 | 17* | 극좌표 취소 |
| G16 | 17 | 극좌표 |
| G17 | 02* | XY 평면 선택 |
| G18 | 02 | ZX 평면 선택 |
| G19 | 02 | YZ 평면 선택 |
| G20 | 06* | 인치 선택 |
| G21 | 06 | 메트릭 선택 |
| G28 | 00 | 기준점으로 돌아가기 |
| G29 | 00 | 기준점에서 반환 |
| G30 | 00 | 2로 돌아가기nd ,3rd,4th 기준점 |
| G31 | 00 | 건너뛸 때까지 피드 |
| G33 | 01 | 스레딩 |
| G40 | 07* | 커터 보상 취소 |
| G41 | 07 | 남은 커터 보상 |
| G42 | 07 | 커터 보상 권리 |
| G43 | 08 | 도구 길이 보정 + |
| G44 | 08 | 도구 길이 보정 - |
| G49 | 08* | G43/G44 취소 |
| G50 | 11* | G51 취소 |
| G51 | 11 | 스케일링 |
| G52 | 00 | 로컬 좌표계 설정 |
| G53 | 00 | 비모달 기계 좌표 선택 |
| G54 | 14* | 작업 좌표계 선택 1 |
| G55 | 14 | 작업 좌표계 선택 2 |
| G56 | 14 | 작업 좌표계 선택 3 |
| G57 | 14 | 작업 좌표계 선택 4 |
| G58 | 14 | 작업 좌표계 선택 5 |
| G59 | 14 | 작업 좌표계 선택 6 |
| G60 | 00 | 단방향 포지셔닝 |
| G61 | 15 | 정확한 정지 모달 |
| G64 | 15* | G61 취소 |
| G65 | 00 | 매크로 호출 |
| G68 | 16 | 회전 |
| G69 | 16* | G68 취소 |
| G73 | 09 | 고속 펙 드릴링 사이클 |
| G74 | 09 | 왼손잡이 탭 주기 |
| G76 | 09 | 미세 지루한 통조림 사이클 |
| G80 | 09* | 통조림 주기 취소 |
| G81 | 09 | 드릴링 주기 |
| G82 | 09 | 스팟 드릴링 주기 |
| G83 | 09 | 일반 펙 드릴링 주기 |
| G84 | 09 | 탭 주기 |
| G85 | 09 | 지루한 주기 |
| G86 | 09 | 스핀들 정지가 있는 보링 사이클 |
| G87 | 09 | 다시 지루한 주기 |
| G88 | 09 | 지루한 주기 |
| G89 | 09 | 지루한 체류 주기 |
| G90 | 03* | 절대 |
| G91 | 03 | 증분 |
| G92 | 00 | 작업 좌표 설정 |
| G94 | 05* | 분당 피드 |
| G95 | 05 | 회전당 피드 |
| G96 | 13 | 일정한 표면 속도 |
| G97 | 13* | 일정한 표면 속도 취소 |
| G98 | 10* | 초기 포인트 반환 |
| G99 | 10 | R 평면 복귀 |
Lathe의 G 코드 목록
| G 코드 | 그룹 | 의미 |
| G12.1 | 21* | 극좌표 보간 취소 |
| G13.1 | 21 | 극좌표 보간 |
| G70 | 00 | 마무리 주기 |
| G71 | 00 | 회전 중 재고 제거 |
| G72 | 00 | 마주 보는 재고 제거 |
| G73 | 00 | 패턴 반복 주기 |
| G74 | 00 | 엔드 페이스 펙 드릴링 사이클 |
| G75 | 00 | 세로 차단 주기 |
| G76 | 00 | 다중 스레드 절단 사이클 |
| G83 | 10 | 페이스 드릴링 주기 |
| G84 | 10 | 얼굴 두드리기 주기 |
| G85 | 10 | 얼굴 지루함을 위한 사이클 |
| G87 | 10 | 측면 드릴링 사이클 |
| G88 | 10 | 측면 두드리기 주기 |
| G89 | 10 | 측면 보링용 사이클 |
| G98 | 05* | 분당 피드 |
| G99 | 05 | 회전당 피드 |
CNC 프로그래밍에서 M 코드란 무엇인가요?
G 코드가 기계의 움직임을 지정하는 경우, M 코드 또는 기타 코드는 기계의 보조 작동을 제어합니다. 여기에는 냉각수, 스핀들의 켜기/끄기 작동, 프로그램 완료 시 정지 등이 포함됩니다. M 코드는 스위치 역할을 하여 필요에 따라 기계 구성 요소를 켜거나 끕니다.
G 코드와 마찬가지로 M 코드는 특히 가공 공정에서 여전히 중요한 비절삭 작업의 경우 원활한 CNC 작업을 보장하는 데 필수적입니다.
일반적인 M 코드와 그 기능
CNC 가공에서 자주 사용되는 M 코드 몇 가지를 살펴보겠습니다:
1. M00: 프로그램 중지
M00 코드는 현재 프로그램의 실행을 일시 중지합니다. 비상 정지와는 달리 기계가 제어된 방식으로 정지하며, 작업자는 준비가 되면 수동으로 프로그램을 다시 시작할 수 있습니다.
2. M03: 스핀들 켜기(시계 방향)
M03 명령은 스핀들을 시계 방향으로 돌립니다. 일반적으로 스핀들 속도를 지정하는 "S" 명령과 쌍을 이루어 가공의 기본 명령으로 사용됩니다.
3. M05: 스핀들 정지
이 코드는 스핀들의 회전을 즉시 중지합니다. 공구를 교체하기 전이나 가공 작업이 끝날 때 자주 사용됩니다.
4. M06: 공구 교환
M06 코드는 가공 공정 중 공구를 자동으로 변경하는 데 필수적입니다. 기계가 이 명령을 수신하면 프로그램에서 지정한 새 공구(T 값)를 검색하여 설치합니다.
5. M08: 냉각수 켜짐
이 코드는 절삭 공정 중 공구와 공작물 온도를 유지하여 원활한 작동과 공구 수명 연장을 위해 필수적인 절삭유 시스템을 켭니다.
6. M09: 냉각수 꺼짐
M09 명령은 절삭유 흐름을 차단하는 명령으로, 가공 작업이 완료되거나 공구를 교환할 때 자주 사용됩니다.
M 코드 목록
| M 코드 | 의미 |
| M00 | 프로그램 중지 |
| M01 | 선택적 프로그램 중지(프로그램 선택 중지) |
| M02 | 프로그램 종료 |
| M03 | 스핀들 전진 |
| M04 | 스핀들 반전 |
| M05 | 스핀들 스톱 |
| M06 | 도구 변경 |
| M07 | 냉각수 ON(미스트) |
| M08 | 냉각수 ON(홍수) |
| M09 | 냉각수 꺼짐 |
| M19 | 오리엔트 스핀들 |
| M30 | 프로그램 종료 및 되감기 |
| M31 | 칩 컨베이어 포워드 |
| M32 | 칩 컨베이어 역방향 |
| M33 | 칩 컨베이어 정지 |
| M34 | 냉각수 스피곳 위치 증가 |
| M35 | 냉각수 스피곳 위치 감소 |
| M36 | 팔레트 회전 |
| M39 | 공구 터렛 회전 |
| M41 | 낮은 기어 변속 |
| M42 | 높은 기어 변속 |
| M50 | 팔레트 변경 실행 |
| M82 | 도구 클램프 해제 |
| M86 | 도구 클램프 |
| M88 | 스핀들 냉각수 켜짐을 통해 |
| M89 | 스핀들 절삭유를 통해 꺼짐 |
| M95 | 절전 모드 |
| M96 | 입력이 없으면 점프 |
| M97 | 로컬 하위 프로그램 호출 |
| M98 | 하위 프로그램 호출 |
| M99 | 하위 프로그램 반환 또는 루프 |
G 코드와 M 코드의 차이점
G 코드와 M 코드는 모두 CNC 프로그래밍에 필수적이지만 매우 다른 기능을 수행합니다:
- G 코드: 주로 기계의 기하학적 움직임을 제어합니다. 직선, 곡선, 원호 등 공작 기계가 어떻게 움직여야 하는지 지시합니다.
- M 코드: 절삭 공구의 물리적 이동을 수반하지 않는 보조 기계 작업을 처리합니다. 여기에는 스핀들 시작 및 정지, 공구 교환, 절삭유 제어 등이 포함됩니다.
G 코드가 실제 절삭 공정을 관리한다면, M 코드는 기계가 효율적으로 작동하도록 하여 원활한 공구 전환과 작업 변경을 가능하게 하는 데 똑같이 중요합니다.
CNC 가공에서 G 및 M 코드의 중요성
앞서 언급했듯이 G 코드와 M 코드는 모두 CNC 가공 공정에 관여하여 부품 생산에서 각자의 역할을 수행합니다. 두 코드는 함께 작동하여 CNC 기계로 정확하고 반복 가능한 부품 생산을 위해 복잡한 제조 작업을 자동화하고 제어합니다.
이는 코드를 이해해야 하는 기계공과 프로그래머에게 중요합니다. 대부분의 프로그래밍이 자동화되어 있는 최신 CAD/CAM 소프트웨어, G 코드 및 M 코드는 특히 사용자 지정 조정이나 수동 프로그래밍이 필요한 경우에 여전히 필요합니다.
그 이유는 다음과 같습니다.
1. 효율성 및 정확성
CNC 기계는 적절한 G 코드 프로그래밍을 통해 복잡한 설계를 빠르고 정확하게 실행할 수 있습니다. G 코드로 제어되는 정밀한 공구 이동은 재료 낭비를 줄이고 가공 시간을 단축하며 생산성을 높입니다.
2. 유연성
M 코드는 공구 교환 및 절삭유 흐름과 같은 기계 기능을 작동하기 때문에 CNC 기계가 스스로 많은 작업을 수행할 수 있습니다. 따라서 CNC 기계는 단순한 부품부터 항공우주 부품까지 다양한 제품을 제조할 수 있는 다목적 기계입니다.
3. 자동화
일반적으로 CNC 프로그래밍 기술에서는 G 코드와 M 코드가 함께 사용되어 가공을 위한 완전 자동 프로세스를 가능하게 합니다. 이렇게 하면 작성된 후 로드된 프로그램을 통해 최소한의 감독만으로 기계가 복잡한 작업을 수행할 수 있으므로 작업자는 다른 생산 영역에 집중할 수 있습니다.
CNC 프로그래밍: 수동 코드와 CAM으로 생성된 G 코드 비교
일반적으로 기공사는 G 코드를 한 줄씩 작성합니다. 이 방법을 사용하려면 기계의 작동 방식과 가공된 부품의 세부 사항에 대한 광범위한 지식이 필요합니다.
그러나 이제 기계 기술자는 CAM 또는 컴퓨터 지원 제조와 같은 도구를 사용하여 다음을 실현할 수 있습니다. G 코드 디자인 모델에서 자동화에 이르기까지 프로그래밍을 간소화합니다.
소프트웨어 CAM은 코드 생성 속도를 높이고 오류 발생 가능성을 줄이지만, 생산 과정에서 작업을 미세 조정하거나 라인의 문제를 해결하는 데는 여전히 수동 프로그래밍 기술이 중요합니다.
CNC 프로그래밍에서 흔히 발생하는 4가지 오류와 이를 방지하는 데 도움이 되는 G 및 M 코드
대부분의 프로그래밍을 생성하는 고급 CAM 소프트웨어가 있어도 CNC 프로그래밍 오류는 여전히 발생할 수 있습니다. 이러한 실수는 흔히 발생하지만 부품 결함, 기계 손상, 자재 낭비 또는 작업장에서의 사고로 이어질 수 있습니다.
몇 가지 일반적인 CNC 프로그래밍 오류와 각 오류를 해결하는 데 있어 G 및 M 코드의 역할을 살펴보겠습니다.
1. 잘못된 공구 길이 보정(G43)
CNC 프로그래밍에서 가장 빈번하게 발생하는 문제 중 하나는 잘못된 공구 길이 보정입니다. CNC 기계의 각 공구에는 고유한 길이가 있으며, 기계가 공구 간을 전환할 때 절단 정확도를 유지하기 위해 이 차이를 고려해야 합니다.
G43 명령이 올바르게 설정되지 않으면 기계가 공구의 길이에 맞게 조정되지 않아 절삭 깊이가 부정확해지고 공작물이 손상될 수 있습니다.
예를 들어, 프로그램이 추가 길이에 대한 보정 없이 더 긴 공구로 전환한다고 가정해 보겠습니다. 그 결과 공구가 소재를 너무 깊게 절단하여 부품과 공구 자체가 손상될 수 있습니다.
해상도
잘못된 공구 길이 보정으로 인해 오류가 발생하면 G43 명령을 다시 확인하고 올바른 오프셋이 사용되었는지 확인하세요. 인적 오류의 가능성을 더욱 줄이려면 공구 길이를 자동으로 측정하고 기록하는 공구 설정 장치를 사용하세요.
2. 안전 블록 내려다보기
안전 블록은 실제 가공을 시작하기 전에 기계가 안전하고 알려진 상태에서 시작되도록 설계된 일련의 예비 명령입니다. 안전 블록에는 스핀들 정지, 커터 보정 취소, 올바른 평면 선택, 안전한 좌표에 기계 위치 지정 등이 포함될 수 있습니다.
프로그램을 시작할 때 이 안전 블록을 포함하지 않으면 기계가 예기치 않거나 잘못된 조건에서 작동하기 시작하여 충돌, 공구 파손 또는 부상을 초래할 수 있습니다.
예를 들어, 이전 작업에서 다른 깊이로 절단했는데 안전 블록이 없는 경우 기계가 이전 깊이에서 계속 작동하여 고정 장치 또는 클램프와 충돌할 수 있습니다.
해상도
안전 블록이 누락되었거나 부적절하게 설정된 경우, 주요 이동이나 작동 전에 기계를 기본값으로 설정하는 필수 G 및 M 코드를 포함하도록 프로그램을 수정하세요.
올바른 기계 설정을 보장하고 충돌을 방지하기 위해 항상 잘 구성된 안전 블록으로 프로그램을 시작하세요.
3. 부적절한 이송 속도(G01)
이송 속도는 절삭 공구가 공작물 주위를 이동하는 속도로 정의됩니다. 이송 속도를 잘못 설정하면 다양한 문제가 발생할 수 있습니다.
예를 들어 이송 속도가 너무 빠르면 절삭 표면에 너무 많은 힘이 가해져 공구가 파손되거나 과열되거나 부품의 부정확성이 발생할 수 있습니다.
반대로 이송 속도가 너무 낮으면 가공이 효율적이지 않습니다. 사이클 시간도 길어지고 공구가 절단 대신 문지르기 때문에 표면 조도가 나빠집니다.
이제 정밀 가공에서 이송 속도가 너무 낮다고 가정해 보겠습니다. 이렇게 하면 절삭 날에 재료가 쌓여 가공된 표면의 품질이 저하되고 공구 마모가 증가합니다.
해상도
이송 속도가 잘못 설정된 경우 G01 명령의 F 코드를 통해 이송 속도를 조정하면 문제를 해결할 수 있습니다.
CAM 소프트웨어는 재료 특성 및 공구 형상을 기반으로 이상적인 이송 속도를 자동으로 계산할 수 있지만 미세 조정을 위해 수동 조정이 필요할 수 있습니다. 프로그램을 처음 실행할 때는 항상 이송 속도를 확인하십시오.
4. 일치하지 않는 G 및 M 코드
CNC 코드의 각 블록에는 일반적으로 하나의 G 코드와 하나의 M 코드가 포함됩니다. 단일 블록에 여러 개의 G 또는 M 코드를 사용하면 기계가 어떤 명령의 우선순위를 정해야 할지 모르기 때문에 혼란을 일으켜 예기치 않은 동작이 발생할 수 있습니다.
예를 들어 G02(시계 방향 원형 보간)와 G01(선형 보간)과 같은 명령을 같은 블록에 결합하면 기계가 의도한 동작을 올바르게 실행하지 못할 수 있습니다.
또한 충돌하는 M 코드를 함께 사용하면 문제가 발생할 수 있습니다. 예를 들어, 동일한 블록에서 M03(스핀들 시계 방향)과 M05(스핀들 정지)를 페어링하면 기계가 스핀들 시작 또는 정지 여부를 혼동하여 일관성 없는 작동으로 이어질 수 있습니다.
해상도
일치하지 않는 코드로 인해 기계가 오작동하는 경우, 충돌하는 코드를 별개의 블록으로 분리하도록 프로그램을 수정해야 합니다. 기계에서 실행하기 전에 코드를 주의 깊게 교정하면 잠재적인 충돌을 조기에 발견하는 데 도움이 됩니다.
결론
오늘날 G 코드와 M 코드는 CNC 가공 작업의 핵심입니다. 따라서 CAM 소프트웨어와 수동 코드를 모두 작성하려면 G 코드와 M 코드를 이해하는 것이 필수적입니다. 이렇게 하면 CNC 기계를 보다 효율적이고 정확하게 작동할 수 있습니다.
CNC 기계의 기술이 계속 발전함에 따라 이러한 기본 코드를 숙지하는 것은 CNC 가공의 잠재력을 최대한 발휘하는 가장 중요한 수단 중 하나입니다.
아직 궁금한 점이 있으신가요? 다음 연락처로 숙련된 디자이너 및 제조업체에 문의하세요. FirstMold.









