Sunteți pe pagina 1din 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 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 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 utilizate 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:

.
.
.

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 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.

Problema

tl.l - Integrarea
MotorM

unei benzi conveior intr-o aplicatie robotizata

-';'<

Fig. I t . I

ssu

Integrarea unei benzi conveior

Pl

P2

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 obiectelor B 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)
b)

Sa se realizeze tabelul cu semnalele de I/O folosite.


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 termina
cu 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 obiectele
de tipul A vor fi depozitate pe paleta I (paleta are 3 randuri si 5 coloane, distantele pe rand intre doua pozitii
sunt de dl cm si pe coloana de d2 cm) in rnodul Llrmator: dupa ce paleta este completata cu obiecte de tipul
A, 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 sau
cu 90o. Daca o paleta este completata, robotul va activa un semnal de iesire specific fiecarei palete (Ol
pentru prirna paleta si 02 pentru a doua paleta), va astepta 40 de secunde, va dezactiva semnalul de iesire si
isi va relua activitatea, considerand ca paleta a tbst schirnbata. Obiectele sunt preluate dupa ce banda a fbst in
prealabit 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). verificarea
semnalului se va face in timpul cat se asteapta venirea unui obiect pe banda'

Solutie

a) Definirea semnalelor

de I/O.

Tin semnal

Semnal
I

N4

OI

o2

-l

SI

r00l

S2

1002

otl

r003

b) Programul de comanda.
. PROGRAM

marn 0

se declara varibilele f o.Iosit-e


LOCAL nra, nrb, m, oI, o2, s1, s2, ou
GLOBAL pl, P2, P3, P4, safe
;se configureaza parametruf Hand.Time si vlteza de 90?
PARAMETER HAND.TII{E : 0.7
SPEED 90 ALWAYS
robotul in pozltia safe, cu gripper-u1 deschis
; se trimite
MOVET sale, f
;

;nra si nrb reprezinta numarul de obiecte din fiecare tip de pe palete


nra:0
nrb:0

f00

varibllele de tip semnal folosrte


;se initiali:eaza
m-l
ol-2
o2:3
sI : t001
sZ - LaOZ
ou : 1003
izeaza un timer necesar contorrzarii celor
; se inrtial
TIMERl=O
i se porneste banda transportoare
SIGNAL

60s

(m)

ise asteapta ca senzoruf 52 sa detecteze un obiect sau ca semnaful Oprire


de ;Urgenta sa fie activ sau ca timpul sa expire
WAIT (SIG(s2) OR SIG(ou) OR (TII'{ER(1) >: 50))
;daca timpul a expirat, banda esle oprita, se afiseaza mesaiul "Nu sunt
obiecte pe ibandal" si programuf se lncheie
IF 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.ivaL


IF SIG(ou) THEN
; se opreste banda
SIGNAL (-M)
;

se incheie programul

GOTO 2OO
END

END

.;daca s-a detectat un obiect


;

se opreste banda

SIGNAL (-m)

IE SIG{sl) THEN
A
; daca obiectul este de tipul
i se calculeaza pozrtla de depunere a obiectufui

pe pale:ta

SET

locatiea =

SHIFT(p3 BY (nra

15) /5) *d2*10, rNT (nral15) *40)

MOD

5)+d1*10,-INT( (nra

MOD

se apeleaza programul de pickeplace


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

ELSE

;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 paleta


nrb : nrb+l

END

;daca paleta 1 este completata


IE nra =: 30 THEN
i se activeaza semnalul 01
SIGNAL (o1)
TIMER I : 0

ise asteapta 40 de secunde


WAIT TIMER(1) >= 40
,5e dezactiveaza semnalul 01
SIGNAL (-o1)

nra
;se reinitralizeaza
nra=0
; se reia p.rocedura de compl-etare a paletei
GOTO 100
END

;daca paleta 2 este completata


fF nrb :: I THEN
i se activeaza semnalul 02
STGNA], (o2

TIMER 1 :

i se asteapta 40 de secunde
;

WAIr rIMER(1) >= 40


se dezactiveaza semnalul

02

SIGNAL (-O2)

nrb
se reinitializeaza
nr}: = 0
ise reia procedura de completare a paletei
;

GOTO 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
APPRO pick, 50
BREAK

la 50 rnm deasupra pozitiei

de prindere

;se micsoreaza .,'iteza la 50*

SPEED 50

;se deplaseaza robolul liniar

MOVES pick
; se inchide

catre pozltia

gripper-ul

CLOSEI

;se pastreaza vi-teza de

SPEED 50

;deplasam robotul liniar

5OFa

si pentru mrscarea de departare

catre pozatia de deasupra punctufui de prindere

DEPARTS 50
BREAK
; se

APPRO

depozit'eaza obiectul Pe Pafeta

place,

BREAK

SPEED 50
MOVES
OPENI

place

SPEED 50
DEPARTS 50
BREAK

de prindere

50

pLogr:aniulur pr.r.llcipaf

i se da contr.lul
R E,T

I.]FI.I

. EIJD

Problema I1.2

- Utilizarea benzilor conveior

It,Iut,:r It{

multiple si a zonclor colnune de lucru

til otor It{2

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

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

;:

iiit#[i:;;M -;;;w

tr;

,t1- ,-.ntl . t
1i.i

*.

] 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 in

care o piesa este detectata de senzorul S I . banda este oprita iar piesa este preluata de robotul R I din pozitia
Pl si este slrpusa unui proces de imrragazinare in supol'ti de dimensiturea 6x6 distanta dlntre piese fiind egala
cu d mm atat pe directia X cat si pe directia Y (sistem de coordonate WORLD). Suporlii sr'tnt asezati intr-o
stiva bidimensionala 6x6 in zolla cotnuna de lucru \ZCL) iar distanta dintre pturctele de prindere a supoftilor
este 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 dlmm

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 cand
procesul 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.

pe directia

Cerinte:
a)

