Ipari ása Ipari Robotok Robotok Programoz Programozása
Vez érlő, StartUp , Vezérlő, StartUp, Szoftverszintek, Szoftverszintek, programoz ási nyelvek programozási nyelvek
Elő őadó El adó: Előadó: Nagy án (A65) Istv Nagy Istvá István (A65) Gyakorlatvezető ő: Tolnai ás Gyakorlatvezet Andr Gyakorlatvezető: Tolnai Andrá András Ajá ánlott irodalom: Aj Ajánlott irodalom: B. -Jones: , Pitman , 1987. Leatham Jones: Elements Robotics Publishing B. LeathamLeatham-Jones: Elements of of Industrial Industrial Robotics, Robotics, Pitman Publishing, Publishing, 1987. Ch. , W. : Ipari ási Nyelvei, Ch Blume Jakob Programoz Ch.. Blume, Blume, W. Jakob: Jakob: Ipari Robotok Robotok Programozá Programozási Nyelvei, MK, MK, Bp., Bp., 1987. 1987.
A vezérlő beépítet lehetőségei: Gyakran találunk az ipari robotok vezérlőiben beépített funkciókat is. Ezek többnyire a vezérlő működési módozataira vonatkoznak, amelyek az operátor segítségével be-/ kikapcsolhatóak. Továbbá a vezérlők gyakran el vannak látva kisebb kijelzőkkel, ahol hibaüzeneteket, illetve a működési módokhoz tartozó üzeneteket olvashatjuk le. A működési módozatok vezérlőként eltérhetnek (általában el is térnek), de néhány jellegzetes mód mindegyikben (ilyen vagy olyan formában) megtalálható.
Homing –Nullpontra állítás: Ebben a működési rezsimben a tengelyeket a fizikai vagy az elektronikus nullpontra (homing position) állítjuk. Vigyázni kell, hogy mikor a nullpontra állítjuk a tengelyeket ne ütközzenek akadályba, ezért mielőtt elindítjuk a folyamatot, érdemes a tengelyeket a nullpont közelébe állítani kézi működtetéssel (jog mode). Ha van kijelzőnk, akkor a következő adatokat olvashatjuk le: csuklók pozíciója / koordináták pozíciója / dátum és idő / beépített számlálók, időzítők értékei / I/O bitek értékei. Betanítási (Teach) mód (rezsim): Lehetőséget ad a betanítási szekvenciák elvégzése után, a betanított adatok (szekvenciák) memóriában való rögzítésére. A betanítás lehet közvetlen, közvetett, vagy a koordináták beadásával is. A kijelző a következő adatokat mutathatja: az aktuálisan tárolt szekvencia program / aktuális csukló és koordináta pozíciókat / beépített számlálók, időzítők értékei / I/O állapotbitek. Léptető mód (rezsim): lehetővé teszi a memóriában lévő program lépésenkénti futtatását. Ezt a rezsimet általában a vezérlőn egy gomb segítségével beállíthatjuk. A kijelzőn megjelenő adatok: lépések száma / aktuális lépés száma / aktuális koordináta, csukló pozíciók, … Automatikus üzemmód: A memóriában tárolt program automatikus futtatása. A kijelző csak jelzi, hogy automatikus üzemben működik a vezérlő. Paraméteres üzem: ebben az üzemmódban állíthatjuk be a vezérlő belső paramétereit. Ezek a paraméterek általában a gyártó által be vannak állítva, de amennyiben változtatni kell rajtuk, akkor azt ebben az üzemben tehetjük meg. Tipikus paraméter-beállítások a következőket tartalmazzák: tengelyenkénti végállások megadása – vészjelzés leadása a végálláshoz közeledve / maximális sebességek, nyomatékok megadása – külön a léptető, majd az automata üzemmódokra / tengelyenkénti nullpozíciók – esetleg a hozzájuk tartozó megfogó offset-ek / kommunikációs (RS 232) beállítások
A vezérlő beépített üzemmódjai:
StartUp - a robot indítási folyamata 1: Robotonként eltérhet a beindítás folyamata, de egy általános leírás amit az indítási folyamatot megelőzően mindenképpen figyelembe kell venni: - Eltávolítani a munkatérből a nem feltérképezett akadályokat - Felszabadítani a megfogót - Figyelmet szentelni, hogy a feltérképezett munkatérben az akadályok a térkép szerinti helyükön legyen. - A betanító-panel és egyéb dolgok amit az operátor használ, a munkatéren kívül legyenek. - Bebiztosítani, hogy az operátoron kívül más személy ne tartózkodjon a robot körüli zónában. - Bebiztosítani a kábelezések csövezések fixálását (ne legyen szabadon lengő rész). - Bebiztosítani, hogy a robot karbantartása biztonságos legyen. - Ellenőrizni a hidraulikus / pneumatikus nyomásokat, összetételeket (ne szivárogjanak). - Folyadékszintek ellenőrzése (ha szükséges). - Ellenőrizni az operátor munkaruháját ( ne lebegjen – biztonságos legyen). Miután a fentieket figyelembe véve elindítottuk a robotot, a léptető rezsim segítségével a nullpont-pozíció közelébe léptethetjük a robotkart. (Ez azért fontos, hogy minél rövidebb utat tegyen meg a robotkar, mikor megkapja a HOMING parancsot.)
FIGYELEM! : Minden programot ajánlatos a HOMING paranccsal kezdeni! Ez ugyanis egy közös referenciapont a manipulátor és az operátor számára is, amihez képest az összes többi koordináta kiszámolásra kerül.
StartUp - a robot indítási folyamata 2: A programírásnál a következő tipikus eseménysorozatot kell figyelembe venni: 1.
A vezérlő memóriájában lévő adatok törlése
2.
Paraméterek beállítása: 1.
Maximális sebességek / pozíciók / fordulatszámok
2.
Megfogó méreteinek beállítása
3.
A betanító-panel segítségével mozgasd oda a robotkart a null-pozícióba.
4.
Program megírása (az érzékelők válaszjeleinek figyelembevételével).
5.
A megfogót működtető program megírása.
6.
A 3 5 pontok ismétlése, amíg az egész program el nem készül.
7.
Program befejezés: vissza a null-pozícióra, és átállás manuális (kézi) vezérlésre.
8.
A memóriában lévő adatok (pozíciók, szekvenciák, I/O adatok ) ellenőrzése.
9.
Paraméter-adatok újraellenőrzése (valamelyik program-szekvencia véletlenül nem írta-e át).
10. Program futtatása léptető üzemben. 11. (Amennyiben minden rendben), program futtatása (végtelen ciklusban – amíg kézileg nincs leállítva) automata üzemmódban.
Szoftverszintek: Hasonlóan, mint a klasszikus programozási eljárásoknál, itt is megvannak a különböző szoftverszintek. A felhasználó (programozó) által megírt programot utasítások sorrendjének (szekvencia) is nevezik. Ezek az utasítások lehetnek: - fizikai szinten megadva (csak számok – bináris, oktális, hexadecimális; ahol az utasítás is egy számkód és a pozíciók is számkódokból állnak. Nincs fordító, csak egy ún. értelmező, amely a számkódokat végrehajtja). Ezt gépi kódú programozásnak is nevezik. -Assembler szintű programozás: Az utasítás assembler szintű (move, jump, cmp …), az operandusoknál pedig általában regisztereket címzünk és az értékeket regiszterekbe helyezzük el. -Robot-programozó nyelveken való programozás: általában adva vannak bizonyos parancsszavak (megfog, elenged, …) amelyekkel dolgozhatunk, és a programnyelv leírásában pedig megtaláljuk, hogy a pozíciókat milyen formában lehet megadni (pl.: nem pozíciókat, hanem érzékelő értékeket adunk meg, amit persze át kell konvertálnunk –skálázás-, hogy tudjuk, hogy: 1 érték hány [mm], vagy hány fordulat). Itt sincs fordító, a vezérlőben az említett parancsszavaknak megvan a kódszámú értelmezése. (Ezt általában a vezérlő operációs rendszerének hívják = a parancs-szavak értelmezése gépi kódra)
-Magas szintű nyelveken való robotprogramozás: Klasszikus programnyelvek, melyek közül a robotprogramozásban a legelterjedtebbek: Basic, Pascal, C++, …
Robot-programozási nyelvek: Egyenlőre, csak a robot-programozási nyelvek (amennyiben még ezek nem holt nyelvek) általános felépítéséről teszünk említést. Ezek a nyelvek valahol az assembler (mnemonic kód) típusú és a magas-szintű nyelvek között foglalnak helyet. Mivel kimondottan robotműveletekre vannak kitalálva, így a nyelv „szókincse” is ehhez van igazítva. Több nyelv különböző robotvezérlő berendezés (firmWare). MEGJEGYZÉS: Az igazság, hogy a modern robot-programozási nyelvek –úgy mint a robot programozás isegyre inkább tendál a mai magas-szintű programnyelvekhez, vagy ha a vezérlő PLC, akkor a PLC programnyelvéhez, vagy ha csak mikrokontrollerrel vezérlünk, akkor a mikrokontroller programnyelvéhez (nagyon sok kontroller magas-szintű, C++, nyelven is programozható). A robot-programozó nyelvek általános struktúrája – valójában csak 3 alapstruktúra létezik ezekben a nyelvekben (sorrend, -szekvencia-; ismétlések, –ciklus-; elágazások, ugrások-): -
Szekvencia : Olyan instrukciók halmaza, melyeket sorrendben egymás után kell végrehajtani. Itt a sorok (lépések) számozva vannak, hogy tudjuk melyik lépést hajtjuk végre. Ezek a számok (indexek) nagyon fontosak tudjuk az instrukció relatív helyzetét is a memóriában; ismerjük a végrehajtási sorrendet.
-
Ismétlések : Ismételten végrehajtandó instrukciók halmaza = ciklus. Általában kisebb lépés-szám többszöri ismétléséről van szó. A folyamat nagyjából a következő:
-
1.
Olvasd be a sor indexét
2.
Hajtsd végre az instrukciót
3.
Ez az utolsó ciklus = ? 1.
IGEN vissza a főprogramba
2.
NEM vissza a 2. pontra
Elágazások : Ezzel valójában a programok intelligencia-fokát is meghatározhatjuk. Valójában ez nem más, mint a feltételes / feltétel nélküli ugrás. -
Feltételes: a feltétel kiértékelése után – ugrás, pl.: kiugrás a ciklusból.
-
Feltétel nélküli: azonnali ugrás a megadott helyre.
Az ugrások lehetnek, a végrehajtási sorrendet figyelembe véve: előre ugrás, illetve hátra ugrás. Az ugrásoknál, ciklusoknál kihasználjuk a belső számlálók, időzítők értékeit.
Programfejlesztés: A különböző programstruktúrák mellett a robotprogramozó nyelvek is tartalmaznak különböző adatstruktúrákat is: INTEGER, REAL, CHARACTER, LOGICAL
A programfejlesztésben nagy segítséget nyújt számunkra, ha előzőleg megszerkesztjük a megírni kívánt program folyamatábráját. Ez a következő előnyökkel járhat: -Jobban tudunk koncentrálni a végrehajtandó feladatra (nem veszünk el a részletekben) -Erősíti a logikai tervezésünket, kiemeli az esetleges ismétléseket, redundanciákat. -A későbbiekben mint dokumentáció is használható a későbbi fejlesztésekhez → fejlesztőmérnökök -A későbbiekben mint dokumentáció is használható → a robot működésének megmagyarázása a felhasználóknak. -Ciklusok pontosabb definiálása. A folyamatábráknak megvannak a maga szimbólumai (lásd ábra), az összekötések pedig irányítottak, a folyamat végrehajtási sorrendjét mutatják. Nagyban meggyorsíthatja a programfejlesztést, ha moduláris programokban gondolkozunk. -Itt az egyes modulokat is fel tudjuk tüntetni a folyamatábrában → effektívebb programozás -A modulokból könyvtárakat tudunk létrehozni, így utána más programokban is felhasználhatóak lesznek.
Egy tipikus folyamatábra:
Egy kettős ciklust tartalmazó folyamatábra látható a képen.