Programare RI

31
 Capitolul I l. Integrarea cu sisteme de transport si stocare Benzi conveior O banda conveiol consta din doua sau ntai rnulte role ce antreneaza o lrucla continua de rnaterial (format din mai multe straturi de material cu o concentratie semrrificativa de caltciuc pentru marirea elasticitatii) sau o suprafata formata din placute dure de tip za ce formeaza suprafata de transport. Una sau mai rnulte role sunt antrenate de motoare ce petmit miscarea benzii. Exista doua clase principale de benzi conveior: . Benzi conveior de erterior (benzi ce se deplaseaza cu viteze mari. transporta rlateriale grele, sunt rezistente [a actiuni nrecanice sau actiunile mediului, nu o1'era precizie de transport - au un mecanism simplu de control - pornit/oprit), folosite in gener'al pentru transpo(ul materialelor prime. . Benzi conveior de interior (benzi ce se deplaseaza reduse - pana la maxim 3-5 m/s, transporta rnateriale tlecesal'e perltrLl procesele de fabricatie - asamblare. arnbalare, prelucrare, ot-era precizie de transport - ar,r integrati senzori de prezenta si monitorizare a obiectelor transportate, elemente de transfer a materialelor ce pernrit un control conrplex) fblosite iu geueral in sisterne integrate de fabricatie. Utilizarea benzilor conveior au ca prim avantaj coneclarea in fluxul de productie a echipameutelor industriale de tip roboti, masini CNC, masirti cu functii specializate, etc. Sisteme ASRS (Autornated Storage and Retrieval System) Un sistem de tip ASRS consta dintr-o varietate de rletode si echipanretrte automate de preluare/clepunere a anumitor obiecte in locatii specifice de stocare. Sistemele de tip ASRS sunt in mod uzual in aplicatii unde: . este necesara manipularea unui numar mare de obiecte ce trebuiesc stocate sau preluate din sistemul de stocarel . este itnportanta densitatea spatiLrlui de stocare datorita constrangerilor de spatiu . acuratetea este critica datorita posibilelor pierderi cauzate de deteriorarea obiectelor manipulate Majoritatea sisteruelor sunt flxate pe sine sau de tavan si gtridate fblosind sine pentru a asigura o aliniere precisa. Sistenrele ASRS sunt inrpartite in trei nrari categorii: . macarale robotizate cu un catarg. . macarale robotizate cu dublu calarg, . si sisteme de tip rnan-aboard (sisterne ce salveaza din spatiul de luclu deoarece depozitele/ spatiul de stocare este dispus pe vefiicala in functie de rezistenta suporlului tlzic - podeatta, si de inaltimea incaperii, obiectele stocate fiind trasportate pe verlicala si nu pe otizontala ca in cazul macaralelor ceea ce lace ca sistemul sa fle rlai lent), Utilizarea sisteurelorASRs aduc beneficii ploceselor inclustriale in care acestea sunt integrate si anume: . a de stocare . Imbunatateste calitatea si performanta . Ofera contuolul stocului si raportarea functionalitatii in timp real Sistemele de tip ASRS cat si benzile conveior sunt conduse in marea majoritate a cazurilor prin calculatore ir"rdustriale specializate sau prin automate programabile. Pentru a accesa banda sau sistemul ASRS se rcalizeaza o comunicatie robot - PLC folosind liniile de I/O digitale sau alte linii de I/O (cornunicatie TCP, seriala. etc.). In anumite cazvribenzile sau sistemeleASRS pot fi conectate direct la controller-ul robot fiind conirolate ca axc arrrilialc.

Transcript of Programare RI

Page 1: Programare RI

7/21/2019 Programare RI

http://slidepdf.com/reader/full/programare-ri 1/31

Capitolul I l. Integrarea cu sisteme de transport si stocare

Benzi conveior

O banda conveiol consta din doua sau ntai rnulte role ce antreneaza o lrucla continua de rnaterial

(format din mai multe straturi de material cu o concentratie semrrificativa de caltciuc pentru marireaelasticitatii) sau o suprafata formata din placute dure de tip za ce formeaza suprafata de transport. Una sau

mai rnulte role sunt antrenate de motoare ce petmit miscarea benzii.

Exista doua clase principale de benzi conveior:

. Benzi conveior de erterior (benzi ce se deplaseaza cu viteze mari. transporta rlateriale grele, suntrezistente [a actiuni nrecanice sau actiunile mediului, nu o1'era precizie de transport - au unmecanism simplu de control - pornit/oprit), folosite in gener'al pentru transpo(ul materialelor prime.

. Benzi conveior de interior (benzi ce se deplaseaza cu viteze reduse - pana la maxim 3-5 m/s,transporta rnateriale tlecesal'e perltrLl procesele de fabricatie - asamblare. arnbalare, prelucrare, ot-era

precizie de transport - ar,r integrati senzori de prezenta si monitorizare a obiectelor transportate,elemente de transfer a materialelor ce pernrit un control conrplex) fblosite iu geueral in sisterneintegrate de fabricatie.

Utilizarea benzilor conveior au ca prim avantaj coneclarea in fluxul de productie a echipameutelorindustriale de tip roboti, masini CNC, masirti cu functii specializate, etc.

Sisteme ASRS (Autornated Storage and Retrieval System)

Un sistem de tip ASRS consta dintr-o varietate de rletode si echipanretrte automate depreluare/clepunere a anumitor obiecte in locatii specifice de stocare. Sistemele de tip ASRS sunt utilizate inmod uzual in aplicatii unde:

. este necesara manipularea unui numar mare de obiecte ce trebuiesc stocate sau preluate din sistemulde stocarel

. este itnportanta densitatea spatiLrlui de stocare datorita constrangerilor de spatiu

. acuratetea este critica datorita posibilelor pierderi cauzate de deteriorarea obiectelor manipulate

Majoritatea sisteruelor sunt flxate pe sine sau de tavan si gtridate fblosind sine pentru a asigura o aliniereprecisa.

Sistenrele ASRS sunt inrpartite in trei nrari categorii:

. macarale robotizate cu un catarg.

. macarale robotizate cu dublu calarg,

. si sisteme de tip rnan-aboard (sisterne ce salveaza din spatiul de luclu deoarece depozitele/ spatiul de

stocare este dispus pe vefiicala in functie de rezistenta suporlului tlzic - podeatta, si de inaltimeaincaperii, obiectele stocate fiind trasportate pe verlicala si nu pe otizontala ca in cazul macaralelorceea ce lace ca sistemul sa fle rlai lent),

Utilizarea sisteurelorASRs aduc beneficii ploceselor inclustriale in care acestea sunt integrate si anume:

. Imtrunatatirea eficientei operatorului si a capacitatii de stocare

. Imbunatateste calitatea si performanta

. Ofera contuolul stocului si raportarea functionalitatii in timp real

Sistemele de tip ASRS cat si benzile conveior sunt conduse in marea majoritate a cazurilor prin calculatoreir"rdustriale specializate sau prin automate programabile. Pentru a accesa banda sau sistemul ASRS se

rcalizeaza o comunicatie robot - PLC folosind liniile de I/O digitale sau alte linii de I/O (cornunicatie TCP,

seriala. etc.). In anumite cazvribenzile sau sistemeleASRS pot fi conectate direct la controller-ul robot fiindconirolate ca axc arrrilialc.

Page 2: Programare RI

7/21/2019 Programare RI

http://slidepdf.com/reader/full/programare-ri 2/31

Problema tl.l - Integrarea unei benzi conveior intr-o aplicatie robotizata

Pl P2MotorM -';'< ssu

Fig. I t . I * Integrarea unei benzi conveior intro aplicatie robotizata

Enunt:In figura de mai slls, pe banda transportoare ce este actionata de motorul M (a carui circuit de comanda este

conectat la o iesire digitala a controller-ului robotului) vin doua tipuri de obiecte:. obiecte de tiput A ce au o dimensiune astfel incat acopera ambii senzori optici (S I si 52) ce se afla

pe banda, obiecte ce au o inaltime de 4 cm;. obiecte de tipul B ce nu acopera senzorii in acelasi timp.

Se considera ca senzorii sunt conectati la intrarile digitale ale controller-ultti robotului, si de asemenea

pozitiile P I (pozitia obiectelor A pe banda cand sunt detectate de senzorul S2),P2 (pozitia

obiectelorB pe

banda cand sunt detectate de senzorul S2), pozitiile P3 si P4 ale primelor obiecte de pe palete si pozitia safe

au tbst invatate anterior. Paleta I este aliniata cu directiile X, Y a sistemului de coordonate din baza

robotului, iar paleta 2 este aliniata cu directia X.

Cerinte:

a) Sa se realizeze tabelul cu semnalele de I/O folosite.b) Realizarea programelor de comanda.

Robotul se va misca cu o viteza de 909''o din viteza maxima, iar viteza de apropiere/departare in vederea

printerii obiectelor va fr de 50% din viteza maxima.Timpul necesal'gripper-ului pentru a se inchide/deschide complet este de 0.7 secunde.

La inceputul aplicatiei, robotul va fi deplasat in pozitia safe cu gripper-ul deschis, si aplicatia se va terminacu robotul in aceeasi pozitie. Robotul va porni banda (care initial este oprita) si va testa daca vin obiecte pe

banda. Daca intr-un timp de 60 de secunde nu sunt detectate obiecte, se va afisa mesajul 'Nu sunt obiecte pe

banda " si programul se va incheia. Daca un obiect esle detectat, se va determina tipul acestuia, iar obiectelede tipul A vor fi depozitate pe paleta I (paleta are 3 randuri si 5 coloane, distantele pe rand intre doua pozitiisunt de dl cm si pe coloana de d2 cm) in rnodul Llrmator: dupa ce paleta este completata cu obiecte de tipulA, se va aseza inca un nivel de obiecte deasupra celor existente. Obiectele de tipul B sunt depozitate pe a

doua paleta (ce contine 7 locatii la distante de 40 mm) astfel incat fiecare obiect este rotit fata de vecinul saucu 90o. Daca o paleta este completata, robotul va activa un semnal de iesire specific fiecarei palete (Olpentru prirna paleta si 02 pentru a doua paleta), va astepta 40 de secunde, va dezactiva semnalul de iesire siisi va relua activitatea, considerand ca paleta a tbst schirnbata. Obiectele sunt preluate dupa ce banda a fbst inprealabit oprita. Se considera ca obiectele ce vin pe banda se gasesc la o distanta suflcient de mare unul f-ata

de celalalt astfel incat doua obiecte diferite nu vor putea sa obtureze cei doi senzori in acelasi timp.

Programul se va opri in momentul in care este receptionat semnalul "Oprire de Urgenta" (OU). verificareasemnalului se va face in timpul cat se asteapta venirea unui obiect pe banda'

Page 3: Programare RI

7/21/2019 Programare RI

http://slidepdf.com/reader/full/programare-ri 3/31

Solutie

a) Definirea semnalelor de I/O.

b) Programul de comanda.

. PROGRAM marn0; se declara varibilele f o.Iosit-e

LOCAL nra, nrb, m, oI, o2, s1, s2, ouGLOBAL pl, P2, P3, P4, safe;se configureaza parametruf Hand.Time si vlteza de 90?

PARAMETER HAND.TII{E : 0.7SPEED 90 ALWAYS; se trimite robotul in pozltia safe, cu gripper-u1 deschis

MOVET sale, f

;nra si nrb reprezinta numarul de obiecte din fiecare tip de pe paletenra:0nrb:0

;se initiali:eaza varibllele de tip semnal folosrtem-lol-2o2:3sI : t001sZ - LaOZou : 1003; se inrtial izeaza un timer necesar contorrzarii celor 60s

f00 TIMERl=Oi se porneste banda transportoare

SIGNAL (m)

ise asteapta ca senzoruf 52 sa detecteze un obiect sau ca semnaful Oprirede ;Urgenta sa fie activ sau ca timpul sa expireWAIT (SIG(s2) OR SIG(ou) OR (TII'{ER(1) >: 50));daca timpul a expirat, banda esle oprita, se afiseaza mesaiul "Nu suntobiecte pe ibandal" si programuf se lncheieIF TIMEF' (1 ) >= 60 THEI,I

SIGIIAL (.M)TYPE "Nu sunt oltriecte Pe banda I "GOTO 2OO

rT QF

idaca semnalul Oprire de Urgenta a fost act.ivaLIF SIG(ou) THEN

; se opreste bandaSIGNAL (-M); se incheie programulGOTO 2OO

ENDEND

.;daca s-a detectat un obiect; se opreste banda

SIGNAL (-m)

IE SIG{sl) THEN; daca obiectul este de tipul Ai se calculeaza pozrtla de depunere a obiectufui pe pale:ta 1

Semnal Tin semnalI o

N4

OI 2

o2 -l

SI r00lS2 1002otl r003

Page 4: Programare RI

7/21/2019 Programare RI

http://slidepdf.com/reader/full/programare-ri 4/31

SET locatiea = SHIFT(p3 BY (nra MOD 5)+d1*10,-INT( (nra MOD

15) /5) *d2*10, rNT (nral15) *40); se apeleaza programul de pickeplace

CALIr p_p (pl, locatiea.);se incre.menteaza numarul de obiecte de pe paleta

nra : nra-IELSE

;se calculeaza pozitla de depunere pentru obiectele de tip B

sET focatieb : SHIFT(p4 BY nrb*4t1 ,0,0) :RZ(90*(nrb MOD 2))CALL p,p (p2, locat-ieb)

; se incrementeaza numaru.I de obiecte de pe paletanrb : nrb+l

END;daca paleta 1 este completataIE nra =: 30 THENi se activeaza semnalul 01

SIGNAL (o1)TIMER I : 0

ise asteapta 40 de secundeWAIT TIMER(1) >= 40

,5e dezactiveaza semnalul 01SIGNAL (-o1)

;se reinitralizeaza nranra=0; se reia p.rocedura de compl-etare a paletei

GOTO 100END;daca paleta 2 este completatafF nrb :: I THENi se activeaza semnalul 02

STGNA], (o2 )

TIMER 1 : 0i se asteapta 40 de secunde

WAIr rIMER(1) >= 40; se dezactiveaza semnalul 02

SIGNAL (-O2); se reinitializeaza nrb

nr}: = 0ise reia procedura de completare a paleteiGOTO IOO

END;se reia c.ic1ul

GOTrf, 100;robotul este deplasat in safe si programlil se incheie

2AA MOVE safe. END

.PROGRAM p_p(pick, place); robotul este deplasal la 50 rnm deasupra pozitiei de prindere

APPRO pick, 50BREAK;se micsoreaza .,'iteza la 50*

SPEED 50;se deplaseaza robolul liniar catre pozltia de prindere

MOVES pick; se inchide gripper-ul

CLOSEI;se pastreaza vi-teza de 5OFa si pentru mrscarea de departare

SPEED 50;deplasam robotul liniar catre pozatia de deasupra punctufui de prindere

DEPARTS 50BREAK

; se depozit'eaza obiectul Pe PafetaAPPRO place, 50BREAKSPEED 50MOVES placeOPENISPEED 50DEPARTS 50BREAK

Page 5: Programare RI

7/21/2019 Programare RI

http://slidepdf.com/reader/full/programare-ri 5/31

i se da contr.lul pLogr:aniulur pr.r.llcipafR E,T I.]FI.I

. EIJD

Problema I1.2 - Utilizarea benzilor conveior multiple si a zonclor colnune de lucruIt,Iut,:r It{ l

Semnal RobotisernnalRI R2

N,{ I I

SI l00 t

tilotor It{2

.::: n7,6;;,:t,t ,| .i@j:

;.;r -lr':lJ*'-l1i;;: "

tr;-;;;w

] iiii; ;;i:

Fig. l I.2 - Utilizarea bcnzilor conveior multiple si a zonelor conlunc de luctn

Enunt:Se consiclera un proces de tip "ptoducator-cotlsuurator" iI1 care s[lnt inrplicati doi roboti industriali.

Pe banda transpoltoare B l(corrrandata <Ie rnotorul <Ie c.c. M l ) sosesc piese semifabricate. [n ntontentul incare o piesa este detectata de senzorul S I . banda este oprita iar piesa este preluata de robotul R I din pozitiaPl si este slrpusa unui proces de imrragazinare in supol'ti de dimensiturea 6x6 distanta dlntre piese fiind egalacu d mm atat pe directia X cat si pe directia Y (sistem de coordonate WORLD). Suporlii sr'tnt asezati intr-ostiva bidimensionala 6x6 in zolla cotnuna de lucru \ZCL) iar distanta dintre pturctele de prindere a supoftiloreste dx nlrr atat pe directia X0 cat si pc directia Y0. Pozitia de prindere a suportului din stanga sus este P2,

iar pozitia cle depozitare a piesei din stanga sus de pe acelasi suport este decalata tata de P2 cu distana dlmmpe directia X+ si cu d2 mm pe directia Y+.

Robotul R2 preia acesti suporti si ii depune pe paletele goale sosite (detectate de 52) pe banda 82(comandata de rnotorul de c.c. M2), in pozitia P3. Paletele goale sosesc pe banda 82 doar atunci candprocesul consunlator are nevoie de palete 6x6, altfel nu. Daca un suport din stiva lcare initial este plina) este

asezat pe paleta se cere aclucerea unui alt supot't pe 82 iar acesta va fi depozitat de R2 in locul suportului ce a

lost preluat. La inceputul aplicatiei robotii vor fl dusi in pozitiile sat"el si saf-e2 cu gripper-ele deschise.

Cerinte:

a) l abelul cu seurnalele de I/O necesare pentru realizarea activitatilor cu ajutorul celor doi roboti SCARA.b) Prograrnul de corlanda robot.

iiit#[i:;;M

i,t1- - I,-.ntl t1i.i .

*.

a) f)efinirea semn;rlelor de I/OSolutie

Page 6: Programare RI

7/21/2019 Programare RI

http://slidepdf.com/reader/full/programare-ri 6/31

Cerere schimbare suport (CSS) 2

Cont'irmare ca suportul este

schimbat TCCSS)

