Sunteți pe pagina 1din 69

UNIVERSITATEA DIN ORADEA

FACULTATEA DE ELECTROTEHNICĂ ŞI INFORMATICĂ

BARABÁS TIBERIU

ROBOTICĂ
ROBOŢI INDUSTRIALI
ÎNDRUMAR DE LABORATOR

2005
UNIVERSITATEA DIN ORADEA
FACULTATEA DE ELECTROTEHNICĂ ŞI INFORMATICĂ

dr. ing. BARABÁS TIBERIU

ROBOTICĂ
ROBOŢI INDUSTRIALI

ÎNDRUMAR DE LABORATOR

2005
PREFAŢĂ

Prezentul îndrumar de laborator se adresează studenţilor Facultăţii de electrotehnică şi


informatică, de la specializarea Automatică care parcurg cursul de "Robotică", respectiv de la
specializarea Electromecanică care parcurg cursul de “Roboţi”.
Îndrumarul conţine 12 lucrări de laborator legate de comanda şi programarea robotului
industrial RV-M1 din cadrul laboratorului CIM. Prin aceste lucrări se urmăreşte familiarizarea
studenţilor cu structura, cu comanda manuală prin intermediul cutiei de instruire (Teach In
Box), respectiv cu comanda automată a robotului. În cadrul regimului de comandă automată
sunt studiate, prin intermediul unor aplicaţii concrete de programare, comanda punct cu punct
(P.T.P.), comanda multipunct, respectiv comanda pe traiectorie continuă. La fel sunt studiate
atât modalităţile de programare a traiectoriei prin metoda învăţării (teaching) cât şi prin
metoda de calcul.
În cadrul lucrărilor de laborator studenţii completează programele de comandă aferente
aplicaţiilor concrete, prezentate în acest îndrumar, după care se trece la verificarea acestora în
regim automat.
Deşi este a doua încercare de acest gen, îndrumarul prezintă probabil carenţe, ce pot fi
îndreptate în viitor cu sprijinul cititorilor de specialitate, cărora le mulţumesc de pe acum
pentru sugestii.

Autorul

3
CUPRINS

Lucrarea nr.1. Structura sistemului micro-robot RV-M1.................................................... 5


Lucrarea nr.2. Comanda manuală a robotului RV-M1 ....................................................... 11
Lucrarea nr.3. Programarea robotului RV-M1 pentru realizarea unei operaţii de ma-
nipulare ........................................................................................................ 15
Lucrarea nr.4. Programarea deplasării robotului RV-M1 pe Slide ..................................... 21
Lucrarea nr.5. Programarea robotului RV-M1 pentru servirea staţiei VISION 2000 ......... 26
Lucrarea nr.6. Programarea robotului RV-M1 pentru servirea staţiei NCL 2000 .............. 32
Lucrarea nr.7. Programarea robotului RV-M1 pentru realizarea unei operaţii de montaj .. 40
Lucrarea nr.8. Controlul pieselor cu robotul RV-M1 utilizând paletizarea bidimen-
sională.......................................................................................................... 46
Lucrarea nr.9. Comanda multipunct a robotului RV-M1.................................................... 54
Lucrarea nr.10. Comanda mişcărilor condiţionate la robotul RV-M1 .................................. 57
Lucrarea nr.11. Comanda robotului RV-M1 pe traiectorie continuă .................................... 60
Lucrarea nr.12. Dialogul între sistemul de comandă al robotului industrial şi operato-
rul uman....................................................................................................... 65

BIBLIOGRAFIE ................................................................................................................. 69

4
Lucrarea nr.1.

STRUCTURA SISTEMULUI MICRO-ROBOT RV-M1

I. Scopul lucrării

Prin această lucrare se urmăreşte familiarizarea studenţilor cu sistemul micro-robot


RV-M1. În cadrul lucrării se identifică părţile componente ale sistemului, se efectuează
studiul schemei cinematice a robotului, respectiv se prezintă funcţionarea sistemului în regim
automat după programul de comandă instalat, studenţii efectuând toate operaţiile de pregătire
a sistemului în vederea lansării acestui program.

II. Consideraţii teoretice

II.1. Structura sistemului micro-robot

Fig.1.1.
Sistemul micro-robot RV-M1 este format (fig.1.1.) din următoarele părţi componente:
un robot industrial, o Unitate de comandă (Drive Unit) prin care se realizează conducerea
nemijlocită a robotului, o cutie de instruire (Teach In Box) care se utilizează în comanda
manuală a sistemului şi pentru memorarea poziţiilor de pe traiectoria programată, respectiv un
calculator personal de tip PC utilizat numai în scopuri de programare. Programul scris pe cal-
culator este transferat şi rulat în memoria RAM a Unităţii de comandă, care este susţinută prin
intermediul unei baterii-acumulator. Pentru transfer de programe şi comenzi se utilizează
comunicaţia serială, după standardul RS232C.
Unitatea de comandă înglobează şi un inscriptor de eprom-uri. Astfel există posibilita-
tea "salvării" programului de comandă, precum şi a coordonatelor poziţiilor memorate, într-un
eprom de 32 Kocteţi. Conţinutul epromului poate fi transferat înapoi în memoria RAM, ori-
când, prin comenzile date de la cutia de instruire, sau prin macroinstrucţiunile specifice ale

5
Unităţii de comandă. După ce programul de comandă este pus la punct şi s-a realizat şi "me-
morarea" în eprom a programului, respectiv a poziţiilor utilizate, sistemul micro-robot poate fi
utilizat în regim de sistem autonom (sistem independent de calculator personal). În acest caz
lansarea, oprirea respectiv resetarea programului din memoria RAM se poate realiza prin in-
termediul butoanelor de comandă de pe panoul frontal al Unităţii de comandă (fig.1.2.).

Fig.1.2.
Pe când cu ajutorul butonului STOP se poate opri execuţia programului dar nu se poa-
te suspenda comanda care este în curs de execuţie, cu butonul EMG. STOP (Stop general) se
poate opri în ori ce moment execuţia programului (respectiv a comenzii date de la cutia de in-
struire). Ledul ERROR indică apariţia erorii în preluarea sau execuţia unei comenzi date, iar
ledul EXECUTE indică faptul că o comandă dată de la cutia de instruire (sau un program din
memorie) este în curs de execuţie.
Activarea regimului de sistem autonom se realizează cu ajutorul unui selector
(SWITCH) din interiorul carcasei Unităţii de comandă. În acest regim nu se pot da comenzi de
la calculatorul personal şi este imposibilă preluarea informaţiilor de la Unitatea de comandă
referitoare la poziţia robotului în spaţiu (poziţia punctului caracteristic). Având în vedere că
sistemul micro-robot din laborator este utilizat exclusiv în scopuri educaţionale (programarea
robotului cu ajutorul calculatorului, respectiv vizualizarea efectelor ale comenzilor date) acest
regim autonom este dezactivat. În această situaţie butonul de comandă START este inactiv,
iar lansarea programului se realizează de la calculator conform procedurii de la pct.II.5.
Schimbul de semnale între sistem şi echipamentul periferic (întrerupătoare, relee, le-
duri şi controlere programabile) sunt efectuate prin interfaţa I/O a Unităţii de comandă.
Cutia de instruire (Teach In Box) se utilizează pentru comanda manuală a robotului.
Prin ea pot fi realizate:
1. sincronizarea robotului (deplasarea axelor în originea lor mecanică);
2. memorarea poziţiilor ţintă şi via de pe traiectorie utilizând metoda "învăţării"
(teaching);
3. transferul programului (respectiv poziţiilor) din eprom în memoria RAM a Unită-
ţii de comandă;
4. înscrierea în eprom a programului existent (respectiv a poziţiilor existente) la un
anumit moment dat în memoria RAM a Unităţii de comandă;
5. rularea programului în regim pas cu pas (Step by Step).

Robotul de bază are 5 grade de mobilitate. Cuplele cinematice conducătoare (J1, J2,
J3, J4, J5 ) sunt de rotaţie (fig.1.3.), şi sunt realizate cu servomotoare de curent continuu.
Aceste servomotoare sunt echipate cu traductoare de poziţie a rotorului (encoder de poziţie).

6
Cu ajutorul acestor traductoare se realizează controlul poziţiei robotului la nivelul articulaţii-
lor.
Având informaţii despre poziţia momentană a cuplelor cinematice conducătoare şi cu-
noscând dimensiunile fizice ale articulaţiilor, se poate obţine în orice moment coordonata
punctului caracteristic (al obiectului manipulat) faţă de o poziţie de referinţă în sistemul de
coordonate carteziene. Algoritmul pentru calculul poziţiei punctului caracteristic, precum şi
funcţiile de conducere utilizate, cu ajutorul cărora se generează mişcările, sunt realizate şi fi-
xate de producător, şi constituie o parte din softul de bază al robotului.

Fig.1.3.
La acest sistem micro-robot mai este ataşată o axa suplimentară, numită Slide (ghidaj),
folosită pentru deplasarea robotului de-a lungul axei Y în sistemul de coordonate carteziene
(Vezi: lucrarea nr.2 ). "Poziţionarea" robotului pe Slide se realizează separat, cu ajutorul unui
controler de ax (KV24). Acest controler (automat programabil) primeşte comenzi, pentru po-
ziţionarea robotului într-unul din punctele învăţate (memorate) anterior, fie de la cutia de in-
struire a Slide-ului, fie de la Unitatea de comandă a robotului prin intermediul interfeţei I/O.
Antrenarea Slide-ului este realizată cu ajutorul unui servomotor de curent continuu prevăzut
cu un "encoder de poziţie". Senzorii de proximitate LS1 şi LS2 sunt utilizate pentru sincroni-
zarea iniţială a mişcării (LS1) respectiv ca limitatoare de cursă (LS1 şi LS2).
Robotului de bază i se poate ataşa diferite tipuri de mecanisme de prehensiune cu care
se realizează apucarea obiectelor (în continuare, pentru simplitate, vom numi acest mecanism
de prehensiune: SCULĂ sau GRIPPER).
Mişcarea de închidere şi deschidere a gripper-ului este realizată tot cu ajutorul unui
servomotor de curent continuu. Starea închisă sau deschisă a gripper-ului nu este confirmată,
dar se poate regla (din program) valoarea forţei de strângere (în trepte de la 0 la 9).

7
II.2. Schema cinematică a robotului de bază

Fig.1.5.

1. Reductor axă J5 12. Motor c.c. axă J2


2. Reductor axă J4 13. Curea dinţată
3. Curea dinţată 14. Frână axă J2
4. Motor c.c. axă J4 15. Ax de ieşire din reductor J2
5. Manivelă 16. Motor c.c. axă J5
6. Reductor axă J2 şi J3 17. Microlimitator axă J4
7. Microlimitator axă J3 18. Microlimitator axă J5
8. Ax de ieşire din reductor J3 19. Microlimitator axă J2
9. Frână axă J3 20. Reductor axă J1
10. Curea dinţată 21 Motor c.c. axă J1
11. Motor c.c. axă J3 22. Microlimitator axă J1

8
II.3. Caracteristicile generale ale robotului

1.Cursele şi vitezele maxime:


-axa J1 (rotirea corpului robotului)............................................. 300° (max. 120°/sec)
-axa J2 (rotirea umărului) ........................................................... 130° (max. 72°/sec)
-axa J3 (rotirea cotului)............................................................... 110° (max. 109°/sec)
-axa J4 (articulaţia de rostogolire) .............................................. 90° (max. 100°/sec)
-axa J5 (articulaţia de rotire)....................................................... 180° (max. 163°/sec)
2.Numărul treptelor de viteze ................................................................. 10
3.Viteza maximă de deplasare a punctului caracteristic......................... 1000 [mm/sec]
4.Greutatea maximă manipulată ............................................................. 600 [g]
5.Precizia de repetabilitate a poziţionării ............................................... 0,3 [mm]
6.Puterea servomotoarelor:
-pentru axele J1, J2, si J3............................................................ 30 [W]
-pentru Axele J4 si J5 ................................................................. 11 [W]
7.Numărul maxim de poziţii memorate.................................................. 629.

II.4. Sincronizarea robotului

După punerea sub tensiune, robotul trebuie readus în poziţia de origine mecanică în
vederea sincronizării axelor de rotaţie (în lipsa sincronizării, comenzile de deplasare la o po-
ziţie memorată, sau date prin coordonate, precum şi memorarea poziţiilor nu sunt efectuate).
Această sincronizare poate fi realizată fie utilizând în acest scop cutia de instruire, fie utili-
zând comenzi transmise de la calculatorul personal către Unitatea de comandă:
1. în cazul cutiei de instruire sincronizarea se realizează apăsând succesiv butoanele NST
şi ENT (Enter);
2. în cazul calculatorului personal se utilizează comanda NT (Nest) care se transferă în
memoria RAM a Unităţii de comandă unde este lansată şi executată imediat.

În ambele cazuri întâi se deplasează axele J2, J3, şi J4 spre originile lor, după care ur-
mează mişcarea axelor J1 şi J5.
Sincronizarea axelor se realizează cu ajutorul microîntrerupătoarelor (existente la nive-
lul fiecărei articulaţii) care sunt acţionate independent şi numai atunci când axa respectivă a
ajuns în originea sa mecanică. Simultan cu sincronizarea axelor are loc şi readucerea gripper-
ului în stare deschisă.

II.5. Procedura de lansare a programului instalat

1. Se pune sub tensiune calculatorul personal.


2. Se pune sub tensiune Unitatea de comandă.
3. Se activează cutia de instruire prin punerea selectorului în poziţia ON.
4. Se realizează sincronizarea robotului prin apăsarea butonului NST şi apoi ENT.

Observaţie:
În timpul execuţiei comenzii date de la cutia de instruire, ledul "EXECUTE" de pe pa-
noul frontal al Unităţii de comandă este aprins. Acesta indică faptul că comanda este în
curs de execuţie şi Unitatea de comandă nu este pregătită pentru preluarea altor co-
menzi. În consecinţă următoarea comandă se poate da numai după stingerea led-ului
amintit.

9
5. Se transferă programul de comandă din eprom în memoria RAM a Unităţii de comandă
prin apăsarea succesivă a butoanelor TRN şi ENT.
6. Lansarea programului se realizează utilizând comanda RN (Run) indicând şi numărul de
ordine al liniei de start din cadrul programului: RN 10. Pentru lansarea acestei comenzi
este necesar transferul acesteia de pe calculatorul personal în memoria RAM a Unităţii
de comandă.

Transferul se realizează cu ajutorul instrucţiunilor din limbajul Basic. În acest context


se prezintă un program minimal, prin care se poate realiza transferul amintit:

10 OPEN "COM1:9600,E,7,2" FOR RANDOM AS #1


20 PRINT #1, "RN 10"
30 END

În linia 10, cu ajutorul instrucţiunii OPEN, se deschide linia de comunicaţie serială


(portul de comunicaţie COM1) ori de câte ori în program apare semnul #1. Tot în această linie
se specifică caracteristicile transmisiei de date: viteza de transmisie 9600 Bauds; paritatea
Even (pară); numărul biţilor de date: 7; numărul biţilor de stop: 2. În linia 20 cu ajutorul in-
strucţiunii PRINT sunt transmise toate caracterele ASCII corespunzătoare comenzii. Instrucţi-
unea END din linia 30 indică sfârşitul programului.
Deci pentru lansarea programului din memoria Unităţii de comandă este necesară rea-
lizarea programului de mai sus. În continuare:

a). Se dezactivează cutia de instruire prin punerea selectorului în poziţia OFF.


b). Se lansează programul scris apăsând combinaţia de taste SHIFT + F5 de pe tastatura
calculatorului.

Observaţii:
1. Dacă programul este executat, adică s-a realizat transferul comenzii RN 10, pe monitorul
calculatorului apare mesajul "PRESS ANY KEY TO CONTINUE" iar robotul începe
mişcările corespunzătoare programului din memoria Unităţii de comandă.
2. În cazul în care nu apare mesajul amintit şi/sau robotul nu începe mişcările programate,
se verifică corectitudinea programului scris, respectiv legătura dintre calculator şi Unita-
tea de comandă.

III. Mersul lucrării

1. Se identifică componentele sistemului micro-robot RV-M1.


2. Se studiază schema cinematică a robotului de bază.
3. Se efectuează lansarea programului instalat conform procedurii de la pct. II.5.
4. Se studiază funcţionarea sistemului micro-robot RV-M1 în regim automat.

IV. Conţinutul referatului

1. Descrierea structurii sistemului micro-robot RV-M1.


2. Descrierea schemei cinematice a robotului de bază.
3. Procedura de lansare a programului instalat.

10
Lucrarea nr.2.

COMANDA MANUALĂ A ROBOTULUI RV-M1

I. Scopul lucrării

Lucrarea are ca obiectiv familiarizarea studenţilor cu comanda manuală a robotului


RV-M1, utilizând în acest scop cutia de instruire. În lucrare sunt prezentate modalităţile de co-
mandă manuală a mişcărilor în sistemul de coordonate "robot", în sistemul de coordonate car-
teziene respectiv în sistemul de coordonate legat de gripper.

II. Consideraţii teoretice

Comanda manuală a robotului RV-M1 se poate realiza


cu ajutorul cutiei de instruire (Teach In Box) prin intermediul
căreia operatorul uman transmite comenzi de deplasare (res-
pectiv de memorare a poziţiei) către Unitatea de comandă. Tot
cu ajutorul cutiei de instruire se poate realiza sincronizarea ro-
botului, respectiv se poate controla starea închisă sau deschisă
a gripper-ului.
În fig.2.1. este prezentată cutia de instruire a robotului
care este conectată la Unitatea de comandă a robotului printr-
un cablu cu lungime de 3 [m]. Astfel apare posibilitatea efec-
tuării unor comenzi la o distanţă optimă de la obiectul manipu-
lat. Activarea tastelor (cheilor) se realizează prin punerea în
poziţia ON a selectorului din partea superioară a cutiei de in-
struire. Lângă acest selector se află un buton de STOP
GENERAL (Emergency Stop) care se apasă numai în caz de
avarie sau în cazul prevenirii unei posibile ciocniri cu restul
obiectelor din mediu (cazul unei programări sau comenzi ero-
nate). Acest buton de stop general este activ permanent, indife-
rent de poziţia selectorului amintit.
Atunci când comenzile sunt date de la calculatorul per-
sonal sau se rulează un program în regim automat, selectorul
trebuie să fie în poziţia OFF.

