Kort sagt er en makro at bruge formler til at behandle dele. For eksempel, ellipse, hvis der ikke er nogen makro, skal vi beregne punkterne på kurven punkt for punkt og derefter langsomt tilnærme det med en lige linje. Hvis det er et emne med høje krav til glathed, skal vi beregne en masse point, men efter at have anvendt makroen, indtaster vi ellipseformlen i systemet, og derefter giver vi Z-koordinaten og tilføjer en mængde hver gang, så makro vil automatisk beregne X-koordinaten og udføre skæring. Faktisk er makroens hovedfunktion i programmet beregning.
billede
01
Om makroprogrammer
Hvad er et makroprogram
Ved programmering vil vi gemme en række instruktioner, der kan fuldføre en bestemt funktion i hukommelsen som en subrutine, og kalde dem med en generel instruktion. Når vi bruger det, behøver vi kun at give denne generelle instruktion for at udføre den gemte funktion. Denne række af instruktioner kaldes brugermakroprogramkroppen, eller makroprogram for kort.
Denne generelle kommando kaldes brugermakroopkaldskommandoen. Ved programmering skal programmører kun huske makroinstruktioner, men ikke makroprogrammer.
Hvornår vil makroprogrammering blive brugt?
1) Manuelt programmeret behandlingsformelkurve (simpel beregning, hurtig input)
2) Almindelig skærebane (som et skæremodul)
3) Inter-program kontrol (programplanlægning)
4) Værktøjsstyring (værktøjsslid)
5) Automatisk måling (in-machine sonde)
Forskellen mellem makroprogram og normalt program
1) I makroprogramkroppen kan der bruges variabler, der kan tildeles værdier til variable, der kan udføres beregninger mellem variable og der kan springes over programmer.
2) I almindelige programmer kan kun konstanter angives, og operationer mellem konstanter kan ikke udføres. Programmer kan kun udføres sekventielt og kan ikke springes, så funktionerne er faste og kan ikke ændres.
3) Makrofunktionen er en speciel funktion for brugeren til at forbedre ydeevnen af CNC-værktøjsmaskinen, og den dygtige brug af makroprogrammet i behandlingen af lignende emner vil opnå det dobbelte af resultatet med halvdelen af indsatsen.
02
Variabler og formater af makroprogrammer
Funktioner af makroprogrammer
Makroprogrammet kan bruge variablen, og variablen kan bruges til at udføre tilsvarende operationer; den faktiske variabelværdi kan tildeles variablen ved hjælp af makroprograminstruktionen.
Tre typer af variabler
Den variable repræsentationsform for CNC-systemet er "#" efterfulgt af 1 til 4 cifre, og der er tre typer variabler:
(1) Lokale variable: #1~#33 er variabler, der bruges lokalt i makroprogrammet, som bruges til uafhængig variabeloverførsel.
(2) Fælles variabel: brugeren kan bruge den frit, og den er fælles for hver subrutine og hvert makroprogram kaldet af hovedprogrammet. #100~#149, efter at have slukket for strømmen, vil alle variable værdier blive slettet, mens #500~#509, efter at have slukket for strømmen, kan de variable værdier gemmes.
(3) Systemvariabel: Den er defineret af efterfulgt af 4 cifre, den kan få skrivebeskyttet eller læse/skrive information indeholdt i værktøjsmaskinens processor eller NC-hukommelse, inklusive udvekslingsparametre relateret til værktøjsmaskinens processor, værktøjsmaskinens tilstandsregistrering parametre, systemoplysninger såsom behandlingsparametre.
Simpelt kaldeformat af makroprogram
Det simple kald af makroprogrammet betyder, at makroprogrammet i hovedprogrammet kan kaldes af en enkelt blok.
Indkaldelsesformat:
G65 P (makroprogramnummer) L (antal gentagelser) (variabel opgave).
Blandt dem: G65—makroprogramopkaldskommando;
P (makroprogramnummer) - koden for det makroprogram, der skal kaldes;
L (antal gentagelser) - antallet af gentagne kørsler af makroprogrammet, når antallet af gentagelser er 1, kan det udelades;
(Variable Assignment) - Tildel værdier til variabler brugt i makroprogrammet.
Det samme mellem et makroprogram og en subrutine er, at et makroprogram kan kaldes af et andet makroprogram, op til 4 gange.
Makro program skrive format
Skriveformatet for et makroprogram er det samme som for en underrutine. Dens format er:
0-(0001-8999 er makroprogramnummeret)
N10 kommando
N-M99
I indholdet af ovenstående makroprogram kan der udover de almindeligt anvendte programmeringsinstruktioner også anvendes variabler, aritmetiske operationsinstruktioner og andre styreinstruktioner. Variabelværdien tildeles i makroprogramkaldsinstruktionen.
03
FANUC system makro program applikation
(1) Makroprogram riller
billede
1) WHILE-erklæring
G00 X52 Z2;
#2=-14;
Det er værktøjets startpunkt i z-retningen (fordi værktøjsbredden er 4 mm, er startpunktet sat til Z-14)
WHILE [#2 GE -30] DO2;
Det er en begrænsning i z-retningen. Når z er lig med -30, vil z-retningen ikke længere bevæge sig
G00 Z〔#2〕;
Den aktuelle position i z-retningen
#2=#2-2;
Bevægelsestrinnet i z-retningen, bevæger sig 2 mm hver gang
#1=52;
er knivens udgangspunkt i x-retningen
MENS [#1 GE 20] DO1;
Begrænsninger i X-retningen, når diameteren er lig med 20, vil den ikke længere skære
G01 X〔#1〕F0.2;
Skæredybde i x-retning
G00 X〔#1 plus 1〕;
Relativ tilbagetrækningsmængde i x-retning
#1=#1-1;
Trinafstand i x-retning (skær 1 mm hver gang)
END1;
G00 X52;
END2;
Komplet 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
MENS〔#1GE20〕DO1;
G01X〔#1〕F0.2;
G00X〔#1 plus 1〕;
#1=#1-1;
G00 X52;
END2;
G00 X150 Z150;
M30;
2) HVIS erklæring
G00 X52 Z-2;
#1=-14;
Det er z-retningens startpunkt for værktøjet (værktøjets bredde er 4 mm)
N2 #1=#1-2;
er bevægelsestrinnet i z-retningen
#2=52;
er udgangspunktet for værktøjet i x-retningen
N1#2=#2-1;
er skridtafstanden i x-retningen (skæredybde 1 mm hver gang)
G01 X〔#2〕F0.2;
Aktuel position i X-retning
G00 X〔#2 plus 1〕;
Relativ tilbagetrækningsmængde i X-retning
HVIS [#2 GE 21] GOTO1;
Begrænsninger i x-retningen (når værdien af x skæres til 20, udføres følgende procedure, og der vil ikke blive returneret)
G00 X52;
X trækker sig tilbage til position 52
G00 Z〔#1〕;
Aktuel position i Z-retning
HVIS [#1 GE -30] GOTO2;
Begrænsninger i Z-retningen, når z er lig med -30, vil z-retningen ikke bevæge sig
Komplet 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 plus 1〕;
HVIS〔#2GE21〕GOTO1;
G00X52;
G00Z〔#1〕;
HVIS[#1GE-30]GOTO2;
G00X200;
Z200;
M5;
M30;
(2) Ellipse programmering
1) Standardformatet for ellipse WHILE-sætningen:
#1=a;
a: Værktøjets startpunkt er i den positive retning a mm i forhold til ellipsens Z-akse
MENS [#1 GE b] DO1;
b: Slutpunktet for ellipsebehandling er i den negative retning b mm i forhold til ellipsens Z-akse (hvis en komplet halvellipse behandles, så er a og b to værdier med samme værdi og forskellige fortegn)
#2= c*SQRT[1-#1*#1/d*d];
c: ellipsens halvminorakse
d: semi-hovedakse af ellipsen (beregn #2 i henhold til ellipseformlen, semi-hovedaksen er d, semi-molaksen er c, #2 repræsenterer værdien af X, #1 er værdien af Z , og SQRT betyder kvadratrod)
G01 X〔±2*#2 plus e〕Z〔#1±f〕;
e: Forskydningen (diameterværdien) af ellipsens X-akse i forhold til emnekoordinatsystemet
f: Forskydningen af ellipsens Z-akse i forhold til emnekoordinatsystemet
#1=#1-1; skridtafstand (bevæger sig 1 mm hver gang)
END1;
Bemærk: Når du drejer en konkav ellipse, tages "±" i parentesen efter X som "-"; når en konveks ellipse drejes, tages "±" i parentesen efter X som "plus".
Når ellipsens X-akse skifter til den positive retning, tager "±" i parentesen efter Z " plus "; når ellipsens X-akse skifter til den negative retning, tager "±" i parentesen efter Z "-"
2) Standardformatet for den elliptiske IF-sætning
#1=a;
a: Værktøjets startpunkt er i den positive retning a mm i forhold til ellipsens Z-akse
N1#2=b*SQRT〔1-#1*#1/c*c〕;
b: ellipsens halvkorte akse c: ellipsens halv-hovedakse (ifølge ellipseformlen X/c plus Y/b=1 betyder SQRT kvadratrod)
G01X〔±2*#2 plus d〕Z〔#1±e〕F0.2; d: offset (diameterværdi) af ellipsens X-akse i forhold til koordinatens nulpunkt e: ellipsens Z-akse i forhold til nulplanet Offset
#1=#1-1;
Trinafstand (bevæger sig 1 mm hver gang)
HVIS [#1 GE -f] GÅ TIL1
f: Afslutning af ellipsebehandling
Bemærk: Når du drejer en konkav ellipse, tages "±" i parentesen efter X som "-"; når en konveks ellipse drejes, tages "±" i parentesen efter X som "plus". Når ellipsens X-akse afviger til den positive retning, tager "±" i parentesen efter Z " plus "; når ellipsens X-akse afviger til den negative retning, tager "±" i parentesen efter Z "-".
billede
WHILE-erklæring
#1=20;
WHILE〔#1GE-20〕DO1;
#2=10*SQRT〔1-#1*#1/400〕;
G01X〔-2*#2 plus 50〕Z〔#1-25〕;
#1=#1-1;
END1;
IF erklæring
#1=20;
N1#2=10*SQRT〔1-#1*#1/400〕;
G01X〔-2*#2 plus 50〕Z〔#1-25〕F0.2;
#1=#1-1;
HVIS[#1GE-20]GOTO1;
komplet 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 plus 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 komplette format af IF-sætningen udelades (det samme gælder for IF-sætningen, så længe cyklussen tilføjes). I FANUC-0i-systemet kan makroprogrammet kun tilføjes i G73.
(3) Bearbejdning af parabel
1) Standardformatet for den parabolske WHILE-sætning:
#1=a;
a: Værktøjets startpunkt er en mm i retning af parabolaksen Z
WHILE [#1 GE -b] DO1;
b: er behandlingslængden af ellipsen i z-retningen
#2=SQRT〔-#1*5/3〕;
(Ifølge parabolformlen Z=-3/5*X*X, find værdien af X, som er #2, hvor SQRT betyder kvadratroden)
G01 X〔±2*#2 plus c〕Z〔#1〕;
c: er forskydningen (diameterværdien) af parablens X-akse i forhold til emnets koordinatsystem, "±"
Når man tager " plus ", er den konveks, og når man tager "-", er den konkav
#1=#1-1; Trinafstand (bevæger sig 1 mm hver gang)
END1;
2) Standardformatet for den parabolske IF-sætning
#1=a;
a: Værktøjets startpunkt er en mm i retning af parabolaksen Z
N1 #2=SQRT〔-#1*5/3〕;
(Ifølge parabolformlen Z=-3/5*X*X, find værdien af X, som er #2, hvor SQRT betyder kvadratroden)
G01 X〔±2*#2 plus b〕Z〔#1〕;
b: Det er forskydningen (diameterværdien) af parablens X-retningsakse i forhold til koordinatnulpunktet. Når "±" tager " plus ", er den konveks, og når "-" tages, er den konkav
#1=#1-1;
(trinafstand i Z-retning, hver bevægelse er 1 mm)
HVIS〔#1 GE -c〕GOTO1; c: behandlingslængden af ellipsen i z-retningen
Parabolsk IF
en anden sætningsform
#1=a;
N1 #2=SQRT〔( plus )#1*5/3〕;
"plus"-tegnet kan udelades
G01 X〔2*#2 plus b〕Z〔-#1〕;
#1=#1 plus 1;
IF [#1 LE c] GOTO1;
Hvis du antager, at parablen er i positiv retning af Z, så brug Z〔-#1〕; at gøre parablen symmetrisk til den negative retning
billede
WHILE-erklæring
#1=0;
WHILE [#1 GE -15] DO1;
#2=SQRT〔-#1*5/3〕;
G01 X〔2*#2 plus 30〕Z〔#1〕;
#1=#1-1;
END1;
IF erklæring
#1=0;
N1 #2=SQRT〔-#1*5/3〕;
G01X〔2*#2 plus 30〕Z〔#1〕;
#1=#1-1;
HVIS [#1 GE -15] GOTO1;
komplet 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 plus 30〕Z〔#1〕;
#1=#1-1;
END1;
G00 X42;
N20 G00 G40 Z2;
G70 P10 Q20;
G00 X200;
Z200;
M5;
M30;
(4) Forskellen mellem WHILE-sætning og IF-sætning
1) Retningen af de to udsagn er forskellige
WHILE-sætningen vender tilbage
Eksempel: WHILE〔#1 GE 20〕DO1;
G01 X〔#1〕F0.2;
Hvis vi antager, at når maskinværktøjet udfører denne sætning, #1=20, vil den fortsætte med at udføre. Efter udførelse af #1=#1-1 bliver værdien af #1 19, hvilket ikke længere opfylder betingelserne, så det vender ikke tilbage. (Skær til 20 i X-retningen)
G00 X〔#1 plus 1);
#1=#1-1;
END1;
2) IF-erklæringen vender tilbage
Eksempel: N1 #2=#2-1;
G01X〔#2〕F0.2; Forudsat at #2=20 når maskinværktøjet udfører denne sætning, vil den fortsætte med at udføre indtil IF〔#2 GE 20〕GOTO1; hvis betingelsen stadig er opfyldt, vil den fortsætte med at vende tilbage til N1# 2=#2-1; og den aktuelle X-værdi bliver 19, hvilket ikke længere opfylder betingelserne, og udfører derefter en anden
G01X〔#2〕F0.2; Udfør endelig følgende program (X-retningen er blevet skåret til 19)
G00X〔#2 plus 1);
HVIS [#2 GE 20] GOTO1;
3) Som det kan ses af ovenstående grooving-program, er antallet af ord i IF-sætningen meget mindre end WHILE-sætningen.
4) På grund af de forskellige returretninger, læs én sætning mindre for WHILE-sætningen og én sætning mere for IF-sætningen under behandlingen.
04
SIEMENS system (drejebænk) makroprogramapplikation
Bemærk: Makroprogrammet er programmeret med variable, og variabelnummeret på Siemens-systemet er repræsenteret af R.
For eksempel skrevet i almindelig programmeringsmetode: G01X-10
Makroprogrammet kan udtrykkes som:
R1=-10
G01 X=R1
Betinget overførsel:
HVIS GOTOB: hop baglæns
HVIS GOTOF: hop frem
skrevet i almindelig programmering
GO1X100
Variabler kan udtrykkes som:
R1=0
AA: R1=R1 plus 1
G01X=R1
HVIS R1<100 GOTOB AA
R1 er en uafhængig variabel, startværdien er 0, R1=R1 plus 1 betyder, at den inkrementelle værdi af den uafhængige variabel er 1, når programmet går gennem denne linje hver gang, værdien af R1 stiger 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 end eller lig med 100, går programmet ned.
Makroprogrammer kan bruges i både G90- og G91-tilstande, men deres betydninger er forskellige, for eksempel;
R1=0, G90R1=R1 plus 1, G1X=R1, værdien af X efter anden gennemgang af dette program er 2.
R1=0, G91R1=R1 plus 1, G1X=R1, værdien af X efter anden gennemgang af programmet er 3. Forklaring: Værdien af R1 er 1 efter den første bestået af programmet, og værdien af R1 er det andet gennemløb. Det er 2, men i G91-tilstand er det baseret på det foregående.
(1) Rilning
billede
T1
TC
T1D1
G0G40X100Z100
M03S1000
G0X54Z2
Nå hurtigt udgangspunktet
Z-10
R1=3
Definer klingebredden som 3 mm
R2=-10-R1-0.2
Værktøjets startpunkt er -10, og venstre side af bladet bruges, når værktøjet indstilles.
Værktøjsindstilling, så bredden af bladet skal trækkes fra, 0.2 er efterbehandlingstillægget
G1Z=R2F0.1
Værktøjet når startpunktet for Z-aksen
AA:R2=R2-2.5
R3=50
Rillens X-akse når punktet
BB: R3=R3-2
Definer skæredybden for hver kniv som 2 mm
G1X=R3
X=R3 plus 1
0.5 mm spånfjernelse på den ene side for hver 2 mm skæredybde
IF R3>30 plus 0,4 GOTOB BB
Define the groove depth as 10mm, if R3>30mm, springer programmet bagud til mærket BB, og 0,4 er efterbehandlingstillæg
G0X50
Værktøjet når startpunktet for X-aksen
G1Z=R2
IF R2>{{0}} plus 0,2 GOTOB AA
Definer rillebredden som 20mm, og 0,2 er efterbehandlingsgodtgørelsen
G0X50
G01Z-13
efterbehandling
X30
Z-16
G0X50
Z-30
G01X30
Z-16
G0X50
Træk tilbage
G0X100
Z100
M05
M30
(2) Ellipse
1) Grundformat
R1=0
Definer variablen R1 med en startværdi på 0
AA:R2=b×SQRT(1-R1×R1/a×a)
Ifølge ellipseligningen er a ellipsens semi-hovedakse, b er ellipsens semi-minor-akse, og SQRT er kvadratrodssymbolet.
G1X=±2×R2 plus XZ=R1-Z
Indstil ellipsens position og form, plus 2 er konveks, -2 er konkav, X, Z er afstandene mellem emnets akse og ellipsens akse (diametersystemet).
R1=R1-1
Indstil behandlingstrinnet
IF R1>=n GOTOB AA
Hvis variablen R1
2) Programmeringseksempel:
billede
T1D1
G0G40X100Z100
M3S1000
G0X52Z2
Z-20
CYKLUS95 ( )
G42S1500
OO:
R1=20
AA:R2=5×SQRT(1-R1×R1/400)
G1X=-2×R2 plus 50 Z=R1-40
R1=R1-2
IF R1>=-20 GOTOB AA
PP:X42
G0G40X100Z100
M05
M09
M30
(3) Parabel
1) Grundformat:
R1=0
Indstil startværdien af variabel R1 til 0
AA: R2=SQRT(-R1×n)
Opnået i henhold til parablens grundformat, hvor SQRT er kvadratrodssymbolet, og n er koefficienten
G01X=2×R2 plus n
Z=R1
Behandlingssti, plus 2 er konveks, n er værdien af startpunktet for X-aksen
R1=R1-1
Den variable stigningsværdi er 1 mm
IF R1>-30 GOTOB AA
If the variable R1>-30, springer programmet tilbage til mærket: AA
2) Programmeringseksempel:
billede
T1
Tc
T1D1
G0G40X100Z100
M03S1000
G0X52Z2
CYKLUS95 ( )
G0G42
OO:
R1=0
AA:R2=SQRT(-R1×5/3)
G01X=2×R2 plus 30 Z=R1
R1=R1-2
IF R1>-60 GOTOB AA
PP: X52
G0X100Z100
M05
M30




