{{위키데이터 속성 추적}}
{{다른 뜻 넘어옴|CNC|조사=는}}
'''수치 제어'''(Numerical Control)과 '''컴퓨터 수치 제어'''(Computerized Numerical Control)은 현장에 보급된 [[기계]]들은 거의 대부분 '''NC''' 기계를 약해서 '''CNC'''라 부르고 있다. [[세계]] 최초의 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년]] [[kAIST|한국과학기술원]]에서 연구를 시작하여 [[1977년]] 국산 1호기가 출품되었다.

== CNC선반 ==
[[파일:Small CNC Turning Center.jpg|썸네일|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코드 ====
{{col-begin}}
{{col-3}}
* G00 : 급속위치 결정
* G01 : 직선보간 (절삭)
* G02 : 원호보간 (시계방향)
* G03 : 원호보간 (반 시계방향)
* G04 : 드웰 (정지시계 지령)
* G10 : 데이터 설정
* G20 : Inch 입력
* G21 : Metric 입력
* G22 : 금지영역 설정
* G23 : 금지영역 설정 무시
* G25 : 주축 변동 검출 OFF
* G26 : 주축 변동 검출 ON
* G27 : 원점복귀 Check
* G28 : 기계원점 복귀
{{col-3}}
* 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 : 정삭 싸이클
{{col-3}}
* G71 : 내외경황삭 싸이클
* G72 : 단면황삭 싸이클
* G73 : 모방 싸이클
* G74 : 단면홈가공 싸이클
* G75 : 내외경홈가공 싸이클
* G76 : 자동나사가공 싸이클
* G90 : 내외경 절삭 싸이클
* G92 : 나사 절삭 싸이클
* G94 : 단면 절삭 싸이클
* G96 : 주속 일정 제어
* G97 : 주속 일정 제어 무시
* G98 : 분당 이송
* G99 : 회전당 이송
{{col-end}}

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

=== M코드 ===
{{col-begin}}
{{col-3}}
* M00 : 프로그램 정지 (실행중인 프로그램을 일시정지)
* M01 : 선택 프로그램 정지 (조작판의 M01 스위치가 ON인 경우)
* M02 : 프로그램 끝
* M03 : 주축 정회전 (CW)
* M04 : 주축 역회전 (CCW)
* M05 : 주축 정지
* M06 : 공구교환
* M08 : 절삭유 ON
* M09 : 절삭유 OFF
{{col-3}}
* M12 : 척 물림
* M13 : 척 풀림
* M14 : 심압대 스핀들 전진
* M15 : 심압대 스핀들 후진
* M30 : 프로그램 끝 & Rewing(프로그램 선두에서 정지하는 경우와 재실행을 파라메타로 결정한다.)
* M98 : 보조 프로그램 호출
* M99 : 보조 프로그램 종료(보조 프로그램에서 주 프로그램으로 되돌아 간다.)
{{col-end}}

=== 지령 ===
{{col-begin}}
{{col-3}}
* 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
<!--여기서부터는 프로그래밍 N10 ~ Q20을 직접 하셔야 합니다.-->
* N20 Z
* G28 U0. W0. M09
* M05
* T0300
* G97 S2000 M03
* G00 X Z T0303 M08
* G70 P10 Q20 F0.05
{{col-3}}
* 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
{{col-end}}

=== SENTROL 시스템 ===
* 컴퓨터수치제어(CNC) 모델인 '센트롤(SENTROL)3'를 개발했다.<ref>[https://news.naver.com/main/read.nhn?mode=LSD&mid=sec&sid1=101&oid=008&aid=0002285198 큐리어스, CNC컨트롤러 ‘센트롤3’ 출시]</ref>

== CNC밀링머신 ==
[[파일:DeckelMaho-DMU50e-MachiningCenter.jpg|썸네일|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코드 ====
{{col-begin}}
{{col-3}}
* 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 : 나사절삭
{{col-3}}
* 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
{{col-3}}
* 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 복귀
{{col-end}}

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

=== M코드 ===
{{col-begin}}
{{col-3}}
* M00 : 프로그램 정지 (실행중인 프로그램을 일시정지)
* M01 : 선택 프로그램 정지 (조작판의 M01 스위치가 ON인 경우)
* M02 : 프로그램 끝
* M03 : 주축 정회전 (CW)
* M04 : 주축 역회전 (CCW)
* M05 : 주축 정지
{{col-3}}
* M06 : 공구 교환
* M08 : 절삭유 ON
* M09 : 절삭유 OFF
* M10 : Table Clamp
* M11 : Table Unclamp
* M19 : 주축 Orientation
* M30 : Program End & Rewind (프로그램 선두에서 정지하는 경우와 재실행을 파라메타로 결정)
{{col-3}}
* M48 : Override 100% Clamp
* M49 : Override 100% Unclamp
* M98 : Sub Program 호출
* M99 : Sub Program End (Main Rrogram으로 복귀)
{{col-end}}

=== 지령 ===
{{col-begin}}
{{col-3}}
* O
* G00 G90 X Y;
* Z ;
* Z ;
* G01 Z F ;
* G01 G91 X Y ;
* G01 G91 X ;
* G01 G91 Y ;
* G01 G91 X Y ;
{{col-3}}
* 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 ;
{{col-3}}
* 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 ;
{{col-end}}

== 참고 문헌 ==
<references/>
* 《기초에서 현장응용까지 CNC 선반》 장진석 지음 (1992년 초판)
* 《고등학교 기계공작법》한국직업능력개발원 편찬, 교육과학기술부 저자
* {{서적 인용
     |저자= 배종외
     |제목= CNC 선반 프로그램과 가공

     |쪽= 389
     |출판사= 성안당
     |날짜= 2010-07-14
     |ISBN=978-89-315-0400-2(교보문고)
}}

== 같이 보기 ==
{{위키공용분류}}
* [[컴퓨터 지원 설계]] (CAD)
* [[컴퓨터 이용 공학]] (CAE)
* [[컴퓨터 지원 제조]] (CAM)

{{전거 통제}}

[[분류:컴퓨터 이용 공학]]