l abelul cu seurnalele de I/O

necesare pentru realizarea activitatilor cu ajutorul celor doi roboti SCARA.

b) Prograrnul de corlanda robot.

Solutie
a) f)efinirea semn;rlelor de I/O
Semnal
N,{ I

SI

Robotisernnal
R2
RI
I

l00

Cerere schimbare suport (CSS)


Cont'irmare ca suportul este
schimbat TCCSS)

2
I

002

M2

l00l

S2

Cerere schimbare suport (CSSPl


Cerere suport eol (CSC)

b)

002
,,

Realizarea programului de comanda al robotului

robot_l (
;programul se executa Pe robotul R1
LOCAL m1, s1, css, ccss, nrpiese, nrsuport
GLOBAL P1, safel, d, dx, d\, d2

. PR0GRAM

;definim semnalele de I/O


m1:1
s 1=10
^^^_a
UE55_

01
T

UUZ

; setam parametruf
PARAMETER HAND.TIME : 0.5

hand.time:0.

;folosim viteza maxima

SPtrED 1OO ALWAYS

;ducem robotuf in safel cu gripper-ul deschis


safe1, 2
numarui de piese si numarul de suporti
; initializam
nrpiese = 0
nrsuport = 0
;Pornim banda transPortoare

MOVET

lOO SIGNAL (m].


idaca a fost detectata o Piesa
Itr SIG ( s1 ) THEN
;oprrm banda transportoare
)

SIGNAL (-m1)

icalculam
p : SHIFT(p2
;calculam pozitia
SET pp = SHTFT(p
SET

pozitia sllportufui pe care se va depr-rne piesa


BY (nrsuport MOD 6)*dx+d1,-l.NT(nrsupott/6)*dx+d2,0)
piesei de pe suport
BY (nrpiese MoD 6)*d,-ll'lTinrpiese/6)*d,0)

;clepozitam piesa Pe un suport


CALL P P(P1, PP)

; incrementam numaruf de piese depozitate


rpiese - nr Pi ese I l
;daca am depus 5x6. Piese
IF nrpiese == 36 THEN
numarul de Plese
;reinitializam
nrPiese : t3
;mergem 1a suPortul Lrrmator
nrsuport : nrsuport+1
idaca s-au completat 6>'6 suPorti
IF nrsuport :: 36 THEN
i incepem sa compfetam prlmul suport
nrsuPort = 0

EI.]D

STGNAL (css)

WAIT
;

,SIG (CCSS)

cerem schlnrharea suportul.ri

;astept ca sLiportul sa fie schimbat

inchid semnalul de cerere

SIGNAL

(-CSSJ

END
END

GOrO 100
. E}JD

se reia clcluf

. PROGRAM

p_p (pick, pface)

;se realizeaza procedura de pick&place (identica pentru ambii roboti)


pick, B0

APPRO
BREAX

SPEED

5O

MOVES Pict'.
CLOSE]
DEPAFTS BO
BR

EAIi

pface,

APPRO

80

BREAK

SPEED 50
MOVES
OPEN

place

DEFARTS 8O
BREAK
RETURN
. END

, PROGRAM

'

robot-*2 O

robotului
iprograro.ul se execu!a pe controller-uI
LoCAL m2, s2, cssp, csg, nrsupcYt, pzcl

CLOBAL

R2

safe2, p2, p3, dx

PARAMETER HAND.TIME

= 0.5

SPEED IOO ALWAYS

safe2, 2
nrsuporL - O
,astept ca RL sa ceara schimLrarea unui suport

MOVET

100 t/,lAIT SIG (cssp)


ipornesc banda
S

ICNAL

(m2

B2

;astept sos-irea unei Pafete goale

WAIT SIG (s2)

;opresc banda
SIGNAL (-m2)

;calclllam pozltia

de prindere a suportului din


(nrsuport
i suportul este mut-at din ZCL pe paleta
CALL p_p(pzcI, p])
SET pzcf = SHIFT(p2 BY -INT(nrsuportl5)*dsr

S t GTJA

6)*dx,

0)

icer suporL gol


lCSg
.i

SIGNAL

ZCL

MOD

poinesc lranda

(M2

,astept ca.suportuf curent sa iasa d.in zona de detectie a senzorului


WAIr SIG (-s2 )
;astept ca suportul cerut sa fle in P.l
l^IAIT SrG (s2)

;opresc banda si cererea pent.ru suport

SICNAL (-m2)
SIGNAL (-csg)

imut suportul in

CALL p_p(p3, pzcl)

ZCL

;duc robotul in safe

MOVE safe2

idaca s-au schimbat toti suporti.i


IF nrsuport == 36 THEN
; se continua cu primul suport

nrsuport :

END

i se rej-a cic1ul
GOTO
. END

I OO

go1

s2

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, si o camera video 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 82
este 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 irrdexaj
pl I care fixeaza paleta pe banda. Din acest moment robotul Adept One preia o piesa din stiYa bidimensionala
alaturata, 1in care piesele sunt la distantele dx pe directia X0, si dy pe directia Y0, coltul din stanga sus fiind
invatat 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, apoi
dezactiveazape 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 si

89.

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
de operatorul de la postul manual.
T2. Apoi
- paleta este preluata de pe tranda
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.

2.

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.)
se considera ca stivele au o capacitate suficienta pentru asatnblarea tuturor trlaletelor"

Cerinte:

1.
2.

Definirea semnalelor de I/0 pentnt realizarea acestei activitati


