253421394-ROB-II-1

32
ROBOTICĂ II - Note de curs – M. Niţulescu 1 - 1 1. SISTEMUL ROBOT ABB IRB 1400 1.1 Descrierea sistemului robot IRB 1400 Ceea ce denumim pe scurt "robotul ABB IRB 1400" este în realitate un "sistem-robot" cu o complexitate deosebită, proiectat pentru o clasă largă de aplicaţii robotizate care se efectuează în mod curent în cadrul sistemelor flexibile de fabricaţie. Pentru aceasta, sistemul-robot IRB 1400 dispune de o structură "deschisă" hardware- software, adoptată special pentru a furniza o flexibilitate maximă în raport cu cerinţele aplicaţiilor posibile. Prin diferite tipuri de interfeţe specializate, el poate comunica uşor cu alte sisteme exterioare. Din punct de vedere al structurii mecanice, robotul ABB IRB 1400 este un robot industrial cu 6 articulaţii de tip rotaţie, în aşa-numita configuraţie full-axis. Schema sa cinematică grupează primele 3 articulaţii de la bază într-o configuraţie de tip "orizontal-articulat", iar următoarele 3 articulaţii într-o configuraţie de tip "terminal complect decuplat". Rezultă deci faptul că robotul este capabil să execute poziţionarea şi orientarea complectă a efectorului în interiorul spaţiului său de operare. Robotul este echipat cu un sistem de operare denumit BaseWare OS, care controlează fiecare aspect esenţial al robotului pe durata funcţionării sale, cum ar fi de exemplu controlul mişcării, dezvoltarea şi execuţia programelor funcţionale, comunicaţiile robotului cu dispozitive auxiliare etc. Pentru funcţionalităţi suplimentare, sistemul de operare BaseWare OS poate fi dotat cu module software specializate, ca de exemplu: Suport pentru aplicaţii speciale: sudură cu arc electric, depunerea adezivilor etc. Comunicaţii cu alte dispozitive externe: facilităţi de comunicaţie în reţea de calculatoare. Funcţii avansate: multitasking, control senzorial evoluat etc. Pentru de a răspunde cât mai flexibil cerinţelor posibile din anumite categorii de aplicaţii, robotul IRB 1400 este oferit în două variante constructive, respectiv: Varianta de bază IRB 1400, pentru montarea normală pe o suprafaţă. Marea majoritate a roboţilor industriali sunt construiţi în această variantă (denumită şi floor mounting). Varianta modificată IRB 1400H, pentru montarea suspendată inversată (de tip "portal"). Această variantă este cunoscută sub denumirea de inverted mounting. Sistemul robot IRB 1400 dispune de două componente fundamentale: Structura mecanică (Figura 1.1), adeseori denumită şi "manipulatorul" sau "braţul" robotului IRB 1400". Controller-ul sistemului robot (Figura 1.2), care conţine partea electronică necesară controlului său funcţional, alimentării cu energie electrică şi interfaţării cu alte echipamente exterioare. Aşa cum se poate observa din Figura 1.2, pe controller sunt dispuse alte două elemente importante, care concură la realizarea funcţiilor acestuia: panoul operator (Operator's panel) prezentat în Figura 1.3 şi consola de programare (Teach pendant) prezentată în Figura 1.4.

description

ds

Transcript of 253421394-ROB-II-1

Page 1: 253421394-ROB-II-1

ROBOTICĂ II - Note de curs – M. Niţulescu

1 - 1

1. SISTEMUL ROBOT ABB IRB 1400 1.1 Descrierea sistemului robot IRB 1400 Ceea ce denumim pe scurt "robotul ABB IRB 1400" este în realitate un "sistem-robot" cu o complexitate deosebită, proiectat pentru o clasă largă de aplicaţii robotizate care se efectuează în mod curent în cadrul sistemelor flexibile de fabricaţie. Pentru aceasta, sistemul-robot IRB 1400 dispune de o structură "deschisă" hardware-software, adoptată special pentru a furniza o flexibilitate maximă în raport cu cerinţele aplicaţiilor posibile. Prin diferite tipuri de interfeţe specializate, el poate comunica uşor cu alte sisteme exterioare. Din punct de vedere al structurii mecanice, robotul ABB IRB 1400 este un robot industrial cu 6 articulaţii de tip rotaţie, în aşa-numita configuraţie full-axis. Schema sa cinematică grupează primele 3 articulaţii de la bază într-o configuraţie de tip "orizontal-articulat", iar următoarele 3 articulaţii într-o configuraţie de tip "terminal complect decuplat". Rezultă deci faptul că robotul este capabil să execute poziţionarea şi orientarea complectă a efectorului în interiorul spaţiului său de operare. Robotul este echipat cu un sistem de operare denumit BaseWare OS, care controlează fiecare aspect esenţial al robotului pe durata funcţionării sale, cum ar fi de exemplu controlul mişcării, dezvoltarea şi execuţia programelor funcţionale, comunicaţiile robotului cu dispozitive auxiliare etc. Pentru funcţionalităţi suplimentare, sistemul de operare BaseWare OS poate fi dotat cu module software specializate, ca de exemplu:

• Suport pentru aplicaţii speciale: sudură cu arc electric, depunerea adezivilor etc. • Comunicaţii cu alte dispozitive externe: facilităţi de comunicaţie în reţea de

calculatoare. • Funcţii avansate: multitasking, control senzorial evoluat etc.

Pentru de a răspunde cât mai flexibil cerinţelor posibile din anumite categorii de aplicaţii, robotul IRB 1400 este oferit în două variante constructive, respectiv:

• Varianta de bază IRB 1400, pentru montarea normală pe o suprafaţă. Marea majoritate a roboţilor industriali sunt construiţi în această variantă (denumită şi floor mounting).

• Varianta modificată IRB 1400H, pentru montarea suspendată inversată (de tip "portal"). Această variantă este cunoscută sub denumirea de inverted mounting.

Sistemul robot IRB 1400 dispune de două componente fundamentale:

• Structura mecanică (Figura 1.1), adeseori denumită şi "manipulatorul" sau "braţul" robotului IRB 1400".

