CNC-programmering gedemystificeerd: G-code vs M-code
Veel van de huidige multitask- en multiaxis-bewerking zou niet werken zonder machineprogrammering. Hier zijn de fundamentele talen van machineprogrammering: G-code, M-code en CAM – met een blik op de toekomst voorbij G-code.
Om de rol van machineprogrammering in CNC-fabricatie vandaag te begrijpen, is een basiskennis van G-code en M-code vereist.
"CNC-bewerking bestaat al 40 of 50 jaar, dus het is geen nieuw proces in onze industrie," zegt Kevin Finan, instructeur bij Atlantic Technical College and Technical High School. Wanneer Finan manufacturing en machining lesgeeft, begint hij ermee te zorgen dat studenten de tekening van een onderdeel begrijpen. Daarna leren ze handmatig bewerken, daarna CNC-bewerking met G-code en M-code, en daarna CAM-software (computer-aided manufacturing).
G-code-commando's vs. M-codes: Wat is het verschil?
G-code-commando's zijn een set specifieke letter- en nummercombinaties die aan de machine dicteren welk deel te verplaatsen, hoe te verplaatsen en waar naartoe te gaan. Generieke G-code-commando's zijn meestal hetzelfde voor elke machine, bijvoorbeeld:
- G0 is een snelle verplaatsing naar een andere locatie
- G1 is een rechte snijlijn
- G2 is een boog met de klok mee
- G3 is een boog tegen de klok in
"Deze codes worden gecombineerd met XYZ-coördinaten, dus bijvoorbeeld zal het G0-commando de machine snel naar de gespecificeerde locatie verplaatsen," zegt Finan.
"Jaren geleden lieten ze studenten en stagiairs de codes uit het hoofd leren, maar ik doe dat niet noodzakelijk, omdat u ze uiteindelijk gewoon door het gebruiken van zich zult herinneren, en ze zijn online en in het machinist's handboek te vinden," zegt hij.
G-codes kunnen door de machinecontroller worden gelezen en verwerkt om het hoofd of de tafel te verplaatsen om snijoperaties uit te voeren binnen een snijvlak. Ze werken samen met M-codes in hetzelfde programma (M staat voor miscellaneous).
M-codes regelen auxiliar (niet-snij) functies van de machine zoals koelvloeistofstroom of een luchtcompressor om spannen weg te blazen. Op complexere draai-freesmachines kan een M-code de staartstock opdragen het deel van de voorste staaf te grijpen zodat de achterkant van het deel bewerkt kan worden.
Van G-code-commando's naar CAM-systemen
"Het was gewoon dat u deze G-codes handmatig schreef," zegt Chris MacBain, technical marketing manager bij 3D Systems. "De programmeur zou verbeelden wat de tool moet doen om het onderdeel te maken – hoe te bewegen, waar te snijden, hoe snel te snijden, en die bewegingen vervolgens omzetten in een tekstbestand bestaande uit G-codes en M-codes."
Volgens MacBain begon CNC-bewerking historisch gezien met de bewegingscommando's die op perforatiekaarten of perforatielint werden ingevoerd en in de machine werden gevoerd.
"De controller, de hersenen van de CNC-machine, zou de gaten in de kaarten of in het lint lezen en vervolgens de juiste beweging uitvoeren," zegt hij.
Maar papieren kaarten en lint in een drukke machine-omgeving gingen scheuren, vies raken, verloren raken of in de verkeerde volgorde in de machine worden gevoerd, wat leidde tot geschrotte onderdelen en gecrashte machines. Uiteindelijk werden elektronische controllers gebouwd waarbij de operator de codes direct kon intypen terwijl hij bij de machine stond.
"Toen de productie geavanceerder werd, maakte 3-as- en 5-as-bewerking het handmatig schrijven van G-code bijna onmogelijk – dat was het moment dat computer-aided manufacturing, of CAM-systemen, geboren werden," zegt MacBain.
G-code-commando's maken met CAM-systeemprogrammering
"CAM-systemen stellen u in staat om een computer-aided design-model van een onderdeel te nemen en te dicteren waar u wilt dat de snijder snijdt, welke tool u wilt gebruiken, hoe snel u het wilt laten bewegen, waar u wilt dat het start, waar u wilt dat het stopt, hoeveel materiaal er af moet, en hoe dicht u de tool wilt laten komen tot het onderdeel voordat het begint te snijden," zegt MacBain. "Het versnelt het G-code-creatieproces enorm."
Maar voordat het CAM-systeem de G-code creëert, stelt het de programmeur in staat om een toolpath-simulatie te bouwen van de manier waarop de machine zal opereren om het onderdeel te maken.
"Als het oude gezegde, 'garbage in, garbage out' en deze machines zullen precies doen wat u ze vraagt, ongeacht wat," zegt MacBain. "Als u een tool opdraagt om 8 inch naar beneden te bewegen, herkent de code niet dat er iets in de weg kan zitten, zoals spannen of een stuk van het onderdeel, maar het CAM-systeem stelt u in staat om te previewen wat de tool gaat doen voordat u daadwerkelijk op de knop drukt."
MacBain vergelijkt CAM-software met de specifieke printdriver die een computer nodig heeft om een afbeelding te printen. De driver heet een post-processor, die de G-code creëert die de CNC-machine bewogen.
"Alle controllers gebruiken de generieke G- en M-commando's, maar de volgorde waarin ze staan, de manier waarop ze gespaced zijn, de manier waarop de getallen worden gepresenteerd met of zonder voorloopnullen, zijn specifiek voor de machine," zegt MacBain. "Net als elke printer een specifieke driver nodig heeft, heeft elke CNC-machine een andere post-processor nodig die G-code specifiek voor die machine creëert."
De actie van post-processing in een CAM-systeem is wat de G-code creëert, die vervolgens naar de machinecontroller wordt gepost, hetzij via een netwerk, hetzij met een USB-stick. Het bestand wordt naar de machine gepost en de operator haalt het programma op het controllerscherm op en kijkt naar de G-code om te controleren of het het juiste onderdeel met de juiste tools op de juiste offset draait.
"Op dat moment kan de operator wijzigingen in de code aanbrengen indien nodig, en zodra de machine klaar is om het programma uit te voeren, drukt hij op de groene knop en voert het programma uit om het onderdeel te maken," zegt MacBain.
Heeft u advies nodig van andere ervaren machinisten en metaalbewerkingsspecialisten? Doe mee aan de gesprekken op het metaalbewerkingsforum. [registratie vereist]
Doe mee aan onze poll
Welke machineprogrammeergebieden geven u de meeste problemen in de dagelijkse praktijk?
Industriële technologie
- De 9 programmeertalen die je in 2021 moet leren ontdekken
- Draaiers toekomstbestendig maken: Programmeervaardigheden beheersen voor automatisering
- CNC Machine Programmeren: Gezochte Gevorderde Vaardigheden voor Moderne Productie
- Vrijzinnige Freesmachines: Frezen, Boren en Meer
- CNC Fundamentals: Computergestuurde Numerieke Controle Onder de Loep
- CNC G-code genereren met ArtCAM: Stap-voor-stap handleiding
- Is conversationele programmeren nog steeds essentieel in moderne machinewerkplaatsen?
- 5-as programmeren stroomlijnen met Hurco's ASR-functie
- G-code en M-code begrijpen: Essentiële CNC-bewerkingscommando's uitgelegd
- Embedded Systeem Programmeren: Talen, Architectuur en Toepassingen
- Top 10 Cloudprogrammeertalen Die Elke Ontwikkelaar Moet Beheersen