II.1. Funcţiile cheilor de pe cutia de instruire

PTP selectează operaţia de mişcare articulată (în sistemul de coordonate robot). Dacă s-a
apăsat acest buton, operaţia cu oricare "cheie de mişcare" (B+, B-, S+ ,S- ,E+ ,E- ,P+
,P- ,R+ ,R-) implică o mişcare de rotaţie (în jurul axelor J1, J2, J3, J4, sau J5) în sensul
specificat de semnul "+" sau "-" (fig.2.2.). Mişcarea are loc numai în timpul apăsării
cheilor şi numai până la atingerea microîntrerupătorului de capăt de cursă. Când se
activează cutia de instruire prin punerea selectorului pe ON este selectat automat acest
"regim" PTP.

11
Fig.2.2.
XYZ selectează operaţia de mişcare paralelă cu axele sistemului de coordonate cartezian şi
invalidează regimul PTP şi TOOL. Dacă s-a apăsat acest buton, vârful sculei (punctul
caracteristic) se va putea mişca paralel cu axele sistemului cartezian după direcţiile
X+, X-, Y+, Y-, Z+, Z- prin mişcarea simultană a mai multor axe (J1, J2, J3, J4, J5).
Totodată rămân active cheile P+, P-, R+, R- prin care se realizează mişcarea de rosto-
golire (P) respectiv de rotaţie (R) a obiectului manipulat.

Originea sistemului de referinţă cartezian este fixată la baza robotului. Conform figurii
2.3. axa Z corespunde cu deplasarea pe verticală a punctului caracteristic; axa Y este paralelă
iar axa X este perpendiculară pe Slide.

Fig.2.3.

12
Fig.2.4.
TOOL Selectează operaţia de mişcare în sistemul de referinţă legat de "sculă" (gripper)
şi invalidează regimurile PTP şi XYZ. În acest regim este posibilă o mişcare de
avansare şi de retragere a gripper-ului de-a lungul direcţiei momentane a axei
sculei (fig.2.4.). Sunt active cheile: Z+ şi Z-. Mişcarea are loc (în timpul apăsă-
rii cheii Z+ sau Z-) până când punctul caracteristic poate fi menţinut pe dreapta
definită de axa sculei.

NST+ENT Comandă pentru reîntoarcerea robotului în poziţia de origine mecanică în vede-


rea sincronizării axelor.

ORG+ENT Comandă pentru mişcarea robotului în poziţia de referinţă a sistemului de co-


ordonate carteziene.

Poziţia de referinţă corespunde cu poziţia "0" a robotului, faţă de care sunt calculate
coordonatele carteziene ale poziţiilor 1..629. Fixarea acestei poziţii este realizată la punerea în
funcţiune a robotului de către pro-
ducător, luând în considerare şi lungi-
mea sculei (TL=107 mm).
În figura 2.5. este exemplificat
modul de definire a poziţiei de referinţă
(axele de rotaţie J2, J3, J4, J5 se găsesc
pe o dreaptă paralelă cu baza robotului
respectiv cu axa Y a sistemului de refe-
rinţă cartezian).

O (Open) Comandă pentru deschiderea gripper-ului (eliberarea obiectului).

C (Close) Comandă pentru închiderea gripper-ului (apucarea piesei).

13
INC+ENT Comandă pentru mişcarea robotului într-o poziţie memorată, având număr de
ordine mai mare şi totodată cel mai apropiat de cel al poziţiei curente.

DEC+ENT Comandă pentru mişcarea robotului într-o poziţie memorată, având număr de
ordine mai mic şi totodată cel mai apropiat de cel al poziţiei curente.

TRN+ENT Comandă pentru transferul conţinutului epromului utilizat (programul de co-


mandă şi datele poziţiilor memorate) în memoria RAM a Unităţii de comandă.

WRT+ENT Comandă pentru înscrierea programului de comandă şi a datelor poziţiilor


memorate (aflate în memoria Unităţii de comandă) în eprom.

PS+număr+ENT Memorează coordonatele punctului curent din spaţiu, ataşându-i un


număr de ordine. Dacă la două poziţii diferite se ataşează un singur
număr, ultima definită are prioritate.

PC+număr+ENT Elimină din memorie datele poziţiei cu numărul specificat.

MOV+număr+ENT Comandă pentru mişcarea robotului (a punctului caracteristic) într-o


poziţie specificată. Mişcarea are loc dacă poziţia specificată prin "nu-
măr" a fost memorată anterior.

STEP+număr+ENT Comandă pentru execuţia programului în regim pas cu pas, începând


cu linia indicată prin "număr".

III. Mersul lucrării

1. Se pune sub tensiune Unitatea de comandă.


2. Se activează cutia de instruire a robotului prin punerea selectorului pe ON.
3. Se realizează sincronizarea robotului cu ajutorul butoanelor NST şi ENT.
4. Se studiază cu ajutorul cutiei de instruire mişcarea robotului în:
4.1. Sistemul de coordonate robot;
4.2. Sistemul de coordonate carteziene;
4.3. Sistemul de coordonate legat de sculă (gripper).
5. Se încearcă comanda manipulării diferitelor piese (cilindrice) şi prismatice utilizând cu-
tia de instruire a robotului.

IV. Conţinutul referatului

1. Schema şi descrierea cutiei de instruire a robotului.


2. Definirea mişcărilor în cele trei sisteme de coordonate.
3. Descrierea cheilor de pe cutia de instruire a robotului.

14
Lucrarea nr.3.

PROGRAMAREA ROBOTULUI RV-M1


PENTRU REALIZAREA UNEI OPERAŢII DE MANIPULARE

I. Scopul lucrării

Lucrarea urmăreşte familiarizarea cu etapele de realizare ale programelor de tip punct


cu punct (P.T.P. - Point To Point) utilizând metoda învăţării (teach in). În cadrul aplicaţiei se
studiază un program de comandă pentru efectuarea unei operaţii de manipulare, parcurgând
toate etapele: de la memorarea poziţiilor ţintă (şi via) de pe traiectorie (prin intermediul cutiei
de instruire), până la verificarea programului în regim automat şi pas cu pas.

II. Consideraţii teoretice

Conducerea automată a roboţilor industriali impune executarea unor operaţii a căror


caracteristici şi succesiune au fost stabilite sub forma unui program.
Programul conţine un set de informaţii codificate (macroinstrucţiuni) cu privire la
operaţiile, care urmează a fi executate de robot. Informaţiile se referă la valorile succesive ale
parametrilor poziţionali, ale vitezei liniare/unghiulare relative ale elementelor cuplelor
cinematice conducătoare, timpii de repaus relativ al acestor elemente, dispoziţii pentru
mişcarea sistemului mecanic, interogarea datelor memorate sau a celor indicate de traductoare
şi senzori, legături logice între secvenţe, temporizări, aşteptări, salturi etc. După modul de
lucru al robotului, programul poate fi secvenţial, punct cu punct, comandă multipunct sau
comandă pe traiectorie continuă.
În cazul programului punct cu punct (P.T.P.) singura condiţie impusă este ca
traiectoria să nu fie una de coliziune. Mişcările încep, au loc şi se termină simultan pe fiecare
axă. Sunt date şi controlate numai punctul de "start" şi punctul "ţintă". Între aceste două
puncte, traiectoria nu este controlată şi poate să fie una oarecare.
În cazul programelor punct cu punct, stabilirea traiectoriei se realizează prin definirea
punctului de start, de ţintă, şi a unui număr minim de puncte "via", prin care punctul
caracteristic este obligat să treacă în vederea evitării coliziunilor cu restul "obiectelor" din
mediu. Între două puncte "via" consecutive, traiectoria nu este controlată (punctul caracteristic
nu se deplasează de-a lungul dreptei definite de cele două puncte via consecutive). Definirea
punctelor se poate realiza prin două metode:
1. metoda de programare prin învăţare;
2. metoda de programare prin calcul.

În cazul metodei de programare prin calcul punctele "caracteristice" ale traiectoriei


sunt definite prin indicarea coordonatelor lor absolute (sau relative), calculate din poziţia şi
orientarea obiectului manipulat, în sistemul de coordonate carteziene sau în coordonate c.c.c.
În cazul metodei de programare prin învăţare (teach in) punctul caracteristic este de-
plasat în poziţia dorită cu ajutorul cutiei de instruire, iar "coordonatele" poziţiei sunt memora-
te (fără a fi afişate) utilizând (în cazul robotului RV-M1) tasta PS respectiv indicând numărul
de ordine al poziţiei (1..629). În acest caz la realizarea programului se va folosi numai "simbo-
lul" (numărul de ordine) poziţiei memorate, fără a se specifica coordonatele carteziene cores-
punzătoare acestor poziţii. O poziţie odată memorată rămâne în memoria RAM a Unităţii de

15
comandă a robotului (memorie susţinută de o baterie-acumulator) până la ştergere cu tasta PC
sau până la memorarea unei alte poziţii dar cu acelaşi număr de ordine. Odată cu memorarea
poziţiei se memorează şi starea (închisă sau deschisă) a gripper-ului.
Cu ajutorul cutiei de instruire, punctul caracteristic se poate deplasa în toate poziţiile
memorate utilizând tasta MOV specificând şi numărul de ordine al poziţiei. La fel se poate
utiliza tastele INC şi DEC cu ajutorul cărora se poate deplasa robotul în poziţia memorată care
are număr de ordine mai mare (INC - incrementare) sau mai mic (DEC - decrementare) decât
cel al poziţiei actuale.

II.1. Etapele de realizare ale unui program de tip punct cu punct

La realizarea programelor de tip punct cu punct în general sunt parcurse următoarele


etape:

II.1.1. Stabilirea traiectoriilor

Traiectoria se stabileşte prin definirea punctelor de start, de ţintă şi a unui număr mi-
nim de puncte "via" prin care punctul caracteristic este obligat să treacă în vederea evitării co-
liziunilor cu restul "obiectelor" din mediu. Se stabilesc numerele de ordine pentru fiecare po-
ziţie de pe traiectorie, respectiv stările închise sau deschise ale gripper-ului în aceste poziţii.
Trebuie avut în vedere că în general prima mişcare a robotului după sincronizare se fa-
ce într-o poziţie de "aşteptare", care coincide cu poziţia de "start", respectiv (după parcurgerea
traiectoriei programate) cu poziţia "finală".

II.1.2. Stabilirea succesiunii mişcărilor

La stabilirea succesiunii mişcărilor se are în vedere operaţia de manipulare care trebuie


executată.
De exemplu: după sincronizare robotul este deplasat în poziţia nr.1 (poziţie de start),
după care are loc o deplasare în poziţia nr. 2, unde se realizează apucarea piesei, apoi urmează
o deplasare în poziţia ţintă (poziţia nr.5) cu trecerea prin poziţiile via nr.3, şi 4. În poziţia nr. 5
piesa este eliberată (gripper deschis) după care robotul este readus în poziţia nr.1 de aşteptare
(aceeaşi cu poziţia de start). Astfel apare posibilitatea reluării ciclului.
Deci rezultă următoarea succesiune a mişcărilor: 1, 2, 3, 4, 5, 1. De această succesiune
se va ţine cont la realizarea programului.

II.1.3. Memorarea si verificarea poziţiilor

Memorarea poziţiilor se face cu ajutorul cutiei de instruire, ţinând cont şi de starea


gripper-ului în aceste poziţii. După memorarea poziţiilor se face verificarea acestora, prin de-
plasarea succesivă a robotului în aceste poziţii memorate. Dacă ele sunt corect memorate, res-
pectiv în timpul mişcărilor nu apar coliziuni se trece la realizarea programului, în caz contrar
se repetă memorarea.

II.1.4. Realizarea programului

Programul se scrie cu ajutorul calculatorului personal utilizând un editor de texte (de


exemplu editorul din Qbasic). Programul conţine o serie de instrucţiuni de control/deplasare,
instrucţiuni de control gripper, temporizări, control program etc. Succesiunea mişcărilor şi

16
operaţiilor sunt date de succesiunea executării acestor instrucţiuni. În cadrul programului fie-
care linie este numerotată. Aceasta permite utilizarea instrucţiunilor de tip salt condiţionat şi
de tip salt necondiţionat. Dacă în program nu sunt instrucţiuni de tip salt condiţionat sau salt
necondiţionat, executarea instrucţiunilor se face în succesiunea în care apar în cadrul progra-
mului. În cazul utilizării instrucţiunilor de salt condiţionat (sau salt necondiţionat), succesiu-
nea operaţiilor depind şi de execuţia acestor instrucţiuni.
Se recomandă ca numerotarea liniilor din program să se facă din 5 în 5 sau din 10 în
10. Astfel apare posibilitatea intercalării ulterioare, între două linii consecutive, a unui număr
limitat de fraze.

II.1.5. Transferul programului în memoria Unităţii de comandă

Transferul programului din memoria calculatorului personal în memoria Unităţii de


comandă se poate realiza frază cu frază de exemplu cu ajutorul instrucţiunii PRINT din limba-
jul Qbasic:

10 OPEN "COM1:9600,E,7,2" FOR RANDOM AS #1


20 PRINT #1, "10 MO 1, C"
30 PRINT #1, "15 MO 2, C"
.
.
110 PRINT #1, "80 ED"
120 END

În linia 10, cu ajutorul instrucţiunii OPEN, se deschide linia de comunicaţie serială


(portul de comunicaţie COM1) ori de câte ori în program apare semnul #1. Tot în această linie
se specifică caracteristicile transmisiei de date: viteza de transmisie 9600 Bauds; paritatea
Even (pară); numărul biţilor de date:7; numărul biţilor de stop:2. În linia 20 cu ajutorul in-
strucţiunii PRINT este transmisă linia 10 din programul robotului. În memoria Unităţii de co-
mandă vor fi înmagazinate liniile de program 10, 15, ... , 80. Ultima instrucţiune este cea de
sfârşit program "robot" ED. Programul "qbasic" se termină cu instrucţiunea END din linia
120.

În timpul transferului, programul este verificat de Unitatea de comandă d.p.d.v. sintac-


tic, iar eventualele greşeli de sintaxă sunt semnalizate cu aprinderea ledului ERROR de pe pa-
noul frontal al Unităţii de comandă, respectiv prin intermediul unui semnal sonor. În acest caz
programul nu rămâne memorat şi deci după corectarea ei transferul trebuie repetat.

II.1.6. Verificarea programului în regim pas cu pas

Înaintea lansării în execuţie, programul se verifică în regim pas cu pas (frază cu frază),
adică se lansează şi se verifică execuţia separată a fiecărei fraze, utilizând în acest scop cutia
de instruire.
Se începe cu prima linie din program. Se apasă tasta STEP după care se tastează nu-
mărul liniei (10) şi se confirmă cu tasta ENT. După execuţia liniei tastate, pe afişorul cutiei de
instruire apare numărul de ordine al frazei (liniei) următoare din program (în cazul programu-
lui de mai sus: 15). Astfel pentru lansarea în execuţie a frazei următoare este suficient apăsa-
rea succesivă a tastelor STEP şi ENT. După ultima frază executată a programului, pe dispozi-
tivul de afişare va apărea numărul "0" (sfârşit program).

17
Astfel se verifică atât fiecare frază cât şi succesiunea corectă a instrucţiunilor şi a fra-
zelor din program. Însă nu se poate verifica temporizările existente în cadrul programului.

II.1.7. Lansarea programului în regim automat

Lansarea în execuţie a programului se face prin transferul de la calculator personal că-


tre Unitatea de comandă a unei instrucţiuni de start "RN linie", (în cazul nostru RN 10).
Având în vedere că această instrucţiune nu este precedată de un număr (care se utilizează pen-
tru numărătoarea liniilor din program), este considerată ca şi o instrucţiune de comandă şi este
executată imediat. Exemplu de program:

10 OPEN "COM1:9600,E,7,2" FOR RANDOM AS #1


20 PRINT #1, "RN 10"
30 END

II.1.8. Verificarea programului în regim automat

După lansarea programului în regim automat se urmăreşte realizarea tuturor mişcărilor


şi operaţiilor impuse (programate). Se verifică durata corectă a temporizărilor introduse. La
nevoie se corectează programul.

II.2.Principalele instrucţiuni utilizate la realizarea programelor de tip punct cu


punct

MO (Move) Determină deplasarea punctului caracteristic în poziţia specificată prin nu-


măr. Se poate specifica şi starea gripper-ului (închis/deschis) indiferent de
starea acestuia în momentul memorării poziţiei.
Formatul instrucţiunii:

MO <număr poziţie>, [<stare gripper>]

unde: 1 ≤ număr poziţie ≤ 629


stare gripper= O (Open - deschis) sau C (Close - închis).

Această instrucţiune va fi executată numai dacă poziţia specificată a fost memorată an-
terior. În caz contrar apare eroare şi programul nu va fi executat.

GO (Gripper Open) Determină deschiderea gripper-ului.


Formatul instrucţiunii:
GO

Instrucţiunea va fi executată (fără să apară eroare) chiar dacă gripper-ul este deschis
înaintea lansării acestei comenzi. Deschiderea gripper-ului nu este controlată şi în consecinţă
se recomandă utilizarea acestei instrucţiuni împreună cu o instrucţiune de temporizare. Durata
minimă recomandată a temporizării este de 0.7[s].

GC (Gripper Close) Determină închiderea gripper-ului.

18
Formatul instrucţiunii:
GC

TI (Timer) Determină o temporizare în timpul rulării programului.


Formatul instrucţiunii:
TI <număr>

unde: 1 ≤ număr ≤ 32767


Durata temporizării = număr * 0.1 [s].

GT (Go To) Determină un salt necondiţionat la linia specificată din program.


Formatul instrucţiunii:
GT <număr linie>

unde 1 ≤ număr linie ≤ 2048.

II.3. Descrierea aplicaţiei

Se consideră o aplicaţie în care cu robotul RV-M1 se execută în mod automat operaţia


de manipulare a unei piese prismatice (preluarea de pe suprafaţa “A” şi aşezarea ei pe suprafa-
ţa “B”) conform fig.3.1. În timpul manipulării punctul caracteristic al piesei se deplasează din
poziţia 3 în poziţia 6 prin intermediul poziţiilor “via” 2, 4 şi 5. Se consideră că aceste poziţii
via sunt necesare în vederea evitării coliziunilor cu restul obiectelor din spaţiu.