• Controller-ul sistemului robot (Figura 1.2), care conţine partea electronică necesară controlului său funcţional, alimentării cu energie electrică şi interfaţării cu alte echipamente exterioare. Aşa cum se poate observa din Figura 1.2, pe controller sunt dispuse alte două elemente importante, care concură la realizarea funcţiilor acestuia: panoul operator (Operator's panel) prezentat în Figura 1.3 şi consola de programare (Teach pendant) prezentată în Figura 1.4.

Page 2: 253421394-ROB-II-1

ROBOTICĂ II - Note de curs – M. Niţulescu

1 - 2

Oprire de urgenţă (Ciupercă de avarie)

Buton (cu lampă) de activare a acţionărilor

- MOTORS ON -

Selectorul modului de operare

Contor al orelor de funcţionare

Figura 1.3 Panoul operator în vedere frontală.

Figura 1.1 Structura mecanică a robotului IRB 1400 în vedere de ansamblu.

Comutator general de alimentare electrică

Consola de programare (Teach pendant)

Unitate de memorie externă (Floppy disk)

Panoul operator

Figura 1.2 Controller-ul robotului IRB 1400 în vedere de ansamblu.

Page 3: 253421394-ROB-II-1

ROBOTICĂ II - Note de curs – M. Niţulescu

1 - 3

Prin construcţie, panoul operator (Operator's panel) este amplasat fix pe carcasa controller-ului. Totuşi, el poate fi extras şi montat extern, spre exemplu în afara zonei de amplasare a robotului şi a controller-ului său, astfel încât accesul personalului de deservire să fie optimizat. Aşa cum se poate observa din Figura 1.3, panoul operator conţine 4 elemente principale:

• Un contor al orelor de funcţionare. Scopul său este identificarea intervalelor de timp la care se impune efectuarea unor operaţii obligatorii de întreţinere tehnică a robotului, în conformitate cu cerinţele producătorului.

• Un buton destinat opririi de urgenţă a robotului atunci când se produce (ori este pe cale să se producă) un incident în spaţiul său de operare. Acest buton are o construcţie specială, cunoscută sub denumirea de "ciupercă de avarie". De îndată ce acest buton este apăsat, robotul rămâne imobilizat instantaneu în starea mecanică curentă. Deblocarea butonului presupune anumite mişcări speciale ale operatorului, astfel încât reactivarea robotului să nu fie accidentală.

• Un buton de activare a acţionărilor electrice din structura robotului, denumit Motors On. Prin apăsarea acestui buton sunt energizate toate acţionările robotului, aspect evidenţiat şi prin aprinderea lămpii interne a butonului (ceea ce face observabilă de la distanţă setarea acestei opţiuni, potenţial "periculoasă").

• Selectorul modului de operare. Aceasta este o cheie tripoziţională prin care operatorul poate stabili unul dintre următoarele regimuri funcţionale:

Automatic mode. Modul de funcţionare automat este folosit atunci când se doreşte ca robotul să execute un program funcţional în condiţii "reale şi complecte".

Manual mode at reduced speed. Modul manual de operare al robo-tului, cu o viteză redusă la o valoare de max. 250 mm/s pentru TCP şi fiecare articulaţie, este util în procesul de testare a unui nou program.

Manual mode at full speed (option). Modul manual de operare al robotului, cu viteza impusă prin program pentru fiecare mişcare, este opţional şi nestandardizat, dar util în testarea unui nou program.

În cadrul unui sistem-robot ABB, consola de programare (Teach pendant)

ocupă o poziţie extrem de importantă deoarece, împreună cu panoul operator, permite efectuarea tuturor operaţiilor de programare pentru robot. Figura 1.4 prezintă aspectul general al consolei de programare în vedere frontală. Consola de programare este legată de carcasa controller-ului printr-un cablu electric cu lungimea de 5-15 m, ceea ce permite programatorului deplasarea în proximitatea efectorului robot pentru a efectua cu calitatea necesară regimurile de instruire. De menţionat faptul că şi consola de programare (ca şi panoul operator) poate fi extrasă şi montată extern, la distanţă de robot şi controller-ul său, astfel încât accesul personalului de deservire să fie optimizat. În acest fel robotul poate fi controlat "de la distanţă" pe cale serială, cu ajutorul unui:

• "Panou general de comandă" (compus din cele două elemente ale sistemului) • Calculator de uz general PC • Controller logic programabil PLC

Page 4: 253421394-ROB-II-1

ROBOTICĂ II - Note de curs – M. Niţulescu

1 - 4

Consola de programare ABB este proiectată astfel încât: • Toate informaţiile necesare utilizatorului sunt afişate pe un display (ecran),

folosind "principiul dialogului" prin ferestre, meniuri, şi funcţii alocate unor butoane soft. În felul acesta utilizatorul nu trebuie să aibă o experienţă deosebită în programare sau în ştiinţa calculatoarelor, fiind suficientă o minimă familiari-zare cu mediul creat de sistemul de operare Windows pentru a înţelege rapid şi modul de utilizare al consolei.

• Toate operaţiile aferente programării robotului pot fi efectuate numai de la consolă.

• Toate informaţiile şi terminologia specifică, inclusiv programul funcţional, sunt implicit afişate în limba engleză. Utilizatorul poate selecta însă şi o altă limbă de circulaţie internaţională (franceză, germană, spaniola, portugheză, italiană, japoneză, suedeză etc.).

Panoul frontal al consolei de programare ABB (Figura 1.4) indică prezenţa următoa-relor 5 elemente principale:

• Un display (ecran cu cristale lichide) care poate afişa simultan 16 linii, fiecare linie fiind compusă din 40 de caractere.

• Un joystick (cu 3 axe) folosit pentru a deplasa articulaţiile robotului în aşa-numita “fază de instruire“ (fază inclusă în procesul de programare funcţională).

• Un grup de 44 taste funcţionale. • Un grup de 4 butoane. Dintre acestea unele au funcţii predefinite de către

constructor, iar altele pot primi funcţii după dorinţa utilizatorului. Din prima categorie, cel mai important este “butonul de validare” (Enabling device) plasat pe partea laterală dreapta, care asigură siguranţa necesară pe durata operării cu consola. El este folosit când se doreşte mişcarea robotului, fie folosind joystick-ul, fie pe durata execuţiei unei secvenţe de program. Pentru acest scop, butonul este de tip "tripoziţional, cu revenire automată prin resort". Dacă butonul nu este acţionat de degetul operatorului sau el este împins până la capăt, toate motoarele electrice din componenţa acţionărilor robotului sunt decuplate, adică trecute în starea MotorsOFF. Dacă butonul este împins până la jumătatea cursei sale, atunci toate motoarele electrice din componenţa acţionărilor robotului sunt cuplate, adică trecute în starea MotorsON. Ca o măsură suplimentară de

Figura 1.4 Consola de programare în vedere frontală.

Butoane

Joystick

“Ciupercă de avarie"

Taste funcţionale

Display

Page 5: 253421394-ROB-II-1

ROBOTICĂ II - Note de curs – M. Niţulescu

1 - 5

siguranţă, după o apăsare complectă butonul trebuie mai întâi eliberat şi apoi apăsat până la jumătatea cursei sale pentru a obţine starea MotorsON.

• Un buton de tip “ciupercă de avarie” pentru oprirea de urgenţă a robotului. Prin apăsarea sa, robotul se opreşte instantaneu, indiferent de starea în care se află sistemul-robot. Apăsarea acestui buton are ca efect trecerea tuturor motoarelor electrice în starea MotorsOFF. După apăsare, butonul rămâne blocat în această poziţie, iar revenirea sa în poziţia iniţială necesită efectuarea unei mişcări meca-nice speciale din partea utilizatorului (ceea ce previne deblocarea sa accidentală şi nedorită). Revenirea în starea iniţială are ca efect trecerea tuturor motoarelor electrice ale robotului în starea MotorsON.

1.2 Structura mecanică a robotului IRB 1400 În Figura 1.5 şi Figura 1.6 sunt prezentate principalele date geometrice referitoare la dimensiunile structurii mecanice ale robotului IRB 1400.

Figura 1.5 Dimensiuni geometrice ale robotului IRB 1400 în vedere laterală.

Figura 1.6 Dimensiuni geometrice ale robotului IRB 1400 în vedere de sus.

Flanşa "port terminal"

Page 6: 253421394-ROB-II-1

ROBOTICĂ II - Note de curs – M. Niţulescu

1 - 6

În Figura 1.7 şi Figura 1.8 sunt prezentate principalele date geometrice referitoare la forma şi dimensiunile spaţiului de operare pentru robot, în varianta cu amplasare "normală" IRB 1400 şi în varianta de montare inversată (suspendată) IRB 1400H.

Forma spaţiului de operare indicată de cele două figuri este o porţiune care poate fi aproximată cu o zonă dintr-o sferă. De fapt, aceasta este o trăsătură comună tuturor structurilor robotice încadrate în clasa cinematică constructivă cunoscută sub denumirea de "orizontal-articulat". În cele ce urmează, referirile valorice vor fi făcute numai la varianta "normală" a robotului IRB 1400, adică cea ilustrată de Figura 1.7.

Performanţele statice. Forma şi dimensiunile spaţiului de operare sunt datorate atât schemei cinematice de tip "orizontal-articulat" cât şi limitelor (predefinite) pentru curse. Valorile asociate tuturor articulaţiilor robotului IRB 1400 (performanţe statice) pot fi observate în Tabelul 1.1. Figura 1.9 prezintă câteva poziţii extreme semnificati-ve pe anvelopa spaţiului de operare. Valorile asociate acestora în privinţa parametrilor de poziţionare din articulaţiile 2 şi 3 ale robotului sunt indicate în Tabelul 1.2.

Figura 1.7 Dimensiuni ale spaţiu-lui de operare pentru amplasarea 'normală" a robotului IRB 1400.

Figura 1.8 Dimensiuni ale spaţiu-lui de operare pentru amplasarea "inversată" a robotului IRB 1400.

Page 7: 253421394-ROB-II-1

ROBOTICĂ II - Note de curs – M. Niţulescu

1 - 7

Tabelul 1.1 Articulaţiile robotului IRB 1400 şi domeniile lor de deplasare.

Domeniul de mişcare Număr articulaţie Tipul articulaţiei Extremă pozitivă Extremă negativă Articulaţia 1 Axis 1

Rotaţie verticală Rotation motion + 1700 - 1700

Articulaţia 2 Axis 2

Rotaţie orizontală Arm motion + 700 - 700

Articulaţia 3 Axis 3

Rotaţie orizontală Arm motion + 700 - 650

Articulaţia 4 Axis 4

Încheietură Wrist motion + 1500 - 1500

Articulaţia 5 Axis 5

Îndoire Bend motion + 1150 - 1150

Articulaţia 6 Axis 6

Rotaţie Turn motion + 3000 - 3000

Tabelul 1.2 Valori asociate articulaţiilor pentru poziţiile extreme din spaţiul de operare.

Poziţia robotului în spaţiul de operare Articulaţia 2 Articulaţia 3

Pos 1 - 700 + 700 Pos 2 - 700 - 350 Pos 3 - 700 - 650 Pos 4 - 430 - 650 Pos 5 - 60 - 650 Pos 6 + 700 - 650 Pos 7 + 700 + 700

Figura 1.9 Poziţii extreme ale robotului în spaţiul de operare.

Page 8: 253421394-ROB-II-1

ROBOTICĂ II - Note de curs – M. Niţulescu

1 - 8

Pentru a creşte siguranţa funcţională în cadrul unor aplicaţii, este uneori util ca spaţiul de operare al robotului să fie micşorat. În felul acesta un robot va dispune de un spaţiu de operare "restricţionat", care va fi practic numai o porţiune din spaţiul de operare disponibil în configuraţia standard. Prin restricţionarea spaţiului de operare în anumite aplicaţii robotizate se pot preveni simplu accidentele de muncă. Robotul IRB 1400 oferă şi această facilitate. "Restricţionarea" spaţiului de operare se obţine practic prin micşorarea domeniilor de mişcare (curselor) din anumite articulaţii. Programatorul poate interveni cu limitări numai asupra articulaţiilor 1, 2 sau 3, ceea ce este absolut suficient şi normal dacă avem în vedere faptul că aceste articulaţii determină în mod esenţial volumul spaţiului de operare ("sporul" adus de articulaţiile 4, 5 şi 6 este minim la o structură cinematică "orizontal articulată cu terminal decuplat", deoarece ele asigură numai controlul orientării efectorului). În acest scop este disponibil un kit suplimentar şi complect (din punct de vedere al montării mecanice într-o articulaţie), format în esenţă din doi limitatori de tip "deconectat prin aplicarea unei forţe externe". Aceştia pot fi montaţi de către utilizatorul robotului în interiorul domeniului nominal al celor 3 articulaţii indicate. Practic, din analiza datelor incluse în Tabelul 1.1 rezultă faptul că o soluţie eficientă poate fi restricţionarea unei articulaţii fie numai în domeniul pozitiv, fie numai în cel negativ. Recomandările producătorului pentru cele 3 articulaţii sunt:

• Articulaţia 1: Domeniul nominal de mişcare este ± 1700 conform datelor din Tabelul 1.1. Folosind cei doi limitatori, domeniul poate fi ajustat de la ± 1500 (domeniu maxim) până la ± 500 (domeniu minim). Fiecare din cei doi limitatori poate fi montat oriunde în domeniul [- 1500, - 500], respectiv [+ 1500, + 500].

• Articulaţia 2: Domeniul nominal de mişcare este ± 700. Folosind cei doi limitatori, domeniul poate fi ajustat în intervalul [- 300, + 500].

• Articulaţia 3: Domeniul nominal de mişcare este [- 650, + 700]. Folosind cei doi limitatori, domeniul poate fi ajustat astfel încât robotul să nu se poată deplasa decât în domeniul negativ, adică extrema pozitivă să fie în utilizare 00 (sau maxim 100). În felul acesta se previn accidente de muncă foarte periculoase, la nivelul capului omului.

Performanţele dinamice ale robotului IRB 1400 sunt definite în conformitate cu

standardul ISO 9283. Acesta prevede efectuarea testelor pe un lot de roboţi de acelaşi tip, cu o sarcină acceptată, o viteză de 1 m/s şi toate cele 6 articulaţii în mişcare:

• Repetabilitatea unidirecţională de poziţionare: RP = 0,05 mm • Acurateţea pe traiectorie liniară: AT = 0,45 – 1,0 mm • Repetabilitatea pe traiectorie liniară: RT = 0,14 – 0,25 mm • Rezoluţie: aproximativ 0,010 pe fiecare articulaţie • Timpul minim de poziţionare în jurul poziţiei ţintă (proximitate de 0,2 mm):

• 0,2 – 0,35 sec. (pentru o traiectorie liniară cu lungimea de 35 mm) • 0,45 – 0,6 sec. (pentru o traiectorie liniară cu lungimea de 350 mm)

• Viteză maximă (Tabelul 1.3). De notat că, pentru a preveni încălzirea excesivă a acţionărilor în cazul unor programe care solicită intens şi repetat deplasări cu viteză maximă, valoarea acesteia este controlată permanent în fiecare articulaţie.

Page 9: 253421394-ROB-II-1

ROBOTICĂ II - Note de curs – M. Niţulescu

1 - 9

Tabelul 1.3 Performanţele de viteză maximă în articulaţiile robotului IRB 1400.

Articulaţia robotului IRB 1400 Viteză maximă Articulaţia 1 1200

/ secundă Articulaţia 2 1200

/ secundă Articulaţia 3 1200

/ secundă Articulaţia 4 2800

/ secundă Articulaţia 5 2800

/ secundă Articulaţia 6 2800

/ secundă

Cerinţele legate de instalarea şi operarea robotului sunt următoarele:

Cerinţele privind operarea robotului:

• Standard de protecţie IEC 529. • Protecţie “anti–ex”: Robotul IRB 1400 nu trebuie să opereze în medii explozive. • Temperaturi ambientale în funcţionare:

• Robotul IRB 1400 (manipulatorul): + 50C … + 450C • Controlle-rul robotului IRB 1400: + 50C … + 520C

• Umiditatea mediului: maxim 95 % la temperatură constantă.

Cerinţele privind alimentare electrică a robotului:

• Tensiune de alimentare nominală: 200 - 600 V, trifazat cu fir de nul, variaţii de + 10% şi - 15%.

• Frecvenţa reţelei: 48,5 Hz până la 61,8 Hz. • Putere necesară la alimentare: 4,5 kVA – 14,4 kVA. • Durată de viaţă a acumulatorilor interni: 1.000 h.

Cerinţele privind amplasarea robotului:

• Greutate robot IRB 1400 (manipulator): 225 Kg. • Greutate controller IRB 1400: 240 Kg. • Dimensiuni controller: 950 x 800 x 540 mm. • Zgomotul sistemului de ventilaţie al controllerului: < 70 dB. • Fixarea de sol: conform specificaţiilor de catalog şi a desenelor asociate.

La fel ca şi în cazul majorităţii roboţilor de uz industriali, structura mecanică a robo-tului IRB 1400 dispune de o aşa-numită "flanşă port-terminal" în extremitatea sa superioară, care poate fi observată în Figura 1.1 sau Figura 1.5. Acesta este o piesă mecanică rigidă, prevăzută cu mai multe găuri de prindere, care pot servi la ataşarea unui "terminal" (efector). Tipul concret al acestuia trebuie ales sau construit de către fiecare utilizator, în raport cu specificitatea aplicaţiei în care robotul este inclus. Sarcina totală care se poate ataşa robotului IRB 1400 la nivelul "flanşei port-terminal", incluzând aici masa efectorului-robot şi eventual masa ataşată acestuia (spre exemplu atunci când efectorul este un gripper) trebuie să respecte diagrama din Figura 1.10 pentru diferitele poziţii ale centrului său de greutate. În general aceasta nu poate depăşi 5 Kg. De asemenea, o sarcină suplimentară de maxim 10 Kg poate fi ataşată pe braţul superior (spre exemplu transformatorul unui pistol de sudură).

Page 10: 253421394-ROB-II-1

ROBOTICĂ II - Note de curs – M. Niţulescu

1 - 10

Pentru optimizarea funcţionării în ciclurile automate, robotul IRB 1400 foloseşte în controlul mişcărilor din articulaţii un software specializat şi foarte performant, denumit Quick MoveTM, care optimizează toţi parametrii de servo-control în funcţie de sarcina manipulată, localizarea instantanee a acesteia în spaţiul de operare, viteza sa de deplasare şi direcţia de mişcare. Datorită acestui pachet software:

• Utilizatorul nu trebuie să ajusteze nici un parametru pentru a obţine traiectoria corectă, orientarea efectorului sau regimul de viteză dorit.

• Un regim optim (maximal) de acceleraţii este stabilit automat, cu excepţia cazurilor când sunt manipulate obiecte fragile iar utilizatorul doreşte să limiteze expres valorile parametrilor de accelerare / decelerare.

• Intervenţia utilizatorului în privinţa obţinerii unui timp minim al ciclurilor automate este minimă.

• Chiar după oprirea de urgenţă a robotului, întreruperea alimentării electrice sau alte cauze care determină întreruperea unui program din funcţionare, Quick Move asigură continuarea acestuia din punctul în care s-a realizat întreruperea.

• Într-o manieră controlată de utilizator, robotul poate să treacă prin “punctele singulare” din spaţiul său de operare, spre exemplu puncte în care axele de mişcare asociate la două dintre articulaţiile sale coincid (sunt în prelungire).

Flanşa “port-terminal” a robotului

Distanţa măsurată în planul XY, de la axa Z la centrul de greutate

al sarcinii totale

Axa Z definită pentru sistemul de coordonate ataşat TCP

Momentul maxim de inerţie în centrul de greutate al

sarcinii totale: Jmax = 0,012 kg. m2

Figura 1.10 Diagramă pentru dimensionarea sarcinii totale ataşată "flanşei port-terminal".

Page 11: 253421394-ROB-II-1

ROBOTICĂ II - Note de curs – M. Niţulescu

1 - 11

1.3 Sisteme de coordonate (COORDINATE SYSTEMS) Figura 1.11 prezintă sistemele de referinţă care sunt asociate în mod uzual robotului IRB 1400 pe durata funcţionării sale. Aceste sisteme de referinţă sunt necesare atât pentru "descrierea şi raportarea" mişcărilor robotului, a poziţiilor şi orientărilor sale, cât şi pentru "descrierea şi raportarea" poziţiilor şi mişcărilor aferente tuturor componentelor externe care intră în structura unei aplicaţiei robotizate.

Din Figura 1.11 se remarcă definirea a 5 sisteme de coordonate: • Sistemul de coordonate universal (World coordinate system). Prin originea sa,

acesta defineşte o referinţă globală în spaţiul de amplasare al robotului. Sistemul universal de coordonate este şi o referinţă pentru toate celelalte sisteme de coordonate definite în Figura 1.11. Astfel, poziţiile ocupate succesiv de TCP-ul robot pot fi raportate unitar faţă de această referinţă universală. Considerarea sistemului de referinţă universal este foarte utilă atunci când există doi sau mai mulţi roboţi care cooperează funcţional, ori atunci când robotul cooperează cu alte dispozitive externe în cadrul unei aplicaţii.

• Sistemul de coordonate asociat bazei robotului (Base coordinate system). El este ataşat în centrul suprafeţei de sprijin al robotului pe suprafaţa de montaj.

• Sistemul de coordonate asociat efectorului (terminalului) (Tool coordinate sys-tem). Acest sistem este ataşat în aşa-numitul “punct caracteristic al terminalu-lui” TCP (Tool Center Point). Ori de câte ori se ataşează robotului de flanşa sa "port-terminal" un efector, se defineşte pentru acesta un TCP. Punctul ales pen-tru TCP poate fi centrul de simetrie al unui gripper sau al unui pistol de sudură în puncte, vârful electrodului de sudură pentru un pistol de sudură, punctul de purjare al vopselei pentru un pistol de vopsire etc. Direcţia axelor acestui sistem se alege de regulă ca în Figura 1.11. Atunci când efectorul este activ, traiectoria programată şi vitezele pe traiectorie vor fi raportate la piesa prelucrată.

Figura 1.11 Sisteme de coordonate asociate robotului IRB 1400 pentru programarea off-line.

SdC al efectorului

SdC universal

SdC al bazei

SdC utilizator

SdC piesă

Page 12: 253421394-ROB-II-1

ROBOTICĂ II - Note de curs – M. Niţulescu

1 - 12

• Sistemul de coordonate al utilizatorului (User coordinate system). Cel mai adesea, acest sistem este asociat dispozitivului care realizează fixarea unei piese pe durata cât robotul execută o anumită operaţie asupra sa.

• Sistemul de coordonate al piesei (Object coordinate system). Acest sistem este asociat piesei asupra căreia robotul execută o operaţie, iar prin comparaţie cu sistemul de referinţă anterior, acest sistem indică localizarea (adică poziţionarea şi orientarea) piesei în dispozitivul său de fixare.

Sistemele de coordonate pot fi definite (programate) astfel:

• Specificând direct setul de valori numerice asociate. • Utilizând robotul în acest scop.

În această a doua variantă, robotul este deplasat (cu acelaşi efector) prin câteva poziţii. Fiecare poziţie este specificată în sistemul de coordonate al obiectului prin raportare la poziţia şi orientarea efectorului. Acest lucru înseamnă că chiar dacă efectorul robotului se defectează şi este apoi înlocuit, programul realizat rămâne integral valabil, fiind necesară numai o nouă "redefinire geometrică" a efectorului. De asemenea, dacă un dispozitiv de prindere al piesei este deplasat în spaţiu sau se modifică localizarea piesei în dispozitivul său de fixare, numai sistemele de coordonate asociate utilizatorului şi cel asociat obiectului trebuie redefinite. 1.4 Deplasarea automată a robotului (modul PROGRAM EXECUTION) În timpul execuţiei automate a unui program funcţional, robotul IRB 1400 poate executa următoarele tipuri de mişcări:

• Mişcare la nivel de articulaţie (Joint motion). În acest regim de mişcare, toate articulaţiile robotului se deplasează individual şi ating poziţia programată în acelaşi moment de timp. Există deci o coordonare funcţională "interpolată" a articulaţiilor implicate prin baza de timp folosită.

• Mişcare liniară (Linear motion). În acest regim de mişcare punctul TCP se deplasează pe o traiectorie liniară în spaţiul de operare al robotului.

• Mişcare circulară (Circle motion). În acest regim de mişcare punctul TCP se deplasează pe o traiectorie circulară în spaţiul de operare al robotului.

Sistemul robot IRB 1400 dispune şi de un pachet software de servo-control. Acesta poate fi utilizat pentru a realiza "complianţa activă" a efectorului în raport cu o anumită piesă atunci când tipurile anterioare de mişcări nu oferă satisfacţia dorită în anumite aplicaţii (spre exemplu piesa are un contur neregulat, iar contactul cu TCP-ul este obligatoriu pentru calitatea procesului tehnologic). În această situaţie, sub controlul forţelor externe de contact (măsurate în mod continuu), robotul ajustează automat toate poziţiile definite pe traiectoria sa programată. Un exemplu clasic de aplicare a servo-controlului este sudura cu cordon continuu. Dacă localizarea (poziţia şi orientarea) piesei asupra căreia robotul execută o operaţie se modifică în timp, robotul poate identifica permanent localizarea acesteia folosind senzori digitali externi. Execuţia programului va fi ajustată automat, astfel încât toate mişcările robotului (impuse prin program) să fie adaptate noilor localizări ale piesei.

Page 13: 253421394-ROB-II-1

ROBOTICĂ II - Note de curs – M. Niţulescu

1 - 13

1.5 Deplasarea manuală a robotului (modul JOGGING) Deplasarea manuală a articulaţiilor robotului IRB 1400 (adică aşa-numita operaţie Jogging) poate fi făcută în una din următoarele variante:

• Regimul de deplasare "articulaţie cu articulaţie" (Axis-by-axis). În acest regim se poate deplasa o singură articulaţie la un moment dat sau cel mult un grup format din 3 articulaţii. Grupurile sunt predefinite, fiind formate din primele 3 articulaţii (1,2 şi 3) sau din ultimele 3 articulaţii (4, 5 şi 6) şi corespund celor două alocări posibile pe joystick-ul robotului.

• Regimul de deplasare "liniar" (Linear). În acest regim se poate deplasa spre exemplu TCP-ul robotului pe o traiectorie liniară. Traiectoria liniară poate fi raportată la unul din sistemele de coordonate menţionate anterior.

• Regimul de deplasare "reorientare în jurul TCP" (Reoriented). În acest regim robotul este capabil să menţină nemodificată poziţia spaţială a TCP-ului său, în timp ce-şi poate schimba continuu orientarea spaţială (adică se "reorientează" în jurul TCP-ului).

În modul Jogging se pot executa şi aşa-numitele "deplasări incrementale" ale unei singure articulaţii sau ale grupurilor predefinite de articulaţii. Mărimea "pasului incremental" poate fi stabilită de către programator. Deplasările incrementale sunt foarte utile pentru poziţionări de înaltă precizie ale efectorului. Efectul unei "deplasări incrementale" se traduce la nivelul efectorului prin deplasări foarte scurte ori de câte ori se acţionează asupra joystick-ului de pe consola de programare. Pe durata tuturor deplasărilor manuale ale robotului în modul Jogging, poziţiile ocupate de către robot (cât şi cele ale eventualelor sale "axe externe") pot fi afişate pe ecranul consolei de programare. 1.6 Axe externe de mişcare (EXTERNAL AXES) Controller-ul robotului IRB 1400 poate coordona suplimentar un număr maxim de 6 axe (articulaţii) externe de mişcare. Fiecare dintre aceste axe poate fi programată şi deplasată cu ajutorul consolei de programare, exact ca şi cele 6 articulaţii din structura mecanică a robotului (Figura 1.12). În scopul creşterii dimensiunilor spaţiului de operare al robotului, acesta poate fi amplasat la bază pe o cuplă suplimentară de translaţie sau pe un mecanism mai complex, care include mai multe acţionări. Acestea sunt exemple posibile pentru axe externe de mişcare ale robotului. Cele 6 axe externe de mişcare acceptate de controller pot fi grupate în anumite "unităţi mecanice", fiecare unitate realizând un anumit obiectiv în aplicaţia robotizată. Gruparea axelor externe în "unităţi mecanice" este la latitudinea proiectantului celulei flexibile robotizate. Spre exemplu, o "unitate mecanică" poate include axele care deplasează piesele brute către robot, o altă "unitate mecanică" include axele mecanismului automat de fixare a piesei brute pe durata prelucrării de către robot şi o altă "unitate mecanică" include axele mecanismului de evacuare a pieselor finite. În mod evident, toate axele externe necesare acţionării mecanismelor adiacente robotului pot fi incluse şi într-o singură "unitate mecanică".

Page 14: 253421394-ROB-II-1

ROBOTICĂ II - Note de curs – M. Niţulescu

1 - 14

Controller-ul robotului IRB 1400 poate asigura şi "coordonarea simultană" a mişcărilor robotului cu un număr de axe externe. Există însă o limitare a numărului de axe externe care pot fi incluse în "coordonarea simultană". Mai precis numai două axe externe de tip rotaţie pot fi supuse acestui proces integrator de control al mişcării, spre exemplu o axă de mişcare ataşată bazei robotului (în scopul creşterii spaţiului său de operare) şi o altă axă externă de rotaţie ataşată unui dispozitiv mecanic auxiliar. O "unitate mecanică" definită poate fi activată sau dezactivată prin programul func-ţional al robotului. Această facilitate este foarte importantă în anumite aplicaţii care impun măsuri de siguranţă funcţională sau de protecţie a operatorilor umani. Spre exemplu să considerăm cazul în care respectiva unitate de acţionare este integrată într-un dispozitiv automat de fixare a piesei, dar introducerea şi extragerea piesei din locaş se face manual de către un operator. Prezenţa operatorului în spaţiul de operare al robotului impune activarea şi dezactivarea unităţii (manual de către operator, folosind un buton), dar şi integrarea acestor operaţii în programul automat al robotului. Pentru a reduce costul investiţiei în aplicaţia robotizată, mai multe axe externe de mişcare (care însă nu sunt niciodată activate simultan în aplicaţia robotizată, evident) pot utiliza aceiaşi unitate de acţionare.

Figura 1.12 Schemă de conexiuni, componente şi soluţii de amplasare pentru modulele axelor externe.

Page 15: 253421394-ROB-II-1

ROBOTICĂ II - Note de curs – M. Niţulescu

1 - 15

În fine, programele create pentru axele externe pot fi folosite şi pentru alte "unităţi mecanice" care conţin acelaşi tip de sisteme electrice pentru acţionare. Din punct de vedere constructiv, orice axă externă trebuie să fie acţionată de un motor electric de curent alternativ, identic sau similar celor existente în articulaţiile robotului IRB 1400. Alimentarea motorului va fi deci la parametrii 5 V / 4 kHz. Fiecare motor este controlat de un modul de acţionare, care poate să fie montat în controller (maxim 3 astfel de module), sau separat, într-o altă locaţie externă acestuia. Poziţia absolută a axei va fi contorizată în numărătorul conţinut de o unitate serială de măsură SMB (Serial Measurement Board), care trebuie amplasată cât mai aproape de motor sau eventual în interiorul controller-ului, aşa cum se indică în Figura 1.12. Atunci când se utilizează mai mult de 3 axe externe, modulele de acţionare pentru axele 4, 5 şi 6 trebuie plasate în exteriorul cutiei controller-ului, aşa cum se arată în Figura 1.12. 1.7 Intrări şi ieşiri (INPUTS / OUTPUTS) Pentru creşterea flexibilităţii în raport cu aplicaţiile, sistemul-robot IRB 1400 introduce posibilitatea "distribuirii spaţiale" a intrărilor şi ieşirilor. Astfel, modulele I/O pot fi amplasate fie în controller, fie exterior acestuia. In acest ultim caz conexiunile vor fi făcute printr-un cablu multifilar adecvat. Diferite tipuri de intrări şi ieşiri (fiecare dintre acestea într-un număr convenabil) pot fi selectate şi apoi instalate de către producător în controller-ul robotului, astfel încât acesta să se "plieze" cât mai bine cerinţelor utilizatorului:

• Intrări şi ieşiri digitale (Digital inputs / outputs) • Intrări şi ieşiri analogice (Analog inputs / outputs) • Intrări şi ieşiri pentru interconectare la distanţă cu PLC-uri (Programmable

Logic Controller) din familia Allen-Bradley (Remote I/O for Allen-Bradley PLC)

• Conexiuni pentru cuplarea controller-ului robot pe magistrale de comunicaţii de tip InterBus-S Slave.

• Conexiuni pentru cuplarea controller-ului robot pe magistrale de comunicaţii de tip Profibus DP Slave.

În Tabelul 1.4 sunt descrise modulele disponibile de tip I / O care pot intra în dotarea sistemului - robot IRB 1400. În sistemul - robot IRB 1400 orice semnal de intrare sau de ieşire poate fi "configurat" de către utilizator. În acest sens:

• Fiecare semnal I / O sau grup de semnale I / O poate fi "denumit" după dorinţă şi în funcţie de aplicaţie, astfel încât numele atribuit să ajute utilizatorul (spre exemplu gripper, feeder etc.).

• Pentru fiecare semnal I / O se realizează o conexiune fizică. • Polaritatea semnalelor I / O poate fi şi ea configurată de către utilizator după

necesităţi (spre exemplu un semnal de intrare sau de ieşire poate fi configurat "activ pe nivel înalt - high " sau "activ pe nivel jos - low").

Page 16: 253421394-ROB-II-1

ROBOTICĂ II - Note de curs – M. Niţulescu

1 - 16

• Sunt posibile conexiuni încrucişate, adică conexiuni logice între intrări şi / sau ieşiri (aşa-numitele cross connections).

• Se pot defini "grupuri" de semnale de intrare care au numai împreună o anumită semnificaţie logică. Spre exemplu, un număr de până la 16 intrări digitate pot constitui un "grup" care oferă controller-ului robot codul numeric (de tip cuvânt multibit) furnizat de către un cititor de coduri-bară.

Tabelul 1.4 Module I / O disponibile pentru sistemul robot IRB 1400.

Semnale pot fi asociate şi unor funcţii speciale ale sistemului-robot (spre exemplu Program Start, aşa încât robotul să poată fi controlat de la un panou de comandă exterior controller-ului sau de la un automat PLC. În subsidiar, controller-ul robotului poate opera chiar ca şi un automat PLC, monitorizând şi controlând semnale I / O. Astfel:

• Instrucţiuni I / O pot fi executate în paralel cu controlul robotului. • Semnale de intrare pot fi conectate la rutine de supraveghere (aşa-numitele trap

routines). Când un astfel de semnal de intrare devine activ, o rutină de acest tip, aflată până atunci în "aşteptare", îşi începe execuţia şi suspendă execuţia normală a programului principal. După finalizarea execuţiei rutinei, se reia execuţia programului principal din punctul în care acesta a fost întrerupt. În cele mai multe cazuri, această procedură nu are nici un efect "vizibil" asupra mişcării robotului, adică execuţia grupului de instrucţiuni aferente trap-routin-ei nu perturbă mişcarea normală şi curentă a robotului.

Observaţii: 1. Semnalele digitale sunt dispuse în grupuri, fiecare grup conţinând câte 8 intrări sau 8 ieşiri. 2. O unitate de simulare I / O poate fi utilizată pentru a realiza aşa-numitele "cross connections", adică

simulări de conexiuni logice în absenţa circuitelor externe care generează sau primesc acestesemnale.

3. Modul specializat, dedicat numai aplicaţiilor în care robotul execută prinderea pieselor aflate înmişcare pe un conveier.

Page 17: 253421394-ROB-II-1

ROBOTICĂ II - Note de curs – M. Niţulescu

1 - 17

• Este posibilă "execuţia mascată" a unor programe (aşa-numitele background programs). Acestea sunt de regulă programe auxiliare, spre exemplu pentru monitorizarea unor semnale I / O, care rulează "în paralel" cu programul principal al robotului. Execuţia programelor "background" este posibilă numai prin activarea opţiunii de funcţionare în regim Multitasking a controller-ului, deoarece această opţiune activează un regim special de operare prin care mai multe programe pot fi derulate în paralel şi în timp real.

De menţionat şi faptul că sunt posibile şi anumite funcţii manuale asupra intrărilor şi ieşirilor, adică la cerinţa şi sub directa coordonare a operatorului. Scopul lor poate fi:

• Listarea pe consolă la un moment de dat a tuturor valorilor semnalelor I / O. • Crearea unei liste preferenţiale care să includă numai pe cele mai importante

semnale I / O pentru programator (adică o submulţime din cele existente). • Schimbarea manuală a stării logice a unui semnal de ieşire la un moment dat

(spre exemplu pentru a verifica funcţionarea unei axe externe de mişcare). • Tipărirea la imprimantă a stării curente a semnalelor I / O.

Conectarea semnalelor I / O la controller se face uzual în interiorul acestuia, fie prin conectori standardizaţi, fie prin regletele cu şuruburi de prindere a firelor, asemănător şi principial identic cu modalităţile de conectare indicate spre exemplu în Figura 1.12. Dacă este însă necesar şi util pentru aplicaţie, anumite semnale I / O pot fi "dirijate" şi către conectori amplasaţi pe partea superioară a braţului-robot (spre exemplu semna-lele I / O alocate terminalului). Aceşti conectori au legături deja cablate cu conectori amplasaţi la baza robotului prin interiorul structurii mecanice, astfel încât să se evite, pe cât posibil, legături prin cabluri exterioare robotului. Numai dacă numărul de legă-turi necesare în acest scop depăşeşte pe cel al conexiunilor deja cablate se va apela la conexiuni prin cabluri exterioare robotului. În acest sens trebuie avut permanent în vedere ca toate legăturile pentru semnale I / O să fie astfel realizate astfel încât:

• Să nu intre în "contradicţie" cu mişcarea robotului, adică să nu impieteze mişcările acestuia şi să nu fie la rândul lor distruse prin mişcările robotului.

• Să dispună de un grad de elasticitate care să asigure rezistenţa în timp a tuturor conexiunilor I / O.

Cunoaşterea în detaliu a capacităţilor de comunicaţie ale unui sistem robot cu mediul său exterior prezintă o importanţă particulară pentru orice proiectant de aplicaţii robo-tizate. Din acest motiv, în Tabelul 1.5 se prezintă, cu caracter informativ, detaliile teh-nice oferite de producător asupra particularităţilor constructive ale interfeţelor I / O.

Tabelul 1.5 Date de catalog I / O.

Page 18: 253421394-ROB-II-1

ROBOTICĂ II - Note de curs – M. Niţulescu

1 - 18

Tabelul 1.5 Date de catalog I / O (continuare).

Page 19: 253421394-ROB-II-1

ROBOTICĂ II - Note de curs – M. Niţulescu

1 - 19

Tabelul 1.5 Date de catalog I / O (continuare).

Page 20: 253421394-ROB-II-1

ROBOTICĂ II - Note de curs – M. Niţulescu

1 - 20

Tabelul 1.5 Date de catalog I / O (continuare).

În forma standard, controller-ul IRB 1400 poate fi echipat cu cel mult 4 module I / O. Numărul acestor module este limitat de către producător din considerente legate de "încărcarea excesivă" a unităţii centrale CPU (Central Processing Unity) din controller. Nu este vorba aici de o încărcare din punct de vedere al consumurilor energetice, ci de o încărcare operaţională, sub aspectul sarcinilor de monitorizare şi control al canalelor I / O, sarcini care trebuie asigurate în timp real. Un număr prea mare de canale I / O poate conduce la "blocarea" excesivă a unităţii centrale cu aceste sarcini prin programe "background", deci implicit şi la limitarea performanţelor impuse de executarea unui program funcţional complet. Pe de altă parte, în multe "aplicaţii obişnuite" , 4 module I / O sunt şi absolut suficiente. În Figura 1.13 sunt prezentate mai multe detalii constructive din interiorul controller-ului sub aspectul disponibilităţilor I / O preinstalate. Aici se poate observa localizarea geometrică a celor 4 module I / O în interiorul controller-ului, tipurile disponibile de conectori, precum şi repartizarea unor categorii de semnale I / O sau de tensiuni de alimentare.

Page 21: 253421394-ROB-II-1

ROBOTICĂ II - Note de curs – M. Niţulescu

1 - 21

1.8 Comunicaţii seriale (SERIAL COMMUNICATION) Sistemul-robot ABB IRB 1400 poate comunica simplu cu calculatoare de tip PC, imprimante, terminale sau cu alte echipamente numerice, folosind tehnologia interfeţelor seriale şi conexiuni directe, aşa cum indică Figura 1.14.

Pentru aceste scopuri, sistemul-robot IRB 1400 este dotat cu două interfeţe seriale: • O interfaţă serială RS 232 • O interfaţă serială de tip "full-duplex" RS 422.

Cele două canale seriale pot fi utilizate la viteze de transmisie a datelor cuprinse între 300 şi 19.200 biţi / secundă (dar numai unul din cele două poate fi setat la un moment dat pentru viteza maximă de 19.200 biţi / secundă).

Figura 1.13 Amplasarea în controller a modulelor I / O şi a sistemelor de conectare I / O.

Figura 1.14 Comunicaţii seriale ale robotului prin conexiuni directe cu alte echipamente numerice.

Page 22: 253421394-ROB-II-1

ROBOTICĂ II - Note de curs – M. Niţulescu

1 - 22

Pentru viteze mai mari de transmisie a datelor şi / sau pentru comunicaţii în reţea, controller-ul IRB 1400 poate fi dotat cu o interfaţă Ethernet (Figura 1.15). În această situaţie, rata de transmisie a datelor este de 10 Mbiţi / secundă. Pentru acest scop, producătorul pune la dispoziţie module soft (drivere) suplimentare, disponibile în pachetul Advanced functions din softul RobotWare, care asigură interfaţarea necesară cu instrucţiunile limbajului de programare RAPID.

În afara canalelor fizice de comunicaţii, un protocol de comunicaţii denumit RAP (Robot Application Protocol) poate fi folosit. Pentru aceasta este necesar fie modulul FactoryWare Interface, fie modulul RAP Communication din soft-ul RobotWare. 1.9 Siguranţa funcţională (SAFETY STANDARDS) Sistemul-robot ABB IRB 1400 a fost proiectat să răspundă principalelor standarde internaţionale de siguranţă funcţională în domeniu care sunt descrise în Tabelul 1.6:

Tabelul 1.6 Standarde de siguranţă funcţională respectate de sistemul robot IRB 1400.

Figura 1.15 Conectarea în reţea serială de date.

Page 23: 253421394-ROB-II-1

ROBOTICĂ II - Note de curs – M. Niţulescu

1 - 23

Alte dispozitive externe de siguranţă funcţională (spre exemplu butoane suplimentare pentru oprirea de urgenţă) pot fi montate în spaţiul de operare al robotului ca o exten-sie a celor două deja existente. Reamintim faptul că două astfel de butoane de tip "ciupercă de avarie" sunt disponibile: unul pe panoul operator şi altul pe consola de programare. Montarea lor nu trebuie însă să altereze standardele internaţionale de siguranţă la care robotul răspunde prin construcţia sa. Pentru aceasta, eventualele modificări trebuie făcute în conformitate cu schema din Figura 1.16, astfel încât motoarele robotului să fie forţate totdeauna în starea MOTORS OFF.

1.10 Programarea (PROGRAMMING) Ca tehnică principială, programarea robotului IRB 1400 se bazează pe selecţia instrucţiunilor şi argumentelor asociate dintr-o listă predefinită. Utilizatorul nu trebuie să reţină formatul instrucţiunilor, deoarece acestea sunt afişate detaliat. El trebuie numai să selecteze ceea ce doreşte. Acesta este o soluţie foarte avantajoasă pentru programarea roboţilor, care înlocuieşte vechiul principiu de tip "adu-ţi aminte şi tastează conţinutul" cu principiul "vezi, alege şi selectează prin click". Mediul de programare poate fi adaptat (personalizat) de către utilizator cu ajutorul consolei de programare sub următoarele aspecte:

• Limbajul natural al utilizatorului poate fi folosit pentru a denumi programele, semnalele, numărătoarele etc.

• Noi instrucţiuni pot fi create cu uşurinţă. • Cele mai des folosite instrucţiuni pot fi "grupate" pentru a fi afişate simultan pe

consolă. În felul acesta, procesul de selecţie a instrucţiunii dorite devine mai rapid şi mai eficient.

• După necesităţi, pot fi create rapid poziţii, regiştri interni şi orice tipuri de date. Programele, părţi din acestea, precum şi orice modificare într-un program pot fi testa-te imediat după ce sunt realizate, fără a fi necesară compilarea întregului program. Un program al robotului este stocat în "fişiere" care au aceiaşi structură ca şi un fişier text de tip PC. Aceasta introduce încă un avantaj, în sensul că un astfel de fişier-program poate fi editat cu ajutorul oricărui calculator personal.

Figura 1.16 Schemă de conectare a unor butoane suplimentare pentru oprirea de urgenţă.

Page 24: 253421394-ROB-II-1

ROBOTICĂ II - Note de curs – M. Niţulescu

1 - 24

Programarea mişcării. O secvenţă de mişcări ale robotului este programată întotdeauna ca o succesiune de mişcări parţiale între "poziţiile" care se doresc atinse de către robot. În procesul de programare, fiecare astfel de "poziţie dorită" poate fi redată în două moduri:

• Folosind modul Jogging, adică prin deplasarea robotului cu ajutorul joystick-ului în acea poziţie şi memorarea poziţiei (intrinsec, prin coordonatele sale). Aceasta este o soluţie curentă atunci când se defineşte pentru prima dată o nouă poziţie dorită a robotului în cadrul unui program funcţional, fiind cunoscută şi sub denumirea de "instruire".

• Folosind numai "referirea" la o poziţie deja cunoscută de către robot printr-un proces anterior de instruire. Aceasta este o soluţie foarte avantajoasă, întrucât permite practic utilizatorului ca o anumită poziţie dorită a robotului să fie instruită o singură dată şi să poată fi folosită ulterior, ori de câte ori este necesar în cadrul aceluiaşi program şi printr-o simplă "apelare".

Pentru robotul IRB 1400, execuţia unei poziţii dorite (Figura 1.17) poate fi definită în două moduri:

• Stop Point, adică o poziţie care trebuie realizată cu precizie de către robot în mişcarea sa. Robotul va genera mai întâi mişcarea către această poziţie. Apoi, după ce poziţia a fost atinsă cu precizie, robotul se opreşte temporar în această poziţie, urmând ca ulterior să fie generată (eventual) o nouă mişcare.

• Fly-by Point, adică o poziţie care nu trebuie realizată cu precizie de către robot în mişcarea sa, fiind suficientă "o trecere relativ apropiată" prin proximitatea acesteia. Erorile sunt însă controlate prin programare, în sensul că valorile admise de programator trebuie definite aprioric şi independent pentru fiecare dintre elementele următoare:

• TCP-ul robot • Orientările terminalului (efectorului) • Axele externe robotului.

Dacă în modul Stop Point robotul trebuie să se oprească întotdeauna în poziţia programată, în modul Fly-by Point robotul nu mai trebuie să realizeze acest lucru. Prin urmare el îşi poate continua deplasarea către următoarea poziţie, obţinându-se astfel în final ceea ce numim "o traiectorie". Rezultă deci faptul că orice traiectorie a robotului IRB 1400 include mai multe poziţii succesive programate (fiecare fiind realizată cu un anumit grad "controlat" de precizie) şi este caracterizată global printr-o anumită viteză de deplasare.

Figura 1.17 Cele două moduri prin care o poziţie instruită poate fi folosită în execuţia unui program funcţional.

Page 25: 253421394-ROB-II-1

ROBOTICĂ II - Note de curs – M. Niţulescu

1 - 25

Viteza dorită pe o traiectorie poate fi descrisă prin următoarele metode: • În unităţi de viteză liniară, adică în [mm / s]. • În unităţi de timp, adică în secunde [s]. Intervalul de timp specificat va fi cel în

care robotul trebuie să atingă următoarea poziţie programată. • În unităţi de viteză unghiulară, adică în [grade / s]. Această soluţie se foloseşte

numai în două cazuri: pentru reorientarea efectorului şi pentru viteza de rotaţie a axelor externe.

Managementul programelor. Un program funcţional al robotului IRB 1400

poate fi denumit arbitrar, după dorinţa utilizatorului. Apoi, el poate fi stocat în diferiţi directori. Stocarea unui program se poate face utilizând fie memoria internă a controller-ului, fie un suport de memorie externă:

• Zona din memoria internă a controller-ului robot denumită "memorie-program" poate fi utilizată pentru a stoca orice program funcţional. Aceasta este o memo-rie foarte rapidă, special alocată acestui scop. Apelarea unui program memorat aici se poate face direct, printr-o instrucţiune inclusă în programul funcţional.

• Un program (sau părţi din acesta) pot fi transferate extern şi pe un disk. Pentru aceasta, în structura de bază a controller-ului IRB 1400 există o unitate floppy standard de 3,5 inch (Figura 1.2), ceea ce asigură şi compatibilitatea complectă citire / scriere cu orice calculator PC.

Un program poate fi tipărit cu o imprimantă de uz general. În funcţie de locul unde este stocat programul funcţional, imprimanta poate fi conectată astfel:

• Direct la controller-ul robot, dacă programul este rezident în memoria sa internă • La un calculator PC, dacă programul este transferat mai întâi pe un disk. În

această situaţie programul poate fi mai întâi editat (dacă este necesar) şi apoi tipărit ca orice fişier-text.

Editare programelor. Un program IRB 1400 poate fi editat folosind comenzi

standard, specifice oricărui proces de editare. Câteva dintre acestea sunt spre exemplu: Cut (tăiere), Paste (lipire), Copy (copiere în clipboard), Delete (ştergere), Find (caută), Change (schimbă cu), Undo (anulează ultima comandă de editare) etc. Folosind aceste comenzi se pot introduce şi toate "argumentele" asociate unor anumite tipuri de instrucţiuni ale robotului. Nu sunt necesare operaţii suplimentare de reprogramare atunci când se procesează "mişcări în partea dreaptă" şi "mişcări în partea stângă" a spaţiului de operare al robotului, deoarece un program poate fi "privit în oglindă" în orice plan. O poziţie deja memorată pentru robot poate fi modificată foarte simplu urmând una din cele două soluţii descrise anterior, adică:

• Folosind modul Jogging, adică deplasând robotul cu ajutorul joystick-ului în noua poziţie şi apoi apăsând tasta ModPos, care va avea ca efect memorarea noii poziţii dorite în locul celei definite anterior.

• Introducând direct de la tastatura consolei toate valorile numerice aferente noii poziţii.

Page 26: 253421394-ROB-II-1

ROBOTICĂ II - Note de curs – M. Niţulescu

1 - 26

Pentru a bloca accesul unor persoane neautorizate la modificări în programele funcţionale, este recomandabilă utilizarea parolelor de acces (passwords), similar ca în cazul calculatoarelor de tip PC.

Testarea programelor. Mai multe funcţii, deosebit de eficiente, pot fi utilizate atunci când se doreşte testarea unui program. Câteva dintre acestea sunt:

• Startarea programului se poate realiza din orice instrucţiune a acestuia. • Un program se poate executa prin diferite metode:

• Incomplete Program, adică se execută numai o anumită "zonă" selectată din program.

• Forward / Backward Step-by-Step, adică instrucţiune cu instrucţiune, prin derularea normală sau inversată a instrucţiunilor dintr-un program.

• One-cycle Run, adică se execută întregul program în regim automat, dar o singură dată.

• Se poate simula aşteptarea îndeplinirii unor "condiţii externe" robotului. • Pe durata testelor se poate reduce "temporar" viteza reală (programată) de

execuţie, adică cea care va fi dezvoltată implicit de către robot la rularea automată a programului în scop productiv.

• În orice program se pot face ajustări ale poziţiilor robotului. • În orice program se pot elimina sau adăuga noi poziţii pentru robot.

Limbajul de programare. Limbajul de programare al roboţilor din familia ABB

se numeşte RAPID. Acesta poate fi încadrat în ceea ce este denumit în literatura de specialitate "limbaj de nivel înalt orientat pe aplicaţie" (high-level application-oriented programming). Limbajul RAPID include următoarele funcţionalităţi:

• Structură modulară şi ierarhizată • Funcţii şi proceduri • Date şi rutine locale sau globale • Date introduse din exterior, inclusiv câmpuri structurate pentru introducerea lor • Nume atribuite de utilizator pentru variabile, rutine, intrări, ieşiri etc. • Control avansat în privinţa derulării unui program • Variabile şi funcţii, atât aritmetice cât şi logice • Soluţii de întrerupere a rulării unui program • Soluţii de gestionare a erorilor • Posibilitatea ca utilizatorul să-şi definească propriile instrucţiuni • Posibilitatea ca un program să fie executat în ordinea directă (normală) a

instrucţiunilor sale sau în ordinea inversată a acestora. Setul curent al instrucţiunilor şi funcţiilor disponibile va fi descris în continuare. Un subset dintre acestea poate fi definit de utilizator pentru a constitui un "grup" din care se poate alege mai rapid instrucţiunea sau funcţia dorită. Grupul va fi afişat pe ecranul consolei în cadrul unei "ferestre", similar componentelor unui meniu la calculatoarele PC. Componenţa unui grup se poate decide în funcţie de cerinţele particulare ale unei anumite aplicaţii robotizate sau în funcţie de dorinţa şi experienţa programatorului. Componenţa grupului definit poate fi modificată ori de câte ori se doreşte.

Page 27: 253421394-ROB-II-1

ROBOTICĂ II - Note de curs – M. Niţulescu

1 - 27

Noi instrucţiuni pot fi create cu uşurinţă de utilizator. Ele sunt numite generic macros, adică mici programe executabile, constituite numai din instrucţiunile standard. În setul de instrucţiuni descris în continuare sunt prezente numai instrucţiunile şi funcţiile incluse în setul de bază al limbajului RAPID, care este denumit BaseWare OS. Aşa cum s-a subliniat deja, producătorul oferă şi un software suplimentar (opţional), care oferă o extensie utilă de instrucţiuni şi funcţii pentru anumite aplicaţii sau cerinţe speciale. Acest modul suplimentar este denumit RobotWare. În funcţie de scopul şi efectul lor, instrucţiunile limbajului RAPID din modulul software BaseWare OS pot fi grupate în câteva "clase de instrucţiuni":

Instrucţiuni cu caracter general (Miscellaneous) := Atribuie o valoare

WaitTime Temporizare; aşteaptă trecerea unui interval de timp

WaitUntil Aşteaptă până când o condiţie este îndeplinită

comment Inserează un comentariu în program

OpMode Citeşte modul curent de operare

RunMode Citeşte modul curent de execuţie al programului

Dim Fixează dimensiunea unei zone

Present Testează dacă un parametru opţional este utilizat

Load Încarcă un modul de program în timpul execuţiei

UnLoad Şterge un modul de program în timpul execuţiei

Instrucţiuni pentru controlul desfăşurării unui program (Program flow) ProcCall Apelarea unei noi proceduri

CallByVar Apelarea unei noi proceduri printr-o variabilă

RETURN Finalizează execuţia unei rutine

FOR Repetă de un anumit număr de ori

GOTO Salt la o nouă instrucţiune

Compact IF Dacă o condiţie este îndeplinită, atunci execută o instrucţiune

IF Realizarea unei condiţii produce execuţia unei secvenţe de instrucţiuni

label Numele unei linii (instrucţiune utilizată împreună cu GOTO)

TEST Depinde de valoarea unei expresii ...

WHILE Repetă până când ...

Stop Opreşte execuţia

EXIT Opreşte execuţia când nu urmează un restart

Break Opreşte temporar execuţia

Page 28: 253421394-ROB-II-1

ROBOTICĂ II - Note de curs – M. Niţulescu

1 - 28

Instrucţiuni pentru setarea mişcărilor (Motion settings) AccSet Reduce acceleraţia

ConfJ Controlează configuraţia robotului în timpul mişcării unei articulaţii (joint movement)

ConfL Controlează configuraţia robotului în timpul unei mişcări liniare (linear movement)

VelSet Schimbă viteza programată

GripLoad Defineşte încărcarea (sarcina) la flanşa port-terminal

SingArea Defineşte metoda de interpolare folosită prin punctele singulare

PDispOn Activează înlocuirea / deplasarea unui program

PDispSet Activează înlocuirea / deplasarea unui program cu o valoare specificată

DefFrame Defineşte înlocuirea / deplasarea automată unui program

DefDFrame Defineşte un cadru de înlocuire / deplasare

EOffsOn Activează un offset pentru o axă externă

EOffsSet Activează un offset pentru o axă externă folosind o valoare

ORobT Mută (scoate) înlocuirea / deplasarea unui program dintr-o poziţie

SoftAct Activează soft-ul de servo-control pentru o axă robot

TuneServo Reglează soft-ul de servo-control

Instrucţiuni pentru mişcare (Motion) MoveC Mişcă circular TCP-ul

MoveJ Mişcă robotul la nivel de articulaţie (joint movement)

MoveL Mişcă liniar TCP-ul

MoveAbsJ Mişcă robotul într-o "valoare absolută" asociată articulaţiei

MoveXDO Mişcă robotul şi setează o ieşire la atingerea poziţiei finale

SearchC Caută / cercetează în timpul mişcării circulare

SearchL Caută / cercetează în timpul mişcării liniare

ActUnit Activează o unitate mecanică externă

DeactUnit Dezactivează o unitate mecanică externă

Offs Înlocuieşte o poziţie

RelTool Înlocuieşte o poziţie exprimată în sistemul de coordonate al efectorului

MirPos Pune "în oglindă" o poziţie a robotului

CRobT Citeşte poziţia curentă a robotului (complete robtarget)

CJointT Citeşte unghiurile articulaţiilor (complete joint angles target)

CPos Citeşte poziţia curentă (pos data)

Page 29: 253421394-ROB-II-1

ROBOTICĂ II - Note de curs – M. Niţulescu

1 - 29

CTool Citeşte datele curente ale efectorului (tool data)

CWObj Citeşte datele curente ale piesei prelucrate (work object data)

StopMove Opreşte mişcarea robotului

StartMove Reporneşte mişcarea robotului

Instrucţiuni pentru semnale de intrare-ieşire (I/O Input / output signals) InvertDO Inversează starea logică a unui semnal digital de ieşire

PulseDO Generează un impuls pe un canal digital de ieşire

Reset Resetează (trece în 0) un semnal digital de ieşire

Set Setează (trece în 1) un semnal digital de ieşire

SetAO Setează valoarea unui semnal analogic de ieşire

SetDO Setează un semnal digital de ieşire după un interval de timp specificat

SetGO Setează valorile unui grup de semnale digitale de ieşire

WaitDI Aşteaptă setarea unui semnal digital de intrare

WaitDO Aşteaptă setarea unui semnal digital de ieşire

AInput Citeşte valoarea unui semnal analogic de intrare

DInput Citeşte valoarea unui semnal digital de intrare

DOutput Citeşte valoarea unui semnal digital de ieşire

GInput Citeşte valoarea unui grup de semnale digitale de intrare

GOutput Citeşte valoarea unui grup de semnale digitale de ieşire

TestDI Testează dacă un semnal digital de intrare este setat

IODisable Dezactivează un modul I/O

IOEnable Activează un modul I/O

Instrucţiuni pentru întreruperi (Interrupts) ISignalDI Solicită întrerupere folosind un semnal digital de intrare

ISignalDO Solicită întrerupere folosind un semnal digital de ieşire

ITimer Solicită o întrerupere temporizată

IDelete Anulează o întrerupere

ISleep Dezactivează o întrerupere

IWatch Activează o întrerupere

IDisable Dezactivează sistemul de întreruperi

IEnable Activează sistemul de întreruperi

CONNECT Conectează o întrerupere la o rutină "trap"

Page 30: 253421394-ROB-II-1

ROBOTICĂ II - Note de curs – M. Niţulescu

1 - 30

Instrucţiuni pentru rezolvarea erorilor (Error Recovery) EXIT Termină execuţia programului

RAISE Apelează un "eliminator" de erori

RETRY Restartează după o eroare

TRYNEXT Salt peste instrucţiunea care a cauzat eroarea

RETURN Revenire în rutina care a apelat rutina curentă

Instrucţiuni pentru comunicaţii (Communication) TPErase Şterge textul tipărit pe consolă

TPWrite Scrie pe consolă

TPReadFK Citeşte funcţiile ataşate butoanelor (function keys)

TPReadNum Citeşte un număr introdus de la consolă

ErrWrite Stochează un mesaj de eroare în "error log"

Instrucţiuni pentru sistem şi controlul timpului (System & Time) ClkReset Resetează un ceas utilizat pentru temporizare

ClkStart Setează un ceas utilizat pentru temporizare

ClkStop Opreşte un ceas utilizat pentru temporizare

ClkRead Citeşte un ceas utilizat pentru temporizare

CDate Citeşte data curentă ca un şir de caractere

CTime Citeşte ora curentă ca un şir de caractere

GetTime Importă ora curentă ca o valoare numerică

Instrucţiuni matematice (Mathematics) Add Adună o valoare numerică

Clear Şterge valoarea

Decr Decrementează cu 1

Incr Incrementează cu 1

Abs Calculează valoarea absolută (modulul)

Sqrt Calculează rădăcina pătrată

Exp Calculează valoarea funcţiei exponenţiale cu baza “e”

Pow Calculează valoarea funcţiei exponenţiale cu o bază arbitrară

ACos Calculează valoarea funcţiei arccosinus

Page 31: 253421394-ROB-II-1

ROBOTICĂ II - Note de curs – M. Niţulescu

1 - 31

ASin Calculează valoarea funcţiei arcsinus

ATan/ATan2 Calculează valoarea funcţiei arctangentă

Cos Calculează valoarea funcţiei cosinus

Sin Calculează valoarea funcţiei sinus

Tan Calculează valoarea funcţiei tangentă

EulerZYX Calculează unghiurile Euler plecând de la o "orientare"

OrientZYX Calculează "orientarea" plecând de la unghiurile Euler

PoseInv "Inversează o configuraţie" a robotului

PoseMult "Multiplică o configuraţie" a robotului

PoseVect "Multiplică o configuraţie" a robotului şi un vector

Round Aproximează prin rotunjire o valoare numerică

Trunc Păstrează partea întreagă dintr-o valoare numerică

Instrucţiuni pentru şirurile text (Text strings) NumToStr Converteşte valorile numerice într-un şir

StrFind Caută un caracter într-un şir

StrLen Determină lungimea unui şir

StrMap Introduce un şir

StrMatch Caută modelul (şablonul) folosit într-un şir

StrMemb Caută dacă un caracter face parte dintr-un şir

StrOrder Caută dacă şirurile sunt ordonate

StrPart Extrage o parte dintr-un şir

StrToVal Converteşte un şir într-o valoare numerică

ValToStr Converteşte o valoare numerică într-un şir

Memorie Aşa cum am văzut, robotul IRB 1400 dispune de o memorie internă pentru stocarea programelor şi de o unitate de floppy-disk pentru ca programele să poată fi stocate şi pe memorii externe sistemului. Toate programele cât şi datele aferente, generate în mod automat sau create de către utilizator, sunt memorate de robotul IRB 1400 numai în format standard ASCII. Pentru stocarea externă a programelor se pot folosi direct disk-uri floppy cu parametrii comuni oricărui calculator PC, adică: 3.5” 1,44 MB (HD), format MS DOS. În tabelul 1.7 sunt redate principalele caracteristici ale memoriei de care dispune sistemul-robot IRB 1400.

Page 32: 253421394-ROB-II-1

ROBOTICĂ II - Note de curs – M. Niţulescu

1 - 32

Tabelul 1.7 Memoria internă şi externă a sistemului-robot IRB 1400.

Observaţii: 1) Depinde de tipul instrucţiunilor. 2) Anumite opţiuni software (existente în modulul de programare extins RobotWare) reduc spaţiul de memorie

alocat programului. 3) Necesită de aproximativ 3 ori mai puţin spaţiu decât cel necesar în memoria program (de exemplu 1 MB de

"mass memory" poate stoca 3 MB de instrucţiuni specifice limbajului de programare RAPID). Memoria RAM internă este menţinută activă cu ajutorul a două baterii tip Lithium, a căror capacitate asigură păstrarea datelor din memorie pentru mai mult de 12 luni de decuplare electrică. Acestea realizează aşa-numita funcţie Memory backup. Atunci când una dintre baterii s-a descărcat, la prima punere sub tensiune a robotului se afişează automat pe consolă un mesaj de avertizare în acest sens.