Skip to main content
CNC.wikiCNC.wiki

G40 G41 G42 CNC 공구 반경 보정 및 보정 취소 완벽 가이드

Fanuc, Siemens, Mitsubishi CNC 시스템의 G40, G41, G42 공구 반경 및 노즈 R 보정 파라미터를 설정해 충돌과 비가동 시간을 방지하는 현장 실무 지침.

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

CNC CARE 공동 창업자

서론

자동화 라인의 반복 가공 공정 중, 공구 보정의 시작점이 보정 원 내부로 지정되거나 진입 접선이 설계 프로파일을 침범하는 즉시, 회전하는 cutting tool이 경로 외곽으로 튕겨 나가는 오버컷 오류가 발생합니다. 이 오버컷 오류는 툴이 고정되어 있는 vise jaw, clamp, compensating chuck 또는 double turret 등의 고정 장치를 물리적으로 들이받는 치명적인 대형 hard collision 사고를 일으켜 공구를 부러뜨리고 spindle을 정지시킵니다. 이 같은 사고는 수백만 원에 달하는 설비 파손뿐만 아니라, 생산 라인 전체를 멈춰 세워 비계획 정지(비가동 시간)를 급격히 늘리고 가공 불량률을 치솟게 만듭니다. 실제로 이 파라미터를 검증하지 않고 양산에 들어가면, 팔레트 교환 후 두 번째 사이클부터 치수 편차가 누적되어 최종 검사에서 불량이 발견된다. 특히 19607번 파라미터를 사전 확인하면 이 명령어에서 가장 빈번한 비계획 정지를 없앨 수 있다. Fanuc 제어기의 19607번 파라미터 bit 5 (CAV)는 간섭 자동 회피를 제어하여, 공구가 형상을 파고들 때 펌웨어 수준에서 안전 경로를 실시간 계산해 가공을 중단하지 않고 계속 이어나가게 해줍니다. 자동화 라인의 고속 반복 정밀도를 유지하고 가동률을 극대화하기 위해서는 G40, G41, G42 공구 반경 보정 명령어의 물리적 경로 메커니즘과 제어기별 파라미터 구성 요소를 선제적으로 장악해야만 합니다.

기술 요약

사양상세 정보
G-Code 명령어G40 (보정 취소), G41 (공구 반경/노즈 R 보정 좌측), G42 (공구 반경/노즈 R 보정 우측)
모달 그룹Group 07 (Modal)
호환 브랜드Fanuc, Siemens, Mitsubishi
핵심 파라미터Fanuc: 5003 (SUP/SUV startup/cancel type), 19607#5 (CAV 간섭 체크 회피); Siemens: OFFN (contour allowance), $TC_DP6 (공구 반경); Mitsubishi: #8157 (Nose R 보정 Type B), #1289 ext25 bit 0 (미세 코너 라운딩)
주요 운동학적 제한 사항보정 선택(G41/G42) 및 해제(G40)는 반드시 직선 interpolation 블록(G00 또는 G01)에서 프로그래밍되어야 합니다. 보정이 활성화된 동안에는 활성 가공 평면(G17/G18/G19)을 전환해서는 안 됩니다.

핵심 요약

  • 보정 시작(G41/G42) 및 취소(G40) 명령어는 유효한 보정 vector를 생성하고 alarm을 예방하기 위해 반드시 직선 interpolation 이동 블록(G00 또는 G01)에만 지정해야 합니다.
  • vector 오류를 방지하기 위해 활성화 블록의 직선 이동 거리는 실제 공구 노즈 또는 cutter 반경보다 엄격히 커야 합니다.
  • cutter 보정이 활성화된 상태에서 활성 가공 plane(G17, G18 또는 G19)을 전환해서는 안 됩니다. plane을 변경하기 전에는 항상 G40 취소를 실행해야 합니다.
  • 교차 계산을 중단시키는 연속적인 비좌표 이동 블록(dwell 또는 M-code 등)의 삽입을 피하여 look-ahead 버퍼를 지속적으로 모니터링하십시오.
  • 정삭 또는 황삭 offset 패스를 빠르게 생성하려면 Siemens에서 인라인 OFFN= 파라미터를 사용하여 직접 contour allowance를 프로그래밍하십시오.
  • 선반 시스템에서 수동 G41/G42 전환 없이 노즈 보정 방향을 자동으로 감지하고 할당하려면 Mitsubishi 고유의 G46 명령어를 사용하십시오.
  • overcutting이 감지되었을 때 alarm PS0041로 정지하는 대신 tool path를 동적으로 실시간 재계산하여 cycle을 계속 실행하려면 Fanuc 파라미터 19607 bit 5 (CAV)를 활성화하십시오.

기본 개념

G41 및 G42 명령어의 실질적인 프로그래밍 효과는 공구의 실제 중심 경로를 프로그래밍된 수학적 프로파일로부터 cutter 또는 공구 노즈 반경만큼 동적으로 오프셋시키는 것입니다. 이를 통해 프로그래머는 모든 각도와 contour에 대한 중심선 오프셋을 수동으로 계산할 필요 없이 파트 도면 치수 그대로 G-code를 직접 작성할 수 있습니다.

과도기 블록(G41/G42를 통한 시작 및 G40을 통한 취소)은 보정 vector를 정확하게 빌드하거나 해제하기 위해 공구 반경 또는 오프셋 값보다 긴 이동 거리를 갖는 직선 이동 명령어([g01-linear-interpolation](/ko/g01-linear-interpolation))여야 합니다. 보정이 활성화된 상태에서 원호 경로(G02/G03)로 시작/취소를 시도하거나 가공 plane([g17-g18-g19-plane-selection](/ko/g17-g18-g19-plane-selection))을 전환하면 모든 브랜드에서 alarm이 발생합니다.

