Dnes se blíže podíváme na některé systémové proměnné, editaci tabulek nástrojů a nulových bodů, zjištění stavu modálních funkcí a také, jak vyvolat chybová hlášení.
Při složitějším programování je užitečné vědět, v jaké poloze se náš stroj nachází, jaké modální funkce jsou spuštěny, jaké rozměry má nástroj atd. Pokud programujeme vlastní obráběcí cykly, bývá dobrým zvykem vrátit modální funkce do stavu, v jakém byly před spuštěním našeho cyklu či podprogramu. Například bude-li náš podprogram obsahovat příkazy G90 či G91, změněný stav se přenese i do hlavního programu. Jestliže chci tento možný zdroj chyb eliminovat, musím nejprve načíst do proměnné (např. #103), v jakém stavu se nyní nacházím. G90 a G91 jsou modální funkce skupiny 3 a jejich stav můžu zjistit v systémové proměnné #4003 (#103 = #4003). Pokud platí G90, je v této proměnné uložena hodnota 90. Pokud platí G91, nalezneme v této proměnné hodnotu 91. Před ukončením našeho podprogramu vrátíme původní stav příkazem G{proměnná} (G#103).
Příklad:
Takto lze ošetřit všechny modální stavy a naše programy se stanou bezpečnějšími. Pokud náš cyklus někdo použije, neočekává, že náš podprogram změní modální funkce. Stejně je třeba přistupovat k transformačním funkcím, jako je zrcadlení os, rotace souřadného systému, změna měřítka a podobně. Z následující tabulky je zřejmé, že proměnné #4001–#4030 jsou určeny k načtení všech modálních funkcí. Dále si můžete všimnout, že tyto proměnné jsou určeny pouze pro čtení (R). Příkaz #4001 = 1 tedy nenastaví G1, ale vyvolá alarm. Stejně jako pokus o čtení ze systémové proměnné určené pouze pro zápis (W). Existují i systémové proměnné (R/W) pro čtení i zápis.
Číslo hlavního programu
Modální informace
Podobně můžeme zjistit naposledy použitou hodnotu u libovolné adresy. Například si můžeme zjistit poslední T-kód (naposledy volaný nástroj) a tuto hodnotu použít pro délkovou a poloměrovou kompenzaci.
Takže, když změním číslo nástroje, nemusím vyhledávat místa v programu a přepisovat další řádky. Nicméně na strojích s výměnnou rukou je třeba být opatrnější, protože příkazem T10 M6 se nabere nástroj T10 do vřetena, ale příkazem T12 (bez M6) se pouze nachystá nástroj T12 na výměnu. Ve vřetenu je však nástroj jiný. Tuto nepříjemnost můžeme vyřešit například takto:
Takže už víme, jak zjistit číslo nástroje, který máme ve vřetenu. Nyní chceme zjistit rozměry nástroje. Tyto rozměry se nalézají v tabulce nástrojů:
Existuje více druhů tabulek nástrojových korekcí, o různém počtu řádků i sloupců. V našem případě jsou systémové proměnné, odpovídající buňkám tabulky nástrojových korekcí, mapovány takto:
Jak tedy zjistíme automaticky poloměr aktuálně nabraného nástroje?
Nyní jsem použil nepřímo zadaná čísla proměnných. V #4120 je x (např. 5), které sečtu s hodnotou 13000 (získám 13005), a toto číslo vložím za # (#13005) a získám hodnotu systémové proměnné. Tyto systémové proměnné jsou určeny jak pro čtení, tak i pro zápis. Můžeme si tedy změnit rozměry nástroje. Toho se dá využít k automatické korekci výroby, pokud máme výstupy z kontroly. Případně musí obsluha stroje zapisovat hodnoty, které naměří do proměnných. Pak už je na programátorovi, aby správně napsal vzorce výpočtu a ošetřil možná rizika.
Ošetření chybových stavů je další oblast, kde můžeme systémové proměnné využít. #3000 je určena pouze pro zápis, a pokud do ní vložíme jakoukoli hodnotu, vyvolá se chybové hlášení.
Jak vidíte, vyvolat chybové hlášení je více než jednoduché. Nyní můžeme ošetřit stavy, kdy obsluha stroje vymění a naměří nový nástroj. Ten ovšem není vhodný pro náš program, například je kratší. Díky tomu se může stroj dostat do kolize nebo nedojede, kam je naprogramovaný.
Takto ošetřený program kratší nástroj kolizí neohrozí. Samozřejmě je možné udělat kontrolu hned na začátku programu, aby stroj nezapočal výrobu, kterou nemůže dokončit. Je jen na programátorovi, jakou zvolí logiku.
Někdy je kvůli dodržení kvality povrchu obrobku potřeba vyřadit potenciometr regulace posuvu či tlačítko „Single Block“ (blok po bloku), aby se nástroj na zmíněném povrchu nezastavil nebo nezměnil řezné podmínky. Téměř vše můžeme ovlivnit pomocí systémových proměnných.
Tímto článkem jsem chtěl ilustrovat možnosti a otevřenost systémů FANUC. Podrobnějším prostudováním manuálu k vašemu systému se dozvíte, co vše můžete o svém stroji, systému nebo procesu zjistit a ovlivnit přímo z technologického programu.
Nyní bych se vrátil k úkolu z minulého dílu. Měli jste se zamyslet, jak naprogramovat předvrtávací a hrubovací cyklus kulové kapsy. Dnes už víte, jak zjistit hodnotu poloměru nástroje z tabulky nástrojů, takže dokážete vypočítat hloubku středového otvoru kulové kapsy aktuálním vrtákem. Vrcholový úhel vrtáku můžeme zadat fixně: 150 stupňů. Volbu proměnných na kulovou kapsu nechám na vás. Já použiji tuto variantu:
Potom zavolám předvrtávací podprogram, který zapolohuje rychloposuvem nástroj na souřadnice středu koule (XY), následně na Z#18. Poté pracovním posuvem vyvrtá otvor do takové hloubky, aby neporušil plochu koule. Nakonec odjede zpět do polohy Z#18 rychloposuvem.