본문 바로가기

생활정보

CNC G코드 마스터캠 컴퓨터응용선반기능사 명령어 기능 완벽 정리

CNC (Computerized Numerical Control, 컴퓨터 수치제어) 를 이용한 컴퓨터 지원제조 (Computer Aided Manufacturing, CAM) 에서 자동제어 공작기계를 이용하여 공작물을 가공하기 위해서는 CNC G코드 즉, 가공 명령어를 프로그래밍해야 합니다. 이번 글에서는 자동제어 공작기계를 이용한 공작물 가공에 반드시 필요한 CNC G코드에 관한 모든 내용을 총정리 하였습니다.

1. CNC란?

CNC란 Computerized Numerical Control의 약어로서 컴퓨터 수치제어를 의미합니다.

절삭, 소성가공, 전기적 가공법 등으로 각종 기계를 만드는 공작기계는 조금씩 개량되어 완전한 원이나 직선적인 것을 가공할 수 있는 형태로 발전을 계속하여 왔습니다. 최근에는 이러한 공작기계에 전자 장치를 도입하여 기계를 사용자가 입력한 명령어대로 가동시킬 수 있는 CNC 방식이 실현되어, 다품종 소량생산이라도 각종 작업을 자동적으로 할 수 있게 되었습니다.

오늘날 CNC는 컴퓨터 마이크로 프로세서를 내장한 수치제어 공작기계 및 이를 응용한 기계공작 전반을 의미하는 용어로 주로 사용되고 있습니다.

2. G코드란?

머시닝센터, CNC, 선반 등 공작기계를 이용하여 공작물을 가공하기 위하여 가공 이전에 가공명령어들을 프로그래밍하는 것을 G코드라고 합니다. G코드는 CNC 가공의 핵심적인 요소 중 하나로서 대부분의 명령어는 전세계적으로 표준화되어 통일되어 있으나, 기계의 특성이나 공작기계 컨트롤러의 생산회사에 따라 약간의 차이가 있습니다.

G코드 명령어는 한 개의 블록 단위로 구성되며 구성요소는,

  • N : 블록넘버
  • T : 공구지정
  • S : 주축 회전과 관련된 기능
  • G : 가공지령
  • F : 가공속도 제어 기능
  • M : 보조기능

등의 기능이 있습니다.

이 중에서 G (가공지령) 기능이 실제 공작물을 가공하는 지령이므로 가장 중요하며, G기능과 F 기능을 제외한 나머지 기능들은 공작기계가 발전함에 따라 그 특성에 맞게 조금씩 추가된 것들입니다.

3. CNC G코드 명령어 기능 총정리

앞서 말씀드린 CNC G코드의 명령어 기능을 총정리하였습니다.

3.1 N코드

명령어 블록의 번호를 부여하는 기능입니다.

일반적으로 생략이되지만, 사이클을 사용하는 경우와 같이 특정 블럭을 지정하는 경우에는 N10, N80 처럼 반드시 포함되어야 합니다. 기종에 따라서는 자동으로 넘버가 부여되는 경우도 있습니다.

3.2 T코드

공구와 옵셋을 지정하는 기능입니다.

ATC (Auto Tool Changer) 나 터닝센터의 공구대가 부착된 기계에서만 사용되는 기능으로서, 사용자가 필요에 따라 임의 장착한 공구를 호출하거나 수납할 때 각각의 공구에 번호를 부여하여 필요한 공구를 사용할 수 있게끔하는 기능입니다.

3.3 S코드

주축의 회전을 제어하는 기능입니다.

  1. 주축의 회전 수 지정
  2. 주축의 최대 회전 수 지정
  3. 주축의 일정가공 속도 지정

의 3가지 용도로 주로 사용됩니다.

3.4 G코드

실질적인 공작물의 가공을 지령하는 명령어 기능입니다.

G00부터 G99까지의 명령어가 있으며, 실질적으로 사용되는 것은 20~30가지입니다. 대부분의 CNC에서 그 구성은 동일하나, 가공용도, 기종이나 제작회사에 따라 조금씩 차이가 있으며, 컴퓨터응용선반기능사와 같은 관련 자격증 준비자들이 반드시 숙지하여야 하는 기능입니다.