CNC 시스템은 공구 경로 사이의 교차 vector를 계산하기 위해 후속 블록을 사전 독출하는 look-ahead에 의존합니다. 작업자는 너무 많은 연속적인 비이동 블록(다중 dwell, 보조 기능 또는 M-code 등)을 실행하여 look-ahead 버퍼를 고갈시키지 않아야 합니다. 그렇지 않으면 교차 수학적 연산이 깨져 alarm을 트리거하거나 공작물에 의도치 않은 파임(gouge)을 초래합니다.

명령 구조

보정 활성화는 modal이며 공구 이동 방향에 대한 trajectory 측면을 제어합니다. G41이 활성화되면 공구 오프셋은 프로그래밍된 contour의 좌측으로 계산됩니다. G42가 활성화되면 오프셋은 공구 경로를 contour의 우측으로 이동시킵니다. 장비를 직접적인 보정 없는 좌표 이동 상태로 복원하려면 G40을 사용한 보정 해제가 필수적입니다.

CNC 장비가 머시닝 센터(M-시리즈)인지 터닝 센터(T-시리즈)인지에 따라 보정 주소와 plane은 다르게 처리됩니다. 머시닝 센터는 plane 선택(G17, G18 또는 G19)이 필요하며 D 또는 H 주소 오프셋 번호를 통해 반경 값을 연계합니다. 터닝 센터는 기본적으로 ZX plane(일반적으로 G18)에서 노즈 반경 보정을 적용하며 T-code 오프셋 레지스터에서 직접 값을 가져옵니다.

각 브랜드 환경별 구문 구조:

  • Fanuc 밀링: G17 G41 X_ Y_ D_; (또는 H 오프셋)
  • Fanuc 터닝: G18 G42 X_ Z_;
  • Siemens: G1 G41 X_ Y_ OFFN=_;
  • Mitsubishi 밀링: G17 G41 X_ Y_ D_;
  • Mitsubishi 터닝: G18 G42 X_ Z_;
  • Mitsubishi 자동: G46 X_ Z_;
  • Mitsubishi 벡터: G41 X_ Y_ I_ J_;
  • 공통 취소: G40 X_ Y_; 또는 G40 X_ Z_;
브랜드주소 / 파라미터설명유효 옵션 / 범위
공통X, Y, Z활성 plane에서의 위치 결정을 위한 좌표.수치 좌표
공통D / H오프셋 레지스터 선택 번호.정수 오프셋 ID (예: D01, H01)
SiemensOFFN등가 경로에 직접 적용되는 contour allowance (오프셋).수치 오프셋 값 (예: OFFN=2.5)
MitsubishiI, J, K시작/취소 vector를 수동으로 전환하기 위한 사용자 정의 좌표.수치 방향 vector 성분

브랜드별 응용

Fanuc

Fanuc 제어기는 정밀한 시스템 구성 레지스터를 통해 공구 노즈 및 cutter 반경 보정을 관리합니다. 파라미터 5003과 5008은 이송 중 보정 vector가 어떻게 생성되고 평가되는지에 대한 기초를 형성합니다. 구체적으로 파라미터 5003은 vector의 시작(start-up) 형상을 결정하며, 파라미터 5008은 방향 확인 중의 반응을 제어합니다.

사용되는 G-code 명령어는 보정 취소를 위한 G40, 경로 좌측 오프셋을 위한 G41, 경로 우측 오프셋을 위한 G42입니다. 머시닝 센터의 경우, G17 G41 X50.0 Y50.0 D01 F200.0; 예제와 같이 활성 plane을 먼저 설정해야 하며(일반적으로 XY plane의 경우 G17), 반경 오프셋은 D 코드를 사용하여 지정됩니다.

  • 파라미터 5003 bit 0 (SUP) 및 1 (SUV): 시작 및 취소 vector의 수학적 동작을 결정합니다. 조합에 따라 Type A (다음/이전 블록에 수직인 vector), Type B (교차 vector 출력) 또는 Type C (이동 명령이 없더라도 블록에 수직인 오프셋) 중에서 선택됩니다.
  • 파라미터 5008 bit 1 (CNC): 보정 후 이동 방향이 프로그래밍된 방향과 90~270도 다를 경우 간섭 체크 중 CNC가 반응하는 방식을 결정합니다. 0 값은 alarm을 발생시키고, 1 값은 alarm을 억제합니다.
  • 파라미터 19607 bit 5 (CAV): 간섭 체크 회피를 제어합니다. 0 값은 overcutting이 감지되었을 때 장비가 alarm (PS0041)을 띄우며 멈추게 하고, 1 값은 간섭이 발생하는 것을 방지하기 위해 장비가 tool path를 지능적으로 변경할 수 있도록 합니다.
  • Alarm PS0034 (NO CIRC ALLOWED IN ST-UP/EXT BLK): 원호 interpolation 모드(G02/G03)가 활성화된 상태에서 프로그래머가 시작(G41/G42) 또는 취소(G40) 명령을 실행하려고 시도할 때 트리거됩니다.
  • Alarm PS0037 (CAN NOT CHANGE PLANE IN G41/G42): cutter 보정 또는 공구 노즈 반경 보정이 활성화된 상태에서 활성 보정 plane(G17, G18 또는 G19)을 전환할 때 트리거됩니다.
  • Alarm PS0041 (INTERFERENCE IN CRC / CUTTER COMPENSATION): 보정이 활성화된 상태에서 물리적인 축 이동 없이 두 개 이상의 블록이 연속적으로 지정되는 경우와 같이 제어기가 과도한 가공(overcutting)이 발생할 것으로 계산할 때 트리거됩니다.
  • 버전별 차이점: M-시리즈(머시닝 센터)와 T-시리즈(선반) 아키텍처 사이에는 근본적인 차이가 존재합니다. M-시리즈 제어기는 특정 반경 오프셋 값을 호출하기 위해 D 또는 H 주소에 크게 의존하며 G17/G18/G19 plane을 능동적으로 관리해야 합니다. ZX plane을 기본으로 하는 T-시리즈 시스템은 T 코드를 사용하여 공구 geometry/wear 오프셋과 가상 공구 노즈 위치(T-번호 1~9)를 모두 호출하므로 별도의 D 코드 없이 보정을 자체적으로 통합합니다.

