Industriële fabricage
Industrieel internet der dingen | Industriële materialen | Onderhoud en reparatie van apparatuur | Industriële programmering |
home  MfgRobots >> Industriële fabricage >  >> Manufacturing Technology >> Productieproces

G-code uitgelegd | Lijst met de belangrijkste G-code-opdrachten

Als uw werk of hobby correleert met CNC-machines of 3D-printers, dan is begrijpen wat G-code is en hoe het werkt essentieel voor u. In deze tutorial leren we dus de basis van de G-code-taal, wat zijn de belangrijkste of meest voorkomende G-code-commando's en leggen we uit hoe ze werken.

Wat is G-code?

G-code is een programmeertaal voor CNC-machines (Computer Numerical Control). G-code staat voor "Geometrische Code". We gebruiken deze taal om een ​​machine te vertellen wat te doen of hoe iets te doen. De G-code-commando's geven de machine de instructies waar ze zich moeten verplaatsen, hoe snel ze moeten bewegen en welk pad ze moeten volgen.

In het geval van een werktuigmachine zoals een draaibank of frees, wordt het snijgereedschap door deze commando's aangedreven om een ​​specifiek gereedschapspad te volgen, waarbij materiaal wordt weggesneden om de gewenste vorm te krijgen.

Evenzo, in het geval van additieve fabricage of 3D-printers, instrueren de G-code-commando's de machine om materiaal laag na laag af te zetten, waardoor een precieze geometrische vorm ontstaat.

Hoe G-code-commando's lezen?

Op het eerste gezicht, als je een G-code-bestand ziet, ziet het er misschien nogal ingewikkeld uit, maar het is eigenlijk niet zo moeilijk te begrijpen.

Als we de code nader bekijken, zien we dat de meeste regels dezelfde structuur hebben. Het lijkt erop dat het 'ingewikkelde' deel van de G-code al die getallen zijn die we zien, dit zijn slechts cartesiaanse coördinaten.

Laten we een enkele regel bekijken en uitleggen hoe het werkt.

G01 X247.951560 Y11.817060 Z-1.000000 F400.000000

De regel heeft de volgende structuur:

G## X## Y## Z## F##

  • Eerste is het G-code commando en in dit geval is dat de G01  wat betekent "in een rechte lijn naar een specifieke positie gaan".
  • We geven de positie of de coördinaten aan met de X , J en Z waarden.
  • Ten slotte, met de F waarde stellen we de feed rate . in , of de snelheid waarmee de zet wordt uitgevoerd.

Om af te ronden, vertelt de regel G01 X247.951560 Y11.817060 Z-1.000000 F400 de CNC-machine om in een rechte lijn te bewegen van de huidige positie naar de coördinaten X247.951560, Y11.817060 en Z-1.000000 met een snelheid van 400 mm /min. De eenheid is mm/min, want als we terugkijken naar de voorbeeldafbeelding van de G-code, kunnen we zien dat we het commando G21 hebben gebruikt dat de eenheden instelt op millimeters. Als we de eenheden in inches willen, gebruiken we in plaats daarvan het G20-commando.

De belangrijkste/gebruikelijke G-code-commando's

Dus nu we weten hoe we een regel G-code moeten lezen, kunnen we de belangrijkste of meest gebruikte G-code-commando's bekijken. We zullen leren hoe elk van hen werkt door middel van verschillende voorbeelden, en aan het einde van deze tutorial zullen we volledig kunnen begrijpen hoe G-code werkt, hoe te lezen, hoe te wijzigen en zelfs hoe we onze eigen G-code kunnen schrijven.

G00 – Snelle positionering

De G00 commando verplaatst de machine met maximale rijsnelheid van een huidige positie naar een gespecificeerd punt of de coördinaten gespecificeerd door het commando. De machine zal alle assen tegelijkertijd verplaatsen, zodat ze de reis tegelijkertijd voltooien. Dit resulteert in een beweging in een rechte lijn naar het nieuwe positiepunt.