중요한 G코드의 명령어들을 정리하면 다음과 같습니다.

  • G00 : 급속이송, 위치결정이라고도 하며, 가공과 가공사이 공구를 빠르게 이송시키는 역할을 수행. 임의의 위치로 공작물 또는 공구를 급속으로 이동시킬 때 사용하는 기능으로, 좌표값까지 45˚ 방향으로 진행한 후 직선으로 이동하여 시점과 종점에서 가속 및 감속이 이루어짐
  • G01 : 직선보간, 일직선을 가공할 때 사용하는 명령어, 직선 가공 시 사용되는 기능으로 지정된 속도로 이동
  • G02 : 시계방향의 원호 가공. 원호 가공 시 사용하는 기능으로 가공 방향이 시계방향일 경우 사용하는 명령어로서 종점의 좌표 값을 입력하고 반지름 값 R을 지령하거나, 원호의 크기로서 i (X축 방향), j (Y축 방향), k (Z축 방향) 값을 명령
  • G03 : 반시계방향의 원호 가공. 원호 가공 시 사용하는 기능으로 가공 방향이 시계방향일 경우 사용하는 명령어입니다. 명령의 방식은 G20과 동일
  • G02.2, G03.2 : 복잡한 나선의 보간
  • G02.3, G03.3 : 지수함수 보간
  • G04 : 휴지 (dwell) 이송 일시 정지 기능. 홀 가공이나 드릴 작업 등에서 간헐 이송에 의해 칩을 절단 하거나 홈 가공에서 회전 당 이송으로 생기는 단차를 제거하고, 표면 거칠기를 향상시키기 위해 정해진 시간동안 정지시킬 때 사용하는 기능
  • G05 : 고속 사이클 가공
  • G07 : 가상 축 보간. 원호 보간의 한 축을 가상 축으로해서 Pulse를 분배함으로써, 나머지 1축의 이송속도를 sin 형식으로 변화시킬 수 있음
  • G07.1 : 원통보간
  • G08 : 선행제어
  • G09 : 시간지정이 없는 일시정지 (G04의 경우 시간지정 가능)
  • G10 : 데이터 설정모드. 프로그램에 의해 좌표계의 OFFSET을 설정할 수 있음
  • G10.1 : PC Data 설정
  • G10.3 : 고속가공 등록개시
  • G10.6 : 공구 대피 및 복귀
  • G11 : 데이터 설정모드 취소
  • G11.3 : 고속가공 등록 종료
  • G12.1, G13.1 : 극좌표계 보간 모드
  • G15 : 극좌표지령 취소 모드
  • G16 : 극좌표지령 모드
  • G17 : X:Y평면 설정 (머시닝센터)
  • G18 : X:Z평면 설정 (머시닝센터)
  • G19 : Y:Z평면 설정 (머시닝센터)
  • G20 : 인치 (inch) 입력 기계의 좌표제어 단위
  • G21 : 미터 (meter) 입력 기계의 좌표제어 단위
  • G22 : 내장 행정 한계 ON
  • G23 : 내장 행정 한계 OFF
  • G25 : 주축 속도 변경 검출 ON
  • G26 : 주축 속도 변경 검출 OFF
  • G27 : 원점 복귀 체크
  • G28 : 기계 원점으로 복귀. 급속이동으로 중간점을 경유하여 기계원점까지 자동 복귀하는 기능
  • G29 : 원점으로부터 자동 복귀. 이 지령에 의해 각 축은 G28에서 지령 된 중간 점을 경유하여 G29로 지령 된 위치로 위치결정을 하며, 일반적으로 G28을 수행한 후에 지령
  • G30 : 제2원점 (공구 교환 지점) 으로 복귀. 이 지령은 일반적으로 자동공구교환 위치가 다를 때 사용
  • G30.1 : 부동 기준점 복귀
  • G31 : SKIP 기능
  • G31.1 : 다단 SKIP 기능
  • G33 : 나사 절삭 (헬리컬 절삭) 기능
  • G37 : 공구장 자동 측정
  • G39 : 코너 원호 보간
  • G40 : 공구 경보정 취소
  • G40.1 : 법선방향제어 취소 모드
  • G41 : 공구 좌측 경보정. 공구를 가공형상으로부터 일정거리만큼 떨어지게 하는 것을 공구 경보정이라 하며, OFFSET량은 미리 CNC에서 설정하여야 함
  • G41.1 : 법선방향제어 좌측 ON
  • G42 : 공구 우측 경보정
  • G42.1 : 법선방향제어 우측 ON
  • G43 : 공구 길이 보정 (+ 방향)
  • G44 : 공구 길이 보정 (- 방향)
  • G49 : 공구 길이 보정 취소
  • G50 : 주축 최대 회전수 제어/공작물 좌표계 설정(선반) S 명령어가 반드시 따라와야 함
  • G50.1 : Programmable mirror image cancel
  • G51 : 스케일링
  • G51.1 : Programmable mirror image
  • G52 : 지역 좌표계
  • G53 : 기계 좌표계 선택
  • G54 : 공작물 좌표계 1번 선택
  • G55 : 공작물 좌표계 2번 선택
  • G56 : 공작물 좌표계 3번 선택
  • G57 : 공작물 좌표계 4번 선택
  • G60 : 1방향 위치 결정
  • G61 : Exact stop mode
  • G62 : 자동 코너 Overide
  • G63 : 탭 모드
  • G64 : 절삭 모드
  • G65 : 매크로 단순 호출
  • G66 : 매크로 MODAL 호출
  • G68 : 좌표회전 (3차원 좌표 변환)
  • G69 : 좌표회전 (3차원 좌표 변환) 취소
  • G70 : 정삭 사이클(선반) 사이클 과정이 될 N을 반드시 지정해야 함
  • G71 : 내외경 황삭 사이클(선반) N지정 필요
  • G72.1 : 회전 복사
  • G72.2 : 평행 복사
  • G73 : 고속 심공 드릴 사이클. 펙 드릴 고정 사이클
  • G74 : 왼나사 태핑 사이클. 역태핑 고정 사이클 (왼나사 가공)
  • G76 : 나사 사이클 (선반), 정밀 보링 사이클 (머시닝센터)
  • G80 : 사이클 취소. 외부 동작 기능
  • G81 : 드릴 사이클 (머시닝센터). 드릴 고정
  • G82 : 카운터 보링 사이클(머시닝센터)
  • G83 : Peck Drilling 고정 사이클
  • G84 : 태핑 사이클 (머시닝센터), 암나사를 내기 위한 사이클
  • G85 : 보링 사이클
  • G86 : 보링 사이클
  • G87 : Peck 보링 사이클
  • G88 : 보링 사이클
  • G89 : 보링 사이클
  • G90 : 내, 외경 황삭 사이클 (선반), 절대 좌표 지령 (머시닝센터)
  • G91 : 증분 지령 / 상대 좌표 지령
  • G92 : 나사 절삭 사이클 (선반) / 공작물 좌표계 설정 (머시닝센터)
  • G92.1 : 공작물 좌표계 프리셋
  • G93 : 리이드 이송. 공구의 최종 속도를 지령합니다.
  • G94 : 단면 절삭 사이클 (선반) / 분당 이송 지령 (머시닝센터)
  • G95 : 매 회전 당 이송 mm / 회
  • G96 : 스핀들 주속 일정 제어 (선반)
  • G97 : 스핀들 회전수 일정 제어 (주속 일정 제어 취소)
  • G98 : 분당 일정 속도 이송 지령
  • G99 : 회전당 일정 속도 이송 지령

