Documente Academic
Documente Profesional
Documente Cultură
.
.
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
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 sisteurelorASRs aduc beneficii ploceselor inclustriale in care acestea sunt integrate si anume:
.
.
.
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
-';'<
Fig. I t . I
ssu
Pl
P2
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)
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
f00
60s
(m)
TYPE
GOTO 2OO
rT QF
se incheie programul
GOTO 2OO
END
END
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
MOD
5)+d1*10,-INT( (nra
MOD
ELSE
END
nra
;se reinitralizeaza
nra=0
; se reia p.rocedura de compl-etare a paletei
GOTO 100
END
TIMER 1 :
i se asteapta 40 de secunde
;
02
SIGNAL (-O2)
nrb
se reinitializeaza
nr}: = 0
ise reia procedura de completare a paletei
;
GOTO IOO
END
END
de prindere
SPEED 50
MOVES pick
; se inchide
catre pozltia
gripper-ul
CLOSEI
SPEED 50
5OFa
DEPARTS 50
BREAK
; se
APPRO
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
It,Iut,:r It{
.:::!!!!n7,6;;,:t,t!,|!.i@j:
;.;r" -lr':lJ*'-l1i;
;:
iiit#[i:;;M -;;;w
tr;
,t1- ,-.ntl . t
1i.i
*.
] iiii;
;;i:
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)
Solutie
a) f)efinirea semn;rlelor de I/O
Semnal
N,{ I
SI
Robotisernnal
R2
RI
I
l00
2
I
002
M2
l00l
S2
b)
002
,,
robot_l (
;programul se executa Pe robotul R1
LOCAL m1, s1, css, ccss, nrpiese, nrsuport
GLOBAL P1, safel, d, dx, d\, d2
. PR0GRAM
01
T
UUZ
; setam parametruf
PARAMETER HAND.TIME : 0.5
hand.time:0.
MOVET
SIGNAL (-m1)
icalculam
p : SHIFT(p2
;calculam pozitia
SET pp = SHTFT(p
SET
EI.]D
STGNAL (css)
WAIT
;
,SIG (CCSS)
SIGNAL
(-CSSJ
END
END
GOrO 100
. E}JD
se reia clcluf
. PROGRAM
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
PARAMETER HAND.TIME
= 0.5
safe2, 2
nrsuporL - O
,astept ca RL sa ceara schimLrarea unui suport
MOVET
ICNAL
(m2
B2
;opresc banda
SIGNAL (-m2)
;calclllam pozltia
S t GTJA
6)*dx,
0)
SIGNAL
ZCL
MOD
poinesc lranda
(M2
SICNAL (-m2)
SIGNAL (-csg)
imut suportul in
ZCL
MOVE safe2
nrsuport :
END
i se rej-a cic1ul
GOTO
. END
I OO
go1
s2
problema
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.
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
PROGRAI4 acces-s
LOCAL
bl :4
b2:5
tl = 5
cp1 = 1003
ruu9
up_
-h?
UPJ
- lnnq
; se initi.al-izeaza
nrp:0
numarul de palete
de
de
transfer
SIGNAL bT
hIAIT S IG ( cp2 )
;se )rloc.heaza inaintarea
Paletei
SIGNAL b2
.^^ fih1-i
a-r Lransferul
Ilf
LIU-O
, De
SIGNAL tI
,Jl
vy!!UL!
SIGNAL *11
82
SIGNAL _b2
;
de
pe b.anda exetrioara
nr p:n rp+ l
tr ansf
e.r
SICNAL -b
coro
100
END
. END
. PROCRAM
adepLone
GLOBAL
]pL,
P2
PARAMETER HAND.TIME
= 0.5
deschl
;se trimite
MOVET
P1,
;se initialLzeaza
nrpiese = 0
,
"E posibil
$a
GOrO 100
END
SIGNAL b3
SET 1oc:
p2)
SIGNAL -pi1
;
SIGNAL -b4
ise asteapta
TIMER 1 :
2s
]'tr
f!
GOTO
1OO
END
. END
'. 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.
p3,
en6 -
b5:1
cp7 :
b6:2
Pi2=3
I OOl
I
002
s2:1003
remedie2e. problema
GOTO 100
ENN
SIG}JAL b5
SICNAL p i 2
SET 1oc:
se permite paletel
SICNAI, -b6
;
sa se cleplaseze pe banda
END
. END
PROGRAM
cobra
LOCAL
GLOBAL
dol robotj. cu
deosebi rea
PARAMETER HAND.TfME
b7=1
cpg : 1002
bB=2
Pi3=3
s3:1003
nrpiese = 0
TO0TIMER 1:0
$a
GOTO 100
END
SIGNAL lo7
i{ArT
SIG (cpg)
SIGNAL bB
STGNAL
pi3
TIMER 1 :
'
SIGNAL -b7
IFnrpies.e<nTHEN
coro
100
END
,
END
. PROGRAM
vedere
()
cp10 =
b9=4
cplr :
b10:5
pi4-5
camera
cam:1
1004
1005
005
rez =
1001
OO
TTMEP 2 _ O
WAIT TII'IER \2)
\: l20 THEN
"E posibil ca paleta sa fie blocata pe traseu",
TF TIMER(2)
PROI.{PT
GOTO
$a
I OO
END
de inspectie
SIGNAL blO
SIGNAL
SIGNAL CaMeTa
coadaInrpa1] :
intr-o
coada
1
0
EI\D
;
SIGNAL -camera
,
se deblocheaza PaIeta
STCNAL -p i
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
GLOBAL coada
cp13:1009
cp14 -1010
b1
1:B
b 1 2-'9
L2-1
cu sistemul'de transfer
palete
SIGNAL b11
SIGNAL
SIGNAI, _t2
S]GNAL _b12
ELSE
-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
()
.
.
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
load belt_cal.v2
se executa programul
'r
.
a.belt cal
.oboi"
'
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
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
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.
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.
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.
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
o
.
.
(belt dist*X-dir-transf-nomin)
unde
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.
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
Offsetul encoderului
Ultima valoare
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.
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
DELAY 2
CLOSET
MOVES
. OO
focatie. fixa
fi
Incheierea miscarii
determina
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.
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
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
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
unde;
?be
Lt_1/ar
nom_trans
lle 1l_num
vel_a-:g
scale fact
fi
specificate 6
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
c.
1arNDo1lv:
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
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
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
Daca parametrul rnode eSt mai mic sau egal cu zero (valoare predefinita). valoarea returnata
este interpretata dupa culn urmeaza:
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 limita
.
>0
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
**]
torr.JDohl
creste intotdeauna
in
Informatii de stare
Urmatoarea functie indica starea curenta de operare al sistemului software de urmarire a benzii.
Problerna 11.4
- Urmarirea
obiectelor in rniscare
.,\Str{5
:,i
$r
\i
s"i
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
Solutie
l. Definirea
semnalelor de I/O.
I*r_"J.ry4
Tip Sem
!bi991
SI
RI
!:ry1v1!l gry:l{ Yl
s2,
RI
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
d1
Err.out.13
R2
R?
og
E'llllt
R2
!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
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
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.
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
; se activeaza
ENABLE BELT
switch-u1
BELT
DEEBELT erbl
DEEBELT %b2
i se definesc ferestrele
de
; limitele
WINDOW ?L.1 =
WINDOW esb2 =
d efucru cu benzile
invatate
SIGNAL err.int,
err.out.12,
etx 'out'13
WAIT sIG(err.in.
)
)
, 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
beft-2 .monit. 11 ( )
iProqramuf monitorizeaza banda 82 pentru robotul
. PROGRAM
R1
],OCAL 52
100
s2 = Ia02
IF SIG(s2) THEN
offsetb2 [indexb2] :
lndexb2:fnds)<l!+1
BELT (?b2)
robot.t
LOCAL ib
{)
]
; ib I rep-re:inta numaru-I de
cb
jecLe manipulate
ib1=0
MOVET
safe,1
BREAK
100
err. in.
;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
. PROGRAM
ELSE
TYPE
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
IF SIG(s3)
SIG(err.int, err.in'rl-,
err.in'r3)
THEN
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
. PROGRAM
robot2
.5
ib2:0
rb3=0
MOVET
safe, l
BREAK
err.in.11,
CLOSEI
DEPARTS 50
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{
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
()
; 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
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
s5 : 1001
100
IF
SIG
(S5) THE.N
offsetb3[indexb3] =
indexb3=in6is)&l+1
err.in.r1,
R3
err'in'12)
BELT (%b3)
END
. PROGRAM
robol3
LOCAL ib3
LOCAL asrs.
ib3=0
asrs. inc :
asrs.ack :
MOVET safe,
1004
I
BREAK
100
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
ELSE
SIGNAL
asrs.inc
L]O
END
. END
. PROGRAM
wi ndovr.
err
MOVES
safe
END