Realizarea programelor de cornanda pentru asanrblarea a N montaje (nu este consicterat si aspectul
de corectitudine a montaiultti.

Fig. l l.3 - Integrarea robotilor industriali in celule fl exibile de {abricatie

Solutie

1. Definirea
Semnal

TI

semnalelor de IiO

Robot
Adept

Semnal

Nr.
Semnal

o
o

l0
4

Tip

One

T2

Cobra

BI

Adept
One

R2

Adept

0ne
B3

Adept
One

B4

Adept
One

B6

Cartezian

o
o

B7

Cobra

o_

B8

Cobra

B9

Cobra

Bl0

Cobra

B11

Cobra

B12

Cobra

CPI

Adepl

B5

Cartezian

o
o
o
o
o

I
1

I
2

4
5

I
r003

One

CP2

r004

Adept
One

CP3

Adept

005

One
CP4

r00l

Adept
One

CP5

Adept

r002

r00

91._CP6

Cwtezian

9v-

Cartezian_

ry9?_

CP8

Cobra

100 r

CP9

Cobra

002

CPIO

Cobra

004

CPII

Cobra

005

CPI2

Cobra

1008

ql_'l

_ 9"bt

t___

99?

CPI4

Cobra

010

PII

Adept

One
PI2

Cartezian

_,

Cobra

1"!.1
Adept

0ne
S2
S3

Cobra

camefa

Cobra

catr

2. Realizar-ea progratnelor de comanda


.

PROGRAI4 acces-s

;prograrnul este executat de robotul Adept One


i gi are functia de a permite introducerea de palete
interioara
icatre roboti (banda exterioara)

de la postul manuaf (banda

LOCAL

bI, b2, tl,

cP1, cP2, cP3, nrP

,se defillesc semnaLele folosite

bl :4
b2:5
tl = 5
cp1 = 1003
ruu9
up_
-h?
UPJ
- lnnq

; se initi.al-izeaza
nrp:0

numarul de palete

ise asteapta veni.rea unei palete

I00 WAIT SIG(cp.t)

ise blocheaza intrarea al-tor palete in zona

de

Iucru cu sistemul de transfer

de

transfer

SIGNAL bT

ise asteapta ca paleta sa ajunga in pozi-tla

hIAIT S IG ( cp2 )
;se )rloc.heaza inaintarea

Paletei

SIGNAL b2

.^^ fih1-i
a-r Lransferul
Ilf
LIU-O

, De

SIGNAL tI

ise asteapta ca paleta sa ajunga pe banda exterioara

WAIT SIG ( cp3 )


.

,Jl

<a ^nr6eto mecanismul de transfer


]

vy!!UL!

SIGNAL *11

;se dezactiveaza Pistonul

82

SIGNAL _b2
;

se asteapta ca paleta sa paraseasca zona de transfer

de

pe b.anda exetrioara

WAIT NOT SIc(cp3)

;se incrementeaza numarul de palete introduse in sistem

nr p:n rp+ l

tr ansf

se dezacliveaza pistdnuL Bl permltand intrarea unei noi palete in zona de

e.r

SICNAL -b

idaca nu s-au introdus N pafete, procesul se reia


IFnrp<nTHEN

coro

100

END
. END

. PROCRAM

adepLone

;programul se executa pe robotul Adept one si are functia de a reaf i.za


;operatiife de manipulare asociate acestui robot
LOCAL cp4, cp5, b3, b4, Pil, sl, nrpiese, 1oc

GLOBAL

]pL,

P2

PARAMETER HAND.TIME

= 0.5

SPEED lOO ALWAYS

deschl

zonei cle lllcru cu qri,pper-ul

robotul lntr-un punct in exteriorul

;se trimite

MOVET

P1,

;se definesc semnafele cte I./O


cp4 = 1001
b3=1
cp5 : 1002
b4:2
pi1:3
s] = 1006
numaru.l de piese depuse

;se initialLzeaza
nrpiese = 0
,

un timer si se asteapta ca o fJa:l.eta sa ajunga in post intr-un


;se initializeaza
timp 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 Probfema
isi sa apese tasta ENTER, apor. se reia operatia de asteptare a unei paLete
IF TIMER(1) >= 30 rHEN
PROMPT

"E posibil

ca paleta sa fie blocata pe traseu",

$a

GOrO 100
END

;daca paleta a ajuns in post se acli,:neaza 83 pentru a bloca paletele urmatoare

SIGNAL b3

ise asteapta ca pa.Leta sa se pozitloneze in zona de lucru

WAIT SIG (cp5)

i se blocheaza inaintarea Pafetei


SIGNAL b4
i se fixeaza Paleta Pe banda
SIGNAL pil

;se calculeaza focatia obiectului ce i.ra fi pfasat pe paleta


SHIFT(pl BY (nrpiese MOD B)*di.,-I|trT(nrprese/8)*dy,0)

SET 1oc:

;se apeleaza rutina de pick&place cu pozitiile

CALL p_p lloc,

de preluare si depunere a piesei

p2)

i se incrementeaza numarul de piese depuse


nrpiese = nrpiese+1
;se asteapta ca bancia sa fie libera in aval astfel
din zona de lucru

incat paleta sa poata sa iasa

WA]T NOT SIG(51)

;se debfocheaza Pafeta

SIGNAL -pi1
;

se permite deplasarea Paletei

SIGNAL -b4

ise asteapta

TIMER 1 :

2s

wArT T]MER(r) >:


i se permite
SIGNAL _b3

intrarea unei alte palete in post

;daca numarul de piese/'palete este mai mic decat


/\ n THEN
rr!Pauu! --^

]'tr

atuncl se reia operataa

f!

GOTO

1OO

END
. END

p_p (pick, place)


