Apr 15, 2023 Læg en besked

Lad os tale om CNC-makroprogrammer

 

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

Send forespørgsel

whatsapp

skype

E-mail

Undersøgelse