- CNC programok (FANUC 210 MB rendszerben) - Egyedi- és sorozatgyártó programrendszer |
Tartalomjegyzék - Még semmi - Előre kell bocsájtanom: programjaimért és működésükért semmilyen felelősséget nem vállalok! Ha összetöröd vele a géped, vagy magadat, vagy mást... Te gondod. Kivéve, ha engem törsz össze. Vannak hibák, buktatók, hiányosságok, érzékeny, gyenge pontok a rendszerben. Ezeket igyekszem jelezni. A munkámhoz használt gép fajtája: Excel PMC 5V T20
Az enyém nem olyan lepusztult, mint ami a képeken van, de azért hasonló. (A festék jobban lekopott, több a fémtiszta felület, melytől már nem tűnik ennyire ütött-kopottnak.) A vezérlő agya nem túl gyors, sem túl nagy, de lehet vele okosságokat csinálni. Ezekből szándékszom pár dolgot feltenni. Kísérletezésem során bizonyos irányítási, működési szint alá nem megyek, nem használom ki a vezérlő nyújtotta összes lehetőséget, továbbá biztosan lehetne összetettebb, miközben egyszerűbb kódot is írni. De én most itt tartok. Programozással először számítógépen találkoztam, ez jó alapozásnak bizonyult a CNC-zéshez. (A számítógépes 3D-s grafikázás pedig a rajzolvasáshoz.) Ösztönző elvem a programozó egyik hajtóereje: (nem a lustaság, hanem) a kényelmesség. Ha már egyszer megírtam egy programot egy munkadarabra, ne kelljen még egyszer. Szerszámüzemben dolgozom, sok egyedi alkatrészt gyártok. Igen ritka, hogy kétszer ugyanazt kelljen megcsinálni, és általában azok nem is bonyolult alkatrészek, újraírni a programokat nem telne sok időbe. De az ember egy idő után el kezd unatkozni. És ahelyett, hogy a telefonom nyomkodnám, vagy átjárogatnék a szomszéd gépekre beszélgetni, mely tevékenységek egyrészt nem kötnek le, másrészt a főnökök nem szeretik látni, inkább azt választottam, hogy elkezdem egyszerűsíteni (külső szemlélő számára bonyolítani) azt a rendszert, melyben dolgozom. Így létrejött a saját virtuális munkakörnyezetem, melyet a váltóim nem tudnak használni, így bele sem mernek piszkálni. Mint említettem, az erőforrások szűkössége bekorlátozza az embert. 99 (100?) program írható mindössze 64 Kb-nyi memóriába. Ebből kell gazdálkodni. Okosan. Ugyanakkor ez előny is, mert a programozó rá van kényszerítve a tömörítésre. Van egy főprogramom, mely a következő szerkezetű: % IF [#2LT10000] GOTO98 /-----/ N1 (VEGYES) GOTO999 N102 N105 N106 GOTO999 N2 N211 GOTO999 N3 N303 (NAGY DAT.BELY) GOTO999 N306 (BMW) GOTO999 N4 GOTO999 N3014 #3000=14 (PROGRAM SZAKASZ CIMKE HIBA) Ebből nem kell első körben mindent megérteni. Veszem részletesen: - A programom elnevezem egy megjegyzést jelentő zárójelben. A "Directory" menüben a programszám után közvetlenül levő első zárójeles megjegyzés megjelenik, ez (főleg kezdetben) segítséget jelenthet. A váltóim mindenféle számmal jelzett programot használhatnak, azonban hallgatólagos egyezmény szerint a P400-P599-ig az én programjaim vannak. O0401 (PETI FOPROGRAMJA) (V1406241827) Az évek során programozói és adatrendezgetős tapasztalatom többször megerősített, hogy igen érdemes változat címkéket elhelyezni, ahol egy összefüggő rendszert akarok kiépíteni. Ez jelen esetben, mint az előző programrészletben látszik is, a következőképp néz ki: (V1406241827) - azaz 2014. június 24-e, du. 6 óra 27 perckor létrehozott változat. Ez a jelölés azért is jó, mert ha a Világegyetemben folytatott ez életi, Gáll Péter névhez köthető működésem összes számítógépes tevékenységét összesíteni akarom, ezek a címkék akkor is egyediek lesznek, hiszen egy percen belül nem valószínű, hogy két dologból is létrehozok egy olyan gyökeresen új változatot, melyet új változat címkével lenne érdemes jelölni. Ha valaki mégis ilyen nagyon gyorsan dolgozna, és biztosra akarna menni, biggyesszen utána még két számjegyet, melyek a másodpercet jelölik! - Vannak programok és program szakaszok. Ezen programok virtuálisak, a főprogramon belüli fő szakaszokat értem alatta. A főprogramon belüli egyedi sorszámokat csatolok hozzájuk. Alakja: N[n], azaz N1-N9-ig terjedő sorszámok lehetnek, így összesen kilenc ilyen programot lehet a főprogram fájlba sűríteni. Ami tán kevésnek tűnik, mégis értelmetlenül soknak bizonyult, hisz váltóim, s az én egyéb programjaimmal együtt nem is jut elegendő memória ennyi megmunkáló program megírására. Épp ezért mást kellett kitalálnom arra, hogyan menthetek el tetszőleges számú megmunkáló programot. Ehhez már egy számítógép is kell, és a V24 nevezetű program. Erről tán később. #1=1 (MEGMUNKALO PROGRAM) Vagyis: ha a megmunkáló programom #1=1, akkor a futtatandó program szakaszom nem lehet #2=301, csak #2=100 - #2=199. Mivel a Fanuc vezérlőt nem érdeklik az én kis szabályaim, ő nem fogja ellenőrizni. Ezeket nekem kell felépítenem, betartanom, és a programjaimba ezek betartását ellenőrző kódrészeket írnom. Mégpedig azért van ezen aprócska részlet-szabályokra szükség, nehogy eltévedjek (bármilyen hihetetlen). Adjon egy keretet, ugyanakkor szabadságot minél több, és minél több féle program megírásához. - Egy kis segítő szakasz következik, ahol jegyzem magamnak, mely megmunkáló programot mihez írtam. Az N1-est ideiglenesnek használom, olyan MDI-szerű bevitel gyanánt, mely programokról tudom, hogy valószínűleg csak egyszer fogom használni. (N1) (VEGYES) - Aztán jön egy kis kriksz-kraksz, ami a #1 és #2 változók tartalmát hivatott ellenőrizni, hogy ne írhassak következetlenséget a lefuttatandó programszakaszhoz. IF [#2LT10000] GOTO98 - Külön programba írtam meg a programok előtt és után futtatandó alaphelyzetbe állító parancssorokat (O0402, O0403), hogy bármilyen programból meghívhassam őket, tehát egy újonnan létrehozott programot is egyszerűen tudhassak biztonságos főprogramként futtatni, és főprogramnak kikiáltott programjaim kezdő és vég működését egyszerre tudjam változtatni. Majd külön beállítom a nullpont koordinátarendszert, utána a megadott megmunkáló programhoz ugrok. (Egyszerűbb lett volna a #1 és #2 változók összehangolgatása, ellenőrizgetése helyett az alábbi programrészlet harmadik sora helyett azt írni, hogy "GOTO[FIX[#2/100]]", vagy simán csak "GOTO#2", kihagyva a majdan következő, a megmunkáló program elején levő második ugrást. Nem emlékszem már, hogy miért nem így csináltam...) M98 P402 (FOPROGRAM INIT) - Jön a megmunkáló program rész. "GOTO #2" - ugrás a megadott program szakaszhoz. Az O0441-es makró program kezeli a szerszámváltást. Az én gépemen a szerszámtár nem jó (illetve naggyon jó, csak már nem működik), így minden esetben kézzel váltok - ezért is volt érdemes egy külön programot írnom erre. /-----/ N2 N211 GOTO999 - Lezárás. Előbb a hibakezelő rész következik. Egyes alprogramjaimban ez elég hosszúra tud nyúlni, sőt létrehoztam egy hibakezelő makrót is az "egyszerűség" kedvéért. Ha az #1 és #2 változók értékében következetlenséget találna a főprogram első harmadában levő ellenőrző eljárás, ide ugrik. Majd a megmunkáló részből való "kilépési pont", az N999 jön. Aztán a lezáró alprogram, mely G54-et visszaállít, elforgatást, eltolást, nyújtást kivesz, miegymás, majd az asztallal kiáll. Program vége. N3014 #3000=14 (PROGRAM SZAKASZ CIMKE HIBA) - Nem is olyan bonyolult, igaz? Még egyszer, lecsupaszítva: % IF [#2LT10000] GOTO98 /-----/ N2 N211 GOTO999 N3014 #3000=14 (PROGRAM SZAKASZ CIMKE HIBA) A kényelmes, és menthető munkához létrehoztam pár makró programot és alprogramot. Három alap program van, melybe minden esetben egyedi tartalom kerül, tehát érdemes őket számítógépre elmenteni: O0401 - főprogram A körvonalak makró programba való gyűjtése azért is előnyös, mert különféle forgácsolási értékekkel lehet ugyanazt a körvonalat futtatni anélkül, hogy a kódba belenyúlnánk. Például általában ugyanazt a körvonalat "hívom meg" háromszor: nagyoláshoz, símításhoz, letöréshez/lekerekítéshez.
|