Industriële fabricage
Industrieel internet der dingen | Industriële materialen | Onderhoud en reparatie van apparatuur | Industriële programmering |
home  MfgRobots >> Industriële fabricage >  >> Manufacturing Equipment >> Industrieel materiaal

Invoersnelheid aanpassen in cirkelvormige bewegingsopdrachten met G-codes

Eerder besprak deze kolom een ​​probleem met betrekking tot de voedingssnelheid die nodig is om cirkelvormige bewegingen te maken wanneer wordt gestreefd naar een constante contoursnelheid - met name met interne bogen of externe bogen wanneer verwijderd materiaal wordt gebalanceerd rond een contour die wordt bewerkt (nafrezen en bijna net- vormen bijvoorbeeld). Het verschil in grootte tussen het hartlijnpad van een frees en het werkoppervlakpad vereist een verhoging van de lineaire bewegingsvoedingssnelheid voor externe cirkelvormige bewegingen en een verlaging voor interne cirkelvormige bewegingen om een ​​constante contoursnelheid te bereiken.

Vorige maand demonstreerde ik een methode om de benodigde aangepaste voeding voor cirkelvormige bewegingen te bepalen. Maar het handmatig uitvoeren van de bijbehorende berekeningen is vervelend, vooral wanneer deze techniek regelmatig wordt gebruikt of voor verschillende werkoppervlakradiusafmetingen. Zolang men freesradiuscompensatie gebruikt en zolang de geprogrammeerde coördinaten het werkoppervlakpad weerspiegelen, kan de operator de radiusgrootte van de frees invoeren in een freesradiuscompensatie-offsetregister.

Bij gebruik van rechtse frezen helpt de toestand van freesradiuscompensatie (G41-gereedschap links, G42-gereedschap rechts) om te bepalen of een gegeven cirkelopdracht een interne of externe radius bewerkt. Elke G02 (met de klok mee) wanneer de frees zich aan de linkerkant van bewerkte oppervlakken (G41) bevindt, is een externe boog. Elke G03 (tegen de klok in) zal een interne boog zijn. Het omgekeerde is waar wanneer de frees zich aan de rechterkant van bewerkte oppervlakken bevindt (G42). Met FANUC Custom Macro heeft een programma toegang tot de freesradiuswaarde vanuit het offsetregister en toegang tot de huidige status van freesradiuscompensatie (G41 of G42).

Ik heb twee door de gebruiker gedefinieerde G-code aangepaste macro's gemaakt die cirkelvormige bewegingen maken met de aangepaste voedingssnelheid, met de naam G102 (voor met de klok mee) en G103 (voor tegen de klok in). Ik heb ze op dezelfde manier geprogrammeerd als G02 en G03 (hoewel ze niet modaal zullen zijn). Elk vergelijkt de straal van het werkoppervlak (gespecificeerd door het R-woord in de opdracht G102 of G103) met de straal van het middenlijnpad van de frees (berekend met behulp van de freesstraal uit het offsetregister en de straal van het werkoppervlak). Ze berekenen dan de gewijzigde voedingssnelheid op basis van de eerder getoonde methode en maken het circulaire commando met behulp van G02 en G03 met de gewijzigde voedingssnelheid.

Wat zijn de door de gebruiker gedefinieerde G-code-programma's?

