CNC heeft fabricage naar een hoger niveau getild door fabrikanten de middelen te geven om een hoge nauwkeurigheid, snelheid en flexibiliteit te bereiken bij het maken van complexe onderdelen. G-codes en M-codes zijn de twee codes in het hart van elk CNC-programma die de vele bewerkingen aansturen die een bepaalde machine kan uitvoeren. Daarom is het cruciaal voor machinisten en CNC-programmeurs om onderscheid te maken tussen G-code en M-code voor een goede werking van de machine.
In dit artikel bespreken we enkele van de meest voorkomende G- en M-codes, hoe ze werken in een typisch CNC-programma en waarom ze cruciaal zijn voor productie.
G-code in CNC programmeren
De G-code is voornamelijk de Geometrische Code. Het is de meest voorkomende vorm van programmeren voor CNC's. Het vertelt de machine hoe hij moet bewegen, bijvoorbeeld in een rechte lijn, in een cirkelvormige beweging of met een voedingssnelheid.
In wezen vertellen G-codes de CNC-machine waar het gereedschap moet worden geplaatst en hoe het gereedschap zich moet verhouden tot het werkstuk op basis van beweging.
Elke G-code heeft een bepaalde actie of beweging in een CNC machine, en een reeks van deze G-codes wordt in een bepaalde volgorde uitgevoerd om een bepaalde taak te volbrengen. Hoewel G-code programmeren in eerste instantie werd ontwikkeld voor NC-machines, blijven de principes ervan fundamenteel voor moderne CNC-verspaning.
Algemene G-codes en hun functies
Laten we een aantal van de meest essentiële G-codes voor CNC-bewerking op een rijtje zetten:
1. G00: Snelle positionering
De G00-functie instrueert de machine om het gereedschap snel naar een opgegeven coördinaat te verplaatsen zonder te snijden. Dit wordt meestal gebruikt om het gereedschap naar een startpositie te verplaatsen voordat het bewerken begint of om een gereedschapswissel voor te bereiden. Dit is een van de snelste bewegingen die de machine kan maken.
2. G01: Lineaire interpolatie
De opdracht G01 bestuurt de beweging van het snijgereedschap langs een rechte lijn met een bepaalde aanvoersnelheid. Dit wordt vaak gebruikt voor precieze snijbewerkingen, waarbij de aanzet langzamer is dan bij snel positioneren, waardoor een grotere nauwkeurigheid mogelijk is.
3. G02: circulaire interpolatie rechtsom
Met de code G02 wordt het gereedschap opgedragen zich met de klok mee te verplaatsen. Dit wordt meestal gebruikt als het werkstuk cirkelvormige sneden of afgeronde hoeken moet hebben.
4. G03: circulaire interpolatie tegen de klok in
Net als G02 verplaatst G03 het gereedschap in een cirkelbaan tegen de klok in. Met G02 en G03 kunnen machinisten complexe gebogen vormen en profielen maken.
5. G04: verblijf
De opdracht G04 laat de machine een bepaalde tijd pauzeren of stilstaan. Dit is handig als het snijgereedschap zijn positie moet vasthouden, zoals wanneer de spindel een stabiele snelheid bereikt of wanneer er gewacht wordt tot de koelvloeistof effect heeft.
6. G17, G18 en G19: Vlakkeuze
Deze codes selecteren het geometrische vlak waarin de machine zal werken:
- G17: Selecteert het XY-vlak.
- G18: Selecteert het XZ-vlak.
- G19: Selecteert het YZ-vlak. Dit is essentieel bij meerassig bewerken om ervoor te zorgen dat het gereedschap binnen de juiste ruimtelijke parameters beweegt.
7. G43: Lengtecompensatie gereedschap
De G43-code compenseert de lengte van het gereedschap, zodat de machine tijdens het bewerken rekening kan houden met verschillende gereedschapsmaten. Zonder dit zou gereedschap van verschillende lengte onnauwkeurigheden kunnen veroorzaken bij het bewerken.
Lijst van G-codes
| G-code | Groep | Betekenis |
| G00 | 01* | Snelle beweging |
| G01 | 01 | Lineaire interpolatiebeweging |
| G02 | 01 | CW interpolatiebeweging |
| G03 | 01 | Linksom draaiende interpolatiebeweging |
| G04 | 00 | Wonen |
| G09 | 00 | Exacte stop |
| G10 | 00 | Programmeerbare gegevensinvoer |
| G11 | 00 | Programmeerbare gegevensinvoer annuleren |
| G15 | 17* | Polaire coördinaten annuleren |
| G16 | 17 | Polaire coördinaat |
| G17 | 02* | XY-vlakselectie |
| G18 | 02 | ZX vlakke selectie |
| G19 | 02 | YZ-vlakke selectie |
| G20 | 06* | Selecteer inches |
| G21 | 06 | Selecteer metrisch |
| G28 | 00 | Terugkeren naar referentiepunt |
| G29 | 00 | Terugkeren van referentiepunt |
| G30 | 00 | Terug naar 2en ,3rd,4th referentiepunt |
| G31 | 00 | Doorvoeren tot overslaan |
| G33 | 01 | Inrijgen |
| G40 | 07* | Snijdercompensatie annuleren |
| G41 | 07 | Snijdercompensatie links |
| G42 | 07 | Snijdercompensatie rechts |
| G43 | 08 | Lengtecompensatie gereedschap + |
| G44 | 08 | Lengtecompensatie gereedschap - |
| G49 | 08* | G43/G44 annuleren |
| G50 | 11* | G51 annuleren |
| G51 | 11 | Schalen |
| G52 | 00 | Lokaal coördinatensysteem instellen |
| G53 | 00 | Niet-modale selectie van machinecoördinaten |
| G54 | 14* | Selecteer werkcoördinatensysteem 1 |
| G55 | 14 | Selecteer werkcoördinatensysteem 2 |
| G56 | 14 | Selecteer werkcoördinatensysteem 3 |
| G57 | 14 | Selecteer werkcoördinatensysteem 4 |
| G58 | 14 | Selecteer werkcoördinatensysteem 5 |
| G59 | 14 | Selecteer het werkcoördinatensysteem 6 |
| G60 | 00 | Positionering in één richting |
| G61 | 15 | Exacte stop modaal |
| G64 | 15* | G61 annuleren |
| G65 | 00 | Macro-oproep |
| G68 | 16 | Rotatie |
| G69 | 16* | G68 annuleren |
| G73 | 09 | Snelle pikboorcyclus |
| G74 | 09 | Linkshandige tikcyclus |
| G76 | 09 | Fijnboren ingeblikte cyclus |
| G80 | 09* | Cyclus in blik annuleren |
| G81 | 09 | Boorcyclus |
| G82 | 09 | Puntboorcyclus |
| G83 | 09 | Normale boorcyclus |
| G84 | 09 | Tapcyclus |
| G85 | 09 | Boorcyclus |
| G86 | 09 | Boorcyclus met spilstop |
| G87 | 09 | Terug saaie cyclus |
| G88 | 09 | Boorcyclus |
| G89 | 09 | Boor- en verblijfcyclus |
| G90 | 03* | Absoluut |
| G91 | 03 | Incrementeel |
| G92 | 00 | Werkcoördinaten instellen |
| G94 | 05* | Toevoer per minuut |
| G95 | 05 | Aanvoer per omwenteling |
| G96 | 13 | Constante oppervlaktesnelheid |
| G97 | 13* | Constante oppervlaktesnelheid annuleren |
| G98 | 10* | Beginpunt terugkeer |
| G99 | 10 | R vlakke terugkeer |
Lijst van G-codes in draaibank
| G-code | Groep | Betekenis |
| G12.1 | 21* | Poolcoördinaten interpolatie annuleren |
| G13.1 | 21 | Interpolatie van polaire coördinaten |
| G70 | 00 | Afwerkingscyclus |
| G71 | 00 | Verspaning bij draaien |
| G72 | 00 | Voorraadverwijdering in facing |
| G73 | 00 | Patroon herhalende cyclus |
| G74 | 00 | Cyclus van eindvlakboren |
| G75 | 00 | Snijdcyclus in lengterichting |
| G76 | 00 | Meervoudige draadsnijcyclus |
| G83 | 10 | Cyclus voor vlakboren |
| G84 | 10 | Cyclus voor face tapping |
| G85 | 10 | Cyclus voor gezichtsboor |
| G87 | 10 | Cyclus voor zijboren |
| G88 | 10 | Cyclus voor zijwaarts aftappen |
| G89 | 10 | Cyclus voor zijboren |
| G98 | 05* | Toevoer per minuut |
| G99 | 05 | Aanvoer per omwenteling |
Wat is M-code in CNC programmeren?
Waar G-codes de machinebewegingen specificeren, besturen M-codes of overige codes de hulpbewerkingen van de machine. Dit omvat de koelvloeistof, het in- en uitschakelen van de spindel en het stoppen wanneer een programma is voltooid. M-codes fungeren als schakelaars die machineonderdelen in- of uitschakelen wanneer dat nodig is.
Net als G-codes zijn M-codes essentieel voor soepele CNC-bewerkingen, vooral als het gaat om niet-snijdende activiteiten die nog steeds van cruciaal belang zijn voor het bewerkingsproces.
Algemene M-codes en hun functies
Laten we eens kijken naar enkele veelgebruikte M-codes bij CNC-verspaning:
1. M00: Programmastop
De M00-code onderbreekt de uitvoering van het huidige programma. In tegenstelling tot een noodstop stopt de machine op een gecontroleerde manier en kan de operator het programma handmatig hervatten wanneer hij klaar is.
2. M03: Spindel aan (rechtsom)
De M03 opdracht zet de spil met de klok mee aan. Het wordt meestal gecombineerd met een "S"-commando dat het spiltoerental specificeert, waardoor het een fundamenteel commando voor machinale bewerking is.
3. M05: Spilstop
Deze code stopt de spindel onmiddellijk met draaien. Hij wordt vaak gebruikt voor gereedschapswissels of aan het einde van een bewerking.
4. M06: Gereedschap wisselen
De M06-code is essentieel voor het automatisch wisselen van gereedschap tijdens het bewerkingsproces. Wanneer de machine deze opdracht ontvangt, zoekt ze het nieuwe gereedschap op dat in het programma is opgegeven (T-waarde) en installeert het.
5. M08: koelvloeistof aan
Deze code schakelt het koelvloeistofsysteem in, wat essentieel is om zowel het gereedschap als het werkstuk op temperatuur te houden tijdens het snijden voor een soepele werking en een langere levensduur van het gereedschap.
6. M09: koelvloeistof uit
De opdracht M09 schakelt de koelmiddelstroom uit, wat vaak gebruikt wordt als de bewerking klaar is of tijdens een gereedschapswissel.
Lijst van M-codes
| M-code | Betekenis |
| M00 | Programma stoppen |
| M01 | Optionele programmastop (optioneel)程序选择停止) |
| M02 | Einde programma |
| M03 | Spindel vooruit |
| M04 | Spindel omkeren |
| M05 | Spindelstop |
| M06 | Gereedschap wisselen |
| M07 | Koelvloeistof AAN (nevel) |
| M08 | Koelvloeistof AAN (overstroming) |
| M09 | Koelvloeistof UIT |
| M19 | Spindel oriënteren |
| M30 | Programma-einde en terugspoelen |
| M31 | Spanentransporteur vooruit |
| M32 | Spanentransporteur achteruit |
| M33 | Spanentransportbandstop |
| M34 | Positie koelmiddeltuit verhogen |
| M35 | Positie koelvloeistofaansluiting verlagen |
| M36 | Pallet draaien |
| M39 | Gereedschapskop draaien |
| M41 | Lage versnelling |
| M42 | Versnelling inschakelen |
| M50 | Palletwissel uitvoeren |
| M82 | Gereedschap ontklemmen |
| M86 | Gereedschapsklem |
| M88 | Door de spindelkoelvloeistof AAN |
| M89 | Door de spindelkoelvloeistof UIT |
| M95 | Slaapstand |
| M96 | Springen indien geen invoer |
| M97 | Lokale subprogramma-oproep |
| M98 | Subprogramma-oproep |
| M99 | Subprogramma terugkeer of lus |
Verschillen tussen G-codes en M-codes
Hoewel zowel G-codes als M-codes van vitaal belang zijn voor CNC-programmering, vervullen ze heel verschillende functies:
- G Codes: Besturen voornamelijk de geometrische bewegingen van de machine. Ze bepalen hoe de bewerkingsmachine moet bewegen - langs een rechte lijn, bocht of boog.
- M Codes: Extra machinebewerkingen uitvoeren waarbij het snijgereedschap niet fysiek wordt verplaatst. Dit omvat het starten en stoppen van de spindel, gereedschapswissels en koelmiddelcontrole.
Terwijl G-codes het eigenlijke snijproces beheren, zijn M-codes net zo belangrijk om ervoor te zorgen dat de machine efficiënt werkt, zodat gereedschapsovergangen en bewerkingswisselingen soepel verlopen.
Het belang van G- en M-codes bij CNC-verspaning
Zoals eerder vermeld, zijn G-code en M-code beide betrokken bij het CNC-bewerkingsproces en spelen ze hun rol bij de productie van de onderdelen. Beide codes werken samen om ingewikkelde productietaken te automatiseren en te besturen voor een nauwkeurige en herhaalbare productie van onderdelen door CNC-machines.
Dit is belangrijk voor machinisten en programmeurs die de code moeten begrijpen. Hoewel de meeste programmering geautomatiseerd is in moderne CAD/CAM-software, G-code en M-code zijn nog steeds vereist, met name bij aangepaste aanpassingen of handmatige programmering.
Dit is waarom.
1. Efficiëntie en nauwkeurigheid
CNC machines kunnen complexe ontwerpen snel en nauwkeurig uitvoeren met de juiste G-code programmering. Nauwkeurige gereedschapsbewegingen, aangestuurd door G-codes, resulteren in minder materiaalverspilling, kortere bewerkingstijden en een hogere productiviteit.
2. Flexibiliteit
Omdat M-codes machinefuncties bedienen, zoals het verwisselen van gereedschap en de koelvloeistofstroom, kunnen CNC machines door hun bestaan veel taken zelf uitvoeren. Dit maakt CNC machines veelzijdig, zodat ze alles kunnen maken van eenvoudige onderdelen tot onderdelen voor de ruimtevaart.
3. Automatisering
Over het algemeen komen G-code en M-code samen in de kunst van het CNC-programmeren, waardoor een volledig automatisch bewerkingsproces mogelijk wordt. Op deze manier kan een geschreven en vervolgens geladen programma de machine complexe taken laten uitvoeren met minimale supervisie, zodat de operator zich kan bezighouden met andere productiegebieden.
CNC Programmeren: Handmatige versus CAM-gegenereerde G-codes
Conventioneel schrijven machinisten de G-codes regel voor regel. Deze methode vereist uitgebreide kennis van het gedrag van de machine en de kleinste details van het bewerkte onderdeel.
Maar met hulpmiddelen zoals CAM of Computer-Aided Manufacturing, kunnen machinisten nu de G-code van het ontwerpmodel door automatisering, waardoor programmeren eenvoudiger wordt.
Hoewel de CAM-software het genereren van codes versnelt en de kans op fouten verkleint, blijven handmatige programmeervaardigheden van cruciaal belang voor het nauwkeurig afstellen van bewerkingen of het oplossen van problemen aan de lijn tijdens de productie.
4 veelgemaakte fouten in CNC-programmering en hoe G- en M-codes ze helpen voorkomen
Zelfs met geavanceerde CAM-software die het grootste deel van de programmering genereert, kunnen er nog steeds fouten optreden bij het CNC-programmeren. Hoewel ze vaak voorkomen, kunnen deze fouten leiden tot defecte onderdelen, machineschade, verspilling van materiaal of zelfs ongevallen in de werkplaats.
Laten we eens kijken naar enkele veelvoorkomende CNC-programmeerfouten en de rol die G- en M-codes spelen bij het aanpakken van elke fout.
1. Onjuiste lengtecompensatie gereedschap (G43)
Een van de meest voorkomende problemen bij CNC-programmering is een onjuiste compensatie van de gereedschapslengte. Elk gereedschap in een CNC machine heeft een unieke lengte en wanneer de machine schakelt tussen gereedschappen, moet dit verschil worden gecorrigeerd om de snijnauwkeurigheid te behouden.
Als de opdracht G43 niet juist is ingesteld, kan het zijn dat de machine zich niet aanpast aan de lengte van het gereedschap, wat leidt tot onnauwkeurigheden in de snedediepte en mogelijk het werkstuk vernielt.
Stel bijvoorbeeld dat het programma overschakelt naar een langer gereedschap zonder die extra lengte te compenseren. Als gevolg daarvan kan het gereedschap te diep in het materiaal snijden, waardoor het onderdeel en mogelijk ook het gereedschap zelf beschadigd raken.
Resolutie
Als er fouten optreden door een onjuiste lengtecompensatie van het gereedschap, controleer dan opnieuw de G43-functie en controleer of de juiste offset wordt gebruikt. Om de kans op menselijke fouten verder te verkleinen, kunt u gereedschapinstelapparatuur gebruiken die de gereedschapslengte automatisch meet en registreert.
2. Veiligheidsblokkades over het hoofd zien
Een veiligheidsblok is een reeks inleidende opdrachten die ervoor moeten zorgen dat de machine in een veilige en bekende toestand start voordat de eigenlijke bewerking begint. Veiligheidsblokken kunnen spilstops omvatten, freescompensatie annuleren, het juiste vlak selecteren en de machine op veilige coördinaten positioneren.
Als het programma deze veiligheidsregel niet aan het begin bevat, kan de machine onder onverwachte of onjuiste omstandigheden gaan werken, wat kan leiden tot crashes, gereedschapbreuk of zelfs letsel.
Als er bijvoorbeeld tijdens een vorige bewerking op een andere diepte moest worden gezaagd en het veiligheidsblok ontbreekt, kan de machine doorgaan op de oude diepte, wat kan leiden tot botsingen met opspanmiddelen of klemmen.
Resolutie
Als een veiligheidsblok ontbreekt of onjuist is ingesteld, herzie dan het programma om essentiële G- en M-codes op te nemen die de machine op standaard zetten voordat er grote bewegingen of bewerkingen worden uitgevoerd.
Start het programma altijd met een goed geconstrueerd veiligheidsblok om correcte machine-instellingen te garanderen en crashes te voorkomen.
3. Onjuiste voedingssnelheid (G01)
De voedingssnelheid wordt gedefinieerd als de snelheid waarmee het snijgereedschap rond het werkstuk beweegt. Het instellen van de verkeerde aanvoersnelheid kan tot verschillende problemen leiden.
Als de voedingssnelheid bijvoorbeeld te hoog is, zal dit leiden tot gereedschapbreuk, oververhitting of zelfs onnauwkeurigheid in het onderdeel omdat er te veel kracht wordt uitgeoefend op het snijoppervlak.
Als de aanzet daarentegen te laag is, verloopt de bewerking niet efficiënt. De cyclustijd zal ook langer zijn en de oppervlakteafwerking zal slecht zijn omdat het gereedschap zal wrijven in plaats van snijden.
Stel nu dat de voedingssnelheid te laag is bij precisiebewerking. Dit leidt tot materiaalophoping aan de snijkant, waardoor de kwaliteit van het bewerkte oppervlak verslechtert en de slijtage van het gereedschap toeneemt.
Resolutie
Als er een onjuiste aanzet is ingesteld, kan het probleem worden opgelost door deze aan te passen via de F-code in de opdracht G01.
CAM-software kan automatisch de ideale aanzet berekenen op basis van de materiaaleigenschappen en de geometrie van het gereedschap, maar handmatige aanpassingen kunnen nog steeds nodig zijn voor fijnafstelling. Controleer de aanzet altijd tijdens de eerste run van het programma.
4. Niet passende G- en M-codes
Elk blok CNC-code bevat meestal één G-code en één M-code. Het gebruik van meerdere G- of M-codes in één blok kan de machine in verwarring brengen, omdat deze niet weet welke opdracht prioriteit moet krijgen, wat kan resulteren in onverwacht gedrag.
Als bijvoorbeeld commando's als G02 (circulaire interpolatie rechtsom) en G01 (lineaire interpolatie) in hetzelfde blok worden gecombineerd, kan dit ertoe leiden dat de machine de bedoelde beweging niet correct uitvoert.
Daarnaast ontstaan er problemen wanneer conflicterende M-codes samen worden gebruikt. Als bijvoorbeeld M03 (spindel rechtsom) wordt gecombineerd met M05 (spindelstop) in dezelfde regel, kan de machine in verwarring raken over het starten of stoppen van de spindel, wat leidt tot een inconsistente werking.
Resolutie
Als niet overeenkomende codes de oorzaak zijn van een storing in de machine, moet het programma worden herzien om conflicterende codes te scheiden in afzonderlijke blokken. Zorgvuldig proeflezen van de code voordat deze op de machine wordt uitgevoerd helpt om potentiële conflicten in een vroeg stadium op te sporen.
Conclusie
Tegenwoordig vormen G-code en M-code de kern van CNC-bewerkingsprocessen. Daarom is inzicht in G-code en M-code essentieel voor het maken van zowel CAM-software als handmatige code. Op deze manier kunt u CNC machines efficiënter en nauwkeuriger bedienen.
Nu de technologie achter de CNC machines zich blijft ontwikkelen, blijft het beheersen van deze fundamentele codes een van de belangrijkste middelen om het volledige potentieel van CNC bewerkingen te ontsluiten.
Heb je nog vragen? Neem contact op met onze ervaren ontwerpers en fabrikanten op FirstMold.