Fig.3.1.
După sincronizare, gripper-ul este deplasat în poziţia 1 (de aşteptare). După aşezarea
piesei în poziţia 6, gripper-ul se întoarce în poziţia 1, trecând prin poziţiile 5 şi 7, necesare
pentru evitarea coliziunii cu suprafaţa de aşezare “B”.

III. Mersul lucrării

1. Pentru aplicaţia de mai sus se parcurg toate etapele aferente paragrafelor II.1.1 - II.1.8..
2. Se completează următorul program de comandă:

19
'*******PROGRAM DE COMANDĂ OPERAŢIE DE MANIPULARE********
'
10 OPEN "COM1:9600,E,7,2" FOR RANDOM AS #1
20 PRINT #1, "10 " 'deplasare în poz1 cu gripper-ul închis
30 PRINT #1, "15 "
40 PRINT #1, "20 " 'deplasare în poz3 cu gripper-ul deschis
50 PRINT #1, "25 " 'închidere gripper
60 PRINT #1, "30 " 'temporizare
70 PRINT #1, "35 "
80 PRINT #1, "40 "
90 PRINT #1, "45 "
100 PRINT #1, "50 "
110 PRINT #1, "55 " 'deschidere gripper
120 PRINT #1, "60 "
130 PRINT #1, "65 "
140 PRINT #1, "70 "
150 PRINT #1, "75 " 'revenire în poziţia de start
160 PRINT #1, "80 ED" 'sfârşit program robot
170 END 'sfârşit program BASIC

3. Se transferă programul de comandă în memoria Unităţii de comandă.


4. Se studiază funcţionarea programului în regim pas cu pas respectiv în regim automat.
5. Se optimizează programul din punct de vedere al temporizărilor necesare.

IV. Conţinutul referatului

1. Descrierea metodei învăţării (memorării) poziţiilor punctului caracteristic.


2. Descrierea instrucţiunilor prezentate în paragraful II.2.
3. Etapele de realizare ale programului conform paragrafului II.1.1 - II.1.8.
4. Programul de comandă sub formă comentată.

20
Lucrarea nr.4.

PROGRAMAREA DEPLASĂRII ROBOTULUI RV-M1 PE SLIDE

I. Scopul aplicaţiei

Aplicaţia are ca obiectiv familiarizarea cu programarea deplasării robotului RV-M1 pe


sistemul de transport Slide, (fig.4.1.). În cadrul aplicaţiei se realizează atât memorarea poziţii-
lor, prin intermediul cutiei de instruire, cât şi realizarea unui program de comandă pentru de-
plasarea în câteva poziţii memorate.

II. Consideraţii teoretice

Fig.4.1. Robotul RV-M1 montat pe sistemul de transport SLIDE


Din punctul de vedere al conducerii nemijlocite, ghidajul (Slide-ul) este o parte
independentă de robotul de bază, comanda lui fiind realizată separat, prin intermediul unui
automat programabil KV24. Acest “controler" primeşte (de la Unitatea de comandă a
robotului sau de la cutia de instruire) comenzi referitoare la deplasarea robotului pe Slide într-
una din poziţiile memorate.

II.1. Comanda deplasării de la cutia de instruire

Cutia de instruire din figura 4.2. permite comanda manuală a deplasărilor robotului de-
a lungul Slide-ului. Cu această cutie de instruire se pot transmite comenzi de deplasare şi de
memorare a poziţiei către controlerul Slide-ului. Activarea cutiei de instruire se realizează prin
punerea selectorului în poziţia MAN (manual). Selectarea acestui regim este indicată de ledul
din partea superioară a cutiei. Cu ajutorul butoanelor LEFT (stânga) şi RIGHT (dreapta) este
posibilă deplasarea robotului în orice poziţie dintre cele două limitatoare de cursă (LS1 şi
LS2). Limitatorul de cursă LS1 este utilizat şi pentru sincronizarea Slide-ului, poziţia de
sincronizare corespunzând poziţiei "0".

21
Memorarea unei poziţii se realizează prin
apăsarea butonului ENTER, dacă în prealabil s-a se-
lectat numărul poziţiei cu "selectorul de poziţii"
(Point Selector). Numărul maxim de poziţii memora-
te este 23=8.
Deplasarea robotului pe Slide într-una din
poziţiile memorate, se realizează prin selectarea nu-
mărului corespunzător poziţiei cu ajutorul selectoru-
lui de poziţii, după care se apasă butonul "Move to
selected point" (până când robotul ajunge în poziţia
programată). Atât deplasarea la o anumită poziţie
memorată cât şi memorarea poziţiilor este posibilă
numai după ce s-a realizat sincronizarea Slide-ului.
Această sincronizare se realizează fie prin apăsarea
butonului de comandă RIGHT până când baza robo-
tului ajunge în dreptul senzorului LS1, fie prin co-
manda de deplasare a robotului în poziţia "0" de pe
Slide.

II.2.Comanda deplasărilor de la Unitatea de comandă a robotului RV-M1

Comanda deplasărilor de la Unitatea de comandă a robotului RV-M1 se realizează prin


intermediul semnalelor discrete existente între interfaţa I/O a Unităţii de comandă şi controler-
ul Slide-ului. Conform figurii 4.3. adresa de poziţionare se specifică pe 3 biţi utilizând 3 sem-
nale discrete.
Nivelele logice (0 sau 1) ale semnalelor respective formează un cod binar care repre-
zintă numărul poziţiei în care se doreşte deplasarea robotului pe Slide.

Fig.4.3.
După specificarea poziţiei este necesară transmiterea de la Unitatea de comandă a unei
"cereri de poziţionare" care este echivalentă cu comanda: "start deplasare în poziţia specifica-
tă". Sfârşitul deplasării este confirmat de către controler-ul Slide-ului prin semnalul "Slide în
poziţie".

Observaţii:
1. Semnalul "Slide în poziţie" indică situarea robotului pe Slide în poziţia specificată prin
adresa de poziţionare.
2. Dacă se doreşte efectuarea unei noi deplasări într-o altă poziţie memorată, se specifică o
nouă adresă de poziţionare. Însă înaintea începerii mişcării, semnalul de "Slide în poziţie"
încă este activ, deoarece indică situarea robotului în poziţia curentă (în fosta poziţie pro-
gramată). Acest semnal devine 0 logic numai după ce robotul se îndepărtează fizic din

22
această poziţie (adică începe o nouă deplasare). Ca urmare atingerea poziţiei programate
este confirmată la o tranziţie a semnalului "Slide în poziţie" de la 0 logic la 1 logic.
3. La atingerea poziţiei programate se recomandă "anularea" cererii de poziţionare, întrucât
doar în această stare este posibilă specificarea unei noi adrese de poziţionare.

În tabelul următor este indicată lista intrărilor şi ieşirilor numerice (ale Unităţii de co-
mandă) utilizate la comanda deplasării robotului pe Slide:

Nr. INTRĂRI IEŞIRI


7 Slide în poziţie -
8 - Bitul "0" al adr. de poziţionare Slide
9 - Bitul "1" al adr. de poziţionare Slide
10 - Bitul "2" al adr. de poziţionare Slide
11 - Cerere de poziţionare Slide

Pentru efectuarea unei deplasări într-una din poziţiile memorate este necesară realiza-
rea unui program de comandă pentru robotul RV-M1, cu ajutorul căruia se realizează progra-
marea stării ieşirilor numerice corespunzătoare şi supravegherea intrării numerice 7.
Pentru programarea stării ieşirilor numerice şi citirea stării intrărilor numerice se pot
utiliza următoarele instrucţiuni:

ID (Input Direct) Este o instrucţiune de citire a stărilor tuturor celor 16 intrări numerice.
Valoarea formată din stările logice (0 sau 1) ale celor 16 intrări, este în-
cărcată într-un registru intern de comparare.

Formatul instrucţiunii:
ID
Conţinutul registrului intern de comparare este folosit de instrucţiunea TB (Test Bit).

TB (Test Bit) Este o instrucţiune de salt, condiţionat de starea "bitului" (starea intrării)
specificat. Dacă condiţia nu este îndeplinită, se continuă execuţia progra-
mului cu linia următoare.

Formatul instrucţiunii:
TB <+ sau - > <număr intrare numerică>, <număr linie>
unde: "+" reprezintă nivelul logic "1"
"-" reprezintă nivelul logic "0"

OB (Output Bit) Este o instrucţiune prin care se realizează setarea stării logice (0 sau 1) a
ieşirii numerice specificată. Stările celorlalte ieşiri numerice rămân
neschimbate.
Formatul instrucţiunii:
OB <+ sau - > <număr ieşire numerică>
unde: “+” semnifică nivelul logic “1”
“-“ semnifică nivelul logic “0”
0 ≤ număr ieşire numerică ≤ 15.

23
În cadrul programului, numărul poziţiei în care vrem să deplasăm robotul pe Slide se
specifică în cod binar, utilizând ieşirile numerice 8, 9 si 10. De exemplu: dacă se doreşte de-
plasarea robotului în poziţia “5” de pe Slide, poziţionăm ieşirile 8 şi 10 la nivel logic 1, iar ie-
şirea 9 la nivel logic 0. Deplasarea în poziţia specificată se lansează prin poziţionarea ieşirii
11 la nivelul logic “1” (cerere de poziţionare pe Slide). Când robotul a ajuns în poziţia specifi-
cată, controler-ul Slide-ului poziţionează la nivelul logic “1” intrarea numerică nr.7. a Unităţii
de comandă. Înaintea lansării unei noi deplasări pe Slide este nevoie de anularea cererii de po-
ziţionare (ieşirea 11 se poziţionează la nivelul logic “0”).

Fig.4.4. Fig.4.5.
Schema logică a programului este prezentată în figura 4.4. Se poate observa faptul că
conţinutul blocurilor 2, 3, 4, 5, 6, 7 nu depind de codul binar al adresei de poziţionare. Din
această cauză, dacă în cadrul unui program se doreşte efectuarea a mai multor deplasări la po-
ziţii diferite, e mai convenabilă realizarea (pe baza blocurilor amintite) a unei "subrutine de
deplasare". Această subrutină poate fi apelată ori de câte ori va fi necesară o deplasare la o
poziţie specificată printr-o adresă de poziţionare.
Apelarea subrutinei se poate realiza prin instrucţiunea: GS (Go Subrutine). Această
instrucţiune determină un salt necondiţionat la linia de start a unei subrutine. Revenirea din
subrutină se va face cu ajutorul instrucţiunii RT. Formatul instrucţiunii:
GS <număr linie>

RT (Return) Determină revenirea din subrutina apelată cu instrucţiunea GS.


Formatul instrucţiunii:
RT

Instrucţiunea va fi executată numai dacă în prealabil a fost executată o instrucţiune de


apel subrutină GS şi până la execuţia comenzii RT nu s-a realizat revenirea din acea subrutină.
Din interiorul unei subrutine se poate apela şi alte subrutine cu condiţia ca fiecare subrutină să
se termine cu macroinstrucţiunea RT.

24
În figura 4.5. s-a reprezentat schema logică a unui program în care se efectuează mai
multe deplasări pe Slide. Se poate observa faptul că blocul de definiţie a subrutinei este aşezat
la sfârşitul programului "principal" adică după instrucţiunea ED. Când în cadrul programului
s-a ajuns la linia care conţine instrucţiunea ED execuţia programului este suspendată. Astfel
se poate preîntâmpina execuţia suplimentară şi nedorită a subrutinei la terminarea programu-
lui.

III. Mersul lucrării

1. Se consideră o aplicaţie în care robotul RV-M1 se deplasează pe Slide întâi în poziţia de


sincronizare "0", apoi în poziţiile "1" şi "5", memorate cu ajutorul cutie de instruire.
2. Se completează următorul program de comandă:

'**********PROGRAM DE COMANDĂ DEPLASARE PE SLIDE***********


'
10 OPEN "COM1:9600,E,7,2" FOR RANDOM AS #1
20 PRINT #1, "10 " 'slide 0
30 PRINT #1, "15 "
40 PRINT #1, "20 "
50 PRINT #1, "25 " 'apel subrutină de deplasare
60 PRINT #1, "30 " 'slide 1
70 PRINT #1, "35 "
80 PRINT #1, "40 "
90 PRINT #1, "45 " 'apel subrutină de deplasare
100 PRINT #1, "50 " 'slide 5
110 PRINT #1, "55 "
120 PRINT #1, "60 "
130 PRINT #1, "65 " 'apel subrutină de deplasare
140 PRINT #1, "70 ED" 'sfârşit program principal
'
'********SUBRUTINA SLIDE*********
'
2000 PRINT #1, "2000 OB +11" 'cerere de poziţionare
2010 PRINT #1, "2005 " 'aşteptare început deplasare
2020 PRINT #1, "2010 " 'citire intrări numerice
2030 PRINT #1, "2015 " 'slide in poziţie ?
2040 PRINT #1, "2020 " 'dacă nu atunci aşteaptă
2050 PRINT #1, "2025 " 'dacă da atunci anulare cerere
2060 PRINT #1, "2030 " 'temporizare înainte de o nouă cerere
2070 PRINT #1, "2035 RT" 'revenire din subrutină
2080 END 'sfârşit program BASIC

3. Se transferă programul de comandă în memoria Unităţii de comandă.


4. Se studiază funcţionarea programului în regim automat.

IV. Conţinutul referatului

1. Descrierea cutiei de instruire a Slide-ului. Modalităţi de comandă manuală.


2. Descrierea comenzii deplasărilor de la Unitatea de comandă a robotului.
3. Programul de comandă sub formă comentată.

25
Lucrarea nr.5.

PROGRAMAREA ROBOTULUI RV-M1


PENTRU SERVIREA STAŢIEI VISION 2000

I. Scopul lucrării

Lucrarea are ca obiectiv familiarizarea cu modul de concepere, realizare şi optimizare


a programelor de comandă de tip punct cu punct. Ca aplicaţie se studiază robotizarea operaţii-
lor de control dimensional, utilizând în acest scop staţia VISION 2000, respectiv robotul RV-
M1.

II. Consideraţii teoretice

VISION 2000 este o staţie destinată controlului dimensional al pieselor prelucrate.


Acest control dimensional se realizează prin compararea imaginii piesei controlate (preluată
cu o cameră CCD) cu imaginea "memorată" a unei piese de referinţă. Rezultatul comparării
poate să fie: "piesă bună", în cazul în care dimensiunile piesei controlate se încadrează, sau
"piesă rebut", dacă cel puţin o dimensiune controlată nu se încadrează în domeniul de toleran-
ţă prestabilit.

Fig.5.1.
Sincronizarea robotului cu comenzile numerice ale staţiei VISION 2000 se realizează
prin intermediul semnalelor discrete existente între interfaţa I/O a Unităţii de comandă a
robotului RV/M1 şi interfaţa I/O a staţiei deservite. Conform figurii 5.1., prin nivelul logic "1"
al semnalului "vision ready", Unitatea de comandă a robotului este înştiinţată despre faptul că
staţia de control dimensional este pregătită pentru realizarea unei noi "comparări". Controlul
piesei începe în momentul în care nivelul semnalului de "cerere de control dimensional", emis
de Unitatea de comandă, devine "1" logic. În timpul comparării, semnalele: "piesă bună" şi
"piesă rebut" sunt menţinute la nivelul logic "0".

După terminarea controlului dimensional, Unitatea de comandă va fi înştiinţată despre


rezultatul comparării, prin faptul că ori semnalul de "piesă rebut" ori cel de "piesă bună" va fi
poziţionat la nivelul logic "1" şi menţinut în această stare timp de 5 secunde (după care este
repoziţionat la nivelul logic "0").

II.1. Descrierea aplicaţiei

Se consideră că piesele (cilindrice) sosesc (fig.5.2.) de la o staţie de prelucrare, pe nişte


vagoneţi, prin intermediul unui conveior (1). Sunt preluate, prin intermediul robotului, din sta-

26
ţia de oprire vagonet (2) şi sunt introduse în staţia
VISION 2000 (6), iar transportul până în dreptul
staţiei de control dimensional este realizat prin
intermediul Slide-ului (4).
După ce robotul (9) introduce piesa cilin-
drică pe suportul (8) de sub camera CCD (7) se
retrage, emite o "cerere de control dimensional"
şi aşteaptă rezultatul controlului. Dacă dimensiu-
nile verificate se încadrează în domeniul de tole-
ranţă stabilit, adică avem o "piesă bună", aceasta,
prin intermediul robotului (şi a Slide-ului) este
transportată şi pusă înapoi pe conveior. Dacă pie-
sa este "rebut", este eliminată într-un container
(5), după care robotul se întoarce în poziţia de aş-
teptare, din faţa staţiei de oprire vagonet (3).

II.2. Schema logică a procesului

Fig.5.3.

27
În figura 5.3. s-a reprezentat schema logică a procesului. Programul corespunzător
schemei logice începe cu deplasarea robotului în poziţia de aşteptare (1), apoi se realizează
sincronizarea Slide-ului (prin deplasarea robotului în poziţia 0) (2), şi se verifică staţia
VISION 2000. Dacă e "ready", robotul se deplasează în poziţia 1. de pe Slide (4) şi ia piesa de
pe conveior.
Prin intermediul Slide-ului robotul se deplasează (6) în poziţia 5. (adică până în faţa
staţiei VISION 2000) după care are loc (7) aşezarea piesei sub camera CCD şi se emite o
cerere de control dimensional (9). Sfârşitul operaţiei de control dimensional se "constată" prin
testarea semnalelor “piesă bună” şi “piesă rebut”. Dacă operaţia de control dimensional încă
nu sa terminat, ambele semnale sunt la nivel logic 0.
Dacă piesa cilindrică este "bună" (10), întâi se anulează cererea de control dimensional
(12), apoi se ia piesa de sub camera CCD (13), se transportă până în dreptul staţiei de oprire
vagonet (14), şi se aşează pe conveior (15) după care robotul revine în poziţie de aşteptare
(16). Dacă piesa e "rebut", şi în acest caz se anulează cererea de control dimensional (17), apoi
se ia piesa de sub camera CCD (18), se introduce intr-un container (19), după care robotul se
deplasează înapoi până în faţa staţiei de oprire vagonet (20) şi revine în poziţie de aşteptare
(16).

II.3. Stabilirea traiectoriilor

