산업 제조
산업용 사물 인터넷 | 산업자재 | 장비 유지 보수 및 수리 | 산업 프로그래밍 |
home  MfgRobots >> 산업 제조 >  >> Manufacturing Technology >> 산업기술

CNC 프로그래밍 마스터: 언어 구조, G/M코드, 레터 어드레스 완전 정복

학습 목표

이 단원을 완료하면 다음을 수행할 수 있습니다:

CNC 프로그램은 작성 순서대로 명령 수행. 책 읽듯 왼쪽→오른쪽, 위→아래. 각 문장은 별도 줄(Block)에 작성. 블록들은 안전성, 예측 가능성, 가독성 증진을 위해 표준 구조에 따라 배열. 표준 프로그램 구조 준수 중요.

블록 표준 배열 순서

위는 1공구·1가공 최단 프로그램 구조. 다공구 프로그램은 2~9단계 반복.

Table 3, Table 4(G & M Codes 섹션)에 가장 흔한 G/M코드 정리. 가능하면 암기 권장.

어떤 언어든 규칙 존재. 예: 모달(Modal) 코드는 블록 간 변경 없으면 반복 불필요. 코드 의미가 사용 위치/방식 따라 달라지기도 함. 이 규칙들 본 단원 다루나 모든 뉘앙스 외울 필요 없음. CAD/CAM 소프트웨어 포스트 프로세서(Post Processor)가 CNC 프로그램을 올바르게 포맷·작성하는 역할 담당.

프로그램 포맷(Program Format)

Table 1 프로그램: 사각 윤곽 가공 + 구멍 드릴링.

블록(Block)설명(Description)목적(Purpose)
%
O1234
(T1 0.25 END MILL)
G17 G20 G40 G49 G80 G90
프로그램 시작.
프로그램 번호(이름).
운영자용 공구 설명.
안전 블록: 기계 안전 모드 강제.
프로그램 시작
T1 M6
S9200 M3
공구 1번 로드.
스핀들 9200 RPM, 정회전(CW).
공구 교환
G54
M8
G00 X-0.025 Y-0.275
G43 Z1. H1
Z0.1
G01 Z-0.1 F18.
지그 오프셋 1번 사용.
쿨런트 온.
공작물 위 급이동.
안전 평면 급이동, 공구 길이 오프셋 1번 적용.
피드 평면 급이동.
절삭 깊이 -0.1까지 직선 이송, 18 IPM.
위치 이동
G41 Y0.1 D1 F36.
Y2.025
X2.025
Y-0.025
X-0.025
G40 X-0.4
G00 Z1.
커터 직경 보상(CDC) 좌측, 리드인, 지름 오프셋 1번, 36 IPM.
직선 이동.
직선 이동.
직선 이동.
직선 이동.
CDC 해제 + 리드아웃 이동.
안전 평면 급이동.
윤곽 가공
M5
M9
(T2 0.25 DRILL)
T2 M6
S3820 M3
스핀들 오프.
쿨런트 오프.
공구 설명.
공구 2번 로드.
스핀들 3820 RPM, 정회전.
공구 교환
M8
X1. Y1.
G43 Z1. H2
Z0.25
쿨런트 온.
구멍 위 급이동.
안전 평면 급이동, TLO 2번.
피드 평면 급이동.
위치 이동
G98 G81 Z-0.325 R0.1 F12.
G80
Z1.
드릴 사이클(캔드 사이클), 깊이 Z-0.325, F12.
드릴 사이클 취소.
안전 평면 급이동.
드릴링
M5
M9
G91 G28 Z0
G91 G28 X0 Y0
G90
M30
%
스핀들 오프.
쿨런트 오프.
기계 홈 Z 복귀.
기계 홈 XY 복귀.
절대 좌표 모드 복구(안전).
프로그램 처음으로 리셋.
프로그램 끝.
프로그램 종료

레터 어드레스 명령 코드(Letter Address Commands Codes)

명령 블록은 레터 어드레스 명령으로 기계 제어. 일부는 중복 사용되며 동일 블록 내 G코드에 따라 의미 변경.

코드는 모달(Modal)(취소/변경 전까지 유지) 또는 비모달(Non-modal)(해당 블록만 유효). 많은 레터 어드레스가 논리적 선택(T=Tool, S=Spindle, F=Feed Rate 등).

가장 흔한 레터 어드레스 코드 표(Table 2):

