Hopp til innhold
Fagartikkel

G-kodeprogrammering

G-kode er et program med instruksjoner som forteller ei CNC-maskin hvor og hvordan den skal bevege seg.

Historie

G-kode blei først etablert på 1960-tallet av Electronics Industry Association (EIA). Kodespråket fikk da navnet RS-274D, men i dagligtale benytter vi begrepet G-kode. Bakgrunnen for dette navnet er at mange av kommandoene i dette maskinbaserte språket starter med bokstaven G.

Selv om G-kode er ment å være en universell standard, har mange CNC-maskinfirmaer utvikla sine egne tilleggskoder. Derfor er det viktig at du kjenner til kodespråket for akkurat den maskina du skal jobbe på.

Hvor avanserte koder ei CNC-maskin kan jobbe etter, er også avhengig av utstyret den har, og av antall akser den kan jobbe rundt. Maskinas nøyaktighet bestemmer også hvor detaljert du kan programmere den.

Er du i usikker på om maskina kan handtere koden og produsere den delen du ønsker, må du bruke instruksjonsmanualen og kontrollere maskinas egenskaper.

G-kodens oppbygging

Den gangen G-kodestandarden blei etablert, hadde maskiner fremdeles liten minnekapasitet. Dette måtte utviklerne ta hensyn til, og G-kode er derfor et ekstremt kompakt og konsist språk som kan virke nesten gammeldags ved første øyekast.

Eksempel på sammensatt kodelinje

G01 X1 Y1 F20 T01 M03 S500

I denne enkle linja gir vi maskina seks ulike instruksjoner:

  1. G01: Utfør en lineær matebevegelse.

  2. X1/Y1: Flytt til disse X- og Y-koordinatene.

  3. F20: Beveg deg med en matehastighet på 20 millimeter per minutt.

  4. T01: Bruk verktøy nr. 1 for å få jobben gjort.

  5. M03: Slå på spindelen.

  6. S500: Still inn en spindelhastighet på 500 omdreininger i minuttet.

Du kan kombinere flere slike linjer med G-kode slik at de danner et komplett CNC-program. CNC-maskina di vil da lese ei kodelinje om gangen, fra venstre mot høyre og fra topp til bunn, som du leser ei bok. Hvert sett med instruksjoner er samla på ei linje eller i ei blokk.

Oppbygging av G-kodeprogrammer

Målet med hvert G-kodeprogram er å produsere deler på en så trygg og effektiv måte som mulig. Derfor finner du vanligvis G-kodeblokker ordna i en rekkefølge som dette:

  1. Start CNC-programmet.

  2. Last inn det nødvendige verktøyet.

  3. Velg spindelturtall og matehastighet.

  4. Slå på spindelen.

  5. Slå på kjølevæsken.

  6. Flytt til en posisjon over et arbeidsemne.

  7. Start bearbeidingsprosessen.

  8. Flytt skjæreverktøyet i arbeidsemnet som beskrevet i programmet.

  9. Slå av spindelen.

  10. Slå av kjølevæsken.

  11. Flytt skjæreverktøyet vekk fra arbeidsemnet til et trygt sted.

  12. Avslutt CNC-programmet.

Dette eksempelet på flyt er et enkelt program som bruker ett verktøy for én operasjon. I praksis vil du ofte benytte flere ulike verktøy, og da vil du gjenta trinn 2 til 10 til du har oppnådd den konturen eller det mønsteret du ønsker.

Modale koder og adressekoder

Som i andre programmeringsspråk fins det også i G-kode kommandoer som får maskina til å gjenta ei handling helt til du stopper den. Slike kommandoer kaller vi for modale koder. En modal kode fungerer til du slår den av, eller til du modifiserer den med en annen modal kode. M03 for eksempel er en modal kode som vil kjøre en spindel på ubestemt tid, helt til du ber den stoppe med kode M05.

M-kommandoene er maskinkoder, og de slår på maskinfunksjoner som spindelrotasjon, bruk av kjølevæske og stramming av kjoksen. Men G-kode omfatter også mange andre bokstavkommandoer. De består som oftest av en kombinasjon av en bokstav og et tall, for eksempel X2. X2 er en X-koordinat-adressekode som instruerer maskina å flytte verktøyet til verdien 2 på X-aksen.

Bokstavkommandoer i G-kodespråket

KommandoForklaring
ARotasjon rundt X-aksen
BRotasjon rundt Y-aksen
CRotasjon rundt Z-aksen
DKompensasjon for kuttdiameter (CDC)
FMatehastighet (Feed Rate). Oppgis i mm/min
GG-kommando. Kombineres med tall for riktig kommando
HOffsetverdi for verktøylengde. Viser til en lagringsplass i maskinminnet, for eksempel H2
IFlytting av senter for en sirkulær bue i X-aksen
JFlytting av senter for en sirkulær bue i Y-aksen
KFlytting av senter for en sirkulær bue i Z-aksen
MM-kommando. Kombineres med tall for riktig kommando
NBlokknummer. Linjenummer i programmet
OProgramnummer for definisjon av sub-programmer
PPause. Midlertidig stopp
QBenyttes for bore-sykluser
RRadius for sirkulære bevegelser. Benyttes også ved boresykluser
SSpindelturtall. Oppgis i o/min
TVerktøynummer. Oppgis sammen med en magasinposisjon, eksempel T02
XAkse i koordinatsystemet. Oppgis sammen med en tallverdi
YAkse i koordinatsystemet. Oppgis sammen med en tallverdi
ZAkse i koordinatsystemet. Oppgis sammen med en tallverdi