3.5 F코드

이송 속도를 제어하는 기능입니다.

G01, G02, G03 등 가공 및 보간 명령 이후 반드시 한번 이상은 지령되어야 하며, 한번 속도가 지령되면 다음 보간 명령에는 별도의 F 명령이 있지 않는 한 가장 최근에 입력된 가공 이송속도를 따릅니다.

CNC 선반의 경우 공작물은 회전하고, 공구는 이송되기 때문에 공작물의 회전에 따라 F의 단위는 달라집니다. 공작물이 일정한 회전수를 가지는 G97에서는 통상 G99를 사용하고, 공작물의 직경 방향거리에 따라 회전수가 변화하는 G96에서는 일반적으로 G99나 G98을 프로그램에 따라 사용합니다.

3.6 M코드

프로그램을 제어하거나, 기계의 보조장치들을 ON/OFF하는 역할을 하는 보조기능 입니다.

공작기계에 보조적으로 탑재되어 있던 장치들이 점점 자동화, 프로그램화 되면서 부가적으로 G코드에 포함된 기능입니다. 초반에는 그 수가 적었지만 CNC가 발전하면서 G기능 못지 않게 중요성이 부각된 기능입니다.

M코드에서 M은 보조기능 (miscellaneous function) 의 머리 글자를 딴 것으로서, G코드와 마찬가지로 어드레스 M뒤에 00에서 99까지의 두 자리 숫자를 붙여 명령을 내립니다. 프로그램을 제어하는 M기능은 M00, M01, M02, M30, M98, M99 등이고, 기타 대부분의 M코드는 CNC 보조장치의 ON/OFF 기능을 담당합니다.

