Systém S2000 umožňuje budovat knihovnu podprogramů a externích funkcí.
Každý podprogram nebo externí funkce je uložen v samostatném souboru, jehož název jednoznačně definuje jeho typ (podprogram = L, funkce = G) a číslo.
Podprogramy jsou části CNC programu které jsou volány z hlavního programu pomocí adresy L. Hodnota adresy určuje v prvním dvojčíslí číslo podprogramu a v druhém dvojčíslí počet opakování, např. L9602 volá dvakrát podprogram L9600. Jméno podprogramu musí začínat písmenem L, které je následováno dvojmístným číslem podprogramu a dvěma nulami (např. L0200.SUF). Každý podprogram musí končit funkcí M17 nebo klíčovým slovem RETURN.
Lze používat i dvou- a třímístná čísla podprogramů, v takovém případě se podprogram volá jen jednou a jeho číslo přesně odpovídá číslu volání.
Příklad - soubor L105.SUF v adresáři LIB - fragment zapichovacího cyklu:
Volání podprogramu L105 z hlavního programu:
Externí funkce umožňují zavést ty G funkce, které nejsou implementovány přímo v systému S2000. Součástí systému je příklad externí funkce G82, která realizuje cyklus ubírání třísky, kuželový obrys podle normy PAL. Externí funkce musí být uložena do souboru se stejným jménem jako je vykonávaná funkce (G82.SUF). Také externí funkce musí končit M17 nebo RETURN.
Externí funkci se předávají hodnoty adres v parametrech P podle následujícího klíče:
P100 |
X (vždy absolutní) |
P101 |
Y |
P102 |
Z (vždy absolutní) |
P103 |
F |
P104 |
R |
P105 |
I |
P106 |
J |
P107 |
K |
P108 |
H |
P109 |
S |
P110 |
D |
P111 |
T |
P130 |
A |
P131 |
B |
P132 |
C |
P133 |
E |
P134 |
L |
P135 |
Q |
P136 |
U |
P137 |
V |
P138 |
W |
Podprogramu i externí funkci se předávají některé důležité aktuální hodnoty:
P112 |
aktuální otáčky vřetene (kladné - M03, záporné M04) |
P113 |
poloha špičky nástroje vzhledem k souřadnému systému (1-9, 10 = vrták) |
P114 |
poloměr špičky aktuálního nástroje |
P115 |
vždy 18 (rovina XZ = G18) |
P116 |
0 - absolutní, 1 - inkrementální programování |
P117 |
aktuální poloha X (absolutní) |
(P118) |
aktuální poloha Y |
P119 |
aktuální poloha Z (absolutní) |
P125 |
0 - poloměrové programování, 1 - průměrové programování |
P126 |
0 - posuvy na otáčku, 1 - posuvy za minutu |
P127 |
1 - konstantní řezná rychlost, jinak = 0 |
P128 |
typ korekce (40, 41, 42), odpovídá funkcím G40, G41, G42 |
P129 |
šířka aktuálního nástroje tj. rozdíl mezi primární a sekundární Z - korekcí. Ze znaménka a z přiřazení korekcí rohům nástroje P129 lze určit nulový bod nástroje. Příklad: Primární korekce je v levém rohu zapichovacího nože a sekundární korekce je v pravém rohu, pak je hodnota P129 kladná a řezná část nástroje vede vpravo od programované polohy nástroje. Význam P129 je pro zapichovací cykly, kde je nutno zohlednit šířku nástroje. |
P120, P121, P122 jsou vyhrazeny pro dotykovou sondu
P123, P124, P139 - rezervováno
Při vstupu do externí funkce je automaticky zapnuto absolutní programování, při ukončení funkce je obnoven původní stav (absolutní nebo inkrementální).
Do funkcí i podprogramů se předávají aktuální hodnoty parametrů P0 - P99. Tyto parametry vystupují dále jako lokální, tzn. změna jejich hodnoty uvnitř funkce či podprogramu se v hlavním programu neprojeví.
Při vstupu do podprogramu se zachovává aktuální programování (absolutní nebo inkrementální) podle hlavního programu, po ukončení podprogramu je obnoven původní stav, tj. volání G90 nebo G91 nemá vliv na hlavní program.
Při psaní vlastních podprogramů je nutno dávat pozor na rekurzi, tj. aby podprogram či funkce nevolaly samy sebe.
Příklad pevného cyklu G82.SUF:
Viz také |
|
Pomocné funkce | |
Adresy funkcí | |
Obsah |