CNC 만들기 #5 - G Code
G Code
참고 링크 : http://www.linuxcnc.org/docs/2.4/html/gcode_overview.html#sec:Modal-Groups
1. G Code란
G Code는 RS274/NGC 언어를 기본으로하는 EMC2 G Code 언어이다. G Code는 라인으로 구성되는데, 이 각 라인을 "block"으로 부른다. 이 라인은 여러가지 다른 일을 할 명령어셋으로 구성될 수 있다.
각 명령어라인(이하 블럭)은 하나 혹은 다수의 글자들(words)로 시작하는데, 이 글자들 뒤에는 숫자들이 따로오게 되어 있다.
예를 들면, "G1 X3"이라는 블럭은 2개의 글자로 구성되어 있다. "G1"은 기존에 설정되어 있는 속도로 직선운동을 하라는 것이고, "X3"은 G1의 인자로 인식된다.
대부분의 EMC2 G Code는 G(General) 혹은 M(Miscellaneous)로 시작하고, 각각 G Code, M Code로 불린다.
EMC2 언어는 프로그램의 시작을 알리는 지시자가 없고, 인터프리터는 파일 단위로 처리한다. 하나의 프로그램은 하나의 파일일 수도 있고, 여러 파일로 구성될 수도 있다. 파일 내에서는 %로 구분한다. 파일이 %로 시작하지 않으면 에러를 발생시키지만, 종료시에는 해당사항이 없다.
EMC2 G Code 언어는 M2 혹은 M30이라는 2개의 특수 명령어를 가지고 있다. 이 명령어들은 프로그램의 종료를 명시한다. 즉, 파일의 최종라인까지 실행하기 전에 이 명령어가 실행되면 프로그램이 종료된다.
1.1 명령어 라인 형식
아래 형식을 허용한다.- "/"
- line number
- 모둔 문자
- 라인 종료문자 (캐리지리턴 혹은 라인피드)
명시적으로 허용하는 문자 이외는 모두 에러로 처리된다.
스페이스문자와 탭문자는 허용되지만, 아무런 영향을 끼치지 않는다. 예를 들어 "G0X +0. 12 34Y 7" == "G0 X+0.1234 Y7"로 취급한다.
대소문자는 구별하지 않는다.
대소문자는 구별하지 않는다.
1.2 줄번호(Line Number)
줄번호(Line Number)는 정수 0~99999까지 허용하고 있다. 6자리 정수는 허용되지 않는다.1.3 문자 (Word)
허용문자는 다음과 같다.- A : 머신의 A축
- B : 머신의 B축
- C : 머신의 C축
- D : Tool radius compensation number
- F : 이동 속도 (Feed Rate)
- G : 일반적인 기능(General Function으로 다른 곳에서 상세 설명함)
- H : Tool Length Offset Index
- I : X offset for arcs and G87 canned cycles
- J : Y offset for arcs and G87 canned cycles
- K : Z offset for arcs and G87 canned cycles, Spindle-Motion Ratio for G33 synchronized movments
- M : 기타 기능(Miscellaneous function으로 다른 곳에서 상세 설명함)
- N : 줄번호
- P : Dwell time in canned cycles and with G4, Key used with G10
댓글
댓글 쓰기