본문 바로가기
카테고리 없음

NC프로그래밍 정의 기초 구성

by 범열 2023. 7. 6.

4.1 NC프로그래밍

 



4.1.1 NC프로그래밍이란?
NC Programming이란 사람이 이해하기 쉽도록 되어 있는 도면을 NC장치가 이해할 수 있도록 NC언어를 이용하여 표현방식을 바꾸어 주는 작업을말한다.
범용 공작기계는 기계의 조작을 사람이 하기 때문에 기계만 있으면 충분히 그 기능을 발휘할 수 있으나, NC공작기계는 자동적으로 조작되기 때문에 도면의 형상치수, 가공기호 등의 정보를 NC공작기계가 알아들을 수 있는 NC프로그램을 작성한 후 이 프로그램의 정보를 NC공작기계에 입력시키는데 입력방법은 다음과 같다.

(1) NC테이프에 천공한 후 입력시키는 방법 (90년대 부터는 사용 안함)

(2) NC공작기계의 컨트롤러에 키보드 (Key board)를 이용하여 직접 입력시키는 MDI(Manual data input) 방법

(3) DNC나 LAN을 사용하여 Data의 직접전송

이와 같이 NC공작기계가 알아들을 수 있는 새로운 언어를 NC프로그램이라 부르고, NC공작기계의 생산성은 이와 같은 작업을 수행하는 NC프로그래머(NC programmer)의 능력에 따라 매우 큰 영향을 받게 되므로 프로그래머의 책임과 역할이 매우 중요시되고 있다.

4.1.2 NC프로그래밍의 정의

4.1.2 NC프로그래밍의 정의

부품의 도면에서 가공에 이르기까지는 과정이 수행되어야 하며 각각의 설명은 다음과 같다.
현재 일반적으로 사용하는 방법은 MDI(Manual data input), 디스켓 및 LAN 등을 이용하고 있다. NC Tape에 의한 방법은 요즘은 사용하지 않는다.

 

1. 부품도면
설계된 도면을 NC가공하기 위하여 현장에서 넘어온 설계도를 말한다.


2. 공정계획
부품도면이 주어지면 NC가공을 하기 위하여 다음과 같은 공정계획을 세운다.
(1) NC기계로 가공하는 범위와 사용할 NC공작기계의 선정
(2) 소재의 고정방법 및 필요한 지그의 선정
(3) 공정순서(공정의 분할, 공구 출발점, 황삭과 정식의 절입량과 공구경
로 등)
(4) 절삭공구, Tool holder의 선정 및 클램핑 방법의 결정
(5) 절삭조건의 결정(주축 회전속도, 이송속도, 절삭유의 사용유무 등)


3. NC프로그래밍
범용공작기계와 NC공작기계의 차이점에서와 같이 가공에 있어서 범용공작기계는 작업자가 직접 작동하지만, NC공작기계는 대부분이자동으로 작동되며, 그 작동지령은 어떤 특정한 언어 (NC언어)를 사용하여 NC테이프, 플로피 디스크 등에 저장되는데 이러 작업을 NC프로그래밍한 (NC programming)이라 한다.

NC프로그래밍에는 그림 4. 4와 같이 수동 프로그래밍 (Manual programm-ing)과 자동 프로그밍 (Automatic programming)의 두 가지 방법이 있다.

 

(1) 수동 Programming(NC Code를 사용)
공구 위치, 부품도면의 좌표 등을 사람이 일일이 계산하여 프로그래밍하는 방법으로써 작업이 비교적 단순한 가공도면이나 다양한 고정사이클이 개발된 CNC선반이나 매크로(Macro) 기능을 이용한 머시닝센터의 경우에는 사용이 가능하지만 복잡한 작업에는 계산이 복잡하여 사용에 불편이 있다.


(2) 자동 Programming(외부 Computer를 이용한 Programming)공구 위치,부품도면의 좌표 등을 수동 프로그래밍의 단점을 보완하기 위해 컴퓨터를 이용하여 프로그래밍하는 방법으로 CAM 소프트웨어의 발달로인하여 점차로 증가하고 있으며, 자동프로그래밍에는 다음과 같은 이점이 있다.
① NC프로그램 작성까지의 노력과 시간을 단축할 수 있다.
② 신뢰성이 높은 NC프로그램을 작성할 수 있다.
③ 인간의 능력으로는 불가능한 복잡한 계산을 요하는 형상에 대한 프로그램도 쉽게 작성할 수 있다.
④ 프로그램 검증이 용이하고 프로그램 작성과 연관된 여러 가지 계산을병행할 수 있으며 프로그램 오류를 줄일 수 있다.