De G00 is een beweging die niet snijdt en het doel is om de machine snel naar de gewenste positie te verplaatsen om een ​​of andere taak te beginnen, zoals snijden of afdrukken.

G01 – Lineaire interpolatie

De G01 G-code commando instrueert de machine om in een rechte lijn te bewegen met een ingestelde voedingssnelheid of snelheid. We specificeren de eindpositie met de X , J en Z waarden en de snelheid met de F waarde. De machinebesturing berekent (interpoleert) de tussenliggende punten waar ze doorheen moeten om die rechte lijn te krijgen. Hoewel deze G-code-commando's eenvoudig en vrij intuïtief te begrijpen zijn, voert de machinecontroller erachter duizenden berekeningen per seconde uit om deze bewegingen te maken.

In tegenstelling tot het G00-commando dat alleen voor positionering wordt gebruikt, wordt het G01-commando gebruikt wanneer de machine zijn hoofdtaak uitvoert. In het geval van een draaibank of frees, materiaal in rechte lijn snijden, en in het geval van een 3D-printer, materiaal in rechte lijn extruderen.

G02 – Circulaire interpolatie met de klok mee

De G02 commando vertelt de machine om met de klok mee te bewegen in een cirkelvormig patroon. Het is hetzelfde concept als het G01-commando en wordt gebruikt bij het uitvoeren van het juiste bewerkingsproces. Naast de parameters van het eindpunt, moeten we hier ook het middelpunt van de rotatie definiëren, of de afstand van het beginpunt van de boog vanaf het middelpunt van de boog. Het startpunt is eigenlijk het eindpunt van het vorige commando of het huidige punt.

Voor een beter begrip zullen we het G02-commando toevoegen na het G01-commando uit het vorige voorbeeld.

Dus in het voorbeeld hebben we eerst het G01-commando dat de machine naar het X5-, Y12-punt verplaatst. Dit zal nu het startpunt zijn voor het G02-commando. Met de X- en Y-parameters van het G02-commando stellen we het eindpunt in. Om dit eindpunt te bereiken met een cirkelvormige beweging of een boog, moeten we het middelpunt ervan definiëren. We doen dat met behulp van de I- en J-parameters. De waarden van de I en J zijn relatief ten opzichte van het startpunt, of het eindpunt van het vorige commando. Dus om het middelpunt naar de X5 en Y7 te krijgen, moeten we een offset van 0 maken langs de X-as en offset van -5 langs de Y-as.

Natuurlijk kunnen we het middelpunt ergens anders instellen, dus we krijgen een andere boog die op hetzelfde eindpunt eindigt. Hier is een voorbeeld daarvan:

Dus hier hebben we nog steeds hetzelfde eindpunt als het vorige voorbeeld (X10, Y7), maar het middelpunt bevindt zich nu op een andere positie (X0, Y2). Hiermee kregen we een bredere boog in vergelijking met de vorige.

Zie ook:GRBL instellen en CNC-machine bedienen met Arduino

G00, G01, G02 Voorbeeld – Handmatige G-code-programmering

Laten we eens kijken naar een eenvoudig CNC-freesvoorbeeld met behulp van deze drie belangrijkste G-code-commando's, G00, G01 en G02.

Om het toolpad te krijgen voor de vorm die in de afbeelding hierboven wordt getoond, moeten we de G-code-commando's volgen:

G00 X5 Y5                ; point B
G01 X0 Y20 F200          ; point C
G01 X20 Y0               ; point D
G02 X10 Y-10 I0 J-10     ; point E
G02 X-4 Y-8 I-10 J0      ; point F
G01 X-26 Y-2             ; point BCode language: Arduino (arduino)

