Skip to main content
CNC.wikiCNC.wiki

CNC 주축 명령 완벽 가이드: M03, M04, M05 분석

Fanuc, Siemens, Mitsubishi 제어기의 M03, M04, M05 주축 회전 명령을 마스터하십시오. 주축 충돌 예방, 5106 파라미터 설정 및 에러 알람 해결법을 다룹니다.

Hakan Gündoğdu
Hakan Gündoğdu

CNC CARE 공동 창업자

서론

자동화 가공 라인에서 단 1초의 비계획 정지는 수백만 원 상당의 비가동 시간 손실로 직결됩니다. 주축 정지 상태를 제대로 검증하지 않은 채 M05 명령만 믿고 즉시 공구를 후퇴시키면, 주축이 고속 탄성 회전을 유지하는 상태에서 축 이송이 강행됩니다. 이 순간 회전 중인 공구가 하드 코팅된 chuck이나 견고한 고정용 vise jaw를 타격하여 툴이 박살나고 indexing turret 정렬이 완전히 어긋나는 대형 파손 사고가 발생합니다. 특히 두 개의 파트 시스템이 동시에 움직이는 무인 자동화 반복 가공에서 이 파라미터를 검증하지 않고 양산에 들어가면, 팔레트 교환 후 두 번째 사이클부터 치수 편차가 누적되어 최종 검사에서 불량이 발견된다. 주축 정회전(M03), 역회전(M04), 정지(M05) 명령은 단순한 동작 코드가 아니라, 설비의 비가동 시간을 최소화하고 전체 생산 라인의 불량률을 zero로 통제하기 위한 핵심적인 하드웨어 동기화 메커니즘입니다. 본 가이드에서는 Fanuc, Siemens, Mitsubishi 제어 시스템별 핵심 동작 원리와 가공 불량률을 낮추기 위한 현장 필수 설정법을 상세히 분석합니다.

이러한 spindle 명령을 완전히 이해하려면 다양한 제어 시스템 환경 전반에 걸친 특정 파라미터 및 안전 interlock과의 긴밀한 통합도 요구됩니다. 기본 프로그래밍은 표준 G-code에 의존하지만, 전문가 수준의 실무 적용에서는 각 브랜드가 다중 spindle 구성, 회전 방향 극성 및 감속 동기화를 관리하는 방식을 반드시 계측해야 합니다. 만약 constant surface speed 설정을 소홀히 하거나 speed clamps 검증을 누락하면, spindle이 정상적으로 반응하지 못하고 자동 생산 라인을 전면 중지시키는 interlock 에러를 발생시킬 수 있습니다. 프로그래머는 이 명령들이 좌표계 이송, feed rate 모드 및 전반적인 프로그램 종료 코드와 어떻게 상호작용하는지 완벽히 이해해야 합니다. cycle 귀환 점에 대해 자세히 알아보려면 G98 및 G99 Cycle Return Levels 가이드를 참조하시거나, cycle 조절에 대한 상세 사항은 Program Stop 및 End 명령 (M00/M30) 설명서를 참고하십시오.

기술 요약

기술 사양상세 정보
명령 코드M03, M04, M05
보조 기능 (M-code) 그룹보조 기능 (M-code) / 주축 명령 (Modal)
지원 브랜드Fanuc, Siemens, Mitsubishi
주요 파라미터Fanuc Parameter 3706 (analog 전압 극성) 및 5106 (M5T tapping 정지); Siemens MD35020 (spindle 기본 모드) 및 MD35035 (기능 마스크); Mitsubishi Parameters #12005 (최대 M-code 개수), #1297 (spindle P-address) 및 #1300 (part-system 독립성).
주요 제한 사항동일한 block 내에서 상충되는 복수의 spindle 명령(M03 및 M04)은 공존할 수 없습니다. 절대 spindle speed는 gear stages에 의해 물리적으로 제한되며, 안전한 기동은 safety doors, chuck clamping 상태 및 일반적인 machine ready 신호와 interlock되어 있습니다.

핵심 요약

  • 가공 방향 검증: 공구 진입 시 즉각적인 공구 파손을 방지하기 위해 공구의 right-hand 또는 left-hand 설계에 맞는 정확한 회전 방향(시계 방향은 M03, 반시계 방향은 M04)을 항상 일치시켜야 합니다.
  • 주속 제한(Speed Clamp) 활용: Mitsubishi alarm M01 1043 발생을 방지하기 위해, 다중 spindle 운전에서 M03 또는 M04를 시작하기 전에 선반(lathe)에서 G50 또는 G92를 사용하여 유효한 spindle speed clamp를 항상 설정하십시오.
  • 정지 동기화 강제 적용: spindle이 M05에 의해 완전히 정지할 때까지 interpolator가 축 이동을 대기하도록 강제하려면 Siemens WAITS와 같은 결정론적 대기 명령어나 G04 Dwell과 같은 명시적인 dwell을 사용하십시오.
  • spindle M-code 분리: 상충되는 spindle 명령인 M03과 M04를 동일한 block에 동시에 프로그래밍하지 마십시오. 이는 Fanuc alarm PS5016을 유발합니다.
  • C-axis 에지 검출(Edge Detection) 보장: Mitsubishi 시스템에서 C-axis mode에서 spindle mode로 복귀할 때는, M03 기동을 위한 필수 OFF-to-ON 천이 에지(transition edge)를 생성하기 위해 먼저 명시적인 M05 명령을 프로그래밍해야 합니다.
  • 태핑 파라미터 최적화: rigid tapping 중 spindle drive가 극심한 전기적 충격을 받지 않도록 보호하기 위해, M03과 M04 반전 사이에 순간적인 M05 spindle 정지 명령이 자동으로 출력되도록 Fanuc Parameter 5106 (M5T)을 구성하십시오.

