CNC-programmeertalen - G-code en M-code
Het acroniem CNC in de term CNC-machine betekent Computer Numerical Control. Als we aan CNC-bewerking denken, denken we meestal aan de CNC-bewerkingsmachine, maar eigenlijk vertegenwoordigen moderne CNC-machines een bredere term. Industriële robots en sommige computergestuurde meetmachines zijn ook CNC-machines.
Het was het jaar 1952 - vanwege de behoefte aan nauwkeurige bewerking van onderdelen in de luchtvaartindustrie - toen John T. Parsons, in samenwerking met IMB (International Business Machines Corporation) en MIT (Massachusetts Institute of Technology), de eerste CNC-frees ontwikkelde machine. Vanaf dat moment is slimmere industriële productie wijdverbreid en is CNC-bewerking beschikbaar geworden voor alle industrieën, samen met de opkomst en het gebruik van CNC-programmeertalen - G-code en M-code.
Wat zijn G-code en M-code?
Gedurende de 70-jarige geschiedenis van de ontwikkeling van CNC-machines, zijn verschillende programmeertalen, niet alleen G-code en M-code, gebruikt voor hun programmering. Zo werd in het begin de pioniersmachine van Parsons geprogrammeerd met behulp van geboorde banden, en later, in het jaar 1956, werd een speciale programmeertaal (APT-programmeertaal) ontwikkeld voor CNC-bewerking.
RS-274 of beter bekend als G-code, waar dit artikel ook over spreekt, werd in hetzelfde decennium gemaakt. G-code is ontwikkeld vanuit de APT-programmeertaal die gegevens bevatte over de locatie of geometrie van de snijplotter (gereedschap), en andere niet-geometrische machinefuncties zoals spilsnelheid, koeling, enz. RS-274-functies (G- en M-codes) nemen de basis over van de programmeertaal APT met kleine aanpassingen die programma's korter en handiger hebben gemaakt voor de machinebesturing.
APT | G- en M-codes |
GA NAAR {X, Y, Z} | G1, G2, G3 {X, Y, Z} |
FEDRAT | F |
SPINDEL CW / CCW | S M3 / M4 |
COOLNT AAN / UIT | M8 M9 |
FINI | M30 |
De programmeertaal RS-274 wordt vaak "G-code" genoemd omdat deze voornamelijk uit G-functies (G-codes) bestaat. Maar het bevat op zichzelf ook even belangrijke M-functies (M-codes). Om die reden is het noodzakelijk om deze termen te definiëren, d.w.z. om de volgende vragen duidelijk en direct te beantwoorden:
- Wat zijn G-codes?
- Wat zijn M-codes?
- Wat zijn de verschillen tussen G-code en M-code?
Wat zijn G-codes?
G-code, d.w.z. G-functies, verschillend van M-code, heeft voornamelijk betrekking op het definiëren van geometrie. Het is duidelijk dat "G" in de naam "G-code" het woord "Geometrie" betekent. G-codes zouden dus functies omvatten voor het selecteren van het coördinatensysteem, het werkvlak, programmeereenheden, het instellen van de programmeermodus (absoluut of incrementeel), gereedschapsbeweging in snelle en werkmodus, enz.
Wat zijn M-codes?
M-codes of M-functies verwijzen naar functies die verband houden met de bediening van de machine. Het kan worden gezegd dat "M" in de term "M-code" het woord "Machine" betekent. Meestal kunnen bij CNC-machineprogrammering de volgende functies in deze functies worden opgenomen:hoofdspil in- of uitschakelen, koeling in- of uitschakelen, automatische gereedschapswisseling, enz.
Wat zijn de verschillen tussen G-code en M-code?
Zoals we hebben gepresenteerd, verwijzen G-codes strikt naar de geometrie van het proces van het verwerken van een onderdeel, en M-codes naar individuele functies op de machine. Je zou kunnen zeggen dat de G-codes aangeven "Hoe het gereedschap beweegt ten opzichte van het werkstuk" en de M-codes "Wat de machine doet in het bewerkingsproces".
Naast de belangrijkste G-code- en M-codefuncties in de programmeertaal RS-274, zijn er tal van hulpfuncties:
- X,Y, Z – positioneringspuntcoördinaten
- I,J, K – coördinaten van de afstand tussen het startpunt en het middelpunt van de cirkel (“CC” in de volgende voorbeelden)
- F- interpolatiesnelheid
- S- spilsnelheid
- T-gereedschapsnummer
- H- gereedschapshoogte-offsetnummer
- D-gereedschap radius offset nummer
Lijst met basis-G-codes
Hoofdfuncties | Beschrijving | Hulpfuncties |
G0 | Snelle positionering (lineair) | X, Y, Z |
G1 | Lineaire interpolatie | X, Y, Z, F |
G2 | Met de klok mee circulaire interpolatie | X, Y, Z, I, J, K, F |
G3 | Tegen de klok in circulaire interpolatie | X, Y, Z, I, J, K, F |
VOORBEELD 1:
De zin in G-code:G1 X10 Y50 F100
Uitleg:Gereedschap gaat lineair naar het gewenste punt (Coördinaten:X=10 mm, Y=50 mm) met een snelheid van 100 millimeter per seconde.
De zin in G-code:G2 X10 Y50 I10 J40 F100
Uitleg:Gereedschap gaat cirkelvormig (met de klok mee) naar het gewenste punt (Coördinaten:X=10 mm, Y=50 mm) met de snelheid van 100 millimeter per seconde; Cirkelcentrumpositie ten opzichte van het startpunt:+10 mm op X-as en +40 mm op Y-as
De zin in G-code:G02 X50 Y10 I40 J-10 F75
Uitleg:Gereedschap gaat cirkelvormig (met de klok mee) naar het gewenste punt (Coördinaten:X=50 mm, Y=10 mm) met de snelheid van 75 millimeter per seconde; Cirkelcentrumpositie ten opzichte van het startpunt:+40 mm op de X-as en -10 mm op de Y-as.
Hoofdfunctie | Beschrijving | Hulpfuncties |
G17 | Selecteer XY voor werkvlak | / |
G18 | Selecteer ZX voor werkvlak | / |
G19 | Selecteer YZ voor werkvlak | / |
G20 | Eenheden:inches (inch) | / |
G21 | Eenheden:millimeter (mm) | / |
G41 | Gereedschapsradiuscompensatie – links | D, X, Y, Z |
G42 | Gereedschapsradiuscompensatie – rechts | D, X, Y, Z |
G40 | Gereedschapsradiuscompensatie – uit | / |
G43 | Compensatie voor compensatie van gereedschapshoogte | H, Z |
G49 | Compensatie gereedschapshoogte-offset – uit | / |
G54 | Machine coördinatensysteem | / |
G55 | Werkcoördinatenstelsels | / |
G56 | Werkcoördinatenstelsels | / |
G57 | Werkcoördinatenstelsels | / |
G58 | Werkcoördinatenstelsels | / |
G59 | Werkcoördinatenstelsels | / |
VOORBEELD 2:
Zin in G-code: G21 G17 G55
Toelichting:Programmeereenheden instellen op millimeters; XY-werkvlak selecteren; G55-coördinatensysteem selecteren
Zin in G-code: G43 H1 Z100
Uitleg:De compensatie van de gereedschapshoogte-offset instellen op H1 ("H1" is een positie waar de waarde van de gereedschapshoogte wordt opgeslagen in het geheugen van de CNC-machine) en een nieuwe positie innemen (Coördinaat:Z=100 mm)
Zin in G-code: G41 D1 X15
Uitleg:Instellen van de linker gereedschapsradiuscompensatie op D1 (“D1” is een positie waar de waarde van de gereedschapsradius wordt opgeslagen in het geheugen van de CNC-machine) en een nieuwe positie innemen (Coördinaat:X=15 mm); Terwijl het gereedschap naar de gewenste positie gaat, beweegt het langzaam naar links, dus wanneer het gereedschap de gewenste positie bereikt, is de radiuscorrectie van het gereedschap voltooid.
Zin in G-code: G40 G49
Verklaring:Gereedschapsradiuscorrectie annuleren; Compensatie voor gereedschapshoogte-offset annuleren
Hoofdfunctie | Beschrijving | Hulpfuncties |
G90 | Absolute programmering:Coördinaten ten opzichte van het werkcoördinatensysteem | / |
G91 | Incrementeel programmeren:coördinaten ten opzichte van het coördinatensysteem i in de huidige positie | / |
Lijst met basis M-codes
Hoofdfunctie | Beschrijving | Hulpfuncties |
M00 | Programma stop | / |
M03 | Spindel aan (met de klok mee) | S |
M04 | Spindel aan (tegen de klok in) | S |
M05 | Spindel uit | / |
M06 | Verandering van automatiseringstool | T |
M08 | Koelvloeistof aan | / |
M09 | Koelvloeistof uit | / |
M30 | Einde programma | / |
M98 | Subprogramma-oproep | “Subprogrammanaam” |
M99 | Terug uit subprogramma | / |
Hoe een CNC-machine te programmeren
CNC-programmering is alfanumerieke opmaakgegevens (G- en M-codes) over geometrie en technologie van onderdelen, die op zo'n machine moeten worden verwerkt, maar ook een andere programmering, die ze meestal machinefabrikanten uitvoeren.
Het programmeren van CNC-machines met G-code is meestal op zinnen gebaseerd, wat te zien is in eerdere voorbeelden waar de uitleg van G-functies werd gedaan als het interpreteren van de zinnen van een programma dat in G-code is geschreven. Er zijn verschillende methoden voor CNC-programmering, d.w.z. het genereren van G- en M-codes:
- Handmatige programmering,
- Programmering in werking en
- Programmeren met CAD-systemen (Computer-Aided Design)/CAM-systemen (Computer-Aided Manufacturing).
Handmatige programmering
Met handmatige CNC-programmering schrijft een programmeur op basis van zijn eigen kennis en ervaring evenals beschikbare informatie over machines, gereedschappen, machineaccessoires, bewerkingsmodi, het toepassen van programmeerinstructies, handmatig geometrische en technologische informatie die nodig is om het alfanumerieke programma te voltooien. Handmatige programmering kan worden georganiseerd als de volgende basisactiviteiten:
- Bewerkings-, basis- en toolingplannen definiëren,
- Geometrische informatie vertalen met werkplaatstekening, voor routeplanningsdoeleinden
- Hulpmiddelen, en ze in blokken rangschikken volgens de verwerkingsvolgorde,
- Programma's schrijven en invullen in het formulier programmablad (G-code) en
- Overdracht van informatie van het programmablad naar het geheugen van de besturingseenheid
Programmering in werking
Om de methode van CNC-programmering voortdurend te verbeteren, evenals de wens om de programmering op de machine zelf te zetten, om nog grotere en gemakkelijkere toepassingen van CNC te kunnen maken, hebben sommige fabrikanten besturingseenheden aangeboden die ze ondersteunen bij het programmeren direct op de machine zelf. Hoewel er vanaf het allereerste begin van de toepassing van CNC de mogelijkheid was om onmiddellijk op de machine te programmeren in de zogenaamde MDI-modus (Manual Data Input), vertegenwoordigt programmeren in bedrijf een volledig nieuwe programmeermethode.
Met deze methode heeft de Control Unit, die het ondersteunt, extra functies geïntegreerd die klassieke programmering met G-code vermijden. Programmeren komt hier neer op een interactieve dialoog tussen de operator en de besturingseenheid, via toetsenbord en grafische gebruikersinterface, die zowel eenvoudige verwerkingscontouren als getypte cycli voor verwerking kan genereren. Besturingseenheid op basis van ingevoerde zoekopdrachten, voert de benodigde gereedschapspadberekeningen uit en genereert automatisch een G-code.
Programmeren met CAD/CAM-systemen
De geometrie van de onderdelen, die bijvoorbeeld worden gebruikt in de lucht- en ruimtevaart, het leger en andere industrieën, is zeer complex met oppervlakken van de tweede orde, die meerassige bewerking vereisen (3-assige, 4-assige en 5-assige CNC-bewerking) . Complexe programma's voor het verwerken van dergelijke oppervlakken vereisen enkele duizenden blokken (zinnen) waarvan het handschrift erg moeilijk en tijdrovend is. Daarom was het noodzakelijk om computers te gebruiken voor de technologische voorbereiding, d.w.z. het programmeren van CNC-machines voor het bewerken van de bovengenoemde onderdelen op basis van G-code en M-code.
CAD / CAM-programmering kan worden geclassificeerd als computer-CNC-programmering. De integratie van CAD en CAM heeft geleid tot verbeteringen in NC-programmering, vooral op het gebied van programmeervereenvoudiging. Nu hoeft de programmeur niet meer na te denken over het definiëren van geometrie, dat is wat CAD / CAM-software doet. Wat overblijft voor de programmeur is dat hij door actieve interactie met het systeem in het programma andere technische informatie toevoegt, zoals grips, basen, klemmen, snijgereedschappen en bewerkingsmodi. Benadrukt moet worden dat er een integratie is van CAD / CAM en CAPP (Computer Aided Process Planning), die ook voor deze vereisten een oplossing ontwikkelt.
Zo ziet de procedure voor het programmeren van een machine in een CAD / CAM-omgeving eruit:
- Modelleren van CAD-modellen,
- Verwerkingsplanning met behulp van beschikbare CAM-strategieën voor het verwerken en berekenen van gereedschapspaden en het verkrijgen van een CL-bestand (Cutter Location),
- Gereedschapspadsimulatie en materiaalverwijderingssimulatie voor programmaverificatie en detectie van mogelijke fouten en botsingen,
- Naverwerking van het CL-bestand en verkrijgen van de G-code met behulp van de postprocessor voor de geselecteerde machine,
- Stuur de G-code over naar de besturingseenheid. Voorbereiding van gereedschappen en werkstukken. Baseer het werkstuk op de machine,
- Controleer de verwerkingsomstandigheden en -modi, controleer snelheden en versnellingen, die de kwaliteit van de verwerking aanzienlijk kunnen beïnvloeden en
- Bewerking van een werkstuk op een machine.
Conclusie
Hoewel er tegenwoordig programmeermethoden zijn die geen kennis van G- en M-functies vereisen (programmeren in werking en CAD / CAM CNC-programmering), zou een programmeur ze moeten kennen, omdat een speciale situatie soms vereist dat de programmering handmatig wordt uitgevoerd. Het positieve is dat de programmeertaal G- en M-codes universeel kan worden genoemd, wat betekent dat het kennen van de G- en M-codes alle CNC-machines kan programmeren, met minimale syntaxisverschillen die zeer snel onder de knie worden als je de basis kent van G- en M-codes. Maakt u zich zorgen over het vinden van een professionele CNC-programmeur voor uw ontwerp? Maakt u zich geen zorgen, WayKen is een fabrikant met meer dan 20 jaar ervaring in de CNC-bewerkingsindustrie, met geavanceerde productietechnologie en ervaren CNC-ingenieurs, klaar om aan uw productontwerpbehoeften te voldoen. Ontvang vandaag nog direct een offerte!
CNC machine
- en van CNC-machines
- G- en M-codes:de CNC-programmeertalen begrijpen
- De verschillen tussen G-code en M-code
- G- en M-codes begrijpen als een professional [Volledige gids]
- CNC G-code introductie
- CNC-programmeercycli of CNC-voorgeprogrammeerde cycli voor- en nadelen
- CNC-programmeerprincipes en toepassingen
- CNC-programmeertechnieken:een insidersgids voor effectieve methoden en toepassingen
- Hurco CNC-handleidingen Programmering en onderhoud Gratis download
- Voorbeeldcode G71-draaicyclus voor ruw draaien – CNC-draaibankprogrammering
- Basisprincipes van CNC-programmeren – Tutorials met voorbeeldprogrammacode