I 002

M2S2 l00l

Cerere schimbare suport (CSSPl I 002Cerere suport eol (CSC) ,,

b) Realizarea programului de comanda al robotului

. PR0GRAM robot_l ( )

;programul se executa Pe robotul R1LOCAL m1, s1, css, ccss, nrpiese, nrsuportGLOBAL P1, safel, d, dx, d\, d2

;definim semnalele de I/Om1:1s 1=10 01^^^_a

UE55_ T UUZ

; setam parametruf hand.time:0. 5

PARAMETER HAND.TIME : 0.5;folosim viteza maxima

SPtrED 1OO ALWAYS;ducem robotuf in safel cu gripper-ul deschis

MOVET safe1, 2; initializam numarui de piese si numarul de suporti

nrpiese = 0

nrsuport = 0;Pornim banda transPortoare

lOO SIGNAL (m]. )

idaca a fost detectata o PiesaItr SIG ( s1 ) THEN

;oprrm banda transportoareSIGNAL (-m1)

icalculam pozitia sllportufui pe care se va depr-rne piesaSET p : SHIFT(p2 BY (nrsuport MOD 6)*dx+d1,-l.NT(nrsupott/6)*dx+d2,0)

;calculam pozitia piesei de pe suportSET pp = SHTFT(p BY (nrpiese MoD 6)*d,-ll'lTinrpiese/6)*d,0)

;clepozitam piesa Pe un suportCALL P P(P1, PP)

; incrementam numaruf de piese depozitaten rpiese - nr Pi ese I l

;daca am depus 5x6. PieseIF nrpiese == 36 THEN

.;reinitializam numarul de PlesenrPiese : t3

;mergem 1a suPortul Lrrmatornrsuport : nrsuport+1

idaca s-au completat 6>'6 suPortiIF nrsuport :: 36 THEN

i incepem sa compfetam prlmul suportnrsuPort = 0

EI.]D; cerem schlnrharea suportul.ri

STGNAL (css);astept ca sLiportul sa fie schimbat

WAIT ,SIG (CCSS); inchid semnalul de cerereSIGNAL (-CSSJ

ENDEND

; se reia clclufGOrO 100. E}JD

Page 7: Programare RI

7/21/2019 Programare RI

http://slidepdf.com/reader/full/programare-ri 7/31

