CNC programování je mnohooborová profese, kde lze využít znalosti geometrie, matematiky, fyziky, programování, obrábění a technologie. Výhodné je mít přehled i ve zdánlivě nesouvisejících oblastech, jako je elektrotechnika, chemie nebo logistika atd. Při programování je třeba mít na zřeteli, jakým způsobem se bude výrobek ustavovat, upínat, obrábět, měřit a korigovat, neboť všechny tyto činnosti ovlivňují kvalitu i kvantitu produktu (výrobku). Důležité jsou praktické zkušenosti a schopnost poučit se z vlastních omylů. Velkou roli v této oblasti hraje i selský rozum. Pojďme se tedy podívat, jak se programuje FANUC ve svém základu.
Programátoři všech možných CNC systémů mají dnes k dispozici obrovskou paletu programovacích nástrojů. Téměř se zdá, že již není třeba znát jednotlivé G-kódy. Stačí CAD/CAM systém či Dílenské programovaní, a je po problému. Nechci tu zabíhat do ekonomických úvah, jen chci poukázat na skutečnost, že v dnešní uspěchané době jde hlavně o čas. Programátor CNC bývá často zároveň i technologem a způsob, jakým tvoří výrobní CNC program, ovlivňuje jak výrobní čas, tak i časy prostojů. Pokud si programátor zvolí dialogové (dílenské) programování na stroji, prostoj stroje se většinou prodlouží, i když editor běží na pozadí. Při použití CAD/CAM systémů na jednoduchou výrobu jsou CNC programy často velmi dlouhé a kvůli banálním změnám bývá jednodušší tento program znovu vygenerovat. Nicméně nechci tyto nástroje zavrhovat. Každý z těchto nástrojů má své přednosti a nedostatky. Právě jejich znalost a znalost ISO G-kódu mi umožňuje volit způsob, který je nejvhodnější podle aktuální situace. Tato kapitola bude věnována spíše začátečníkům, ale své si zde mohou najít i zkušení programátoři. Nechci sem opisovat manuál k programování. Podrobnější a ucelený návod si můžete stáhnout po registraci na stránkách: https://my.fanuc.eu/.
CNC PROGRAM
CNC program je soubor bloků. Bloky jsou tvořeny instrukcemi a ty se skládají z adresy a hodnoty. V lidské řeči jsou bloky větami, instrukce slovy, adresy písmeny a hodnoty čísly.
Bloky mohou, ale nemusejí obsahovat následující slova (instrukce):
Každý blok musí být ukončen symbolem EOB: „;“. Je to proto, že jeden blok se může na menší obrazovce stroje zobrazit na více řádků. Při editaci na počítači středníky nepíšeme, stačí ENTER. Na pořadí slov v bloku v drtivé většině případů nezáleží. Blok „G0 X100 Y100 M3 S1000“ vykoná to samé jako blok „X100 G0 S1000 M3 Y100;“. Ale doporučuji psát program a bloky přehledně a pokud možno dodržovat strukturu bloků, z důvodu čitelnosti. Dále může být program doplněn o komentář, který píšeme mezi kulaté závorky. Komentář napsaný za názvem programu se nám zobrazí v seznamu programů. Název programu může být na nových systémech libovolný, ale z důvodu zpětné kompatibility budeme v těchto článcích používat běžnou syntax: Oxxxx, kde xxxx je libovolné, maximálně 4místné číslo. Program tedy začíná názvem a je ukončen pomocnou funkcí M2 nebo M30.
ČÍSLA BLOKŮ
Čísla bloků jsou nepovinná. Můžeme je psát, ale nemusíme. Pokud však na některý blok programu chceme odkázat nebo skočit, musíme jej označit číslem bloku. I když lze program spouštět z libovolného místa, je vhodné určitá místa označit číslem bloku a komentářem.
PŘÍPRAVNÉ FUNKCE
Přípravné funkce jsou takzvané G-kódy. Pro soustruhy jsou k dispozici tři sady G-kódů, viz tabulky přípravných funkcí. G-kódy dělíme na dva druhy. Nemodální (one shot), které platí jen v příslušném bloku, a modální (modal), které platí i v následujících blocích. Jestliže vykonávání programu, v automatickém provozu, přerušíme (RESET, CENTRAL STOP) a chceme tento program spustit od určitého místa, musíme tyto modální funkce nastavit přesně tak, jak mají v této části být. Proto si na tato místa, například za výměnu nástroje, píšeme takzvanou hlavní větu, která nastaví všechny modální funkce, které v programu používáme, do výchozího stavu. Někdy bývá hlavní věta tak dlouhá, že je vhodnější použít podprogram. Pochopitelnější to bude na dnešním úkolu. Přípravné funkce jsou rozděleny do skupin. V jednom bloku může být více přípravných funkcí, ale pouze po jedné z každé skupiny. Výjimkou jsou přípravné funkce G90 a G91, které mohou být v jednom bloku.
ROZMĚROVÉ SLOVO
Rozměrové slovo může obsahovat jednu nebo více os stroje s příslušnou hodnotou. Přípravné funkce říkají stroji, jak chceme rozměrové slovo použít. Můžeme například najet na souřadnice X10. Y10. rychloposuvem absolutně: „G90 G0 X10. Y10.;“. Po vykonání tohoto bloku stojí stroj na souřadnicích X10. Y10. Nebo můžeme popojet rychloposuvem inkrementálně (o určitou hodnotu) a tedy výsledná souřadnice pozice nástroje bude záviset na místě, kde se nástroj nachází, než tento blok vykonáme. Tento bok by vypadal například takto: „G91 G0 X10.;“. Můžeme napsat blok: „G90 G0 X10 G91 Y10.;“. Poloha osy X bude 10 a poloha osy Y bude o 10 mm větší než před spuštěním tohoto bloku. V systému ISO-A na soustruhu není přepínání inkrementálního/absolutního programování řešeno pomocí přípravných funkcí, ale pomocí rozměrového slova. Pro osu X lze použít adresy X (absolutní) nebo U (inkrementální), pro osu Y jsou to adresy Y/V a pro osu Z jde o adresy Z/W.
POMOCNÉ FUNKCE
M-funkce jsou připraveny výrobcem stroje a mají za úkol obsloužit vybavení stroje. Spouští vřeteno, oplach, chlazení, vynašeč třísek apod. Zde je seznam standardních M-funkcí, které jsou stejné pro všechny stroje s řídicím systémem FANUC:
PROGRAM A PODPROGRAM
Pokud píšeme dlouhý program, který obsahuje mnoho stejných odstavců (jeden či více bloků), je výhodné vytvořit podprogramy s těmito bloky. Výsledný kód je kratší, čitelnější, a pokud máme v programu nebo v podprogramu chybu, stačí ji opravit pouze na jednom místě. Podprogramy mají stejnou syntax jako hlavní programy, pouze se ukončují funkcí M99. Podprogramy lze psát i jako součást hlavního programu (Parametr 6005#0=1). Případně lze podprogramy sloučit do jednoho velkého souboru podprogramů, ale je třeba dbát zvýšené opatrnosti při programování, abychom nepřekročili povolený limit vnoření (liší se podle použitého ŘS, na nových ŘS lze maximálně 15 úrovní). Tímto způsobem nelze vyvolávat podprogramy z externí paměti (M198) ani pomocí jiných způsobů např. G65, G66 a G66.1.
Příklady použití:
POUŽITÍ M99 V HLAVNÍM PROGRAMU
Pokud v hlavním programu bude vykonáno M99, řízení se vrátí na začátek hlavního programu (a ten se automaticky znovu spustí). Lze použít adresu P. (M99 P100), tímto příkazem se řízení nevrátí na začátek programu, ale na blok s číslem N100.
ZÁVĚREM
Cílem této kapitoly bylo hlavně demonstrovat otevřenost ŘS Fanuc. Je jen na programátorovi, jaký si zvolí styl programování a jestli bude podprogramy psát jako samostatné soubory, nebo je bude vkládat do hlavního programu. Pro oba způsoby se najdou pro a proti. Možná je i kombinace obojího. Pokud však píšete programy, které musí číst nebo upravovat někdo jiný, napište raději o komentář navíc. Někdy i sám autor programu ztratí nit, zvláště pokud jej čte po X letech a často mění styl a metody. V příštích dílech si ukážeme, jakou volnost máme v dalších oblastech programování.
Zadání:
1) Projděte si tento program a pokuste se jej
zjednodušit pomocí podprogramů.
2) Zvažte, jaké výhody touto úpravou vzniknou.
%
O0001 (AKADEMIE 003 ZADANI)
N30 T30 M6 (VRTAK 1)
G91 G30 Z0 G80 G40 G0 M9
G90
G17 G54 X-300. Y0 S2500 M3
G98 G43 H30 Z25. M8
G83 Z-40.2 R2 Q5 F800 K0
X-300. Y0
X-200.
X-100.
X0.
G91 G30 Z0 G80 G40 G0 M9
G90 G17
M1
N32 T32 M6 (SRAZENI HRANY)
G91 G30 Z0 G80 G40 G0 M9
G90
G17 G54 X-300. Y0 S500 M3
G98 G43 H32 Z25. M8
G81 Z-2.2 R2. F50 K0
X-300. Y0
X-200.
X-100.
X0.
G91 G30 Z0 G80 G40 G0 M9
G90
M1
N33 T33 M6 (FREZOVANI ZAVITU)
G91 G30 Z0 G80 G40 G0 M9
G90
G17 G54 X-300. Y0 S6000 M3
G98 G43 H33 D33 Z25. M8
G66 P11 Z-30.2 R2. Q2.5 F800 D20
X-300. Y0
X-200.
X-100.
X0.
G67
G91 G30 Z0 G80 G40 G0 M9
G90
M1
G0 G53 Z0 M9
G0 G53 Y0 X300.
M30
%
O autorovi: Lubomír KUBÍČEKTrainer FA/RM, FANUC Czech, s. r. o.,Lubomir.Kubicek@fanuc.eu 20 let zkušeností v oboru CNC, celkem 1 rok ve firmě FANUC |