Traiectoria se stabileşte prin definirea punctelor de start, de ţintă, şi a unui număr


minim de puncte "via" prin care punctul caracteristic este obligat să treacă în vederea evitării
coliziunilor cu restul "obiectelor" din mediu. Se stabilesc numerele de ordine pentru fiecare
poziţie de pe traiectorie. În tabelul următor apare lista poziţiilor propuse:

Nr. Denumire poziţie


5 poziţie intermediară între staţia de oprire vagonet şi staţia Vision
11 poziţie de aşteptare în faţa staţiei de oprire vagonet
12 piesă aşezată pe conveior
13 piesă deasupra conveiorului
30 poz. înainte de aşezarea piesei pe suportul de sub camera CCD
31 piesă aşezată pe suportul de sub camera CCD
32 poziţie de aşteptare laterală (pe durata controlului dimensional)
51 piesă rebut deasupra containerului
52 piesă rebut în container

În tabelul următor se dă lista poziţiilor robotului de pe Slide:

Nr. Denumire poziţie


0 poziţie de sincronizare Slide
1 poziţie din faţa staţiei de oprire vagonet
5 poziţie din faţa staţiei VISION

II.4. Stabilirea succesiunii poziţiilor

Prima mişcare este în poziţia de aşteptare (11), după care robotul se apropie de piesă
(13) cu gripper-ul deschis, apucă piesa (12) prin închiderea gripper-ului, se îndepărtează de
conveior cu gripper-ul închis (13), realizează o rotaţie cu 180 de grade (cu piesa spre staţia

28
VISION 2000) (5), se deplasează pe Slide până în faţa staţiei, introduce piesa sub camera
CCD (30) şi aşează pe suport (31). Robotul se îndepărtează (cu gripper-ul deschis) de piesă
(30) şi se retrage de sub camera CCD, într-o poziţie de aşteptare laterală (32).
La terminarea controlului dimensional robotul apucă (30, 31) şi ridică piesa (30). Dacă
piesa e "rebut", se apropie cu ea de container (51), aşează piesa în acesta (52), după care
revine în poziţia anterioară (51) şi se retrage (5) din staţia VISION 2000. Se deplasează pe
Slide până la staţia de oprire vagonet, şi revine în poziţia de aşteptare (11).
Dacă piesa este "bună", robotul se retrage (5) din staţia VISION 2000, se deplasează
pe Slide până la staţia de oprire vagonet, se apropie (13) şi aşează (12) piesa bună pe conveior.
În final robotul se retrage cu gripper-ul deschis în poziţia de aşteptare (11) trecând prin poziţia
(13).

II.5. Lista intrărilor şi ieşirilor numerice utilizate

Nr. INTRĂRI IEŞIRI


4 Vision ready -
5 - Cerere de control dimensional
7 Slide în poziţie -
8 - Bitul "0" al adr. de poziţionare Slide
9 - Bitul "1" al adr. de poziţionare Slide
10 - Bitul "2" al adr. de poziţionare Slide
11 - Cerere de poziţionare Slide
12 Piesă "bună" -
15 Piesă "rebut" -

III. Mersul lucrării

1. Se analizează modul de sincronizare a robotului RV-M1 cu comenzile numerice ale staţiei


VISION 2000.
2. Se analizează schema logică a procesului.
3. Se analizează lista intrărilor şi ieşirilor numerice utilizate.
4. Se identifică poziţiile care vor fi utilizate la programarea traiectoriilor.
5. Se identifică poziţiile utilizate ale robotului pe Slide.
6. Se completează următorul program de comandă:

'*****PROGRAM DE COMANDĂ SERVIRE STAŢIE VISION 2000 ******


'
10 OPEN "COM1:9600,E,7,2" FOR RANDOM AS #1
20 PRINT #1, "10 MO 11, O" 'Poziţie de aşteptare
'******** SINCRONIZARE SLIDE*******
30 PRINT #1, "15 OB-8"
40 PRINT #1, "20 OB-9"
50 PRINT #1, "25 OB-10"
60 PRINT #1, "30 GS 2000"
'******** VISION READY *********
70 PRINT #1, "35 "
80 PRINT #1, "40 "
90 PRINT #1, "45 "

29
'******** DEPLASARE PE SLIDE IN POZ. 1*******
100 PRINT #1, "50 "
110 PRINT #1, "55 "
120 PRINT #1, "60 "
130 PRINT #1, "65 GS 2000"
'******** LUAREA PIESEI DE PE CONVEIOR********
140 PRINT #1, "70 MO 13, O"
150 PRINT #1, "75 "
160 PRINT #1, "80 "
170 PRINT #1, "85 TI 7"
180 PRINT #1, "90 "
190 PRINT #1, "95 "
'******** DEPLASARE PE SLIDE LA VISION (POZ. 5)**********
200 PRINT #1, "100 "
210 PRINT #1, "105 "
220 PRINT #1, "110 "
230 PRINT #1, "115 GS 2000"
'******AŞEZAREA PIESEI SUB CAMERA CCD*********
240 PRINT #1, "120 MO 30, C"
250 PRINT #1, "125 "
260 PRINT #1, "130 "
270 PRINT #1, "135 "
280 PRINT #1, "140 "
290 PRINT #1, "145 MO 32, O"
'****INIŢIERE ŞI AŞTEPTARE REZULTAT CONTROL DIMENSIONAL*****
300 PRINT #1, "150 OB +5" 'Emitere cerere de control
310 PRINT #1, "155 " 'Citire intrări numerice
320 PRINT #1, "160 " 'Piesa e bună? Dacă da atunci salt!
330 PRINT #1, "165 " 'Piesa e rebut? Dacă da atunci salt!
340 PRINT #1, "170 GT 155" 'Dacă nu atunci citeşte din nou!
'********PRELUAREA PIESEI BUNE********
350 PRINT #1, "175 OB -5" 'Anulare semnal cerere de control
360 PRINT #1, "180 "
370 PRINT #1, "185 "
380 PRINT #1, "190 "
390 PRINT #1, "195 "
400 PRINT #1, "200 "
410 PRINT #1, "205 MO 5, C"
'******** DEPLASARE PE SLIDE IN POZ 1********
420 PRINT #1, "210 "
430 PRINT #1, "215 "
440 PRINT #1, "220 "
450 PRINT #1, "225 GS 2000"
'******** AŞEZAREA PIESEI BUNE PE CONVEIOR*******
460 PRINT #1, "230 MO 13, C"
470 PRINT #1, "235 "
480 PRINT #1, "240 "
490 PRINT #1, "245 "
500 PRINT #1, "250 "
510 PRINT #1, "260 GT 345" 'Salt la sfârşitul programului
'******** PRELUAREA SI ELIMINAREA PIESEI REBUT*********
520 PRINT #1, "265 OB -5" 'Anulare semnal de cerere control
530 PRINT #1, "270 MO 30, O"
540 PRINT #1, "275 MO 31, O"

30
550 PRINT #1, "280 GC"
560 PRINT #1, "285 TI 7"
570 PRINT #1, "290 MO 30, C"
580 PRINT #1, "295 "
590 PRINT #1, "300 "
600 PRINT #1, "305 "
610 PRINT #1, "310 "
620 PRINT #1, "315 "
630 PRINT #1, "320 MO 5, O"
'********* DEPLASARE PE SLIDE IN POZ. 1********
640 PRINT #1, "325 "
650 PRINT #1, "330 "
660 PRINT #1, "335 "
670 PRINT #1, "340 GS 2000"
'********* REVENIRE ÎN POZIŢIE DE AŞTEPTARE*******
680 PRINT #1, "345 MO 11, O"
690 PRINT #1, "350 ED" 'Sfârşit program principal
'
'********SUBRUTINA SLIDE*********
'
2000 PRINT #1, "2000 OB +11" 'cerere de poziţionare
2010 PRINT #1, "2005 TI 10" 'aşteptare început deplasare
2020 PRINT #1, "2010 ID" 'citire intrări numerice
2030 PRINT #1, "2015 TB +7, 2025" 'slide in poziţie ?
2040 PRINT #1, "2020 GT 2010" 'dacă nu atunci aşteaptă
2050 PRINT #1, "2025 OB -11" 'dacă da atunci anulare cerere
2060 PRINT #1, "2030 TI 10" 'temporizare înainte de o nouă cerere
2070 PRINT #1, "2035 RT" 'revenire din subrutină
2080 END 'sfârşit program BASIC

7. Se transferă programul de comandă în memoria Unităţii de comandă.


8. Se dezactivează cutiile de instruire.
9. Se lansează programul de comandă şi se studiază funcţionarea ei.
10. Se optimizează programul din punctul de vedere al temporizărilor necesare.

IV. Conţinutul referatului

1. Descrierea modului de sincronizare a robotului RV-M1 cu comenzile numerice ale staţiei


VISION 2000.
2. Schema logică a aplicaţiei.
3. Lista intrărilor şi ieşirilor numerice utilizate.
4. Lista poziţiilor prin intermediul cărora s-a realizat programarea traiectoriilor.
5. Descrierea succesiunii poziţiilor de pe traiectoria programată.
6. Lista poziţiilor de pe Slide.
7. Programul de comandă sub formă comentată.

31
Lucrarea nr.6.

PROGRAMAREA ROBOTULUI RV-M1


PENTRU SERVIREA STAŢIEI NCL 2000

I. Scopul lucrării

Lucrarea are ca obiectiv familiarizarea cu modul de concepere, realizare şi optimizare


a programelor de comandă de tip punct cu punct. Ca aplicaţie se urmăreşte realizarea robotiză-
rii operaţiilor de prelucrare, utilizând în acest scop staţia de prelucrare prin strunjire NCL
2000, respectiv robotul RV-M1. De asemenea se urmăreşte realizarea sincronizării robotului
cu comenzile numerice ale staţiei servite, precum şi cu cele ale staţiei CIM-Control (care con-
trolează fluxul pieselor).

II. Consideraţii teoretice

Staţia NCL 2000 este o staţie de prelucrare a semifabricatelor cilindrice prin operaţia
de strunjire. Fiind echipată cu un miniechipament de comandă numerică, oferă posibilitatea
sincronizării operaţiilor de prelucrare cu comenzile numerice ale robotul RV-M1 prin existen-
ţa semnalelor discrete între interfaţa I/O a Unităţii de comandă şi interfaţa I/O a staţiei NCL
2000.

Fig.6.1.
Conform fig.6.1. comanda fixării semifabricatului introdus între vârfuri se realizează
de către Unitatea de comandă a robotului. Tot Unitatea de comandă este cea care emite
cererea de "start prelucrare" către staţia NCL 2000 şi recepţionează de la aceasta semnalul de
"sfârşit prelucrare", respectiv semnalul "strung ready".
În timpul prelucrării uşa strungului este închisă şi la terminarea prelucrării se deschide
în mod automat. Pentru a avea o protecţie suplimentară a robotului când se introduce
semifabricatul în interiorul strungului, respectiv se scoate piesa prelucrată, Unitatea de
comandă are posibilitatea verificării stării deschise sau închise a uşii strungului.
Având în vedere faptul că semifabricatele (cu destinaţie staţia NCL 2000) sosesc în
dreptul robotului RV-M1 prin intermediul conveiorului, iar fluxul pieselor de pe conveior este
controlat prin intermediul staţiei CIM-Control, devine necesară analizarea semnalelor discrete
existente între aceasta şi Unitatea de comandă. Din fig.6.2. se poate observa faptul că Unitatea
de comandă este cea care emite cererea pentru un nou semifabricat cilindric şi este înştiinţată
de faptul că în staţia de oprire vagonet a sosit un vagonet încărcat (cu semifabricat) sau a sosit
un vagonet gol (necesar la repunerea piesei prelucrate pe conveior).

32
Fig.6.2.
Unitatea de comandă emite o cerere de "reţinere vagonet în staţie". În acest mod este
împiedicată deplasarea mai departe a vagonetului în timpul descărcării sau încărcării.
Eliberarea vagonetului se realizează prin anularea cererii de reţinere vagonet.
În tabelul următor se dă lista intrărilor şi ieşirilor numerice (ale Unităţii de comandă)
utilizate în cadrul aplicaţiei:

Nr. INTRĂRI IEŞIRI


0 CIM ready Robot ready
1 Vagonet încărcat în staţie Cerere vagonet gol
2 Vagonet gol în staţie Reţinere vagonet în staţie
3 Strung ready -
4 - Fixare piesă între vârfuri
5 Sfârşit prelucrare -
6 Sosire cilindru=1 (cub=0) Start prelucrare
7 Slide în poziţie Cerere semifabricat cilindric
8 - Bitul "0" al adr. de poz. Slide
9 - Bitul "1" al adr. de poz. Slide
10 - Bitul "2" al adr. de poz. Slide
11 - Cerere de poziţionare Slide
13 Aer comprimat ready -
14 Uşa strungului (închis=1) -

II.1. Descrierea aplicaţiei

Se consideră un proces de fabricaţie (fig.6.3.) în care se realizează prelucrarea unor


semifabricate cilindrice după un anumit program de "piesă". Programul, care se află în
memoria miniechipamentului de comandă numerică a staţiei de prelucrare NCL 2000 (5), este
selectat manual de către operatorul uman.
În momentul în care un semifabricat cilindric (aşezat pe un vagonet) a sosit în staţia de
oprire vagonet (2), Unitatea de comandă a robotului RV-M1 emite o cerere pentru reţinerea
vagonetului în staţie. De pe conveior (1), semifabricatele sunt descărcate şi introduse în staţia
de prelucrare, prin intermediul robotului industrial RV-M1 (3). Pe durata descărcării
vagonetul este reţinut în staţie.
După prelucrare, produsul finit este scos din strung şi este aşezat pe un vagonet "gol"
de pe conveior. Transportul semifabricatului (respectiv al produsului finit) între staţia de
oprire vagonet şi poziţia de introducere (10) între vârfuri este realizat prin intermediul Slide-
ului (4).

33
Fig.6.3.
Tot prin intermediul Slide-ului este realizată mişcarea de poziţionare (11) a capătului
stâng al semifabricatului pe vârful fix (8) din universal (9). Fixarea semifabricatului între
vârfuri se realizează la comanda emisă de Unitatea de comandă, prin intermediul unui motor
pneumatic liniar care pune în mişcare vârful mobil (6).

II.2. Schema logică a procesului

În fig.6.4. s-a reprezentat schema logică a procesului de fabricaţie. Programul


corespunzător schemei începe cu deplasarea gripper-ului în poziţia de aşteptare (1) după care
se realizează sincronizarea deplasării pe Slide. Se verifică confirmările de la staţia NCL 2000
(3), presiunea aerului comprimat (4) respectiv confirmarea de la staţia CIM-Control şi se
emite o cerere de semifabricat cilindric (6), cu precizarea faptului că robotul este pregătit
(ready) pentru primirea semifabricatului (7). Se realizează deplasarea pe Slide până în dreptul
staţiei de oprire vagonet (8) şi se aşteaptă sosirea unui vagonet încărcat (9). La sosirea acestuia
se emite comanda pentru reţinerea vagonetului în staţie (10), se declară: "robot ocupat" (11),
se ia piesa de pe vagonet (12), se autorizează eliberarea vagonetului din staţie (13) şi se
anulează cererea de semifabricat cilindric (14).
Mai departe se realizează transportul semifabricatului cilindric până în dreptul
strungului (15), care corespunde poziţiei numărul 3 de pe Slide. Se verifică dacă uşa
strungului este deschisă sau nu (16), dacă este deschisă se introduce semifabricatul în
interiorul strungului (17) şi se poziţionează între vârfuri. Apoi are loc deplasarea robotului pe
Slide (în poziţia 4) până când capătul stâng al semifabricatului atinge vârful fix din
universalul strungului (18). În acest moment se emite o comandă (19) pentru închiderea
vârfurilor prin care se realizează fixarea semifabricatului între vârfuri.
După fixarea semifabricatului are loc eliberarea piesei din gripper-ul robotului şi braţul
robotului se retrage din interiorul strungului (20), se autorizează începerea operaţiilor de
prelucrare (21), comandă care se anulează după o temporizare de 3 secunde (22, 23).
Se aşteaptă sfârşitul prelucrării (24), se verifică uşa strungului (25), dacă este deschisă:
gripper-ul robotului apucă piesa prelucrată (26), se dă comandă pentru eliberarea piesei dintre
vârfuri (27), se scoate piesa de pe vârful din universal (28) prin revenirea robotului în poziţia
numărul 3 de pe Slide şi se scoate piesa din interiorul strungului (29).

34
Fig.6.4.
Se emite o cerere de vagonet gol (30) după care robotul se deplasează în faţa staţiei de
oprire vagonet (31) şi aşteaptă sosirea unui vagonet gol (32). La sosirea vagonetului se dă
comanda pentru reţinerea ei în staţie (33) după care are loc aşezarea piesei prelucrate pe
vagonet (34). La terminarea încărcării se dă comandă pentru eliberarea vagonetului (35) şi se
anulează cererea de vagonet gol.

35
II.3. Stabilirea traiectoriilor

Având în vedere că se urmăreşte realizarea unui program de tip punct cu punct,


traiectoria se stabileşte prin definirea punctelor de start, de ţintă, şi a unui număr minim de
puncte "via" prin care punctul caracteristic este obligat să treacă în vederea evitării coliz-
iunilor cu restul "obiectelor" din mediu. Se stabilesc numerele de ordine pentru fiecare poziţie
de pe traiectorie. În tabelul următor apare lista poziţiilor propuse:

Nr. Denumire poziţie


5 poz. înainte de introducere (şi după scoatere) piesă în (din) strung
6 piesă între vârfuri
11 poziţie de aşteptare în faţa staţiei de oprire vagonet
12 piesă pe conveior
13 piesă deasupra conveiorului
60 piesă în interiorul strungului

În tabelul următor se dă lista poziţiilor robotului de pe Slide:

Nr. Denumire poziţie


0 poziţie de sincronizare Slide
1 poziţie din faţa staţiei de oprire vagonet
3 poziţie din faţa strungului corespunzătoare introducerii
semifabricatului între vârfuri
4 poziţie corespunzătoare atingerii vârfului din universalul
strungului de către capătul stâng al semifabricatului cilindric

II.4. Stabilirea succesiunii poziţiilor