변수설명정의/예시
AA축 절대/증분 위치 (X축 회전 4/5축)A,B,C = 4/5축 회전 운동. X,Y,Z축 회전각. 도(°) 단위, 소수점 3자리. G01 A45.325 B90.
BB축 절대/증분 위치 (Y축 회전)A와 동일
CC축 절대/증분 위치 (Z축 회전)B와 동일
D커터 보상용 직경/반경 오프셋 정의공구 직경 마모/휘어짐 보상. 공구 번호와 동일 정수 사용(T5→D5). 소수점 없음. G41/G42와 XY이동 시만 사용(아크 안됨). 호출 시 레지스터 값만큼 좌측(G41) 또는 우측(G42) 경로 오프셋. G01 G41 X2. D1
E선반 나사 가공용 정밀 이송률-
F이송률(Feed Rate) 정의직선/아크/드릴 사이클 가공 이송률. 인치/분(G94) 또는 역시간(G93). 소수점 3자리, 소수점 필수. G01 X2. Y0. F30.
G준비 기능(Preparatory Commands) 주소원하는 운동 종류(급이동, 직선이송, 원호이송, 고정 사이클 등) 또는 오프셋 값 지정. G02 X2. Y2. I.5 J0.
H공구 길이 오프셋(TLO) 정의; C축 대응 증분축(턴밀 등)제어기 TLO 레지스터 호출. TLO+지그오프셋Z로 공구-부품 데이터 관계 파악. 정수 수반(H1,H2...), G43, Z좌표 동반. G43 H1 Z2.
IG02/G03 원호 X축 중심 거리; 일부 고정사이클 파라미터원호 이동 시 시작점에서 원호 중심까지 X증분거리. 일부 드릴 사이클 선택 파라미터. G02 X.5 Y2.5 I0. J0.25
JG02/G03 원호 Y축 중심 거리; 일부 고정사이클 파라미터원호 이동 시 시작점에서 원호 중심까지 Y증분거리. G02 X.5 Y2.5 I0. J0.25
KG02/G03 원호 Z축 중심 거리; 일부 고정사이클 파라미터, L주소와 동일원호 이동 시 Z증분거리. G17 평면에서 나선 가공 Z증분. G18 G03 X.3 Z2.5 I0. K0.25
L고정사이클 반복 횟수; G10 레지스터 지정고정사이클 위치당 반복 횟수(기본 1). K주소 대체 사용도. 증분 위치(G91)에서 등간격 구멍 시리즈를 루프로 프로그래밍 가능. G10용: 편집할 레지스터 지정(워크오프셋, 공구반경/길이 오프셋 등).
M보조 기능(Miscellaneous Function)의미 결정 정수 수반. 블록당 1개 M코드만 허용. 확장 정의 추후. M08
N프로그램 블록 번호; G10 시스템 파라미터 번호가독성 향상. 서브프로그램 없는 CAD/CAM 생성 프로그램엔 잘 안씀. 제어기 메모리 절약 위해 3D프로그램 대부분 블록번호 생략. 정수 5자리까지, 소수점 없음. %(테이프시작/끝) 앞, 주석만 블록 앞엔 안나옴. N100 T02 M06
O프로그램 이름(Program Name)제어기 저장용 프로그램 번호. O로 시작, 소수점 없는 정수. O1234 (Exercise 1)
P다양한 G/M코드 파라미터 주소체류 시간(Dwell) 초 단위. G4 동반 시 또는 일부 드릴 사이클 내. G4 P.1
Q캔드 사이클 펙 증가량(Peck Increment)펙 드릴 사이클 패스당 증분 이송거리. G83 X2. Y2. Z-.625 F20. R.2 Q.2 P9.
R원호 반경 정의 또는 캔드 사이클 복귀 높이원호는 R 또는 I,J,K 벡터로 정의. IJK가 R보다 신뢰성 높아 권장. 드릴 사이클에서 리턴 플레인 Z값. G83 Z-.625 F20. R.2 Q.2 P9.
S속도 정의(스핀들 RPM 또는 면속도)스핀들 분당 회전수(RPM). 정수, 소수점 없음. M03(CW) 또는 M04(CCW)와 동반. S2500 M03
T공구 선택(Tool Selection)공구 선택. 정수, M06(공구교환) 동반. T01 M06
UX축 대응 증분축(선반 A그룹); 일부 기계 체류시간이 제어기서 X/U가 G90/G91 대체. 선반에서 G90은 황삭 고정사이클 주소.
VY축 대응 증분축2000년대 전까지 드물었음. Y축 없는 선반 많았음. 라이브 툴링/턴밀 확산으로 사용 증가.
WZ축 대응 증분축(선반 A그룹)Z/W가 G90/G91 대체. 선반에서 G90은 황삭 고정사이클.
XX축 절대/증분 위치X축 좌표 데이터. 소수점 4자리까지, 후행 0 생략. 좌표 모달 → 변경 없으면 반복 불필요. G01 X2.250 F20.
YY축 절대/증분 위치Y축 좌표 데이터. G01 Y2.250 F20.
ZZ축 절대/증분 위치Z축 좌표 데이터.

특수 문자 코드 정의(Special Character Code Definitions)

