27
18 3 COSIMIR Educational Tarkvarapakett COSIMIR Educational (uue nimega COSIMIR Robotics) võimaldab õppida robotite programmeerimist. Õppe eesmärgil on koostatud üle 30 erineva roboti rakenduse (projekti), mis võimaldavad kirjutada korraga ühele robotile juhtimisprogrammi ja testida seda virtuaalse 3D mudeli peal arvutis. COSIMIR Educational võimaldab kasutada MELFA Basic IV (MB4), Movemaster Command (MRL) või universaalse roboti programmeerimiskeelt (Industrial Robotic Language - IRL). Programmeerimiskeeled MB4 ja MRL on mõeldud ainult Mitsubishi robotite programmeerimiseks ning IRL programmeerimiskeel sobib suvalise tootja robotile. COSIMIR Educational pole mõeldud roboti juhtimisprogrammi laadimiseks reaalsesse roboti juhtimisseadmesse. 3.1 Käivitamine COSIMIR Educational käivitamiseks tuleb läbida järgmine tee: START Programs Festo Didactic COSIMIR Educational (vt joonis 3.1). Joonis 3.1. COSIMIR Educational käivitamise tee Käivitamisel avanevad joonistel 3.2 ja 3.3 kujutatud aknad. Esimene aken on COSIMIR Educational rakenduse põhiaken, kus toimub robotile juhtimisprogrammi kirjutamine ja selle testimine. Teine neist kahest on abiaken, kust on välja toodud valik erinevaid valmis olevaid roboti rakendusi.

Pt3 COSIMIR Educational

  • Upload
    others

  • View
    17

  • Download
    0

Embed Size (px)

Citation preview

18

3 COSIMIR Educational

Tarkvarapakett COSIMIR Educational (uue nimega COSIMIR Robotics) võimaldab õppida robotite programmeerimist. Õppe eesmärgil on koostatud üle 30 erineva roboti rakenduse (projekti), mis võimaldavad kirjutada korraga ühele robotile juhtimisprogrammi ja testida seda virtuaalse 3D mudeli peal arvutis.

COSIMIR Educational võimaldab kasutada MELFA Basic IV (MB4), Movemaster Command (MRL) või universaalse roboti programmeerimiskeelt (Industrial Robotic Language - IRL). Programmeerimiskeeled MB4 ja MRL on mõeldud ainult Mitsubishi robotite programmeerimiseks ning IRL programmeerimiskeel sobib suvalise tootja robotile.

COSIMIR Educational pole mõeldud roboti juhtimisprogrammi laadimiseks reaalsesse roboti juhtimisseadmesse.

3.1 Käivitamine

COSIMIR Educational käivitamiseks tuleb läbida järgmine tee: START → Programs → Festo Didactic → COSIMIR Educational (vt joonis 3.1).

Joonis 3.1. COSIMIR Educational käivitamise tee

Käivitamisel avanevad joonistel 3.2 ja 3.3 kujutatud aknad. Esimene aken on COSIMIR Educational rakenduse põhiaken, kus toimub robotile juhtimisprogrammi kirjutamine ja selle testimine. Teine neist kahest on abiaken, kust on välja toodud valik erinevaid valmis olevaid roboti rakendusi.

19

Joonis 3.2. COSIMIR Educational peaaken

Joonis 3.3. COSIMIR Educational abiaken

Kui hiirega klikkida abi aknas oleva mingi tööstuslahenduse pildi või nime peale, siis näidatakse selle lahenduse kohta kättesaadava informatsiooni sisukorda (mida konkreetse lahenduse roboti programmeerimise käigus õpitakse, kogu tööstuslahenduse kirjeldus, tööstuslahenduses kasutatavate seadmete loetelu ja kirjeldus, roboti juhtimisseadme sisendite väljundeite loetelu, programmi kirjutamise abimaterjal).

20

Joonis 3.4. Mingi roboti rakenduse kohta käiva informatsiooni sisukord

Roboti programmeerimiseks vajamineva roboti rakendus avatakse COSIMIR Eductaional aknas, kui abi kanast vajutada Open sõnaga algava teksti peale. Joonisel 3.5 ongi avatud FirstSteps nimeline rakendus. Seal on näha:

A. roboti rakenduse 3D-vaate aken, kus toimub roboti simulatsiooni näitamine,

B. roboti programmi kirjutamise aken,

C. roboti positsiooni nimekirja aken.

Roboti rakendusi saab avada ka kõvaketalt, kui „C:\Program Files\didactic\Cosimi Educational.GB\Model” kaustast valida mingi roboti rakenduse nimega kaust. Seejärel tuleb Model kaustast valida topelt hiire klõpsuga MOD lõpuga fail. Seal peale avatakse COSIMIR Educational peaaknas valitud roboti rakendus. Meelde tuleks jätta veel kaustad Position Lists, mille alla on salvestatud roboti positsiooni nimekiri, ja Programs, mille alla on salvestatud roboti juhtimisprogramm. Roboti programmi kirjutamisel on kasulik teha kogu projekti kaustast koopia kuhugi mujale kõvakettal ja avade hoopis sealt roboti programmeerimiseks vajaminev rakendus.

21

Joonis 3.5. COSIMIR Educational peaaknas avatud roboti rakendus

3.2 3D-vaate aken

3D-vaate aknas kuvatakse kolmemõõtmeliselt valitud roboti rakenduse mudel. Roboti töö mitme erineva nurga alt ning kauguselt paralleelselt jälgimiseks saab menüüst View→New avada lisavaateid.

Roboti tööpiirkonna näitamiseks 3D-vaate aknas, tuleb menüüst valida View→Show Workspace. Punkti, millest 3D-vaate aknas roboti ja tööjaama tööd jälgitakse, saab ka muuta. Selleks on järgmised võimalused:

• Ctrl+Shift klahvikombinatsioon - vaate kauguse muutmine (Zoom). Nimetatud klahve ning hiire vasakut nuppu all hoides saab hiire liigutamisega 3D-vaateaknas objektile lähemale või objektist kaugemale liikuda.

• Shift klahv - vaate nihutamine. Shift klahvi ning samaaegselt hiire vasakut nuppu all hoides saab hiirega vaadet nihutada vasakule-paremale ja üles-alla.

• Ctrl klahv - vaate pööramine. Ctrl klahvi ning samaaegselt hiire vasakut nuppu all hoides saab hiirega vaadet pöörata vasakule-paremale ja üles-alla.

Iga roboti tööstuslahenduse rakenduse saab valida ka ette defineeritud standard vaatepunkte, mis toimub View→Standard menüüvaliku alt. Valikud on järgmised:

• Default Setting – peavaade.

• Front View – eestvaade.

• Rear View – tagantvaade.

22

• Top View – pealtvaade.

• Left Side View – vasakust küljest vaade.

• Right Side View – paremast küljest vaade.

• Full Format – 3D-vaate aknas näidatakse täiesulatuses roboti tööstuslahendust.

Standard vaateid on võimalik muuta avades 3D-vaate aknas parema hiireklahviga rippmenüü ja valides sealt vajaliku vaate.

3.3 Roboti mudeli juhtimine 3D-vaate aknas

Roboti mudeli juhtimiseks 3D-vaate aknas kasutatakse Jog Operation akent (vt joonis 3.6), mis avaneb menüüst Extras->Teach-In valiku peale. Sealt saab robotit liigutada, avada/sulgeda roboti küljes olevat haaratsit, anda robotile liikumiseks sihtpunkti ette koordinaatidena ja salvestada roboti antud hetke asukoht tema positsioonide nimekirja.

