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.
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'
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
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
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
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
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
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.
7/21/2019 Programare RI
http://slidepdf.com/reader/full/programare-ri 9/31
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
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
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
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
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
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
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
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
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
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
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
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
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
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 *
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.
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.
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
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
7/21/2019 Programare RI
http://slidepdf.com/reader/full/programare-ri 28/31
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
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
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