4. 수동 및 자동 프로그래밍의 비교
다음 그림은 NC프로그램을 작성하는 수동 및 자동 프로그래밍의 차이점을 NC테이프 작성시간을 기준으로 가공형상의 잡성 및 프로그램의 블록의 수에 따른 비교를 나타낸 것이다. 기하학적인 형상이 복잡해질수록 계산량이 증가하게 되어 NC프로그램을 작성하는 데 걸리는 시간이 많이 걸리며, 자동 프로그래밍은 컴퓨터를 이용하므로 계산량이 증가해도 큰 무리가 없지만 수동 프로그래밍의 경우에는 계산량이 급격히 증가하여 불가능한 지점에 이르게 된다. 그러나 형상이 간단한 경우에는 오히려 자동 프로그래밍은 이중적 수단을 쓰게 되므로 비효율적일 수도 있다.

 

 

4. 1.3 NC프로그래밍의 기초


1. 오른손 직교좌표
프로그래머가 가공물에 대한 공구의 위치와 이동방향을 결정할 수 있도록NC공작기계의 좌표축과 운동의 기호에 대하여 KS B 0126으로 설정되어있다. 오른손 직교좌표는 공작기계의 표준좌표로써 공작물에 대하여 공구가 움직이는 것을 기본으로 한다. 오른손(표준 좌표계는 그림과 같이 오른손의 각 손가락이 지시하는 방향을 +X, +Y, +Z로 정하고 오른 나사가 행하는 방향을 플러스(+) 방향으로 설정하고 X축의 주위를 회전하는 A축, Y축의 주위를 회전하는 B축 Z축의 주위를 회전하는 축을 결정한다. 일반적으로 공작기계에서는 주축의 방향을 Z축으로 정하고 이것을 기준으로 하여 X, Y축을 정하는 것이 일반적이다.


2. NC공작기계의 좌표축
공구가 공작물에 접근하는 것인지 또는 공작물이 공구에 접근하는 것인지를 모르더라도 프로그래밍하는 사람은 공작물에 대하여 공구가 운동하는 것으로 프로그래밍 할 수 있도록 되어 있다. 머시닝센터에서 주축은 수직방향으로 고정되어 있고 머신 테이블은 주축에 대하여 상·하로 움직여서 위치가 조절되는데,  X.Y 2축이 테이블상에 정의되고 이면에 수직인 Z축이 주축의 수직 이동 좌표계가 된다. 또한, NC선반의 경우, 회전하는 가공물체에 대해 공구를 움직이
는 데 필요한 2개의 축이 있는데 X축은 공구의 이동 축이고, Z축은 가공물의 회전축으로  표시되어 있다.

좌표계의 목적은 가공품에 대한 공구의 위치를 선정하는 것으로, NC프로그램을 작성할 때 좌표값을 취하는 방식에는 절대(Absolute)좌표 방식과 증분(Incremental)좌표 방식의 두 가지가 있다. 절대좌표 방식은 운동의 목표를 나타낼 때 공구의 위치와는 관계없이 프로그램의 원점을 기준으로 하여 이동할 위치에 대한 좌표값을 절대량으로 나타내는 방식이고, 중분좌표 방식은 공구의 바로 현 위치를 기준으로 하여 다음 목표 위치까지의 이동량을 증분량으로 표현하는 방식이다.


3. NC테이프
NC공작기계에 사용하는 NC테이프는 폭의 흑색 종이 테이프에 프로그램을 천공한 것으로 머시닝센터의 테이프 운전 또는 CNC장치로의 프로그램 등록 등에 이용된다. 그러나 최근에는 CNC장치의 메모리 용량이 확장되고 PC를 통한 NC프로그램을 관리하고 전송하는 기술의 발달로 인하여 NC테이프는 거의 사용되지 않는 실정이다.
다음은 테이프가 어떻게 구성되어 있는가에 대해서 설명한다. EIA RS-227로 정해진 NC테이프의 형상 · 치수를 나타낸 것이고, 캐릭터(Character)는 8개의 구멍이 천공될 수 있게 되어 있는데 이 열을 채널(또는 트랙)이라고 한다.

NC테이프에서는 캐릭터상의 8채널에 천공된 구멍을 조합시킴으로써 여러 가지 캐릭터를 표현한다. 그래서 이 구멍의 조합방법을 테이프 코드라하고, 테이프 코드에는 EIA(Electronic Industries Association) 코드 및 ISO(International Organization of Standardization) 코드가 있다. 프로그램을 구성하고 있는 캐릭터를 NC테이프에 천공하는 경우에 천공해야 한다. 또 EIA 코드는 제 5채널이 패리티 체크(기우검사)용 구멍으로 라인상의 구멍수의 홀수 검사를 한다. 또 ISO코드는 제 8채널이 패리티 채널용 구멍으로 라인에서 구멍의 짝수검사를 한다.

 

 

4.2 NC프로그램의 구성

 


1. 어드레스(Address)
어드레스(Address)는 영문자 대문자(A~Z) 중 1개로 표시된다.

 

2. 워드(Word)
블록을 구성하는 가장 작은 단위가 워드(Word)이며, 워드는 어드레스와수치의 조합으로 구성된다. 또한, 워드는 제각기 다른 어드레스의 기능에 따라 그 역할이 결정된다.

 

3. 블록(Block)
프로그램은 여러 개의 지령으로 구성되는데 한 개의 지령 단위를 블록(Block)이라 하고, 각각의 블록은 기계가 한 번의 동작을 하는데 필요한 정보가 담겨져 전체 프로그램을 구성한다. 이러한 블록은 EOB, CR, NL, LF등에 의해 나누어지는데 일반적으로는 하나의 블록은 EOB(End of block)로 구별되고 ";"으로 간단하게 표시된다. 또한, 한 블록에서 사용되는 최대
문자수는 제한이 없으며, 그림 4. 9는 블록의 구성을 나타낸 것이다.

 

4. 프로그램(Program)
NC프로그램은 다음 그림 4. 10에서 보는 것처럼 여러 개의 블록이 모여서 하나의 프로그램을 구성하며, 일반적으로 주프로그램(Main program)과 보조프로그램(Sub program)으로 나눌 수 있다. 보통 NC공작기계는 주프로그램에 의해 실행하지만 주프로그램에서 보조프로그램의 호출 명령이 있으면 그후에는 보조프로그램에 의해 실행되며, 보조프로그램 종료를 지시하면 다시 주프로그램으로 복귀되어 프로그램을 실행한다.


(1) 프로그램번호: NC기계의 제어장치는 여러 개의 프로그램을 NC 메모리(Memory)에 저장할 수 있는데 프로그램과 프로그램을 구별하기 위하여 서로 다른 프로그램 번호를 붙이고, 프로그램 번호는 어드레스인 영문자 "O" 다음에 4자리 숫자, 즉 0001~9999까지 임의로 정할 수 있다.

 

(2) 시퀀스 번호: 블록의 번호를 지정하는 것으로 어드레스 "N"으로 표시하며, N 다음에 4자리 이내의 숫자로 표시한다. 그러나 일반적으로 N10.N20………의 순으로는 하지 않는다. 그 이유는 프로그램을 작성하다가 다른한 블록을 삽입해야 할 경우 N01, N02로 하면 삽입을 할 수 없기 때문에N10, N20………이나 N0010, N0020…………의 순으로 하는 것이 좋다.
그러나 시퀀스 번호(Sequence number)는 NC장치에 영향을 주지 않기때문에 지정하지 않아도 상관없지만 CNC선반의 복합 반복사이클 중 G70~G73 기능을 사용할 때에는 반드시 시퀀스 번호를 사용하여야 한다.

 

예] 

N10 G50 X150.0 Z200.0 S1300 T0100 M02;
N20 G96 S130 M03;
N30 G00 X62.0 Z0.0 T0101 M08 ;
N40 G01 X-1.0 F0.15;
N50 G00 X58.0 Z2.0;