Apr 15, 2023 Lämna ett meddelande

Låt oss prata om CNC-makroprogram

 

Enkelt uttryckt är ett makro att använda formler för att bearbeta delar. Till exempel, ellips, om det inte finns något makro, måste vi beräkna punkterna på kurvan punkt för punkt och sedan långsamt approximera det med en rak linje. Om det är ett arbetsstycke med höga krav på jämnhet måste vi beräkna många punkter, men efter att ha tillämpat makrot matar vi in ​​ellipsformeln i systemet och sedan ger vi Z-koordinaten och lägger till ett belopp varje gång, sedan makro kommer automatiskt att beräkna X-koordinaten och utföra skärning. Faktum är att huvudfunktionen för makrot i programmet är beräkning.

bild

01

Om makroprogram

Vad är ett makroprogram

Vid programmering kommer vi att lagra en serie instruktioner som kan slutföra en viss funktion i minnet som en subrutin, och anropa dem med en allmän instruktion. När vi använder det behöver vi bara ge den här allmänna instruktionen för att utföra den lagrade funktionen. Denna serie instruktioner kallas användarmakroprogramkroppen, eller makroprogram för kort.

Detta allmänna kommando kallas användarmakroanropskommandot. Vid programmering behöver programmerare bara memorera makroinstruktioner men inte makroprogram.

När kommer makroprogrammering att användas?

1) Manuellt programmerad bearbetningsformelkurva (enkel beräkning, snabb inmatning)

2) Vanlig skärbana (som en skärmodul)

3) Interprogramstyrning (programschemaläggning)

4) Verktygshantering (verktygsslitage)

5) Automatisk mätning (maskinsond)

Skillnaden mellan makroprogram och normalt program

1) I makroprogramkroppen kan variabler användas, värden kan tilldelas variabler, beräkningar kan utföras mellan variabler och program kan hoppas.

2) I vanliga program kan endast konstanter anges, och operationer mellan konstanter kan inte utföras. Program kan endast köras sekventiellt och kan inte hoppa, så funktionerna är fasta och kan inte ändras.

3) Makrofunktionen är en speciell funktion för användaren för att förbättra prestandan hos CNC-maskinverktyget, och den skickliga användningen av makroprogrammet vid bearbetning av liknande arbetsstycken kommer att uppnå dubbelt så mycket resultat med halva ansträngningen.

02

Variabler och format för makroprogram

Funktioner i makroprogram

Makroprogrammet kan använda variabeln och variabeln kan användas för att utföra motsvarande operationer; det faktiska variabelvärdet kan tilldelas variabeln genom makroprograminstruktionen.

Tre typer av variabler

Variabelrepresentationsformen för CNC-systemet är "#" följt av 1 till 4 siffror, och det finns tre typer av variabler:

(1) Lokala variabler: #1~#33 är variabler som används lokalt i makroprogrammet, som används för oberoende variabelöverföring.


(2) Gemensam variabel: användaren kan använda den fritt, och den är gemensam för varje subrutin och varje makroprogram som anropas av huvudprogrammet. #100~#149, efter att strömmen stängts av kommer alla variabelvärden att raderas, medan #500~#509, efter att strömmen stängts av, kan variabelvärdena sparas.


(3) Systemvariabel: Den definieras av följt av 4 siffror, den kan erhålla skrivskyddad eller läs/skrivinformation som finns i verktygsmaskinens processor eller NC-minne, inklusive utbytesparametrar relaterade till verktygsmaskinens processor, verktygsmaskinstillståndsinhämtning parametrar, systeminformation såsom bearbetningsparametrar.

Enkelt anropsformat för makroprogram

Det enkla anropet av makroprogrammet innebär att i huvudprogrammet kan makroprogrammet anropas av ett enda block.

Anropsformat:

G65 P (makroprogramnummer) L (antal repetitioner) (variabel uppgift).

Bland dem: G65—kommando för anrop av makroprogram;

P (makroprogramnummer) - koden för makroprogrammet som ska anropas;

L (antal repetitioner) - antalet upprepade körningar av makroprogrammet, när antalet repetitioner är 1 kan det utelämnas;

(Variabeltilldelning) - Tilldela värden till variabler som används i makroprogrammet.

Samma sak mellan ett makroprogram och en subrutin är att ett makroprogram kan anropas av ett annat makroprogram, upp till 4 gånger.

Makroprogram skrivformat

Skrivformatet för ett makroprogram är detsamma som för en subrutin. Dess format är:

0-(0001-8999 är makroprogramnumret)

N10 kommando