Joonis 3.6. 3D roboti juhtimise aken, kui valitud on JOINT Jog

Roboti saab liigutada kolmes eri koordinaatsüsteemis, milleks on JOINT, XYZ ja TOOL (vaata joonis 3.7). JOINT koordinaatsüsteemis roboti liigutamiseks tuleb märgistada JOINT Jog (vt joonis 3.6). Selles koordinaatsüsteemis toimub roboti üksikute telgede liigutamine kahes suunas, kui vajutada vastava telje nime ees olevatele noolklahvidele. Nii nagu ehtsa roboti puhul, ei saa roboti telgesid lõpmatuseni keerata, vaid antud roboti puhul lubatud nurkadeni.

23

a) b)

c)

Joonis 3.7. Roboti liikumis- ja/või pööramissuunad, kui on valitud JOINT (a), XYZ (b) või TOOL (c) koordinaatsüsteem

XYZ koordinaatsüsteemis liigutamiseks valitakse XYZ Joint (vt joonis 3.8 a). Seda koordinaatsüsteemi nimetatakse roboti puhul ka üldkoordinaatsüsteemiks (world coordinates). Kui vajutada mingi telje juures olevaid nooli, siis toimub roboti liigutamine antud telje ulatuses. Iga telje juures kaarjasjoonega kokku viidud nooltega nuppud võimaldavad pöörata roboti haaratsit ümber antud telje.

24

a) b)

Joonis 3.8. 3D roboti juhtimise aken XYZ Jog (a) ja TOOL Jog (a) valiku puhul

TOOL koordinaatsüsteemis (TOOL Jog valik valib selle) on roboti koordinaatsüsteemi nullpunktiks valitud roboti tööriista (haarats) otsapunkt (vt joonis 3.8 b). Nagu juba eespool kirjutatud, saab robotit liigutada mööda roboti TOOL koordinaatsüsteemi telgesid ja pöörata haaratsit ümber selle süsteemi telgede vajutades nooltega tähistatud nuppude peale.

Jog Override liugnupu liigutamine muudab roboti liikumise kiirust. Protsendiga lahter näitab protsentuaalset suurust roboti maksimaalsest võimalikust käsijuhtimiseks lubatud liikumiskiirusest.

Close Hand või Open Hand tekstiga nupp võimaldab sulgeda ja avada roboti küljes olevat haaratsit. Mõnikord võib roboti haaratsi nupp on halli värvi, kui robotil on haaratsi asemel mõni muu tööriist. Kui aga haarats on olemas, siis tuleb kasutada menüüvalikut Extras->Settings->Grip…. Avanenud aknast (vt joonis 3.9) tuleb Gripper Control at Teach-In valikust üks numbriga tähistatud sulgemis- või avamiskäsk valida. Kui haaratsi avamis/sulgemis nupp ikka ei tööta, tuleb uuesti aknas valida teise tähisega käsk.

Joonis 3.9. Aken Grip

Set Joint Coordinates... või Set XYZ Position… tekstiga nupuga saab robotile ette anda koordinaadid (vt joonis 3.10), kus ta olema peaks. Kui ette antud koordinaatide punkt ei asetse roboti tööpiirkonnas, siis robot neid koordinaate üle ei võta.

25

a) b)

Joonis 3.10. Robotile koordinaatide etteandmine JOINT (a) ja üld- (b) koordinaatsüsteemis

Current Position → Pos. List nupp võimaldab salvestada roboti hetke koordinaadid positsioonina roboti positsiooni nimekirja. See võimaldab liigutada robotit programmi jaoks vaja mineva positsiooni juurde ja viia see positsioon ühe nupu vajutusega positsiooni nimekirja (pole vaja kõikide positsioonide koordinaate ükshaaval käsitsi sisestada).

3.4 Programmeerimine

Mitsubishi robotite juhtimisprogrammid salvestatakse enamasti MB4 või MRL formaadis failidesse, mis avatakse eraldi roboti programmi kirjutamisakendes (uue programmi puhul on aken tühi). Robotite (teiste firmade robotid) programmid võivad olla ka IRL formaadis faili salvestatud. Iga roboti programmi fail avatakse eraldi aknas.

Joonisel 3.11 on kujutatud programmi kirjutamise aken. Iga programmi rida koosneb rea numbrist ja selle järgi tulevast programmeerimiskeele käsustikust, nt: 10 MOV P1 ’robot liigub positsiooni P1. Antud näites on programmi rea number 10, millele järgneb liikumiskäsk koos positsiooniga MOV P1. Rea lõppu on listaud kommentaar real toimuva tegevuse kohta.

Programmi kirjutamist lihtsustab rippmenüü (vt joonis 3.11), mida saab kasutada programmi kirjutamise aknas hiire paremat klahvi vajutades. Valides sealt mõne käsu, saab menüüst valides sisestada programmi kirjutamisel enim kasutatud programmikäskusid. Käskude tähendusest kirjutatakse peatükis „MELFA Basic IV käsud”.

26

Joonis 3.11. Roboti programmi kirjutamise aken ja rippmenüü roboti programmeerimiskeele käskude valikuks

Programmi kirjutamisel ridade nummerdamist ise tegema ei. Selle saab automaatselt teha, kui vajutada Renumber ikoonile. Avanenud aknas (vt joonis 3.12) määratakse rea nummerdamise alguse number ja samm, mille võrra järgmise rea number erineb eelmisest. Renumber ikoonile vajutamisel peab programmi kirjutamise aken valitud olema. Kui aga roboti positsiooni nimekirja aken on aktiivne, siis toimub positsioonide nimede nummerdamine.

Joonis 3.12. Renumber aken

Roboti juhtimisprogrammi algseks testimiseks on Compile ja Compile & link ikoonid. Peale ikoonile vajutamist testitakse roboti programmi. Testi käigus avaneb aken kus näidetakse hoitus-, veateateid ning testi lõppemise teadet. Veateate puhul näidatakse ära vea esinemiskoht programmis, kui teha hiirega topeltklõps veateate peal. Mõnikord märgitakse veateate puhul vigase rea asemel järgmine rida, mistõttu tuleks vea puhul ka eelmist programmirida kontrollida. Programmi testi läbiviimiseks peab programmi kirjutamise aken aktiivne olema.

27

Compile & link ikoon laeb programmi peale testi COSIMIR Educational’i sees olevasse virtuaalsesse roboti juhtimisseadmesse. Virtuaalsesse roboti juhtimisseadmes olevat programmi hakatakse täitma, kui käivitada programmi simulatsioon.

3.5 MELFA Basic IV käsud

Järgnevalt on välja toodud MELFA Basic VI programmeerimiskeeles enim kasutatud käsud koos kirjelduste ja programmikirjutamise näidetega. Käskude kirjutamisel pole olin, et kas need kirjutatakse suurte tähtedega või väikeste tähtedega. Kõik muutujad tuleb kirjutada nii nagu nad on alguses defineeritud.

’ (Ülakoma)

Märgib programmireas oleva teksti algust. Kõik peale seda märki tulev tekst loetakse kommentaariks. Näited:

11 ’kommentaar algab siit 12 MOV P1,+40 ’kommentaar algab siit

DEF INT

Võimalda defineerida täisarv (integer) tüüpi muutujaid. Defineeritud muutuja väärtused jäävad -32768 ja 32767 vahemikku. Kui muutuja nime ette kirjutada „M” täht, siis arvestatakse programmis temaga kui arvmuutujaga ning teda ei ole vaja programmialguses defineerida. Näited:

