MCT (머시닝 센터) G-Code 및 M-Code 완전 정복 가이드 BEST1

설비 보전 전문가의 시선으로, MCT(머시닝 센터)의 G-Code와 M-Code는 기계가공의 복잡한 움직임을 제어하는 핵심 언어입니다. 이 가이드는 화낙(FANUC) 시스템과 지멘스(SIEMENS) 시스템을 중심으로, 두 시스템의 공통점과 차이점을 상세히 비교하며, 누가 봐도 G-Code와 M-Code를 마스터할 수 있도록 깊이 있는 내용을 다룹니다. 이 글 하나로 여러분은 MCT 장비의 동작 원리를 꿰뚫어 보고, 현장에서 발생하는 다양한 문제에 능동적으로 대처할 수 있는 역량을 갖추게 될 겁니다.

G-Code와 M-Code, 왜 알아야 할까요?

**G-Code (Geometry Code)**는 기계의 이동 경로, 위치, 속도 등 공구의 움직임과 관련된 지오메트리 데이터를 지시하는 코드예요. 즉, “어디로, 어떻게 움직일 것인가?”를 정의하죠. 반면 **M-Code (Machine Function Code)**는 기계의 보조 기능을 제어하는 코드입니다. 예를 들어, 스핀들 회전 시작/정지, 공구 교환, 냉각수 공급 제어 등 가공 과정에서 필요한 부수적인 동작들을 명령합니다.

이 두 가지 코드를 정확히 이해하고 활용하는 건 단순히 기계를 움직이는 걸 넘어, 최적의 가공 효율과 정밀도를 달성하고, 장비의 수명을 연장하며, 비상 상황 시 신속한 진단과 복구를 가능하게 하는 필수적인 능력입니다. 설비 보전의 관점에서는 G-Code와 M-Code가 곧 장비의 ‘언어’이므로, 이 언어를 해독하고 구사할 줄 알아야만 장비의 ‘건강 상태’를 파악하고 ‘치료’할 수 있습니다.

화낙(FANUC) 시스템과 지멘스(SIEMENS) 시스템: 제어 시스템의 양대 산맥

CNC 공작기계 제어 시스템 시장에서 화낙과 지멘스는 독보적인 위치를 차지하고 있습니다. 이 두 시스템은 기본적인 G-Code와 M-Code의 개념과 주요 기능에서 상당한 유사성을 보이지만, 세부적인 프로그래밍 방식, 고급 기능 구현, 그리고 일부 코드의 사용 방식에서 차이를 가집니다. 이러한 차이점을 이해하는 건 다양한 장비를 다루는 설비 보전 전문가에게 매우 중요합니다.

G-Code 상세 분석: 공구의 움직임을 명령하다

G-Code는 공구의 이동 방식을 결정하는 핵심 코드입니다. 여기에는 급속 이송, 직선 보간, 원호 보간과 같은 기본적인 움직임부터 좌표계 설정, 공구 보정, 그리고 복잡한 가공을 위한 고정 사이클까지 포함됩니다.

