G04 Dwell 명령 가이드: Fanuc, Siemens, Mitsubishi 완벽 비교
Fanuc, Siemens, Mitsubishi CNC에서 G04 Dwell 명령을 올바르게 활용하여 비계획 정지(비가동 시간)와 불량률을 예방하십시오. 핵심 파라미터 설정과 PS0041, Alarm 12120 오류 해결 방법을 상세히 설명합니다.
서론
자동화 양산 라인에서 팔레트 교환 후 가공이 시작될 때, 반제품 워크피스 표면을 공구가 사정없이 긁고 지나가며 치명적인 witness mark를 남기거나, chuck 또는 turret indexing 완료 신호의 기계적 지연 시간을 확보하지 못해 터렛(turret) 모터 과부하(Alarm 700022) 또는 공구 clamping timeout(Alarm 700011)으로 장비가 비계획 정지(비가동 시간)되는 사고는 현장에서 드물지 않게 발생한다. 이러한 생산 중단 사고의 주된 원인은 G04 dwell 명령이 축의 물리적인 이동을 일시적으로 중단하는 동안, 기계 내부의 parameter 설정이 어떻게 일치하는지 제대로 검증하지 않았기 때문이다. 이 파라미터를 검증하지 않고 양산에 들어가면, 팔레트 교환 후 두 번째 사이클부터 치수 편차가 누적되어 최종 검사에서 불량이 발견된다. 시간 기반 또는 spindle 회전 수 기반의 일시 정지를 제어하는 G04 명령은 단순한 대기 명령처럼 보이지만, 소수점 하나 또는 파라미터 값 하나가 어긋나는 순간 전체 자동화 라인의 불량률을 치솟게 만드는 도화선이 된다.
기술 요약
| 기술 사양 | 값 / 세부 정보 |
|---|---|
| 명령 코드 | G04 / G4 |
| 모달 그룹 | Group 00 (Non-modal) |
| 지원 브랜드 | Fanuc, Siemens, Mitsubishi |
| 핵심 파라미터 | Parameter 3405 DWL (Fanuc), MD20734 bit 2 (Siemens), Parameter #8130 (Mitsubishi) |
| 주요 제약 사항 | continuous-path mode의 smoothing을 중단하며, Siemens에서는 단독 block으로 프로그래밍해야 하고, Fanuc에서는 cutter compensation 활성 시 alarm PS0041을 트리거할 수 있습니다. |
핵심 요약
- feed 모드 검증: brand 파라미터가 dwell 단위를 seconds에서 spindle revolutions로 동적으로 전환할 수 있으므로, 항상 feed per minute (G94) 또는 feed per revolution (G95)이 활성화되어 있는지 확인하십시오.
- 감속 마크 방지: tool이 완전 정지 상태로 감속하여 witness mark를 남기는 것을 방지하기 위해, Siemens의 G64/G641과 같은 매끄러운 표면 가공 패스 중에는 G04를 삽입하지 마십시오.
- Address 포맷 준수: 수학적 scaling이나 정수 해석 오류를 우회하기 위해, 시간 기반 address(X 또는 U 등)에는 명시적인 소수점을 사용하십시오.
- 단독 block 실행 보장: 즉각적인 G-code block 오류(Alarm 12120)를 방지하려면, Siemens 컨트롤러에서는 G04를 자체 NC block에 단독으로 작성하십시오.
- cutter compensation 제한: path-blending 실패(Alarm PS0041)를 방지하기 위해, cutter compensation(G41/G42)이 활성화된 상태에서 G04와 같이 물리적 이동이 없는 block을 연속으로 프로그래밍하지 마십시오.
- spindle 상태 확인: infinite program hang을 방지하기 위해, G95 모드에서 revolution 기반 dwell을 실행하기 전에 spindle이 실제로 회전하고 있는지 확인하십시오.
기본 개념
G04 명령의 주요 실무 프로그래밍 효과는 지정된 시간 또는 계산된 spindle 회전 수 동안 모든 물리적 축의 interpolation을 의도적으로 일시 정지하는 것입니다. CNC 프로그래머는 chip을 배출하거나, spindle이 지령된 속도에 도달하도록 하거나, 외부 기계적 동작이 완료될 때까지 기다리기 위해 이러한 일시적인 공구 이동 정지를 사용합니다. spindle이 계속 회전하는 동안 공구 축을 정지 상태로 유지함으로써, 이 명령은 후속 가공이 안정적이고 제어된 상태에서 시작되도록 보장합니다.
그러나 G04는 Group 00에 속하는 non-modal 명령이므로, 작성된 특정 block에서만 활성화됩니다. dwell 지속 시간이 충족되면, 컨트롤러는 후속 block에서 즉시 정상적인 축 interpolation을 재개합니다. 정지 대기 상태에서 활성 feedrate로 다시 전환하려면 신중한 동기화가 필요하며, 특히 공구가 조기에 이동할 경우 워크피스 불량이나 심각한 공구 마모를 초래할 수 있는 중요한 가공 형상에서는 더욱 그렇습니다.
명령 구조
dwell 명령을 실행하기 위해, G04 코드 뒤에는 spindle revolutions의 지속 시간 또는 횟수를 지정하는 특정 address 문자가 제공됩니다. 프로그래머는 활성 제어 시스템과 원하는 측정 단위에 따라 일반적으로 P, X, U, F 또는 S 중 올바른 address 문자를 선택해야 합니다. 이러한 address의 수학적 해석은 시스템 레벨의 parameter 설정에 크게 좌우되며, 이 parameter는 정수 입력을 여러 소수 자릿수로 배율 조정하거나 소수점 허용 여부를 결정할 수 있습니다.
또한 G04 명령 동작은 시간 기반 모드로 프로그래밍되었는지 아니면 spindle revolution 기반 모드로 프로그래밍되었는지에 따라 달라집니다. 시간 기반 모드에서는 축이 seconds 또는 milliseconds 단위의 정밀한 시간 동안 일시 정지하므로 하드웨어 상태를 안정시키는 데 이상적입니다. revolution 기반 모드에서는 축 일시 정지가 spindle의 encoder와 직접 동기화되므로, spindle이 지정된 횟수만큼 회전한 후에만 dwell이 종료되며, 이는 균일한 절삭 및 chip 분쇄에 필수적입니다.
; Fanuc 구문 G04 P_ ; G04 X_ ; G04 U_ ; G04 X(U, P)_ Q_ ;; Siemens 구문 G4 F_ ; G4 S_ ; G4 S<n>=_ ; G04 X_ ; G04 P_ ;
; Mitsubishi 구문 G94 G04 X_ ; G94 G04 P_ ; G94 G04 U_ ; G95 G04 X_ D_ ;
| 브랜드 | 파라미터 | 기능 설명 | 유효 범위 / 비트 |
|---|---|---|---|
| Fanuc | Parameter 3405 bit 1 (DWL) | dwell 실행 제어: 0 = 항상 seconds; 1 = G94에서는 seconds, G95에서는 spindle revolutions. | 0 또는 1 |
| Fanuc | Parameter 1020 bit 7 (DWT) | P address의 increment 시스템 결정: 0 = 활성 increment 시스템 기준(예: IS-B의 경우 1 ms); 1 = 단위를 1 millisecond로 고정. | 0 또는 1 |
| Fanuc | Parameter 8002 bit 1 (DWE) | IS-C increment 시스템에서 PMC 축 제어 시 프로그래밍 가능한 최소 dwell 시간 지정: 0 = 1 ms; 1 = 0.1 ms. | 0 또는 1 |
| Siemens | MD20734 $MC_EXTERN_FUNCTION_MASK bit 2 | ISO Dialect 모드 기준: 0 = 항상 seconds/milliseconds; 1 = G94/G98에서는 seconds, G95/G99에서는 spindle revolutions. | 0 또는 1 |
| Siemens | MD11411 $MN_ENABLE_ALARM_MASK bit 7 | stop delay area 경고 Alarms 16954 및 16957 활성화. | 0 또는 1 |
| Siemens | MD11550 $MN_STOP_MODE_MASK | 시스템 레벨의 stop delay area 경계를 정의. | 시스템 의존적 |
| Mitsubishi | Parameter #8112 DECIMAL PNT-P | P address에서 소수점의 유효 여부 결정: 0 = 소수점 무시; 1 = 소수점 유효. | 0 또는 1 |
| Mitsubishi | Parameter #19014 G04 P factor | 소수점이 없는 P address 정수를 10<sup>n</sup> 배율로 조정. | -3 ~ 3 |
| Mitsubishi | Parameter #1173 dwlskp | dwell을 중단하기 위한 PLC 인터페이스 skip 입력 신호 조합(Skip 1 ~ Skip 3) 정의. | 0 ~ 7 |
| Mitsubishi | Parameter #8130 Dwell in rev. | 동기 feed (G95) 모드에서 dwell 유형 결정: 0 = 시간 기반(seconds); 1 = spindle revolutions. | 0 또는 1 |
브랜드별 응용
Fanuc
Fanuc 제어 시스템 환경에서 G04는 축 interpolation을 일시 중지하는 정밀한 non-modal tool 역할을 합니다. 프로그래머는 parameter 1020 bit 7 (DWT) 및 parameter 3405 bit 1 (DWL)을 설정하여 P address가 고정된 millisecond 값으로 작동하는지 여부와 G95 모드에서 G04가 spindle revolutions로 전환되는지 여부를 제어해야 합니다.
표준 G-code 구문은 G04 P_, G04 X_ 또는 선반용 G04 U_를 지원합니다. multi-stage skip 옵션이 활성화된 경우, 구문은 G04 X_ Q_ 또는 G04 P_ Q_로 확장되어 외부 PLC 신호가 dwell을 중단할 수 있도록 합니다.
- 파라미터: Parameter 1020 bit 7은 P를 1 ms로 고정합니다. Parameter 3405 bit 1은 G95 feed에서 revolution 기반 dwell을 활성화합니다. Parameter 8002 bit 1은 PMC 축 제어 하의 최소 시간 increment를 제어합니다.
- 알람: cutter compensation(G41/G42) 활성 상태에서 이동이 없는 block이 여러 개 발생하면 Alarm PS0041이 트리거됩니다. 프로그래밍된 Q address가 1 ~ 4(또는 1 ~ 8)의 범위를 벗어나면 Alarm PS0370이 트리거됩니다. 여러 path에서 동일한 고속 skip 신호가 중복 선택되면 Alarm PS0373이 트리거됩니다.
- 버전 차이: 선반(T 시리즈) 시스템은 dwell을 위해 증분 U address를 기본적으로 지원하는 반면, 머시닝 센터(M 시리즈) 제어장치는 주로 dwell을 X 및 P로 제한합니다. 고속 continuous skip 옵션은 표준 Q1 ~ Q4 제한과 비교하여 Q address 범위를 Q1 ~ Q8로 확장합니다.
경고: cutter compensation이 활성화된 동안 연속적인 dwell block이나 보조 명령을 함께 프로그래밍하면 path look-ahead vector가 혼선되어 즉각적인 PS0041 공구 간섭 알람이 발생할 수 있습니다.
Siemens
순수 Siemens 제어장치는 G4 구문을 사용하여 dwell 명령을 구현하며, 이 명령은 반드시 자체 NC block에 독립적으로 존재해야 합니다. 프로그래머는 머신 데이터 MD20734 bit 2를 사용하여 활성 G94/G95 feed 모드에 따라 G4 명령이 seconds에서 spindle revolutions로 동적으로 전환되는지 여부를 결정합니다.
순수 Sinumerik 모드에서 G4는 seconds 단위의 시간에 대해 G4 F_를, 회전 수에 대해 G4 S_를 수용합니다. 또한, 고유한 G4 S<n>=_ 구문을 사용하면 dwell을 특정 2차 spindle revolutions와 동기화할 수 있으며, G291 ISO Dialect 모드는 구문을 G04 X_ 또는 G04 P_로 변환합니다.
- 파라미터: MD20734 bit 2는 ISO 모드에서 feedrate 의존적 dwell 단위를 활성화합니다. MD11411 bit 7은 stop delay area 경고 알람을 활성화합니다. MD11550은 물리적 stop delay area 경계를 정의합니다.
- 알람: 보조 M-code 또는 G-기능이 G4와 동일한 block에 프로그래밍되면 Alarm 12120이 발생합니다. operator가 stop delay area 내에서 override를 0으로 설정하여 programmed stop을 시도하면 Alarm 16954 또는 16957이 발생합니다. 기계적 상태 timeout은 clamping Alarms 700011, 700013 또는 700022를 생성합니다.
- 버전 차이: 순수 Siemens 모드(G290)와 ISO Dialect 모드(G291) 간의 전환은 G4 address를 F/S에서 X/P로 변경합니다. 순수 모드에서는 특정 spindle revolutions가 인라인으로 지정되는 반면, ISO 모드에서는 parameter 기반 feedrate 추적을 사용합니다.
경고: Sinumerik parser가 block 구문 오류 Alarm 12120으로 실행을 즉각 중단하므로, 절삭유 코드나 보조 M-기능을 G4 dwell 명령과 동일한 block에 프로그래밍하지 마십시오.
Mitsubishi
Mitsubishi 시스템은 축 일시 정지를 PLC 하드웨어 상태와 긴밀하게 통합하는 강력한 G04 standby 로직을 제공합니다. 프로그래머는 parameter #8130에 의존하여 G95에서 dwell이 spindle revolutions에 맞게 조정되는지 확인하고, parameter #8112를 설정하여 소수점을 확인합니다.
구문상 Mitsubishi는 G04 X_, G04 P_ 및 선반 전용 G04 U_ 형식을 지원합니다. 회전 기반 정지의 경우, G04 X_ D_와 같이 D address를 추가하면 dwell이 지정된 spindle encoder에 연결됩니다.
- 파라미터: Parameter #8130은 G95에서 revolution 기반 dwell을 활성화합니다. Parameter #8112는 P address에서 소수점 입력을 확인합니다. Parameter #19014는 정수 전용 P 값을 배율 조정합니다. Parameter #1173은 dwell을 PLC skip 입력에 연결합니다.
- 알람: G28 또는 G53과 같이 호환되지 않는 G-code 조합이 사용되면 Alarm P45가 트리거됩니다. 고속 고정밀 제어 모드(G05 P10000 또는 G05 P20000)가 활성화된 상태에서 G04가 실행되면 Alarm P34가 트리거됩니다.
- 버전 차이: 선반(L 시리즈) 시스템은 U address를 지원하는 반면, 머시닝 센터(M 시리즈) 시스템은 시간 및 revolution 명령을 X 및 P로 제한합니다. Multiple-Spindle Control II 구성에서는 D address 지정이 불가능해지며, 대신 PLC에서 직접 인코더 선택 신호를 동적으로 추적합니다.
경고: spindle이 정지된(M05 사용) G95 모드에서 revolution 기반 G04 dwell을 프로그래밍하면 CNC 시스템이 무한히 대기하게 되어 수동 override를 시작할 때까지 장비가 완전히 잠깁니다.
브랜드 비교
| 비교 항목 | Fanuc | Siemens | Mitsubishi |
|---|---|---|---|
| dwell 단위 실행 | 기본값은 seconds이며, Parameter 3405 bit 1 (DWL)이 1로 설정된 경우 G95 모드에서 spindle revolutions로 실행됩니다. | 기본적으로 seconds(G4 F...) 또는 spindle revolutions(G4 S...)를 사용하며, ISO Dialect 모드에서는 MD20734 bit 2를 통해 G94/G95에 적응형으로 작동합니다. | 기본값은 seconds이며, Parameter #8130이 1로 설정된 경우 G95 모드에서 spindle revolutions로 실행됩니다. |
| address 형식 | P(Parameter 1020에 따른 정수/ms), X(seconds/소수점 가능), U(선반 전용 incremental 축). | F(seconds), S(마스터 spindle revolutions), S<n>=(특정 spindle), 또는 X / P(ISO 모드). | X(seconds/소수점 가능), P(정수/배율 parameter 조정을 따름), U(선반 전용 incremental 축), 및 D(spindle 선택). |
| dwell 중단 / skip | G04 block 내부의 multi-stage skip Q address가 즉시 dwell을 중단합니다. | — (no source) | parameter #1173 (dwlskp)을 통한 PLC 입력으로 dwell skip 기능을 직접 설정합니다. |
| 2차 spindle dwell | — (no source) | 인라인 구문 G4 S<n>=...을 사용하여 특정 2차 spindle revolutions를 기준으로 dwell이 가능합니다. | Multi-Spindle Revolution Dwell은 G95 모드에서 G04와 함께 spindle 식별자 D를 지정합니다. |
| 타이밍 배율 / scaling | Parameter 1020 bit 7 (DWT)을 통해 1 ms로 고정되거나 IS 시스템을 따릅니다. | — (no source) | Parameter #19014는 소수점 없는 정수 P를 10<sup>-3</sup> ~ 10<sup>3</sup> 배율로 조정합니다. |
| 단독 block 제약 | cutter compensation 활성 시: 연속적인 G04 지령은 PS0041을 유발합니다. | 반드시 block 내에 단독으로 프로그래밍해야 하며, 다른 NC 요소(동기 작용/M-기능)가 있으면 Alarm 12120이 발생합니다. | 수치값은 반드시 G04 뒤에 놓여야 하며, G28/G53과의 조합은 P45를 유발합니다. G05 모드 중에는 dwell이 불가능합니다(P34 발생). |
기술 분석
이러한 제어 시스템의 심층적인 기술 분석에 따르면 dwell 명령이 장비의 하드웨어 및 PLC와 통합되는 방식에 있어 매우 상이한 설계 철학이 드러납니다. Fanuc 시스템은 상세한 parameter 수준 설정을 강조하여 프로그래머에게 P address가 스케일링되는 방식에 대한 명시적인 제어 권한을 제공합니다. DWT parameter(1020 bit 7)를 활성 시스템 increment(IS-B 또는 IS-C)에 연결하거나 고정된 millisecond 스케일로 고정함으로써, Fanuc은 다축 구성에 대해 최고의 유연성을 제공하지만 소수점이 생략되는 경우 프로그래밍의 모호성을 초래합니다. 나아가 Fanuc은 G04가 Q address를 통해 고속 skip 신호와 직접 상호작용하도록 독특하게 허용하여 고속 탐침(probing) 및 skip 사이클에 매우 효과적인 하드웨어 수준의 인터럽트 메커니즘을 구축합니다.
반면 Siemens는 G-code block 기능을 엄격하게 분리하는 동시에 강력한 다중 spindle 기능을 제공하는 구조적이고 모듈화된 설계를 따릅니다. Siemens는 프로그래머가 기본적으로 seconds(F) 또는 revolutions(S) 단위로 dwell을 지정할 수 있도록 허용하며, 인라인 S<n>= 구문을 사용하여 2차 spindle을 타겟팅할 수도 있습니다. 이 고유한 다중 spindle 지원은 parameter 상태 변경이나 별도의 spindle 식별 address에 의존해야 하는 다른 브랜드와 완전히 다릅니다. 그러나 Siemens는 엄격한 구문 격리를 적용합니다. G4와 함께 보조 명령이나 G-기능을 프로그래밍하면 즉시 구문 알람(12120)이 발생합니다. 또한 Siemens는 G4를 동기 작용(synchronized actions)과 통합하므로, non-modal PLC 신호가 프로그램 중간에 성공적으로 발신되도록 보장하기 위해 최소 2회의 내부 interpolator 사이클(예: F0.1)과 동일한 dwell 지속 시간이 요구됩니다.
Mitsubishi는 Fanuc의 block 수준 skip 신호와 완전히 차별화되는 PLC 구동 skip 기능을 통합하는 동시에, 독자적인 다중 spindle address 지원을 제공함으로써 이 두 가지 패러다임을 융합합니다. Mitsubishi의 G04 skip 조건은 parameter #1173을 통해 직접 설정되어 물리적인 PLC 입력을 dwell 실행과 바로 매핑합니다. 이를 통해 PLC는 dwell을 동적으로 중단할 수 있는 반면, Fanuc의 skip은 NC block 내부에 전용 Q address가 필요합니다. 또한 Mitsubishi는 정수 입력을 10<sup>-3</sup> ~ 10<sup>3</sup> 배율로 조정하기 위해 고유한 P factor parameter(#19014)를 활용합니다. 이 강력한 스케일링 메커니즘은 레거시 코드가 수동 코드 수정 없이 서로 다른 장비에서 원활하게 실행되도록 특별히 설계되어, 다세대 장비가 섞여 있는 현장에서의 주요 장애물을 해결합니다.
프로그램 예제
Fanuc 프로그램 예제
G94 G04 P1000 ; (IS-B 하에서 1.0초 동안의 시간 기반 dwell, 또는 Parameter 1020 DWT에 의존하여 1ms로 고정)
G95 G04 X30.0 ; (feed per revolution이 활성화되고 Parameter 3405 DWL=1일 때 30 spindle revolutions 동안 dwell)
G04 X1.5 Q2 ; (skip 신호 Q2에 할당된 multi-stage skip 옵션을 사용하여 1.5초 동안 dwell)
Fanuc 예제 공운전 (dry run)
첫 번째 block에서 G94 코드는 feed per minute 모드를 설정합니다. G04 P1000 명령은 표준 IS-B increment 시스템(1 단위가 1 millisecond에 해당) 하에서 정확히 1.0초의 dwell을 실행하거나, parameter 1020(DWT)이 1로 설정된 경우 정확히 1 millisecond로 고정되어 dwell이 조기에 종료됩니다. 두 번째 block에서 G95 코드는 장비를 feed per revolution 모드로 전환합니다. parameter 3405(DWL)가 1로 설정된 상태에서 G04 X30.0은 spindle이 정확히 30회전 회전을 완료할 때까지 모든 축 interpolation을 일시 중지하도록 컨트롤러에 지시합니다. 세 번째 block에서 G04 X1.5 Q2 명령은 축을 1.5초 동안 정지시키지만, skip 선택기 Q2에 할당된 고속 skip 신호를 감시하기 위해 활성 상태를 유지합니다. 1.5초가 경과하기 전에 이 PLC 입력 신호가 트리거되면 dwell이 즉시 종료되고 제어장치는 다음 프로그램 block으로 진행합니다.
Siemens 프로그램 예제
G04 F5 ; (5초 동안 실행 일시 정지)
G4 S30 ; (30 마스터 spindle revolutions 동안 dwell)
G4 S2=50 ; (2차 spindle 2의 50 revolutions 동안 dwell)
G95 G04 X1000 ; (ISO Dialect 모드: G95가 활성 상태이고 MD20734 bit 2가 1로 설정되었을 때 1 spindle revolution 동안 dwell)
Siemens 예제 공운전
첫 번째 block에서 G04 F5 명령은 spindle이 계속 회전하는 동안 모든 축 interpolation을 정확히 5.0초 동안 일시 정지하도록 Siemens Sinumerik interpreter에 지시합니다. 두 번째 block에서 G4 S30은 spindle 속도를 기준으로 계산된 dwell을 명령하여 마스터 spindle이 정확히 30회 회전하는 동안 축 이동을 일시 정지합니다. 세 번째 block에서 G4 S2=50은 순수 다중 spindle 기능을 활용하여 2차 spindle(Spindle 2)이 정확히 50회 회전하는 동안의 일시 정지를 지령하며, 이는 동기화된 sub-spindle 파트 handoff에 중요합니다. 네 번째 block에서 시스템은 G95가 활성화된 ISO Dialect 모드(G291)에서 실행됩니다. MD20734 bit 2가 1로 설정되어 있어 입력을 seconds가 아닌 spindle revolutions로 평가하므로, G04 X1000 명령은 1 spindle revolution 동안 dwell을 수행하게 됩니다.
Mitsubishi 프로그램 예제
G94 G04 X5.0 ; (feed-per-minute 모드에서 X address를 사용하여 5.0초 동안 표준 시간 기반 dwell)
G94 G04 P5000 ; (scaling parameter #19014 또는 검증 parameter #8112의 영향을 받는 P address를 사용한 시간 기반 dwell)
G95 G04 X100. D1 ; (G95 모드에서 spindle 1에 동기화된 100 revolutions 동안의 revolution 기반 dwell)
Mitsubishi 예제 공운전
첫 번째 block에서 G94 feed-per-minute 모드가 활성화되고, G04 X5.0은 공구 축을 정확히 5.0초 동안 일시 정지합니다. 두 번째 block에서 G04 P5000이 명령됩니다. parameter #8112(DECIMAL PNT-P)가 0으로 설정되어 소수점이 무시되고, scaling parameter #19014가 -3(1/1000 배율)으로 설정된 경우, 정수 5000은 5초로 스케일링됩니다. 만약 #19014가 0으로 설정된 경우, 시스템의 기본 increment에 따라 5000 milliseconds(5.0초) 또는 5000초 동안 dwell할 수 있습니다. 세 번째 block에서 G95 feed per revolution mode가 활성화됩니다. G04 X100. D1 명령은 Spindle 1의 encoder에 직접 동기화하여 정확히 100 spindle revolutions 동안 dwell하도록 장비에 지시하여, 공구가 물리적인 spindle 회전과 동기화되어 일시 정지하도록 보장합니다.
오류 분석
| 브랜드 | 알람 코드 | 발생 조건 | 오퍼레이터 증상 | 근본 원인 및 조치 |
|---|---|---|---|---|
| Fanuc | PS0041 (Interference in Cutter Compensation) | G41 또는 G42 cutter compensation이 활성 상태인 동안 G04를 다른 비이동 block(보조 M-code 등)과 연속으로 지령하는 경우. | 장비 이동이 정지되고 화면에 PS0041 알람이 표시되며 자동 실행이 중단됩니다. | 연속적인 비이동 block으로 인해 tool-path look-ahead vector가 혼선되어 수학적으로 계산된 과절삭(overcut)이 유발됩니다. G41/G42가 활성화된 상태에서 여러 dwell 또는 비이동 block을 함께 프로그래밍하지 마십시오. |
| Fanuc | PS0370 (G31P/G04Q Error) | Q address 값을 유효 범위(표준 multi-stage skip의 경우 1 ~ 4, continuous skip의 경우 1 ~ 8)를 벗어나 프로그래밍하거나, skip 옵션이 없는 시스템에서 Q를 지령하는 경우. | block 실행 전에 PS0370 알람 메시지와 함께 프로그램이 즉시 정지합니다. | 잘못된 Q 값이 지령되었거나 제어장치에서 multi-stage skip 옵션이 활성화되지 않았습니다. Q address 값을 수정하거나 skip 기능 옵션을 활성화하십시오. |
| Siemens | 12120 (G function not separately programmed) | G4 dwell 명령과 정확히 동일한 NC block에 보조 M-기능, 동기 작용 또는 기타 G-code를 프로그래밍하는 경우. | 제어장치가 실행 중 block을 거부하고, 작동을 정지하며 Siemens Alarm 12120을 발생시킵니다. | Siemens는 G4 dwell 명령을 별도의 NC block에 단독으로 프로그래밍할 것을 요구합니다. 모든 보조 코드 및 동기 작용을 별도의 block으로 이동하십시오. |
| Siemens | 700013 (Operation not allowed: chuck unclamped) | tool 이동을 실행하기 전에 chuck clamping에 필요한 기계적 지연 시간을 무시하는 경우. | CNC 안전 시스템이 작동하여 프로그램을 중단하고 Alarm 700013을 발생시킵니다. | chuck의 물리적 clamping 메커니즘이 완전히 안정되기 전에 이동 block이 지령되었습니다. 이동 전에 chuck clamp 상태가 안정될 수 있도록 충분한 시간을 허용하는 G4 dwell 명령을 프로그래밍하십시오. |
| Mitsubishi | P45 (G-Code Combination) | G28(기준 위치 복귀) 또는 G53(기계 좌표계)과 같이 호환되지 않는 G-code와 정확히 동일한 block에서 G04를 지령하는 경우. | 장비가 즉시 정지하고 P45 알람 코드를 표시하며 활성화된 자동 사이클을 종료합니다. | NC parser가 non-modal dwell과 기준 위치 또는 좌표 설정 코드의 잘못된 조합을 감지했습니다. G04를 단독 block으로 프로그래밍하거나 호환되는 G-code 쌍을 확인하십시오. |
| Mitsubishi | P34 (High-speed high-accuracy control error) | 고속 고정밀 제어 II(G05 P10000) 또는 III(G05 P20000)와 같은 고급 모드가 활성화된 상태에서 G04 dwell 명령을 실행하는 경우. | 사이클이 중단되고 컨트롤러 화면에 P34 알람 코드가 즉시 표시됩니다. | 고급 path smoothing 알고리즘이 활성화된 상태에서는 dwell 정지를 처리할 수 없습니다. G04 명령을 실행하기 전에 G05 고속 모드를 일시적으로 비활성화하십시오. |
실무 응용 가이드
자동화 라인의 반복 정밀도와 가공 안정성을 극대화하기 위해 현장 프로그래머는 G04 dwell 명령을 지령하기 전 파라미터 설정을 반드시 확인해야 한다. Fanuc의 1020번 파라미터(DWT)를 사전 확인하면 이 명령어에서 가장 빈번한 비계획 정지를 없앨 수 있다. 만약 Parameter 1020 bit 7 (DWT)이 1로 잘못 잠겨 있으면, 프로그래머가 1.0초의 정지를 의도해 입력한 G04 P1000 지령이 단 1 millisecond(0.001초)로 무참히 스케일링된다. 그 결과 절삭 부하가 충분히 해제되기도 전에 축이 급격히 interpolation을 재개하여, 공구가 워크피스 표면을 길게 긁으면서 비싼 카바이드 공구를 즉시 파손시키고 가공품을 불량으로 만든다. 또한, Mitsubishi 시스템에서 Parameter #8130 (Dwell in rev.)이 1로 설정된 상태에서 spindle이 멈춘(M05) 상태로 G04 revolution-based dwell을 실행하면, encoder가 spindle 회전을 감지하지 못해 기계가 infinite cycle hang(무한 대기 상태)에 빠져 라인이 완전히 마비된다. Siemens 제어장치에서도 G4와 함께 보조 M-code나 G-code를 같은 block에 섞어 쓰면 Alarm 12120을 뿜으며 기계가 정지하므로, 항상 G4를 단독 block으로 지령하여 chuck 클램핑(Alarm 700013) 및 turret 회전(Alarm 700022)의 물리적 지연 시간을 지키는 레이아웃을 작성해야만 예기치 못한 비가동 시간과 불량률을 제로로 제어할 수 있다.
관련 명령 구조
- G01 Linear Interpolation: G04는 직선 패스의 끝에서 tool 이동을 일시 중지하고 절삭 압력을 완화하기 위해 G01 feed block 사이 또는 끝에 자주 프로그래밍됩니다.
- G02 Circular Interpolation: G04는 G02 시계 방향 원호 바로 뒤에 사용하여 공구 압력을 안정시키고 내경 반경에서 부드럽고 둥근 마무리를 보장할 수 있습니다.
- G03 Circular Interpolation: G02와 마찬가지로, G04는 G03 반시계 방향 원호 뒤에 간단한 일시 정지를 제공하여 절삭력을 분산시키고 워크피스 모서리에 witness mark가 생기는 것을 방지합니다.
- G09 Exact Stop: G04는 시간 기반 일시 정지를 실행하는 반면, G09는 non-modal 코드로 block 끝에서 장비를 완전 정지 상태로 감속하여 다음 block이 시작되기 전에 위치를 검증하도록 강제합니다.
- G31 Skip Function: skip 기능은 외부 입력 신호에 의해 즉시 축 이동을 종료할 수 있도록 하며, Mitsubishi의 parameter 구동 dwell skip과 유사한 PLC skipping 로직을 공유합니다.
결론
G04 dwell 명령을 올바르게 활용하는 것은 단순히 장비를 일시 정지시키는 문제를 넘어, 전체 가공 공정의 불량률을 획기적으로 낮추고 생산 라인의 비가동 시간을 방지하기 위한 핵심 전략이다. 자동화 가공을 시작하기 전, 각 제어장치의 스케일링 파라미터와 G94/G95 모드 변환에 따른 dwell 단위 변동 메커니즘을 체크리스트로 확인하는 작업이 표준 운용 절차(SOP)에 등록되어야 한다. 이 사소해 보이는 검증 단계를 도입하는 것만으로도, 예기치 않은 스핀들 infinite hang이나 cutter compensation 충돌 알람으로 인한 비계획 정지를 완벽히 예방하고 24시간 무인 가공 라인의 연속 생산 성능을 최상의 상태로 유지할 수 Ust있다.
자주 묻는 질문 (FAQ)
자동화 라인에서 팔레트 교환 가공 시 G04 시간 오류로 불량이 발생할 때 가장 먼저 점검해야 할 파라미터는 무엇인가요?
Fanuc 시스템에서는 Parameter 1020 bit 7 (DWT)을 가장 먼저 확인해야 하며, 이 값이 1로 되어 있으면 정수 P 뒤에 소수점이 지원되지 않고 단위가 1ms로 고정됩니다. 또한, Mitsubishi의 경우 Parameter #19014 (G04 P factor)가 소수점 없는 P 값을 10의 거듭제곱배로 스케일링하므로 이 설정을 검증해야 합니다. PLC가 압력 센서나 리미트 스위치의 하드웨어 상태를 이미 확인한 경우, 고속 skip 기능(Q address)을 결합하여 정적 시간 대기를 건너뛰도록 구성하는 것도 불량 예방의 좋은 방법입니다. 자동 가공 시작 블록 상단에 G94 또는 G95 모드 상태를 명시적으로 재설정하고, 의심스러운 P 값 대신 소수점이 완벽히 지원되는 X address를 사용해 프로그램 검증을 수행하십시오.
스핀들을 정지(M05)한 상태에서 G04 명령을 실행할 때 기계가 알람 없이 무한히 멈추는 현상은 어떻게 해결하나요?
이는 G95(feed per revolution) 모드 상태에서 G04 revolution-based dwell이 활성화되었을 때(Fanuc 파라미터 3405=1 또는 Mitsubishi #8130=1) 스핀들이 멈춰 인코더가 회전수를 전혀 읽지 못해 발생합니다. 특히 다중 스핀들 장비(Multiple-Spindle Control II 등)에서는 마스터 스핀들 외에 부 스핀들의 엔코더 신호를 PLC가 정상적으로 추적하지 않아 동기화 대기가 풀리지 않는 경우가 있습니다. G04 블록 앞에 G94로 피드 모드를 일시 변환하여 시간 기반 dwell로 변경하거나, 프로그램에서 spindle 회전 신호가 도달한 것을 확인한 후 dwell 블록이 해석되도록 M-code 시퀀스를 정렬하십시오.
G41/G42 보정 모드 중에서 G04 dwell을 사용하면 왜 PS0041 알람이 발생하며, 이를 피하는 프로그래밍 방법은 무엇인가요?
cutter compensation(G41/G42)이 활성화되어 있을 때 제어장치는 경로 계산을 위해 지속적인 tool-path look-ahead vector를 연산 버퍼에 로드합니다. 이때 G04 dwell이나 보조 M-code처럼 실제 물리적인 축 이동이 없는 비이동 블록이 연속으로 나열되면 look-ahead 버퍼가 끊기며 경로 간섭(과절삭)으로 판정해 PS0041 알람이 즉시 발생합니다. G41/G42 보정이 켜진 구간에서는 절대 dwell을 연속으로 사용하지 말고, 가공이 일시 정지해야 하는 모서리나 끝점 이전에 G40으로 보정을 취소한 뒤 단독 G04 블록을 입력하고 다시 보정을 가동하도록 하십시오.
아직 해결되지 않았나요?
이 주제에 대해 AI 어시스턴트에게 자연어로 물어보세요. 검증된 소스를 기반으로 하며 환각이 없습니다.

- 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의 공동 창업자로서 활동을 이어가고 있습니다.
관련 기사
이 주제에 관한 다른 기사
지멘스 CYCLE800 평면 선회 및 공구 정렬 실무 가이드
지멘스 CNC CYCLE800 명령어를 활용한 3+2축 평면 선회 및 공구 정렬 방법과 Alarm 61190 및 61153 오류를 신속히 해결하고 자동화 라인 비가동 시간 및 불량률을 개선하는 실무 가이드입니다.
Siemens CYCLE72 윤곽 가공: Sinumerik 가이드
Sinumerik CNC에서 Siemens CYCLE72 윤곽 밀링을 완벽하게 설정하는 방법입니다. 파라미터 구성법을 배우고 Alarm 61123 차단을 방지하며, 비가동 시간과 불량률을 없애기 위한 척 클램프 등 가공 노하우를 확인하십시오.
Siemens CYCLE952 윤곽 선삭 cycle 프로그래밍 가이드
Siemens Sinumerik CNC에서 CYCLE952 윤곽 선삭 cycle의 파라미터를 올바르게 구성하고, Alarm 61051 및 61059 오류를 방지하여 자동화 가공 라인의 비계획 정지 비가동 시간과 불량률을 최소화하는 실무 프로그래밍 가이드.
Siemens SLOT1 및 SLOT2 슬롯 가공 cycle 프로그래밍 가이드
Siemens Sinumerik CNC에서 SLOT1 및 SLOT2 원호 홈 밀링 cycle의 파라미터를 올바르게 구성하고, Alarm 61000 및 61105 오류를 방지하여 자동화 라인의 비가동 시간을 최소화하는 실무 프로그래밍 방법 안내.