20 DEF INTE a, B, C ’integer tüüpi muutujaks defineeritakse a, B ja C muutuja 30 DEF INTE d ’integer tüüpi muutujaks defineeritakse d muutuja 40 a=0 ’muutujale a antakse 0 väärtuseks 60 d=12.13 ’muutujale d antakse 12 väärtuseks 70 C=12.67 ’muutujale C antakse 13 väärtuseks 80 d=d+3 ’muutujale d liidetakse arv3 juurde 90 M1=12-M1 ’arvust 12 lahutatakse muutuja M1 väärtus ja saadud tulemus

omistatakse muutujasse M1

DEF DOUBLE

Defineerib kahekordse kohaga reaalarvu (double-precision real number) tüüpi muutujat programmis. Defineeritud muutuja suurim ja väikseim väärtus on +/- 1,70141E+38. Komakohaga arvu kirjutamisel kasutatakse koma asemel punkti. Näited:

10 DEF DOUBLE Arv ’kahekordse kohaga reaalarvu tüüpi muutujaks defineeritakse Arv muutuja

20 Arv = 100/3 ’muutujale Arv antakse 33,333332061767599 väärtuseks

DEF FLOAT

Defineerib reaalarvu (singel-precision real number) tüüpi muutujat programmis. Defineeritud muutuja suurim ja väikseim väärtus on +/- 1,701411834604692E+308. Komakohaga arvu kirjutamisel kasutatakse koma asemel punkti. Näited:

10 DEF FLOAT reaal ’reaalarvu tüüpi muutujaks defineeritakse reaal muutuja 20 reaal = 123.468 ’muutujale reaal antakse 123,468000 väärtuseks

DEF CHAR

Defineerib tekst tüüpi muutujat programmis. Kui muutuja nime ette kirjutada „C” täht, siis arvestatakse programmis temaga kui teksttüüpi muutujaga. Näited:

10 DEF CHAR TEADE ’teksttüüpi muutujaks defineeritakse TEADE muutuja

28

20 TEADE = „Töötab” ’teksttüüpi muutujale TEADE antakse „Töötab” väärtuseks 30 CMSG = „ABC” ’muutujale CMSG antakse „ABC” väärtus

DEF POS

Defineerib positsiooni muutuja programmis. Kui muutuja nime ette kirjutada „P” täht, siis arvestatakse programmis temaga kui positsiooni muutujaga ja teda ei ole vaja programmi alguses defineerida. Näited:

10 DEF POS 1PUNKT ’positsiooni muutujaks defineeritakse 1PUNKT muutuja 20 MOV P1 ’liigutakse positsiooni P1 30 1PUNKT = (250,460,100,-90,120,0) ’positsiooni muutujale 1PUNKT omistatakse

koordinaadid (X-telg, Y-telg, Z-telg, A-nurk, B-nurk, C-nurk)

40 Pabi=P1+P2 ’positsiooni muutujale Pabi omistatakse kahe positsiooni liitmisel saadud uue positsiooni koordinaadid, pole vaja eelpool defineerida

50 MOV 1PUNKT ’liigutakse positsiooni 1PUNKT

DEF JNT

Defineerib JOINT koordinaatsüsteemiga positsiooni muutujat programmis. Kui muutuja nime ette kirjutada „J” täht, siis arvestatakse programmis temaga kui positsiooni muutujaga. Näited:

10 DEF JNT TURB ’positsiooni muutujaks defineeritakse TURB muutuja 20 MOV J1 ’liigutakse positsiooni J1 30 TURB = (-50,120,30,300,0,0,0,0) 40 MOV TURB ’liigutakse positsiooni TURB

ACCEL

Määrab roboti kiirenduse- ja aeglustusekiiruse protsendina. Protsent võetakse suurimast kiirenduse- või aeglustusekiiruse väärtusest. Näited:

30 ACCEL 50,60 ’roboti kiirenduskiiruseks on 50% suurimast kiirendusest. Aeglustuskiiruseks on 60% suurimast aeglustuskiirusest

50 ACCEL 100,100 ’roboti kiirenduse- ja aeglustusekiiruse väärtused on suurimad võetud

SPD

Määrab roboti kiiruseväärtuse sirg- ja kaarjasliikumisel. Suurim liikumiskiirus on 10000 ja see on salvestatud roboti muutujasse M_NSPD. SPD käsu kasutamisel võib esineda liikumiskiiruse veateateid. Selle vältimiseks tuleb siis kiirust alandada niikaua kuini teade enam esile ei tule. Näited:

10 SPD 100 ’roboti liikumiskiirus on 100 ühikut 30 SPD 500 ’roboti liikumiskiirus on 500 ühikut 90 SPD M_NSPD ’roboti liikumiskiiruseks on roboti muutujas M_NSPD salvestatud

suurus. Samas lülitataks sisse optimaalse kiiruse kontroll.

JOVRD

Määrab suurima liikumiskiiruse robotil robotiliigendite liigutamisel (joint movements). Väärtused jäävad vahemikku 1 – 100,0 ja esitatakse protsendina suurimast liikumiskiirusest. Näited:

10 JOVRD 1 ’roboti liikumiskiiruseks on võetud 1% maksimum robotiliigendite kiirusest

40 JOVRD 50.2 ’roboti liikumiskiiruseks on võetud 50,2% maksimum robotiliigendite kiirusest

50 JOVRD 100.0 ’roboti liikumiskiiruseks on võetud 100% maksimum robotiliigendite kiirusest

29

OVRD

Võimaldab muuta robotikäe liikumiskiirust protsendiliselt. Sajale protsendile vastab maksimaalne liikumiskiirus. Näited:

10 OVRD 50 ’roboti liikumiskiiruseks on võetud 50% maksimum kiirusest 60 OVRD 90 ’roboti liikumiskiiruseks on võetud 90% maksimum kiirusest 190 OVRD 100 ’roboti liikumiskiiruseks on võetud 100% maksimum kiirusest

BASE

See käsk võimaldab liigutada ja/või pöörata roboti koordinaatsüsteemi (määrata uut nullpunkti programmis). Roboti koordinaatsüsteemi muutmisega peab väga ette vaatlik olema, et ei juhtuks ootamatuid õnnetusi. Roboti parameetris P_NBASE on salvestatud nullpunkti koordinaadid. Näited:

10 BASE (50,100,0,0,0,90) ’roboti koordinaatsüsteem on nihutatud uude punkti ning Z telge on pööratud 900

90 BASE P_NBASE ’roboti koordinaatsüsteemi algolek taastatakse

Joonis 3.13. Roboti koordinaatsüsteemi muutmine

TOOL

Muudab roboti tööriista kontrollpositsiooni kohta. Roboti parameetris P_NTOOL on salvestatud algne tööriista kontrollipositsioon. Võetakse kasutusele siis kui robot kasutab mitut tööriista. Selle kontrollpositsiooniga tagatakse roboti turvaline töö (robot ei liigu millegi vastu või sisse, kui kasutatakse erineva pikkusega tööriistu). Näited:

40 TOOL (100,0,100,0,0,0) ’muudab kontrollpositsiooni, nihutades seda X-teljel 100mm ja Z-teljel 100mm TOOL koordinaatsüsteemis

300 TOOL P_NTOOL ’taastatakse kontrollpositsiooni algkoht

MOV

Robotit liigutatakse kasutades liigendliikumist (Joint interpolation). Roboti liigub mingit kõverat mööda, mille juhtimisseade ise välja arvutab. Näited:

