Apr 15, 2023 Legg igjen en beskjed

La oss snakke om CNC-makroprogrammer

 

Enkelt sagt er en makro å bruke formler for å behandle deler. For eksempel, ellipse, hvis det ikke er noen makro, må vi beregne punkt for punkt på kurven, og deretter sakte tilnærme det med en rett linje. Hvis det er et arbeidsstykke med høye krav til glatthet, må vi beregne mange poeng, men etter å ha brukt makroen, legger vi inn ellipseformelen i systemet og deretter gir vi Z-koordinaten og legger til en mengde hver gang, deretter makro vil automatisk beregne X-koordinaten og utføre kutting. Faktisk er hovedfunksjonen til makroen i programmet beregning.

bilde

01

Om makroprogrammer

Hva er et makroprogram

Ved programmering vil vi lagre en serie instruksjoner som kan fullføre en bestemt funksjon i minnet som en subrutine, og kalle dem med en generell instruksjon. Når vi bruker det, trenger vi bare å gi denne generelle instruksjonen for å utføre funksjonen som er lagret. Denne serien med instruksjoner kalles brukermakroprogramkroppen, eller makroprogram for kort.

Denne generelle kommandoen kalles brukermakroanropskommandoen. Ved programmering trenger programmerere bare å huske makroinstruksjoner, men ikke makroprogrammer.

Når skal makroprogrammering brukes?

1) Manuelt programmert behandlingsformelkurve (enkel beregning, rask inndata)

2) Vanlig skjærebane (som skjæremodul)

3) Kontroll mellom programmer (programplanlegging)

4) Verktøyhåndtering (verktøyslitasje)

5) Automatisk måling (in-maskin sonde)

Forskjellen mellom makroprogram og normalt program

1) I makroprogramkroppen kan variabler brukes, verdier kan tilordnes variabler, beregninger kan utføres mellom variabler, og programmer kan hoppes.

2) I vanlige programmer kan kun konstanter spesifiseres, og operasjoner mellom konstanter kan ikke utføres. Programmer kan bare kjøres sekvensielt og kan ikke hoppes, så funksjonene er faste og kan ikke endres.

3) Makrofunksjonen er en spesiell funksjon for brukeren for å forbedre ytelsen til CNC-maskinverktøyet, og den dyktige bruken av makroprogrammet i behandlingen av lignende arbeidsstykker vil oppnå dobbelt så mye som resultatet med halve innsatsen.

02

Variabler og formater for makroprogrammer

Funksjoner av makroprogrammer

Makroprogrammet kan bruke variabelen, og variabelen kan brukes til å utføre tilsvarende operasjoner; den faktiske variabelverdien kan tilordnes variabelen ved hjelp av makroprograminstruksjonen.

Tre typer variabler

Variabelrepresentasjonsformen til CNC-systemet er "#" etterfulgt av 1 til 4 sifre, og det er tre typer variabler:

(1) Lokale variabler: #1~#33 er variabler som brukes lokalt i makroprogrammet, som brukes til uavhengig variabeloverføring.


(2) Felles variabel: brukeren kan bruke den fritt, og den er felles for hver subrutine og hvert makroprogram som kalles av hovedprogrammet. #100~#149, etter at strømmen er slått av, vil alle variabelverdiene bli slettet, mens #500~#509, etter at strømmen er slått av, kan variabelverdiene lagres.


(3) Systemvariabel: Den er definert av etterfulgt av 4 sifre, den kan skaffe skrivebeskyttet eller lese/skrive informasjon som finnes i maskinverktøyets prosessor eller NC-minne, inkludert utvekslingsparametere relatert til maskinverktøyets prosessor, maskinverktøyets tilstandsinnhenting parametere, systeminformasjon som behandlingsparametere.

Enkelt kalleformat for makroprogram

Det enkle kallet til makroprogrammet betyr at i hovedprogrammet kan makroprogrammet kalles opp av en enkelt blokk.

Innkallingsformat:

G65 P (makroprogramnummer) L (antall repetisjoner) (variabel oppgave).

