Parametrické programování ( anglicky parametric programming , též makroprogramování ) ve zpracování numerických řídicích systémů (CNC) pro technologická zařízení je přístup ke zvýšení úrovně programování, realizovaný tvorbou specializovaných jazyků nebo rozšíření stávajících programovacích nástrojů.
Historicky první programovací jazyk pro CNC obráběcí stroje, G-code , je ze své podstaty jazykem pro popis cyklogramů pohybu obráběcího nástroje, zapínání/vypínání vřetena, dodávání řezné kapaliny (chladící kapaliny) a další akce a nemá prostředky pro aktuální kontrolu stavu obráběcího procesu. Pokud se například obráběcí nástroj porouchá nebo chybí chladicí kapalina, cyklogram popsaný G-kódem bude zbytečně pokračovat nebo bude prováděn nebezpečně pro zařízení, dokud operátor nezasáhne nebo G-kód neskončí. K odstranění této významné nevýhody G-kódu byly vyvinuty parametrické programovací jazyky.
Tyto jazyky mají mnoho společného s konvenčními programovacími jazyky na vysoké úrovni, jako je Fortran , C. Hlavní výhodou oproti G-kódu je dostupnost podmíněných větvených instrukcí/operátorů . Toto rozšíření umožňuje změnit postup obrábění při změně stavu procesu, například zastavit zpracování s alarmem, když se spustí senzor opotřebení nebo zlomení nástroje.
Další výhodou parametrického programování pro CNC stroje je schopnost organizovat složité výpočty souřadnic nástroje a jeho pohybů pro zpracování zakřivených ploch zadaných matematicky ve formě 3D spline nebo Bézierových ploch .
Výrobci řídicích systémů používají parametrické programování jako rozšíření G-kódu . Lze jej přirovnat k počítačovým programovacím jazykům, jako je Basic, ale lze k němu přistupovat na úrovni G-funkcí (kódů). Na rozdíl od CNC programování rozšiřuje parametrické programování možnosti srovnatelné s objektově orientovaným programováním. Pomocí CNC řídicích systémů je možné vypočítat rozptyl, používat logické operátory, pracovat s průchody nástroje, pohyby manipulátoru, schopnost organizovat cykly, vybírat podle podmínek, skoků, pracovat s podprogramy, prvky, které vykonávají plnou kontrolu nad CNC, jsou přidáno - přístup k systémovým proměnným a buňkám elektroautomatického programu, možnost vytvářet si vlastní G-kódy a funkce, které nejúplněji realizují ovládání všech součástí stroje. Je možné přistupovat k CNC parametrům, které uchovávají informace o nástroji, poloze pracovních orgánů, manipulátorech, souřadnicovém systému, hodnotách G-kódu řídicího programu a chybách. Pomocí parametrického programování je možné vyvíjet interaktivní řídicí programy. Stejně jako počítačové programovací jazyky existuje v parametrickém programování několik jejich verzí: Custom Macro, User Task (Okuma), Q Routine (Sodick), Advanced Programming Language (APL G&L). Například makro programovací jazyk FMS-3000 z podmnožiny jazyka Basic umožňuje organizovat další informační okna, systém sledování parametrů, režimy řízení a protokolování procesů zpracování. Takové programy běží na pozadí a ve svém volném čase ze všech ostatních úkolů, při velké zátěži mohou dočasně pozastavit práci. Pomocí takových příležitostí máte jeden z nejúčinnějších způsobů ovládání obráběcího stroje, robota, CNC systému.
Program napsaný pomocí makro programovacího jazyka má podobnou strukturu G-kódu pro řídicí systém. Konstrukční jednotkou je rám. Rámec je posloupnost znaků v programovacím jazyce. Prvek rámce je slovo, které se skládá z adresy a číselné hodnoty nebo proměnné, globální proměnné.
Jako příklad makroprogramu můžete napsat podprogram funkce G200 pro řídicí systém FMS-3000 a použít tuto funkci G jako odskok nástroje a přechod mezi průchody, jako v případě pohybu vrtáku z jedné souřadnice na druhou.
Vlastnosti funkce:
1. Počáteční podmínky.
2. Odskočte do W (v případě jednoduchého odrazu) nebo opusťte bod výměny nástroje a pokračujte.
3. Výběr nástroje s korektorem délky.
4. Vyberte G54 G55 G56 G57 G58 G59.
5. Určete úhel natočení součásti A
6. Vyberte M3 M13 M4 M14.
7. Zvolte počet otáček S.
8. Přesuňte nástroj do polohy v XY (s offsetem H).
a=(_a+getparameter(65)) | parametr A (úhel natočení) definujeme jako součet globální proměnné (dané trvale, úhel natočení) a lokální proměnné (vrácené z funkce, úhel natočení) |
g=getparameter(71) | definovat parametr (zvolit bod G54 G55 G56 G57 G58 G59) G jako proměnnou (vráceno z funkce) |
m=getparameter(77) | definovat parametr (přídavné funkce) M jako proměnnou (vráceno z funkce) |
s=getparameter(83) | definovat parametr (počet otáček) S jako proměnnou (vrácenou z funkce) |
t=getparameter(84) | definovat parametr (číslo nástroje) T jako proměnnou (vrácenou z funkce) |
x=getparameter(88) | definovat parametr (souřadnici) X jako proměnnou (vrácenou z funkce) |
y=getparameter(89) | definovat parametr (souřadnici) Y jako proměnnou (vrácenou z funkce) |
w=getparameter(87) | definovat parametr (hodnotu odrazu) W jako proměnnou (vrácenou z funkce) |
tt=getdatacadr(134) | proměnná tt vrací hodnotu předchozího (předchozího čísla nástroje) |
Na rozdíl od uživatelského makra (řídicí systém Fanuc) musí být funkční parametry v FMS-3000 definovány na začátku podprogramu.
_t=t | pro organizaci práce následných funkcí, aktuální nástroj T, definujeme jako globální proměnnou |
hh=t+100 | nastavte číslo offsetu pro délku nástroje |
Výraz hh=t+100 je tabulka offsetů od 1 do 200. Všechny offsety jsme rozdělili na dvě části od 1..100 offset pro průměr nástroje, od 101..201 pro délku nástroje. Nástroj T1 má číslo offsetu průměru 1 a číslo offsetu délky 101. Nástroj T2 má číslo 2 a číslo 102 atd.
jestliže paramactive(71)=0 pak g=_g | pokud není ve funkci zadán G54 G55 G56 G57 G58 G59, výběr bodu bude určen z globální proměnné |
Pokud není parametr G200 ve funkci G200 zadán, bude bod standardně převzat z globální proměnné ve funkci G201.
G37X0Y0A0 | zrušit dříve nastavený úhel natočení |
pokud paramactive(87)=0, pak se dostaneme na 500 | pokud není nastaven parametr W (odskok), přejděte do bodu výměny nástroje, přejděte na štítek 500 |
N100G1F2000G17G40G80G91Zw | pokud není nastaven parametr W (odskok), přejděte do bodu výměny nástroje, přejděte na štítek 500 |
G32M1 | technologická zastávka |
G90GgG37X0Y0Aa | nastavte úhel natočení |
mám 600 | pokud je funkce nastavena na jednoduché odskočení (bez výměny nástroje), přejděte na značku 600. |
Odskočte do bodu výměny nástroje.
N500M9 | vypnuto chlazení |
G53G1F2000G90G40G49G80Z0 | výstup do bodu výměny nástroje |
M5 | vypnuto zatáčky |
Funkce výměny nástrojů na každém stroji mají své vlastní charakteristiky v závislosti na počtu nástrojů v zásobníku. Například, když existuje mnoho nástrojů, někdy se používají algoritmy, které uspořádají nástroj v náhodném pořadí, aby se nástroj nesvázal s určitými buňkami a zkrátil se čas výměny. Velký význam má konstrukce mechaniky výměny nástrojů, různé typy manipulátorů, jezdců atd.
rem S100 | přepnout rozsah otáček pro ruční výměnu nástroje |
N502G32M0 | technologická zastávka |
hh1=getsystemdata(1000+hh) | odečtěte hodnotu korektoru délky |
G1G91G43HhhZ-hh1F2000 | pracuje na korektoru |
G90GgG37X0Y0Aa | korektor se vezme, vypracujeme úhel natočení |
pokud paramactive(83)=0, pak se dostaneme na 600 | pokud není nastaven parametr S (otáčky), přeskočte snímky a přejděte na štítek 600 |
if paramactive(77)><0 then m= | výchozí pomocná funkce M bude M3 |
N520MmSs | definovat další funkce M a S |
Tt | vyberte číslo nástroje |
N600if paramactive(88)=0, pak přejděte na 9999 | pokud není nastavena alespoň jedna ze souřadnic XY pozice, nepřejdeme na pozici, přeskočíme snímky a přejdeme na 9999 |
pokud paramactive(89)=0, pak se dostaneme na 9999 | pokud není nastavena alespoň jedna ze souřadnic XY pozice, nepřejdeme na pozici, přeskočíme snímky a přejdeme na 9999 |
G1F2000G1X(x+1)Y(y+1) | zadáme předložku, dáme interferenční uložení podél XY 1mm |
F100G9XxYy | přesný výjezd do polohy XY s kontrolou |
N9999G1F2000 | nastavte počáteční podmínky pro obrys |
G32 | zpomalíme výpočet programu |
M99 | konec funkce, návrat do programu |