Prima mişcare este în poziţia de aşteptare (11), după care robotul se apropie de piesă
(13) cu gripper-ul deschis, apucă piesa (12) prin închiderea gripper-ului, se îndepărtează de
conveior cu gripper-ul închis (13), realizează o rotaţie cu 180 de grade (cu piesa spre staţia
NCL 2000) (5), se deplasează pe Slide până în faţa staţiei (poziţia numărul 3. de pe Slide),
introduce piesa în interiorul strungului (60) şi poziţionează între vârfuri (6). Apoi are loc
deplasarea robotului pe Slide (în poziţia 4) până când capătul stâng al semifabricatului atinge
vârful fix din universalul strungului. După fixarea semifabricatului robotul se îndepărtează (cu
gripper-ul deschis) de piesă (60) şi se retrage din interiorul strungului (5). La terminarea prelu-
crării robotul introduce gripper-ul în interiorul strungului (60) şi apucă piesa prelucrată (6).
După eliberarea piesei dintre vârfuri, robotul revine în poziţia nr. 3 de pe slide, scoate piesa
dintre vârfuri (60) şi din interiorul strungului (5). Se deplasează pe Slide până la staţia de
oprire vagonet (poziţia 1 de pe Slide) şi revine în poziţia de aşteptare (11). După ce a sosit un
vagonet gol, gripper-ul se apropie (13) de conveior şi robotul aşează (12) piesa pe vagonet. În
final robotul se retrage în poziţia de aşteptare (11) trecând prin poziţia (13).

III. Mersul lucrării

1. Se analizează modul de sincronizare a robotului RV-M1 cu comenzile numerice ale


staţiei de prelucrare NCL 2000 şi ale staţiei CIM-Control.

36
2. Se analizează schema logică a procesului.
3. Se analizează lista intrărilor şi ieşirilor numerice utilizate.
4. Se identifică poziţiile care vor fi utilizate la programarea traiectoriilor.
5. Se identifică poziţiile utilizate ale robotului pe Slide.
6. Se completează următorul program de comandă:

'******PROGRAM DE COMANDĂ SERVIRE STAŢIE NCL 2000********


'
10 OPEN "COM1:9600,E,7,2" FOR RANDOM AS #1
20 PRINT #1, "10 MO 11, O" 'Poziţie de aşteptare
30 PRINT #1, "15 OB -8" 'Slide 0
40 PRINT #1, "20 OB -9"
50 PRINT #1, "25 OB -10"
60 PRINT #1, "30 GS 2000" 'Apel subrutină SLIDE
70 PRINT #1, "35 ID"
80 PRINT #1, "40 TB +3, 50" 'Strung ready ?
90 PRINT #1, "45 GT 35"
100 PRINT #1, "50 ID"
110 PRINT #1, "55 " 'Aer comprimat ready ?
120 PRINT #1, "60 "
130 PRINT #1, "65 ID"
140 PRINT #1, "70 " 'CIM ready ?
150 PRINT #1, "75 "
160 PRINT #1, "80 " 'Cerere semifabricat cilindric
170 PRINT #1, "85 " 'Robot ready !
180 PRINT #1, "90 OB +8" 'Slide 1
190 PRINT #1, "95 OB -9"
200 PRINT #1, "100 OB -10"
210 PRINT #1, "105 GS 2000"
220 PRINT #1, "110 ID"
230 PRINT #1, "115 " 'Vagonet încărcat în staţie ?
240 PRINT #1, "120 "
250 PRINT #1, "125 " 'Reţinere vagonet !
260 PRINT #1, "130 " 'Robot ocupat !
270 PRINT #1, "135 MO 13, O" 'Luare piesă de pe vagonet
280 PRINT #1, "140 "
290 PRINT #1, "145 "
300 PRINT #1, "150 "
310 PRINT #1, "155 "
320 PRINT #1, "160 " 'Eliberare vagonet
330 PRINT #1, "165 " 'Slide 3
340 PRINT #1, "170 "
350 PRINT #1, "175 "
360 PRINT #1, "180 GS 2000"
370 PRINT #1, "190 ID"
380 PRINT #1, "195 " 'Uşa strungului este deschisă ?
390 PRINT #1, "200 "
400 PRINT #1, "205 MO 5, C" 'Introducere piesă între vârfuri
410 PRINT #1, "210 "
420 PRINT #1, "215 "
430 PRINT #1, "220 " 'Slide 4
440 PRINT #1, "225 "
450 PRINT #1, "230 "

37
460 PRINT #1, "235 GS 2000"
470 PRINT #1, "240 " 'Fixare piesă între vârfuri
480 PRINT #1, "245 TI 20"
490 PRINT #1, "250 GO"
500 PRINT #1, "255 TI 7"
510 PRINT #1, "260 " 'Retragere din interiorul strungului
520 PRINT #1, "265 "
530 PRINT #1, "270 " 'Autorizare start prelucrare
540 PRINT #1, "275 TI 30"
550 PRINT #1, "280 OB -6" 'Anulare comandă de autorizare start
560 PRINT #1, "285 ID"
570 PRINT #1, "290 " 'S-a terminat prelucrarea ?
580 PRINT #1, "295 "
590 PRINT #1, "300 ID"
600 PRINT #1, "310 TB -14, 320" 'Uşa strungului s-a deschis ?
610 PRINT #1, "315 GT 300"
620 PRINT #1, "320 MO 60, O" 'Prinderea piesei
630 PRINT #1, "325 "
640 PRINT #1, "330 "
650 PRINT #1, "335 "
660 PRINT #1, "340 " 'Deschidere vârf
670 PRINT #1, "345 TI 20"
680 PRINT #1, "350 " 'Slide 3
690 PRINT #1, "355 "
700 PRINT #1, "360 "
710 PRINT #1, "365 GS 2000"
720 PRINT #1, "370 MO 60, C" 'Scoatere piesă din strung
730 PRINT #1, "375 MO 5, C"
740 PRINT #1, "380 " 'Cerere vagonet gol
750 PRINT #1, "385 OB +8" 'Slide 1
760 PRINT #1, "390 OB -9"
770 PRINT #1, "400 OB -10"
780 PRINT #1, "405 GS 2000"
790 PRINT #1, "410 MO 11,C" 'Poziţie de aşteptare (vagonet)
800 PRINT #1, "415 ID"
810 PRINT #1, "420 " 'Vagonet gol in staţie ?
820 PRINT #1, "425 "
830 PRINT #1, "430 OB +2" 'Reţinere vagonet
840 PRINT #1, "435 MO 13, C" 'Aşezare piesă pe vagonet
850 PRINT #1, "440 "
860 PRINT #1, "445 "
870 PRINT #1, "450 "
880 PRINT #1, "455 "
890 PRINT #1, "460 " 'Retragere în poziţia de aşteptare
900 PRINT #1, "465 " 'Eliberare vagonet
910 PRINT #1, "470 " 'Anulare cerere vagonet gol
920 PRINT #1, "475 ED" 'Sfârşit program principal
'
'********SUBRUTINA SLIDE*********
'
2000 PRINT #1, "2000 OB +11" 'cerere de poziţionare
2010 PRINT #1, "2005 TI 10" 'aşteptare început deplasare
2020 PRINT #1, "2010 ID" 'citire intrări numerice
2030 PRINT #1, "2015 TB +7, 2025" 'slide in poziţie ?

38
2040 PRINT #1, "2020 GT 2010" 'dacă nu atunci aşteaptă
2050 PRINT #1, "2025 OB -11" 'dacă da atunci anulare cerere
2060 PRINT #1, "2030 TI 10" 'temporizare înainte de o nouă cerere
2070 PRINT #1, "2035 RT" 'revenire din subrutină
2080 END 'sfârşit program BASIC

7. Se transferă programul de comandă în memoria Unităţii de comandă.


8. Se dezactivează cutiile de instruire.
9. Se lansează programul de comandă şi se studiază funcţionarea ei.

IV. Conţinutul referatului

1. Descrierea modului de sincronizare a robotului RV-M1 cu comenzile numerice ale staţi-


ei de prelucrare NCL 2000 şi ale staţiei CIM-Control.
2. Schema logică a procesului.
3. Lista intrărilor şi ieşirilor numerice utilizate.
4. Lista poziţiilor prin intermediul cărora s-a realizat programarea traiectoriilor.
5. Descrierea succesiunii poziţiilor de pe traiectoria programată.
6. Lista poziţiilor de pe Slide.
7. Programul de comandă sub formă comentată.

39
Lucrarea nr.7.

PROGRAMAREA ROBOTULUI RV-M1


PENTRU REALIZAREA UNEI OPERAŢII DE MONTAJ

I. Scopul lucrării

Lucrarea are ca obiectiv familiarizarea cu robotizarea operaţiilor de montaj utilizând în


acest scop robotul industrial RV-M1 şi o staţie de asamblare. De asemenea se studiază modul
de utilizare al acelor macroinstrucţiuni, prin care se poate indica, programa, defini sau
memora poziţii din spaţiul de lucru, în coordonate absolute sau relative fără utilizarea cutiei
de instruire.

II. Consideraţii teoretice

În cazul robotului industrial RV-M1, pe lângă prescrierea traiectoriei prin metoda


învăţării (memorarea poziţiilor cu ajutorul cutiei de instruire), se poate utiliza şi metoda
programării prin calcul. În cadrul acestei metode poziţiile de pe traiectorie sunt prescrise,
definite sau memorate (prin intermediul instrucţiunilor existente) în coordonate absolute sau
relative. Lista principalelor instrucţiuni legate de această metodă:

MP (Move Position) Determină deplasarea capătului gripper-ului într-o poziţie indicată


prin coordonatele absolute X, Y, Z, P şi R. Incrementul de mişcare
de-a lungul axelor X, Y si Z este 0.1 [mm], iar incrementul de
rotaţie pentru P şi R este 0.1 [grade].
Formatul instrucţiunii:
MP <X, Y, Z, P, R>
Această instrucţiune va fi executată numai dacă poziţia indicată se află în spaţiul de
lucru al robotului.
DW (Draw) Determină deplasarea capătului gripper-ului într-o poziţie indicată prin
coordonatele relative (faţă de poziţia curentă): dX, dY, dZ. Incrementul de
mişcare de-a lungul axelor este 0.1 [mm]. Orientarea şi starea gripper-ului nu
se schimbă.
Formatul instrucţiunii:
DW <dX, dY, dZ>

Prin intermediul acestei instrucţiuni se poate programa deplasări paralele cu axele de


coordonate X, Y, Z. Această instrucţiune va fi executată, dacă s-au programat toate cele 3
coordonate relative. Mişcarea este începută şi dacă poziţia finală nu se află în spaţiul de lucru
al robotului, dar este suspendată la atingerea limitatoarelor de cursă.

HE Determină memorarea coordonatelor carteziene absolute ale poziţiei curente, prin


ataşarea unui număr acesteia.
Formatul instrucţiunii:
HE <număr poziţie>
unde: 1 ≤ număr poziţie ≤ 629.

40
PD (Position Define) Determină definirea şi memorarea unei poziţii diferite de poziţia
curentă. Pentru definire se indică numărul, respectiv coordonatele
carteziene absolute X, Y, Z, P şi R ale poziţiei.
Formatul instrucţiunii:
PD <număr poziţie, X, Y, Z, P, R>

unde: 1 ≤ număr poziţie ≤ 629

Starea gripper-ului în poziţia definită va fi cea din poziţia curentă. Dacă se doreşte
definirea poziţiei şi prin indicarea stării închise sau deschise a gripper-ului se poate utiliza in-
strucţiunea GF.

GF (Grip Flag) Defineşte starea închisă sau deschisă a gripper-ului pentru poziţia
memorată cu instrucţiunea PD.
Formatul instrucţiunii:
GF <stare gripper>

unde: stare gripper=0 dacă gripper-ul este deschis (Open)


stare gripper=1 dacă gripper-ul este închis (Close).

MA (Move Approach) Determină mişcarea capătului gripper-ului din poziţia curentă


într-o poziţie "b", care este definită (prin intermediul instrucţiunii
PD) ca o poziţie relativă faţă de poziţia "a".
Formatul instrucţiunii:
MA <număr poziţie (a)>, <număr poziţie (b)> [, <stare gripper]
unde:
1 ≤ număr poziţie (a), (b) ≤ 629
stare gripper=O dacă gripper-ul este deschis (Open)
stare gripper=C dacă gripper-ul este închis (Close).

MJ (Move Joint) Determină mişcarea fiecărei articulaţii J faţă de poziţia curentă cu


unghiul specificat. Cel mai mic increment de rotaţie este 0.1 [grade].
Formatul instrucţiunii:
MJ <J1, J2, J3, J4, J5>
Observaţie:
• Instrucţiunile MJ, MP şi PD pot fi utilizate separat ca instrucţiuni de comandă lansate de
la calculatorul personal PC, dar nu pot fi executate în cadrul unui program de comandă
aflată în memoria Unităţii de comandă.

II.1. Descrierea aplicaţiei

Circa 90% din cazurile de montaj robotizat se referă la introducerea unui ştift într-un ale-
zaj cu sau fără joc, înşurubarea unui şurub sau introducerea unui ştift (urmată de rotaţia ştiftu-
lui); direcţia preferenţială de apropiere a ştiftului (şurubului) este cea verticală, iar sensul pre-

41
ferenţial de sus în jos. Ca urmare principala problemă mecanică de soluţionat în robotizarea
montajului este introducerea unui ştift cilindric într-un alezaj cu axă verticală. Rezultă că în
prima fază ştiftul trebuie adus deasupra alezajului, astfel încât axa ştiftului să coincidă cu cea
a alezajului. Apoi este necesară o deplasare liniară a ştiftului de-a lungul axei până când se
realizează introducerea "completă" sau o deplasare combinată cu o mişcare de rotaţie (de înşu-
rubare).
În concordanţă cu cele menţionate mai sus, se consideră o aplicaţie în care, prin in-
termediul robotului industrial RV-M1, se realizează operaţia de asamblare, a unei piese cilin-
drice (ştift) cu una prismatică, care este prevăzută cu un alezaj. Se consideră de asemenea că
piesa cilindrică a fost prelucrată astfel încât diametrul nominal al unui capăt al acesteia a de-
venit egal cu diametrul nominal al alezajului. După această prelucrare, piesa cilindrică se află
(fig.7.1.) pe un suport din staţia de control dimensional VISION 2000 (poziţia nr.1), s-a reali-
zat controlul prin intermediul camerei CCD şi s-a constatat că piesa este corespunzătoare din
punct de vedere dimensional.
Piesa prismatică, cu alezajul prelucrat, se află pe masa unei prese pneumatice (fig.7.1).
În cadrul aplicaţiei robotul preia piesa cilindrică de pe suport, poziţionează deasupra alezajului
din piesa prismatică (poziţia nr.4) şi realizează o mişcare de apropiere a cilindrului de alezaj,
până la atingerea acestuia (poziţia nr.5).

Fig.7.1.
Pentru introducerea completă a capătului cilindrului în alezaj este necesară şi o
operaţie de presare. Prin operaţia de presare se înţelege apăsarea capătului liber al piesei cilin-
drice prin intermediul unei tije a unui motor pneumatic liniar al presei pneumatice.
Comanda presei (ieşirea tijei în vederea apăsării piesei cilindrice) se realizează prin
intermediul unui semnal furnizat de Unitatea de comandă a robotului RV-M1, prin ieşirea
numerică 3. Prin dezactivarea semnalului (nivel logic 0), tija motorului pneumatic se retrage
automat, într-o poziţie confirmată (nivel logic "1") prin intermediul unui senzor de
proximitate, conectat la intrarea numerică 11 a Unităţii de comandă. Pentru introducerea
piesei cilindrice sub tijă, aceasta din urmă trebuie să fie în poziţia retrasă.

42
II.2. Stabilirea traiectoriilor

Coordonatele X, Y, Z, P şi R aferente poziţiilor 1 şi 5 sunt date în tabelul de mai jos.

Poziţia X Y Z P R
1 -350.8 -10.6 230.2 -88.6 80
5 -453.5 0.4 183 -4.8 176.4

În afară de aceste două poziţii trebuie determinate încă câteva poziţii via, astfel încât
traiectoria rezultată să fie fără coliziuni. De asemenea se recomandă ca apropierea gripper-ului
de piesa cilindrică, respectiv ridicarea piesei după apucare să se facă printr-o mişcare
perpendiculară pe suport. La fel şi mişcarea de apropiere a cilindrului faţă de alezajul piesei
prismatice trebuie să se facă printr-o mişcare perpendiculară (paralelă cu axa Z). Considerăm
că în poziţiile via (2 şi 4) obţinute printr-o deplasare a piesei cu 50 [mm] faţă de poziţia nr.1.
respectiv cu 30 [mm] faţă de poziţia nr.5, orientarea gripper-ului rămâne neschimbată.
De asemenea se defineşte poziţia nr.3 ca fiind o poziţie intermediară între staţia de
control dimensional şi staţia de asamblare. Această poziţie se poate defini printr-o simplă
mişcare paralelă de-a lungul axei Y, cu 150 [mm], faţă de poziţia nr.3. Se poate observa din
fig.7.1. faptul că poziţiile 1 şi 2 corespund poziţiei nr.5 a robotului pe Slide. La fel poziţiile nr.
3, 4 şi 5 corespund poziţiei nr.2. a robotului pe Slide.
Se consideră că la lansarea programului robotul se află într-o poziţie de aşteptare,
respectiv în poziţia nr.5 de pe Slide.

II.3. Lista intrărilor şi ieşirilor numerice utilizate

Nr. INTRĂRI IEŞIRI


3 - Start presă
7 Slide în poziţie -
8 - Bitul "0" al adr. de poziţionare Slide
9 - Bitul "1" al adr. de poziţionare Slide
10 - Bitul "2" al adr. de poziţionare Slide
11 Presă ready Cerere de poziţionare Slide

II.4. Programul de comandă

La realizarea programului de comandă pot fi parcurse următoarele etape:

• Definirea poziţiei nr.1 prin instrucţiunea PD.


• Definirea poziţiei nr.2. ca o poziţie relativă faţă de poziţia nr.1. (PD).
• Definirea poziţiei nr.5. (PD).
• Definirea poziţiei nr.4. ca o poziţie relativă faţă de poziţia nr.5. (PD).
• Definirea poziţiei nr.3. ca o poziţie relativă faţă de poziţia nr.5. (PD).
• Deplasarea în poziţia nr.2. cu gripper-ul deschis (MA).
• Memorarea poziţiei nr.2. (HE).
• Deplasarea în poziţia nr.1 cu gripper-ul deschis (MO, sau DW ).
• Închidere gripper.
• Revenire în poziţia nr.2. cu gripper închis (MO sau DW).