기본 개념

spindle 회전 제어는 금속 제거 가공의 기본 에너지원이며, 선삭(turning) 및 밀링(milling)에 필요한 기계적 토크와 절삭 속도를 제공합니다. M03, M04, M05 명령은 CNC spindle의 물리적 동적 상태를 지배하며, spindle drive를 기동하고 정지하는 핵심 보조 기능으로 작동합니다. S-code 명령은 회전 속도(분당 회전수 RPM 또는 G96 Constant Surface Speed에 의해 관리됨)를 지정합니다. 활성화된 spindle 명령 없이는 소재를 절삭할 수 없으며, 축 이송만 발생하여 공구 마찰(rubbing)이나 기계적 손상만 초래할 뿐입니다.

절삭 공구의 기하학적 형상과 회전 방향이 정확히 일치해야 하므로 회전 방향의 안전성은 매우 중요한 고려 사항입니다. 표준 right-hand 절삭 공구 또는 turning 인서트는 효율적인 절삭을 위해 시계 방향(M03) 회전이 필요합니다. 만약 spindle이 실수로 역회전(M04)하도록 명령되면, 절삭날의 뒷면이 소재와 마찰하면서 극심한 마찰과 열을 발생시킵니다. 이러한 실수는 초경 공구(carbide tool)를 즉시 파손시키고, 가공물의 표면 조도를 망가뜨리며, 기계 spindle 베어링에 무리를 주게 됩니다. 작업자는 가공 경로를 시작하기 전에 반드시 공구의 회전 방향을 육안으로 확인해야 합니다.

spindle 정지 및 감속 동기화는 cycle 진행 제어에 있어 매우 중요합니다. M05는 물리적인 정지 명령을 나타내지만, 표준 CNC 시스템은 spindle 감속 과정 중에 좌표축 이송을 자동으로 정지시키지 않습니다. 프로그램이 spindle 회전을 중지하더라도 축은 계속 이동할 수 있으므로 위험한 상황이 발생할 수 있습니다. 프로그래머는 공구 교환(tool change)이나 워크피스 반전(flip)을 수행하기 전에 반드시 spindle이 완전히 정지했는지 확인해야 합니다(이 작업은 Program Stop 및 End 명령 (M00/M30)을 사용하여 정지 상태를 유지하여 제어할 수도 있습니다).

명령 구조

spindle 명령의 프로그래밍 구문(syntax)은 매우 구조적이며, 장비의 PLC 로직에 의해 올바르게 실행되도록 명확성이 보장되어야 합니다. 각 명령은 M 주소(address)와 그 뒤에 오는 두 자리 숫자로 구성되며, 각각 시계 방향 회전, 반시계 방향 회전 또는 완전한 정지를 나타냅니다. 이 코드들은 modal로서, 프로그램 흐름에서 다른 상충되는 명령을 만날 때까지 활성 상태를 유지합니다.

표준 구성에서 spindle speed는 회전 명령과 함께 또는 그 전에 선언되어야 합니다. 프로그래머는 S-code를 작성하여 RPM 또는 표면 속도(surface speed) 단위의 목표 속도를 설정한 다음 M03 또는 M04를 실행합니다. 다중 spindle 장비에서는 목표 주소 지정을 포함하도록 명령 구조가 확장됩니다. 이를 통해 프로그래머는 어떤 spindle drive가 명령에 반응해야 하는지 정확하게 지정하여, 동시에 여러 도구 spindle을 제어할 때의 충돌을 방지할 수 있습니다.

프로그래밍 구문:

M03 S[speed] [P_] ;
M04 S[speed] [P_] ;
M05 [P_] ;

시스템 파라미터 및 설정:

