Tento seriál o NC programování již v minulých kapitolách věnoval velkou míru pozornosti základní struktuře tzv. hlavního programu v I SO formátu pro řídicí systém Sinumerik 810D/840D. V jednotlivých stručných ukázkách byly použity standardní i specializované funkce a pozornost se zaměřila i na jeden ze zjednodušujících kroků při programování, kterým je implementace specializovaných cyklů (seznam cyklů viz Akademie CNC obrábění č. 40). Dnešní díl rozšíří tuto popisovanou problematiku o způsob NC programování s využitím podprogramů.
Veškeré doposud rozebírané funkce/bloky G-kódu je možno využít i při psaní tzv. podprogramů, přičemž se v podstatě jedná jen o rozdělení „komplikovaného“ NC programu do několika samostatných souborů, z nichž každý popisuje jen určitou část výroby součásti. Např. jeden soubor obsahuje technologii výroby jednoho specializovaného otvoru, který je nutno navrtat, vrtat a následně zahloubit. Hlavní program pak specifikuje, jaká bude poloha prvku. Jak se však daný technologický prvek bude obrábět (řezné podmínky), jakými nástroji a případně jaké má charakteristické rozměry, to je specifikováno v podprogramu společně s jednotlivými cykly pro výrobu tohoto otvoru (cykly navrtání, vrtání, zahloubení).
Principiálně tedy není mezi hlavním programem a podprogramem výrazný rozdíl. Oba mohou obsahovat polohové informace i příkazy pro aktivaci/deaktivaci strojních prvků. V případech, kdy se však určitý prvek (např. speciální tvarová dutina) vícekrát opakuje nebo je shodný pro více druhů vyráběných součástí, je možno ho naprogramovat jen jednou v podprogramu a hlavním programem nebo různými hlavními programy ho jen vyvolat. (Pozn.: V mnoha případech je možno plnohodnotně obrábět i samostatným podprogramem.)
Strukturu podprogramu je tedy možno vytvořit zcela shodně, jako již bylo popsáno např. v akademii č. 17 tohoto seriálu. Jen zakončující blok neobsahuje slovo M30 či M2, ale je nutno použít slovo M17, které ukončuje podprogram a realizuje skok zpět do hlavního programu na řádek následující po volání podprogramu. V případě, že je však z hlavního programu jako podprogram vyvolán druhý hlavní program, pak jeho běžné zakončení slovem M30 či M2 je automaticky řídicím systémem vyhodnoceno jako funkce M17, která realizuje standardní návratový skok do prvního hlavního programu. Upozornit je vhodné na to, že je-li v NC programu používána/aktivována funkce G64 (Pozn.: Funkce G64 již byla popsána v předchozích dílech této akademie.), je funkcí M17 automaticky deaktivována a dále je v platnosti přesné najetí G60. Jednou z možností jak zajistit platnost funkce G64 i po opuštění podprogramu, je realizovat jeho zakončení funkcí RET (namísto M17).
V případě práce s více různými podprogramy je vhodné zvolit systém jejich značení. Název souboru podprogramu umožňuje používat alfa-numerické znaky, jsou zde však obdobná omezení jako u hlavních programů. Např. slovní označení může mít max. 31 znaků, z nichž první dva znaky musí být písmena a není vhodné používat žádné oddělovací znaky. Protože hlavní programy a podprogramy mají různé koncovky, je nutno dát pozor, aby neměly shodné názvy. Řídicí systém sice umožní díky rozdílné koncovce založit hlavní program i podprogram se stejným názvem, ale protože současně umožňuje spustit hlavní program i jako podprogram, došlo by k problému „Který soubor je tedy skutečně volán?“
Pro skok do podprogramu běžně není používána žádná specializovaná G, M nebo H funkce. Skok je v bloku NC programu definován zapsáním názvu souboru jiného podprogramu (či druhého hlavního programu, viz text výše) bez tečky a koncovky SPF. Tímto jednoduchým zápisem názvu jiného podprogramu či hlavního programu je dále možno skočit i do další úrovně a volat tak např. druhý podprogram z toho prvně aktivovaného. Celkově je k dispozici 12 úrovní. Z hlavního programu tak lze volat až 11 vzájemně vnořených programů (*.SPF či *.MPF souborů). V této fázi je však nutno ještě upozornit, že v podprogramech se stejně jako v hlavním programu mohou vyskytovat cykly a ty je nutno považovat za další systém automaticky používané úrovně. Poslední cyklus je tedy možno volat na 9. úrovni, poněvadž sám zabírá 3 další úrovně.
Vezmeme-li dále v úvahu např. metodiku programování s aplikací výpočtových funkcí či jen s tzv. R parametry, může se nám výše naznačená základní problematika výrazně zkomplikovat. R parametry tedy budou popsány až v některé z dalších volně navazujících kapitol a dnes uvedené texty jsou závěrem jen shrnuty do následujícího tříúrovňového schématu.
Hlavní program s názvem:
priklad.mpf (1. úroveň)
MSG(„Hlavni program“) ;textová poznámka
nastaveni ;volání podprogramu
Podprogram s názvem:
nastaveni.spf (2. úroveň)
MSG(„Podprogram“)
G90 ;absolutní programování
G71 ;programování dráhy v mm
nastaveni2 ;volání podprogramu
Podprogram s názvem:nastaveni2.spf (3. úroveň)
MSG(„Podprogram“)
G94 ;dráha v mm/min
G17 ; volba roviny XY
M17 ;návrat z podprogramu
M17 ;návrat z podprogramu
M30 ;konec hlavního programu
Ing. Aleš Polzer, Ph.D.
Článek vznikl za spolupráce ÚST, FSI, VUT v Brně, s firmou Siemens a redakcí Technického týdeníku.