10 MOV P1 ’robot liigub positsiooni P1 kasutades liigendliikumist 20 MOV P2, -40 'kasutades liigendliikumist liigub robot 40mm kõrgemale

positsioonist P2

30

P1

P2

P1

P2

P1

P2

P3

a) b) c)

P1

P2

P3

P1

P2P3

d) e) f)

Joonis 3.14. Roboti liikumine käskude MOV (a), MVS (b), MVR (c), MVR2 (d), MVR3 (e) ja MVC (f) korral

MVS

Robotit liigutatakse kasutades sirgliikumist (Linear interpolation). Seda liikumist on soovitav kasutada lühikese maa läbimiseks, sest kaugema positsiooni liikumisel võib tekkida vea teade. Näited:

20 MVS P1 ’robot liigub positsiooni P1 kasutades sirgliikumist 30 MVS ,-40 ’kasutades sirgliikumist liigub robot oma hetke asukohast 40 mm

kõrgemale 40 MVS P1, -40 'kasutades sirgliikumist liigub robot 40mm kõrgemale

positsioonist P1d

MVC

Robotit liigutatakse mööda ringi, mille määravad 3 positsiooni: algus- (lõpp-), vahe- 1, vahe- 2 ja lõpppunkt (ehk alguspunkt). Siin tuleb vaadata, et roboti ringliikumine jääb ikka tema tööpiirkonda. Tööpiirkonnast väljumisel katkestab robot liikumise ja annab veateate. Näited:

20 MVC P1,P2,P3

MVR

Robotit liigutatakse mööda ringi, mille määravad ära kolm positsiooni. Esimene positsioon on alguspunkt, kust algab ringliikumine. Kolmas positsioon on ringliikumise lõpppunkti, kuhu robot jõuab. Teine positsioon on vahepunkt, mida robot läbib. Siin tuleb vaadata, et roboti ringliikumine jääb ikka tema tööpiirkonda. Tööpiirkonnast väljumisel katkestab robot liikumise ja annab veateate. Näited:

50 MVR P1,P2,P3

MVR2

Robotit liigutatakse mööda ringi, mille määravad ära kolm positsiooni. Selle käsu liikumispositsioonid on järgnevalt järjestatud: algus-, lõpp- ja vahepunkt. Aga selle ringjoonelisel liikumisel ei läbita vahepunkti, nagu seda MVR juures tehakse. Siin tuleb vaadata, et roboti ringliikumine jääb ikka tema tööpiirkonda. Tööpiirkonnast väljumisel katkestab robot liikumise ja annab veateate. Näited:

10 MVR2 P1,P3,P2

31

MVR3

Robotit liigutatakse mööda ringi, mille määravad ära kolm positsiooni. Esimene positsioon on alguspunkt. Teine on ringi lõpppunkt, kuhu robot jõuab. Kolmas positsioon on ringi keskpunkt. Siin tuleb vaadata, et roboti ringliikumine jääb ikka tema tööpiirkonda. Tööpiirkonnast väljumisel katkestab robot liikumise ja annab veateate. Näited:

20 MVR3 P1,P3,P3

SERVO

Võimaldab automaatselt roboti servomootorid sisse/välja lülitada vastavalt sellele, mis lõppu lisatakse. Näited:

10 SERVO ON ’servomootorid lülitatakse sisse 90 SERVO OFF ’servomootorid lülitatakse välja

DLY

Määrab roboti programmi ajalise viivituse sekundites. Seda võib kasutada roboti täpseks liigutamiseks ja detailide kinni haaramiseks. Väikseim ajaline väärtus on 0,01 sekund. Näited.

50 DLY 0.5 ’0,5 sekundiline viivitus 60 DLY 10 ’10 sekundiline viivitus s 70 M_OUT(2)=1 DLY 0.5 ’0,5 sekundiks lülitatakse roboti juhtimisseadme väljund 2 sisse

HOPEN

Roboti haarats avatakse. Käsule järgnev number määrab avatava haaratsi numbri (4 on maksimum arv). Näited:

50 HOPEN 1 ’avatakse roboti esimene haarats 60 HOPEN 4 ’avatakse roboti neljas haarats

HCLOSE

Roboti haarats suletakse. Käsule järgnev number määrab suletava haaratsi numbri (4 on maksimum arv). Näited:

20 HCLOSE 1 ’suletakse roboti esimene haarats 30 HCLOSE 3 ’suletakse roboti kolmas haarats

M_OUT()

Määrab roboti digitaalse väljundi, mille olekut saab programmis muuta. Sulgude sisse kirjutatakse väljundbiti number, mille olekut muuta tahetakse. Kui M_OUT lõpus on B, siis seotakse terve baidi jagu väljundeid, mis algavad sulus märgitud numbrist, muutujaga. M_OUTW vastab 2 väljundbaidile ja M_OUTD 4 väljundbaidile. Näited:

20 M_OUT(1) = 1 ’väljundbitt 1 lülitatakse sisse 30 M_OUTB(8)=0 ’alates bitist 8 nullitakse 1 baidi jagu väljundeid 40 M_OUTW(20)=0 ’alates bitist 20 nullitakse 2 baidi jagu väljundeid 50 M_OUT(2)=1 DLY 0.5 ’0,5 sekundiks lülitatakse roboti juhtimisseadme väljundbitt 2

sisse

32

M_IN()

Määrab roboti digitaalse sisendi, mille olekut tuleb lugeda või arvestada. Sulgude sisse kirjutatakse sisendbiti number, mille olekut muuta tahetakse. Kui M_IN lõpus on B, siis seotakse muutujaga terve baidi jagu sisendeid, mis algavad sulus märgitud numbrist. M_INW vastab 2 sisendbaidile ja M_IND 4 sisendbaidile. Näited:

30 WAIT M_IN(1)=1 ’programm ootab kuni roboti digitaalne sisend (bit 1) on sisselülitatud

20 M1=M_INB(20) ’8 bitist koosneva sisendi väärtus, mis algab 20. sisendbitist, omistatakse muutujale M1.

FOR TO STEP

Märgib programmis korduse alguse. Selle käsuga määratakse loenduri alg- ja lõppväärtus ning samm mille võrra loenduri väärtust suurendatakse. Kui loendur ületab lõppväärtust, siis lõpetatakse FOR TO STEP ja NEXT käsu vahele jääva programmi kordamist. Näited:

10 FOR M1=1 TO 5 ’kordusealgus, kus loendurile M1 määratakse algväärtus ja korduse lõpetamiseväärtus. Loenduri arvu suurendamise sammuväärtuseks on vaikimisi 1 valitud.

… ’siia kirjutatakse programmi lõik, mida korrata tahetakse

50NEXT M1 ’korduselõpp. Loendurit suurendatakse sammuväärtuse võrra ja hüpatakse FOR’iga rea peale, kui loenduri väärtus pole korduse lõppväärtust ületanud

10 FOR M1=1 TO 6 STEP 2 ’kordusealgus, kus loendurile M1 määratakse algväärtus ja korduse lõpetamiseväärtus. Loenduri arvu suurendamise sammuväärtuseks on valitud 2.

… ’siia kirjutatakse programmi lõik, mida korrata tahetakse

60 NEXT M1 ’korduselõpp. Loendurit suurendatakse sammuväärtuse (2) võrra ja hüpatakse FOR’iga rea peale, kui loenduri väärtus pole korduse lõppväärtust ületanud

NEXT