브랜드파라미터 식별자시스템 설정 및 하드웨어 기능
FanucParameter 3706아날로그 전압 출력의 극성을 제어합니다. Bit 6 (CWM) 및 Bit 7 (TCW)은 M03 및 M04 명령용 D/A 전압 신호를 제어합니다.
FanucParameter 5106태핑 고정 cycle(tapping canned cycles)에서 spindle 역전 전에 M05 정지 명령을 실행할지 여부를 결정합니다. Bit 6 (M5T) 또는 NM5 설정에 따라 0은 M05를 출력하고, 1은 건너뜁니다.
FanucParameters 5112 & 5113드릴링 고정 cycle(drilling canned cycles) 중 spindle 정회전(5112) 및 역회전(5113)에 사용되는 구체적인 M-code 정수 값을 정의합니다.
SiemensMD35020$MA_SPIND_DEFAULT_MODE: 전원 인가 시 spindle의 초기 기본 상태를 정의합니다 (0: 속도 제어, 1: 위치 제어 속도, 2: positioning, 3: 축 모드).
SiemensMD35035$MA_SPIND_FUNCTION_MASK: spindle 특정 기능 마스크입니다. Bit 22는 rigid tapping의 회전 방향에 대한 NC/PLC 반전 신호를 제어합니다.
MitsubishiParameter #12005Mfig: 단일 G-code block 내에 허용되는 최대 보조 M-code 개수를 설정합니다 (범위: 1 ~ 4개).
MitsubishiParameter #1297ext33/bit2: CNC 프로그램에서 M-code와 함께 P-address를 사용하여 spindle 선택을 허용할지 여부를 설정합니다 (0: 비활성, 1: 활성).
MitsubishiParameter #1300ext36/bit1: spindle speed 및 M-code 명령을 전체 파트 시스템에서 글로벌하게 공유할지(0), 아니면 파트 시스템별로 독립적으로 처리할지(1) 선택합니다.

브랜드별 응용

Fanuc

Fanuc 제어 시스템에서 M03, M04, M05 명령은 parameter 3706 및 parameter 5106과 통합됩니다. parameter 3706은 출력 전압 부호를 설정하고, parameter 5106은 태핑 cycle 반전을 제어합니다. 안전한 프로그래밍을 위해서는 spindle amplifier 카드에서의 파싱 충돌을 방지하기 위해 이 명령들을 독립된 block에 작성해야 합니다.

Fanuc G-code 프로그램은 표준 포맷을 사용하여 spindle speed를 지정합니다. 다중 spindle 터닝 센터(turning center)의 경우, 장비 제조사(builder)에 의해 parameter 3786이 활성화되어 있으면 P-address를 추가하여 보조 spindle을 제어할 수 있습니다.

시스템 분류설정 / Alarm Code설명 및 하드웨어 동작
시스템 파라미터Parameter 3706 (Bit 6 & 7)아날로그 출력 전압의 극성을 설정합니다. Bit 6은 CWM (Clockwise Polarity)이고, Bit 7은 TCW (Counter-Clockwise Polarity)입니다. 이 설정값들을 변경하여 D/A 전압 극성을 관리합니다.
시스템 파라미터Parameter 5106 (Bit 6 / NM5)태핑 cycle 중 spindle 회전 반전 시 정지 여부를 설정합니다. 0으로 설정하면 반전 전에 M05를 출력하며, 1로 설정하면 M05를 생략하여 태핑 cycle 시간을 단축합니다.
시스템 파라미터Parameters 5112 & 5113드릴링 고정 cycle(drilling canned cycles)에 사용되는 spindle M-code를 재정의합니다 (정회전 및 역회전 정수 값).
시스템 파라미터Parameter 5600 (구형)구형 FS3 및 FS6 제어 시스템에서 D/A 극성을 설정하는 Bit 0 (M3M) 및 Bit 1 (M4M)입니다.
Alarms / ErrorsPS5016M-code 오조합(Illegal Combination of M-code): 동일한 block 내에 M03과 M04가 함께 프로그래밍될 때 발생합니다.
Alarms / ErrorsEr-01spindle amplifier interlock 에러: 비상정지(*ESP) 또는 Machine Ready(MRDY) 상태가 충족되지 않은 상황에서 spindle 정회전/역회전 신호(SFR/SRV)가 전송되었을 때 발생합니다.
버전 간 차이점구형 vs 신형FS3/FS6 제어 시스템은 극성 제어를 위해 parameter 5600을 사용했으나, 현대식 M-series 및 T-series 시스템에서는 이 기능이 parameter 3706으로 통합되었습니다.

경고: 안전 interlock 상태를 임의로 우회하거나 동일한 활성 프로그램 line 내에 상충되는 M-code들을 동시에 프로그래밍하면 즉시 spindle amplifier에 시퀀스 alarm Er-01이 유발되거나 alarm PS5016이 발생하여 비상 정지 상태가 됩니다.

Siemens

Siemens SINUMERIK 제어 시스템은 머신 데이터 MD35020 및 MD35035를 사용하여 spindle 동작을 지배합니다. 이를 통해 전원 인가 시의 기본 부팅 상태 및 회전 방향 마스크를 심도 있게 커스터마이징할 수 있습니다. 해당 제어기는 직접 주소 지정(direct addressing)을 지원하여, 프로그래머가 spindle 인덱스를 사용하여 여러 spindle을 기본적으로 타겟팅할 수 있도록 합니다.

Siemens 구문은 M3/M4/M5와 `M1=3`과 같은 확장 표기법을 모두 지원합니다. 프로그래머는 이러한 명령을 이송 block 내에 작성할 수 있지만, 공구가 너무 빨리 진입하는 것을 방지하기 위해 spindle 감속 및 가속 상태를 면밀히 제어해야 합니다.

