맨위로가기

G-code

"오늘의AI위키"는 AI 기술로 일관성 있고 체계적인 최신 지식을 제공하는 혁신 플랫폼입니다.
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.

1. 개요

G-code는 수치 제어(NC) 공작 기계를 제어하는 데 사용되는 프로그래밍 언어이다. 1950년대 MIT 서보 기구 연구소에서 처음 개발되었으며, 이후 여러 표준과 다양한 구현이 등장했다. 미국에서는 1963년 전자 산업 연합(EIA)에서 RS-274를 발행하며 표준화 노력이 시작되었고, ISO 6983과 같은 다른 표준도 사용되었다. G-code는 초기에는 제한적인 구문을 가졌지만, 현대에는 매크로 언어 기능과 PLC 데이터 접근 기능을 포함하여 발전했다. 제조사별 확장과 변형이 존재하며, BCL(Binary Cutter Language)과 같은 파생형도 있다. 일부 CNC 기계는 G-code를 숨기거나 우회하는 대화형 프로그래밍 방식을 사용하기도 한다.

더 읽어볼만한 페이지

  • 컴퓨터 이용 공학 - 수치 제어
    수치 제어는 컴퓨터로 공작 기계를 제어하는 자동화 기술로, 자동 직조기에서 기원하여 CNC 공작 기계로 발전, 다양한 산업 분야에서 활용되며, 최근에는 인공지능과 융합된 스마트 CNC 시스템으로 진화하고 있다.
  • 컴퓨터 이용 공학 - 전사적 자원 관리
    전사적 자원 관리(ERP)는 기업의 자원과 업무 프로세스를 통합하여 효율성을 높이는 시스템이며, 재무, 인사, 제조, 공급망 관리 등 다양한 기능을 다루고, 기업의 의사 결정, 투명성, 세계화를 지원한다.
  • 도메인 특화 프로그래밍 언어 - 도메인 특화 언어
    도메인 특화 언어(DSL)는 특정 문제 영역에 특화된 프로그래밍 언어로, 외부 DSL, 내부 DSL, 시각적 다이어그램 언어 등으로 분류되며, 생산성 향상에 기여하지만 새로운 언어 학습의 필요성과 적용 분야의 제한이라는 특징을 가진다.
  • 도메인 특화 프로그래밍 언어 - S (프로그래밍 언어)
    S는 벨 연구소에서 개발된 통계 컴퓨팅 언어로서, 탐색적 데이터 분석, 다양한 통계 분포 계산, 행렬 연산, 데이터 시각화 기능을 제공하며, S-PLUS를 거쳐 R로 발전하고 객체 지향 기능을 강화한 S4 표준을 포함하여 꾸준히 발전해 왔다.
  • 금속가공 - 소결
    소결은 분말 재료를 녹는점 이하의 고온에서 가열하여 입자들을 결합시켜 고체 덩어리로 만드는 공정으로, 세라믹스 제조 및 분말 야금에 활용되며 재료의 특성을 향상시킨다.
  • 금속가공 - 알루미늄박
    알루미늄박은 0.2mm 미만의 얇은 알루미늄 시트로서 식품 포장, 조리, 건축, 전기·전자 부품 등 다양한 분야에 사용되며 재활용이 가능하지만 가격 담합 및 환경 문제에 대한 논란이 있다.