Märgib programmis korduse lõppu. Käsule lisatakse alati loenduri nimi. Näiteid vaata FOR TO STEP käsu juures.

WHILE

Märgib programmis tingimusega määratava korduse algust. WHILE ja WEND käsu vahel olevat programmi täidetakse nii kaua kui korduse tingimused on täidetud. Tingimuste koostamisel kasutatakse järgmisi tähiseid: = (võrdne), <> (mittevõrdne), < (väiksem), > (suurem), <= (väiksemvõrdne), >= (suuremvõrdne), OR (või), AND (ja), Näited:

10 WHILE (M_IN(1)=1) OR (M_IN(2)=1) ’korduse algus. Kordust tehakse niikaua kuni roboti juhtimisseadme digitaalse sisendi bitis 1 või 2 on signaal. Signaali kadumisel mõlemast sisendist kordus lõppeb

… ’siia kirjutatakse programmi lõik, mida korrata tahetakse

90 WEND ’korduse lõpp. Korduse tingimuse täitmisel hüpatakse tagasi korduse algusesse

WEND

Märgib programmis tingimusega määratud korduse lõppu. Näiteid vaata WHILE käsu juures.

33

IF THEN ELSE

Valitakse üks tegevus ja täidetakse seda vastavalt tingimusele. Näited:

5 DLY 1 ’1 sek viivitus enne roboti sisendi lugemist

10 IF M_IN(1)=1 THEN 100 ELSE GOTO 300 ’kui sisendbitti 1 väärtus on 1, siis hüpatakse programmireale numbriga 100 või kui ei ole siis reale 300

30 IF M_IN(3) THEN Pabi=P2 ELSE Pabi=P3 ’kui sisendbitt 3 väärtus on 1, siis positsiooni muutujale Pabi määratakse positsioon P2 või kui ei ole siis P3

20 IF M_IN(4)<>1 THEN ’kui sisendbitt 4 ei ole 1siis...

… ’positiivse tulemuse korral täidetakse enne ELSE jäävat programmilõiku

50 ELSE ... ’negatiivse tulemuse korral täidetakse peale ELSE jäävat

programmilõiku

70 ENDIF ’IF lause lõpp

GOSUB

Kutsub välja alamprogrammi, mis algab programmirea numbriga või nimega tähistatud kohast. Rea tähistamisel nimega tuleb alustada nime kirjutamist * tähisega. Alamprogrammi läbimisel jätkatakse peaprogrammi täitmist sealt, kus see pooleli jäi. Alamprogrammi lõppu tuleb alati tähistada RETURN käsuga. Näited:

100 GOSUB 300 ’hüpe alamprogrammi, mille rida algab 300 numbriga tähistatud reast

110 END ’programmi lõpp 300 MOV P1 ’liigutada robot positsiooni P1 juurde 310 RETURN ’alamprogrammi lõpp ja hüpe tagasi peaprogrammi juurde

100 GOSUB *LBL ’hüpe alamprogrammi, mille rea nimi on *LBL 110 END ’programmi lõpp 300 *LBL ’rida, mille nimi on *LBL 310 MOV P1 ’liigutada robot positsiooni P1 juurde 320 RETURN ’hüpe alamprogrammi, mille rida algab 300 numbriga tähistatud

reast

RETURN

Selle käsuga lõpetatakse alamprogrammi tegevus ja pöördutakse tagasi peaprogrammi juurde. Vaata näidet GOSUB juures

GOTO

Suunab programmireale, mille number või nimi on käsu järel. Rea tähistamisel nimega tuleb alustada nime kirjutamist * tähisega. Näide

200 GOTO 300 ’programm hüppab reale, mille number on 300 300 MOV P1 ’robot liigub positsiooni P1 kasutades liigendliikumist

200 GOTO *LBL ’programm hüppab reale, mille nimi on *LBL 300 *LBL ’rida kuhu programm hüppab. Rea nimi on *LBL 310 MOV P1 ’robot liigub positsiooni P1 kasutades liigendliikumist

WAIT

On käsk, mis paneb programmi ootama kuni soovitud tingimus täitub (muutuja saab võrdseks soovitud väärtusega). Näited:

40 WAIT M_IN(2)=1 ’programm ootab kuni digitaalne sisendbitt 2 saab üheks

34

70 WAIT M1=100 ’programm ootab kuni muutuja M1 väärtus on võrdne 100

END

Määrab roboti juhtimisprogrammi lõpu. See käsk tuleb kindlat programmi lõppu kirjutada, muidu võib juhtimisseadmel tekkida väike arusaamatus programmiga. Näited:

100 END ’programmi lõpp

DEF PLT

Defineerib tootealuse programmis nelja (kolme) äärmise positsiooni kaudu. Enamasti defineeritakse programmis mitme pesalised alused, mis on sümmeetriliselt ehitatud ja kuhu paigutatakse rohkem kui kolm toodet. Käsku kasutatakse koos PLT käsuga. Käsu ülesehitus on järgmine:

DEF PLT <Aluse nr>, <Alguspunkt>, <Lõpppunkt A>, <Lõpppunkt B>, <Diagonaalpunkt>, <Suurus A>, <Suurus B>, <Määramise suund>

kus,

<Aluse nr> - tootealusele määratud number, <Alguspunkt> - aluse alumise ääre esimese toote pesa positsioon, <Lõpppunkt A> - aluse alumise ääre viimase toote pesa positsioon, <Lõpppunkt B> - aluse ülemise ääre esimese toote pesa positsioon, <Diagonaalpunkt> - aluse ülemise ääre viimase toote pesa positsioon, <Suurus A> - toodete arv tootealusel esimesest positsioonist (alguspunkt) kuni

aluse parempoolse positsioonini (lõpppunkt A), <Suurus B> - toodete arv tootealusel esimesest positsioonist (alguspunkt) kuni

aluse ülemise positsioonini (lõpppunkt B), <Määramise suund> - arv, mis määrab tootealuse pesade nummerdamise suuna.

Kasutatavad arvud on 1 (sikk-sakk nummerdamise meetod) ja 2 (ühes suunas nummerdamise meetod).

1 2 3

456

7 8 9

11

Alguspunkt Lõpppunkt A

Lõpppunkt B Diagonaalpunkt

1012

1 2 3

4 5 6

7 8 9

11

Alguspunkt Lõpppunkt A

Lõpppunkt B Diagonaalpunkt

1210

a b

Joonis 3.15. Tootealuse defineerimiseks kasutatavad positsioonid ja toote pesade numbrid, kui kasutatakse sikk-sakk (a) või ühes suunas (b) nummerdamise meetodit

Näited:

10 DEF PLT 1, P1, P2, P3, P4, 3, 4, 2 ’defineeritakse tootealus 1 positsioonide P1, P2, P3 ja P4 järgi. Alus mahutab ritta 3 toodet ning veergu 4. Kokku võtab tootealus vastu 12 toodet. Tootealusel toimub toote pesade nummerdamine ühes suunas.

35

20 DEF PLT 2, P2, P3, P4 ,P1, 2, 5, 1 ’defineeritakse tootealus 1 positsioonide P2, P3, P4 ja P1 järgi. Alus mahutab ritta 2 toodet ning veergu 5. Kokku võtab tootealus vastu 10 toodet. Tootealusel toimub toote pesade nummerdamine sikk-sakiliselt.

PLT

Arvutab soovitud toote pesa positsiooni tootealusel. Selleks tuleb määrata toote aluse number ja pesa number, mille positsiooni arvutatakse. Käsku kasutatakse koos DEF PLT. Näited:

30 Pabi = PLT 1, 2 ’arvutatakse tootealusel number 1 asuva 2. pesa positsioon ja omistatakse positsiooni muutujale Pabi

20 Pabi = PLT 2, 1 ’arvutatakse tootealusel number 2 asuva 1. pesa positsioon ja omistatakse positsiooni muutujale Pabi

60 Pabi = PLT 1, 4 ’arvutatakse tootealusel number 1 asuva 4. pesa positsioon ja omistatakse positsiooni muutujale Pabi

3.6 Roboti näidis juhtimisprogramm

Näidis programmi on koostatud robotile, mille ülesandeks on tõsta värvijärgi detailid mingitesse kohtadesse. Programm ise on järgmine:

100 DEF INT VARV ’defineeritakse arvmuutuja

110 MOV P99 ’robot liigub neutraalsesse positsiooni

120 HOPEN 1 ’roboti haarats avatakse

130 DLY 1 ’viivitus 1 sek

140 WAIT M_IN(0) = 1 ’robot ootab kuni detail on jõudnud värvi kontrollimiskohta

150 OVRD 75 ’roboti liikumiskiiruseks on võetud 75% maksimum kiirusest

160 MOV P1 ’robot liigub detaili värvi määramise kohta

170 DLY 0.5 ’viivitus 0,5 sek

180 IF M_IN(1)=1 THEN VARV=1 ELSE VARV=0 ’tehakse kindlaks millist värvi detail on. Mustavärvi puhul saab muutuja VARV väärtuseks 0 ja värvilise detaili puhul 1

190 OVRD 20 ’roboti liikumiskiiruseks on võetud 20% maksimum kiirusest

200 MVS P1,-40 ’robot tõstab haaratsit sirgelt 4 cm võrra ülesse poole

210 MOV P2,-40 ’robot liigub haaratava detaili kohale

220 DLY 0.1 ’viivitus 0,1 sek

230 MVS P2 ’robot liigub detaili haaramiseks alla

240 DLY 0.1 ’viivitus 0,1 sek

250 HCLOSE 1 ’haaratsi sulgemine

260 DLY 1 ’viivitus 1 sek

270 MVS P2,-30 ’robot tõstab detaili 3 cm kõrgemale

280 OVRD 100 ’roboti liikumiskiiruseks on võetud maksimum kiirusest

290 MOV P99 ’robot liigub neutraalsesse positsiooni

300 IF VARV=1 THEN GOTO 310 ELSE GOTO *MUST ’vaadatakse millisest reast tuleb jätkata programmi täitmist. Mustavärvi puhul hüpatakse reale kuhu on kirjutatud „*MUST”

310 MOV P3,-40 ’robot liigub värvilise detaili panemiskohani

320 DLY 0.1 ’viivitus 0,1 sek

330 MVS P3 ’robot langetab haaratsit sirgelt 4 cm võrra allapoole

340 HOPEN 1 ’haaratsi avamine

350 DLY 1 ’viivitus 1 sek

360 MVS P3,-40 ’robot tõstab haaratsit sirgelt 4 cm võrra ülesse poole

370 GOTO *LOPP ’hüpe reale kuhu on kirjutatud *LOPP

36

380 *MUST

390 MOV P4,-40 ’robot liigub musta detaili panemiskohani

400 DLY 0.1 ’viivitus 0,1 sek

410 MVS P4 ’robot langetab haaratsit sirgelt 4 cm võrra allapoole

420 HOPEN 1 ’haaratsi avamine

430 DLY 1 ’viivitus 1 sek

440 MVS P4,-40 ’robot tõstab haaratsit sirgelt 4 cm võrra ülesse poole

450 *LOPP

460 MOV P99 ’robot liigub neutraalsesse positsiooni

470 END ’programmi lõpp

Programmi 100. real on defineeritud integer tüüpi arvmuutuja nimega VARV. Muutujale antakse mingi väärtus vastavalt värvi tuvastusele. Programmi kirjutamisel on mõttekas kõik programmis vaja minevad muutujad alguses ära defineerida.

110. real kästakse roboti liikuda P99 märgitud positsiooni, mis on positsiooni nimekirjas olemas. P99 on mõttekas valida selline kuhu robot saab liiguta kergelt, ilma et see mingite asjade vastu läheks.

P99

P1P2

P3

P4

P3,-40

P4,-40

P2,-40

P1,-40

Joonis 3.16. Roboti liikumisteekond näidisprogrammi järgi

120. real antakse robotile käsk avada haarats. Haarats peab kindla peale avatud olema, kui minnakse detaili võtma. Kohe järgmisele reale on kirjutatud 1 sek viivitus, mille jooksul robot midagi ei tee. See laseb robotil avada haaratsit korralikult.

140. real ootab robot detaili saabumist. Kui detail on kohal, siis annab sellest märku andur muutes sisendbitti 0 üheks (bittide lugemine algab nullist). Detaili saabudes liigub roboti programm järgmisele reale. Siin muudetakse roboti liikumiskiirust, mis kehtib kuni seda uuesti muudetakse. Roboti liikumiskiiruseks on võetud 75% tema maksimum kiirusest.

160. real liigub robot detaili värvi tuvastamiskohale P1, mis on positsiooni nimekirjas olemas. Järgmisel real toimub jälle roboti seisak 0,5 sek, et värvi tuvastamisandur suudaks teha kindlaks detaili värvi.

180. real vaadataksegi millise värvi on andur tuvastanud. Kui sisendbitt 1, mille taha on ühendatud värvi tuvastusandur, on 1, siis on tegemist värvilise detailiga ja muutujale VARV antakse väärtus 1. Aga kui sisendbitt 1 on 0, siis on detail mustavärvi ja muutuja VARV saab 0 väärtuse.

37

190. real muudetakse jälle roboti kiirust, milleks võetakse 20% maksimum liikumiskiirusest. Kahe järgmise reaga liigutatakse robot detaili kohale.

220. real on viidud sisse viivitus, et robot jõuaks täpselt P2,-40 tähistatud positsiooni. Järgmise kahe reaga liigutatakse roboti haarats otse alla nii, et see detailist kinni haarata saaks.

250. real haarab robot detailist kinni. Järgmisele reale on kirjutaud 1 sek viivitus, mille jooksul peaks robot suutma detailist kinni haarata. Kui viivitus puudub, siis võib juhtuda, et robot ei haara detailist kinni vaid võtab sealt kinni, kust ta ei tohiks (võib takistada roboti liikumist jäädes millegi taha kinni).

270. real liigutatakse roboti haaratsit 3 cm võrra ülesse. Järgmisel real tõstetakse roboti liikumiskiirus maksimum kiiruse peale, millega liigub robot kogu ülejäänud programmi.

290. real liigub robot neutraalsesse positsiooni, kust robot saab liikuda ilma takistusteta otse (roboti liikumisel ei jää ette takistusi) igasse tema positsiooni nimekirjas olevasse positsiooni.

300. real vaadatakse, et millisest reast jätkatakse roboti programmi täitmist. Kui detail on musta värvi, siis hüpatakse reale kuhu on kirjutatud *MUST. Kogu programmiosa, mis jääb tingimus rea ja *MUST tähisega tähistatud rea vahele, jäetakse täitmata. Aga kui detail on teist värvi, siis jätkatakse järgmiselt realt roboti programmi täitmist. Järgmisele reale käsib hüpata GOTO 310 käsk