시스템 분류설정 / Alarm Code설명 및 하드웨어 동작
구문`M<n>=3` / `M<n>=4` / `M<n>=5`채널당 최대 5개의 spindle을 대상으로 보조 spindle을 기본적으로 타겟팅하기 위한 확장 주소 표기법입니다.
시스템 파라미터MD35020$MA_SPIND_DEFAULT_MODE: spindle의 전원 온 기본 모드를 정의합니다 (0 = 속도 제어, 1 = 위치 제어 속도, 2 = positioning 모드, 3 = 축 모드).
시스템 파라미터MD35035$MA_SPIND_FUNCTION_MASK: spindle 전용 기능 마스크입니다. Bit 22는 NC/PLC 반전 신호가 rigid tapping의 회전 방향을 반전시킬지 여부를 지정합니다.
Alarms / ErrorsAlarm 16111"No speed programmed" (속도 프로그래밍 안 됨): block 또는 활성 메모리 내에 선언된 속도(S-value) 없이 M3 또는 M4가 명령될 때 트리거됩니다.
Alarms / ErrorsAlarm 16751"spindle/axis SPCOF not executable" (spindle/축 SPCOF 실행 불가): spindle이 positioning/축 모드일 때 위치 제어가 해제되는 경우 유발됩니다. M3, M4 또는 M5를 명령하여 해결합니다.
Alarms / ErrorsAlarm 20141동기 작용(synchronized actions) 중 spindle 정지 없이 속도 제어(M3)에서 축 모드로 부적절한 전환을 시도할 때 발생합니다.
버전 간 차이점G290 vs G291 다이얼렉트Siemens Mode (G290)는 내장 다중 spindle M2=3 명령을 지원합니다. ISO Dialect Mode (G291)는 이 구문을 비활성화하는 대신 구형 ISO M-code인 M103, M104, M105를 변환하여 해석합니다.

경고: 좁은 포켓에서 공구를 회수하거나 공구 교환을 실행하기 전에 spindle을 정지하기 위해 단순 M5 정지 명령에만 의존하는 것은 매우 위험합니다. 기본적으로, spindle 속도가 0 RPM에 도달하기 전에 축 이송이 시작됩니다. chuck 또는 기계식 clamp, vise jaw와의 심각한 충돌을 방지하려면 프로그래머는 반드시 M5 명령과 결정론적인 WAITS 명령을 결합해야 합니다.

Mitsubishi

Mitsubishi 시스템은 parameter #1297 및 parameter #1300을 활용하여 spindle 주소 및 다중 계통 공유를 제어합니다. 이 설정들은 CNC가 다중 spindle 경로를 해석하는 방식을 지정합니다. 해당 제어기는 비정상적인 모드 전환으로부터 spindle drive를 보호하기 위해 자동 운전 중에 엄격한 interlock을 적용합니다.

Mitsubishi 프로그램은 표준 G-code 포맷을 사용하지만, 작업자는 회전을 시작하기 전에 적절한 한계를 설정해야 합니다. 밀링(milling) 및 선삭(turning) 모드 사이를 전환할 때, 프로그래머는 안전한 기동을 보장하기 위해 시스템의 에지 검출(edge-detection) 로직을 준수해야 합니다.

시스템 분류설정 / Alarm Code설명 및 하드웨어 동작
구문`M_ P_ ;`다중 spindle 제어 I(Multiple-Spindle Control I, 선반 전용) 중 특정 spindle을 지정하기 위해 P-address를 추가합니다.
시스템 파라미터#1297 (ext33/bit2)M-code와 함께 P-address를 사용하여 spindle 선택을 허용할지 설정합니다 (0: 비활성, 1: 활성).
시스템 파라미터#1300 (ext36/bit1)spindle speed 및 회전 명령을 전체 파트 시스템에서 공통으로 공유할지(0), 아니면 각 파트 시스템에서 개별적으로 독립 제어할지(1) 선택합니다.
시스템 파라미터#12005 (Mfig)단일 G-code block 내에 허용되는 최대 M-code 개수를 설정합니다 (범위: 1 ~ 4개).
시스템 파라미터#13001 (SP001 PGV)M03 또는 M04 명령이 활성화되어 있을 때 적용되는 위치 루프 게인(position loop gain)을 설정합니다.
Alarms / ErrorsM01 1043조작 에러(Operation error): 다중 spindle 제어 II(Multiple-spindle control II)에서 유효한 speed clamp 명령(G92/G50)을 내리기 전에 M03 또는 M04가 명령될 때 유발됩니다.
Alarms / ErrorsM01 1026spindle/축이 spindle mode 대신 C-axis mode에 잠겨 있는 상태에서 자동 운전(M03/M04)이 시작되었을 때 유발됩니다.
Alarms / ErrorsM01 0005조작 에러: spindle이 M05에 의해 정지되기 전에 C-axis mode에서 축 이송 명령이 실행되었을 때 유발됩니다.
Alarms / ErrorsP33포맷 에러(Format error): 다중 spindle 명령에 필수적인 P-address 타겟 지정이 누락되었을 때 트리거됩니다.
버전 간 차이점제어 I vs 제어 II다중 spindle 제어 I(P-address 선택식)은 선반(L-system) 전용인 반면, 다중 spindle 제어 II(PLC 구동 신호식)는 밀링(M) 및 선반(L) 시스템 모두에서 사용할 수 있습니다. 전원 공급 시의 기본 부팅 상태는 parameter #3129로 설정됩니다.