Met de eerste G00 commando, brengen we de machine snel van zijn thuis- of beginpositie naar punt B(5,5). Vanaf hier beginnen we met "snijden" met een voedingssnelheid van 200 met behulp van de G01 opdracht. We kunnen hier opmerken dat om van punt B(5,5) naar het punt C(5,25) te komen, we waarden gebruiken voor de X en Y ten opzichte van het startpunt B. Dus, +20 eenheden in Y-richting brengen ons naar punt C (5,25). Dit hangt er eigenlijk van af of we de machine hebben geselecteerd om de coördinaten als absoluut of relatief te interpreteren. We zullen dit in een later gedeelte uitleggen.

Zodra we het punt C(5,25) hebben bereikt, hebben we nog een G01-commando om het punt D(25,25) te bereiken. Dan gebruiken we het G02-commando, een cirkelvormige beweging, om bij punt E(35,15), met middelpunt (25,15) te komen. We hebben eigenlijk hetzelfde middelpunt (25,15) voor het volgende G02-commando, om bij punt F(31,7) te komen. We moeten echter opmerken dat de I- en J-parameters verschillen van het vorige commando, omdat we het midden van het laatste eindpunt of het punt E verschuiven. We eindigen het gereedschapspad met een ander G01-commando dat ons van punt F(31, 7)  terug naar punt B(5,5).

Dus zo kunnen we de G-code handmatig programmeren om deze vorm te maken. We moeten echter opmerken dat dit geen volledige G-code is, omdat we nog enkele basiscommando's missen. We zullen de volledige G-code in een later voorbeeld maken, omdat we eerst die G-code-commando's moeten uitleggen.

G03 – Circulaire interpolatie tegen de klok in

Net als de G02, is de G03 De G-code-opdracht definieert de machine om in een cirkelvormig patroon te bewegen. Het enige verschil hier is dat de beweging tegen de klok in is. Alle andere functies en regels zijn hetzelfde als het G02-commando.

Dus, met deze drie belangrijkste G-code-commando's, G01 , G02 en G03 we kunnen een toolpath genereren voor, letterlijk, elke vorm die we willen. Je vraagt ​​je nu misschien af ​​hoe dat mogelijk is, maar dat is eigenlijk een gemakkelijke taak voor een computer en een CAM-software. Ja, het is waar dat we soms handmatig een G-code-programma kunnen maken, maar meestal doen we dat met geschikte software die veel gemakkelijker en veiliger is.

Desalniettemin, leg nu enkele belangrijke en veelgebruikte commando's uit en maak aan het einde een echt G-code-voorbeeld.

G20/ G21 – Selectie van eenheden

De G20- en G21-opdrachten definiëren de G-code-eenheden, inches of millimeters.

  • G20 =inch
  • G21 =millimeter

We moeten er rekening mee houden dat de eenheden aan het begin van het programma moeten worden ingesteld. Als we de eenheden niet specificeren, zal de machine rekening houden met de standaard die door het vorige programma is ingesteld.

G17/ G18/ G18 – G-code vlakselectie

Met deze G-code commando's selecteren we het werkvlak van de machine.

  • G17 – XY-vlak
  • G18 – XZ-vliegtuig
  • G19 – YZ-vliegtuig

De G17 is standaard voor de meeste CNC-machines, maar de andere twee kunnen ook worden gebruikt voor het uitvoeren van specifieke bewegingen.

G28 – Terug naar huis

De G28 commando vertelt de machine om het gereedschap naar zijn referentiepunt of thuispositie te verplaatsen. Om botsingen te voorkomen, kunnen we een tussenpunt opnemen met X-, Y- en Z-parameters. Het gereedschap gaat door dat punt voordat het naar het referentiepunt gaat. G28 X## Y## Z## 

De thuispositie kan worden gedefinieerd met het commando G28.1 X## Y## Z## .

G90/ G91 – G-code-commando's positioneren

Met de commando's G90 en G91 vertellen we de machine hoe de coördinaten moeten worden geïnterpreteerd. G90 is voor absolute modus en G91 is voor relatieve modus .

