핵심 CNC 개념 #1: 컴퓨터 수치 제어(CNC) 기초 마스터하기
이 글은 컴퓨터 수치 제어의 핵심 개념 10부작 시리즈의 첫 번째 기사입니다. 이 시리즈의 접근법에 대한 소개는 이 기사를 읽어보세요.
컴퓨터 수치 제어의 이점
모든 형태의 CNC 공작기계가 제공하는 첫 번째 이점은 자동화 향상입니다. 공작물 생산 관련 오퍼레이터 개입을 줄이거나 없앨 수 있습니다. 많은 CNC 기계가 전체 가공 사이클 동안 무인 운전 가능해 오퍼레이터가 다른 작업을 할 수 있습니다. 이로 인해 오퍼레이터 피로 감소, 인적 오류로 인한 실수 감소, 공작물당 일관되고 예측 가능한 가공 시간 등 부수적 이점이 생깁니다. 기계가 프로그램 제어하에 작동하므로, CNC 오퍼레이터에게 요구되는 숙련도(기초 가공 관행 관련)는 재래식 공작기계로 공작물을 만드는 머시니스트에 비해 낮아집니다.
CNC 기술의 두 번째 주요 이점은 일관되고 정확한 공작물입니다. 최신 CNC 기계는 거의 믿기 힘든 정밀도와 반복정밀도 사양을 자랑합니다. 즉, 프로그램이 검증되면 2개, 10개, 1000개의 동일한 공작물을 정밀하고 일관되게 쉽게 생산할 수 있습니다.
대부분의 CNC 공작기계가 제공하는 세 번째 이점은 유연성입니다. 이 기계들은 프로그램으로 구동되므로, 다른 공작물 실행은 다른 프로그램을 로드하는 것만큼 쉽습니다. 한 생산 런에서 프로그램이 검증되고 실행되면, 다음에 그 공작물을 실행할 때 프로그램을 쉽게 호출할 수 있습니다. 이는 빠른 체인지오버라는 또 다른 이점으로 이어집니다.
이 기계들은 셋업과 실행이 매우 쉽고 프로그램을 쉽게 로드할 수 있어 매우 짧은 셋업 타임을 가능케 합니다. 이는 오늘날의 적시 생산(JIT) 요구사항에 필수적입니다.
모션 제어 - CNC의 심장
모든 CNC 기계의 가장 기본 기능은 자동, 정밀, 일관된 모션 제어입니다. 모든 CNC 장비는 2개 이상의 운동 방향(축)을 가집니다. 이 축들은 이동 길이 따라 정밀하고 자동으로 위치결정될 수 있습니다. 가장 일반적인 축 타입은 직선(직선 경로 구동)과 회전(원형 경로 구동)입니다.
재래식 공작기계에서처럼 핸들 크랭크와 핸드휠을 수동으로 돌려 움직임을 일으키는 대신, CNC 기계는 서보모터가 CNC 제어하에 작동하고 파트 프로그램의 가이드를 받아 움직임을 작동시킵니다. 일반적으로 모션 타입(급이송, 직선, 원호), 이동할 축, 이동량, 모션 속도(이송 속도)는 거의 모든 CNC 공작기계에서 프로그래밍 가능합니다.
컨트롤 내부에서 실행되는 CNC 명령(일반적으로 프로그램을 통해)은 드라이브 모터에 정확한 회전 수를 명령합니다. 드라이브 모터 회전이 볼스크류를 회전시키고, 볼스크류가 직선 축을 구동합니다. 볼스크류 반대편 끝의 피드백 장치가 컨트롤로 하여금 명령된 회전 수가 일어났는지 확인하게 합니다.
다소 조잡한 비유지만, 일반적인 테이블 바이스의 기본 직선 운동과 같습니다. 바이스 크랭크를 돌리면 리드스크류가 회전하고, 이것이 바이스의 가동 조를 구동합니다. 비교하자면, CNC 공작기계의 직선 축은 극도로 정밀합니다. 축 드라이브 모터의 회전 수가 축을 따른 직선 운동량을 정밀하게 제어합니다.
축 운동 명령 방식 - 좌표계 이해
CNC 사용자가 각 축 드라이브 모터에 몇 번 회전하라고 명령해 선형 운동량을 지정하는 것은 비현실적입니다. (테이블 바이스의 핸들을 몇 번 돌려야 가동 조가 정확히 1인치 움직이는지 계산해야 하는 것과 같습니다!) 대신 모든 CNC 컨트롤은 어떤 형태의 좌표계를 이용해 훨씬 더 단순하고 논리적인 방식으로 축 운동을 명령할 수 있게 합니다. CNC 기계에 사용되는 두 가지 가장 인기 있는 시스템은 직교(데카르트) 좌표계와 극좌표계입니다. 단연 직교 좌표계가 가장 흔합니다.
직교 좌표계의 매우 일반적인 응용은 그래프 그리기입니다.
이제 그래프에 대해 아는 것을 CNC 축 운동과 연결해 봅시다. 개념적 아이디어를 나타내는 이론적 점을 플로팅하는 대신, CNC 프로그래머는 축 운동의 물리적 엔드포인트를 플로팅합니다. 축들은 증분으로 나뉩니다. 하지만 시간과 생산성 같은 개념적 아이디어 증분이 아니라, CNC 기계 직교 좌표계의 각 직선 축은 측정 단위 증분으로 나뉩니다. 인치 모드에서 최소 증분은 0.0001인치일 수 있습니다. 메트릭 모드에서 최소 증분은 0.001밀리미터일 수 있습니다. (참고로 회전 축의 증분은 0.001도입니다.)
CNC 기계 좌표계의 각 축은 어딘가에서 시작해야 합니다. CNC 목적상 이 원점을 흔히 프로그램 원점(program zero)이라 부릅니다(작업 원점, 부품 원점, 프로그램 원점이라고도 함). 일반적으로 프로그램 원점은 모든 치수가 시작되는 점으로 선택됩니다.
이 기법으로, 프로그래머가 공구를 프로그램 원점에서 오른쪽으로 1인치 위치로 보내고 싶다면 X1.0을 명령합니다. 프로그램 원점 위 1인치 위치로 이동시키고 싶다면 Y1.0을 명령합니다. 컨트롤은 각 축 드라이브 모터와 볼스크류를 몇 번 회전시켜 축이 명령된 목표점에 도달하게 할지 자동으로 결정합니다. 이로써 프로그래머가 매우 논리적인 방식으로 축 운동을 명령할 수 있습니다.
지금까지 예시에서는 모든 점이 프로그램 원점의 위쪽과 오른쪽에 있었습니다. 프로그램 원점의 위쪽과 오른쪽 영역을 사분면(이 경우 1사분면)이라고 합니다. CNC 기계에서 프로그램 내 필요한 엔드포인트가 다른 사분면에 위치하는 것은 흔한 일입니다. 이때는 최소 한 좌표가 마이너스로 지정되어야 합니다. 그림 1은 엔드포인트가 네 사분면 모두에 걸쳐 있어 음수 좌표가 지정되어야 하는 일반적인 적용 사례를 보여줍니다.
절대 모드 vs 증분 모드
지금까지 논의는 절대 프로그래밍 모드 사용을 가정합니다. 절대 모드에서는 모든 운동의 엔드포인트가 프로그램 원점에서 지정됩니다. 초보자에게는 보통 이게 가장 쉽고 좋은 운동 명령 엔드포인트 지정 방법입니다. 하지만 축 운동 엔드포인트를 지정하는 또 다른 방법이 있습니다.
증분 모드에서는 운동 엔드포인트가 프로그램 원점이 아닌 공구의 현재 위치에서 지정됩니다. 이 운동 명령 방식으로 프로그래머는 항상 "공구를 얼마나 이동시켜야 하나?"를 물어야 합니다. 증분 모드가 도움 되는 때도 있지만, 일반적으로 더 번거롭고 어려운 방법입니다.
운동 명령 시 주의하세요. 초보자들은 증분적으로 생각하려는 경향이 있습니다. 절대 모드에서 작업 중이라면(초보자는 그래야 함), 프로그래머는 항상 "공구를 어느 위치로 이동시켜야 하나?"를 물어야 합니다. 이 위치는 공구의 현재 위치가 아닌 프로그램 원점 기준입니다. 그림 2는 동일한 두 운동 시퀀스를 증분 모드와 절대 모드로 보여줍니다.
어떤 명령에서든 현재 위치를 쉽게 알 수 있다는 것 외에도, 절대 모드로 작업할 때의 또 다른 이점은 운동 명령 중 실수와 관련됩니다. 절대 모드에서 프로그램의 한 명령에 운동 실수가 있으면 오직 한 번의 이동만 틀립니다. 반면 증분 이동 중 실수가 있으면 실수 시점부터 이후 모든 이동도 틀리게 됩니다.
프로그램 원점 할당
CNC 컨트롤은 어떤 수단을 통해서든 프로그램 원점 위치를 알려줘야 합니다. 어떻게 하는지는 CNC 기계와 컨트롤마다 크게 다릅니다. 오래된 방법은 프로그램에서 프로그램 원점을 할당하는 것입니다. 이 방법으로 프로그래머는 컨트롤에 프로그램 원점에서 기계 시작 위치까지 거리를 알려줍니다. 이는 일반적으로 프로그램 시작 부분과 각 공구 시작 부분에서 G92(또는 G50) 명령으로 수행됩니다.
일반적으로 더 나은 방법은 오프셋을 통해 프로그램 원점을 할당하는 것입니다. 머시닝 센터 컨트롤 제조사들은 프로그램 원점 할당에 사용되는 오프셋을 고정구 오프셋(fixture offsets)이라 부릅니다. 터닝 센터 제조사들은 각 공구의 프로그램 원점 할당에 사용되는 오프셋을 지오메트리 오프셋(geometry offsets)이라 부릅니다. 프로그램 원점 할당 방법은 핵심 개념 4번에서 더 자세히 다룹니다.
축 운동에 대한 기타 사항
지금까지 주요 관심사는 각 운동 명령의 엔드포인트 결정 방법이었습니다. 보셨듯 이는 직교 좌표계 이해가 필요합니다. 그러나 운동이 어떻게 일어날지에 대한 다른 관심사도 있습니다. 예를 들어 운동 타입(급이송, 직선, 원호 등)과 이송 속도(피드레이트)도 프로그래머의 관심사입니다. 이는 핵심 개념 3번에서 논의하겠습니다.
CNC 프로그램
거의 모든 최신 CNC 컨트롤은 프로그래밍에 워드 어드레스 형식을 사용합니다. (예외는 특정 대화형 컨트롤뿐입니다.) 워드 어드레스 형식이라 함은 CNC 프로그램이 문장 같은 명령들로 구성됨을 의미합니다. 각 명령은 CNC 워드들로 구성되며, 각 워드는 문자 주소와 숫자 값을 가집니다. 문자 주소(X, Y, Z 등)는 컨트롤에 워드 종류를, 숫자 값은 워드 값을 알려줍니다. 영어에서 단어와 문장처럼 쓰이며, CNC 명령의 워드들은 현재 우리가 CNC 기계에 원하는 작업을 알려줍니다.
각 워드는 문자 주소와 숫자 값을 가집니다. 문자 주소는 컨트롤에 워드 타입을 알려줍니다. CNC 컨트롤 제조사마다 워드 이름(문자 주소)과 의미 결정 방식이 다릅니다. 초보 CNC 프로그래머는 컨트롤 제조사의 프로그래밍 매뉴얼을 참조해 워드 이름과 의미를 확인해야 합니다. 여기 몇 가지 워드 타입과 일반적인 문자 주소 사양을 간략히 나열합니다.
보시다시피 많은 문자 주소가 논리적으로 선택됩니다(T는 공구, S는 주축, F는 이송 속도 등). 일부는 암기가 필요합니다.
특수 기능을 지정하는 두 문자 주소(G와 M)가 있습니다. 준비 기능(G)은 모드 설정에 흔히 사용됩니다. 절대 모드(G90)와 증분 모드(G91)를 이미 소개했습니다. 이들은 준비 기능 중 단 두 가지일 뿐입니다. 본인 기계의 기능 목록은 컨트롤 제조사 매뉴얼을 참조하세요.
준비 기능처럼 M워드(기타 기능)도 다양한 특수 기능을 허용합니다. 기타 기능은 일반적으로 프로그래밍 가능한 스위치(주축 온/오프, 쿨런트 온/오프 등)로 사용됩니다. 또한 CNC 공작기계의 많은 다른 프로그래밍 가능 기능을 허용하는 데도 사용됩니다.
초보자에게는 CNC 프로그래밍이 많은 암기를 요구하는 것처럼 보일 수 있습니다. 하지만 안심하세요. CNC 프로그래밍에 사용되는 워드는 약 30~40가지뿐입니다. CNC 수동 프로그래밍 학습을 단 40개 단어만 있는 외국어 배우기라고 생각하면 그리 어렵지 않을 것입니다.
소수점 프로그래밍
특정 문자 주소(CNC 워드)는 실수(온전한 숫자의 일부가 필요한 숫자) 지정을 허용합니다. 예: X축 지정자(X), Y축 지정자(Y), 반지름 지정자(R). 거의 모든 최신 모델 CNC 컨트롤은 각 문자 주소 지정 시 소수점 사용을 허용합니다. 예: X3.0625로 X축 위치를 지정할 수 있습니다.
반면 일부 문자 주소는 정수 지정에 사용됩니다. 예: 주축 속도 지정자(S), 공구 스테이션 지정자(T), 시퀀스 번호(N), 준비 기능(G), 기타 기능(M). 이들 워드 타입에는 대부분의 컨트롤이 소수점 사용을 허용하지 않습니다. 초보 프로그래머는 CNC 컨트롤 제조사 프로그래밍 매뉴얼을 참조해 어떤 워드가 소수점 사용을 허용하는지 확인해야 합니다.
기타 프로그래밍 가능 기능
가장 단순한 CNC 기계를 제외하고 모든 CNC 기계는 축 운동 외에 프로그래밍 가능 기능을 가집니다. 오늘날 완전한 CNC 장비에서는 기계의 거의 모든 것이 프로그래밍 가능합니다. 예를 들어 CNC 머시닝 센터는 주축 속도와 방향, 쿨런트, 공구 교환 등을 프로그래밍할 수 있습니다. 마찬가지로 CNC 터닝 센터는 주축 속도와 방향, 쿨런트, 터렛 인덱스, 테일스톡을 프로그래밍할 수 있습니다. 모든 형태의 CNC 장비는 고유한 프로그래밍 가능 기능 세트를 가집니다. 또한 프로빙 시스템, 공구 길이 측정 시스템, 팔레트 체인저, 어댑티브 컨트롤 시스템 같은 특정 액세서리도 사용 가능하며 프로그래밍 고려사항이 필요합니다.
프로그래밍 가능 기능 목록은 기계마다 크게 다르며, 사용자는 사용할 각 CNC 기계의 이러한 기능을 배워야 합니다. 핵심 개념 2번에서 다양한 형태의 CNC 공작기계에서 일반적으로 프로그래밍 가능한 것을 자세히 살펴보겠습니다.
컴퓨터 수치 제어 핵심 개념 더 알아보기:
핵심 CNC 개념 #2 - 기계 알기
핵심 CNC 개념 #3 - CNC 모션 타입 이해
핵심 CNC 개념 #4 - 보상 형태
핵심 CNC 개념 #5 - 프로그램 포맷팅의 중요성
핵심 CNC 개념 #6 - CNC 프로그래밍 방법
핵심 CNC 개념 #7 - 오퍼레이터 관점에서 기계 알기
핵심 CNC 개념 #8 - 기계 작동 모드
핵심 CNC 개념 #9 - 핵심 작동 시퀀스
핵심 CNC 개념 #10 - CNC 프로그램 안전 검증