G20 인치 입력: CNC 인치 프로그래밍 및 단위 설정 가이드
Fanuc, Siemens, Mitsubishi CNC 제어기에서 G20 G-code를 사용한 인치 프로그래밍 방법을 설명합니다. 비계획 정지를 없애기 위한 주요 Parameter 구성, offset 설정 및 turret 충돌 방지 절차를 안내합니다.
서론
작업 중에 활성 offset 레지스터에 잔류 값을 둔 채 G20 단위 전환을 실행하면, 툴 turret이 급속 이송 중 경로를 이탈하여 테이블 vise jaw, 공압 fixture clamp, 혹은 회전하는 워크피스 chuck에 직접 충돌하는 치명적인 리스크가 발생합니다. 예를 들어, 메트릭 모드에서 X60.0 mm로 기입된 위치가 오프셋 변환 없이 G20 인치 단위로 토글될 경우, 제어기는 이를 X60.0 인치로 인식하여 대대적인 위치 오류를 발생시킵니다. 이러한 하드 충돌은 spindle을 손상시키고 공구를 완전히 파괴하며, 고가의 scrap part를 유발하여 생산 라인의 비가동 시간(downtime)을 극대화하고 공장의 불량률을 급격히 높입니다. CNC 제어기에서 Parameter No. 5040 Bit 3을 사전 확인하면 이 명령어에서 가장 빈번한 비계획 정지를 없앨 수 있다. 만약 이 Parameter를 검증하지 않고 양산에 들어가면, pallet 교환 후 두 번째 cycle부터 치수 편차가 누적되어 최종 검사에서 불량이 발견된다. 그러므로 G20/G21 스위칭 명령어는 반드시 다른 좌표와 결합되지 않고 독립 블록에 단독으로 호출되어야 하며, 활성 보정 데이터의 리셋과 물리적 가상 배리어의 조화로운 구성이 필수로 요구됩니다.
기술 요약
| 구분 | 상세 사양 |
|---|---|
| 명령어 코드 | G20 (System A/B) / G70 (System C) / G700 |
| modal 그룹 | Group 06 (Modal) |
| 지원 브랜드 | Fanuc, Siemens, Mitsubishi |
| 주요 Parameter | Fanuc Parameter No. 3402, Parameter No. 5040 Bit 3 (TCT); Siemens MD10240, MD20154; Mitsubishi Parameter #1041, Parameter #1003 |
| 주요 제약 사항 | 블록 시작 부분에 완전히 독립적인 단독 블록으로 프로그래밍되어야 함. 직선축에만 한함 (Mitsubishi). |
핵심 요약
- 단독 프로그래밍: scanner 컴파일러나 포맷 error를 방지하기 위해 G20은 블록 시작 부분에 완전히 단독으로 프로그래밍되어야 합니다.
- offset 선검증: 잘못된 궤적 이동을 방지하기 위해 G20을 호출하기 전에 활성 공구 offset과 보정을 취소해야 합니다.
- 자동 변환 불가: 표준 G20은 좌표 레지스터를 수학적으로 변환하지 않으므로, 위험한 10배 또는 25.4배의 위치 결정 오차가 발생할 수 있음을 유의하십시오.
- 전원 켜짐 기본값 설정: Parameter No. 3402 (Fanuc), MD20154 (Siemens) 또는 Parameter #1041 (Mitsubishi)을 통해 기본 시작 단위를 구성하십시오.
- chuck barrier 사용: 축 과이동(axis overtravel) 발생 시 축 이동을 자동으로 중지하도록 chuck 및 tailstock barrier 화면에 가상 경계를 정의하십시오.
- G700을 통한 속도 스케일링: 공구 offset과 feedrate가 좌표 데이터와 함께 동적으로 스케일링되어야 하는 경우 Siemens G700을 사용하십시오.
- 공운전 (dry run) 실시: 실제 가공을 시작하기 전에 공중에서 초도품 프로그램 검사를 수행하여 공구 경로가 물리적 클램프를 피하는지 확인하십시오.
기본 개념
G20 명령어는 CNC 컨트롤러의 단위 해석기를 변경하여 기하학적 치수, 좌표 및 offset이 인치 단위로 계산되고 실행되도록 합니다. 그러나 이 명령어는 활성 좌표나 디스플레이 레지스터를 동적으로 스케일링하지 않습니다. offset을 지우지 않고 시스템을 메트릭 모드와 인치 모드 간에 토글하면 활성 레지스터의 값이 변경되지 않은 상태로 유지되어 예기치 않은 스케일 불일치가 발생합니다. 예를 들어, 메트릭 모드에서 프로그래밍된 60.0 mm의 좌표 위치는 G20이 활성화될 때 거대한 60.0 인치로 평가되어 25.4배의 위치 결정 오차가 발생합니다.
좌표 불일치 외에도 프로그램 명령 단위(Program Command Units)와 입력 설정 단위(Input Setting Units)의 분리는 중요한 개념입니다. G20을 토글하면 이후의 프로그램 좌표 데이터만 변경되며, HMI 화면에서 공구 offset이나 워크피스 좌표가 구성되는 방식은 변경되지 않습니다. 이러한 디스플레이 설정은 Mitsubishi Parameter #1041과 같은 정적 시스템 Parameter에 의해 제어됩니다. 작업자는 시스템의 입력 구성에 맞게 공구 offset을 수동으로 계산하고 사전 설정하며 입력해야 합니다. 활성 offset을 확인하지 않고 단위 모드를 전환하면 잘못된 궤적이 생성되어 공구 turret이 워크홀딩 장비에 충돌할 위험이 있습니다.
기계적 위험을 완화하기 위해 CNC 시스템에는 물리적 배리어 구성이 필요합니다. chuck barrier 및 tailstock barrier와 같은 가상 안전 구역이 기계 좌표계에 정의됩니다. 비조정 축 이동이나 단위 불일치 궤적으로 인해 turret이 이러한 전자 경계를 넘어가면, 제어기는 즉시 축 이동을 중지하고 스트로크 제한 알람을 트리거합니다. 활성 절삭을 시작하기 전에 공중에서 초도품 공운전을 수행하고 위치 화면에서 좌표를 확인하는 것은 필수적인 단계입니다.
명령 구조
인치 단위로 프로그래밍하려면 프로그램 시작 부분에서 G20 명령을 실행해야 합니다. 좌표 이동보다 앞서 독립된 블록에 단독으로 작성되어야 합니다. 이 명령어는 modal이므로 한 번 호출되면 G21에 의해 명시적으로 취소될 때까지 활성 상태로 유지됩니다. 단위를 전환하는 프로그램을 작성할 때 프로그래머는 전환 전에 모든 좌표 보정이 비활성화되었는지 확인해야 합니다. 시스템을 G20으로 설정하면 직선 좌표, feedrate 및 원호 보간 Parameter의 명령 단위가 변경됩니다.
시스템 Parameter는 좌표 데이터가 구문 분석되는 방식을 정의합니다. 선행 제로 생략(leading-zero suppression)이 활성화된 경우 소수점이 없는 값은 단위 모드에 따라 다르게 해석됩니다. 예를 들어, Z1000 명령은 G20에서는 Z0.1 인치로 처리되지만 G21에서는 Z1.0 mm로 처리됩니다. 프로그래머는 스케일링 오류를 방지하기 위해 모든 좌표에 명시적인 소수점을 사용해야 합니다. 단위 시스템을 수정하려면 시스템 데이터도 조정해야 합니다. 동적 좌표 offset은 호환되는 컨트롤러에서 G10 Parameter 관리 명령을 통해 로드할 수 있으며, 이는 G11 프로그램 가능 데이터 입력 취소 명령으로 취소해야 합니다.
각 브랜드별 인치 모드 시작 구문은 다음과 같습니다:
G20 ;
활성 좌표 및 Parameter는 다음 주소 및 Parameter에 따라 스케일링됩니다:
| 주소 / Parameter | 시스템 설명 | 스케일링 동작 |
|---|---|---|
| X, Y, Z | 선형 기하학 좌표 | G20이 활성화되었을 때 인치로 해석됩니다. |
| I, J, K | 보간 Parameter 값 | 원호 중심 정의를 위해 인치 단위로 계산됩니다. |
| R | 원호 반경 좌표 | 반경 방향 원호에 대해 인치 단위로 해석됩니다. |
| F | feedrate 명령 | 분당 인치(in/min) 또는 회전당 인치(in/rev)로 평가됩니다. |
브랜드별 응용
Fanuc
Fanuc 제어기에서 G20은 활성 선형 명령 단위를 인치로 설정합니다. 기본 시작 단위는 Parameter No. 3402에 의해 제어됩니다. 시스템 offset 및 길이 보정은 Parameter No. 5040 Bit 3 구성의 영향을 받습니다.
다음 블록은 Fanuc 시스템에서 G20 명령을 초기화합니다:
G20 ;
- Parameter No. 3402: 제어 전원이 켜질 때의 기본 G-code modal 상태를 지정합니다.
- Parameter No. 5040 Bit 3 (TCT): 공구 길이 보정 시프트 유형을 관리합니다. 활성 offset이 있는 동안 이를 변경하면 Alarm PS0368이 발생합니다.
- Parameter No. 3453 Bit 4 (FRC): 주소 E를 통해 모따기 및 코너 R feedrate를 활성화합니다. 나사 가공 중 E를 프로그래밍하면 Alarm PS0009가 트리거됩니다.
- Alarm PS0368: 공구 offset이 활성화된 상태에서 Parameter No. 5040 Bit 3을 수정할 때 트리거됩니다.
- Alarm PS0011: 프로그래밍된 절삭 feedrate가 장비 Parameter에 설정된 최대 feedrate 제한을 초과할 때 발생합니다.
- Alarm PS0010: 표준 테이블에 나열되지 않은 G-code를 프로그래밍할 때 발생합니다.
- 버전별 차이점 (G-code 시스템): Fanuc G-code System A 및 B는 G20/G21을 사용하는 반면, System C는 G70/G71을 사용합니다.
- 버전별 차이점 (Series 15): 레거시 Series 15 시스템은 리지드 태핑에 G84.2를 사용하는 반면, 표준 시스템은 G84를 사용합니다.
경고: 공구 offset 레지스터를 취소하지 않고 프로그램 중간에 G20과 G21 간을 전환하면 심각한 좌표 스케일링 오류가 발생하여 공구 turret이 궤적을 벗어납니다.
Siemens
Siemens SINUMERIK 제어기는 ISO Dialect Mode를 통해 G20을 지원합니다. 리셋 시의 기본 시스템 상태는 채널별 데이터 Parameter인 MD20154에 의해 결정됩니다. 표준 기계 해상도와 단위는 MD10240 Parameter에 의해 정의되며, 네이티브 G700이 호출되지 않는 한 feedrate, 공구 offset 및 조정 가능한 워크 offset을 지배합니다.
다음 블록은 Siemens 제어기에서 G20 명령을 초기화합니다:
G291 ;
G20 ;
G290 ;
- MD20154 ($MC_EXTERN_GCODE_RESET_VALUES): 리셋 또는 부팅 시 활성화되는 기본 Group 6 G-code를 정의합니다.
- MD10240 (SCALING_SYSTEM_IS_METRIC): 기계의 기본 측정 시스템을 설정합니다.
- MD18800 ($MN_MM_EXTERN_LANGUAGE): G20과 같은 외부 ISO dialect G-code의 컴파일 해석을 활성화하기 위해 1로 설정해야 하는 일반 기계 데이터 Parameter입니다.
- Option Bit 19800 ($MN_EXTERN_LANGUAGE): 외부 언어 프로그래밍을 허용하는 데 필요한 시스템 옵션 비트입니다.
- MD20734 Bit 3 ($MC_EXTERN_FUNCTION_MASK Bit 3): ISO scanner 오류 시 알람 발생을 방지하고, 해당 블록을 네이티브 번역기로 직접 전달합니다.
- Alarm 61800: MD18800 또는 Option Bit 19800이 비활성화된 상태에서 G20이 해석될 때 트리거됩니다.
- Alarm 14800: 메트릭 feedrate가 스케일링되지 않아 G20 모드 하에서 경로 feedrate F가 0으로 평가될 때 트리거됩니다.
- Alarm 61811: G20 block에 활성 채널 구성에 정의되지 않은 축 식별자가 포함되어 있을 때 발생합니다.
- Alarm 61812: 외부 cycle 호출에 잘못된 숫자 값이 포함되어 있을 때 발생합니다.
- 버전별 차이점 (SINUMERIK 802D sl): 802D sl 모델에서는 리셋 구성 MD20154 및 PLC Parameter MD22515가 읽기 전용으로 잠겨 있습니다. 840D sl과 같은 상위 모델에서는 이러한 Parameter를 자유롭게 수정할 수 있습니다.
경고: G20 활성화 후 즉시 새로운 feedrate value (F)를 지정하지 않으면 feedrate가 0으로 계산되어 Alarm 14800이 발생하고 기계 동작이 중단될 수 있습니다.
Mitsubishi
Mitsubishi 제어기는 G20을 사용하여 직선축에 대한 프로그램 명령 단위를 정의합니다. 전원을 켤 때의 초기 단위는 Parameter #1041에 의해 관리됩니다. 축 해상도 설정은 Parameter #1003에 의해 수립되며, 좌표 증가량을 0.0001 인치에서 0.0000001 인치까지 구성합니다.
다음 블록은 Mitsubishi 제어기에서 G20 명령을 초기화합니다:
G20 ;
- Parameter #1041 I_inch: 전원이 켜질 때 HMI 디스플레이, 카운터 및 Parameter의 기본 단위 시스템을 설정합니다.
- Parameter #1003 iunit: 입력 설정 단위(Input Setting Unit)입니다. 축 해상도를 구성합니다 (B=0.0001 in, C=0.00001 in, D=0.000001 in, E=0.0000001 in).
- Parameter #1151 rstint: 시스템 리셋 시 G-그룹의 기본 초기화 상태를 결정합니다.
- Parameter #1210 RstGmd Bit 5: 시작/리셋 시 Group 06 modal G-code가 리셋되는지 또는 유지되는지를 지정합니다.
- Program Error P33: G20 또는 G21이 다른 이동 명령과 동일한 블록에 프로그래밍될 때 트리거됩니다.
- Program Error P162: 3차원 공구 반경 보정(G41.2/G42.2)이 활성화된 상태에서 단위를 토글할 때 발생합니다.
- Program Error P951 / P942: 경사면 제어(G176) 또는 공구 중심점 제어(G174)가 활성화된 상태에서 단위 전환이 호출될 때 트리거됩니다.
- 버전별 차이점 (일련번호): 일련번호 주소 N은 M8 Series에서 최대 8자리까지 지원되지만, C80 Series에서는 6자리로 제한됩니다.
- 버전별 차이점 (G10 L50): G10 L50을 사용한 프로그램 Parameter 입력은 레거시 모델로 제한되며 현대적인 M8 Series에서는 지원되지 않습니다.
경고: Mitsubishi는 G20/G21 명령을 직선축으로만 엄격히 제한합니다. 시스템에 구성된 모든 회전축은 단위 스케일링을 완전히 우회하므로 멀티축 설정에서 동기화 오류가 발생할 위험이 있습니다.
브랜드 비교
| 특징 | Fanuc | Siemens | Mitsubishi |
|---|---|---|---|
| G-code 시스템 지원 | System A/B (G20/G21) 및 System C (G70/G71) 지원. | ISO Dialect Mode (G291) 내부에서 G20/G21 지원. | 모달 G-code 시스템 내부에서 G20/G21 지원. |
| 좌표 변환 불일치 | 단위를 토글해도 좌표값이 수학적으로 변환되지 않음 (10배 차이 유발). | 프로그램 중간에 단위를 토글해도 좌표 레지스터가 변환되지 않음 (25.4배 차이 유발). | 단위를 토글하면 프로그램 단위 해석만 변경되며, 화면 레지스터는 변환되지 않음. |
| 공구 offset 및 feedrate 스케일링 | 공구 길이 및 보정 offset은 Parameter No. 5040 (TCT) 제약 조건에 따라 활성 단위에 맞춰 스케일링됨. | 표준 G20은 공구 offset이나 feedrate를 자동으로 스케일링하지 않으며, 네이티브 G700/G710 명령이 필요함. | 입력 단위와 프로그램 단위의 분리; offset과 좌표계는 G20/G21에 의해 스케일링되지 않음. |
| 회전축 단위 스케일링 | 회전 벡터와 동적으로 연동되는 변환을 지원함. | 회전 벡터와 동적으로 연동되는 변환을 지원함. | 단위 스케일링을 직선축으로만 제한하며, 회전축은 완전히 무시함. |
기술 분석
단위 선택 명령의 처리 방식은 Fanuc, Siemens, Mitsubishi 컨트롤러 간에 상당한 아키텍처적 차이를 보여줍니다. Fanuc 시스템은 G-code 시스템에 따라 명령 단위 선택을 구분합니다. System A 및 B에서는 G20 및 G21이 표준 modal 명령입니다. 그러나 G-code System C에서 제어기는 동등한 기능을 수행하기 위해 G70 및 G71을 사용합니다. 또한, Fanuc은 활성 단위에 따라 선행 제로 생략을 바탕으로 좌표를 해석합니다. 예를 들어, 소수점이 없는 Z1000 명령은 G20이 활성화되어 있을 때 Z0.1 인치로 분해되지만, 제어기가 G21 메트릭 모드로 설정되어 있을 때는 Z1.0 mm로 해석됩니다. 이는 작업자가 장비 간에 G-code 파일을 마이그레이션할 때 반드시 고려해야 하는 중요한 프로그래밍 편차를 만듭니다.
Siemens SINUMERIK 제어기는 이중 언어 해석기 구조를 통해 단위 선택에 접근합니다. G20 명령은 G291을 통해 활성화되는 ISO Dialect Mode로 제한됩니다. 고수준 파라메트릭 cycle이나 시스템 변수(예: $TC_DPH 공구 offset)를 활용하려면 프로그래머는 G290을 사용하여 제어기를 네이티브 Siemens Mode로 다시 전환해야 합니다. 네이티브 모드에서 작동할 때 Siemens는 인치 치수에 G70을 사용합니다. 그러나 가장 큰 차이점은 feedrate와 offset 스케일링에 있습니다. 표준 G20/G70 명령은 위치 데이터만 스케일링하는 반면, 네이티브 G700 및 G710 명령은 feedrate(F) 및 활성 offset을 포함한 기하학적 좌표와 기술적 값을 모두 스케일링합니다. 이를 통해 속도 불일치 오류를 방지합니다. SINUMERIK 802D sl과 같은 하위 모델에서는 리셋 데이터 값(MD20154)이 읽기 전용으로 고정되어 있는 반면, 840D sl과 같은 상위 시리즈에서는 이러한 기본 시작 단위의 전체 수정을 허용합니다.
Mitsubishi 컨트롤러는 HMI offset 구성과 프로그램 명령 단위 해석을 격리합니다. G20을 활성화하면 활성 프로그램 블록 내의 좌표에만 영향을 미치며, Parameter #1041에 의해 고정된 HMI offset은 스케일링되지 않습니다. 이는 Fanuc이나 Siemens 제어기에는 없는 엄격한 분리입니다. 또한, Mitsubishi는 변환 중에 회전축을 완전히 무시하고 단위 명령 스케일링을 직선축으로만 제한한다는 점에서 독특합니다. 마지막으로, Mitsubishi는 고정된 메트릭 PLC 윈도우를 유지합니다. HMI 구성이나 G20 명령에 관계없이 PLC 윈도우를 통해 전송되는 모든 데이터는 메트릭 단위로 처리되므로, PLC 로직이 영구적인 메트릭 계산 구조를 유지해야 합니다.
프로그램 예제
Fanuc 예제
%
O1001 (FANUC G20 인치 선택) ;
G20 ; (독립 블록에서 인치 입력 모드 활성화)
G00 X6.0 Z3.0 T0800 ; (X6.0 인치, Z3.0 인치 위치로 급속 이송, 공구 offset 0)
G04 U2.0 ; (임페리얼 포맷으로 2.0초 동안 일시 정지)
G21 ; (독립 블록에서 메트릭 입력 모드 복원)
M30 ;
%
공운전: 이 코드를 실행하기 전에 작업자는 모든 공구 offset이 취소되었는지 확인합니다. G20이 판독되면 컨트롤러는 해석기를 임페리얼 단위로 전환합니다. turret은 워크피스 원점을 기준으로 X6.0 인치 및 Z3.0 인치 위치로 급속 이송합니다. 장비가 2.0초 동안 일시 정지한 후 G21이 판독되어 명령 시스템을 메트릭 좌표로 되돌립니다. 작업자는 축 이동이 소프트 트래블 한계를 초과하지 않았는지 확인합니다.
Siemens 예제
; SIEMENS G20 ISO DIALECT 선택
G291 ; (컴파일러를 ISO Dialect Mode로 전환)
G20 ; (인치 입력 모드 활성화)
G00 X2.75 Y3.22 ; (X2.75 인치, Y3.22 인치 위치로 급속 이송)
G290 ; (컴파일러를 네이티브 Siemens Mode로 복원)
G70 X2.75 Y3.22 ; (네이티브 Siemens 인치 치수 지정을 사용해 위치 결정)
M30 ;
공운전: 공운전 중에 작업자는 프로그램을 블록별로 실행합니다. 컴파일러가 네이티브 Siemens Mode에서 ISO Dialect Mode(G291)로 전환됩니다. G20 명령이 인치 데이터 해석을 활성화합니다. 축이 절대 위치 X2.75 인치 및 Y3.22 인치로 이동합니다. 제어기가 Siemens Mode(G290)로 복귀하고, 여기서 G70 명령이 동일한 물리적 좌표로의 위치 결정을 실행합니다. 작업자는 활성 위치 HMI 화면을 모니터링하여 좌표가 예상되는 인치 치수와 일치하는지 확인합니다.
Mitsubishi 예제
%
; MITSUBISHI G20 인치 선택
G20 ; (직선축에서 인치 프로그램 명령 단위 활성화)
G00 X6.5 Z3.22 ; (인치 단위의 절대 좌표로 급속 이송)
G21 ; (인치 입력을 취소하고 메트릭 명령 단위 복원)
M30 ;
%
공운전: 작업자는 프로그램을 로드하고 Parameter #1041이 HMI 설정과 일치하는지 확인합니다. G20 명령이 단독 블록으로 구문 분석되어 프로그램 명령 단위를 인치로 구성합니다. 선형 축은 X6.5 인치 및 Z3.22 인치로 이동하며, 회전축 위치는 스케일링되지 않은 채로 유지됩니다. G21을 판독하여 기본 밀리미터 명령 시스템을 복원합니다. 작업자는 전환 중에 좌표 스케일링 이상이 발생하지 않았는지 HMI 디스플레이를 모니터링합니다.
오류 분석
| 브랜드 | 알람 코드 | 트리거 조건 | 작업자 증상 | 원인 / 해결 방법 |
|---|---|---|---|---|
| Fanuc | Alarm PS0368 | offset 레지스터에 공구 offset이 활성화된 상태에서 Parameter No. 5040 Bit 3 (TCT)을 수정함. | 자동 실행이 중단되고 화면에 Alarm PS0368이 표시됩니다. | Parameter No. 5040을 수정하기 전에 모든 공구 offset을 해제하고 보정을 비활성화하십시오. |
| Fanuc | Alarm PS0011 | 프로그래밍된 절삭 feedrate가 장비 Parameter에 설정된 최대 feedrate 제한을 초과함. | 축 이동이 정지되고 Alarm PS0011이 표시됩니다. | 활성 feedrate F를 확인하고 허용 가능한 장비 Parameter 범위 내로 프로그래밍된 속도를 조정하십시오. |
| Siemens | Alarm 61800 | 외부 언어 Parameter MD18800 또는 Option Bit 19800이 비활성화된 상태에서 G20이 실행됨. | 제어 시스템이 처리를 중지하고 Alarm 61800 ("외부 CNC 시스템 부재")을 표시합니다. | 기계 데이터 Parameter MD18800을 1로 설정하고 Option Bit 19800이 활성화되어 있는지 확인하십시오. |
| Siemens | Alarm 14800 | G20 활성화 후 메트릭 feedrate가 스케일링되지 않아 경로 feedrate F가 0으로 해석됨. | 첫 번째 직선 이동 시 실행이 중단되고 Alarm 14800이 표시됩니다. | G20 블록 바로 뒤에 새로운 F 값(feedrate)을 지정하여 활성 feedrate를 인치 단위로 설정하십시오. |
| Mitsubishi | Program Error P33 | 좌표 이동이나 다른 G-code와 같은 블록에 G20 또는 G21을 프로그래밍함. | NC scanner가 실행을 중단하고 Program Error P33 ("잘못된 G-code 명령어 포맷")을 트리거합니다. | G20 명령어가 완전히 독립된 블록에 단독으로 프로그래밍되도록 하십시오. |
| Mitsubishi | Program Error P162 | 3차원 공구 반경 보정(G41.2/G42.2)이 활성화된 상태에서 단위(G20/G21)를 전환함. | 자동 cycle이 중단되고 제어 패널에 Program Error P162가 표시됩니다. | 단위 시스템을 전환하기 전에 G40 명령을 프로그래밍하여 모든 3차원 공구 반경 보정을 해제하십시오. |
실무 응용 가이드
offset 레지스터에 기존 가공 보정 값이 잔존해 있는 상태에서 G20 단위 스위칭을 가동하면 공구가 가공 영역의 chuck이나 공압 fixture clamp를 들이받아 spindle이 파손되고 라인이 멈추는 비계획 정지가 발생하게 됩니다. Fanuc 제어기에서는 offset이 활성화된 상태에서 Parameter No. 5040 Bit 3 (TCT)을 무단으로 변경하려 할 때 Alarm PS0368이 발생하여 자동 운전이 정지됩니다. 또한, Siemens 시스템에서는 G20을 호출한 후 feedrate F를 인치 단위에 맞춰 새롭게 선언하지 않을 경우, 기본 메트릭 설정(MD10240)과의 불일치로 경로 속도가 0으로 해석되어 Alarm 14800이 발생하여 전체 cycle이 정지됩니다. Mitsubishi 시스템의 경우에도 G20/G21 명령을 단독 블록으로 구성하지 않고 다른 이동 명령과 혼용하여 프로그램하면 Program Error P33이 발생하며, 3차원 공구 반경 보정(G41.2/G42.2)이 활성화된 상태에서 단위를 전환하려 하면 Program Error P162를 유발합니다. 이러한 충돌과 정지 리스크를 예방하기 위해 작업자는 가공 전에 제어기 HMI 화면에서 chuck barrier 및 tailstock barrier 가상 안전 경계를 올바르게 설정해야 하며, 신규 프로그램을 가동하기 전 공중에서 툴 패스를 검증하는 공운전(dry run)을 철저히 실시해야 합니다.
관련 명령 구조
- G21 (메트릭 데이터 입력): 활성 G20 인치 모드를 취소하고 기본 메트릭(밀리미터) 명령 단위 시스템을 복원합니다.
- G700 (Siemens 네이티브 인치 시스템): 기하학적 좌표와 기술적 Parameter(예: feedrate 및 offset)를 모두 인치 단위로 자동 스케일링합니다.
- G291 (Siemens ISO Dialect Mode): 해석기가 G20을 포함한 외부 ISO dialect G-code를 인식하도록 활성화합니다.
- G10.9 (Mitsubishi 직경/반경 전환): 단위 스케일링과 연동하여 좌표축에 대한 동적 직경 또는 반경 지정을 토글합니다.
결론
자동화 라인의 반복 가공 정밀도를 영구히 유지하고 불필요한 비가동 시간과 불량률을 억제하기 위해서는 프로그램 시작 블록에서 G20 인치 단위 설정을 완전히 격리된 독립 블록으로 단독 선언하는 프로그래밍 규범을 정립해야 합니다. Parameter #1041, MD20154, 3402번 등의 초기 제어기 설정 값을 양산 전에 전면 재검증하고, 잔여 offset이 소거되었는지 검사하는 관리 절차가 수반되어야 합니다. 생산 공정에 돌입하기 앞서, HMI 모니터의 좌표 및 가상 chuck barrier 설정을 검토하고 공운전(dry run) 가공 검증을 통해 경로 상의 장애물 간섭을 물리적으로 확인하는 프로세스를 엄격히 이행할 것을 권장합니다.
자주 묻는 질문 (FAQ)
G20 명령을 사용해 인치 단위로 전환할 때 왜 turret이 워크피스 chuck이나 vise에 충돌하는 사고가 자주 발생합니까?
단위 전환 명령인 G20은 좌표 해석 방식만 바꿀 뿐 기존 제어기에 저장된 공구 offset이나 워크 좌표계 값을 자동으로 인치 단위로 변환하지 않기 때문에 축 이동량이 급격히 늘어나 충돌이 일어납니다. 단위 전환을 적용하기 전에 프로그램 시작 부분에서 모든 offset 값을 명시적으로 취소하고, 인치 단위에 맞는 offset 값을 수동 또는 Parameter 매니지먼트로 재입력하십시오.
Siemens 제어기에서 G20으로 단위를 바꾼 후 축 이동 시 Alarm 14800이 발생하는 이유는 무엇이며 어떻게 해결합니까?
일반 G20 명령어는 feedrate 값을 인치 단위에 맞게 동적으로 스케일링하지 않기 때문에, 메트릭 기준의 feedrate가 그대로 해석되거나 0으로 처리되어 시스템이 멈춥니다. 이 에러를 방지하려면 G20 블록 바로 뒤에 F 값을 인치 모드에 맞게 새로 지정하거나, offset과 feedrate까지 일괄 변환해주는 Siemens 네이티브 명령어인 G700을 대신 사용하십시오.
Mitsubishi 제어기에서 G20 단독 블록을 준수하지 않고 이동 명령과 함께 쓰면 어떤 알람이 발생합니까?
Mitsubishi 제어 시스템에서는 G20/G21 준비 기능이 축 이동 또는 기타 코드와 한 블록에 공존할 경우 NC scanner가 포맷 오류로 판단해 Program Error P33을 즉시 발생시킵니다. 이 문제를 해결하려면 반드시 G20 코드를 프로그램의 다른 명령과 철저히 격리하여 단독 블록으로 분리하여 작성하십시오.
아직 해결되지 않았나요?
이 주제에 대해 AI 어시스턴트에게 자연어로 물어보세요. 검증된 소스를 기반으로 하며 환각이 없습니다.