In de absolute modus is de positionering van het gereedschap altijd vanaf het absolute punt of nul. Dus het commando G01 X10 Y5 zal het gereedschap naar dat exacte punt (10,5) brengen, ongeacht de vorige positie.

Aan de andere kant, in de relatieve modus, is de positionering van het gereedschap relatief ten opzichte van het laatste punt. Dus als de machine zich momenteel op punt (10,10) bevindt, geeft het commando G01 X10 Y5 zal het gereedschap naar punt (20,15) brengen. Deze modus wordt ook wel "incrementele modus" genoemd.

Meer commando's en regels

De G-code-opdrachten die we hierboven hebben uitgelegd, zijn dus de meest voorkomende, maar er zijn er nog veel meer. Er zijn commando's zoals freescompensatie, schaling, werkcoördinatensystemen, stilstand enz.

Naast de G-code zijn er ook M-code commando's die gebruikt worden bij het genereren van een echt volwaardig G-code programma. Hier zijn enkele veelvoorkomende M-code-commando's:

  • M00 – Programmastop
  • M02 – Einde programma
  • M03 – Spindel AAN – met de klok mee
  • M04 – Spindel AAN – tegen de klok in
  • M05 – Spindelstop
  • M06 – Gereedschapswissel
  • M08 – Flood colant AAN
  • M09 – Flood colant UIT
  • M30 – Einde programma

In het geval van een 3D-printer:

  • M104 – Start extruderverwarming
  • M109 – Wacht tot de extruder T0 bereikt
  • M140 – Bedverwarming starten
  • M190 – Wacht tot bed T0 bereikt
  • M106 – Ventilatorsnelheid instellen

Sommige van deze commando's hebben de juiste parameters nodig. Wanneer we bijvoorbeeld de spil met M03 aanzetten, kunnen we het spiltoerental instellen met behulp van de S-parameter. Dus de regel M30 S1000 zal de spindel aanzetten met een snelheid van 1000 RPM.

We kunnen ook opmerken dat veel codes modaal zijn , wat betekent dat ze van kracht blijven totdat ze worden geannuleerd of vervangen door een andere code. Stel dat we bijvoorbeeld een code hebben voor lineaire snijbewegingen G01 X5 Y7 F200 . Als de volgende beweging weer een lineaire snede is, kunnen we gewoon de X- en Y-coördinaten typen, zonder het schrijven van G01 aan de voorkant.

G01 X5 Y7 F200
X10 Y15
X12 Y20
G02 X5 Y5 I0 J-5
X3 Y6 I-2 J0Code language: Arduino (arduino)

Hetzelfde geldt voor de voedingssnelheidparameter F. We hoeven deze niet in elke regel op te nemen, tenzij we de waarde ervan willen wijzigen.

In sommige G-code-bestanden kun je ook "N## . zien ” voor de opdrachten. Het N-woord is eenvoudig om de regel of het codeblok te nummeren. Dat kan handig zijn om een ​​specifieke regel te identificeren in het geval van een fout in een enorm programma.

Eenvoudig voorbeeld van een G-code-programma

Desalniettemin, na dit alles te hebben gelezen, zijn we nu in staat om handmatig een echte, daadwerkelijke code te maken. Hier is een voorbeeld:

%
G21 G17 G90 F100
M03 S1000
G00 X5 Y5                 ; point B
G01 X5 Y5 Z-1             ; point B
G01 X5 Y15 Z-1            ; point C
G02 X9 Y19 Z-1 I4 J0      ; point D
G01 X23 Y19 Z-1           ; point E
G01 X32 Y5 Z-1            ; point F
G01 X21 Y5 Z-1            ; point G
G01 X21 Y8 Z-1            ; point H
G03 X19 Y10 Z-1 I-2 J0    ; point I
G01 X13 Y10 Z-1           ; point J
G03 X11 Y8 Z-1 I0 J-2     ; point K
G01 X11 Y5 Z-1            ; point L
G01 X5 Y5 Z-1             ; point B
G01 X5 Y5 Z0
G28  X0 Y0
M05
M30
%Code language: Arduino (arduino)