경고: 작업자는 G41 또는 G42가 활성화된 상태에서 연속적인 비이동 블록이 look-ahead 버퍼를 고갈시키지 않도록 주의해야 합니다. 그렇지 않으면 제어기의 교차 계산이 깨지고 PS0041 alarm과 함께 생산이 중단됩니다.

Siemens

Siemens 제어기는 고급 운동학적 경로 처리 및 인라인 geometry 수정을 통해 공구 반경 보정(TRC)을 구현합니다. 공구의 실제 geometry를 설정하는 데 사용되는 주요 시스템 변수는 $TC_DP1 및 $TC_DP6입니다.

활성 공구 보정은 G41(contour 좌측 가공) 또는 G42(우측 가공)를 사용하여 트리거되고, G40을 사용하여 취소됩니다. 프로그래머는 G1 G41 Y50 F200 OFFN=1.5; 예제와 같이 OFFN= 주소를 사용하여 활성화 블록 내에 직접 인라인 contour allowance를 적용할 수 있습니다.

  • 파라미터 OFFN: 프로그래밍된 contour에 법선 방향의 contour 오프셋(allowance)을 적용하는 선택적 파라미터로, 황삭 가공을 위한 등가 경로를 생성하는 데 유용합니다.
  • 시스템 변수 $TC_DP1 ~ $TC_DP6: 공구 데이터를 정의하는 시스템 변수로, $TC_DP1은 공구 유형(예: 밀링 공구 유형의 경우 120), $TC_DP6은 공구 반경을 지정합니다.
  • 세팅 데이터 SD42900, SD42920, SD42940, SD42950: 공구 및 wear 길이 미러링을 구성하고 plane 변경 전체에 걸쳐 길이를 일정하게 유지하기 위한 설정 데이터입니다.
  • Alarm 10751 "danger of collision due to tool radius compensation": 제어기가 인접한 블록의 오프셋 곡선 간의 교차점을 계산할 수 없는 경우(예: G461 전략을 사용하고 유효한 경로를 해석할 수 없는 경우) 트리거됩니다.
  • Alarm 10757 "changing the compensation plane while tool radius compensation is active not possible": G40으로 TRC를 취소하기 전에 활성 가공 plane(G17, G18 또는 G19)을 변경하려고 할 때 트리거됩니다.
  • Alarm 10753 / 10754 "selection / deselection of the tool radius compensation only possible in linear block": G41, G42 또는 G40이 G00 rapid traverse 또는 G01 선형 feedrate interpolation을 사용하지 않는 블록에 프로그래밍된 경우 트리거됩니다.
  • 버전별 차이점: Siemens 제어기가 ISO dialect T 모드에서 작동할 때, 블록 끝 반응에 영향을 주는 vector를 I, J, K 주소를 사용하여 직선 블록에서 동적으로 프로그래밍할 수 있습니다. 이 확장 vector 기능은 ISO dialect 오리지널 모드에서는 사용할 수 없습니다. 또한 밀링 반경 보정 기능은 ISO dialect 오리지널 모드와 Siemens 840D sl mode 간에 서로 호환되지 않으므로 신중한 프로그램 번역이 필요합니다.

경고: 프로그래머는 충돌 없는 retract 경로가 확실하게 보장되도록 항상 G40 블록의 끝점을 선택해야 하며, 보정이 활성화된 동안 공구 오프셋을 D0으로 프로그래밍하는 것을 피해야 합니다. 이는 안전한 취소 대신 에러 메시지 10750을 유발하기 때문입니다.

Mitsubishi

Mitsubishi 제어기는 머신 파라미터 #8157을 통해 관리되는 시작 trajectory와 파라미터 #1289에 의해 정의되는 미세 코너 라운딩 동작을 포함하여 가공성이 우수한 경로 제어를 제공합니다.

