Herhalende boorpatronen vereisen zelden een lang NC-programma. Als de coördinaten een eenvoudige rij vormen, volstaat vaak een G81-cyclus, G91 incrementele positionering en een L-herhalingsaantal. Bij een rechthoekig raster, een familie van onderdelen of een patroon met vaak wisselende stap ontstaat een ander probleem: elke coördinaat handmatig aanpassen is traag en foutgevoelig. Macroprogrammering houdt de herhaalde logica in één subprogramma en geeft de afmetingen en het aantal gaten door als parameters.
Het onderstaande voorbeeld is bedoeld voor een Haas-freesbesturing met macro-optie. Variabele toewijzingen, lus-syntaxis en subprogramma-aanroepen verschillen per CNC-besturing en softwareconfiguratie. Controleer altijd de handleiding van de gebruikte besturing, verifieer het programma grafisch en voer de eerste proefrun boven het werkstuk uit.
Wanneer een standaardcyclus volstaat
G81 verwijdert al het meeste herhaalde code bij een boorbewerking. Zodra de cyclus actief is, boort de besturing op elke nieuwe X/Y-positie totdat G80 de cyclus annuleert. De Haas-documentatie toont hoe een incrementele X-beweging en een L-aantal een rij gelijkmatig verdeelde gaten maken:
G90 G54 X10. Y20.
G43 H01 Z50.
G99 G81 Z-12. R2. F120.
G91 X25. L4
G80
G90Dit is een goede oplossing voor één rechte rij. Het eerste gat wordt gemaakt waar G81 wordt geactiveerd, terwijl G91 X25. L4 vier extra posities toevoegt. Het uit het oog verliezen van die eerste cyclusuitvoering kan een extra gat veroorzaken of het patroon verschuiven.
Andere standaardcycli dekken verschillende boorbewerkingen. G82 voegt een pauze toe op de bodem, G83 wordt gebruikt voor peck-boren, en G98 of G99 regelt het terugkeerniveau. De gekozen cyclus moet passen bij het gereedschap, de diepte, het materiaal en de spanenafvoer. Een macro beheert coördinaten en herhaling; het vervangt niet het juiste boorproces.
Wat een parameter-macro toevoegt
Een rechthoekig raster kan worden gedefinieerd met negen waarden: de coördinaten van het eerste gat, de stap langs beide assen, het aantal kolommen en rijen, de boordiepte, het R-vlak en de voedingssnelheid. De operator wijzigt één aanroep, terwijl geneste lussen elke gatpositie berekenen.
In de volgende aanroep definiëren X en Y de oorsprong van het raster, I en J de stap, en A en B het aantal kolommen en rijen:
G65 P9010 X10. Y20. I25. J20. A4. B3. Z-12. R2. F120.Op een Haas-besturing worden G65-argumenten toegewezen aan lokale variabelen in de macro-subroutine. In dit voorbeeld correspondeert X met #24, Y met #25, I met #4, J met #5, A met #1, B met #2, Z met #26, R met #18 en F met #9. Elke G65-aanroep levert een nieuwe set lokale variabelen, zodat dezelfde macro met verschillende afmetingen en proceswaarden kan draaien.
Macro voor een rechthoekig raster
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
M99De buitenste lus telt de rijen, de binnenste lus de kolommen. Elke coördinaat wordt berekend door de positie-index vermenigvuldigd met de stap bij de startcoördinaat op te tellen. Met A4 en B3 boort de macro twaalf gaten: vier gaten in elk van de drie rijen.
In deze instructieve versie wordt G81 bij elke positie geactiveerd en afgebroken. Dit voegt een kleine overhead toe, maar beperkt de toestand van de standaardcyclus tot één bewerking. Een productiemacro kan de cyclus actief houden over posities, mits de programmeur de eerste uitvoering, modale toestand en de uiteindelijke G80-annulering zorgvuldig beheert.
Hoofdprogramma en veilige toestanden
De macro mag niet zelf het gereedschapsnummer, lengtecompensatie, toerental of werkverschuiving bepalen. Die waarden in het hoofdprogramma houden maakt het instellen van de bewerking overzichtelijker en beter controleerbaar.
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.
M30Dit programma stelt het G17-vlak, G90 absolute positionering, G54 werkcoördinatensysteem en G43 H01 gereedschapslengtecompensatie in voordat de macro wordt aangeroepen. Veilige hoogtes, terugtrek in machinecoördinaten en de opstartvolgorde van apparatuur moeten voldoen aan de machine-eisen en het bedrijfsstandaardprogramma.
Controles die in een productiemacro horen
Parameter-code vermindert handmatig aanpassen, maar één fout argument kan het hele boorpatroon veranderen. Een productiemacro moet zijn invoer valideren. Rij- en kolomaantallen moeten positieve gehele getallen zijn, het R-vlak moet aan de veilige zijde van het werkstukoppervlak liggen, en de berekende X/Y-posities moeten binnen de werkstukgrenzen en machinebeweging blijven.
- Controleer de mapping van argumenten naar variabelen voor de gebruikte besturing.
- Zorg dat elk DO-nummer het juiste bijbehorende END heeft in geneste lussen.
- Bereken het eindpunt vooraf: X + (A − 1) × I en Y + (B − 1) × J.
- Controleer het teken van Z, de positie van het R-vlak en de G98- of G99-terugkeermodus.
- Voer eerst een grafische simulatie uit, gevolgd door een enkele stap met verlaagde snelheidsoverschrijding.
- Controleer bij aanwezige bankschroeven of klemmen niet alleen de boorpunten maar ook de overgangsbewegingen.
Bescherming tegen ontbrekende argumenten is ook nuttig. Op besturingen waar een niet-gespecificeerde lokale variabele een lege waarde heeft, kan de macro een alarm geven voordat beweging begint. De juiste syntaxis voor lege-variabelecontrole en alarm moet uit de handleiding van de CNC-besturing komen.
Wanneer de macro echt werk bespaart
Voor een enkel onderdeel met vijf bekende gaten is een gewone G81-cyclus met een lijst coördinaten vaak leesbaarder. Een macro is nuttig als het patroon verandert volgens een vaste regel: rechthoekige of cirkelvormige patronen, meerdere maten van hetzelfde onderdeel, herhaalde gaten onder verschillende werkverschuivingen of een productfamilie met één boorproces.
Een onderhoudbare macro heeft één duidelijke taak en een helder interface. Documenteer elk argument in commentaarregels of een instelblad en bewaar een geldig voorbeeld van een aanroep bij het programma. De insteller kan dan de rasterafmetingen en bewerkingswaarden wijzigen zonder lussen of coördinaatformules aan te passen.
Haas biedt officiële documentatie over G65-argumentmapping en lokale variabelen en over standaard boorcycli. Gebruik deze als uitgangspunt en controleer het gedrag met de softwareversie op de machine.