43
• Start deplasare pe slide în poziţia nr.2.
• Deplasare în poziţia nr.3 cu gripper-ul închis (MA).
• Aşteptare sfârşit deplasare pe slide.
• Verificare tijă retrasă (presa ready?).
• Deplasare în poziţia nr.4. cu gripper închis (MA sau DW).
• Deplasare în poziţia nr.5 cu gripper închis (MO sau DW).
• Deschidere gripper.
• Revenire în poziţia nr.4. cu gripper închis (DW).
• Retragere gripper de-a lungul axei X cu 50 [mm] (DW).
• Comandă pentru realizarea operaţiei de presare.
• Aşteptare realizare operaţie de presare.
• Anulare comandă pentru realizarea operaţiei de presare.

Observaţii:
1. Se consideră că programul se termină odată cu realizarea operaţiei de presare: luarea
produsului finit de pe masa presei şi punerea pe conveior neconstituind obiectul acestei
aplicaţii.
2. Se poate observa că la realizarea programului se pot utiliza mai multe tipuri de
instrucţiuni, rămânând la latitudinea programatorului alegerea acelor instrucţiuni prin care
descrierea traiectoriei va fi cât mai simplă.

III. Mersul lucrării

1. Se analizează aplicaţia de mai sus.


2. Se analizează lista intrărilor şi ieşirilor numerice utilizate.
3. Se identifică poziţiile care vor fi utilizate la programarea traiectoriilor.
4. Se identifică poziţiile utilizate ale robotului pe Slide.
5. Se completează următorul program de comandă:

'*********PROGRAM DE COMANDĂ OPERAŢIE DE MONTAJ*********


'
10 OPEN "COM1:9600,E,7,2" FOR RANDOM AS #1
20 PRINT #1, "PD 1,-350.8,-10.6,+230.2,-88.6,+80.0" 'definire poz.1.
30 PRINT #1, "PD 2,0,0,50,0,0" 'definire poz.2.
40 PRINT #1, "PD 5,-453.5,0.4,183.0,-4.8,176.4" 'definire poz.5.
50 PRINT #1, "PD 4,0,0,30,0,0" 'definire poz.4.
60 PRINT #1, "PD 3,0,150,30,0,0" 'definire poz.3.
70 PRINT #1, "10 " 'deplasare la poz.2.
80 PRINT #1, "15 " 'memorare cord. poz.2.
90 PRINT #1, "20 " 'deplasare poz.1.
100 PRINT #1, "25 " 'deschidere gripper
110 PRINT #1, "30 "
120 PRINT #1, "35 MO 2,C" 'revenire in poz.2.
130 PRINT #1, "40 " 'specificare adresa Slide2
140 PRINT #1, "45 "
150 PRINT #1, "50 "
160 PRINT #1, "55 OB+11" 'Start deplasare pe Slide
165 PRINT #1, "57 TI 10"

44
170 PRINT #1, "60 " 'deplasare in poz.3.
180 PRINT #1, "65 ID"
190 PRINT #1, "70 TB +7, 80" 'Slide in poziţie ?
200 PRINT #1, "75 GT 65"
210 PRINT #1, "80 OB-11"
220 PRINT #1, "85 ID"
230 PRINT #1, "90 " 'Presa ready ?
240 PRINT #1, "95 "
250 PRINT #1, "100 " 'deplasare in poz.4.
260 PRINT #1, "110 " 'deplasare in poz.5.
270 PRINT #1, "115 " 'deschidere gripper
280 PRINT #1, "120 "
290 PRINT #1, "125 " 'revenire în poz.4.
300 PRINT #1, "130 " 'retragere gripper
310 PRINT #1, "135 " 'start presă
320 PRINT #1, "140 TI 40" 'temporizare
330 PRINT #1, "145 " 'stop presă
340 PRINT #1, "150 ED"
350 END

6. Se transferă programul de comandă în memoria Unităţii de comandă.


7. Se dezactivează cutiile de instruire.
8. Se lansează programul de comandă şi se studiază funcţionarea ei.

IV. Conţinutul referatului

1. Descrierea instrucţiunilor arătate în paragraful II.


2. Descrierea procesului.
3. Programul de comandă.

45
Lucrarea nr.8.

CONTROLUL PIESELOR CU ROBOTUL RV-M1


UTILIZÂND PALETIZAREA BIDIMENSIONALĂ

I. Scopul lucrării

Lucrarea are ca obiectiv familiarizarea studenţilor cu operaţiile de paletizare cu robotul


RV-M1, prin realizarea unui program de paletizare bidimensională utilizată la controlul
pieselor, studenţii însuşind instrucţiunile de contorizare, precum şi cele specifice acestor
operaţii.

II. Consideraţii teoretice

Paletizarea şi containerizarea sunt utilizate în raţionalizarea manipulării obiectelor în


industrie şi comerţ. Aşezarea obiectelor după o anumită regulă în paletă (în interiorul unui
container) şi după aceea transferul paletei prezintă avantajul reducerii numărului de
manipulări şi pe această cale a timpului de manipulare.
Automatizarea flexibilă a operaţiilor de paletizare se poate realiza prin utilizarea în
acest scop a roboţilor industriali. În multe ocazii operaţiile de paletizare sunt legate de
operaţiile de servire a unor maşini sau staţii.

II.1. Instrucţiuni legate de operaţiile de paletizare

PA (Palett Assign) Determină "asignarea" paletei prin indicarea unui număr (care
reprezintă numele/numărul paletei) respectiv stabilirea capacităţii ei
prin indicarea numărului de coloane şi numărului de rânduri.
Formatul instrucţiunii:

PA<număr paletă>,<număr de rânduri>,<număr de coloane>


unde:
1 ≤ număr paletă ≤ 9
1 ≤ număr de rânduri ≤ 255
1 ≤ număr de coloane ≤ 255.

Cu ajutorul instrucţiunii PA sunt stabilite numai numărul de rânduri şi numărul de


coloane corespunzătoare paletei specificate, iar distanţele între linii şi coloane sunt stabilite cu
ajutorul instrucţiunii PT.

PT (Palett) Calculează coordonatele punctelor caracteristice din reţeaua paletei (indicată


prin numărul paletei), în aşa fel încât numărul poziţiei (a cărei coordonate s-a
calculat) să corespundă cu numărul paletei specificate.
Formatul instrucţiunii:
PT <număr paletă>
unde: 1 ≤ număr paletă ≤ 9.

46
Pentru a executa această comandă, poziţiile de definire ale paletei (adică poziţiile din
cele patru colţuri) trebuie să fie deja definite. La fel trebuie să fie exact definit şi contorul de
paletă (separat pt. coloană şi separat pt. rând) care specifică un punct (o poziţie specifică) de
pe paletă.
În tabelul următor sunt date combinaţiile poziţiilor paletelor şi contoarele cores-
punzătoare la fiecare tip (număr) de paletă:

Paleta 1 2 3 4 5 6 7 8 9
Poziţia de referinţă 10 20 30 40 50 60 70 80 90
Poziţia finală a coloanei 11 21 31 41 51 61 71 81 91
Poziţia finală a rândului 12 22 32 42 52 62 72 82 92
Poziţia colţului opus poziţiei de referinţă 13 23 33 43 53 63 73 83 93
Contorul coloanei 11 21 31 41 51 61 71 81 91
Contorul rândului 12 22 32 42 52 62 72 82 92
Poziţia PT 1 2 3 4 5 6 7 8 9

Dacă poziţiile paletei şi contoarele sunt exact definite, execuţia comenzii PT permite
punctelor (poziţiilor) din reţeaua paletei să fie definite ca număr de poziţie echivalent cu
numărul paletei.

Observaţii:
1. Comanda de definire a paletei (PA) trebuie executată înainte de execuţia comenzii PT.
2. După ce comanda PT a fost executată, datele corespunzătoare poziţiei calculate
anterior sunt şterse.
3. Apare eroare în execuţia programului dacă poziţiile paletei nu au fost definite
respectiv dacă contoarele paletelor nu au fost poziţionate sau au fost poziţionate, însă
cu valori ce depăşesc pe cele definite cu comanda PA.
4. Nu apare eroare, chiar dacă coordonatele obţinute pentru punctele din reţeaua paletei
exced spaţiul operaţional al robotului.
5. Starea închisă/deschisă a gripper-ului la punctul din reţea este aceeaşi ca şi cea în
poziţia de referinţă a paletei.

SC (Set Counter) Determină poziţionarea conţinutului contorului specificat la o anumită


valoare. În stare iniţială fiecare contor este poziţionat pe valoarea 0.
Formatul instrucţiunii:

SC <număr contor>,[<valoare>]

unde: 1< număr contor < 99


-32767 < valoare în zecimal < +32767
& 8001 < valoare în hexa < & 7FFF.

IC (Increment Counter) Incrementează valoarea contorului specificat.


Formatul instrucţiunii:
IC <număr contor>

unde: 1< număr contor < 99.

47
DC (Decrement Counter) Decrementează valoarea contorului specificat.
Formatul instrucţiunii:
DC <număr contor>

unde: 1< număr contor < 99.

CP (Compare Counter) Încarcă valoarea contorului specificat într-un registru intern de


comparare.
Formatul instrucţiunii:
CP <număr contor>
unde: 1< număr contor < 99.

EQ (If Equal) Salt la o linie din program dacă conţinutul registrului intern este egal cu
valoarea specificată.
Formatul instrucţiunii:

EQ <valoarea comparată>, <număr linie program>


unde:
-32767 < valoare comparată în zecimal < +32767
& 8001 < valoare comparată în hexa < & 7FFF
1 < număr linie program < 2048.

Apare eroare în execuţia programului dacă linia specificată prin număr linie nu există
(n-a fost definită).

NE (Not Equal) Salt la o linie din program dacă conţinutul registrului intern diferă de
valoarea specificată.
Formatul instrucţiunii:

NE <valoarea comparată>, <număr linie program>


unde:
-32767 < valoare comparată în zecimal < +32767
& 8001 < valoare comparată în hexa < & 7FFF
1 < număr linie program < 2048.

Apare eroare în execuţia programului dacă linia specificată prin număr linie nu există
(n-a fost definită).

LG (If Larger) Salt la o linie din program dacă conţinutul registrului intern este mai mare
decât valoarea specificată.
Formatul instrucţiunii:

LG <valoarea comparată>, <număr linie program>


unde:
-32767 < valoare comparată în zecimal < +32767
& 8001 < valoare comparată în hexa < & 7FFF
1 < număr linie program < 2048.

48
Apare eroare în execuţia programului dacă linia specificată prin număr linie nu există
(n-a fost definită).

SM (If Smaller) Salt la o linie din program dacă conţinutul registrului intern este mai mic
decât valoarea specificată.
Formatul instrucţiunii:

SM <valoarea comparată>, <număr linie program>


unde:
-32767 < valoare comparată în zecimal < +32767
& 8001 < valoare comparată în hexa < & 7FFF
1 < număr linie program < 2048.

Apare eroare în execuţia programului dacă linia specificată prin număr linie nu există
(n-a fost definită).
Sensul şi direcţia rândului (respectiv a coloanei) rezultă din modul de definire a
paletei. Astfel de exemplu (fig.8.1.) pentru paleta 7, direcţia şi sensul de numărare a poziţiei
din cadrul coloanei este dată de direcţia definită de poziţia de referinţă 70 şi poziţia finală a
coloanei 71. Direcţia şi sensul de numărare a poziţiei din cadrul rândului este dată de direcţia
definită de poziţia 70 şi poziţia finală a rândului 72.

Să considerăm că pe paleta sunt ordonate 24 de piese, 4 în direcţia coloanei şi 6 în


direcţia rândului. Dorim ca robotul să introducă o piesă în poziţia (2,4). Cu ajutorul
instrucţiunilor SC şi PT se calculează coordonatele poziţiei dorite şi apoi se dă comanda
pentru deplasare în acel punct calculat.
În continuare se dă programul corespunzător acestei operaţii:

10 PA 7,4,6 - definirea paletei


11 SC 71,2 - specificarea poziţiei din cadrul coloanei
12 SC 72,4 - specificarea poziţiei din cadrul rândului
13 PT 7 - calculul poziţiei
14 MO 7 - comandă pentru deplasare în poziţia specificată.

49
II.2. Specificarea procesului

Se consideră un proces de fabricaţie în care piesele sunt transportate între staţia de


prelucrare şi staţia de control pe palete tehnologice prevăzute cu 9 locaşuri. Locaşurile sunt
dispuse de-a lungul a 3 coloane şi a 3 linii echidistante. Ajungând la staţia de control piesele
de pe paletă sunt luate pe rând prin intermediul robotului RV-M1 şi sunt puse pe un
echipament de testare. Piesele corespunzătoare sunt puse înapoi pe paletă în locaşurile din
care au fost scoase, iar cele necorespunzătoare sunt introduse într-un container.
Operaţiile de manipulare rezultă din fig. 8.2.:

În cadrul programului se va utiliza paleta nr.7. Direcţia coloanei este dată de poziţia
relativă a poziţiei 71 faţă de poziţia de referinţă (70). Pentru luarea unei piese dintr-un locaş
de pe paletă, robotul trebuie să fie în poziţia nr.2 de pe Slide, iar aşezarea piesei pe
echipamentul de testare (precum şi eliminarea rebutului) se poate realiza din poziţia nr.5 de pe
Slide.
În figura 8.3. s-a reprezentat schema logică a procesului. Prima mişcare este aducerea
robotului în poziţia de aşteptare 5. din spaţiu, respectiv în poziţia 2. de pe Slide (1,2).
După definirea paletei prin instrucţiunea PA (3) se iniţializează atât contorul rândului
(4) cât şi contorul coloanei (4) la valoarea 1. Urmează calculul, prin instrucţiunea PT, al
coordonatelor poziţiei (1,1). Se comandă deplasarea gripper-ului în poziţia calculată (7), se
prinde piesa (8), se extrage din locaşul paletei (9) şi se transportă (10) prin intermediul Slide-
ului până în faţa staţiei VISION 2000. Se realizează (11) controlul piesei conform celor arătate
la lucrarea nr.6. După terminarea controlului robotul este deplasat (12) înapoi în faţa paletei.
Dacă piesa era bună (13), atunci se realizează reintroducerea piesei (14) în poziţia din care a
fost scoasă, după care robotul revine în poziţia de aşteptare (15).
Dacă piesa controlată a fost scoasă din ultima poziţie a coloanei (16) respectiv din ul-
tima poziţie a rândului (18) înseamnă că a fost "testat" fiecare piesă din paletă. În acest caz se
termină programul. Dacă nu s-a ajuns la ultima poziţie în cadrul rândului, se incrementează
contorul rândului (19), respectiv se iniţializează la 1 contorul coloanei (5) şi se trece la testa-
rea piesei următoare. La fel se trece la testarea piesei următoare în cazul în care nu s-a ajuns la

50
ultima poziţie din cadrul coloanei. În acest ultim caz este incrementat doar contorul coloanei
(17).

III. Modul de lucru

1. Se analizează schema logică a procesului.


2. Se analizează lista intrărilor şi ieşirilor numerice utilizate.
3. Se identifică poziţiile care vor fi utilizate la programarea traiectoriilor.
4. Se identifică poziţiile utilizate ale robotului pe Slide.
5. Se completează următorul programul de comandă:

'***********PROGRAM DE COMANDA PALETIZARE**************


'
10 OPEN "COM1:9600,E,7,2" FOR RANDOM AS #1
12 PRINT #1, "DL 1,2048"
13 PRINT #1, "10 PA 7,3,3" 'definirea paletei
17 PRINT #1, "15 " 'deplasare în poziţia de aşteptare 5

51
20 PRINT #1, "20 " 'deplasare pe slide în poziţia 2
30 PRINT #1, "25 "
40 PRINT #1, "30 "
50 PRINT #1, "35 GS 2000" 'apel subrutină de deplasare
80 PRINT #1, "40 " 'poziţia 1 din cadrul rândului
85 PRINT #1, "43 " 'poziţia 1 din coloana
90 PRINT #1, "45 PT 7" 'calcului poziţiei
100 PRINT #1, "50 " 'deplasare în poziţia calculată
110 PRINT #1, "55 " 'apucarea piesei
120 PRINT #1, "60 "
130 PRINT #1, "65 MO 5,C" 'scoaterea piesei din paleta
131 PRINT #1, "66 " 'transportul piesei la staţia vision
132 PRINT #1, "67 "
133 PRINT #1, "68 "
134 PRINT #1, "69 "
135 PRINT #1, "70 GS 1000" 'apel subrutina control dimensional
422 PRINT #1, "75 " 'revenire la paletă (Slide 2)
423 PRINT #1, "80 "
424 PRINT #1, "85 "
425 PRINT #1, "90 GS 2000"
426 PRINT #1, "95 CP 30"
427 PRINT #1, "100 " 's-a memorat piesă rebut? Dacă da atunci salt!
428 PRINT #1, "247 " 'repunere piesă bună pe paletă
429 PRINT #1, "248 "
430 PRINT #1, "249 "
431 PRINT #1, "250 " 'revenire in poziţia de aşteptare 5
432 PRINT #1, "251 CP 71" 'salvare contor 71 (coloana)
435 PRINT #1, "255 " 'a fost ultima poziţie din cadrul coloanei ?
440 PRINT #1, "260 " 'daca nu atunci se ia următoarea poziţie
445 PRINT #1, "265 " 'salt la început ciclu
450 PRINT #1, "270 CP 72" 'salvare contor 72 (rând)
455 PRINT #1, "275 " 'a fost ultima poziţie din cadrul rândului ?
460 PRINT #1, "280 IC 72" 'daca nu atunci se ia următoarea poziţie
468 PRINT #1, "288 " 'salt la început ciclu
470 PRINT #1, "290 ED " 'sfârşit program principal.