N-M99

I innehållet i ovanstående makroprogram kan förutom de vanliga programmeringsinstruktionerna även variabler, aritmetiska operationsinstruktioner och andra styrinstruktioner användas. Variabelvärdet tilldelas i makroprogramanropsinstruktionen.

03

FANUC-systemets makroprogramapplikation

(1) Makroprogramspårning

bild

1) WHILE uttalande

G00 X52 Z2;

#2=-14;

Det är startpunkten för verktyget i z-riktningen (eftersom verktygets bredd är 4 mm, startpunkten är satt till Z-14)

WHILE [#2 GE -30] DO2;

Det är en begränsning i z-riktningen. När z är lika med -30 kommer z-riktningen inte längre att röra sig

G00 Z〔#2〕;

Den aktuella positionen i z-riktningen

#2=#2-2;

Det rörliga steget i z-riktningen, rör sig 2 mm varje gång

#1=52;

är utgångspunkten för kniven i x-riktningen

WHILE [#1 GE 20] DO1;

Begränsningar i X-riktningen, när diametern är lika med 20, kommer den inte längre att skära

G01 X〔#1〕F0.2;

Skärdjup i x-riktning

G00 X〔#1 plus 1〕;

Relativ indragningsmängd i x-riktning

#1=#1-1;

Stegavstånd i x-riktning (klipp 1 mm varje gång)

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

MEDAN〔#1GE20〕DO1;

G01X〔#1〕F0.2;

G00X〔#1 plus 1〕;

#1=#1-1;

G00 X52;

END2;

G00 X150 Z150;

M30;

2) IF-uttalande

G00 X52 Z-2;

#1=-14;

Det är verktygets startpunkt i z-riktningen (verktygets bredd är 4 mm)

N2 #1=#1-2;

är rörelsesteget i z-riktningen

#2=52;

är verktygets startpunkt i x-riktningen

N1#2=#2-1;

är stegavståndet i x-riktningen (skärdjup 1 mm varje gång)

G01 X〔#2〕F0.2;

Aktuell position i X-riktning

G00 X〔#2 plus 1〕;

Relativ indragningsmängd i X-riktning

OM [#2 GE 21] GOTO1;

Begränsningar i x-riktningen (när värdet på x skärs till 20 kommer följande procedur att utföras och ingen retur kommer att göras)

G00 X52;

X dras tillbaka till position 52

G00 Z〔#1〕;

Aktuell position i Z-riktning

OM [#1 GE -30] GOTO2;

Begränsningar i Z-riktningen, när z är lika med -30, kommer z-riktningen inte att flyttas

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

OM〔#2GE21〕GOTO1;

G00X52;

G00Z〔#1〕;

OM[#1GE-30]GOTO2;

G00X200;

Z200;

M5;

M30;

(2) Ellipsprogrammering

1) Standardformatet för ellips WHILE-satsen:

#1=a;

a: Verktygets startpunkt är i den positiva riktningen a mm i förhållande till ellipsens Z-axel

MEDAN [#1 GE b] DO1;

b: Slutpunkten för ellipsbearbetning är i den negativa riktningen b mm i förhållande till ellipsens Z-axel (om en fullständig halvellips bearbetas är a och b två värden med samma värde och olika tecken)

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

c: ellipsens halva axel

d: ellipsens halvstora axel (beräkna #2 enligt ellipsformeln, halvstoraxeln är d, halvmollaxeln är c, #2 representerar värdet på X, #1 är värdet av Z , och SQRT betyder kvadratrot)

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

e: Offset (diametervärde) för ellipsens X-axel i förhållande till arbetsstyckets koordinatsystem

f: Förskjutningen av ellipsens Z-axel i förhållande till arbetsstyckets koordinatsystem

#1=#1-1; stegavstånd (rör sig 1 mm varje gång)

END1;

Obs: När du vrider en konkav ellips tas "±" i parentesen efter X som "-"; när en konvex ellips vrids tas "±" i parentesen efter X som "plus".

När ellipsens X-axel skiftar till den positiva riktningen tar "±" i parentesen efter Z " plus "; när ellipsens X-axel skiftar till negativ riktning, tar "±" i parentesen efter Z "-"

2) Standardformatet för den elliptiska IF-satsen

#1=a;

a: Verktygets startpunkt är i den positiva riktningen a mm i förhållande till ellipsens Z-axel

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

b: ellipsens halvkorta axel c: ellipsens halvstora axel (enligt ellipsformeln X/c plus Y/b=1 betyder SQRT kvadratrot)

G01X〔±2*#2 plus d〕Z〔#1±e〕F0.2; d: offset (diametervärde) för ellipsens X-axel i förhållande till koordinatens nollpunkt e: ellipsens Z-axel i förhållande till nollplanets offset

#1=#1-1;

Stegavstånd (rör sig 1 mm varje gång)

OM [#1 GE -f] GÅ TILL1

f: Avslutande av ellipsbehandling

 

Obs: När du vrider en konkav ellips tas "±" i parentesen efter X som "-"; när en konvex ellips vrids tas "±" i parentesen efter X som "plus". När ellipsens X-axel avviker till den positiva riktningen tar "±" inom parentesen efter Z " plus "; när ellipsens X-axel avviker till den negativa riktningen tar "±" inom parentesen efter Z "-".

bild

WHILE uttalande

#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 uttalande

#1=20;

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

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

#1=#1-1;

OM[#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 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 fullständiga formatet för IF-satsen utelämnas (detsamma gäller för IF-satsen, så länge som cykeln läggs till). I FANUC-0i-systemet kan makroprogrammet endast läggas till i G73.

(3) Bearbetning av parabel

1) Standardformatet för den paraboliska WHILE-satsen:

#1=a;

a: Verktygets startpunkt är en mm i riktning mot parabolaxeln Z

MEDAN [#1 GE -b] DO1;

b: är bearbetningslängden för ellipsen i z-riktningen

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

(Enligt parabolformeln Z=-3/5*X*X, hitta värdet på X, som är #2, där SQRT betyder kvadratroten)

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

c: är förskjutningen (diametervärdet) för parabelns X-axel i förhållande till arbetsstyckets koordinatsystem, "±"

När du tar " plus " är det konvext, och när du tar "-" är det konkavt

#1=#1-1; Stegavstånd (rör sig 1 mm varje gång)

END1;

2) Standardformatet för den paraboliska IF-satsen

#1=a;

a: Verktygets startpunkt är en mm i riktning mot parabolaxeln Z

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

(Enligt parabolformeln Z=-3/5*X*X, hitta värdet på X, som är #2, där SQRT betyder kvadratroten)

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

b: Det är förskjutningen (diametervärdet) för parabelns X-riktningsaxel i förhållande till koordinatens nollpunkt. När "±" tar " plus " är det konvext, och när "-" tas är det konkavt

#1=#1-1;

(stegavstånd i Z-riktning, varje rörelse är 1 mm)

OM〔#1 GE -c〕GOTO1; c: bearbetningslängden för ellipsen i z-riktningen

Parabolisk IF

annan meningsform

#1=a;

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

"plus"-tecknet kan utelämnas

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

#1=#1 plus 1;

OM [#1 LE c] GOTO1;

Om du antar att parabeln är i positiv riktning mot Z, använd sedan Z〔-#1〕; att göra parabeln symmetrisk mot den negativa riktningen

bild

WHILE uttalande

#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 uttalande

#1=0;

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

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

#1=#1-1;

OM [#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 plus 30〕Z〔#1〕;

#1=#1-1;

END1;

G00 X42;

N20 G00 G40 Z2;

G70 P10 Q20;

G00 X200;

Z200;

M5;

M30;

(4) Skillnaden mellan WHILE-satsen och IF-satsen

1) Riktningarna för de två påståendena är olika

WHILE-satsen returneras baklänges

Exempel: WHILE〔#1 GE 20〕DO1;

G01 X〔#1〕F0.2;

Om vi ​​antar att när verktygsmaskinen kör den här meningen #1=20, kommer den att fortsätta att köras. Efter att ha kört #1=#1-1 blir värdet på #1 19, vilket inte längre uppfyller villkoren, så det kommer inte att returneras. (Klipp till 20 i X-riktningen)

G00 X〔#1 plus 1);

#1=#1-1;

END1;

2) IF-utlåtandet går tillbaka

Exempel: N1 #2=#2-1;

G01X〔#2〕F0.2; Om vi ​​antar att #2=20 när verktygsmaskinen exekverar denna mening, kommer den att fortsätta att exekvera tills IF〔#2 GE 20〕GOTO1; om villkoret fortfarande är uppfyllt, kommer det att fortsätta att återgå till N1# 2=#2-1; och det aktuella X-värdet blir 19, vilket inte längre uppfyller begränsningsvillkoren, och kör sedan ett nytt

G01X〔#2〕F0.2; Slutligen, kör följande program (X-riktningen har klippts till 19)

G00X〔#2 plus 1);

IF [#2 GE 20] GOTO1;

3) Som framgår av ovanstående grooving-program är antalet ord i IF-satsen mycket mindre än WHILE-satsen.

4) På grund av de olika returriktningarna, läs en mening mindre för WHILE-satsen och en mening till för IF-satsen under bearbetningen.

04

SIEMENS system (svarv) makroprogramapplikation

Obs: Makroprogrammet är programmerat med variabler och variabelnumret för Siemens-systemet representeras av R.

Till exempel skrivet med vanlig programmeringsmetod: G01X-10

Makroprogrammet kan uttryckas som:

R1=-10

G01 X=R1

Villkorlig överföring:

OM GOTOB: hoppa bakåt

IF GOTOF: hoppa framåt

skriven i vanlig programmering

GO1X100

Variabler kan uttryckas som:

R1=0

AA: R1=R1 plus 1

G01X=R1

OM R1<100 GOTOB AA

R1 är en oberoende variabel, startvärdet är 0, R1=R1 plus 1 betyder att det inkrementella värdet för den oberoende variabeln är 1, när programmet går igenom denna rad varje gång, värdet på R1 ökar 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

Om R1 är större än eller lika med 100 går programmet ner.

Makroprogram kan användas i både G90- och G91-läge, men deras betydelser är olika, till exempel;

R1=0, G90R1=R1 plus 1, G1X=R1, värdet på X efter det andra passet i detta program är 2.

R1=0, G91R1=R1 plus 1, G1X=R1, värdet på X efter det andra passet i programmet är 3. Förklaring: Värdet på R1 är 1 efter det första pass av programmet, och värdet på R1 är det andra passet. Det är 2, men i G91-läge är det baserat på det föregående.

(1) Räfflor

bild

T1

TC

T1D1

G0G40X100Z100

M03S1000

G0X54Z2

Nå snabbt startpunkten

Z-10

R1=3

Definiera bladets bredd som 3 mm

R2=-10-R1-0.2

Verktygets startpunkt är -10 och den vänstra sidan av bladet används när du ställer in verktyget;

Verktygsinställning, så att bladets bredd bör subtraheras, 0.2 är efterbehandlingsmånen

G1Z=R2F0.1

Verktyget når startpunkten för Z-axeln

AA:R2=R2-2.5

R3=50

X-axeln i spåret når punkten

BB: R3=R3-2

Definiera skärdjupet för varje kniv som 2 mm

G1X=R3

X=R3 plus 1

0.5 mm spånborttagning på ena sidan varje 2 mm skärdjup

IF R3>30 plus 0,4 GOTOB BB

Define the groove depth as 10mm, if R3>30mm, programmet hoppar bakåt till markeringen BB, och 0,4 är efterbehandlingsmånen

G0X50

Verktyget når startpunkten för X-axeln

G1Z=R2

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

Definiera spårets bredd som 20mm, och 0,2 är finbearbetningsmånen

G0X50

G01Z-13

efterbehandling

X30

Z-16

G0X50

Z-30

G01X30

Z-16

G0X50

Dra tillbaka

G0X100

Z100

M05

M30

(2) Ellips

1) Grundformat

R1=0

Definiera variabeln R1 med ett initialt värde på 0

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

Enligt ellipsekvationen är a ellipsens halvstoraxel, b är ellipsens halvmajoraxel och SQRT är kvadratrotsymbolen.

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

Ställ in ellipsens position och form, plus 2 är konvex, -2 är konkav, X, Z är avstånden mellan arbetsstyckets axel och ellipsens axel (diametersystem).

R1=R1-1

Ställ in bearbetningssteget

IF R1>=n ​​GOTOB AA

Om variabeln R1

2) Programmeringsexempel:

bild

T1D1

G0G40X100Z100

M3S1000

G0X52Z2

Z-20

CYKEL95 ( )

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

Ställ in initialvärdet för variabel R1 till 0

AA: R2=SQRT(-R1×n)

Erhålls enligt parabelns grundformat, där SQRT är kvadratrotssymbolen och n är koefficienten

G01X=2×R2 plus n

Z=R1

Bearbetningsväg, plus 2 är konvex, n är värdet för startpunkten för X-axeln

R1=R1-1

Det variabla ökningsvärdet är 1 mm

IF R1>-30 GOTOB AA

If the variable R1>-30, programmet hoppar bakåt till märket: AA

2) Programmeringsexempel:

bild

T1

Tc

T1D1

G0G40X100Z100

M03S1000

G0X52Z2

CYKEL95 ( )

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

Skicka förfrågan

whatsapp

skype

E-post

Förfrågning