;programul de picl(&place este identic pentru toti
robct
; si se executa pe fiecare controller
APPRO plck, B0

'. PROGRAI.i

BREAK

SPEED 2O
MOVES

pick

robotii

CLOSE,I

DEPARTS 80
BREAK

APPRO

pIace,

80

BRFAK

SPEED:O
MOVES

pl ace

OPEN 1

DEPAR'TS 3(]
RETURN
. END

cartezian ( )
;proqramul se executa pe robotul Cartezian si are functla de a realiza
;operatlile de manipulare asociate acestui robot
LOCAL cp6, cp7, b5, b6, pi2, s2, nrpiese, 1oc
GLOBAL p3, p4

. PROGRAM

PARAMETER HAND.

TII'{E :

O.

SPEED 1OO ALWAYS


MOVET
;

p3,

se deflnesc semnalele de I/O folosite

en6 -

b5:1
cp7 :
b6:2
Pi2=3

I OOl
I

002

s2:1003

numarul de piese depuse


,se initialtzeaza
nrprese - O
un tamer si se asteapta ca o paleta sa ajunga ln posL intr-un
;se ilitializeaza
tinrp mai mic sau egal cu 60 de secunde
IOOTIMER I : O
WAfT TIMER(T) >= 60 CR SlG(CP6)

;daca timpul 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 palete


IF TIMER(I) >: 60 THEN
ca paleta sa fie blocata pe traser.r", $a
PROMPT "E posibil

GOTO 100
ENN

;daca paleta a ajuns in post se actioneaza 85 pentru a bloca paletele urmatoare


SICNAL b5

;se asteapta ca paleta sa se pozitioneze in zona de lucru

WAIT SIG ( Cp7


;

se blocheaza -tnaintarea paletei

SIG}JAL b5

;se fizeaza paleta Pe banda

SICNAL p i 2

;se cafculeaza locatia obiect-ului ce va fi plasat pe paleta


SHIFT(pil BY 0,nrpiese*d1,0)

SET 1oc:

ise apeleaza rutlna de. pick&place cu pozitiile

de preluare si depunere a piesei

CALL p_p(1oc, p4)

ise incrementea:a numarul ,le piese depuse


nrpiese - nrpieserl
;se asteapta ca banda sa fie fibera in aval astfel
din zona de lucru

incat paleta sa poata sa iasa

WA]T NOT SIG (s2)


; se deb1:chea za paleLa
S IGNAL -pi 2
;

se permite paletel

SICNAI, -b6
;

sa se cleplaseze pe banda

se asteapta doua secunde ca paleta sa iasa din zona de lucru

WAIT TII4ER(I) >=

ise permite intrarea urmatoarei palete in zona de lttcrtr


SIGNAL -b5

idaca nu s-au depus N piese pe N palete se reia procesul


IEnrpiese<nTHEN
GOrO 100

END
. 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, loc


P5, P6

GLOBAL

;programul functioneaza asemanator cu programele celorlalti

dol robotj. cu

deosebi rea

;ca foloseste .a1ti senzori si elemente de actionare


: 0.5

PARAMETER HAND.TfME

SPEED 1OO ALWAYS


MOVET p5, I
cp8 = I 001

b7=1
cpg : 1002
bB=2
Pi3=3
s3:1003
nrpiese = 0
TO0TIMER 1:0

WArT TIMER(1) >: 90 oR SlG(cPB)

IF TIMER(1) >: 90 THEN


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

$a

GOTO 100
END

SIGNAL lo7

i{ArT

SIG (cpg)

SIGNAL bB
STGNAL

pi3

SET loc = SHrFT(p5 BY 0,0,nrpiese*dz)


CALL p_p(loc, P6)
nrpiese : nYPis5s+1
WAIT NOT S]G(53)
SIGNAL -pi3
SIGNAL _b8

TIMER 1 :

wAfT TrMER(1) >: 2

'

SIGNAL -b7

IFnrpies.e<nTHEN

coro

100

END
,

END

. PROGRAM

vedere

()

iprogramul administreaza fr-rnctionarea postului de vedei:e si se e::ecuta fizic


robotului cobra
;pe controller-ul

LOCAL cp1O, cp11,


GLOBAL coada []

b9, bI0, pi4, camera, cam, rez, nrpal

;se definesc semnalele de I/0 fol-osite

cp10 =

b9=4
cplr :
b10:5
pi4-5

camera
cam:1

1004

1005

005

rez =

1001

;se lnitializeaza numarul de palete inspectate


nrpal - 0
.I

;se asteapta .aparitia unei Pafete

OO

TTMEP 2 _ O
WAIT TII'IER \2)

>-- 120 OR SIG (cpro

\: l20 THEN
"E posibil ca paleta sa fie blocata pe traseu",

TF TIMER(2)
PROI.{PT

GOTO

$a

I OO

END

;se blocheaza accesul altor palete in postul de vedere


SIGNAL b9

;se asteapta ca paleta sa ajunga in pozitia

de inspectie

WA]T SIG (ep11)

se blocheaza lnaintarea Paletei

SIGNAL blO

se f i-xea za paleta Pe banda


pi4
ise cere itrspectarea produsului de pe paleta
;

SIGNAL

SIGNAL CaMeTa

;se asteapta ca inspectia sa inceapa

WAIT SIG (cam)

;se asteapta ca inspectia sa se termine

WAIT NOT SlG(cam)

;se trece rezuftatul


IF SIG(rez) THEN
coada[nrpal] :
EI,SE

coadaInrpa1] :

intr-o

coada

1
0

EI\D
;

se opreste semnalul de cerere pentru inspectia video

SIGNAL -camera
,

se deblocheaza PaIeta

STCNAL -p i

;Se elibereaza paleta pentru Ca aceasta 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)
O
TTMER 2
WAIT ((TIMER(2) >: 2) AND SIG(-cpl1))
i se incrementeaza numalul de palete inspectate
nrpal = nrpal+l
; se permile accesul altei palete ln postul de inspecti
STGNAL -D9

idaca nu s-au inspectat N patete se reia procesul


lFnrpal<nTHEN

coro r00

F\t n
. END
.

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

PROGRAM

LOCAL

video

cp12, cp13, cpl4, b11, b12, L2, nrpal

GLOBAL coada

;se definesc semnalele de I/o


cpl2-r008

cp13:1009
cp14 -1010
b1

1:B

b 1 2-'9

L2-1

numarul de palete procesate