M코드의 경우 공작기계를 만드는 제조사, 컨트롤러 시스템 회사마다 추가, 삭제 및 옵션으로 파라미터 조작에 의해 넣는 경우가 있으며, 코드가 공작기계회사, 시스템 회사마다 다른 경우가 있습니다.

중요한 M코드의 명령어들을 정리하면 다음과 같습니다.

  • M00 : 프로그램 정지
  • M01 : 프로그램 일시 정지
  • M02 : 프로그램 종료
  • M03 : 주축 정회전
  • M04 : 주축 역회전
  • M05 : 주축 정지
  • M06 : 공구 교환 (머시닝센터)
  • M07 : 고압 절삭유
  • M08 : 절삭유 ON
  • M09 : 절삭유 OFF
  • M10 : 4축 클램프
  • M11 : 4축 언클램프
  • M12 : 공작물 카운터
  • M13 : 회전공구의 시계방향 회전
  • M14 : 회전공구의 반시계방향 회전
  • M15 : 회전공구의 정지
  • M16 : 공구 수납 (머시닝센터)
  • M17 : 머신록 ON
  • M18 : 주축의 원점복귀 해제
  • M19 : 주축 한방향 정지 (머시닝센터)
  • M20 : 자동 전원차단
  • M29 : 리지드 탭 모드
  • M30 : 프로그램 종료 후 프로그램 맨 선두로 되돌림
  • M33 : 공구 수납. 주축 공구를 매거진으로 수납
  • M40 : C축 모드를 주축모드로 변경
  • M43 : 주축모드를 C축 모드로 변경
  • M46 : 센서 절환신호 ON
  • M47 : 센서 절환신호 OFF
  • M51 : 에어 브로우 ON
  • M53 : 센서 에어 브로우 ON
  • M55 : 오일 미스트 ON
  • M59 : 에어 브로우 OFF
  • M68 : 유압척 클램프
  • M69 : 유압척 언클램프
  • M70 : 워크 카운트
  • M73 : Y축 미러 이미지 OFF
  • M74 : Y축 미러 이미지 ON
  • M75 : X축 미러 이미지 OFF
  • M76 : Y축 미러 이미지 ON
  • M88 : 쓰루 스핀들 쿨란트 ON
  • M89 : 쓰루 스핀들 쿨란트 OFF
  • M90 : C축용 브레이크를 고압으로 작동
  • M91 : C축용 브레이크를 저압으로 작동
  • M98 : 보조 프로그램 호출
  • M99 : 보조 프로그램 종료

4. CAM에서의 G코드 자동작성

과거에는 앞선 G코드 명령어들을 일일이 프로그래밍하여 CNC 작업을 위한 가공 프로그램을 작성해야 했으나, 최근에는 기술의 발달로 CAD (Computer Aided Design and Drafting) 에서 자동으로 G코드를 추출해주는 프로그램들이 등장하였으며, 이러한 프로그램들을 CAM (Computer Aided Manufacturing) 이라고 합니다.

CAM의 등장으로 인해 CNC 작업을 위한 상당수 G코드 작성의 시간을 단축시키기는 했지만 CNC G코드의 최적화 등을 위하여 실제 산업현장에서는 아직도 인력에 의한 G코드의 작성, 수정, 보완이 필요합니다.