Podprogramy a externí funkce

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:

... G90 G00 Z P23 G00 X P22 G00 X P117 G00 Z P119 RETURN

Volání podprogramu L105 z hlavního programu:

P22 = 10 //souřadnice X (průměr) P23 = 50 //souřadnice Z L105

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: G1 Z P102 F P103 G0 Z P119 M17 Způsob volání: G82 Z-17.25 F200

Viz také

Seznam přípravných funkcí a pevných cyklů

Pomocné funkce
Adresy funkcí
Obsah