se initlalizeaza
nrpal : 0
ise asteapta ca o paleta sa ajunga in zona de l[cru
;

cu sistemul'de transfer

100 V{Arr srG (cp12

ise blocheaza accesuJ- celorlalte

palete

SIGNAL b11

;daca produsul de pe paleta a fost asamblat corect


IF coada[nrPal] := 1 THEN
ise asteapta ca pa.IeLa sa ajunqa in punctul de transfer
WAIT SIG (cp13)
i se blocheaza
SIGNAL b12

deplasarea paletei pe banda

ise actioneaza sistemul de transfer


t2
ise asteapta ca paleta sa ajunga pe banda jnterioara

SIGNAL

WAIT SIG (cp14)

;se opreste sistemul de transfer

SIGNAI, _t2

se permite lntrarea altei palete in post


;iar pafeta tran.sferata esle preluata de un operator
;

S]GNAL _b12
ELSE

;daca produsul nu este asambla! corect se asteapta 5s pentru ca palela


treaca de zona de tran.sfer
i si sa fie Preluata de un operator
TIMER 3 : O
WAIT TIIUER (3 ) >= 5

-sa

EN.D

palete in post
-b]1
i$e incrementeaza numarul de pafete procesate
nrpaf : nrpal+l
idaca numarul de palete procesate este mai mic decat N aturici se rera procesul
lFnrpal<nTHEN
;s.e permite accesu.L in altei

S]GNAL

GOTO 100
END
. END

cobra_start ( )
;programrl lanseaza in exe.cutie cele trei aplicatli
roborufui cobra:
; si anume programele cobra ( ) , vedere ( ) si selectle
EXECUTE O CobrA il
EXECL'ITE 1 vedere ()
EXECUTE 2 sefectle o
. PROGRAM

. END

ce se executa pe conlroller-ul
()

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

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

pe balda trebuie sa existe un encoder care sa fle conectat la controller-ul robot pentru a
furniza date de tiP Pozitie

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
cu poin'[er-ur):
necesar sa exis'{e

''

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

cd d:\util
se incarca in memorie

utilitarul BELT CAL

load belt_cal.v2
se executa programul

'r
.

a.belt cal

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)

selecteaza robotul pe care

il veti folosi daca sistemul controleaza mai multe brate

.oboi"

'

se selecteaza optiunea dorita din meniul afisat:

0 :> ExlL to

monitor
I :) Perform complete calibratiot-t sequence
2 => Lcad callbratir:n data fr:om the disk
3 :) Store calibratiorl data onto the disk
4 => DisPlaY belt encoder out-Prit
5 :> Set encoder scale factor
6 :> Define belt reference frame
J :> Defirre belt working wrndow
the bett- variable(s) with current data
B :> Initialize
9 -> Test. belt caLibratlon
1al -> Selecl- belt to work r,.rith
11 => Select r bot to work wrttr

svsr-em

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 calibrarea
completa 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

valori:
factorul de scalare pt encoder si fereastra de lucru

factorul de scalare permite masruarea distantei parcurse de balrda prin inmultilea


acestui factor cu nttmarul de irnpulsuri primite de la encoder

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


banda ce limiteaza zona de acces a robotului)

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 centrul
discului 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 benzii
in 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-ului in 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.
3.
4.
5.

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

la 6).

Factorul cle sculare pentru ent'oder, ce este fblosit pentru convertirea inrpulsurilor de la encoder in
milimetri parcursi de banda.
Un o.ffset encocler,ce este utilizat pentru a ajusta originea cadrului benzii fata de ref'erinta.

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 fi
stocate si incarcate fara restrictii.
Dupa ce datele sunt incarcate de pe disc, instructiunile DEFBELT si WINDOW treL.ruie sa fie erectttate

deflni variabila de banda. (Utilitarul LOADBELT.v2 contine o subrutina ce va citi datele despre
pentru
variabilele <1e banda dintr-un flsier si va executa instructiunile DEFBELT si wrNnOw necesare
penil.Lr a

definirea variabilelor de banda.)

Tiansformata norninala de banda


Pozitia. orientarea, si directia miscarii benzii sunt def,rnite de o transfbrmata 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 grija
Mai 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, orientarea
instantanee 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 transformatei
nominale 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-encoder


Variabilele 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
poate
fl reprezentat de contorul encoderului, aplicatiile V+ nu vor trebui sa considere faptul ca sistetnul de
ce
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.

Factorul de scalare al encoderului

Pentru orice conveior, factorul de scalare al encoderului este o constanta ce reprezinta numarul de impulsuri
encoder echivalente pentru o schimbare de pozitie a benzii. Unitatea de masura pentl'u factorul de scalare

cste milirnetru/inrpuls.

Acest factor poate li deterntinat fre direct din detaliile cuplajului rnecanic al encoderului cu banda sau
experimental prin citirea encoderului in tirnp ce banda se deplaseaza. Utilitarul de calibrzue a benzii supofta

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.

Offsetul encoderului

Ultima valoare

a encoderului necesara pentru functionarea corecta a sistemului de 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, valoarea
offetului 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)upa
ce infbrmatia este primita si procesata, ofTsetul encoderului poate fi modificat de instructittnea sErBELr:
SETBELT

?bel.t.var = expresie.

Miscari relative la banda

Instructiuni pentru miscari robot relative la banda

Pentru a defini o miscare robot relativa [a banda, sarr pentru a deiini o transfbrmare relativa la locatia
instantanee a unui cadru de referinta in miscare, o variabila de banda poate fi utilizata in locul unei
trasfbrmate normale pentru a calcula transfbrmata.
De eremplu. instructiunea
1
MOVES ebelt:loc
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 execlttia

programului.
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 la
o locatie fixa.
MOVES
OPEN

?belt Il] :focatial

DELAY 2
CLOSET

MOVES

. OO

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.

Incheierea miscarii

