- G-kod definierar geometrin och rörelsen hos CNC-maskiner och 3D-skrivare.
- M-koden styr hjälpfunktioner som spindel, kylvätska och verktygsbyten.
- CAD/CAM och slicers genererar automatiskt G- och M-koder, men att förstå dem är nyckeln.
- Att behärska dessa koder förhindrar fel, förbättrar noggrannheten och optimerar produktionen.
Om du arbetar med CNC-maskiner eller 3D-skrivareFörr eller senare kommer du att stöta på den berömda G-koden och dess oskiljaktiga följeslagare, M-koden. För många låter det som ett marsianskt språk, men i verkligheten är de helt enkelt mycket strukturerade instruktioner som maskinen förstår perfekt. Att förstå vad de säger och hur de kombineras är nyckeln till att inte längre arbeta "blint" och till att ha verklig kontroll över bearbetning eller utskrift.
Tänk på din maskin, hur dyr eller modern den än må vara, som ganska "enkel": den vet bara flytta till X-, Y-, Z-koordinater, rotera en spindel eller extrudera material när du ger kommandot. Allt annat hanteras av G-kod och M-kod. I den här artikeln kommer vi lugnt att förklara vad de är, hur de har sitt ursprung, hur de skiljer sig åt, hur de används idag med CAD/CAM och slicers, vilka typiska fel de orsakar, och vi kommer till och med att titta på exempel på mer komplexa program, både för CNC-svarvar och 3D-utskrift.
Vad är CNC-bearbetning och varför är den så starkt beroende av G-kod och M-kod?
CNC-bearbetning är i huvudsak användningen av datornumeriskt styrda maskiner (Svarvar, fräsmaskiner, fleroperationsmaskiner etc.) används för att tillverka delar med en precision som skulle vara omöjlig att uppnå manuellt och upprepade gånger. Numerisk styrning definierar positioner, hastigheter och banor; maskinen lyder.
Bland dess fördelar utmärker sig en extremt hög precision, effektivitet vid materialborttagning, möjlighet att arbeta med mycket komplexa geometrier och brutal repeterbarhet: om programmet är välgjort kan man producera 10 eller 10 000 praktiskt taget identiska delar.
Innan datorer som vi känner dem idag existerade, använde lokförare hålkort eller band att koda instruktionerna. Att stansa hål i rätt ordning var en långsam och ömtålig process: om kortet skadades eller förlorades förstördes arbetet och produktionen stoppades.
Med tillkomsten av numerisk styrning och de första datorerna började operatörer introducera rader kod manuelltDetta var en förbättring, men för komplexa delar med många operationer blev det extremt tråkigt och benäget för skriv- eller beräkningsfel.
Idag är situationen helt annorlunda: vi använder CAD-programvara för design och CAM-program för att automatiskt generera verktygsbanor. CAM producerar själva G-kod- och M-kodfiler redo för maskinen att köras. Det betyder inte att det inte är viktigt att förstå vad som finns inuti för att granska, optimera, korrigera och, vid behov, programmera för hand.
Hur CNC-programmering styr maskiner
I ett typiskt arbetsflöde förbereder programmeraren bearbetningsmiljön i CAM:n: delmodell, käft- eller verktygsmodell, verktygsval och verktygsbanor för varje operation (grovbearbetning, finbearbetning, borrning, gängning etc.). Från allt detta genererar programvaran CNC-programmet som består av instruktionsblock.
Varje block är vanligtvis en textrad med en G-kod, valfritt en M-kod och olika parametrar: X-, Y-, Z-koordinater, radier, matningar (F), spindelhastighet (S), antal verktyg (T), etc. Styrsystemet tolkar dessa block i sekventiell ordning och flyttar maskinen eller ändrar dess tillstånd enligt vad som skrivs.
I praktiken kombinerar programmet vanligtvis rörelseinstruktioner (G-kod) och hjälpfunktioner (M-kod) tillsammans med några kommandon Ytterligare tecken som F, S, T eller N används för att numrera rader. Logiken är: G-koden dikterar "hur" maskinen rör sigM-koden dikterar "vad" maskinen gör i termer av funktioner hårdvara.
Även om CAM sparar mycket arbete kan efterbehandling krävas när detaljen är sofistikerad. manuellt granska cykler, kompensationer och framsteg eller säkerhetssekvenser. I komplexa projekt är det inte ovanligt att generering, justering och validering av kod tar dagar eller till och med veckor.
Vad är G-kod i CNC och 3D-utskrift
G-kod, även känd som RS-274 eller ISO-kod, är standardspråk för programmering geometrisk av CNC-maskiner (Skillnader mellan maskinkod och bytekod"G" kommer just från "geometri": det beskriver hur maskinen ska röra sig i rymden och med vilka parametrar.
I traditionell CNC (svarvar, fräsmaskiner, lasrar etc.) indikerar G-koden banor, arbetsplan, matningshastigheter och annan information relaterad till verktygets rörelse i förhållande till arbetsstycket. Vid 3D-utskrift gör den exakt samma sak, men tillämpad på skrivarens axlar och extrudern.
Ett typiskt G-kodkommando börjar med bokstaven G följt av en siffra, till exempel G00, G01, G02, G03, G17etc. Varje kombination har en mycket specifik betydelse. Ofta innehåller linjen fler parametrar som X, Y, Z, R, F, S eller E (vid 3D-utskrift för extrudern).
Även om det finns standarder (ISO 6983, DIN 66025, Siemens-dialekter, FANUC, Haas, bland andra), kan varje kontroll lägg till tillägg eller variationerDessutom varierar vissa formateringsdetaljer mellan tillverkare: till exempel kan en maskin acceptera G3 och en annan kräva G03, eller tillåta att vissa nollor och mellanslag utelämnas.
I samtliga fall är grundidén densamma: en sekvens av block som, när de exekveras i ordning, De utgör hela verktygsbanan och därmed den slutliga formen på det tryckta stycket eller föremålet.
Bokstäver och vanliga parametrar i G-kod
Förutom bokstaven G använder språket andra bokstäver för att indikera viktiga parametrarI klassisk CNC-bearbetning hittar vi bland annat:
- X OCH ZKartesiska koordinater som positionerar verktyget eller arbetsstycket i tre dimensioner. X och Y är vanligtvis det horisontella planet, Z djupet eller höjden.
- A: rotation eller snurrning runt X-axeln (i fleraxliga maskiner).
- R: radien för en båge vid cirkulär interpolering.
- Jag, J: inkrementella komponenter av centrumet av en båge i cirkulära interpolationer.
- N: programrads- eller blocknummer.
- Fmatning, det vill säga skär- eller förskjutningshastighet vid bearbetningsoperationer.
- SSpindelhastighet, i varv per minut.
- T: verktyg som ska användas i kombination med instruktioner som M06.
I FFF/FDM 3D-utskrift förekommer bokstaven också väldigt ofta. E för att indikera mängden extruderat filament, tillsammans med G0/G1-positioneringskommandon på X, Y och Z.
Huvudsakliga G-koder inom CNC-bearbetning
Några av de vanligaste G-koderna Följande är specifikationerna för CNC-fräs- och svarvmaskiner:
- G00 – Snabbpositionering: Flytta verktyget så snabbt som möjligt till en specificerad koordinat, utan att ha för avsikt att skära. Detta används vid inflygningar och reträtter där det enda viktiga är att komma fram snabbt och utan att kollidera.
- G01 – Linjär interpolering: Den beordrar rörelse i en rak linje mellan två punkter med en specificerad matningshastighet F. Det är det klassiska kommandot för raka snitt och konturbearbetning.
- G02 – Cirkulär tidsinterpolering: Rita bågar eller cirklar i medurs riktning, vanligtvis med X, Y (eller X, Z / Y, Z beroende på det aktiva planet) och en radie R eller ett centrum I, J.
- G03 – Moturs cirkulär interpolering: Samma som G02 men i omvänd ordning, mycket användbar för profilering av rundingar, cirkulära spår eller böjda fickor.
- G04 – Pausa eller stanna: Den tvingar maskinen att stanna under en viss tid. Detta används för att låta spindeln stabiliseras, ett verktyg svalna eller för att kylvätska ska träda i kraft.
- G17, G18, G19 – Planval: G17 aktiverar XY-planet, G18 XZ-planet och G19 YZ-planet, vilket är viktigt vid arbete i fleraxligt läge eller vid interpolering av bågar utanför standardplanet.
- G21 / G20: De definierar enhetssystemet, vanligtvis G21 för millimeter och G20 för tum.
- G43 – Kompensering för verktygslängd: Den tar hänsyn till att varje verktyg har en olika längd och tillämpar lämplig korrigerare så att det faktiska bearbetningsdjupet blir som önskat.
Specifika koder är också vanliga i svarvar, såsom G71 för längsgående grovbearbetningscykler, G70 för profilfinbearbetning eller G76 för cyklisk gängning, vilket låter dig definiera en kontur och låta styrningen automatiskt generera den berömda "stegen" med mellanskär.
Avancerat exempel på G-kod på en CNC-svarv
För att se den verkliga potentialen hos dessa cykler, överväg detta typiska scenario: vi börjar med ett cylindriskt block och vi vill grovbearbetning av stora mängder material med få linjer, vilket lämnar lite överskottsmaterial för en efterbehandling och avslutar med en tråd.
I ett svarvprogram kan vi börja med att definiera den initiala materialstorleken med en standardinstruktion i simulatorn, identifiera programmet med ett nummer som O0001, välja det metriska systemet med G21 och ställa in matningsläget per varv med G99.
Därefter beordras ett verktygsbyte med något i stil med M06 T0101 (verktyg 1 med dess offset 1), spindelvarvtalen definieras i G97-läge (konstant varvtal) med S1800 M03 för att rotera medurs, och den positioneras snabbt med G00 nära arbetsstycket (till exempel X26 Z2).
Sedan kan du med hjälp av G01 att möta tegelstenen passerar genom centrum (X-1 F.05), återgå till säkerhetspositionen och gå in i den berömda grovbearbetningscykeln G71. Denna cykel definieras i två rader, som specificerar skärdjup U, utdrag R, initialblock P och slutblock Q av konturen, tillägg U och W samt matning F.
Konturlinjerna mellan till exempel N1 och N2 beskrivs nedan: en planering uppåt mot X0, en matning i Z, en båge G03 med en specifik radie, cylindrisk svarvning och konisk svarvning. Det viktiga är att profilen är monotont ökande eller minskande i diameter så att cykeln fungerar korrekt.
När grovbearbetningen med G71 är klar, startas en G70 P1 Q2 så att, med finhastigheten och matningen, gör de sista detaljerna följer samma kontur. Sedan kan du skicka vagnen till referens med G28 U0 W0, stoppa spindeln med M05, byta till ett gängverktyg T0303 och aktivera en cykel G76 för att generera en gänga med flera passeringar och parametrar för djup, vinkel, stigning (t.ex. F1.5) och innerdiameter.
Slutligen förs vagnen tillbaka till säkerhetsläget (G28 U0 W0) och programmet avslutas med M30 (avsluta och spola tillbaka) eller M00 (stoppa utan att spola tillbaka). Hela processen kan beskrivas med väldigt få programrader tack vare fasta cyklervilket förenklar det dagliga arbetet avsevärt.
Vad är M-kod och vilken roll spelar den
M-kod är känd som "diverse" eller "maskinfunktionskod". Medan G-kod hanterar geometri och rörelse, styr M-kod Hjälpåtgärder: starta eller stoppa spindeln, slå på kylvätskan, byt verktyg, stoppa eller avsluta programmet, etc.
Formellt sett är det här kommandon som börjar med bokstaven M följt av en siffra, till exempel M00, M03, M05, M06, M08, M30Var och en fungerar som en strömbrytare som slår på eller av något eller får kontrollen att ändra tillstånd.
En viktig detalj är att som en allmän regel används endast ett block i varje block. en enda M-kodAtt placera två eller fler på samma linje är oftast en dålig idé eftersom många funktioner utesluter varandra: spindeln kan inte starta och stoppa samtidigt i samma kommando utan att maskinen "fastnar".
Till skillnad från G-kod, som är mer standardiserad, är M-koder De varierar avsevärt mellan tillverkare.Betydelsen av M03 eller M05 är vanligtvis densamma i nästan alla fall, men andra koder (pallbyte, gripdon, specialcykler) kan ändras och även formatet (M3 vs M03) kan orsaka fel om kontrollen är strikt.
De vanligaste M-koderna i CNC
Bland de vanligaste M-koderna Programmen du ser i CNC är:
- M00 – Programstopp: Den pausar körningen på ett kontrollerat sätt tills operatören trycker på för att fortsätta. Den används för inspektioner, manuella ändringar eller engångsingripanden.
- M02 / M30 – Programslut: De indikerar att programmet är klart. M30, på många styrenheter, spolar tillbaka till början av programmet för att avsluta det, förutom att stoppa det.
- M03 – Spindeln i rörelse (medurs): Spindeln startar medurs, vanligtvis åtföljt av ett S-värde för varv/min.
- M04 – Spindeln i rörelse (moturs): Samma som M03 men roterar i motsatt riktning, användbart för vissa operationer eller speciella konfigurationer.
- M05 – Spindelstopp: Det saktar ner rotationen, ett nödvändigt steg innan man byter verktyg eller avslutar en skäroperation.
- M06 – Verktygsbyte: Instruerar maskinen att utföra ett automatiskt verktygsbyte till det verktyg som anges i T. Viktigt i fleroperationsmaskiner med verktygsmagasin.
- M08 – Köldmedium PÅ: Slå på kylsystemet (jet, regnvatten etc.) för att bibehålla temperaturen och förbättra ytfinishen.
- M09 – Köldmedium AV: Den avbryter kylvätskeflödet, vilket är mycket användbart precis innan verktygsbyten eller i slutet av operationen.
Även om många av dessa koder liknar varandra från en maskin till en annan, är det obligatoriskt att granska specifik kontrollmanual eftersom vissa M-modeller kan ha helt olika funktioner beroende på tillverkare.
G-kod och M-kod i FDM/FFF 3D-utskrift
Något väldigt märkligt händer inom 3D-utskrift: även om vi pratar om en annan teknik, är kärnan i kontrollen baserad på samma koncept som G-kod och M-kod än i CNC. Skrivarens firmware (Marlin, Klipper, RepRap, etc.) tolkar linjerna och flyttar motorer, värmer upp hotenden, slår på fläktar eller utför bäddnivellering.
Skrivaren förstår inte STL-, OBJ- eller 3D-nät; den vet bara att den måste flytta huvudet till vissa koordinaterProcessen innebär att material deponeras (extruderas) med en specifik hastighet och temperatur. Skäraren översätter 3D-geometrin till tusentals rader G-kod.
Ett enkelt exempel på ett skrivarkommando skulle vara något i stil med G0 X15, vilket flyttar X-axeln 15 mm i positiv riktning. Genom att kombinera X, Y, Z och E med G0/G1-kommandon uppnås följande: rita varje lager av stycket på sängen.
Förutom G-koden som beskriver biten genererar skivare alltid en start- och slutkod (start-G-kod och slut-G-kod) som körs före och efter varje utskriftsjobb. Dessa skript upprepas i alla jobb om du inte ändrar dem.
Initial installation inkluderar vanligtvis referensinställning (G28), uppvärmning av bädd och hotend (M140, M104, M109) och automatisk nivellering om en sensor finns. extrudering av en spolningsledningetc. När det är klart stängs värmare (M104 S0, M140 S0), motorer (M84), fläktar (M106 S0) av, och ibland flyttas Z-axeln för att flytta delen bort från hotenden.
Varför ändra start- och slut-G-koden i 3D-utskrift?
Även om de flesta skivmaskiner tar med sig ganska generiska standardskript Eftersom de fungerar med många skrivare är det ofta värt att anpassa dem för att få ut det mesta av dem. Några typiska orsaker är:
- Lägg till en sekvens av automatisk sängnivellering om din skrivare har en sensor.
- Inkludera förrensningslinjer för att rengöra extrudern och förbättra vidhäftningen på det första lagret.
- Konfigurera ljud eller aviseringar när utskriften är klar.
- Bättre kontroll över kylning av värmeenheten och bädden för att undvika skevhet eller droppande filament.
- På skrivare utan EEPROM, återställ Z-offsets, PID-parametrar eller inställningar som går förlorade vid avstängning.
I utskärare som Cura är det ganska enkelt: du går in i skrivarinställningarna, öppnar maskininställningarna och du ser två textrutor för starta G-kod och avsluta G-kodDär kan du redigera, klistra in kodavsnitt och anpassa det till din specifika modell.
Vanliga G-kodkommandon i 3D-skrivarskript
Vissa kommandon som vanligtvis visas Dessa skript (inte kompletta program) är:
- G92 E0: Återställ extrudern till noll så att extruderingskommandon från och med då är relativa till den punkten.
- G28: Den bringar alla axlar till deras origo (höjpunktsmarkering), vilket är viktigt innan utskriften påbörjas.
- G1 XYFE: Den kombinerar X/Y-rörelse, F-matning och E-extrudering, vanligtvis för att rita rensningslinjer eller flytta till en specifik position på bädden.
- G1 Z: Justera Z-axelns höjd för att förhindra att hotend-enheten träffar bädden eller den färdiga detaljen.
- G1 FE: Kommandon för filamentindragning i slutet för att förhindra droppning.
- M106 S: Konfigurera lagerfläktens hastighet, från 0 (av) till max.
- M104 S0 / M140 S0: De stänger av extrudern och bädden när jobbet är klart.
- M84: Avaktivera alla motorer så att axlarna är fria.
Tillsammans med dessa kommandon lägger varje firmware till sina egna koder för bäddutjämning, avancerade pauser, filamentbyten etc. Det är därför det är så viktigt. att veta exakt vad din skrivare förstår.
Viktiga skillnader mellan G-kod och M-kod
Även om de alltid förekommer tillsammans och kompletterar varandra, har G-kod och M-kod olika roller inom CNC-programmering och 3D-utskrift. Vi kan sammanfatta deras skillnader i flera punkter:
- Ändamål: G-kod styr verktygsbanor, positioner, orienteringar och matningshastigheter. M-kod hanterar hjälpfunktioner som spindlar, kylvätskor, verktygsbyten och programavslutning.
- Instruktionstyp: G-kod är geometrisk till sin natur och dikterar hur maskinen rör sig; M-kod är operationell och fokuserar på maskintillstånd som inte nödvändigtvis involverar rörelse.
- Standardisering: G-koder är relativt standardiserade i branschen, så G00, G01, G02, etc., betyder vanligtvis samma sak på olika maskiner. Däremot är många M-koder mer beroende av tillverkaren och deras betydelser kan ändras.
- Vikt i precision: G-koden påverkar direkt detaljens dimensionsnoggrannhet; en felaktigt parametrerad G01 kan förstöra en kontur. M-koden har en mer indirekt inverkan (till exempel påverkar på- eller avstängning av kylvätskan termisk stabilitet och ytfinish).
- Komplexitet: G-kodsblock tenderar att vara tätare, med många koordinater, radier och framsteg, medan M-kod tenderar att vara enklare men mycket avgörande för säkerhet och sekvensering.
I slutändan kan programmet ses som en orkester där G-kod markerar noterna och melodinOch M-koden avgör när varje instrument kommer in, när det blir tyst och när ridån går ner.
Andra kompletterande kommandon i CNC-programmering
Förutom G och M finns det tre bokstäver som är viktiga i både CNC- och 3D-utskrift: F, S och T. Dessa är inte oberoende koder, utan parametrar som följer med rörelserna eller funktioner:
- F (Matning): Definierar matningshastigheten, till exempel i mm/min eller mm/varv beroende på om G94 eller G95 (eller G99 på vissa kontroller) är aktivt. Ett för högt F-värde kommer att orsaka sönderfall i verktygen; ett för lågt F-värde kommer att försämra cykeltiderna och kan resultera i dåliga ytbehandlingar.
- S (Spindelhastighet): Anger spindelhastigheten i varv/min i kombination med M03 eller M04. Den kan även representera andra hastigheter i vissa sammanhang.
- T (Verktyg): Välj det verktyg som ska användas i M06-verktygsväxlingen, vilket gör det avgörande att det matchar verktygets faktiska position i lagret.
Ett exempel på ett CNC-rörelsekommando kan vara G01 X-100, Y-50, Z35, F10, vilket beordrar en linjär förskjutning med en matningshastighet på 10 enheter per minut (beroende på systemet). Om vi lägger till M03 S3000 skulle vi indikera att vi i den positionen vill att spindeln ska rotera med 3000 varv/min medurs.
Passionerad författare om bytesvärlden och tekniken i allmänhet. Jag älskar att dela med mig av min kunskap genom att skriva, och det är vad jag kommer att göra i den här bloggen, visa dig alla de mest intressanta sakerna om prylar, mjukvara, hårdvara, tekniska trender och mer. Mitt mål är att hjälpa dig att navigera i den digitala världen på ett enkelt och underhållande sätt.
