수치 제어

**컴퓨터 수치 제어**(computerized numerical control, **CNC**) 또는 CNC 가공은 컴퓨터에 의한 공작기계의 자동제어다. CNC는 **수치 제어**(nemerical control)의 진화된 형태로 공작 기계가 천공 카드, 천공 테이프 등 를 통해 직접 관리된다. 세계 최초의 NC공작기계는 기존의 공작기계기기에 종이테이프로 수치제어를 시스템에 입력, 수정, 제거하는 것으로 모터의 동작을 제어하도록 개조한 것이다. 1940년대부터 1950년대에 구축되어 초기의 서보메커니즘(servomechanism)에는 아날로그 컴퓨터나 디지털 컴퓨터가 부속 강화되어, CNC 공작기계가 되었고, 설계 공정을 일신시켰다.

## 개요
NC공작기계는 각각의 축이 독립한 메커니즘을 가져, 각각이 독립한 피드백 기구를 갖추고 있다. 예를 들면, XYZ축을 가지는 **NC 프라이즈반**이라면, X축, Y축, Z축 각각의 방향으로 슬라이드 축을 가져, 독립한 서보 기구를 가지고 있다. 즉 X방향으로 100.0mm 움직이는 지령이 나오면, X축의 엔코더(encoder)에 의해, X방향으로 100.0 mm 이동하는 것이 보증되고 있다.

공작기계를 자동적으로 동작시키기 위해, 프로그램을 해석하는 컴퓨터와 짜 합쳐지고 CNC로서 사용된다. 현재는 **CNC**가 아닌 **NC**공작기계라고 거의 없고, 단지 **NC공작기계**라고 부르는 경우는 **CNC공작기계**를 가리킨다. CNC로 사용되는 프로그래밍 언어를 **NC프로그램**이라고 한다.

## 역사
1801년에 프랑스의 자카르(Joseph Marie Jacquard)에 의하여 펀치 카드에 의한 직물 기계의 무늬 제작을 발명하면서 비롯되었다. 1947년 퍼슨(John T. Parsons)이 미국 공군의 헬리콥터 깃 윤곽을 검사하기 위한 게이지를 가공하는 기계를 개발하는 일에 종사하면서 자신의 고안한 NC 개념의 공작 기계 개발을 제안하였다.

미국 공군은 1948년 Parson 회사에 대해, NC에 관한 가능성을 검토하였고, 1949년 매사추세츠 공과대학의 연구팀이 3년 간의 연구 끝에 1952년 밀링 머신에 NC 장치를 설치한 것이 최초의 진공관식 NC(CNC) 공작 기계이다.

일본은 1957년 도쿄 공업대학에서 NC 선반 개발이 성공하였으며, 대한민국에서는 1973년 한국과학기술원에서 연구를 시작하여 1977년 국산 1호기가 출품되었다.

## CNC선반
썸네일|CNC 공작기계(선반)
선반을 조합한 것으로 준비 기능(G기능), 주축 기능(S기능), 보조 기능(M기능), 이송 기능(F기능), 공구 기능(T기능) 등 외에 테이퍼절삭, 원호절삭, 나사절삭, 원점옵셋, 공구 위치 옵셋 등을 비치한 것이 많다. 미니 컴퓨터를 내장한 CNC 장치를 가진 것은 거친깎기의 시퀀스의 자동결정이나 공구 노즈 반경 보정의 기능을 비치한 것이 있다.

### 준비기능
**준비기능**(G기능)은 어드레스 "G" 이하 2단의 수치로서 구성되어 그 Block의 명령이나 어떤 의미를 지시한다.
* **ONE Shot G-코드** : 지령된 Block에 한해서 유효한 가능 ("00" Group ; G04,G10)
* **Modal G-코드** : 지령된 Block에 한해서 유효한 가능 ("00" 이외의 Group)
;어드레스
* O - 프로그램 번호
* N - 블록이름(시궨스 번호)
* S - 주축기능
* F - 이송기능
* M - 보조기능
* T - 공구기능

#### G코드

* G00 : 급속위치 결정
* G01 : 직선보간 (절삭)
* G02 : 원호보간 (시계방향)
* G03 : 원호보간 (반 시계방향)
* G04 : 드웰 (정지시계 지령)
* G10 : 데이터 설정
* G20 : Inch 입력
* G21 : Metric 입력
* G22 : 금지영역 설정
* G23 : 금지영역 설정 무시
* G25 : 주축 변동 검출 OFF
* G26 : 주축 변동 검출 ON
* G27 : 원점복귀 Check
* G28 : 기계원점 복귀

