Visa alla artiklar

Användning av makroprogrammering för repetitiva borrcykler

TRASA3 Blog

G-code Publicerad: 2026-09-22 Författare: trasa3 6 visningar
Användning av makroprogrammering för repetitiva borrcykler

Upprepade hålmönster kräver sällan ett långt NC-program. Om koordinaterna bildar en enkel rad räcker ofta en standardcykel G81, inkrementell positionering med G91 och ett repetitionsantal L. Men vid borrning i ett rektangulärt rutnät, flera storlekar av detaljen eller ett mönster med ofta varierande steg blir det ett annat problem: att manuellt redigera varje koordinat blir långsamt och riskfyllt. Makroprogrammering låter dig hålla den återkommande logiken i ett underprogram och skicka dimensioner och antal hål som parametrar.

Exemplet nedan är anpassat för en Haas-fräs med makrooption. Variabelsyntax, loopar och underprogramanrop skiljer sig mellan CNC-styrsystem och programvarukonfigurationer. Kontrollera alltid manualen för just din styrning, verifiera programmet grafiskt och kör första gången ovanför arbetsstycket.

När en standardcykel räcker

G81 tar redan bort det mesta av den upprepade koden vid borrning. När cykeln är aktiv borrar styrsystemet vid varje ny X/Y-position tills G80 avbryter cykeln. I Haas-dokumentationen visas hur en inkrementell förflyttning i X och ett L-värde kan skapa en rad jämnt fördelade hål:

G90 G54 X10. Y20.
G43 H01 Z50.
G99 G81 Z-12. R2. F120.
G91 X25. L4
G80
G90

Detta är en bra lösning för en rak rad. Det första hålet borras där G81 aktiveras, medan raden med G91 X25. L4 lägger till fyra ytterligare positioner. Om man tappar bort den första borrningen kan det bli ett extra hål eller att mönstret förskjuts.

Andra standardcykler täcker olika borrningsoperationer. G82 lägger till uppehåll i botten, G83 används för borrning med hack, och G98 eller G99 styr återgångsnivån. Den valda cykeln måste passa verktyget, djupet, materialet och spåntransporten. Makrot hanterar koordinater och repetition; det ersätter inte rätt borrprocess.

Vad ett parametriserat makro tillför

Ett rektangulärt rutnät kan definieras med nio värden: koordinater för första hålet, steg i båda axlarna, antal kolumner och rader, borrdjup, R-plan och matning. Operatören ändrar ett anrop, medan inbäddade loopar räknar ut varje hålposition.

I följande anrop definierar X och Y rutnätets startpunkt, I och J steget, och A och B antalet kolumner respektive rader:

G65 P9010 X10. Y20. I25. J20. A4. B3. Z-12. R2. F120.

På en Haas-styrning kopplas G65-argumenten till lokala variabler i makroprogrammet. I detta exempel motsvarar X #24, Y #25, I #4, J #5, A #1, B #2, Z #26, R #18 och F #9. Varje G65-anrop ger en ny uppsättning lokala variabler, så samma makro kan köras med olika dimensioner och bearbetningsvärden.

Makro för rektangulärt rutnät

O09010 (DRILL RECTANGULAR PATTERN)

#30 = 0 (ROW INDEX)

WHILE [#30 LT #2] DO1
  #31 = 0 (COLUMN INDEX)

  WHILE [#31 LT #1] DO2
    #32 = [#24 + #31 * #4] (CURRENT X)
    #33 = [#25 + #30 * #5] (CURRENT Y)

    G90 G00 X#32 Y#33
    G81 Z#26 R#18 F#9
    G80

    #31 = #31 + 1
  END2

  #30 = #30 + 1
END1

M99

Yttre loopen räknar rader och den inre kolumner. Varje koordinat beräknas genom att lägga till positionens index multiplicerat med steget till startkoordinaten. Med A4 och B3 borrar makrot tolv hål: fyra i varje av tre rader.

I denna instruktionsversion aktiveras och avbryts G81 vid varje position. Det ger en liten extra exekveringstid, men håller standardcykelns tillstånd begränsat till en operation. I en produktionsversion kan cykeln hållas aktiv över flera positioner, förutsatt att programmeraren noggrant kontrollerar första körningen, modal tillstånd och slutlig G80-avbrytning.

Huvudprogram och säkra tillstånd

Makrot bör inte själv anta verktygsnummer, längdkompensation, spindelhastighet eller arbetsförskjutning. Att behålla dessa värden i huvudprogrammet gör det enklare att granska inställningen.

O01000
G90 G17 G40 G49 G80 G94
G54
T1 M06
S1800 M03
G00 X10. Y20.
G43 H01 Z50.
M08

G65 P9010 X10. Y20. I25. J20. A4. B3. Z-12. R2. F120.

G80
G00 Z50.
M09
M05
G53 G00 Z0.
M30

Programmet ställer in G17-plan, absolut programmering med G90, arbetskoordinatsystem G54 och verktygslängdskompensation G43 H01 innan makrot anropas. Säkra höjder, reträtt i maskinens koordinatsystem och utrustningens startsekvens måste följa maskinens och verkstadens godkända mall.

Kontroller som bör finnas i ett produktionsmakro

Parametriserad kod minskar manuell redigering, men en felaktig parameter kan ändra hela borrmönstret. Ett produktionsmakro bör validera sina indata. Antal rader och kolumner måste vara positiva heltal, R-planet ska ligga på säker sida av arbetsstyckets yta, och beräknade X/Y-positioner måste ligga inom detaljens gränser och maskinens rörelseområde.

  • Kontrollera att bokstäverna för argumenten stämmer överens med lokala variabler i just din styrning.
  • Säkerställ att varje DO-nummer har korrekt motsvarande END i inbäddade loopar.
  • Beräkna sista punkten i förväg: X + (A − 1) × I och Y + (B − 1) × J.
  • Kontrollera Z-tecken, R-planet och returmetod med G98 eller G99.
  • Kör först grafisk simulering, följt av enkel blockkörning med reducerad snabbmatning.
  • Om skruvstycken eller fastspänningsanordningar används, kontrollera både borrpunkter och förflyttningsbanor.

Skydd mot saknade argument är också användbart. På styrsystem där odefinierade lokala variabler har tomt värde kan makrot generera ett larm innan rörelse startar. Rätt syntax för tomvariabelkontroll och larm måste hämtas från CNC-styrsystemets manual.

När makrot verkligen förenklar arbetet

För enstaka detaljer med fem kända hål är en vanlig G81-cykel med koordinatlista ofta lättare att läsa. Makrot är motiverat när mönstret ändras enligt tydliga regler: rektangulära eller cirkulära matriser, flera storlekar av samma detalj, upprepade hål under olika arbetsförskjutningar eller en produktfamilj med gemensam borrprocess.

Ett underhållsbart makro har en tydlig uppgift och ett klart gränssnitt. Varje argument dokumenteras i programkommentarer eller i inställningsblad, och ett giltigt exempel på anrop sparas tillsammans med programmet. Då kan inställaren ändra rutnätsstorlek och bearbetningsvärden utan att redigera formler eller räknare.

Haas tillhandahåller officiell dokumentation för G65-argument och lokala variabler samt för standardcykler för borrning. Använd dessa som utgångspunkt och verifiera mot den programvaruversion som finns i maskinen.

Användning av makroprogrammering för repetitiva borrcykler

Den här artikeln finns tillgänglig på följande språk: