Jednoducho povedané, makro je použitie vzorcov na spracovanie častí. Napríklad elipsa, ak neexistuje makro, musíme body na krivke vypočítať bod po bode a potom ju pomaly aproximovať priamkou. Ak ide o obrobok s vysokými požiadavkami na hladkosť, potom musíme vypočítať veľa bodov, ale po použití makra vložíme do systému vzorec elipsy a potom zadáme súradnicu Z a zakaždým pridáme množstvo, potom makro automaticky vypočíta súradnicu X a vykoná rezanie. V skutočnosti je hlavnou funkciou makra v programe výpočet.
obrázok
01
O makro programoch
Čo je makroprogram
Pri programovaní uložíme sériu inštrukcií, ktoré dokážu dokončiť určitú funkciu, do pamäte ako podprogram a zavoláme ich všeobecnou inštrukciou. Pri jeho používaní nám stačí zadať tento všeobecný pokyn na vykonanie uloženej funkcie. Táto séria inštrukcií sa nazýva telo používateľského makro programu alebo skrátene makroprogram.
Tento všeobecný príkaz sa nazýva príkaz volania užívateľského makra. Pri programovaní si programátori potrebujú zapamätať iba makro inštrukcie, ale nie makroprogramy.
Kedy sa použije programovanie makier?
1) Manuálne naprogramovaná krivka vzorca spracovania (jednoduchý výpočet, rýchle zadanie)
2) Pravidelná rezná dráha (ako rezací modul)
3) Medziprogramová kontrola (plánovanie programu)
4) Správa nástrojov (opotrebenie nástrojov)
5) Automatické meranie (sonda v stroji)
Rozdiel medzi makroprogramom a normálnym programom
1) V tele makro programu je možné používať premenné, priraďovať hodnoty k premenným, vykonávať výpočty medzi premennými a preskakovať programy.
2) V bežných programoch možno zadať iba konštanty a operácie medzi konštantami nemožno vykonávať. Programy je možné spúšťať iba postupne a nemožno ich preskakovať, takže funkcie sú pevné a nemožno ich meniť.
3) Funkcia makra je špeciálna funkcia pre používateľa na zlepšenie výkonu CNC obrábacieho stroja a šikovné použitie makro programu pri spracovaní podobných obrobkov dosiahne dvojnásobný výsledok s polovičným úsilím.
02
Premenné a formáty makro programov
Vlastnosti makro programov
Makroprogram môže použiť premennú a premennú možno použiť na vykonávanie zodpovedajúcich operácií; aktuálna hodnota premennej môže byť priradená premennej inštrukciou programu makro.
Tri typy premenných
Variabilná forma reprezentácie CNC systému je "#", za ktorou nasledujú 1 až 4 číslice a existujú tri typy premenných:
(1) Lokálne premenné: #1~#33 sú premenné používané lokálne v makroprograme, ktoré sa používajú na prenos nezávislých premenných.
(2) Spoločná premenná: používateľ ju môže voľne používať a je spoločná pre každý podprogram a každý makroprogram volaný hlavným programom. #100~#149, po vypnutí napájania sa všetky hodnoty premenných vymažú, zatiaľ čo #500~#509 po vypnutí napájania je možné hodnoty premenných uložiť.
(3) Systémová premenná: Je definovaná tak, že za ňou nasledujú 4 číslice, môže získať informácie len na čítanie alebo čítanie/zápis obsiahnuté v procesore obrábacieho stroja alebo v pamäti NC, vrátane výmenných parametrov súvisiacich s procesorom obrábacieho stroja, získavanie stavu obrábacieho stroja parametre, systémové informácie, ako sú parametre spracovania.
Jednoduchý formát volania makro programu
Jednoduché volanie programu makra znamená, že v hlavnom programe možno program makra volať po jednom bloku.
Formát vyvolávania:
G65 P (číslo makro programu) L (počet opakovaní) (priradenie premenných).
Medzi nimi: G65 – príkaz na volanie makro programu;
P (číslo makro programu) - kód makro programu, ktorý sa má volať;
L (počet opakovaní) - počet opakovaných spustení makroprogramu, keď je počet opakovaní 1, možno ho vynechať;
(Priradenie premenných) - Priraďte hodnoty premenným používaným v programe makier.
To isté medzi makroprogramom a podprogramom je, že jeden makroprogram môže byť vyvolaný iným makroprogramom, a to až 4-krát.
Formát na písanie makro programu
Formát zápisu makro programu je rovnaký ako formát podprogramu. Jeho formát je:
0-(0001-8999 je číslo programu makier)
príkaz N10
N-M99
V obsahu vyššie uvedeného makroprogramu je možné okrem bežne používaných programovacích inštrukcií použiť aj premenné, aritmetické operácie a iné riadiace inštrukcie. Hodnota premennej je priradená v inštrukcii volania programu makra.
03
Aplikácia makro programu systému FANUC
(1) Makro programové drážkovanie
obrázok
1) vyhlásenie WHILE
G00 X52 Z2;
#2=-14;
Je to počiatočný bod nástroja v smere z (pretože šírka nástroja je 4 mm, počiatočný bod je nastavený na Z-14)
WHILE [#2 GE -30] DO2;
Je to obmedzenie v smere z. Keď sa z rovná -30, smer z sa už nebude pohybovať
G00 Z〔#2〕;
Aktuálna poloha v smere z
#2=#2-2;
Pohyblivý krok v smere z, vždy o 2 mm
#1=52;
je počiatočný bod noža v smere x
WHILE [#1 GE 20] DO1;
Obmedzenia v smere X, keď sa priemer rovná 20, už nebude rezať
G01 X〔#1〕F0.2;
Hĺbka rezu v smere x
G00 X〔#1 plus 1〕;
Relatívna miera stiahnutia v smere x
#1=#1-1;
Vzdialenosť krokov v smere x (zakaždým odrežte 1 mm)
END1;
G00 X52;
KONIEC2;
Kompletný 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
WHILE〔#1GE20〕DO1;
G01X〔#1〕F0.2;
G00X〔#1 plus 1〕;
#1=#1-1;
G00 X52;
KONIEC2;
G00 X150 Z150;
M30;
2) Výpis IF
G00 X52 Z-2;
#1=-14;
Je to počiatočný bod v smere Z nástroja (šírka nástroja je 4 mm)
N2 #1=#1-2;
je krok pohybu v smere z
#2=52;
je počiatočný bod nástroja v smere x
N1#2=#2-1;
je vzdialenosť kroku v smere x (hĺbka rezu vždy 1 mm)
G01 X〔#2〕F0.2;
Aktuálna poloha v smere X
G00 X〔#2 plus 1〕;
Relatívna miera stiahnutia v smere X
IF [#2 GE 21] GOTO1;
Obmedzenia v smere x (keď sa hodnota x zníži na 20, vykoná sa nasledujúci postup a nedôjde k návratu)
G00 X52;
X sa stiahne do polohy 52
G00 Z〔#1〕;
Aktuálna poloha v smere Z
AK [#1 GE -30] GOTO2;
Obmedzenia v smere Z, keď sa z rovná -30, smer z sa 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) Programovanie elipsy
1) Štandardný formát elipsy príkazu WHILE:
#1=a;
a: Počiatočný bod nástroja je v kladnom smere a mm vzhľadom na os Z elipsy
WHILE [#1 GE b] DO1;
b: Koncový bod spracovania elipsy je v zápornom smere b mm vzhľadom na os Z elipsy (ak sa spracováva celá polelipsa, potom aab sú dve hodnoty s rovnakou hodnotou a rôznymi znamienkami)
#2= c*SQRT[1-#1*#1/d*d];
c: vedľajšia os elipsy
d: hlavná poloos elipsy (vypočítajte #2 podľa vzorca pre elipsu, hlavná poloos je d, vedľajšia os je c, #2 predstavuje hodnotu X, #1 je hodnota Z a SQRT znamená druhú odmocninu)
G01 X〔±2*#2 plus e〕Z〔#1±f〕;
e: Odsadenie (hodnota priemeru) osi X elipsy vzhľadom na súradnicový systém obrobku
f: Odsadenie osi Z elipsy vzhľadom na súradnicový systém obrobku
#1=#1-1; kroková vzdialenosť (zakaždým sa posunie o 1 mm)
END1;
Poznámka: Pri otáčaní konkávnej elipsy sa "±" v zátvorkách za X považuje za "-"; pri otáčaní konvexnej elipsy sa "±" v zátvorke za X považuje za "plus".
Keď sa os X elipsy posunie do kladného smeru, "±" v zátvorkách za Z nadobúda "plus"; keď sa os X elipsy posunie do záporného smeru, "±" v zátvorkách za Z nadobúda "-"
2) Štandardný formát eliptického príkazu IF
#1=a;
a: Počiatočný bod nástroja je v kladnom smere a mm vzhľadom na os Z elipsy
N1#2=b*SQRT〔1-#1*#1/c*c〕;
b: polokrátka os elipsy c: hlavná poloos elipsy (podľa vzorca elipsy X/c plus Y/b=1, SQRT znamená druhú odmocninu)
G01X〔±2*#2 plus d〕Z〔#1±e〕F0,2; d: posun (hodnota priemeru) osi X elipsy vzhľadom na súradnicový nulový bod e: os Z elipsy vzhľadom na nulovú rovinu Posun
#1=#1-1;
Kroková vzdialenosť (zakaždým sa posunie o 1 mm)
AK [#1 GE -f] GOTO1
f: Ukončenie spracovania elipsy
Poznámka: Pri otáčaní konkávnej elipsy sa "±" v zátvorkách za X považuje za "-"; pri otáčaní konvexnej elipsy sa "±" v zátvorke za X považuje za "plus". Keď sa os X elipsy odchýli do kladného smeru, "±" v zátvorkách za Z nadobúda "plus"; keď sa os X elipsy odchýli do záporného smeru, "±" v zátvorkách za Z nadobúda "-".
obrázok
vyhlásenie 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;
END1;
vyhlásenie 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;
END1;
G00 X50;
N20 G00 G40 Z2;
G70 P10 Q20;
G00 X200;
Z200;
M5;
M30;
Úplný formát príkazu IF je vynechaný (to isté platí pre príkaz IF, pokiaľ sa pridáva cyklus). V systéme FANUC-0i je možné makro program pridať iba v G73.
(3) Spracovanie paraboly
1) Štandardný formát parabolického príkazu WHILE:
#1=a;
a: Počiatočný bod nástroja je mm v smere parabolickej osi Z
WHILE [#1 GE -b] DO1;
b: je dĺžka spracovania elipsy v smere z
#2=SQRT〔-#1*5/3〕;
(Podľa parabolického vzorca Z=-3/5*X*X nájdite hodnotu X, ktorá je #2, kde SQRT znamená druhú odmocninu)
G01 X〔±2*#2 plus c〕Z〔#1〕;
c: je posun (hodnota priemeru) osi X paraboly vzhľadom na súradnicový systém obrobku, "±"
Pri odbere „plus“ je konvexný a pri odbere „-“ je konkávny
#1=#1-1; Kroková vzdialenosť (zakaždým sa posunie o 1 mm)
END1;
2) Štandardný formát parabolického príkazu IF
#1=a;
a: Počiatočný bod nástroja je mm v smere parabolickej osi Z
N1 #2=SQRT〔-#1*5/3〕;
(Podľa parabolického vzorca Z=-3/5*X*X nájdite hodnotu X, ktorá je #2, kde SQRT znamená druhú odmocninu)
G01 X〔±2*#2 plus b〕Z〔#1〕;
b: Je to posun (hodnota priemeru) osi X paraboly vzhľadom na nulový bod súradníc. Keď „±“ berie „plus“, je konvexné, a keď sa berie „-“, je konkávne
#1=#1-1;
(vzdialenosť kroku v smere Z, každý pohyb je 1 mm)
IF〔#1 GE -c〕GOTO1; c: dĺžka spracovania elipsy v smere z
Parabolické IF
iná forma vety
#1=a;
N1 #2=SQRT〔( plus )#1*5/3〕;
Znamienko "plus" možno vynechať
G01 X〔2*#2 plus b〕Z〔-#1〕;
#{{0}1 plus 1;
IF [#1 LE c] GOTO1;
Za predpokladu, že parabola je v kladnom smere Z, potom použite Z〔-#1〕; aby bola parabola symetrická k zápornému smeru
obrázok
vyhlásenie WHILE
#1=0;
WHILE [#1 GE -15] DO1;
#2=SQRT〔-#1*5/3〕;
G01 X〔2*#2 plus 30〕Z〔#1〕;
#1=#1-1;
END1;
vyhlásenie IF
#1=0;
N1 #2=SQRT〔-#1*5/3〕;
G01X〔2*#2 plus 30〕Z〔#1〕;
#1=#1-1;
AK [#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;
END1;
G00 X42;
N20 G00 G40 Z2;
G70 P10 Q20;
G00 X200;
Z200;
M5;
M30;
(4) Rozdiel medzi príkazom WHILE a príkazom IF
1) Smery týchto dvoch vyhlásení sú odlišné
Príkaz WHILE sa vráti späť
Príklad: WHILE〔#1 GE 20〕DO1;
G01 X〔#1〕F0.2;
Za predpokladu, že keď obrábací stroj vykoná túto vetu #1=20, bude pokračovať vo vykonávaní. Po vykonaní #1=#1-1 sa hodnota #1 zmení na 19, ktorá už nespĺňa obmedzujúce podmienky, takže sa nevráti. (Zrežte na 20 v smere X)
G00 X〔#1 plus 1);
#1=#1-1;
END1;
2) Príkaz IF sa vráti dopredu
Príklad: N1 #2=#2-1;
G01X〔#2〕F0,2; Za predpokladu, že #2=20, keď obrábací stroj vykoná túto vetu, bude pokračovať vo vykonávaní, kým IF〔#2 GE 20〕GOTO1; ak je podmienka stále splnená, bude sa naďalej vracať na N1# 2=#2-1; a aktuálna hodnota X sa zmení na 19, ktorá už nespĺňa obmedzujúce podmienky, a potom vykonajte inú
G01X〔#2〕F0,2; Nakoniec vykonajte nasledujúci program (smer X bol skrátený na 19)
G00X〔#2 plus 1);
IF [#2 GE 20] GOTO1;
3) Ako je možné vidieť z vyššie uvedeného programu na zapichovanie, počet slov v príkaze IF je oveľa menší ako v príkaze WHILE.
4) Vzhľadom na rôzne smery návratu si počas spracovania prečítajte o jednu vetu menej pre príkaz WHILE a o jednu vetu viac pre príkaz IF.
04
Aplikácia makro programu systému SIEMENS (sústruh).
Poznámka: Makroprogram je naprogramovaný s premennými a číslo premennej systému Siemens je reprezentované R.
Napríklad napísané v bežnej programovacej metóde: G01X-10
Makroprogram môže byť vyjadrený ako:
R1=-10
G01 X=R1
Podmienený prevod:
AK GOTOB: skok dozadu
AK GOTOF: skok dopredu
napísané v bežnom programovaní
GO1X100
Premenné môžu byť vyjadrené ako:
R1=0
AA: R1=R1 plus 1
G01X=R1
IF R1<100 GOTOB AA
R1 je nezávislá premenná, počiatočná hodnota je 0, R1=R1 plus 1 znamená, že prírastková hodnota nezávislej premennej je 1, keď program zakaždým prechádza cez tento riadok, hodnota R1 sa zvýši 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
Ak je R1 väčšie alebo rovné 100, program sa vypne.
Makroprogramy je možné použiť v režime G90 aj G91, ale ich význam je odlišný napr.
R1=0, G90R1=R1 plus 1, G1X=R1, hodnota X po druhom prechode tohto programu je 2.
R1=0, G91R1=R1 plus 1, G1X=R1, hodnota X po druhom prechode programu je 3. Vysvetlenie: Hodnota R1 je 1 po prvom priechod programu a hodnota R1 je druhý priechod Je to 2, ale v režime G91 vychádza z predchádzajúceho.
(1) Drážkovanie
obrázok
T1
TC
T1D1
G0G40X100Z100
M03S1000
G0X54Z2
Rýchlo dosiahnuť východiskový bod
Z-10
R1=3
Šírku čepele definujte ako 3 mm
R2=-10-R1-0.2
Počiatočný bod nástroja je -10 a pri nastavovaní nástroja sa používa ľavá strana čepele;
Nastavenie nástroja, takže šírka čepele by sa mala odpočítať, 0.2 je prídavok na dokončenie
G1Z=R2F0.1
Nástroj dosiahne začiatočný bod osi Z
AA:R2=R2-2.5
R3=50
Os X drážky dosahuje bod
BB: R3=R3-2
Definujte hĺbku rezu každého noža ako 2 mm
G1X=R3
X=R3 plus 1
0Odstraňovanie triesky 0,5 mm na jednej strane pri každých 2 mm hĺbke rezu
IF R3>30 plus 0,4 GOTOB BB
Define the groove depth as 10mm, if R3>30 mm, program preskočí späť na značku BB a 0,4 je prídavok na dokončenie
G0X50
Nástroj dosiahne začiatočný bod osi X
G1Z=R2
IF R2>{{0}} plus 0,2 GOTOB AA
Šírku drážky definujte ako 20 mm a 0,2 je prídavok na dokončenie
G0X50
G01Z-13
dokončovacie
X30
Z-16
G0X50
Z-30
G01X30
Z-16
G0X50
Odstúpiť
G0X100
Z100
M05
M30
(2) Elipsa
1) Základný formát
R1=0
Definujte premennú R1 s počiatočnou hodnotou 0
AA:R2=b×SQRT(1-R1×R1/a×a)
Podľa rovnice elipsy a je hlavná poloos elipsy, b je vedľajšia polos elipsy a SQRT je symbol druhej odmocniny.
G1X=±2×R2 plus XZ=R1-Z
Nastavte polohu a tvar elipsy, plus 2 je konvexná, -2 je konkávna, X, Z sú vzdialenosti medzi osou obrobku a osou elipsy (systém priemerov).
R1=R1-1
Nastavte krok spracovania
IF R1>=n GOTOB AA
Ak premenná R1
2) Príklad programovania:
obrázok
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
Nastaviť počiatočnú hodnotu premennej R1 na 0
AA: R2=SQRT(-R1×n)
Získané podľa základného formátu paraboly, kde SQRT je symbol druhej odmocniny a n je koeficient
G01X=2×R2 plus n
Z=R1
Cesta spracovania plus 2 je konvexná, n je hodnota počiatočného bodu osi X
R1=R1-1
Hodnota variabilného prírastku je 1 mm
IF R1>-30 GOTOB AA
If the variable R1>-30, program preskočí späť na značku: AA
2) Príklad programovania:
obrázok
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