* G30 : 제 2, 3, 4 원점 복귀
* G31 : Skip 기능
* G32 : 나사절삭
* G36 : 자동공구 보정(X)
* G37 : 자동공구 보정(Z)
* G40 : 인선 R보정 무시
* G41 : 인선 R보정 좌측
* G42 : 인선 R보정 우측
* G43 : 공구길이 보정 '+'
* G44 : 공구길이 보정 '-'
* G49 : 공구길이 보정취소
* G50 : 공작물 좌표계 설정/주축 최고회전수 지정
* G68 : 대향공구대 자표 ON
* G69 : 대향공구대 자표 OFF
* G70 : 정삭 싸이클

* G71 : 내외경황삭 싸이클
* G72 : 단면황삭 싸이클
* G73 : 모방 싸이클
* G74 : 단면홈가공 싸이클
* G75 : 내외경홈가공 싸이클
* G76 : 자동나사가공 싸이클
* G90 : 내외경 절삭 싸이클
* G92 : 나사 절삭 싸이클
* G94 : 단면 절삭 싸이클
* G96 : 주속 일정 제어
* G97 : 주속 일정 제어 무시
* G98 : 분당 이송
* G99 : 회전당 이송

### 보조기능
**보조기능**(M기능)은 기계측의 보조장치들을 제어하는 기능으로 내부적인 것과 외부적인 것이 있다. Address "M"과 2자리 수치로 지령한다.

### M코드

* M00 : 프로그램 정지 (실행중인 프로그램을 일시정지)
* M01 : 선택 프로그램 정지 (조작판의 M01 스위치가 ON인 경우)
* M02 : 프로그램 끝
* M03 : 주축 정회전 (CW)
* M04 : 주축 역회전 (CCW)
* M05 : 주축 정지
* M06 : 공구교환
* M08 : 절삭유 ON
* M09 : 절삭유 OFF

* M12 : 척 물림
* M13 : 척 풀림
* M14 : 심압대 스핀들 전진
* M15 : 심압대 스핀들 후진
* M30 : 프로그램 끝 & Rewing(프로그램 선두에서 정지하는 경우와 재실행을 파라메타로 결정한다.)
* M98 : 보조 프로그램 호출
* M99 : 보조 프로그램 종료(보조 프로그램에서 주 프로그램으로 되돌아 간다.)

### 지령

* O
* G28 U0. W0.
* G50 X Z S T
* G96 S M03
* GOO X Z T0101 M08
* G71 P10 Q10 U W D F
* N10 G X
* G01 Z

* N20 Z
* G28 U0. W0. M09
* M05
* T0300
* G97 S2000 M03
* G00 X Z T0303 M08
* G70 P10 Q20 F0.05

* G28 U0. W0.
* M05
* T0500
* G97 S500 M03
* GOO X Z T0505 M08
* G01 X F0.07
* G04 P1000

* G04 U1.

* G28 U0. W0. M09
* M05
* T0700
* G97 S500 M03
* G00 X Z T0707 M08

* G28 U0. W0. M09
* M05
* M30

### SENTROL 시스템
* 컴퓨터수치제어(CNC) 모델인 '센트롤(SENTROL)3'를 개발했다.

## CNC밀링머신
썸네일|CNC밀링머신

수치 제어 기능이 추가된 밀링 머신,

### 준비기능
**준비기능**(G기능)은 어드레스 "G" 이하 2단의 수치로서 구성되어 그 Block의 명령이나 어떤 의미를 지시한다.
* **ONE Shot G-코드** : 지령된 Block에 한해서 유효한 가능 ("00" Group ; G04,92,27,28,30,31)
* **Modal G-코드** : 지령된 Block에 한해서 유효한 가능 ("00" 이외의 Group)
;어드레스
* D - 공구지름보정
* H - 길이보정

#### G코드