. PROGRAM p_p (pick, pface);se realizeaza procedura de pick&place (identica pentru ambii roboti)

APPRO pick, B0BREAXSPEED 5O

MOVES Pict'.CLOSE]DEPAFTS BO

BR EAIiAPPRO pface, 80BREAKSPEED 50MOVES placeOPEN IDEFARTS 8OBREAKRETURN

. END

, PROGRAM robot-*2 O'

iprograro.ul se execu a pe controller-uI robotului R2

LoCAL m2, s2, cssp, csg, nrsupcYt, pzclCLOBAL safe2, p2, p3, dx

PARAMETER HAND.TIME = 0.5SPEED IOO ALWAYSMOVET safe2, 2

:nrsuporL - O

,astept ca RL sa ceara schimLrarea unui suport100 t/,lAIT SIG (cssp)

ipornesc banda B2S ICNAL (m2 )

;astept sos-irea unei Pafete goaleWAIT SIG (s2)

;opresc bandaSIGNAL (-m2)

;calclllam pozltia de prindere a suportului din ZCLSET pzcf = SHIFT(p2 BY -INT(nrsuportl5)*dsr (nrsuport MOD 6)*dx, 0)

i suportul este mut-at din ZCL pe paletaCALL p_p(pzcI, p])

icer suporL golS t GTJA L lCSg )

.i poinesc lrandaSIGNAL (M2 )

,astept ca.suportuf curent sa iasa d.in zona de detectie a senzorului s2WAIr SIG (-s2 )

;astept ca suportul cerut sa fle in P.ll^IAIT SrG (s2)

;opresc banda si cererea pent.ru suport go1SICNAL (-m2)SIGNAL (-csg)

imut suportul in ZCLCALL p_p(p3, pzcl)

;duc robotul in safeMOVE safe2

idaca s-au schimbat toti suporti.iIF nrsuport == 36 THEN

; se continua cu primul suportnrsuport : 0

ENDi se rej-a cic1ul

GOTO I OO

. END

Page 8: Programare RI

7/21/2019 Programare RI

http://slidepdf.com/reader/full/programare-ri 8/31

problema ll.3 - Integrarea robotilor industriali in celule flexibile de fabricatie

Enunt:

Intr-gn proces indlstrial de esamblare de produse, descris in figura de mai jos se folosesc trei roboti

industriali, doua benzi transpofioare dotate cu dispozitive de transfer, sio

cameravideo necesara pentru

inspectia vizuala a produsului tlnal. Produsele sutrt asantblate pe palete ce sunt depuse pe banda

transportoare interitara de la postLrl mannal. Cand paleta este detectata de senzorul CP I , pistonul B I este

actionat pentru a bloca venirea altor palete, in momentul in care paleta este detectata de CP2, pistonul 82este actionat pentru blocarea paletei si este pornit mecanismul de transfer T L Cand paleta a traversat pe

banda exterioara si este detectata de senzorul CP3, Tl este oprit, iar 82 este dezactivat. Paleta contintn sa

avanseze pe banda exterioara. Cand CP3 nu mai simte prezenta paletei pistonul B I este dezactivat permitand

trecel'ea unei alte palete.Paleta ajunge in dreptul postului de lucru al robotului ddspt One unde este detectata de senzorul

Cp4, se actioneaza pistonul 83. cand paleta este detectata de CP5 se actioneaza 84 si apoi punctul de irrdexajpl I care fixeaza paleta pe banda. Din acest moment robotul Adept One preia o piesa din stiYa bidimensionalaalaturata, 1in care piesele sunt la distantele dx pe directia X0, si dy pe directia Y0, coltul din stanga sus fiindinvatat de robot prin pozitia Pl, stiva are 8 piese pe linie(X0)) si o depttne pe paleta in pozitia P2.

Daca senzorul Sl este pe 0 (dezactivat), robotLrl Adept One dezactiveaz.a PI I si 84 asteapta 2 secunde, apoidezactiveazape 83 permitand nnel alte piese sa ajunga in postul de lucru.

Functionarea robotulLri cartezian este asemanatoare robotului Adept One cu diferenta ca acesta

foloseste senzorii: CP6, CP7 si 52 si elementele de executie 85, 86 si PI2. Stiva asociata este liniara pe

directia Y0, cu distanta intre piese d l, si cu prima pozitie din stiva memorata in pozitia P3. Pozitia de pe

paleta unde se depune piesa este P4.Robotul Cobra functioneaza pe acelasi principiu, fblosind senzorii: CP8, CPg si 53. si elenrentele de

executie 87, 88 si CP3. Stiva asociata este verticala cu pozitia din baza notata cu P5, iar inaltirrrea pieselor

fiind dz. Pozitia de depttnere este notata cu P6.

Cand paleta ajunge la postul cle vedere ea este detectata de senzorul CPl0" pistonul 89 este actionat.

cand paleta este detectata de CPI I se actioneaza B10 si punctul de indexaj PI4, apoi o camera video

inspeiteaza montajLrl si in functie de rezr,rltatul inspectiei emite un semnal de iesire ( l:montaj corect,

0:montaj incorect). Dupa inspectare se dezactiveaza PI4 si 810 se asteapta 2 secunde si se dezactiveaza si89.

Daca montajul a fost corect si paleta este detectata de CP l2 se actioneaza B I l. apoi la detectarea

paletei de catre CPl3 este actionat BI2 si'f2. Cand paleta este detectata CPl4 se dezactiveaza Bl l, Bl2 si

T2. Apoi paleta este preluata de pe tranda de operatorul de la postul manual.-Daca montajul este incorect si paleta este detectata de CP 1 2 se actioneaza B I I se asteapta 5 secunde

si apoi se dezactiveaza B I 1.

Observatii:l. daca paleta nu ajunge in timpul T la posturile de lucru ale robotilor sau la postul de vedere se va afisa

u1 mesaj de eroat'e ("E posibil ca paleta sa fle blocata pe ttaseu"), iar proglatnttl de conducere a

postului in cauza va astepta apasarea tastei ENTE,R pelltru ca progranllll sa continue.(T:30,60,90 si

120 secunde pentru posturile Adept One, Cartezian, Llobra, respectiv Vedele.)

2. se considera ca stivele au o capacitate suficienta pentru asatnblarea tuturor trlaletelor"

Cerinte:

1. Definirea semnalelor de I/0 pentnt realizarea acestei activitati2. Realizarea programelor de cornanda pentru asanrblarea a N montaje (nu este consicterat si aspectul

de corectitudine a montaiultti.

Page 9: Programare RI

7/21/2019 Programare RI

http://slidepdf.com/reader/full/programare-ri 9/31

Page 10: Programare RI

7/21/2019 Programare RI

http://slidepdf.com/reader/full/programare-ri 10/31

Solutie1. Definirea semnalelor de IiO

Semnal Robot Tip

Semnal

Nr.

SemnalTI Adept

Oneo 6

T2 Cobra o l0

BI AdeptOne

o 4

R2 Adept0ne

o 5

B3 AdeptOne

o I

B4 AdeptOne

o 2

B5 Cartezian o I

B6 Cartezian o 1

B7 Cobra o_o

I

B8 Cobra 2

B9 Cobra o 4

Bl0 Cobra o 5

B11 Cobra o 8

B12 Cobra o ICPI Adepl

Oner003

CP2 AdeptOne

r004

CP3 AdeptOne

r 005

CP4 AdeptOne

r00l

CP5

CP6

Adept

91._-Cwtezian

I

I

r002

r00 r

9v-CP8

Cartezian_

Cobrary9?_100 r

CP9 Cobra I 002

CPIO Cobra l 004

CPII Cobra | 005

CPI2 Cobra 1008

ql_'l _CPI4

9"btCobra

t___Lo

99? _,010

JII Adept

OnePI2 Cartezian o J

Page 11: Programare RI

7/21/2019 Programare RI

http://slidepdf.com/reader/full/programare-ri 11/31

Cobra

1" .1Adept0ne

S2S3

camefa

Cobra

Cobra

catr

2. Realizar-ea progratnelor de comanda

. PROGRAI4 acces-s ( i;prograrnul este executat de robotul Adepti gi are functia de a permite introducerea

interioara )

icatre roboti (banda exterioara)

LOCAL bI, b2, tl, cP1, cP2, cP3, nrP

,se defillesc semnaLele folosite

de la postul manuaf (bandaOnede palete

bl :4b2:5tl = 5

cp1 = 1003up_ ruu9-h? - lnnqPJ

; se initi.al-izeazanrp:0

numarul de palete

ise asteapta veni.rea unei paleteI00 WAIT SIG(cp.t)

ise blocheaza intrarea al-tor palete in zona deSIGNAL bTise asteapta ca paleta sa ajunga in pozi-tla dehIAIT S IG ( cp2 )

;se )rloc.heaza inaintarea Paletei

Iucru cu sistemul

transfer

de transfer

SIGNAL b2.^^ ih1-i a-r Lransferul De f Ilf LIU-O

SIGNAL tIise asteapta ca paleta sa ajunga pe banda exterioaraWAIT SIG ( cp3 ). <a ^nr6eto mecanismul de transferJl vy UL ]

SIGNAL *11, ;se dezactiveaza Pistonul 82

SIGNAL _b2; se asteapta ca paleta sa paraseasca zona de transfer deWAIT NOT SIc(cp3);se incrementeaza numarul de palete introduse in sistemnr p:n rp+ l; se dezacliveaza pistdnuL Bl permltand intrarea unei noi

tr ansf e.rSICNAL -b I

idaca nu s-au introdus N pafete, procesul se reiaIFnrp<nTHEN

coro 100END

. END

. PROCRAM adepLone ( )

;programul se executa pe robotul Adept one si are functia;operatiife de manipulare asociate acestui robotLOCAL cp4, cp5, b3, b4, Pil, sl, nrpiese, 1oc

pe b.anda exetrioara

palete in zona de

de a reaf i.za

Page 12: Programare RI

7/21/2019 Programare RI

http://slidepdf.com/reader/full/programare-ri 12/31

GLOBAL ]pL, P2

PARAMETER HAND.TIME = 0.5SPEED lOO ALWAYS;se trimite robotul lntr-un punct in exteriorul zonei cle lllcru cu qri,pper-ul

deschl sMOVET P1, 1