보정은 G41 또는 G42를 사용하여 활성화되고 G40을 사용하여 비활성화됩니다. 선반 시스템에서 G46 명령어는 G46 X50. Z100. ; 예제와 같이 가상의 공구 노즈 포인트를 기반으로 보정 방향 자동 식별을 기본적으로 지원합니다.

  • 파라미터 #8157 (Nose R 보정 Type B): 시작 및 취소 vector trajectory를 선택합니다. 0 (Type A) 설정은 교차 처리 없이 지령 vector에 수직인 오프셋 vector로 경로를 변환합니다. 1 (Type B) 설정은 지령 블록과 다음 블록 간에 교차 연산 처리를 수행합니다.
  • 파라미터 #1289 ext25/bit0: 미세 코너에서 외곽 라운딩을 실행하기 위한 판단 기준을 결정합니다. 0은 일반적인 방법을 적용하고, 1은 1° 이하의 미세 코너 각도를 라운딩하기 위한 전용 방법을 적용합니다.
  • 파라미터 #8071 3-D CMP: M 시스템에서 3차원 공구 반경 보정을 위한 분모 상수 "p" 값을 정의합니다. 좌표 계산에 사용됩니다: Vx = (i × r) / p, Vy = (j × r) / p, Vz = (k × r) / p.
  • Alarm P151 (Arc error): 보정 모드가 직선이 아닌 원호 명령에 의해 취소되거나, 보정 시작 시 장비가 원호 모일 때 I, J, K 유형의 vector가 지정되는 경우 트리거됩니다.
  • Alarm P153 (Interference check): 공구 노즈 반경 직경보다 좁은 홈을 가공할 때와 같이, 프로그램 진행 방향과 보정 후 진행 방향이 반대로 될 때 발생합니다.
  • Alarm P112 (Illegal plane select): 공구 반경 보정이 동작을 지시하고 있는 동안 plane 선택 명령(G17, G18, G19) 또는 축 이름 스위치(G111)가 입력되면 트리거됩니다.
  • Alarm P608 (Skip command error): 노즈 반경 또는 공구 반경 보정이 활성화된 동안 G31 skip 기능이 지정될 때 트리거됩니다.
  • 버전별 차이점: 거친 가공 cycle(G70, G71, G72, G73)을 실행하는 선반(L) 시스템에서는 가공이 노즈 반경 보정 모드가 임시 취소된 상태에서 수행됩니다(가공 완료 형상에 이미 보정량이 포함되어 있기 때문). 이후 cycle 완료 시 자동으로 보정 모드로 복귀합니다. 또한 Machining Center (M) 시스템에서는 고급 3차원 공구 반경 보정(G41.2/G42.2)과 밀링 머신에서 수행되는 터닝 작업에 노즈 반경 보정을 직접 적용하는 기능이 내장되어 있습니다.

경고: 프로그래머는 G41 또는 G42가 활성화된 상태에서 좌표 이동이 없는 연속된 4개 이상의 블록을 실행해서는 안 됩니다. 이는 Mitsubishi 제어기가 사전 독출을 중단하도록 강제하여 cutter가 경로를 벗어나게 하기 때문입니다.

브랜드 비교