* G00 : 공구의 급속 이송
* G01 : 절삭이송에 의한 가공
* G02 : 원호보간 (CW)
* G03 : 원호보간 (CCW)
* G04 : 드웰 (Dwell, 정지시계 지령)
* G09 : Exact Stop
* G10 : 데이터 설정
* G16 : 극좌표 지령
* G17 : X Y 평면설정(기본설정되어 있음)
* G18 : Z X 평면설정
* G19 : Y Z 평면설정
* G20 : Inch 입력
* G21 : Metric 입력
* G22 : 금지영역 설정
* G27 : 원점복귀 Check
* G28 : 기계원점 복귀
* G30 : 제 2, 3, 4 원점 복귀
* G31 : Skip 기능
* G33 : 나사절삭

* G40 : 공구경 보정 취소
* G41 : 공구경 보정 좌축
* G42 : 공구경 보정 우측
* G43 : 공구길이 보정 "+"
* G44 : 공구길이 보정 "-"
* G49 : 공구길이 보정 취소
* G51 : Scaling, Mirror
* G52 : 로컬좌표계 설정
* G53 : 기계좌표계 설정
* G54~59 : 공작물 좌표계 1~6번 선택
* G60 : 한방향 위치결정
* G61 : Exact Stop Mode
* G62 : 자동 Corner Override
* G63 : Tapping Mode
* G65 : Macro 호출
* G66 : Macro Modal 호출
* G68 : 좌표회전
* G70 : 정삭 싸이클
* G73 : 고속 심공드릴 Cycle
* G74 : 역 Tapping Cycle

* G76 : Fine Boring Cycle
* G80 : 고정 사이클 취소
* G81 : Drill Cycle, Spot Boring Cycle
* G82 : Drill Cycle, Counter Boring Cycle
* G83 : 심공드릴 Cycle
* G84 : Tapping Cycle
* G85 : Boring Cycle
* G86 : Boring Cycle
* G87 : Back Boring Cycle
* G88 : Boring Cycle
* G89 : Boring Cycle
* G90 : 절대지령 지령
* G91 : 증분지령 지령
* G92 : 공작물 좌표계의 설정
* G94 : 분당 이송
* G95 : 회전당 이송
* G96 : 주속 일정 제어
* G97 : 주속 일정 제어 무시
* G98 : 고정 Cycle Initial Level 복귀
* G99 : 고정 Cycle R점 Level 복귀

### 보조기능
**보조기능**(M기능)은 기계측의 보조장치들을 제어하는 기능으로 내부적인 것과 외부적인 것이 있다. Address "M"과 2자리 수치로 지령한다.

### M코드

* M00 : 프로그램 정지 (실행중인 프로그램을 일시정지)
* M01 : 선택 프로그램 정지 (조작판의 M01 스위치가 ON인 경우)
* M02 : 프로그램 끝
* M03 : 주축 정회전 (CW)
* M04 : 주축 역회전 (CCW)
* M05 : 주축 정지

* M06 : 공구 교환
* M08 : 절삭유 ON
* M09 : 절삭유 OFF
* M10 : Table Clamp
* M11 : Table Unclamp
* M19 : 주축 Orientation
* M30 : Program End & Rewind (프로그램 선두에서 정지하는 경우와 재실행을 파라메타로 결정)

* M48 : Override 100% Clamp
* M49 : Override 100% Unclamp
* M98 : Sub Program 호출
* M99 : Sub Program End (Main Rrogram으로 복귀)

### 지령

* O
* G00 G90 X Y;
* Z ;
* Z ;
* G01 Z F ;
* G01 G91 X Y ;
* G01 G91 X ;
* G01 G91 Y ;
* G01 G91 X Y ;

* G01 G91 X ;
* G01 G91 X Y;
* G01 Z ;
* G01 G91 X Y ;
* G01 Z F ;
* G01 G91 Y ;
* G01 G91 X Y ;
* G01 G91 Y ;
* G01 Z ;
* G01 G91 X Y ;
* G01 Z F ;

* G01 G91 X Y ;
* G01 G91 X ;
* G01 G91 X Y ;
* G01 G91 Y ;
* G01 G91 X Y ;
* G01 G91 X ;
* G01 G91 X Y ;
* G01 Z ;
* G01 Z;
* M05 ;
* M02 ;

## 참고 문헌

* 《기초에서 현장응용까지 CNC 선반》 장진석 지음 (1992년 초판)
* 《고등학교 기계공작법》한국직업능력개발원 편찬, 교육과학기술부 저자
* 

## 같이 보기

* 컴퓨터 지원 설계 (CAD)
* 컴퓨터 이용 공학 (CAE)
* 컴퓨터 지원 제조 (CAM)

분류:컴퓨터 이용 공학