;se definesc semnafele cte I./Ocp4 = 1001b3=1cp5 : 1002b4:2pi1:3s] = 1006

;se initialLzeaza numaru.l de piese depusenrpiese = 0

,

;se initializeaza un timer si se asteapta ca o fJa:l.eta sa ajunga in post intr-untimp mai m1c sau egal cu 30 de secunde

1OOTIMER 1 = 0

WAIT TIMER(1) >: 30 oR SIGlcp4);daca timpul a expirat operatorul este atent-ionat si se asteapta ca acesta sa

remedieze Probfemaisi sa apese tasta ENTER, apor. se reia operatia de asteptare a unei paLeteIF TIMER(1) >= 30 rHEN

PROMPT "E posibil ca paleta sa fie blocata pe traseu", $aGOrO 100

END;daca paleta a ajuns in post se acli,:neaza 83 pentru a bloca paletele urmatoareSIGNAL b3ise asteapta ca pa.Leta sa se pozitloneze in zona de lucruWAIT SIG (cp5)i se blocheaza inaintarea PafeteiSIGNAL b4

i se fixeaza Paleta Pe bandaSIGNAL pil;se calculeaza focatia obiectului ce i.ra fi pfasat pe paletaSET 1oc: SHIFT(pl BY (nrpiese MOD B)*di.,-I|trT(nrprese/8)*dy,0)

;se apeleaza rutina de pick&place cu pozitiile de preluare si depunere a pieseiCALL p_p lloc, p2)i se incrementeaza numarul de piese depusenrpiese = nrpiese+1;se asteapta ca bancia sa fie libera in aval astfel incat paleta sa poata sa iasa

din zona de lucruWA]T NOT SIG(51);se debfocheaza PafetaSIGNAL -pi1; se permite deplasarea PaleteiSIGNAL -b4ise asteapta 2sTIMER 1 : O

wArT T]MER(r) >: 2

i se permite intrarea unei alte palete in postSIGNAL _b3;daca numarul de piese/'palete este mai mic decat ]'tr atuncl se reia operataa

--^ / n THEN rr Pauu \

GOTO 1OOEND

. END

'. PROGRAI.i p_p (pick, place);programul de picl(&place este identic pentru toti robotii; si se executa pe fiecare controller robctAPPRO plck, B0

BREAKSPEED 2OMOVES pick

Page 13: Programare RI

7/21/2019 Programare RI

http://slidepdf.com/reader/full/programare-ri 13/31

CLOSE,IDEPARTS 80BREAKAPPRO pIace, 80BRFAKSPEED:OMOVES pl aceOPEN 1

DEPAR'TS 3(]RETURN

. END

. PROGRAM cartezian ( )

;proqramul se executa pe robotul Cartezian si are functla de a realiza;operatlile de manipulare asociate acestui robotLOCAL cp6, cp7, b5, b6, pi2, s2, nrpiese, 1ocGLOBAL p3, p4

PARAMETER HAND. TII'{E : O. 5

SPEED 1OO ALWAYSMOVET p3, 1

; se deflnesc semnalele de I/O folositeen6 - I OOlb5:1cp7 : I 002b6:2Pi2=3

s2:1003

,se initialtzeaza numarul de piese depusenrprese - O

;se ilitializeaza un tamer si se asteapta ca o paleta sa ajunga ln posL intr-untinrp mai mic sau egal cu 60 de secunde

IOOTIMER I : O

WAfT TIMER(T) >= 60 CR SlG(CP6)

;dacatimpul a expirat cperatorul e.ste atentionat si se asteapta ca acesta sa

remedie2e. problema; si sa apese tasta EIJTEF,, apoi se reia operatia de asteptare a unei paleteIF TIMER(I) >: 60 THEN

PROMPT "E posibil ca paleta sa fie blocata pe traser.r", $aGOTO 100

ENN

;daca paleta a ajuns in post se actioneaza 85 pentru a bloca paletele urmatoareSICNAL b5;se asteapta ca paleta sa se pozitioneze in zona de lucruWAIT SIG ( Cp7 )

; se blocheaza -tnaintarea paleteiSIG}JAL b5;se fizeaza paleta Pe bandaSICNAL p i 2

;se cafculeaza locatia obiect-ului ce va fi plasat pe paletaSET 1oc: SHIFT(pil BY 0,nrpiese*d1,0)

ise apeleaza rutlna de. pick&place cu pozitiile de preluare si depunere a pieseiCALL p_p(1oc, p4)

ise incrementea:a numarul ,le piese depusenrpiese - nrpieserl;se asteapta ca banda sa fie fibera in aval astfel incat paleta sa poata sa iasa

din zona de lucruWA]T NOT SIG (s2); se deb1:chea za paleLaS IGNAL -pi 2

; se permite paletel sa se cleplaseze pe bandaSICNAI, -b6; se asteapta doua secunde ca paleta sa iasa din zona de lucruWAIT TII4ER(I) >= 2

Page 14: Programare RI

7/21/2019 Programare RI

http://slidepdf.com/reader/full/programare-ri 14/31

ise permite intrarea urmatoarei palete in zona de lttcrtrSIGNAL -b5idaca nu s-au depus N piese pe N palete se reia procesulIEnrpiese<nTHEN

GOrO 100END

. END

, PROGRAM cobra ( )

;prograaul se executa pe robotul cobra si are functia de a realiza;operatiile de manipulare asociate acestui robot

LOCAL cp8, cp9, b7/ b8, pi3, s3, nrpiese, locGLOBAL P5, P6

;programul functioneaza asemanator cu programele celorlalti dol robotj. cudeosebi rea

;ca foloseste .a1ti senzori si elemente de actionarePARAMETER HAND.TfME : 0.5SPEED 1OO ALWAYSMOVET p5, I

cp8 = I 001b7=1cpg : 1002bB=2Pi3=3s3:1003nrpiese = 0

TO0TIMER 1:0WArT TIMER(1) >: 90 oR SlG(cPB)IF TIMER(1) >: 90 THEN

PROMPT "E posibil ca paleta sa fie blocata pe traseu'r, $aGOTO 100

END

SIGNAL lo7

i{ArT SIG (cpg)SIGNAL bBSTGNAL pi3SET loc = SHrFT(p5 BY 0,0,nrpiese*dz)CALL p_p(loc, P6)nrpiese : nYPis5s+1WAIT NOT S]G(53)SIGNAL -pi3SIGNAL _b8TIMER 1 : 0wAfT TrMER(1) >: 2 '

SIGNAL -b7IFnrpies.e<nTHEN

coro 100END

, END

. PROGRAM vedere ( )

iprogramul administreaza fr-rnctionarea postului de vedei:e si se e::ecuta fizic;pe controller-ul robotului cobra

LOCAL cp1O, cp11, b9, bI0, pi4, camera, cam, rez, nrpalGLOBAL coada []

;se definesc semnalele de I/0 fol-ositecp10 = 1004b9=4cplr : 1005b10:5pi4-5camera : 7cam:1 0 0 5

rez = 1001

Page 15: Programare RI

7/21/2019 Programare RI

http://slidepdf.com/reader/full/programare-ri 15/31

;se lnitializeaza numarul de palete inspectatenrpal - 0

;se asteapta .aparitia unei Pafete.I

OO TTMEP 2 _ O

WAIT TII'IER \2) >-- 120 OR SIG (cpro )

TF TIMER(2) \: l20 THENPROI.{PT "E posibil ca paleta sa fie blocata pe traseu", $aGOTO I OO

END

;se blocheaza accesul altor palete in postul de vedereSIGNAL b9;se asteapta ca paleta sa ajunga in pozitia de inspectieWA]T SIG (ep11); se blocheaza lnaintarea PaleteiSIGNAL blO; se f i-xea za paleta Pe bandaSIGNAL pi4ise cere itrspectarea produsului de pe paletaSIGNAL CaMeTa

;se asteapta ca inspectia sa inceapaWAIT SIG (cam);se asteapta ca inspectia sa se termineWAIT NOT SlG(cam);se trece rezuftatul intr-o coadaIF SIG(rez) THEN

coada[nrpal] : 1EI,SE

coadaInrpa1] : 0EI\D

; se opreste semnalul de cerere pentru inspectia videoSIGNAL -camera, se deblocheaza PaIetaSTCNAL -p i 4

;Se elibereazapaleta pentru

Caaceasta sa ajunga la urmatorul post de lucru

SIGNAL -blo; se asteapta 2s si de asemenea ca CPl1 sa nu mai detecteze paleta (pafeta a iesit

din past)TTMER 2 O

WAIT ((TIMER(2) >: 2) AND SIG(-cpl1))i se incrementeaza numalul de palete inspectatenrpal = nrpal+l; se permile accesul altei palete ln postul de inspectiSTGNAL -D9idaca nu s-au inspectat N patete se reia procesullFnrpal<nTHEN

coro r00F\t n

. END

. PROGRAM selectle ( )

;programul realizeaza selectia paletelor in urma inspectiei video;sI declde traseuf pe care acestea trebule sa if urmeze;programul se executa pe controller-uf robotului cobra

LOCAL cp12, cp13, cpl4, b11, b12, L2, nrpalGLOBAL coada

;se definesc semnalele de I/o r

cpl2-r008cp13:1009cp14 -1010b1 1:Bb 1 2-'9L2-1 0

; se initlalizeaza numarul de palete procesatenrpal : 0ise asteapta ca o paleta sa ajunga in zona de l[cru cu sistemul'de transfer

Page 16: Programare RI

7/21/2019 Programare RI

http://slidepdf.com/reader/full/programare-ri 16/31

100 V{Arr srG (cp12 )

ise blocheaza accesuJ- celorlalte paleteSIGNAL b11;daca produsul de pe paleta a fost asamblat corectIF coada[nrPal] := 1 THEN

ise asteapta ca pa.IeLa sa ajunqa in punctul de transferWAIT SIG (cp13)i se blocheaza deplasarea paletei pe bandaSIGNAL b12ise actioneaza sistemul de transferSIGNAL t2ise asteapta ca paleta sa ajunga pe banda jnterioaraWAIT SIG (cp14);se opreste sistemul de transferSIGNAI, _t2; se permite lntrarea altei palete in post;iar pafeta tran.sferata esle preluata de un operatorS]GNAL _b12

ELSE;daca produsul nu este asambla corect se asteapta 5s pentru ca palela -sa

treaca de zona de tran.sferi si sa fie Preluata de un operatorTIMER 3 : O

WAIT TIIUER (3 ) >= 5EN.D

;s.e permite accesu.L in altei palete in postS]GNAL -b]1i$e incrementeaza numarul de pafete procesatenrpaf : nrpal+lidaca numarul de palete procesate este mai mic decat N aturici se rera procesullFnrpal<nTHEN