G-code - [IT 관련 정보]에 관한 문서
G-코드
파일 확장자.gcode, .mpt, .mpf, .nc 등 다수
프로그래밍 패러다임절차적 프로그래밍, 명령형 프로그래밍
최초 공개1963년 (RS-274)
설계자매사추세츠 공과대학교
개발자미국 전자산업협회(RS-274), 국제표준화기구(ISO-6983)
구현체다수; 주로 지멘스 Sinumerik, FANUC, Haas, Heidenhain, Mazak, Okuma
영향을 받은 언어해당 없음
영향을 준 언어해당 없음
프로그래밍 언어해당 없음
플랫폼해당 없음
운영체제해당 없음
라이선스해당 없음
웹사이트해당 없음
위키북해당 없음
머신 코드
파일 확장자.gcode, .mpt, .mpf, .nc 등 다수
프로그래밍 패러다임절차적, 명령형
최초 공개1950년대 (제1판)
설계자매사추세츠 공과대학교
개발자해당 없음
최신 버전해당 없음
최신 릴리스 날짜해당 없음
최신 미리보기 버전해당 없음
최신 미리보기 날짜해당 없음
타입해당 없음
구현체다수 (주로 지멘스 Sinumerik, FANUC, Haas, Heidenhain, Mazak, Okuma)
영향을 받은 언어해당 없음
영향을 준 언어해당 없음
프로그래밍 언어해당 없음
플랫폼해당 없음
운영체제해당 없음
라이선스해당 없음
웹사이트해당 없음
위키북해당 없음

2. 역사

G-코드의 요소는 1950년대 MIT 서보 기구 연구소에서 개발된 초기 수치 제어 프로그래밍 언어 구현에서부터 사용되었다. 이후 상업 및 비상업 기구에서 여러 구현이 개발되었다.[2][3]

1970년대부터 1990년대까지, 많은 CNC 공작 기계 제조업체들은 화낙에서 제작한 공작 기계 컨트롤러를 표준화하여 호환성 문제를 해결하려 했다. 지멘스 역시 CNC 제어 분야에서, 특히 유럽에서 시장을 지배하는 또 다른 기업이었다. 2010년대에는 CAD/CAM 응용 프로그램이 널리 채택되면서 컨트롤러의 차이점과 비호환성이 완화되었는데, 이들은 포스트 프로세서(때로는 "포스트"로 축약됨)라는 소프트웨어 도구를 통해 특정 기계에 적합한 G-코드로 기계 작동을 출력할 수 있었다.

2. 1. 초기 개발

수치 제어 프로그래밍 언어의 첫 번째 구현은 1950년대 MIT 서보 기구 연구소에서 개발되었다. 그 후 수십 년 동안, 상업 및 비상업 기구에서 여러 구현이 개발되었다. G-코드의 요소들은 이러한 구현에서 종종 사용되었다.[2][3] 미국에서 사용된 G-코드의 첫 번째 기술 표준 버전인 ''RS-274''는 1963년 전자 산업 연합(EIA; 당시 전자 산업 협회로 알려짐)에서 발행되었다.[4]

2. 2. 표준화 노력

전자 산업 연합(EIA)은 1963년에 G-코드의 첫 번째 기술 표준 버전인 ''RS-274''를 발행했다.[4] 1974년, EIA는 ''RS-273''(위치 지정 및 직선 절단을 위한 가변 블록)과 ''RS-274-B''(윤곽선 및 윤곽선/위치 지정을 위한 가변 블록)를 병합한 ''RS-274-C''를 승인했다. 1979년에는 ''RS-274''의 최종 개정판인 ''RS-274-D''가 승인되었다.[5][6]

ISO 6983(1982년 최종 완료)이 다른 국가에서 자주 사용되지만,[7] 많은 유럽 국가에서는 다른 표준을 사용한다. 예를 들어, 독일에서는 DIN 66025가 사용되며, 폴란드에서는 과거에 PN-73M-55256 및 PN-93/M-55251이 사용되었다.

3. 구문 (Syntax)

G-코드는 초기에는 루프, 조건 연산자, 프로그래머가 선언한 변수 및 이름을 포함하는 자연어와 같은 구문이 부족한 제한적인 언어였다. 논리를 인코딩할 수 없었지만 프로그래머가 많은 점의 위치를 직접 계산하는 "점 연결" 방식이었다. 최신 G-코드 구현에는 고급 프로그래밍 언어에 더 가까운 매크로 언어 기능이 포함되어 있다. 또한, 화낙(Fanuc), 지멘스(Siemens), 하이덴하인(Heidenhain)과 같은 주요 제조업체들은 NC 프로그램에서 사용되는 변수를 통해 축 위치 데이터 및 공구 데이터와 같은 프로그래머블 로직 컨트롤러(PLC) 데이터에 대한 접근을 제공한다.[1]

