Apr 15, 2023 Laat een bericht achter

Laten we het hebben over CNC-macroprogramma's

 

Simpel gezegd, een macro is om formules te gebruiken om onderdelen te verwerken. Bijvoorbeeld, ellips, als er geen macro is, moeten we de punten op de curve punt voor punt berekenen en deze vervolgens langzaam benaderen met een rechte lijn. Als het een werkstuk is met hoge gladheidseisen, dan moeten we veel punten berekenen, maar na het toepassen van de macro voeren we de ellipsformule in het systeem in en dan geven we de Z-coördinaat en voegen elke keer een bedrag toe, dan de macro berekent automatisch de X-coördinaat en voert het snijden uit. In feite is de belangrijkste functie van de macro in het programma berekening.

afbeelding

01

Over macroprogramma's

Wat is een macroprogramma

Bij het programmeren slaan we een reeks instructies die een bepaalde functie kunnen voltooien in het geheugen op als een subroutine, en roepen ze op met een algemene instructie. Wanneer we het gebruiken, hoeven we alleen deze algemene instructie te geven om de opgeslagen functie uit te voeren. Deze reeks instructies wordt de body van het gebruikersmacroprogramma genoemd, of kortweg macroprogramma.

Deze algemene opdracht wordt de gebruikersmacro-oproepopdracht genoemd. Bij het programmeren hoeven programmeurs alleen macro-instructies te onthouden, maar geen macroprogramma's.

Wanneer wordt macroprogrammering gebruikt?

1) Handmatig geprogrammeerde verwerkingsformulecurve (eenvoudige berekening, snelle invoer)

2) Regelmatig snijpad (als snijmodule)

3) Controle tussen programma's (programmaplanning)

4) Gereedschapsbeheer (gereedschapsslijtage)

5) Automatische meting (sonde in de machine)

Het verschil tussen macroprogramma en normaal programma

1) In de hoofdtekst van het macroprogramma kunnen variabelen worden gebruikt, waarden aan variabelen worden toegewezen, berekeningen tussen variabelen kunnen worden uitgevoerd en programma's kunnen worden gesprongen.

2) In gewone programma's kunnen alleen constanten worden gespecificeerd en kunnen bewerkingen tussen constanten niet worden uitgevoerd. Programma's kunnen alleen sequentieel worden uitgevoerd en er kan niet over worden gesprongen, dus de functies staan ​​vast en kunnen niet worden gewijzigd.

3) De macrofunctie is een speciale functie voor de gebruiker om de prestaties van de CNC-bewerkingsmachine te verbeteren, en het bekwame gebruik van het macroprogramma bij de verwerking van vergelijkbare werkstukken zal met de helft van de inspanning twee keer zoveel resultaat opleveren.

02

Variabelen en formaten van macroprogramma's

Kenmerken van macroprogramma's

Het macroprogramma kan de variabele gebruiken en de variabele kan worden gebruikt om overeenkomstige bewerkingen uit te voeren; de actuele variabelewaarde kan aan de variabele worden toegewezen door de instructie van het macroprogramma.

Drie soorten variabelen

De variabele weergavevorm van het CNC-systeem is "#", gevolgd door 1 tot 4 cijfers, en er zijn drie soorten variabelen:

(1) Lokale variabelen: #1~#33 zijn variabelen die lokaal in het macroprogramma worden gebruikt en die worden gebruikt voor de overdracht van onafhankelijke variabelen.


(2) Gemeenschappelijke variabele: de gebruiker kan deze vrij gebruiken en is gemeenschappelijk voor elke subroutine en elk macroprogramma dat door het hoofdprogramma wordt aangeroepen. #100~#149, na het uitschakelen van de stroom, worden alle variabele waarden gewist, terwijl #500~#509, na het uitschakelen van de stroom, de variabele waarden kunnen worden opgeslagen.


