Jednoduše řečeno, makro má používat vzorce ke zpracování dílů. Například elipsa, pokud neexistuje žádné makro, potřebujeme body na křivce vypočítat bod po bodu a pak ji pomalu aproximovat přímkou. Pokud se jedná o obrobek s vysokými požadavky na hladkost, musíme vypočítat mnoho bodů, ale po aplikaci makra zadáme do systému vzorec elipsy a poté zadáme souřadnici Z a pokaždé přidáme množství, pak makro automaticky vypočítá souřadnici X a provede řezání. Ve skutečnosti je hlavní funkcí makra v programu výpočet.
obrázek
01
O makro programech
Co je makroprogram
Při programování uložíme do paměti řadu instrukcí, které dokážou dokončit určitou funkci jako podprogram, a zavoláme je obecnou instrukcí. Při jeho použití stačí zadat tuto obecnou instrukci k provedení uložené funkce. Tato řada instrukcí se nazývá tělo uživatelského makro programu, zkráceně makro program.
Tento obecný příkaz se nazývá příkaz volání uživatelského makra. Při programování si programátoři potřebují zapamatovat pouze makro instrukce, ale ne makro programy.
Kdy bude použito programování maker?
1) Ručně naprogramovaná křivka vzorce pro zpracování (jednoduchý výpočet, rychlé zadání)
2) Pravidelná řezná dráha (jako řezný modul)
3) Meziprogramová kontrola (plánování programu)
4) Správa nástrojů (opotřebení nástroje)
5) Automatické měření (sonda ve stroji)
Rozdíl mezi makroprogramem a normálním programem
1) V těle makro programu lze používat proměnné, přiřazovat hodnoty proměnným, provádět výpočty mezi proměnnými a přeskakovat programy.
2) V běžných programech lze zadat pouze konstanty a nelze provádět operace mezi konstantami. Programy lze spouštět pouze postupně a nelze je přeskakovat, takže funkce jsou pevně dané a nelze je měnit.
3) Funkce makro je speciální funkce pro uživatele ke zlepšení výkonu CNC obráběcího stroje a šikovné použití makro programu při zpracování podobných obrobků dosáhne dvojnásobného výsledku s polovičním úsilím.
02
Proměnné a formáty makro programů
Vlastnosti makro programů
Makro program může použít proměnnou a proměnnou lze použít k provádění odpovídajících operací; aktuální hodnotu proměnné lze proměnné přiřadit instrukcí makro programu.
Tři typy proměnných
Proměnná reprezentace systému CNC je "#" následovaná 1 až 4 číslicemi a existují tři typy proměnných:
(1) Lokální proměnné: #1~#33 jsou proměnné používané lokálně v makro programu, které se používají pro přenos nezávislých proměnných.
(2) Společná proměnná: uživatel ji může volně používat a je společná pro každý podprogram a každý makroprogram volaný hlavním programem. #100~#149, po vypnutí napájení se všechny hodnoty proměnných vymažou, zatímco #500~#509 po vypnutí napájení lze hodnoty proměnných uložit.
(3) Systémová proměnná: Je definována tak, že následují 4 číslice, může získat informace pouze pro čtení nebo čtení/zápis obsažené v procesoru obráběcího stroje nebo paměti NC, včetně výměnných parametrů souvisejících s procesorem obráběcího stroje, získávání stavu obráběcího stroje parametry, systémové informace, jako jsou parametry zpracování.
Jednoduchý formát volání makro programu
Jednoduché volání programu makra znamená, že v hlavním programu lze program makra volat po jednom bloku.
Formát vyvolání:
G65 P (číslo makroprogramu) L (počet opakování) (proměnné přiřazení).
Mezi nimi: G65 – příkaz volání makro programu;
P (číslo makro programu) - kód makro programu, který má být volán;
L (počet opakování) - počet opakovaných spuštění makroprogramu, při počtu opakování 1 lze vynechat;
(Přiřazení proměnných) - Přiřaďte hodnoty proměnným použitým v programu maker.
Totéž mezi makroprogramem a podprogramem je, že jeden makroprogram může být vyvolán jiným makroprogramem, a to až 4krát.
Formát zápisu makro programu
Formát zápisu makroprogramu je stejný jako u podprogramu. Jeho formát je:
0-(0001-8999 je číslo programu maker)
příkaz N10
N-M99
V obsahu výše uvedeného makroprogramu lze kromě běžně používaných programovacích instrukcí použít také proměnné, instrukce aritmetických operací a další řídicí instrukce. Hodnota proměnné je přiřazena v instrukci volání programu makra.
03
Aplikace makroprogramu systému FANUC
(1) Makro programové drážkování
obrázek
1) prohlášení WHILE
G00 X52 Z2;
#2=-14;
Je to počáteční bod nástroje ve směru z (protože šířka nástroje je 4 mm, počáteční bod je nastaven na Z-14)
WHILE % 5b% 232 GE % 7b% 7b1% 7d% 7d% 5d DO2% 3b
Je to omezení ve směru z. Když se z rovná -30, směr z se již nebude pohybovat
G00 Z〔#2〕;
Aktuální poloha ve směru z
#2=#2-2;
Pohybující se krok ve směru z, pohyb pokaždé o 2 mm
#1=52;
je počáteční bod nože ve směru x
WHILE % 5b% 231 GE 20% 5d DO1% 3b
Omezení ve směru X, když je průměr roven 20, již nebude řezat
G01 X〔#1〕F0.2;
Hloubka řezu ve směru x
G00 X〔#1 plus 1〕;
Relativní velikost zatažení ve směru x
#1=#1-1;
Kroková vzdálenost ve směru x (pokaždé seřízněte 1 mm)
KONEC1;
G00 X52;
KONEC2;
Kompletní program:
O1234;
G40 G97 G99;
T0101;
S1000 M3;
G00 X52 Z2;
#2=-14;
WHILE〔#2GE-30〕DO2; KONEC1;
G00 Z〔#2〕;
#2=#2-2;
#1=52
WHILE〔#1GE20〕DO1;
G01X〔#1〕F0.2;
G00〔#1 plus 1〕;
#1=#1-1;
G00 X52;
KONEC2;
G00 X150 Z150;
M30;
2) Příkaz IF
G00 X52 Z-2;
#1=-14;
Je to počáteční bod nástroje ve směru Z (šířka nástroje je 4 mm)
N2 #1=#1-2;
je pohybový krok ve směru z
#2=52;
je počáteční bod nástroje ve směru x
N1#2=#2-1;
je vzdálenost kroku ve směru x (hloubka řezu pokaždé 1 mm)
G01 X〔#2〕F0.2;
Aktuální poloha ve směru X
G00 X〔#2 plus 1〕;
Relativní velikost zatažení ve směru X
IF [#2 GE 21] GOTO1;
Omezení ve směru x (když je hodnota x snížena na 20, bude proveden následující postup a nebude proveden žádný návrat)
G00 X52;
X se stáhne do polohy 52
G00 Z〔#1〕;
Aktuální poloha ve směru Z
IF [#1 GE -30] GOTO2;
Omezení ve směru Z, když se z rovná -30, směr z se nepohne
Kompletní 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〕;
IF〔#2GE21〕GOTO1;
G00X52;
G00Z〔#1〕;
IF[#1GE-30]GOTO2;
G00X200;
Z200;
M5;
M30;
(2) Programování elipsy
1) Standardní formát příkazu elipsa WHILE:
#1=a;
a: Počáteční bod nástroje je v kladném směru a mm vzhledem k ose Z elipsy
WHILE [#1 GE b] DO1;
b: Koncový bod zpracování elipsy je v záporném směru b mm vzhledem k ose Z elipsy (pokud se zpracovává úplná půlelipsa, pak aab jsou dvě hodnoty se stejnou hodnotou a různými znaménky)
#2= c*SQRT[1-#1*#1/d*d];
c: vedlejší osa elipsy
d: hlavní poloosa elipsy (vypočítejte #2 podle vzorce pro elipsu, hlavní poloosa je d, vedlejší osa je c, #2 představuje hodnotu X, #1 je hodnota Z a SQRT znamená druhou odmocninu)
G01 X〔±2*#2 plus e〕Z〔#1±f〕;
e: Odsazení (hodnota průměru) osy X elipsy vzhledem k souřadnému systému obrobku
f: Odsazení osy Z elipsy vzhledem k souřadnému systému obrobku
#1=#1-1; kroková vzdálenost (pokaždé se posune o 1 mm)
KONEC1;
Poznámka: Při otáčení konkávní elipsy se "±" v závorce za X bere jako "-"; při otáčení konvexní elipsy se "±" v závorce za X bere jako "plus".
Když se osa X elipsy posune do kladného směru, "±" v závorkách za Z nabývá "plus"; když se osa X elipsy posune do záporného směru, "±" v závorkách za Z nabývá "-"
2) Standardní formát eliptického příkazu IF
#1=a;
a: Počáteční bod nástroje je v kladném směru a mm vzhledem k ose Z elipsy
N1#2=b*SQRT〔1-#1*#1/c*c〕;
b: polokrátká osa elipsy c: hlavní poloosa elipsy (podle vzorce elipsy X/c plus Y/b=1 SQRT znamená druhou odmocninu)
G01X〔±2*#2 plus d〕Z〔#1±e〕F0,2; d: offset (hodnota průměru) osy X elipsy vzhledem k nulovému bodu souřadnic e: osa Z elipsy vzhledem k nulové rovině Offset
#1=#1-1;
Kroková vzdálenost (pokaždé o 1 mm)
POKUD [#1 GE -f] GOTO1
f: Ukončení zpracování elipsy
Poznámka: Při otáčení konkávní elipsy se "±" v závorce za X bere jako "-"; při otáčení konvexní elipsy se "±" v závorce za X bere jako "plus". Když se osa X elipsy odchýlí do kladného směru, "±" v závorkách za Z nabývá "plus"; když se osa X elipsy odchýlí do záporného směru, "±" v závorce za Z nabývá "-".
obrázek
prohlášení WHILE
#1=20;
WHILE〔#1GE-20〕DO1;
#2=10*SQRT〔{{1}#1*#1/400〕;
G01X〔-2*#2 plus 50〕Z〔#1-25〕;
#1=#1-1;
KONEC1;
prohlášení IF
#1=20;
N1#2=10*SQRT〔{{2}#1*#1/400〕;
G01X〔-2*#2 plus 50〕Z〔#1-25〕F0,2;
#1=#1-1;
IF[#1GE-20]GOTO1;
kompletní 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;
KONEC1;
G00 X50;
N20 G00 G40 Z2;
G70 P10 Q20;
G00 X200;
Z200;
M5;
M30;
Úplný formát příkazu IF je vynechán (totéž platí pro příkaz IF, pokud je přidán cyklus). V systému FANUC-0i lze makro program přidat pouze v G73.
(3) Zpracování paraboly
1) Standardní formát parabolického příkazu WHILE:
#1=a;
a: Výchozí bod nástroje je mm ve směru parabolické osy Z
WHILE % 5b% 231 GE -b% 5d DO1% 3b
b: je délka zpracování elipsy ve směru z
#2=SQRT〔-#1*5/3〕;
(Podle parabolického vzorce Z=-3/5*X*X najděte hodnotu X, což je #2, kde SQRT znamená druhou odmocninu)
G01 X〔±2*#2 plus c〕Z〔#1〕;
c: je offset (hodnota průměru) osy X paraboly vzhledem k souřadnému systému obrobku, "±"
Při odběru "plus" je konvexní a při odběru "-" je konkávní
#1=#1-1; Kroková vzdálenost (pokaždé o 1 mm)
KONEC1;
2) Standardní formát parabolického příkazu IF
#1=a;
a: Výchozí bod nástroje je mm ve směru parabolické osy Z
N1 #2=SQRT〔-#1*5/3〕;
(Podle parabolického vzorce Z=-3/5*X*X najděte hodnotu X, což je #2, kde SQRT znamená druhou odmocninu)
G01 X〔±2*#2 plus b〕Z〔#1〕;
b: Je to offset (hodnota průměru) osy X paraboly vzhledem k nulovému bodu souřadnic. Když "±" vezme "plus", je konvexní, a když se vezme "-", je konkávní
#1=#1-1;
(vzdálenost kroku ve směru Z, každý pohyb je 1 mm)
IF〔#1 GE -c〕GOTO1; c: délka zpracování elipsy ve směru z
Parabolické IF
jiná forma věty
#1=a;
N1 #2=SQRT〔( plus )#1*5/3〕;
Znaménko "plus" lze vynechat
G01 X〔2*#2 plus b〕Z〔-#1〕;
#{{0}1 plus 1;
IF [#1 LE c] GOTO1;
Za předpokladu, že parabola je v kladném směru Z, pak použijte Z〔-#1〕; aby byla parabola symetrická k zápornému směru
obrázek
prohlášení WHILE
#1=0;
WHILE [#1 GE -15] DO1;
#2=SQRT〔-#1*5/3〕;
G01 X〔2*#2 plus 30〕Z〔#1〕;
#1=#1-1;
KONEC1;
prohlášení IF
#1=0;
N1 #2=SQRT〔-#1*5/3〕;
G01X〔2*#2 plus 30〕Z〔#1〕;
#1=#1-1;
IF [#1 GE -15] GOTO1;
kompletní 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;
KONEC1;
G00 X42;
N20 G00 G40 Z2;
G70 P10 Q20;
G00 X200;
Z200;
M5;
M30;
(4) Rozdíl mezi příkazem WHILE a příkazem IF
1) Směry obou tvrzení jsou různé
Příkaz WHILE vrátí zpět
Příklad: WHILE〔#1 GE 20〕DO1;
G01 X〔#1〕F0.2;
Za předpokladu, že když obráběcí stroj vykoná tuto větu #1=20, bude pokračovat v provádění. Po provedení #1=#1-1 se hodnota #1 stane 19, která již nesplňuje omezující podmínky, takže se nevrátí. (Oříznutí na 20 ve směru X)
G00 X〔#1 plus 1);
#1=#1-1;
KONEC1;
2) Příkaz IF se vrátí dopředu
Příklad: N1 #2=#2-1;
G01X〔#2〕F0,2; Za předpokladu, že #2=20, když obráběcí stroj vykoná tuto větu, bude pokračovat ve vykonávání, dokud IF〔#2 GE 20〕GOTO1; pokud je podmínka stále splněna, bude se nadále vracet na N1# 2=#2-1; a aktuální hodnota X se změní na 19, která již nesplňuje omezující podmínky, a poté provede další
G01X〔#2〕F0,2; Nakonec spusťte následující program (směr X byl oříznut na 19)
G00X〔#2 plus 1);
IF [#2 GE 20] GOTO1;
3) Jak je vidět z výše uvedeného programu na zapichování, počet slov v příkazu IF je mnohem menší než v příkazu WHILE.
4) Kvůli různým směrům návratu čtěte během zpracování o jednu větu méně pro příkaz WHILE a o jednu větu více pro příkaz IF.
04
Aplikace makroprogramu systému SIEMENS (soustruh).
Poznámka: Makro program je naprogramován s proměnnými a číslo proměnné systému Siemens je reprezentováno R.
Například napsáno běžnou programovací metodou: G01X-10
Makro program lze vyjádřit jako:
R1=-10
G01 X=R1
Podmíněný převod:
POKUD GOTOB: skok dozadu
IF GOTOF: skok vpřed
napsané v běžném programování
GO1X100
Proměnné lze vyjádřit takto:
R1=0
AA: R1=R1 plus 1
G01X=R1
IF R1<100 GOTOB AA
R1 je nezávislá proměnná, počáteční hodnota je 0, R1=R1 plus 1 znamená, že přírůstková hodnota nezávislé proměnné je 1, když program prochází tímto řádkem pokaždé, hodnota R1 se zvýší o 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
Pokud je R1 větší nebo rovno 100, program se vypne.
Makroprogramy lze používat v režimech G90 i G91, ale jejich význam je například odlišný;
R1=0, G90R1=R1 plus 1, G1X=R1, hodnota X po druhém průchodu tohoto programu je 2.
R1=0, G91R1=R1 plus 1, G1X=R1, hodnota X po druhém průchodu programem je 3. Vysvětlení: Hodnota R1 je 1 po prvním průchod programu a hodnota R1 je druhý průchod Je to 2, ale v režimu G91 je založeno na předchozím.
(1) Drážkování
obrázek
T1
TC
T1D1
G0G40X100Z100
M03S1000
G0X54Z2
Rychle dosáhněte výchozího bodu
Z-10
R1=3
Definujte šířku čepele jako 3 mm
R2=-10-R1-0.2
Počáteční bod nástroje je -10 a při nastavování nástroje se používá levá strana ostří;
Nastavení nástroje, takže šířka ostří by měla být odečtena, 0.2 je přídavek na dokončení
G1Z=R2F0.1
Nástroj dosáhne počátečního bodu osy Z
AA:R2=R2-2.5
R3=50
Osa X drážky dosahuje bodu
BB: R3=R3-2
Definujte hloubku řezu každého nože jako 2 mm
G1X=R3
X=R3 plus 1
0Odebírání třísky 0,5 mm na jedné straně každé 2 mm hloubky řezu
IF R3>30 plus 0,4 GOTOB BB
Define the groove depth as 10mm, if R3>30mm, program skočí zpět na značku BB a 0,4 je přídavek na dokončení
G0X50
Nástroj dosáhne počátečního bodu osy X
G1Z=R2
IF R2>{{0}} plus 0,2 GOTOB AA
Definujte šířku drážky jako 20mm a 0,2 je přídavek na dokončení
G0X50
G01Z-13
dokončovací práce
X30
Z-16
G0X50
Z-30
G01X30
Z-16
G0X50
Ustoupit
G0X100
Z100
M05
M30
(2) Elipsa
1) Základní formát
R1=0
Definujte proměnnou R1 s počáteční hodnotou 0
AA:R2=b×SQRT(1-R1×R1/a×a)
Podle rovnice elipsy je a hlavní poloosa elipsy, b je vedlejší poloosa elipsy a SQRT je symbol druhé odmocniny.
G1X=±2×R2 plus XZ=R1-Z
Nastavte polohu a tvar elipsy, plus 2 je konvexní, -2 je konkávní, X, Z jsou vzdálenosti mezi osou obrobku a osou elipsy (systém průměrů).
R1=R1-1
Nastavte krok zpracování
IF R1>=n GOTOB AA
Pokud proměnná R1
2) Příklad programování:
obrázek
T1D1
G0G40X100Z100
M3S1000
G0X52Z2
Z-20
CYKLUS 95 ( )
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) Parabola
1) Základní formát:
R1=0
Nastavte počáteční hodnotu proměnné R1 na 0
AA: R2=SQRT(-R1×n)
Získáno podle základního formátu paraboly, kde SQRT je symbol druhé odmocniny a n je koeficient
G01X=2×R2 plus n
Z=R1
Cesta zpracování plus 2 je konvexní, n je hodnota počátečního bodu osy X
R1=R1-1
Hodnota proměnného přírůstku je 1 mm
IF R1>-30 GOTOB AA
If the variable R1>-30, program přeskočí zpět na značku: AA
2) Příklad programování:
obrázek
T1
Tc
T1D1
G0G40X100Z100
M03S1000
G0X52Z2
CYKLUS 95 ( )
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