Dit zijn de twee door de gebruiker gedefinieerde G-code-programma's:

  • O9010 (G102, boogprogramma met de klok mee)
  • #1=#4109 (huidig ​​F-woord behouden)
  • IF[#9NE#0]THEN#1=#9 (Test of nieuwe invoersnelheid)
  • IF[#9EQ#0]THEN #9=#1 (Als er geen nieuwe invoersnelheid is, behoudt u de huidige invoersnelheid)
  • #2=[#_OFSDG[#4107]] (Toegangsverschuivingswaarde)
  • IF[#4007EQ41]GOTO5 (G41-conditie, externe boog)
  • IF[#4007EQ42]GOTO10 (G42-toestand, interne boog)
  • #3000=100 (CRC COMP MOET WORDEN GEBRUIKT)
  • N5 (extern)
  • #3=#9*[#18+#2]/#18 (Externe invoersnelheid)
  • GOTO75
  • N10 (intern)
  • #3=#9*[#18-#2]/#18 (Interne invoersnelheid)
  • N75G02X#24Y#25R#18F#3
  • F#1
  • M99
  • O9011 (G103, boogprogramma tegen de klok in)
  • #1=#4109 (huidig ​​F-woord behouden)
  • IF[#9NE#0]THEN#1=#9
  • IF[#9EQ#0]THEN #9=#1
  • #2=[#_OFSDG[#4107]]
  • IF[#4007EQ41]GOTO5
  • IF[#4007EQ42]GOTO10
  • #3000=100 (CRC COMP MOET WORDEN GEBRUIKT)
  • N5 (interne boog)
  • #3=#9*[#18-#2]/#18 (Externe invoersnelheid)
  • GOTO75
  • N10 (Externe boog)
  • #3=#9*[#2+#18]/#18 (Interne invoersnelheid)
  • N75G03X#24Y#25R#18F#3
  • F#1
  • M99

Om deze programma's te laten werken als door de gebruiker gedefinieerde G-codes, wijzigt u twee FANUC-parameters (bij de huidige FANUC CNC's zijn dit parameters 6051 en 6052 voor ons voorbeeld). Nadat parameter 6051 is ingesteld op een waarde van 102 en 6052 op een waarde van 103, voert de CNC programma O9010 uit wanneer hij G102 ziet en programmeert hij O9011 wanneer hij G103 ziet.

Hier is een voorbeeldprogramma dat kan worden gebruikt voor testdoeleinden. Het is ook een aangepast macroprogramma, dus de gerelateerde variabelen kunnen gemakkelijk worden gewijzigd. Voordat dit programma wordt uitgevoerd, moet men ook de waarde in de geometrieoffset voor freesradiuscompensatie (D-register voor offset 1 voor dit voorbeeld) instellen op de radius van de frees.

Trouwens, als de offset registerwaarde van de freesradiuscompensatie is ingesteld op nul, zal de machine het werkoppervlakpad gebruiken. De cyclustijd komt dan bijna hetzelfde uit als wanneer een waarde voor de freesradius wordt ingevoerd in de offset. De enige tijdsafstand die gerelateerd is aan de lengte van de beweging is tijdens het instelcommando voor freesradiuscompensatie. Dit bevestigt dat constante contoursnelheid werkt zoals het hoort.

  • O0041
  • (G41 / G102, Externe bogen)
  • #100=0,25 (hoekstraal)
  • #101=10.0 (invoersnelheid)
  • #102=1,5 (X lengte)
  • #103=1,5 (Y-lengte)
  • T01M06
  • G40G00X-1.5Y-.5
  • G43H01Z-0.5
  • G01G41D01X0F10.0
  • G01Y[#103-#100]F#101
  • G102X#100Y#103R#100
  • G01X[#102-#100]
  • G102X#102Y[#103-#100]R#100
  • G01Y#100
  • G102X[#102-#100]Y0R#100
  • G01X#100
  • G102X0Y#100R#100
  • G00G40X-1.5Y-0.8
  • M30

Merk op dat G102 net als G02 is geprogrammeerd:met X, Y en R. Lokale variabelen #24 (X), #25 (Y) en #18 (R) worden overeenkomstig ingesteld. Het roept programma O9010 op, dat:

  1. Stel lokale variabele #1 in op de huidige actieve voedingssnelheid (zodat deze kan worden gereset na de cirkelvormige beweging)
  2. Als een voedingssnelheid is gespecificeerd in het G102-commando, stel dan #1 dienovereenkomstig in
  3. Zorg ervoor dat de voedingssnelheid (indien opgenomen in G102) behouden blijft
  4. Sla de huidige offsetwaarde voor freesradiuscompensatie op in lokale variabele #2
  5. Uitvoeren vanaf regel N5 als een G41-voorwaarde bestaat (externe boog)
  6. Uitvoeren vanaf regel N10 als er een G42-voorwaarde bestaat (interne boog)
  7. Genereer een alarm als freesradiuscompensatie momenteel niet is ingesteld
  8. Bereken de voedingssnelheid van de externe boog indien van toepassing
  9. Bereken de voedingssnelheid van de interne boog indien van toepassing
  10. Maak het cirkelvormige commando met G02
  11. Stel de voedingssnelheid terug naar wat deze was vóór de cirkelvormige beweging

Bijna identieke technieken worden gebruikt met programma O9011.


Industrieel materiaal

  1. Raspberry Pi GPIO met PIR-bewegingssensor:beste tutorial
  2. Interfacing HC-SR501 PIR-bewegingssensor met Raspberry Pi
  3. Ineos Styrolution werkt samen met Polystyvert om circulaire economie voor PS te bevorderen
  4. TPE met gerecyclede inhoud voor auto-interieurs
  5. Hartslag detecteren met een fotoresistor
  6. SIM800L GPRS-module met Arduino AT-opdrachten
  7. Android-bewegingsdetectiecamera met Arduino/MCU
  8. Pizza-verkoopmerk Basil Street werkt samen met Arcus Servo Motion
  9. Draaibank heeft een hoge voedingssnelheid voor zwaar snijden
  10. Lineaire bewegingstechnologie
  11. Aanvoersnelheid versus snijsnelheid:begrijp het verschil