(3) Systeemvariabele: het wordt gedefinieerd door gevolgd door 4 cijfers, het kan alleen-lezen of lezen/schrijven-informatie verkrijgen die is opgeslagen in de machinegereedschapsprocessor of het NC-geheugen, inclusief uitwisselingsparameters met betrekking tot de machinegereedschapsprocessor, statusverwerving van machinegereedschappen parameters, systeeminformatie zoals verwerkingsparameters.

Eenvoudig aanroepformaat van macroprogramma

De eenvoudige oproep van het macroprogramma betekent dat in het hoofdprogramma het macroprogramma door een enkel blok kan worden opgeroepen.

Aanroep formaat:

G65 P (nummer macroprogramma) L (aantal herhalingen) (variabele toewijzing).

Onder hen: G65 - opdracht voor het oproepen van macroprogramma's;

P (nummer macroprogramma) - de code van het op te roepen macroprogramma;

L (aantal herhalingen) - het aantal herhaalde uitvoeringen van het macroprogramma, wanneer het aantal herhalingen 1 is, kan dit worden weggelaten;

(Variabele toewijzing) - Wijs waarden toe aan variabelen die in het macroprogramma worden gebruikt.

Hetzelfde tussen een macroprogramma en een subroutine is dat het ene macroprogramma maximaal 4 keer kan worden aangeroepen door een ander macroprogramma.

Schrijfformaat voor macroprogramma's

Het schrijfformaat van een macroprogramma is hetzelfde als dat van een subroutine. Het formaat is:

0-(0001-8999 is het nummer van het macroprogramma)

N10-opdracht

N-M99

In de inhoud van het bovenstaande macroprogramma kunnen naast de veelgebruikte programmeerinstructies ook variabelen, rekenkundige bewerkingsinstructies en andere besturingsinstructies worden gebruikt. De variabele waarde wordt toegewezen in de instructie voor het oproepen van het macroprogramma.

03

FANUC-systeemmacroprogrammatoepassing

(1) Macroprogramma groefsteken

afbeelding

1) WHILE-verklaring

G00 X52 Z2;

#2=-14;

Het is het startpunt van het gereedschap in de z-richting (omdat de gereedschapsbreedte 4 mm is, is het startpunt ingesteld op Z-14)