Blant dem: G65 – kommando for makroprogramanrop;

P (makroprogramnummer) - koden til makroprogrammet som skal kalles;

L (antall repetisjoner) - antall gjentatte kjøringer av makroprogrammet, når antall repetisjoner er 1, kan det utelates;

(Variable Assignment) - Tilordne verdier til variabler som brukes i makroprogrammet.

Det samme mellom et makroprogram og en subrutine er at ett makroprogram kan kalles opp av et annet makroprogram, opptil 4 ganger.

Makroprogram skriveformat

Skriveformatet til et makroprogram er det samme som for en subrutine. Formatet er:

0-(0001-8999 er makroprogramnummeret)

N10 kommando

N-M99

I innholdet i det ovennevnte makroprogrammet kan i tillegg til de vanlig brukte programmeringsinstruksjonene, også variabler, aritmetiske operasjonsinstruksjoner og andre kontrollinstruksjoner brukes. Variabelverdien tilordnes i makroprogramkallingsinstruksjonen.

03

FANUC system makro programapplikasjon

(1) Makroprogramsporing

bilde

1) WHILE-uttalelse

G00 X52 Z2;

#2=-14;

Det er startpunktet til verktøyet i z-retningen (fordi verktøyets bredde er 4 mm, er startpunktet satt til Z-14)