경고: 기계가 C-axis mode에 잠겨 있는 동안 M03과 같은 자동 가공 명령을 가동하면 즉시 실행이 중지됩니다. 모드 전환을 실행하기 전에 적절히 M05 정지를 구현하지 않으면 즉각적인 공구 파손과 가공 불량이 발생합니다.

브랜드 비교

비교 항목FanucSiemensMitsubishi
다중 spindle 주소 구문Parameter 3786 (MPF)이 활성화되어 있을 때 보조 spindle을 제어하기 위해 P-address를 추가합니다 (예: M03 P2;).기본적으로 표준 확장 주소 표기법(예: M2=3)을 사용하거나 매핑된 구형 ISO Dialect의 M-code(M103)를 사용합니다.선반(Lathe) 시스템에서는 제어 I에서 P-address를 추가(M03 P2 ;)하며, 제어 II에서는 PLC 선택 신호를 통해 명령을 분배합니다.
spindle 감속 제어기계적인 interlocks 또는 타이머에 의존하며, 고정 cycle에서는 Parameter 5106 (M5T)을 사용하여 역전 전에 정지를 삽입합니다.정확한 0 RPM 도달이 검증될 때까지 좌표축 보간을 일시 정지하는 결정론적 WAITS 동기화 block을 제공합니다.C-axis mode를 안전하게 해제하고 터닝 절삭을 허용하기 위해 명시적인 M05 정지 및 OFF-to-ON 에지 검출이 필수적으로 요구됩니다.
파트 시스템 자율성PMC 설계 및 하드웨어 매핑 설정에 의해 물리적으로 정의됩니다.프로그램 loop 내에서 SETMS 명령을 사용하여 spindle 주종 관계(mastery)를 동적으로 정의할 수 있습니다.Parameter #1300 ext36/bit1에 의해 명령이 전체 시스템에서 글로벌하게 공유될지 또는 계통별로 분리 관리될지 결정됩니다.
회전 극성 설정Parameter 3706 (CWM/TCW 비트) 또는 5600 (구형)의 설정을 변경하여 D/A 출력 전압의 부호(극성)를 변경합니다.spindle 기본 모드(MD35020) 및 기능 마스크(MD35035) 파라미터를 사용하여 제어됩니다.Parameter #3129 cax_spec/bit2를 통해 부팅 시 spindle mode로 시작할지 C-axis mode로 시작할지 구성됩니다.

기술 분석

이 세 가지 저명한 제어 시스템에 대한 분석적 검토를 통해 spindle 명령 실행에 대한 서로 다른 엔지니어링 접근 방식이 명확해집니다. 세 시스템 모두 기본적인 정회전, 역회전, 정지 기능을 성실히 수행하지만, 기반 데이터 구조, 하드웨어 통신 방법 및 안전 로직은 현저히 다릅니다. 이러한 엔지니어링 설계의 차이점을 완전히 이해하면 개발자가 보다 범용성 있고 깨끗한 G-code 프로그램을 작성할 수 있습니다.

Siemens는 확장 주소 표기법과 기본 동기화 기능을 통해 프로그래밍의 유연성 측면에서 뛰어난 성능을 발휘합니다. 동일한 block 내에서 보조 spindle 호출(예: M2=3)을 직접적으로 허용함으로써 Siemens는 별도의 spindle 선택 명령을 내릴 필요성을 완전히 제거합니다. 또한 결정론적인 WAITS 구문과 결합하여, 제어기는 축 이송이 시작되기 전에 물리적인 spindle 상태가 프로그램의 논리적 상태와 정확히 일치하도록 보장합니다. 이는 엔코더를 직접적으로 읽는 인터프리터(interpreter) 수준에서 처리되므로 외장 PLC 핸드셰이크와 관련된 시간 지연을 원천적으로 차단합니다.

Fanuc은 저수준 파라미터화에 집중하여 장비 제조사에게 아날로그 드라이브 신호 및 고정 cycle 동작에 대한 깊은 제어 권한을 양도합니다. 동적인 마스터 주축 재할당을 활용하는 대신, Fanuc은 3706 및 5106과 같은 고정 파라미터에 의존하여 신호 극성 및 interlock 시퀀스를 통제합니다. 이러한 방식은 파트 프로그램 구문을 극도로 단순하게 유지하는 데 기여하지만, 장비의 물리적 하드웨어 결선과 정확히 일치하도록 이러한 파라미터들을 사전에 매핑해야 하는 장비 설치 기술자와 제조사의 몫이 큽니다.

Mitsubishi는 파라미터 #1297 및 #1300을 통한 견고한 다중 시스템 공유 기능을 강점으로 하여 그 중간적 영역을 형성합니다. 가장 독특한 특징은 모드 전환을 위한 엄격한 에지 검출(edge-detection) 안전 로직입니다. 천이 에지(OFF-to-ON)가 선행되지 않은 spindle 기동 명령을 안전하게 무시함으로써, Mitsubishi는 C-axis 보간 작업 중 의도하지 않은 주축 급가속을 물리적으로 방지합니다. 이는 가공 중인 기계 부품과 툴링을 보호하는 강력한 배리어 역할을 하지만, 프로그래머는 반드시 엄격하고 순차적인 정지 절차를 설계해야 합니다.

프로그램 예제