WHILE [#2 GE -30] DO2;

Het is een beperking in de z-richting. Als z gelijk is aan -30, zal de z-richting niet meer bewegen

G00 Z〔#2〕;

De huidige positie in de z-richting

#2=#2-2;

De bewegende stap in de z-richting, waarbij elke keer 2 mm wordt verplaatst

#1=52;

is het startpunt van het mes in de x-richting

TERWIJL [#1 GE 20] DO1;

Beperkingen in de X-richting, wanneer de diameter gelijk is aan 20, wordt niet langer gesneden

G01 X〔#1〕F0.2;

Snijdiepte in x-richting

G00 X〔#1 plus 1〕;

Relatieve hoeveelheid terugtrekking in x-richting

#1=#1-1;

Stapafstand in x-richting (elke keer 1 mm afsnijden)

EINDE1;

G00 X52;

EIND2;

Compleet programma:

O1234;

G40 G97 G99;

T0101;

S1000 M3;

G00 X52 Z2;

#2=-14;

WHILE〔#2GE-30〕DO2; EINDE1;

G00 Z〔#2〕;

#2=#2-2;

#1=52

TERWIJL〔#1GE20〕DO1;

G01X〔#1〕F0.2;

G00X〔#1 plus 1〕;

#1=#1-1;

G00 X52;

EIND2;

G00 X150 Z150;

M30;

2) IF-verklaring

G00 X52 Z-2;

#1=-14;

Het is het startpunt in de z-richting van het gereedschap (de breedte van het gereedschap is 4 mm)

N2 #1=#1-2;

is de bewegingsstap in de z-richting

#2=52;

is het startpunt van het gereedschap in de x-richting

N1#2=#2-1;

is de stapafstand in de x-richting (snijdiepte telkens 1 mm)

G01 X〔#2〕F0.2;

Huidige positie in X-richting

G00 X〔#2 plus 1〕;

Relatieve hoeveelheid terugtrekking in X-richting

ALS [#2 GE 21] GOTO1;

Beperkingen in de x-richting (wanneer de waarde van x wordt teruggebracht tot 20, wordt de volgende procedure uitgevoerd en wordt er niet geretourneerd)

G00 X52;

X trekt terug naar positie 52

G00 Z〔#1〕;

Huidige positie in Z-richting

IF [#1 GE -30] GOTO2;

Beperkingen in de Z-richting, wanneer z gelijk is aan -30, zal de z-richting niet bewegen

Compleet programma:

O1234;

G40G97G99;

T0101;

S1000M3;

G00 X52 Z-2;

#1=-14;

N2 #1=#1-2;

#2=52;

N1#2=#2-1;

G01 X〔#2〕F0.2;

G00 X〔#2 plus 1〕;

IF〔#2GE21〕GOTO1;

G00X52;

G00Z〔#1〕;

ALS[#1GE-30]GOTO2;

G00X200;

Z200;

M5;

M30;

(2) Ellips-programmering

1) Het standaardformaat van de ellips WHILE-instructie:

#1=a;

a: Het startpunt van het gereedschap ligt in positieve richting a mm ten opzichte van de Z-as van de ellips

TERWIJL [#1 GE b] DO1;

b: Het eindpunt van de ellipsverwerking is in de negatieve richting b mm ten opzichte van de as Z van de ellips (als een volledige halve ellips wordt verwerkt, dan zijn a en b twee waarden met dezelfde waarde en verschillende tekens)

#2= c*SQRT[1-#1*#1/d*d];

c: de halve korte as van de ellips

d: halve hoofdas van de ellips (bereken #2 volgens de ellipsformule, de halve hoofdas is d, de halve kleine as is c, #2 vertegenwoordigt de waarde van X, #1 is de waarde van Z , en SQRT betekent vierkantswortel)

G01 X〔±2*#2 plus e〕Z〔#1±f〕;

e: De offset (diameterwaarde) van de X-as van de ellips ten opzichte van het werkstukcoördinatensysteem

f: De offset van de Z-as van de ellips ten opzichte van het werkstukcoördinatensysteem

#1=#1-1; stapafstand (elke keer 1 mm verplaatsen)

EINDE1;

Opmerking: bij het draaien van een concave ellips, wordt de "±" tussen haakjes na X genomen als "-"; bij het draaien van een convexe ellips, wordt de "±" tussen haakjes na X genomen als "plus".

Wanneer de X-as van de ellips naar de positieve richting verschuift, krijgt de "±" tussen haakjes na Z een "plus"; wanneer de X-as van de ellips naar de negatieve richting verschuift, neemt de "±" tussen haakjes na Z een "-"

2) Het standaardformaat van de elliptische IF-verklaring

#1=a;

a: Het startpunt van het gereedschap ligt in positieve richting a mm ten opzichte van de Z-as van de ellips

N1#2=b*SQRT〔1-#1*#1/c*c〕;

b: halve korte as van de ellips c: halve lange as van de ellips (volgens de ellipsformule X/c plus Y/b=1, SQRT betekent vierkantswortel)

G01X〔±2*#2 plus d〕Z〔#1±e〕F0.2; d: de offset (diameterwaarde) van de X-as van de ellips ten opzichte van het coördinatennulpunt e: de Z-as van de ellips ten opzichte van het nulvlak Offset

#1=#1-1;

Stapafstand (elke keer 1 mm verplaatsen)

ALS [#1 GE -f] GOTO1

f: Beëindiging van ellipsverwerking

 

Opmerking: bij het draaien van een concave ellips, wordt de "±" tussen haakjes na X genomen als "-"; bij het draaien van een convexe ellips, wordt de "±" tussen haakjes na X genomen als "plus". Wanneer de X-as van de ellips afwijkt naar de positieve richting, krijgt de "±" tussen haakjes na Z een "plus"; wanneer de X-as van de ellips afwijkt in de negatieve richting, krijgt de "±" tussen haakjes na Z een "-".

afbeelding

WHILE-verklaring

#1=20;

WHILE〔#1GE-20〕DO1;

#2=10*SQRT〔1-#1*#1/400〕;

G01X〔-2*#2 plus 50〕Z〔#1-25〕;

#1=#1-1;

EINDE1;

ALS verklaring

#1=20;

N1#2=10}*SQRT〔1-#1*#1/400〕;

G01X〔-2*#2 plus 50〕Z〔#1-25〕F0.2;

#1=#1-1;

IF[#1GE-20]GOTO1;

compleet programma

O1234;

G40G97G99;

T0101;

S1000 M3;

G00 X50 Z2;

G73 U5 R5;

G73 P10 Q20 U0.5 F0.2;

N10 G0 G42 Z-5;

#1=20;

TERWIJL〔#1GE-20〕DO1;

#2=10*SQRT〔1-#1*#1/400〕;

G01X〔-2*#2 plus 50〕Z〔#1-25〕F0.2;

#1=#1-1;

EINDE1;

G00 X50;

N20 G00 G40 Z2;

G70 P10 Q20;

G00 X200;

Z200;

M5;

M30;

Het volledige formaat van de IF-opdracht wordt weggelaten (hetzelfde geldt voor de IF-opdracht, zolang de cyclus wordt toegevoegd). In het FANUC{0}}i-systeem kan het macroprogramma alleen worden toegevoegd in G73.

(3) Verwerking van parabool

1) Het standaardformaat van de parabolische WHILE-instructie:

#1=a;

a: Het startpunt van het gereedschap is een mm in de richting van de parabolische as Z

TERWIJL [#1 GE -b] DO1;

b: is de verwerkingslengte van de ellips in de z-richting

#2=SQRT〔-#1*5/3〕;

(Volgens de parabolische formule Z=-3/5*X*X, zoek de waarde van X, wat #2 is, waarbij SQRT de vierkantswortel betekent)

G01 X〔±2*#2 plus c〕Z〔#1〕;

c: is de offset (diameterwaarde) van de X-as van de parabool ten opzichte van het werkstukcoördinatensysteem, "±"

Bij het nemen van "plus" is het convex en bij het nemen van "-" is het concaaf

#1=#1-1; Stapafstand (elke keer 1 mm verplaatsen)

EINDE1;

2) Het standaardformaat van de parabolische IF-verklaring

#1=a;

a: Het startpunt van het gereedschap is een mm in de richting van de parabolische as Z

N1 #2=SQRT〔-#1*5/3〕;

(Volgens de parabolische formule Z=-3/5*X*X, zoek de waarde van X, wat #2 is, waarbij SQRT de vierkantswortel betekent)

G01 X〔±2*#2 plus b〕Z〔#1〕;

b: Het is de offset (diameterwaarde) van de X-richtingsas van de parabool ten opzichte van het coördinatennulpunt. Wanneer "±" "plus" krijgt, is het convex, en wanneer "-" wordt genomen, is het concaaf

#1=#1-1;

(stapafstand in Z-richting, elke beweging is 1 mm)

IF〔#1 GE -c〕GOTO1; c: de verwerkingslengte van de ellips in z-richting

Parabolische IF

een andere vorm van zin

#1=a;

N1 #2=SQRT〔( plus )#1*5/3〕;

Het "plus"-teken kan worden weggelaten

G01 X〔2*#2 plus b〕Z〔-#1〕;

#1=#1 plus 1;

ALS [#1 LE c] GOTO1;

Ervan uitgaande dat de parabool in de positieve richting van Z staat, gebruik dan Z〔-#1〕; om de parabool symmetrisch te maken ten opzichte van de negatieve richting

afbeelding

WHILE-verklaring

#1=0;

WHILE [#1 GE -15] DO1;

#2=SQRT〔-#1*5/3〕;

G01 X〔2*#2 plus 30〕Z〔#1〕;

#1=#1-1;

EINDE1;

ALS verklaring

#1=0;

N1 #2=SQRT〔-#1*5/3〕;

G01X〔2*#2 plus 30〕Z〔#1〕;

#1=#1-1;

IF [#1 GE -15] GOTO1;

compleet programma

O1234;

G40 G97 G99;

T0101;

S1000 M3;

G00 X42 Z1;

G73 U5 R5;

G73 P10 Q20 U0.5 F0.2;

N10 G00 G42 Z0;

#1=0;

WHILE [#1 GE -15] DO1;

#2=SQRT〔-#1*5/3〕;

G01 X〔2*#2 plus 30〕Z〔#1〕;

#1=#1-1;

EINDE1;

G00 X42;

N20 G00 G40 Z2;

G70 P10 Q20;

G00 X200;

Z200;

M5;

M30;

(4) Het verschil tussen de WHILE-verklaring en de IF-verklaring

1) De richtingen van de twee verklaringen zijn verschillend

De WHILE-instructie retourneert achteruit

Voorbeeld: WHILE〔#1 GE 20〕DO1;

G01 X〔#1〕F0.2;

Ervan uitgaande dat wanneer de werktuigmachine deze zin #1=20 uitvoert, deze zal doorgaan met uitvoeren. Na het uitvoeren van #1=#1-1, wordt de waarde van #1 19, wat niet langer voldoet aan de beperkingsvoorwaarden, dus het zal niet terugkeren. (Gesneden tot 20 in de X-richting)

G00 X〔#1 plus 1);

#1=#1-1;

EINDE1;

2) De IF-instructie keert vooruit terug

Voorbeeld: N1 #2=#2-1;

G01X〔#2〕F0.2; Ervan uitgaande dat #2=20 wanneer de werktuigmachine deze zin uitvoert, deze blijft uitvoeren tot IF〔#2 GE 20〕GOTO1; als nog steeds aan de voorwaarde wordt voldaan, blijft het terugkeren naar N1# 2=#2-1; en de huidige X-waarde wordt 19, wat niet langer voldoet aan de beperkingsvoorwaarden, en voert dan een andere uit

G01X〔#2〕F0.2; Voer ten slotte het volgende programma uit (X-richting is teruggebracht tot 19)

G00X〔#2 plus 1);

ALS [#2 GE 20] GOTO1;

3) Zoals te zien is in het bovenstaande groefprogramma, is het aantal woorden in de IF-opdracht veel minder dan dat van de WHILE-opdracht.

4) Lees tijdens de verwerking een zin minder voor de WHILE-instructie en één zin meer voor de IF-instructie vanwege de verschillende retourrichtingen.

04

SIEMENS systeem (draaibank) macro programma applicatie

Opmerking: het macroprogramma is geprogrammeerd met variabelen en het variabelenummer van het Siemens-systeem wordt weergegeven door R.

Bijvoorbeeld geschreven in de gebruikelijke programmeermethode: G01X-10

Het macroprogramma kan worden uitgedrukt als:

R1=-10

G01 X=R1

Voorwaardelijke overdracht:

ALS GOTOB: achteruit springen

ALS GOTOF: spring vooruit

geschreven in gemeenschappelijke programmering

GO1X100

Variabelen kunnen worden uitgedrukt als:

R1=0

AA: R1=R1 plus 1

G01X=R1

ALS R1<100 GOTOB AA

R1 is een onafhankelijke variabele, de beginwaarde is 0, R1=R1 plus 1 betekent dat de incrementele waarde van de onafhankelijke variabele 1 is, wanneer het programma elke keer door deze regel gaat, wordt de waarde van R1 neemt toe met 1, R1<100 is a conditional expression, IF R1<100 GOTOB AA This line means that if the argument R1<100, the program jumps backward to the mark: AA

Als R1 groter is dan of gelijk is aan 100, gaat het programma naar beneden.

Macroprogramma's kunnen zowel in de G90- als in de G91-modus worden gebruikt, maar hebben bijvoorbeeld een andere betekenis;

R1=0, G90R1=R1 plus 1, G1X=R1, de waarde van X na de tweede passage van dit programma is 2.

R1=0, G91R1=R1 plus 1, G1X=R1, de waarde van X na de tweede passage van het programma is 3. Uitleg: De waarde van R1 is 1 na de eerste pass van het programma, en de waarde van R1 is de tweede pass. Het is 2, maar in de G91-modus is het gebaseerd op de vorige.

(1) Groeven

afbeelding

T1

TC

T1D1

G0G40X100Z100

M03S1000

G0X54Z2

Bereik snel het startpunt

Z-10

R1=3

Definieer de bladbreedte als 3 mm

R2=-10-R1-0.2

Het startpunt van het gereedschap is -10 en de linkerkant van het mes wordt gebruikt bij het instellen van het gereedschap;

Gereedschapsinstelling, dus de breedte van het blad moet worden afgetrokken, 0.2 is de nabewerkingstoeslag

G1Z=R2F0.1

Het gereedschap bereikt het startpunt van de Z-as

AA:R2=R2-2.5

R3=50

De X-as van de groef bereikt het punt

BB: R3=R3-2

Definieer de snijdiepte van elk mes als 2 mm

G1X=R3

X=R3 plus 1

0.5 mm spaanverwijdering aan één kant elke 2 mm snedediepte

IF R3>30 plus 0,4 GOTOB BB

Define the groove depth as 10mm, if R3>30mm springt het programma achteruit naar de markering BB en 0,4 is de nabewerkingstoeslag

G0X50

Het gereedschap bereikt het startpunt van de X-as

G1Z=R2

IF R2>{{0}} plus 0,2 GOTOB AA

Definieer de groefbreedte als 20mm en 0,2 als nabewerkingstoeslag

G0X50

G01Z-13

afwerking

X30

Z-16

G0X50

Z-30

G01X30

Z-16

G0X50

Terugtrekken

G0X100

Z100

M05

M30

(2) Ellips

1) Basisformaat

R1=0

Definieer de variabele R1 met een beginwaarde van 0

AA:R2=b×WORTEL(1-R1×R1/a×a)

Volgens de ellipsvergelijking is a de halve lange as van de ellips, b is de halve kleine as van de ellips en SQRT is het vierkantswortelsymbool.

G1X=±2×R2 plus XZ=R1-Z

Stel de positie en vorm van de ellips in, plus 2 is bol, -2 is hol, X, Z zijn de afstanden tussen de as van het werkstuk en de as van de ellips (diametersysteem).

R1=R1-1

Stel de verwerkingsstap in

IF R1>=n ​​GOTOB AA

Als de variabele R1

2) Programmeervoorbeeld:

afbeelding

T1D1

G0G40X100Z100

M3S1000

G0X52Z2

Z-20

CYCLUS95 ( )

G42S1500

OO:

R1=20

AA:R2=5×WORTEL(1-R1×R1/400)

G1X=-2×R2 plus 50 Z=R1-40

R1=R1-2

IF R1>=-20 GOTOB AA

PP% 3aX42

G0G40X100Z100

M05

M09

M30

(3) Parabool

1) Basisformaat:

R1=0

Stel de beginwaarde van variabele R1 in op 0

AA: R2=WORTEL(-R1×n)

Verkregen volgens het basisformaat van de parabool, waarbij SQRT het vierkantswortelsymbool is en n de coëfficiënt

G01X=2×R2 plus n

Z=R1

Verwerkingspad, plus 2 is convex, n is de waarde van het startpunt van de X-as

R1=R1-1

De variabele toenamewaarde is 1 mm

IF R1>-30 GOTOB AA

If the variable R1>-30, het programma springt terug naar de markering: AA

2) Programmeervoorbeeld:

afbeelding

T1

Tc

T1D1

G0G40X100Z100

M03S1000

G0X52Z2

CYCLUS95 ( )

G0G42

OO:

R1=0

AA:R2=WORTEL(-R1×5/3)

G01X=2×R2 plus 30 Z=R1

R1=R1-2

IF R1>-60 GOTOB AA

PP% 3a X52

G0X100Z100

M05

M30

Aanvraag sturen

whatsapp

skype

E-mail

Onderzoek