CNC 프로그램 구성 '엔씨 프로그래밍의 기초' 13.
A.CNC 프로그램의 정의 CN C 프로그램이란 주어진 도면의 제품을 가공하기 위해 가공 공정을 CNC 장치가 이해할 수 있는 표현 형식으로 바꾸는 작업이다.CNC 프로그램은 부품의 일부분을 가공하는 프로그램의 조합에 의해 완제품을 하는 경우가 대부분이므로, 일명 파트 프로그램이라고 한다.가공을 할 때에는 기계에 의해 공작물이 고정되어 있고 공구가 이동하는 방법과 공구가 고정되어 있으며 공작물을 고정한 테이블이 이동하는 방법이 있는데 CNC프로그램을 작성할 때에는 항상 공작물이 고정되어 있고 공구가 공작물 주위를 움직인다고 가정하여 프로그래밍한다.
나 NC 프로그램의 방법 NC 프로그램은 수동 혹은 자동으로 생성된다.수동 프로그래밍은 간단한 부품의 경우, 도면을 보고프로그래머가 직접 손으로 작성하는 것을 말한다, 자동 프로그래밍은 형상이 복잡하게 되면 공구 위치의 산출 및 프로그래밍에 많은 시간이 소요되므로 컴퓨터와 CAM소프트웨어를 사용해서 작성하는 프로그래밍 방식을 말한다. 프로그램을 작성하기 위해 다음과 같은 가공계획을 세워야 한다.①가공할 범위와 사용할 기계의 선정: 도면을 분석하여 그 부품을 가공하기에 적합한 기계를 선정함.② 가공물의 고정 방법 및 필요한 치공구의 선정 ③ 가공 순서의 결정: 공정의 분할 및 공구의 출발점, 공구의 경로 등을 결정한다.④ 공구 선정 : 공구 홀더와 인서트 팁종류 및 공구 고정 방법 선정함.⑤ 절삭조건 결정 : 절삭속도 또는 주축의 회전수와 이송속도, 절삭량, 절삭유의 사용여부 등을 결정한다.⑥프로그램 방법 결정:간단한 형상의 도면은 수동 프로그래밍을 이용하고 복잡한 형상의 도면은 자동 프로그래밍을 이용한다.
NC 프로그램의 구성 CNC 프로그램은 주소(address)와 수치(data)의 조합으로 구성된 단어들이 조합되어 블록을 구성하며, 이 블록의 조합으로 프로그램이 구성되어 있다.NC 프로그램은 주 프로그램과 보조 프로그램으로 나뉘어 블록 단위로 실행된다.프로그램은 일반적으로 주프로그램에 따라서 실행되지만, 주프로그램으로부터 보조 프로그램을 호출하는 명령(M98)이 있으면 보조 프로그램에 따라서 실행되고, 보조 프로그램 종료(M99) 명령이 있으면 주프로그램으로 복귀해 작업을 실시한다.
(1) 주소는, 영자 대문자(A~Z) 중의 하나에 표시되며, 각 주소의 기능은 다음 표대로이다.
주소의 기능 (2) 수치(data) 수치는, 주소의 기능에 의해 2 자리수, 4 자리수의 수치를 이용하고 있지만, 최근에는 확장 경향에 있다.수치 값의 첫 번째에 나오는 0과 소수점 다음 끝에 나오는 0은 생략할 수 있다.예) G00, G01……2자리 숫자(수치 값의 첫 번째에 나오는 0은 생략 가능: G0, G1) T0111…… 네 자리 좌표 값을 나타내는 주소에 사용되는 수치는 최소 명령 단위에 따라 O, 001mm까지 표시될 수 있는 예) X10.015 Z100.005…………(차수치 3자리 X100000=X100. 단, 파라미터 설정에 따라 소수점 없이 사용할 수도 있다.이 이외의 주소와 사용되는 수치는 소수점을 사용하면 에러가 발생한다.예)X100. =100mm,X10.05mm=10.05mmX100 =0.1mm,X1005 =1.005mm(최소 명령단위가 0.001mm이므로 소수점이 없으면 11000mm로 간주.) S2000. ……알람 발생(소수점 입력 오류)(3) 단어(word)는 NC 프로그램의 기본 단위이며 주소와 수치로 구성된다. 주소는 알파벳(AZ) 중 하나를 사용하며 주소 다음으로 수치를 사용한다.
(4) 블록(block) 몇 개의 단어가 모여서 구성된 하나의 명령단위를 블록이라 하며, 각각의 블록은 블록단(EOB:end of block)으로 구분하고, 제작사에 따라 ";" 또는 "#"과 같은 부호로 표시한다.한 블록에 사용되는 단어의 수에는 제한이 없다. 최근 컴퓨터로 프로그래밍할 경우에는 엔터키를 치면 EOB로 인식되므로 부호는 생략해도 무방하다.기계는 블록 순으로 움직이므로 프로그램을 작성할 때는 가공절차에 따라 블록을 구성하여야 한다.일반적인 블록의 구성은 다음과 같다.블록 구성(5) CNC 프로그램의 주요 주소 기능(가) 프로그램 번호(O) CNC 기계의 제어장치는 복수의 프로그램을 CNC 메모리에 저장할 수 있다.이와 같이 저장된 프로그램을 구별하기 위해서, 다른 프로그램 번호를 붙인다.프로그램 번호는, 주소"O"의 다음에 4 자리수의 숫자(0001~9999)를 사용한다.(나) 블록 전개 번호(N) 블록 순서를 지정함으로써, 주소 "N" 다음에 네 자리수(1~9999)로 번호를 표시한다.전개 번호는 점차 증가하는 수치를 사용하고 있는데, N01, N02, N03, … 순으로 하는 것보다 N10, N20, N30, …와 같이 일정한 간격을 두고 번호를 매기면 프로그램을 생성하여 필요에 따라 또 다른 블록을 삽입할 수 있어 좋다.전개번호는 블록 탐색 시에 주로 이용되지만 생략할 수도 있지만 복합 반복 사이클(G70~G76)을 사용할 때는 반드시 사용해야 한다.예 ) N10 G50 X150 . 0 Z200 . 0 S1500 T0100 ; N20 G96 S120 M03 ; N30 G00 X62 . 0 Z0 . 0 T0101 M08 ; N40 G01 X-1 . 0 F0 . 1(다) 준비기능(G) 준비기능은 제어장치의 기능을 동작하기 위한 준비를 하는 기능으로 주소 "G"와 2자리 숫자로 구성되어 있다. 다음 표와 같이 두 가지로 나눌 수 있다. G 코드의 종류와 기능 및 명령 방법은 KSB4206 로 규정되어 있다.
준비 기능의 구분 예) G01 X50.0 F0.2; Z50.0; G01 유효 (G01 은 연속 유효한 G 코드) X60.0 Z30.0; G01 유효 G00 Z50.0; G04 P1000; G04 는 이 블록에서만 유효함 (G04) 의 유효함.(라) 주축기능 (S) 주축의 회전속도를 명령하는 기능으로서 어드레스 "S"를 사용하여 G96 (절삭속도일정제어) 또는 G97 (주축회전수일정제어)와 함께 명령하여야 한다.효율적인 절삭이 이루어지기 위해서는 절삭속도를 일정하게 유지해야 한다.절삭속도는 가공물 또는 공구의 지름에 영향을 받으므로 프로그램 내에서 가공물이나 공구의 직경을 알 수 있는 조건인 경우에는 절삭속도일정제어(G96)를 사용하는 것이 바람직하다.예를 들어 CNC선반에서 명령되는 X치는 가공물의 직경정보를 CNC 장치에 제공할 수 있기 때문에 G96을 명령할 수 있지만 머시닝 센터는 사용공구의 직경정보를 제공할 수 없기 때문에 프로그래머가 사용공구에 적합한 절삭속도를 얻을 수 있는 주축회전수를 계산해서 G97에 명령해야 한다.일반적으로 전원을 공급할 때 CNC 선반과 머시닝 센터는 안전을 위해 G97가 설정되도록 파라미터로 지정해 사용한다.
주축 G 코드 예) G96S100M0 3; 주축속도 100mmin으로 시계방향회전 G97S1000M03; 주축회전수 1,000rpm으로 시계방향회전(마) 이송기능(F) 이송속도를 명령하는 기능으로 주소 "F"를 사용하여 준비기능의 회전당 이송(mmrev) 또는 분당 이송(mmmin) 명령과 함께 사용하여야 한다.일반적으로 전원을 공급할 때 CNC 선반에서는 회전당 이송을, 머시닝 센터에서는 매분 이송을 초기설정하여 사용한다. CNC선반과 머시닝 센터에서 사용하는 회전당 이송과 분당 이송의 구분 코드를 아래 표와 같다.
매분이송과 회전당이송의 구분(바)공구기능(T)공구를 선택하는 기능으로 주소 "T"와 두자리 숫자를 사용한다. 선반계와 밀링가공계에서의 사용방법에는 다소의 차이가 있다.CNC선반에서는 공구의 선택 및 공구보정번호를 선택하는 기능을 가지고 머시닝 센터에서는 공구를 선택하는 기능을 가지며 M06(공구교환)을 함께 명령해야 한다.M06 명령 없이 T 명령어를 행하면 에러가 발생한다.CNC선반과 머시닝센터에서 사용되는 공구기능의 예는 다음과 같다.●CNC 선반의 경우● 머시닝 센터의 경우(사) 보조기능(M) 보조기능은 스핀들 전동기를 비롯한 기계의 각종 기능 수행에 필요한 보조장치(각종스위치)의 ONOFF 를 하는 기능으로 주소 "M"과 두자리 숫자(00~99)를 사용한다.보조기능은 기존에는 1블록에 1블록에 1블록 이상 사용하면 나중에 명령한 블록만이 유효했다.그러나 최근의 제어장치에는 한 블록에 복수의 M 코드 사용이 가능하게 되어 있다.