GOTO 100END

. END

. PROGRAM cobra_start ( )

;programrl lanseaza in exe.cutie cele trei aplicatli ce se executa pe conlroller-ul

roborufui cobra:; si anume programele cobra ( ) , vedere ( ) si selectle ( )

EXECUTE O CobrA ilEXECL'ITE 1 vedere ()EXECUTE 2 sefectle o

. END

Page 17: Programare RI

7/21/2019 Programare RI

http://slidepdf.com/reader/full/programare-ri 17/31

Urmarirea benzilor in miscare

Calibrarea ban da-robot

Pentru a putea urmari benzile conveior in nriscare in vederea prinderii si manipularii obiectelot alimentate de

pe benzi ("pick on the fly"), sistemul robot trebuie sa indeplineasca cateva cerinte:. controllerul rotrot trebuie sa aiba iustalata extensia V+ de urmarire a benzilor conveior

. pe balda trebuie sa existe un encoder care sa fle conectat la controller-ul robot pentru a

furniza date de tiP Pozitie

. banda trebuie sa fie monitorizata de un senzor care sa indice prezertta unui obiect

Pentnr urrrarirea benzilor in miscare este ltecesal ca mai intai sa se realizeze o calibrare banda-robot

ce este descrisa in cont.inuare (in prealabil prebuie ca in gLipper sa fie prins un pointer si de asemenea este

necesar sa exis'{e '' *

'"'::;:::::::l:i:::',,";:il];""''

cu poin'[er-ur):

o cd d:\util

se incarca in memorie utilitarul BELT CAL

load belt_cal.v2

se executa programul a.belt cal

'r execute a.belt cal

. se selecteaza encoder-ul in cazul in care sistemul lucreaza cu mai multe encodere(canalele de encoder ce pot fi selectate sunt numerotate de la I la 6)

. .oboi" selecteaza robotul pe care il veti folosi daca sistemulcontroleaza mai multe brate

' se selecteaza optiunea dorita din meniul afisat:

0 :> ExlL to svsr-em monitorI :) Perform complete calibratiot-t sequence

2 => Lcad callbratir:n data fr:om the disk3 :) Store calibratiorl data onto the disk4 => DisPlaY belt encoder out-Prit

5 :> Set encoder scale factor6 :> Define belt reference frame

J :> Defirre belt working wrndow

B :> Initialize the bett- variable(s) with current data

9 -> Test. belt caLibratlon1al -> Selecl- belt to work r,.rith

11 => Select r bot to work wrttr

. in majoritatea cazurilol se selecteaza optiunea I care printr-un set de operatii de

plasare a pointer-ului robot in vederea indicarii pozitiei discului de calibrare de pe banda(se lecotranda ca discul de calibrare sa fle flxat pe conveior cu banda adeziva pentru a

evita alunecarea acestuia tata de conveior) duce la calculul trtai multor valiabile necesare

calibrarii. In cazul in care se doreste executia doar a anumitor pasi din calibrareacompleta acestia pot fi selectati in mod separat din meniu.

Dupa ce optiunea I a fost selectata utilizatorul va realiza un set de pasi ce vor duce la calculul urmatoarelor

Page 18: Programare RI

7/21/2019 Programare RI

http://slidepdf.com/reader/full/programare-ri 18/31

valori:

factorul de scalare pt encoder si fereastra de lucru

o factorul de scalare permite masruarea distantei parcurse de balrda prin inmultileaacestui factor cu nttmarul de irnpulsuri primite de la encoder

o fereastra de lucru este reprezentata de doua limite (doua plane perpendiculare pe

banda ce limiteaza zona de acces a robotului)

o pentru calculul acestor valori se plaseaza discul de calibrare in partea cea mai

din amonte a benzii la care robotul are acces, se plaseaza pointer-ul in centruldiscului si apoi se apasa tasta ENTER (pentru a se inregistt'a pozitia primei limite a

ferestrei de lucru limita numita upstream * calculata cu aj utorul rotrotului, totodata se

citeste si valoarea encoder-ului in aceasta pozitie), se ridica pointer-Lrl si apoi se

deplaseaza Lranda pana cand discul ajunge in cea mai departata parle din aval a benziiin care robotul are acces, se plaseaza pointer-ul in centrttl discttltti si apoi se apasa

tasta ENTER (pentru a se inregistra pozitia celei dea doua lirnite a f-erestrei de lucrtt,limita nuntita downstream-- calculata cr-r ajutorul robotlrlui. totodata se citeste si

valoarea encoder-uluiin aceasta pozitie). Cele doua limite definesc f-ereastra de lttcrn

iar raportul dintre distanta intre cele doua pozitii si diferenta celor doua citiri ale

encoder-ului fwnizeaza factorul de scalare.

O transforn.rata nominala de banda belt.nom[] este invata in timpul procesului de

calibrare ce furtrizeaza pozitia. orientarea si directia benzii conveior

Variabile de banda

Mecanismul prin care se pot specifica miscari relative la banda este un tip de date V+ numite variabile de

banda.Prin definirea ulei varibile de banda, programul specifica relatia dintre tur anttmit encoder montat pe

banda si locatia si viteza unuicadru de ref'erinta ce pastreaza o pozitie si o orientare fixa fata de banda.Altelrativ, o variabila cle banda poate fi yazrta ca o transfortrtare (cu o cotxponenta ce variaza in timp)

ce defineste locatia unui cadr-u de refbrinta fixat pe un conveior in ntiscare. N'lai mr-rlte r,'ariabile de banda pot

fi asociate cu aceeasi banda si encoder, in acest flel mai multe posturi de luclu pot fi ref'erite mai tnor pe

aeeasi banda.Ca si la celelalte valibile din V+, numele va.riabilelor de banda sunt asignate de programator. Fiecare

ngme trebuie sa inceapacu o litera si poate contine doat'litere, numere, ptmcte si ca.ractere de subliniere.Pentru a f'ace dit-erenta intre varibilele de banda si alte tipuri de varlabile, trurnele variabilei de banda

trebuie sa fie prececlat de semnul de procent (9zo). Ca si pentru celelalte tipuri de date, se pot crea vectori de

variabile de banda.lnstructiunea DEFBELT trebLrie sa fie utilizata pentru a defini variabile de banda.

In comparatie cu alte tipuri de clate din V+, varibilele de banda sunt mai complexe deoarece contine

dif'erite tipuri de infolnratii. Pe scru't o variabila de banda contine tlrmatoal'ele infbrmatii:l. Tr.ans-formayea nr,tminola a ben:ii. Aceasta defineste poziria si directie de deplasare a benzii cat si centru

sau aproximativ.

2. I\tumot"ul encodertlui tblosit pentru citirea locatiei instantenee a benzii (de la I la 6).

3. Factorul cle sculare pentru ent'oder, ce este fblosit pentru convertirea inrpulsurilor de la encoder in

milimetri parcursi de banda.

4. Un o.ffset encocler,ce este utilizat pentru a ajusta originea cadrului benzii fata de ref'erinta.

5. Parametrii ferestt'ei, ce clefineste spatiul de lucru a[ robotului dea lungul benzii.

Aceste componente ale variahitelor de banda sunt descrise in detaliu in paragrafele ulrnatoare.Spre deosebire cle celelalte tipuri de date V+, varibilele de barrda nu pot fi stocate pe disc in fisiere

pentru o utilizare ulterioara. Totusi, locatia si variabilele folosite pentru a defini o variabila de banda pot fistocate si incarcate fara restrictii.

Dupa ce datele sunt incarcate de pe disc, instructiunile DEFBELT si WINDOW treL.ruie sa fie erectttate

Page 19: Programare RI

7/21/2019 Programare RI

http://slidepdf.com/reader/full/programare-ri 19/31

penil.Lr a deflni variabila de banda. (Utilitarul LOADBELT.v2 contine o subrutina ce va citi datele despre

variabilele <1e banda dintr-un flsier si va executa instructiunile DEFBELT si wrNnOw necesare pentru

definirea variabilelor de banda.)

Tiansformata norninala de banda

Pozitia. orientarea, si directia miscarii benzii sunt def,rnite de otransfbrmata numita transformata nominala

de banda.Aceasta transtbrmata detineste un cadru de ref'erinta aliniat cu banda dupa cum urmeaza:

o planul sau-X:)'-coincide cu planul benzil.

. axa saf este pa'alela cu directia in cale de deplaseaza banda, si

. originea sa este localizata intr-un punct (fix in spatiu) ales de util]zator.

Deoarece directia axei X a transfbrnratei nominale a benzii este aleasa dupa directia in care se

deplaseaza banda. aceasta corlponenta a transtbrmatei trebuie sa tie detenninata cu multa grijaMai mult, deoarece punciul definit de aceasta trans{brmata (originea cadrului) poate fi selectat atbitrar,

in mod normal ar trebui ales la mijlocul ferestrei de lucru a robotului cu banda. Aceasta transformata este

definita in mocl normal folosind functia ERAME, sau folosind utilitarul de calibrare banda-robot.

Locatia instantanee descrisa de variabila de banda va fi aproape intotdeaur.ra diferita de cea specificata

de transfbrnata norninala. Totusi, deoarece banda se deplaseaza in linie dreapta in spatiul de lucru, orientareainstantanee a variabilei <le banda este coustanta si egala cu cea a transformatei nominale ce a fbst detlnita.

Pentru a determina locatia instantanee definita de o variabila de banda, sistemul V+ realizeaza un

calcul echivalent cu multiplicarea unui vector unitate in directia X a transformatei nominale cu o distanta

(calculata pe baza datelor iurnizate de encoder) si adaugand rezultatul la vectorul de pozitie a transformateinominale a benzii.

Sirnbolic, acest lucrtt poate fi reprezentat ca

anstant xYZ : nominal-XYZ + (belt dist*X-dir-transf-nomin)unde

belt dlst : (irnpulslrri_encoder - offset_encoder)*factor_scalare-encoderVariabilele encoder din aceasta ecuatie sunt descrise in continuare.

Encoderul

Sase encodere sunt supofiate de sistemul de urmarire a benzilor. Fiecare eucoder gellereaza impulsuri ca

indica atat distanta parcul'sa de lranda cat si directia de nliscare.

. Valori encoder

Inrpulsurile sunt nurnarate de intertata cu bantla, si sunt stocate ca un numar cu selrn pe 24 de biti. Asadar,

valorile encoder pot varia intre2)3 -l (8,388,607) si-221(- 8.388,608)-De exemplu, daca un impuls encoder corespunde urei deplasari de 0.02 millimetri a benzii, atunci

