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