Fanuc Milling and Tapping Example

O2001 (FANUC spindle speed 및 반전 예제) ;
N10 G90 G21 G17 ;
N20 T0101 M06 (Right-Hand Milling Cutter 로드) ;
N30 G54 G00 X0 Y0 S1500 M03 (1500 RPM으로 정회전 기동) ;
N40 G43 H01 Z20.0 M08 (공구 길이 보정 활성화, 절삭유 온) ;
N50 G01 Z-5.0 F150. ;
N60 X100.0 ;
N70 G00 Z20.0 M09 (공구 후퇴, 절삭유 오프) ;
N80 G04 X2.0 (spindle 전환 안정화를 위한 dwell) ;
N90 M04 S800 (역가공을 위해 spindle을 800 RPM으로 역회전) ;
N100 G01 Z-2.0 F100. ;
N110 X0 ;
N120 G00 Z50.0 M05 M09 (후퇴, spindle 정지, 절삭유 오프) ;
N130 M30 ;
%

공운전 (dry run) 상세 분석

  • 공구 상태: N30 block에서 spindle은 M03에 의해 1500 RPM으로 정회전 가속됩니다. N90 block에서 spindle은 M04에 의해 800 RPM으로 역회전합니다. N120 block에서 spindle은 M05에 의해 정지되고 절삭유가 꺼집니다.
  • 작업자 조치: 작업자는 프로그램을 로드하고, 공구 지형(geometry)이 정회전 및 역회전 방향 모두와 호환되는지 검증하며, 제어반(panel)에서 물리적인 speed override 값을 100%로 설정합니다.
  • PLC 반응: N30 block을 해석하는 즉시 PLC는 정회전 구동 spindle 릴레이를 닫습니다. N90 block을 해석하면 아날로그 전압 극성을 전환하여 회전을 반전시킵니다. N120 block 실행 중 PLC는 spindle 접촉기를 열어 dynamic braking을 작동시킴으로써 spindle을 신속히 정지시킵니다.

Siemens Multi-Spindle Synchronization Example

; SIEMENS 다중 주축 WAITS 동기화 예제
N10 G90 G71 G17
N20 T="FACE_MILL_80" D1 M6
N30 G54 S3000 M3 ; 메인 spindle을 3000 RPM으로 CW 기동
N40 G0 X0 Y0 Z25.0 M8
N50 G1 Z-4.0 F300.
N60 Y120.0
N70 G0 Z50.0 M9
N80 M2=4 S2=800 ; 보조 spindle 2를 800 RPM으로 CCW 기동
N90 M5 ; 메인 spindle 정지
N100 WAITS ; 주 spindle이 0 RPM에 도달할 때까지 강제 대기
N110 G53 X0 Y0 D0
N120 M30

공운전 상세 분석

  • 공구 상태: N30 block에서 primary spindle이 3000 RPM으로 CW 구동됩니다. N80 block에서 보조 spindle(spindle 2)이 800 RPM으로 CCW 구동됩니다. N90 block에서 primary spindle이 정지됩니다.
  • 작업자 조치: 작업자는 메인 spindle과 라이브 툴(live-tooling) turret 양쪽에 공구를 장착하고, 보조 spindle 주변에 간섭이 없는지 확인한 후 제어 화면을 모니터링합니다.
  • PLC 반응: PLC는 M2=4 명령을 수신하고 보조 spindle 구동기에 전압을 인가합니다. N90 block에서 메인 spindle로의 동력을 차단합니다. N100 block에서는 WAITS 명령이 작동하여 엔코더 피드백을 모니터링하고 완전히 정지(zero speed)될 때까지 대기하며, 이후 축 interlock을 해제하여 기계 원점 복귀가 안전하게 실행되도록 허용합니다.

Mitsubishi C-Axis to Spindle Transition Example

; MITSUBISHI C-AXIS에서 SPINDLE 모드 전환
N10 G90 G21
N20 M06 T0101 ; 선삭 공구(Turning Tool) 로드
N30 G54 G00 X50.0 Z5.0
N40 M05 ; 모드 전환 실행 전 spindle이 확실히 정지되도록 설정
N50 M15 ; spindle mode에서 C-axis mode로 전환
N60 G00 C90.0 ; C-axis 위치 결정
N70 M05 ; C-axis 회전 중지
N80 M14 ; spindle mode로 다시 전환
N90 M03 S1000 ; 1000 r/min 속도로 일반 정회전 가공 시작
N100 G01 Z-20.0 F120.
N110 G00 X60.0 M05
N120 M30

공운전 상세 분석

  • 공구 상태: 선삭 공구의 위치가 결정됩니다. N50 block에서 spindle mode가 C-axis mode로 전환되어 각도 위치 결정을 수행한 다음, N80 block에서 다시 spindle mode로 전환된 후 N90 block에서 고속 회전이 기동됩니다.
  • 작업자 조치: 작업자는 chuck 내부의 가공물 클램핑 상태를 검증하고 제어 모니터에서 C-axis 보간 파라미터가 정상적으로 활성화되었는지 확인합니다.
  • PLC 반응: PLC는 모드 전환용 릴레이 신호를 통제합니다. N70 block에서 M05가 해독되면 C-axis 모터를 정지시킵니다. N90 block에서 M03 명령을 수신하면 신호의 OFF-to-ON 라이징 에지(rising edge)를 검증하고 spindle 회전을 활성화하여 1000 r/min의 속도로 가속시킵니다.