3. 1. 기본 명령어

G-코드는 초기에는 루프, 조건 연산자, 프로그래머가 선언한 변수 및 이름을 포함하는 자연어와 같은 구문이 부족한 제한적인 언어였다. 논리를 표현할 수 없었지만, 프로그래머가 많은 점의 위치를 직접 계산하는 "점 연결" 방식이었다. 최신 G-코드 구현에는 고급 프로그래밍 언어에 더 가까운 매크로 언어 기능이 포함되어 있다. 또한, 화낙(Fanuc), 지멘스(Siemens), 하이덴하인(Heidenhain)과 같은 주요 제조업체들은 NC 프로그램에서 사용되는 변수를 통해 축 위치 데이터 및 공구 데이터와 같은 프로그래머블 로직 컨트롤러(PLC) 데이터에 대한 접근을 제공한다. 이러한 구문은 자동화 애플리케이션 개발을 쉽게 만든다.[1]

3. 2. 매크로 기능

G-코드는 초기에는 루프, 조건 연산자, 프로그래머가 선언한 변수 및 이름을 포함하는 자연어와 같은 구문이 부족한 제한적인 언어였다. 논리를 인코딩할 수 없어, 프로그래머는 많은 점의 위치를 직접 계산하는 "점 연결" 방식으로 작성해야 했다. 그러나 최신 G-코드 구현에는 고급 프로그래밍 언어에 더 가까운 매크로 언어 기능이 포함되어 있다. 또한, 화낙(Fanuc), 지멘스(Siemens), 하이덴하인 등 모든 주요 제조업체는 NC 프로그램에서 사용되는 변수를 통해 축 위치 데이터 및 공구 데이터와 같은 프로그래머블 로직 컨트롤러(PLC) 데이터에 대한 접근을 제공한다. 이러한 구문은 자동화 애플리케이션 개발을 쉽게 만든다.[1]

4. 확장 및 변형 (Extensions and variations)

제어 제조업체와 공작 기계 제조업체에서 G-코드의 확장 및 변형을 독자적으로 추가했기 때문에, 특정 컨트롤러 운영자는 각 제조업체 제품 간의 차이점을 인지해야 한다.[9]

BCL(이진 커터 언어)로 알려진 G-code의 표준화된 버전은 매우 소수의 기계에서만 사용된다.[9] MIT에서 개발된 BCL은 직선과 호의 관점에서 CNC 기계를 제어하기 위해 개발되었다.[9]

일부 CNC 기계는 G-code를 숨기거나 G-code 사용을 완전히 우회하는 마법사와 같은 프로그래밍 모드인 "대화형" 프로그래밍을 사용한다. Okuma의 Advanced One Touch (AOT), Southwestern Industries의 ProtoTRAK, Mazak의 Mazatrol, Hurco의 Ultimax 및 Winmax, Haas의 직관적인 프로그래밍 시스템 (IPS), Mori Seiki의 CAPS 대화형 소프트웨어 등이 그 예이다.[9]

4. 1. 제조사별 확장

제어 제조업체와 공작 기계 제조업체들은 G-코드 확장 및 변형을 독자적으로 추가하여, 특정 컨트롤러 운영자는 각 제조업체 제품 간의 차이점을 인지해야 한다.[9]

BCL(이진 커터 언어)로 알려진 표준화된 G-code 버전은 매우 소수의 기계에서만 사용된다.[9] BCL은 MIT에서 개발되었으며, 직선과 호의 관점에서 CNC 기계를 제어하기 위해 개발되었다.[9]

일부 CNC 기계는 G-code를 숨기거나 G-code 사용을 완전히 우회하는 마법사와 같은 프로그래밍 모드인 "대화형" 프로그래밍을 사용한다. 몇 가지 예로는 Okuma의 Advanced One Touch (AOT), Southwestern Industries의 ProtoTRAK, Mazak의 Mazatrol, Hurco의 Ultimax 및 Winmax, Haas의 직관적인 프로그래밍 시스템 (IPS), Mori Seiki의 CAPS 대화형 소프트웨어 등이 있다.[9]