Cand robotul se deplaseaza relativ la banda, trebuie acoldata

o atentie sporita condtitiilor ce

determina

inclreierea 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.

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 I

POINT ?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 %belt

(?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
BELT

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

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 de
calibrare 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

Numele varibilei de banda ce este definita.

nom_trans

Transformata ce defineste pozitia si orientarea benzii conveior. Axa X a transformatei nominale


detlleste {it'ectia de inaintare a benzii. Irr mod normal benda se deplaseaza in sensul pozitiv al
axei 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.

lle 1l_num

Nuntarul encoclerului fblosit pentru citirea locatiei instantanee a benzii. Pot


encodere de la I la 6.

vel_a-:g

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

scale fact

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 impulsuri

fi

specificate 6

provenite de la encoder (mmiimpuls).

b.

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

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

relativ la transfbrmat'ea nominala de banda. Sintaxa


SETBELT

c.

'bel t_va r -- exPresi

1arNDo1lv:

este:

Instructiune prograrn pentru stabilirea limitelor f'erestrei de lucru cu banda si a subrutinei

pentru violarea ferestrei. Sintaxa este:

?b,eft_var = location,

WINDOW

location,

prcgram,priority

unde:
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

location Transformata

(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 in
impulsuri 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 ion Transfbrmata compusa deflnita relativ la banda (incepe cu o variabila de banda).
Expresie optionala ce specitica tirnpul viltor la care transfonxarea este evaluata. Rezultatul
time
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 utilizat
pentl.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.
mode

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

in extet'iorul ferestlei de lucru cu banda.


Valoarea retumata, ce este o distanta in milirnetri, este interpretata dupa culn urmeaza' (Definitiile
timitelor 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). valoarea returnata
este interpretata dupa culn urmeaza:

0
<0

Locatia este in exteriorul felestlei.

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 limita
.

>0

este valoarea retu'nata.

r*ixtunm

Irig

l 1.4 * Frurctia I^]Il'lDohl penku piu'ametrul mode mai mic sau egal cu:ero'

Daca valoarea parametrului mode este mai mare decat zero. valoarea returnata este interpretata dupa

cunl Ltfnleaza:
Indica faptul ca locatia se gaseste in interiorul ferestrei.
0
<0
Indica laptul ca locatia in exteriorul f'elestrei, mai aproape de limita din amonte; distanta este
ABS

>0

valoar:ea_retur.nata

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

$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 test

inainteaza catre limita din aval.

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 banda
definite. 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.

Problerna 11.4

- Urmarirea

obiectelor in rniscare
.,\Str{5

:,i

$r

\i

s"i

Fig. 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
la 1.5 secunde). Robotul Rl preia obiectele de pe banda Bl si le depune in interiorul
obiectelor de pe banda 82. Purctele de preluare respectiv depunere a obiectului au fost definite relativ la cele
doua 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 de pe banda B2 de catre R2 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 la
banda 83 si se nunreste place2, aceasta specilica pozitia piesei pe paleta cand paleta a fbst detectata de
cadenta (un obiect

senzorul 54. Paletele contpletate sunt detectate de senzorul 55 si preluate de catre robotul R3 si depuse pe un
ASRS. Pozitia de preluare a paletei este invatata relativ la banda B3 si se numeste pick3 (reprezinta pozitia
paletei 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 indexarea
sisternului 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-o
pozitie safe invatata anteriol iar Ia sfarsitut aplicatiei se vor retrage in aceasta pozitie. Senzorii sunt plasati in
interiorul ferestrelor de lucru ale robotilor cu lranda in apropielea limitei din amonte (upstream). Benzile sunt

controlate independent de roboti prin iutermediul unui automat programabi[ ce tru face scopul acestei
aplicatii.

Cerinte:

l.
2.

Sa se delineasca semnalele de

I/O folosite in aplicatie

Sa se realizeze programele de comanda pentru completarea si depozitarea a 9 palete pe ASRS.

Solutie

l. Definirea

semnalelor de I/O.

I*r_"J.ry4

Numar Semnal Robot Observatii

Tip Sem

!bi991

SI

RI

!:ry1v1!l gry:l{ Yl

s2,

RI

Senzoru[ 52 a detectat un obiect

s3_

R2

_senlogts3llleteqat

R2

senz911l s+ a

S5

R3

Err.out.12

o
o

RI

S4

Err.out.r3

RI

RI

F:lt'2
ql!,nj3

RI

09199111

y oblegJ

, otg:," U
_sTlgr4s_s
nl !111te rym1{le T.!91gI"l uplfuli!' ."11!
R! lrilille semry! {egn9h919re rgntlcalle!gtf

"9,:g_

l
l

I]

!i

,1.]:"19,. a afllca1'ry1le la R2

L! 1l1,nl.'t,. '1T1119:
R! trlimeste u.Irylde incheielg a aq!1ryt19!i! !
ca111catlln

R2

L1il iqi,. 1em1{

d1

Err.out.13

R2

R?

og

E'llllt

R2

!? ergrry lTryl-q!]ry!1* "-lplkatiei

!rg''i

R2

o
o

R3

ll Lll1ll:-ld

R3

13

Ery4

R3

R3

Err.in.r2

RJ

Err.out.12

un1!i"!1

Err.out.rl

Err.out.r I

Yt111!:

fgn1lr

1c

ne
i

91e3 1r

ilctrq!1e

nz rylmest9 s9m11f d9 incheile


de incrreierel

llry{-. 1,!In1l{e

1n9[ere1e

ti

r!!1.3ti.1_9{'.

--l

Is

_l

Ril

de la

ryli91ryide

Rt l

Rr

ry11.3ry1:qf!

]
l

rynt1atle1c1reR2

Rl ]

4lEqry

R3

g-1rye1e'Ty191inc!9!e1ry antl:{':i_de la
i1cn9_ie'1e a apiical]elae t1 n:
R-3 prlmese gelnaf
{9
l
R3 c1 e i1rlxa 9a Ooz-itie!,'\SRS;uI1i

ASRS.ack

R3

ASRS-ul confirrrra inderalea

i
l

pozitiei

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

Rl

Robotul

11. init (
mediului de l-ucru
;Progralnul face lnitializarea
;si lanseaza in executre task-uri1e robocului FI
GLOBAL i.ndexb1, indexb2
GLOBAL erl:. int I err . rn, 12, err. in. r3
GLOBAL err.out' .12, err.out.r3

. PROGRAI4

indexbl si lnciexb2 sunl contoare ce tin evidenta rrumarufui de obrecte


ce vin 1;re banda
inderbl = 0
indexb2 : 0
;

;se definesc semrralele fofosi.re


err.int - 2001
err. in. 12 - 1003
err. in. 13 : f004
err.out,r2 = I
err. out . 13 = 2

; se activeaza
ENABLE BELT

switch-u1

BELT

;se utilizea:a parainetrul BELT.MODE pentru a lua in COnSiderare erorile


igenerate de violarea limitei de downstream
PARAMETER BELT.MODE : O
;se definesc factorr.r de scafare pentru encoderele benzilor
beltl.scale = 0.025063
be1t2.sca1e = 0.021701
;se definesc variabifefe de banda, be1l1 si belt2 au fost invatate in prealabil
: be1t1, l, 1, beftl.scale
: b,e1t2, 2t 2, belt2.scale

DEEBELT erbl
DEEBELT %b2

i se definesc ferestrele

de
; limitele
WINDOW ?L.1 =
WINDOW esb2 =

d efucru cu benzile

upstream si downstream au fost in prealabil


windowl_bl, window2-b1, window'err(1)
wlndowl b2, window2-h2, window.err(2)

invatate

;semnale]-e de eroare sunt puse pe I - se fo-loseste logica negativa


i in cazul 1n care semnalul este OFF a aparut o eroare

SIGNAL err.int,

err.out.12,

etx 'out'13

roboti sa fie initializati


ise asteapta ca ceilalti
12, err,in.13)

WAIT sIG(err.in.

se execut.a programele de monitorizare a benzilor


si programul prj ncj PaI
EXECUTE 1 beftl .monit . 11 (
EXECUTE 2 be1t2.mcnlt. 11 (
EXECUTE 0 robotl o
;

)
)

, END

bel t1 .monit. rL ( )
;Programul monitorizeaza banda B1 pentl:u robotul Rl
LOCAL s]
s1 - 1001

. PROCRAM

100

;se asteapta aparitj-a unui cbiect pe banda sau aparitia unei erori
err.in.12, err.in.13)
1F SIG (S1) THEN
;daca apare un obiect se retine indexul ltrenzli
of fsetbl Iinclexbl] = BELT (?;b1)
indexbl:indexbl+1
i se asteapta ca obiectul sa nu mai fie sesizat de senzor

WAIT sIG(s1) oR l'1oT SIG(err.int,

WAIT NOT SIG(s1)


GOTO 100
END
. END

beft-2 .monit. 11 ( )
iProqramuf monitorizeaza banda 82 pentru robotul

. PROGRAM

R1

],OCAL 52

100

s2 = Ia02

WAIT SIG(s2) oR NOT SIG(err.int,

IF SIG(s2) THEN
offsetb2 [indexb2] :
lndexb2:fnds)<l!+1

err.in. t2, et:t.1n.13)

BELT (?b2)

WA]T NOT SIG(52)


GOTO 100
END
. END
. PROGRAM

robot.t

LOCAL ib

{)
]

PARAUETER HAND. TIME=O. 5

SPEED 1OO ALWAYS

; ib I rep-re:inta numaru-I de

cb

jecLe manipulate

ib1=0
MOVET

safe,1

BREAK

100
err. in.

;se asteapta ca pe cele doua benzi sa apara cate un obiect sau


;se asteapta aParitia unei erorl
WAIT ( (ihl<inrlexbl) AND (ib1<lndexb2 ) ) oR NoT SIG (err ' int, ert "in.12,
13

;dacaobiecteleauaparutpebanda(nllsedetecteazaoeroare)
IF STG(err.int, err.in' 12, err.in.r3) THEN
iseseteazaoffset-ulberrzilorsisemanipuleazaobrectul
SETBELT ?b1 : offsetbf Iibl]
SETBELT %b2 = offsetb2[ibr]
APPROS 3b1:Pick1, 50
MOVES e6b1 :pick1
CLOSL

DEPARTS 50
APPROS %b2:Placel, 50
MOVES ?b2:Placel
OPEN

DEPARTS 50
MOVES SA fE

ibl=ibl+1
GOTO r00
END

r\t n

window. err (tl,e.Lt-no


;Ia aparitia uner erori se afiseaza un mesaj la consola
;si se emit semnalele de inchidere a aplicatiei
IF be]t_no == 1 THEN
TYPE "Eroare la preluarea obiectul.ui de pe banda 81"

. PROGRAM

ELSE

TYPE

"Eroare La depunerea ohriectului pe banda 82"

END

MOVES

safe

SIGNAL -err.int,

-err.out.t2,

-exr.out.r3

. END

Robotul R2
.

. init (
medlulul de lucru
;Programul face iniiiafizarea
;si lanseaza in executie task-url1e lrobotului R2
GLOBAL indexbZ, indexb3
GLOBAL et:r, int, err ' 1n. rI, err. an. r-l
err.out.13
GLOBAL err.out.11,
indexb2 = 0
indexb3 = 0
err. int = 2AA7
err. in. r1 : 1003
err. in. 13 = 1004
err. out . r1 : I
err.out.r3 : 2

PROGRAM 12

ENABLE BELT
PARAMETER BELT.NIODE

=0
helt2.scale = 0.021701
belt3. scale : 0.023161
'L, I, be1t2 . scale
DEFBELT eeb2 : belt2,
DEFBELT ?b3 - belt3, 2, 2, belt3.scale
WINDOW ?b2 : wrndowl b2, windowZ--b2, window.err12)
WINDOW ?b3 = windowl-b3, window2 b3, uindow.err:(3)
err.ouc.r.l, err-out.r3
SIGNAL err.inL,
err. jn.13l
1 l:elt2 .monit. r2 o
2 belt3.monit. 12 (

WAIT SIC\erl.-Ln..II,
EXECUTE
EXECUTE

EXECUTE

0 robot2 o

. END

be1t2 .monit . r2 ( )
Programul monitorizeaza banda B2 pentru roif,otul

. PROGRAM

R2

LOCAL s3

l-00

s3:1001

WAIT SfG(s3) oR 1\lOT

IF SIG(s3)

SIG(err.int, err.in'rl-,

err.in'r3)

THEN

offsettr2 [ indexb2 ] = BELT (%b2


lndexb2 : inhexb2 +' I

WAIT NOT SIG(s3)


GOTO IOO
END
. END

belt3.monit. r2 ( )
iPrjogramul monitorizeaza banda 83 pentru

. PROGRAM

100

LOCAL s4
s4 = 1002
WATT

SIG(s4)

IE SIG(s4)

OR NOT

robotul

SIG(err.int, err.in.tl,

R2

err.in.r3)

THEN

offsetb3 [indexb3J =

BELT (?b3)

inde>lb3:in6[P;1[J+l

WAIT NOT SIG(s4)


GOTO 100
E,LID
. END

. PROGRAM

robot2

LOCAL itr':, -ib3


PAF.AMETER HAND. TIME=O

.5

SPEED 1OO ALWAYS

ib2:0
rb3=0
MOVET

safe, l

BREAK

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


err. in, r3
THEN
err.in'r3)
IE SIG(err.rnt, err.in.rl,
SETBELT !rb2 = of fsetk,2 tib2.l
SETBELT eab3 = of fsetb3[ib3]
APPROS eab2:pick2, 5A
tliovES 'sb2 : pick2

err.in.11,

CLOSEI
DEPARTS 50

(pface2 BY 30* (ib2 MOD 3) ,30* (INT (ib2l3) MoD 3) ,0) , 50


MoVEs ?b3:SHIFT(p1ace2 BY 30*(1b2 MOD 3),30*(INT(ib2l3) MoD 3),0)
APPRoS ?b3:SHIFT
OPEN

DEPARTS 5O
MOVES safe

ib2:ib2+1
IE ( (ib2 MoD 9) := 0)
ib3:ib3*1

THEN

END

GOTO 100
EIJ D

. r.l\i

I
window. err (belt_no)
IE belt no := 2 THEN
TYPE "Eroare -Ia preluarea obiectufui

. PROGRAI{

TYPE "Eroare 1a depunerea obiectului


END

MOVES saTe

SIGNAL -err.int
. END

r -err.out.r1,

-err,out.r3

de pe banda 82"
pe paleta dq pe banda 83"

Robotul R3
. PROGRAM

13.

init

()

inirializarea mediului de lucru


in executie task-urile ro]:otului R3

; Programul face
lanseaza
;

si

GLOBAL indexb3
GLOBAL err.int, err.in.r1, err.in.r?
CLOBAL err.out.11, err.out.12

indexb3 = 0
err, int : 2O0l
err.in.r1:1002
err.in.r2 = 1003
err.out,rl:1
err.out,r2 - 2

ENABLE BELT
PARAMETER BELT.MODE

:
be1t3.scale : 0.023161

= belt3 , 1, 7, belt3 . sca.le


: windowl-b3, r.,iindow2-b3, window'err
err.out.r2
err.out.rl,
SI.GNAL err.int,
DEFBELT ?b3

WINDOW %Lt3

erx.in.12)
1 belt3.monit.r30
0 robot3 o

WAIT SIG(err'in'11,
EXECUTE
EXECUTE
. END
.

PRoGRAM belt3.monit. r3 ( )
; Programul monitorizeaza
LOCAL 55

banda 83 pent.ru robotul

s5 : 1001

100

WAIT $IG(s5) oR NOT SIG(err.int,

IF

SIG

(S5) THE.N
offsetb3[indexb3] =
indexb3=in6is)&l+1

err.in.r1,

R3

err'in'12)

BELT (%b3)

WAIT NOT STG(S5)


GOTO 100
END
.

END

. PROGRAM

robol3

LOCAL ib3
LOCAL asrs.

inc, asrs. ack

PARAMETER HAND' TIME=0. 5

SPEED 1OO ALWAYS

ib3=0

asrs. inc :

asrs.ack :
MOVET safe,

1004
I

BREAK

100

WAIT (ib3<lndexb3) oR NoT SIG(err.int,

err.ln.r2)
err.jn.rt,
SETBELT ?b3 : offsetb3tib3l
APPROS 3b3rPlck3, 50
MOVES ?b3:Pick3

TE SIG(err.inL,

err'in.11,

err'in'12)

THEI'I

CLOSEI
DEPARTS 5O
APPROS Place3, 5Q
MOVES P1ace3
OPENI
DEPARTS 50

i-b3=ib3+1
IF rb3 =- 9

THEN

"Pafetele au fost stocate in ASRS"


TYPE "ApIicatie Terminata"
-err.out.r2
SIGNAL -err.int,
-err'.out.rl,
TYPE

ELSE

SIGNAL

asrs.inc

I,\IAIT SIG (asr:s. acli)


S IGIIAL -asrs . i nc
i^IAIT SlG 1-a,srs . acli)
GOTLT }

L]O

END
. END

. PROGRAM

wi ndovr.

err

TYPE "ET:oare 1a pi:eluarea paletei

MOVES

safe

de Fle banda 83"

SIGNAL -err. int r -rr, out. rl r -err. out . r2

END