WHILE [#2 GE -30] DO2;

Det er en begrensning i z-retningen. Når z er lik -30, vil ikke z-retningen bevege seg lenger

G00 Z〔#2〕;

Gjeldende posisjon i z-retningen

#2=#2-2;

Bevegelsestrinnet i z-retningen, beveger seg 2 mm hver gang

#1=52;

er startpunktet til kniven i x-retningen

WHILE [#1 GE 20] DO1;

Begrensninger i X-retningen, når diameteren er lik 20, vil den ikke lenger kutte

G01 X〔#1〕F0.2;

Kuttdybde i x-retning

G00 X〔#1 pluss 1〕;

Relativ tilbaketrekningsmengde i x-retning

#1=#1-1;

Skrittavstand i x-retning (kutt 1 mm hver gang)

END1;

G00 X52;

END2;

Komplett program:

O1234;

G40 G97 G99;

T0101;

S1000 M3;

G00 X52 Z2;

#2=-14;

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

G00 Z〔#2〕;

#2=#2-2;

#1=52

WHILE〔#1GE20〕DO1;

G01X〔#1〕F0.2;

G00X〔#1 pluss 1〕;

#1=#1-1;

G00 X52;

END2;

G00 X150 Z150;

M30;

2) IF-uttalelse

G00 X52 Z-2;

#1=-14;

Det er z-retningens startpunkt for verktøyet (bredden på verktøyet er 4 mm)

N2 #1=#1-2;

er bevegelsestrinnet i z-retningen

#2=52;

er startpunktet til verktøyet i x-retningen

N1#2=#2-1;

er trinnavstanden i x-retningen (skjæredybde 1 mm hver gang)

G01 X〔#2〕F0.2;

Nåværende posisjon i X-retning

G00 X〔#2 pluss 1〕;

Relativ tilbaketrekkingsmengde i X-retning

HVIS [#2 GE 21] GOTO1;

Begrensninger i x-retningen (når verdien av x kuttes til 20, vil følgende prosedyre bli utført, og ingen retur vil bli gjort)

G00 X52;

X trekker seg tilbake til posisjon 52

G00 Z〔#1〕;

Nåværende posisjon i Z-retning

HVIS [#1 GE -30] GOTO2;

Begrensninger i Z-retningen, når z er lik -30, vil ikke z-retningen bevege seg

Komplett program:

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 pluss 1〕;

HVIS〔#2GE21〕GOTO1;

G00X52;

G00Z〔#1〕;

HVIS[#1GE-30]GOTO2;

G00X200;

Z200;

M5;

M30;

(2) Ellipse-programmering

1) Standardformatet til ellipse WHILE-setningen:

#1=a;

a: Utgangspunktet til verktøyet er i den positive retningen a mm i forhold til aksen Z til ellipsen

WHILE [#1 GE b] DO1;

b: Sluttpunktet for ellipsebehandling er i den negative retningen b mm i forhold til aksen Z til ellipsen (hvis en fullstendig halvellipse behandles, er a og b to verdier med samme verdi og forskjellige fortegn)

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

c: halvminoraksen til ellipsen

d: semi-hovedaksen til ellipsen (beregn #2 i henhold til ellipseformelen, semi-hovedaksen er d, semi-molaksen er c, #2 representerer verdien av X, #1 er verdien av Z , og SQRT betyr kvadratrot)

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

e: Forskyvningen (diameterverdien) til X-aksen til ellipsen i forhold til arbeidsstykkets koordinatsystem

f: Forskyvningen av ellipsens Z-akse i forhold til arbeidsstykkets koordinatsystem

#1=#1-1; trinnavstand (beveger seg 1 mm hver gang)

END1;

Merk: Når du dreier en konkav ellipse, blir "±" i parentesen etter X tatt som "-"; når du snur en konveks ellipse, blir "±" i parentesen etter X tatt som "pluss".

Når X-aksen til ellipsen skifter til positiv retning, tar "±" i parentesen etter Z " pluss "; når X-aksen til ellipsen skifter til negativ retning, tar "±" i parentesen etter Z "-"

2) Standardformatet for den elliptiske IF-setningen

#1=a;

a: Utgangspunktet til verktøyet er i den positive retningen a mm i forhold til aksen Z til ellipsen

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

b: ellipsens halvkorte akse c: ellipsens halv-hovedakse (ifølge ellipseformelen X/c pluss Y/b=1 betyr SQRT kvadratrot)

G01X〔±2*#2 pluss d〕Z〔#1±e〕F0.2; d: forskyvningen (diameterverdien) til X-aksen til ellipsen i forhold til koordinatens nullpunkt e: Z-aksen til ellipsen i forhold til nullplanet Offset

#1=#1-1;

Trinnavstand (beveger seg 1 mm hver gang)

HVIS [#1 GE -f] GÅ TIL1

f: Avslutning av ellipsebehandling

 

Merk: Når du dreier en konkav ellipse, blir "±" i parentesen etter X tatt som "-"; når du snur en konveks ellipse, blir "±" i parentesen etter X tatt som "pluss". Når X-aksen til ellipsen avviker til positiv retning, tar "±" i parentes etter Z " pluss "; når X-aksen til ellipsen avviker til negativ retning, tar "±" i parentesen etter Z "-".

bilde

WHILE-uttalelse

#1=20;

WHILE〔#1GE-20〕DO1;

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

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

#1=#1-1;

END1;

IF-uttalelse

#1=20;

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

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

#1=#1-1;

HVIS[#1GE-20]GOTO1;

komplett program

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;

WHILE〔#1GE-20〕DO1;

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

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

#1=#1-1;

END1;

G00 X50;

N20 G00 G40 Z2;

G70 P10 Q20;

G00 X200;

Z200;

M5;

M30;

Det fullstendige formatet til IF-setningen er utelatt (det samme gjelder for IF-setningen, så lenge syklusen er lagt til). I FANUC-0i-systemet kan makroprogrammet bare legges til i G73.

(3) Behandling av parabel

1) Standardformatet for den parabolske WHILE-setningen:

#1=a;

a: Utgangspunktet for verktøyet er en mm i retning av den parabolske aksen Z

WHILE [#1 GE -b] DO1;

b: er behandlingslengden til ellipsen i z-retningen

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

(I henhold til parabolformelen Z=-3/5*X*X, finn verdien av X, som er #2, der SQRT betyr kvadratroten)

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

c: er forskyvningen (diameterverdien) til X-aksen til parablen i forhold til arbeidsstykkets koordinatsystem, "±"

Når du tar " pluss ", er den konveks, og når du tar "-", er den konkav

#1=#1-1; Trinnavstand (beveger seg 1 mm hver gang)

END1;

2) Standardformatet for den parabolske IF-setningen

#1=a;

a: Utgangspunktet for verktøyet er en mm i retning av den parabolske aksen Z

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

(I henhold til parabolformelen Z=-3/5*X*X, finn verdien av X, som er #2, der SQRT betyr kvadratroten)

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

b: Det er forskyvningen (diameterverdien) til X-retningsaksen til parablen i forhold til koordinatens nullpunkt. Når "±" tar " pluss ", er den konveks, og når "-" tas, er den konkav

#1=#1-1;

(stegavstand i Z-retning, hver bevegelse er 1 mm)

HVIS〔#1 GE -c〕GOTO1; c: behandlingslengden til ellipsen i z-retning

Parabolsk IF

en annen form for setning

#1=a;

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

Plusstegnet kan utelates

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

#1=#1 pluss 1;

IF [#1 LE c] GOTO1;

Forutsatt at parabelen er i positiv retning av Z, så bruk Z〔-#1〕; å gjøre parabelen symmetrisk til den negative retningen

bilde

WHILE-uttalelse

#1=0;

WHILE [#1 GE -15] DO1;

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

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

#1=#1-1;

END1;

IF-uttalelse

#1=0;

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

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

#1=#1-1;

HVIS [#1 GE -15] GOTO1;

komplett program

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 pluss 30〕Z〔#1〕;

#1=#1-1;

END1;

G00 X42;

N20 G00 G40 Z2;

G70 P10 Q20;

G00 X200;

Z200;

M5;

M30;

(4) Forskjellen mellom WHILE-setning og IF-setning

1) Retningene til de to utsagnene er forskjellige

WHILE-setningen returnerer baklengs

Eksempel: WHILE〔#1 GE 20〕DO1;

G01 X〔#1〕F0.2;

Forutsatt at når maskinverktøyet utfører denne setningen, #1=20, vil den fortsette å kjøre. Etter å ha utført #1=#1-1, blir verdien av #1 19, som ikke lenger oppfyller betingelsene, så den kommer ikke tilbake. (Kutt til 20 i X-retningen)

G00 X〔#1 pluss 1);

#1=#1-1;

END1;

2) IF-erklæringen kommer tilbake

Eksempel: N1 #2=#2-1;

G01X〔#2〕F0.2; Forutsatt at #2=20 når maskinverktøyet utfører denne setningen, vil den fortsette å kjøre til IF〔#2 GE 20〕GOTO1; hvis betingelsen fortsatt er oppfylt, vil den fortsette å gå tilbake til N1# 2=#2-1; og den nåværende X-verdien vil bli 19, som ikke lenger oppfyller begrensningsbetingelsene, og deretter utføre en ny

G01X〔#2〕F0.2; Til slutt, utfør følgende program (X-retningen er kuttet til 19)

G00X〔#2 pluss 1);

HVIS [#2 GE 20] GOTO1;

3) Som man kan se fra groovingprogrammet ovenfor, er antallet ord i IF-setningen mye mindre enn i WHILE-setningen.

4) På grunn av de forskjellige returretningene, les én setning mindre for WHILE-setningen og én setning til for IF-setningen under behandlingen.

04

SIEMENS system (dreiebenk) makroprogramapplikasjon

Merk: Makroprogrammet er programmert med variabler, og variabelnummeret til Siemens-systemet er representert av R.

For eksempel skrevet i vanlig programmeringsmetode: G01X-10

Makroprogrammet kan uttrykkes som:

R1=-10

G01 X=R1

Betinget overføring:

HVIS GOTOB: hopp bakover

IF GOTOF: hopp fremover

skrevet i vanlig programmering

GO1X100

Variabler kan uttrykkes som:

R1=0

AA: R1=R1 pluss 1

G01X=R1

IF R1<100 GOTOB AA

R1 er en uavhengig variabel, startverdien er 0, R1=R1 pluss 1 betyr at den inkrementelle verdien til den uavhengige variabelen er 1, når programmet går gjennom denne linjen hver gang, verdien av R1 øker med 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

Hvis R1 er større enn eller lik 100, går programmet ned.

Makroprogrammer kan brukes i både G90- og G91-modus, men deres betydninger er forskjellige, for eksempel;

R1=0, G90R1=R1 pluss 1, G1X=R1, verdien av X etter den andre gjennomgangen av dette programmet er 2.

R1=0, G91R1=R1 pluss 1, G1X=R1, verdien av X etter den andre gjennomgangen av programmet er 3. Forklaring: Verdien av R1 er 1 etter den første pass av programmet, og verdien av R1 er den andre passeringen Det er 2, men i G91-modus er den basert på den forrige.

(1) Grooving

bilde

T1

TC

T1D1

G0G40X100Z100

M03S1000

G0X54Z2

Kom raskt til startpunktet

Z-10

R1=3

Definer bladets bredde som 3 mm

R2=-10-R1-0.2

Utgangspunktet for verktøyet er -10, og venstre side av bladet brukes når verktøyet stilles inn.

Verktøyinnstilling, så bredden på bladet skal trekkes fra, 0.2 er etterbehandlingsgodtgjørelsen

G1Z=R2F0.1

Verktøyet når startpunktet til Z-aksen

AA:R2=R2-2.5

R3=50

X-aksen til sporet når punktet

BB: R3=R3-2

Definer skjæredybden til hver kniv som 2 mm

G1X=R3

X=R3 pluss 1

0.5 mm sponfjerning på den ene siden hver 2 mm skjæredybde

IF R3>30 pluss 0,4 GOTOB BB

Define the groove depth as 10mm, if R3>30mm, hopper programmet bakover til merket BB, og 0,4 er slutttillegget

G0X50

Verktøyet når startpunktet til X-aksen

G1Z=R2

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

Definer sporbredden som 20mm, og 0,2 er etterbehandlingsgodtgjørelsen

G0X50

G01Z-13

etterbehandling

X30

Z-16

G0X50

Z-30

G01X30

Z-16

G0X50

Ta ut

G0X100

Z100

M05

M30

(2) Ellipse

1) Grunnformat

R1=0

Definer variabelen R1 med en startverdi på 0

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

I følge ellipseligningen er a ellipsens halvhovedakse, b er ellipsens semi-minorakse, og SQRT er kvadratrotsymbolet.

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

Angi posisjonen og formen til ellipsen, pluss 2 er konveks, -2 er konkav, X, Z er avstandene mellom arbeidsstykkets akse og ellipsens akse (diametersystem).

R1=R1-1

Still inn behandlingstrinnet

IF R1>=n ​​GOTOB AA

Hvis variabelen R1

2) Programmeringseksempel:

bilde

T1D1

G0G40X100Z100

M3S1000

G0X52Z2

Z-20

SYKLUS95 ( )

G42S1500

OO:

R1=20

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

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

R1=R1-2

IF R1>=-20 GOTOB AA

PP:X42

G0G40X100Z100

M05

M09

M30

(3) Parabel

1) Grunnleggende format:

R1=0

Sett startverdien til variabel R1 til 0

AA: R2=SQRT(-R1×n)

Oppnådd i henhold til det grunnleggende formatet til parabelen, der SQRT er kvadratrotsymbolet, og n er koeffisienten

G01X=2×R2 pluss n

Z=R1

Behandlingsbane, pluss 2 er konveks, n er verdien til startpunktet til X-aksen

R1=R1-1

Den variable økningsverdien er 1 mm

IF R1>-30 GOTOB AA

If the variable R1>-30, hopper programmet bakover til merket: AA

2) Programmeringseksempel:

bilde

T1

Tc

T1D1

G0G40X100Z100

M03S1000

G0X52Z2

SYKLUS95 ( )

G0G42

OO:

R1=0

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

G01X=2×R2 pluss 30 Z=R1

R1=R1-2

IF R1>-60 GOTOB AA

PP: X52

G0X100Z100

M05

M30

Sende bookingforespørsel

whatsapp

skype

E-post

Forespørsel