Beschrijving van het G-code programma:

  1. Code-initialisatie. Dit teken (%)  is altijd aanwezig aan het begin en aan het einde van het programma.
  2. Veiligheidslijn:Programmering instellen in metrisch systeem (alle afmetingen in mm), XY-vlak, absolute positionering en voedingssnelheid van 100 inch/min.
  3. Spil rechtsom draaiend met een snelheid van 1000 RPM.
  4. Snelle positionering naar B(5,5).
  5. Gecontroleerde beweging op dezelfde positie, maar het gereedschap verlagen naar -1.
  6. Lineaire snijbeweging naar positie C(5,15).
  7. Cirkelbeweging met de klok mee naar punt D(9,19), met middelpunt op (9,15).
  8. Lineair snijden naar punt E(23,19).
  9. Lineair snijden tot punt F (32,5).
  10. Dezelfde rechte snede naar punt G (21,5).
  11. Nog een rechte snede naar punt H(21,8).
  12. Cirkelinterpolatie tegen de klok in naar positie I(19,10), met een middelpunt op (19,8).
  13. Lineair snijden naar punt J(13,10).
  14. Circulair snijden tegen de klok in naar positie K(11,8), met een middelpunt op (13,8).
  15. Lineair snijden naar positie L(11,5).
  16. Laatste lineaire snijbeweging naar positie B(5,5).
  17. Haal het gereedschap omhoog.
  18. Ga naar startpositie.
  19. Spil af.
  20. Hoofdprogramma einde.

Zo ziet deze code eruit om naar onze CNC-machine te worden verzonden via de Universal G-code Sender-software:

Dus met behulp van deze belangrijkste G-code-commando's die hierboven zijn uitgelegd, zijn we erin geslaagd om onze eigen volwaardige G-code te schrijven. Dit voorbeeld is natuurlijk vrij eenvoudig en voor complexere vormen hebben we zeker CAM-software nodig. Hier is een voorbeeld van een complexe G-code van een paardenvorm:

Ter vergelijking:deze code heeft ongeveer 700 regels, maar wordt allemaal automatisch gegenereerd. De G-code is gemaakt met Inkscape als voorbeeld voor mijn DIY Arduino CNC-schuimsnijmachine. Hier is hoe de vorm eruit kwam:

Je kunt mijn specifieke tutorial bekijken voor meer details over deze machine.

Conclusie

Dus hebben we de basis van G-code behandeld, de belangrijkste en meest voorkomende G-code-commando's uitgelegd en handmatig onze eigen daadwerkelijke G-code gemaakt. Ik denk tenslotte dat het begrijpen van G-code niet zo moeilijk is. Natuurlijk zijn er zoveel andere commando's en functies die worden gebruikt bij CNC-bewerking of 3D-printen waarvan we op de hoogte moeten zijn, maar daarover meer in enkele andere tutorials.

Als je dit artikel nuttig vond, deel het dan met andere CNC- en 3D-printenthousiastelingen. Voel je ook vrij om een ​​vraag te stellen in de opmerkingen hieronder.


Productieproces

  1. Belangrijke constanten
  2. De belangrijkste kenmerken van pigmenten voor verf
  3. RF-transformator uitgelegd
  4. Grainger verdient plek op Fortunes Most Admired Companies-lijst
  5. Top 6 belangrijkste overwegingen voordat u een machinewerkplaats inhuurt
  6. Machineprogrammeertalen:G-code-opdrachten versus M-codes
  7. 5 van de belangrijkste veiligheidstips voor kranen
  8. 4 geheimen van werving voor uw belangrijkste fabrieksposities
  9. Waarom is design for manufacturing belangrijk?
  10. 7 belangrijkste dingen opgenomen in stuklijst (BOM)
  11. Fanuc G-codelijst