310. esimesel real liigub robot värvilise detaili mahapanemiskoha kohale. Järgmisel real olev viivitus lubab robotil jõuda täpselt talle eelmisel real määratud positsiooni kohale. Siis liigub roboti haarats 4 cm alla poole ja avab haaratsi. Peale seda ootab robot 1 sek, et lasta detail korralikult lahti.

360. real tõstab robot haaratsit 4 cm ülesse poole, et ei põrkuks kokku maha pandud detailiga, kui robot liigub detaili maha panemiskohast eemale. Järgmisel real kästakse roboti programmil hüpata *LOPP tekstiga tähistaud reale, et jätta vahele mustavärvi detaili mahapanemistegevus.

380. real on kirjutatud *MUST, mis tähistab kohta kuhu programm peab hüppama kui detail on mustavärvi.

390. real liigub robot mustavärvi detaili mahapanemiskoha kohale. Järgmisel real olev viivitus lubab robotil jõuda täpselt talle eelmisel real määratud positsiooni kohale. Siis liigub roboti haarats 4 cm alla poole ja avab haaratsi. Peale seda ootab robot 1 sek, et lasta detail korralikult lahti.

440. neljandal real tõstab robot haaratsit 4 cm ülesse poole, et ei põrkaks kokku maha pandud detailiga, kui robot liigub detaili maha panemiskohast eemale.

450. reale on kirjutatud *LOPP, mis tähistab kohta kuhu programm peab hüppama kui värviline detail on maha pandud.

460. real liigub robot oma neutraalsesse positsiooni.

Viimane rida tähistab koguprogrammi lõppu, kuhu programm jõuab kui robot on jõudnud neutraalsesse positsiooni.

Programmis kasutatud positsioonid P1, P2, P3, P4 ja P99 on olemas roboti positsiooni nimekirjas. Järgmises peatükis saab lugeda positsioonide lisamises kohta roboti positsiooni nimekirja.

38

Kogu programmi saab ka lühemaks teha kui kasutada DEF POS käsku. Tekstidega *MUST ja *LOPP tähistatud ridade vahele jäävat programmilõigu saab täielikult ära kaotada. Eespool muutuksid veel mõned teised read üleliigseks. Selle optimeerimine jääb teie teha.

3.7 Roboti positsioonide nimekiri

Roboti positsioonide nimekiri salvestatakse MELFA Basic IV keele puhul POS laiendiga faili ning universaalse roboti programmeerimiskeele (IRL) puhul PSL laiendiga faili. Siin kohal tuleb meelde jätta, et roboti positsioonide nimekirja faili nimi peab kokku langema roboti juhtimisprogrammi nimega, et robot saaks aru milline roboti programm ja roboti positsioonide nimekiri kokku lähevad.

Joonisel 3.17 on kujutatud aken, kus on avatud roboti positsioonide nimekiri. Seal on näha iga programmis kasutatava roboti positsiooni nimi, koordinaadid, pöördnurgad ja kommentaar.

Roboti positsioonide nimekirjas positsiooni nime peal topelt hiire klõpsu tehes liigub robot 3D-vaate aknas positsiooni parameetritega defineeritud punkti. Mõnikord võib tulla veateade roboti positsiooni muutumise asemel, mis juhtub siis, kui valitud positsioon ei asetse roboti tööpiirkonnas.

Roboti positsioonide nimekirjas olevate positsioonide andmeid on võimalik muuta. Selleks tuleb avada rippmenüü (vt joonis 3.18) mingi roboti positsiooni peal (valida hiire parema nupuga positsioon). Rippmenüüst valitakse Properties, mille peale avaneb aken Position List Entry (vt joonis 3.18). Selles aknas saab määrata roboti positsiooni nime, mis enamasti algab P tähega ja millele lisandub positsiooni salvestamise number. Võimalik on muuta positsiooni X, Y ja Z koordinaate ning A ja B pöördnurkasid. Tärniga lahtrisse saab lisada roboti positsiooni kohta käivat kommentaari.

Joonis 3.17. Roboti positsiooni nimekiri ja selles avanev rippmenüü

39

Joonis 3.18. Roboti positsiooni andmete muutmine

Roboti positsioon lisatakse roboti positsioonide nimekirja, kui vajutada Jog Operation aknas (vt joonised 3.6 ja 3.8) nuppu Current Position → Pos. List (loe täpsemalt peatükis 3.3. Roboti mudeli juhtimine 3D-vaate aknas). Sama funktsiooni saab kasutada ka rippmenüüdt käsku Insert Position valides. Sel juhul võetakse roboti hetke positsioon 3D-vaate aknas ja salvestatakse roboti positsiooni nimekirja uue nimega. Käsk Accept Position salvestab ka roboti praegune positsiooni 3D-vaate aknas roboti positsiooni nimekirja aga mitte uue nime, vaid roboti positsiooni nimekirjas viimati valitud roboti positsiooni nime alla. Teisisõnu positsiooni parameetrid kirjutatakse üle.

Roboti positsiooni kustutamiseks roboti positsiooni nimekirjast tuleb valida kustutav positsioon ja vajutada Delete klahvi arvuti klaviatuurilt.

3.8 Programmi simuleerimine

Peale roboti programmi kirjutamist ja roboti positsiooni nimekirja loomist toimub kirjutatud roboti juhtimisprogrammi testimine arvutis, et leida vead programmis ja vaadata, et robot töö ajal kasutatava mooduli teiste seadmetega kokku ei põrkaks.

Enne simulatsiooni alustamist tuleb valida programmi kirjutamise aken ja vajutada Compile & link ikoonile, mis kontrollib programmi teksti ja laeb selle virtuaalsesse roboti juhtimisseadmesse. Kui Compile & link ikoonile enne simulatsiooni käivitamist ei vajutata, siis käivitatakse viimati virtuaalsesse roboti juhtimisseadmesse laetud roboti programmi simuleerimine.

Programmi simulatsiooni saab teostada kas siis üks programmirida korraga või kogu programm korraga. Esimese simulatsiooni puhul tuleb Execute menüüst valida Next Step käsk (vastav ikoon ka allpool menüü rida olemas). Iga kord kui see valida teostatakse ühe programmi rea peal olev tegevus ja liigutakse seejärel järgmise rea juurde.

Teise simulatsiooni jaoks tuleb Execute menüüst valida Start käsk (ikoon olemas). Siin täidetakse kogu programm kuni jõutakse programmi lõppu tähistava käsuni, programmi peatava käsuni või kui simulatsiooni ajal tekib mingi viga (nt mingi positsiooni pole võimalik liikuda). Simulatsiooni peatamiseks tuleb Execute menüüst valida Stop käsk (ikoon olemas).

40

Menüü Execute all on käsk Start Cycle, mille valiku peale hakatakse roboti programmi simuleerima lõpmatuseni või nii kaua kuni see kasutaja poolt peatatakse.

Robot programmi kirjutamse aknas näidatakse simulatsiooni ajal antud hetkel programmirida, mille järgi robot praegu tegutseb.

Iga uue simulatsiooni alustamiseks tuleb 3D-vaate aken ja roboti programm viia algolekusse. 3D-vaate akna saab algolekusse viia, kui Edit menüüst valida Reset Workcell käsk. Execute menüüst Reset Program käsu valikuga viiakse jälle roboti programm algusesse.

Et avastada erinevate detailide ja roboti kokkupõrkeid, tuleb kokkupõrke avastamise režiim aktiveerida. Execute menüüst valida Collision Detection. Kui robot nüüd millegi vastu või millestki läbi liigub, siis muutuvad kokku puutuvate detailide värvid lillaks 3D-vaate aknas (vt joonis 3.19).

