In deze blogpost deelt een ervaren werktuigbouwkundig ingenieur insidertips en technieken om Fanuc CNC-draaibankcommando's onder de knie te krijgen. Ontdek hoe u uw CNC programmeervaardigheden kunt optimaliseren, de productiviteit kunt verhogen en uw bewerkingsprojecten naar een hoger niveau kunt tillen.
G00▲: Snelle puntpositionering
G00 X__Z__
G01: Lineaire interpolatie
G01 X__Z__F__
G01: Afschuin- of vijlcommando
G01 X(U) Z (W) C
G01 X(U) Z (W) R
De waarden van X (U) en Z (W) vertegenwoordigen de coördinaten van het hypothetische snijpunt tussen aangrenzende lijnen AD en DE binnen het coördinatensysteem van het werkstuk, waarbij X en Z absolute coördinaatwaarden zijn en U en W incrementele coördinaatwaarden. De waarde C geeft de afstand ten opzichte van het startpunt van de afschuining aan. De waarde R geeft de straal van de afrondingsboog aan.
G02: Booginterpolatie met de klok mee
G02X__Z__R__F__
G02X__Z__ I__K__ F__
R vertegenwoordigt de straal van de boog. Wanneer de centrale hoek van de boog tussen 0° en 180° ligt, neemt R een positieve waarde aan; voor een centrale hoek tussen 180° en 360° neemt R een negatieve waarde aan. I en K geven de incrementele coördinaten aan van het middelpunt van de boog ten opzichte van de X- en Z-as vanaf het beginpunt van de boog, dat wil zeggen dat de coördinaten van het middelpunt de coördinaten van het beginpunt aftrekken (I wordt voorgesteld door de radiuswaarde). Als I en K nul zijn, kunnen ze weggelaten worden.
G03: Booginterpolatie linksom
G03 X__Z__R__F__
G03X__Z__ I__K__ F__
Identiek aan G02.
G04: Pauze
G04 X1.5; of G04 P1500; P zonder decimaalteken.
G07.1 (G107): Cilindrische interpolatie
G07.1IPr (Ingangsdatum); G07.1IP0 (Annulering);
G10▲: Programmeerbare data-ingang
G10 P __X__ Z__R__ Q__
G11: Annulering van programmeerbare gegevensinvoer
G12.1 (G112): Polar Coordinate Instructie
G13.1▲: Annulering van poolcoördinaten
G17: selectie van XY-vlak
G18▲: Selectie van XZ-vlak
G19: selectie van YZ-vlak
G20: Inch-ingang
G21: Millimeteringang
G22: Opgeslagen slagdetectie inschakelen
G23: Opgeslagen slagdetectie uitschakelen
G27: Controle terugkeer referentiepunt
G27 X (U) Z (W)
Met de G00-functie wordt gecontroleerd of het gereedschap terugkeert naar de opgegeven X- en Z-coördinaten zoals aangegeven in het programma. Als de terugloop nauwkeurig is, gaat het indicatielampje branden. Afwijkingen resulteren echter in systeemalarmen op de machine.
G28: Automatisch terugkeren naar referentiepunt
G28 X(U) Z(W); X en Z zijn de punten die worden doorgegeven tijdens het retourproces.
G29: Terugkeren naar het referentiepunt
G29 X (U) Z (W)
Vanaf het referentiepunt, door het middelpunt naar de opgegeven X- en Z-posities, is het middelpunt het punt dat wordt aangeduid door G28, vandaar dat dit commando alleen kan verschijnen na G28.
G30: terugkeren naar het instelpunt
G30 P2/P3/P4 X Z
P2, P3, P4 vertegenwoordigen respectievelijk het 2e, 3e en 4e referentiepunt, terwijl X en Z de tussenliggende punten zijn.
Betekenis: Het gereedschap gaat door de tussenpunten om de posities van het 2e, 3e en 4e referentiepunt te bereiken.
G31: Springfunctie
G32: Gelijke schroefdraad
G32X(U)_Z(W)_F_Q_
G32 Z(W) F; (Cilindrische draad)
G32 X(U) F; (eindschroefdraad)
G32 X(U) Z(W) F; (Conische draad)
Opmerking:
1. Bij het programmeren moeten de segmenten voor insnijden en uitsnijden worden opgenomen in het draadsnijprogramma.
2. Voor de bewerking van conische draad wordt de schroefdraaduitsprong in de Z-asrichting gespecificeerd als de hoek α kleiner is dan of gelijk is aan 45 graden; als de hoek α groter is dan 45 graden en kleiner dan of gelijk aan 90 graden, wordt de schroefdraaduitsprong in de X-asrichting gespecificeerd.
3. Q geeft de beginhoek van de schroefdraad weer, zonder decimaalteken, en de eenheid is 0,001°.
G34: Draad met variabele spoed
G34 X(U) Z(W) F K ; (Conische draad)
K vertegenwoordigt de toename (positieve waarde) of afname (negatieve waarde) van de toonhoogte per omwenteling, de rest is hetzelfde als G32.
G36: Automatisch Compensatie gereedschap X
G36 X
G37: automatische gereedschapscorrectie Z
G37 Z
G40: Annulering tipstraalcompensatie
G41: linker verschuiving voor gereedschapspuntradius
G41(G42)G01(G00) X Z F
G40 G01(G00) X Z F
Voor de voorste gereedschapshouder is de buitencirkel G42 met positienummer 3 en de booropening G41 met positienummer 2. De volgende afbeelding toont het positienummer voor de voorste gereedschapshouder, waarbij de posities 2 en 3, en 1 en 4 omgekeerd zijn voor de achterste gereedschapshouder, terwijl de rest hetzelfde blijft.
G42: verschuiving rechts voor gereedschapspuntradius
G50: Coördinatensysteeminstelling of maximumsnelheid
G50 X Z of G50 S
G50.3: voorinstelling coördinatensysteem werkstuk
G50.2: Polygoon draaiannulering
G51: polygoon draaien
G52: Lokaal coördinatenstelsel
G52 X20 Z20: de XZ-waarden vertegenwoordigen de positie van de oorsprong van het lokale coördinatensysteem binnen het originele coördinatensysteem van het werkstuk.
Als G52 X0 Z0: dit annuleert het lokale coördinatensysteem en herstelt de oorsprong van het originele coördinatensysteem.
G53: Selectie van coördinatensysteem van bewerkingsmachine
Deselecteer het coördinatensysteem van het werkstuk en kies het coördinatensysteem van de machine.
(G90) G53 X_ Y_ Z_: deze is geldig in de absolute opdracht (G90), maar ongeldig in de incrementele opdracht (G91).
Opmerking:
(1) De gereedschapsdiameteroffset, gereedschapslengteoffset en gereedschapspositieoffset moeten worden geannuleerd voordat de G53-functie wordt toegewezen. Anders verplaatst de machine zich volgens de toegewezen offsetwaarden.
(2) Voordat u de G53-opdracht uitvoert, handmatig of met de G28-opdracht, moet u de gereedschapsmachine terugzetten naar de oorsprong. Het coördinatensysteem van de gereedschapsmachine moet namelijk worden ingesteld voordat de opdracht G53 wordt uitgevoerd.
G54▲: Selectie van werkstukcoördinatensysteem 1
G54; Standaard ingeschakeld.
G55-59: Selectie van werkstukcoördinatensystemen 2-6
G65: Niet-modale oproep van macroprogramma
Klasse A gebruikt het FANUC 0TD systeem, terwijl klasse B het FANUC 0I systeem gebruikt.
Lokale variabelen zijn #1-#33, gedeelde variabelen zijn #100-#149, #500-#549 en systeemvariabelen zijn #1000 en hoger.
Macroprogramma's eindigen met M99 en kunnen aangeroepen worden met M98 of "G65 P(programmanummer)L(aantal)".
Het formaat voor programma's van klasse A is: G65 H(a)P(b)Q(c)R(d), waarbij a de H-code is, b de resultaatvariabele en c, d twee bewerkingsvariabelen.
Opdracht voor macroprogramma van klasse B.
Opdracht | #i=#j | Functie vloer | #i=FUP[#j] |
Toevoeging | #i=#j+#k | Natuurlijk logaritme | #i=LN[#j] |
Aftrekken | #i=#j-#k | Exponentiële functie | #i=EXP[#j] |
Vermenigvuldiging | #i=#j*#k | Of | #iOR#j |
Divisie | #i=#j/#k | Exclusief of | #iXOR#j |
Sinus | #i=SIN[#j] | En | #iAND#j |
Inverse sinus | #i=ASIN[#j] | BCD naar BIN conversie | #i=BIN[#j] |
Cosinus | #i=CON[#j] | BIN naar BCD conversie | #i=BCD[#j] |
Inverse cosinus | #i=ACON[#j] | Gelijk aan | EQ |
Raaklijn | #i=TAN[#j] | Niet gelijk aan | NE |
Inverse tangens | #i=ATAN[#j]/[#k] | Groter dan | GT |
Vierkantswortel | #i=SQRT[#j] | Groter dan of gelijk aan | GE |
Absolute waarde | #i=ABS[#j] | Minder dan | LT |
Afronding | #i=ROUND[#j] | Minder dan of gelijk aan | LE |
Plafond | #i=FIX[#j] |
Besturingsopdracht: GOTO n - Onvoorwaardelijke sprong
IF [voorwaardelijke expressie] GOTO n - Voorwaardelijke sprong-instructie
WHILE [uitdrukking voorwaarde] DO m (m=1, 2, 3...) - Lusopdracht
...
EINDE m;
G66: Modale aanroeping macroprogramma
G67: Macroprogramma modale aanroep annuleren
G70: inwendige en uitwendige cilindrische fijndraaisamenstelling met vaste cyclus
Programmeerformaat: G70 P(ns) Q(nf)
Waar:
Opmerkingen:
(1) De G70-commando's kunnen niet onafhankelijk worden gebruikt; ze moeten worden gecombineerd met de G71-, G72- en G73-commando's om de vaste cyclus voor precisiebewerking te voltooien, d.w.z. nadat het werkstuk ruw is bewerkt met de G71-, G72- en G73-commando's, wordt G70 gebruikt om de vaste cyclus voor precisiebewerking te specificeren, waarbij de overmaat van de voorbewerking wordt verwijderd.
(2) In dit geval zijn de F, S, T-commando's in de G71, G72, G73 programmasegmenten ongeldig; alleen de F, S, T in de ns~nf programmasegmenten zijn effectief. Als de F, S, T-commando's niet in de ns~nf-programmasegmenten zijn gespecificeerd, zijn de F, S, T van de ruwe draaicyclus van kracht.
G71: Inwendige en uitwendige cilindrische fijndraaisamenstelling met vaste cyclus
Programmeerformaat: G71U (△d) R(e);
G71 P(ns) Q(nf) U (△u) W(△w) F S T ;
Waar:
(1) Wanneer de bovenstaande instructie wordt gebruikt voor het bewerken van de binnencontour van het werkstuk, moet △u een negatieve waarde zijn.
(2) Als G71 wordt gebruikt voor voorbewerken, zijn alleen de F-, S- en T-functies in het G71-programmasegment effectief. De F-, S- en T-functies in het ns~nf-programmasegment werken niet voor de voorbewerkingscyclus, zelfs niet als ze zijn opgegeven. Er kan gereedschapscompensatie worden uitgevoerd en de gereedschapsradiuscompensatie kan vóór G70 worden geprogrammeerd, meestal opgenomen in de beweging die het startpunt nadert. Bijvoorbeeld: G42G00X55Z2; G70P10Q20; G40G00X100Z50;
(3) Deze instructie is van toepassing als de Z-coördinaat monotoon toe- of afneemt en de X-coördinaat ook monotoon verandert. Het Ns-programmasegment moet vooruitgaan langs de X-as en er mogen geen Z-waarden verschijnen.
G72: Kopieerdraaien Samengesteld draaien met vaste cyclus
Programmeerformaat: G72W (△d) R(e);
G72 P(ns) Q(nf) U (△u) W(△w) F S T ;
2. d: Terugsnijhoeveelheid in Z-richting, zonder teken; andere parameters zijn hetzelfde als G71. Het Ns-programmasegment moet in de Z-richting aanvoeren en kan geen X-waarde bevatten. Wanneer de bovenstaande opdracht wordt gebruikt voor inwendige contourbewerking van het werkstuk, moet △u een negatieve waarde zijn.
Voorbeeld: Zoals in de afbeelding te zien is, is de programmalijst:
G73: Contourduplicatiecyclus
Programmeerformaat: G73 U(△i) W(△k) R (d);
G73 P(ns) Q(nf) U (△u) W(△w) F S T ;
d: Vertegenwoordigt het aantal cycli bij ruwdraaien (laagtelling);
△i: Tijdens het ruwdraaien, de totale te verwijderen speling in de X-as richting (terugtrekhoeveelheid gereedschap) en richting, radiuswaarde. Dat is: de onbewerkte maat min de kleinste werkstukmaat gedeeld door 2. Het gat is een negatieve waarde.
△k: Tijdens het ruwdraaien is de totale toeslag die moet worden verwijderd in de Z-asrichting (hoeveelheid gereedschap die moet worden teruggetrokken) en richting; △k is over het algemeen nul. De rest is hetzelfde als bij de opdracht G71.
G74: Freescyclus / Boren Fiets
G75: Radiaal Groeven Fiets
Programmeerformaat: G75R (e);
G75 X (U) Z(W) P(Δi) Q(Δk) R (d)F;
Opmerking:
1. De uiteindelijke diepte en de uiteindelijke offset in Z-richting worden door het systeem zelf berekend.
2. Δi, Δk zijn de minimale programmeereenheden, bijvoorbeeld P1500 betekent een snedediepte van 1,5 mm.
G76: Cyclus draadsnijhulpmiddel
G76 P(m)(r) (α) Q(△d min) R(d)
G76 X(U) Z(W) R(i) P(k) Q(△d) F(L)
G90: Cilindrisch/Conisch oppervlak Enkelvoudige vaste cyclus
G90 X(U) Z(W) R F;
R geeft de helft van het verschil aan tussen de X-coördinaat bij het beginpunt en de X-coördinaat bij het eindpunt van de conische oppervlaktesnede. Het kan negatief zijn, waarbij negatief een regelmatige kegel aangeeft en positief een omgekeerde kegel. Zonder R is het cilindrisch snijden. Snijsnelheid: G00 - G01 - G01 - G00.
G92: draadsnijcyclus
G92 X(U) Z(W) F R;
R = (X beginpunt - X eindpunt) / 2. R is niet-modaal en moet in elke zin worden opgenomen.
G94: Cyclus einde gezicht snijden
Opdrachtformaat: G94 X(U) Z(W) F;
Commando formaat conisch kopvlak snijden: G94 X(U) Z(W) K F
Hierbij vertegenwoordigen X en Z de absolute coördinaatwaarde van het eindpunt van het segment;
U, W vertegenwoordigen de incrementele coördinaatwaarde van het eindpunt van het segment ten opzichte van het startpunt van de cyclus; F vertegenwoordigt de voedingssnelheid. K vertegenwoordigt het verschil in Z-coördinaatwaarden tussen het begin- en eindpunt van het segment (meestal een negatieve waarde), d.w.z. K=Z beginpunt - Z eindpunt.
G96: Constante lineaire snelheid
M3S300; Initiële snelheid
G50S1000; Maximumsnelheid 1000
G96S100; spindelsnelheid 100m/min
…
G97▲: Annulering van constante lineaire snelheid, toerentalbeëindiging.
G97 S300; annulering van constante lineaire snelheid, snelheid is 300r/min
G98: Aanvoer per minuut
Eenheid: mm/min Voorbeeld: G98 G01 X20 F200
G99▲: Aanvoer per omwenteling
Eenheid: mm/omw. Voorbeeld: G99 G01 X20 F0.2;
M00: Alle acties stoppen.
M01: Programmaselectiestop
Moet indrukken: Selecteer stoptoets om deze effectief te laten zijn, gelijk aan M00;
M02: Beëindiging van het programma
Cursor keert niet terug.
M03/M04: Spindel vooruit (rechtsom) / achteruit (linksom)
M03 S300;
M05: Spilstop
M08/09: koelvloeistof aan/uit
M30: Beëindiging van het programma
De cursor keert terug naar het begin van het programma.
M98: Subroutine-aanroep
Programmeerformaat: M98 PxxxxL ;
of M98 Pxxxxxxxxxxxx ;
M99: Terug naar hoofdprogramma
Hierbij vertegenwoordigen de vier cijfers na het P-adres na het aanroepen het subroutinenummer, de oproep na het L-adres vertegenwoordigt de aanroeptijden. Als de aanroeptijd 1 is, kan deze worden weggelaten en zijn herhaalde aanroeptijden tot 999 toegestaan. Wanneer de acht cijfers volgen op het P-adres, vertegenwoordigen de eerste vier de oproeptijden en de laatste vier het subroutinenummer. Als de aanroeptijden 1 zijn, kunnen ze worden weggelaten.
Als M99 P100; staat voor terugkeren naar het N100-programmasegment van het hoofdprogramma, als de subroutine M99 L2 uitvoert, betekent dit dat de subroutine gedwongen wordt om twee keer uit te voeren, ongeacht hoe vaak het hoofdprogramma dit vraagt.
T××××: Gereedschapsopdracht
In T0101 staan de eerste twee cijfers voor het gereedschapsnummer, terwijl de laatste twee cijfers voor het gereedschapscompensatienummer staan.