4. 2. BCL (Binary Cutter Language)

MIT에서 개발된 BCL은 직선과 호의 관점에서 CNC 기계를 제어하기 위해 개발되었다.[9] ''BCL''(Binary Cutter Language)은 G-code의 표준화된 버전으로, 매우 소수의 기계에서만 사용된다.[9]

4. 3. 대화형 프로그래밍 (Conversational Programming)

마법사와 같은 프로그래밍 모드를 사용하여 G-code를 숨기거나 G-code 사용을 완전히 우회하는 방식을 "대화형" 프로그래밍이라고 한다. 이러한 방식은 일부 CNC 기계에서 사용된다. 대표적인 예시는 다음과 같다.[9]

  • Okuma의 Advanced One Touch (AOT)
  • Southwestern Industries의 ProtoTRAK
  • Mazak의 Mazatrol
  • Hurco의 Ultimax 및 Winmax
  • Haas의 직관적인 프로그래밍 시스템 (IPS)
  • Mori Seiki의 CAPS 대화형 소프트웨어


제어 제조업체와 공작 기계 제조업체에서 독립적으로 확장 및 변형이 추가되었기 때문에, 특정 컨트롤러의 운영자는 각 제조업체의 제품 간의 차이점을 알아야 한다.

5. 대한민국 제조업에서의 활용

(이전 출력이 없으므로, 수정할 내용이 없습니다. 원본 소스를 제공해주시면 대한민국 제조업에서의 G-코드 활용에 대한 내용을 작성할 수 있습니다.)

6. 참고 문헌


  • 오버그, 에릭; 존스, 프랭클린 D.; 호턴, 홀브룩 L.; 리펠, 헨리 H. (1996). 그린, 로버트 E.; 맥컬리, 크리스토퍼 J. (eds.). 《머시너리 핸드북》 25판. 산업 출판사(Industrial Press). 뉴욕. ISBN 978-0-8311-2575-2. OCLC 473691581.
  • 스미드, 피터 (2008). 《CNC 프로그래밍 핸드북》 3판. 산업 출판사(Industrial Press). 뉴욕. ISBN 9780831133474. LCCN 2007045901.
  • 스미드, 피터 (2010). 《밀링 및 선반 가공을 위한 CNC 제어 설정》. 산업 출판사(Industrial Press). 뉴욕. ISBN 978-0-8311-3350-4. LCCN 2010007023.
  • 스미드, 피터 (2004). 《파낙 CNC 사용자 정의 매크로》. 산업 출판사(Industrial Press). ISBN 978-0-8311-3157-9.

참조

[1] 서적 Secrets of 5-Axis Machining https://books.google[...] Industrial Press Inc. 2008
[2] 서적 Integrating Advanced Computer-aided Design, Manufacturing, and Numerical Control: Principles and Implementations https://books.google[...] Information Science Reference 2009
[3] 서적 Introduction to Advanced Manufacturing https://books.google[...] SAE International 2019
[4] 서적 National Bureau of Standards Information Report (NBSIR) 76-1094 (R): Standards for Computer Aided Manufacturing https://www.govinfo.[...] National Bureau of Standards 1976
[5] 간행물 Understanding common CNC protocols https://link.gale.co[...] Vance Publishing 1998-01-01
[6] 간행물 EIA Standard RS-274-D Interchangeable Variable Block Data Format for Positioning, Contouring, and Contouring/Positioning Numerically Controlled Machines Electronic Industries Association 1979-02
[7] 서적 Advanced Design and Manufacturing Based on STEP https://books.google[...] Springer London 2009
[8] 웹사이트 Fanuc macro system variables http://www.machineto[...] 2014-06-30
[9] 웹사이트 Information Technology Standards: Quest for the Common Byte. https://books.google[...] Elsevier Science 1995



본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.

문의하기 : help@durumis.com