항목FanucSiemensMitsubishi
인라인 Contour Allowance— (no source)활성화 블록에서 OFFN=...으로 직접 지원됩니다.— (no source)
시작 / 취소 Vector 모드파라미터 5003의 정밀한 bit 설정을 통해 Type A, B, C vector를 선택합니다.NORM, KONT, KONTC, KONTT 모션 제어에 의해 통제됩니다.파라미터 #8157을 통해 Type A(수직) 또는 Type B(교차) vector를 선택합니다.
교차 분해능 회피CAV 파라미터 (19607#5)가 alarm을 피하기 위해 실시간으로 tool path를 동적 변경합니다.G461은 보조 원을 삽입하고 G462는 접선을 확장하여 교차를 해결합니다.좌표 이동이 없는 연속된 4개 이상의 블록은 사전 독출을 일시 중단하고 gouge를 발생시킵니다.
선반 자동 방향 모드— (no source)— (no source)선반 시스템에서 G46 자동 방향을 통해 지원됩니다.
수동 Vector 수정G38로 vector를 유지하고, G39로 코너 원호를 삽입합니다.— (no source)프로그래머는 경로를 재정의하기 위해 G40/G41/G42 블록에 I, J, K vector를 추가할 수 있습니다.
Skip 명령 호환성보정이 활성화된 동안 G31 skip 기능은 허용되지 않습니다(alarm 발생).— (no source)보정이 활성화된 상태에서 G31을 명령하면 alarm P608이 트리거됩니다.

기술 분석

Fanuc의 cutter 보정 처리는 정밀하고 세부적인 파라미터 사용자 정의 기능으로 대변됩니다. 첫째, Fanuc은 파라미터 19607 bit 5 (CAV)를 통한 간섭 체크 회피 기능을 독보적으로 제공합니다. 이 기능은 overcutting이 수학적으로 감지되었을 때 단순히 장비를 멈추는 대신, cycle을 중단하지 않고 유지하면서 형상 파임을 물리적으로 방지할 수 있도록 실시간으로 tool path를 지능적으로 재계산하고 변경합니다. 둘째, Fanuc은 시작 및 취소 vector가 공작물에 물리적으로 그려지는 방식을 프로그래머가 엄격히 제어할 수 있도록 합니다. 파라미터 5003(SUP 및 SUV bit)을 수정함으로써 CNC는 Type A, Type B, Type C 시작 동작 간에 조절될 수 있으며, 이를 통해 공구가 교차점을 훑고 가거나 다음 블록에 수직으로 플런징할 수 있어 복잡한 fixture 제약 조건에 부합하게 맞춤 설정할 수 있습니다. 마지막으로 Fanuc은 간섭 체크 로직 자체(파라미터 5008 CNV/CNC)에 대한 직접적인 파라미터 제어를 제공하여, 정밀 마이크로 가공 형상으로 인해 alarm이 오작동을 일으킬 때 작업자가 각도 확인이나 방향 확인을 독립적으로 비활성화할 수 있도록 보장합니다.

Siemens 제어기는 강력한 고수준의 geometry 변형 툴과 고급 진입/후퇴 전략을 구현하여 타 브랜드와 구별됩니다. 고유한 인라인 OFFN contour allowance를 사용하면 프로그래머가 코드 좌표를 변경하거나 복잡한 macro 구조를 실행하지 않고도 황삭 오프셋을 빠르게 설정할 수 있습니다. 또한 Siemens는 G461 및 G462 명령어를 통해 확장된 후퇴 전략을 제공합니다. 제어기가 두 개의 인접한 블록의 오프셋 곡선 간에 유효한 수학적 교점을 찾을 수 없는 경우, 이 명령어는 생산을 즉시 중단하는 대신 보조 원을 동적으로 삽입하거나 곧은 접선을 통해 경로를 확장하여 contour 루프를 안전하게 폐합합니다. 또한 Siemens는 완전한 보정 해제 없이도 특정 영역에서 보정 작동을 임시로 동결하기 위해 CUTCONON 및 CUTCONOF 기능을 제공합니다.

Mitsubishi는 선반 작업과 수동 vector 수정을 능동적으로 간소화하도록 설계된 전용 toolpath 제어에서 탁월한 성능을 자랑합니다. 가장 두드러진 차이점 중 하나는 선반 시스템에서 G46 명령어의 기본 통합입니다. 복잡한 형상 가공 중에 프로그래머가 G41과 G42를 수동으로 지속해서 전환하도록 강제하는 대신, G46은 프로그래밍된 이동 vector와 미리 설정된 가상 공구 노즈 포인트를 분석하여 올바른 노즈 반경 보정 방향을 자동으로 선택합니다. 또한 Mitsubishi는 프로그래머가 G41, G42 또는 G40 블록 내에 I, J, K 주소를 직접 지정하여 시작 또는 취소 vector의 각도를 수동으로 override할 수 있는 고유한 유연성을 제공하므로 보정 정렬을 위한 더미(dummy) 직선 이동을 지정할 필요가 없습니다.

프로그램 예제

이 세 가지 제어 시스템 간의 실무적 차이점을 설명하기 위해, 다음 예제는 생산 현장에서 G40, G41, G42 명령어가 어떻게 프로그래밍되는지 보여줍니다.

Fanuc 밀링 프로그램 예제

O1001 (FANUC MILLING COMP EXAMPLE) ;
N10 G90 G21 G40 G80 (Safety block: absolute, mm, cancel comp, cancel cycles) ;
N20 T01 M06 (Tool change: load 10mm flat end mill) ;
N30 S1200 M03 (Start spindle clockwise at 1200 rpm) ;
N40 G00 X0.0 Y-20.0 Z10.0 (Rapid positioning outside the part) ;
N50 G01 Z-5.0 F150.0 (Feed down to cutting depth) ;
N60 G41 X20.0 Y0.0 D01 F250.0 (Activate cutter compensation left with offset register D01) ;
N70 Y50.0 (Feed along left edge of workpiece) ;
N80 X80.0 (Feed along top edge) ;
N90 Y0.0 (Feed along right edge) ;
N100 X0.0 (Feed along bottom edge) ;
N110 G40 X-20.0 Y-20.0 (Deselect cutter compensation in a linear block) ;
N120 G00 Z100.0 M05 (Rapid retract and stop spindle) ;
N130 M30 ;

공운전 (dry run) 분석:

  1. 제어기는 안전 블록을 파싱하여 절대 좌표계와 밀리미터 단위를 수립하고 cutter 보정이 해제(G40)되었는지 확인합니다.
  2. 공구 교환 블록(T01 M06)에서 공구를 로드하고 spindle을 1200 rpm으로 기동합니다.
  3. 각 축은 공작물 경계 바깥쪽의 안전한 시작점 X0.0 Y-20.0 Z10.0 위치로 rapid traverse 이동합니다.
  4. 공구는 Z축 방향으로 -5.0 깊이까지 150 mm/min의 feedrate로 하강합니다.
  5. G41 X20.0 Y0.0 D01 F250.0 블록에서 제어기는 cutter 보정 좌측(G41)을 활성화합니다. 공구는 X0.0 Y-20.0에서 X20.0 Y0.0으로 직선 이동합니다. 이 직선 이동 중에 제어기는 D01 레지스터에 저장된 반경 오프셋 값(예: 5.0 mm)을 사용하여 contour에 수직인 보정 vector를 구성합니다.
  6. 공구가 contour 블록(Y50.0, X80.0, Y0.0, X0.0)을 따라 횡단할 때, 실제 중심 경로는 프로그래밍된 좌표 프로파일의 좌측으로 정확히 5.0 mm만큼 오프셋됩니다.
  7. 프로파일 끝에 도달하면 G40 X-20.0 Y-20.0 블록이 파싱됩니다. 제어기는 공구 중심 오프셋 vector를 안전하게 해체하면서 후퇴 좌표로 직선 이동을 실행하고, 공구 중심을 X-20.0 Y-20.0의 정확한 무보정 위치로 되돌립니다.

Siemens 선반 프로그램 예제

; SIEMENS TURN COMP EXAMPLE
N10 G90 G95 G40 G18 (Absolute coordinates, feed per rev, cancel comp, ZX plane)
N20 T01 D01 (Load turning tool and activate offset register D01)
N30 G97 S1500 M3 (Constant spindle speed 1500 rpm, spindle CW)
N40 G0 X100.0 Z10.0 (Rapid traverse to start point outside diameter)
N50 G1 Z2.0 F0.2 (Feed to start of cut)
N60 G42 X40.0 Z0.0 (Activate tool nose radius compensation right)
N70 G1 X50.0 Z-5.0 (Taper cut with active compensation)
N80 G1 Z-30.0 (Turn outer diameter)
N90 G1 X90.0 (Face out)
N100 G40 G0 X120.0 Z20.0 (Deselect tool nose compensation in rapid traverse)
N110 M30

공운전 분석:

  1. 장비는 절대 위치 결정, 회전당 feedrate로 구성되고 터닝을 위한 ZX plane(G18)이 설정됩니다. G40을 사용하여 보정이 취소됩니다.
  2. T01 D01을 통해 활성 터닝 공구와 D01 레지스터의 관련 geometry/wear 데이터가 로드됩니다.
  3. spindle이 1500 rpm으로 기동됩니다. 각 축은 X100.0 Z10.0으로 rapid-traverse하여 안전한 lead-in 위치를 결정합니다.
  4. 축은 0.2 mm/rev 속도로 Z2.0까지 가공 피드로 이동합니다.
  5. N60 G42 X40.0 Z0.0 블록은 노즈 반경 보정 우측(G42)을 연결합니다. 이 직선 블록 동안 제어기는 $TC_DP6 변수에서 노즈 반경 값을 읽고 공구 팁 접촉점을 프로그래밍된 테이퍼 시작점과 정렬하기 위해 시작 보정 vector를 계산합니다.
  6. 공구는 X40.0 Z0.0에서 X50.0 Z-5.0까지 테이퍼 가공을 수행하며, 공구 노즈가 경사면에 접하도록 자동으로 유지합니다.
  7. 외경은 Z-30.0까지 선삭되고 X90.0까지 페이싱되며, undercutting을 방지하기 위해 공구 경로가 노즈 반경만큼 동적으로 오프셋됩니다.
  8. N100 G40 G0 X120.0 Z20.0 블록은 선형 rapid 블록에서 보정을 취소(G40)합니다. 제어기는 오프셋 vector를 안전하게 소거하면서 공구 팁을 X120.0 Z20.0으로 후퇴시킵니다.

Mitsubishi 사용자 정의 벡터 밀링 프로그램 예제

%
O2001 (MITSUBISHI COMP VECTOR EXAMPLE) ;
N10 G90 G21 G40 G17 (Absolute, mm, cancel compensation, XY plane) ;
N20 T02 M06 (Load 12mm flat end mill) ;
N30 S1000 M03 (Start spindle CW at 1000 rpm) ;
N40 G00 X0.0 Y-30.0 Z15.0 (Rapid traverse to starting coordinates) ;
N50 G01 Z-10.0 F180.0 (Feed Z axis to cutting depth) ;
N60 G41 X30.0 Y0.0 I15.0 J10.0 D02 F200.0 (Activate compensation left with custom I and J vector coordinates) ;
N70 Y60.0 (Feed along compensated path) ;
N80 X100.0 (Feed along top contour) ;
N90 G40 X0.0 Y-30.0 I10.0 J-10.0 (Deselect compensation with manual cancel vector) ;
N100 G00 Z50.0 M05 (Retract Z and stop spindle) ;
N110 M30 ;
%

공운전 분석:

  1. 블록 1은 활성화된 모든 공구 반경 보정을 취소하고 absolute 모드에서 표준 XY plane 프로그래밍을 수립합니다.
  2. 공구 교환이 실행되어 공구 2를 로드합니다. spindle이 1000 rpm으로 활성화됩니다.
  3. 안전한 축 위치 결정을 확실히 보장하기 위해 각 축이 X0.0 Y-30.0 Z15.0 좌표로 rapid-position 이동합니다.
  4. Z축은 -10.0 깊이까지 180 mm/min으로 하강 피드를 실행합니다.
  5. G41 X30.0 Y0.0 I15.0 J10.0 D02 F200.0 블록은 cutter 반경 보정 좌측(G41)을 활성화합니다. Mitsubishi는 표준적인 수직 접근 vector를 사용하는 대신 I15.0 및 J10.0 주소를 해석하여 사용자 정의 시작 vector 오프셋 각도를 강제하므로, 인접한 fixture clamp를 피하기 위해 cutter가 비스듬한 궤적을 따라 파트 면에 접근하도록 보장합니다.
  6. cutter는 D02 레지스터의 반경 값을 사용하여 중심 오프셋 거리를 유지하면서 contour Y60.0 및 X100.0을 따라 횡단합니다.
  7. 프로파일 끝에서 G40 X0.0 Y-30.0 I10.0 J-10.0이 실행됩니다. 제어기는 I 및 J 좌표를 사용하여 파트 모서리를 안전하게 회피하면서 특정 후퇴 출구 각도를 제어하고, 활성 vector를 취소하면서 각 축을 X0.0 Y-30.0의 무보정 좌표로 되돌립니다.

오류 분석

브랜드알람 코드트리거 조건작업자 증상근본 원인 및 대책
FanucPS0034원호 interpolation 블록(G02/G03) 내부에서 보정을 활성화(G41/G42)하거나 취소(G40)하려고 시도함.CNC가 즉시 축 이동을 중단하고 적색 경고 창에 "NO CIRC ALLOWED IN ST-UP/EXT BLK" 에러를 깜빡입니다.근본 원인: 제어기는 곡선 경계에서 시작 vector를 작성할 수 없습니다.
대책: G41, G42 또는 G40 명령을 원호 전후의 직선 이동 블록(G00 또는 G01)으로 이동하십시오.
FanucPS0041수학적으로 overcutting을 연산함. 일반적으로 물리적 축 이동이 없는 2개 이상의 연속된 블록을 프로그래밍하여 발생.spindle은 계속 가동되지만 각 축이 멈추고 화면에 "INTERFERENCE IN CRC / CUTTER COMPENSATION"이 표시됩니다.근본 원인: look-ahead 버퍼가 좌표 데이터로 갱신되지 않아(예: 연속된 dwell 또는 M-code) 경로 계산이 깨집니다.
대책: M-code를 통합하거나 연속된 dwell을 제거하고, 동적 경로 회피를 위해 CAV 파라미터 (19607#5)를 활성화하십시오.
SiemensAlarm 10751제어기의 충돌 모니터링 시스템이 인접한 블록의 오프셋 곡선 간에 유효한 수학적 교점을 찾을 수 없음.자동 실행이 즉시 중단되고 화면에 "Danger of collision due to tool radius compensation"이 깜빡입니다.근본 원인: contour geometry가 활성 cutter 반경에 비해 너무 좁거나 G461 전략이 경로를 해석하지 못했습니다.
대책: 공구 데이터를 검사하고, 활성 cutter 반경을 줄이거나 G461/G462 확장 경로 삽입 전략을 구현하십시오.
SiemensAlarm 10757공구 반경 보정이 활성화된 동안 활성 가공 plane(G17, G18 또는 G19)을 전환하려고 시도함.프로그램이 블록 중간에 정지하며 "Changing the compensation plane while TRC is active is not possible"을 표출합니다.근본 원인: 가공 plane 전환은 좌표 재설정이 요구됩니다.
대책: plane 변경 명령을 실행하기 전에 활성 보정을 완전히 취소하도록 G40 명령을 작성하십시오.
MitsubishiP153프로그래밍된 contour 진행 방향과 보정 후 진행 방향이 반대로 연산됨.각 축이 감속하여 완전히 정지하고 에러 패널에 "P153 Interference check" alarm이 표출됩니다.근본 원인: cutter 반경 직경보다 좁은 내경 홈 또는 pocket을 가공하려고 할 때 발생합니다.
대책: 홈 너비에 수학적으로 부합하도록 더 작은 직경의 cutter를 사용하거나 프로그래밍된 geometry를 수정하십시오.
MitsubishiP608공구 반경 보정 또는 노즈 반경 보정이 활성화된 동안 G31 skip 기능이 지정됨.가공이 즉시 취소되고 "P608 Skip command error"를 표시합니다.근본 원인: skip 명령은 toolpath geometry 검사를 바이패스합니다.
대책: G31 skip 블록을 실행하기 전에 보정을 비활성화하도록 G40 취소 명령을 프로그램하십시오.

실무 응용 가이드

자동화 라인 반복 가공에서 공구 보정을 다룰 때, coordinate system 설정, dwell 또는 M-code 등 좌표 이동을 포함하지 않는 비이동 블록을 연속으로 4개 이상 프로그래밍하여 CNC의 look-ahead 버퍼를 고갈시키는 것은 대단히 위험합니다. 이 경우 제어기는 경로 교차점 연산을 일시 중단하거나 중도 포기하게 되며, 이에 따른 실질적인 물리적 결과는 공구가 프로그래밍된 궤적을 제멋대로 탈탈 이탈하여 workpiece를 깊숙이 파고드는 심각한 overcutting 혹은 undercutting 결함입니다. 결국 수많은 가공 부품이 순식간에 규격 미달의 불량으로 전락하여 폐기 처분되거나, 회전하는 spindle에 장착된 cutter가 vise jaw, clamp, compensating chuck, double turret 등 강철 고정 장치를 정면으로 타격하는 고데시벨 hard collision 사고를 부릅니다. 이 같은 충돌은 수 천만 원 상당의 장비 정밀 볼 스크루와 스핀들을 완전히 휘어지게 만들고, 생산 라인의 대대적인 정지(비가동 시간)를 야기합니다.

이 명령어에서 가장 빈번하게 터지는 비계획 정지와 불시 설비 중단을 제거하기 위해서는 가공 전에 제어기 파라미터를 반드시 사전 확인하고 통제해야 합니다. 대표적으로 Fanuc 시스템의 경우 Parameter 19607 bit 5 (CAV)를 검증하지 않고 양산에 들어가면, 팔레트 교환 후 두 번째 사이클부터 치수 편차가 누적되어 최종 검사에서 불량이 발견된다. CAV 파라미터가 0으로 세팅되어 있으면 형상 오버컷이 1µm 단위로 포착되는 매 순간마다 PS0041 alarm이 걸리며 라인이 정지해 막대한 비가동 시간이 발생하므로, 반드시 이 값을 1로 설정하여 제어기가 간섭 우회 경로를 실시간 동적 계산하게 제어해야 합니다. 또한, 시작 vector의 생성 방식을 변경하여 fixture나 clamp와의 간섭을 완전히 피하려면 Fanuc의 Parameter 5003 bits 0 (SUP) 및 1 (SUV)의 비트 조합을 통해 Type A, Type B, Type C 오프셋 경로를 물리적으로 재조정하십시오. Mitsubishi 환경에서도 Parameter #8157(Nose R comp Type B)의 교차 연산 설정이나 Parameter #1289 ext25 bit 0의 미세 코너 라운딩 기능을 검토하는 것이 필수적입니다. 공작물 치수 불량률을 영점 수준으로 수호하고 안전을 도모하려면, 모든 보정의 시작(G41/G42)과 취소(G40) 이송 동작을 실제 cutter 반경 및 공구 노즈 R값보다 큰 변위량을 지닌 직선 보간(G00/G01) 블록에만 입력하여 정상적인 보정 vector 생성을 유도해야 합니다.

관련 명령 구조

  • G38 (Vector Hold) - Fanuc 및 Mitsubishi 시스템에서 보정 블록 이동 중 현재 보정 vector를 임시로 유지하여 불필요한 재계산을 방지하는 데 사용됩니다.
  • G39 (Corner Circular Interpolation) - 날카로운 외부 코너 주위의 부드러운 움직임을 위해 Fanuc 및 Mitsubishi 제어기에서 cutter 보정 중 과도기적 코너 원호를 삽입합니다.
  • G46 (Nose Radius Auto Direction) - 이동 vector를 분석하여 올바른 좌측 또는 우측 보정 방향을 자동으로 감지하고 적용하는 Mitsubishi 선반 전용 명령어입니다.
  • G41.2 / G42.2 (3-Dimensional Tool Radius Compensation) - 3차원 공간으로 보정을 확장하여 수직 방향 곡면 보정을 처리하는 Fanuc 및 Mitsubishi M-시리즈 시스템 전용 기능입니다.
  • G450 / G451 (Corner Transition Selection) - 외부 코너에서 과도기 원 삽입(G450)과 등가 경로 교차(G451) 간에 전환을 설정하기 위해 Siemens 시스템에서 사용됩니다.
  • G01 (Linear Interpolation) - 직선 가공 좌표를 실행하고 시작/취소 vector를 물리적으로 전개하는 데 사용됩니다.
  • G17, G18, G19 (Plane Selection) - 반경 오프셋이 수학적으로 투영되는 활성 가공 plane을 수립합니다.
  • G28 (Reference Point Return) - 보정 취소 후 안전하게 축을 home 위치로 복귀시키고 공작물 궤적 범위를 확보하기 위한 표준 zero 복귀입니다.

결론

자동화 라인의 대량 반복 가공 공정에서 설비의 고가 비가동 시간(비가동 시간)을 차단하고 불량률을 극적으로 억제하기 위해서는, 가공 셋업 완료와 동시에 제어기 내의 공구 반경 및 노즈 R 보정 파라미터(Fanuc 5003/19607, Siemens $TC_DP6, Mitsubishi #8157)를 장배 상태 체크리스트를 기반으로 교차 검증하는 시스템을 반드시 확립해야 합니다. 또한, 공구 보정의 시작(G41/G42) 및 해제(G40) 시퀀스는 물리적인 공구 치수보다 넉넉한 접근 거리를 보장하는 직선 보간(G00/G01) 블록에만 명령하는 구조를 습관화해야 할 것입니다. 사전에 구성된 파라미터 신뢰성과 정밀한 Lead-in 경로 통제를 통해, automatic 공작기계 내부의 공구 간섭이나 급정지 alarm 오류를 완전히 무력화하여 장기적인 자동화 라인의 사이클 생산 효율을 극대화할 수 있습니다.

자주 묻는 질문 (FAQ)

자동화 생산 라인 가동 중 Fanuc 제어기에서 PS0041 알람(간섭 감지)으로 설비가 비계획 정지되는 현상을 사전에 방지하는 파라미터 조치법은 무엇인가요?

이 PS0041 알람은 연속적인 비이동 블록(dwell, M코드 등) 때문에 Look-Ahead 연산이 멈추거나 공구 반경보다 좁은 형상을 깎을 때 발생하여 가동률을 극도로 저하시킵니다. 이를 예방하기 위해 Fanuc 제어기 파라미터 19607번의 bit 5 (CAV)를 1로 세팅하십시오. 이 설정은 형상 간섭 검출 시 알람을 즉시 발생시켜 장비를 멈추는 대신, 제어기가 물리적인 회피 경로를 펌웨어 상에서 동적으로 실시간 재계산하여 끊김 없는 반복 가공을 이어갈 수 있게 합니다. 지금 즉시 제어기 파라미터 화면에서 19607#5 값을 1로 변경하고 양산 가공을 시작하십시오.

수동 D 코드 설정 없이 선반(Lathe)에서 공구 노즈 보정 방향을 자동으로 지정하고 싶을 때 유용한 명령어와 활용 방안은 무엇인가요?

선반 시스템에서 복잡한 가공을 수행할 때 프로그래머가 방향성(G41/G42)을 잘못 판단하여 보정을 걸면 형상 치수 불량이 나거나 충돌이 발생합니다. Mitsubishi 제어기 전용인 G46(Nose R Auto Direction) 명령어를 호출하십시오. G46은 장비에 등록된 가상 공구 노즈 포인트(1~9번)와 좌표 이동 vector를 펌웨어가 실시간으로 추적 연산하여, 번잡하게 G41 혹은 G42를 일일이 지정해줄 필요 없이 자동으로 올바른 보정 벡터를 내부에 매핑합니다. 터닝 공정 셋업 시 G41/G42 대신 안전 진입 블록에 G46을 선언하여 프로그램 복잡성을 줄이고 오류를 원천 차단하십시오.

Siemens 제어기에서 contour 가공 도중 충돌(Alarm 10751)을 극복하고 황삭 여유량을 손쉽게 설정하는 방법은 무엇인가요?

Siemens 시스템은 인접 블록 간에 교점을 찾지 못할 때 Alarm 10751(collision danger)을 띄우며 기동을 차단합니다. 이를 근본적으로 해결하기 위해 활성화 블록에 직접 인라인 OFFN= 오프셋 파라미터를 추가하십시오(예: G1 G41 Y50 F200 OFFN=1.5). OFFN 주소는 코어 G-code 좌표를 수정하는 복잡한 과정 없이도 설정값만큼 형상 외곽에 균일한 여유 여유량을 동적으로 설정하며, G461/G462 후퇴 전략을 함께 병용함으로써 수학적 연산 깨짐에 의한 돌발 정지를 해소합니다. 가공 프로그램의 초기 보정 진입 블록에 원하는 황정삭 여유량을 OFFN 값으로 기재하고 사이클 스타트를 수행하십시오.

아직 해결되지 않았나요?

이 주제에 대해 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의 공동 창업자로서 활동을 이어가고 있습니다.

관련 기사

이 주제에 관한 다른 기사