오류 분석

브랜드Alarm Code유발 조건작업자 증상근본 원인 / 해결 방법
FanucPS5016단일 block 내에 동일한 그룹의 다중 M-code(M03 및 M04)를 지정했을 경우.CNC 제어가 즉시 정지되고 화면에 "ILLEGAL COMBINATION OF M CODE" 알람이 깜박입니다.프로그래밍 오류입니다. 명령어를 별개의 block으로 분리하거나 충돌하는 코드를 삭제하십시오.
FanucEr-01비상 정지(*ESP) 또는 Machine Ready(MRDY) 조건이 만족되지 않은 상황에서 spindle 정회전(SFR) 또는 역회전(SRV) 신호가 인가되었을 때.CNC 화면에 Er-01이 발생하고, 물리적 spindle amplifier 기판의 LED 인디케이터에 00이 표시되며 spindle 이동이 완전히 차단됩니다.시퀀스 오동작입니다. 안전 도어(safety doors), interlocks 및 spindle amplifier의 전원 상태를 점검하여 MRDY 신호를 복구하십시오.
SiemensAlarm 16111선언된 S-speed(속도 코드) 없이 spindle 회전(M3/M4)이 명령되거나 활성화되었을 때.화면에 "No speed programmed" 알람이 표시되며, 해당 block이 해석되기 전에 장비 실행이 중지됩니다.해당 block 내부 혹은 프로그램 시퀀스 상에 명시적으로 속도 지정(S-value)을 수행하십시오.
SiemensAlarm 16751spindle이 positioning 또는 축 모드로 동작 중일 때 위치 제어(SPCOF)를 해제하려고 한 경우.화면에 "spindle/axis SPCOF not executable" 알람이 발생하여 후속 가공이 차단됩니다.위치 제어를 해제하기 전에 표준 M3, M4 또는 M5를 명령하여 spindle을 속도 제어 모드로 복귀시키십시오.
MitsubishiM01 1043다중 spindle 제어 II(Multiple-Spindle Control II) 환경에서 유효한 speed clamp(G92/G50)를 먼저 선언하지 않고 M03 또는 M04를 기동했을 때.제어기가 즉시 조작 에러 M01 1043을 발생시키고 가공 cycle을 비정상 종료합니다.spindle 시작 block을 가동하기 전에 G92 또는 G50을 선언하여 유효한 최대 spindle 속도를 차단 설정하십시오.
MitsubishiM01 1026spindle/축이 spindle mode 대신 C-axis mode에 고정된 상태에서 자동 가공(M03/M04)을 시도했을 경우."SP-C ax ctrl runs independently" 알람이 발생하며 spindle 가속이 정지됩니다.기계 제조사(MTB)가 구성한 적절한 M-code(예: M14/M15)를 가동하여 C-axis mode를 해제하고 spindle mode로 복귀하십시오.

실무 응용 가이드

태핑 canned cycles 도중 발생할 수 있는 극심한 전기적 충격과 급작스러운 회전 역전으로 인해 spindle 구동기가 다운되면 양산 라인의 실시간 비가동 시간이 기하급수적으로 폭증하게 됩니다. 5106번 파라미터를 사전 확인하면 이 명령어에서 가장 빈번한 비계획 정지를 없앨 수 있다. 구체적으로 Fanuc의 5106 (M5T)번 파라미터를 0으로 설정하면, M03과 M04 반전 명령 사이에 자동적으로 안전한 순간 M05 spindle 정지 신호가 삽입되어 모터 드라이브의 전기적 부하를 극적으로 경감시킵니다. 또한 다중 계통으로 구동되는 Mitsubishi lathe 장비의 경우, Multiple-Spindle Control II 상황에서 G50 이나 G92를 선언하지 않은 상태로 M03 또는 M04 회전을 가동하면 즉시 M01 1043 조작 에러가 발생하여 대량의 치수 불량률을 유발하게 됩니다. 이를 차단하기 위해 작업자는 반드시 가공 개시 전에 유효한 speed clamp 값을 확인해야 하며, C-axis mode에서 spindle mode로 복귀할 때는 M05 정지 명령을 통해 필수적인 OFF-to-ON 신호의 라이징 에지 검출이 성실히 실현되도록 시퀀스를 구성해야 합니다. Siemens 환경에서는 M5 명령 단독 사용 시 발생하는 관성 회전 축 이송 문제를 예방하기 위해, deterministic 동기화 구문인 WAITS를 즉각적으로 적용하여 spindle 속도가 완전히 0 RPM에 이른 시점에 한해 turret 이송이 시작되도록 안전 마진을 설계하는 것이 라인 가동률과 반복 정밀도를 보장하는 가장 확실한 전략입니다.