'
'****Subrutina de control dimensional*****
'
1140 PRINT #1, "1000 MO30,C" 'introducerea piesei sub camera CCD
1150 PRINT #1, "1075 MO31,C" 'aşezarea piesei sub camera CCD
1160 PRINT #1, "1080 GO"
1170 PRINT #1, "1085 TI5"
1180 PRINT #1, "1090 MO30,O" 'ridicarea gripper-ului
1190 PRINT #1, "1095 MO32,O" 'retragere gripper de sub camera CCD
1200 PRINT #1, "1100 OB+5" 'cerere de control dimensional
1210 PRINT #1, "1105 TI10"
1220 PRINT #1, "1110 ID"
1230 PRINT #1, "1115 TB+12,1215" 'piesă bună?
1250 PRINT #1, "1125 TB+15,1140" 'piesă rebut?
1260 PRINT #1, "1130 GT 1110" 'controlul nu s-a terminat!
1285 PRINT #1, "1140 SC 30,0" 'memorare "rebut"
1290 PRINT #1, "1145 OB-5" 'anulare cerere de control dimensional

52
1300 PRINT #1, "1150 MO 30,O"
1310 PRINT #1, "1155 MO 31,O"
1320 PRINT #1, "1160 GC " 'apucarea piesei rebut
1330 PRINT #1, "1165 TI7"
1340 PRINT #1, "1170 MO 30,C"
1350 PRINT #1, "1175 MO 51,C"
1355 PRINT #1, "1180 MO 52,C" 'introducere în container
1360 PRINT #1, "1185 GO" 'eliminare rebut
1365 PRINT #1, "1190 TI 7"
1370 PRINT #1, "1195 MO 51,O"
1375 PRINT #1, "1200 MO 5,O" 'ieşire gripper din staţia vision
1380 PRINT #1, "1210 GT 1250" 'salt
1382 PRINT #1, "1215 SC 30,1" 'memorare "piesa bună"
1385 PRINT #1, "1217 OB-5" 'anulare cerere de control dimensional
1390 PRINT #1, "1220 MO 30,O"
1395 PRINT #1, "1225 MO 31,O"
1400 PRINT #1, "1230 GC" 'apucarea piesei bune
1410 PRINT #1, "1235 TI 7"
1420 PRINT #1, "1240 MO 30,C"
1421 PRINT #1, "1241 MO 5,C" 'scoatere piesă din staţia vision
1422 PRINT #1, "1250 RT"
'
'********SUBRUTINA SLIDE*********
'
2000 PRINT #1, "2000 OB +11"
2010 PRINT #1, "2005 TI 10"
2020 PRINT #1, "2010 ID"
2030 PRINT #1, "2015 TB +7, 2025"
2040 PRINT #1, "2020 GT 2010"
2050 PRINT #1, "2025 OB -11"
2060 PRINT #1, "2030 TI 10"
2070 PRINT #1, "2035 RT"

6. Se transferă programul de comandă în memoria Unităţii de comandă.


7. Se dezactivează cutiile de instruire.
9. Se lansează programul de comandă şi se studiază funcţionarea ei.

IV. Conţinutul referatului

1. Consideraţii teoretice privind realizarea operaţiilor de paletizare prin intermediul robotu-


lui RV-M1.
2. Schema logică a procesului.
3. Descrierea succesiunii poziţiilor de pe traiectoria programată.
4. Programul de comandă sub formă comentată.

53
Lucrarea nr.9.

COMANDA MULTIPUNCT A ROBOTULUI RV-M1

I. Scopul lucrării

Lucrarea are ca obiectiv familiarizarea studenţilor cu comanda multipunct a roboţilor


industriali, prin realizarea unui program de comandă multipunct a unei operaţii de vopsire cu
ajutorul robotului RV-M1.

II. Consideraţii teoretice

În lucrările anterioare s-a studiat comanda punct cu punct (PTP) a roboţilor industriali.
La acest mod de comandă singura condiţie impusă era ca traiectoria să nu fie una de coliziune.
Avea importanţă doar trecerea obligatorie a punctului caracteristic (de exemplu) prin poziţiile
1 şi 2 (fig.9.1.).

Mişcările pe fiecare axă încep deodată şi se termină deodată. Astfel, mişcarea având
loc simultan pe toate axele, se obţine o creştere a productivităţii, dar traiectoria obţinută este
una oarecare, imprevizibilă, greu exprimabilă matematic şi cu un aspect absolut oarecare
pentru operatorul uman.
Comanda multipunct (MTP) este asemănătoare metodei de conducere punct cu punct,
dar în cazul MTP se memorează mult mai multe puncte decât cele două puncte: 1 şi 2
(fig.9.2.). De exemplu pentru cazul ales sunt date şi punctele intermediare de la 11 la 15 prin
care se impune trecerea obligatorie a punctului caracteristic (în drumul său de la 1 la 2).
Mişcarea între două puncte intermediare vecine se realizează prin metoda punct cu
punct, fără o corelare a legilor de mişcare. Cu cât numărul punctelor intermediare este mai
mare, cu atât eroarea dintre traiectoria reală şi cea teoretică este mai mică.
În fig.9.3. s-a reprezentat deplasarea punctului caracteristic din poziţia 1 în poziţia 2
prin 3 respectiv 7 puncte intermediare. Se observă că eroarea maximă de la traiectoria
teoretică este mai mare în cazul utilizării a 3 puncte intermediare decât în cazul utilizării a 7
puncte intermediare.

54
Poziţiile intermediare pot fi determinate prin două metode:
1. prin metoda învăţării, când poziţiile intermediare sunt "memorate". Cel mai relevant
este cazul vopsirii prin pulverizare:
La învăţare, un vopsitor cu experienţă are pistolul de vopsit în mână şi de mâna lui este
legat şi efectorul final al robotului. (Dacă braţul robotului este de construcţie masivă se
utilizează instalaţii master-slave în care master-ul este de construcţie miniatură şi se
leagă nemijlocit de mâna vopsitorului, iar slave-ul este robotul propriu-zis care execu-
tă aceeaşi mişcări ca şi master-ul). Cu o frecvenţă cuprinsă între 20÷200 [Hz] se me-
morează punctele atinse la nivelul fiecărei cuple cinematice conducătoare. La redarea
automată, robotul execută singur trecerea prin punctele învăţate.
2. prin metoda de calcul, când poziţiile intermediare sunt determinate (prin calcul) astfel
încât ele să se situeze strict pe segmentul definit de cele două poziţii ţintă. De regulă
punctele intermediare se găsesc la distanţe egale, iar numărul punctelor intermediare se
alege în mod convenabil în funcţie de precizia cerută.

În cazul robotului RV-M1 numărul maxim de puncte intermediare între două poziţii
ţintă este 99. Calculul acestor puncte intermediare precum şi comanda mişcării de tip
multipunct se realizează prin intermediul instrucţiunii MS (Move Straight). Formatul instruc-
ţiunii:

MS <număr poziţie >, < număr puncte intermediare>, <stare gripper>

unde: 1 ≤ număr poziţie ≤ 629


1 ≤ număr puncte intermediare ≤ 99
stare gripper= O (Open - deschis) sau C (Close - închis).

Calculul poziţiilor intermediare se realizează off-line (adică înainte de începerea miş-


cării) şi astfel se obţine o mişcare continuă fără accelerări şi decelerări în aceste poziţii. Se re-
comandă ca numărul punctelor intermediare să fie determinat în concordanţă cu distanţa ce
trebuie parcursă.

II.1. Specificarea procesului

Se consideră un proces de fabricaţie în care robotul RV-M1 manipulează un pistol de


vopsit cu scopul efectuării operaţiei de vopsire a unei suprafeţe plane. Mişcarea robotului tre-

55
buie să asigure ca în timpul operaţiei de vopsire, vârful pistolului, să se deplaseze pe o su-
prafaţă echidistantă cu suprafaţa care urmează să fie vopsită, iar axa pistolului să fie normală
la această suprafaţă. De asemenea suprafaţa echidistantă trebuie să fie conţinută integral în
spaţiul de lucru al robotului industrial.

II.2. Stabilirea traiectoriilor

În fig.9.4. s-au reprezentat traiectoriile vârfului pistolului de vopsit pentru o suprafaţă


plană care se găseşte în poziţie verticală. Poziţiile 1, 2, 3, 4, ..., 20 de definire a traiectoriilor
se memorează prin intermediul cutiei de instruire a robotului. Distanţele dintre traiectoriile
verticale respectiv distanţa de depăşire a materialului se aleg din considerente tehnologice.
Operaţia de vopsire începe din poziţia 1 şi se termină în poziţia 20. Deplasarea de-a
lungul traseelor 2-3, 4-5, 6-7 etc. (situate în afara suprafeţei) se efectuează după comanda
punct cu punct, iar de-a lungul traseelor 1-2, 3-4, 5-6, 7-8 după comanda multipunct.

III. Mersul lucrării

1. Se memorează poziţiile 1,2,3,...20. prin intermediul cutiei de instruire.


2. Se stabilesc numărul necesar de puncte intermediare pentru traseele 1-2, 3-4, 5-6 etc. (lu-
ând în considerare eroarea maximă admisibilă de la traiectoria teoretică.)
3. Se realizează programul de comandă pentru robotul RV-M1.
4. Se transferă programul de comandă în memoria Unităţii de comandă.
5. Se dezactivează cutiile de instruire.
6. Se lansează programul de comandă şi se studiază funcţionarea lui.

IV. Conţinutul referatului

1. Consideraţii teoretice privind utilizarea metodei de conducere multipunct la roboţi indus-


triali.
2. Descrierea operaţiei de vopsire.
3. Programul de comandă sub formă comentată.

56
Lucrarea nr.10.

COMANDA MIŞCĂRILOR CONDIŢIONATE LA ROBOTUL RV-M1

I.Scopul lucrării

Lucrarea are ca obiectiv familiarizarea studenţilor cu comanda mişcărilor condiţionate.


Ca aplicaţie se studiază conceperea şi realizarea programelor de comandă pentru robotul RV-
M1 care să permite detectarea şi ocolirea obstacolelor întâmplătoare, respectiv manipularea
obiectelor având dimensiuni diferite.

II.Consideraţii teoretice

Mişcările condiţionate sunt utilizate atunci când se doreşte schimbarea regimului de


mişcare (sau a traiectoriei), sau chiar suspendarea mişcării în funcţie de modificarea stării
senzorilor (prin care se realizează modelarea mediului). În general stările acestor senzori
condiţionează execuţia mişcărilor programate.
Aceşti senzori indică prezenţa sau lipsa unui obiect (obstacol) care se află (sau nu) pe
traiectoria robotului. Prezenţa sau lipsa unui obstacol se echivalează cu nivelul logic "1" sau
"0" al semnalului obţinut de la senzor. În cazul robotului RV-M1 achiziţia acestor semnale se
poate realiza prin intermediul interfeţei I/O a unităţii de comandă.

II.1. Instrucţiuni legate de regimul de mişcare condiţionată

EA (Enable Act) Este o instrucţiune prin care se realizează întreruperea execuţiei


instrucţiunii curente atunci când se modifică starea logică a unei intrări
numerice în timp ce robotul se află stare de mişcare. Datorită acestei
întreruperi mişcarea robotului este suspendată iar execuţia programului
se continuă cu un salt la linia indicată prin număr.
Formatul instrucţiunii:

EA <+ sau -> <intrare numerică>, <număr linie>

unde: 0 ≤ intrare numerică ≤ 15


1 ≤ număr linie ≤ 2048

Cu semnul "+" se indică nivelul logic "1" iar cu semnul "-" se indică nivelul logic "0"
pentru care apare întreruperea mişcării.

Observaţii:
1. Această instrucţiune se poate folosi numai la mişcări cu viteze reduse, deoarece în cazul
vitezelor mari pot apare defecţiuni mecanice la întreruperea bruscă a mişcării.
2. O mişcare poate fi condiţionată simultan prin indicarea a mai multor intrări numerice,
dar intrarea cu numărul de ordine cel mai mare preia prioritatea.

DA (Disable Act) Această comandă anulează starea de întreruperi instalată prin


instrucţiunea EA pentru intrarea numerică specificată.

57
Formatul instrucţiunii:

DA <intrare numerică>

unde: 0 ≤ intrare numerică ≤ 15.

Observaţii:
1. După ce comanda a fost executată, nu mai apare întrerupere chiar dacă se modifică starea
logică a intrării specificate cu comanda EA.
2. Anularea întreruperii se referă numai la intrarea numerică specificată în cadrul instrucţi-
unii DA.

II.2. Aplicaţiile regimului de mişcare condiţionată

II.2.1. Detectarea şi ocolirea obstacolelor întâmplătoare

Se consideră că pe braţul robotului RV-M1 se găseşte un senzor prin care se poate de-
tecta o eventuală coliziune cu un corp ajuns în mod întâmplător pe traiectoria programată a
robotului. Conform fig.10.1. robotul se află în mişcare din poziţia start spre poziţia ţintă 1. Pe
parcursul mişcării se constată modificarea stării logice a semnalului recepţionat de la senzor şi
în consecinţă mişcarea spre poziţia 1 este imediat suspendată. Se realizează o "ocolire" a ob-
stacolului spre poziţia 2 după care se comandă din nou deplasare spre poziţia ţintă 1.

100 EA +11,600
110 MO 1
120 ED
600 DA 11
610 MO 2
620 GT 110

Conform programului alăturat în prima fază (respectiv în linia 100) se instalează prin
intermediul instrucţiunii EA, regimul de mişcare condiţionată. Eventuala întrerupere a mişcă-
rii robotului, cauzată de apariţia nivelului logic 1 al intrării numerice 11, va avea ca efect su-
plimentar un salt la linia 600 din program. Linia 110 mişcă robotul spre poziţia nr 1. din spa-
ţiu. Dacă în timpul mişcării nu apare întrerupere atunci robotul ajunge în poziţia ţintă şi pro-
gramul se termină la linia 120. În caz contrar mişcarea robotului se întrerupe, programul se
continuă cu linia 600, unde se anulează efectul instrucţiunii EA. În linia 610 robotul este tri-
mis în poziţia nr 2. cu scopul ocolirii obstacolului, apoi printr-un salt necondiţionat se ajunge
iarăşi în linia 110 unde se dă din nou comandă pentru deplasare în poziţia nr.1. Programul se
termină la linia 120 cu instrucţiunea ED (sfârşit program).

II.2.2. Manipularea obiectelor de înălţime variabilă

În figura 10.2. s-a reprezentat un mecanism de prehensiune (gripper) care este prevăzut
cu un microîntrerupător, prin intermediul căruia se poate sesiza lipsa sau prezenţa obiectului
care urmează să fie apucat.

58
100 EA+11,140
110 MO 1, O
120 DW 0, 0, -50
130 GT 110
140 DA 11
150 GC
160 MO 1, C

Se consideră că pe suprafaţa A se găsesc mai multe obiecte, având dimensiuni diferite


(cu înălţime variabilă). Se consideră că înainte de deplasare spre obiect gripper-ul este mişcat
până în poziţia 1, respectiv se cunoaşte distanţa maximă (50 [mm]) până la "cel mai mic" obi-
ect. Impunând o deplasare "maximă" a gripper-ului pe verticală, de-a lungul axei Z, se poate
apuca şi obiectul care are cea mai mică înălţime. La celelalte obiecte "mai înalte" va fi acţio-
nat microîntrerupătorul înainte de terminarea deplasării programate. În aceste cazuri apare o
întrerupere a mişcării pe verticală, după care se comandă închiderea gripper-ului şi ridicarea
obiectului.
S-a văzut că în acest caz s-a programat doar o singură distanţă (cea maximă) de depla-
sare spre obiect. Dacă obiectele au o dimensiune mai mare, decât cel pentru care s-a realizat
determinarea distanţei de deplasare, gripper-ul este oprit prin intermediul microîntrerupătoru-
lui în momentul sesizării obiectului.

III. Mersul lucrării

1. Se realizează şi se introduc în calculatorul personal programele prezentate în paragrafele


II.2.1. şi II.2.2.
2. Se realizează transferul programelor de la PC către Unitatea de comandă.
3. Se verifică programele în regim pas cu pas.
4. Se încearcă programele în regim automat şi se studiază mişcarea robotului înainte şi du-
pă apariţia semnalului de întrerupere.

IV.Conţinutul referatului

1. Consideraţii teoretice privind utilizarea regimului de mişcare condiţionată.


2. Descrierea instrucţiunilor EA şi DA.
3. Programele de comandă sub formă comentată.

59
Lucrarea nr.11.

COMANDA ROBOTULUI RV-M1


PE TRAIECTORIE CONTINUĂ

I. Scopul lucrării

Lucrarea are ca obiectiv familiarizarea studenţilor cu calculele aferente comenzii


robotului industrial RV-M1, pe o traiectorie continuă, definită de poziţia de start şi poziţia
ţintă. Mişcarea continuă, prin poziţiile intermediare calculate cu ajutorul unei matrici de
conducere de tip D(r) şi definită cu instrucţiunea PD (Position Define), este asigurată prin
intermediul instrucţiunii MC (Move Continous).

II. Consideraţii teoretice

În cazul robotului industrial RV-M1 comanda mişcărilor continue (adică fără oprire),
printr-un număr de poziţii definite sau memorate, se poate realiza cu ajutorul instrucţiunii MC
(Move Continous). Dacă dintr-o poziţie de start (notată cu poz1) se doreşte o deplasare într-o
poziţie ţintă (notată cu poz2), cu o trecere continuă şi fără oprire prin N-2 poziţii intermediare,
atunci se poate utiliza comanda:
MC 1, N
unde 1 este numărul de ordine al poziţiei de start iar N este numărul de ordine al poziţiei ţintă.
Astfel se realizează o pornire din poziţia 1, o trecere fără oprire prin poziţiile 2,3,...,N-1 şi
oprire în poziţia N. Pentru executarea completă a instrucţiunii este nevoie ca poziţiile
2,3,...,N-1 să fie anterior calculate şi definite cu instrucţiunea PD (Position Define) sau să fie
memorate.
În continuare se prezintă o modalitate pentru calculul şi definirea acestor poziţii
”intermediare”.

II.1. Calculul poziţiilor intermediare prin matricea de conducere D(r)

Se consideră o reprezentare matriceală atât pentru poziţia de start POZ1 cât şi pentru
poziţia ţintă POZ2:
poz1 = [ X 1 Y1 Z1 P1 R1]
T

poz2 = [ X 2 Y2 Z2 P2 R2 ]
T