intervalul pe care valorile encoder i1 poate reprezenta este de aproximativ -167 meteri pana la +167 meteri.

Dupa ce contorul encoderului ajunge la valoarea nta-rima (pozitiva satt negativa), contorul va lua

valoarea nravima negativa sau pozitiva. De exemplu daca contorul se increnrenteaza si ajunge la valoafea

rrraxima succesiunea valorilor retinute de contor va fi ... ; 8,388.606; 8,388,607; -8.388,608; -8,388,607; .'.Cat timp distanta dintre spatiul de lucru al robotului si transfbrmata nominala a benzii este in intervalul

ce poate fl reprezentat de contorul encoderului, aplicatiile V+ nu vor trebui sa considere faptul ca sistetnul de

contorizare isi roteste valorile (de la maxim pozitiviuegativ la maxim negativ/pozitiv).Ecuatia belr_disr descrisa rrai sus sebazeaza pe o valoare relativa a encoderului:impulsuri_encoder - offset-encoder

si V+ ajusteaza automat acest calcul pentru orice deplasare a benzii.

r Factorul de scalare al encoderului

de scalare al encoderului este o constanta ce reprezinta numarul de impulsurischimbare de pozitie a benzii. Unitatea de masura pentl'u factorul de scalare

Pentru orice conveior, factorulencoder echivalente pentru o

cste milirnetru/inrpuls.Acest factor poate li deterntinat

experimental prin citirea encoderuluifre direct din detaliile cuplajului rnecanic al encoderului cu banda sau

in tirnp ce banda se deplaseaza. Utilitarul de calibrzue a benzii supofta

Page 20: Programare RI

7/21/2019 Programare RI

http://slidepdf.com/reader/full/programare-ri 20/31

ambele metode pentru deternrinarea factorului de scalare.Daca contorul encoderului scade in timp ce banda se deplaseaza in directia sa normala de deplasare,

factorul de scalare va avea o valoare negativa.

o Offsetul encoderului

Ultima valoare a encoderului necesara pentru functionarea corectaa

sistemuluide urmarire a benzii este

offsetul encoderului.Offsetul encoderului este utilizat de V+ pentru a stabili locatia instantanee a cadrului de referinta al

benzii relativ la locatia nominala.In particulaq daca offsetul benzii este setat ca fiind egal ctt valoarea ctlrenta a encoderului,

transformarea instantanee de banda va fi egala cu transformarea nominala.Offsetul encoderului poate fi utilizat, pentru a reseta valoarea citita de la encoder, satt pentru a o seta Ia

o anumita valoare. Spre deosebire de factorul de scalare al encoderului, care este o constanta, valoareaoffetului encoderului este variabila si de obicei se schirnba des.

In mod normal, locatia instantanee a cadrului de lef'erinta va fi stabilita utilizand o intt'are digitala ce

provine de la un senzor de proximitate sau utilizand intbrmatiile provenite de la un sistem de vedere. l)upace infbrmatia este primita si procesata, ofTsetul encoderului poate fi modificat de instructittnea sErBELr:

SETBELT ?bel.t.var = expresie.

Miscari relative la banda

o Instructiuni pentru miscari robot relative la banda

Pentru a defini o miscare robot relativa [a banda,instantanee a unui cadru de referinta in miscare,trasfbrmate normale pentru a calcula transfbrmata.

De eremplu. instructiuneaMOVES ebelt:loc 1

cere robotului sa realizeze o miscare in linie dreapta la locatia J oc. 1, ce este specificata relativ la locatia

definita de variabila de banda ?be1t.Daca o variabila de banda este specificata, aceasta trebuie sa fie primul elenrent (cel mai din stanga)

dintr-o transformata compLrsa. Doar o singura variabila de banda poate apare intr-o transformata compusa.Miscarile relative la banda pot fi doar miscari ce se realizeaza in linie dreapta. Incercarea de a realiza o

miscare interpolata in spatiul articulatiilor relativa la banda va genera o eroare si va opli execlttiaprogramului.

Odata ce robotul a fost trimis la o destinatie ce este definita relativ la banda, robotul va continua sa

urmareasca banda pana cand este trimis catre o alta locatie ce nu este relativa la banda.

De exemplu Llrmatoarea serie de instructiuni va face ca robotul sa se deplaseze la o locatie relativa la

banda, va deschide gripperul, va urmari banda doua secunde, va inchide gripperul si in flnal se va deplasa lao locatie fixa.

MOVES ?belt Il] :focatialOPEN IDELAY 2 . OO

CLOSETMOVES focatie. fixa

Daca in acest exemplu nu ar fi existat a doua instructiune MovES, robotul va continua sa urmareasca