G-Code기능 (공통)상세 설명 및 설비 보전 관점화낙(FANUC) 특이점지멘스(SIEMENS) 특이점
G00급속 이송 (Rapid Traverse)공구를 설정된 최대 속도로 이동시킵니다. 절삭이 없는 구간(예: 공구 교환 후 다음 가공 위치로 이동)에서 시간을 최소화하여 생산성을 높일 때 사용됩니다. 과도한 급속 이송은 충돌 위험을 높이므로 안전 거리를 확보하는 게 중요합니다.동일동일
G01직선 보간 (Linear Interpolation)지정된 이송 속도(F-Code)로 공구를 직선 경로를 따라 이동시킵니다. 대부분의 절삭 가공에 사용되는 기본 이동 명령입니다. 가공 정밀도와 표면 조도를 결정하는 중요한 코드이므로, 이송 속도와 공구 상태 관리가 중요해요.동일동일
G02/G03원호 보간 (Circular Interpolation)G02는 시계 방향, G03은 반시계 방향으로 공구를 원호 경로를 따라 이동시킵니다. 원형, 곡선 가공에 필수적이며, 원호의 중심 좌표(I, J, K)나 반경(R)을 함께 지정합니다. 이송 속도와 원호의 정밀도 유지가 중요해요.I, J, K 어드레스를 사용하여 원호의 중심 좌표를 지정하는 게 일반적입니다.I, J, K 어드레스와 더불어 CR (반경) 어드레스를 사용하여 원호를 정의할 수 있어 프로그래밍 유연성이 높습니다.
G04정지 시간 (Dwell)프로그램 실행을 지정된 시간 동안 일시적으로 정지시킵니다. 주로 드릴 가공 후 칩 배출을 용이하게 하거나, 가공 면의 표면 조도를 향상시키기 위해 공구가 최종 위치에서 잠시 머무르게 할 때 사용됩니다.P값 (밀리초 단위) 또는 X값 (초 단위)으로 시간을 지정합니다. (예: G04 P1000은 1초 정지)T값 (초 단위)으로 시간을 지정합니다. (예: G04 T1은 1초 정지)
G05고속 가공 모드 (High-Speed Machining)고속 가공 시 경로의 코너에서 발생하는 공구 이탈이나 진동을 최소화하여 정밀도를 향상시키는 특수 제어 모드입니다. 주로 금형 가공이나 미세 가공처럼 높은 표면 품질이 요구되는 경우에 사용돼요.AI Nano CC (Artificial Intelligence Nano Contour Control), Smooth Path Control 등 화낙의 고유한 고속 가공 제어 기술을 활성화하는 G-Code가 존재합니다.지멘스도 유사한 개념의 고속 가공 사이클이나 기능을 제공합니다.
G09정확한 정지 (Exact Stop Check)공구가 현재 블록의 끝점에 도달하면 다음 블록으로 넘어가기 전에 완전히 정지하도록 지시합니다. 날카로운 코너 가공이나 정밀한 위치 결정이 필요할 때 사용돼요. 이걸 사용하지 않으면 코너에서 약간의 곡률이 발생할 수 있습니다.동일동일
G10데이터 설정 (Data Setting)프로그램 내에서 직접 공구 오프셋, 작업물 좌표계 오프셋, 파라미터 값 등을 변경하거나 설정할 수 있게 합니다. 현장에서 수동으로 값을 입력하는 대신 프로그램으로 제어하여 자동화에 유리합니다.P, L, R 등의 어드레스와 함께 사용됩니다. (예: G10 L2 P1 R10.0; 공구 길이 보정 #1에 10.0mm 설정)유사한 방식으로 데이터 설정이 가능합니다.
G15/G16극좌표 지령/취소 (Polar Coordinate Command)G16으로 극좌표 지령을 활성화하고, G15로 취소합니다. 원형 패턴의 홀 가공이나 원통면에 일정한 간격의 패턴을 가공할 때 유용하며, X, Y 대신 반경과 각도 값으로 위치를 지정해요.동일동일
G17/G18/G19평면 선택 (Plane Selection)원호 보간이나 고정 사이클 사용 시 기준이 되는 평면을 선택합니다. G17은 XY 평면, G18은 ZX 평면, G19는 YZ 평면을 의미해요. 공구 경로의 기준면을 명확히 설정하여 오류를 방지합니다.동일동일
G20/G21 (또는 G70/G71)인치/밀리미터 모드 선택 (Inch/Metric Mode)가공 프로그램에서 사용되는 단위계를 설정합니다. G20(G70)은 인치 단위, G21(G71)은 밀리미터 단위입니다. 단위 오류는 심각한 가공 불량이나 충돌을 유발할 수 있으므로 항상 확인해야 해요.G20/G21이 일반적입니다.G70/G71도 함께 사용될 수 있습니다.
G28원점 복귀 (Return to Reference Point)기계의 기준 원점(Machine Home Position)으로 공구를 급속 이송시킵니다. 공구 교환이나 가공 시작 전 안전한 위치로 이동할 때, 또는 기계 원점을 재설정할 때 사용돼요. 충돌 방지를 위해 중간 지점을 지정하기도 합니다.동일동일
G40/G41/G42공구 반경 보정 (Tool Radius Compensation)공구의 실제 반경을 보정하여 프로그램된 경로와 실제 가공 경로의 오차를 보정합니다. G40은 보정 취소, G41은 좌측 보정 (공구가 가공 경로의 좌측에 위치), **G42는 우측 보정 (공구가 가공 경로의 우측에 위치)**입니다. 정밀 가공에 필수적이며, 보정 오류 시 오버컷/언더컷 발생 가능성이 있어요.동일동일
G43/G44/G49공구 길이 보정 (Tool Length Compensation)공구의 실제 길이를 보정하여 Z축 위치 오차를 수정합니다. G43은 양(+) 방향 보정, G44는 음(-) 방향 보정, G49는 보정 취소입니다. 각 공구의 길이에 따라 정확한 Z축 위치를 설정하여 가공 깊이 오차를 방지합니다.동일동일
G54 ~ G59작업물 좌표계 선택 (Work Coordinate System Selection)가공물에 설정된 여러 개의 작업 원점 중 하나를 선택합니다. 하나의 프로그램으로 여러 개의 가공물을 가공하거나, 복잡한 지그에 여러 개의 가공물을 고정했을 때 유용해요.공통: 추가적으로 G54.1 P1~P48 등 확장된 작업물 좌표계를 지원하기도 합니다.공통: 동일하게 여러 작업물 좌표계를 지원합니다.
G68/G69좌표계 회전/취소 (Coordinate System Rotation)작업물 좌표계를 X, Y, Z축을 기준으로 회전시킵니다. 경사진 면에 특정 패턴을 가공하거나, 비정렬된 작업물을 가공할 때 프로그래밍을 단순화할 수 있어요. G68로 회전을 시작하고, G69로 취소합니다.동일동일
G70 ~ G76, G81 ~ G89고정 사이클 (Canned Cycles)드릴링, 탭핑, 보링, 포켓 가공, 황삭/정삭 등 자주 반복되는 가공 패턴을 하나의 G-Code로 단순화하여 프로그래밍 시간을 단축하고 오류를 줄입니다. 각 사이클은 특정 파라미터(깊이, 피치, 리트랙션 등)를 요구합니다.화낙: 주로 G70번대(선삭 황삭/정삭)와 G80번대(드릴링, 탭핑, 보링)가 대표적입니다.지멘스: Cycle81 (드릴링), Cycle83 (심공 드릴링), Cycle84 (탭핑) 등 화낙보다 더 다양하고 강력한 내장 사이클을 제공하는 경향이 있어요.
G90/G91절대/증분 지령 (Absolute/Incremental Command)G90은 절대 지령으로, 모든 좌표가 작업 원점(G54 등)으로부터의 절대적인 거리로 지시됩니다. G91은 증분 지령으로, 모든 좌표가 현재 공구 위치로부터의 상대적인 거리로 지시돼요. 프로그래밍 시 혼동을 줄여야 합니다.동일동일
G92최대 스핀들 속도 지정 (Maximum Spindle Speed Setting)주속 일정 제어 (G96) 모드에서 스핀들의 최대 회전수를 제한합니다. 가공물의 지름이 작아질수록 주속 유지를 위해 스핀들 회전수가 기하급수적으로 증가하는 걸 방지하여 장비의 물리적 한계를 보호합니다.동일G25 (최소 스핀들 속도 지정), G26 (최대 스핀들 속도 지정) 등으로 세분화될 수 있습니다.
G94/G95이송 속도 모드 선택 (Feed Rate Mode)**G94는 분당 이송 (mm/min 또는 inch/min)**으로, 1분당 공구가 이동하는 거리를 지정합니다. **G95는 회전당 이송 (mm/rev 또는 inch/rev)**으로, 스핀들 1회전당 공구가 이동하는 거리를 지정해요. 드릴링이나 탭핑 시 주로 G95를 사용합니다.동일동일
G96/G97주속 일정 제어 (Constant Surface Speed Control)G96은 주속 일정 제어를 활성화하여 가공물의 지름 변화에 따라 스핀들 회전수를 자동으로 조절해 일정한 절삭 속도를 유지합니다. G97은 주속 일정 제어를 취소하고 스핀들을 고정된 RPM으로 회전시켜요. 주로 선삭(선반)에서 사용되지만, MCT에서도 특정 원통면 가공 시 유용합니다.동일동일

M-Code 상세 분석: 기계의 보조 기능을 제어하다

M-Code는 스핀들, 냉각수, 공구 교환, 프로그램 제어 등 기계의 부수적인 기능들을 명령합니다. G-Code만큼은 아니지만, 각 시스템이나 기계 제조사에 따라 고유한 M-Code가 존재하며, 이를 이해하는 건 장비의 자동화 및 문제 해결에 필수적입니다.

M-Code기능 (공통)상세 설명 및 설비 보전 관점화낙(FANUC) 특이점지멘스(SIEMENS) 특이점
M00프로그램 정지 (Program Stop)프로그램 실행을 무조건 일시 정지시킵니다. 작업자가 개입하여 가공물을 확인하거나, 칩을 제거하는 등 수동 작업이 필요한 시점에 사용돼요. ‘CYCLE START’ 버튼을 눌러야 다시 실행됩니다.동일동일
M01선택적 프로그램 정지 (Optional Program Stop)제어반의 ‘옵션 스톱 (Optional Stop)’ 스위치가 활성화되어 있을 때만 프로그램이 정지합니다. 디버깅이나 특정 구간에서만 확인이 필요할 때 유용하며, 스위치를 비활성화하면 M01을 무시하고 실행됩니다.동일동일
M02프로그램 종료 (Program End)현재 실행 중인 프로그램 블록의 모든 명령을 처리한 후, 프로그램 실행을 종료합니다. 리셋 버튼을 누르지 않아도 돼요.동일M30과 유사하게 사용될 수 있습니다.
M03/M04/M05스핀들 제어M03은 스핀들 정회전, M04는 스핀들 역회전, M05는 스핀들 정지를 명령합니다. 스핀들은 절삭 공구를 회전시키는 핵심 부품이므로, 이 코드들을 통해 회전 방향과 정지를 제어합니다. (S-Code와 함께 사용)동일동일
M06공구 교환 (Tool Change)자동 공구 교환 장치(ATC)를 사용하여 현재 스핀들에 장착된 공구를 제거하고, 지정된 공구(T-Code로 지정)를 매거진에서 가져와 스핀들에 장착하는 일련의 과정을 시작합니다. ATC 오동작 시 M06에서 알람이 발생할 가능성이 높아요.T코드 (공구 번호)와 함께 사용됩니다. (예: T01 M06)T코드와 함께 사용됩니다. (예: T1 M6)
M08/M09절삭유 제어M08은 절삭유 공급 시작, M09는 절삭유 공급 중단을 명령합니다. 절삭유는 가공 중 발생하는 열을 냉각하고, 칩을 배출하며, 마찰을 줄여 공구 수명을 연장하는 데 필수적입니다.동일동일
M10/M11클램프/언클램프 (Clamp/Unclamp)주로 유압 또는 공압식으로 작동하는 작업물 클램프를 제어합니다. M10은 클램프, M11은 언클램프를 지시하여 가공 중 작업물이 움직이지 않도록 고정합니다. 자동화된 지그나 로봇 연동 시 중요하게 사용돼요.제조사별 상이: 일부 장비는 다른 M-Code를 사용할 수 있습니다.제조사별 상이: 일부 장비는 다른 M-Code를 사용할 수 있습니다.
M19스핀들 위치 결정 (Spindle Orientation)스핀들을 특정 각도로 정확하게 회전시켜 정지시킵니다. 주로 공구 교환 시 공구의 키(Key)가 ATC의 포켓에 정확히 삽입되도록 하거나, 특정 센서가 스핀들의 위치를 감지할 때 사용돼요.동일동일
M29리짓 탭핑 (Rigid Tapping) 모드 ON스핀들의 회전과 Z축의 이송을 전자적으로 완벽하게 동기화하여 탭핑 시 나사산의 피치를 정확하게 제어합니다. 탭핑 불량(나사산 파손, 오버사이즈 등)을 줄이는 데 필수적인 기능입니다.공통: M29 Sxxxx (스핀들 속도)로 사용됩니다.공통: 동일하게 사용됩니다.
M30프로그램 종료 및 리셋 (Program End and Reset)프로그램 실행을 종료하고, 커서를 프로그램의 맨 처음으로 되돌립니다. 다음 가공 준비를 위해 장비의 상태를 초기화하는 역할을 해요. 반복 가공 시 필수적인 코드입니다.동일동일
M31칩 컨베이어 ON (Chip Conveyor ON)가공 중 발생하는 칩을 자동으로 배출하는 칩 컨베이어를 작동시킵니다. 칩이 가공물이나 공구에 쌓여 발생하는 문제를 방지하고, 작업 환경을 깨끗하게 유지해 줍니다.제조사별 상이: 칩 컨베이어 ON/OFF 코드가 다를 수 있습니다 (예: M32, M33).제조사별 상이: 칩 컨베이어 ON/OFF 코드가 다를 수 있습니다.
M40 ~ M45기어 단수 변경 (Gear Range Change)스핀들의 기어 단수를 변경하여 스핀들의 회전 속도 범위와 토크를 조절합니다. M40은 자동 기어 선택, M41은 저단 기어 (고토크, 저속), M42는 중단 기어, M43은 고단 기어 (저토크, 고속) 등으로 구성될 수 있어요.동일동일
M48/M49오버라이드 무효/유효 (Override Cancel/ON)제어반에 있는 이송 속도(Feed Rate)나 스핀들 속도(Spindle Speed) 오버라이드 스위치의 기능을 일시적으로 비활성화(M49)하거나 다시 활성화(M48)합니다. 특정 중요한 가공 구간에서 작업자가 임의로 속도를 변경하는 것을 방지할 때 유용해요.동일동일
M50번대특수 장치 제어자동문 개폐, 팔레트 체인저 제어, 공작물 측정 장치 등 특정 MCT에 부착된 특수 장치를 제어하는 코드가 존재합니다.제조사별 상이: 매우 다양한 기능에 대한 M-Code가 있을 수 있습니다.제조사별 상이: 매우 다양한 기능에 대한 M-Code가 있을 수 있습니다.
M98서브 프로그램 호출 (Subprogram Call)미리 작성된 서브 프로그램(Subprogram)을 호출하여 실행합니다. 반복되는 가공 패턴이나 공통적으로 사용되는 루틴을 서브 프로그램으로 만들어 재사용성을 높이고 메인 프로그램의 길이를 줄여 줍니다.P값 (서브 프로그램 번호)과 L값 (반복 횟수)과 함께 사용됩니다. (예: M98 P1234 L5)L값 (서브 프로그램 번호)과 P값 (반복 횟수)과 함께 사용됩니다. (예: CALL L1234 P5)
M99서브 프로그램 종료 및 복귀 (Subprogram End and Return)서브 프로그램의 실행을 종료하고, 서브 프로그램을 호출했던 메인 프로그램의 다음 블록으로 제어권을 돌려줍니다.동일동일

G-Code와 M-Code 마스터를 위한 추가 팁

  • F (Feed Rate): G01, G02, G03과 함께 사용되며, 공구의 이송 속도를 지정합니다.
  • S (Spindle Speed): M03, M04와 함께 사용되며, 스핀들의 회전 속도(RPM)를 지정합니다.
  • T (Tool Number): M06 공구 교환 코드와 함께 사용되며, 교환할 공구의 번호를 지정합니다.

화낙(FANUC)과 지멘스(SIEMENS) 시스템의 주요 비교 및 추가 기능

두 시스템은 기본적인 기능은 공유하지만, 사용자 경험과 고급 프로그래밍 방식에서 차이를 보입니다.

  • 변수 및 매크로/사이클:
    • 화낙: 사용자 정의 매크로(Macro) 기능을 강력하게 지원합니다. 복잡한 계산이나 조건부 분기 등을 통해 유연한 프로그래밍이 가능하며, 사용자 경험에 따라 무한한 응용이 가능해요.
    • 지멘스: 화낙의 매크로와 유사하게 변수(Variables) 사용이 매우 유연하고 강력합니다. 또한, 내장된 **가공 사이클(Cycles)**의 종류가 매우 풍부하여 드릴, 탭, 포켓, 슬롯 등 다양한 형태의 가공을 대화형 방식으로 쉽게 프로그래밍할 수 있습니다. 이는 특히 비숙련자에게 프로그래밍 시간을 크게 단축시켜 줍니다.
  • 대화형 프로그래밍:
    • 화낙: **”Manual Guide i”**와 같은 기능을 통해 G-Code를 직접 입력하지 않고도 대화형으로 가공 경로를 생성할 수 있도록 지원합니다. 하지만 주로 기존 G-Code 프로그래밍의 보조적인 역할을 합니다.
    • 지멘스: “ShopMill” (밀링용) 및 “ShopTurn” (선반용)과 같은 기능을 통해 완벽한 대화형 프로그래밍 환경을 제공합니다. 그래픽 인터페이스를 통해 가공물의 형상과 가공 조건을 입력하면, 자동으로 최적의 G-Code를 생성해 주어 초보자도 쉽게 사용할 수 있어요.
  • 오프셋 및 보정 관리: 두 시스템 모두 공구 길이 보정, 공구 반경 보정 외에도 공구 마모 보정, 형상 보정 등 다양한 보정 기능을 제공합니다. 설비 보전 시 이러한 보정 값의 정확한 이해와 관리는 가공 정밀도 유지에 결정적이에요.
  • 알람 및 진단 기능:
    • 두 시스템 모두 상세한 알람 메시지와 진단 기능을 제공합니다. 알람 코드와 함께 관련 G-Code, M-Code, 또는 서보축 정보를 표시하여 문제 발생 시 신속한 원인 분석을 돕습니다. 설비 보전 엔지니어는 이러한 진단 기능을 활용하여 장비의 상태를 모니터링하고 예방 정비를 수행할 수 있어요.
    • 특히 지멘스는 복잡한 진단 화면과 로그 기능을 제공하여 심층적인 문제 해결에 유리할 수 있습니다.

관련 회사 링크

화낙
한국 화낙

결론: MCT (머시닝 센터) G-Code 및 M-Code, 설비 보전의 핵심 언어

MCT (머시닝 센터)의 G-Code와 M-Code는 단순한 명령어가 아니라, 기계의 성능을 최대한 끌어내고 생산성을 극대화하기 위한 정교한 언어입니다. 화낙과 지멘스 시스템은 고유한 특징을 가지지만, 궁극적으로는 이 강력한 언어를 통해 우리가 원하는 가공을 실현하도록 돕죠. 설비 보전 전문가라면 이 코드들을 이해하고 능숙하게 다룰 줄 알아야 합니다. 장비에서 발생하는 알람을 해독하고, 가공 불량의 원인을 진단하며, 효율적인 유지보수 계획을 수립하는 데 있어 G-Code와 M-Code에 대한 깊이 있는 지식은 여러분을 최고의 전문가로 만들어 줄 거예요. 이 가이드가 여러분의 MCT 마스터에 큰 도움이 되기를 바랍니다.

#MCT, #GCODE, #MCODE, #화낙, #FANUC, #지멘스, #SIEMENS, #CNC, #머시닝센터, #설비보전, #가공, #자동화, #공작기계, #프로그래밍, #CNC프로그래밍, #가공기술, #공구보정, #좌표계, #서브프로그램, #매크로, #고정사이클

터치스크린도 궁금하면 눌러서 이동해요

Similar Posts