unde:
X1, Y1, Z1, P1, R1 sunt coordonatele carteziene ale poziţiei de start;
X2, Y2, Z2, P2, R2 sunt coordonatele carteziene ale poziţiei de ţintă.

Calculul poziţiilor intermediare POZk, între POZ1 şi POZ2, se poate realiza cu ajutorul
unei matrici de conducere D(r) astfel încât, poziţia intermediară POZk se obţine cu relaţia:

POZk=POZ1⋅D(r) k ∈ N.
unde r este o variabilă scalară din domeniul [0, 1].

60
Observaţii:
1. D(r) este o funcţie de conducere matricială şi este astfel concepută încât toate situările
succesive ocupate de punctul caracteristic între POZ1 şi POZ2 să se poate calcula pornind
de la POZ1 înmulţit cu valoarea aferentă D(r).
2. Pentru r = 0 se obţine poziţia de start (POZk = POZ1), iar pentru r =1 poziţia ţintă (POZk =
POZ2). Pentru orice altă valoare ale lui r, între 0 şi 1 se obţine o poziţie intermediară,
având ca număr de ordine k.

În cazul robotului RV-M1 matricea D(r) care satisface condiţiile de mai sus este de
dimensiune 1x5 şi este dată de următoarea relaţie:

 X  Y  Z  P  R 
D(r ) = 1 + r ⋅  2 − 1 1 + r ⋅  2 − 1 1 + r ⋅  2 − 1 1 + r ⋅  2 − 1 1 + r ⋅  2 − 1
  X1   Y1   Z1   P1   R1 

Astfel la calculul poziţiilor intermediare se dau diferite valori lui r şi se obţin valori
succesive pentru D(r) care înmulţite cu POZ1 dau punctele intermediare POZk.

Observaţie:
Formula de mai sus pentru matricea de conducere D(r) se poate utiliza numai dacă coor-
donatele X1, Y1, Z1, P1 şi R1 diferă de 0. În caz contrar apare eroare în execuţia progra-
mului (împărţire cu 0). Pentru prevenirea acestui fenomen, în acest caz elementul "j" al
matricii D(r) (pentru care apare eroarea) poate fi calculat cu formula: D[j]:=r⋅POZ2[j], iar
elementul corespunzător lui POZk cu formula: POZk[j]:=D[j].

II.2. Definirea poziţiilor intermediare calculate

În cazul robotului RV-M1 definirea poziţiilor intermediare calculate se poate realiza


cu ajutorul instrucţiunii PD (Position Define) după următorul format:
PD <număr poziţie, X, Y, Z, P, R>
unde:
1 ≤ număr poziţie ≤ 99
X, Y, Z, P, R sunt coordonatele carteziene ale poziţiei definite, indicată prin "număr
poziţie". Valorile corespunzătoare acestor coordonate trebuiesc definite cu maxim o
cifră zecimală. În caz contrar apare eroare în execuţia instrucţiunii.

Prin intermediul instrucţiunii PD vor fi definite cele N (max. 99) poziţii prin care se
aproximează traiectoria continuă între poziţia start şi poziţia ţintă, astfel încât poziţia cu nu-
mărul 1 este de fapt poziţia de start iar poziţia cu numărul de ordine N este poziţia ţintă. Pen-
tru fiecare poziţie definită va fi transmis de la PC către Unitatea de comandă un şir de caracte-
re ASCII corespunzător formatului instrucţiunii.

II.3. Lansarea mişcării pe traiectorie continuă

După ce toate cele N poziţii (1,2,3,...,N-1, N) au fost definite, urmează transferul de la


PC către Unitatea de comandă a unei comenzi “MC 1,N” prin care se realizează o deplasare
"continuă" între poziţiile 1 şi N respectiv fără oprire în poziţiile 2,3,...,N-1.

61
II.4. Schema logică a programului de comandă

În fig.11.1. s-a reprezentat schema logică a programului de comandă. Programul înce-


pe cu introducerea de la tastatura calculatorului PC a coordonatelor carteziene ale poziţiei de
start (1) respectiv ale poziţiei ţintă (2). Tot de la tastatură se introduce numărul N al poziţiilor
prin care se aproximează traiectoria (3).

Fig.11.1.

62
Se defineşte matricea corespunzătoare poziţiei POZ1, după care se trece la calculul po-
ziţiilor pentru valorile succesive ale lui r. Pentru prima poziţie (k = 1) se ia r = 0, iar pentru
poziţiile următoare (11) se incrementează valoarea lui r (12). Coordonatele poziţiei POZk se
determină (8) numai după ce s-au calculat termenii matricii D(r) pentru valoarea curentă a lui
r (7). Pentru termenii matricii POZk se stabileşte un format cu maxim o cifră zecimală (9),
prin înmulţire cu 10, rotunjire la cel mai apropiat număr întreg şi apoi prin împărţire cu 10.
Urmează definirea poziţiei "k", prin transmiterea de la calculator PC a unei ins-
trucţiuni PD (10), în care coordonatele X, Y, Z, P şi R sunt chiar termenii matricii POZk cal-
culat anterior. După ce toate cele N poziţii au fost definite, adică dacă după ultima in-
crementare a variabilei r aceasta a devenit mai mare decât 1, se comandă pornirea mişcării
continue prin transmiterea de la calculatorul PC a instrucţiunii MC (14).

III. Modul de lucru

1. Se analizează modul de comandă pe traiectorie continuă.


2. Se analizează modul de calcul al poziţiilor intermediare cu ajutorul matricii de conducere.
3. Se completează următorul programul de comandă:

'********PROGRAM DE COMANDA PE TRAIECTORIE CONTINUA**********


'
10 OPEN "COM1:9600,E,7,2" FOR RANDOM AS #1
20 PRINT "COORDONATELE CARTEZIENE DE START:"
30 INPUT "X1=", X1
.
.
80 PRINT "COORDONATELE CARTEZIENE DE TINTA:"
90 INPUT "X2=", X2
.
.
140 PRINT "NUMARUL POZITIILOR INTERMEDIARE:"
150 INPUT "N=", N
160 POZ1(1) = X1
.
.
210 PRINT "CALCULUL SI DEFINIREA POZITIILOR INTERMEDIARE:"
220 K = 1
230 r = 0
240 DO WHILE R <= 1
250 D(1) = 1 + r * (X2 / X1 - 1)
.
.
300 COMANDA$ = "PD" + STR$(K)
310 FOR I = 1 TO 5
320 POZK(I) = POZ1(I) * D(I)
330 POZK(I) = CINT(10 * POZK(I)) / 10
340 COMANDA$ = COMANDA$ + ...
350 NEXT I
360 PRINT COMANDA$
370 PRINT #1, COMANDA$
380 K=K+1
390 r = r + ...
400 LOOP

63
410 PRINT "TRANSMITEREA COMENZII DE MISCARE CONTINUA MC:"
420 COMANDA$ = "MC" + ...
430 PRINT COMANDA$
440 PRINT #1, COMANDA$
450 END

4. Se dezactivează cutiile de instruire.


5. Se lansează programul de comandă şi se studiază funcţionarea ei.

Observaţie:
• La alegerea poziţiilor de start şi de ţintă trebuie avut în vedere că atât aceste poziţii cât şi
poziţiile intermediare (care vor fi calculate respectiv definite) trebuie să fie situate strict în
spaţiul de lucru al robotului. În caz contrar apare eroare la execuţia instrucţiunii PD şi co-
manda de deplasare MC nu va fi executată.

IV. Conţinutul referatului

1. Consideraţiile teoretice privind comanda robotului RV-M1 pe traiectorie continuă.


2. Schema logică a programului de comandă.
3. Programul de comandă sub formă comentată.

64
Lucrarea nr.12.

DIALOGUL ÎNTRE SISTEMUL DE COMANDĂ


AL ROBOTULUI INDUSTRIAL ŞI OPERATORUL UMAN

I. Scopul lucrării

Lucrarea are ca obiectiv familiarizarea studenţilor cu modalităţile de comunicare între


sistemul de comandă al unui robot industrial şi operatorul uman. Se consideră că dialogul cu
operatorul uman constituie una dintre sarcinile de bază ale sistemului de conducere. În acest
sens în cadrul lucrării se studiază posibilităţile de comunicare, de la un calculator PC, cu
Unitatea de comandă, cu scopul obţinerii unor informaţii privind starea sistemului micro-robot
RV-M1.

II. Consideraţii teoretice

Întrucât un sistem de conducere pentru un robot industrial este construit în jurul unui
sistem de calcul, el este dotat cu o structură de echipament de comunicare cu omul, tipic
calculatoarelor: display, consolă cu tastatură specializată, sistem de introducere a programelor
etc.
Specific pentru echipamentul de conducere al unui robot industrial este prezenţa cutiei
de instruire (Teach In Box). Această cutie de instruire este prevăzută cu o tastatură ce permite
deplasarea manuală a robotului, memorarea diferitelor poziţii din spaţiu, cu un afişaj cu 7
segmente, pe care se poate vizualiza numărul de ordine al poziţiei programate (sau memorate),
iar uneori se pot vizualiza şi coordonate (carteziene sau c.c.c.), respectiv linii de program. În
acest ultim caz cutia de instruire permite şi introducerea (manuală) a programului de aplicaţie
în memoria echipamentului de conducere.
În cazul sistemelor de conducere care se pot interfaţa cu un calculator personal (de
obicei) introducerea programului de aplicaţie se face de la tastatura calculatorului. În acest caz
calculatorul personal se poate utiliza atât pentru editarea programului de aplicaţie cât şi pentru
obţinerea unor informaţii privind starea (poziţia) robotului industrial, sau informaţii privind
datele memorate de echipamentul de conducere (coordonatele poziţiilor memorate, linii de
program etc.).

II. 1. Posibilităţile de dialog cu operatorul în cazul robotului RV-M1

În cazul sistemului de conducere al robotului RV-M1 dialogul cu operatorul, pe lângă


posibilităţile oferite de cutia de instruire – Teach In Box (prezentate în cadrul lucrării nr.2),
este posibil şi prin intermediul unui calculator personal. Pentru un schimb bidirecţional al
informaţiilor este necesară o legătură serială de tip RS232C între Unitatea de comandă a
robotului şi calculatorul personal. Toate datele sunt transmise şi recepţionate sub forma unor
caractere ASCII.
De la calculatorul personal se pot transmite către Unitatea de comandă numai instruc-
ţiunile standard, specifice acestui robot. În cadrul lucrării vor fi studiate acele instrucţiuni care
servesc la obţinerea unor informaţii de la Unitatea de comandă privind starea sistemului mi-
cro-robot. Aceste macroinstrucţiuni îi permit calculatorului personal ca să citească "date" din
memoria Unităţii de comandă. Aceste date pot fi: date referitoare la coordonatele poziţiei cu-

65
rente (sau ale unei poziţii memorate indicată prin număr), linii de program, starea intrărilor
numerice, valoarea unui contor şi modul de eroare.

WH (Where - unde) este o instrucţiune prin care se realizează citirea coordonatelor carte-
ziene ale poziţiei curente, chiar dacă poziţia nu a fost memorată. Exemplu de utiliza-
re prin intermediul limbajului Qbasic:

10 OPEN "COM1:9600,E,7,2" FOR RANDOM AS #1


20 PRINT #1, "WH"
30 LINE INPUT #1, A$
40 PRINT "POZITIA CURENTA=";A$
50 END

În linia 10 se specifică caracteristicile comunicaţiei care vor fi utilizate atât la transfer


cât şi la recepţie (portul serial, viteza de transfer, paritate, număr biţi de date, număr biţi de
stop). În linia 20 este transmisă instrucţiunea "WH" către Unitatea de comandă, iar în linia 30
se recepţionează un şir de caractere ASCII care reprezintă coordonatele poziţiei curente. În li-
nia 40 se realizează afişarea pe monitorul calculatorului a mesajului "POZITIA CURENTA=",
după care se afişează şirul de caractere recepţionat de la Unitatea de comandă. La rularea pro-
gramului, pe monitorul calculatorului se afişează de exemplu:

POZITIA CURENTA= +10.0, +380.0, +300.0, -70.0, -40.0

unde primele trei valori sunt coordonatele X, Y, şi Z ale poziţiei curente exprimate în mm, iar
ultimele două valori se referă la poziţia articulaţiei de rostogolire (coordonata P), respectiv la
poziţia articulaţiei de rotire (coordonata R), exprimate în grade.

PR (Position Read) este o instrucţiune prin care se realizează citirea coordonatelor carte-
ziene ale unei poziţii specificate prin număr. Astfel se pot citi şi coordonatele poziţii-
lor memorate, care pot fi şi diferite de poziţia curentă.

10 OPEN "COM1:9600,E,7,2" FOR RANDOM AS #1


20 INPUT "NUMARUL POZITIEI=", P
30 PRINT #1, "PR" + STR$(P)
40 LINE INPUT #1, A$
50 PRINT A$
60 END

În linia 20 se citeşte de la tastatură numărul poziţiei pentru care vrem să aflăm coordo-
natele carteziene. Valoarea citită se memorează prin intermediul variabilei P. În linia 30 se
transmite către Unitatea de comandă instrucţiunea PR şi valoarea variabilei P sub forma unui
şir de caractere. În linia 40 se realizează recepţionarea coordonatelor poziţiei specificate, care
se afişează la linia 50.

LR (Line read) este o instrucţiune prin care se realizează citirea unei linii de program
(existent şi indicat prin număr) din memoria Unităţii de comandă.

66
10 OPEN "COM1:9600,E,7,2" FOR RANDOM AS #1
20 INPUT "NUMARUL LINIEI=", P
30 PRINT #1, "LR" + STR$(P)
40 LINE INPUT #1, A$
50 PRINT A$
60 END

DR (Data read) este o instrucţiune prin care se realizează citirea stării intrărilor numerice.

10 OPEN "COM1:9600,E,7,2" FOR RANDOM AS #1


20 PRINT #1, "DR"
30 LINE INPUT #1, A$
40 PRINT "INPUT DATA=", A$
50 END

Prin intermediul acestei instrucţiuni este returnat din memoria Unităţii de comandă un
şir de caractere, care reprezintă o valoare numerică obţinută din însumarea algebrică a stării
logice ale tuturor intrărilor numerice.

CR (Contor read) este o instrucţiune prin care se realizează citirea valorii unui contor
specificat prin număr.

10 OPEN "COM1:9600,E,7,2" AS #1
20 INPUT "NUMAR CONTOR=", P
30 PRINT #1, "CR" + STR$(P)
40 LINE INPUT #1,A$
50 PRINT "VALOARE CONTOR=",A$
60 END

ER (Error read) este o instrucţiune prin care se realizează citirea modului de eroare. Este
returnat un caracter ASCII care poate să fie 0 (nu există eroare), 1 (în cazul modului 1
de eroare) sau 2 (în cazul modului 2 de eroare).

10 OPEN "COM1:9600,E,7,2" AS #1
20 PRINT #1, "ER"
30 LINE INPUT #1, A$
40 PRINT "ERROR MODE="; A$

Modul de eroare 2 (de exemplu: eroare de sintaxă; coordonatele specificate depăşesc


spaţiul de lucru al robotului; poziţia sau linia apelată nu există etc.) poate fi anulat prin in-
termediul instrucţiunii RS (Reset Error).
Modul de eroare 1 (de exemplu: apăsat stop general etc.) poate fi anulat doar prin
repornirea Unităţii de comandă prin intermediul întrerupătorului de pe panoul frontal.

II.2. Realizarea unui program de dialog

Prin macroinstrucţiunile prezentate în paragraful II.1. deci pot fi obţinute date din me-
moria Unităţii de comandă. Programele prezentate prin care se realizează exemplificarea mo-

67
dului de utilizare al acestor instrucţiuni, pot fi considerate (în cadrul unui program principal)
ca nişte subrutine care se apelează în momentul citirii de la tastatură a instrucţiunii corespun-
zătoare. Dacă se adaugă la aceste subrutine câteva linii de program prin care devine posibilă
transmiterea către Unitatea de comandă şi celelalte instrucţiuni (prezentate în lucrările ante-
rioare), atunci se obţine un adevărat program de dialog. Cu ajutorul unui astfel de program
pot fi transferate de la calculatorul personal "comenzi" şi pot fi recepţionate "date" de la Uni-
tatea de comandă.
Pe baza celor prezentate a fost conceput şi realizat programul DIALOG.BAS. După
lansarea acestui program prin intermediul limbajului QBASIC, se intră într-un regim de aştep-
tare comenzi. Comenzile (care sunt chiar instrucţiunile Unităţii de comandă) sunt citite de la
tastatura calculatorului (cu afişare simultană pe monitor) după care sunt transferate către Uni-
tatea de comandă, şi imediat sunt executate. În cazul în care de la tastatură s-a introdus a co-
mandă greşită (eroare de sintaxă, linie sau poziţie nedefinită, etc) apare modul de eroare nr.2
şi execuţia comenzii este suspendată. Eroarea se poate anula cu ajutorul comenzii RS (Reset
Error).

III. Modul de lucru

1. Se introduc în memoria calculatorului personal exemplele de programe pentru


instrucţiunile WH, PR, LR, DR, CR, ER, utilizând în acest scop limbajul Qbasic.
2. După punerea sub tensiune a Unităţii de comandă se verifică funcţionarea programelor in-
troduse.
3. Se studiază programul DIALOG.BAS.

IV. Conţinutul referatului

1. Consideraţii teoretice privind conceperea şi realizarea unui program de dialog cu operato-


rul.
2. Exemplele de program pentru instrucţiunile WH, PR, LR, DR, CR, ER.

68
BIBLIOGRAFIE

[1]. Barabás, T., Vesselényi, T., Robotică – Conducerea şi programarea roboţilor industriali
– Probleme şi metode de bază, Editura Universităţii Oradea, 2004
[2]. Borangiu, T., Sisteme educaţionale în robotică, Editura Tehnică, Bucureşti, 1991
[3]. Gavriş, M., Barabás, T., Comanda roboţilor – Îndrumător de laborator, Lito
Universitatea din Oradea, 1996
[4]. Kovács, Fr., Rădulescu, C., Roboţi industriali, Universitatea Tehnică din Timişoara, 1992
[5]. * * * Industrial Micro-Robot System RV-M1-Manual de operare, Mitsubishi Electric
[6]. * * * CIM-2000 Mechatronics Training System, Degem System LTD, 1992

69

S-ar putea să vă placă și