banda pana cand ferestra de lucru cu banda va fi depasita.Ca si miscarile definite relativ [a banda, miscarile ce deplaseaza robotul din pozitia de urmarire a benzii

catre o locatie fixa trebuie sa fie de asemenea liniare.

o Incheierea miscarii

Cand robotul se deplaseaza relativ la banda, trebuie acoldata o atentie sporita condtitiilor ce determinainclreierea unei miscari.

O miscare a robotului se termina in momentul in care rnanipulatorul a atins destinatia dorita cu o

anumita toleranta acceptabila.In cazul miscarilor relative la banda. destinatia se moditica continuu si, in firnctie de viteza benzii.robotul nu va putea intotdeauna sa atinga pozitia finala cu toleranta predefinita.

sarr pentru a deiini o transfbrmare relativa la locatiao variabila de banda poate fi utilizata in locul unei

Page 21: Programare RI

7/21/2019 Programare RI

http://slidepdf.com/reader/full/programare-ri 21/31

De aceea, daca o rrriscare nu se incheie cu succes, sau ii este necesar un interval foarte mare de timp

pentlu a se execgta, toleranta la erorile miscari ar trehui crescuta prin precedarea insturctiunii de ntiscare cu

o instructiune coARSE. In situatii extrente poate fi necesar sa se dezactiveze verificarea tolerantei Ia eroare

frnala. Acest lucru se poate realizafblosind instructiunea NoNULL inainte de executia miscarii.

. Definirea locatiilor relative la banda

Pentru a defini locatii relative la banda, trebuie folosite transformate compuse relative [a banda.

De exernplu. toate comenzile urnratoare definesc o locatie loc- 1 relativa la locatia curenta a benzii:HERE ?bell: loc IPOINT ?beIt: loc_1,TEACH gbelt: lcc_l

Inairrte de a defini o locatie relativa la banda, trebuie stabilit in mod corespullzator oflsetul benzii.Acest lucru inrplica de obicei executia unei comenzi mouitor in forma: no sErBELr %beltBELT (?beIt) .

In ficare din cazurile de rrai sus, locatia instantanee corespunzatoare variabilei zbett va fi determinata

(pe baza impulsurilor de la encoderul asociat cu variabila ?belt); foc 1 va fi setata ca fiind egala cu

difbrenta dintre locatia actuala a punctului condus si locatia instantanee deflnita de tnett.Deoar.ece variabilele de banda nu pot fi folosite decat ca prirnul elentent dintr-o transfbrtama compusa,

o vriabila de banda nu poate apare singura. De exentplu. lrsrr, nu va aflsa o variabila de banda direct.

Pentru a vedea valoalea unei variabile de banda, se executa comanda:

LISTL ?be-l t_variable: lriULL

Prograrnarea aplicatiilor pentru benzo conveior in miscare

Instructiuni si functii

r Definirea variahilelor de banda

Urmatoarele instructiuni si llrnctii sunt fblosite pentru a defini parametrii unei variabile de banda. Anumiti

parametrii sunt in mod obisnuit configurati o singura data. pe baza informatiilor obtinute din procedura decalibrare banda-robot. Alti parametrii in schimb srurt modificati dinamic in timpul executiei programului.

a. DEEBET,T: Instructiune program ce creeaza o variabila de banda ce va fi lblosita pentru urmarirea

conveiorului si ii deflneste caracteristicile statice: transfbrmata nominala, nttmarul encoderului si

factorul de scalare a[ encoderului. Sintaxa este urmatoarea:

DtrFBELT 'rbelt,r;ar : nom_trans, belt_num, vel-avg, sca.Ie f a(lt

unde;

?be Lt_1/ar

nom_trans

lle 1l_num

vel_a-:gscale fact

Numele varibilei de banda ce este definita.

Transformata ce defineste pozitia si orientarea benzii conveior. Axa X a transformatei nominaledetlleste {it'ectia de inaintare a benzii. Irr mod normal benda se deplaseaza in sensul pozitiv alaxei X. Planul X-Y detinit de aceasta transfbrmata este paralel pe supratata benzii. Pozitia (X,Y, Z) dala de catre transfonrrata nominala indica centrul aproximativ al benzii fata de robot.

Nuntarul encoclerului fblosit pentru citirea locatiei instantanee a benzii. Pot fi specificate 6

encodere de la I la 6.

(Acest parametru este ignorat, irrsa trebuie data o valoare.)

O coustanta de calibrare ce convefieste impulsurile de la encoder in deplasament al benzii.

Aceasta valoare este interpretata ca fiind raportul depasarii benzii in mm pe impulsuriprovenite de la encoder (mmiimpuls).

b. sErBELr: Instructiune program fotosita pentru setarea offsetului eucoderului la o anumita valoare

Page 22: Programare RI

7/21/2019 Programare RI

http://slidepdf.com/reader/full/programare-ri 22/31

(data de obicei printr-o expresie). Prin aceasta instructiune se detineste locatia instantanee a benzii

relativ la transfbrmat'ea nominala de banda. Sintaxa este:

SETBELT 'bel t_va r -- exPresi e

c. 1arNDo1lv: Instructiune prograrn pentru stabilirea limitelor f'erestrei de lucru cu banda si a subrutinei

pentru violarea ferestrei. Sintaxa este:

WINDOW ?b,eft_var = location, location, prcgram,priority

unde:

location Transformata compusa ce, impreuna cu directia benzii, defineste limitele ferestrei de lucru cu

banda, dea lungul benzii. Limitele f'erestrei sunt plane perpendiculare pe directia de deplasare a

benzii si include pozitiile specificate de cele doua transfbrmate. Ordinea transtbrmarilor nu este

importalta - aceasta instructiune determina automat ce transformata reprezinta limita din amonte(upstream) si ce transformata reprezinta limita din aval (downstream).

program Program optional ce este apelat daca apare o violare a f-erestrei in timp ce se Llrmareste banda.

prioriry uivelul de prioritate (parametru optional) al programului apelat in cazul violarii ferestrei. Daca nn

este specificata nici o prioritate se considera in mod predefinit prioritatea I.

. Obtinerea de inlbnnatii despre pozitia si viteza encoderului

Urmatoarea filnctie este utilizata pentrn a citi inlonlatiile de la encoderul asociat unei benzi:

BELT (tbelt var, mode)

Aceasta firnctie retrrneaza valoarea instantanee a contorului encoderultti sau rata de inrpulsuri emise de

encoder; mocle este o valoare de control ce determina tipul de informatie ce va fi rettlrnata:

. Daca parametrul mode €ste omis sau valoarea sa este mai mica san egala cu zero.functia BELT returneaza numarul de impulsuri stocate in contorul encoderlllui atasat

la banda specificata de variabila de banda.

. Daca valoarea este mai mare decat zero, se returneaza viteza encoderului masurata inimpulsuri encoder pe ciclll V+ ( l6 ms).

. Testarea ferestrei

Urmatoarea functie permite unei aplicatii sa incorporeze propria strategie de lucnt in f-ereastra de lucru,strategie independenta cle strategia oferita ca parte integranta din sistemul de urmarire a conveiorului.

WINDOW (transformat-ion, trme, mode)

Functia de mai sus indica unde se gaseste o locatie relativa la banda in raport cu fereastra de lucru cu

banda. Parametrii functiei sunt:

t rans format iontime

Transfbrmata compusa deflnita relativ la banda (incepe cu o variabila de banda).

Expresie optionala ce specitica tirnpul viltor la care transfonxarea este evaluata. Rezultatul

firnctiei depinde de valoarea pe care o va lua transtbrmata peste un timp dat in secunde,

valoare estimata pe baza pozitiei si vitezei curente a benzii. Acest parantetru este utilizatpentl.Ll a testa daca o miscare poate fi executata corect intr-o perioada anticipata de timp.Pentru o perioada de zero secunde (valoarea predefinita) se testeaza valoarea instantanee a

locatiei.'fimpi negativi sunt converliti in 0 iar timpi mai mari de 32,'168160 secunde sunt

egalicu 32,768160.

Valoare optionala ce specifica daca rezultatul functiei reprezinta o distanta in interiorul saumode

Page 23: Programare RI

7/21/2019 Programare RI

http://slidepdf.com/reader/full/programare-ri 23/31

in extet'iorul ferestlei de lucru cu banda.

Valoarea retumata, ce este o distanta in milirnetri, este interpretata dupa culn urmeaza' (Definitiiletimitelor din amonte (upstream) respectiv aval (downstream) depind de patametrul sistem ee lr.uonr.)

. Daca parametrul rnode eSt€ mai mic sau egal cu zero (valoare predefinita). valoareareturnata

este interpretata dupa culn urmeaza:

0 Locatia este in exteriorul felestlei.<0

>0

Locatia este in interiorul fbrestrei, mai aproape de tnarginea din aval; distanta este

ABS (l,aloarea returnala) .

Locatia este in interiorul ferestrei, rnai aproape de limita din amonte; distanta pana la limitaeste valoarea retu'nata.

Irig l 1.4*

Frurctia I^]Il'lDohl penku piu'ametrul mode maimic sau egal cu:ero'

Daca valoarea parametrului mode este mai mare decat zero. valoarea returnata este interpretata dupacunl Ltfnleaza:

0 Indica faptul ca locatia se gaseste in interiorul ferestrei.

<0 Indica laptul ca locatia in exteriorul f'elestrei, mai aproape de limita din amonte; distanta este

ABS ( valoar:ea_retur.nata ) .

>0 Irrdica fhptul ca locatia este in exteriorul f'erestrei, tnai aproape de lirnita din aval; distantafata de lirnita este valoarea rettunata.

r*ixtunm *

Page 24: Programare RI

7/21/2019 Programare RI

http://slidepdf.com/reader/full/programare-ri 24/31

$i,xtan& **]

Fig. I1.5 - Functia WII'IDOW pentrtt parametrul mode moi rnare decat :ero.

Valoarea retlrrnata de functia torr.JDohl creste intotdeauna in sens pozitiv dupa cum locatia de testinainteaza catre limita din aval.

o Informatii de stare

Urmatoarea functie indica starea curenta de operare al sistemului software de urmarire a benzii.

. RSrArus: este o fLnctie ce returneaza stareil sistemului sottrvare de urmariere.

Switch-uri si parametri sistem

Switch-ul BELT activeazaldezactiveaza operarea softwareului de trntarire a benzii.Acest switch trebuie sa fie activat inainte ca orice opemtie de urmarire a benzii sa inceapa. Cand

switch-ul BELI este activat, se initiaza verificarea erorilor pentru encoderele asociate cu valiabilele de bandadefinite. Switch-ul este dezactivat la initializarea sisternului V+ .

Parametrul BELT.t{oDE selecteaza nloduri alternatir,e de operare ale rutinelor de testare a f'erestrei de

lucru cu banda. Valoalea initiala a acestui parametru este 0.

Page 25: Programare RI

7/21/2019 Programare RI

http://slidepdf.com/reader/full/programare-ri 25/31

Problerna 11.4 - Urmarirea obiectelor in rniscare

.,\Str{5

:,i:$

$r\i

s"iFig. I t.6 '. Urmarirea obiectelor in miscare

Enunt

ln figura de mal sus, pe benzile Bl si 82 vin obiecte ce sunt detectate de senzorii Sl si 52 cu aceeasi

cadenta (un obiect la 1.5 secunde). Robotul Rl preia obiectele de pe banda Bl si le depune in interiorulobiectelor de pe banda 82. Purctele de preluare respectiv depunere a obiectului au fost definite relativ la celedoua benzi si se nuntesc pickl si placel (puncte ce dellnesc pozitia obiectului cand a fbst sesizat de senzor).Robotul R2 preia obiectele de pe banda 82 (detectate de senzorul 53) si le depune pe palete ce vin pe banda

83 ce sunt detectate de senzorul 54. Paletele au noua pozitii pentru piese ce se afla [a distante de 3 cm pe

directiile X+- si Y+. Pozitia de preluare a obiectelor depe

banda B2de

catreR2 este invatata relativ la banda

si se nulneste pick2 (pozitia obiectului cand a fost detectat de senzorul 53) iar pozitia de depunere a

obiectului ce se gaseste la cele mai mici coordonate X, \' de pe paleta este itrvatata de asemenea relativ labanda 83 si se nunreste place2, aceasta specilica pozitia piesei pe paleta cand paleta a fbst detectata de

senzorul 54. Paletele contpletate sunt detectate de senzorul 55 si preluate de catre robotul R3 si depuse pe unASRS. Pozitia de preluare a paletei este invatata relativ la banda B3 si se numeste pick3 (reprezinta pozitiapaletei pe banda cand aceasta este detectata de senzorul Sli). Pozitia de depunere a paletei se numeste place3.Dupa ce o paleta a fost plasata pe ASRS robotul R3 activeaza un senmal de iesire ce genereaza indexareasisternului ASRS (pozitionarea pe urnlatoarea celula de stocare) si asteapta confirmarea pozitionarii corecte a

sisteltrului ASRS prin receptionarea unui sen:nal de intrare. Daca un robot nu reuseste sa preia/plaseze un

obect in pozitia corespunzatoare, aplicatia se opreste. Robotii vor incepe operatiile de manipulare dintr-opozitie safe invatata anteriol iar Ia sfarsitut aplicatiei se vor retrage in aceasta pozitie. Senzorii sunt plasati ininteriorul ferestrelor de lucru ale robotilor cu lranda in apropielea limitei din amonte (upstream). Benzile suntcontrolate independent de roboti prin iutermediul unui automat programabi[ ce tru face scopul acesteiaplicatii.

Cerinte:

l. Sa se delineasca semnalele de I/O folosite in aplicatie2. Sa se realizeze programele de comanda pentru completarea si depozitarea a 9 palete pe ASRS.

Page 26: Programare RI

7/21/2019 Programare RI

http://slidepdf.com/reader/full/programare-ri 26/31

Numar Semnal

Solutie

l. Definirea semnalelor de I/O.

I*r_"J.ry4SI

Tip Sem

s2,s3_

S4 I

S5 I

Err.out.12 oErr.out.r3 o

F:lt'2ql ,nj3

Err.out.rl

I

9orr.out.13

E'llllt rg''iErr.out.r I

LI

oErr.out.12 oEry4Err.in.r2

4lEqryASRS.ack

9I

Robot

RI

RI

R2

R2

R3

IObservatii

I

:ry1v1 l r gry:l{ Yl bi991 - l

Senzoru[ 52 a detectat un obiect

_senlogts3llleteqat un1 i" 1i

senz911l s+ a 09199111 y oblegJ l_sTlgr4s_s , otg:," U "9,:g_ lnl 111te rym1{le T. 91gI"l uplfuli ' ."11 q ]IR lrilille semry {egn9h919re rgntlcalle gtf i ]

L 1l1,nl.'t,. '1T1119:,1.]:"19,. a afllca1'ry1le la R2

|

- --lR trlimeste u.Irylde incheielg a aq 1ryt19 i Is _l

L1il iqi,. 1em1{ d1 1c nei 91e3 1r

t i ca111catlln t lR? Yt111 : fgn1lr og ilctrq 1e u r 1.3ti.1_9{'. Ri l ? ergrry lTryl-q ]ry 1* "-lplkatiei

de la Rt]

nz rylmest9 s9m11f d9 incheile 1 ryli91ryide E Rr

ll Lll1ll:-ld de incrreierel ry11.3ry1:qf ]l

13 llry{-.1, In1l{e 1n9[ere1e rynt1atle1c1reR2 ]R3 g-1rye1e'Ty191inc 9 e1ry antl:{':i_de la Rl

il

R-3 prlmese gelnaf {9 i1cn9_ie'1e a apiical]elae t1 n: lR3 c1 e i1rlxa 9a Ooz-itie ,'\SRS;uI1i

ASRS-ul confirrrra inderalea pozitieiI

RI

RI

RI

R2

RI

R2

R2

R2

R3

R3

R3

RJR3

R3

Fata de semnalele din tabelul de ntai sus fiecare robot are un semnal intern err'int (200 I ) ce

determina oprirea task-urilor robotului la apariatia unei conditii de incheiere a aplicatiei.

2. Realizarea programelor de comanda

Robotul Rl

. PROGRAI4 11. init ( )

;Progralnul face lnitializarea mediului de l-ucru;si lanseaza in executre task-uri1e robocului FIGLOBAL i.ndexb1, indexb2GLOBAL erl:. int I err . rn, 12, err. in. r3GLOBAL err.out' .12, err.out.r3

; indexbl si lnciexb2 sunl contoare ce tin evidenta rrumarufui de obrecte; ce vin 1;re bandainderbl = 0indexb2 : 0

;se definesc semrralele fofosi.reerr.int - 2001

err. in. 12 -1003

err. in. 13 : f004err.out,r2 = Ierr. out . 13 = 2

Page 27: Programare RI

7/21/2019 Programare RI

http://slidepdf.com/reader/full/programare-ri 27/31

; se activeaza switch-u1 BELTENABLE BELT

;se utilizea:a parainetrul BELT.MODE pentru a lua in COnSiderare erorileigenerate de violarea limitei de downstreamPARAMETER BELT.MODE : O

;se definesc factorr.r de scafare pentru encoderele benzilorbeltl.scale = 0.025063be1t2.sca1e = 0.021701

;se definesc variabifefe de banda, be1l1 si belt2 au fost invatate in prealabilDEEBELT erbl : be1t1, l, 1, beftl.scaleDEEBELT %b2 : b,e1t2, 2t 2, belt2.scale

i se definesc ferestrele d efucru cu benzile; limitele de upstream si downstream au fost in prealabil invatateWINDOW ?L.1 = windowl_bl, window2-b1, window'err(1)WINDOW esb2 = wlndowl b2, window2-h2, window.err(2)

;semnale]-e de eroare sunt puse pe I - se fo-loseste logica negativai in cazul 1n care semnalul este OFF a aparut o eroareSIGNAL err.int, err.out.12, etx 'out'13

ise asteapta ca ceilalti roboti sa fie initializatiWAIT sIG(err.in. 12, err,in.13)

; se execut.a programele de monitorizare a benzilor; si programul prj ncj PaIEXECUTE 1 beftl .monit . 11 ( )

EXECUTE 2 be1t2.mcnlt. 11 ( )

EXECUTE 0 robotl o, END

. PROCRAM bel t1 .monit. rL ( )

;Programul monitorizeazabanda B1 pentl:u robotul Rl

LOCAL s]s1 - 1001

;se asteapta aparitj-a unui cbiect pe banda sau aparitia unei erori100 WAIT sIG(s1) oR l'1oT SIG(err.int, err.in.12, err.in.13)

1F SIG (S1) THEN;daca apare un obiect se retine indexul ltrenzliof fsetbl Iinclexbl] = BELT (?;b1)indexbl:indexbl+1i se asteapta ca obiectul sa nu mai fie sesizat de senzorWAIT NOT SIG(s1)GOTO 100

END. END

. PROGRAM beft-2 .monit. 11 ( )

iProqramuf monitorizeaza banda 82 pentru robotul R1],OCAL 52s2 = Ia02

100 WAIT SIG(s2) oR NOT SIG(err.int, err.in. t2, et:t.1n.13)IF SIG(s2) THEN

offsetb2 [indexb2] : BELT (?b2)lndexb2:fnds)<l +1WA]T NOT SIG(52)GOTO 100

END. END

. PROGRAM robot.t { )

LOCAL ib ]

PARAUETER HAND. TIME=O. 5SPEED 1OO ALWAYS; ib I rep-re:inta numaru-I de cb jecLe manipulate

Page 28: Programare RI

7/21/2019 Programare RI

http://slidepdf.com/reader/full/programare-ri 28/31

Page 29: Programare RI

7/21/2019 Programare RI

http://slidepdf.com/reader/full/programare-ri 29/31

EXECUTE 0 robot2 o. END

. PROGRAM be1t2 .monit . r2 ( )

; Programul monitorizeaza banda B2 pentru roif,otul R2

LOCAL s3s3:1001

l-00 WAIT SfG(s3) oR 1\lOT SIG(err.int, err.in'rl-, err.in'r3)IF SIG(s3) THENoffsettr2 [ indexb2 ] = BELT (%b2 t

lndexb2 : inhexb2 +' IWAIT NOT SIG(s3)GOTO IOO

END. END

. PROGRAM belt3.monit. r2 ( ) :

iPrjogramul monitorizeaza banda 83 pentru robotul R2LOCAL s4s4 = 1002

100 WATT SIG(s4) OR NOT SIG(err.int, err.in.tl, err.in.r3)IE SIG(s4) THEN

offsetb3 [indexb3J = BELT (?b3)inde>lb3:in6[P;1[J+lWAIT NOT SIG(s4)GOTO 100

E,LID

. END

. PROGRAM robot2 I )

LOCAL itr':, -ib3PAF.AMETER HAND. TIME=O . 5

SPEED 1OO ALWAYSib2:0rb3=0MOVET safe, lBREAK

100 WAIT( (ib2<j-ndexb2) AND (ib2<indexb3) ) oR NoT SIG(err.int, err.in.11,

err. in, r3 )

IE SIG(err.rnt, err.in.rl, err.in'r3) THENSETBELT rb2 = of fsetk,2 tib2.lSETBELT eab3 = of fsetb3[ib3]APPROS eab2:pick2, 5AtliovES 'sb2 : pick2CLOSEIDEPARTS 50APPRoS ?b3:SHIFT (pface2 BY 30* (ib2 MOD 3) ,30* (INT (ib2l3) MoD 3) ,0) , 50MoVEs ?b3:SHIFT(p1ace2 BY 30*(1b2 MOD 3),30*(INT(ib2l3) MoD 3),0)OPEN IDEPARTS 5OMOVES safeib2:ib2+1IE ( (ib2 MoD 9) := 0) THEN

ib3:ib3*1ENDGOTO 100

EIJ D

. r.l\i I

. PROGRAI{ window. err (belt_no)IE belt no := 2 THEN

TYPE "Eroare -Ia preluarea obiectufui de pe banda 82"

TYPE "Eroare 1a depunerea obiectului pe paleta dq pe banda 83"ENDMOVES saTeSIGNAL -err.int r -err.out.r1, -err,out.r3

. END

Page 30: Programare RI

7/21/2019 Programare RI

http://slidepdf.com/reader/full/programare-ri 30/31

Robotul R3

. PROGRAM 13. init ( )

; Programul face inirializarea mediului de lucru; si lanseaza in executie task-urile ro]:otului R3

GLOBAL indexb3

GLOBAL err.int, err.in.r1, err.in.r?CLOBAL err.out.11, err.out.12indexb3 = 0err, int : 2O0lerr.in.r1:1002err.in.r2 = 1003err.out,rl:1err.out,r2 - 2

ENABLE BELTPARAMETER BELT.MODE : 0

be1t3.scale : 0.023161

DEFBELT ?b3 = belt3 , 1, 7, belt3 . sca.leWINDOW %Lt3 : windowl-b3, r.,iindow2-b3, window'errSI.GNAL err.int, err.out.rl, err.out.r2

WAIT SIG(err'in'11, erx.in.12)EXECUTE 1 belt3.monit.r30EXECUTE 0 robot3 o

. END

. PRoGRAM belt3.monit. r3 ( )

; Programul monitorizeaza banda 83 pent.ru robotul R3

LOCAL 55s5 : 1001

100 WAIT $IG(s5) oR NOT SIG(err.int, err.in.r1, err'in'12)IF SIG (S5) THE.N

offsetb3[indexb3] = BELT (%b3)indexb3=in6is)&l+1WAIT NOT STG(S5)GOTO 100

END. END

. PROGRAM robol3 ( )

LOCAL ib3LOCAL asrs. inc, asrs. ackPARAMETER HAND' TIME=0. 5

SPEED 1OO ALWAYSib3=0asrs. inc : 3

asrs.ack : 1004MOVET safe, IBREAK

100 WAIT (ib3<lndexb3) oR NoT SIG(err.int, err'in.11, err'in'12)TE SIG(err.inL, err.jn.rt, err.ln.r2) THEI'I

SETBELT ?b3 : offsetb3tib3lAPPROS 3b3rPlck3, 50MOVES ?b3:Pick3CLOSEIDEPARTS 5OAPPROS Place3, 5QMOVES P1ace3OPENIDEPARTS 50i-b3=ib3+1IF rb3 =- 9 THEN

TYPE "Pafetele au fost stocate in ASRS"TYPE "ApIicatie Terminata"

SIGNAL -err.int, -err'.out.rl, -err.out.r2ELSESIGNAL asrs.inc

Page 31: Programare RI

7/21/2019 Programare RI

http://slidepdf.com/reader/full/programare-ri 31/31

I,\IAIT SIG (asr:s. acli)S IGIIAL -asrs . i nci^IAIT SlG 1-a,srs . acli)GOTLT } L]O

END

. END

. PROGRAM wi ndovr. err ( )

TYPE "ET:oare 1a pi:eluarea paletei de Fle banda 83"MOVES safeSIGNAL -err. int r -€rr, out. rl r -err. out . r2

- END