Grunnleggende G-kode og M-kode programmering for CNC-maskiner. Elevene skriver enkle programmer, simulerer verktøybaner og kjører programmer på CNC-utstyr.
Å skrive et språk maskinen forstår
Du har rigget maskinen, satt nullpunktet og spent fast emnet. Men hva skal maskinen egentlig gjøre? Den trenger en oppskrift, linje for linje, og den oppskriften skriver du i G-kode -- et standardisert språk (også kalt RS-274) som de aller fleste CNC-maskiner forstår.
Et program er bygd opp av nummererte linjer vi kaller blokker. Se på denne: N10 G01 X50.0 Y25.0 F100. Her er N10 blokknummeret, G01 forteller hva slags bevegelse, X50.0 og Y25.0 er koordinatene verktøyet skal til, og F100 er matingen -- altså hvor fort verktøyet skal mate seg framover, i mm/min.
De viktigste G-kodene styrer bevegelse. G00 er hurtiggang: maskinen flytter seg så fort den kan, men dette bruker du bare i fri luft, aldri i materialet. G01 er lineær interpolasjon -- en rett linje med kontrollert mating, som du bruker når du faktisk skjærer. G02 og G03 lager sirkelbuer henholdsvis med og mot klokken.
Andre G-koder setter opp hvordan maskinen tolker tallene. G54--G59 velger arbeidsnullpunkt. G90 betyr absolutte koordinater (alt teller fra nullpunktet), mens G91 betyr inkrementelle (alt teller fra der verktøyet står nå). G17 velger XY-planet for sirkler, og G40--G43 styrer verktøykompensasjon. Med disse byggeklossene kan du beskrive nesten enhver bevegelse.
M-koder: maskinens hjelpefunksjoner
G-kodene flytter verktøyet, men noe må jo slå på spindelen, åpne kjølevæsken og bytte verktøy. Det er M-kodene sin jobb (M står for miscellaneous, altså diverse). Du bør kunne de vanligste utenat: M03 starter spindelen med klokken, M04 mot klokken, og M05 stopper den. M06 utfører verktøyskift. M08 slår på kjølevæsken, M09 slår den av. M00 er programstopp, og M30 avslutter programmet og resetter til starten.
Ved siden av disse styrer du to ting med egne bokstaver: S setter spindelhastigheten, så S1500 betyr 1500 omdreininger per minutt, og F setter matingen, så F200 betyr 200 mm/min. Et verktøyvalg ser slik ut: T01 M06 -- velg verktøy 1 og bytt til det.
En typisk programstart vever alt dette sammen: G21 G90 G54 setter metrisk, absolutt og nullpunkt 1, T01 M06 henter verktøyet, S2000 M03 starter spindelen på 2000 rpm med klokken, G43 H01 aktiverer lengdekompensasjonen, og M08 åpner kjølevæsken.
Når du skal lage sirkler, har du to metoder. Med senterkoordinater skriver du for eksempel G02 X50 Y0 I25 J0, der I og J peker fra startpunktet til sirkelens senter. Med radius skriver du i stedet G02 X50 Y0 R25, der R25 er radien direkte. Begge kjører maskinen i en bue til X50, Y0.
Et helt program fra topp til bunn
Nå skal vi sette delene sammen til et fullstendig program. Et godt program følger alltid den samme strukturen, og det begynner med en sikkerhetslinje som setter maskinen i en kjent tilstand: G21 G90 G40 G80 G17 -- metrisk, absolutt, ingen radiuskompensasjon, ingen aktive sykluser, og XY-planet valgt. Slik unngår du at en glemt innstilling fra forrige jobb gir overraskelser.
Etter sikkerhetslinjen kommer verktøyoppsettet (T01 M06, S2000 M03, G43 H01), så posisjonering i fri luft med G00, så selve bearbeidingen med G01, og til slutt en ryddig avslutning: G00 Z50 for å trekke verktøyet trygt opp, M05 M09 for å stoppe spindel og kjøling, og M30 for å avslutte.
La oss frese en rektangulær kontur på mm med startpunkt i X0, Y0. Etter oppstart og verktøyvalg kjører du i fri luft til utenfor emnet, senker til like over overflaten med G00, og går så ned i materialet med G01 Z-5 F100. Deretter freser du konturen med klokken: G01 X50 mot høyre, G01 Y30 oppover, G01 X0 mot venstre og G01 Y0 tilbake til start. Da har du gått hele veien rundt og lukket konturen. Til slutt G00 Z50, M05 M09 og M30.
Legg merke til logikken: ned i materialet, rundt konturen, opp og avslutt. Den samme ryggraden går igjen i nesten alle program du skriver.
Faste sykluser: la maskinen gjøre det kjedelige
Se for deg at du skal bore tjue hull. Det ville vært slitsomt å skrive ut hele ned-opp-bevegelsen tjue ganger. Derfor finnes faste sykluser -- ferdiglagde sekvenser for repeterende operasjoner.
Den enkleste er G81, vanlig boring: G81 X10 Y10 Z-15 R2 F100 borer et hull på X10, Y10 til dybden mm, med returnivå R2 og mating 100 mm/min. Det fine er at når syklusen er aktivert, borer maskinen et nytt hull hver gang du bare gir en ny posisjon: skriver du X30 på neste linje, bores et hull der med de samme innstillingene. Til slutt kansellerer du syklusen med G80.
For dype hull bruker du G83, dypboring med 'peck'. Her borer maskinen et lite stykke av gangen -- styrt av Q-verdien -- og trekker verktøyet helt ut mellom hvert steg. G83 X10 Y10 Z-30 R2 Q5 F80 borer altså 5 mm av gangen til mm. Hvorfor? Ved dype hull (mer enn cirka tre ganger bordiameteren) må sponet ut, ellers får du varmeutvikling, sponet kan klemme fast boret, og i verste fall brekker det. Utrekkingen lar sponet falle ut og kjølevæsken slippe til. En slektning, G73, gjør det samme med kortere utrekk.
Skal du skjære gjenger, bruker du G84, der F-verdien er gjengestigningen og maskinen reverserer automatisk på vei opp. Slik tar de faste syklusene seg av det kjedelige og feilutsatte, mens du konsentrerer deg om geometrien.
Oppsummering
Vi har lært å skrive maskinens språk. G-koder styrer bevegelse: G00 er hurtiggang i fri luft, G01 er rett linje med mating, og G02/G03 lager sirkelbuer. G90 og G91 avgjør om koordinatene er absolutte eller inkrementelle. M-koder styrer hjelpefunksjoner som spindel (M03/M05), verktøyskift (M06), kjøling (M08/M09) og programslutt (M30), mens S setter turtall og F setter mating.
Vi bygde et fullstendig program med fast struktur: sikkerhetslinje, verktøyoppsett, posisjonering, bearbeiding og en ryddig avslutning -- og freste en rektangulær kontur ved å gå ned i materialet og rundt med G01.
Til slutt så vi at faste sykluser sparer arbeid og feil: G81 borer enkle hull, G83 dypborer med peck for å evakuere spon, og G84 skjærer gjenger -- alle avsluttet med G80. Med disse byggeklossene kan du skrive trygge, ryddige program som maskinen utfører nøyaktig slik du mente.
Dette kapitlet er skrevet av Anthropics toppmodeller (Claude Opus og Claude Fable) og er foreløpig ikke manuelt gjennomgått — kvalitetskontrollen gjøres av uavhengige KI-agenter, og innmeldte feil rettes fortløpende. Funnet en feil? Meld fra, så retter vi den. Les mer om hvordan innholdet lages.