- CNC CARE Co-Founder (May 2025 - Present)
- Mitsubishi Electric NC Sales & Service Section Manager (2008 - 2025)
- Reis CNC Service Engineer (2003 - 2008)
- Ören Kalıp CNC Mold Line Team Leader (1999 - 2002)
CNC 기계 산업의 모든 분야에서 25년 이상 근무한 경험을 바탕으로, 브랜드 독립적인 컨설팅, 엔지니어링 및 순정 부품 서비스를 제공하는 CNC CARE의 공동 창업자로서 활동을 이어가고 있습니다.
관련 기사
이 주제에 관한 다른 기사
G27 기준점 복귀 검사: 다중 브랜드 CNC 제어기 안전 설정 가이드
화낙(Fanuc), 지멘스(Siemens), 미쓰비시(Mitsubishi) CNC의 G27 원점 복귀 검사 명령어 사용법과 파라미터 설정을 설명합니다. 알람을 해결하고 비가동 시간과 터렛 충돌을 예방하십시오.
지멘스 SINUMERIK G26 상한 작업 영역 및 주축 속도 제한 설정
지멘스 SINUMERIK G26 명령어로 상한 작업 영역과 주축 속도 한계를 설정하여 충돌을 방지하는 방법입니다. SD 43420 파라미터 설정법, 비가동 시간 단축을 위한 운전 노하우 및 알람 해결 가이드를 상세히 설명합니다.
CNC G26 주축 속도 변동 감지 및 제한 설정 가이드
Fanuc, Siemens, Mitsubishi CNC 제어기에서 G26 명령어를 사용해 주축 속도 변동을 감지하고 속도 제한을 설정하여 공구 파손 및 기계 충돌 사고를 방지하는 방법을 설명합니다.
G25 하한 작업 영역 및 주축 속도 제한 설정 가이드 (Siemens CNC)
지멘스(Siemens) CNC 제어기에서 G25 명령어를 활용하여 하한 작업 영역 경계와 주축 속도 제한을 설정하고 터렛 충돌을 방지하는 파라미터(SD 43430, MD 10604) 조정 노하우를 알아봅니다.