G코드와 M코드(G & M Codes)

CNC 프로그램 내용 대부분 구성. 각 코드 클래스 정의와 중요 코드별 의미 설명.

G코드 (G-Codes)

G로 시작하는 코드는 준비 기능(Preparatory Words). 기계 특정 운동 준비.

Table 3: 주요 G코드

코드설명
G00급이동(Rapid Motion). 비절삭 이동 위치決め.
G01지정 이송률 직선 운동(Linear Feed).
G02시계 방향 원호(CW Arc).
G03반시계 방향 원호(CCW Arc).
G04체류(Dwell).
G28기계 홈 위치 복귀(Return to Machine Home).
G40커터 직경 보상(CDC) 해제.
G41커터 직경 보상(CDC) 좌측(Left).
G42커터 직경 보상(CDC) 우측(Right).
G43공구 길이 오프셋(TLO) 적용.
G54지그 오프셋 1번(Fixture Offset #1).
G55지그 오프셋 2번.
G56지그 오프셋 3번.
G57지그 오프셋 4번.
G58지그 오프셋 5번.
G59지그 오프셋 6번.
G80드릴 사이클 취소.
G81단순 드릴 사이클.
G82체류 포함 단순 드릴 사이클.
G83펙 드릴 사이클(Peck Drilling).
G84태핑 사이클(Tapping Cycle).
G90절대 좌표 프로그래밍 모드.
G91증분 좌표 프로그래밍 모드.
G98드릴 사이클 초기점(R) 복귀.
G99드릴 사이클 기준면(마지막 Z높이) 복귀.

M코드 (M-Codes)

M으로 시작 = 보조 기능(Miscellaneous Words). 쿨런트, 스핀들 방향 등 기계 보조 기능 제어. 블록당 1개 M코드만 허용.

Table 4: 주요 M코드

코드설명
M00프로그램 정지. 사이클 스타트 버튼으로 재개.
M01선택 정지(Optional Stop).
M02프로그램 끝(End of Program).
M03스핀들 정회전(CW) 온.
M04스핀들 역회전(CCW) 온.
M05스핀들 정지.
M06공구 교환(Change Tool).
M08쿨런트 온.
M09쿨런트 오프.
M30프로그램 끝 + 사이클 스타트로 재실행.

주요 G코드 상세 설명(Select G-Code Definitions - Expanded)

G00 - 급이동(Rapid Move)

기계가 최대한 빨리 지정점 이동 명령. 좌표 위치와 동반, 모달. G01과 달리 축 간 직선 보간 안함. 각 축 최대 속도 독립 이동 → Figure 18 같은 운동.

G00 X0. Y0.

CNC 프로그래밍 마스터: 언어 구조, G/M코드, 레터 어드레스 완전 정복
Figure 1. G00 Motion

주의: 일부 기계 급이동 속도 1,000 IPM 초과 가능. 잘못된 오프셋/좌표 이동 시 운영자 비상정지 누르기 전 기계 충돌. 최초 프로그램 실행 시 급이동 오버라이드(Rapid Feed Override) 활용.

직선 운동(Linear Motion = Straight Line Motion)

G코드는 운동 제어. 부품 프로그램에서 가장 흔한 운동 = 직선/리니어 운동. 운동도 모달. G코드로 운동 종류 지시하면 변경 명령(G코드) 전까지 그 운동 유지.

X, Y, Z로 직선 운동 지정

G00/G01 지정만으론 운동 발생 안함 → 운동 종류만 예고. 실제 이동 위해 목적지 X, Y, Z 지정 필요. 부품 원점 이동 예:

G00 X0 Y0 Z0 또는 느리게 G01 X0 Y0 Z0 F40.

한 줄에 다중 좌표 지정 = 보간 운동(Interpolated Motion). 여러 축 동시 이동. 제어기 각 축 적절 속도 조절로 공구 직선 경로 따라 이송률 유지.

좌표 여러 줄 분산 = 개별 이동:

G00 X0 Y0 (Z 고정 X0Y0 이동)
Z0 (X,Y 고정 Z0 이동)

G00/G01 모달 → 모드 변경 시만 재지정.

Z축 고려사항

보간 운동 개념은 Z축에 흥미로운 이슈 제기. 절삭 깊이 축(Z)을 X,Y와 보간 이동하지 않고 별도 이동하는 게 종종 유리. 공구 공작물/지그 접근 시 충돌 여부 판단 용이. X,Y 먼저 이동 후 Z 이동 → 우발적 충돌(클램프 등) 가능성 낮춤.

G02/G03 - 원호 운동(Circular Motion) 모드 개시

G02/G03 모드 설정 후 원호는 두 끝점(Endpoints)과 중심(Center)으로 정의. 중심은 양 끝점에서 등거리. 한 끝점 = 블록 시작 시 현재 제어점(Current Control Point). 다른 끝점 = XYZ 좌표 지정. 중심 주로 I, J, K로 시작점에서 중심까지 상대 벡터 지정.

시계 방향 원호 예시

CNC 프로그래밍 마스터: 언어 구조, G/M코드, 레터 어드레스 완전 정복
Figure 2. An Arc's center with IJK

시작 X0Y2, 끝 X2Y0. 중심 X0Y0. G코드:

G02 (시계 방향 원호 모드)
X2 Y0 I0 J-2.0

반경 R로 중심 지정

원 반경 R 직접 지정 가능. 반경 2 → G02 X2 Y0 R2

※ IJK 벡터 방식 권장(R보다 신뢰성 높음).

G17/G18/G19 - 평면 지정(Plane Designation)

원호는 지정된 평면 상 존재: G17(XY), G18(XZ), G19(YZ). 기본값 G17.

CNC 프로그래밍 마스터: 언어 구조, G/M코드, 레터 어드레스 완전 정복
Figure 3. Plane Designation

G40/G41/G42 - 커터 직경 보상(Cutter Diameter Compensation - CDC)

CDC는 정밀 CNC 가공 핵심. 공구 마모/휘어짐 보상 위해 프로그래밍 경로에서 좌측(G41) 또는 우측(G42) 이탈 명령. G40으로 보상 해제. 오프셋량은 CNC 제어기 D-레지스터 입력. 마모 레지스터 = 제어기 매 이동 참조 테이블.

Table 5: 직경 오프셋 레지스터(Diameter Offset Register)

공구 직경 오프셋값
D10.0125
D20.0000
D30.0000
D40.0000
D50.0000
D60.0000

D-레지스터 값은 운영자가 완성 피처 치수 측정 → 도면 비교 → 차이 입력으로 부품 공차 내 유지. 편차 없으면 0.

예: G01 G41 D1 X1.0 Y.25 F40.

G43 - 공구 길이 보상(Tool Length Compensation)

G43 공구 길이 보상 활성화. 항상 H코드와 Z이동 동반. H = 읽을 TLO 레지스터, Z = 부품 데이터 기준 이동 높이.

TLO도 제어기 테이블 개념:

Table 6: 공구 길이 레지스터(Work Offsets)

공구 길이 레지스터Z값
H110.236
H24.7510
H36.9652
H47.6841
H512.4483
H68.2250

TLO + 활성 지그 오프셋 = 기계가 공구 팁 위치를 부품 데이터 기준 파악.

G43 H1 Z1.

G54 - 워크 오프셋(Work Offset)

워크 오프셋 = CNC 제어기 데이터 레지스터. 기계 홈 X,Y,Z에서 부품 데이터까지 거리 저장. 제어기 테이블 개념:

Table 7: 워크 오프셋(Work Offset)

워크 오프셋XYZ
G5414.25676.65970.0000
G550.00000.00000.0000
G560.00000.00000.0000
G570.00000.00000.0000
G580.00000.00000.0000
G590.00000.00000.0000

팁: G54 보통 첫 가공 셋업용. 추가 오프셋으로 부품 타면 가공.

X,Y값 = 기계 홈→부품 데이터 XY 거리. Z값 = 공구 기준점(예: 1-2-3 블록 상단)~부품 Z-데이터 거리.

G54 X0. Y0.

단원 평가

  1. CNC 프로그램 명령 리스트 설명.
  2. 모든 CNC 프로그램 시작/끝 문자?
  3. 레터 어드레스 명령 코드 설명.
  4. 특수 문자 코드 3가지 나열.
  5. G코드와 M코드 설명.
  6. G00 G90 G54 X0 Y0 의미 설명.
  7. G00 G90 G43 H1 Z1. 의미 설명.
  8. G00과 G01 차이?
  9. G02와 G03 차이?
  10. F워드와 S워드 설명.

산업기술

  1. 마이크로프로세서 프로그래밍 기초
  2. C 프로그램 구조 이해: Hello World부터 컴파일 실행까지
  3. C# 프로그램 구조 이해: 핵심 구성 요소와 Hello World 예제
  4. CNC 가공 마스터하기: 변수 통제로 일관된 결과 얻기
  5. CNC 밀링 정밀도 마스터하기: 정밀 부품을 위한 검증된 단계
  6. 포틀랜드, 오레곤의 프리미엄 CNC 가공 및 툴메이킹 서비스
  7. CNC 운용 실무: 하스(Hass) 밀 셋업·제어·가공 전 과정
  8. CNC 공작기계 정밀도 및 정확도 향상 종합 가이드
  9. CNC 공구·커터 그라인더 이해: 기능, 용도, 이점
  10. CNC 툴 프리세터 & 측정: 정밀도와 효율을 위한 필수 가이드