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 명령어 라인 형식

아래 형식을 허용한다.

  1. "/"
  2. line number
  3. 모둔 문자
  4. 라인 종료문자 (캐리지리턴 혹은 라인피드)
명시적으로 허용하는 문자 이외는 모두 에러로 처리된다.

스페이스문자와 탭문자는 허용되지만, 아무런 영향을 끼치지 않는다. 예를 들어 "G0X +0. 12 34Y 7" == "G0 X+0.1234 Y7"로 취급한다.

대소문자는 구별하지 않는다.

1.2 줄번호(Line Number)

줄번호(Line Number)는 정수 0~99999까지 허용하고 있다. 6자리 정수는 허용되지 않는다.

1.3 문자 (Word)

허용문자는 다음과 같다.

  1. A : 머신의 A축
  2. B : 머신의 B축
  3. C : 머신의 C축
  4. D : Tool radius compensation number
  5. F : 이동 속도 (Feed Rate)
  6. G : 일반적인 기능(General Function으로 다른 곳에서 상세 설명함)
  7. H : Tool Length Offset Index
  8. I : X offset for arcs and G87 canned cycles
  9. J : Y offset for arcs and G87 canned cycles
  10. K : Z offset for arcs and G87 canned cycles, Spindle-Motion Ratio for G33 synchronized movments
  11. M : 기타 기능(Miscellaneous function으로 다른 곳에서 상세 설명함)
  12. N : 줄번호
  13. P : Dwell time in canned cycles and with G4, Key used with G10










댓글

이 블로그의 인기 게시물

CNC 용어정리 #7 - 포토커플러/옵토커플러 (Photocoupler/Optocoupler)

CNC 만들기 #6 - GRBL V1.1 설정