Programmering av Haas CNC-kontrollens G-koder och M-koder
CNCCookbook’s G-Code Tutorial
Haas tillverkar några av de mest populära CNC-maskinerna i världen, så att veta hur man använder deras unika g-koder kan vara en viktig färdighet. Den goda nyheten är att Haas har tagit ett av de smartaste tillvägagångssätten jag kan tänka mig när de skapade sin unika g-kod-dialekt.
Haas: Smart strategi när det gäller deras CNC G-kod-dialekt….
De började med världens populäraste dialekt, Fanuc (det som huvuddelen av den här kursen handlar om) och byggde vidare på den samtidigt som de bibehöll kompatibilitet. De gjorde inga godtyckliga ändringar och de lade i stort sett till bra värde och bekvämlighet.
Detta är en smart strategi eftersom det innebär att den mesta Fanuc g-kod bara kommer att köras på en Haas, men de har ändå några stora fördelar att tala om på grund av de speciella koder som de har lagt till. Det betyder också att den stora kadern av personer som kan programmering med Fanuc g-kod är redo att vara produktiva dag ett på Haas-maskiner, och de kan plocka upp de saker som Haas lagt till när de behöver det.
Denna artikel handlar om att plocka upp dessa saker i dag, så låt oss börja.
Vad är Haas g-koder för fräsar?
Här kommer en snabb översikt:
- G12/13: Cirkulära fickor
- G51: Skalning
- G53: Icke-modalt maskinkoordinatsystem
- G68: Rotation
- G101: Spegelbild
- G150: Nu ska vi gå igenom och dela upp varje kod för att se hur den fungerar.
G12 & G13 G-koder: Cirkulära fickor
Cirkulär interpolation eller spiralformad interpolation är något vi ofta ser i CNC-programmering. Det är ett fall där en fräs är programmerad att följa en cirkulär eller spiralformad bana för att göra ett mycket större hål än fräsens diameter.
Dessa speciella Haas g-koder gör det enkelt att utföra operationen. G12 skär medurs medan G13 skär moturs. Här är de ord som du ska använda för att skapa fickan:
D*: Verktygsradie eller diameter. Om du använder D00 talar det om för Haas att den inte ska använda skärkompensation. D-ordet är modalt, så om inget anges kommer det senaste värdet för D att användas.
F: Matningshastighet
I: Radis för den första cirkeln (eller slutresultatet om ingen K). I måste vara större än verktygsradie men mindre än K.
K*: Radius för den färdiga cirkeln.
L*: Radius för den färdiga cirkeln.
L*: Loop count för upprepning av djupare snitt.
Q*: Loop count för upprepning av djupare snitt.
Q*: Loop count: Radieökning eller stepover. Används tillsammans med K.
Z: Skärdjup eller ökning
* = Ordet är valfritt och kan utelämnas.
För att använda dessa g-koder börjar du med att placera verktyget ovanför cirkelns centrum. Du har ett val – du kan antingen ta bort allt material inuti cirkeln eller så kan du bara skära av cirkelns radie. Om du bara vill skära av radien använder du ett I-värde som är inställt på radien och anger inget K- eller Q-värde. Om du vill ta bort allt material använder du I- och Q-värden som är mindre än verktygets diameter och ett K-värde som är lika med cirkelns radie.
Här är ett exempelprogram som bara skär radien:
%
(SAMPLE G12)
T1 M06 (Välj verktyg 1) ;
G00 G90 G40 G40 G49 G54 (Säker uppstart) ;
G00 X0 Y0 (Snabbt till 1:a positionen) ;
S1000 M03 (Spindeln på CW) ;
G43 H01 Z0.1 (Verktygsförskjutning 1 på) ;
M08 (Kylmedel på) ;
( Skär cirkeln ) ;
G12 I0.75 F10. Z-1.2 D01 (Slutfickan CW) ;
G00 Z0.1 (Dra tillbaka) ;
G00 Z0.1 M09 (Snabbt återkallande, kylmedel av) ;
G53 G49 Z0 M05 (Z hemma, spindel av) ;
G53 Y0 (Y hemma) ;
M30 (Slut på programmet) ;
%Och här är en backplot i G-Wizard Editor av det programmets verktygsbana:
G12 inställd för radius stil skärning…
G51 G-kod: Skalning
G51-skalning är tillgänglig på Fanuc-kontroller, men Haas gör det på ett något annorlunda sätt. Här är Haas-syntaxen:
G51 X_ Y_ Z_ P_
X, Y och Z gör att du kan ange ett valfritt centrum för skalningen. Om de saknas är centrumet ursprunget (del noll). P är skalningsfaktorn. Om det inte finns någon P angiven är inställning 71 standardskalningsfaktorn.
Notera att skalning är en valfri extrakostnadsfunktion på Haas styrenheter.
Skalning är praktiskt för många syften, och i vårt kapitel om skalning finns mer information om detta.
G53 G-kod: Icke-modalt maskinkoordinatsystem
G53 låter dig avbryta arbetskoordinatsystemet för ett block. Med andra ord är det icke-modalt. Du måste använda den tillsammans med G49 om du har ett Z-värde eftersom G49 upphäver verktygsförskjutningen.
Till exempel:
G53 Y0
Denna g-kod flyttar bordet till maskinens nollpunkt i Y. G53 är mest en genväg jämfört med till exempel G28.
Till exempel:
G28 G91 Z0
Nu måste du komma ihåg att lägga till en G90. Med G53 förblir G90 i kraft.
G68 G-kod: Rotation
Likt skalning är rotation också tillgänglig i Fanuc, men det är något annorlunda på Haas. Det är också ett extrakostnadsalternativ för att aktivera rotation.
G68 roterar efterföljande X-, Y-, Z-, I-, J- och K-värden med en angiven vinkel med ett rotationscentrum. G69 upphäver G68-rotationen.
För att använda rotation ska du se till att rotationsplanen är specificerad med G17, G18 eller G19.
Här är syntaxen för G68
G68 a_ b_ R
a är koordinaten för rotationscentrumet för den första axeln i det plan som du specificerade. För G17 är det alltså X. b är koordinaten för den andra axelns rotationscentrum. För G17 är det Y.
R anger rotationsvinkeln i grader. Du kan använda värden från 360 till -360.
G101 G-kod: Spegelbild
G101 kan användas för att producera en spegelbild av en sekvens av koder runt en X-, Y-, Z-, A- eller B-axel.
Här är syntaxen:
G101 X_ Y_ Z_ A_ B_
Du måste ange minst en axel. Alla värden som anges med axelordet ignoreras, men du behöver värdet för att undvika ett larm.
Använd G100 för att avbryta spegelbilder.
G150 G-kod: General Purpose Pocket Milling
G150 är en mycket fin och praktisk g-kod. Tänk på den som motsvarigheten till en CNC-svarvs G71-cykel för fräsning. I huvudsak är det ett mini-CAM-program i en g-kod.
Vad den gör är att du kan ange konturerna av en ficka som ett litet g-kodprogram. G150 rensar ut den fickan.
Här är syntaxen:
G150 G41* P_ F_ D_ I_ J_ K_ Q_ R_ X_ Y_ Z_ L_ S_
Och här är vad parametrarna gör:
- P: Numret på det underprogram som specificerar fickans kontur. Krävs!
- F: Matningshastighet
- D: Val av förskjutning av verktygsdiameter.
- I: Skärning av X-axeln. Varje pass tar bort så här mycket material. Du måste ange I eller J, men du kan inte ange båda.
- J: Skräddjup för Y-axeln.
- K: Tillägg för slutskärning för det sista passet.
- Q: Skräddjup för Z-axeln per pass. Måste kan vara lika med 0 och krävs. Q är ett positivt inkrementellt nedtrappningsbelopp.
- R: R-planets position (krävs). Detta är det indragna planet för snabb rörelse.
- X och Y: Starthålets position.
- Z: Slutligt fickdjup
- L: Valfritt antal upprepningar för ytterligare fickor.
- S: Valfritt spindelvarvtal
G41 cutter comp anges normalt, men du kan också använda G42 om du föredrar det.
Det första som bör noteras är att G150 förväntar sig att det ska finnas ett hål för hela det fickdjup som den kan använda för att få ned slutmilan till skärdjup vid varje pass. Du kan borra eller interpolera det hålet, men det måste göras innan du anropar G150.
För det andra måste din fickdefinition, som refereras till med P-ordet, vara ett underprogram, inte en underrutin.
För det sista måste underprogrammet ha färre än 40 rörelser. Du kan kringgå detta genom att skära mer än en ficka.
Andra saker att notera:
- Andra koder än G, I, R, X och Y i underprogrammet ignoreras.
- Det första draget i underprogrammet ska vara från hålet till en punkt på fickans kant.
- Det sista draget ska vara till samma startpunkt på fickans kant.
- Det är okej att använda G91 (inkrementella) eller G90 (absoluta) drag i underprogrammet.
- Det finns inget slutpass på Z-djup, det är bara på fickans väggar.
- Om du använder L för att upprepa fickor måste du ha en G91 och en inkrementell positionering i G150-linjen. Se till att du har borrat alla hål i fickan först!
G150-g-koden är ganska smart, men i slutändan gör CAM-programvara fickprogrammen enklare och mindre felbenägna. Behåll G150 för enkla fickor som är lätta att programmera och visualisera.