관련 명령 구조

  • S-Code (Spindle Speed): 목표 spindle 회전 속도를 RPM 또는 표면 속도 한계치로 선언하며, M03 및 M04와 상호작용하여 실질 가공 속도를 결정합니다.
  • M19 / SPOS (Spindle Orientation): spindle을 정밀한 물리적 각도로 위치 결정하여 고정하며, spindle을 일반 속도 제어 모드로 회귀시키기 위해서는 반드시 M03 또는 M04를 통해 비활성화해야 합니다.
  • G96 / G97 (Constant Surface Speed): 공구 좌표 위치에 맞춰 spindle 속도를 동적으로 조절하는 G96 모드 또는 spindle 회전 속도를 일정한 RPM으로 고정시키는 G97 모드입니다.
  • SETMS (Siemens Master Spindle Selection): 어떤 spindle을 master spindle로 평가할지 동적으로 지정하여 메인 M3/M4/M5 명령에 반응할 드라이브를 지정합니다.
  • WAITS (Siemens Spindle Synchronization): spindle이 지정 속도에 물리적으로 도달했거나 M5를 통해 정지될 때까지 후속 좌표축 보간 이송의 개시를 연기합니다.

결론

양산 자동화 공정에서 spindle 회전 명령의 성패는 단순한 구문 작성을 넘어, 철저한 저수준 파라미터 매핑과 동기화 대기 시간(dwell)의 정밀 제어에 달려 있습니다. Fanuc Parameter 3706의 출력 극성 관리, Siemens WAITS 코드를 활용한 완전 정지 보장, Mitsubishi의 C-axis 모드 전환용 M05 시퀀스의 준수는 예기치 않은 하드 충돌을 차단하고 비가동 시간의 발생을 원천 방지하는 안전판입니다. 최종 치수 치수 편차를 방지하고 불량률을 극적으로 낮추려면 작업 전에 각 장비의 제조사별 특수 파라미터와 safety interlocks 조건을 사전 대조해야 합니다. 설비 가동 효율을 극대화하고 자동 가공 반복 정밀도를 보장하는 체계적인 셋업만이 하이엔드 정밀 부품 양산의 경제성을 지탱하는 근본입니다.

자주 묻는 질문 (FAQ)

자동화 반복 가공 중 태핑 주축 반전 시 모터 드라이브 과부하 알람을 예방하려면 어떤 파라미터를 확인해야 합니까?

주축의 급격한 정역 회전 전환은 드라이브에 큰 전기적 스트레스를 주며, 이는 자동화 라인 전체를 멈추는 비계획 정지의 주요 원인입니다. Fanuc 제어기의 경우 5106번 파라미터의 M5T 설정이 활성화되어 있는지 확인하여 정역 전환 시 반전 전에 M05가 원활히 출력되는지 검증하십시오. 기계 장비 보호와 알람 해제를 위해, 즉시 해당 파라미터의 비트 값을 0으로 복원하여 가공 중 안전 마진을 강제 확보하십시오.

선삭 복합 가공기에서 C-axis 사용 후 M03을 내렸으나 주축이 회전하지 않고 장비가 대기하는 경우의 알람 조치 방법은 무엇입니까?

이는 Mitsubishi 시스템 고유의 에지 검출(edge-detection) 안전 메커니즘으로 인해 발생하며, 이전 C-axis 정지용 M-code에서 주축 회전 개시용 M03으로 이행할 때 완전한 신호의 OFF-to-ON 라이징 에지가 검출되지 않았기 때문입니다. 장비의 비계획 대기 정지를 해제하고 즉각적인 스핀들 구동을 복구하려면, 모드 전환인 M14/M15 블록을 내리기 전 반드시 명시적인 M05 코드를 삽입하여 신호 에지를 강제 리셋시키십시오.

M05 주축 정지 후 툴이 아직 도는데 툴체인저나 좌표축이 이동하여 충돌하는 사고를 물리적으로 차단하려면 어떻게 프로그래밍해야 합니까?

표준 M05는 주축 전원을 차단하지만 기계적 잔여 관성 회전 속도를 축 보간 알고리즘이 실시간 감시하지 않기 때문에 발생하는 하드웨어 충돌 사고입니다. Siemens 제어기 환경에서는 M5 명령 바로 다음 블록에 결정론적 대기 명령인 WAITS를 추가적으로 프로그래밍하여 스핀들 엔코더 피드백이 완전한 0 RPM을 지시하기 전에는 어떠한 축 이동도 기동하지 않도록 시퀀스를 강제 조치하십시오.

아직 해결되지 않았나요?

이 주제에 대해 AI 어시스턴트에게 자연어로 물어보세요. 검증된 소스를 기반으로 하며 환각이 없습니다.

AI 어시스턴트에게 질문하기
Hakan Gündoğdu
Hakan Gündoğdu
  • CNC CARE Co-Founder (May 2025 - Present)
  • Mitsubishi Electric NC Sales & Service Section Manager (2008 - 2025)
  • Reis CNC Service Engineer (2003 - 2005)
  • Ören Kalıp CNC Mold Line Team Leader (1999 - 2002)

CNC 기계 산업의 모든 분야에서 25년 이상 근무한 경험을 바탕으로, 브랜드 독립적인 컨설팅, 엔지니어링 및 순정 부품 서비스를 제공하는 CNC CARE의 공동 창업자로서 활동을 이어가고 있습니다.

관련 기사

이 주제에 관한 다른 기사