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




