Programmeren Haas CNC Control G-Codes en M-Codes
CNCCookbook’s G-Code Tutorial
Haas maakt een aantal van de meest populaire CNC-machines in de wereld, dus weten hoe je hun unieke g-codes te gebruiken kan een belangrijke vaardigheid zijn. Het goede nieuws is dat Haas een van de slimste benaderingen heeft gekozen die ik kan bedenken bij het maken van hun unieke g-code-dialect.
Haas: Slimme strategie als het gaat om hun CNC G-code-dialect…
Ze zijn begonnen met ’s werelds populairste dialect, Fanuc (waar het grootste deel van deze cursus over gaat) en hebben daar bovenop gebouwd met behoud van compatibiliteit. Ze hebben geen willekeurige wijzigingen aangebracht en ze hebben grotendeels goede waarde en gemak toegevoegd.
Dit is een slimme strategie omdat het betekent dat de meeste Fanuc g-code gewoon op een Haas zal draaien, maar ze hebben nog steeds enkele grote voordelen om over te praten vanwege de speciale codes die ze hebben toegevoegd. Het betekent ook dat het grote aantal mensen dat Fanuc g-code kan programmeren, klaar is om vanaf de eerste dag productief te zijn op Haas-machines, en ze kunnen de dingen oppikken die Haas heeft toegevoegd als dat nodig is.
Dit artikel gaat helemaal over het oppikken van die dingen vandaag, dus laten we beginnen.
Wat zijn de Haas G-Codes voor molens?
Hier is een kort overzicht:
- G12/13: Cirkelvormige Zakken
- G51: Schaalverdeling
- G53: Niet-Modaal Machine Coördinaten Systeem
- G68: Rotatie
- G101: Spiegelbeeld
- G150: General Purpose Pocket Milling
Nu gaan we door en breken elk van hen af om te zien hoe het werkt.
G12 & G13 G-Codes: Circular Pockets
Circular Interpolation of Helical Interpolation is iets wat we vaak zien in de CNC-programmering. Het is een geval waar een frees is geprogrammeerd om een cirkelvormig of spiraalvormig pad te volgen om een veel groter gat te maken dan de diameter van de frees.
Deze speciale Haas g-codes maken het gemakkelijk om de bewerking uit te voeren. G12 snijdt met de klok mee, terwijl G13 tegen de klok in snijdt. Dit zijn de woorden die u zult gebruiken om de kamer te maken:
D*: Gereedschapsradius of diameter. Als u D00 gebruikt, vertelt dit de Haas om geen freescompensatie te gebruiken. Het D-woord is modaal, dus als er geen wordt opgegeven, wordt de laatste waarde van D gebruikt.
F: Aanvoersnelheid
I: Radius van de eerste cirkel (of afwerking indien geen K). I moet groter zijn dan de gereedschapsradius, maar kleiner dan K.
K*: Radius van de afgewerkte cirkel.
L*: Lustelling voor het herhalen van diepere sneden.
Q*: Straalvergroting of -overgang. Te gebruiken met K.
Z: Snijdiepte of increment
* = Het woord is optioneel en kan weggelaten worden.
Om deze g-codes te gebruiken, begint u met het plaatsen van het gereedschap boven het middelpunt van de cirkel. Je hebt de keuze: je kunt al het materiaal binnen de cirkel verwijderen, of je kunt alleen de straal van de cirkel afsnijden. Indien u enkel de radius wil afsnijden, gebruik dan een I waarde ingesteld op de radius en geef geen K of Q waarde op. Indien u al het materiaal wilt verwijderen, gebruik dan I en Q waarden kleiner dan de diameter van het gereedschap en een K waarde gelijk aan de radius van de cirkel.
Hier volgt een voorbeeldprogramma dat alleen de radius snijdt:
%
(SAMPLE G12)
T1 M06 (Selecteer gereedschap 1) ;
G00 G90 G40 G49 G54 (Veilig opstarten) ;
G00 X0 Y0 (Snel naar 1e positie) ;
S1000 M03 (Spindel op rechtsom) ;
G43 H01 Z0.1 (Gereedschap offset 1 aan) ;
M08 (Koelvloeistof aan) ;
( Cirkel snijden) ;
G12 I0.75 F10. Z-1.2 D01 (Finish kamer CW) ;
G00 Z0.1 (Terugtrekken) ;
G00 Z0.1 M09 (snel terugtrekken, koelvloeistof uit) ;
G53 G49 Z0 M05 (Z thuis, spindel uit) ;
G53 Y0 (Y thuis) ;
M30 (einde programma) ;
%
En hier is een backplot in G-Wizard Editor van de freesbaan van dat programma:
G12 ingesteld voor radiusstijlsnede…
G51 G-Code: Scaling
G51 scaling is beschikbaar op Fanuc besturingen, maar Haas doet het iets anders. Hier is de Haas syntax:
G51 X_ Y_ Z_ P_
X, Y, en Z stellen u in staat om een optioneel centrum voor de schaling op te geven. Als ze afwezig zijn, is het middelpunt de oorsprong (deel nul). P is de schaalfactor. Als er geen P is opgegeven, is instelling 71 de standaard schaleringsfactor.
Merk op dat schaleren een optionele extra-kostfunctie is op Haas besturingen.
Schalen is handig voor veel doeleinden, en ons hoofdstuk over schalen bevat meer details daarover.
G53 G-Code: Non-Modal Machine Coordinate System
G53 laat u het werk coördinaten systeem voor een blok annuleren. Met andere woorden, het is niet-modaal. U moet het samen met G49 gebruiken als u een Z-waarde hebt, omdat G49 de gereedschap-offset annuleert.
Voorbeeld:
G53 Y0
Die g-code verplaatst de tafel naar machine-nul in Y. G53 is vooral een snelkoppeling ten opzichte van bijvoorbeeld G28.
Voorbeeld:
G28 G91 Z0
Nu moet u niet vergeten om een G90 toe te voegen. Met G53, blijft G90 van kracht.
G68 G-Code: Rotation
Net als schalen is rotatie ook beschikbaar in Fanuc, maar het is iets anders op Haas. Het is ook een extra-kosten optie om rotatie in te schakelen.
G68 roteert opeenvolgende X, Y, Z, I, J, en K waarden door een opgegeven hoek met een centrum van rotatie. G69 annuleert de G68 rotatie.
Voordat u rotatie gebruikt, moet u er zeker van zijn dat het rotatievlak wordt gespecificeerd door G17, G18, of G19.
Hier volgt de syntaxis voor G68
G68 a_ b_ R
a is de coördinaat voor het rotatiemiddelpunt van de eerste as van het vlak dat u hebt opgegeven. Voor G17 is dat dus X. b is de coördinaat van het rotatiemiddelpunt voor de tweede as. Voor G17 is dat Y.
R geeft de rotatiehoek in graden aan. U kunt waarden gebruiken van 360 tot -360.
G101 G-Code: Spiegelbeeld
G101 kan worden gebruikt om een spiegelbeeld te maken van een reeks codes rond een X, Y, Z, A, of B as.
Hier volgt de syntax:
G101 X_ Y_ Z_ A_ B_
U moet ten minste één as opgeven. Elke waarde die met het as-woord wordt gegeven, wordt genegeerd, maar u hebt de waarde nodig om een alarm te voorkomen.
Gebruik G100 om spiegelbeelden te annuleren.
G150 G-Code: General Purpose Pocket Milling
G150 is een heel mooie en handige g-code. Zie het als het equivalent van G71 van een CNC-draaibank cyclus voor frezen. In wezen is het een mini-CAM programma in een G-code.
Wat het doet is dat je de omtrek van een kamer opgeeft als een klein G-code programma. G150 maakt die pocket leeg.
Hier volgt de syntaxis:
G150 G41* P_ F_ D_ I_ J_ K_ Q_ R_ X_ Y_ Z_ L_ S_
En dit is wat de parameters doen:
- P: Het nummer van het subprogramma dat de omtrek van de pocket specificeert. Vereist!
- F: Aanzet
- D: Keuze gereedschapsdiameter-offset.
- I: X-as snijkantstap. Elke werkgang verwijdert zoveel materiaal. U moet I of J opgeven, maar u kunt niet beide opgeven.
- J: Y-as snij-integrator.
- K: Finish snij-integrator voor de laatste werkgang.
- Q: incrementele Z-as snijdiepte per werkgang. Mag gelijk zijn aan 0 en is vereist. Q is een positieve incrementele stapafname.
- R: Positie R-vlak (vereist). Dit is het terugtrekvlak voor snelle beweging.
- X en Y: Positie van het startgat.
- Z: Uiteindelijke zakdiepte
- L: Optioneel aantal herhalingen voor extra zakken.
- S: Optioneel spiltoerental
G41 cutter comp is normaal gesproken opgegeven, maar u kunt ook G42 gebruiken als u dat verkiest.
Het eerste ding om op te merken is dat G150 verwacht dat er een gat is voor de volledige pocket diepte die het kan gebruiken om de endmil neer te krijgen tot snijdiepte op elke pass. Je kunt dat gat boren of interpoleren, maar dat moet gebeuren voordat je G150 oproept.
Ten tweede, je pocket definitie, waarnaar verwezen wordt met het P-woord, moet een subprogramma zijn, geen subroutine.
Ten slotte, het subprogramma moet minder dan 40 bewegingen hebben. U kunt dit omzeilen door meer dan één pocket te snijden.
Andere dingen om op te merken:
- Codes anders dan G, I, R, X, en Y in het subprogramma worden genegeerd.
- De eerste zet in het subprogramma moet van de hole naar een punt op de pocketrand zijn.
- De laatste zet moet naar datzelfde startpunt op de pocketrand zijn.
- Het is goed om G91 (incrementeel) of G90 (absoluut) bewegingen te gebruiken in het subprogramma.
- Er is geen Z-diepte afwerking pass, het is alleen op de wanden van de pocket.
- Als u L gebruikt voor het herhalen van pockets, moet u een G91 en incrementele positionering in de G150 lijn hebben. Zorg ervoor dat je eerst alle pocket entry gaten hebt geboord!
De G150 g-code is best glad, maar uiteindelijk maakt CAM Software pocket programmeren makkelijker en minder foutgevoelig. Houd G150 voor eenvoudig zakken die zijn gemakkelijk geprogrammeerd en gevisualiseerd.