A technológiai berendezések numerikus vezérlőrendszereinek (CNC) feldolgozásában a paraméteres programozás ( angol parametric programozás , makroprogramozás is) a programozás szintjének növelésének megközelítése , amelyet speciális nyelvek létrehozásával vagy a meglévő programozási eszközök bővítésével hajtanak végre.
Történelmileg a CNC szerszámgépek első programozási nyelve, a G-kód eleve egy olyan nyelv, amely a megmunkálószerszám mozgásának, az orsó be- és kikapcsolásának, a vágófolyadék (hűtőfolyadék) ellátásának és egyéb műveleteknek a cikogramjainak leírására szolgál, és nincs benne a megmunkálási folyamat állapotát ellenőrző áramerősség. Például, ha egy megmunkáló szerszám elromlik, vagy nincs hűtőfolyadék, a G-kód által leírt cikogram haszontalanul folytatódik, vagy a berendezés számára veszélyesen végrehajtódik mindaddig, amíg a kezelő be nem avatkozik vagy a G-kód véget nem ér. A G-kód ezen jelentős hátrányának kiküszöbölésére parametrikus programozási nyelveket fejlesztettek ki.
Ezek a nyelvek sok közös vonást mutatnak a hagyományos magas szintű programozási nyelvekkel, mint például a Fortran , C. A fő előny a G-kóddal szemben a feltételes elágazási utasítások/operátorok elérhetősége . Ez a bővítmény lehetővé teszi a megmunkálási folyamat megváltoztatását, ha a folyamatállapot megváltozik, például a feldolgozás leállítását riasztással, ha kopásérzékelő vagy szerszámtörés lép működésbe.
A CNC gépek paraméteres programozásának további előnye, hogy a szerszám koordinátáinak és mozgásainak összetett számításait meg lehet szervezni a matematikailag 3D spline vagy Bezier -felületek formájában meghatározott íves felületek feldolgozásához .
A vezérlőrendszerek gyártói a paraméteres programozást használják a G-kód kiterjesztéseként . Összehasonlítható olyan számítógépes programozási nyelvekkel, mint a Basic, de G-függvények (kódok) szintjén elérhető. A CNC programozástól eltérően a parametrikus programozás az objektum-orientált programozáshoz hasonló lehetőségeket bővít. CNC vezérlőrendszereinek segítségével lehetővé válik a variancia kiszámítása, a logikai operátorok használata, a szerszámbeadásokkal végzett munka, a manipulátor mozgása, a ciklusok szervezésének képessége, a feltétel szerinti kiválasztás, az ugrás, a szubrutinokkal való munka, a CNC felett teljes irányítást gyakorló elemek. hozzáadva - hozzáférés az elektroautomatikus program rendszerváltozóihoz és celláihoz, saját G-kódok és funkciók létrehozásának lehetősége, amelyek a legteljesebben megvalósítják az összes gépelem vezérlését. Lehetőség van olyan CNC-paraméterek elérésére, amelyek információkat tárolnak a szerszámról, a munkatestek helyzetéről, a manipulátorokról, a koordinátarendszerről, a vezérlőprogram G-kód értékeiről és a hibákról. A parametrikus programozás segítségével lehetőség nyílik interaktív vezérlőprogramok fejlesztésére. A számítógépes programozási nyelvekhez hasonlóan a parametrikus programozásban is több változatuk létezik: Egyedi makró, Felhasználói feladat (Okuma), Q Rutin (Sodick), Advanced Programming Language (APL G&L). Például az FMS-3000 makró programozási nyelv a Basic nyelv egy részhalmazából lehetővé teszi további információs ablakok, paraméterkövető rendszer, vezérlési módok és feldolgozási folyamatok naplózását. Az ilyen programok a háttérben futnak és minden egyéb feladattól szabadidejükben, nagy terhelés mellett átmenetileg felfüggeszthetik munkájukat. Az ilyen lehetőségeket kihasználva az egyik leghatékonyabb módja van egy szerszámgép, robot, CNC rendszer vezérlésének.
A makró programozási nyelvvel írt program hasonló G-kód szerkezettel rendelkezik a vezérlőrendszerhez. A szerkezeti egység a keret. A keret egy programozási nyelv karaktersorozata. A keretelem egy szó, amely egy címből és egy számértékből vagy egy változóból, egy globális változóból áll.
Példaként egy makróprogramra írhat egy G200 függvény szubrutint az FMS-3000 vezérlőrendszerhez, és ezt a G funkciót szerszámvisszapattanásként és menetek közötti átmenetként használhatja, mint az egyik koordinátáról a másikra mozgó fúró esetében.
A függvény tulajdonságai:
1. Kezdeti feltételek.
2. Ugráljon W-ra (egyszerű visszapattanás esetén) vagy lépjen ki a szerszámcsere-ponthoz, és folytassa.
3. A hosszkorrigáló eszköz kiválasztása.
4. Válassza a G54 G55 G56 G57 G58 G59 lehetőséget.
5. Határozza meg az A alkatrész elfordulási szögét.
6. Válassza az M3 M13 M4 M14 lehetőséget.
7. Válassza ki az S fordulatszámot.
8. Mozgassa a szerszámot XY pozícióba (H eltolással).
a=(_a+paraméter(65)) | az A paramétert (forgási szög) egy globális változó (permanensen adott, forgási szög) és egy lokális változó (a függvényből visszaadva, forgásszög) összegeként definiáljuk. |
g=getparameter(71) | paraméter definiálása (a G54 G55 G56 G57 G58 G59 pont kiválasztása) G változóként (a függvényből visszaadva) |
m=getparameter(77) | paraméter meghatározása (további függvények) M változóként (a függvényből visszaadva) |
s=getparameter(83) | definiálja az S paramétert (fordulatok száma) változóként (a függvényből visszaadva) |
t=getparameter(84) | definiálja a T paramétert (szerszámszámot) változóként (a függvényből visszaadva) |
x=getparameter(88) | definiálja az X paramétert (koordinátát) változóként (a függvényből visszaadva) |
y=getparameter(89) | definiálja az Y paramétert (koordinátát) változóként (a függvényből visszaadva) |
w=getparameter(87) | definiálja a W paramétert (visszapattanási értéket) változóként (a függvényből visszaadva) |
tt=getdatacadr(134) | tt változó az előző értékét adja vissza (előző szerszámszám) |
Az egyéni makróval (Fanuc vezérlőrendszer) ellentétben az FMS-3000 funkcióparamétereit az alprogram elején kell meghatározni.
_t=t | a következő függvények munkájának megszervezéséhez az aktuális T eszközt globális változóként definiáljuk |
óó=t+100 | állítsa be a szerszámhossz eltolásszámát |
Az hh=t+100 kifejezés az eltolások táblázata 1-től 200-ig. Az összes eltolást két részre osztottuk, 1...100 eltolástól a szerszám átmérőjénél, 101..201-től a szerszámhossztól. A T1 szerszám átmérő-eltolási száma 1, a hossz-eltolás száma pedig 101. A T2 szerszám 2-es és 102-es stb.
ha paramaktív(71)=0, akkor g=_g | ha a G54 G55 G56 G57 G58 G59 nincs megadva a függvényben, akkor a pontválasztás a globális változóból lesz meghatározva |
Ha a G200 paraméter nincs megadva a G200 függvényben, akkor a pont alapértelmezés szerint a G201 függvény globális változójából kerül levételre.
G37X0Y0A0 | törölje a korábban beállított elforgatási szöget |
ha paramaktív(87)=0, akkor 500 lesz | ha a W (visszapattanás) paraméter nincs beállítva, menjen a szerszámcsere pontra, lépjen az 500-as címkére |
N100G1F2000G17G40G80G91Zw | ha a W (visszapattanás) paraméter nincs beállítva, menjen a szerszámcsere pontra, lépjen az 500-as címkére |
G32M1 | technológiai megálló |
G90GgG37X0Y0Aa | állítsa be az elforgatási szöget |
600-ra megy | ha a funkció egyszerű visszapattanásra van beállítva (nincs szerszámcsere), ugorjon a 600-ra. |
Visszapattanás a szerszámcsere ponthoz.
N500M9 | ki hűtés |
G53G1F2000G90G40G49G80Z0 | kilépés a szerszámcsere pontba |
M5 | ki fordul |
A szerszámcsere funkciók minden gépen saját jellemzőkkel rendelkeznek a tárban lévő szerszámok számától függően. Például, ha sok eszköz van, néha olyan algoritmusokat használnak, amelyek véletlenszerű sorrendbe rendezik az eszközt, hogy ne kössék az eszközt bizonyos cellákhoz, és csökkentsék a csereidőt. Nagy jelentősége van a szerszámcsere mechanikájának, a különféle típusú manipulátoroknak, csúszkáknak stb.
rem S100 | váltsa át a fordulatszám-tartományt kézi szerszámcseréhez |
N502G32M0 | technológiai megálló |
hh1=rendszeradatok lekérése(1000+óó) | olvassa le a hosszkorrektor értékét |
G1G91G43HhhZ-hh1F2000 | korrektoron dolgozik |
G90GgG37X0Y0Aa | a korrektort veszik, kidolgozzuk a forgásszöget |
ha paramaktív(83)=0, akkor 600-ra lép | ha az S (fordulatszám) paraméter nincs beállítva, hagyja ki a képkockákat, és lépjen a 600-as címkére |
ha paramaktív(77)><0, akkor m= | Az M alapértelmezett segédfunkció M3 lesz |
N520MmSs | definiáljon további M és S függvényeket |
Tt | válassza ki a szerszám számát |
N600 ha paramaktív(88)=0, akkor 9999 | ha a pozíció XY koordinátái közül legalább egy nincs beállítva, akkor nem megyünk a pozícióra, átugorjuk a képkockákat és a 9999-re megyünk |
ha paramaktív(89)=0, akkor 9999 lesz | ha a pozíció XY koordinátái közül legalább egy nincs beállítva, akkor nem megyünk a pozícióra, átugorjuk a képkockákat és a 9999-re megyünk |
G1F2000G1X(x+1)Y(y+1) | beírjuk a prepozíciót, XY 1mm mentén interferenciaillesztést adunk |
F100G9XxYy | pontos kilépés XY pozícióba ellenőrzéssel |
N9999G1F2000 | állítsa be a kontúr kezdeti feltételeit |
G32 | lelassítjuk a program számítását |
M99 | funkció vége, visszatérés a programhoz |