a) b)

Joonis 3.19. 3D-vaate akna pilt enne kollisiooni avastamise sisse lülitamist (a) ja pärast seda (b)

Kui tööstuslahenduses, millele kirjutatakse roboti juhtimisprogrammi, kasutatakse andureid, siis tuleb andurite simulatsioon sisse lülitada. See on vajalik, et saada anduritelt reaalset infot roboti juhtimisseadmesse. Execute menüüst tuleb valida Sensor Simulation.

3.9 Uue elemendi lisamine roboti projekti

Roboti rakendusse on võimalik lisada uusi elemente, detaile, seadmeid nagu andur, vahe sein, haarats jne COSIMIR Educational’is olevast mudeli andmebaasist. Mudelite andmebaas avaneb kui menüüst Execute valida käsk Model Libraries…. Avanenud aknas (vt joonis 3.20 a) on näha järgnevad mudelite grupeeringute kaustad:

• ABB - Robots – firma ABB roboti mudelid.

• Fanuc - Robots – firma Fanuc roboti mudelid.

• KUKA - Robots – firma KUKA roboti mudelid.

• Miscellaneous Grippers – erinevate haaratsite mudelid.

• Miscellaneous LEDs – LED lampide mudelid.

• Miscellaneous Materials – erinevate materjalide mudelid.

• Miscellaneous Mechanisms – erinevate mehhanismide mudelid.

• Miscellaneous Primitive – kastide, silindrite, kerade jne elementide mudelid.

41

• Miscellaneous Robots – erinevate robotite mudelid.

• Miscellaneous Sensors – erinevate andurite mudelid.

• Miscellaneous Textures – erinevate materjalide pinnatekstuurid.

• Mitsubishi - Robots – firma Mitsubishi roboti mudelid.

• Reis - Robots – firma Reis roboti mudelid.

• Siemens S5/S7 - PLC – firma Siemensi tööstuskontrollerite mudelid.

• Staeubli - Robots – firma Stäubli roboti mudelid.

a) b)

Joonis 3.20. Model Libararies aken avanemisel (a) ja pärast mahtuvusanduri valikut (b)

Valides Miscellaneous Sensors kausta alt Capacitive Sensor on näha mahtuvusanduri 3D mudeli pilt ja infomastioon anduri kohta Model Libraries aknas (vt joonis 3.20 b). Anduri kohta on näidatud seadme mõõdud ja töötamisalavahemik millimeetrites.

Peale mudeli valikut lisatakse selle pilt roboti 3D-vaate aknasse, kui Model Libraries aknas vajutada Add nuppu. Piisab ühekordsest nupu vajutamisest mudeli lisamiseks projekti.

Enamasti on tarvis liigutada lisatud mudel ettenähtud kohta 3D-vaate aknas. Selleks tuleb Execute menüüst valida Model Explorer. Avanenud aken (vt joonis 3.21) võimaldab juurdepääsu roboti simulatsioonis kasutatud objektidele, elementidele, materjalidele, lähteobjektide raamatukogule (Libraries), juhtimisseadme I/O’dele ning 3D-vaate akna valgustusallikatele (kust kohast paistab valgus seadmele peale).

42

Joonis 3.21. Model Explorer aken

Iga uue mudel sisse toomisel roboti rakendusse luuakse Objects kausta alla uus kaust mudeli nimega, mis seotakse mudeliga. Simulatsiooni lisatud mahtuvusanduri mudelile vastab Objects kasuta all olev CapacitiveSensor nimeline kaust. Mõnikord tekib vajadus muuta mudelite kaustanimesid, kui on vaja teha vahet, et millist mudelit kus või mis jaoks kasutatakse. Nime muutmiseks tuleb vajutada hiire parema nupuga kausta peale. Avanenud rippmenüüst (vt joonis 3.22) tuleb valida Rename. Peale seda sisestatakse kasuta uus nimi, mis kinnitatakse Enter’i vajutusega klaviatuurilt.

Joonis 3.22. Mahtuvusanduri mudeli kausta peal avatud rippmenüü

Mahtuvusanduri liigutamise alustamiseks 3D-vaate aknas, tuleb valida anduri mudeli kausta nimi hiire parema nupuga. Avanenud rippmenüüst valitakse Properties käsk (vt joonis 3.22). Uues aknas nimega Properties for object tuleb akna ülaservast valida Position paneel (vt joonis 3.23). Seal antakse ette anduri positsiooni koordinaadid (X, Y ja Z lahter) ja pöördnurgad (Roll, Pitch ja Yaw lahter), kui andurit on vaja mingi nurga alla keerata. Koordinaatide ja pöörnurkade lahtrite sees olevaid arve saab muuta kui vajutada vastava lahtrite kõrval olevatele nooltega

43

nuppudele. Position all olevas Increment lahter võimaldab määrata koordinaadi muutmise sammu, kui vajutatakse X, Y või Z lahtri järel olevaid noolega nuppe. Rotation’i all olev Increment määrab samas pööramisnurga muutumise sammu.

Joonis 3.23. Mingi mudeli positsiooni koordinaatide ja pöördnurkade muutmine

a) b)

Joonis 3.24. Roboti simulatsiooni aken enne mahtuvusanduri lisamist (a) ja pärast seda (b)

Roboti mudelisse lisatud mahtuvusandurist pole kasu, kui see pole seotud roboti juhtimisseadme digitaalsisendiga. Selleks tuleb Model Explorer aknas Objects kasuta all olevas roboti mudeli kaustas (RV-2AJ) avada Inputs kaust (vt joonis 3.25). Siin on salvestatud kogu info roboti juhtimisseadmes olevad digitaalsisendeite kohta, et mis on kasutusel, mis pole ja milline on selle seisnud. Nüüd tuleb anduri kaustas olev Outputs kaust avada. Tema sees olev digitaalväljund tuleb lohistada vaba roboti digitaalsisendi peale ja lasta selle kohal lahti (vt joonis 3.26). Sellise tegevusega seotakse mahtuvusanduri väljund roboti juhtimisseadme sisendiga. Hiljem saab andurit kasutada roboti juhtimisprogrammis mingi asja olemasolu kindlaks tegemiseks (määramiseks). Mingi mudeli sisendi sidumine roboti juhtimisseadme väljundiga teostatakse ka lohistamisega (viia mudeli sisendi roboti väljundi kohale ja siis lahti lasta).

44

Joonis 3.25. Roboti rakenduses oleva roboti juhtimisseadme sisendite loetelu

Joonis 3.26. Mahtuvusanduri sidumine roboti juhtimisseadmega

Alati ei pruugi leida kõiki roboti projektis vaja minevate detailide mudeleid mudeli andmebaasist. Need võivad olla MOD lõpuga failis, mis asuvad näiteks C:\Program Files\didactic\COSIMIR Educational.GB\Models\MiscLibs kaustas. Selliseid mudeleid saab roboti tööstuslahenduse rakendusse viia importimise kaudu. Selleks tuleb kõigepealt valida roboti 3D-vaate aken, siis File menüü alt Import… käsk. Avanenud akna kaudu tuleb ülesse otsida mudeli MOD lõpuga fail, mille valik kinnitatakse OK nupuga. Peale seda lisatakse MOD lõpuga failis olev mudel roboti 3D-vaate aknasse. Roboti mudelisse toodud mudeli viimiseks ettenähtud kohta tuleb teha samad asjad, mis tehti eespool mahtuvusanduri liigutamisel temale ettenähtud kohta.